2011-08-02 6 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

가>를 선택하려면 okie와 다른 언어를 설정할 수 있습니다. 그리고 각 요청에 대해 링크

죽은 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

,

당신은 오류 메시지에 resourcenames를 추가 할 수 있습니다. 예를 들어

:

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

내가 세계화/지역화

관련 문제