Sencha-touch本地化。使用商店或全局JSON对象?

时间:2011-11-22 11:39:22

标签: json localization sencha-touch

我正在Sencha-Touch 1.1中编写应用程序,我想在字符串中添加本地化。

我认为(但没有实施)有两种方式。

  1. 为每种语言创建单独的JSON文件(en-US.json,el-GR.json 等)并使用代理商店来加载数据,更改每个 时间代理URL(json文件目的地)。问题是我不知道如何从商店中提取数据。

  2. 创建一个全局JSON对象然后我膨胀(解析json文件) 并把它变成一个对象)。这里的问题是我似乎找不到一种方法来解析JSON文件而不使用读者/代理组合。

  3. 在sencha-touch中有没有最佳的本地化字符串解决方案?

1 个答案:

答案 0 :(得分:1)

一种常见的方法是将所有字符串提取到类级属性中,并使用单独的语言环境文件覆盖这些类及其字符串属性。

例如,如果我有这样的面板:

MyApp.MyPanel = Ext.extend(Ext.Panel, {

    myPanelContent: 'This is your text to be translated...',

    initComponent: function(){

        Ext.apply(this, {
            html: this.myPanelContent
        });

         MyApp.MyPanel.superclass.initComponent.call(this)
    }

});

然后你会有一个区域设置文件:

Ext.override(MyApp.MyPanel, {

    myPanelContent: 'This is a translation of my text to another language'

});

然后,您可以在加载应用程序时加载正确的语言环境文件(在加载视图本身之后),也可以在运行时动态加载语言环境文件(这需要逻辑以当前值更新每个视图)

希望这是有道理的,如果没有,请给我一个喊叫声!

斯图尔特