2011-12-05 12 views
2

私は多言語サイトを開発しています。Zend翻訳 - ユーザーごとにロケールを設定する

私はZend_RegistryにZend_Translateオブジェクトを配置しました。これを使用して、すべての静的テキストを選択したロケールに変換します。

私の質問は、ユーザーが別の言語を選択したときのロケールの変更方法です。

翻訳オブジェクトをレジストリから取得し、setLocaleを呼び出してレジストリに再度挿入すると、そのユーザーまたはアプリケーション全体で保持されますか?

ありがとうございました。

+0

コントローラプラグインを使用してzendのロケールを設定することがレジストリで動作することが判明しました。これが唯一の方法ですか? – Ran

+0

おそらく*ほんの1つではありませんが、URLパラメータに基づいて設定したい場合は、少なくとも最も便利だと言います。 – mingos

答えて

2

あなたはそのためのプラグインを使用する必要があります。

要するに、プラグインを作成し、routeStartup()routeShutdown()メソッドを追加します。前者の場合は、要求パラメータにロケール文字列を設定し、必要に応じてrequesr URIにロケール文字列を含めるように設定します。正しいロケール文字列の検出はあなた次第です。クッキー、URLパラメータ、ブラウザの受け入れ可能な言語ヘッダ、またはこれらの3つの組み合わせを使用できます。後者の場合は、先に設定したロケールに基づいてオブジェクトZend_Translateを作成します。

ここはhow it looks like in my CMSです。

ここにはtutorial regarding the use of the language parametre in the URLがあります。 how I do it in my CMSをチェックすることもできます(_initRouterメソッドを参照)。

この情報が役立ちますようにお願いいたします。

0

使用Poeditため..goこのリンクスルーこの目的のために、より

techie.ayyappadas.com/how-do-use-poeditor 
+0

翻訳ファイルがあります。選択した言語を変更するオプションをユーザーに与えるためにphp(zend)コードが必要です。 – Ran

関連する問題