Titaniumで多言語を実現します.


もっと読む
Titaniumには多言語のAPIが非常に便利に多言語国際化の機能を実現できるようになっていますが、一定の限界があります.appでいつでも異なる言語を変えられないので、携帯電話全体の言語設定を直接変更しなければなりません.
ここで紹介した方法で、直接にappでいつでも言語を変えることができます.実現も簡単です.もともとは公式のものと同じです.また違ったxml言語ファイルを読んで、関連言語を表示します.OK、無駄話は控えて、直接コードをかけましょう.

function L(text){

    var langFile = Ti.App.Properties.getString('lang');
    var file = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory,'languages/' + langFile + '.xml');
    var xmltext = file.read().text;
    var xmldata = Ti.XML.parseString(xmltext);
    var data = xmldata.documentElement.getElementsByTagName(text);

    Ti.API.info('lang:'+ JSON.stringify(data.item(0).text));

    if(data != null)
        return data.item(0).text;

    return "";
}
以上の簡単なfunctionは私達の欲しい効果を実現できます.最初の文
Ti.App.Propties.get String(‘lang’);
現在のアプリセッションから言語設定を取得します.もちろんこれはデータベースに保存してもいいです.でないと、アプリケーションをオフにして、次回再開します.二番目の文
var file=Ti.Filesystem.get File(Ti.Filesystem.reourcess Directory);
直接に関連する言語ファイルを取得することです.したがって、xmlの命名規則はあなたが設定した言語名と一致します.en-US.xml、zh-CSN.xml…
後のいくつかの文も多く説明する必要はありません.一見してXMLを読み取って属性値を取得するという意味です.ここで注意したいのはXMLファイルのフォーマットです.必ずルートが必要です.そしてキーと正しい言語文字を記入することができます.最初からここで押さえられました.以下はen-US.xmlの内容です.



title

Kは、この関数を呼び出します.以上のような言語keyはtitleです.
Ti.App.Propties.set String(‘lang’,‘en-US’);現在の言語を設定
Ti.API.info(‘title:’+L(‘title’);
現在の言語の文字を取得することができます.この方法で、ユーザーがいつでも現在の言語を交換することができます.