Asp.net resourcemanager使用错误的UICulture来提供内容!始终返回中立文化
可能重复:Asp.net resourcemanager使用错误的UICulture来提供内容!始终返回中立文化,asp.net,localization,currentculture,currentuiculture,Asp.net,Localization,Currentculture,Currentuiculture,可能重复: 我在很多论坛上问过,但似乎没有人能帮我 default.aspx: <asp:Literal ID="Literal1" Text="<%$Resources:lookingfor %>" runat="server"/> global.asax: Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) Application("RM") = New ResourceM
我在很多论坛上问过,但似乎没有人能帮我 default.aspx:
<asp:Literal ID="Literal1" Text="<%$Resources:lookingfor %>" runat="server"/>
global.asax:
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
Application("RM") = New ResourceManager("strings", Assembly.Load("strings"))
End Sub
\bin文件夹:
在我的bin文件夹中,我有:
bin\strings.txt
bin\nl\strings.nl.txt
bin\en\strings.en.txt
bin\strings.txt
bin\nl\strings.nl.txt
bin\en\strings.en.txt
我按如下方式生成DLL:
resgen strings.txt strings.resources
al /embed:strings.resources,strings.resources /out:strings.dll
resgen nl\strings.nl.resources
al /embed:nl\strings.nl.resources,strings.nl.resources /out:nl\strings.resources.dll /c:nl
resgen en\strings.en.resources
al /embed:en\strings.en.resources,strings.en.resources /out:en\strings.resources.dll /c:en
resgen strings.txt strings.resources
al/embed:strings.resources,strings.resources/out:strings.dll
resgen nl\strings.nl.resources
al/embed:nl\strings.nl.resources,strings.nl.resources/out:nl\strings.resources.dll/c:nl
resgen en\strings.en.resources
al/embed:en\strings.en.resources,strings.en.resources/out:en\strings.resources.dll/c:en
现在当我加载default.aspx时
Literal1控件显示:“您在寻找什么?”
这是App_LocalResources\default.aspx.en.resx中的值,因此是正确的
但是页面标题(Me.Page.Title=rm.GetString(“homewelcome”))显示了bin\strings.txt中的值!
这当然是不正确的,因为我希望它显示bin\en\strings.txt中的值
因此,资源管理器忽略了区域性,而文本使用的是正确的区域性
我在这里遗漏了什么?为什么不把字符串文件都放在同一个文件夹中呢。我不知道您的设置是什么,但默认情况下,我认为ResourceManager会尝试在同一文件夹中查找资源,如果找不到合适的资源,则返回默认的资源,在您的情况下是strings.txt
.resx文件工作正常(如果您阅读了我的文章,您会看到文本被分配了正确的值)。当我尝试使用rm.getStrings读取资源dll时,是资源dll导致了问题。您为什么不能使用我提供的解决方案?您正在使用.NET1.x吗?您的标记应该反映这一点以及编程语言。 resgen strings.txt strings.resources al /embed:strings.resources,strings.resources /out:strings.dll resgen nl\strings.nl.resources al /embed:nl\strings.nl.resources,strings.nl.resources /out:nl\strings.resources.dll /c:nl resgen en\strings.en.resources al /embed:en\strings.en.resources,strings.en.resources /out:en\strings.resources.dll /c:en