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