0
我一直在尝试实现我的sencha touch 2.2.x应用程序的集成。 我的问题不是完全创建包含所有键/值对的js或json文件。我的问题是实际检测到的语言环境并采取相应措施。Sencha触摸和科尔多瓦检测区域
我使用由科尔多瓦提供navigator.globalization.getLocaleName()
,我有一个全局变量“AppLocale会”在app.js.的发射功能初始化但是,在定义像下面的Main.js这样的类时,在从Cordova API获取语言环境之前,{title:'}的值已设置。
是否有另一种方法可以让我获得语言环境或其他地方可以使用getLocaleName()
方法?
这里是我的Main.js文件
Ext.define('MyApp.view.Main', {
extend: 'Ext.tab.Panel',
xtype: 'main',
config: {
tabBarPosition: 'bottom',
items: {
title: 'Get Started',
iconCls: 'action',
items: [
{
docked: 'top',
xtype: 'titlebar',
title: 'i18n.getTranslation('hello', appLocale)'
}]
}
}
});
这是我的app.js文件:
Ext.application({
name: 'MyApp',
requires: [
'MyApp.util.i18n'
],
views: [
'Main'
],
launch: function() {
navigator.globalization.getLocaleName(
function (locale) {appLocale = locale.value},
function() {alert('Error getting locale\n');}
);
Ext.Viewport.add(Ext.create('MyApp.view.Main'));
}
});
附: window.navigator.language
总是在Android模拟器中返回'en',即使我更改语言环境。我认为这只是一个浏览器。
你是说我不能有类定义的区域? –
如果语言环境在您定义*类之前加载,则可以。在初始化时更安全。 – arthurakay
对于它的价值,为什么不把Ext.Viewport.add()行放在getLocaleName()方法的回调中......这种方式直到加载语言环境才会发生。 – arthurakay