Extjs 使用navigator.globalization在配置中设置全局变量
我试图在从手机识别区域设置时,将应用程序中的某些标题和字符串设置为不同的语言 我使用App.utils.Global类来设置某些东西,比如下面的代码。这似乎不起作用,我的默认名称保持不变。当我在修改后打印配置值时,它实际上是用修改后的名称加载的。在全球化插件实际完成之前,我输出名称的视图是绘制的吗 在设备上设置正确的全局变量(它是localeName)之前,如何防止应用程序的其余部分执行操作?还是有其他方法可以做到这一点?我知道在Sencha中可能有更好的本地化方法,但因为我只有几个字符串,所以这似乎是最简单的解决方案 提前谢谢Extjs 使用navigator.globalization在配置中设置全局变量,extjs,sencha-touch,Extjs,Sencha Touch,我试图在从手机识别区域设置时,将应用程序中的某些标题和字符串设置为不同的语言 我使用App.utils.Global类来设置某些东西,比如下面的代码。这似乎不起作用,我的默认名称保持不变。当我在修改后打印配置值时,它实际上是用修改后的名称加载的。在全球化插件实际完成之前,我输出名称的视图是绘制的吗 在设备上设置正确的全局变量(它是localeName)之前,如何防止应用程序的其余部分执行操作?还是有其他方法可以做到这一点?我知道在Sencha中可能有更好的本地化方法,但因为我只有几个字符串,所以
Ext.define('App.utils.Global', {
singleton: true,
alias: 'widget.global',
config:
{
namelabel: 'default name',
},
constructor: function(config) {
this.initConfig(config);
that = this;
if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|IEMobile)/)) {
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
navigator.globalization.getLocaleName(
function (locale) {
if(locale.value == 'en_US'){
that.setNamelabel('ENGLISH NAME');
}
else if(locale.value == 'nl_NL'){
that.setNamelabel('DUTCH NAME');
}
},
function () {
alert('Error getting locale\n');
}
);
}
}
}
});
与在类构造函数中使用“deviceready”事件处理程序不同,您应该在app.js文件中使用它
然后,在“deviceready”事件处理程序中,运行Ext.Application()方法来启动应用程序构造