Un programme java en français et en anglais

Fermé
le disciple - 16 mars 2010 à 16:23
Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023 - 27 oct. 2015 à 07:18
Bonjour ,
Je programme Java. Je voudrais savoir comment je peux faire pour écrire une application dans laquelle l'utilisateur aura le choix de la langue. c'est à dire s'il choisi fraçais, toute l'application sera en français; et s'il choisi anglais toute l'application sera en anglais( comme on le voit sur certains logiciel). merci

2 réponses

DasSium95 Messages postés 672 Date d'inscription mardi 30 mars 2010 Statut Membre Dernière intervention 13 avril 2016 135
31 mars 2010 à 12:19
A part faire deux class différentes je vois pas trop comment tu pourrais faire.
0
Jvvj256 Messages postés 4 Date d'inscription lundi 26 octobre 2015 Statut Membre Dernière intervention 31 mars 2017
Modifié par Whismeril le 27/10/2015 à 07:09
Non, c'est assez simple, mais ça te demandera de revoir tout ton code s'il est déjà fait: la langue de ton code n'a pas d'importance, puisque l'utilisateur ne voit pas ton code. Ce qui est important, c'est quand tu affiches une String.

Donc, à chaque fois, dans ton code, qu'une String est affichée, par exemple comme ça:
g.drawString("Bienvenue !", 300, 300);

il faudra remplacer "Bienvenue !" par une méthode retournant le texte selon la langue choisie. La méthode ressemblera à ça:

public static String textBienvenue(){
    if(langue == anglais)
        return "Welcome !"
    else if(langue == français)
        return "Bienvenue !";
    else if(langue == italien)
        return "Benvenuti !";
    else if(langue == allemand)
        return "Wilkommen !";
}


et l'affichage du texte donnera ça:
g.drawString(textBienvenue, 300, 300);
0
Jvvj256 Messages postés 4 Date d'inscription lundi 26 octobre 2015 Statut Membre Dernière intervention 31 mars 2017
26 oct. 2015 à 23:25
et, évidemment, la langue est une variable statique, un "char" ou un "int" pour simplifier les choses.
0
Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023 888
27 oct. 2015 à 07:18
Bonjour jvvj256.

Quand on déterre une question vieille de plusieurs années, pour le demandeur initial cela n'a probablement plus d'importance.

Alors pour la communauté, il faut essayer d'être le plus complet.

Ta proposition fonctionne s'il y a "peu" de texte à écrire puisqu'il faut une fonction par texte affiché, mais n'est pas modulable.
Imaginons, qu'après un succès commercial on veuille diffuser l'application dans un pays dans la langue n'était pas prévue au départ, avec ta proposition, il va falloir modifier des dizaines, centaines, milliers? de fonctions selon le nombre de textes affichés.

Il est plus simple de disposer d'un listing qui associent un identifiant (un numéro par exemple) et les différentes traductions, pour ajouter une langue il "suffit" d'éditer ce listing, et il n'y a qu'une seule fonction pour afficher tous les textes.
0