IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Changer de langue


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Par défaut Changer de langue
    Bonjour,

    je suis actuellement en train de développer un site en deux langues. Pour ce faire j'utilise des pages de Resources. L'idée est de changer de langue en appuyant sur un simple bouton qui va modifier une variable de session. Je change Thread.CurrentThread.CurrentCulture et Thread.CurrentThread.CurrentUICulture grâce a cette variable.

    Lorsque j'appuie sur le bouton de langue, la variable est correctement rafraichie, par contre la page ne change pas directement le contenu, il faut rafraichir une seconde fois cette page pour voir appraitre les changements de contenu.

    Auriez-vous une solution à mon problème ?

    Voici mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    public partial class _Default : System.Web.UI.Page
    {
     
        protected override void InitializeCulture()
        {
            if (Session["User-Language"] == null)
            {
                Session["User-Language"] = "fr-FR";
            }
            string ses = Session["User-Language"].ToString();
            CultureInfo lng = new CultureInfo(ses);
            Thread.CurrentThread.CurrentCulture = lng;
            Thread.CurrentThread.CurrentUICulture = lng;
            base.InitializeCulture();
        }
       protected void Page_Load(object sender, EventArgs e)
        {
        }
     
        protected void ChangeLanguageEN(object sender, EventArgs e)
        {
     
           Session["User-Language"] = "en-GB";
           Button1.Visible = false;
           Button2.Visible = true;
           InitializeCulture();
     
        }
        protected void ChangeLanguageFR(object sender, EventArgs e)
        {
     
            Session["User-Language"] = "fr-FR";
            Button1.Visible = true;
            Button2.Visible = false;
            InitializeCulture();
        }
     
    }
    Merci.

  2. #2
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    C'est parce-que tu changes la langue de ton Thread après avoir construit ta page.

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Par défaut
    Salut,
    J'ai eu le même soucis que toi... Pour contourner le problème, force la page a se recréer: redirige la sur elle meme.

    Apres ton code tu ajoutes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Response.Redirect("TAPAGE.aspx");
    @plus.

  4. #4
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    En fait, tu peux meme enlever le Initializeculture, et le remplacer par


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Response.Redirect(Request.ServerVariables("HTTP_REFERER"))

    Ce qui te donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     protected void ChangeLanguageEN(object sender, EventArgs e)
        {
     
           Session["User-Language"] = "en-GB";
           Button1.Visible = false;
           Button2.Visible = true;
           Response.Redirect(Request.ServerVariables("HTTP_REFERER"));
        }
     
        protected void ChangeLanguageFR(object sender, EventArgs e)
        {
     
            Session["User-Language"] = "fr-FR";
            Button1.Visible = true;
            Button2.Visible = false;
            Response.Redirect(Request.ServerVariables("HTTP_REFERER"));
        }
    Pis comme ca, tu peux mettre tout ca dans la master page

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Nouveau candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Par défaut
    Attention de bien mettre les crochets pour la variable HTTP_REFERER, car ce n'est pas un paramètre d'une méthode mais bien in item de la collection ServerVariables.
    comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Request.ServerVariables["HTTP_REFERER"]
    Tu peux aussi utiliser ceci qui fait pratiquement la meme chose:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Response.Redirect(Request.Path);

    @plus.

Discussions similaires

  1. Changer la langue des raccourcis clavier?
    Par tictactouc dans le forum C++Builder
    Réponses: 1
    Dernier message: 06/01/2006, 02h07
  2. [VCL] Comment changer de langue à l'exécution ?
    Par Zatoobux dans le forum Composants VCL
    Réponses: 1
    Dernier message: 27/09/2005, 18h08
  3. Changer la langue de l'application
    Par dabeuliou dans le forum Qt
    Réponses: 3
    Dernier message: 26/09/2005, 15h40
  4. [Debutant(e)] changer la langue dans eclipse
    Par omega dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 16/03/2004, 16h47
  5. fonction MessageDlg Delphi :changer la langue
    Par julie20 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 06/06/2003, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo