サイトでさまざまな言語パックを作成するためのベストプラクティスですか? PHP
-
06-07-2019 - |
質問
以前にサイト用の言語パックを作成したことがありますが、自分がしていることが最善の方法であるかどうかはわかりません。
基本的に、文字列定数を定義する変数を含むファイルのみがあります。通常、配列はサイトの特定の要素を参照する配列のセットです。
サイトコードには、フラグに基づいて適切なファイルが含まれているだけで、適切な配列要素がエコー出力されます。
メンテナンスの頭痛とパフォーマンスを減らすためにこれを行ういくつかの方法は何ですか?
解決
Zend_Translate を使用することをお勧めします。人々がここに残した他の提案を幾分組み合わせたものであり、保守性と設計性が向上しているだけです。
好みに応じてアダプターを切り替えることができます(gettext、csv、その他多数をサポート)。グローバルスコープを汚染する定義やグローバルを必要とせず、十分に文書化されています。
他のヒント
PHPで使用できる最良のオプションは、 GetText ただし、すべてのサーバーに組み込まれているわけではないため、サーバーを管理している場合は、それがショーストッパーになる可能性があります。
これを行う最も一般的な方法は次のとおりです。
1) define( 'SOME_STRING'、 'Some string');
を使用します-言語ごとにこれらの定義を詰め込んだ異なるファイルを用意します。これは非常に簡単で、「グローバル」を使用する必要はありません。いたるところに。
2)文字列を関数でラップします: translate( 'My String')
-コードを解析して翻訳する文字列のリストを作成し、変数などの機能を追加できるため、これはより柔軟です、例えば translate( 'I count to [number]'、10);
(もちろん、通常は" _"のような短い関数名を選択します)