2016-06-13 168 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"); 
} 

請注意,這只是一個如何在運行時更改語言的簡單解釋。根據你的應用,你可以嘗試任何你覺得正確的事情。祝你好運!

相關問題