Zunächst frage ich mich, warum Sie sich für java.util.ResourceBundle
java.util.Properties
. Angesichts der Formulierung Ihrer Frage scheint Ihnen die Lokalisierung / Internationalisierung und die Vererbung von Bundle-Dateien egal zu sein.
Mit Properties
ist es außerordentlich einfach, da es Map
das wiederum eine putAll()
Methode zum Zusammenführen einer anderen Karte. Kickoff-Beispiel:
Wenn Sie wirklich darauf bestehen, ResourceBundle
zu verwenden, sollten Sie am besten ein benutzerdefiniertes ResourceBundle
erstellen, in dem Sie das Laden mit einem benutzerdefinierten Control
.
Angenommen, Sie haben den folgenden Eintrag in master.properties
, der eine kommaseparierte Zeichenfolge mit Basisnamen der Moduleigenschaftendateien darstellt:
Dann sollte das folgende benutzerdefinierte ResourceBundle
Beispiel funktionieren:
(die triviale Ausnahmebehandlung und Lokalisierungsbehandlung wird nicht berücksichtigt, dies liegt bei Ihnen)
Dies kann wie folgt verwendet werden:
%Vor%Sie können jedoch programmatisch ResourceBundle konstruieren, aber Sie sagen, dass Ihre Datei riesig ist, was dann passiert, wenn sie in den Speicher geladen wird.
update
%Vor%dann für IN locale
%Vor%Mehr Denkanstoß als eine getestete Lösung.
XML-Dateien unterstützen Entities , um während des Parsens Text aus anderen Dateien zu verknüpfen. Wenn gesehen, komplexe XML-Dateien, wo diese Technik verwendet wurde, um die Dateien zu modularisieren.
Properties
unterstützt jetzt zwei Dateiformate, das allgemeine .properties
-Format mit Schlüssel / Wert-Paaren und ein XML-Format. Properties
kann zu / von XML-Dateien geladen und gespeichert werden.
ResourceBundle
hat eine direkte Unterklasse: PropertyResourceBundle
. Es sieht so aus, als ob diese Klasse tatsächlich auf das ältere Schlüssel / Wert-Paar-Format beschränkt ist, aber es könnte auch eine andere Klasse implementieren, wie XMLPropertyResourceBundle
, die Eigenschaften aus XML-Dateien lesen kann, wo der entity
Trick helfen könnte zu modularisieren diese Dateien.
Wenn das funktioniert, sollte die Umwandlung der vorhandenen Eigenschaftendateien in XML-Eigenschaftendateien einfach sein. Verwenden Sie einfach die Klasse Properties
, lesen Sie aus dem Standardformat und speichern Sie sie in XML.
Tags und Links java resourcebundle