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 :

probleme application multilingue


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Par défaut probleme application multilingue
    Bonjour à tous, je débute la programmation en java et la programmation en général. J'ai cherché comment mettre un programme tout simple en java et il se pose devant déjà quelques soucis. Sur le site du laboratoire de sun de supinfo j'ai trouvé un morceau de code pour avoir plusieurs langues. J'ai essayer ce code sur mon eclipse et ça ne marche pas.Voila le message d'erreur:


    Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name language, locale fr_FR
    at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
    at java.util.ResourceBundle.getBundleImpl(Unknown Source)
    at java.util.ResourceBundle.getBundle(Unknown Source)
    at LanguageChooser.<init>(LanguageChooser.java:20)
    at MyFrame.<init>(MyFrame.java:24)
    at MyFrame.main(MyFrame.java:14)


    et voila le code:
    Language_fr_FR.properties :

    Language_fr_FR.properties :
    menuLanguage=Langue
    labelHello=Bonjour le Monde!

    Language_en_US.properties

    Language_en_US.properties :
    menuLanguage=Language
    labelHello=Hello World!
    LanguageChooser.java :
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Locale;
    import java.util.ResourceBundle;
     
    public class LanguageChooser implements ActionListener {
     
    // Nom du fichier properties (sans les codes ISO)
    private static final String LANGUAGE_FILE = "language";
     
    private static ResourceBundle resourceBundle;
     
    // La fenetre
    private MyFrame frame;
     
    public LanguageChooser(MyFrame aFrame) {
    frame = aFrame;
    resourceBundle = ResourceBundle.getBundle(LANGUAGE_FILE, Locale
    .getDefault());
    }
     
    // Methode appelee lorsqu’on selectionne un menu
    public void actionPerformed(ActionEvent arg0) {
    // On a selectionne le menu anglais
    if (arg0.getActionCommand().equals("menuEn")) {
    // On choisi le fichier anglais
    resourceBundle = ResourceBundle.getBundle(LANGUAGE_FILE, Locale.US);
    }
    // Sinon on choisi le francais
    else if (arg0.getActionCommand().equals("menuFr")) {
    // On choisi le francais
    resourceBundle = ResourceBundle.getBundle(LANGUAGE_FILE, Locale.FRANCE);
    }
    //On modifie les labels avec la nouvelle langue
    frame.paintLabelWithLanguage();
    }
     
    /*
    * Methode statique qui permet de recuperer un String du fichier de langue
    * en fonction de la cle passee en parametre
    */
    public static String getAnInternationalizeString(String key) {
    // On retourne la valeur associee a la cle
    return resourceBundle.getString(key);
    }
     
     
    }
     
    MyFrame.java :
     
    import javax.swing.*;
     
    public class MyFrame extends JFrame {
    // Déclaration des différents composants
    private JLabel labelHello;
    private JMenuBar menuBar;
    private JMenu menuLanguage;
    private JMenuItem menuFr;
    private JMenuItem menuEn;
    private LanguageChooser languageChooser;
     
    // Point d’entrée de l’application
    public static void main(String[] args) {
    MyFrame fenetre = new MyFrame();
    }
     
    public MyFrame() {
    // Initialisation standard
    super("Application Internationale");
    setSize(300, 300);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    // Création du LanguageChooser
    languageChooser = new LanguageChooser(this);
     
    // Création du label
    labelHello = new JLabel();
    getContentPane().add(labelHello);
     
    // Création de la barre de menu
    menuBar = new JMenuBar();
    menuLanguage = new JMenu();
     
    menuFr = new JMenuItem("Francais");
    menuFr.setActionCommand("menuFr");
    menuFr.addActionListener(languageChooser);
    menuLanguage.add(menuFr);
     
    menuEn = new JMenuItem("English");
    menuEn.setActionCommand("menuEn");
    menuEn.addActionListener(languageChooser);
    menuLanguage.add(menuEn);
     
    menuBar.add(menuLanguage);
    setJMenuBar(menuBar);
     
    // On initailise les valeurs des labels, menus
    paintLabelWithLanguage();
     
    // On affiche la fenêtre
    setVisible(true);
    }
     
    /*
    * Méthode qui initialise le texte des différents labels et menus en
    * fonction de la langue
    */
    protected void paintLabelWithLanguage() {
    menuLanguage.setText(LanguageChooser
    .getAnInternationalizeString("menuLanguage"));
    labelHello.setText(LanguageChooser
    .getAnInternationalizeString("labelHello"));
    }
    }
    Voila si quelqu'un pouvait aider un pauvre noob je lui en serais très reconnaissant. Bonne journée à tous

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Par défaut
    up, si personne ne peut m'aider pour mon problème mais que vous avez un exemple pour que je puisse voir comment faire ça serait sympa.

  3. #3
    Membre expérimenté Avatar de bidi
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 262
    Par défaut
    Bête question :-) tes fichiers properties, tu les as bien mis dans ton classpath?

  4. #4
    Membre expérimenté Avatar de bidi
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 262
    Par défaut
    Deuxième truc auquel je pense :-)

    Attention aux majuscules!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Language_fr_FR.properties ==> private static final String LANGUAGE_FILE = "language";

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Par défaut
    merci pour ton aide bidi.
    mes fichiers .properties sont bien dans mon classpath. y a bien une faute pour la majuscule mais cela n'a pas résolu mon problème. Le nombre d'erreur est toujours le même, et je ne vois toujours pas comment les résoudre

  6. #6
    Membre expérimenté Avatar de bidi
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 262
    Par défaut
    Essaye un peu de renommer ton language_fr_FR.properties et language_fr.properties juste pour voir :-)

Discussions similaires

  1. Comment créer une application multilingue ?
    Par MiJack dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 29/09/2005, 23h17
  2. Programmation par module : applications multilingues
    Par argoet dans le forum Langages de programmation
    Réponses: 13
    Dernier message: 03/02/2004, 11h28
  3. Application multilingue
    Par Pystakus dans le forum IHM
    Réponses: 4
    Dernier message: 10/07/2003, 15h51

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