.NET Framework
ASP.NET의 국제화를 이용한 ASP.NET MVC의 세계화
수색…
비고
이 방법의 장점은 .resx 파일에서 값을 조회하는 코드로 컨트롤러 및 다른 클래스를 복잡하게 만들 필요가 없다는 것입니다. HttpModule
은 .po 파일의 변환을 찾아 구분 된 텍스트를 바꾸기 위해 찾습니다. [. [delplex]는 구성 가능합니다. 변환이 있으면 HttpModule
이 변환을 대체합니다. 변환이 없으면 대괄호를 제거하고 원래의 번역되지 않은 텍스트로 페이지를 렌더링합니다.
.po 파일은 응용 프로그램에 대한 번역을 제공하기위한 표준 형식이므로 편집 할 수있는 여러 응용 프로그램이 있습니다. .po 파일을 기술적이지 않은 사용자에게 보내기 쉽게 번역을 추가 할 수 있습니다.
기본 구성 및 설정
- MVC 프로젝트에 I18N 너겟 패키지 를 추가하십시오.
- web.config에서
<httpModules>
또는<modules>
섹션에i18n.LocalizingModule
을 추가하십시오.
<!-- IIS 6 -->
<httpModules>
<add name="i18n.LocalizingModule" type="i18n.LocalizingModule, i18n" />
</httpModules>
<!-- IIS 7 -->
<system.webServer>
<modules>
<add name="i18n.LocalizingModule" type="i18n.LocalizingModule, i18n" />
</modules>
</system.webServer>
- "locale"이라는 폴더를 사이트의 루트에 추가하십시오. 지원하려는 각 문화권의 하위 폴더를 만듭니다. 예 :
/locale/fr/
. - 각 문화권 별 폴더에서
messages.po
라는 텍스트 파일을 만듭니다. - 테스트를 위해
messages.po
파일에 다음 텍스트 줄을 입력하십시오.
#: Translation test
msgid "Hello, world!"
msgstr "Bonjour le monde!"
- 번역 할 텍스트를 반환하는 컨트롤러를 프로젝트에 추가하십시오.
using System.Web.Mvc;
namespace I18nDemo.Controllers
{
public class DefaultController : Controller
{
public ActionResult Index()
{
// Text inside [[[triple brackets]]] must precisely match
// the msgid in your .po file.
return Content("[[[Hello, world!]]]");
}
}
}
- MVC 응용 프로그램을 실행하고 컨트롤러 동작에 해당하는 경로 (예 : http : // localhost : [yourportnumber] / default)를 찾습니다 .
URL이 기본 문화권을 반영하도록 변경되었는지 확인하십시오 (예 :
http : // localhost : [사용자 포트 번호] / en / default . - 교체
/en/
URL에와/fr/
(또는 당신이 선택한 어떤 문화.) 이제 텍스트의 번역 된 버전을 표시해야하는 페이지입니다. - 브라우저의 언어 설정을 변경하여 대체 문화권을 선호하고
/default
다시/default
하십시오. 대체 문화권을 반영하도록 URL이 변경되고 번역 된 텍스트가 표시되는지 확인하십시오. - web.config에서 사용자가
locale
폴더를 찾을 수 없도록 처리기를 추가합니다.
<!-- IIS 6 -->
<system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
</system.web>
<!-- IIS 7 -->
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
</handlers>
</system.webServer>
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow