2009-11-16 17 views
5

多言語アプリケーションをPHPで設計する方法はたくさんあります。いくつかの言語ファイルベース、他のデータベースベース。 ほとんどの段落で -PHP - 多言語アプリケーションの設計

  • 私は、テキスト例えば、エラーのほとんど 少量のためにそれを使用することを探しています。

  • 私は十二人かかりそうだと思います。
    言語です。

本当に私は決定的な答えではなく、推奨事項を探しています。最も簡単更新する最速のあるものは何あなたが前に使用している、など

多くのおかげで、

答えて

8

機能のGettext家族は良い出発点である:

gettextの機能がNLS 実装(母国語サポート)API を使用して PHPアプリケーションを国際化することができます。

Zend_Translateは非常に柔軟で、gettextのスレッドセーフ実装です。それはネイティブの国際化の実装で、次のような問題に対処し、手動状態:

  • 一貫性のないAPI:異なるソース フォーマットのための単一のAPIはありません。例の のgettextの使用は非常に複雑です。
  • PHPはgettextとネイティブ配列のみをサポートしています。つまり、PHP自身がarrayまたはgettextのサポートを に提供しています。 ネイティブサポートがないため、他のソース形式はすべて に手動でコード化する必要があります。
  • デフォルト言語の検出なし: のデフォルト言語ユーザーが別のWebブラウザのための背景 の 深い知識なしに検出することができません。
  • Gettextはスレッドセーフではありません。PHPのgettextライブラリはスレッドセーフではなく、マルチスレッド環境では使用しないでください。これは、PHPではなくgettext自体の問題が原因ですが、既存の問題です。

それはZend Frameworkフルスタックのフレームワークではないことは注目に値する - 言い換えれば、あなたはその国際化APIを利用するには、単に全体を使用する必要はありません。

本当に好きなのはmultiple adapters for different data sourcesのサポートです。アプリケーションに非常に軽い変更を加えるだけで簡単にミックス、マッチ、変更ができます。希望が役立ちます。

0

私は両方のソリューションを扱っています。 (データベースとフラットファイル)しかし、私は別の視野角を与えるでしょう。アプリケーションやソフトウェアを設計するときには、最初から考えなければならないもう一つの重要な点があります。言語項目をデータベースとフラットファイルに保存します。データベース(またはテーブル)とテキストファイルの言語サポートが重要です。あなたがlatin 1データベースにトルコ文字を保持しようとすると、いくつかの問題に直面します。トルコ語がその一例です。データベースは、言語項目の文字をサポートする必要があります。

関連する問題