Localiser l'interface utilisateur avec l'éditeur de traductions

L'éditeur de traductions offre une vue consolidée et modifiable de toutes vos ressources de chaîne par défaut et traduites.

Pour une introduction à la traduction de votre application dans différentes langues, consultez l'article Assurer la compatibilité avec différentes langues et cultures.

Figure 1. Éditeur de traductions affichant le texte de l'application avant la traduction

Ressources de chaîne

Les ressources de chaîne d'un projet sont contenues dans des fichiers strings.xml. Votre projet comporte un fichier strings.xml par défaut qui contient des ressources de chaîne dans la langue par défaut de votre application. C'est la langue que la plupart des utilisateurs de votre application doivent connaître. Vous pouvez également traduire les fichiers strings.xml contenant des ressources de chaîne dans les autres langues de votre choix.

Une fois que votre fichier strings.xml par défaut est terminé, vous pouvez ajouter les traductions vous-même ou payer un service professionnel pour qu'il s'en charge. Quel que soit votre choix, nous vous conseillons d'utiliser les fonctionnalités d'Android Studio pour gérer et tester le texte localisable. Pour en savoir plus sur les services de traduction professionnels, consultez l'article Commander des services de traduction.

Ouvrir l'éditeur de traductions

Vous pouvez accéder à l'éditeur de traductions depuis les emplacements suivants dans Android Studio.

Ouvrir dans la vue Android

  1. Dans le panneau Project > Android (Projet > Android) à gauche, sélectionnez ModuleName > res > values (valeurs).
  2. Effectuez un clic droit sur le fichier strings.xml, puis sélectionnez Ouvrir l'éditeur de traductions.

    L'éditeur de traductions affiche les paires clé/valeur du fichier strings.xml.

    Remarque : Lorsque vous avez traduit des fichiers strings.xml, votre projet comporte plusieurs dossiers values correspondants avec des suffixes indiquant la langue, comme values-es pour l'espagnol. Votre fichier strings.xml par défaut se trouve toujours dans le dossier values (sans suffixe).

La figure 1 présente le texte par défaut de l'application (dans ce cas, en anglais) dans l'éditeur de traductions pour une application simple avant que la traduction n'ait été effectuée. Le contenu des fichiers strings.xml traduits s'affiche à droite de la colonne Untranslatable (Non traduisible), avec une colonne par langue, comme illustré dans la figure 2.

Ouvrir dans le fichier strings.xml

