Internalización de Java - Clase ResourceBundle
La clase ResourceBundle se usa para almacenar texto y objetos que son sensibles a la configuración regional. Generalmente usamos archivos de propiedades para almacenar texto específico de la configuración regional y luego representarlos usando el objeto ResourceBundle. Los siguientes son los pasos para usar el archivo de propiedades específicas de la configuración regional en una aplicación basada en Java.
Paso 1: crear archivos de propiedades.
Supongamos que necesitamos un archivo de propiedades para la configuración regional en inglés. A continuación, cree un nombre de archivo de propiedades XXX_en_US.properties donde XXX es el nombre del archivo y en_US representa la configuración regional para inglés (EE. UU.).
Messages_en_US.properties
message=Welcome to TutorialsPoint.COM!
Creemos ahora un archivo de propiedades para la configuración regional francesa. A continuación, cree un nombre de archivo de propiedades XXX_fr_FR.properties donde XXX es el nombre del archivo y fr_FR representa la configuración regional para francés (Francia).
Messages_fr_FR.properties
message=Bienvenue sur TutorialsPoint.COM!
Aquí puede descubrir que la clave es la misma pero el valor es específico de la configuración regional en ambos archivos de propiedades.
Paso 2: Crear objeto ResourceBundle
Cree el objeto ResourceBundle con el nombre del archivo de propiedades y la configuración regional utilizando la siguiente sintaxis.
ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);
Paso 3: Obtenga el valor del objeto ResourceBundle.
Obtenga el valor del objeto ResourceBundle pasando la clave.
String value = bundle.getString("message");
Ejemplo
El siguiente ejemplo ilustra el uso de objetos ResourceBundle para mostrar valores específicos de la configuración regional de los archivos de propiedades.
IOTester.java
import java.util.Locale;
import java.util.ResourceBundle;
public class I18NTester {
public static void main(String[] args) {
ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);
System.out.println("Message in "+Locale.US +": "+bundle.getString("message"));
bundle = ResourceBundle.getBundle("Messages", Locale.FRANCE);
System.out.println("Message in "+Locale.FRANCE +": "+bundle.getString("message"));
}
}
Salida
Imprimirá el siguiente resultado.
Message in en_US: Welcome to TutorialsPoint.COM!
Message in fr_FR: Bienvenue sur TutorialsPoint.COM!
Notas para las convenciones de nomenclatura
A continuación se muestran las convenciones de nomenclatura del archivo de propiedades.
Para el archivo de propiedades asignado a la configuración regional predeterminada, no es obligatorio ningún prefijo. message_en_US.properties es equivalente a message.properties.
Para el archivo de propiedades asignado a la configuración regional, el prefijo se puede adjuntar de dos maneras. message_fr.properties es equivalente a message_fr_FR.properties.