moduleindex.xsl revision 87ea898bcffe2ef490e833dc246a1cc0465d783f
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<?xml version="1.0"?><!--
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding/* ====================================================================
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * The Apache Software License, Version 1.1
bc8fd1b0b1afdf89b8d28eefa8cd74e26ba97986fielding *
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * Copyright (c) 2002-2003 The Apache Software Foundation. All rights
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * reserved.
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding *
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * Redistribution and use in source and binary forms, with or without
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * modification, are permitted provided that the following conditions
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * are met:
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding *
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * 1. Redistributions of source code must retain the above copyright
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * notice, this list of conditions and the following disclaimer.
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding *
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * 2. Redistributions in binary form must reproduce the above copyright
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * notice, this list of conditions and the following disclaimer in
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * the documentation and/or other materials provided with the
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * distribution.
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding *
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * 3. The end-user documentation included with the redistribution,
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * if any, must include the following acknowledgment:
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * "This product includes software developed by the
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * Apache Software Foundation (http://www.apache.org/)."
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * Alternately, this acknowledgment may appear in the software itself,
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * if and wherever such third-party acknowledgments normally appear.
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding *
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * 4. The names "Apache" and "Apache Software Foundation" must
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * not be used to endorse or promote products derived from this
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * software without prior written permission. For written
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * permission, please contact apache@apache.org.
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding *
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * 5. Products derived from this software may not be called "Apache",
64185f9824e42f21ca7b9ae6c004484215c031a7rbb * nor may "Apache" appear in their name, without prior written
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * permission of the Apache Software Foundation.
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding *
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * SUCH DAMAGE.
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * ====================================================================
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding *
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * This software consists of voluntary contributions made by many
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * individuals on behalf of the Apache Software Foundation. For more
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding * information on the Apache Software Foundation, please see
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding * <http://www.apache.org/>.
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding */ -->
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding<xsl:stylesheet version="1.0"
ab2c1c1c83ec91415565da5a71fbc15d9685caa6fielding xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding xmlns="http://www.w3.org/1999/xhtml">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
1b21d7b3d97def358b2e923655edeb16613a1c31gstein<!-- ==================================================================== -->
1b21d7b3d97def358b2e923655edeb16613a1c31gstein<!-- <moduleindex> -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- Builds the moduleindex page -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- ==================================================================== -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:template match="moduleindex">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:variable name="metafile" select="document(/*/@metafile)/metafile" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>\section{</xsl:text><xsl:apply-templates select="title"/>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>}</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>\label{</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:value-of select="$metafile/path"/>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:value-of select="$metafile/basename"/>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>}
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:apply-templates select="summary"/>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:if test="seealso">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>\medskip\noindent\textbf{</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:value-of select="$messages/message[@name='seealso']" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>}
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding \begin{itemize}</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:for-each select="seealso">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>\item </xsl:text><xsl:apply-templates />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding </xsl:for-each>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding \end{itemize}
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding </xsl:if>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
64185f9824e42f21ca7b9ae6c004484215c031a7rbb
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>\subsection*{</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:value-of select="$messages/message[@name='corefeatures']" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>}
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding\begin{description}
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding\item[</xsl:text>
1b21d7b3d97def358b2e923655edeb16613a1c31gstein <xsl:apply-templates select="document(modulefilelist/modulefile
1b21d7b3d97def358b2e923655edeb16613a1c31gstein [starts-with(., 'core.xml')])
1b21d7b3d97def358b2e923655edeb16613a1c31gstein /modulesynopsis/name"/>
1b21d7b3d97def358b2e923655edeb16613a1c31gstein <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
1b21d7b3d97def358b2e923655edeb16613a1c31gstein <xsl:value-of select="document(modulefilelist/modulefile
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding [starts-with(., 'core.xml')])
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding /modulesynopsis/name"/>
1b21d7b3d97def358b2e923655edeb16613a1c31gstein <xsl:text>}) </xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
48d7c43629323c8d5ee9f7bd0d194de0a376b391rbb <xsl:apply-templates select="document(modulefilelist/modulefile
1b21d7b3d97def358b2e923655edeb16613a1c31gstein [starts-with(., 'core.xml')])
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding /modulesynopsis/description" />
48d7c43629323c8d5ee9f7bd0d194de0a376b391rbb
1b21d7b3d97def358b2e923655edeb16613a1c31gstein <xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding\item[</xsl:text>
48d7c43629323c8d5ee9f7bd0d194de0a376b391rbb
1b21d7b3d97def358b2e923655edeb16613a1c31gstein <xsl:apply-templates select="document(modulefilelist/modulefile
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding [starts-with(., 'mpm_common.xml')])
0c0afda9ab1830cc440f25b755aa363d23b20dd5dgaudet /modulesynopsis/name" />
1b21d7b3d97def358b2e923655edeb16613a1c31gstein <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
904d7bf799c6216beb34519463596b4fce630308wrowe <xsl:value-of select="document(modulefilelist/modulefile
c95f419952af464c35f32d5c5754ad56aec754ebaaron [starts-with(., 'mpm_common.xml')])
904d7bf799c6216beb34519463596b4fce630308wrowe /modulesynopsis/name"/>
2ae7ad6f58b7e3188ed4bd375a8930808529ba71jwoolley <xsl:text>}) </xsl:text>
1b21d7b3d97def358b2e923655edeb16613a1c31gstein <xsl:apply-templates select="document(modulefilelist/modulefile
1b21d7b3d97def358b2e923655edeb16613a1c31gstein [starts-with(., 'mpm_common.xml')])
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding /modulesynopsis/description" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <!-- and now the remaining MPMs -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:variable name="mpmmodules"
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding select="document(modulefilelist/modulefile)
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding /modulesynopsis[status='MPM' and name != 'mpm_common']" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:variable name="translist">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:call-template name="module-translist">
1ccd992d37d62c8cb2056126f2234f64ec189bfddougm <xsl:with-param name="modules" select="$mpmmodules" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding </xsl:call-template>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding </xsl:variable>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:for-each select="$mpmmodules">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:sort select="substring-before(substring-after($translist,
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding concat('- ', translate(normalize-space(name), $lowercase,
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding $uppercase), ' ')), ' -')" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding\item[</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:apply-templates select="name"/>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:value-of select="name"/>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>}) </xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:apply-templates select="description" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding </xsl:for-each>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>\end{description}
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <!-- /core section -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>\section*{</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:value-of select="$messages/message[@name='othermodules']" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>}
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding\begin{description}
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:variable name="modules"
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding select="document(modulefilelist/modulefile)
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding /modulesynopsis[status!='MPM' and status!='Core']" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:call-template name="mindex-of-letter">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:with-param name="modules" select="$modules" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding </xsl:call-template>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text>\end{description}
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:template>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- /moduleindex -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- ==================================================================== -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- the working horse. builds list items of all modules starting with -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- one letter when done, it calls itself to catch the next letter -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- ==================================================================== -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:template name="mindex-of-letter">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:param name="modules"/>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:variable name="translist">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:call-template name="module-translist">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:with-param name="modules" select="$modules" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding </xsl:call-template>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:variable>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:for-each select="$modules">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:sort
5918d21085b9748f957276afc287276333326e39coar select="substring-before(substring-after($translist, concat('- ',
5918d21085b9748f957276afc287276333326e39coar translate(normalize-space(name),$lowercase,$uppercase), ' ')), ' -')" />
5918d21085b9748f957276afc287276333326e39coar
5918d21085b9748f957276afc287276333326e39coar<xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding\item[</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:apply-templates select="name"/>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:text>] (p.\ \pageref{/mod/</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:value-of select="name"/>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:text>}) </xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:apply-templates select="description" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:for-each> <!-- /directives -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:template>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- /mindex-of-letter -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- ==================================================================== -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- define module name translations for sorting -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- it's a kind of a hack... -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- we build a string that contains the following data: -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- "- modulename sortname - modulename sortname - ..." -->
b5aed57c02a923d92b17122fa780bb5f2f14801ddougm<!-- (with all data in uppercase) -->
b5aed57c02a923d92b17122fa780bb5f2f14801ddougm<!-- -->
b5aed57c02a923d92b17122fa780bb5f2f14801ddougm<!-- So, the translation from modulename to sortname can be done with the -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- expression below: -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!--
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding substring-before(
b5aed57c02a923d92b17122fa780bb5f2f14801ddougm substring-after($translist,
b5aed57c02a923d92b17122fa780bb5f2f14801ddougm concat('- ', translate(modulename,
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding $lowercase, $uppercase),
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding ' ')
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding ),
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding ' -')
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- ==================================================================== -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:template name="module-translist">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:param name="modules" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:text>-</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:for-each select="$modules">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:variable name="sname" select="translate(normalize-space(name),
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding $lowercase, $uppercase)" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text> </xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:value-of select="$sname" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text> </xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:call-template name="module-translatename">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:with-param name="name" select="$sname" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding </xsl:call-template>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:text> -</xsl:text>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:for-each>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:template>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- /module-translist -->
e5e42830f51e7307fb36c7908a22d6e530903a3ctrawick
e5e42830f51e7307fb36c7908a22d6e530903a3ctrawick<xsl:template name="module-translatename">
e5e42830f51e7307fb36c7908a22d6e530903a3ctrawick<xsl:param name="name" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
1ccd992d37d62c8cb2056126f2234f64ec189bfddougm<xsl:variable name="sname" select="translate($name, $lowercase, $uppercase)" />
1ccd992d37d62c8cb2056126f2234f64ec189bfddougm
1ccd992d37d62c8cb2056126f2234f64ec189bfddougm<xsl:choose>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:when test="starts-with($sname, 'MOD_') or starts-with($sname, 'MPM_')">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:value-of select="substring($name, 5)" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:when>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:when test="starts-with($sname, 'MPMT_')">
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:value-of select="substring($name, 6)" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:when>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<xsl:otherwise>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding <xsl:value-of select="$name" />
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:otherwise>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:choose>
1ccd992d37d62c8cb2056126f2234f64ec189bfddougm</xsl:template>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding<!-- /module-translatename -->
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding</xsl:stylesheet>
0f081398cf0eef8cc7c66a535d450110a92dc8aefielding