doc/share/sgml/transtable-master.xsl
Hiroki Sato 2e2010fbb7 Improve transtable.{xml,xsl}, including:
- The structure of transtable.xml is revised.  <word> should be
   bracketed with <group>.

 - A sorting order of the FreeBSD mirror sites rendered using
   mirrors.xml has been determined by sort(1).

 - A template "transtable-lookup" has been added for localization on
   word-by-word basis.

 - Replace English month names in news.xml, press.xml, and
   advisories.xml with numbers that correspond to the names.
   The number->name translation is performed on the fly.

 - Since information in mirrors.xml is used in www/ tree, it depends on
   doc/ tree now.  When WITHOUT_DOC is defined it can be built without
   doc/ tree, but some information becomes unavailable.  For example,
   a list of the mirror sites generated in index.html becomes a dummy
   one, and calling "transtable-lookup" with a word returns the word
   itself.

Neither www/ nor doc/ build should be broken due to this commit, but
until the necessary changes are applied in the localized directories,
the transtable does not work; it simply generates non-localized contents
even if transtable.xsl is used.
2004-01-12 21:27:01 +00:00

90 lines
2.6 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $FreeBSD$ -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="./transtable-common.xsl" />
<xsl:output type="xml" encoding="iso-8859-1"
indent="yes"/>
<!-- these params should be externally bound. The values
here are not used actually -->
<xsl:param name="transtable-target-element" select="''" />
<xsl:param name="transtable-word-group" select="''" />
<xsl:param name="transtable-mode" select="''" />
<xsl:template match="/">
<xsl:choose>
<xsl:when test="$transtable-mode = 'sortkey'">
<xsl:apply-templates mode="sortkey"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="*[local-name() = $transtable-target-element]">
<xsl:element name="{local-name(.)}" namespace="{namespace-uri(.)}">
<xsl:copy-of select="@*" />
<xsl:call-template name="transtable-sortkey-lookup">
<xsl:with-param name="word" select="." />
<xsl:with-param name="word-group" select="$transtable-word-group" />
</xsl:call-template>
<xsl:call-template name="transtable-lookup">
<xsl:with-param name="word" select="." />
<xsl:with-param name="word-group" select="$transtable-word-group" />
</xsl:call-template>
</xsl:element>
</xsl:template>
<!-- mode for generating sortkeytable -->
<xsl:template match="*" mode="sortkey">
<xsl:apply-templates mode="sortkey"/>
</xsl:template>
<xsl:template match="text()" mode="sortkey">
</xsl:template>
<xsl:template match="*[local-name() = $transtable-target-element]" mode="sortkey">
<xsl:text> </xsl:text>
<xsl:comment>
<xsl:call-template name="transtable-lookup">
<xsl:with-param name="word" select="." />
<xsl:with-param name="word-group" select="$transtable-word-group" />
</xsl:call-template>
</xsl:comment>
<xsl:element name="word">
<xsl:attribute name="name">
<xsl:call-template name="transtable-lookup">
<xsl:with-param name="word" select="." />
<xsl:with-param name="word-group" select="$transtable-word-group" />
</xsl:call-template>
</xsl:attribute>
<xsl:attribute name="orig">
<xsl:value-of select="." />
</xsl:attribute>
<xsl:attribute name="sortkey">
<xsl:value-of select="'@sortkey@'" />
</xsl:attribute>
</xsl:element>
<xsl:text disable-output-escaping="yes">&#10;</xsl:text>
</xsl:template>
</xsl:stylesheet>