Dynamically change languages in a Titanium Alloy app (for testing)
// add this to the Alloy.js file
// Set to run in ENV_DEV mode so it's used for testing withou
// having to change languages on device etc
// NO checks in place so assumes you know what you're doing, have
// the relevant strings files and specify the correct one!
// should work on Android - not tested yet!
if (ENV_DEV) {
Alloy.Globals.setLanguage = function(lang) {
lang = lang || "en";
var file = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory, lang + '/strings.xml'),
doc = Ti.XML.parseString(file.read().toString()),
nodes = doc.getElementsByTagName('string'),
strings = {};
for (var i = 0; i < nodes.length; i++) {
strings[nodes.item(i).getAttribute('name')] = nodes.item(i).text;
};
W = L;
// redefine L - NOT ideal but necessary to test
// languages without affecting existing code
L = function(key) {
return strings[key];
};
};
Alloy.Globals.setLanguage();
}