Java-Internalisierung - ResourceBundle-Klasse
Die ResourceBundle-Klasse wird zum Speichern von Text und Objekten verwendet, die für das Gebietsschema empfindlich sind. Im Allgemeinen verwenden wir Eigenschaftendateien, um länderspezifischen Text zu speichern und diese dann mithilfe des ResourceBundle-Objekts darzustellen. Im Folgenden werden die Schritte zum Verwenden der länderspezifischen Eigenschaftendatei in einer Java-basierten Anwendung beschrieben.
Schritt 1: Erstellen Sie Eigenschaftendateien.
Angenommen, wir benötigen eine Eigenschaftendatei für das englische Gebietsschema. Erstellen Sie dann einen Eigenschaftendateinamen XXX_de_US.properties, wobei XXX der Name der Datei und en_US das Gebietsschema für Englisch (USA) darstellt.
Messages_en_US.properties
message=Welcome to TutorialsPoint.COM!
Lassen Sie uns nun eine Eigenschaftendatei für das französische Gebietsschema erstellen. Erstellen Sie dann einen Eigenschaftendateinamen XXX_fr_FR.properties, wobei XXX der Name der Datei und fr_FR das Gebietsschema für Französisch (Frankreich) darstellt.
Messages_fr_FR.properties
message=Bienvenue sur TutorialsPoint.COM!
Hier können Sie herausfinden, dass der Schlüssel identisch ist, der Wert jedoch in beiden Eigenschaftendateien länderspezifisch ist.
Schritt 2: Erstellen Sie ein ResourceBundle-Objekt
Erstellen Sie das ResourceBundle-Objekt mit dem Namen und dem Gebietsschema der Eigenschaftendatei mithilfe der folgenden Syntax.
ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);
Schritt 3: Rufen Sie den Wert vom ResourceBundle-Objekt ab.
Rufen Sie den Wert vom ResourceBundle-Objekt ab, indem Sie den Schlüssel übergeben.
String value = bundle.getString("message");
Beispiel
Das folgende Beispiel veranschaulicht die Verwendung von ResourceBundle-Objekten zum Anzeigen länderspezifischer Werte aus Eigenschaftendateien.
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"));
}
}
Ausgabe
Das folgende Ergebnis wird gedruckt.
Message in en_US: Welcome to TutorialsPoint.COM!
Message in fr_FR: Bienvenue sur TutorialsPoint.COM!
Hinweise für Namenskonventionen
Im Folgenden finden Sie die Namenskonventionen für die Eigenschaftendatei.
Für Eigenschaftendateien, die dem Standardgebietsschema zugeordnet sind, ist kein Präfix erforderlich. message_en_US.properties entspricht message.properties.
Für Eigenschaftendateien, die dem Gebietsschema zugeordnet sind, kann das Präfix auf zwei Arten angehängt werden. message_fr.properties entspricht message_fr_FR.properties.