Aspx页面从不同的.resx文件中检索资源?

时间:2015-01-28 21:38:01

标签: asp.net localization resx resource-file

使用资源文件时我遇到了一个非常奇怪的问题。

我有一个包含很多aspx站点的ASP.NET Web应用程序。我为每个aspx页面生成了本地资源文件,并进行了复制/重命名,然后进行了翻译。现在我有例如页面SamplePage.aspx,其中包含资源文件SamplePage.aspx.resx(原文,克罗地亚语)和SamplePage.aspx.en.resx(英文翻译)。

当我改变代码背后的当前文化/当前文化时,一切都工作得很好 - 这些单词是从新选区域的resx文件加载的,但是有些部分仍未翻译并从另一个resx文件加载。

我注意到它只是asp:dropdownlists,asp:radiobuttons和asp:按钮,它们没有很好地翻译,所有标签和段落都没问题。

这些控件正确地设置了meta:resourcekey标签,好像我将一个按钮的文本更改为资源文件中的其他内容,即更改在那里并在线可见,但它仍然是从错误的资源加载文件..

可能导致问题的原因是什么?

这与我改变地区的位置有什么关系吗?它目前在OnInit。

protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        string culture = "hr-HR";
        //string culture = "en-US";

        Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(culture);
        Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(culture); 
    }

1 个答案:

答案 0 :(得分:0)

在以下示例(VB.NET)中,语言在Global.asax中设置

Sub Application_BeginRequest(sender As Object, e As EventArgs)
    Dim c As New CultureInfo("en-US")
    Thread.CurrentThread.CurrentCulture = c
    Thread.CurrentThread.CurrentUICulture = c
End Sub

通常,对于整个Web应用程序,每种语言应该只有1个.resx文件。