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

Langage Java Discussion :

Le fichier properties par défaut est ignoré


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut Le fichier properties par défaut est ignoré
    Bonjour,

    Je ne sais pas pourquoi, j'ai un document généré sous JasperReports qui utilise les fichiers properties en fonction de la locale passée en paramètre au moteur de Jasper.

    Le problème est le suivant:
    J'ai les fichiers properties (report.properties, report_fr.properties, report_nl.properties, report_de.properties). Le fichier report.properties contient les textes en anglais.

    Le problème est que pour toutes les langues FR, NL, DE Jasper prends bien le bon properties mais pour l'anglais, il ne prends pas le properties par défaut mais prends le report_fr.properties. Donc le rapport s'affiche en français.

    Serait-ce un comportement normal en Java ?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Cela dépend de la manière dont l’internationalisation est géré par JasperReports.
    La seule manière d'être sûr étant de se plonger dans la documentation de l'outil...


    Je crains qu'en ne trouvant pas de "report_en.properties", il change de locale en utilisant celle du système (qui doit sûrement être FR).



    a++

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Je crains qu'en ne trouvant pas de "report_en.properties", il change de locale en utilisant celle du système (qui doit sûrement être FR).
    La locale système est bien FR, mais est-ce que c'est un comportement normal en Java ou est-ce que c'est un comportement de Jasper?

  4. #4
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Je confirme, et c'est normal en java :
    http://docs.oracle.com/javase/1.4.2/...ClassLoader%29

    Tu as ici en fait une incohérence : pour Java, tu veux utiliser en comme locale par défaut, et c'est pour cela que tu ne mets pas de fichier _en et que le fichier basename.properties contient de l'anglais, et pourtant ta locale système est le français.
    A cela, deux solutions :
    - Changer ta locale système (je conseille fortement pour les applis internationalisées d'avoir les serveurs et les postes de développement en anglais)
    - Forcer la locale par défaut à utiliser en "en" (voir par exemple http://stackoverflow.com/questions/8...ale-for-my-jvm)

    Dans les deux cas, attention aux effets de bord potentiels !!! Tout le code où la locale n'est pas spécifiée et qui se base sur la locale système (ce qui est normalement à proscrire mais se trouve très souvent) va potentiellement changer de comportement !

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Citation Envoyé par chtig Voir le message
    Dans les deux cas, attention aux effets de bord potentiels !!!
    En effet, je n'imagine même pas de changer la langue du système là où il y a le serveur applicatif. Il risque d'avoir des effets de bord déjà au niveau application <=> DB.
    Je ne pensais pas que ça allait être aussi tordu.

  6. #6
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Le plus simple est peut être de te mettre en phase avec le système alors.
    Pourquoi ne pas renommer report.properties en report_en.properties et report_fr.properties en report.properties ?
    Tu comptes te servir de la notion de locale par défaut ?
    Pour essayer de t'aiguiller vers une solution, il faudrait que tu nous dises un peu les cas possibles que tu souhaites gérer.

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par chtig Voir le message
    Je confirme, et c'est normal en java :
    http://docs.oracle.com/javase/1.4.2/...ClassLoader%29
    Wouah je n'avais jamais remarqué cela !!!!
    Je tombe toujours pile poil dans le cas où la locale par défaut est la locale système, mais c'est bon à savoir !




    Par contre il y a moyen de controller cela si on a accès au code qui crée les ResourceBundle, en spécifiant qu'on ne souhaite pas utiliser de locale de secours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	ResourceBundle.Control control = ResourceBundle.Control.getNoFallbackControl(
    			ResourceBundle.Control.FORMAT_DEFAULT);
     
    	ResourceBundle rb = ResourceBundle.getBundle("demo.report", Locale.ENGLISH, control);

    a++

  8. #8
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ah ben c'est bon à savoir, je ne connaissais pas le control (c'est nouveau en 1.6 et pas eu l'occasion depuis d'utiliser des bundle autrement qu'avec un framework) !!

  9. #9
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par chtig Voir le message
    Ah ben c'est bon à savoir, je ne connaissais pas le control (c'est nouveau en 1.6 et pas eu l'occasion depuis d'utiliser des bundle autrement qu'avec un framework) !!
    Les Control c'est vraiment pas mal... sauf comme tu le dis on n'y a généralement pas accès lorsqu'on utilise un framework.



    Perso je les avais utilisé pour gérer des fichiers proprerties en UTF8


    a++

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/08/2010, 17h31
  2. Probleme de detecter un fichier properties par Jboss?
    Par KING_OF_GRACELAND dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 26/05/2009, 16h35
  3. [SQL] Utiliser un autre champ dans une table si le champ par défaut est vide
    Par Mawashigeri dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/01/2008, 14h31
  4. Pourquoi la taille de fonte par défaut est de 8.25 points?
    Par Nico57 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/12/2007, 09h55
  5. [BDS 2006] fichier bpi par défaut
    Par gandf dans le forum C++Builder
    Réponses: 1
    Dernier message: 15/09/2006, 18h34

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