1

Cordova/PhoneGap アプリの jQuery Mobile ページで i18next スクリプトを使用しています。

HTMLページの下部に以下のスクリプトが含まれています。

<script src="js/jquery-1.8.3.min.js"></script>               
<script src="js/jquery.mobile-1.3.2.min.js"></script>   
<script src="js/i18next-1.7.1.min.js"></script>         
<script src="js/main.js"></script>  

main.js ファイルには、アプリのすべてのページに含まれるいくつかのロジックがあります。

main.jsファイル:

function doBootstrap() {
    i18n.init({lng: "en", fallbackLng: 'en'});

    var header = "some tags";
    header += '<h1>' + i18n.t("app.title") + '</h1>';

    // other functions
}

スクリプトを使用して、ページ全体のさまざまなセクションで翻訳された値を取得します

上記の関数は、上記のインクルードの下にある Cordova devideready 関数で呼び出されます。.

document.addEventListener("deviceready", onDeviceReady, true);

function onDeviceReady() {
    doBootstrap();
}

上記のすべてのセットアップで、i18next-1.7.1.min.js ファイルに以下のエラーが表示されます。

Uncaught TypeError: Cannot read property 'defaultValue' of undefined 

.json ファイルは \locales\en\translation.json にあり、その内容は以下のとおりです。コンソールにエラーや警告は表示されません。

{
   "app": {
     "title": "Title"
   }
}

プラグインのセットアップで何が欠けていますか?

4

1 に答える 1

2

最後に、私はそれを機能させました。これはコードのバグであり、開発者は報告から数分以内に修正しました。よくやった..

問題のリンクはこちらです。

https://github.com/jamuhl/i18next/issues/166

また、プラグインの開発者によると、次の変更を行いました。

function doBootstrap() {
    var opts = {
       getAsync: true, lng: "en", fallbackLng: 'en'
    };

    i18n.init(opts).done(doBootstrapMain);
}

function doBootstrapMain() {
   // my regular functions
}
于 2013-11-12T18:09:05.963 に答える