1

我正在尝试在我的 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。我的浏览器是英文的,所以我想它会从那里获取这个值。但我似乎无法找到它为什么会改变。

我在这里错过了什么吗?

谢谢

4

1 回答 1

1

通过设置fallbackLngnot来定义 fallbackLanguage lng

i18next.init({
  debug: true, 
  fallbackLng: 'fr-CA', 
  ignoreRoutes: [
   'img/', 
   'public/', 
    'stylesheets/', 
    'js/'
  ]
});
于 2014-04-24T06:56:41.600 回答