2011-08-02 11 views
4

私はこのようなコードを使用しています:さまざまな言語のMVCデータ注釈?

@Html.LabelFor(m => m.Login.Password, new { @class = "adm" }) 
    @Html.PasswordFor(m => m.Login.Password, new { @class = "adm", size = 30 }) 
    @Html.ValidationMessageFor(m => m.Login.Password) 

私のデータの注釈/メッセージ/ラベルはすべて英語であるとそれが正常に動作します。しかし、私は複数の言語を持ち、それらの間で切り替えることができる何らかの方法がありますか?

サイトに日本語と英語を選択する言語セレクタがある場合はどうなりますか?言語ごとに異なるデータ注釈を付けることはできますか?あなたはグローバリゼーション/ローカリゼーションを使用する必要があります

答えて

5

1のためのリソースファイルに関するいくつかのより多くの情報をあなたの外観を示唆2>次にモデルを作成する

public class User 
{ 
    [Required(ErrorMessageResourceType=typeof(Languages.Resource),ErrorMessageResourceName="required")] 
    [Display(ResourceType=typeof(Languages.Resource),Name="name")] 
    public string Name { get; set; } 

} 

3>あなたのビュー

4>さまざまな言語を選択して設定するには:溺れたメニュー(または任意のもの)を作成してから、サーバー上で選択した言語をCookieに保存します。そして、リクエストごとにリンク

死んでいるHaackedにリンク

http://haacked.com/archive/2011/07/14/model-metadata-and-validation-localization-using-conventions.aspx/

+0

下に確認してくださいとして

string currentChoosenLanguage= readFromCookie(); //or may be from Database, whatever suits you CultureInfo ci = new CultureInfo(currentChoosenLanguage); //i think jp: for japanese System.Threading.Thread.CurrentThread.CurrentUICulture = ci; Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name); 

以下current_culture_info設定。これには関連情報があります:http://haacked.com/archive/2011/07/14/model-metadata-and-validation-localization-using-conventions.aspx/ – Jowen

1

あなたはあなたのエラーメッセージにresourceNameのを追加することができます。例えば

[Required(ErrorMessageResourceName= "PasswordRequired", ErrorMessageResourceType = typeof(MyResource)] 

私はあなたがそれぞれの言語

のためのリソースファイルを作成する必要があります>グローバリゼーション/ローカリゼーション

関連する問題