ASP.NET MVC 응용 프로그램을 지역화하는 방법은 무엇입니까?


121

ASP.NET MVC 응용 프로그램을 지역화하는 가장 좋은 방법은 무엇입니까?

두 가지 상황을 다루고 싶습니다.

  • 여러 언어를 처리하는 IIS에 하나의 응용 프로그램 배포
  • 하나의 언어 / 애플리케이션 배포.

첫 번째 상황에서 ~ / View / EN, ~ / View / FI, ~ / View / SWE 또는 다른 것과 같은 일종의보기 기반으로 가야합니까?

두 번째 경우는 Web.config를 통한 응용 프로그램 기반 구성이고 이러한 다른 언어를 다른 URL로 지정하는 경우는 어떻습니까?


복제 된 뷰 대신 문화 별 문자열을 저장하기 위해 표준 ResX 파일을 사용할 수 있습니다. 불행히도 특히 번역가가이 파일을 관리하고 편집하는 것은 약간 불편하고 어렵습니다. 리소스를 데이터베이스에 저장하고 일부 외부 현지화 도구를 사용하여 단순화 할 수 있습니다. 데이터베이스 리소스 공급자를 제공하는이 무료 라이브러리를 볼 수 있습니다. globsite.net/GlobsiteGlobalizationLibrary
Kryszal

답변:


72

여기에서 ASP.NET MVC 2 지역화 전체 가이드지역화 를 통한 ASP.NET MVC 2 모델 유효성 검사를 살펴볼 수도 있습니다. 이러한 전체 내용은 ASP.NET MVC 2로 작업하는 경우 도움이 될 것입니다.


이 업데이트 된 답변에 감사드립니다! 1 년 전에 Matt Hawley의 접근 방식을 사용했지만 단위 테스트에 심각한 문제가 발생했습니다. 컨트롤러 컨텍스트를 조롱하려고했지만 여전히 다른 것이 누락되어 포기했습니다. 이 MVC2 방식을 살펴보고 그들이 이것을 알아 냈기를 바랍니다.
Lauri Larjo

저는 제 프로젝트에서이 접근 방식을 사용했는데,이 접근 방식이 더 낫다고 말해야합니다.
fyasar

@fyasar 안녕하세요, asp mvc에 쇼핑 웹 사이트가 있습니다. 따라서 사용자가 아랍어 언어를 선택할 때 전체 사이트를 아랍어로 만들고 싶습니다. Microsoft bing 번역기 또는 Microsoft 번역기 API를 사용할 수 있습니까? 아니면 localize.js 를 구입 하여이 속도를 빠르게 달성해야합니다. ?
shaijut

22

기존 ASP.NET Web Form 응용 프로그램과 동일한 방식으로 ASP.NET MVC 응용 프로그램을 지역화합니다.

각 언어에 대해 다른 페이지 /보기를 사용하지는 않지만 각 페이지는 위성 어셈블리를 사용하여 여러 언어를 지원합니다.

자세한 설명과 예제 는 Matt Hawley의 블로그 항목 을 참조하십시오.




2

저는 Elijah가 제안한 것처럼 한 양식 내에서 지역화를 처리 할 것이라고 확신 한 적이 없습니다. 길이와 방향이 다르면 매우 복잡하거나 단순 해 보이는 양식이 달라질 수 있습니다.

나는 MVC로 시작하고 있지만 언어에 관계없이 동일한 컨트롤러를 사용하기를 원할 디커플링 방법을 사용합니다 (언어를 뷰로 처리)-그러면 / Controller / Action / language / form



1

우리는 실제로 DataAnnotationsMetadaDataProvider 를 재정의하는 것과 완전히 다릅니다 . 여기에서 DisplayNameAttribute 값이 올바른 언어로 확인되는지 확인할 수 있습니다. 실제로 도움이 될 경우에만 해당 속성을 제거하고 필드 이름으로 해결할 수도 있습니다.


0

나는이 기사를 얼마 전에 썼다. 사용자 정의보기 엔진을 사용합니다. http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/


1
당신의 기사가 사실 질문에 대답 수 있지만, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다. Stack Overflow는 질문과 답변만큼만 유용하며, 블로그 호스트가 다운되거나 URL이 이동하면이 답변은 쓸모 없게됩니다. 감사!
sarnold

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.