如何使用 i18next 与 Anuglar 插件一起翻译?

How to use i18next to translate with Anuglar plugin?

我将 i18next 与插件一起使用 https://github.com/i18next/ng-i18next。使用 angular 指令,它应该在页面上显示 "test" 和 "this is a test"。但它显示 "home.title" 和 "home.content"。检查控制台, json 文件正确加载,如果我使用 javascript DOM 可以显示正确的内容。

我的 json 文件:

{
    "home":{
        "title": "test",
        "content": "this is a test"
    }
}

html:

<div ng-app="myApp" ng-controller="myCtrl" class="home">
<h1 ng-i18next="home.title"></h1>
<p ng-i18next="home.content"></p>
</div>

脚本:

angular.module('jm.i18next')
.config(['$i18nextProvider',function($i18nextProvider){
  window.i18next.use(window.i18nextXHRBackend);

  $i18nextProvider.options = {
    debug: true,
    lng: 'en',
    fallbackLng: 'en',
    backend: {
      loadPath: '/locales/{{lng}}/{{ns}}.json'
    }
  };
}]);

angular.module('myApp', ['jm.i18next']).controller('myCtrl',['$scope', '$i18next',function($scope, $i18next){
}])

这是来自控制台的信息,我不知道最后一个错误是什么:

刚刚仔细检查,看起来 i18next 模块已升级到较新版本,因此有以下选项:

{
  compatibilityAPI: 'v1',
  compatibilityJSON: 'v1',
  // ...old options from v1
}

应该用于 i18next 以使 ng-i18next 插件正常工作。

P.S: 作为建议,我建议您使用 angular-translate 插件而不是这个插件,但这完全取决于您。