122

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

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

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

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

2 番目のケースでは、Web.config を介したアプリケーション ベースの構成だけで、これらの異なる言語が異なる URL を指すようにすることはできますか?

4

9 に答える 9

73

ASP.NETMVC2ローカリゼーションの完全ガイドとASP.NETMVC2モデルのローカリゼーションによる検証もここで確認できます。これらの全体は、ASP.NETMVC2を使用している場合に役立ちます。

于 2010-03-16T14:58:37.927 に答える
22

従来の ASP.NET Web フォーム アプリケーションとほぼ同じ方法で、ASP.NET MVC アプリケーションをローカライズします。

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

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

于 2008-10-10T20:03:25.340 に答える
9

残念ながら、Matt Hawley の元のコードは 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

于 2009-08-04T18:27:07.587 に答える
3

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

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

于 2008-10-11T05:54:54.587 に答える
2

Elijah が提案するように、フォーム内でローカリゼーションを処理することについて、私は確信が持てませんでした。長さと方向が異なると、フォームが非常に複雑になったり、見栄えが悪くなったりする可能性があります。

私はMVCを始めたばかりですが、言語に関係なく同じコントローラーを使用したい分離方法を採用しています(言語をビューとして扱います)-これにより、 /Controller/Action/language/form が得られます

于 2009-11-24T15:54:51.170 に答える
2

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

于 2010-07-29T14:44:04.150 に答える
1

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

于 2012-10-10T15:31:18.973 に答える
0

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

于 2011-04-22T01:37:20.340 に答える
-1

そして、別のソリューションのための別のチュートリアル

チュートリアル: 言語検出を使用して ASP.NET MVC ローカリゼーションを作成する

于 2010-06-26T11:25:41.197 に答える