4

そのため、Titanium の言語ファイルを使用して、さまざまな場所でアプリ全体で再利用したい TSS プロパティを提供しています。これらの言語ファイル変数は、テーマ フォルダー (またはその他の TSS ファイル) で使用する必要があります。

現在、単一の言語で動作しますが、私のアプリには複数の言語があります。しかし、すべての言語の言語ファイルを複製したくありません。ファイルをどこかにコピーしなくても、複数の言語で同じファイルを再利用できますか?

4

3 に答える 3

0

ISO 639-1 表現で i18n ファイルを使用します。

そのファイルでは、任意の言語を使用でき、Ti.Locale.getString()で各「ラベル」を使用できます。

また、app.js でファイルの require を使用して、この変数を global のように配置することもできます。

language.js (例):

var language = (function() {

    var self = {
        currentLanguage: 'en' // by default
    };

    var labels = {
        msgHello: {
            en: 'Hello World',
            es: 'Hola Mundo'
        }
    };

    self.changeLanguage = function changeLanguage(newLanguage){
        self.currentLanguage = newLanguage;
    };

    self.getLabel = function getLabel(key, language){
         if(typeof language !== 'undefined') {
             return labels[key][language];
         }
         else return labels[key][self.currentLanguage];
    };

    return self;

}());

module.exports = language;

app.js (例):

var appLanguage = require('language.js');

(function() {

    Ti.API.info("Language: "+appLanguage.currentLanguage);
    Ti.API.info("MSG Hello World (English): "+appLanguage.getLabel(msgHello));
    Ti.API.info("MSG Hello World (Spanish): "+appLanguage.getLabel(msgHello, es));

}());

appLanguage 変数は、任意のファイルで直接使用できます。

于 2014-08-25T18:09:16.493 に答える