到目前为止,我认为ASP.NET网络表单本地化可以通过覆盖Page.InitializeCulture
并根据某些用户选择设置Page.Culture
和/或Page.UICulture
来实现。实际上,documentation of Page.InitializeCulture even says so:
InitializeCulture方法不包含编码逻辑。扩展Page类功能的控件开发人员可以覆盖InitializeCulture方法,以初始化页面的Culture和UICulture信息。
但是,在指向Culture
或UICulture
的链接后会产生以下警告:
此API支持产品基础结构,不能直接在您的代码中使用。
是警告垃圾还是我走错了路线,本地化应该以其他方式完成?
答案 0 :(得分:1)
我相信,预期的方式是:
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB");
MSDN上的Page.UICulture
条目后来说:
此属性是CurrentThread属性的快捷方式。该 culture是执行线程的属性
我会说这个警告大多是无意义的,因为它只是执行它的线程方法的快捷方式。
我个人不会在Page
上设置文化,我会在global.ascx
的某处做。例如。 Application_BeginRequest
或Application_Start
这样就可以在页面生命周期开始之前设置文化。
潜在地,这是警告指向你的方向。