我正在使用Ux.locale.Manager
类来实现本地化。从下拉列表更改语言并调用.updateLocale(value)
方法并使用window.location.reload()
重新加载页面后,它将再次选择以前的默认语言。
实施它的最佳方法是什么?
答案 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);
}
}