我正在使用i18next-node来定位我的应用程序。
我有两种语言:en-CA
和fr-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设置为默认值?
答案 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'请求您的页面,则应显示一些后备语言。