Localization

@shaun-edwards 
Can you review what I've done so far? (I hope this is what you meant by making another branch and doing a pull request...) Thanks.
This change could break existing code...instead of deleting this version, simply wrap the new call in the old function (with a suitable try/catch block).