i18next无效

时间:2013-08-13 07:59:15

标签: javascript html5 i18next

我正在使用phonegap,我需要i18​​n支持这个应用程序,所以我最终选择了i18next。下面是我的示例代码,但是i18next失败了,任何人都可以帮助我吗?我得到的输出只是一个名称为“nav.home”,“nav.page1”,“nav.page2”的链接列表。此外,此示例HTML5代码仅适用于Chrome,而不适用于Mozilla。

//HTML code
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script type="text/javascript" src="i18next-1.6.3.js" ></script>
  <script type="text/javascript" src="translation.en.json" ></script>
  <script type="text/javascript" >
    $(document).ready(function(){
      i18n.init(function(t) {
        $(".nav").i18n();
        var appName = t("app.name");
      });
    });
  </script>
</head>

<body>
  <ul class="nav">
    <li><a href="#" data-i18n="nav.home"></a></li>
    <li><a href="#" data-i18n="nav.page1"></a></li>
    <li><a href="#" data-i18n="nav.page2"></a></li>
  </ul>
</body>
</html>

translation.en.js文件

{
  "app": {
    "name": "i18next"
  },
  "nav": {
    "home": "Home",
    "page1": "Page One",
    "page2": "Page Two"
  }
}

3 个答案:

答案 0 :(得分:1)

我看到两件事:

  1. 英语区域设置应位于locales/en/translation.json
  2. 您不必附加.json文件<head>部分

答案 1 :(得分:0)

尝试这样做:

$(document).ready(function(){
    $.i18n.init({
        lng: 'en'
    }, function(t) {
        $(".nav").i18n();
        var appName = t("app.name");
    });
});

我认为你错过了dictionnary选项。

答案 2 :(得分:0)

尝试此操作(未在我的手机上正确测试)

//HTML code
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script type="text/javascript" src="i18next-1.6.3.js" ></script>
  <script type="text/javascript" >
    $(document).ready(function(){
      i18n.init({ 
        resGetPath: 'translation.__lng__.json' 
      }, 
      function(t) {
        $(".nav").i18n();
        var appName = t("app.name");
      });
    });
  </script>
</head>

<body>
  <ul class="nav">
    <li><a href="#" data-i18n="nav.home"></a></li>
    <li><a href="#" data-i18n="nav.page1"></a></li>
    <li><a href="#" data-i18n="nav.page2"></a></li>
  </ul>
</body>
</html>

但是我觉得按照yarl所说并重新排列成文件夹更为正常。