3

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

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

此代码完美运行

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

但不幸的是,这段代码并没有改变它的语言

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

我通过单击链接按钮更改语言,就像这样

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

        }

你能帮我么

文森特

4

1 回答 1

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();
}
于 2012-04-18T19:00:57.553 回答