使用资源文件时我遇到了一个非常奇怪的问题。
我有一个包含很多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);
}
答案 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文件。