<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/pool/xslt_ht.xslt" type="application/xml"?>
<xsl:stylesheet
  xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
  xmlns:l = "http://herbaer.de/xmlns/20141210/localization"
  xmlns:d = "http://herbaer.de/xmlns/20051201/doc"
  exclude-result-prefixes = "d l"
  version = "1.0"
>
<d:info xmlns="http://herbaer.de/xmlns/20051201/doc">
  <title>localization_repltext.xslt</title>
  <subtitle>Platzhalter in XML-Dokumenten durch Text ersetzen</subtitle>
  <date>2014-12-20</date>
  <author>
    <personname>
      <firstname>Herbert</firstname>
      <surname>Schiemann</surname>
    </personname>
    <email>h.schiemann@herbaer.de</email>
  </author>
</d:info>

<d:para>
Pfad der Lokalisierungsdatei
</d:para>
<xsl:param name="p_local"/>

<d:para>
Das Wurzelelement der Lokalisierungsdatei
</d:para>
<xsl:variable name="g_locroot" select="document ($p_local)/l:localization"/>

<xsl:output method="xml" encoding="utf-8"/>

<d:para>
Die Wurzel
</d:para>
<xsl:template match="/">
  <xsl:apply-templates select="text() | processing-instruction() | comment() | *"/>
</xsl:template>

<d:para>
Elemente werden normalerweise kopiert.
</d:para>
<xsl:template match="*">
  <xsl:copy>
    <xsl:apply-templates select="@* | * | text() | processing-instruction() | comment()"/>
  </xsl:copy>
</xsl:template>

<d:para>
Textartige Knoten und Attribute werden kopiert.
</d:para>
<xsl:template match="@* | text() | processing-instruction() | comment()">
  <xsl:copy-of select="."/>
</xsl:template>

<d:para>
Platzhalter werden ersetzt.
</d:para>
<xsl:template match="l:ph">
  <xsl:variable name="id" select="@id"/>
  <xsl:value-of select="$g_locroot/l:t [@id = $id]"/>
</xsl:template>

</xsl:stylesheet>
