一日の終わりに、翻訳者は座って、すべての言語のテキストを変更できるようにする必要があります (意味が一致するようにするため)。
gettext
これは、適切な答えは、このような文字列を配置する場所の変更されたバージョンを使用することであるように感じさせます
_(id, backup_text, context)
_('ABOUT_ME', 'About Me', 'HOMEPAGE')
コンテキストはオプションです
なぜこのような?他の場所で繰り返される可能性のある英語ではないテキストを一意の ID を使用してシステム内のテキストを識別する必要があるためです。
また、矛盾を減らすために、コード内の同じ場所にバックアップ、ID、およびコンテキストを保持する必要があります。
ID も読み取り可能である必要があり、これは同義語や重複使用 (ID としても) の問題をもたらします。
- 人々は最初にこれを行うのを忘れ、後で変更するのは問題です
- システムがIDとコンテキストの両方でグループ化できるため、より柔軟です
そのため、最後にコンテキスト変数も追加しました
バックアップ テキストはほとんど何でもかまいません。
「poedit」などの現在の gettext 編集プログラムでは機能しませんが、先頭にアンダースコアを付けずに「t()」のように翻訳用のカスタム変数名を定義できると思います。
gettext もコンテキストをサポートしていることは知っていますが、十分に文書化されておらず、広く使用されていません。
PS私は、良い拡張可能なコードを強制するための最良の変数の順序について確信が持てないので、提案は大歓迎です。