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

Développement Web avec .NET Discussion :

Changement de langue WebApplication


Sujet :

Développement Web avec .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut Changement de langue WebApplication
    Bonjour,
    je suis entrain de faire un mécanisme qui me change la langue de ma page en utilisant les GlobalResource.

    j'ai un "button" dans mas master page ou j'ai (dans sont "Click_Event") le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session["lang"] = "en-US"

    Dans chaque WebForm j'ai un methode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected override void InitializeCulture()
        {
            if (Session["lang"] == null)
                Session["lang"] = "en-US";
            String selectedLanguage = Session["lang"].ToString();
            UICulture = selectedLanguage;
            Culture = selectedLanguage;
     
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);
     
            base.InitializeCulture();
        }
    mont problème:
    la langue est actualiser seulement quand je fait deux click sur mont "button" c'est a dire, la langue est actualiser seulement quand le postBack est fait deux foix

    Comment je pourrai résoudre mont problème?

    merçi

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    Salut,

    Ton problème est que l'event Clic se produit tout naturellement après le InitializeCulture. Lors du premier postback, InitializeCulture ne connait pas encore la valeur en session du click car cela arrive plus tard. Lors du clic, la langue est mise en session. Au second postack, InitializeCulture retrouve la bonne valeur.

    Vu que InitializeCulture. se produit très tôt (contrôles par encore créés), il te faut un moyen de connaître la nouvelle dans cette méthode. La session ne peut pas être utilisée pour le changement (par contre tu peux la garder pour les autres pages).

    Un solution consiste à utiliser un paramètre dans l'url via QueryString.

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut
    ok
    merci pour ton aide j'ai compris! je vais essayer
    je suis encore débutante en "web Development".
    j'ai arriver a une solution qui é:
    dans le event click du button qui est dans ma master page j'ai mis:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Session["lang"] = "en-US";
    Response.Redirect(Page.TemplateControl.AppRelativeVirtualPath);

    et ça a fonctionner cela est une solution correcte?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut

    Session["lang"] = "en-US";
    Response.Redirect(Page.TemplateControl.AppRelativeVirtualPath);


    et ça a fonctionner cela est une solution correcte?
    Oui et non. Oui car çà résout ton problème. Non car ce n'est pas la meilleure façon de faire, mais après c'est une question de finesse. Il n'est pas forcément nécessaire de faire mieux.

    Pour info, un redirect envoie au client un message de redirection, qui doit donc faire une nouvelle requête. Au final, pour changer ta langue le client fait trois requêtes sur la page :
    - la première suite au click du bouton
    - la seconde avec le message de redirection
    - la troisième issu du redirect

  5. #5
    Membre averti
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut
    ok

    merci pour tout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changement de langue FR or US
    Par Funraill.net dans le forum Langage
    Réponses: 2
    Dernier message: 19/10/2005, 20h57
  2. changement de langue
    Par Malk-Om dans le forum Windows XP
    Réponses: 4
    Dernier message: 05/10/2005, 09h24
  3. [JSP] Changement de langue
    Par sg-40 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 07/06/2005, 12h15
  4. Réponses: 2
    Dernier message: 03/03/2004, 10h44
  5. Changement de langue dynamique (D6 et outils de traduction)
    Par agon dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/09/2002, 16h15

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