[library-web/new-website-style: 10/24] add dev and help indexes files



commit 373f74d9f69213e0fc95a51fac711f4dc93802c6
Author: Frédéric Péters <fpeters 0d be>
Date:   Sat Mar 19 22:24:21 2011 +0100

    add dev and help indexes files

 data/xslt/dev_indexes.xsl  | 1020 ++++++++++++++++++++++++++++++++++++++++++++
 data/xslt/help_indexes.xsl |  819 +++++++++++++++++++++++++++++++++++
 2 files changed, 1839 insertions(+), 0 deletions(-)
---
diff --git a/data/xslt/dev_indexes.xsl b/data/xslt/dev_indexes.xsl
new file mode 100644
index 0000000..b4d706f
--- /dev/null
+++ b/data/xslt/dev_indexes.xsl
@@ -0,0 +1,1020 @@
+<?xml version='1.0' encoding='UTF-8'?><!-- -*- indent-tabs-mode: nil -*- -->
+<!--
+Copyright (c) 2006 Goran Rakic <grakic devbase net>.
+
+This file is part of libgo.
+
+libgo is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+libgo is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with libgo; if not, write to the Free Software Foundation, Inc.,
+59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:exsl="http://exslt.org/common";
+                xmlns:html="http://www.w3.org/1999/xhtml";
+                extension-element-prefixes="exsl"
+                version="1.0">
+
+
+<xsl:import href="heading.xsl"/>
+<xsl:import href="gettext.xsl"/>
+
+<!-- This gets set on the command line ... -->
+<xsl:param name="libgo.lang" select="''"/>
+<xsl:param name="libgo.debug" select="false()"/>
+
+<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
+<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
+
+<xsl:output method="html" encoding="UTF-8" indent="yes"
+omit-xml-declaration="yes"
+doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>
+
+<xsl:namespace-alias stylesheet-prefix="html" result-prefix="#default"/>
+
+<xsl:template name="footer">
+<div id="footer">
+<p>
+Copyright © 2007-2011 <a href="http://www.gnome.org/";>The GNOME Project</a>.
+<br />
+GNOME and the foot logo are trademarks of the GNOME Foundation.
+<br />
+Hosted documents have their own copyright notices.
+<br />
+<a href="http://validator.w3.org/check/referer";>Optimised</a> for <a
+href="http://www.w3.org/";>standards</a>.
+Hosted by <a href="http://www.redhat.com/";>Red Hat</a>.
+</p>
+</div>
+</xsl:template>
+
+<xsl:template name="category-title">
+<xsl:param name="lang"/>
+<xsl:param name="tocid"/>
+
+<xsl:variable name="rtocid">
+<xsl:choose>
+<xsl:when test="document('../externals/toc.xml')//toc[ id = $tocid]">
+  <xsl:value-of select="$tocid"/>
+</xsl:when>
+<!-- Rarian 0.8 changed all toc id; as library still needs to handle
+     older documents, here is a quick mapping -->
+<xsl:when test="$tocid = 'index'">Core</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsAccessibility'">Accessibility</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsAccessories'">Utility</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsEducation'">Education</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsGames'">Game</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsGraphics'">Graphics</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsInternet'">Network</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsOffice'">Office</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsOther'">Other</xsl:when>
+<xsl:when test="$tocid = 'DesktopApplets'">Other</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsScientific'">Science</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsMultimedia'">AudioVideo</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsSystem'">System</xsl:when>
+</xsl:choose>
+</xsl:variable>
+
+<xsl:choose>
+<xsl:when test="document('../externals/toc.xml')//toc[ id = $rtocid]/title">
+<xsl:variable name="cat-icon"
+	select="document('../externals/toc.xml')//toc[ id = $rtocid]/@icon"/>
+<h2>
+  <xsl:attribute name="class">category<xsl:if test="$cat-icon != ''"
+	> cat-<xsl:value-of select="$cat-icon"/></xsl:if></xsl:attribute>
+  <xsl:if test="$cat-icon != ''">
+    <xsl:attribute name="id"><xsl:value-of select="$cat-icon"/></xsl:attribute>
+  </xsl:if>
+<xsl:choose>
+  <xsl:when test="document('../externals/toc.xml')//toc[ id = $rtocid]/title[ xml:lang = $lang]">
+    <xsl:value-of select="document('../externals/toc.xml')//toc[ id = $rtocid]/title[ xml:lang = $lang]"/>
+  </xsl:when>
+  <xsl:otherwise>
+    <xsl:value-of select="document('../externals/toc.xml')//toc[ id = $rtocid]/title"/>
+  </xsl:otherwise>
+</xsl:choose>
+</h2>
+</xsl:when>
+<xsl:otherwise>
+<h2 class="category cat-{$tocid}" id="{$tocid}">
+  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+    select="$lang"/><xsl:with-param name="msgid"
+    select="$tocid"/></xsl:call-template>
+</h2>
+</xsl:otherwise>
+</xsl:choose>
+
+</xsl:template>
+
+
+<xsl:template name="language-label">
+<xsl:param name="lang"/>
+<xsl:choose>
+<xsl:when test="document('../languages.xml')//lang[ code = $lang]">
+<xsl:value-of select="document('../languages.xml')//lang[ code =
+$lang]"/>
+</xsl:when>
+<xsl:when test="document('../languages.xml')//lang[substring(@code, 1, 2) = $lang]">
+<xsl:value-of
+select="document('../languages.xml')//lang[substring(@code, 1, 2) =
+$lang]"/>
+</xsl:when>
+<xsl:otherwise>
+<xsl:value-of select="$lang"/>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="subsection" mode="title">
+<xsl:param name="lang"/>
+<xsl:choose>
+<xsl:when test="title[ xml:lang = $lang]">
+<xsl:value-of select="title[ xml:lang = $lang]"/>
+</xsl:when>
+<xsl:otherwise><xsl:value-of select="title"/></xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="subsection" mode="intro">
+<xsl:param name="lang"/>
+<xsl:if test="intro">
+<p>
+<xsl:choose>
+<xsl:when test="intro[ xml:lang = $lang]">
+  <xsl:value-of select="intro[ xml:lang = $lang]"/>
+</xsl:when>
+<xsl:otherwise><xsl:value-of select="intro"/></xsl:otherwise>
+</xsl:choose>
+</p>
+</xsl:if>
+</xsl:template>
+
+
+
+<xsl:template name="overlay-section-title">
+<xsl:param name="lang"/>
+<xsl:choose>
+<xsl:when test="document('../overlay.xml')//subsection[ code = $lang]">
+<xsl:value-of select="document('../languages.xml')//lang[ code =
+$lang]"/>
+</xsl:when>
+<xsl:when test="document('../languages.xml')//lang[substring(@code, 1, 2) = $lang]">
+<xsl:value-of
+select="document('../languages.xml')//lang[substring(@code, 1, 2) =
+$lang]"/>
+</xsl:when>
+<xsl:otherwise>
+<xsl:value-of select="$lang"/>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+
+
+<xsl:template match="document" mode="channelindex">
+<xsl:param name="ignoredeprecated" select="true()"/>
+<xsl:param name="lang"/>
+<xsl:if test="not($ignoredeprecated) or not(keywords/keyword[. = 'upcoming-deprecation'])">
+<dt>
+<xsl:if test="keywords/keyword[. = 'upcoming-deprecation']">
+<xsl:attribute name="class">upcoming-deprecation</xsl:attribute>
+</xsl:if>
+<a lang="{ lang}">
+<xsl:attribute name="href">
+  <xsl:if test="@path"><xsl:value-of select="@path"/></xsl:if>
+  <xsl:if test="@href"><xsl:value-of select="@href"/></xsl:if>
+</xsl:attribute>
+<xsl:if test="@href">
+  <xsl:attribute name="class">external</xsl:attribute>
+</xsl:if>
+<xsl:choose>
+<xsl:when test="normalize-space(title)">
+  <xsl:value-of select="title" />
+</xsl:when>
+<xsl:otherwise>
+  <xsl:value-of select="@module" />
+</xsl:otherwise>
+</xsl:choose>
+</a>
+<xsl:if test="@path and versions/version">
+<xsl:text> </xsl:text>
+<span class="module-more">[<a href="{ modulename}/"><xsl:call-template
+    name="gettext"><xsl:with-param name="lang"
+    select="@lang"/><xsl:with-param name="msgid"
+    select="'more-versions-languages-or-options'"/></xsl:call-template></a>]</span>
+</xsl:if>
+<xsl:if test="@href">
+<xsl:text> </xsl:text>
+<span class="module-more">[<xsl:call-template
+    name="gettext"><xsl:with-param name="lang"
+    select="$lang"/><xsl:with-param name="msgid"
+    select="'external-resource'"/></xsl:call-template>]</span>
+</xsl:if>
+</dt>
+
+<dd>
+<xsl:if test="abstract">
+<p><xsl:value-of select="abstract" /></p>
+</xsl:if>
+<xsl:if test="keywords/keyword[. = 'upcoming-deprecation']">
+<p class="upcoming-deprecation">
+ <xsl:call-template name="gettext"><xsl:with-param name="lang"
+      select="$lang"/><xsl:with-param name="msgid"
+      select="'upcoming-deprecation'"/></xsl:call-template>
+</p>
+</xsl:if>
+<xsl:if test="count(versions/version) > 1 and versions/version[ keyword = 'unstable']">
+<p class="other-versions">
+ <xsl:call-template name="gettext"><xsl:with-param name="lang"
+      select="$lang"/><xsl:with-param name="msgid"
+      select="'see-also'"/></xsl:call-template><xsl:text> </xsl:text>
+  <a href="{ modulename}/unstable/" lang="{ lang}"><xsl:call-template
+    name="gettext"><xsl:with-param name="lang"
+      select="$lang"/><xsl:with-param name="msgid"
+      select="'development-version-doc'"/></xsl:call-template></a>
+</p>
+</xsl:if>
+<xsl:if test="substring($lang, 1, 2) != substring(@lang, 1, 2) and @path">
+<p class="no-translation">
+  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+    select="$lang"/><xsl:with-param name="msgid"
+    select="'missing-translation'"/></xsl:call-template>
+  <xsl:if test="other-languages/lang and @modulename">
+    (<a href="/{ channel}/{ modulename}/">
+      <xsl:call-template name="gettext"><xsl:with-param name="lang"
+	select="$lang"/><xsl:with-param name="msgid"
+	select="'doc-translations'"/></xsl:call-template>
+    </a>)
+  </xsl:if>
+</p>
+</xsl:if>
+</dd>
+</xsl:if>
+</xsl:template>
+
+<xsl:template match="document[ path != '']" mode="modindex">
+<xsl:param name="lang"/>
+<xsl:if test="concat('/', @channel, '/', @modulename, '/') != @path">
+<!-- don't write document index if the document is not versioned -->
+<xsl:variable name="modulename" select="@modulename"/>
+
+<xsl:if test="$libgo.debug">
+<xsl:message>Writing <xsl:value-of
+	select="concat(@modulename, '/index.html.', $lang)" /></xsl:message>
+</xsl:if>
+
+<exsl:document href="{ modulename}/index.html.{$lang}"
+method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="{$lang}">
+<head>
+  <title><xsl:value-of select="title" /> - GNOME Library</title>
+  <xsl:call-template name="libgo.head">
+    <xsl:with-param name="channel" select="@channel"/>
+  </xsl:call-template>
+  <script type="text/javascript" src="/js/strings.js" />
+</head>
+<body class="with-star">
+  <xsl:call-template name="libgo.header">
+    <xsl:with-param name="channel" select="@channel"/>
+    <xsl:with-param name="lang" select="$lang"/>
+  </xsl:call-template>
+  <div id="container" class="two_columns">
+    <div class="container_12">
+    <div class="page_title">
+      <h1 class="article title"><a href="{ path}"
+          lang="{ lang}"><xsl:value-of select="title"/></a></h1>
+    </div>
+    <div class="content">
+	    <xsl:if test="abstract">
+	    <p>
+	     <xsl:value-of select="abstract" />
+	    </p>
+	    </xsl:if>
+
+	    <xsl:if test="keywords/keyword[. = 'upcoming-deprecation']">
+	      <p class="upcoming-deprecation">
+	        <xsl:call-template name="gettext"><xsl:with-param name="lang"
+		  select="$lang"/><xsl:with-param name="msgid"
+		  select="'upcoming-deprecation'"/></xsl:call-template>
+	      </p>
+	    </xsl:if>
+	    <xsl:if test="versions">
+	      <h4 class="versions">
+              <xsl:call-template name="gettext"><xsl:with-param name="lang"
+              select="$lang"/><xsl:with-param name="msgid"
+              select="'availableversions'"/></xsl:call-template>
+	      </h4>
+	      <ul class="versions">
+	      <xsl:for-each select="versions/version">
+	        <li>
+		 <xsl:choose>
+		   <xsl:when test="@keyword = 'stable'"><strong>
+		    <a href="{ href}/" lang="{ lang}"><xsl:apply-templates
+		 	select="." mode="version-name"><xsl:with-param name="lang" select="$lang"/>
+			</xsl:apply-templates></a>
+		    </strong>
+		   </xsl:when>
+		   <xsl:otherwise>
+		    <a href="{ href}/" lang="{ lang}"><xsl:apply-templates
+		 	select="." mode="version-name"><xsl:with-param name="lang" select="$lang"/>
+			</xsl:apply-templates></a>
+		   </xsl:otherwise>
+		 </xsl:choose>
+		 <xsl:if test="@keyword = 'unstable'">
+		    (<xsl:call-template name="gettext"><xsl:with-param name="lang"
+		      select="$lang"/><xsl:with-param name="msgid"
+		      select="'development-version'"/></xsl:call-template>)
+		 </xsl:if>
+		</li>
+	      </xsl:for-each>
+	      </ul>
+
+	      <xsl:if test="@single_page_alternative = 'true'">
+	      <h4><xsl:call-template name="gettext"><xsl:with-param name="lang"
+		      select="$lang"/><xsl:with-param name="msgid"
+		      select="'allinonepage'"/></xsl:call-template></h4>
+	      <ul class="versions">
+	      <xsl:for-each select="versions/version">
+	        <li>
+		 <xsl:choose>
+		   <xsl:when test="@keyword = 'stable'"><strong>
+		     <a href="{ href}/{$modulename}.html" lang="{ lang}"><xsl:apply-templates
+		 	select="." mode="version-name"><xsl:with-param name="lang" select="$lang"/>
+			</xsl:apply-templates></a>
+		    </strong>
+		   </xsl:when>
+		   <xsl:otherwise>
+		     <a href="{ href}/{$modulename}.html" lang="{ lang}"><xsl:apply-templates
+		 	select="." mode="version-name"><xsl:with-param name="lang" select="$lang"/>
+			</xsl:apply-templates></a>
+		   </xsl:otherwise>
+		 </xsl:choose>
+		 <xsl:if test="@keyword = 'unstable'">
+		    (<xsl:call-template name="gettext"><xsl:with-param name="lang"
+		      select="$lang"/><xsl:with-param name="msgid"
+		      select="'development-version'"/></xsl:call-template>)
+		 </xsl:if>
+		</li>
+	      </xsl:for-each>
+	      </ul>
+	      </xsl:if>
+	    </xsl:if>
+
+	  </div>
+	  <div class="sidebar">
+	    <xsl:if test="tarballs">
+            <div class="downloads subtle_box">
+            <h4>
+              <xsl:call-template name="gettext"><xsl:with-param name="lang"
+              select="$lang"/><xsl:with-param name="msgid"
+              select="'downloads'"/></xsl:call-template>
+            </h4>
+	    <ul>
+	      <xsl:for-each select="tarballs/tarball">
+                <li><a href="{text()}"><xsl:value-of select="text()"/></a></li>
+              </xsl:for-each>
+	    </ul>
+	    <xsl:if test="keywords/keyword[. = 'gtk-doc']">
+	      <p class="devhelp-note">
+                <xsl:call-template name="gettext"><xsl:with-param name="lang"
+		  select="$lang"/><xsl:with-param name="msgid"
+		  select="'devhelp-note'"/></xsl:call-template>
+	      </p>
+	    </xsl:if>
+            </div>
+	    </xsl:if>
+
+            <xsl:if test="other-languages/lang">
+            <div class="other-languages subtle_box">
+              <script type="text/javascript" src="/js/language.js" />
+              <script type="text/javascript">display_missing_translation_text()</script>
+            </div>
+            </xsl:if>
+
+	    </div>
+	  </div>
+	  <div id="footer_art" class="default"> </div>
+          </div>
+	  <xsl:call-template name="libgo.footer"/>
+	</body>
+      </html>
+    </exsl:document>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="version" mode="version-name">
+    <xsl:param name="lang"/>
+    <xsl:choose>
+      <xsl:when test=". = 'nightly'">
+        <xsl:call-template name="gettext"><xsl:with-param name="lang"
+          select="$lang"/><xsl:with-param name="msgid"
+	  select="'nightly-version'"/></xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="."/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="section" mode="channelindex">
+    <xsl:param name="lang"/>
+    <xsl:param name="hidetitle" value="false()"/>
+
+    <xsl:if test="not($hidetitle)">
+    <xsl:call-template name="category-title">
+      <xsl:with-param name="lang" select="$lang"/>
+      <xsl:with-param name="tocid" select="@toc_id"/>
+    </xsl:call-template>
+    </xsl:if>
+
+    <xsl:for-each select="section">
+      <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+      <xsl:variable name="title" select="@title"/>
+      <h3 class="subsection" id="{ title}">
+        <xsl:apply-templates select="document('../overlay.xml')//subsection[ id = $title]"
+                             mode="title">
+          <xsl:with-param name="lang" select="$lang" />
+        </xsl:apply-templates>
+      </h3>
+      <xsl:apply-templates select="document('../overlay.xml')//subsection[ id = $title]"
+                           mode="intro">
+        <xsl:with-param name="lang" select="$lang" />
+      </xsl:apply-templates>
+      <dl class="doc-index">
+      <xsl:for-each select="document">
+        <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+        <xsl:sort select="translate(title, $ucletters, $lcletters)"/>
+        <xsl:apply-templates select="." mode="channelindex">
+          <xsl:with-param name="lang" select="$lang"/>
+          <xsl:with-param name="ignoredeprecated" select="true()"/>
+	</xsl:apply-templates>
+      </xsl:for-each>
+      </dl>
+    </xsl:for-each>
+
+    <xsl:if test="section and document">
+      <h3 class="subsection">
+        <xsl:call-template name="gettext">
+          <xsl:with-param name="lang" select="$lang"/>
+          <xsl:with-param name="msgid" select="'others'"/>
+        </xsl:call-template>
+      </h3>
+    </xsl:if>
+
+    <dl class="doc-index">
+      <xsl:for-each select="document">
+        <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+        <xsl:sort select="translate(title, $ucletters, $lcletters)"/>
+        <xsl:apply-templates select="." mode="channelindex">
+          <xsl:with-param name="lang" select="$lang"/>
+	</xsl:apply-templates>
+      </xsl:for-each>
+    </dl>
+  </xsl:template>
+
+  <xsl:template match="index" mode="channelindex">
+    <div class="subindex" id="subindex-{ id}">
+      <h2><a href="{ id}"><xsl:value-of select="title"/></a></h2>
+      <xsl:if test="abstract">
+        <p><xsl:value-of select="abstract"/></p>
+      </xsl:if>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="index" mode="toc">
+  <xsl:param name="lang" value="@lang"/>
+
+  <ul class="indextoc">
+   <xsl:for-each select="section">
+     <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+     <li>
+      <a href="#{ toc_id}"><xsl:call-template name="gettext"><xsl:with-param name="lang"
+        select="$lang"/><xsl:with-param name="msgid"
+        select="@toc_id"/></xsl:call-template></a>
+     <xsl:if test="section">
+      <ul>
+       <xsl:for-each select="section">
+        <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+        <li>
+        <xsl:variable name="title" select="@title"/>
+        <a href="#{ title}"><xsl:apply-templates select="document('../overlay.xml')//subsection[ id = $title]"
+        mode="title">
+        <xsl:with-param name="lang" select="$lang" />
+        </xsl:apply-templates></a>
+        </li>
+        </xsl:for-each>
+       </ul>
+      </xsl:if>
+      </li>
+     </xsl:for-each>
+     <xsl:if test="//keywords/keyword[. = 'upcoming-deprecation']">
+     <li><a href="deprecated">Deprecated APIs</a></li>
+     </xsl:if>
+    </ul>
+  </xsl:template>
+
+  <xsl:template match="index">
+    <xsl:param name="channel" select="@channel"/>
+    <xsl:param name="lang" select="@lang"/>
+    <xsl:param name="filename">
+      <xsl:choose>
+        <xsl:when test="@id"><xsl:value-of select="@id"/></xsl:when>
+        <xsl:otherwise>more</xsl:otherwise>
+      </xsl:choose>
+    </xsl:param>
+
+    <xsl:if test="$libgo.debug">
+      <xsl:message>Writing channel: <xsl:value-of
+                select="concat($filename, '.html.', @lang)" /></xsl:message>
+    </xsl:if>
+
+    <xsl:apply-templates select="index" />
+
+    <exsl:document href="{$filename} html { lang}"
+        method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+      <html lang="{ lang}">
+	<head>
+	  <title>
+            <xsl:choose>
+	      <xsl:when test="@channel = 'users'">
+	        GNOME Library -
+                <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                select="@lang"/><xsl:with-param name="msgid"
+                select="'userslabel'"/></xsl:call-template>
+	      </xsl:when>
+	      <xsl:when test="@channel = 'devel'">
+	        GNOME Library -
+                <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                select="@lang"/><xsl:with-param name="msgid"
+                select="'developerslabel'"/></xsl:call-template>
+	      </xsl:when>
+	      <xsl:when test="@channel = 'admin'">
+	        GNOME Library -
+                <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                select="@lang"/><xsl:with-param name="msgid"
+                select="'sysadminslabel'"/></xsl:call-template>
+	      </xsl:when>
+	      <xsl:otherwise>
+	        GNOME Library
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </title>
+	  <xsl:call-template name="libgo.head">
+	    <xsl:with-param name="channel" select="@channel"/>
+	  </xsl:call-template>
+          <script type="text/javascript" src="/js/strings.js" />
+	  <xsl:if test="$filename = 'references'">
+            <xsl:if test="$libgo.dbm_support">
+              <link rel="stylesheet" type="text/css" href="/skin/jquery.autocomplete.css"/>
+              <script type="text/javascript" src="/js/jquery.js" />
+              <script type="text/javascript" src="/js/jquery.autocomplete.js" />
+            </xsl:if>
+          </xsl:if>
+	</head>
+	<body class="with-star">
+	  <xsl:call-template name="libgo.header">
+            <xsl:with-param name="channel" select="@channel"/>
+            <xsl:with-param name="lang" select="@lang"/>
+          </xsl:call-template>
+	  <div id="container" class="two_columns">
+	    <div class="container_12">
+	    <xsl:if test="title">
+	      <div class="page_title"><h1 class="subindex" id="subindex-{ id}"><xsl:value-of select="title"/></h1></div>
+	    </xsl:if>
+            <div class="content">
+	    <xsl:apply-templates select="section" mode="channelindex">
+              <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+	      <xsl:sort select="translate(@toc_id, $ucletters, $lcletters)" />
+              <xsl:with-param name="lang" select="@lang"/>
+	      <xsl:with-param name="hidetitle" select="count(section) = 1"/>
+	    </xsl:apply-templates>
+	    <xsl:apply-templates select="index" mode="channelindex">
+              <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+	    </xsl:apply-templates>
+            </div>
+	  </div>
+          <div>
+            <xsl:attribute name="class">
+              sidebar
+              <xsl:if test="not(title)"> notitle</xsl:if>
+            </xsl:attribute>
+            <xsl:if test="@channel = 'users'">
+              <div id="usr" class="subtle_box">
+                <h2><span>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'userslabel'"/></xsl:call-template>
+                </span></h2>
+                <p>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'userstext'"/></xsl:call-template>
+                </p>
+              </div>
+            </xsl:if>
+	    <xsl:if test="$filename = 'references'">
+	      <div class="subtle_box">
+              <xsl:apply-templates select="." mode="toc">
+                <xsl:with-param name="lang" select="@lang"/>
+	      </xsl:apply-templates>
+	      </div>
+	    </xsl:if>
+            <xsl:if test="@channel = 'devel'">
+              <div id="dev" class="subtle_box">
+                <h2><span>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'developerslabel'"/></xsl:call-template>
+                </span></h2>
+                <p>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'developerstext'"/></xsl:call-template>
+                </p>
+              </div>
+            </xsl:if>
+
+            <xsl:if test="@channel = 'admin'">
+              <div id="adm" class="subtle_box">
+                <h2><span>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'sysadminslabel'"/></xsl:call-template>
+                </span></h2>
+                <p>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'sysadminstext'"/></xsl:call-template>
+                </p>
+              </div>
+            </xsl:if>
+
+          </div>
+	  <div id="footer_art" class="default"> </div>
+	  </div>
+	  <xsl:call-template name="libgo.footer"/>
+	</body>
+      </html>
+    </exsl:document>
+  </xsl:template>
+
+  <xsl:template match="home">
+    <xsl:if test="$libgo.debug">
+      <xsl:message>Writing home: <xsl:value-of select="concat('index.html.', @lang)" /></xsl:message>
+    </xsl:if>
+    <exsl:document href="index html { lang}"
+        method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+      <html lang="{ lang}">
+	<head>
+	  <title>GNOME Library</title>
+	  <xsl:call-template name="libgo.head"/>
+	  <xsl:comment>[if IE]&gt;
+&lt;style&gt;
+div.body-sidebar { width: 100%; }
+&lt;/style&gt;
+&lt;![endif]</xsl:comment><xsl:text>
+</xsl:text>
+          <script type="text/javascript" src="/js/strings.js" />
+	  <link rel="stylesheet" type="text/css" media="all" href="/skin/960_24_col.css" />
+	  <script type="text/javascript" src="/js/jquery.js"></script>
+	  <script type="text/javascript" src="/js/jquery.jcarousel.min.js"></script>
+	</head>
+	<body class="with-star">
+	  <xsl:call-template name="libgo.header">
+            <xsl:with-param name="channel" select="'home'"/>
+            <xsl:with-param name="lang" select="@lang"/>
+          </xsl:call-template>
+<div id="container" class="body"><div class="content"><script type="text/javascript">
+  jQuery(document).ready(function() {
+    jQuery('#tutorials').jcarousel({
+     wrap: 'circular'
+    });
+    jQuery('#applications').jcarousel({
+     wrap: 'circular'
+    });
+});  </script><h1>GNOME Developer Center</h1><h3>10-minute tutorials</h3><div id="wrap">
+        <ul id="tutorials" class="jcarousel-skin-tango">
+          <li><a href="/gnome-devel-demos/nightly/image-viewer.c" title="Empathy"><img src="images/tutorial/image-viewer.png"></img></a></li>
+          <li><a href="/gnome-devel-demos/nightly/photo-wall.c" title="Cheese"><img src="images/tutorial/clutter-image-viewer.png"></img></a></li>
+          <li><a href="/gnome-devel-demos/nightly/guitar-tuner.c" title="Guitar Tuner"><img src="images/tutorial/guitar-tuner.png"></img></a></li>
+          <li><a href="/gnome-devel-demos/nightly/message-board.c" title="Guitar Tuner"><img src="images/tutorial/message-board.png"></img></a></li>
+        </ul>
+      </div><div class="container_16">
+<div class="grid_12">
+
+
+<h2>Getting Started</h2>
+<p>Welcome to GNOME. Getting started is easy - install our dev tools and take a look at a tutorial.</p>
+	  
+<h3>Get ready for GNOME development</h3>
+<a href="" class="action_button">Download GNOME dev tools.</a>
+</div>
+<div class="grid_4 subtle_box">
+
+
+	  <h2>API Documentation</h2>
+	  <p><form role="search" method="get" id="searchform" action="/symbols/"><div>
+<label class="hidden" for="q">Search:
+                        </label><input type="text" value="" name="q" id="s" placeholder="Search"></input>
+</div></form>
+<script type="text/javascript">
+$('#s').autocomplete('http://nezt.local/symbols/lookup/',
+        { minChars:3, matchSubset:1, matchContains:1, cacheLength:10,
+          selectOnly:1, rowsLimit:25 });
+              </script>
+</p>
+	  <ul>
+	  	<li><a href="gtk/stable/">GTK+</a> C, C++, Python, Javascript, Vala</li>
+	  	<li><a href="clutter/stable/">Clutter</a> C, C++, Python, Javascript, Vala</li>
+	  	<li><a href="http://www.gstreamer.net/documentation/";>GStreamer</a> C, C++, Python, Javascript, Vala</li>
+	  	<li><a href="more">More...</a></li>
+	  </ul>
+
+
+
+</div><!-- grid_4 -->
+
+<div class="clear"></div>
+
+
+<h2>Platform Overview</h2>
+<!-- The platform overview goes here -->
+<div class="container_24 platform-overview">
+<div class="grid_9">
+<div class="user-interface">
+<p>User Interface</p>
+<a href="">GTK+</a>
+<a href="">Cairo</a>
+<a href="">Clutter</a>
+<a href="">ATK</a>
+<a href="">Pango</a>
+<a href="">Webkit</a>
+</div>
+
+<div class="core">
+<p>Core</p>
+<a href="">GIO</a>
+<a href="">Glib</a>
+<a href="">GObject</a>
+</div>
+
+</div>
+
+<div class="multimedia grid_3">
+<p>Multimedia</p>
+<a href="">GStreamer</a>
+<a href="">Canberra</a>
+<a href="">Pulseaudio</a>
+</div>
+
+<div class="communication grid_3">
+<p>Communication</p>
+<a href="">Telepathy</a>
+<a href="">Avahi</a>
+<a href="">GUPnP</a>
+</div>
+
+<div class="data-storage grid_3">
+<p>Data Storage</p>
+<a href="">EDS</a>
+<a href="">GDA</a>
+<a href="">Tracker</a>
+</div>
+
+<div class="utilities grid_3">
+<p>Utilities</p>
+<a href="">Champlain</a>
+<a href="">Enchant</a>
+<a href="">Poppler</a>
+<a href="">GeoClue</a>
+</div>
+
+</div> <!-- container_24 -->
+<div class="clear"></div>
+
+<div class="container_24 platform-overview">
+
+<div class="system-integration grid_9">
+<p>System Integration</p>
+<a href="">upower</a>
+<a href="">udisks</a>
+<a href="">policykit</a>
+</div>
+
+<div class="desktop-integration grid_12">
+<p>Desktop Integration</p>
+<a href="">packagekit</a>
+<a href="">libnotify</a>
+<a href="">seahorse</a>
+</div>
+
+</div><!--container_24 -->
+<!-- end of platform overview -->
+
+
+</div><div class="row"></div></div>
+	
+
+	  <div id="footer_art" class="default"> </div>
+          </div>
+	  <xsl:call-template name="libgo.footer"/>
+	</body>
+      </html>
+    </exsl:document>
+  </xsl:template>
+
+  <!-- /nightly, listing all nightly generated documents (bug 556426) -->
+  <xsl:template match="document" mode="nightly">
+  </xsl:template>
+
+  <xsl:template match="indexes" mode="nightly">
+    <exsl:document href="nightly.html"
+        method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+      <html>
+	<head>
+	  <title>Nightly Documents - GNOME Library</title>
+	  <xsl:call-template name="libgo.head"/>
+          <script type="text/javascript" src="/js/strings.js" />
+	</head>
+	<body class="with-star">
+	  <xsl:call-template name="libgo.header">
+          </xsl:call-template>
+	  <div id="container" class="two_columns">
+	    <div class="container_12">
+	  <div class="page_title"><h1 class="title">Nightly Generated Documents</h1></div>
+	  <ul>
+	  <xsl:for-each select="index[ lang = 'en']//document">
+	  <xsl:if test="versions/version[ href='nightly'] = 'nightly'">
+	  <li><a href="{ path}  /nightly/"><xsl:value-of select="title"/></a></li>
+	  </xsl:if>
+	  </xsl:for-each>
+	  </ul>
+	  </div>
+	  <div id="footer_art" class="default"> </div>
+	  </div>
+	  <xsl:call-template name="libgo.footer"/>
+	</body>
+      </html>
+    </exsl:document>
+
+  </xsl:template>
+
+  <xsl:template match="home" mode="languages">
+    <xsl:message>Writing languages.html.<xsl:value-of select="@lang"/></xsl:message>
+    <exsl:document href="languages html { lang}"
+        method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+      <html lang="{ lang}">
+        <head>
+          <title>
+          <xsl:call-template name="gettext">
+            <xsl:with-param name="lang" select="@lang"/>
+            <xsl:with-param name="msgid" select="'switchlang'"/>
+            </xsl:call-template>
+          â??
+          <xsl:call-template name="gettext">
+            <xsl:with-param name="lang" select="@lang"/>
+            <xsl:with-param name="msgid" select="'sitetitle'"/>
+          </xsl:call-template>
+          </title>
+          <xsl:call-template name="libgo.head"/>
+          <script type="text/javascript" src="/js/strings.js" />
+        </head>
+        <body class="with-star">
+          <xsl:call-template name="libgo.header"/>
+          <div id="container" class="two_columns">
+            <div class="page_title"><h1 class="title">
+              <xsl:call-template name="gettext">
+                <xsl:with-param name="lang" select="@lang"/>
+                <xsl:with-param name="msgid" select="'switchlang'"/>
+              </xsl:call-template>
+            </h1></div>
+            <div class="content">
+
+            <p>
+              <xsl:call-template name="gettext">
+                <xsl:with-param name="lang" select="@lang"/>
+                <xsl:with-param name="msgid" select="'activelang'"/>
+              </xsl:call-template>
+              <xsl:text> </xsl:text>
+                <xsl:call-template name="language-label">
+                  <xsl:with-param name="lang" select="@lang"/>
+                </xsl:call-template>
+            </p>
+
+            <ul class="language-list">
+              <xsl:for-each select="//home">
+                <xsl:sort select="@lang"/>
+                <li><a href="index html { lang}"><xsl:call-template name="language-label">
+                  <xsl:with-param name="lang" select="@lang"/>
+                </xsl:call-template></a>
+                <xsl:text> </xsl:text>
+                <span class="lang-code">(<xsl:value-of select="@lang"/>)</span>
+                </li>
+              </xsl:for-each>
+            </ul>
+            </div>
+            <div class="sidebar">
+              <script type="text/javascript" src="/js/language.js" />
+              <script type="text/javascript">display_remove_cookie_text()</script>
+            </div>
+            <div id="footer_art" class="default"> </div>
+          </div>
+          <xsl:call-template name="libgo.footer"/>
+        </body>
+      </html>
+    </exsl:document>
+  </xsl:template>
+
+  <xsl:template match="indexes" mode="deprecated">
+    <xsl:message>Writing deprecated.html</xsl:message>
+    <exsl:document href="deprecated.html"
+        method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+      <html>
+	<head>
+	  <title>Deprecated API References - GNOME Library</title>
+	  <xsl:call-template name="libgo.head"/>
+          <script type="text/javascript" src="/js/strings.js" />
+	</head>
+	<body class="with-star">
+	  <xsl:call-template name="libgo.header">
+            <xsl:with-param name="channel">devel</xsl:with-param>
+          </xsl:call-template>
+	  <div id="container" class="two_columns">
+	    <div class="container_12">
+	  <div class="page_title"><h1 class="title">Deprecated API References</h1></div>
+	  <ul>
+	  <xsl:for-each select="//document">
+	    <xsl:if test="keywords/keyword[. = 'upcoming-deprecation'] and @path">
+              <li><a href="{ path}  /"><xsl:value-of select="title"/></a></li>
+	    </xsl:if>
+	  </xsl:for-each>
+	  </ul>
+	  </div>
+          <div id="footer_art" class="default"> </div>
+	  </div>
+	  <xsl:call-template name="libgo.footer"/>
+	</body>
+      </html>
+    </exsl:document>
+
+  </xsl:template>
+
+  <!-- JavaScript related translations -->
+  <xsl:template match="home" mode="javascript">
+    <xsl:param name="lang" select="@lang"/>
+    <xsl:param name="language_cookie"
+      select="document('../catalog.xml')/msgcat/msgstr[ msgid =
+        'js-language-cookie' and ($lang = 'en' or @xml:lang = $lang)]"/>
+    <xsl:param name="language_missing"
+      select="document('../catalog.xml')/msgcat/msgstr[ msgid =
+        'js-language-missing' and ($lang = 'en' or @xml:lang = $lang)]"/>
+    <xsl:param name="remove_cookie"
+      select="document('../catalog.xml')/msgcat/msgstr[ msgid =
+        'js-remove-cookie' and ($lang = 'en' or @xml:lang = $lang)]"/>
+    <xsl:if test="$lang = 'en' or ($language_cookie and $language_missing and $remove_cookie)">
+      <exsl:document href="js/strings.js.{$lang}" method="text">
+var language_cookie_text = "<xsl:value-of select="$language_cookie"/>";
+var language_missing_text = "<xsl:value-of select="$language_missing"/>";
+var remove_cookie_text = "<xsl:value-of select="$remove_cookie"/>";
+      </exsl:document>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="indexes">
+    <xsl:apply-templates select="node()"/>
+    <xsl:for-each select="home">
+      <xsl:variable name="lang" select="@lang"/>
+      <xsl:apply-templates select="../index[ lang = $lang]//document" mode="modindex">
+        <xsl:with-param name="lang" select="$lang"/>
+      </xsl:apply-templates>
+    </xsl:for-each>
+    <xsl:apply-templates select="." mode="nightly"/>
+    <xsl:apply-templates select="." mode="deprecated"/>
+    <xsl:apply-templates select="." mode="languages"/>
+    <xsl:apply-templates select="home" mode="javascript"/>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/data/xslt/help_indexes.xsl b/data/xslt/help_indexes.xsl
new file mode 100644
index 0000000..fbfffeb
--- /dev/null
+++ b/data/xslt/help_indexes.xsl
@@ -0,0 +1,819 @@
+<?xml version='1.0' encoding='UTF-8'?><!-- -*- indent-tabs-mode: nil -*- -->
+<!--
+Copyright (c) 2006 Goran Rakic <grakic devbase net>.
+
+This file is part of libgo.
+
+libgo is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+libgo is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with libgo; if not, write to the Free Software Foundation, Inc.,
+59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:exsl="http://exslt.org/common";
+                xmlns:html="http://www.w3.org/1999/xhtml";
+                extension-element-prefixes="exsl"
+                version="1.0">
+
+
+<xsl:import href="heading.xsl"/>
+<xsl:import href="gettext.xsl"/>
+
+<!-- This gets set on the command line ... -->
+<xsl:param name="libgo.lang" select="''"/>
+<xsl:param name="libgo.debug" select="false()"/>
+
+<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
+<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
+
+<xsl:output method="html" encoding="UTF-8" indent="yes"
+omit-xml-declaration="yes"
+doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>
+
+<xsl:namespace-alias stylesheet-prefix="html" result-prefix="#default"/>
+
+<xsl:template name="footer">
+<div id="footer">
+<p>
+Copyright © 2007-2011 <a href="http://www.gnome.org/";>The GNOME Project</a>.
+<br />
+GNOME and the foot logo are trademarks of the GNOME Foundation.
+<br />
+Hosted documents have their own copyright notices.
+<br />
+<a href="http://validator.w3.org/check/referer";>Optimised</a> for <a
+href="http://www.w3.org/";>standards</a>.
+Hosted by <a href="http://www.redhat.com/";>Red Hat</a>.
+</p>
+</div>
+</xsl:template>
+
+<xsl:template name="category-title">
+<xsl:param name="lang"/>
+<xsl:param name="tocid"/>
+
+<xsl:variable name="rtocid">
+<xsl:choose>
+<xsl:when test="document('../externals/toc.xml')//toc[ id = $tocid]">
+  <xsl:value-of select="$tocid"/>
+</xsl:when>
+<!-- Rarian 0.8 changed all toc id; as library still needs to handle
+     older documents, here is a quick mapping -->
+<xsl:when test="$tocid = 'index'">Core</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsAccessibility'">Accessibility</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsAccessories'">Utility</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsEducation'">Education</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsGames'">Game</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsGraphics'">Graphics</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsInternet'">Network</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsOffice'">Office</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsOther'">Other</xsl:when>
+<xsl:when test="$tocid = 'DesktopApplets'">Other</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsScientific'">Science</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsMultimedia'">AudioVideo</xsl:when>
+<xsl:when test="$tocid = 'ApplicationsSystem'">System</xsl:when>
+</xsl:choose>
+</xsl:variable>
+
+<xsl:choose>
+<xsl:when test="document('../externals/toc.xml')//toc[ id = $rtocid]/title">
+<xsl:variable name="cat-icon"
+	select="document('../externals/toc.xml')//toc[ id = $rtocid]/@icon"/>
+<h2>
+  <xsl:attribute name="class">category<xsl:if test="$cat-icon != ''"
+	> cat-<xsl:value-of select="$cat-icon"/></xsl:if></xsl:attribute>
+  <xsl:if test="$cat-icon != ''">
+    <xsl:attribute name="id"><xsl:value-of select="$cat-icon"/></xsl:attribute>
+  </xsl:if>
+<xsl:choose>
+  <xsl:when test="document('../externals/toc.xml')//toc[ id = $rtocid]/title[ xml:lang = $lang]">
+    <xsl:value-of select="document('../externals/toc.xml')//toc[ id = $rtocid]/title[ xml:lang = $lang]"/>
+  </xsl:when>
+  <xsl:otherwise>
+    <xsl:value-of select="document('../externals/toc.xml')//toc[ id = $rtocid]/title"/>
+  </xsl:otherwise>
+</xsl:choose>
+</h2>
+</xsl:when>
+<xsl:otherwise>
+<h2 class="category cat-{$tocid}" id="{$tocid}">
+  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+    select="$lang"/><xsl:with-param name="msgid"
+    select="$tocid"/></xsl:call-template>
+</h2>
+</xsl:otherwise>
+</xsl:choose>
+
+</xsl:template>
+
+
+<xsl:template name="language-label">
+<xsl:param name="lang"/>
+<xsl:choose>
+<xsl:when test="document('../languages.xml')//lang[ code = $lang]">
+<xsl:value-of select="document('../languages.xml')//lang[ code =
+$lang]"/>
+</xsl:when>
+<xsl:when test="document('../languages.xml')//lang[substring(@code, 1, 2) = $lang]">
+<xsl:value-of
+select="document('../languages.xml')//lang[substring(@code, 1, 2) =
+$lang]"/>
+</xsl:when>
+<xsl:otherwise>
+<xsl:value-of select="$lang"/>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="subsection" mode="title">
+<xsl:param name="lang"/>
+<xsl:choose>
+<xsl:when test="title[ xml:lang = $lang]">
+<xsl:value-of select="title[ xml:lang = $lang]"/>
+</xsl:when>
+<xsl:otherwise><xsl:value-of select="title"/></xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="subsection" mode="intro">
+<xsl:param name="lang"/>
+<xsl:if test="intro">
+<p>
+<xsl:choose>
+<xsl:when test="intro[ xml:lang = $lang]">
+  <xsl:value-of select="intro[ xml:lang = $lang]"/>
+</xsl:when>
+<xsl:otherwise><xsl:value-of select="intro"/></xsl:otherwise>
+</xsl:choose>
+</p>
+</xsl:if>
+</xsl:template>
+
+
+
+<xsl:template name="overlay-section-title">
+<xsl:param name="lang"/>
+<xsl:choose>
+<xsl:when test="document('../overlay.xml')//subsection[ code = $lang]">
+<xsl:value-of select="document('../languages.xml')//lang[ code =
+$lang]"/>
+</xsl:when>
+<xsl:when test="document('../languages.xml')//lang[substring(@code, 1, 2) = $lang]">
+<xsl:value-of
+select="document('../languages.xml')//lang[substring(@code, 1, 2) =
+$lang]"/>
+</xsl:when>
+<xsl:otherwise>
+<xsl:value-of select="$lang"/>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+
+
+<xsl:template match="document" mode="channelindex">
+<xsl:param name="ignoredeprecated" select="true()"/>
+<xsl:param name="lang"/>
+<xsl:if test="not($ignoredeprecated) or not(keywords/keyword[. = 'upcoming-deprecation'])">
+<dt>
+<xsl:if test="keywords/keyword[. = 'upcoming-deprecation']">
+<xsl:attribute name="class">upcoming-deprecation</xsl:attribute>
+</xsl:if>
+<a lang="{ lang}">
+<xsl:attribute name="href">
+  <xsl:if test="@path"><xsl:value-of select="@path"/></xsl:if>
+  <xsl:if test="@href"><xsl:value-of select="@href"/></xsl:if>
+</xsl:attribute>
+<xsl:if test="@href">
+  <xsl:attribute name="class">external</xsl:attribute>
+</xsl:if>
+<xsl:choose>
+<xsl:when test="normalize-space(title)">
+  <xsl:value-of select="title" />
+</xsl:when>
+<xsl:otherwise>
+  <xsl:value-of select="@module" />
+</xsl:otherwise>
+</xsl:choose>
+</a>
+<xsl:if test="@path and versions/version">
+<xsl:text> </xsl:text>
+<span class="module-more">[<a href="{ modulename}/"><xsl:call-template
+    name="gettext"><xsl:with-param name="lang"
+    select="@lang"/><xsl:with-param name="msgid"
+    select="'more-versions-languages-or-options'"/></xsl:call-template></a>]</span>
+</xsl:if>
+<xsl:if test="@href">
+<xsl:text> </xsl:text>
+<span class="module-more">[<xsl:call-template
+    name="gettext"><xsl:with-param name="lang"
+    select="$lang"/><xsl:with-param name="msgid"
+    select="'external-resource'"/></xsl:call-template>]</span>
+</xsl:if>
+</dt>
+
+<dd>
+<xsl:if test="abstract">
+<p><xsl:value-of select="abstract" /></p>
+</xsl:if>
+<xsl:if test="keywords/keyword[. = 'upcoming-deprecation']">
+<p class="upcoming-deprecation">
+ <xsl:call-template name="gettext"><xsl:with-param name="lang"
+      select="$lang"/><xsl:with-param name="msgid"
+      select="'upcoming-deprecation'"/></xsl:call-template>
+</p>
+</xsl:if>
+<xsl:if test="count(versions/version) > 1 and versions/version[ keyword = 'unstable']">
+<p class="other-versions">
+ <xsl:call-template name="gettext"><xsl:with-param name="lang"
+      select="$lang"/><xsl:with-param name="msgid"
+      select="'see-also'"/></xsl:call-template><xsl:text> </xsl:text>
+  <a href="{ modulename}/unstable/" lang="{ lang}"><xsl:call-template
+    name="gettext"><xsl:with-param name="lang"
+      select="$lang"/><xsl:with-param name="msgid"
+      select="'development-version-doc'"/></xsl:call-template></a>
+</p>
+</xsl:if>
+<xsl:if test="substring($lang, 1, 2) != substring(@lang, 1, 2) and @path">
+<p class="no-translation">
+  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+    select="$lang"/><xsl:with-param name="msgid"
+    select="'missing-translation'"/></xsl:call-template>
+  <xsl:if test="other-languages/lang and @modulename">
+    (<a href="/{ channel}/{ modulename}/">
+      <xsl:call-template name="gettext"><xsl:with-param name="lang"
+	select="$lang"/><xsl:with-param name="msgid"
+	select="'doc-translations'"/></xsl:call-template>
+    </a>)
+  </xsl:if>
+</p>
+</xsl:if>
+</dd>
+</xsl:if>
+</xsl:template>
+
+<xsl:template match="document[ path != '']" mode="modindex">
+<xsl:param name="lang"/>
+<xsl:if test="concat('/', @channel, '/', @modulename, '/') != @path">
+<!-- don't write document index if the document is not versioned -->
+<xsl:variable name="modulename" select="@modulename"/>
+
+<xsl:if test="$libgo.debug">
+<xsl:message>Writing <xsl:value-of
+	select="concat(@modulename, '/index.html.', $lang)" /></xsl:message>
+</xsl:if>
+
+<exsl:document href="{ modulename}/index.html.{$lang}"
+method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="{$lang}">
+<head>
+  <title><xsl:value-of select="title" /> - GNOME Library</title>
+  <xsl:call-template name="libgo.head">
+    <xsl:with-param name="channel" select="@channel"/>
+  </xsl:call-template>
+  <script type="text/javascript" src="/js/strings.js" />
+</head>
+<body class="with-star">
+  <xsl:call-template name="libgo.header">
+    <xsl:with-param name="channel" select="@channel"/>
+    <xsl:with-param name="lang" select="$lang"/>
+  </xsl:call-template>
+  <div id="container" class="two_columns">
+    <div class="container_12">
+    <div class="page_title">
+      <h1 class="article title"><a href="{ path}"
+          lang="{ lang}"><xsl:value-of select="title"/></a></h1>
+    </div>
+    <div class="content">
+	    <xsl:if test="abstract">
+	    <p>
+	     <xsl:value-of select="abstract" />
+	    </p>
+	    </xsl:if>
+
+	    <xsl:if test="keywords/keyword[. = 'upcoming-deprecation']">
+	      <p class="upcoming-deprecation">
+	        <xsl:call-template name="gettext"><xsl:with-param name="lang"
+		  select="$lang"/><xsl:with-param name="msgid"
+		  select="'upcoming-deprecation'"/></xsl:call-template>
+	      </p>
+	    </xsl:if>
+	    <xsl:if test="versions">
+	      <h4 class="versions">
+              <xsl:call-template name="gettext"><xsl:with-param name="lang"
+              select="$lang"/><xsl:with-param name="msgid"
+              select="'availableversions'"/></xsl:call-template>
+	      </h4>
+	      <ul class="versions">
+	      <xsl:for-each select="versions/version">
+	        <li>
+		 <xsl:choose>
+		   <xsl:when test="@keyword = 'stable'"><strong>
+		    <a href="{ href}/" lang="{ lang}"><xsl:apply-templates
+		 	select="." mode="version-name"><xsl:with-param name="lang" select="$lang"/>
+			</xsl:apply-templates></a>
+		    </strong>
+		   </xsl:when>
+		   <xsl:otherwise>
+		    <a href="{ href}/" lang="{ lang}"><xsl:apply-templates
+		 	select="." mode="version-name"><xsl:with-param name="lang" select="$lang"/>
+			</xsl:apply-templates></a>
+		   </xsl:otherwise>
+		 </xsl:choose>
+		 <xsl:if test="@keyword = 'unstable'">
+		    (<xsl:call-template name="gettext"><xsl:with-param name="lang"
+		      select="$lang"/><xsl:with-param name="msgid"
+		      select="'development-version'"/></xsl:call-template>)
+		 </xsl:if>
+		</li>
+	      </xsl:for-each>
+	      </ul>
+
+	      <xsl:if test="@single_page_alternative = 'true'">
+	      <h4><xsl:call-template name="gettext"><xsl:with-param name="lang"
+		      select="$lang"/><xsl:with-param name="msgid"
+		      select="'allinonepage'"/></xsl:call-template></h4>
+	      <ul class="versions">
+	      <xsl:for-each select="versions/version">
+	        <li>
+		 <xsl:choose>
+		   <xsl:when test="@keyword = 'stable'"><strong>
+		     <a href="{ href}/{$modulename}.html" lang="{ lang}"><xsl:apply-templates
+		 	select="." mode="version-name"><xsl:with-param name="lang" select="$lang"/>
+			</xsl:apply-templates></a>
+		    </strong>
+		   </xsl:when>
+		   <xsl:otherwise>
+		     <a href="{ href}/{$modulename}.html" lang="{ lang}"><xsl:apply-templates
+		 	select="." mode="version-name"><xsl:with-param name="lang" select="$lang"/>
+			</xsl:apply-templates></a>
+		   </xsl:otherwise>
+		 </xsl:choose>
+		 <xsl:if test="@keyword = 'unstable'">
+		    (<xsl:call-template name="gettext"><xsl:with-param name="lang"
+		      select="$lang"/><xsl:with-param name="msgid"
+		      select="'development-version'"/></xsl:call-template>)
+		 </xsl:if>
+		</li>
+	      </xsl:for-each>
+	      </ul>
+	      </xsl:if>
+	    </xsl:if>
+
+	  </div>
+	  <div class="sidebar">
+	    <xsl:if test="tarballs">
+            <div class="downloads subtle_box">
+            <h4>
+              <xsl:call-template name="gettext"><xsl:with-param name="lang"
+              select="$lang"/><xsl:with-param name="msgid"
+              select="'downloads'"/></xsl:call-template>
+            </h4>
+	    <ul>
+	      <xsl:for-each select="tarballs/tarball">
+                <li><a href="{text()}"><xsl:value-of select="text()"/></a></li>
+              </xsl:for-each>
+	    </ul>
+	    <xsl:if test="keywords/keyword[. = 'gtk-doc']">
+	      <p class="devhelp-note">
+                <xsl:call-template name="gettext"><xsl:with-param name="lang"
+		  select="$lang"/><xsl:with-param name="msgid"
+		  select="'devhelp-note'"/></xsl:call-template>
+	      </p>
+	    </xsl:if>
+            </div>
+	    </xsl:if>
+
+            <xsl:if test="other-languages/lang">
+            <div class="other-languages subtle_box">
+              <script type="text/javascript" src="/js/language.js" />
+              <script type="text/javascript">display_missing_translation_text()</script>
+            </div>
+            </xsl:if>
+
+	    </div>
+	  </div>
+	  <div id="footer_art" class="default"> </div>
+          </div>
+	  <xsl:call-template name="libgo.footer"/>
+	</body>
+      </html>
+    </exsl:document>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="version" mode="version-name">
+    <xsl:param name="lang"/>
+    <xsl:choose>
+      <xsl:when test=". = 'nightly'">
+        <xsl:call-template name="gettext"><xsl:with-param name="lang"
+          select="$lang"/><xsl:with-param name="msgid"
+	  select="'nightly-version'"/></xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="."/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="section" mode="channelindex">
+    <xsl:param name="lang"/>
+    <xsl:param name="hidetitle" value="false()"/>
+
+    <xsl:if test="not($hidetitle)">
+    <xsl:call-template name="category-title">
+      <xsl:with-param name="lang" select="$lang"/>
+      <xsl:with-param name="tocid" select="@toc_id"/>
+    </xsl:call-template>
+    </xsl:if>
+
+    <xsl:for-each select="section">
+      <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+      <xsl:variable name="title" select="@title"/>
+      <h3 class="subsection" id="{ title}">
+        <xsl:apply-templates select="document('../overlay.xml')//subsection[ id = $title]"
+                             mode="title">
+          <xsl:with-param name="lang" select="$lang" />
+        </xsl:apply-templates>
+      </h3>
+      <xsl:apply-templates select="document('../overlay.xml')//subsection[ id = $title]"
+                           mode="intro">
+        <xsl:with-param name="lang" select="$lang" />
+      </xsl:apply-templates>
+      <dl class="doc-index">
+      <xsl:for-each select="document">
+        <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+        <xsl:sort select="translate(title, $ucletters, $lcletters)"/>
+        <xsl:apply-templates select="." mode="channelindex">
+          <xsl:with-param name="lang" select="$lang"/>
+          <xsl:with-param name="ignoredeprecated" select="true()"/>
+	</xsl:apply-templates>
+      </xsl:for-each>
+      </dl>
+    </xsl:for-each>
+
+    <xsl:if test="section and document">
+      <h3 class="subsection">
+        <xsl:call-template name="gettext">
+          <xsl:with-param name="lang" select="$lang"/>
+          <xsl:with-param name="msgid" select="'others'"/>
+        </xsl:call-template>
+      </h3>
+    </xsl:if>
+
+    <dl class="doc-index">
+      <xsl:for-each select="document">
+        <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+        <xsl:sort select="translate(title, $ucletters, $lcletters)"/>
+        <xsl:apply-templates select="." mode="channelindex">
+          <xsl:with-param name="lang" select="$lang"/>
+	</xsl:apply-templates>
+      </xsl:for-each>
+    </dl>
+  </xsl:template>
+
+  <xsl:template match="index" mode="channelindex">
+    <div class="subindex" id="subindex-{ id}">
+      <h2><a href="{ id}"><xsl:value-of select="title"/></a></h2>
+      <xsl:if test="abstract">
+        <p><xsl:value-of select="abstract"/></p>
+      </xsl:if>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="index" mode="toc">
+  <xsl:param name="lang" value="@lang"/>
+
+  <ul class="indextoc">
+   <xsl:for-each select="section">
+     <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+     <li>
+      <a href="#{ toc_id}"><xsl:call-template name="gettext"><xsl:with-param name="lang"
+        select="$lang"/><xsl:with-param name="msgid"
+        select="@toc_id"/></xsl:call-template></a>
+     <xsl:if test="section">
+      <ul>
+       <xsl:for-each select="section">
+        <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+        <li>
+        <xsl:variable name="title" select="@title"/>
+        <a href="#{ title}"><xsl:apply-templates select="document('../overlay.xml')//subsection[ id = $title]"
+        mode="title">
+        <xsl:with-param name="lang" select="$lang" />
+        </xsl:apply-templates></a>
+        </li>
+        </xsl:for-each>
+       </ul>
+      </xsl:if>
+      </li>
+     </xsl:for-each>
+     <xsl:if test="//keywords/keyword[. = 'upcoming-deprecation']">
+     <li><a href="deprecated">Deprecated APIs</a></li>
+     </xsl:if>
+    </ul>
+  </xsl:template>
+
+  <xsl:template match="index">
+    <xsl:param name="channel" select="@channel"/>
+    <xsl:param name="lang" select="@lang"/>
+    <xsl:param name="filename">
+      <xsl:choose>
+        <xsl:when test="@id"><xsl:value-of select="@id"/></xsl:when>
+        <xsl:otherwise>index</xsl:otherwise>
+      </xsl:choose>
+    </xsl:param>
+
+    <xsl:if test="$libgo.debug">
+      <xsl:message>Writing channel home: <xsl:value-of
+                select="concat($filename, '.html.', @lang)" /></xsl:message>
+    </xsl:if>
+
+    <xsl:apply-templates select="index" />
+
+    <exsl:document href="{$filename} html { lang}"
+        method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+      <html lang="{ lang}">
+	<head>
+	  <title>
+            <xsl:choose>
+	      <xsl:when test="@channel = 'users'">
+	        GNOME Library -
+                <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                select="@lang"/><xsl:with-param name="msgid"
+                select="'userslabel'"/></xsl:call-template>
+	      </xsl:when>
+	      <xsl:when test="@channel = 'devel'">
+	        GNOME Library -
+                <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                select="@lang"/><xsl:with-param name="msgid"
+                select="'developerslabel'"/></xsl:call-template>
+	      </xsl:when>
+	      <xsl:when test="@channel = 'admin'">
+	        GNOME Library -
+                <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                select="@lang"/><xsl:with-param name="msgid"
+                select="'sysadminslabel'"/></xsl:call-template>
+	      </xsl:when>
+	      <xsl:otherwise>
+	        GNOME Library
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </title>
+	  <xsl:call-template name="libgo.head">
+	    <xsl:with-param name="channel" select="@channel"/>
+	  </xsl:call-template>
+          <script type="text/javascript" src="/js/strings.js" />
+	  <xsl:if test="$filename = 'references'">
+            <xsl:if test="$libgo.dbm_support">
+              <link rel="stylesheet" type="text/css" href="/skin/jquery.autocomplete.css"/>
+              <script type="text/javascript" src="/js/jquery.js" />
+              <script type="text/javascript" src="/js/jquery.autocomplete.js" />
+            </xsl:if>
+          </xsl:if>
+	</head>
+	<body class="with-star">
+	  <xsl:call-template name="libgo.header">
+            <xsl:with-param name="channel" select="@channel"/>
+            <xsl:with-param name="lang" select="@lang"/>
+          </xsl:call-template>
+	  <div id="container" class="two_columns">
+	    <div class="container_12">
+	    <xsl:if test="title">
+	      <div class="page_title"><h1 class="subindex" id="subindex-{ id}"><xsl:value-of select="title"/></h1></div>
+	    </xsl:if>
+            <div class="content">
+	    <xsl:apply-templates select="section" mode="channelindex">
+              <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+	      <xsl:sort select="translate(@toc_id, $ucletters, $lcletters)" />
+              <xsl:with-param name="lang" select="@lang"/>
+	      <xsl:with-param name="hidetitle" select="count(section) = 1"/>
+	    </xsl:apply-templates>
+	    <xsl:apply-templates select="index" mode="channelindex">
+              <xsl:sort select="format-number(@weight, '0.000')" order="descending"/>
+	    </xsl:apply-templates>
+            </div>
+	  </div>
+          <div>
+            <xsl:attribute name="class">
+              sidebar
+              <xsl:if test="not(title)"> notitle</xsl:if>
+            </xsl:attribute>
+            <xsl:if test="@channel = 'users'">
+              <div id="usr" class="subtle_box">
+                <h2><span>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'userslabel'"/></xsl:call-template>
+                </span></h2>
+                <p>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'userstext'"/></xsl:call-template>
+                </p>
+              </div>
+            </xsl:if>
+	    <xsl:if test="$filename = 'references'">
+	      <div class="subtle_box">
+              <xsl:apply-templates select="." mode="toc">
+                <xsl:with-param name="lang" select="@lang"/>
+	      </xsl:apply-templates>
+	      </div>
+	    </xsl:if>
+            <xsl:if test="@channel = 'devel'">
+              <div id="dev" class="subtle_box">
+                <h2><span>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'developerslabel'"/></xsl:call-template>
+                </span></h2>
+                <p>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'developerstext'"/></xsl:call-template>
+                </p>
+              </div>
+            </xsl:if>
+
+            <xsl:if test="@channel = 'admin'">
+              <div id="adm" class="subtle_box">
+                <h2><span>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'sysadminslabel'"/></xsl:call-template>
+                </span></h2>
+                <p>
+                  <xsl:call-template name="gettext"><xsl:with-param name="lang"
+                    select="@lang"/><xsl:with-param name="msgid"
+                    select="'sysadminstext'"/></xsl:call-template>
+                </p>
+              </div>
+            </xsl:if>
+
+          </div>
+	  <div id="footer_art" class="default"> </div>
+	  </div>
+	  <xsl:call-template name="libgo.footer"/>
+	</body>
+      </html>
+    </exsl:document>
+  </xsl:template>
+
+  <xsl:template match="home">
+  </xsl:template>
+
+  <!-- /nightly, listing all nightly generated documents (bug 556426) -->
+  <xsl:template match="document" mode="nightly">
+  </xsl:template>
+
+  <xsl:template match="indexes" mode="nightly">
+    <exsl:document href="nightly.html"
+        method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+      <html>
+	<head>
+	  <title>Nightly Documents - GNOME Library</title>
+	  <xsl:call-template name="libgo.head"/>
+          <script type="text/javascript" src="/js/strings.js" />
+	</head>
+	<body class="with-star">
+	  <xsl:call-template name="libgo.header">
+          </xsl:call-template>
+	  <div id="container" class="two_columns">
+	    <div class="container_12">
+	  <div class="page_title"><h1 class="title">Nightly Generated Documents</h1></div>
+	  <ul>
+	  <xsl:for-each select="index[ lang = 'en']//document">
+	  <xsl:if test="versions/version[ href='nightly'] = 'nightly'">
+	  <li><a href="{ path}  /nightly/"><xsl:value-of select="title"/></a></li>
+	  </xsl:if>
+	  </xsl:for-each>
+	  </ul>
+	  </div>
+	  <div id="footer_art" class="default"> </div>
+	  </div>
+	  <xsl:call-template name="libgo.footer"/>
+	</body>
+      </html>
+    </exsl:document>
+
+  </xsl:template>
+
+  <xsl:template match="home" mode="languages">
+    <xsl:message>Writing languages.html.<xsl:value-of select="@lang"/></xsl:message>
+    <exsl:document href="languages html { lang}"
+        method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+      <html lang="{ lang}">
+        <head>
+          <title>
+          <xsl:call-template name="gettext">
+            <xsl:with-param name="lang" select="@lang"/>
+            <xsl:with-param name="msgid" select="'switchlang'"/>
+            </xsl:call-template>
+          â??
+          <xsl:call-template name="gettext">
+            <xsl:with-param name="lang" select="@lang"/>
+            <xsl:with-param name="msgid" select="'sitetitle'"/>
+          </xsl:call-template>
+          </title>
+          <xsl:call-template name="libgo.head"/>
+          <script type="text/javascript" src="/js/strings.js" />
+        </head>
+        <body class="with-star">
+          <xsl:call-template name="libgo.header"/>
+          <div id="container" class="two_columns">
+            <div class="page_title"><h1 class="title">
+              <xsl:call-template name="gettext">
+                <xsl:with-param name="lang" select="@lang"/>
+                <xsl:with-param name="msgid" select="'switchlang'"/>
+              </xsl:call-template>
+            </h1></div>
+            <div class="content">
+
+            <p>
+              <xsl:call-template name="gettext">
+                <xsl:with-param name="lang" select="@lang"/>
+                <xsl:with-param name="msgid" select="'activelang'"/>
+              </xsl:call-template>
+              <xsl:text> </xsl:text>
+                <xsl:call-template name="language-label">
+                  <xsl:with-param name="lang" select="@lang"/>
+                </xsl:call-template>
+            </p>
+
+            <ul class="language-list">
+              <xsl:for-each select="//home">
+                <xsl:sort select="@lang"/>
+                <li><a href="index html { lang}"><xsl:call-template name="language-label">
+                  <xsl:with-param name="lang" select="@lang"/>
+                </xsl:call-template></a>
+                <xsl:text> </xsl:text>
+                <span class="lang-code">(<xsl:value-of select="@lang"/>)</span>
+                </li>
+              </xsl:for-each>
+            </ul>
+            </div>
+            <div class="sidebar">
+              <script type="text/javascript" src="/js/language.js" />
+              <script type="text/javascript">display_remove_cookie_text()</script>
+            </div>
+            <div id="footer_art" class="default"> </div>
+          </div>
+          <xsl:call-template name="libgo.footer"/>
+        </body>
+      </html>
+    </exsl:document>
+  </xsl:template>
+
+  <!-- JavaScript related translations -->
+  <xsl:template match="home" mode="javascript">
+    <xsl:param name="lang" select="@lang"/>
+    <xsl:param name="language_cookie"
+      select="document('../catalog.xml')/msgcat/msgstr[ msgid =
+        'js-language-cookie' and ($lang = 'en' or @xml:lang = $lang)]"/>
+    <xsl:param name="language_missing"
+      select="document('../catalog.xml')/msgcat/msgstr[ msgid =
+        'js-language-missing' and ($lang = 'en' or @xml:lang = $lang)]"/>
+    <xsl:param name="remove_cookie"
+      select="document('../catalog.xml')/msgcat/msgstr[ msgid =
+        'js-remove-cookie' and ($lang = 'en' or @xml:lang = $lang)]"/>
+    <xsl:if test="$lang = 'en' or ($language_cookie and $language_missing and $remove_cookie)">
+      <exsl:document href="js/strings.js.{$lang}" method="text">
+var language_cookie_text = "<xsl:value-of select="$language_cookie"/>";
+var language_missing_text = "<xsl:value-of select="$language_missing"/>";
+var remove_cookie_text = "<xsl:value-of select="$remove_cookie"/>";
+      </exsl:document>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="indexes">
+    <xsl:apply-templates select="node()"/>
+    <xsl:for-each select="home">
+      <xsl:variable name="lang" select="@lang"/>
+      <xsl:apply-templates select="../index[ lang = $lang]//document" mode="modindex">
+        <xsl:with-param name="lang" select="$lang"/>
+      </xsl:apply-templates>
+    </xsl:for-each>
+    <xsl:apply-templates select="." mode="nightly"/>
+    <xsl:apply-templates select="." mode="languages"/>
+    <xsl:apply-templates select="home" mode="javascript"/>
+  </xsl:template>
+
+</xsl:stylesheet>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]