【发布时间】:2011-05-07 06:00:29
【问题描述】:
我似乎无法根据用户偏好(.NET 4.0 Web 应用程序)更改 System.Globalization.CultureInfo.CurrentUICulture 值。
在我的 Web 应用程序中,我有两个按钮。一种用于希腊语,一种用于英语。单击按钮时,会向服务器发送一个请求,要求更改用户首选语言。对于希腊语,我发送“el-GR”,对于英语,我发送“en-US”。
在服务器端,我使用下面这段代码来更改当前的CultureInfo。
Dim languageChosen As String = Me.Context.Request.Params("langId")
' Code for CultureInfo
Dim cultureInfo As System.Globalization.CultureInfo
cultureInfo = New System.Globalization.CultureInfo(languageChosen)
' Code for Setting the CurrentCulture
Thread.CurrentThread.CurrentCulture = cultureInfo
Thread.CurrentThread.CurrentUICulture = cultureInfo
Response.Redirect("Default.aspx", True)
现在,在对服务器的下一个请求中,我通过从 CultureInfo.CurrentUICulture.TwoLetterISOLanguageName 获取值来检查当前文化,即使我用户选择了“el-GR”,它也始终显示“en”。
问题可能出在哪里?
我是否必须在请求之间(例如在会话中)保存用户首选语言?然后在每一页的开头设置为System.Thread.CurrentThread.CurrentCulture?
【问题讨论】:
标签: vb.net .net-4.0 internationalization globalization