我有一个使用Appaccelerator构建的iPhone / Android应用程序。我已将所有文本放入locales(i18n // strings.xml),并且我还实现了一个开关:
<label for="flip-1" class="username">Language:</label>
<select name="flip-1" id="flip-1" data-role="slider">
<option value="off">EN</option>
<option value="on">NL</option>
</select>
在Android和iPhone上运行得相当不错。
如何启用此select元素以更新应用程序中的活动语言区域设置,因此应用程序的语言会发生变化,这是否可以在不重新启动应用程序的情况下实现?
答案 0 :(得分:0)
无法在运行时更改当前区域设置。区域设置取决于手机的当前语言,但您仍然可以进行一些解决方法。 在i18n目录中创建strings.xml文件,并将所有文本放在那里:
<resources>
<string name="en_car">Car</string>
<string name="de_car">Auto</string>
</resources>
您可以实现自己的L()
功能:
Ti.App.defaultLang = "en"; // global variable with default language (set it in app.js)
function myL(str, lang) {
if(lang && str) {
return L(lang + '_' + str);
} else {
return L(Ti.App.defaultLang + '_' + str);
}
}
我没有测试过,只想给你一些处理它的例子。您也可以在Ti文档中传递提示选项:http://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.Locale-method-getString