2010-09-21 3 views
0

J'ai une MasterPage avec un combo avec des langues, le truc est que je voudrais assigner une langue par défaut au moment où un utilisateur démarre l'application, après quoi l'utilisateur peut changer de langue. Ce que je comprends est que je dois remplacer la méthode InitializeCulture sur toutes les pages, le problème est, où je peux enregistrer la langue sélectionnée? Lorsque j'utilise Cache ["Culture"] tout l'utilisateur qui démarre l'application partage le même cache et remplace la valeur pour tous les utilisateurs connectés.InitializeCulture changer le langage du domaine

Comment puis-je faire cela? ou comment puis-je sauvegarder des données pour le fil d'un seul utilisateur lorsqu'il n'est pas connecté?

Merci d'avance pour toute aide.

Répondre

3

utiliser l'objet de la session pour les données spécifiques aux sessions, si vous devez persister le choix au-delà de la session, vous aurez besoin de le stocker avec toutes les données utilisateur que vous avez

Session["Culture"] = yourculturevar; 
2

Si vous souhaitez enregistrer des informations au niveau local sur l'ordinateur d'un utilisateur (par opposition à l'enregistrement d'un élément dans une base de données sur le serveur pour les utilisateurs connectés), vous pouvez utiliser des cookies.

un cookie

private void SetLanguageCookie(string language) 
{ 
    HttpCookie cookie = new HttpCookie("UserSelectedLanguage", language); 
    // Optionally set expiration for cookie 
    cookie.Expires = DateTime.Now.AddDays(30); 
} 

Récupération d'un cookie

private string GetLanguageCookie() 
{ 
    HttpCookie cookie = Request.Cookies["UserSelectedLanguage"]; 
    return cookie.Value; 
} 
Questions connexes