私は、GetText で Zend フレームワーク Zend_Translate を使用する PHP 部分の複数の言語に翻訳したいプロジェクトを持っています。今度はJS部分も翻訳したいです。
私は jQuery JS Framework を使用しています。JS ファイルの翻訳についてのご意見をお待ちしております。
私は、GetText で Zend フレームワーク Zend_Translate を使用する PHP 部分の複数の言語に翻訳したいプロジェクトを持っています。今度はJS部分も翻訳したいです。
私は jQuery JS Framework を使用しています。JS ファイルの翻訳についてのご意見をお待ちしております。
3 つのプロジェクトで JavaScript ファイルの翻訳に GetText を使用しました。
もちろん、GetText はネイティブで JavaScript をサポートしておらず、JavaScript も GetText をサポートしていません。私の解決策は次のとおりです。
gettext("your text here")
。xgettext
、生成された C ファイルと、プロジェクト内のその他のファイルに対して を使用して、POT ファイルと PO ファイルを生成します。PO ファイルを翻訳した後、翻訳を JavaScript に戻す必要があります...
たとえば、エストニア語 (例: et_EE.js
) のロケール ファイルは次のようになります。
var LOCALE = {
"Hello": "Tere",
"My name is %s": "Minu nimi on %s",
"Enter your credit card number": "Sisesta oma krediitkaardi number"
};
function gettext(string) {
return LOCALE[string] ? LOCALE[string] : string;
}
選択したロケールに応じて、含めるet_EE.js
か、en_US.js
または...
en_US.js
おそらく次のものだけが含まれます。
function gettext(string) {
return string;
}
については少しトリッキーですngettext()
が、一般的な考え方は理解できるはずです。
素晴らしい点は、既に利用可能なすべての gettext ツールを使用できることです。特に、PHP と JavaScript の両方に翻訳可能なテキストがある場合、同じツールを使用して両方を翻訳でき、同じ文字列が JavaScript と PHP の両方で同じ方法で翻訳されるようにすることもできます。
注: JavaScript を多用する Web アプリを扱っていない場合は、最初に JavaScript によってページ コンテンツを作成する前によく考えてください。
これも興味深いかもしれません: jQuery の gettext プラグイン。
文字列を拡張して、ロケール内の受信者をルックアップする、変換された関数を与えることができます。
次のように使用します。
alert("あなたの好きな言語は英語です!".translated());
そして、「tu idiom prefiero es Espanol」などのアラートが表示されます。
ニコ
// just for some idea
//var language ="fr_FR";
var language ="sp_SP";
var FRLOCALE = {
"Hello": "bonjure ",
"My name is %s": "mo nome oc ",
"what": "some french thing"
};
var SPLOCALE = {
"Hello": "Spanish for hello",
"My name is %s": "spanish for my name is ",
"what": "qu"
};
function translated(language, string){
if (language.indexOf("fr") > -1) {
return FRLOCALE[string] ? FRLOCALE[string] : string;
}
if (language.indexOf("sp") > -1) {
return SPLOCALE[string] ? SPLOCALE[string] : string;
}
return string;
}
alert(translated(language,"Hello"));
alert(translated(language,"some thing not translated "));
http://plugins.jquery.com/project/jquery-localizeがこれを見つけました。これは、letmegooglethatforyou.com によって使用され、http: //plugins.jquery.com/project/l10n どちらが優れているかを見つけました。
いくつかの言語でも存在する PHP Web ページがあります。私は PHP で独自の言語クラスを作成しました。JavaScript ファイルのローカライズに関しては、.js ファイルも PHP として実行するようにサーバーを構成し、PHP クラスを使用して JavaScript 文字列を変換しました。
このようなもの:
alert ( '<?php echo $l->Get ( 'MyString' ); ?>' );
すべての JavaScript ファイルの先頭に「$l」を初期化するファイルを含めるだけです。これで問題ありません。