next up previous contents
Nächste Seite: 8.3.3 Flexibilität der Stylesheet Aufwärts: 8.3 Generierung der Ausgabe Vorherige Seite: 8.3.1 Folgerungen der Struktur   Inhalt

8.3.2 Sprachunterstützung

Ein weiterer Einsatz der document-Funktion dient der Unterstützung von verschiedenen Sprachen. Über die Angabe der Sprache als Attribut des lecture-Elementes wird die richtige Auswahl der durch die Transformation hinzugefügten Bezeichnungen gewählt. Diese Bezeichnungen werden in einer externen Datei language.xml gespeichert und ihr Zugriff wird durch die document-Funktion realisiert. Für jede Variable ist in dieser Datei ein Element gespeichert, das für jede gültige Sprache ein Element mit dem entsprechenden Namen enthalten kann. Zur Unterstützung von Deutsch und Englisch sieht der Beginn der Datei folgendermaßen aus:
<language>
  <table_of_contents>
    <de>Inhaltsverzeichnis</de>
    <en>Table of contents</en>
  </table_of_contents>
  <content>
    <de>Inhalt</de>
    <en>Content</en>
  </content>
  ...
</language>
Die Erweiterung um eine Sprache erfolgt durch die Angabe eines dementsprechenden Sprachelementes in jeder Variablen und beim Hinzufügen einer neuen Variablen muss nur auf die festzulegenden Sprachen geachtet werden. Um diese nun auch innerhalb des Stylesheets verwenden zu können, müssen XSLT-Variablen erzeugt und die Werte eingelesen werden. Die damit verbundenen Initialisierungen der Variablen werden in einer externen XSL-Datei (variable.xsl) vorgenommen, die mittels include in das eigentliche Stylesheet eingefügt wird. Das folgende Beispiel zeigt einen Ausschnitt der Datei variable.xsl für die Initialisierung einer Variablen.

Code-Beispiel 9:
Die Sprachauswahl für das Dokument wird dem language-Attribut des lecture-Elementes entnommen. Der Zugriff auf die Sprachdatei wird einmal vorgenommen und in einer Variablen gemerkt. Zur Initialisierung der Variablen wird dieser Zugriff mit Angabe der Variablen auf die Sprachdatei gemacht und der Wert für die angegebene Sprache eingesetzt.
<!-- auswaehlen der aktuellen Sprache -->
<xsl:variable 
     name="language" select="/lec:lecture/@language"/>

<!-- Zugriff auf die Elemente in der Sprachdatei -->
<xsl:variable name="lang_vars" 
     select="document('language.xml')/language"/>

<!-- Variable fuers Inhaltsverzeichnis -->
<xsl:variable name="inhaltsverzeichnis">
 <!-- passendes Element nach Elementen durchsuchen -->
 <xsl:for-each select="$lang_vars/table_of_contents">
  <!-- initialisieren mit dem Wert des Elementes, 
       das der Sprachangabe entspricht --> 
  <xsl:value-of select="*[local-name()=$language]"/>
 </xsl:for-each>
</xsl:variable>
<!-- ... weitere Variablen -->

next up previous contents
Nächste Seite: 8.3.3 Flexibilität der Stylesheet Aufwärts: 8.3 Generierung der Ausgabe Vorherige Seite: 8.3.1 Folgerungen der Struktur   Inhalt
Tanja Schniederberend 2003-06-11