0

こんにちは、質問が 2 つあります。

まず、Web サイトに 2 つの言語を表示したいと考えています。ユーザーがフラグをクリックして言語を変更するとします。問題は、すべてのデータがデータベースに書き込まれているため、実装するために拡張子が .po の言語ファイルを使用したくないことです。CakePHP のフレームワークがなければ、たとえば ?lang=en の GET 変数を渡すと、適切なレコードを読み取ることができます。CakePHP で同じロジックを使用する場合、コントローラー内のすべての関数にこの変数を含める必要があります。私のリンクは /product/en/2 のようなものになります。(しかし、デフォルト言語で何が起こったのか、そこにも含める必要があります...)私の主な質問は、たとえばSESSIONなどの別のソリューションを使用してこれを処理できるかどうかですが、ユーザーが別の言語をクリックしたときにSESSION変数を変更するにはどうすればよいですか? ??

私のメインメニューにも同様の問題があります.default.ctpファイルのヘッダーに私のメニューを含めたいのですが(これも動的です)、どうすればこれを達成できますか? デフォルト ファイルのメイン コントローラはどれですか。? ? (データベースから値を読み取る関数を実装するため)。

大きなメッセージと私の英語で申し訳ありませんが、私はCakePHPとMVCロジックの一般的な初心者なので、プレーンなPHPで書いていた方法から少し混乱しています.

ありがとう!

4

1 に答える 1

0

言語設定にparamsという名前のケーキを使用し、ルーターを使用して/ lang:engを/eng/に書き換えます。

AppController :: beforeFilter()で、この設定とセッションを確認、設定、変更できます。これは、他のすべてのコントローラーが継承するメインコントローラーです。

非常によくできた公式ドキュメントを読むことは、通常、非常に役立ちます。http: //book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html#localization-in-cakephpを参照してください。ここに書いた。

于 2012-05-24T13:37:47.303 に答える