如何使用Appcelerator切换区域设置?

时间:2012-08-19 12:51:23

标签: android ios titanium

我有一个使用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元素以更新应用程序中的活动语言区域设置,因此应用程序的语言会发生变化,这是否可以在不重新启动应用程序的情况下实现?

1 个答案:

答案 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