2009-07-08 58 views
1

我正在研究一个asp.net web应用程序,其中一个要求是用户必须能够选择他们想要的语言。我使用Resx文件来存储当地人,我的问题是每次页面加载时需要更改线程的CurrentCulture,还是有办法在登录用户从一个页面移动时自动处理它ASP.NET本地化和用户定义的语言

回答

1

是的,我相信你需要每次设置它,为了使它更糟糕,你必须重写Page class的InitializeCulture方法,我创建了一个SitePage,使得我的所有页面从替代页项目继承要做到这一点

public class SitePage : Page 
{ 
    protected override void InitializeCulture() 
    { 
     base.InitializeCulture(); 

     // Set both the CurrentCulture (for currency, date, etc) conversion, and the CurrentUICulture for resource file lookup. 
     Thread.CurrentThread.CurrentCulture = whatever; 
     Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture; 
    } 

}

延伸阅读:http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

+0

如何在Global.asax的Application_BeginRequest中执行此操作,是否也能正常工作,因为它在每个其他事件被调用之前都会被调用 – Superdumbell 2009-07-08 16:13:37