【问题标题】:Do I need i18next-xhr-backend for using translations in separated json files?我是否需要 i18next-xhr-backend 才能在单独的 json 文件中使用翻译?
【发布时间】:2018-11-20 07:58:16
【问题描述】:

我在一个纯 html 网站中使用 i18next。

这里是错误信息:

i18next::translator: missingKey en 翻译标题标题

代码如下:

 ///multilng.js
(function () {


i18next
.init({
    "debug": true,
    "lng": "en",
    "ns": [
      "translation"
    ],
    "fallbackLng": false,
    "keySeparator": false,
    "nsSeparator": false,
    resources: {
      "backend": {
        "loadPath": "../locales/{{lng}}/{{ns}}.json"
      }
    }
  }, function(err, t) {
   console.log(err);
 });

  function changeLng(lng) {
    i18next.changeLanguage(lng);
  }

  i18next.on('languageChanged', () => {
    updateContent();
  });

  updateContent();
})();

function updateContent() {
  var title = i18next.t("title");
  $("#logo.dark-logo").html(title);
}

这是项目结构:

这是我引用 js 文件的方式:

<script type='text/javascript' src='js/vendor/jquery-1.12.4.min.js'></script>
<script type='text/javascript' src="js/vendor/i18next.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-i18next/1.1.0/jquery-i18next.min.js"></script>
<script type='text/javascript' src='js/i18nextXhr.js'></script>
<script type='text/javascript' src='js/main.js'></script>
<script type='text/javascript' src='js/multilng.js'></script>

这是一个translation.json的内容:

{
    "title":"My Studio",
    "slogan":"Your expert."
}

【问题讨论】:

    标签: html i18next


    【解决方案1】:

    如果您想通过 xhr 加载它们 - 是的。还有其他选项,例如捆绑它们或自定义后端,列表无穷无尽:https://www.i18next.com/overview/plugins-and-utils

    或者创建一个自己的实现:https://www.i18next.com/misc/creating-own-plugins

    我在您的选项中发现的一个错误配置是后端选项嵌套在资源中...这些应该位于顶层,并且如果您想加载它们,请不要在 init 上添加资源。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    相关资源
    最近更新 更多