2011-12-20 11 views
0

私はプロジェクトに取り組んでおり、英語、フランス語、スペイン語の3つの言語が用意されています。これは、ユーザーがサインアップするときに定義されます。PHP設定ファイルでさまざまな言語を扱うにはどうすればいいですか?

は今私のconfigファイルで、私は次のようにあります

define("DEFAULT_SLOGAN", "The default slogan will go here."); 

私は、異なる言語を受け入れるために必要なことを実現し始めたまで。

ユーザーには、割り当てられた言語コード(EN、FR、SP)が割り当てられています。どのように私は各ページの異なる言語の文字列を持って行くだろうか?

define("DEFAULT_SLOGAN_EN", "Slogan in english"); 
define("DEFAULT_SLOGAN_FR", "Slogan in french"); 
define("DEFAULT_SLOGAN_SP", "Slogan in spanish"); 

そして、各文字列には3つの異なるバージョンがありますか?これに接近する最善の方法はあまりありません。

ありがとうございます!

答えて

3

より良いアプローチは、作成することです

  • locale_definitions_EN.php含む

    ( "DEFAULT_SLOGAN"、 "英語のデフォルトのスローガンは、ここに行くだろうが。")を定義します。

    定義を含む

  • local_definitions_FR.php( "DEFAULT_SLOGAN" は、 "フランスのデフォルトのスローガンは、ここに行きます。");その後、

    など

とは

include "locale_definitions_$userLocale.php"; 

ような何かをこれは、あなたが使用されていない他の言語の定数を保持するためのメモリを必要としないという利点を有します。

+0

ありがとう、これは私にとっても最高のものだと思います。 – Drew

+0

これはかなり汚い解決策のように見えます。フランス語の翻訳がない場合は、最終的には英語の翻訳に戻ってほしいという要望に直面します。この方法では達成できません。あなたのプロジェクトの将来について考えてください;-) –

+0

@TomvanderWoerdt:これは別のレベルで処理されます! '$ userLocale'は**常に**利用可能であるため、FRが利用できない場合、それをENに設定することがフォールバックになります。 –

4

頻繁に使用される単純な戦略は配列です:

$lang['en'] = array(
    'DEFAULT_SLOGAN' => 'The default slogan will go here.', 
); 
// Same for other languages 

次に、あなたの実際のコードでは、$ LANGが利用可能であることを確認してください(あなたがこのためにglobalキーワードを使用することができます)と、これらの配列を使用しています。

関連する問題