【发布时间】:2010-08-26 08:16:46
【问题描述】:
在我当前的应用程序中,我想使用全球资源实现 ASP.Net 本地化。我的问题是,在更改 CurrentThread.CurrentUICulture 和 CurrentThread.CurrentCulture 并更改到另一个页面后,这些值会被浏览器默认值覆盖。
我有一个可以在不同语言之间进行选择的 DropDownList。在 ItemChanged 事件中,我将culturename 存储在会话中,重定向到我的默认页面并使用此代码
protected override void InitializeCulture()
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
base.InitializeCulture();
}
切换到另一个内容页面后,它不会覆盖 InitializeCulture 我回到默认浏览器语言。我怎样才能让它持久化?
我有什么选择?我想到了以下几点:
- 在每个 *.aspx 页面上我都会实现 InitializeCulture
- 我创建了一个派生自 System.Web.UI.Page 并覆盖 InitializeCulture 事件处理程序的新类。我使用的每个 *.aspx 页面都源自它。
难道没有更“内置”的方式吗? ASP.net 提供了如此好的本地化支持,所以我想一定有一种更简单/更有效的方法来实现我的目标。有哪一个?
【问题讨论】:
标签: c# asp.net localization culture