0

私の特定のケースの例が見つかりませんでした。

Kohana 3.3 で多言語 Web サイトを作成しています。次のような URL を作成する必要があります。

http://example.com for English version
http://es.example.com for Spanish
http://fr.example.com for French

等々。しかし、私が見つけることができたすべての例は、http://example.com/lang/

目標を達成するために何をしなければなりませんか? 言語ごとに異なるアプリケーションを作成してから調整する必要があり.htaccessますか? または、URL から言語を読み取る方法があります (lang.example.com の場合)。

4

1 に答える 1

0

私はこれをやったことがないので、問題に直面したかのように問題にどのようにアプローチするかを説明しようとしているだけです.

まず、サーバーのセットアップから始めて、すべてのドメインが 1 つの単一のアプリケーションを指すようにします (既に配置されていると仮定します)。

次に、 でlanguage を設定するbootstrap.phpときに、Web サイトにアクセスする URL に基づいて言語を定義するヘルパー関数を使用すると、ブートストラップはおそらく次のようになります。

/**
 * Set the default language
 */
I18n::lang(MyApp::get_request_language_code());

MyApp::get_request_language_code()I18n クラスに使用される言語コードに一致する文字列を返すことを期待しています。このヘルパーは、URL が無効な場合 (xxx.example.com など) にもリクエストをリダイレクトする必要があります。

次に、おそらく次を使用してベース URL を設定し$_SERVER['HTTP_HOST']ます。

Kohana::init(array(
    'base_url'      => $_SERVER['HTTP_HOST'],
));

または、実際のドメインと連結するドメインプレフィックスを返す別のヘルパー関数があります。

Kohana::init(array(
    'base_url'      => MyApp::get_request_language_url_prefix().'example.com',
));

Kohana::init() 中に言語プレフィックスを使用してドメイン名を設定することによりbase_url、ルートまたは URL クラスのいずれかを使用して生成されたすべての URL に適切な言語が含まれていることを確認します。

そして、それが私が自分の問題を解決しようとする方法です。繰り返しますが、ここでは問題の解決策を見つけようとしているだけであり、上記のアプローチはテストされていないことを強調したいと思います。

于 2013-03-30T22:45:25.710 に答える