|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
-->
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
|
|
Packit |
e4b6da |
xmlns:l="http://docbook2x.sourceforge.net/xsl/localization"
|
|
Packit |
e4b6da |
xmlns:exslt="http://exslt.org/common"
|
|
Packit |
e4b6da |
xmlns:saxon="http://icl.com/saxon"
|
|
Packit |
e4b6da |
exclude-result-prefixes="doc saxon exslt"
|
|
Packit |
e4b6da |
version='1.0'
|
|
Packit |
e4b6da |
xml:lang="en">
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
$Id: messages.xsl,v 1.14 2004/08/18 14:24:27 stevecheng Exp $
|
|
Packit |
e4b6da |
********************************************************************
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
© 2000 Steve Cheng <stevecheng@users.sourceforge.net>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
Part of docbook2X. Facilitates L10Nized user messages.
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
******************************************************************** -->
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:param name="message-language" select="'en'" />
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template name="l10n-message-choose-language">
|
|
Packit |
e4b6da |
<xsl:param name="key" />
|
|
Packit |
e4b6da |
<xsl:param name="languages" select="$message-language" />
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
translate(substring-before($languages, ':'),
|
|
Packit |
e4b6da |
'ABCDEFGHIJKLMNOPQRSTUVWXYZ_',
|
|
Packit |
e4b6da |
'abcdefghijklmnopqrstuvwxyz-')" />
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:choose>
|
|
Packit |
e4b6da |
<xsl:when test="$first = ''">
|
|
Packit |
e4b6da |
<xsl:value-of select="$languages" />
|
|
Packit |
e4b6da |
</xsl:when>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:when test="$l10n-data/l:locale[@lang=$first]/l:message[@key=$key]">
|
|
Packit |
e4b6da |
<xsl:value-of select="$first" />
|
|
Packit |
e4b6da |
</xsl:when>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:otherwise>
|
|
Packit |
e4b6da |
<xsl:call-template name="l10n-message-choose-language">
|
|
Packit |
e4b6da |
<xsl:with-param name="key" select="$key" />
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
select="substring-after($languages, ':')" />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:otherwise>
|
|
Packit |
e4b6da |
</xsl:choose>
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template match="l:a1" mode="l10n-substitution">
|
|
Packit |
e4b6da |
<xsl:param name="arg-1" />
|
|
Packit |
e4b6da |
<xsl:value-of select="$arg-1" />
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
<xsl:template match="l:a2" mode="l10n-substitution">
|
|
Packit |
e4b6da |
<xsl:param name="arg-2" />
|
|
Packit |
e4b6da |
<xsl:value-of select="$arg-2" />
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
<xsl:template match="l:a3" mode="l10n-substitution">
|
|
Packit |
e4b6da |
<xsl:param name="arg-3" />
|
|
Packit |
e4b6da |
<xsl:value-of select="$arg-3" />
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
<xsl:template match="l:a4" mode="l10n-substitution">
|
|
Packit |
e4b6da |
<xsl:param name="arg-4" />
|
|
Packit |
e4b6da |
<xsl:value-of select="$arg-4" />
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
<xsl:template match="l:a5" mode="l10n-substitution">
|
|
Packit |
e4b6da |
<xsl:param name="arg-5" />
|
|
Packit |
e4b6da |
<xsl:value-of select="$arg-5" />
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<doc:template name="user-message" xmlns="">
|
|
Packit |
e4b6da |
<refpurpose>Emit a user message</refpurpose>
|
|
Packit |
e4b6da |
<refdescription>
|
|
Packit |
e4b6da |
<para>
|
|
Packit |
e4b6da |
This template is used in place of <function>xsl:message</function>.
|
|
Packit |
e4b6da |
It traces the path of the given node to help in debugging and allows
|
|
Packit |
e4b6da |
messages to be localized.
|
|
Packit |
e4b6da |
</para>
|
|
Packit |
e4b6da |
</refdescription>
|
|
Packit |
e4b6da |
<refparameter>
|
|
Packit |
e4b6da |
<variablelist>
|
|
Packit |
e4b6da |
<varlistentry>
|
|
Packit |
e4b6da |
<term><parameter>node</parameter></term>
|
|
Packit |
e4b6da |
<listitem><para>
|
|
Packit |
e4b6da |
The node to get to trace the path to.
|
|
Packit |
e4b6da |
Default is the context node.
|
|
Packit |
e4b6da |
</para></listitem>
|
|
Packit |
e4b6da |
</varlistentry>
|
|
Packit |
e4b6da |
<varlistentry>
|
|
Packit |
e4b6da |
<term><parameter>arg</parameter></term>
|
|
Packit |
e4b6da |
<listitem><para>
|
|
Packit |
e4b6da |
Additional string argument to message, if any.
|
|
Packit |
e4b6da |
</para></listitem>
|
|
Packit |
e4b6da |
</varlistentry>
|
|
Packit |
e4b6da |
<varlistentry>
|
|
Packit |
e4b6da |
<term><parameter>key</parameter></term>
|
|
Packit |
e4b6da |
<listitem><para>
|
|
Packit |
e4b6da |
The standard message text. If a localization/customization
|
|
Packit |
e4b6da |
exists, it is keyed under this text and displayed instead
|
|
Packit |
e4b6da |
of the standard message text.
|
|
Packit |
e4b6da |
</para></listitem>
|
|
Packit |
e4b6da |
</varlistentry>
|
|
Packit |
e4b6da |
</variablelist>
|
|
Packit |
e4b6da |
</refparameter>
|
|
Packit |
e4b6da |
</doc:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template name="user-message">
|
|
Packit |
e4b6da |
<xsl:param name="node" select="." />
|
|
Packit |
e4b6da |
<xsl:param name="trace-node" select="true()" />
|
|
Packit |
e4b6da |
<xsl:param name="arg-1" />
|
|
Packit |
e4b6da |
<xsl:param name="arg-2" />
|
|
Packit |
e4b6da |
<xsl:param name="arg-3" />
|
|
Packit |
e4b6da |
<xsl:param name="arg-4" />
|
|
Packit |
e4b6da |
<xsl:param name="arg-5" />
|
|
Packit |
e4b6da |
<xsl:param name="key" />
|
|
Packit |
e4b6da |
<xsl:param name="content" />
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:variable name="lang">
|
|
Packit |
e4b6da |
<xsl:call-template name="l10n-message-choose-language">
|
|
Packit |
e4b6da |
<xsl:with-param name="key" select="$key" />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:variable>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:message>
|
|
Packit |
e4b6da |
<xsl:value-of select="$user-message-prefix" />
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:if test="$trace-node">
|
|
Packit |
e4b6da |
<xsl:choose>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
and function-available('saxon:line-number')">
|
|
Packit |
e4b6da |
<xsl:call-template name="print-node-line-number">
|
|
Packit |
e4b6da |
<xsl:with-param name="node" select="$node" />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:when>
|
|
Packit |
e4b6da |
<xsl:otherwise>
|
|
Packit |
e4b6da |
<xsl:call-template name="print-node-xpath">
|
|
Packit |
e4b6da |
<xsl:with-param name="node" select="$node" />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:otherwise>
|
|
Packit |
e4b6da |
</xsl:choose>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:text>: </xsl:text>
|
|
Packit |
e4b6da |
</xsl:if>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
name="message"
|
|
Packit |
e4b6da |
select="($l10n-data/l:locale[@lang=$lang]/l:message[@key=$key])[last()]" />
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:choose>
|
|
Packit |
e4b6da |
<xsl:when test="$message">
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
mode="l10n-substitution">
|
|
Packit |
e4b6da |
<xsl:with-param name="arg-1" select="$arg-1" />
|
|
Packit |
e4b6da |
<xsl:with-param name="arg-2" select="$arg-2" />
|
|
Packit |
e4b6da |
<xsl:with-param name="arg-3" select="$arg-3" />
|
|
Packit |
e4b6da |
<xsl:with-param name="arg-4" select="$arg-4" />
|
|
Packit |
e4b6da |
<xsl:with-param name="arg-5" select="$arg-5" />
|
|
Packit |
e4b6da |
</xsl:apply-templates>
|
|
Packit |
e4b6da |
</xsl:when>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:when test="$content != '' and function-available('exslt:node-set')">
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
mode="l10n-substitution">
|
|
Packit |
e4b6da |
<xsl:with-param name="arg-1" select="$arg-1" />
|
|
Packit |
e4b6da |
<xsl:with-param name="arg-2" select="$arg-2" />
|
|
Packit |
e4b6da |
<xsl:with-param name="arg-3" select="$arg-3" />
|
|
Packit |
e4b6da |
<xsl:with-param name="arg-4" select="$arg-4" />
|
|
Packit |
e4b6da |
<xsl:with-param name="arg-5" select="$arg-5" />
|
|
Packit |
e4b6da |
</xsl:apply-templates>
|
|
Packit |
e4b6da |
</xsl:when>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:otherwise>
|
|
Packit |
e4b6da |
<xsl:value-of select="$key" />
|
|
Packit |
e4b6da |
</xsl:otherwise>
|
|
Packit |
e4b6da |
</xsl:choose>
|
|
Packit |
e4b6da |
</xsl:message>
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<doc:template name="print-node-line-number" xmlns="">
|
|
Packit |
e4b6da |
<refpurpose>Display file name and line number of a node</refpurpose>
|
|
Packit |
e4b6da |
<refdescription>
|
|
Packit |
e4b6da |
<para>
|
|
Packit |
e4b6da |
This template displays the file name and
|
|
Packit |
e4b6da |
the line number in that file that contains the given node.
|
|
Packit |
e4b6da |
In addition the name of the given node is shown in parentheses
|
|
Packit |
e4b6da |
(usually the element name).
|
|
Packit |
e4b6da |
The output is suitable for diagnostics to the user.
|
|
Packit |
e4b6da |
</para>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<para>
|
|
Packit |
e4b6da |
(“filename” means the “filename” part of the URI of the
|
|
Packit |
e4b6da |
containing entity.)
|
|
Packit |
e4b6da |
</para>
|
|
Packit |
e4b6da |
</refdescription>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<refparameter>
|
|
Packit |
e4b6da |
<variablelist>
|
|
Packit |
e4b6da |
<varlistentry>
|
|
Packit |
e4b6da |
<term><parameter>node</parameter></term>
|
|
Packit |
e4b6da |
<listitem><para>
|
|
Packit |
e4b6da |
The node to get to print the information for.
|
|
Packit |
e4b6da |
Default is the context node.
|
|
Packit |
e4b6da |
</para></listitem>
|
|
Packit |
e4b6da |
</varlistentry>
|
|
Packit |
e4b6da |
</variablelist>
|
|
Packit |
e4b6da |
</refparameter>
|
|
Packit |
e4b6da |
</doc:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template name="print-node-line-number">
|
|
Packit |
e4b6da |
<xsl:param name="node" select="." />
|
|
Packit |
e4b6da |
<xsl:for-each select="$node">
|
|
Packit |
e4b6da |
<xsl:variable name="filename">
|
|
Packit |
e4b6da |
<xsl:choose>
|
|
Packit |
e4b6da |
<xsl:when test="contains(saxon:system-id(), '/')">
|
|
Packit |
e4b6da |
<xsl:call-template name="substring-after-last">
|
|
Packit |
e4b6da |
<xsl:with-param name="content" select="saxon:system-id()" />
|
|
Packit |
e4b6da |
<xsl:with-param name="search" select="'/'" />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:when>
|
|
Packit |
e4b6da |
<xsl:otherwise>
|
|
Packit |
e4b6da |
<xsl:value-of select="saxon:system-id()" />
|
|
Packit |
e4b6da |
</xsl:otherwise>
|
|
Packit |
e4b6da |
</xsl:choose>
|
|
Packit |
e4b6da |
</xsl:variable>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:value-of select="$filename" />
|
|
Packit |
e4b6da |
<xsl:text>:</xsl:text>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:value-of select="saxon:line-number()" />
|
|
Packit |
e4b6da |
<xsl:text>(</xsl:text>
|
|
Packit |
e4b6da |
<xsl:value-of select="name(.)" />
|
|
Packit |
e4b6da |
<xsl:text>)</xsl:text>
|
|
Packit |
e4b6da |
</xsl:for-each>
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<doc:template name="print-node-xpath" xmlns="">
|
|
Packit |
e4b6da |
<refpurpose>Display the path of a node</refpurpose>
|
|
Packit |
e4b6da |
<refdescription>
|
|
Packit |
e4b6da |
<para>
|
|
Packit |
e4b6da |
This template displays the address of the given node in
|
|
Packit |
e4b6da |
XPath notation, in a compact yet unambiguous form
|
|
Packit |
e4b6da |
suitable for diagnostics to the user.
|
|
Packit |
e4b6da |
</para>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<para>
|
|
Packit |
e4b6da |
It assumes that ID attributes are named
|
|
Packit |
e4b6da |
<sgmltag class="attribute">id</sgmltag>, and if an element
|
|
Packit |
e4b6da |
has an ID defined, then the element will be addressed using
|
|
Packit |
e4b6da |
that ID, instead of a long XPath starting from the root.
|
|
Packit |
e4b6da |
</para>
|
|
Packit |
e4b6da |
</refdescription>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<refparameter>
|
|
Packit |
e4b6da |
<variablelist>
|
|
Packit |
e4b6da |
<varlistentry>
|
|
Packit |
e4b6da |
<term><parameter>node</parameter></term>
|
|
Packit |
e4b6da |
<listitem><para>
|
|
Packit |
e4b6da |
The node to get to trace the path to.
|
|
Packit |
e4b6da |
Default is the context node.
|
|
Packit |
e4b6da |
</para></listitem>
|
|
Packit |
e4b6da |
</varlistentry>
|
|
Packit |
e4b6da |
</variablelist>
|
|
Packit |
e4b6da |
</refparameter>
|
|
Packit |
e4b6da |
</doc:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template name="print-node-xpath">
|
|
Packit |
e4b6da |
<xsl:param name="node" select="." />
|
|
Packit |
e4b6da |
<xsl:apply-templates select="$node" mode="print-node-xpath" />
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template match="text()" mode="print-node-xpath">
|
|
Packit |
e4b6da |
<xsl:apply-templates select=".." mode="print-node-xpath" />
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template match="@*" mode="print-node-xpath">
|
|
Packit |
e4b6da |
<xsl:apply-templates select=".." mode="print-node-xpath" />
|
|
Packit |
e4b6da |
<xsl:value-of select="concat('/@', name(), "='", string(.), "'")" />
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template match="*[@id != '']" mode="print-node-xpath">
|
|
Packit |
e4b6da |
<xsl:value-of select="concat('//', name(), "[@id='", @id, "']")" />
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template match="*" mode="print-node-xpath">
|
|
Packit |
e4b6da |
<xsl:apply-templates select=".." mode="print-node-xpath" />
|
|
Packit |
e4b6da |
<xsl:value-of select="concat('/', name())" />
|
|
Packit |
e4b6da |
<xsl:if test="count(../*[name() = name(current())]) > 1">
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
count(preceding-sibling::*[name() = name(current())])+1,
|
|
Packit |
e4b6da |
']')" />
|
|
Packit |
e4b6da |
</xsl:if>
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template match="/" mode="print-node-xpath">
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
</xsl:stylesheet>
|
|
Packit |
e4b6da |
|