ASP.NET MVC 응용 프로그램의 여러 언어?
ASP.NET MVC 응용 프로그램에서 인터페이스에 대해 여러 언어를 지원하는 가장 좋은 방법은 무엇입니까? 사람들이 다른 응용 프로그램에 리소스 파일을 사용하는 것을 보았습니다. 이것이 여전히 최선의 방법입니까?
기본보기 엔진을 사용하는 경우 로컬 리소스가보기에서 작동합니다. 그러나 컨트롤러 작업 내에서 리소스 문자열을 가져와야하는 경우 로컬 리소스를 가져올 수 없으며 전역 리소스를 사용해야합니다.
이것은 로컬 리소스가 aspx 페이지에 로컬이고 컨트롤러에서 뷰를 선택하지 않았기 때문에 생각할 때 의미가 있습니다.
이 리소스 가 매우 유용 하다는 것을 알았습니다.
HttpContext.Current.GetGlobalResourceString 및 HttpContext.Current.GetLocalResourceString 을 둘러싼 래퍼로 다음 과 같은 리소스를 호출 할 수 있습니다.
// default global resource
Html.Resource("GlobalResource, ResourceName")
// global resource with optional arguments for formatting
Html.Resource("GlobalResource, ResourceName", "foo", "bar")
// default local resource
Html.Resource("ResourceName")
// local resource with optional arguments for formatting
Html.Resource("ResourceName", "foo", "bar")
내가 찾은 유일한 문제는 컨트롤러가 로컬 리소스 문자열에 액세스 할 수 없다는 것입니다.
예 리소스는 .NET 환경에서 여러 언어를 지원하는 가장 좋은 방법입니다. 참조하기 쉽고 새로운 언어를 더 쉽게 추가 할 수 있기 때문입니다.
Site.resx
Site.en.resx
Site.en-US.resx
Site.fr.resx
etc...
그래서 당신은 여전히 리소스 파일을 사용하고 있습니다.
Orchard 프로젝트는 "T"라는 바로 가기 메서드를 사용하여 모든 인 페이지 문자열 번역을 수행합니다. 따라서 @T ( "번역 할 문자열")이있는 태그가 표시됩니다.
나는 이것이 무대 뒤에서 어떻게 구현되는지 살펴보고 향후 프로젝트에서 잠재적으로 사용할 계획입니다. 짧은 이름 은 많이 사용되기 때문에 코드를 깔끔하게 유지합니다 .
이 접근 방식에 대해 내가 좋아하는 것은 원래 문자열 (이 경우 영어)이 코드에서 여전히 쉽게 볼 수 있으며 실제 문자열이 여기에 있어야하는 것을 디코딩하기 위해 리소스 도구 또는 다른 위치에서 조회 할 필요가 없다는 것입니다.
자세한 내용은 http://orchardproject.net 을 참조하세요.
답변으로 언급 된 다른 솔루션 중 일부는 출시 된 MVC 버전에서 작동하지 않습니다 (이전 버전의 알파 / 베타에서 작동 함).
다음은 강력한 형식이 지정되고 컨트롤러 및 뷰의 단위 테스트를 중단하지 않는 지역화를 구현하는 방법을 설명하는 좋은 기사 입니다. MVC v1 용 지역화 가이드
이것은 또 다른 옵션이며 컨트롤러에서 CurrentUICulture에 액세스 할 수 있습니다.
MVC3- 다국어 확인
참고 URL : https://stackoverflow.com/questions/4034/multiple-languages-in-an-asp-net-mvc-application
'Program Club' 카테고리의 다른 글
| std :: tuple sizeof, 놓친 최적화입니까? (0) | 2020.11.05 |
|---|---|
| datetime 매개 변수를 전달하는 방법은 무엇입니까? (0) | 2020.11.05 |
| 목록을 (0) | 2020.11.05 |
| DTO를 도메인 개체에 매핑하는 모범 사례 (0) | 2020.11.05 |
| 콘텐츠 높이에 따라 iframe 높이 크기 조정 (0) | 2020.11.05 |