|
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 |
|