私はいつもgettextについて聞いたことがあります-提供された文字列引数に基づいて翻訳を検索し、.potファイルを生成するのはある種のUNIXコマンドであることは知っていますが、誰かが素人の言葉でこれがどのように処理されるかを説明できますか?ウェブフレームワーク?
確立されたフレームワークがどのようにそれを行っているかを見て回るかもしれませんが、実際に物事を掘り下げて独自のソリューションを提供する前に、全体像をもう少し明確にするのに役立つ可能性があるため、素人の説明が役立ちます.
私はいつもgettextについて聞いたことがあります-提供された文字列引数に基づいて翻訳を検索し、.potファイルを生成するのはある種のUNIXコマンドであることは知っていますが、誰かが素人の言葉でこれがどのように処理されるかを説明できますか?ウェブフレームワーク?
確立されたフレームワークがどのようにそれを行っているかを見て回るかもしれませんが、実際に物事を掘り下げて独自のソリューションを提供する前に、全体像をもう少し明確にするのに役立つ可能性があるため、素人の説明が役立ちます.
gettextシステムは、同じ文の異なる言語の翻訳を含むソーステキストファイルから作成された一連のバイナリファイルから文字列をエコーします。
ルックアップキーは「基本」言語の文です。
ソースコードには次のようなものがあります
echo _("Hello, world!");
言語ごとに、キーと翻訳されたバージョンを含む対応するテキストファイルがあります(printf関数で使用できる%sに注意してください)
french
msgid "Hello, world!"
msgstr "Salut, monde!"
msgid "My name is %s"
msgstr "Mon nom est %s"
italian
msgid "Hello, world!"
msgstr "Ciao, mondo!"
msgid "My name is %s"
msgstr "Il mio nome è %s"
これらは、ローカリゼーションを作成するために実行する必要がある主な手順です
locale / de_DE / LC_MESSAGES / myPHPApp.mo
locale / en_EN / LC_MESSAGES / myPHPApp.mo
locale / it_IT / LC_MESSAGES / myPHPApp.mo
次に、phpスクリプトで使用する必要のあるロケールを設定する必要があります
PHPマニュアルの例は、その部分について非常に明確です。
<?php
// Set language to German
setlocale(LC_ALL, 'de_DE');
// Specify location of translation tables
bindtextdomain("myPHPApp", "./locale");
// Choose domain
textdomain("myPHPApp");
// Translation is looking for in ./locale/de_DE/LC_MESSAGES/myPHPApp.mo now
// Print a test message
echo gettext("Welcome to My PHP Application");
// Or use the alias _() for gettext()
echo _("Have a nice day");
?>
常にphpマニュアルから良いチュートリアルをここで探してください