Der MessageParser ist ein kleines Tool für Java-Programmierer, um aus einer Java-Quellcode-Datei alle Textelemente mit Internationalisierung in ein Property-File zu extrahieren, das als Ausgangsbasis für ein RessourceBundle benutzt werden kann.
Zu den Grundlagen der Internationalisierung (kurz als i18n
bezeichnet) informieren Sie sich bitte in der Java-Dokumentation zur der
Klassejava.util.ResourceBundle
des Java Development Kit (java.sun.com
)
oder entsprechende Literatur.
Die vorliegende Implementierung geht davon aus, daß Sie in ihren Code zum "Übersetzen" der Textbestandteile folgenden Aufruf benutzen:
System.out.println( I.get("msg_Eine_internationalisierte_Mitteilung!") );
Das Prinzip ist, jeglichen zu internationalisierenden Text in einen
Aufruf der Methode getText(String):String
in einer
Hilfs-Klasse I
zu kapseln (der Name wurde nur aus Komfort-Gründen
möglichste kurz gewählt). In der Standardimplemntierung kann
diese einfach aus folgendem Code bestehen:
public static String get(String key) { return key.substring(4).replace('_',' '); }
Diese Default-Implementierung wandelt also den als key
übergebenen
Text einfach um. In der internationalisierten Variante wird dieser jedoch
als Schlüssel benutzt, um zum Beispiel ein ResourceBundle zum
Nachschlagen der Übersetzung zu verwenden. Im Schlüssel werden
deswegen die Leerzeichen umcodiert, damit diese bei der Verwendung als
Schlüssel keine Probleme verursachen. Dieses Prinzip berücksichtigt
erstmal nur reinen Text, kann aber auch für andere Formatierungen
(Datum, Zahlen, ...) usw. ausgebaut werden.
Beim praktischem Einsatz ist zu beachten, daß statische Variablen/Konstanten (die eventuell für Text/Buttonbeschriftungen verwendet werden), beim Laden der Klasse initialisiert werden und zu diesem Zeitpunkt die Internationalisierung stattfindet.
Der MessageParser extrahiert aus einer oder mehreren in der Kommandozeile übergebenen Dateien alle obiger Notation entsprechenden Zeilen. Dabei kann ein bereits bestehendes Property-File vorher eingelesen werden und auf diese Weise aktualisiert werden.
Bei der Analyse werden natürlich Kommentare ignoriert, alle gefundenen Texte landen in einer Datei im Property-Format.
Das MsgParser-Tool ist unter der GNU Public License (GPL) verfügbar.