i18next init特定语言

时间:2013-05-15 18:44:17

标签: node.js localization internationalization i18next

我正在使用i18next-node来定位我的应用程序。

我有两种语言:en-CAfr-CA

我正在使用它来启动应用程序:

i18next.init({
    saveMissing: true,
    sendMissingTo : 'all',
    ignoreRoutes: ['img/','images/', 'public/', 'css/', 'js/'],
    debug: true,
    lng: 'en-CA'
});

问题是,当我启动应用程序时,它给了我这个错误:

currentLng set to: en-US
[ { [Error: ENOENT, open 'locales/en-US/translation.json']
    errno: 34,
    code: 'ENOENT',
    path: 'locales/en-US/translation.json' } ]

我不想要en-US,我想要en-CA。现在,我的应用程序没有显示任何一种语言。如何将en-CA设置为默认值?

2 个答案:

答案 0 :(得分:1)

事实证明你可以设置fallbackLng : 'en-CA',这将有效。虽然有点黑客。

答案 1 :(得分:0)

尝试阅读http://i18next.com/node/pages/doc_init.html

下的检测语言部分

i18next在请求期间检测您的浏览器设置中的语言(如果未通过任何其他方法设置 - cookie,查询字符串)。这就是语言设置为'en-US'的原因。

您可以在init上设置支持的语言: i18n.init({supportedLngs:['en-CA','fr-CA']})

但你还需要设置一个fallbackLng - >例如。如果有人使用语言设置'de'请求您的页面,则应显示一些后备语言。