2010-07-12 8 views

Répondre

3

Si vous utilisez le support intégré des thèmes et de la mondialisation vous pouvez utiliser un httpModule: (non testé)

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; 
    } 

} 

} 
+0

Le code spécifique à la culture n'est pas visible. Nous devons faire défiler vers le bas la zone de texte de code pour voir le commutateur (page.Culture). –

1

vous pouvez écrire la langue sélectionnée dans un cookie. Ensuite, dans votre page maître, inspectez la valeur enregistrée dans le cookie et affectez la feuille de style correcte.

+0

je stocke mes informations de culture dans une session, mais je ne sais pas comment charger fichier css différent lorsque la culture change –

+0

@ WingMan20-10 Le meilleur endroit pour stocker des informations de culture est dans l'URL comme 'www.abc.com/fr-fr/../ ..' – shashwat

Questions connexes