2012-11-22 5 views
4

질문이 있습니다. 컨트롤러에 매개 변수를 보내어 언어를 변경하는 방법에 대한 게시물을 읽으면 컨트롤러가 변경 사항을 처리 할 수 ​​있습니다.언어를 영구히 변경하는 방법은 무엇입니까?

첫째 : 여기

내가 읽은 것입니다 추가 경로

routes.MapRoute(
"Default", 
"{language}/{controller}/{action}/{id}", 
new { language = "en", controller = "Home", action = "Index", id = "" } 
); 

둘째 매개 변수 이제

<li><%= Html.ActionLink(
    "Spanish", 
    ViewContext.RouteData.Values["action"].ToString(), 
    new { language = "es" })%></li> 
<li><%= Html.ActionLink(
    "French", 
    ViewContext.RouteData.Values["action"].ToString(), 
    new { language = "fr" })%></li> 
<li><%= Html.ActionLink(
    "English", 
    ViewContext.RouteData.Values["action"].ToString(), 
    new { language = "en" })%></li> 

에게 보내 ActionLink를 사용,이 솔루션을 시도하고 그것을이다 잘 작동합니다. 그러나, 그것은 한 번만 작동합니다. 프랑스어를 클릭하면 프랑스어로 페이지가 표시됩니다. 그러나 페이지의 나머지 링크는 여전히 기본 "en"을 가리 킵니다.

모든 링크에서 새 언어가 선택되도록 기본 "언어"값을 선택한 언어로 변경할 수 있습니까?

+0

보기에 오타가없는 것이 확실합니까? 'es' =>'en' – horgh

+0

"french"를 선택하면 생성 된 html을 보여줄 수 있습니다. – horgh

답변

0

리소스 파일을 사용하는 것이 이러한 목적에 가장 효과적인 방법 인 것 같습니다. 페이지에 표시 할 모든 텍스트를 리소스 파일에 저장해야하며 지원하려는 모든 언어에 대해 별도의 리소스 파일을 만들어야합니다. 페이지의 콘텐츠는 브라우저에 적용된 언어 설정에 따라 리소스 파일에서 참조됩니다. CodeProject의에 기사 다음

아주 잘 보여줍니다

http://www.codeproject.com/Articles/181738/Creating-a-Bilingual-ASP-NET-MVC3-Application-Part

1

당신이 선택 당신은 초기 선택을 저장하는 방법을 사용해야합니다 "기억"해야합니다.

따라서 주 옵션은 쿠키를 사용하거나 선택 항목을 세션 변수에 저장합니다.

관련 문제