MVC3アプリケーションでグローバリゼーション/ローカリゼーションを実現しようとしています。言語ごとに異なるビューは必要ありません。どうすれば進められるか提案してください。サポートされているリンク/ URLは非常に役立ちます。
次のような他のアプリケーションと同じ方法でローカライズします。
PublicResXFileCodeGenerator
に変更します次のコードのように、ビューのテキストの代わりに翻訳を使用します。
@Strings.MyString
文字列はCultureInfo.CurrentCultureに応じてビューで自動的に翻訳されますが、これは自動的に設定されません
CurrentCulture
を変更する必要があります(Application_BeginRequest
にある可能性があります)。これをどのように行うかはあなた次第です。それを設定するルート値である可能性があります。または、ユーザーのブラウザ言語を読み取ることができます。
HttpContext.Current.Request.UserLanguages
で、ユーザーの好みの言語のリストを(順番に)見つけることができます。
Martin Boothのすばらしい答え (彼のMediaFireリンクが消える可能性がある場合)にいくつかの詳細を追加するには、次のようにします。
今のところ必要なのは英語とドイツ語( "de")だけなので、2つのファイルを使用しました。
各ファイルのプロパティについて、カスタムツールとカスタムツール名前空間の値をそれぞれ手動で入力する必要がありました。ファイル:
そして最後に、ルートWeb.Configファイル内の<system.web>
セクションの下に次のように入力しました。
<globalization uiCulture="auto" culture="auto" />
もちろん、Martinが説明しているように、Web.ConfigファイルのViewsフォルダー(つまり、ルートフォルダーではない)の下に名前空間ディレクティブも追加しました。
<add namespace="ViewResources" />
そして、ついに私の(部分的な)Razorビューで強く入力されたリソースにアクセスできるようになりました。
<h2>@ViewResources.Test1</h2>
ところで:これはMVC3だけでなくMVC4でも機能しました。
これはMVC3グローバリゼーション/国際化に関する非常に詳細な投稿です http://afana.me/post/aspnet-mvc-internationalization-part-2.aspx
必要な次のステップは、Javascriptライブラリをローカライズすることです。ここを見てください: MVC-JavaScript-localization-of-external-js-files