要求车把插件i18n只加载默认'en_us.json'

时间:2013-06-20 17:00:20

标签: internationalization requirejs handlebars.js

我尝试使用带有i18n功能的require-handlebars-plugin。

但是,即使我更改了浏览器语言,也要尝试加载默认文件“ en_us.json ”。

我可以在require js config中设置 locale 值,以“强制”加载正确的文件。但我不认为这是“如何使用它”的好方法。

define({
    name: 'The Handle of the Bars',
    require: {
        paths: {
            handlebars: 'components/require-handlebars-plugin/Handlebars',
            hbs: 'components/require-handlebars-plugin/hbs',
            i18nprecompile: 'components/require-handlebars-plugin/hbs/i18nprecompile',
            json2: 'components/require-handlebars-plugin/hbs/json2'
        },
//      locale: (navigator.language.substring(0, 2) === 'en') ? 'en' : 'fr',
        hbs: {
            disableI18n : false,
            disableHelpers: true,
            templateExtension: 'hbs'
        }
    },

我错过了什么? :)


哦,我还有一个问题:

如果找不到语言,是否可以设置默认值?

例如,如果浏览器语言设置为“de”,但我的应用程序只有 en fr 翻译。

1 个答案:

答案 0 :(得分:0)

回答第二个问题:

var availableLocales = ['en', 'fr'];
var browserLocale = navigator.language.substring(0, 2);
var locale = availableLocales.indexOf(browserLocale) >= 0 browserLocale : 'en'; // 'en' is default locale