1

我正在使用 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 设置为默认值?

4

2 回答 2

1

原来你可以设置fallbackLng : 'en-CA',这将工作。不过有点hack。

于 2013-05-15T19:04:30.193 回答
0

尝试阅读http://i18next.com/node/pages/doc_init.html下的检测语言部分

i18next 在请求期间从您的浏览器设置中检测语言(如果没有由任何其他方法设置 - cookie、查询字符串)。这就是语言设置为“en-US”的原因。

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

但是您仍然需要设置一个 fallbackLng -> 例如。如果有人请求您使用语言设置为“de”的页面,则应显示一些备用语言。

于 2013-05-22T10:49:48.417 回答