Clase ResourceBundle y ListResourceBundle en Java con ejemplos

Las clases ResourceBundle y ListResourceBundle son parte del paquete java.util . Estas clases están diseñadas para ayudar en la internacionalización de los programas. 

ResourceBundle : La clase ResourceBundle es una clase abstracta . Define métodos que le permiten administrar una colección de recursos sensibles a la configuración regional. Los paquetes de recursos se identifican por su nombre de familia. Al nombre de la familia se le agrega un código de idioma en minúsculas de dos caracteres que especifica el idioma. También podemos especificar un código de país después del código de idioma. Es un identificador de dos caracteres en mayúsculas y está precedido por un guión bajo cuando se vincula a un nombre de paquete de recursos. 

Jerarquía de clases:  

java.lang.Object
↳java.util.ResourceBundle

Constructores: 

1. ResourceBundle() : el constructor predeterminado que está diseñado principalmente para que lo usen las subclases y los métodos de fábrica. 

public ResourceBundle()

Métodos: 

1. clearCache() : este método elimina todos los paquetes de recursos de la memoria caché que cargó el cargador de clases predeterminado. 

static final void clearCache()

2. containsKey() : este método devuelve verdadero si el argumento de string pasado es una clave dentro del paquete de recursos que invoca. 

boolean containsKey(String k)

3. getBundle() : este método carga el paquete de recursos con el nombre dado y la configuración regional especificada. 

static final ResourceBundle getBundle(String familyName)
static final ResourceBundle getBundle(String familyName, Locale loc)

4. setParent() : este método establece el paquete pasado como padre del paquete que invoca. En el caso de una búsqueda, si la clave no se encuentra en el objeto que invoca, entonces se busca en el paquete principal. 

protected void setParent(ResourceBundle parent)

5. getObject() : este método recupera y devuelve el objeto asociado con la clave pasada como argumento del paquete de recursos actual o del principal. 

public final Object getObject(String key)

6. getHandleObject() : este método devuelve el objeto asociado con la clave dada del paquete de recursos. Si no hay ningún objeto disponible, se devuelve nulo. 

protected abstract Object handleGetObject(String key)

7. getString() : este método recupera y devuelve la string asociada con la clave pasada como argumento del paquete de recursos actual o del principal. 

public final String getString(String key)

8. getStringArray() : este método recupera y devuelve la array de strings asociada con la clave pasada como argumento del paquete de recursos actual o del principal. 

public final String[] getStringArray(String key)

9. getLocale() : este método devuelve la configuración regional asociada con el paquete actual. 

public Locale getLocale()

10. containsKey() : este método verifica si una clave dada existe dentro de un paquete de recursos o su padre o no. 

public boolean containsKey(String key)

11. keySet() : este método devuelve el conjunto de todas las claves en el paquete actual o su paquete principal. 

public Set keySet()

ListResourceBundle : Es una subclase de ResourceBundle . Es una clase abstracta, que administra los recursos en una array de pares clave/valor. Agrega solo un nuevo método getContents() , que debe ser implementado por cada subclase.

Constructores:  
 
1. ListResourceBundle() : el constructor predeterminado para crear un objeto. 

public ListResourceBundle()

Métodos: 

1. getContents() : este método devuelve una array bidimensional que contiene pares clave/valor que representan recursos. 

protected abstract Object[][] getContents()

2. handleGetObject() : este método devuelve el objeto asociado con la clave en el paquete actual, si existe. 

public final Object handleGetObject(String key)

3. getKeys() : este método devuelve una enumeración de las claves en el paquete de recursos.

public Enumeration getKeys()

4. handleKeySet() : este método devuelve el conjunto de todas las claves en el paquete de recursos actual. 

protected Set handleKeySet()

Ejemplo para demostrar el uso de un ResourceBundle  

Java

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ListResourceBundle;
 
class SampleRB extends ListResourceBundle {
    protected Object[][] getContents()
    {
        Object[][] resources = new Object[3][2];
 
        resources[0][0] = "title";
        resources[0][1] = "My Program";
 
        resources[1][0] = "StopText";
        resources[1][1] = "Stop";
 
        resources[2][0] = "StartText";
        resources[2][1] = "Start";
 
        return resources;
    }
}
class SampleRB_de extends ListResourceBundle {
    protected Object[][] getContents()
    {
        Object[][] resources = new Object[3][2];
 
        resources[0][0] = "title";
        resources[0][1] = "Mein Program";
 
        resources[1][0] = "StopText";
        resources[1][1] = "Anschlag";
 
        resources[2][0] = "StartText";
        resources[2][1] = "Anfang";
 
        return resources;
    }
}
public class LRBDemo {
    public static void main(String[] args)
    {
        ResourceBundle rd
            = ResourceBundle
                  .getBundle("SampleRB",
                             Locale.ENGLISH);
        System.out.println("English Version:");
        System.out.println("String for Title key: "
                           + rd.getString("title"));
        System.out.println("String for StopText key: "
                           + rd.getString("StopText"));
        System.out.println("String for StartText key: "
                           + rd.getString("StartText"));
 
        rd = ResourceBundle
                 .getBundle("SampleRB",
                            Locale.GERMAN);
        System.out.println("\nGerman Version");
        System.out.println("String for Title key: "
                           + rd.getString("title"));
        System.out.println("String for StopText key: "
                           + rd.getString("StopText"));
        System.out.println("String for StartText key: "
                           + rd.getString("StartText"));
    }
}

Producción:

English Version:
String for Title key: My Program
String for StopText key: Stop
String for StartText key: Start

German Version
String for Title key: Mein Program
String for StopText key: Anschlag
String for StartText key: Anfang

Referencia: https://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html
 

Publicación traducida automáticamente

Artículo escrito por CharchitKapoor y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *