Extjs中的国际化没有导出项目?

问题描述

| 我正在使用ExtJS 3.2.1进行UI设计开发一个项目。我想在同一方面实施国际化(i18n)。 (不导出项目)? 我引用了以下链接: http://www.sencha.com/learn/Tutorial:Localizing_Ext http://extjstutorial.org/extjs/meertalig-i18n-met-extjs-en-codeigniter/ 谁能建议一些循序渐进的tutorail / ebook供进一步参考? 谢谢!     

解决方法

        除了本地化Ext \的内置字符串外,根据您的链接,我们还有一个全局函数,该函数返回本地化的字符串,并在我们要显示字符串的任何地方调用该函数。我们还将用户当前选择的语言存储在变量和cookie中。 根据我们的经验,我建议您可能希望将本地化的字符串存储在数据库中的服务器上,并通过加载时的Ajax调用将其关闭。这使您无需部署代码更改即可管理这些字符串。 当用户更改语言时,我们设置语言cookie并重新加载整个浏览器窗口。
// global shortcut function for retrieving a localized string
function i18n(key,arrInsertValues) {
    return Local.getLocalizedString(key,Local.languageCode,arrInsertValues);
}

// \"Local\" is a simple \"static\" object containing methods and localization strings
Local = {

    // Default locale code - set based on cookie at the bottom of this script
    languageCode: \'en\',languageCodeDefault: \'en\',charset: \'utf-8\',languages: [
        [\'en\',\'English\',\'utf-8\'],[\'ja\',\'日本語\',\'utf-8\']
    ],getLocalizedString: function(key,languageCode,arrInsertValues) {
        if (!this.localizedStrings[key]) {
            // return empty string if key is undefined
            return \'\';
        }
        if (!this.localizedStrings[key][languageCode]) {
            // return default language string or empty string if the string for the specified language is undefined
            return this.formatString(this.localizedStrings[key][this.lcDefault] || \'\',arrInsertValues);
        }
        // give \'em what they asked for
        return (this.formatString(this.localizedStrings[key][languageCode],arrInsertValues));
    },// returns a localized string formatted to replace values {0},{1} etc with values from the passed array
    formatString: function(string,arrInsertValues) {
        var formattedString = string;
        if (arrInsertValues && arrInsertValues.constructor.toString().indexOf(\"Array\") != -1) {
            for (var i = 0; i < arrInsertValues.length; i++) {
                formattedString = formattedString.replace(\'{\' + i + \'}\',arrInsertValues[i]);
            }
        }
        return formattedString;
    },localizedStrings: {
        tEN: { en: \'Eng\',ja: \'英語\' },tJPN: { en: \'Jpn\',ja: \'日本語\' },tYes: { en: \'Yes\',ja: \'はい\' },tNo: { en: \'No\',ja: \'いいえ\' },tAnd: { en: \'and\',ja: \'と\' },tOr: { en: \'or\',ja: \'or\' },tDateFormat : { en: \'Y\\/m\\/d - g\\:iA\',ja: \'G\\:i - Y年m月d日\' },tGoodMorning: { en: \'Good morning,{0}.\',ja: \'{0}様、おはようございます。\' }
    }
}

// this is the first script to run,so we can set default language here based on cookie
var cookie = new Ext.state.CookieProvider();
Local.languageCode = cookie.get(\'languageCode\') ? cookie.get(\'languageCode\') : Local.languageCodeDefault;
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...