2

ASP.NET 코어의 모델을 확인하는 데 DataAnnotation을 사용합니다.영어 이외의 특정 언어로 된 ASP.NET 코어 모델 오류가 발생합니다.

class MyModel { 
    [Required] 
    [Display(Name = "Seitentitel")] 
    public string Title {get;set;} 
} 

이 나에게 Seitentitel 필드가 필요한 유효성 검사 오류 메시지를 denglish을했다 : I는 필수 필드가있을 때의이 예처럼없는 때, 나는 영어로 오류 메시지를 받았습니다. 그러나 저는 특정한 언어로,이 경우 독일어로 메시지를 보내고 싶습니다. 내 모델의 각 필수 속성에 대해 ErrorMessage을 설정하는 것을 피하고 싶습니다. 대부분의 경우 기본 오류 메시지가 좋지만 잘못된 언어로 표시됩니다.

유효성 확인 메시지의 언어를 어떻게 설정할 수 있습니까? 일반 대신, ASP.NET 코어 정체성에 대한 https://stackoverflow.com/a/38199890/5426333하지만하지 : ASP.NET 코어가 그 번역을 제공하지 않는 경우

var supportedCultures = new[] { new CultureInfo("de-DE") }; 
      app.UseRequestLocalization(new RequestLocalizationOptions { 
       DefaultRequestCulture = new RequestCulture("de-DE"), 
       SupportedCultures = supportedCultures, 
       SupportedUICultures = supportedCultures 
      }); 

, 나는 이런 식으로 뭔가가 필요합니다

나는 성공없이이 일을 시도 이 경우와 같이 필수 필드가 누락 된 유효성 검사 메시지

답변

0

오류 메시지의 언어가 .net 설치에 따라 다르다고 나는 믿을 수도 있습니다. 영어 버전을 다운로드하는 경우 .net 버전을 제거하고 독일어 버전을 설치해야합니다.

이 당신은 당신의 속성에 RESX 파일이나 하드 코딩을해야합니다 메시지의 LANG을 변경 나던 경우 (예로서, 웹 설정에서 기본 LANG을 설정할 수 있습니다

:

<system.web> 
    <globalization uiCulture="de-DE" /> 
</system.web> 

하는 경우 web.config 파일이 아니라면 각 요청에 대한 global.asax 파일의 정보를 변경해야합니다.

다른 경우에는 표시 할 텍스트를 저장하기 위해 리소스 파일. * .resx를 사용해야합니다.

이들에 대해 조금 읽을 필요가 있습니다. 그 (것)들을 가진 당신의 경험의. 그렇다면 시작하기 좋은 곳은 Walkthrough: Using Resources for Localization with ASP.NET입니다. 본질적으로 키/값 쌍입니다. 언어 당 파일이 있습니다.

[Required(ErrorMessageResourceName = "MyResourceKey", ErrorMessageResourceType = typeof(Your.Namespace.To.your.Resource.File))] 
public string SomeString{ get; set; } 

가 그런 상관없이 언어 런타임에 제시되어있다 (당신이 설정을 가지고있는 자원 파일을 기반으로하지 않습니다) 해당 버전이 표시됩니다

는 그런 다음 속성에이 같은 일을 할 것입니다.

+1

이렇게하면 사용자 정의 할 수 있지만 * 기본 * 유효성 검사 메시지의 언어는 변경되지 않습니다. – DavidG

+0

확실히, 나는 그것을 얻고 조금 더 많은 정보를 추가했다. – Darren

관련 문제