当我想更改网站的语言时,我遇到了问题。我使用全球资源。 当我使用默认语言时,它会显示正确的文本。没问题。
但是当我更改Culture时,它不会更新ASP.NET Control属性中的文本。 我不明白为什么。
此代码完美无缺
<h1><%= Resources.Default.Register %></h1>
但是这段代码不幸地改变了它的语言
<asp:Button ID="Button2" runat="server" Text="<%$ Resources:Default, Register %>" />
我通过单击LinkButton更改语言,就像这样
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";
}
你能帮我吗
文森特
答案 0 :(得分:2)
这就是我将我的语言从英语(默认)改为法语的方式。
<h3><asp:Label runat="server" ID="lblWelcome" Text="<%$ Resources:Resource, Welcome %>" /></h3>
我被迫使用控件,如asp:Label或asp:Literal。
此外,我的全局资源文件位于App_GlobalResources文件夹中,名为 Resource.fr.resx 。 Welcome是资源文件中密钥的名称。
此外,当我将文化信息更改为法语时,我只使用两个字母代码 fr
** * ** ** *编辑* * * * * * * * *
这可能是你的问题。您可能需要覆盖InitializeCulture。
protected override void InitializeCulture()
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("nl-BE");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE");
base.InitializeCulture();
}