Blame xslt/common/gentext.xsl

Packit e4b6da
Packit e4b6da
Packit e4b6da
-->
Packit e4b6da
Packit e4b6da
Packit e4b6da
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
Packit e4b6da
  xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
Packit e4b6da
  xmlns:l="http://docbook2x.sourceforge.net/xsl/localization"
Packit e4b6da
  xmlns:dl="http://docbook2x.sourceforge.net/xsl/document-localization"
Packit e4b6da
  exclude-result-prefixes="doc l dl"
Packit e4b6da
  version='1.0'
Packit e4b6da
  xml:lang="en">
Packit e4b6da
Packit e4b6da
Packit e4b6da
     $Id: gentext.xsl,v 1.6 2006/04/12 02:14:00 stevecheng Exp $
Packit e4b6da
     ********************************************************************
Packit e4b6da
Packit e4b6da
     © 2000 Steve Cheng <stevecheng@users.sourceforge.net>
Packit e4b6da
Packit e4b6da
     Templates to help l10n.
Packit e4b6da
     ******************************************************************** -->
Packit e4b6da
Packit e4b6da
Packit e4b6da
Packit e4b6da
     In the following templates, some complex XPaths are used,
Packit e4b6da
     which at first glance seems to be inefficient.
Packit e4b6da
     Indeed if we do profiling with xsltproc it will show
Packit e4b6da
     that a large portion of time is spent in these templates.
Packit e4b6da
Packit e4b6da
     The most straightforward fix would be to use key look-ups
Packit e4b6da
     as the substitute for the complex XPaths.  Unfortunately,
Packit e4b6da
     on xsltproc this method actually *decreases* performances,
Packit e4b6da
     because the xsl:key implementation in xsltproc is fairly
Packit e4b6da
     suboptimal.  (Each xsl:key adds a non-trivial processing 
Packit e4b6da
     cost to each document; about 2.5 seconds per 180 small input
Packit e4b6da
     documents.)  For this reason, we comment out the following
Packit e4b6da
     theoretically more optimized code.
Packit e4b6da
-->
Packit e4b6da
 
Packit e4b6da
Packit e4b6da
Packit e4b6da
         use="concat(../@lang, '.', @element)" />
Packit e4b6da
Packit e4b6da
         use="concat(../@lang, '.', @element)" />
Packit e4b6da
Packit e4b6da
         use="concat(../@lang, '.', @key)" />
Packit e4b6da
Packit e4b6da
         use="concat(../@lang, '.', @key)" />
Packit e4b6da
<xsl:template name="lookup-gentext">
Packit e4b6da
  <xsl:param name="content" />
Packit e4b6da
  <xsl:param name="type" />
Packit e4b6da
  <xsl:param name="key" />
Packit e4b6da
Packit e4b6da
  <xsl:for-each select="$custom-l10n-data">
Packit e4b6da
  
Packit e4b6da
                select="key($type, $key)[last()]" />
Packit e4b6da
  <xsl:choose>
Packit e4b6da
  <xsl:when test="$data">
Packit e4b6da
  <xsl:apply-templates select="$data/node()" mode="l10n-substitution">
Packit e4b6da
    <xsl:with-param name="content" select="$content" />
Packit e4b6da
  </xsl:apply-templates>
Packit e4b6da
  </xsl:when>
Packit e4b6da
  <xsl:otherwise>
Packit e4b6da
  <xsl:for-each select="$l10n-data">
Packit e4b6da
  
Packit e4b6da
                select="key($type, $key)[last()]" />
Packit e4b6da
  <xsl:apply-templates select="$data2/node()" mode="l10n-substitution">
Packit e4b6da
    <xsl:with-param name="content" select="$content" />
Packit e4b6da
  </xsl:apply-templates>
Packit e4b6da
  </xsl:for-each>
Packit e4b6da
  </xsl:otherwise>
Packit e4b6da
  </xsl:choose>
Packit e4b6da
  </xsl:for-each>
Packit e4b6da
</xsl:template>
Packit e4b6da
</xsl:template>
Packit e4b6da
-->
Packit e4b6da
Packit e4b6da
<xsl:template name="gentext-title">
Packit e4b6da
  <xsl:param name="element-name" select="name(.)" />
Packit e4b6da
  <xsl:param name="content" />
Packit e4b6da
  <xsl:param name="lang">
Packit e4b6da
    <xsl:call-template name="l10n-xml-actual-language">
Packit e4b6da
      <xsl:with-param name="target" select="." />
Packit e4b6da
    </xsl:call-template>
Packit e4b6da
  </xsl:param>
Packit e4b6da
Packit e4b6da
  <xsl:param name="key" />
Packit e4b6da
Packit e4b6da
  
Packit e4b6da
    select="($custom-l10n-data/l:locale[@lang=$lang]/dl:title[@element=$element-name])[last()]" />
Packit e4b6da
  
Packit e4b6da
    select="($l10n-data/l:locale[@lang=$lang]/dl:title[@element=$element-name])[last()]" />
Packit e4b6da
Packit e4b6da
  <xsl:choose>
Packit e4b6da
    <xsl:when test="$custom">
Packit e4b6da
      <xsl:apply-templates select="$custom/node()" mode="l10n-substitution">
Packit e4b6da
        <xsl:with-param name="content" select="$content" />
Packit e4b6da
      </xsl:apply-templates>
Packit e4b6da
    </xsl:when>
Packit e4b6da
    <xsl:when test="$standard">
Packit e4b6da
      <xsl:apply-templates select="$standard/node()" mode="l10n-substitution">
Packit e4b6da
        <xsl:with-param name="content" select="$content" />
