2012-04-18 3 views
3

내 웹 사이트의 언어를 변경하고자 할 때 문제가 있습니다. 나는이를 위해 Global Resources를 사용한다. 기본 언어를 사용하면 올바른 텍스트가 표시됩니다. 그럼 아무 문제 없어.텍스트의 세계적인 자원

그러나 문화권을 변경하면 ASP.NET 컨트롤 속성의 텍스트가 업데이트되지 않습니다. 나는 이유를 모른다.

이 코드는

<h1><%= Resources.Default.Register %></h1> 

완벽하게 작동하지만이 코드는 불행히도 나는이

protected void lbNL_Click(object sender, EventArgs e) 
     { 
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("nl-BE"); 
      Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE"); 

      Page.Culture = "nl-BE"; 
      Page.UICulture = "nl-BE"; 

     } 
처럼하는 LinkButton을 클릭하여 언어를 변경의 언어

<asp:Button ID="Button2" runat="server" Text="<%$ Resources:Default, Register %>" /> 

을 변경하지 않습니다

도와주세요.

Vincent

답변

2

이것은 한국어 (영어) (기본값)에서 프랑스어로 변경하는 방법입니다.

<h3><asp:Label runat="server" ID="lblWelcome" Text="<%$ Resources:Resource, Welcome %>" /></h3> 

asp : Label 또는 asp : Literal과 같은 컨트롤을 사용해야합니다.

내 글로벌 리소스 파일은 App_GlobalResources 폴더에 있으며 Resource.fr.resx이라고합니다. Welcome는 리소스 파일의 키 이름입니다. 또한

, 난 그냥 두 문자 코드 FR

** * ** ** * EDIT * * * * * * * * *

을 사용하고 프랑스어로 내 문화 정보를 변경할 때

이것은 문제 일 수 있습니다. InitializeCulture를 재정의해야 할 수도 있습니다.

protected override void InitializeCulture() 
{ 
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("nl-BE"); 
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE"); 

    base.InitializeCulture(); 
} 
+0

내 코드는 이와 비슷하지만 불행히도 버튼을 클릭 할 때 언어가 변경되지 않습니다. – Vinzcent

+0

페이지가 실행 중이고 ASP.NET이 리소스 관리자에서 값을 검색하면 ASP.NET은 페이지에 대한 현재 UICulture 설정과 가장 일치하는 리소스 파일 버전을 선택하거나 리소스 대체를 사용하여 리소스를 가져옵니다. 예를 들어 Default.aspx 페이지를 실행하고 현재 UICulture 속성이 es (스페인어)로 설정된 경우 ASP.NET은 로컬 리소스 파일 Default.aspx.es.resx의 컴파일 된 버전을 사용합니다. http://msdn.microsoft.com/en-us/library/ms227427(v=vs.85).aspx – PsychoDUCK

+0

위의 편집을 참조하십시오. – PsychoDUCK