動的変数を国際化したい。
次のコードがあります。
_e($widget['description'], MyStaticClass::$i18n_prefix);
poedit を実行すると、この国際化 ( $widget['description']
) は行われません。
どうすれば動的にできますか?
ありがとう
動的変数を国際化したい。
次のコードがあります。
_e($widget['description'], MyStaticClass::$i18n_prefix);
poedit を実行すると、この国際化 ( $widget['description']
) は行われません。
どうすれば動的にできますか?
ありがとう
とは PHP のネイティブ関数_e()
などのラッパーであると想定しています (間違っている場合は修正してください)。ファイルをスキャンして .po または .pot ファイルにインポートする場合、変数は PHP によって解釈されないため、代わりに変数の宣言でそれを行う必要があります。このような:__()
gettext()
$widget['description'] = _e("your text here", MyStaticClass::$i18n_prefix);
そして、あなたは好きなように使うことができます$widget['description']
。それを別の文字列の一部として含めたい場合は、次を使用できますsprintf
。
$var = sprintf(
_e("Write %s please", MyStaticClass::$i18n_prefix),
$widget['description']
);
エコー$var
すると、 が生成されWrite your text here please
ます。翻訳者は、翻訳対象の 2 つの文字列your text here
とWrite %s please
. %s
また、定義された接頭辞を使用してコメントを含め、その部分が明確でない場合に翻訳者に知らせる必要があります。コメントは、関数の上の前の行にある必要があることに注意してください_e()
。