Benutzer-Werkzeuge

Webseiten-Werkzeuge


usercontent:internationalisierung_und_lokalisierung

Internationalisierung und Lokalisierung

Um Texte und Meldungen innerhalb eines Programme für mehrere Sprachen vorzuhalten sind in Java die Properties Dateien vorgesehen. Am besten man legt sich ein Package an das man „resources“ nennt. Darain kann man dann eine Propertie Datei beliebigen Namens erstellen. In meinem Beispiel habe ich mit Netbeans die Datei messages.properties angelegt.

Der Inhalt könnte wie folgt aussehen

# Meldungen
# Entwicklung von http://www.javacode.sought.de/
# (c) Frank 
# Plattform Java 8 FX
#  
#  
 
Autor=Frank 
Version=1.0
Homepage=http://www.javacode.sought.de/

Im Code kann man dann diese Strings wie folgt abrufen:

    //Test Resourcedatei
        ResourceBundle propMessage = ResourceBundle.getBundle("de.javacode.beispielanwendung.resources/message",Locale.getDefault());
        System.out.println("Autor: " + propMessage.getString("Autor"));
        System.out.println("Version:" + propMessage.getString("Version"));

Ausgabe auf der Console:

Autor: Frank
Version:1.0

Über das Contextmenü lassen sich in Netbeans mit „Add Locale“ weitere Properties-Dateien mit erweiterten Dateinamen für verschiedene Sprachen anlegen. Je nach Systemeinstellung wird später automatisch die richtige Sprachdatei geladen! Ist die jeweilige Sprache nicht vorhanden wird automatisch die Standard-Datei geladen.

In Java FX

Wenn man die Resourcen auch in einem FXML-Dialog nutzen möchte, man kann die Key´s ja direkt im SceneBuilder angeben, dann beim laden der FXML-Datei das ResourceBundle mit angeben. Zum Beispiel so:

rootLayout = (AnchorPane) FXMLLoader.load(getClass().getResource("view/FXMLroot.fxml"),propMessage);

Beispiel getestet mit Version

ab Java 8

Autor

Frank

Siehe auch

usercontent/internationalisierung_und_lokalisierung.txt · Zuletzt geändert: 27/09/2014 17:45 von 93.198.232.165