Anis Cherfi
[Link]@[Link]
TP 2 : La gestion de plusieurs langues
sous Android
Réalisé par : Anis Cherfi – 2023/2024
1. Introduction :
Vous devez vous dire que manipuler plusieurs langages sera deux fois plus
complexe et deux fois plus long à apprendre… mais ce n’est pas le cas ! Dans ce
TP vous allez découvrir comment afficher les messages et les textes de votre
application en fonction de la langue de l’appareil mobile.
2. Création d’un premier projet Android :
1. Au tout début, vous n’aurez aucun projet Android. Dans la fenêtre d’accueil,
choisissez New Project pour commencer à créer votre premier projet.
2. Dans la première boîte de dialogue, choisissez le type d’application souhaitée. Il
faut déjà bien connaître celle que vous choisirez, car l’assistant va générer du code
assez complexe. Pour ce TP et parce que c’est le modèle le plus simple, choisissez
Empty Activity (voir figure 1).
Figure 1: Type de projet
Page : 1
Anis Cherfi
[Link]@[Link]
3. Dans la seconde boîte de dialogue (voir figure 2), on vous demande plusieurs
choses :
a) Le nom de l’application, mettez ESB,
b) Son paquetage Java : mettez [Link],
c) L’emplacement du projet, laissez l’emplacement proposé par défaut,
C:\Users\vous\AndroidStudioProjects\.... Si vous êtes chez vous, laissez le
dossier proposé par l’assistant.
d) Le langage, changez pour Java,
e) Le niveau d’API SDK voulu, par exemple la 16, 22, 24, et.. C’est la version
minimale que devront avoir les smartphones pour installer votre
application : ils devront être au moins aussi récents que cette API. Cela
définit le niveau de fonctionnalités de votre application : s’il est trop élevé,
peu de smartphones seront capables de faire tourner votre application ;
trop bas, vous n’aurez pas beaucoup de fonctions agréables à votre
disposition. Vous pouvez cliquer sur Help me choose pour avoir un
graphique de la distribution des versions d’API dans le monde.
Figure 2: Détails du projet
4. Android Studio crée ensuite le projet.
Page : 2
Anis Cherfi
[Link]@[Link]
3. Structure du projet :
Allez voir le dossier correspondant au projet, dans le dossier
AndroidStudioProjects\TP1 de vos documents, le nom complet est dans le titre de
la fenêtre Android Studio :
• Le dossier du projet contient le premier [Link], celui en vert qui
indique les dépôts à utiliser pour la compilation (Google et mavenCentral).
Le fichier [Link] contient la configuration du proxy. On trouve
aussi un [Link] contenant le chemin du SDK.
• Le dossier app contient le second [Link], celui en orange qui décrit les
caractéristiques du projet : API et dépendances.
• Le dossier app/src/main en rouge contient le cœur du projet : manifeste,
sources et ressources.
• app/src/main/java contient les dossiers correspondant au package que
vous avez déclaré, avec les sources Java tout au bout du package.
• app/src/main/res/drawable contiendra des images vectorielles utilisées
dans votre projet.
• app/src/main/res/layout contient les dispositions d’écran des activités de
votre projet.
• app/src/main/res/menu contient les menus contextuels et d’application du
projet.
• app/src/main/res/mipmap* contient les icônes bitmap dans diverses
résolutions.
• app/src/main/res/values contient les constantes du projet, dont les chaînes
de caractères avec toutes leurs traductions.
Figure 3: Structure du projet
Page : 3
Anis Cherfi
[Link]@[Link]
Ces fichiers n’apparaissent pas ainsi dans l’interface, ils sont regroupés autrement,
à vous de voir comment.
4. Traduction d’une application :
Revenir toujours à l’application du TP, il s’agit de changer le message qui apparait
lors de l’exécution de l’application. Dans le fichier main_activity.xml, le message
Hello Word ! apparait dans la balise TextView. Vous pouvez dès lors modifier son
contenu, en fonction de vos souhaits (voir figure 4). Compilez et testez.
Figure 4: Modifier le texte d’un TextView
Actuellement le texte « Hello Word ! » se trouve en dur, dans le fichier
res/layout/activity_main.xml. La manière de gérer et modifier le contenu de ce
texte va cependant cacher les possibilités offertes par Android de gérer plusieurs
langues, en centralisant par exemple les chaines constantes dans le fichier
values/[Link] et ses dérivés. Il est donc plus judicieux de déclarer la chaine
de caractère « Hello Word ! » dans le fichier [Link] et d’établir un lien entre la
variable définie dans ce fichier et le TextView utilisé dans main_activity.xml.
Ces manipulations vont nous faire découvrir la puissance des ressources dans
Android. Les ressources sont des fichiers associés aux sources, comme des icônes,
des dispositions d’interfaces (layouts), et des traductions.
4.1. Mettre un texte dans les ressources :
a. Créez une variable hello_word dans le fichier [Link], en l’initialisant avec le
texte Hello Word !
Page : 4
Anis Cherfi
[Link]@[Link]
b. Modifiez le TextView présent dans le fichier main_activity.xml pour établir un
lien vers la variable que vous avez ajouté dans le fichier [Link].
Solution 1 :
Modifier le fichier [Link] pour ajouter une chaine de caractère :
Dans le fichier res/layout/activity_main.xml, sélectionnez le TextView puis dans
l’attribue text vous devez parcourir les ressources (2) et choisir la variable que vous
avez ajouté (3) :
Solution 2 :
1. Double-cliquez sur res/layout/activity_main.xml, il est peut-être déjà ouvert
dans un onglet.
2. Affichez le contenu XML de ce fichier en cliquant sur Code
3. Il est probable que la ligne android:text="Hello Word !" soit colorée en orange,
signe qu’on peut faire mieux. Placez le curseur dessus. Normalement une
ampoule apparaît peu après.
4. Cliquez sur l’ampoule et ensuite Extract string resource
Page : 5
Anis Cherfi
[Link]@[Link]
5. Le dialogue suivant définit un identifiant pour la chaîne (Resource name). En
principe, on choisit un identifiant international et facile à comprendre pour des
traducteurs.
C’est fini. Deux choses se sont passées :
a) android:text="Hello Word !" a été remplacé par
android:text="@string/hello_word". C’est ce qu’on appelle une référence de
ressource.
b) Dans le fichier res/values/[Link], il y a cette nouvelle balise. <string
name=" hello_word "> Hello Word !</string>
En résumé, placer un texte dans les ressources signifie :
• Ajouter une balise <string name="un_identifiant">texte</string> dans
res/values/[Link]
• Remplacer le texte en dur (hard coded) par une référence <TextView ...
android:text="@string/un_identifiant" ...
La syntaxe @string/identifiant est une référence à une ressource de type chaîne,
placée dans res/values/[Link].
4.1. Traduire les ressources :
Cela consiste à faire des variantes du fichier [Link], une pour chaque langue
visée. Ces variantes seront dans différents dossiers, par exemple res/values-
fr/[Link], res/values-de/[Link], res/values-en/[Link], res/values-
es/[Link], etc. Chacun de ces fichiers contiendra les mêmes balises avec les
mêmes identifiants que res/values/[Link], mais les textes seront traduits.
Page : 6
Anis Cherfi
[Link]@[Link]
Pour ajouter la langue française, il s’agit de créer un dossier values-fr (sous le
dossier res) contenant un fichier [Link] :
1. Dans l’explorateur de projet clic-droit sur res et New=>Directory=>values-fr
2. Dans l’explorateur de projet clic-droit sur res et Show in Explorer : pour
afficher le répertoire de votre projet afin de le manipuler
3. Copier le fichier res\values\[Link] vers res\values-fr
4. Revenant à AndroidStudio, cliquez sur le dossier res puis Synchronize res :
pour afficher les modifications effectuées.
5. Changer les messages à afficher dans le fichier [Link] (fr) :
Android Studio facilite ce travail, au lieu d’effectuer ces manipulations vous pouvez
tout simplement :
1. Double-cliquez sur le fichier res/values/[Link] pour l’afficher dans un
éditeur.
2. Cliquez sur les mots Open editor en haut à droite de la zone où il y a le
contenu XML. C’est un éditeur de traductions.
3. Cliquez sur le bouton en forme de globe terrestre en haut à gauche, et
ajoutez une « Locale ». Cherchez French (fr) dans la liste.
4. Une nouvelle colonne est apparue. Mettez Permuter pour le français et
Round Robin pour la valeur par défaut. Cochez Untranslatable pour ESB.
5. Maintenant, il faut lancer l’application sur l’AVD. Changez les paramètres
linguistiques, anglais <-> français pour voir le changement.
Énormément de choses peuvent être reconfigurées en fonction des paramètres
du smartphone, message, dispositions, icônes, thèmes, etc.
Page : 7