She*_*rri 8 c# asp.net localization resource-file
我在C#中有一个.Net应用程序,我有一个类似的文件结构:
App_LocalResources
- MyPage.aspx.resx
- MyPage.aspx.fr.resx
MyPage.aspx
MyPage.aspx.cs
Run Code Online (Sandbox Code Playgroud)
我试图以编程方式更改语言,告诉应用程序使用哪个resx文件.我想在代码隐藏文件(MyPage.aspx.cs)中执行此操作.
我在OnPreRender,Page_Init和Page_Load事件中尝试了这两种方法:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
Run Code Online (Sandbox Code Playgroud)
它不起作用.该页面仍显示英语.MyPage.aspx文件包含:
<h3><asp:Literal runat="server" Text="<%$ Resources:pageTitle %>" /></h3>
Run Code Online (Sandbox Code Playgroud)
请注意,我不关心浏览器语言.它必须超越这个.我一直在网上搜索这个解决方案无济于事.所有示例都显示了我已经尝试过的方式切换语言(上图)但是这不会影响所使用的资源文件.有任何想法吗?
mbe*_*Net 13
您必须覆盖InitializeCulture方法并将代码放在那里.例如:
protected override void InitializeCulture()
{
base.InitializeCulture();
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
19597 次 |
| 最近记录: |