Packit e4b6da
      </xsl:apply-templates>
Packit e4b6da
    </xsl:when>
Packit e4b6da
  </xsl:choose>
Packit e4b6da
Packit e4b6da
</xsl:template>
Packit e4b6da
Packit e4b6da
<xsl:template name="gentext-label">
Packit e4b6da
  <xsl:param name="element-name" select="name(.)" />
Packit e4b6da
  <xsl:param name="content" />
Packit e4b6da
  <xsl:param name="lang">
Packit e4b6da
    <xsl:call-template name="l10n-xml-actual-language">
Packit e4b6da
      <xsl:with-param name="target" select="." />
Packit e4b6da
    </xsl:call-template>
Packit e4b6da
  </xsl:param>
Packit e4b6da
Packit e4b6da
  <xsl:param name="key" />
Packit e4b6da
Packit e4b6da
  
Packit e4b6da
    select="($custom-l10n-data/l:locale[@lang=$lang]/dl:label[@element=$element-name])[last()]" />
Packit e4b6da
  
Packit e4b6da
    select="($l10n-data/l:locale[@lang=$lang]/dl:label[@element=$element-name])[last()]" />
Packit e4b6da
Packit e4b6da
  <xsl:choose>
Packit e4b6da
    <xsl:when test="$custom">
Packit e4b6da
      <xsl:apply-templates select="$custom/node()" mode="l10n-substitution">
Packit e4b6da
        <xsl:with-param name="content" select="$content" />
Packit e4b6da
      </xsl:apply-templates>
Packit e4b6da
    </xsl:when>
Packit e4b6da
    <xsl:when test="$standard">
Packit e4b6da
      <xsl:apply-templates select="$standard/node()" mode="l10n-substitution">
Packit e4b6da
        <xsl:with-param name="content" select="$content" />
Packit e4b6da
      </xsl:apply-templates>
Packit e4b6da
    </xsl:when>
Packit e4b6da
  </xsl:choose>
Packit e4b6da
Packit e4b6da
</xsl:template>
Packit e4b6da
Packit e4b6da
<xsl:template name="gentext-rendering">
Packit e4b6da
  <xsl:param name="key" select="name(.)" />
Packit e4b6da
  <xsl:param name="content" />
Packit e4b6da
  <xsl:param name="lang">
Packit e4b6da
    <xsl:call-template name="l10n-xml-actual-language">
Packit e4b6da
      <xsl:with-param name="target" select="." />
Packit e4b6da
    </xsl:call-template>
Packit e4b6da
  </xsl:param>
Packit e4b6da
Packit e4b6da
  
Packit e4b6da
    select="($custom-l10n-data/l:locale[@lang=$lang]/dl:rendering[@key=$key])[last()]" />
Packit e4b6da
  
Packit e4b6da
    select="($l10n-data/l:locale[@lang=$lang]/dl:rendering[@key=$key])[last()]" />
Packit e4b6da
Packit e4b6da
  <xsl:choose>
Packit e4b6da
    <xsl:when test="$custom">
Packit e4b6da
      <xsl:apply-templates select="$custom/node()" mode="l10n-substitution">
Packit e4b6da
        <xsl:with-param name="content" select="$content" />
Packit e4b6da
      </xsl:apply-templates>
Packit e4b6da
    </xsl:when>
Packit e4b6da
    <xsl:when test="$standard">
Packit e4b6da
      <xsl:apply-templates select="$standard/node()" mode="l10n-substitution">
Packit e4b6da
        <xsl:with-param name="content" select="$content" />
Packit e4b6da
      </xsl:apply-templates>
Packit e4b6da
    </xsl:when>
Packit e4b6da
  </xsl:choose>
Packit e4b6da
Packit e4b6da
</xsl:template>
Packit e4b6da
Packit e4b6da
Packit e4b6da
<xsl:template name="gentext-text">
Packit e4b6da
  <xsl:param name="target" select="." />
Packit e4b6da
  <xsl:param name="key" />
Packit e4b6da
  <xsl:param name="lang">
Packit e4b6da
    <xsl:call-template name="l10n-xml-actual-language">
Packit e4b6da
      <xsl:with-param name="target" select="$target" />
Packit e4b6da
    </xsl:call-template>
Packit e4b6da
  </xsl:param>
Packit e4b6da
Packit e4b6da
  
Packit e4b6da
    select="($custom-l10n-data/l:locale[@lang=$lang]/dl:text[@key=$key])[last()]" />
Packit e4b6da
  
Packit e4b6da
    select="($l10n-data/l:locale[@lang=$lang]/dl:text[@key=$key])[last()]" />
Packit e4b6da
Packit e4b6da
  <xsl:choose>
Packit e4b6da
    <xsl:when test="$custom/node()">
Packit e4b6da
      <xsl:value-of select="$custom" />
Packit e4b6da
    </xsl:when>
Packit e4b6da
    <xsl:when test="$standard/node()">
Packit e4b6da
      <xsl:value-of select="$standard" />
Packit e4b6da
    </xsl:when>
Packit e4b6da
  </xsl:choose>
Packit e4b6da
Packit e4b6da
</xsl:template>
Packit e4b6da
Packit e4b6da
Packit e4b6da
Packit e4b6da
<xsl:template match="dl:content" mode="l10n-substitution">
Packit e4b6da
  <xsl:param name="content" />
Packit e4b6da
  <xsl:copy-of select="$content" />
Packit e4b6da
</xsl:template>
Packit e4b6da
Packit e4b6da
Packit e4b6da
Packit e4b6da
</xsl:stylesheet>
Packit e4b6da