2012-04-11 9 views
0

Cakeの「組み込み」ローカリゼーション機能の素晴らしいレビューのために、CakePHP 2.1.xでデュアル言語アプリケーションを構築しています。しかし、私はこの強力な機能を動作させることに取り組んでいます。CakePHP 2.1での国際化とローカリゼーション

私はこのトピックは、以前のケーキのバージョン(hereherehere、およびhere)のために取り組まれているが、それはケーキの2.x用の解決されていないことを知っています - 私は別のサブドメインを行うにはしたくないものの

カップル:私はまた、これらの記事料理の中を(はい、私はマニュアルを読んだ)を参照しています言語ごとに代わりに、ボタンのクリック(この場合はフラグアイコン)でURLベースの言語切り替えを優先します。サイトは積極的に維持されるため、コンテンツは動的に更新する必要があります。 2つの別々のサイト/データベースを維持するようクライアントに依頼することは問題になりません。

PostModelに翻訳動作を設定しましたが、動作しているかどうかはわかりません。また、I18nをコンソールで実行してI18nを初期化し、データベーステーブルが存在していることを確認し、自分の.poファイルを設定して、すべてのコンテンツを__()にラップしました。しかし、ブラウザのデフォルト言語をフランス語に変更すると、サイトは英語のままです。

私はP28nコンポーネントを試しましたが、Cake 2.xでは古くなったと思います。私はURLベースの言語切り替えをnuts-and-bolts-of-cakephp articleに基づいて試しましたが、明らかに新しいCakePHP APIと互換性がありません。

誰かがCakePHP 2.xで動作するチュートリアルや指示の指示に私を指摘できますか?まだここでは参照されていない

更新:私はこの記事を見つけました:http://www.localizingjapan.com/blog/2011/11/10/localizing-a-cakephp-application/comment-page-1/#comment-7467。誰でもCakeSession::write('Config.language', 'fre');setlocale("LC_ALL", "fr_FR.utf8");のコードをどこに置くか知っていますか?

答えて

0

単純にコードをAppController :: beforeFilter()に入れて、ポストリクエストまたはURLの一部から言語を取得するだけで、値を設定します。

+0

ありがとう、burzum!ここでは、私の 'beforeFilter()'はAppControllerの中にあります: 'public function beforeFilter(){ \t parent :: beforeFilter(); \t CakeSession :: write( 'Config.language'、 'fre'); \t setlocale( "LC_ALL"、 "fr_FR.utf8"); \t $ this-> Auth-> allow( 'index'、 'view'、 'home'、 'display'、 'logout'); } ' – deewilcox

+0

これまでのところ、それはサイトに影響を与えていないようです。ここにURL:puzzle.leadingedgecommunications.netがあります。また、ボタンをクリックするとロケールが変更されます。それ、どうやったら出来るの? – deewilcox

+0

問題は私の.poファイルにありました。私はまた、setlocale()を全く必要としなくなりました。 – deewilcox