I. Présentation▲
Pour ceux qui en ont un peu marre de coder à tout va, nous allons faire une petite pause aujourd'hui, car nous allons très peu coder.
Par défaut, les fichiers xml présents dans le dossier values et les images contenues dans le dossier drawable correspondent inévitablement à la langue par défaut c'est-à-dire l'anglais. Nous allons donc commencer par mettre le drapeau du Royaume-Uni (trouvé ici) dans le dossier drawable et le renommer flag.png. Ensuite nous allons dans le fichier string.xml situé dans le dossier res >>> values et nous allons modifier la Value pour chaque élément de ressources. Donc pour le champ app_name mettez comme valeur : Internationalize an Android application | tutomobile.fr et pour le champ hello mettez comme valeur : Hello, this Android Application is in English!
II. Internationaliser une application▲
II-A. Le Code XML▲
Je vous avais promis qu'il n'y aurait que très peu de code, je vais donc tenir ma parole, nous allons simplement ajouter une ImageView dans le fichier main.xml, qui devrait ressembler à ceci :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns
:
android
=
"http://schemas.android.com/apk/res/android"
android
:
orientation
=
"vertical"
android
:
layout_width
=
"fill_parent"
android
:
layout_height
=
"fill_parent"
android
:
gravity
=
"center_horizontal|center_vertical"
>
<ImageView
android
:
layout_width
=
"wrap_content"
android
:
layout_height
=
"wrap_content"
android
:
src
=
"@drawable/flag"
android
:
paddingBottom
=
"20dp"
/>
<TextView
android
:
layout_width
=
"wrap_content"
android
:
layout_height
=
"wrap_content"
android
:
text
=
"@string/hello"
/>
</LinearLayout>
Voilà c'est fini pour le code !
Maintenant si vous lancez votre application vous devriez voir apparaitre ceci :
Bon jusque là rien de bien nouveau, c'est comme un simple Hello World. Maintenant passons à la petite subtilité.
II-B. Internationaliser le texte▲
Parcourez les menus Files >>> New >>> Android XML File et appelez ce nouveau fichier string.xml. Vous allez sûrement me dire « oui il est bien gentil celui-là, mais il existe déjà ce fichier ! », donc oui il existe déjà, mais nous allons faire la version française.
Pour cela nous allons sélectionner Language dans la colonne Available Qualifiers et cliquer sur la petite flèche vers la droite pour faire passer Language dans la colonne Chosen Qualifier. Ensuite, taper les deux lettres « fr » dans la petite boîte de dialogue qui vient d'apparaître à droite de la fenêtre.
Votre fenêtre devrait ressembler à ceci :
Ensuite, cliquez sur Finish. Nous allons donc éditer le nouveau fichier string.xml situé dans le dossier res >>> values-fr et ajouter les couples Name/Value suivants : « hello/Bonjour, cette application est en français ! » et « app_name/Internationaliser une application Android | tutomobile.fr ».
II-C. Internationaliser les images▲
Nous allons passer à l'internationalisation des images. Créez un dossier drawable-fr-rFR dans le dossier res. Puis mettez l'image du drapeau français (trouvé ici) dans ce nouveau dossier drawable-fr-rFR sans oublier de le renommer flag.png.
Et voilà nous en avons fini avec les manip' sous Eclipse, vous pouvez lancer votre application. Normalement vous devez toujours avoir votre texte et votre image en anglais. Ne vous inquiétez pas, c'est normal, car la langue de l'émulateur est réglée par défaut sur l'anglais. Il suffit donc de modifier la langue du téléphone en allant sur l'application Custom Locale située dans le volet des applications de l'émulateur. Sélectionnez fr —> French avec un appui long puis cliquez sur Apply. Voilà désormais l'émulateur est en français, relancez votre application et vous devriez voir apparaître ceci :
Donc là nous avons fait un exemple d'application français/anglais, mais nous pouvons rajouter toutes les langues que nous voulons par exemple l'espagnol :
III. Remerciements▲
Je tiens à remercier tout particulièrement Feanorinhttp://www.developpez.net/forums/u35388/feanorin/ qui a mis ce tutoriel au format Developpez.com.
Merci également à Aieeeuuuuuhttp://www.developpez.net/forums/u349191/aieeeuuuuu/ d'avoir pris le temps de le relire et de le corriger.