era*_*zap 18 c# asp.net culture
我需要根据每种文化的资源文件在运行时更改文化.
我需要根据指定.resx文件的两种文化来更改表单中控件的属性
resorces1.aspx.resx // default
resorces1.aspx.he-IL.resx // hebrew culture
Run Code Online (Sandbox Code Playgroud)
我可以使用fallback资源加载页面,或者在pageload上提供UICulture = "he-IL"值,并且可以使用所需资源加载.
问题是我需要在运行时进行这些更改.
1 ..在我更改按钮单击事件的值后
btn_change_Click(....)
{
UICulture = "he-IL" ;
}
Run Code Online (Sandbox Code Playgroud)
它仍然返回到"en-US"的初始值
如何在运行时提交对UICulture的更改?
2 ..如果我不知道它是"en-US",我如何引用回退资源文件?
max*_*oin 48
更改当前的UI文化:
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("he-IL");
Run Code Online (Sandbox Code Playgroud)
或更好,检索he-IL文化的缓存只读实例:
System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("he-IL");
Run Code Online (Sandbox Code Playgroud)
在运行时,ASP.NET使用与CurrentUICulture属性的设置最匹配的资源文件.线程的UI文化是根据页面的UI文化设置的.例如,如果当前UI文化是西班牙语,则ASP.NET使用WebResources.es.resx文件的编译版本.如果当前UI文化不匹配,则ASP.NET使用资源回退.它首先搜索特定文化的资源.如果没有这些,它会搜索中立文化的资源.如果找不到这些,ASP.NET将加载默认资源文件.在此示例中,默认资源文件是WebResource.resx.