如何在Extjs 4.2中实现本地化

时间:2014-10-19 01:27:07

标签: extjs internationalization

我正在使用Ux.locale.Manager类来实现本地化。从下拉列表更改语言并调用.updateLocale(value)方法并使用window.location.reload()重新加载页面后,它将再次选择以前的默认语言。

实施它的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

一个选项是将afterrender侦听器添加到语言选择器中,并使用一些代码从您的URL中检测语言参数,如下所示:

listeners    : {
    afterrender : function(component) {
        var url = window.location.search,
            urlParams = Ext.Object.fromQueryString(url);
        if (urlParams.language) component.setValue(urlParams.language);
    },
    change : function(cb, value) {
        Ux.locale.Manager.updateLocale(value);
    }
}

并确保在重新加载之前将语言参数附加到网址。

选项2:你可以用cookies做同样的事情

listeners    : {
    afterrender : function (component) {
        var language = Ext.util.Cookies.get("language");
        if (language) {
            component.setValue(language);
        }
    },
    change : function(cb, value) {
        Ux.locale.Manager.updateLocale(value);
        Ext.util.Cookies.set("language", value);
    }
}