【问题标题】:i18next changes language without any inputi18next 无需任何输入即可更改语言
【发布时间】:2013-07-18 00:01:31
【问题描述】:

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

我错过了什么吗?

谢谢

【问题讨论】:

    标签: node.js express i18next


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      • 2014-12-24
      • 1970-01-01
      相关资源
      最近更新 更多