<?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:d = "http://herbaer.de/xmlns/20051201/doc"
  xmlns:lt = "http://herbaer.de/xmlns/20151212/loctext/"
  version = "1.0"
>
<d:info xmlns="http://herbaer.de/xmlns/20051201/doc">
  <title>lt_in.xslt</title>
  <subtitle>Zu übersetzende Texte extrahieren</subtitle>
  <date>2015-12-16</date>
  <author>
    <personname>
      <firstname>Herbert</firstname>
      <surname>Schiemann</surname>
    </personname>
    <email>h.schiemann@herbaer.de</email>
  </author>
</d:info>

<d:section xmlns="http://herbaer.de/xmlns/20051201/doc" role="stylesheet">
<para>
Diese Transformation erstellt eine Textdatei mit den zu übersetzenden Texten
zur Weiterverarbeitung.
Das Format der Ausgabe ist als Eingabeformat des Programms
<filename>trans.pl</filename> beschrieben.
</para>
</d:section>

<d:para>
Die Sprache eines Textes, wenn eine weitere Angabe fehlt.
</d:para>
<xsl:param name="p_default_lang" select="'de'"/>

<d:para>
Zeilenende: $txt.break
</d:para>
<xsl:include href="/pool/txt.xslt"/>

<d:para>
Die Sprache, wenn das Attribut lt:@l fehlt
</d:para>
<xsl:variable name="g_lang">
  <xsl:choose>
    <xsl:when test="/*/@xml:lang">
      <xsl:value-of select="/*/@xml:lang"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$p_default_lang"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>

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

<d:para>
Wurzel des XLIFF-Dokuments
</d:para>
<xsl:template match="/">
  <xsl:apply-templates select="*"/>
</xsl:template>

<d:para>
XML-Elemente werden nach lt-Elementen durchsucht.
</d:para>
<xsl:template match="*">
  <xsl:apply-templates select="*"/>
</xsl:template>

<d:para>
Ein Text in verschiedenen Sprachen
</d:para>
<xsl:template match="lt:v">
  <xsl:choose>
    <xsl:when test="@id">
      <xsl:value-of select="concat ('ID ', @id)"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="concat ('POS ', count (preceding::lt:v) + 1)"/>
    </xsl:otherwise>
  </xsl:choose>
  <xsl:value-of select="$txt.break"/>
  <xsl:apply-templates select="lt:t"/>
</xsl:template>

<d:para>
Eine Sprachvariante
</d:para>
<xsl:template match="lt:t">
  <xsl:text>LANG </xsl:text>
  <xsl:choose>
    <xsl:when test="@l">
      <xsl:value-of select="@l"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$g_lang"/>
    </xsl:otherwise>
  </xsl:choose>
  <xsl:value-of select="concat ($txt.break, normalize-space (.), $txt.break)"/>
</xsl:template>

</xsl:stylesheet>
