【问题标题】:Titanium Mobile: set locale (language) in appTitanium Mobile:在应用程序中设置区域设置(语言)
【发布时间】:2011-04-21 13:02:44
【问题描述】:

我不太明白 Titanium Mobile 是如何处理用户区域设置的。 我现在已经设置了两个语言文件,至少英文版可以正常工作。现在我希望能够在应用程序中设置语言环境,以便用户可以更改应用程序的语言。

这是怎么做到的? 处理货币、日期格式等其他语言环境问题的最佳方法是什么?

感谢您的回答! 干杯 克里斯

【问题讨论】:

  • 如果您之前的屏幕截图有任何迹象,我假设您正在构建一个 iOS 应用程序,该应用程序在 TiLocal 和 android 中都不受支持。具体来说,您将无法访问 currencyCode 或 currencySymbol。但是,您可以格式化电话号码,我没有看到任何有关格式化日期的文档,但是您可以为此编写自定义 JS 解决方案。
  • 布赖恩,感谢您的评论。他们实际上是。我希望除了自己编码之外,还有其他方法。太糟糕了,我猜。干杯
  • 这个问题是 4 年前提出的..

标签: mobile internationalization locale titanium


【解决方案1】:

使用像https://github.com/fnando/i18n-js这样的外部JS库能够在应用程序中强制切换语言。该库已经相当强大了。

http://i18njs.com/

【讨论】:

    【解决方案2】:

    要更改应用程序的语言,您可以试试这个,因为我出于相同目的使用相同的语言:-

    我在 alloy.js

    中添加了这个
    var language = Ti.App.Properties.getString('selectedLanguage','es');
    Alloy.Globals.language = language;
    Ti.Locale.setLanguage(language);
    

    为了更改应用程序语言,我创建了一个 tableView 用于在表格的点击侦听器上进行选择我正在更改应用程序语言

    if(e.index == 0){
        Alloy.Globals.language = 'es';
        Ti.App.Properties.setString('selectedLanguage','es');
    }else{
        Alloy.Globals.language = 'en';
        Ti.App.Properties.setString('selectedLanguage','en');
    }
    

    毕竟我正在刷新我的屏幕,在我的函数updateScreenForLanguage();

    function updateScreenForLanguage(){
        $.Back.text = (L('Back'));
        $.Title.text = (L('Profile'));
        $.labelLanguagePreference.text = (L("Language_Preference"));    
    }
    

    希望这会对您有所帮助。更多Titanium internationalization

    【讨论】:

      【解决方案3】:

      您可以使用以下模块

      https://marketplace.appcelerator.com/listing?q=locale%20-#!/list/page/1/search=locale%20-

      此模块可帮助您遵循相同的 i18n 文件夹 string.xml,它只会在您的应用程序中强制使用该语言。

      【讨论】:

        【解决方案4】:

        Titanium 语言区域可以这样使用

        var language = Titanium.Platform.locale;
        Titanium.App.Properties.setString('locale',language);
        Titanium.App.language = language;
        

        【讨论】:

        • Titanium.App.language 不是 Titanium 使用的属性吗?这个例子到底应该做什么?设置Titanium.App.Properties.setString('locale', 'de'); 后,Titanium.Platform.locale 的值不会改变..
        • 我查看了文档,我的问题是如何使用 Locale 函数在运行时更改语言。
        • 这一项将属性locale 设置为当前语言,并将全局变量Ti.App.language 设置为相同的值。太没用了
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多