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.