Konfigurationsmetadaten lokalisieren

Die Attribute für Namen und Beschreibung jedes Metadateneintrags können lokalisiert werden. Die übersetzten Zeichenfolgen werden in sprachspezifische Eigenschaftendateien gepackt.

Beispiel

Das folgende Beispiel veranschaulicht, wie die Position der lokalisierten Dateien im Header der Metatypdatei angegeben ist:
<metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.1.0" 
    localization="OSGI-INF/I10n/metatype">
Hierbei steht OSGI-INF/I10n für die Position der übersetzten Eigenschaftendateien im Bundle, und metatype ist das Präfix für die Eigenschaftendatei der Standardsprache. Wenn sich beispielsweise die Standardwerte (normalerweise in Englisch) in einer Datei mit dem Namen metatype.propertiesbefinden, wird jede Ländereinstellung mit einem eigenen Suffix hinzugefügt: metatype_fr.properties, metatype_es.properties usw.

Anders als die XML-Metatypdatei, die sich immer im Verzeichnis OSGI-INF/metatype befinden muss, können sich die übersetzten Dateien in einer beliebigen Position innerhalb des Bundles befinden, die mit dem Attribut localization angegeben wird. Speichern Sie die Dateien nicht im Verzeichnis OSGI-INF/metatype mit der XML-Metatypdatei, da der Metatypservice versucht, jede Datei an dieser Position als XML-Datei zu speichern. Es wird zwar dadurch kein Fehler verursacht, doch werden unerwünschte Ausnahmen in der Konsole generiert. Die Liberty -Konvention besteht darin, sie in das Verzeichnis OSGI-INF/I10n zu stellen, aber dies ist nicht obligatorisch.

Wenn Sie in der XML-Metatypdatei angeben möchten, dass ein Wert eine lokalisierte Zeichenfolge ist, verwenden Sie am Anfang des Befehls ein Prozentzeichen. Sie können beispielsweise die folgende Definition in der XML-Metatypdatei verwenden:
<AD name="%client.inactivity.timeout" description="%client.inactivity.timeout.desc"
    id="clientInactivityTimeout" required="false" type="Integer" default="60" />
und Sie können außerdem die folgende Definition in der Eigenschaftendatei verwenden:
client.inactivity.timeout=Client inactivity timeout
client.inactivity.timeout.desc=The maximum duration, in seconds, between transactional requests 
from a remote client. Any period of client inactivity that exceeds this timeout results in the 
transaction being rolled back in this application server.