我正在Sencha-Touch 1.1中编写应用程序,我想在字符串中添加本地化。
我认为(但没有实施)有两种方式。
为每种语言创建单独的JSON文件(en-US.json,el-GR.json 等)并使用代理和商店来加载数据,更改每个 时间代理URL(json文件目的地)。问题是我不知道如何从商店中提取数据。
创建一个全局JSON对象然后我膨胀(解析json文件) 并把它变成一个对象)。这里的问题是我似乎找不到一种方法来解析JSON文件而不使用读者/代理组合。
在sencha-touch中有没有最佳的本地化字符串解决方案?
答案 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'
});
然后,您可以在加载应用程序时加载正确的语言环境文件(在加载视图本身之后),也可以在运行时动态加载语言环境文件(这需要逻辑以当前值更新每个视图)
希望这是有道理的,如果没有,请给我一个喊叫声!
斯图尔特