0

私は phonegap を使用しており、このアプリケーションには i18n サポートが必要なので、最終的に 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"
  }
}
4

3 に答える 3

1

次の 2 つのことがわかります。

  1. 英語ロケールは次の場所に配置する必要がありますlocales/en/translation.json
  2. .jsonファイル<head>セクションを添付する必要はありません
于 2013-10-16T17:25:56.083 に答える
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さんの言う通りにフォルダ分けして並べ替えるのが普通だと思います。

于 2014-11-02T10:29:32.800 に答える