Länderspezifische Dateien

Übersetzungen in Landessprachen werden häufig in Fragmenten gepackt.  Daher soll jetzt die Verzeichnisstruktur, die für Dateien mit länderspezifischen Übersetzungen verwendet wird, genauer vorgestellt werden.   Diese Verzeichnisstruktur wird unabhängig davon verwendet, ob die übersetzten Dateien in einem Fragment gepackt oder im Original-Plug-in zur Verfügung gestellt werden.

Für die Suche nach länderspezifischen Dateien in einem Plug-in gibt es zwei Möglichkeiten:   

Um die Datei korrekt benennen und in die richtige relative Position des Dateisystems für das Plug-in stellen zu können, müssen Sie den Mechanismus kennen, der für den Zugriff auf Dateien verwendet wird, die übersetzt sein müssen.

Plattformkernmechanismus

Der Plattformkern definiert eine Verzeichnisstruktur, die länderspezifische Unterverzeichnisse für Dateien verwendet, die nach Ländereinstellung unterschieden werden.   Übersetzte Dateien werden in ein Verzeichnis namens nl gestellt, das ein Unterverzeichnis des Plug-ins ist.  Die folgende Installationsstruktur zeigt beispielsweise ein triviales Plug-in (ohne Code) mit länderspezifischen Übersetzungen seiner Datei about.properties.  Die einzelnen angezeigten Übersetzungen stammen nicht aus dem Plug-in selbst, sondern aus einem Fragment.   Dies ist eine übliche Vorgehensweise, wenn Übersetzungen separat zum Basisprodukt geliefert werden. Sie könnten das Unterverzeichnis nl aber auch unterhalb des eigentlichen Plug-ins platzieren.

acmeweb/
  eclipse/
    plugins/
      com.example.acme.acmewebsupport_1.0.0/
        plugin.xml
        about.properties    (Standardländereinstellung)
      com.example.acme.fragmentofacmewebsupport_1.0.0/
        fragment.xml   (Fragment von com.example.acme.acmewebsupport 1.0.0)
        nl/
          fr/
            about.properties  (Ländereinstellung für Französisch)
            CA/
              about.properties  (Ländereinstellung für kanadisches Französisch)
            FR/
              EURO/
                about.properties (Französisch für Frankreich mit Euro)
          en/
            about.properties  (Ländereinstellung für Englisch)
            CA/
              about.properties  (Ländereinstellung für kanadisches Englisch)
            US/
            about.properties  (Ländereinstellung für amerikanisches Englisch)
         de/
            about.properties (Ländereinstellung für Deutsch) 

Die zu übersetzenden Dateien sind nicht in JAR-Dateien enthalten.  Jede Datei sollte exakt denselben Dateinamen besitzen, sich jedoch im Stammverzeichnis des Fragments (oder des Plug-ins in einem separaten Unterverzeichnis des Verzeichnisses nl befinden.

Zur Laufzeit wird nur auf die am meisten spezifische Datei zugegriffen.  Die Dateipfade werden als Teil der Mechanismen IPluginDescriptor.find und Plugin.find durchsucht.  Als Beispielfall wird angenommen, dass die Standardländereinstellung en_CA lautet. Dann sucht ein Plug-in folgendermaßen nach der Datei about.properties:

somePlugin.find("$nl$/about.properties");

Die Methode gibt den URL für die erste Stelle zurück, an der die Datei about.properties gefunden wurde (gemäß der folgenden Reihenfolge):

com.example.acme.acmewebsupport_1.0.0/nl/en/CA/about.properties
com.example.acme.fragmentofacmewebsupport_1.0.0/nl/en/CA/about.properties
 ...  		<beliebiges anderes Fragment>
com.example.acme.acmewebsupport_1.0.0/nl/en/about.properties
com.example.acme.fragmentofacmewebsupport_1.0.0/nl/en/about.properties
 ...
com.example.acme.acmewebsupport_1.0.0/about.properties
com.example.acme.fragmentofacmewebsupport_1.0.0/about.properties

Dieser Mechanismus wird von Plug-ins für die Suche nach allgemein bekannten Dateinamen in anderen Plug-ins verwendet.   Hierzu gehören die folgenden allgemein bekannten Dateinamen:

(Hinweis:  Es fällt auf, dass die Dateien plugin.properties und fragment.xml in dieser Liste nicht enthalten sind.   Diese Dateien werden aus historischen Gründen als Java-Ressourcenpakete für Eigenschaften behandelt und verwenden den anderen Mechanismus.)

Java-Ressourcenpakete

Für andere Dateien wird die Java-Standardverarbeitung von Ressourcenpaketen für Eigenschaften verwendet   Übersetzte Dateien sind in einer JAR-Datei enthalten, wobei jede Eigenschaftendatei (properties) einen länderspezifischen Namen hat, beispielsweise "message_en_CA.properties".  Die Dateien befinden sich in paketspezifischen Unterverzeichnissen und können im eigentlichen Plug-in oder in einem seiner Fragmente enthalten sein.  Jede übersetzte Eigenschaftendatei kann eine nicht vollständige Datei sein, weil bei der Suche nach Schlüsselwörtern auf eine allgemein definierte Kette von Eigenschaftendateien zugegriffen wird.

Wie bereits oben beschrieben, wird diese Methode für den Zugriff auf die Dateien plugin.properties und fragment.xml verwendet.

Copyright IBM Corporation und Andere 2000, 2003.