Extjs 使用navigator.globalization在配置中设置全局变量

Extjs 使用navigator.globalization在配置中设置全局变量,extjs,sencha-touch,Extjs,Sencha Touch,我试图在从手机识别区域设置时,将应用程序中的某些标题和字符串设置为不同的语言 我使用App.utils.Global类来设置某些东西,比如下面的代码。这似乎不起作用,我的默认名称保持不变。当我在修改后打印配置值时,它实际上是用修改后的名称加载的。在全球化插件实际完成之前,我输出名称的视图是绘制的吗 在设备上设置正确的全局变量(它是localeName)之前,如何防止应用程序的其余部分执行操作?还是有其他方法可以做到这一点?我知道在Sencha中可能有更好的本地化方法,但因为我只有几个字符串,所以

我试图在从手机识别区域设置时,将应用程序中的某些标题和字符串设置为不同的语言

我使用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()方法来启动应用程序构造