2

Gettext を使用してサイトを翻訳していますが、最近、翻訳チームにいくつかの問題が見つかりました。

次のような文字列があります...

やあボブ今晩あなたは* 3 つ**風船*を獲得します

そして、私たちはこのようなものを手に入れます...

sprintf("Hi %s this %s you %s %s %s %s", $name, $action, $number, $color, $object);

問題は、私たちの翻訳チームが変数の順序を知らないことです...そして、彼らがその「エンコード」文字列を正しく翻訳することは非常に困難です。

Hi %s this %s you %s %s %s %s

この複雑な文字列をどのように処理できますか?

4

2 に答える 2

1

最後に、私たちは私たちにとって最善の方法を見つけました。

次のような文字列があります

sprintf("こんにちは %s この %s あなたは %s %s %s %s", $name, $action, $number, $color, $object);

次に、このようにde varsの位置を変更できます

sprintf("こんにちは %1$s この %2$s あなたは %3$s %4$s %5$s %6$s", $name, $action, $number, $color, $object); 翻訳チームは、番号を変更するだけで位置を変更できます

それから...最も重要なこと...これらの変数が何であるかを翻訳チームに伝えてください... gettext のようなコメントを付けて...

<!-- //Hi translator... The variables are $name, $action, $number, $color, $object -->
sprintf(_('Hi %1$s this %2$s you %3$s %4$s %5$s %6$s'), $name, $action, $number, $color, $object);

オプション -c を xgettext 行に追加すると、このコメントを .po ファイルの中に入れることができます。

これがあなたにとって素晴らしい解決策になることを願っています

于 2013-06-04T16:15:52.093 に答える