Vous pouvez accéder à Translations Editor (Éditeur de traductions) depuis n'importe lequel de vos fichiers strings.xml.

  1. Dans le panneau Project > Android (Projet > Android) à gauche, sélectionnez ModuleName > res > values.
  2. Double-cliquez sur le fichier strings.xml pour l'ouvrir afin de le modifier.
  3. Dans le fichier strings.xml, cliquez sur le lien Open editor (Ouvrir l'éditeur) en haut à droite.

Remarque : Si vous cliquez sur le lien Hide notification (Masquer la notification), le lien Open editor (Ouvrir l'éditeur) disparaît. Pour l'afficher à nouveau, fermez et rouvrez le projet.

Ouvrir dans l'éditeur de conception

Pour modifier le texte par défaut et le texte traduit afin de l'adapter à votre mise en page, vous pouvez ouvrir l'éditeur de traductions à partir de l'éditeur de conception dans l'éditeur de mise en page. Pour savoir comment changer de langue dans l'éditeur de conception, consultez l'article Afficher le texte traduit dans l'éditeur de conception.

  1. Dans le panneau Project > Android (Projet > Android) à gauche, sélectionnez ModuleName > res > layout (mise en page).
  2. Double-cliquez sur le fichier content_main.xml pour l'ouvrir afin de le modifier.
  3. Cliquez sur l'onglet Design (Conception) en bas à gauche pour afficher Design Editor (Éditeur de conception).
  4. Dans l'éditeur de conception, sélectionnez la liste déroulante Language (Langue) .
  5. Sélectionnez Edit Translations (Modifier les traductions) .

Configurer les lignes non traduisibles

Dans Translations Editor, vous pouvez sélectionner Untranslatable pour indiquer que vous ne souhaitez pas que le texte de cette ligne soit traduit. Le texte que vous ne voulez pas traduire peut être spécifique à un produit, comme des noms commerciaux et des marques, ou des termes techniques sans traduction.

Lorsque vous cochez Untranslatable, la ligne correspondante dans le fichier strings.xml par défaut ajoute translatable="false" (traduisible="faux"). Dans l'exemple suivant, EasyApp dans la ligne supérieure n'est pas traduit, car il s'agit du nom du produit.

<resources>
    <string name="app_name" translatable="false">EasyApp</string>
    <string name="action_settings">Settings</string>
    <string name="easy_app">I am a Simple App!</string>
    <string name="next_page">Next Page</string>
    <string name="second_page_message">I am the Second Page!</string>
    <string name="title_activity_second">SecondActivity</string>
</resources>

Ajouter et supprimer des langues

L'éditeur de traductions est compatible avec la définition standard BCP 47 et combine les codes des paramètres régionaux et les codes de région (pays) en une seule sélection pour les localisations ciblées. Les paramètres régionaux définissent bien plus que la langue. Les paramètres régionaux incluent un formatage dépendant du pays pour des éléments tels que la date et l'heure, les devises et les nombres décimaux.

Pour ajouter une langue :

  1. Dans l'éditeur de traductions, cliquez sur l'icône représentant un globe .
  2. Dans la liste déroulante, sélectionnez la langue que vous souhaitez ajouter.

    La nouvelle langue apparaît dans l'éditeur de traductions, et un dossier values-* (valeurs-*) avec un fichier strings.xml est ajouté au projet. Par exemple, values-es pour l'espagnol.

Pour supprimer une langue :

Vous pouvez supprimer une langue dans éditeur de traductions en supprimant toutes les valeurs de la colonne (voir Modifier, ajouter ou supprimer du texte) ou en supprimant le dossier du projet pour cette langue, comme suit :

  1. Dans le panneau Project > Android (Projet > Android) à gauche, sélectionnez ModuleName > res.
  2. Effectuez un clic droit sur le dossier values-* correspondant à la langue que vous souhaitez supprimer. Par exemple, values-hi pour l'hindi.
  3. Dans la liste déroulante, sélectionnez Delete (Supprimer) pour supprimer le dossier et son fichier strings.xml.

Modifier, ajouter et supprimer du texte

Vous pouvez modifier les paramètres de texte directement dans le fichier strings.xml ou via l'Translations Editor. Cette section décrit l'approche de l'Translations Editor. Dans l'éditeur de traductions, vous pouvez modifier, ajouter ou supprimer du texte via l'affichage sous forme de liste ou le champ Translation (Traduction) en bas de Translations Editor (Éditeur de traductions).

Figure 2. Affichage sous forme de liste en haut et champ Translation en bas

Affichage sous forme de liste

Pour modifier ou ajouter du texte :

  1. Double-cliquez sur la cellule dans laquelle vous souhaitez modifier ou ajouter du texte.
  2. Effectuez un copier-coller avec votre clavier ou, si vous avez un clavier prenant en charge les signes diacritiques, saisissez du texte directement dans l'affichage sous forme de liste.
  3. Appuyez sur la touche Tab ou déplacez le curseur en dehors du champ.

Pour supprimer du texte :

  1. Double-cliquez sur la cellule que vous souhaitez supprimer.
  2. Dans l'affichage sous forme de liste, sélectionnez le texte, puis appuyez sur la touche Suppr.
  3. Appuyez sur la touche Tab ou déplacez le curseur en dehors du champ.

Champ "Traduction"

Pour modifier ou ajouter du texte :

  1. Dans l'affichage sous forme de liste, cliquez sur la cellule dans laquelle vous souhaitez modifier ou ajouter du texte.
  2. Dans le champ Translation (Traduction), effectuez un copier-coller avec votre clavier ou, si vous avez un clavier prenant en charge les signes diacritiques, saisissez du texte directement dans le champ Translation.
  3. Appuyez sur la touche Tab ou déplacez le curseur en dehors du champ.

Pour supprimer du texte :

  1. Cliquez sur la cellule que vous souhaitez supprimer.
  2. Dans le champ Translation, sélectionnez le texte et appuyez sur la touche Suppr.

Ajouter et supprimer des clés

Dans l'éditeur de traductions, la colonne Key (Clé) répertorie les identifiants uniques de chaque élément de données de vos fichiers strings.xml. Vous pouvez ajouter et supprimer des clés via l'éditeur de traductions. Lorsque vous supprimez une clé, l'éditeur de traductions la supprime, ainsi que toutes les traductions associées. L'éditeur de traductions utilise la refactorisation à des fins de suppression sécurisée pour supprimer une clé afin que vous sachiez si son texte est utilisé ailleurs et que vous ayez la possibilité d'effectuer les ajustements nécessaires avant de supprimer la clé. La refactorisation à des fins de suppression sécurisée garantit la compilation du code après la suppression de la clé.

Pour ajouter une clé :

  1. Dans Translations Editor, cliquez sur Add Key (Ajouter une clé) .
  2. Dans la boîte de dialogue, saisissez un nom de clé, une valeur par défaut et l'emplacement du fichier strings.xml par défaut.

    Figure 3. Ajout d'une clé

Pour supprimer une clé :

  1. Dans l'éditeur de traductions, sélectionnez la clé que vous souhaitez supprimer.
  2. Cliquez sur Remove Keys (Supprimer des clés) .
  3. Dans la boîte de dialogue Delete (Supprimer), indiquez si vous souhaitez effectuer une suppression sécurisée et si vous souhaitez effectuer une recherche dans les commentaires et les chaînes. Cliquez ensuite sur OK.

    Figure 4. Boîte de dialogue "Delete"

    Si la clé supprimée ne contient aucune référence (utilisation), ou si toutes les références peuvent être réduites de manière sécurisée, la clé est supprimée. Sinon, l'éditeur de traductions affiche la boîte de dialogue Usages Detected (Utilisations détectées) avec des informations sur les problèmes détectés.

    Figure 5. Boîte de dialogue "Delete"

  4. Sélectionnez View Usages pour voir ce qui sera supprimé. La boîte de dialogue Find Safe Delete Conflicts (Rechercher des conflits de suppression sécurisée) affiche toutes les utilisations que vous ne pouvez pas supprimer de manière sécurisée pour vous permettre de modifier le code correspondant.

    Figure 6. Utilisations non sécurisées

  5. Effectuez un clic droit sur une utilisation pour afficher le menu contextuel, puis sélectionnez Jump to Source (Accéder à la source) afin d'effectuer les modifications nécessaires.
  6. Dans le panneau Find Safe Delete Conflicts, sélectionnez Rerun Safe Delete (Réexécuter la suppression sécurisée) pour vous assurer qu'aucune autre utilisation ne nécessite votre attention.
  7. Une fois les utilisations nettoyées, cliquez sur Do Refactor (Refactoriser) pour supprimer la clé.

Corriger les erreurs

La figure 7 présente l'éditeur de traductions qui affiche le contenu des fichiers strings.xml en anglais, en espagnol et en français. Le texte en rouge indique les lignes contenant des erreurs.

Figure 7. Le texte en rouge indique une condition d'erreur que vous devez corriger.

Pour corriger une erreur, pointez sur le texte rouge pour afficher une explication du problème et de sa solution.

Lorsque vous apportez des modifications dans Translations Editor, les fichiers strings.xml sous-jacents sont mis à jour avec vos modifications. Lorsque vous apportez des modifications dans un fichier strings.xml, la colonne correspondante de Translations Editor est mise à jour avec vos modifications.

Exemples de corrections apportées à Translations Editor :

  • La figure 7 montre que la case Untranslatable est cochée pour la ligne app_name, mais qu'une traduction en espagnol est fournie. Supprimez la traduction en espagnol pour corriger l'erreur.
  • La figure 7 montre qu'il manque une traduction française pour la ligne next_page. Utilisez votre clavier pour copier Page suivante dans la cellule afin de corriger l'erreur. Une opération de copier-coller à l'aide de votre clavier copie le texte contenant les signes diacritiques dans la cellule.

Afficher le texte traduit dans l'éditeur de conception

Pour voir comment le texte traduit s'affiche dans la mise en page de votre application, basculez le texte entre les versions par défaut et traduite dans l'éditeur de conception, comme suit :

  1. Dans le panneau Project > Android (Projet > Android) à gauche, sélectionnez ModuleName > res > layout (mise en page).
  2. Double-cliquez sur le fichier content_main.xml pour l'ouvrir afin de le modifier.
  3. Cliquez sur l'onglet Design (Conception) en bas à gauche pour afficher Design Editor (Éditeur de conception).
  4. Dans l'éditeur de conception, sélectionnez la liste déroulante Language (Langue) .
  5. Sélectionnez Edit Translations (Modifier les traductions) .
  6. Sélectionnez la langue que vous souhaitez utiliser pour afficher votre application.

    Figure 8. Liste déroulante des langues avec l'espagnol sélectionné

L'éditeur de conception affiche la mise en page de votre application dans la langue sélectionnée, qui est ici l'espagnol.

Figure 9. Éditeur de conception affichant le texte traduit en espagnol

Définir la langue par défaut dans l'éditeur de conception

Pour rétablir la langue par défaut, sélectionnez es > Language (es > Langue) .

Figure 10. Définition de la langue par défaut

Gérer et tester le texte localisable

La plate-forme Android et Android Studio offrent plusieurs fonctionnalités pour vous aider à gérer et à tester le texte localisable de votre application. Ces fonctionnalités proposent des options pour vous aider à cibler les problèmes liés aux langues qui se lisent de droite à gauche, comme l'arabe ou l'hébreu. Tester votre texte localisable vous permet d'ajuster le texte de l'interface utilisateur et sa mise en page avant de valider vos messages dans le dépôt source. Ils seront envoyés ultérieurement pour traduction.

Refactoriser votre projet pour prendre en charge les langues qui se lisent de droite à gauche

Android Studio dispose d'une commande de refactorisation permettant de prendre en charge le texte bidirectionnel dans les éléments TextView, ConstraintLayout et LinearLayout : vos applications peuvent afficher et permettre aux utilisateurs de modifier le texte dans les langues qui se lisent de gauche à droite et de droite à gauche. La commande met également en miroir automatiquement la mise en page de l'interface utilisateur des applications et tous les widgets d'affichage. Pour voir le changement d'orientation du texte et la mise en miroir de la mise en page, vous devez également définir les propriétés d'orientation du texte et de la mise en page dans l'éditeur de mise en page.

La procédure suivante montre comment refactoriser votre projet afin de prendre en charge les langues qui se lisent de droite à gauche :

  1. Sélectionnez Refactor > Add RTL support where possible (Refactoriser > Prendre en charge les langues qui se lisent de droite à gauche si possible) pour afficher la boîte de dialogue illustrée dans la figure 11.

    Figure 11. Prise en charge des langues qui se lisent de droite à gauche

    • Si l'élément <application> de votre fichier AndroidManifest.xml ne comporte pas l'attribut android:supportsRTL="true", cochez la case Mettre à jour le fichier AndroidManifest.xml.
    • Si la version targetSdkVersion de votre application est égale ou supérieure à 17, sélectionnez Remplacer les propriétés Left/Right par les propriétés Start/End. Dans ce cas, vos propriétés doivent utiliser "start" et "end" au lieu de "left" et "right". Par exemple, android:paddingLeft devient android:paddingStart.
    • Si la version targetSdkVersion de votre application est inférieure ou égale à 16, sélectionnez Générer les versions -v17. Dans ce cas, votre fichier XML doit utiliser les deux ensembles de propriétés. Par exemple, votre fichier XML doit utiliser à la fois android:paddingLeft et android:paddingStart.
  2. Pour afficher la fenêtre Find Refactoring Preview (Trouver l'aperçu de la refactorisation), cliquez sur Run (Exécuter).

    Figure 12. Vérification de l'aperçu

  3. Cliquez sur Do Refactor (Refactoriser).

Pour en savoir plus sur la refactorisation de votre projet afin de prendre en charge les langues qui se lisent de droite à gauche, consultez l'article Prise en charge native des langues qui se lisent de droite à gauche dans Android 4.2.

Propriétés d'orientation du texte et de la mise en page

La fenêtre "Propriétés" à droite fournit la propriété textDirection à utiliser avec les widgets de texte et la propriété layoutDirection à utiliser avec les widgets de mise en page pour modifier l'orientation des composants de texte et de mise en page. Les propriétés d'orientation sont indiquées dans la fenêtre Properties (Propriétés) sur la droite de l'écran et sont compatibles avec l'API de niveau 17 ou supérieur.

Pour voir le changement d'orientation du texte et la mise en miroir de la mise en page, vous devez également refactoriser le projet afin de prendre en charge les langues qui se lisent de droite à gauche. En anglais, le changement d'orientation du texte ne déplace que la ponctuation du côté droit vers le côté gauche du texte. Par exemple, "Hello World!" devient "!Hello World". Pour que l'orientation du texte bascule de gauche à droite vers droite à gauche, vous devez utiliser une langue qui s'écrit de droite à gauche dans votre application. Si vous souhaitez utiliser l'anglais et voir le texte passer en orientation de droite à gauche à des fins de test, utilisez des pseudo-paramètres régionaux. Les pseudo-paramètres régionaux sont indépendants de la commande de refactorisation et des propriétés d'orientation.

Pour accéder aux propriétés d'orientation et les utiliser :

  1. Dans Layout Editor (Éditeur de mise en page), sélectionnez un widget de texte.
  2. Ouvrez la fenêtre Properties (Propriétés) et recherchez la propriété d'orientation de droite à gauche que vous souhaitez utiliser.

    Pour définir la valeur de la propriété, sélectionnez l'une des options suivantes :

    • firstStrong : valeur par défaut pour l'affichage racine. Le premier caractère directionnel fort détermine l'orientation du paragraphe. En l'absence de caractère directionnel fort, l'orientation du paragraphe correspond à l'orientation de la mise en page résolue de l'affichage.
    • anyRtl : le paragraphe se lit de droite à gauche s'il contient des caractères directionnels forts en ce sens. Il se lit de gauche à droite s'il contient des caractères directionnels forts en ce sens. En l'absence de caractères directionnels forts, l'orientation du paragraphe correspond à l'orientation de la mise en page résolue de l'affichage.
    • ltr : le paragraphe se lit de gauche à droite.
    • rtl : le paragraphe se lit de droite à gauche.
    • locale : l'orientation du paragraphe est définie par les paramètres régionaux du système.
    • inherit : valeur par défaut. Utilisez l'orientation définie dans le parent.
  3. Pour vérifier le texte et la mise en page inversés, exécutez l'application.

Pseudo-paramètres régionaux

Les pseudo-paramètres régionaux sont une simulation de paramètres régionaux qui est conçue pour s'appuyer sur les caractéristiques des langues qui entraînent des problèmes d'interface utilisateur, de mise en page, de lecture de droite à gauche et autres lorsqu'une application est traduite. Les pseudo-paramètres régionaux fournissent des traductions instantanées et automatiques en anglais pour tous les messages localisables. Cela vous permet de détecter les messages non traduisibles dans votre code source.

Pour en savoir plus sur l'utilisation des pseudo-paramètres régionaux, consultez l'article Tester votre application avec des pseudo-paramètres régionaux.