开发者

load different css for site localization

开发者 https://www.devze.com 2023-01-06 17:12 出处:网络
I need to load diff开发者_StackOverflow社区erent css file depending on the language that the user selects. I need to do this only in my master page.If you are using the built-in themes and globalizati

I need to load diff开发者_StackOverflow社区erent css file depending on the language that the user selects. I need to do this only in my master page.


If you are using the built-in themes and globalization support you could use a httpModule: (untested)

public class PageModule : IHttpModule
{


public void Dispose()
{
}


public void Init(System.Web.HttpApplication context)
{
    context.PreRequestHandlerExecute += Application_PreRequestHandlerExecute;

}

public void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
    //Adds a handler that executes on every page request
    HttpApplication application = default(HttpApplication);
    application = (HttpApplication)sender;

    Page page = application.Context.CurrentHandler as Page;

    if ((page != null))
        page.PreInit += Page_PreInit;

}


public void Page_PreInit(object sender, EventArgs e)
{
    //If current context has no session then abort
    if (HttpContext.Current.Session == null)
        return;

    //Get current page context
    Page page = (Page)sender;

    switch (page.Culture) {
        case "en-US":
            page.Theme = "en-USTheme";
            break;
        case "fr-FR":
            page.Theme = "fr-FRTheme";
            break;
        default:
            page.Theme = "DefaultTheme";
            break;
    }

}

}


you could write the selected language in a cookie. Then in you master page inspect the value saved in the cookie and assign the correct stylesheet.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号