我一直在尝试为我的 sencha touch 2.2.x 应用程序实现集成。我的问题不完全是创建包含所有键/值对的 js 或 json 文件。我的问题是实际检测语言环境并采取相应措施。
我使用navigator.globalization.getLocaleName()
的是 Cordova 提供的,并且我在 app.js 的启动函数中初始化了一个全局变量“appLocale”。但是,当定义像下面我的 Main.js 之类的类时,值 {title: ' '} 在我可以从 Cordova API 获取语言环境之前设置。
我是否有另一种方法来获取语言环境或可能是另一个放置该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
即使我更改了语言环境,PS也总是在 Android 模拟器中返回“en”。我认为这仅适用于浏览器。