2

jQueryMobileを使用してPhonegapアプリケーションを開発しています。これは非常に基本的なアプリケーションであり、その目的はスペイン語と英語で大きな組織に関する情報を表示することです。最初のページに、アプリケーションはスペイン語と英語の2つのオプションを表示します。ユーザーがスペイン語を選択した場合、表示される情報はスペイン語である必要があり、その逆も同様です。

SQLite DBを使用すると、まだサポートされていないため、Windows Phoneで問題が発生する可能性があります(Phonegap Storageを参照)。

ファイルストレージオプションもあります。また、生のJSONファイルも同様です。

4

2 に答える 2

3

私のやり方は、すべての文字列を保持する言語固有のjsonファイルを作成することです。この場合、english.jsonとspanish.jsonです。jsonを次のように構成します。

{ 
    help: "Help",
    ok: "Okay"
}

たとえば、ユーザーがスペイン語のボタンをクリックすると、アプリの最初のページでlocalStorageに値を設定する必要があります。

localStorage.setItem("lang", "spanish");

次に、2番目のページで「deviceready」イベントを取得したら、XHRを使用して正しいjsonファイルをロードする必要があります。

var request = new XMLHttpRequest();
    request.open("GET", localStorage.getItem("lang") + ".json", true);
    request.onreadystatechange = function(){//Call a function when the state changes.
        if (request.readyState == 4) {
            if (request.status == 200 || request.status == 0) {
                langStrings = JSON.parse(request.responseText);
            }
        }
    }
    request.send();

これで、翻訳された文字列を使用するときはいつでも、langStringsから取得できます。

langStrings.ok;

わかる?

于 2012-12-11T18:41:43.387 に答える
0

永続性のために、Html5ローカルストレージを正常に使用しました。Android、iOS、Windows Phone 7で動作します(これらのプラットフォームで試してみました)。
こんな感じで使っています

i18nの場合、任意のjavascripti18nライブラリを使用できます。私は独自の簡単なソリューションを作成しました。

于 2012-12-11T07:12:00.793 に答える