Localiser votre application (vues)

Concepts et implémentation de Jetpack Compose

Android est utilisé sur un large éventail d'appareils dans de nombreuses régions. Pour toucher la plus vaste audience possible, votre application doit gérer le texte, les fichiers audio, les chiffres, la devise et les images de votre application conformément aux paramètres régionaux de vos utilisateurs.

Cette page décrit certaines bonnes pratiques pour localiser des applications Android.

Vous devez disposer de connaissances pratiques de Kotlin ou du langage de programmation Java et vous devez connaître le chargement des ressources Android, la déclaration d'éléments d'interface utilisateur dans XML, les considérations de développement telles que le cycle de vie d'activité et les principes généraux de l'internationalisation et de la localisation.

Il est recommandé d'utiliser le framework de ressources Android pour distinguer autant que possible les aspects localisés de votre application de ses principales fonctionnalités.

  • Placez la plupart ou la totalité du contenu de l'interface utilisateur de votre application dans des fichiers de ressources, comme décrit sur cette page et dans la présentation des ressources de l'application.
  • Le comportement de l'interface utilisateur, quant à lui, est déterminé par votre code basé sur Kotlin ou Java. Par exemple, si les utilisateurs saisissent des données qui doivent être formatées ou triées différemment en fonction des paramètres régionaux, vous pouvez utiliser Kotlin ou le langage de programmation Java pour gérer les données du point de vue de la programmation. Cette page n'aborde pas la localisation du code basé sur Kotlin ou Java.

Pour découvrir comment localiser des chaînes dans votre application, consultez Assurer la compatibilité avec différentes langues et cultures.

Utiliser des ressources pour la localisation

Cette section explique comment créer des ressources par défaut ainsi que d'autres ressources. Elle décrit également comment la priorité des ressources est définie et comment vous les référencez dans le code.

Créer des ressources par défaut

Saisissez le texte par défaut de l'application dans res/values/strings.xml. Pour ces chaînes, utilisez la langue par défaut, c'est-à-dire celle que vous pensez que la plupart des utilisateurs de votre application parlent.

L'ensemble de ressources par défaut comprend également tous les drawables et les mises en page par défaut, et peut inclure d'autres types de ressources tels que les animations. Ces ressources se trouvent dans les répertoires suivants :

  • res/drawable/: répertoire obligatoire contenant au moins un fichier image pour l'icône de l'application sur Google Play.
  • res/layout/: répertoire obligatoire contenant un fichier XML qui définit la mise en page par défaut.
  • res/anim/ : obligatoire si vous avez des dossiers res/anim-<qualifiers>.
  • res/xml/ : obligatoire si vous avez des dossiers res/xml-<qualifiers>.
  • res/raw/ : obligatoire si vous avez des dossiers res/raw-<qualifiers>.

Conseil : Dans votre code, examinez chaque référence à une ressource Android. Assurez-vous qu'une ressource par défaut est définie pour chacune d'elles. Assurez-vous également que le fichier de chaînes par défaut est complet : un fichier de chaîne localisé peut contenir un sous-ensemble de chaînes, mais le fichier de chaîne par défaut doit toutes les contenir.

Conseils de localisation

Suivez ces conseils pour localiser votre application.

Concevoir une mise en page flexible

Si vous devez réorganiser votre mise en page pour qu'elle s'adapte à une langue donnée, vous pouvez créer une autre mise en page pour cette langue, par exemple res/layout-de/main.xml pour une mise en page en allemand. Toutefois, cette opération peut compliquer la gestion de votre application. Il est préférable de créer une seule mise en page plus flexible.

Un autre problème typique est une langue qui requiert une mise en page différente. Par exemple, vous pouvez avoir un formulaire de contact qui comprend deux champs de nom lorsque l'application s'exécute en japonais, mais trois champs de nom lorsque l'application s'exécute dans une autre langue. Vous pouvez gérer cela de deux manières :

  • Créez une mise en page avec un champ que vous pouvez activer ou désactiver par programmation, selon la langue.
  • Assurez-vous que la mise en page principale propose une autre mise en page incluant le champ modifiable. La deuxième mise en page peut avoir différentes configurations selon les langues.

Utiliser l'objet Android Context pour rechercher manuellement des paramètres régionaux

Vous pouvez rechercher les paramètres régionaux à l'aide de l'objet Context qu'Android met à disposition, comme illustré dans l'exemple suivant :

Kotlin

val primaryLocale: Locale = context.resources.configuration.locales[0]
val locale: String = primaryLocale.displayName

Java

Locale primaryLocale = context.getResources().getConfiguration().getLocales().get(0);
String locale = primaryLocale.getDisplayName();