2016-06-13 107 views
3

我使用AppCelerator将应用程序构建到iOS和Android。如何在运行时与appcelerator更改语言应用程序

所以我已经在国际化创造了两个文件夹

i18n 
--en 
----string.xml 
--it 
----string.xml 

在string.xml我插入一些资源。

现在如何在运行时更改应用程序的语言?

我尝试这样做,但没有工作:

Ti.App.Properties.setString('SETTING_LANUAGE','it'); 

回答

1

有很多方法在运行时改变应用程序的语言,但它只会改变你的应用程序的语言,而不是整个设备的语言。所以我希望这是你想达到的目标。

简单的解决方案我知道的是,:

  • 例如使用L(“appTitle”)方法更改语言。

下面是一个短代码段使用上述方法:

烯 - >的strings.xml

<string name="en_home">Home</string> 
<string name="en_cl">Change Language</string> 

它 - >的strings.xml

<string name="it_home">Casa</string> 
<string name="it_cl">Cambia lingua</string> 

alloy.js

// you can set this to any language at default or you can save the last applied language in the app 
Alloy.Globals.Lang = "en_"; 

index.js

var win = Ti.UI.createWindow({ 
    backgroundColor : "#aaaaaa" 
}); 
var lang = Alloy.Globals.Lang; 

var label = Ti.UI.createLabel({ 
    text : L(lang + "home") 
}); 

var btn = Ti.UI.createButton({ 
    title : L(lang + "cl"), 
    bottom : 50, 
    color : 'white', 
    backgroundColor : "#0aa" 
}); 
btn.addEventListener('click', changeLanguageItalian); 

win.add(label); 
win.add(btn); 

win.open(); 

function changeLanguageItalian() { 
    Alloy.Globals.Lang = "it_"; 
    lang = Alloy.Globals.Lang; 
    btn.title = L(lang+"cl"); 
    label.text = L(lang+"home"); 
} 

请注意,这只是一个如何在运行时更改语言的简单解释。根据你的应用,你可以尝试任何你觉得正确的事情。祝你好运!