2009-03-18 5 views
0

私のプロジェクトでは、すべてのページがいくつかの言語で翻訳可能です。そのために、私は各アクションにサイトランゲージパラメータを渡します。私のカスタムベースコントローラクラスはこの "siteLanguage"パラメータをキャッチし、さらに翻訳ロジックを処理します。私のsiteLanguageパラメータを置く場所(クロスカット懸念?)

これはうまくいきました。私のベースコントローラがそれを捕まえることができるように、すべてのアクションプロシージャの署名にsitelanguageという文字列を追加する必要があります。私は実際のアクションロジックではこのパラメータで何もしません。

これを行うには良い方法がありますか?

+0

CurrentCultureとCurrentUICultureを使用することはどうですか? –

+0

まず、信頼性がありません。第二に、すべての国籍の人々が働くターミナルで使用されます。 –

+0

どのように信頼性がありませんか? Accept-Languageヘッダーなどに基づいて設定することができます。それらは設定されたままになり、すべての文化に敏感なコードによって使用されます。キオスクの場合は、ユーザーが選択できるようにして、CurrentCultureをユーザーの選択から設定します。 –

答えて

1

私はセッション言語をセッションに入れ、コントローラがビューにそれを渡すようにしたり、多分、ビューがそこからそれを取得できるようにしたりします。

私は文化とCurrentCultureなどを提案したいと思いますが、あなたがフランスからログオンする英語を話す人なら、それらはうまくいきません。私は通常、あなたのサイトがログオンを必要としないかもしれないと思っていますが、データベースのユーザーの好みで言語を結び付けています。

関連する問題