【问题标题】:i18next Displayed key instead of valuei18next 显示键而不是值
【发布时间】:2013-08-18 08:54:51
【问题描述】:

我在/locales/en/ 中有translation.json 文件

{
    "app": {
        "name": "Example App"
    }
}

html,我有:

<a href="/" data-i18n="app.name">

js:

$(document).ready(function() {

    var language_complete = navigator.language.split("-");
    var language = (language_complete[0]);

    console.log('language', language);

    $.i18n.init({
        lng: language,
        fallbackLng: false,
        debug: false
    }, function() {
        $('a').i18n();
    });
});

它显示app.name 而不是Example App。我在代码中遗漏了什么?谢谢

【问题讨论】:

  • 您是否包含 i18next 的 jQuery 版本? :)
  • 同样的问题,你是怎么解决的?谢谢..

标签: javascript jquery html internationalization i18next


【解决方案1】:

您必须将 useLocalStorageuseDataAttrOptions 设置为 true

$.i18n.init({useLocalStorage: true , useDataAttrOptions:true, ....});

【讨论】:

    【解决方案2】:

    在 js 中这是因为 $(document).ready 不等待外部内容被加载。您需要使用$(window).on('load',function(){...})

    【讨论】:

      【解决方案3】:

      从 i18next V2 开始,后端 不再提供开箱即用 (see the migration guide),因此您需要在 init 块中定义 backend 配置:

      backend: {
          loadPath: '/locales/{{lng}}/{{ns}}.json'
      },
      

      如果您不这样做,您的资源将不会被加载,并且翻译值将回退到它们各自的键 (see the source code)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-29
        • 1970-01-01
        • 2021-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-20
        相关资源
        最近更新 更多