i18next在没有任何输入的情况下改变语言

时间:2013-07-18 20:47:01

标签: node.js express i18next

我正在尝试在我的node.js应用上设置i18next。我现在有两种语言:fr-CA和en-US。

我想将fr-CA作为默认语言。我在app.js中将其设置为这样,在配置之前:

i18next.init({
  debug: true, 
  lng: 'fr-CA', 
  ignoreRoutes: [
   'img/', 
   'public/', 
    'stylesheets/', 
    'js/'
  ]
});

这是我的文件夹结构

locales/
  dev/
    translation.json
  en/
    translation.json
  fr-CA/
    translation.json
  fr/
    translation.json

我在服务器启动时执行控制台日志以查看i18next.lng()值是什么,并显示fr-CA。但是,只要我加载页面,控制台就会显示currentLng set to: en-US。所以它总是尝试加载locales / en / translation.json文件。

调试显示启动服务器时会加载fr-CA,fr和dev文件。但是一旦页面启动它就会加载en文件,就像它完全忘记了fr-CA一样。我的浏览器是英文的,所以我猜它从那里获取这个值。但我似乎无法找到它改变的原因。

我在这里错过了什么吗?

由于

1 个答案:

答案 0 :(得分:1)

通过设置fallbackLng而不是lng来定义fallbackLanguage!

i18next.init({
  debug: true, 
  fallbackLng: 'fr-CA', 
  ignoreRoutes: [
   'img/', 
   'public/', 
    'stylesheets/', 
    'js/'
  ]
});