2010-07-14 3 views
0

내 페이지의 언어를 변경할 수 있지만 프랑스어를 선택하면 현재 페이지에 있고 다른 페이지를로드하려고하면 해당 페이지가 프랑스어로 표시되지 않습니다. 일관성있게 사용하도록 어떻게 설정할 수 있습니까? 마스터 페이지에서ASP.NET 언어 전환

토글 버튼 :
Page.Culture =이 "영어 (미국)"그럼 Response.Redirect를 (Request.Url.AbsolutePath + "LANG = FR-CA?") 의 ElseIf Page.Culture = "프랑스어 (캐나다)"그럼 Response.Redirect를 (Request.Url.AbsolutePath + "LANG = EN-US?") 종료

경우 모든 페이지의 :

보호 오버라이드 (override) 하위 InitializeCulture() Dim lang As String = String.Empty

lang = Request.QueryString("lang") 

    If lang IsNot Nothing Then 

     Session("culture") = lang 
     Thread.CurrentThread.CurrentCulture = New CultureInfo(lang) 
     Thread.CurrentThread.CurrentUICulture = New CultureInfo(lang) 

    Else 

     If Session("culture") IsNot Nothing Then 

      lang = Session("culture").ToString() 
      Thread.CurrentThread.CurrentCulture = New CultureInfo(lang) 
      Thread.CurrentThread.CurrentUICulture = New CultureInfo(lang) 
     End If 
     Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US") 
     Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US") 
    End If 
    MyBase.InitializeCulture() 
End Sub 
+0

언어를로드하고 저장하는 방법에 대한 코드를 볼 수 있습니까? 이것이 작동하지 않는 이유는 여러 가지가있을 수 있습니다. 아무도 보여주지 않으면 내가 어떻게 도와 줄 수 있는지 알 수 없습니다. – spinon

답변

0

페이지에서 마스터 페이지의 토글 링으로 전환 할 때 쿼리 문자열 매개 변수가 게시되지 않는다고 가정합니다.

페이지에서 변경할 때 Request.QueryString 컬렉션이 무엇인지 확인하기 위해 응용 프로그램을 디버깅 할 수 있습니까?

문화권을 저장하는 더 좋은 방법은 사용자 프로필에서 쿠키 또는 (asp.net 회원을 사용하는 경우) 것입니다.

기본 페이지는 모든 페이지에서 반복하는 대신 InitializeCulture 메서드를 구현하는 것이 편리 할 수도 있습니다.

+0

이 문제가 해결 되었습니까? 아니면 다른 문제로 인해 발생 했습니까? – Stefaan