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

Entrée/Sortie Java Discussion :

Fichier config.ini et internationalisation


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 40
    Points : 23
    Points
    23
    Par défaut Fichier config.ini et internationalisation
    Bonjour à tous!

    Toujours dans le cadre de mon stage de fin de cours, je continue à développer une application Java. Je débute en Java donc je dois faire pas mal de recherche mais, une fois encore, je bute sur un nouveau problème.

    On me demande de "supprimer" de mon code tous les noms de chemins d'accès, URL... et de passer par un fichier de config.ini.
    C'est une technique que je n'ai jamais mise en œuvre et je peine à trouver des exemples sur ce sujet.
    L'idée est de faire en sorte que mes successeurs puisse intervenir sur ce fichier config.ini sans être obligé d'aller modifier le code de mon appli.

    Dans un second temps, je devrais "internationaliser" mon appli.
    J'ai trouvé des pistes (I18n, ResourceBundle...) mais je ne sais pas quelle est la meilleure technique et je n'ai pas trouvé d'exemples détaillés à ce sujet.

    Enfin, je ne sais pas dans quel ordre procéder:
    Faut il tout coder simplement et ensuite passer au fichier de config ou faut il le faire simultanément?
    Idem pour l'internationalisation?

    Merci d'avance pour vos suggestions!

    @+

    Thomas.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 40
    Points : 23
    Points
    23
    Par défaut
    Re-bonjour!

    Mon sujet n'a pas eu beaucoup de succès! Je n'ai peut être pas posté au bon endroit?

    J'aurai cependant vraiment besoin de vos suggestions car je sèche complètement! Je n'ai pas écrit une ligne de code de l'après-midi...

    Pour préciser mon 1er message:
    les grandes lignes de mon appli fonctionnent. Il faut juste que je mette en place un fichier config.ini et un fichier xml pour l'internationalisation.

    Malheureusement, je n'ai jamais ça et je ne sais vraiment pas par ou commencer!

    Merci d'avance pour votre aide!

    @+

    Thomas.

  3. #3
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Intéresse-toi aux fichiers properties, cela répond à ton besoin (bien que ce ne soit pas un .ini ...).
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 40
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    Merci pour cette 1ère réponse.

    Je suis toujours dans mes recherches et je n'avance pas!

    Je vais commencer par le problème du fichier de configuration. Je cherche des exemples de code pour avoir une idée de la manière dont on peut "sortir" les noms de variables, messages, chemins d'accès du code et les placer dans un fichier de configuration.

    Je ne sais pas si c'est une pratique courante de faire ça en Java car j'ai beaucoup de mal à trouver des exemples...

    En fait, mon appli Java doit (dans un futur proche!) dialoguer avec un web service écrit par mes collègues qui codent en PHP et qui m'ont demandé de mettre en place le fichier de config.

    Ce qui est très embêtant dans le cadre de mon stage, c'est que je suis le seul à faire du java donc j'ai du mal à obtenir de l'aide lorsque je bloque sur une difficulté...

    Je m'en remets donc à la communauté des développeurs Java auprès de laquelle j'ai déjà obtenu quelques précieuses réponses me permettant d'avancer!

    Bonne fin de semaine à tous! (pour moi, je sens que le weekend va être studieux! )

    @+

    Thomas.

  5. #5
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Pour illustrer les propos de Hizin :
    - Lire des fichiers de propriétés en Java (je le trouve concis et clair)
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 40
    Points : 23
    Points
    23
    Par défaut
    Trop fort, j'étais sur ce site 30 secondes avant de voir ta réponse!

    En fait, ce n'est pas assez détaillé pour moi. J'ai un peu de mal à comprendre... J'aimerai en parallèle voir le fichier properties car je ne sais même pas à quoi ça ressemble!

    Je continue à lire désespérément tous les liens de la page de recherche google "java fichiers .properties"
    C'est pas gagné!

    @+

  7. #7
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Un fichier properties c'est juste un fichier texte avec l'extension .properties et la structure suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    page.title=Titre
    bouton.valider=Validation
    ...
    prop.getProperty("page.title", "vide") te renverra "Titre"

    Je ne vois pas ce que tu veux comme axe de précision quand tu dis que ce n'est pas assez détaillé pour toi.
    C'est, par exemple, bien utilisé pour l'internationalisation.

    Edit : Et comme je ne suis plus sur de ce que je dis, tu peux toujours tester de créer un fichier properties en lui faisant setProperty dessus et là tu verras l'aspect du fichier.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 40
    Points : 23
    Points
    23
    Par défaut
    Merci pour ta réponse.

    Ce que je cherche à faire, c'est supprimer tous les chemins d'accès, URL, ... de mon code java pour les placer dans un fichier de config (peu importe l'extension je pense). Un fichier .properties, .ini, .txt...

    C'est ce qu'on me demande de mettre en place afin que mon application puisse évoluer facilement en fonction des postes clients sur laquelle elle sera installée (répertoires de destinations, ...)

    Dans un 2ème temps, on me demande de mettre en place l'internationalisation de l’application via un fichier XML. Alors là, c'est le flou complet! Je verrai ça plus tard!

    Si vous savez ou trouver des exemples de ce genre de pratique, je suis preneur!

    A plus tard certainement!

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Pour le point 1, on t'as deja donné les bonnes réponses je pense (fichier properties).

    Pour le point 2. Si tu utilises eclipse, tu ne devrais avoir aucun mal a internationaliser ca (peut etre pas dans un fichier xml directement, dans un properties).
    Pour ma part, et il y'a surement mieux, il suffit d'aller sur le projet dans l'arbre, clique droit, source, Externalize strings... et magie (apres quelques configurations) il va te sortir tout les string dans un fichier et créer une classe qui va servir d'intermediaire.

    Classe que tu pourras modifier pour qu'apres traduction de tes fichier de langues, puisse lire les fichier correspondant a la langue. Et voila tu as un application qui est theoriquement en plusieurs langues...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Pour ma part, et il y'a surement mieux, il suffit d'aller sur le projet dans l'arbre, clique droit, source, Externalize strings... et magie (apres qlq configurations) il va te sortir tout les string dans un fichier et créer une classe qui va servir d'intermediaire.
    Voilà qui est bien avec dvp.net, on répond à un problème et on apprend des choses en plus. Je ne connaissais pas du tout cette fonctionnalité.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 40
    Points : 23
    Points
    23
    Par défaut
    OK. Pour le fichier de config, je vais concentrer mes recherches sur les fichiers properties.

    Pour l'internationalisation, je vais tester cette fonction d'Eclipse et je vous dis ce que ça a donné.

    Merci à tous!

    @+

  12. #12
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Après si tu as vraiment besoin d'un fichier INI:

    http://java.developpez.com/sources/?...fichier%20.INI

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  13. #13
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Jette un oeil aussi ici tu trouveras peut être ton bonheur.
    http://jmdoudoux.developpez.com/cour.../chap-i18n.php

    Sinon un mot a chercher serait "RessourceBundle"...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 40
    Points : 23
    Points
    23
    Par défaut
    Merci Bulbo! J'avais déjà récupéré ce code. Je me le suis mis dans un coin et je pense que je vais m'en servir effectivement.

    Sinon, je viens de tester la fonction "Externaliser les chaines" de Eclipse (je l'ai en français...) sur un petit projet que j'avais en réserve. C'est carrément trop fort!
    Je crois bien que c'est exactement ce que je voulais!

    Même si ça ne fais pas tout, ça me donne de précieuses indications sur la manière de procéder.
    Petite démo:

    Avant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    getFilesRec(allFiles, "C:\\Users\\XXXXXX\\Documents\\FICHIERS STAGE JAVA\\PCCLIENT");
    System.out.println ("Contenu du répertoire C:\\Users\\XXXXXXX\\Documents\\FICHIERS STAGE JAVA\\PCCLIENT");
    Après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    getFilesRec(allFiles, Messages.getString("ShowFiles.0")); //$NON-NLS-1$
    System.out.println (Messages.getString("ShowFiles.1")); //$NON-NLS-1$
    Avec le petit fichier properties qui s'est crée tout seul! :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ShowFiles.0=C:\\Users\\xxxxxxxxxx\\Documents\\FICHIERS STAGE JAVA\\PCCLIENT
    ShowFiles.1=Contenu du r\u00E9pertoire C:\\Users\\xxxxxxxxxx\\Documents\\FICHIERS STAGE JAVA\\PCCLIENT
    Je pense qu'on peut dire que mon problème est quasiment résolu!

    Je vais voir si ça convient ou si il faut absolument un .ini.
    Si c'est le cas, je verrai si je peux passer de l'un à l'autre.

    Je vous tiens au courant.

    Merci encore!

    @+

  15. #15
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 40
    Points : 23
    Points
    23
    Par défaut
    Je me permets de rajouter une réponse sur ce même thème:

    Ca va peut être vous paraitre évident si vous êtes habitués à ce genre de manip' mais je débute et je suis carrément content de ce que je viens de trouver donc je vais essayer d'en faire profiter les autres!

    Lorsque l'on génère automatiquement l'externalisation des chaines avec Eclipse, il créé, dans chaque package des fichiers messages.properties

    Pour l'i18n, j'ai utilisé ce code que j'ai placé dans ma classe main:

    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
     
    //Internationalisation
    		 String language;
    	     String country;
     
    	        if (args.length != 2) {
    	            language = new String("en");
    	            country = new String("US");
    	        } else {
    	            language = new String(args[0]);
    	            country = new String(args[1]);
    	        }
     
    	        Locale currentLocale;
    	        ResourceBundle messages;
     
    	        currentLocale = new Locale(language, country);
     
    	        messages = ResourceBundle.getBundle("lesMessages.MessagesBundle",currentLocale);
    Ensuite, j'ai créé un package "lesMessages" contenant 2 fichiers :
    MessagesBundle_en_GB.properties et
    MessagesBundle_fr_FR.properties

    et j'ai copié le contenu des fichiers messages.properties de chaque package de mon appli dans les fichiers précédents (en traduisant la version française en anglais à coup de google traduction!). J'ai également séparé le contenu des packages en mettant des titres avec #

    Enfin, dans les classes Messages.java générées automatiquement lors de l'externalisation des chaines, j'ai changé le chemin d'accès aux fichiers Bundle :

    private static final String BUNDLE_NAME = "logging.messages";
    // -->
    private static final String BUNDLE_NAME = "lesMessages.MessagesBundle"

    Pour finir proprement, on peut supprimer les fichiers messages.properties de chaque package car ils ne sont plus lus.

    J'espère que j'ai été suffisamment pour que vous puissiez utiliser cette manip...

    Bonne continuation à tous!

    @+

  16. #16
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    C'est presque ca qu'il fallait faire bien joué

    Pour le coup de googletranslate, j'avais fait ceci moi, qui pourra reservir dans un premier temps a ceux qui le désirent... c'est un traducteur de phrase qui va sur googletranslate ... et que j'avais fait pour traduire betement des fichier properties dans le meme but.

    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
    public class GoogleTranslate
    {
     
    	String RequeteBuffer = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&hl=fr&q=%s&langpair=%s|%s";
     
    	/**
             * @param args
             * @throws Exception 
             */
    	public static void main(String[] args) throws Exception
    	{
    	//	OutputStream sf = new ByteOutputStream();
    		GoogleTranslate gt = new GoogleTranslate();
    		String buffer = gt.Get("debut de la fonction d'optimisation", "fr", "en");
    		System.err.println(""+buffer);
    		buffer = gt.Get("Debut de la fOnction d'optimisation", "fr", "en");
    		System.err.println(""+buffer);
    		buffer = gt.Get("Debut de la fonction d'optimisation", "fr", "en");
    		System.err.println(""+buffer);
    		buffer = gt.Get("Début de la fonction d'optimisation", "fr", "en");
    		System.err.println(""+buffer);
    		buffer = gt.Get("Début de la fonction d'optimisation", "fr", "en");
    		System.err.println(""+buffer);
     
     
     
    	}
     
     
    	@SuppressWarnings("deprecation")
    	public String Get(String phraseatraduire, String langue1, String langue2) throws Exception {
    		String flag = "translatedText\":";
     
    		String responseFlag = "\"responseStatus\": 200";
     
    		phraseatraduire = StringOperation.sansAccent(phraseatraduire);
     
    		String req = RequeteBuffer;
    		req=String.format(RequeteBuffer, URLEncoder.encode(phraseatraduire), langue1, langue2);
    		URL yahoo = new URL(req);
    		BufferedReader in = new BufferedReader(new InputStreamReader(yahoo.openStream()));
    		String inputLine;
    		String buffer = "";
    		while ((inputLine = in.readLine()) != null)
    			buffer+=inputLine;
    		in.close();
    		if (buffer.contains(responseFlag)==false)
    			throw new Exception("Probleme le serveur reponds "+buffer);
     
    		// Cherche la reponse
    		int idx = buffer.indexOf(flag);
    		if (idx == -1) throw new Exception("Probleme ne trouve pas le flag "+flag+" dans la reponse : "+buffer);
    		idx += flag.length()+1;
     
    		int idx2 = buffer.indexOf("\"", idx);
    		buffer = buffer.substring(idx, idx2);
    		return buffer;
    	}
     
     
    }
    Et l'autre classe qui manque (que j'ai piqué je ne sais ou je ne sais quand ...)
    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
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    public abstract class StringOperation
    {
     
    	/** Index du 1er caractere accentué **/
    	private static final int MIN = 192;
    	/** Index du dernier caractere accentué **/
    	private static final int MAX = 255;
    	/** Vecteur de correspondance entre accent / sans accent **/
    	private static final Vector<String> map = initMap();
     
    	/** Initialisation du tableau de correspondance entre les caractéres accentués
               * et leur homologues non accentués 
               */
    	private static Vector<String> initMap()
    	{
    		Vector<String> Result = new Vector<String>();
    		java.lang.String car = null;
     
    		car = new java.lang.String("A");
    		Result.add(car);            /* '\u00C0'   À   alt-0192  */
    		Result.add(car);            /* '\u00C1'   Á   alt-0193  */
    		Result.add(car);            /* '\u00C2'   Â   alt-0194  */
    		Result.add(car);            /* '\u00C3'   Ã   alt-0195  */
    		Result.add(car);            /* '\u00C4'   Ä   alt-0196  */
    		Result.add(car);            /* '\u00C5'   Å   alt-0197  */
    		car = new java.lang.String("AE");
    		Result.add(car);            /* '\u00C6'   Æ   alt-0198  */
    		car = new java.lang.String("C");
    		Result.add(car);            /* '\u00C7'   Ç   alt-0199  */
    		car = new java.lang.String("E");
    		Result.add(car);            /* '\u00C8'   È   alt-0200  */
    		Result.add(car);            /* '\u00C9'   É   alt-0201  */
    		Result.add(car);            /* '\u00CA'   Ê   alt-0202  */
    		Result.add(car);            /* '\u00CB'   Ë   alt-0203  */
    		car = new java.lang.String("I");
    		Result.add(car);            /* '\u00CC'   Ì   alt-0204  */
    		Result.add(car);            /* '\u00CD'   Í   alt-0205  */
    		Result.add(car);            /* '\u00CE'   Î   alt-0206  */
    		Result.add(car);            /* '\u00CF'   Ï   alt-0207  */
    		car = new java.lang.String("D");
    		Result.add(car);            /* '\u00D0'   Ð   alt-0208  */
    		car = new java.lang.String("N");
    		Result.add(car);            /* '\u00D1'   Ñ   alt-0209  */
    		car = new java.lang.String("O");
    		Result.add(car);            /* '\u00D2'   Ò   alt-0210  */
    		Result.add(car);            /* '\u00D3'   Ó   alt-0211  */
    		Result.add(car);            /* '\u00D4'   Ô   alt-0212  */
    		Result.add(car);            /* '\u00D5'   Õ   alt-0213  */
    		Result.add(car);            /* '\u00D6'   Ö   alt-0214  */
    		car = new java.lang.String("*");
    		Result.add(car);            /* '\u00D7'   ×   alt-0215  */
    		car = new java.lang.String("0");
    		Result.add(car);            /* '\u00D8'   Ø   alt-0216  */
    		car = new java.lang.String("U");
    		Result.add(car);            /* '\u00D9'   Ù   alt-0217  */
    		Result.add(car);            /* '\u00DA'   Ú   alt-0218  */
    		Result.add(car);            /* '\u00DB'   Û   alt-0219  */
    		Result.add(car);            /* '\u00DC'   Ü   alt-0220  */
    		car = new java.lang.String("Y");
    		Result.add(car);            /* '\u00DD'   Ý   alt-0221  */
    		car = new java.lang.String("Þ");
    		Result.add(car);            /* '\u00DE'   Þ   alt-0222  */
    		car = new java.lang.String("B");
    		Result.add(car);            /* '\u00DF'   ß   alt-0223  */
    		car = new java.lang.String("a");
    		Result.add(car);            /* '\u00E0'   à   alt-0224  */
    		Result.add(car);            /* '\u00E1'   á   alt-0225  */
    		Result.add(car);            /* '\u00E2'   â   alt-0226  */
    		Result.add(car);            /* '\u00E3'   ã   alt-0227  */
    		Result.add(car);            /* '\u00E4'   ä   alt-0228  */
    		Result.add(car);            /* '\u00E5'   å   alt-0229  */
    		car = new java.lang.String("ae");
    		Result.add(car);            /* '\u00E6'   æ   alt-0230  */
    		car = new java.lang.String("c");
    		Result.add(car);            /* '\u00E7'   ç   alt-0231  */
    		car = new java.lang.String("e");
    		Result.add(car);            /* '\u00E8'   è   alt-0232  */
    		Result.add(car);            /* '\u00E9'   é   alt-0233  */
    		Result.add(car);            /* '\u00EA'   ê   alt-0234  */
    		Result.add(car);            /* '\u00EB'   ë   alt-0235  */
    		car = new java.lang.String("i");
    		Result.add(car);            /* '\u00EC'   ì   alt-0236  */
    		Result.add(car);            /* '\u00ED'   í   alt-0237  */
    		Result.add(car);            /* '\u00EE'   î   alt-0238  */
    		Result.add(car);            /* '\u00EF'   ï   alt-0239  */
    		car = new java.lang.String("d");
    		Result.add(car);            /* '\u00F0'   ð   alt-0240  */
    		car = new java.lang.String("n");
    		Result.add(car);            /* '\u00F1'   ñ   alt-0241  */
    		car = new java.lang.String("o");
    		Result.add(car);            /* '\u00F2'   ò   alt-0242  */
    		Result.add(car);            /* '\u00F3'   ó   alt-0243  */
    		Result.add(car);            /* '\u00F4'   ô   alt-0244  */
    		Result.add(car);            /* '\u00F5'   õ   alt-0245  */
    		Result.add(car);            /* '\u00F6'   ö   alt-0246  */
    		car = new java.lang.String("/");
    		Result.add(car);            /* '\u00F7'   ÷   alt-0247  */
    		car = new java.lang.String("0");
    		Result.add(car);            /* '\u00F8'   ø   alt-0248  */
    		car = new java.lang.String("u");
    		Result.add(car);            /* '\u00F9'   ù   alt-0249  */
    		Result.add(car);            /* '\u00FA'   ú   alt-0250  */
    		Result.add(car);            /* '\u00FB'   û   alt-0251  */
    		Result.add(car);            /* '\u00FC'   ü   alt-0252  */
    		car = new java.lang.String("y");
    		Result.add(car);            /* '\u00FD'   ý   alt-0253  */
    		car = new java.lang.String("þ");
    		Result.add(car);            /* '\u00FE'   þ   alt-0254  */
    		car = new java.lang.String("y");
    		Result.add(car);            /* '\u00FF'   ÿ   alt-0255  */
    		Result.add(car);            /* '\u00FF'       alt-0255  */
     
    		return Result;
    	}
     
    	/** Transforme une chaine pouvant contenir des accents dans une version sans accent
          *  @param chaine Chaine a convertir sans accent
             *  @return Chaine dont les accents ont été supprimé
             **/
    		public static java.lang.String sansAccent(java.lang.String chaine)
    	{
    		    if (chaine==null)
    		    {
    			System.err.println("Fuck off");
    		    }
    		java.lang.StringBuffer Result = new StringBuffer(chaine);
     
    		for (int bcl = 0; bcl < Result.length(); bcl++)
    		{
    			int carVal = chaine.charAt(bcl);
    			if (carVal >= MIN && carVal <= MAX)
    			{  // Remplacement
    				java.lang.String newVal = map.get(carVal - MIN);
    				Result.replace(bcl, bcl + 1, newVal);
    			}
    		}
    		return Result.toString();
    	}
    }
    Après il reste plus qu'a l'utiliser ... mais vérifiez quand même les résultats qui peuvent avoir des erreurs ou autres.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #17
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2011
    Messages : 40
    Points : 23
    Points
    23
    Par défaut
    Encore plus fort! Très bonne idée!

    Maintenant que mon appli parle Anglais, on me demande aussi de la mettre en espagnol et en allemand! Je vais passer la fin de ma journée à faire de la traduction!

    Je vais peut être tester ta méthode. Je crois que c'est le moment ou jamais!

    Merci,

    @+

    Thomas.

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

Discussions similaires

  1. Accès au fichier config.ini
    Par jemtlse dans le forum Débuter
    Réponses: 14
    Dernier message: 12/02/2013, 17h54
  2. Format du fichier de config : .ini ou .xml ?
    Par LapinGarou dans le forum Développement 2D, 3D et Jeux
    Réponses: 11
    Dernier message: 30/06/2007, 10h44
  3. A propos de fichier « config.sys »
    Par Furius dans le forum Windows
    Réponses: 9
    Dernier message: 21/09/2005, 10h03
  4. où se trouve le fichier php.ini ?
    Par teko dans le forum Apache
    Réponses: 5
    Dernier message: 28/07/2004, 12h39

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