我试图在我的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。我的浏览器是英文的,所以我想它从那里开始取这个值。但我似乎找不到原因。

我在这里想念什么吗?

谢谢

最佳答案

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

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

关于node.js - i18next无需任何输入即可更改语言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17733585/

10-13 05:26