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 :

Internationalisation : y'a une étape que j'ai loupé


Sujet :

ASP.NET

Vue hybride

jbrasselet Internationalisation : y'a... 20/09/2011, 16h00
SaumonAgile Non vu que ta page est... 20/09/2011, 16h20
jbrasselet En gros en solution j'ai : -... 20/09/2011, 16h26
SaumonAgile Correct ;) 20/09/2011, 16h29
jbrasselet Ok merci ! bon finalement,... 20/09/2011, 16h31
Immobilis Salut, Je te suggère de... 20/09/2011, 17h22
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut Internationalisation : y'a une étape que j'ai loupé
    Bonjour,

    je travaille sur un site qui possède une liste déroulante dans la master page permettant de choisir la langue.
    J'ai sur ma page principale différents contrôles dont un bouton (qui a une valeur différente en fr ou en en).
    Ma valeur par défaut de culture est français (le site le détermine lui-même avec la langue du navigateur je pense)

    Lorsque je change ma langue en anglais via ma liste déroulante, mon bouton se modifie avec le bouton anglais.
    Si jamais je clique sur mon bouton, mon thread de culture repasse en fr ! Je ne comprend pas pourquoi. Ne devrait-il pas garder la valeur que je lui ai donné lors de ma modif de langue ?

    Pour info voici mon InitializeCulture
    Code c# : 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 override void InitializeCulture()
          {
             if (!String.IsNullOrEmpty(Request.Form["LanguageChoice"]))
             {
                String culture = Request.Form["LanguageChoice"].ToString();
     
                // INITIALISER la culture en anglais par défaut
                CultureInfo pCultureInfo = CultureInfo.CreateSpecificCulture(culture);
     
                // AFFECTER la culture au thread courant
                Thread.CurrentThread.CurrentCulture = pCultureInfo;
                Thread.CurrentThread.CurrentUICulture = pCultureInfo;
             }
     
             base.InitializeCulture();
          }

    Et dans ma page, la création de mon bouton :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    btnModify.ImageUrl = "/imgcarto/buttons/" + Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName + "/edit.gif";

    Avez-vous une idée ?
    NB : devant être sessionless je ne peux enregistrer ma culture courante en session.

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Non vu que ta page est réinitialisée à chaque appel. Ton appel est traité par un nouveau thread qui est initilialisé à la culture par défaut.
    Tu dois récupérer le langage à chaque appel et adapter la page en fonction dans le page_load.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    En gros en solution j'ai :
    - un cookie
    - passage dans la request

    ?

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Correct
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    Ok merci !
    bon finalement, les gens qui disent l'internationalisation c'est facile lors des formations je les bafferais maintenant

  6. #6
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Je te suggère de faire une classe statique avec une méthode statique pour obtenir cette info. Ainsi tu pourras en changer l'implémentation comme bon te semble.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string culture = CultureManager.GetCulture();
    string culture = CultureManager.GetCulture(Uri url);
    string culture = CultureManager.GetCulture(HttpCookie cookie);
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

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

Discussions similaires

  1. Une requête que je n'arrive pas à faire
    Par Denti-fritz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/12/2005, 13h53
  2. [Tableaux] Appeler une variable que si non NULL
    Par GarGamel55 dans le forum Langage
    Réponses: 6
    Dernier message: 08/10/2005, 14h07
  3. taille d'une table + que 4 Go
    Par amika dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 12/08/2005, 18h23
  4. Réponses: 5
    Dernier message: 18/09/2004, 21h30
  5. effacer une table que si elle existe ?
    Par soniaSQL dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/06/2003, 14h55

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