【发布时间】:2014-04-15 18:17:10
【问题描述】:
我正在实现一种用户切换显示语言的方法(en || es)。我有以下内容:
<asp:LinkButton ID="Lnk_cultChange" runat="server" Text="<%$Resources:mySource, cultbtn%>" OnClick="cultChange_Click" />
后面的代码:
protected void cultChange_Click(object sender, EventArgs e)
{
if (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName == "en")
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-ES");
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("es-ES");
base.InitializeCulture();
}
else
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
base.InitializeCulture();
}
}
有回发,但似乎没有发生任何事情。英文资源文件仍在显示,没有翻译。我的实现是否正确?
【问题讨论】:
-
也许这需要在页面初始化时完成(更改)。
-
调试你的代码,我打赌你的
Page_Load事件在你的按钮点击事件之前发生/触发..做一些正确的IsPostBack()检查我会把代码放在Pre_Render或Init上 -
Page_Load 将总是在点击事件之前触发
-
你也可以加入一些可以处理 onclientClick 的 JavaScript 代码(如果可用的话)并将它的回发属性设置为 false...
标签: c# asp.net multilingual resx