Java - Exemple de ResourceBundle

Java - exemple ResourceBundle

Lejava.util.ResourceBundle est une bibliothèque utilisée pour l'internationalisation (plusieurs langues). Il est capable de renvoyer des messages selon les paramètres régionaux par défaut configurés pour le système. Une telle fonctionnalité est utilisée lorsque l'on développe des systèmes à utiliser partout dans le monde.

1. Comment ça fonctionne?

La bibliothèque lit un fichier de propriétés en fonction des paramètres régionaux et du suffixe de nom utilisés dans la dénomination de la propriété. Par exemple, considérons un fichier d'étiquettes nomméMyLabels_en_US.properties. Ce fichier est lu par l'utilitaireResourceBundle lorsque les paramètres régionaux sont définis sur en_US, qui signifie US-English.

Les paramètres régionaux représentent une région ou un emplacement avec ses attributs. Les paramètres régionaux sont généralement utilisés pour conserver des détails sur le client utilisant notre application. Les paramètres régionaux contiennent des attributs d'emplacement et de langue à utiliser pour l'emplacement respectif. Ainsi, un paramètre régional aideResourceBundle à choisir le bon fichier d'étiquette en déterminant l'emplacement auquel appartient l'utilisateur.

2. Exemple

Voyons l'exemple ci-dessous pour encore plus de clarté sur le sujet:

MyLabels_en_US.properties

how_are_you = How are you?

MyLabels_ms_MY.properties

how_are_you = apa khabar

Application.java

package com.example;

import java.util.Locale;
import java.util.ResourceBundle;

public class Application {

    public static void main(String[] args) {

        // en_US
        System.out.println("Current Locale: " + Locale.getDefault());
        ResourceBundle mybundle = ResourceBundle.getBundle("MyLabels");

        // read MyLabels_en_US.properties
        System.out.println("Say how are you in US English: " + mybundle.getString("how_are_you"));

        Locale.setDefault(new Locale("ms", "MY"));

        // read MyLabels_ms_MY.properties
        System.out.println("Current Locale: " + Locale.getDefault());
        mybundle = ResourceBundle.getBundle("MyLabels");
        System.out.println("Say how are you in Malaysian Malaya language: " + mybundle.getString("how_are_you"));

    }

}

En exécutant ce code, nous obtenons la sortie ci-dessous:

Current Locale: en_US
Say how are you in US English: How are you?
Current Locale: ms_MY
Say how are you in Malaysian Malaya language: apa khabar

Comme il peut être vu dans la sortie, en fonction de la valeur par défaut définie pour l'ensemble de paramètres régionaux. Cet utilitaire est principalement utilisé dans les applications Web où le navigateur Web aide à connaître les paramètres régionaux de l'utilisateur distant. Cela permet d'afficher le site Web dans une langue spécifique dans la mesure du possible.

Télécharger le code source