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

Servlets/JSP Java Discussion :

[J2EE] I18N problème


Sujet :

Servlets/JSP Java

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut [J2EE] I18N problème
    Bonjour,

    J'ai actuellement un problème de localisation avec une application Web... (j'utilise Hibernate comme framework d'accès aux données)

    En base, j'ai une table de label (id, code, label, language). Cette table peut contenir des lignes ressemblant à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    (1,equipPompier,Equipement pompier, fr)
    (2,outilPompier,Fireman tools, us)
    (3,outilPompier,Outillage pompier, fr)
    ...
    Pour afficher les labels dans la bonne langue à mes users, j'utilise la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String language = request.getLocale().getLanguage();
    //LabelDAO est mon DAO pour la table des labels
    String label = labelDAO.getLabel("equipPompier", language);
    En phase de DEV (serveur Tomcat) pas de problème:
    - le navigateur est en FR, je récupère "Equipement pompier".
    - le navigateur est en US, je récupère rien (normal pour mes tests).

    En phase de Recettage (serveur BES) problème!!!:
    - le navigateur est en FR, je récupère rien (PROBLEME...).
    - le navigateur est en US, je récupère rien (normal pour mes tests).

    Après réflexion, je me pose la question suivante:
    Est il possible que la personne en charge du serveur de recettage BES puisse forcer la locale pour le serveur afin que toutes les requêtes soient traitées comme des requêtes dans la locales US????

    Merci d'avance

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    Bonjour,

    ce que tu récupère dans ton code est la locale par défaut.

    La locale par défaut est déterminée par la JVM au moment de son lancement (elle est determinée en fonction des préférences de l'utilisateur connecté).

    Il est tout à fait possible, que sur des postes différents, les locales soient diférentes.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Salut pietra,

    Citation Envoyé par Pietra
    ce que tu récupère dans ton code est la locale par défaut.
    Ben pour moi c'est la locale associée au browser du client... Je ne comprend pas bien ce que tu sous entends par "locale par défaut"

    Citation Envoyé par Pietra
    La locale par défaut est déterminée par la JVM au moment de son lancement (elle est determinée en fonction des préférences de l'utilisateur connecté).
    J'imagine que tu parles de la machine sur laquelle est le serveur d'application. Au démarrage le serveur prend comme locale par défaut la locale de l'OS, c'est ca???

    Citation Envoyé par Pietra
    Il est tout à fait possible, que sur des postes différents, les locales soient diférentes.
    Tout a fait d'accord néanmoins je passe en paramètre à mon dao le langage du label que je souhaite récupérer. Ce langage est récupéré via request.getLocale() ou la locale est la locale associée à mon navigateur, non?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String queryString = "from GesOpLabel as label where label.code=? and label.langage=?"
    donc je devrais récupérer le label dans la locale de mon navigateur...

    Merci

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  4. #4
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Compare le résultat de request.getLocale() avec celui de request.getHeader("Accept-Language");
    Si le résultat de getHeader("Accept-Language") est null, alors request.getLocale() retourne la locale par défaut du serveur.

  5. #5
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    A vérifier, mais la langue pour la locale US (en_US) n'est pas "us" mais "en", "US" (en majuscule) correspond au pays.

  6. #6
    zl
    zl est déconnecté
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 75
    Points : 90
    Points
    90
    Par défaut
    Voici ce que je sais à propose de la gestion des Locales dans Struts.

    Quand une requette est capté par le RequestProcessor, il appel la méthode processLocale(), cette méthode récupère la Local à partir des paramètres régionnaux du browser et ensuite elle enregistre cette local dans la session sous la clé org.apache.struts.action.LOCALE

    Si on veut déactiver cette option, il faut ajouter ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <controller>
    	<set-property  property="locale" value="false"/>
    </controller>
    dans le struts-config d'aprés les docs que j'ai.


    Zl.

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Ok merci pour toutes ces informations, je testerai tout ça Lundi...

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Ouaip visiblement le problème était lié au déploiement de l'application sur le serveur de recettage (le nouveau fichier de configuration Hibernate n'avait pas été pris en compte...)

    Désormais tout est OK
    Merci pour tout

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

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

Discussions similaires

  1. [1.x] Module I18N problème de traduction
    Par Ontolingua dans le forum Symfony
    Réponses: 3
    Dernier message: 30/04/2012, 16h26
  2. [J2EE / Hibernate] Problèmes d'annotation
    Par mrPinkman dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 10/11/2011, 16h20
  3. Réponses: 1
    Dernier message: 22/12/2010, 12h41
  4. Problème installation J2EE 1.4
    Par nilanglo dans le forum Java EE
    Réponses: 5
    Dernier message: 08/02/2006, 11h59
  5. Réponses: 2
    Dernier message: 28/04/2004, 11h25

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