如何在运行时使用Appcelerator更改应用程序语言

3

我正在使用AppCelerator构建一个iOS和Android应用程序。

因此,我创建了两个文件夹,在i18n目录下

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

在string.xml文件中,我插入了一些资源。
现在我该如何在运行时更改应用程序的语言?
我尝试这样做,但不起作用:
Ti.App.Properties.setString('SETTING_LANUAGE','it');
1个回答

1

有很多方法可以在运行时更改应用程序语言,但这只会更改您的应用程序语言,而不是整个设备语言。因此,我希望这就是您想要实现的。

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

  • 例如,使用 L("appTitle") 方法来更改语言。

以下是使用上述方法的简短代码片段:

en -> strings.xml

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

it -> 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");
}

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接