如何为整个应用程序配置本地化?

时间:2009-05-08 00:44:14

标签: c# asp.net localization

我知道我可以在Application_BeginRequest事件中设置一个具有指定区域性的CultureInfo对象,如here所述,但我不想为每个请求而是在应用程序启动时执行此操作。

我可以想象的是,我可以使用Application_Start事件,但我不知道如何设置全球文化。

3 个答案:

答案 0 :(得分:2)

在web.config中设置:

<globalization uiCulture="es" culture="es-MX" />

此处有更多信息: http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

答案 1 :(得分:1)

Thread.CurrentThread.CurrentUICulture

请记住,这会覆盖WinForm应用程序从计算机获取的设置。例如,如果用户定义了自定义日期格式,则会替换该格式。

答案 2 :(得分:1)

gattaca的答案是对的,但是如果你想根据用户的偏好或浏览器的语言设置真正动态地更改cultureinfo,最好的地方是覆盖Page class'InitializeCulture方法。所以你可以写一个基类。

protected override void InitializeCulture() {

LanguageHelper.RestoreUserLangugagePreferrenceIfAvailabe();

}

当然这似乎过度杀戮,因为你需要改变基类。还有其他的地方,比如使用模块来注入代码,但我尝试了所有这些解决方案,page_load事件,但它们都不能100%使用.net本地化架构。尝试localresource文件,全局资源文件,你会看到我的意思。