2011-02-23 6 views
0

mvc.net에서 다국어 응용 프로그램을 만들고 싶습니다. 사용자가 언어를 변경할 수 있도록 화면 맨 위에 플래그를 추가하고 싶습니다. Pleae가이 작업을 수행하도록 안내합니다.mvc.net 다국어 응용 프로그램

감사 Munish

+0

[ASP.NET MVC 응용 프로그램에서 여러 언어가 가능한가?] (http://stackoverflow.com/questions/4034/multiple-languages-in-an-asp-net-mvc-application) –

+0

다국어 응용 프로그램을 만드는 방법이나 화면 맨 위에 플래그를 추가하는 방법에 대해 질문하십시오. 가능한 http://stackoverflow.com/questions/4034/multiple-languages-in-an-asp-net-mvc-application의 중복 –

답변

2

이 경로를 정의한다 : 그들은 항상 현재 페이지를 가리 킵니다 그래서

<a href="<%= Url.Action(this.ViewContext.RouteData.Values["action"], this.ViewContext.RouteData.Values["controller"], new { lang = "de" }) %>"> 
    <img scr="..." /> 
</a> 

: 상단

routing.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional, lang = "en" } 
); 

귀하의 모든 플래그는 같이 수행해야합니다 다른 언어. 언어 변형이 1 : 1 인 경우 유용합니다. 그러나 언어 페이지가 다른 경우 항상 특정 언어로 홈페이지를 가리켜 야합니다.

번역과 관련하여 리소스를 사용하거나 DB에 저장할 수 있습니다. 최근에는 정적 인 인터페이스 문자열을 리소스 파일에 저장했지만 최근에는 둘 다 사용했습니다. 파일 형식이 너무 압도적이기 때문에 하나가 아니라 필요에 따라 파일 당 하나의 리소스 파일이됩니다. 이 방법은 몇 가지 반복 된 정의 (예 : 확인, 취소 등)를 얻지 만,이 방법을 유지하는 것이 훨씬 쉽습니다. 리소스 파일이 하나 뿐이므로 상황이 바뀌면 어디에서 예측할 수 없게됩니다.

문자열을 필요로하는 모든 파일 (예 : 예외 메시지)은 *.resx 동반자입니다. 내 견해도 마찬가지입니다. 거의 모든보기에는 모든 정적 컨텐츠를 정의하는 자체적 인 *.resx이 있습니다.

언어가 두 개 이상인 경우 필요한 모든 언어에 *.lang.resx을 제공해야합니다.

관련 문제