Internationalisation

Définition

Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes.

https://en.wikipedia.org/wiki/Internationalization_and_localization
— Wikipedia

Internationalisation vs. localisation

  • i18n

  • l10n

Locale

A Locale object represents a specific geographical, political, or cultural region.
https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html
— JavaDoc
locale

Resource Bundle

Resource bundles contain locale-specific objects.
https://docs.oracle.com/javase/8/docs/api/java/util/ResourceBundle.html
— JavaDoc
resource bundle

Exemple de structure de properties

Ensemble de properties dans l'IntelliJ IDEA

Utilisation

ResourceBundle bundle =
    ResourceBundle.getBundle("ch.hesge.messages", Locale.US);
String label = bundle.getString("input.login.label");

Processus de recherche

  • Rechercher la clé dans la locale courante

  • Si la clé est trouvée, retourner sa valeur

  • Si la locale est la racine, retourner null

  • Sinon :

    • Diminuer la précision de la locale d’un cran

    • Et reprendre depuis le début