Java i18n – Internationalisierung in Java

Internationalisierung in Java oder Java i18n ist eine sehr wichtige Funktion. Java bietet Unterstützung für Internationalisierung (i18n) durch Ressourcenbündel.

Internationalisierung in Java

Um Ihre Anwendung für verschiedene Gebietsschemas zu unterstützen, müssen wir eine sprachspezifische Eigenschaftendatei erstellen. Die Dateinamen folgen dem Muster des Bündelnamens mit Sprachcode und Ländercode, zum Beispiel ApplicationMessages_en_US.properties. Sobald die Eigenschaftendateien für bestimmte Gebietsschemas bereit sind, müssen Sie nur das Ressourcenbündel mit der richtigen Locale initialisieren. Java stellt zwei Klassen bereit, java.util.ResourceBundle und java.util.Locale, die für diesen Zweck verwendet werden. ResourceBundle liest die sprachspezifische Eigenschaftendatei, und Sie können den sprachspezifischen Wert für jeden Schlüssel abrufen. Dies ist sehr hilfreich, um die Texte Ihrer Webanwendung lokalspezifisch zu gestalten. Sie können die Gebietsschemainformationen aus der HTTP-Anfrage abrufen und die dynamische Seite mit diesen lokalisierten Ressourcenbündeldateien generieren. Sie können auch die Option anbieten, dass Benutzer die Gebietsschema auswählen und die Beschriftungen dynamisch aktualisieren können.

Java i18n Beispiel

Für das Java i18n-Beispiel habe ich das Projekt erstellt, dessen Struktur dem unten stehenden Bild ähnelt. Hier ist der Java-Code für die Klasse JavaInternationalizationExample.

package com.journaldev.i18n;

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

public class JavaInternationalizationExample {

    public static void main(String[] args) {
        //Standard-Sprachumgebung
        ResourceBundle bundle = ResourceBundle.getBundle("ApplicationMessages");
        //ResourceBundle mit bereits definierten Sprachumgebungen erhalten
        ResourceBundle bundleFR = ResourceBundle.getBundle("ApplicationMessages", Locale.FRANCE);
        //ResourceBundle erhalten, wenn eine Sprachumgebung erstellt werden muss
        ResourceBundle bundleSWE = ResourceBundle.getBundle("ApplicationMessages", new Locale("sv", "SE"));
        
        //Einige Meldungen ausgeben
        printMessages(bundle);
        printMessages(bundleFR);
        printMessages(bundleSWE);
        
    }

    private static void printMessages(ResourceBundle bundle) {
        System.out.println(bundle.getString("CountryName"));
        System.out.println(bundle.getString("CurrencyCode"));
    }

}

Hier ist der Name des Bundles ApplicationMessages und ich habe 2 sprachspezifische Resource-Bundles und ein Standard-Resource-Bundle. ApplicationMessages.properties

CountryName=USA
CurrencyCode=USD

ApplicationMessages_fr_FR.properties

CountryName=France
CurrencyCode=Euro

ApplicationMessages_sv_SE.properties

CountryName=Sweden
CurrencyCode=Kr

Beachten Sie die Verwendung der Locale-Klasse. Es gibt bereits einige Sprachumgebungen, aber wir können jederzeit eine neue Sprachumgebung erstellen, indem wir den Sprachcode und den Ländercode an den Konstruktor übergeben. Wenn ich das obige Programm ausführe, erhalte ich folgende Ausgabe.

USA
USD
France
Euro
Sweden
Kr

Das war alles für ein schnelles Java i18n-Beispiel. Internationalisierung in Java ist sehr nützlich in Webanwendungen, um Seiten in sprachspezifischer Sprache bereitzustellen.

Source:
https://www.digitalocean.com/community/tutorials/java-i18n-internationalization-in-java