<?xml version="1.0"?>
<?xml-stylesheet href="/pool/xslt_ht.xslt" type="application/xml"?>
<xsl:stylesheet
  xmlns = "http://herbaer.de/xmlns/20141210/localization"
  xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
  xmlns:d = "http://herbaer.de/xmlns/20051201/doc"
  xmlns:is = "http://herbaer.de/xmlns/20080705/imgshow"
  xmlns:v = "http://herbaer.de/xmlns/20170613/vis/"
  xmlns:ht = "http://www.w3.org/1999/xhtml"
  xmlns:xl = "http://www.w3.org/1999/xlink"
  version = "1.0"
  exclude-result-prefixes = "xsl d is v xl"
>

<d:info xmlns="http://herbaer.de/xmlns/20051201/doc">
  <title>vis_titles.xslt</title>
  <subtitle>Titel zusammenstellen (Bildgeschichten, Bilder, Sprachen)</subtitle>
  <date>2017-06-14</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 Datei mit den Titeln der Bildergeschichten
und der Bilder in der Zielsprache.
  </para>
</d:section>

<d:para>
Sprache
</d:para>
<xsl:param name="p_lang"/>

<d:para>
Quellsprache
</d:para>
<xsl:param name="p_srclang" select="'de'"/>

<d:para>
Muster des Pfads einer Bildergeschichte
mit den Platzhaltern '<d:literal>${storyid}</d:literal>'
und '<d:literal>${lang}</d:literal>'
</d:para>
<xsl:param name="p_ptn_storypath" select="'../../docroot/s${storyid}/story.xml.${lang}.'"
/>

<d:para>
Muster des Pfades einer Sprachen-Datei
mit dem Platzhalter '<d:literal>${lang}</d:literal>'
</d:para>
<xsl:param name="p_ptn_langpath" select="'../../visits/langs/langs.xhtml.${lang}'"/>

<d:para>Vorlage <d:literal>txt.replacelist</d:literal></d:para>
<xsl:include href="/pool/txt.xslt"/>

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

<d:para>Wurzel</d:para>
<xsl:template match="/">
  <xsl:apply-templates select="v:b"/>
</xsl:template>

<d:para>Wurzelelement</d:para>
<xsl:template match="v:b">
  <localization>
    <xsl:attribute name="xml:lang">
      <xsl:value-of select="$p_lang"/>
      <xsl:if test="$p_lang != $p_srclang">
        <xsl:value-of select="concat ('-x-mtfrom-', $p_srclang)"/>
      </xsl:if>
    </xsl:attribute>
    <xsl:apply-templates select="v:s/v:s | v:i/v:i | v:l/v:l/v:s | v:l/v:l"/>
  </localization>
</xsl:template>

<d:para>
Titel einer Bildergeschichte
</d:para>
<xsl:template match="v:s">
  <xsl:variable name="story" select="v:s"/>
  <xsl:if test="not (preceding::v:s/v:s [. = $story])">
    <xsl:variable name="list" select="concat ('${storyid},', $story, ',${lang},', $p_lang)"
    />
    <xsl:variable name="path">
      <xsl:call-template name="txt.replacelist">
        <xsl:with-param name="txt" select="$p_ptn_storypath"/>
        <xsl:with-param name="list" select="$list"/>
      </xsl:call-template>
    </xsl:variable>
    <t id="{$story}">
      <xsl:value-of select="document($path)/is:document/is:title"/>
    </t>
  </xsl:if>
</xsl:template>

<d:para>
Titel eines Bildes
</d:para>
<xsl:template match="v:i">
  <xsl:variable name="list" select="concat ('${storyid},', v:s, ',${lang},', $p_lang)"/>
  <xsl:variable name="path">
    <xsl:call-template name="txt.replacelist">
      <xsl:with-param name="txt" select="$p_ptn_storypath"/>
      <xsl:with-param name="list" select="$list"/>
    </xsl:call-template>
  </xsl:variable>
  <xsl:variable name="image" select="v:i"/>
  <t id="{$image}">
    <xsl:value-of select="document($path)//is:jpg[@src = $image]/@alt"/>
  </t>
</xsl:template>

<d:para>
Bezeichnung einer Sprache
</d:para>
<xsl:template match="v:l">
  <xsl:variable name="list" select="concat ('${lang},', $p_lang)"/>
  <xsl:variable name="path">
    <xsl:call-template name="txt.replacelist">
      <xsl:with-param name="txt" select="$p_ptn_langpath"/>
      <xsl:with-param name="list" select="$list"/>
    </xsl:call-template>
  </xsl:variable>
  <xsl:variable name="langid" select="concat ('l_', v:l)"/>
  <t id="{$langid}">
    <xsl:variable name="t">
      <xsl:value-of select="document($path)//ht:a [@xml:id = $langid]"/>
    </xsl:variable>
    <xsl:choose>
      <xsl:when test="starts-with ($t, '[')">
        <xsl:value-of select="substring ($t, 2, string-length($t) - 2)"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$t"/>
      </xsl:otherwise>
    </xsl:choose>
  </t>
</xsl:template>

</xsl:stylesheet>
