web-dev-qa-db-ja.com

ASP.NET MVCアプリケーションをローカライズする方法は?

ASP.NET MVCアプリケーションをローカライズするためのベストプラクティスは何ですか?

次の2つの状況について説明します。

  • IISで複数の言語を処理する1つのアプリケーション展開
  • 1つの言語/アプリケーションの展開。

最初の状況では、〜/ View/EN、〜/ View/FI、〜/ View/SWEなどのビューベースのものを使用する必要がありますか?

2番目のケース、Web.configを介したアプリケーションベースの設定だけで、これらの異なる言語を異なるURLにポイントする場合はどうでしょうか?

120
pirho

こちらもご覧ください ASP.NET MVC 2ローカリゼーション完全ガイド および ASP.NET MVC 2ローカリゼーションによるモデル検証 ASPで作業する場合、これらの全体が役立ちます。 NET MVC 2。

71
fyasar

ASP.NET MVCアプリケーションは、従来のASP.NET Webフォームアプリケーションと同じようにローカライズします。

言語ごとに異なるページ/ビューを使用することはありませんが、各ページはサテライトアセンブリを使用して複数の言語をサポートします。

Matt Hawleyのブログエントリ を参照して、詳細な説明と例を確認してください。

22
Elijah Manor

残念ながら、マットホーリーの元のコードはASP.NET MVCのリリースバージョンでは機能しません。更新された投稿を確認してください: http://blog.eworldui.net/post/2008/10/ASPNET-MVC-Localization-via-View-Engines.aspx

一般に、ローカリゼーションプロセスは、VS 2008/ASP.NET MVCの世界では従来のWebフォームほどスムーズではありません。 http://www.guysmithferrier.com/post/2009/05/Localizing-ASPNET-MVC.aspx

9
kevintechie

Rob ConneryのMvcStoreプロジェクトをご覧ください。彼は、グローバリゼーションの問題を解決する1つの方法を示すスクリーンキャストを行います。

http://wekeroad.com/2008/04/24/mvcstore-part-5

3
Joel Cunningham

Elijahが示唆するように、フォーム内でローカライズを処理することを確信したことはありません。長さと方向が異なると、ナフに見えるフォームが非常に複雑になったり変化したりする可能性があります。

私はMVCから始めているだけですが、言語に関係なく同じコントローラを使用するためにあなたが望む分離方法を採用しています(言語を単にビューとして扱う)-これは/ Controller/Action/language/formを与えます

2
Ian T

DisplayNameのローカリゼーション、検証、ルーティングの使用(カルチャ名をURLに保存)、出力キャッシュの問題など、すべての側面をカバーするasp.net mvcアプリケーションのローカライズ方法に関する最近の更新に関する優れたチュートリアルがあります... Alex Adamyanブログ-キーボードがやさしく泣きながら

2
user405803

DataAnnotationsMetadaDataProvider をオーバーライドすることで、実際にはまったく異なるものになりました。そこで、DisplayNameAttribute値が正しい言語に解決されることを確認できます。実際には、その属性を取り除き、それが助けになる場合にのみフィールド名で解決することさえできます。

1
Michael Sander

少し前にこの記事を書きました。カスタムビューエンジンを使用します。 http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/

0
Vlad