2012-04-18 87 views
3

当我想更改我的网站语言时遇到问题。我为此使用全球资源。 当我使用默认语言时,它显示正确的文本。那么没问题。文本全局资源propery

但是,当我更改文化,然后它不会更新ASP.NET控件属性中的文本。 我不知道为什么。

此代码的工作完美

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

但这代码不幸的是不改变其语言

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

我通过点击一个LinkBut​​ton,这样

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"; 

     } 
更改语言

你能帮我吗

Vincent

回答

2

这就是我如何将我的语言从英语(默认)更改为法语。我不得不使用诸如asp:Label或asp:Literal这样的控件。

此外,我的全局资源文件位于App_GlobalResources文件夹中,名为Resource.fr.resx。欢迎是资源文件中密钥的名称。

而且,当我改变我的文化信息,以法国我只是用两个字母代码FR

** * ** ** *编辑* * * * * * * * *

这可能是你的问题。您可能需要重写InitializeCulture。

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

    base.InitializeCulture(); 
} 
+0

我的代码是这样的,但不幸的是,当我点击一个按钮时它不会改变语言。 – Vinzcent 2012-04-18 20:33:19

+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 2012-04-18 20:39:38

+0

看到我上面的编辑。 – PsychoDUCK 2012-04-18 20:47:17