我正在用Sencha-Touch 1.1编写一个应用程序,我想为字符串添加本地化。
我想到了(但没有实现)两种方法。
-
为每种语言(en-US)创建单独的JSON文件。json, el-GR.json等),并使用代理和存储来加载数据,更改每个计时代理url (json文件目的地)。问题是我不知道之后如何从存储中提取数据。
-
创建一个全局JSON对象,然后我膨胀(解析JSON文件)把它变成一个物体)。这里的问题是,我似乎找不到一种方法来解析JSON文件,而不使用阅读器/代理组合。
在sencha-touch中是否存在本地化字符串的最佳解决方案?
一种常见的方法是将所有字符串提取到类级属性中,并使用单独的区域设置文件覆盖这些类及其字符串属性。
例如,如果我有这样一个面板:
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)
}
});
然后你会有一个locale文件,如下所示:
Ext.override(MyApp.MyPanel, {
myPanelContent: 'This is a translation of my text to another language'
});
然后,你可以在加载应用程序时加载正确的语言环境文件(在视图本身被加载之后),或者在运行时动态加载语言环境文件(这将需要逻辑用当前值更新每个视图)。
希望这是有意义的,如果不给我喊!
斯图尔特