PHP のビルトイン Gettext / PO サポートを使用して国際化された Web サイトを持っています
echo _("string to be translated");
サイトはベータ版であるため、翻訳されない文字列がいくつかあります。デバッグを支援するために、gettext エラーをログに記録する方法はありますか? つまり、PO ファイル内で一致するエントリが見つからない PO の文字列をログに記録する方法はありますか?
PHP のビルトイン Gettext / PO サポートを使用して国際化された Web サイトを持っています
echo _("string to be translated");
サイトはベータ版であるため、翻訳されない文字列がいくつかあります。デバッグを支援するために、gettext エラーをログに記録する方法はありますか? つまり、PO ファイル内で一致するエントリが見つからない PO の文字列をログに記録する方法はありますか?
あなたがしたいことの問題は、実行時に未翻訳の文字列しか見つからず、実際に実行されたコード パスだけを見つけることです。すべての文字列を見つけるには何年もかかる場合があります。それまでの間、ログ ファイルを定期的に確認し、更新された翻訳をログ ファイルの内容と同期させる必要があります。それは翻訳に対する決定論的なアプローチではありません。
gettext を使用している場合は、それに適したワークフローを確立する必要があります。また、gettext ワークフローとツールチェーンはよく考え抜かれ、長年にわたってテストされています。
xgettext
msginit
して、抽出したテンプレート ファイルから PO ファイルを作成します。msgmerge
て、更新されたソース/POT ファイルを PO ファイルと同期させます。msgfmt
て PO ファイルを MO ファイルにコンパイルします。これは一言で言えば適切な gettext ワークフローであり、翻訳プロセスのほとんどの問題を説明しています。特に、翻訳者を分散させている場合は、通常、ソース コードの更新と翻訳の到着の間にタイム ラグと重複があります。自動化された文字列抽出とmsgmerge
ユーティリティがなければ、このプロセスは混乱に陥りやすいため、上記に固執する必要があります。ステップ。
その場合、gettext ユーティリティまたはPoeditなどのツールを使用していつでも PO ファイルをチェックし、どの文字列が翻訳されていないかを確認できるため、質問は無関係になります。
ベータ版では、 podebugなどのツールを使用して、疑似ローカリゼーションを実行することがおそらくより重要になります。したがって、PO文字列を抽出したら、それらをローカライズして、すべての文字列がUIで抽出されているかどうかを確認できます。