My first approach actually used a JSON file for all the translation data, but the extra XHR didn't seem to be worth it.