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 site web


Sujet :

ASP.NET

  1. #1
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut Internationalisation site web
    Bonjour,


    je fais des tests cette apres midi sur l'utilisationd e ficheirs resx et je tourne en rond depuis deux heures sur ce 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
    public partial class _Default : System.Web.UI.Page 
    {
     
        protected override void InitializeCulture()
        {
            if (HttpContext.Current.Session["Language"] != null)
            {
                String selectedLanguage = HttpContext.Current.Session["Language"].ToString();
     
                UICulture = selectedLanguage;
                Culture = selectedLanguage;
     
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);
     
            }
     
            base.InitializeCulture();
        }
     
        protected override void OnPreInit(EventArgs e)
        {
            Session["Language"] = "en-US";
            this.InitializeCulture();
            base.OnPreInit(e);
        }
     
     
     
        protected void Page_Load(object sender, EventArgs e)
        {
        }
    Il tourne bien, je passe bien dans ma fonction et pourtant je vois apparaitre ma ressource francais et pas ma ressource anglaise. Avec vous une explication ?

    merci d'avance,

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    T'as bien HttpContext.Current.Session["Language"] = "en-US" dans protected override void InitializeCulture() ???

  3. #3
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Oui lorsque je passe en mode debug il rentre bien dans ma fonction et me mets bien UNited states comme culture...

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu ne dois pas appeler base.InitializeCulture(); je pense

  5. #5
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Pourtant le debuggueur passe dessus sans probleme. Je le vois bien à l'écran.

    mes fichiers resx sont els suivants :
    Default.aspx.resx
    Default.aspx.fr.resx
    Default.aspx.en.resx

    et ils sont tous les trois stockés dans App_LocalResources.

    A quel moment Initializeculture est appelé dans le chargement de la page normalement?

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Arthis Voir le message
    Pourtant le debuggueur passe dessus sans probleme. Je le vois bien à l'écran.

    mes fichiers resx sont els suivants :
    Default.aspx.resx
    Default.aspx.fr.resx
    Default.aspx.en.resx

    et ils sont tous les trois stockés dans App_LocalResources.

    A quel moment Initializeculture est appelé dans le chargement de la page normalement?
    Quand je dis tu ne dois pas, c'est qu'il ne faut pas le faire

  7. #7
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Arf.. cela ne change rien. J'ai enlevé la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    base.InitializeCulture();
    mais le probleme reste le meme, j'ai l'affichage de ma ressource francaise et pas l'anglaise.

  8. #8
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Vire ta surcharge de OnPreInit et rajoute Session["Language"] = "en-US"; au début ta surcharge de InitializeCulture pour voir

  9. #9
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    tu as raison! Ma page s'affiche avec la ressource anglaise. L'evenement on intialize culture intervient avant le preinit de la page.
    Ce qui fait que ma variable session instanciée au preinit est vide quand le initializeculture fait son travail. d'où ma solution temporaire :

    fichier global.asax.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void Session_Start(Object sender, EventArgs e)
    		{
               Session["Language"] = "en-US";
    		}
    fichier default.aspx :

    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
        protected override void InitializeCulture()
        {
     
            if (HttpContext.Current.Session["Language"] != null)
            {
                String selectedLanguage = HttpContext.Current.Session["Language"].ToString();
     
                UICulture = selectedLanguage;
                Culture = selectedLanguage;
     
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);
            }
        }
     
        protected override void OnPreInit(EventArgs e)
        {
     
        }
     
     
     
        protected void Page_Load(object sender, EventArgs e)
        {
        }

    Ca me permet déjà d'avancer un peu sur ma problematique. Je vais continuer un peu tout seul maintenant. Merci à toi LuteceFalco.

  10. #10
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    InitializeCulture est le tout 1er événement il me semble

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

Discussions similaires

  1. Créer un site web - en quel langage ?
    Par Thierry92 dans le forum Débuter
    Réponses: 96
    Dernier message: 25/04/2024, 22h24
  2. Avec quel éditeur concevez-vous vos site web ?
    Par Marc-xhtml dans le forum Outils
    Réponses: 263
    Dernier message: 06/05/2009, 14h43
  3. internationalisation du site web avec silverlight
    Par neo-nasser dans le forum Silverlight
    Réponses: 2
    Dernier message: 16/07/2008, 12h47
  4. site web sur le Haskell
    Par ab_sam dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 30/09/2003, 12h11

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