Java - ResourceBundle-Beispiel

Java - ResourceBundle Beispiel

Dasjava.util.ResourceBundle ist eine Bibliothek, die für die Internationalisierung verwendet wird (mehrere Sprachen). Es kann Nachrichten gemäß dem für das System konfigurierten Standardgebietsschema zurückgeben. Eine solche Funktionalität wird verwendet, wenn Systeme für den weltweiten Einsatz entwickelt werden.

1. Wie es funktioniert?

Die Bibliothek liest eine Eigenschaftendatei basierend auf dem Gebietsschema und dem Namenssuffix, die bei der Benennung der Eigenschaft verwendet werden. Betrachten Sie beispielsweise eine Beschriftungsdatei mit dem NamenMyLabels_en_US.properties. Diese Datei wird vom DienstprogrammResourceBundlegelesen, wenn das Gebietsschema auf en_US gesetzt ist, was für US-Englisch steht.

Gebietsschema repräsentiert eine Region oder einen Ort mit seinen Attributen. Das Gebietsschema wird im Allgemeinen verwendet, um mithilfe unserer Anwendung Details über den Kunden zu verwalten. Gebietsschema enthält Attribute für den Ort und die Sprache, die für den jeweiligen Ort verwendet werden sollen. Somit hilft ein GebietsschemaResourceBundle bei der Auswahl der richtigen Etikettendatei, indem der Ort bestimmt wird, zu dem der Benutzer gehört.

2. Beispiel

Sehen wir uns das folgende Beispiel an, um das Thema noch klarer zu gestalten:

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"));

    }

}

Bei der Ausführung dieses Codes erhalten wir die folgende Ausgabe:

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

Wie in der Ausgabe zu sehen ist, hängt der Standardwert vom Gebietsschemasatz ab. Dieses Dienstprogramm wird hauptsächlich in Webanwendungen verwendet, bei denen der Webbrowser dabei hilft, das Gebietsschema des Remotebenutzers zu ermitteln. Dadurch ist es möglich, die Website, soweit verfügbar, in einer bestimmten Sprache anzuzeigen.

Quellcode herunterladen

Laden Sie es herunter -ResourceBundleExample.zip (8 KB)