[monkey-bubble: 332/753] Initial checkin of gnome-db2html3, the new DocBook xml->html converter



commit b800d46179b9d14a5e165314d60e1ebf630372d3
Author: John Fleck <jfleck inkstain net>
Date:   Wed May 30 03:30:11 2001 +0000

    Initial checkin of gnome-db2html3, the new DocBook xml->html converter
    
    
    2001-05-29 John Fleck <jfleck inkstain net>
    
    	Initial checkin of gnome-db2html3, the new DocBook xml->html converter
    
    	* components/help/converters/gnome-db2html3/
    	  gnome-db2html3.c, README, AUTHORS
    	* components/help/converters/gnome-db2html3/gnome-customization,
    	  which contains GNOME customization stylesheet
    	* components/help/converters/gnome-db2html3/docbook/, which
    	  contains Norman Walsh's xsl stylesheet extravaganza

 help-converters/docbook/AUTHORS                    |    1 +
 help-converters/docbook/README                     |    6 +
 help-converters/docbook/docbook/README             |  107 ++
 help-converters/docbook/docbook/VERSION            |    6 +
 help-converters/docbook/docbook/common/ca.xml      |  100 +
 help-converters/docbook/docbook/common/common.xsl  | 1929 +++++++++++++++++++
 help-converters/docbook/docbook/common/cs.xml      |  108 ++
 help-converters/docbook/docbook/common/da.xml      |   98 +
 help-converters/docbook/docbook/common/de.xml      |   99 +
 help-converters/docbook/docbook/common/el.xml      |  104 +
 help-converters/docbook/docbook/common/en.xml      |  102 +
 help-converters/docbook/docbook/common/es.xml      |   98 +
 help-converters/docbook/docbook/common/et.xml      |  104 +
 help-converters/docbook/docbook/common/fi.xml      |   98 +
 help-converters/docbook/docbook/common/fr.xml      |   99 +
 help-converters/docbook/docbook/common/hu.xml      |   94 +
 help-converters/docbook/docbook/common/id.xml      |  104 +
 help-converters/docbook/docbook/common/it.xml      |  103 +
 help-converters/docbook/docbook/common/ja.xml      |  104 +
 help-converters/docbook/docbook/common/ko.xml      |   96 +
 help-converters/docbook/docbook/common/l10n.dtd    |   25 +
 help-converters/docbook/docbook/common/l10n.xml    |   59 +
 help-converters/docbook/docbook/common/l10n.xsl    |  244 +++
 help-converters/docbook/docbook/common/nl.xml      |  105 +
 help-converters/docbook/docbook/common/no.xml      |   97 +
 help-converters/docbook/docbook/common/pl.xml      |   96 +
 help-converters/docbook/docbook/common/pt.xml      |   98 +
 help-converters/docbook/docbook/common/pt_br.xml   |   98 +
 help-converters/docbook/docbook/common/ro.xml      |  104 +
 help-converters/docbook/docbook/common/ru.xml      |  113 ++
 help-converters/docbook/docbook/common/sk.xml      |  104 +
 help-converters/docbook/docbook/common/sl.xml      |  104 +
 help-converters/docbook/docbook/common/sv.xml      |   99 +
 help-converters/docbook/docbook/common/zh_cn.xml   |   95 +
 help-converters/docbook/docbook/common/zh_tw.xml   |   98 +
 help-converters/docbook/docbook/html/admon.xsl     |  149 ++
 help-converters/docbook/docbook/html/autotoc.xsl   |  511 +++++
 help-converters/docbook/docbook/html/biblio.xsl    |  948 ++++++++++
 help-converters/docbook/docbook/html/block.xsl     |  323 ++++
 help-converters/docbook/docbook/html/callout.xsl   |  127 ++
 .../docbook/docbook/html/changebars.xsl            |   73 +
 .../docbook/docbook/html/chunk-common.xsl          |  755 ++++++++
 help-converters/docbook/docbook/html/chunk.xsl     |   67 +
 help-converters/docbook/docbook/html/component.xsl |  277 +++
 help-converters/docbook/docbook/html/division.xsl  |  130 ++
 help-converters/docbook/docbook/html/docbook.xsl   |  190 ++
 help-converters/docbook/docbook/html/ebnf.xsl      |  350 ++++
 help-converters/docbook/docbook/html/footnote.xsl  |  138 ++
 help-converters/docbook/docbook/html/formal.xsl    |   89 +
 help-converters/docbook/docbook/html/glossary.xsl  |  198 ++
 help-converters/docbook/docbook/html/graphics.xsl  |  315 ++++
 help-converters/docbook/docbook/html/html.xsl      |   56 +
 help-converters/docbook/docbook/html/index.xsl     |  478 +++++
 help-converters/docbook/docbook/html/info.xsl      |   53 +
 help-converters/docbook/docbook/html/inline.xsl    |  683 +++++++
 help-converters/docbook/docbook/html/keywords.xsl  |   38 +
 help-converters/docbook/docbook/html/lists.xsl     |  609 ++++++
 help-converters/docbook/docbook/html/math.xsl      |   22 +
 help-converters/docbook/docbook/html/param.xsl     |  947 ++++++++++
 help-converters/docbook/docbook/html/pi.xsl        |  191 ++
 help-converters/docbook/docbook/html/qandaset.xsl  |  202 ++
 help-converters/docbook/docbook/html/refentry.xsl  |  212 +++
 help-converters/docbook/docbook/html/sections.xsl  |  236 +++
 help-converters/docbook/docbook/html/synop.xsl     |  939 +++++++++
 help-converters/docbook/docbook/html/table.xsl     |  625 ++++++
 .../docbook/docbook/html/titlepage.templates.xsl   | 1986 ++++++++++++++++++++
 help-converters/docbook/docbook/html/titlepage.xsl |  598 ++++++
 help-converters/docbook/docbook/html/toc.xsl       |   31 +
 help-converters/docbook/docbook/html/verbatim.xsl  |  280 +++
 help-converters/docbook/docbook/html/xref.xsl      |  633 +++++++
 help-converters/docbook/docbook/html/xtchunk.xsl   |   36 +
 help-converters/docbook/docbook/lib/lib.xsl        |  242 +++
 .../gnome-customization/gnome-customization.xsl    |  155 ++
 help-converters/docbook/gnome-db2html3.c           |  131 ++
 74 files changed, 19122 insertions(+), 0 deletions(-)
---
diff --git a/help-converters/docbook/AUTHORS b/help-converters/docbook/AUTHORS
new file mode 100644
index 0000000..e34bea2
--- /dev/null
+++ b/help-converters/docbook/AUTHORS
@@ -0,0 +1 @@
+Author: John Fleck <jfleck inkstain net>
\ No newline at end of file
diff --git a/help-converters/docbook/README b/help-converters/docbook/README
new file mode 100644
index 0000000..85d68da
--- /dev/null
+++ b/help-converters/docbook/README
@@ -0,0 +1,6 @@
+This is a DocBook xml->html converter to replace gnome-db2html2 for
+GNOME help file rendering in the Nautilus Mozilla component. It uses
+libxslt and libxml2 along with Normal Walsh's stylesheets with a GNOME
+customization layer to convert docs on the fly. It also has a built-in
+sgml->xml converter to remain backwards compatible with existing sgml
+docs.
\ No newline at end of file
diff --git a/help-converters/docbook/docbook/README b/help-converters/docbook/docbook/README
new file mode 100644
index 0000000..a24699a
--- /dev/null
+++ b/help-converters/docbook/docbook/README
@@ -0,0 +1,107 @@
+README for the DocBook Stylesheets
+
+These are XSL stylesheets for the DocBk XML DTD. (They would
+also work for the DocBook DTD, modulo certain namecase problems
+and the fact that there aren't (yet) any XSL implementations
+that work with SGML source documents.)
+
+As of version 1.0, most of the elements in DocBook are handled
+in some way or another, usually reasonably, but there's still
+lots of work to be done.
+
+Manifest
+--------
+
+README    this file
+TODO      planned features not yet implemented (may be incomplete :-)
+BUGS      known problems (may also be incomplete :-)
+VERSION   the current version number (note that this is an XSL stylesheet,
+          included by both fo/docbook.xsl and html/docbook.xsl)
+WhatsNew  changes since the last public release (for a complete list
+          of changes, see the ChangeLog file(s))
+bin/      scripts and other tools that work with the stylesheets
+common/	  contains code common to both stylesheets
+contrib/  stylesheets contributed by others
+dtds/     dtds used by the stylesheets or stylesheet outputs
+fo/       a stylesheet that produces XSL FO result trees
+html/	  a stylesheet that produces HTML/XHTML result trees
+lib/      contains schema-independent functions
+template/ contains templates for building stylesheet customization layers
+test/     test documents
+
+Changes
+-------
+
+See the ChangeLog in each directory for additional information
+about the specific changes.
+
+See WhatsNew for changes since the last release.
+
+Installation
+------------
+
+Unpack the distribution somewhere.
+
+Use
+---
+
+Process your DocBook documents with one of the following stylesheets
+using your favorite XSLT processor:
+
+  xhtml/docbook.xsl produces an XHTML result tree
+  html/docbook.xsl produces an HTML result tree
+  fo/docbook.xsl produces an FO result tree
+
+Copyright
+---------
+
+Copyright (C) 1999, 2000 Norman Walsh
+
+Ironically, assertion of copyright is done to make it _easier_
+to distribute these stylesheets.  (At least one organization,
+Software in the Public Interest, requires an explicit copyright
+statement in order to redistribute the software.)
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the ``Software''), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+Except as contained in this notice, the names of individuals
+credited with contribution to this software shall not be used in
+advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization
+from the individuals in question.
+
+Any stylesheet derived from this Software that is publically
+distributed will be identified with a different name and the
+version strings in any derived Software will be changed so that
+no possibility of confusion between the derived package and this
+Software will exist.
+
+Warranty
+--------
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT.  IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Contacting the Author
+---------------------
+
+These stylesheets are maintained by Norman Walsh, <ndw nwalsh com>.
+
+The best way to reach norm is by email.  You will find additional
+contact information at http://nwalsh.com/~ndw/
diff --git a/help-converters/docbook/docbook/VERSION b/help-converters/docbook/docbook/VERSION
new file mode 100644
index 0000000..a674aac
--- /dev/null
+++ b/help-converters/docbook/docbook/VERSION
@@ -0,0 +1,6 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+<xsl:variable name="VERSION">1.29</xsl:variable>
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/common/ca.xml b/help-converters/docbook/docbook/common/ca.xml
new file mode 100644
index 0000000..fec3eff
--- /dev/null
+++ b/help-converters/docbook/docbook/common/ca.xml
@@ -0,0 +1,100 @@
+<localization language="ca">
+
+<gentext key="abstract"                 text="Resum"/>
+<gentext key="appendix"                 text="Ap&#x00E8;ndix"/>
+<gentext key="article"                  text="Article"/>
+<gentext key="bibliography"             text="Bibliografia"/>
+<gentext key="book"                     text="Llibre"/>
+<gentext key="caution"                  text="ATENCI&#x00D3;"/>
+<gentext key="caution"                  text="Atenci&#x00F3;"/>
+<gentext key="chapter"                  text="Cap&#x00ED;tol"/>
+<gentext key="copyright"                text="Dret de reproducci&#x00F3;"/>
+<gentext key="dedication"               text="Dedicat&#x00F2;ria"/>
+<gentext key="edition"                  text="Edici&#x00F3;"/>
+<gentext key="equation"                 text="Equaci&#x00F3;"/>
+<gentext key="example"                  text="Exemple"/>
+<gentext key="figure"                   text="Figura"/>
+<gentext key="glosssee"                 text="Veure"/>
+<gentext key="glossseealso"             text="Veure tamb&#x00E9;"/>
+<gentext key="glossary"                 text="Glossari"/>
+<gentext key="important"                text="IMPORTANT"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="Important"/>
+<gentext key="index"                    text="&#x00CD;ndex alfab&#x00E8;tic"/>
+<gentext key="legalnotice"              text=""/>
+<gentext key="msgaud"                   text="Audi&#x00E8;ncia"/>
+<gentext key="msglevel"                 text="Nivell"/>
+<gentext key="msgorig"                  text="Origen"/>
+<gentext key="note"                     text="NOTA"/>
+<gentext key="note"                     text="Nota"/>
+<gentext key="part"                     text="Part"/>
+<gentext key="preface"                  text="Prefaci"/>
+<gentext key="procedure"                text="Procediment"/>
+<gentext key="pubdate"                  text="Data de publicaci&#x00F3;"/>
+<gentext key="published"                text="Data de publicaci&#x00F3;"/>
+<gentext key="refentry"                 text=""/>
+<gentext key="reference"                text="Refer&#x00E8;ncia"/>
+<gentext key="refname"                  text="Nom"/>
+<gentext key="revision"                 text="Revisi&#x00F3;"/>
+<gentext key="revhistory"               text="Historial de revisions"/>
+<gentext key="section"                  text="Secci&#x00F3;"/>
+<gentext key="see"                      text="Veure"/>
+<gentext key="seealso"                  text="Veure tambi&#x00E9;"/>
+<gentext key="set"                      text="Conjunt"/>
+<gentext key="setindex"                 text="&#x00CD;ndex del conjunt"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="step"                     text="Pas"/>
+<gentext key="tip"                      text="SUGGERIMENT"/>
+<gentext key="table"                    text="Taula"/>
+<gentext key="tip"                      text="Suggeriment"/>
+<gentext key="warning"                  text="AV&#x00CD;S"/>
+<gentext key="warning"                  text="Av&#x00ED;s"/>
+<gentext key="appendix"                 text="ap&#x00E8;ndex"/>
+<gentext key="chapter"                  text="cap&#x00ED;tol"/>
+<gentext key="section"                  text="secci&#x00F3;"/>
+<gentext key="sidebar"                  text="glossa"/>
+<gentext key="step"                     text="pas"/>
+<gentext key="seealso"                  text="Veure tamb&#x00E9;"/>
+
+<gentext key="TableofContents"          text="Sumari"/>
+<gentext key="in"                       text="a"/>
+<gentext key="by"                       text="per"/>
+<gentext key="Edited"                   text="Editat"/>
+<gentext key="Editedby"                 text="Editat per"/>
+<gentext key="and"                      text="i"/>
+<gentext key="Notes"                    text="Notes"/>
+<gentext key="TableNotes"               text="Notes"/>
+<gentext key="nonexistantelement"       text="element inexistent"/>
+<gentext key="Pgs"                      text="P&#x00E0;gs."/>
+<gentext key="unsupported"              text="no reconeguda"/>
+<gentext key="xrefto"                   text="xref a"/>
+<gentext key="unexpectedelementname"    text="Nom d'element no esperat"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="&#x00CD;ndex de taules"/>
+<gentext key="ListofExamples"           text="&#x00CD;ndex d'exemples"/>
+<gentext key="ListofFigures"            text="&#x00CD;ndex de figures"/>
+<gentext key="ListofEquations"          text="&#x00CD;ndex d'equacions"/>
+<gentext key="ListofUnknown"            text="&#x00CD;ndex de desconegut ?"/>
+
+<gentext key="nav-prev"                 text="Anterior"/>
+<gentext key="nav-prev-sibling"         text="Retrocedir"/>
+<gentext key="nav-next-sibling"         text="Avancar"/>
+<gentext key="nav-next"                 text="Seguent"/>
+<gentext key="nav-up"                   text="Pujar"/>
+<gentext key="nav-home"                 text="Inici"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/common.xsl b/help-converters/docbook/docbook/common/common.xsl
new file mode 100644
index 0000000..c8b905f
--- /dev/null
+++ b/help-converters/docbook/docbook/common/common.xsl
@@ -0,0 +1,1929 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0";
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     This file contains general templates common to both the HTML and FO
+     versions of the DocBook stylesheets.
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>Common Template Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+
+</doc:reference>
+
+<!-- ==================================================================== -->
+<!-- Establish strip/preserve whitespace rules -->
+
+<xsl:preserve-space elements="*"/>
+
+<xsl:strip-space elements="
+abstract affiliation anchor answer appendix area areaset areaspec
+artheader article audiodata audioobject author authorblurb authorgroup
+beginpage bibliodiv biblioentry bibliography biblioset blockquote book
+bookbiblio bookinfo callout calloutlist caption caution chapter
+citerefentry cmdsynopsis co collab colophon colspec confgroup
+copyright dedication docinfo editor entry entrytbl epigraph equation
+example figure footnote footnoteref formalpara funcprototype
+funcsynopsis glossary glossdef glossdiv glossentry glosslist graphicco
+group highlights imagedata imageobject imageobjectco important index
+indexdiv indexentry indexterm informalequation informalexample
+informalfigure informaltable inlineequation inlinemediaobject
+itemizedlist itermset keycombo keywordset legalnotice listitem lot
+mediaobject mediaobjectco menuchoice msg msgentry msgexplan msginfo
+msgmain msgrel msgset msgsub msgtext note objectinfo
+orderedlist othercredit part partintro preface printhistory procedure
+programlistingco publisher qandadiv qandaentry qandaset question
+refentry reference refmeta refnamediv refsect1 refsect1info refsect2
+refsect2info refsect3 refsect3info refsynopsisdiv refsynopsisdivinfo
+revhistory revision row sbr screenco screenshot sect1 sect1info sect2
+sect2info sect3 sect3info sect4 sect4info sect5 sect5info section
+sectioninfo seglistitem segmentedlist seriesinfo set setindex setinfo
+shortcut sidebar simplelist simplesect spanspec step subject
+subjectset substeps synopfragment table tbody textobject tfoot tgroup
+thead tip toc tocchap toclevel1 toclevel2 toclevel3 toclevel4
+toclevel5 tocpart varargs variablelist varlistentry videodata
+videoobject void warning subjectset
+
+classsynopsis
+constructorsynopsis
+destructorsynopsis
+fieldsynopsis
+methodparam
+methodsynopsis
+ooclass
+ooexception
+oointerface
+simplemsgentry
+"/>
+
+<!-- ====================================================================== -->
+
+<doc:template name="is.component" xmlns="">
+<refpurpose>Tests if a given node is a component-level element</refpurpose>
+
+<refdescription>
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.component">
+  <xsl:param name="node" select="."/>
+  <xsl:choose>
+    <xsl:when test="local-name($node) = 'appendix'
+                    or local-name($node) = 'article'
+                    or local-name($node) = 'chapter'
+                    or local-name($node) = 'preface'
+                    or local-name($node) = 'bibliography'
+                    or local-name($node) = 'glossary'
+                    or local-name($node) = 'index'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="is.section" xmlns="">
+<refpurpose>Tests if a given node is a section-level element</refpurpose>
+
+<refdescription>
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.section">
+  <xsl:param name="node" select="."/>
+  <xsl:choose>
+    <xsl:when test="local-name($node) = 'section'
+                    or local-name($node) = 'sect1'
+                    or local-name($node) = 'sect2'
+                    or local-name($node) = 'sect3'
+                    or local-name($node) = 'sect4'
+                    or local-name($node) = 'sect5'
+                    or local-name($node) = 'refsect1'
+                    or local-name($node) = 'refsect2'
+                    or local-name($node) = 'refsect3'
+                    or local-name($node) = 'simplesect'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a section.</refpurpose>
+
+<refdescription>
+<para>This template calculates the hierarchical level of a section.
+Hierarchically, components are <quote>top level</quote>, so a
+<sgmltag>sect1</sgmltag> is at level 2, <sgmltag>sect3</sgmltag> is
+at level 3, etc.</para>
+
+<para>Recursive sections are calculated down to the sixth level.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The section node for which the level should be calculated.
+Defaults to the context node.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>The section level, <quote>2</quote>, <quote>3</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="section.level">
+  <xsl:param name="node" select="."/>
+  <xsl:choose>
+    <xsl:when test="name($node)='sect1'">2</xsl:when>
+    <xsl:when test="name($node)='sect2'">3</xsl:when>
+    <xsl:when test="name($node)='sect3'">4</xsl:when>
+    <xsl:when test="name($node)='sect4'">5</xsl:when>
+    <xsl:when test="name($node)='sect5'">6</xsl:when>
+    <xsl:when test="name($node)='section'">
+      <xsl:choose>
+        <xsl:when test="$node/../../../../../section">6</xsl:when>
+        <xsl:when test="$node/../../../../section">5</xsl:when>
+        <xsl:when test="$node/../../../section">4</xsl:when>
+        <xsl:when test="$node/../../section">3</xsl:when>
+        <xsl:otherwise>2</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="name($node)='simplesect'">
+      <xsl:choose>
+        <xsl:when test="$node/../../sect1">3</xsl:when>
+        <xsl:when test="$node/../../sect2">4</xsl:when>
+        <xsl:when test="$node/../../sect3">5</xsl:when>
+        <xsl:when test="$node/../../sect4">6</xsl:when>
+        <xsl:when test="$node/../../sect5">6</xsl:when>
+        <xsl:when test="$node/../../section">
+          <xsl:choose>
+            <xsl:when test="$node/../../../../../section">6</xsl:when>
+            <xsl:when test="$node/../../../../section">5</xsl:when>
+            <xsl:when test="$node/../../../section">4</xsl:when>
+            <xsl:otherwise>3</xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>2</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>2</xsl:otherwise>
+  </xsl:choose>
+</xsl:template><!-- section.level -->
+
+<doc:template name="qanda.section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a QandASet.</refpurpose>
+
+<refdescription>
+<para>This template calculates the hierarchical level of a QandASet.
+</para>
+</refdescription>
+
+<refreturn>
+<para>The level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="qanda.section.level">
+  <xsl:variable name="section"
+                select="(ancestor::section
+                         |ancestor::simplesect
+                         |ancestor::sect5
+                         |ancestor::sect4
+                         |ancestor::sect3
+                         |ancestor::sect2
+                         |ancestor::sect1
+                         |ancestor::refsect3
+                         |ancestor::refsect2
+                         |ancestor::refsect1)[last()]"/>
+  <xsl:choose>
+    <xsl:when test="count($section) = '0'">1</xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="section.level">
+        <xsl:with-param name="node" select="$section"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="qandadiv.section.level">
+  <xsl:variable name="section.level">
+    <xsl:call-template name="qanda.section.level"/>
+  </xsl:variable>
+  <xsl:variable name="anc.divs" select="ancestor::qandadiv"/>
+
+  <xsl:value-of select="count($anc.divs) + number($section.level)"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="object.id">
+  <xsl:param name="object" select="."/>
+  <xsl:choose>
+    <xsl:when test="$object/@id">
+      <xsl:value-of select="$object/@id"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="generate-id($object)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="person.name">
+  <!-- Return a formatted string representation of the contents of
+       the specified node (by default, the current element).
+       Handles Honorific, FirstName, SurName, and Lineage.
+       If %author-othername-in-middle% is #t, also OtherName
+       Handles *only* the first of each.
+       Format is "Honorific. FirstName [OtherName] SurName, Lineage"
+  -->
+  <xsl:param name="node" select="."/>
+
+  <xsl:choose>
+    <!-- handle corpauthor as a special case...-->
+    <xsl:when test="name($node)='corpauthor'">
+      <xsl:apply-templates select="$node"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="h_nl" select="$node//honorific[1]"/>
+      <xsl:variable name="f_nl" select="$node//firstname[1]"/>
+      <xsl:variable name="o_nl" select="$node//othername[1]"/>
+      <xsl:variable name="s_nl" select="$node//surname[1]"/>
+      <xsl:variable name="l_nl" select="$node//lineage[1]"/>
+
+      <xsl:variable name="has_h" select="$h_nl"/>
+      <xsl:variable name="has_f" select="$f_nl"/>
+      <xsl:variable name="has_o"
+                    select="$o_nl and ($author.othername.in.middle != 0)"/>
+      <xsl:variable name="has_s" select="$s_nl"/>
+      <xsl:variable name="has_l" select="$l_nl"/>
+
+      <xsl:if test="$has_h">
+        <xsl:value-of select="$h_nl"/>.
+      </xsl:if>
+
+      <xsl:if test="$has_f">
+        <xsl:if test="$has_h"><xsl:text> </xsl:text></xsl:if>
+        <xsl:value-of select="$f_nl"/>
+      </xsl:if>
+
+      <xsl:if test="$has_o">
+        <xsl:if test="$has_h or $has_f"><xsl:text> </xsl:text></xsl:if>
+        <xsl:value-of select="$o_nl"/>
+      </xsl:if>
+
+      <xsl:if test="$has_s">
+        <xsl:if test="$has_h or $has_f or $has_o">
+          <xsl:text> </xsl:text>
+        </xsl:if>
+        <xsl:value-of select="$s_nl"/>
+      </xsl:if>
+
+      <xsl:if test="$has_l">
+        <xsl:text>, </xsl:text>
+        <xsl:value-of select="$l_nl"/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template> <!-- person.name -->
+
+<xsl:template name="person.name.list">
+  <!-- Return a formatted string representation of the contents of
+       the current element. The current element must contain one or
+       more AUTHORs, CORPAUTHORs, OTHERCREDITs, and/or EDITORs.
+
+       John Doe
+     or
+       John Doe and Jane Doe
+     or
+       John Doe, Jane Doe, and A. Nonymous
+  -->
+  <xsl:param name="person.list" select="./author|./corpauthor|./othercredit|./editor"/>
+  <xsl:param name="person.count" select="count($person.list)"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>$person.count"></xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="person.name">
+        <xsl:with-param name="node" select="$person.list[position()=$count]"/>
+      </xsl:call-template>
+      <xsl:if test="$count&lt;$person.count">
+        <xsl:if test="$person.count>2">,</xsl:if>
+        <xsl:text> </xsl:text>
+      </xsl:if>
+      <xsl:if test="$count+1=$person.count">and </xsl:if>
+      <xsl:call-template name="person.name.list">
+        <xsl:with-param name="person.list" select="$person.list"/>
+        <xsl:with-param name="person.count" select="$person.count"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template><!-- person.name.list -->
+
+<!-- === synopsis ======================================================= -->
+<!-- The following definitions match those given in the reference
+     documentation for DocBook V3.0
+-->
+
+<xsl:variable name="arg.choice.opt.open.str">[</xsl:variable>
+<xsl:variable name="arg.choice.opt.close.str">]</xsl:variable>
+<xsl:variable name="arg.choice.req.open.str">{</xsl:variable>
+<xsl:variable name="arg.choice.req.close.str">}</xsl:variable>
+<xsl:variable name="arg.choice.plain.open.str"><xsl:text> </xsl:text></xsl:variable>
+<xsl:variable name="arg.choice.plain.close.str"><xsl:text> </xsl:text></xsl:variable>
+<xsl:variable name="arg.choice.def.open.str">[</xsl:variable>
+<xsl:variable name="arg.choice.def.close.str">]</xsl:variable>
+<xsl:variable name="arg.rep.repeat.str">...</xsl:variable>
+<xsl:variable name="arg.rep.norepeat.str"></xsl:variable>
+<xsl:variable name="arg.rep.def.str"></xsl:variable>
+<xsl:variable name="arg.or.sep"> | </xsl:variable>
+<xsl:variable name="cmdsynopsis.hanging.indent">4pi</xsl:variable>
+
+<!-- ====================================================================== -->
+<!-- label content -->
+
+<doc:mode mode="label.content" xmlns="">
+<refpurpose>Provides access to element labels</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">label.content</literal> mode produces the
+element label.</para>
+<para>If the label is non-null, either because the
+<sgmltag class="attribute">label</sgmltag> attribute was present on the
+element or the stylesheet automatically generated a label, trailing
+punctuation is automatically added.</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="label.content">
+  <xsl:message>
+    <xsl:text>Request for label of unexpected element: </xsl:text>
+    <xsl:value-of select="name(.)"/>
+  </xsl:message>
+</xsl:template>
+
+<xsl:template match="set|book" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+    <xsl:value-of select="$punct"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:when test="$part.autolabel != 0">
+      <xsl:number from="book" count="part" format="I"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="preface" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:when test="$preface.autolabel != 0">
+      <xsl:number from="book" count="preface" format="1" level="any"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:when test="$chapter.autolabel != 0">
+      <xsl:number from="book" count="chapter" format="1" level="any"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:when test="$chapter.autolabel != 0">
+      <xsl:number from="book" count="appendix" format="A" level="any"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+    <xsl:value-of select="$punct"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+    <xsl:value-of select="$punct"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="reference" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:when test="$part.autolabel != 0">
+      <xsl:number from="book" count="reference" format="I" level="any"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refentry" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+    <xsl:value-of select="$punct"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+
+  <!-- if this is a nested section, label the parent -->
+  <xsl:if test="local-name(..) = 'section'">
+    <xsl:apply-templates select=".." mode="label.content">
+      <xsl:with-param name="punct">.</xsl:with-param>
+    </xsl:apply-templates>
+  </xsl:if>
+
+  <!-- if the parent is a component, maybe label that too -->
+  <xsl:variable name="parent.is.component">
+    <xsl:call-template name="is.component">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- does this section get labelled? -->
+  <xsl:variable name="label">
+    <xsl:call-template name="label.this.section">
+      <xsl:with-param name="section" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$section.label.includes.component.label != 0
+                and $parent.is.component != 0">
+    <xsl:apply-templates select=".." mode="label.content">
+      <xsl:with-param name="punct">.</xsl:with-param>
+    </xsl:apply-templates>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:when test="$label != 0">
+      <xsl:number count="section"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+
+  <!-- if the parent is a component, maybe label that too -->
+  <xsl:variable name="parent.is.component">
+    <xsl:call-template name="is.component">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:if test="$section.label.includes.component.label != 0
+                and $parent.is.component">
+    <xsl:apply-templates select=".." mode="label.content">
+      <xsl:with-param name="punct">.</xsl:with-param>
+    </xsl:apply-templates>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:number count="sect1"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect2|sect3|sect4|sect5" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+
+  <!-- label the parent -->
+  <xsl:apply-templates select=".." mode="label.content">
+    <xsl:with-param name="punct">.</xsl:with-param>
+  </xsl:apply-templates>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:choose>
+	<xsl:when test="local-name(.) = 'sect2'">
+	  <xsl:number count="sect2"/>
+	</xsl:when>
+	<xsl:when test="local-name(.) = 'sect3'">
+	  <xsl:number count="sect3"/>
+	</xsl:when>
+	<xsl:when test="local-name(.) = 'sect4'">
+	  <xsl:number count="sect4"/>
+	</xsl:when>
+	<xsl:when test="local-name(.) = 'sect5'">
+	  <xsl:number count="sect5"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:message>label.content: this can't happen!</xsl:message>
+	</xsl:otherwise>
+      </xsl:choose>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refsect1|refsect2|refsect3" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:number level="multiple" count="refsect1|refsect2|refsect3"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="simplesect" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:number level="multiple" count="section
+                                          |sect1|sect2|sect3|sect4|sect5
+                                          |refsect1|refsect2|refsect3
+                                          |simplesect"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:variable name="prefix">
+    <xsl:if test="$qanda.inherit.numeration != 0">
+      <xsl:variable name="lparent" select="(ancestor::set
+                                            |ancestor::book
+                                            |ancestor::chapter
+                                            |ancestor::appendix
+                                            |ancestor::preface
+                                            |ancestor::section
+                                            |ancestor::simplesect
+                                            |ancestor::sect1
+                                            |ancestor::sect2
+                                            |ancestor::sect3
+                                            |ancestor::sect4
+                                            |ancestor::sect5
+                                            |ancestor::refsect1
+                                            |ancestor::refsect2
+                                            |ancestor::refsect3)[last()]"/>
+      <xsl:if test="count($lparent)>0">
+        <xsl:apply-templates select="$lparent" mode="label.content"/>
+      </xsl:if>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="$prefix"/>
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:when test="$qandadiv.autolabel != 0">
+      <xsl:value-of select="$prefix"/>
+      <xsl:number level="multiple" count="qandadiv" format="1"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:variable name="prefix">
+    <xsl:if test="$qanda.inherit.numeration != 0">
+      <xsl:variable name="lparent" select="(ancestor::set
+                                            |ancestor::book
+                                            |ancestor::chapter
+                                            |ancestor::appendix
+                                            |ancestor::preface
+                                            |ancestor::section
+                                            |ancestor::simplesect
+                                            |ancestor::sect1
+                                            |ancestor::sect2
+                                            |ancestor::sect3
+                                            |ancestor::sect4
+                                            |ancestor::sect5
+                                            |ancestor::refsect1
+                                            |ancestor::refsect2
+                                            |ancestor::refsect3
+                                            |ancestor::qandadiv)[last()]"/>
+      <xsl:if test="count($lparent)>0">
+        <xsl:apply-templates select="$lparent" mode="label.content"/>
+      </xsl:if>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="inhlabel"
+                select="ancestor-or-self::qandaset/@defaultlabel[1]"/>
+
+  <xsl:variable name="deflabel">
+    <xsl:choose>
+      <xsl:when test="$inhlabel != ''">
+        <xsl:value-of select="$inhlabel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$qanda.defaultlabel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="label" select="label"/>
+
+  <xsl:choose>
+    <xsl:when test="count($label)>0">
+      <xsl:value-of select="$prefix"/>
+      <xsl:apply-templates select="$label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+
+    <xsl:when test="$deflabel = 'qanda'">
+      <xsl:call-template name="gentext.element.name"/>
+    </xsl:when>
+
+    <xsl:when test="$deflabel = 'number'">
+      <xsl:if test="name(.) = 'question'">
+        <xsl:value-of select="$prefix"/>
+        <xsl:number level="multiple" count="qandaentry" format="1"/>
+        <xsl:value-of select="$punct"/>
+      </xsl:if>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary|index" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+    <xsl:value-of select="$punct"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:value-of select="$punct"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pchap"
+                    select="ancestor::chapter|ancestor::appendix"/>
+      <xsl:choose>
+        <xsl:when test="count($pchap)>0">
+          <xsl:apply-templates select="$pchap" mode="label.content">
+            <xsl:with-param name="punct">.</xsl:with-param>
+          </xsl:apply-templates>
+          <xsl:number format="1" from="chapter|appendix" level="any"/>
+          <xsl:value-of select="$punct"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number format="1" from="book|article" level="any"/>
+          <xsl:value-of select="$punct"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="abstract" mode="label.content">
+  <xsl:param name="punct">.</xsl:param>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="label.this.section">
+  <xsl:param name="section" select="."/>
+  <xsl:value-of select="$section.autolabel"/>
+</xsl:template>
+
+<doc:template name="label.this.section" xmlns="">
+<refpurpose>Returns true if $section should be labelled</refpurpose>
+<refdescription>
+<para>Returns true if the specified section should be labelled.
+By default, this template simply returns $section.autolabel, but
+custom stylesheets may override it to get more selective behavior.</para>
+</refdescription>
+</doc:template>
+
+<!-- ====================================================================== -->
+<!-- title content -->
+
+<doc:mode mode="title.content" xmlns="">
+<refpurpose>Provides access to element titles</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">title.content</literal> mode produces the
+title of the element. This does not include the label. If
+<parameter>text-only</parameter> is true, the text of the title
+is returned, without inline markup, otherwise inline markup is processed
+(in the default mode). By default, <parameter>text-only</parameter>
+is false.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="title">
+      <xsl:apply-templates select="title[1]" mode="title.content">
+	<xsl:with-param name="text-only" select="$text-only"/>
+	<xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Request for title of unexpected element: </xsl:text>
+	<xsl:value-of select="name(.)"/>
+      </xsl:message>
+      <xsl:text>???TITLE???</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="no.anchor.mode">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="anchor" mode="no.anchor.mode">
+  <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="title" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="$text-only != 0">
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$allow-anchors != 0">
+          <xsl:apply-templates/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates mode="no.anchor.mode"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(setinfo/title|title)[1]"
+                       mode="title.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(bookinfo/title|title)[1]"
+                       mode="title.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(partinfo/title|docinfo/title|title)[1]"
+                       mode="title.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="title" select="(docinfo/title
+                                      |prefaceinfo/title
+                                      |chapterinfo/title
+                                      |appendixinfo/title
+                                      |title)[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.content">
+        <xsl:with-param name="text-only" select="$text-only"/>
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.element.name">
+        <xsl:with-param name="element.name" select="name(.)"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="title">
+      <xsl:apply-templates select="title" mode="title.content">
+        <xsl:with-param name="text-only" select="$text-only"/>
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.element.name">
+        <xsl:with-param name="element.name" select="name(.)"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="title" select="(artheader/title
+                                      |articleinfo/title
+                                      |title)[1]"/>
+
+  <xsl:apply-templates select="$title" mode="title.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(referenceinfo/title|docinfo/title|title)[1]"
+                       mode="title.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="refmeta" select=".//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select=".//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="title.content"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="title.content"/>
+      </xsl:when>
+      <xsl:otherwise>REFENTRY WITHOUT TITLE???</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$text-only != 0">
+      <xsl:value-of select="$title"/>
+    </xsl:when>
+    <xsl:otherwise><xsl:copy-of select="$title"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refentrytitle|refname" mode="title.content">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="section
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3
+                     |simplesect"
+              mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="title" select="(sectioninfo/title
+                                      |sect1info/title
+                                      |sect2info/title
+                                      |sect3info/title
+                                      |sect4info/title
+                                      |sect5info/title
+                                      |refsect1info/title
+                                      |refsect2info/title
+                                      |refsect3info/title
+                                      |title)[1]"/>
+
+  <xsl:apply-templates select="$title" mode="title.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary|index" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="title">
+      <xsl:apply-templates select="title" mode="title.content">
+        <xsl:with-param name="text-only" select="$text-only"/>
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.element.name">
+        <xsl:with-param name="element.name" select="name(.)"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="title" mode="title.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="abstract" mode="title.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="title">
+      <xsl:apply-templates select="title" mode="title.content">
+        <xsl:with-param name="text-only" select="$text-only"/>
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.element.name">
+        <xsl:with-param name="element.name" select="name(.)"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- subtitle content -->
+
+<doc:mode mode="subtitle.content" xmlns="">
+<refpurpose>Provides access to element subtitles</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">subtitle.content</literal> mode produces the
+subtitle of the element. If
+<parameter>text-only</parameter> is true, the text of the title
+is returned, without inline markup, otherwise inline markup is processed
+(in the default mode). By default, <parameter>text-only</parameter>
+is false.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="subtitle.content">
+  <xsl:message>
+    <xsl:text>Request for subtitle of unexpected element: </xsl:text>
+    <xsl:value-of select="name(.)"/>
+  </xsl:message>
+  <xsl:text>???SUBTITLE???</xsl:text>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="subtitle.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="$text-only != 0">
+      <xsl:value-of select="."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set" mode="subtitle.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(setinfo/subtitle|subtitle)[1]"
+                       mode="subtitle.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="subtitle.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(bookinfo/subtitle|subtitle)[1]"
+                       mode="subtitle.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="subtitle.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(partinfo/subtitle
+                                |docinfo/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="subtitle.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(docinfo/subtitle
+                                |prefaceinfo/subtitle
+                                |chapterinfo/subtitle
+                                |appendixinfo/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="subtitle.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="subtitle"
+                       mode="subtitle.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="subtitle.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(referenceinfo/subtitle
+                                |docinfo/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="subtitle.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(refentryinfo/subtitle
+                                |docinfo/subtitle)[1]"
+                       mode="subtitle.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="section
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3
+                     |simplesect"
+              mode="subtitle.content">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(sectioninfo/subtitle
+                                |sect1info/subtitle
+                                |sect2info/subtitle
+                                |sect3info/subtitle
+                                |sect4info/subtitle
+                                |sect5info/subtitle
+                                |refsect1info/subtitle
+                                |refsect2info/subtitle
+                                |refsect3info/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.content">
+    <xsl:with-param name="text-only" select="$text-only"/>
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- title reference (label + title) -->
+
+<doc:mode mode="title.ref" xmlns="">
+<refpurpose>Provides reference text for an element</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">title.ref</literal> mode produces the
+label and title of the element.
+</para>
+</refdescription>
+<refparameter>
+<variablelist>
+<varlistentry><term>text-only</term>
+<listitem>
+<para> If
+<parameter>text-only</parameter> is true, the text of the title
+is returned, without inline markup, otherwise inline markup is processed
+(in the default mode). By default, <parameter>text-only</parameter>
+is false.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>label-wrapper</term>
+<listitem>
+<para>If <parameter>label-wrapper</parameter> is not the emtpy string,
+it must be the name of an element. The element so named will be wrapped
+around labels on output.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>title-wrapper</term>
+<listitem>
+<para>If <parameter>title.wrapper</parameter> is not the emtpy string,
+it must be the name of an element. The element so named will be wrapped
+around titles on output.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>label-wrapper-class</term>
+<listitem>
+<para>If a <parameter>label-wrapper</parameter> is provided and
+<parameter>label-wrapper-class</parameter> is not the emtpy string,
+it be used as the value for a <sgmltag class="attribute">class</sgmltag>
+attribute on the <parameter>label-wrapper</parameter> element.</para>
+<para>This is a dirty hack because it only makes sense for the HTML
+stylesheet (there's no <sgmltag class="attribute">class</sgmltag> attribute
+on the FO elements). What I'd really like to do is pass an attribute
+set as a parameter, but I can't.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>title-wrapper-class</term>
+<listitem>
+<para>If a <parameter>title-wrapper</parameter> is provided and
+<parameter>title-wrapper-class</parameter> is not the emtpy string,
+it be used as the value for a <sgmltag class="attribute">class</sgmltag>
+attribute on the <parameter>title-wrapper</parameter> element.</para>
+<para>This is a dirty hack because it only makes sense for the HTML
+stylesheet (there's no <sgmltag class="attribute">class</sgmltag> attribute
+on the FO elements). What I'd really like to do is pass an attribute
+set as a parameter, but I can't.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+</doc:mode>
+
+<xsl:template match="*" mode="title.ref">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="label-wrapper" select="''"/>
+  <xsl:param name="title-wrapper" select="''"/>
+  <!-- Dirty hack -->
+  <xsl:param name="label-wrapper-class" select="''"/>
+  <xsl:param name="title-wrapper-class" select="''"/>
+
+  <xsl:variable name="label">
+    <xsl:apply-templates select="." mode="label.content"/>
+  </xsl:variable>
+
+  <xsl:if test="$label != ''">
+    <xsl:choose>
+      <xsl:when test="$text-only = 0">
+        <xsl:choose>
+          <xsl:when test="$label-wrapper != ''">
+            <xsl:element name="{$label-wrapper}">
+              <xsl:if test="$label-wrapper-class != ''">
+                <xsl:attribute name="class">
+                  <xsl:value-of select="$label-wrapper-class"/>
+                </xsl:attribute>
+              </xsl:if>
+              <xsl:copy-of select="$label"/>
+            </xsl:element>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:copy-of select="$label"/>
+          </xsl:otherwise>
+        </xsl:choose>
+        <xsl:text> </xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$label"/>
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$text-only = 0">
+      <xsl:choose>
+        <xsl:when test="$title-wrapper != ''">
+          <xsl:element name="{$title-wrapper}">
+            <xsl:if test="$title-wrapper-class != ''">
+              <xsl:attribute name="class">
+                <xsl:value-of select="$title-wrapper-class"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:apply-templates select="." mode="title.content">
+              <xsl:with-param name="text-only" select="$text-only"/>
+              <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+            </xsl:apply-templates>
+          </xsl:element>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="." mode="title.content">
+            <xsl:with-param name="text-only" select="$text-only"/>
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="title.content">
+        <xsl:with-param name="text-only" select="$text-only"/>
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation
+                     |chapter|appendix" mode="title.ref">
+  <xsl:param name="text-only" select="'0'"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:param name="label-wrapper" select="''"/>
+  <xsl:param name="title-wrapper" select="''"/>
+  <!-- Dirty hack -->
+  <xsl:param name="label-wrapper-class" select="''"/>
+  <xsl:param name="title-wrapper-class" select="''"/>
+
+  <xsl:variable name="label">
+    <xsl:call-template name="gentext.element.name">
+      <xsl:with-param name="element.name">
+        <xsl:value-of select="name(.)"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="." mode="label.content"/>
+  </xsl:variable>
+
+  <xsl:if test="$label != ''">
+    <xsl:choose>
+      <xsl:when test="$text-only = 0">
+        <xsl:choose>
+          <xsl:when test="$label-wrapper != ''">
+            <xsl:element name="{$label-wrapper}">
+              <xsl:if test="$label-wrapper-class != ''">
+                <xsl:attribute name="class">
+                  <xsl:value-of select="$label-wrapper-class"/>
+                </xsl:attribute>
+              </xsl:if>
+              <xsl:copy-of select="$label"/>
+            </xsl:element>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:copy-of select="$label"/>
+          </xsl:otherwise>
+        </xsl:choose>
+        <xsl:text> </xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$label"/>
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$text-only = 0">
+      <xsl:choose>
+        <xsl:when test="$title-wrapper != ''">
+          <xsl:element name="{$title-wrapper}">
+            <xsl:if test="$title-wrapper-class != ''">
+              <xsl:attribute name="class">
+                <xsl:value-of select="$title-wrapper-class"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:apply-templates select="." mode="title.content">
+              <xsl:with-param name="text-only" select="$text-only"/>
+              <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+            </xsl:apply-templates>
+          </xsl:element>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="." mode="title.content">
+            <xsl:with-param name="text-only" select="$text-only"/>
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="." mode="title.content">
+        <xsl:with-param name="text-only" select="$text-only"/>
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="xref.g.subst">
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="target" select="."/>
+  <xsl:variable name="subst">%g</xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $subst)">
+      <xsl:value-of select="substring-before($string, $subst)"/>
+      <xsl:call-template name="gentext.element.name">
+        <xsl:with-param name="element.name" select="name($target)"/>
+      </xsl:call-template>
+      <xsl:call-template name="xref.g.subst">
+        <xsl:with-param name="string"
+                        select="substring-after($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$string"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.t.subst">
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="target" select="."/>
+  <xsl:variable name="subst">%t</xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $subst)">
+      <xsl:call-template name="xref.g.subst">
+        <xsl:with-param name="string"
+                        select="substring-before($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="title.xref">
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string"
+                        select="substring-after($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="xref.g.subst">
+        <xsl:with-param name="string" select="$string"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.n.subst">
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="target" select="."/>
+  <xsl:variable name="subst">%n</xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $subst)">
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string"
+                        select="substring-before($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="number.xref">
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string"
+                        select="substring-after($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string" select="$string"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="subst.xref.text">
+  <xsl:param name="xref.text"></xsl:param>
+  <xsl:param name="target" select="."/>
+
+  <xsl:call-template name="xref.n.subst">
+    <xsl:with-param name="string" select="$xref.text"/>
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="filename-basename">
+  <!-- We assume all filenames are really URIs and use "/" -->
+  <xsl:param name="filename"></xsl:param>
+  <xsl:param name="recurse" select="false()"/>
+
+  <xsl:choose>
+    <xsl:when test="substring-after($filename, '/') != ''">
+      <xsl:call-template name="filename-basename">
+        <xsl:with-param name="filename"
+                        select="substring-after($filename, '/')"/>
+        <xsl:with-param name="recurse" select="true()"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="filename-extension">
+  <xsl:param name="filename"></xsl:param>
+  <xsl:param name="recurse" select="false()"/>
+
+  <!-- Make sure we only look at the base name... -->
+  <xsl:variable name="basefn">
+    <xsl:choose>
+      <xsl:when test="$recurse">
+        <xsl:value-of select="$filename"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="filename-basename">
+          <xsl:with-param name="filename" select="$filename"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="substring-after($basefn, '.') != ''">
+      <xsl:call-template name="filename-extension">
+        <xsl:with-param name="filename"
+                        select="substring-after($basefn, '.')"/>
+        <xsl:with-param name="recurse" select="true()"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$recurse">
+      <xsl:value-of select="$basefn"/>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="select.mediaobject" xmlns="">
+<refpurpose>Selects an appropriate media object from a list</refpurpose>
+
+<refdescription>
+<para>This template examines a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and processes
+the "right" object.</para>
+
+<para>This template relies on a template named "is.acceptable.mediaobject"
+to determine if a given object is an acceptable graphic. The semantics
+of media objects is that the first acceptable graphic should be used.
+</para>
+
+<para>If no acceptable object is located, nothing happens.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+<para>The node list of potential objects to examine.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>Calls &lt;xsl:apply-templates&gt; on the selected object.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="select.mediaobject">
+  <xsl:param name="olist"
+             select="imageobject|imageobjectco
+                     |videoobject|audioobject|textobject"/>
+  <xsl:param name="count">1</xsl:param>
+
+  <xsl:if test="$count &lt;= count($olist)">
+    <xsl:variable name="object" select="$olist[position()=$count]"/>
+
+    <xsl:variable name="useobject">
+      <xsl:choose>
+	<!-- The phrase is never used -->
+        <xsl:when test="name($object)='textobject' and $object/phrase">
+          <xsl:text>0</xsl:text>
+        </xsl:when>
+	<!-- The first textobject is a reasonable fallback -->
+        <xsl:when test="name($object)='textobject'">
+          <xsl:text>1</xsl:text>
+        </xsl:when>
+	<!-- If there's only one object, use it -->
+	<xsl:when test="$count = 1 and count($olist) = 1">
+	  <xsl:text>1</xsl:text>
+	</xsl:when>
+	<!-- Otherwise, see if this one is a useable graphic -->
+        <xsl:otherwise>
+          <xsl:choose>
+            <!-- peek inside imageobjectco to simplify the test -->
+            <xsl:when test="local-name($object) = 'imageobjectco'">
+              <xsl:call-template name="is.acceptable.mediaobject">
+                <xsl:with-param name="object" select="$object/imageobject"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="is.acceptable.mediaobject">
+                <xsl:with-param name="object" select="$object"/>
+              </xsl:call-template>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test="$useobject='1'">
+        <xsl:apply-templates select="$object"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject">
+          <xsl:with-param name="olist" select="$olist"/>
+          <xsl:with-param name="count" select="$count + 1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<doc:template name="is.acceptable.mediaobject" xmlns="">
+<refpurpose>Returns '1' if the specified media object is recognized.</refpurpose>
+
+<refdescription>
+<para>This template examines a media object and returns '1' if the
+object is recognized as a graphic.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>object</term>
+<listitem>
+<para>The media object to consider.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>0 or 1</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.acceptable.mediaobject">
+  <xsl:param name="object"></xsl:param>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="ext">
+    <xsl:call-template name="filename-extension">
+      <xsl:with-param name="filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- there will only be one -->
+  <xsl:variable name="data" select="$object/videodata
+                                    |$object/imagedata
+                                    |$object/audiodata"/>
+
+  <xsl:variable name="format" select="$data/@format"/>
+
+  <xsl:variable name="graphic.format">
+    <xsl:if test="$format">
+      <xsl:call-template name="is.graphic.format">
+        <xsl:with-param name="format" select="$format"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="graphic.ext">
+    <xsl:if test="$ext">
+      <xsl:call-template name="is.graphic.extension">
+        <xsl:with-param name="ext" select="$ext"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$graphic.format = '1'">1</xsl:when>
+    <xsl:when test="$graphic.ext = '1'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="is.graphic.format">
+  <xsl:param name="format"></xsl:param>
+  <xsl:if test="$format = 'PNG'
+                or $format = 'JPG'
+                or $format = 'JPEG'
+                or $format = 'linespecific'
+                or $format = 'GIF'
+                or $format = 'GIF87a'
+                or $format = 'GIF89a'
+                or $format = 'BMP'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="is.graphic.extension">
+  <xsl:param name="ext"></xsl:param>
+  <xsl:if test="$ext = 'png'
+                or $ext = 'jpeg'
+                or $ext = 'jpg'
+                or $ext = 'avi'
+                or $ext = 'mpg'
+                or $ext = 'mpeg'
+                or $ext = 'qt'
+                or $ext = 'gif'
+                or $ext = 'bmp'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="mediaobject.filename">
+  <xsl:param name="object"></xsl:param>
+
+  <xsl:variable name="data" select="$object/videodata
+                                    |$object/imagedata
+                                    |$object/audiodata"/>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$data[ fileref]">
+        <xsl:value-of select="$data/@fileref"/>
+      </xsl:when>
+      <xsl:when test="$data[ entityref]">
+        <xsl:value-of select="unparsed-entity-uri($data/@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="has.ext" select="contains($filename, '.') != ''"/>
+
+  <xsl:variable name="ext">
+    <xsl:choose>
+      <xsl:when test="contains($filename, '.')">
+        <xsl:call-template name="filename-extension">
+          <xsl:with-param name="filename" select="$filename"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$graphic.default.extension"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="graphic.ext">
+    <xsl:call-template name="is.graphic.extension">
+      <xsl:with-param name="ext" select="$ext"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not($has.ext)">
+      <xsl:choose>
+        <xsl:when test="$ext != ''">
+          <xsl:value-of select="$filename"/>
+          <xsl:text>.</xsl:text>
+          <xsl:value-of select="$ext"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="not($graphic.ext)">
+      <xsl:choose>
+        <xsl:when test="$graphic.default.extension != ''">
+          <xsl:value-of select="$filename"/>
+          <xsl:text>.</xsl:text>
+          <xsl:value-of select="$graphic.default.extension"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="check.id.unique" xmlns="">
+<refpurpose>Warn users about references to non-unique IDs</refpurpose>
+<refdescription>
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.id.unique</function> prints
+a warning message to the user if either the ID does not exist or
+the ID is not unique.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.id.unique">
+  <xsl:param name="linkend"></xsl:param>
+  <xsl:if test="$linkend != ''">
+    <xsl:variable name="targets" select="id($linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+
+    <xsl:if test="count($targets)=0">
+      <xsl:message>
+	<xsl:text>Error: no ID for constraint linkend: </xsl:text>
+	<xsl:value-of select="$linkend"/>
+	<xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:if>
+
+    <xsl:if test="count($targets)>1">
+      <xsl:message>
+	<xsl:text>Warning: multiple "IDs" for constraint linkend: </xsl:text>
+	<xsl:value-of select="$linkend"/>
+	<xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<doc:template name="check.idref.targets" xmlns="">
+<refpurpose>Warn users about incorrectly typed references</refpurpose>
+<refdescription>
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.idref.targets</function> makes sure that the element
+pointed to by the link is one of the elements listed in
+<varname>element-list</varname> and warns the user otherwise.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.idref.targets">
+  <xsl:param name="linkend"></xsl:param>
+  <xsl:param name="element-list"></xsl:param>
+  <xsl:if test="$linkend != ''">
+    <xsl:variable name="targets" select="id($linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+
+    <xsl:if test="count($target) &gt; 0">
+      <xsl:if test="not(contains(concat(' ', $element-list, ' '), name($target)))">
+	<xsl:message>
+	  <xsl:text>Error: linkend (</xsl:text>
+	  <xsl:value-of select="$linkend"/>
+	  <xsl:text>) points to "</xsl:text>
+	  <xsl:value-of select="name($target)"/>
+	  <xsl:text>" not (one of): </xsl:text>
+	  <xsl:value-of select="$element-list"/>
+	</xsl:message>
+      </xsl:if>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/common/cs.xml b/help-converters/docbook/docbook/common/cs.xml
new file mode 100644
index 0000000..42511ce
--- /dev/null
+++ b/help-converters/docbook/docbook/common/cs.xml
@@ -0,0 +1,108 @@
+<localization language="cs">
+
+<!-- Contributors:
+     Martin Perina <docbk ataco cz>
+     Jirka Kosek <jirka kosek cz>
+-->
+
+<gentext key="abstract"                 text="Abstrakt"/>
+<gentext key="answer"                   text="Ot&#x00e1;zka:"/>
+<gentext key="appendix"                 text="P&#x0159;&#x00ed;loha"/>
+<gentext key="article"                  text="&#x010c;l&#x00e1;nek"/>
+<gentext key="bibliography"             text="Bibliografie"/>
+<gentext key="book"                     text="Kniha"/>
+<gentext key="caution"                  text="V&#x00fd;straha"/>
+<gentext key="chapter"                  text="Kapitola"/>
+<gentext key="colophon"                 text="Tir&#x00e1;&#x017e;"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="V&#x011b;nov&#x00e1;n&#x00ed;"/>
+<gentext key="edition"                  text="Vyd&#x00e1;n&#x00ed;"/>
+<gentext key="equation"                 text="Rovnice"/>
+<gentext key="example"                  text="P&#x0159;&#x00ed;klad"/>
+<gentext key="figure"                   text="Obr&#x00e1;zek"/>
+<gentext key="glossary"                 text="Slovn&#x00ed;k"/>
+<gentext key="glosssee"                 text="Viz"/>
+<gentext key="glossseealso"             text="Viz t&#x00e9;&#x017e;"/>
+<gentext key="important"                text="D&#x016f;le&#x017e;it&#x00e9;"/>
+<gentext key="index"                    text="Rejst&#x0159;&#x00ed;k"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="legalnotice"              text="Pr&#x00e1;vn&#x00ed; pozn&#x00e1;mka"/>
+<gentext key="msgaud"                   text="Publikum"/>
+<gentext key="msglevel"                 text="&#x00da;rove&#x0148;"/>
+<gentext key="msgorig"                  text="P&#x016f;vod"/>
+<gentext key="note"                     text="Pozn&#x00e1;mka"/>
+<gentext key="part"                     text="&#x010c;&#x00e1;st"/>
+<gentext key="preface"                  text="P&#x0159;edmluva"/>
+<gentext key="procedure"                text="Postup"/>
+<gentext key="published"                text="Vyd&#x00e1;no"/>
+<gentext key="question"                 text="Ot&#x00e1;zka:"/>
+<gentext key="refentry"                 text=""/>
+<gentext key="reference"                text="Odkaz"/>
+<gentext key="refname"                  text="Jm&#x00e9;no"/>
+<gentext key="refsection"               text=""/>
+<gentext key="refsynopsisdiv"           text="P&#x0159;ehled"/>
+<gentext key="revhistory"               text="P&#x0159;ehled reviz&#x00ed;"/>
+<gentext key="revision"                 text="Revize"/>
+<gentext key="section"                  text="Odd&#x00ed;l"/>
+<gentext key="sect1"                    text="Odd&#x00ed;l"/>
+<gentext key="sect2"                    text="Odd&#x00ed;l"/>
+<gentext key="sect3"                    text="Odd&#x00ed;l"/>
+<gentext key="sect4"                    text="Odd&#x00ed;l"/>
+<gentext key="sect5"                    text="Odd&#x00ed;l"/>
+<gentext key="see"                      text="Viz"/>
+<gentext key="seealso"                  text="Viz t&#x00e9;&#x017e;"/>
+<gentext key="set"                      text="Sada"/>
+<gentext key="setindex"                 text="Rejst&#x0159;&#x00ed;k sady"/>
+<gentext key="sidebar"                  text="Margin&#x00e1;lie"/>
+<gentext key="step"                     text="Krok"/>
+<gentext key="table"                    text="Tabulka"/>
+<gentext key="tip"                      text="Tip"/>
+<gentext key="warning"                  text="Varov&#x00e1;n&#x00ed;"/>
+
+<gentext key="TableofContents"          text="Obsah"/>
+<gentext key="in"                       text="v"/>
+<gentext key="by"                       text=" "/>
+<gentext key="Edited"                   text="Vyd&#x00e1;no"/>
+<gentext key="Editedby"                 text="Sestavil"/>
+<gentext key="and"                      text="a"/>
+<gentext key="Notes"                    text="Pozn&#x00e1;mky"/>
+<gentext key="TableNotes"               text="Pozn&#x00e1;mky"/>
+<gentext key="nonexistantelement"       text="neexistuj&#x00ed;c&#x00ed; prvek"/>
+<gentext key="Pgs"                      text="Str."/>
+<gentext key="unsupported"              text="nepodporovan&#x00fd;"/>
+<gentext key="xrefto"                   text="xref k"/>
+<gentext key="unexpectedelementname"    text="Neo&#x010d;ek&#x00e1;van&#x00e9; jm&#x00e9;no prvku"/>
+<gentext key="Revisedby"                text="Revidoval: "/>
+
+<gentext key="ListofTables"             text="Seznam tabulek"/>
+<gentext key="ListofExamples"           text="Seznam p&#x0159;&#x00ed;klad&#x016f;"/>
+<gentext key="ListofFigures"            text="Seznam obr&#x00e1;zk&#x016f;"/>
+<gentext key="ListofEquations"          text="Seznam rovnic"/>
+<gentext key="ListofUnknown"            text="Seznam nezn&#x00e1;m&#x00e9;ho"/>
+
+<gentext key="nav-prev"                 text="P&#x0159;edch&#x00e1;zej&#x00ed;c&#x00ed;"/>
+<gentext key="nav-prev-sibling"         text="Rychle zp&#x011b;t"/>
+<gentext key="nav-next-sibling"         text="Rychle dop&#x0159;edu"/>
+<gentext key="nav-next"                 text="Dal&#x0161;&#x00ed;"/>
+<gentext key="nav-up"                   text="Nahoru"/>
+<gentext key="nav-home"                 text="Dom&#x016f;"/>
+
+<gentext key="the section called"       text="odd&#x00ed;l nazvan&#x00fd;"/>
+
+<dingbat key="startquote" text="&#x201e;"/>
+<dingbat key="endquote" text="&#x201c;"/>
+<dingbat key="nestedstartquote" text="&#x201a;"/>
+<dingbat key="nestedendquote" text="&#x2018;"/>
+<dingbat key="bullet" text="&#x2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="figure" text="%n"/>
+<xref element="example" text="%n"/>
+<xref element="table" text="%n"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/da.xml b/help-converters/docbook/docbook/common/da.xml
new file mode 100644
index 0000000..9590502
--- /dev/null
+++ b/help-converters/docbook/docbook/common/da.xml
@@ -0,0 +1,98 @@
+<localization language="da">
+
+<gentext key="abstract"                 text="Abstract"/>
+<gentext key="appendix"                 text="Appendiks"/>
+<gentext key="article"                  text="Article"/>
+<gentext key="bibliography"             text="Bibliografi"/>
+<gentext key="book"                     text="Book"/>
+<gentext key="caution"                  text="BEM&#198;RK"/>
+<gentext key="caution"                  text="Bem&#230;rk"/>
+<gentext key="chapter"                  text="Kapitel"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Tilegnet"/>
+<gentext key="edition"                  text="Udgave"/>
+<gentext key="equation"                 text="Ligning"/>
+<gentext key="example"                  text="Eksempel"/>
+<gentext key="figure"                   text="Figur"/>
+<gentext key="glosssee"                 text="Se"/>
+<gentext key="glossseealso"             text="Se ogs&#229;"/>
+<gentext key="glossary"                 text="Stikordregister"/>
+<gentext key="important"                text="VIGTIGT"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="Vigtigt"/>
+<gentext key="index"                    text="Index"/>
+<gentext key="legalnotice"              text=""/>
+<gentext key="msgaud"                   text="M&#229;lgruppe"/>
+<gentext key="msglevel"                 text="Niveau"/>
+<gentext key="msgorig"                  text="Grundlag"/>
+<gentext key="note"                     text="NOTE"/>
+<gentext key="note"                     text="Note"/>
+<gentext key="part"                     text="Del"/>
+<gentext key="preface"                  text="Forord"/>
+<gentext key="procedure"                text="Procedure"/>
+<gentext key="pubdate"                  text="Udgivet"/>
+<gentext key="published"                text="Published"/>
+<gentext key="refname"                  text="Navn"/>
+<gentext key="reference"                text="Reference"/>
+<gentext key="revision"                 text="Revision"/>
+<gentext key="revhistory"               text="Revision historie"/>
+<gentext key="section"                  text="Afsnit"/>
+<gentext key="see"                      text="Se"/>
+<gentext key="seealso"                  text="Se ogs&#229;"/>
+<gentext key="set"                      text="Set"/>
+<gentext key="setindex"                 text="Set Index"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="step"                     text="Skridt"/>
+<gentext key="tip"                      text="TIP"/>
+<gentext key="table"                    text="Tabel"/>
+<gentext key="tip"                      text="Tip"/>
+<gentext key="warning"                  text="ADVARSEL"/>
+<gentext key="warning"                  text="Advarsel"/>
+<gentext key="appendix"                 text="appendiks"/>
+<gentext key="chapter"                  text="kapitel"/>
+<gentext key="section"                  text="sektion"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="step"                     text="skridt"/>
+<gentext key="seealso"                  text="Se ogs&#229;"/>
+
+<gentext key="TableofContents"          text="Indholdsfortegnelse"/>
+<gentext key="by"                       text="af"/>
+<gentext key="Edited"                   text="Redigeret"/>
+<gentext key="Editedby"                 text="Redigeret af"/>
+<gentext key="and"                      text="og"/>
+<gentext key="Notes"                    text="Slutbem&#230;rkning:"/>
+<gentext key="TableNotes"               text="Noter:"/>
+<gentext key="nonexistantelement"       text="non-existant element"/>
+<gentext key="Pgs"                      text="siderne"/>
+<gentext key="unsupported"              text="unsupported"/>
+<gentext key="xrefto"                   text="xref to"/>
+<gentext key="unexpectedelementname"    text="Unexpected element name"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="Liste over alle tabeller"/>
+<gentext key="ListofExamples"           text="Liste over alle eksempler"/>
+<gentext key="ListofFigures"            text="Liste over alle figurer"/>
+<gentext key="ListofEquations"          text="Liste over alle ligninger"/>
+<gentext key="ListofUnknown"            text="Liste over alle ????"/>
+
+<gentext key="nav-prev"                 text="Forrige"/>
+<gentext key="nav-prev-sibling"         text="Hurtigt tilbage"/>
+<gentext key="nav-next-sibling"         text="Hurtigt fremad"/>
+<gentext key="nav-next"                 text="N&#230;ste"/>
+<gentext key="nav-up"                   text="Op"/>
+<gentext key="nav-home"                 text="Hjem"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/de.xml b/help-converters/docbook/docbook/common/de.xml
new file mode 100644
index 0000000..33d3e81
--- /dev/null
+++ b/help-converters/docbook/docbook/common/de.xml
@@ -0,0 +1,99 @@
+<localization language="de">
+<!--
+  Contributions by: Michael Burschik, burschik id-pro de
+-->
+
+<gentext key="abstract"                 text="Zusammenfassung"/>
+<gentext key="appendix"                 text="Anhang"/>
+<gentext key="article"                  text="Artikel"/>
+<gentext key="bibliography"             text="Literaturverzeichnis"/>
+<gentext key="book"                     text="Buch"/>
+<gentext key="caution"                  text="Achtung"/>
+<gentext key="chapter"                  text="Kapitel"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Widmung"/>
+<gentext key="edition"                  text="Ausgabe"/>
+<gentext key="equation"                 text="Gleichung"/>
+<gentext key="example"                  text="Beispiel"/>
+<gentext key="figure"                   text="Abbildung"/>
+<gentext key="glosssee"                 text="Siehe"/>
+<gentext key="glossseealso"             text="Siehe auch"/>
+<gentext key="glossary"                 text="Glossar"/>
+<gentext key="important"                text="WICHTIG"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="Wichtig"/>
+<gentext key="index"                    text="Stichwortverzeichnis"/>
+<gentext key="legalnotice"              text="Rechtlicher Hinweis"/>
+<gentext key="msgaud"                   text="Zielgruppe"/>
+<gentext key="msglevel"                 text="Dringlichkeit"/>
+<gentext key="msgorig"                  text="Ursprung"/>
+<gentext key="note"                     text="Anmerkung"/>
+<gentext key="part"                     text="Teil"/>
+<gentext key="preface"                  text="Vorwort"/>
+<gentext key="procedure"                text="Prozedur"/>
+<gentext key="published"                text="Ver&#x00F6;ffentlicht"/>
+<gentext key="refname"                  text="Name"/>
+<gentext key="reference"                text="Verweis"/>
+<gentext key="refsection"               text="Abschnitt"/>
+<gentext key="refsynopsisdiv"           text="Synopsis"/> <!--en-->
+<gentext key="revhistory"               text="Versionsgeschichte"/>
+<gentext key="revision"                 text="Version"/>
+<gentext key="section"                  text="Abschnitt"/>
+<gentext key="see"                      text="Siehe"/>
+<gentext key="seealso"                  text="Siehe auch"/>
+<gentext key="seealso"                  text="Siehe auch"/>
+<gentext key="set"                      text="Satz"/>
+<gentext key="setindex"                 text="Stichwortverzeichnis"/>
+<gentext key="sidebar"                  text="Randnotiz"/>
+<gentext key="step"                     text="Schritt"/>
+<gentext key="tip"                      text="TIP"/>
+<gentext key="table"                    text="Tabelle"/>
+<gentext key="tip"                      text="Tip"/>
+<gentext key="warning"                  text="WARNUNG"/>
+<gentext key="appendix"                 text="Anhang"/>
+<gentext key="chapter"                  text="Kapitel"/>
+<gentext key="section"                  text="Abschnitt"/>
+<gentext key="step"                     text="Schritt"/>
+
+<gentext key="TableofContents"          text="Inhaltsverzeichnis"/>
+<gentext key="in"                       text="in"/>
+<gentext key="by"                       text="von"/>
+<gentext key="Edited"                   text="Herausgegeben"/>
+<gentext key="Editedby"                 text="Herausgegeben von"/>
+<gentext key="and"                      text="und"/>
+<gentext key="Notes"                    text="Fu&#x00DF;noten"/>
+<gentext key="TableNotes"               text="Bemerkungen"/>
+<gentext key="nonexistantelement"       text="nicht existierendes Element"/>
+<gentext key="Pgs"                      text="Seiten"/>
+<gentext key="unsupported"              text="wird nicht unterst&#x00FC;tzt"/>
+<gentext key="xrefto"                   text="xref auf"/>
+<gentext key="unexpectedelementname"            text="Unerwarteter Elementname"/>
+<gentext key="Revisedby"                text="Ge&#x00E4;ndert durch: "/>
+
+<gentext key="ListofTables"             text="Tabellenverzeichnis"/>
+<gentext key="ListofExamples"           text="Beispiele"/>
+<gentext key="ListofFigures"            text="Abbildungsverzeichnis"/>
+<gentext key="ListofEquations"                  text="Gleichungen"/>
+<gentext key="ListofUnknown"            text="???-Verzeichnis"/>
+
+<gentext key="nav-prev"                 text="Zur&#x00FC;ck"/>
+<gentext key="nav-prev-sibling"         text="Schnell zur&#x00FC;ck"/>
+<gentext key="nav-next-sibling"         text="Schnell vor"/>
+<gentext key="nav-next"                 text="Vor"/>
+<gentext key="nav-up"                   text="Hoch"/>
+<gentext key="nav-home"                 text="Anfang"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/el.xml b/help-converters/docbook/docbook/common/el.xml
new file mode 100644
index 0000000..ad93032
--- /dev/null
+++ b/help-converters/docbook/docbook/common/el.xml
@@ -0,0 +1,104 @@
+<localization language="el">
+
+<gentext key="abstract"                 text="&#208;&#229;&#241;&#223;&#235;&#231;&#248;&#231;"/>
+<gentext key="answer"                   text="&#193;:"/>
+<gentext key="appendix"                 text="&#208;&#225;&#241;&#220;&#241;&#244;&#231;&#236;&#225;"/>
+<gentext key="article"                  text="&#182;&#241;&#232;&#241;&#239;"/>
+<gentext key="bibliography"             text="&#194;&#233;&#226;&#235;&#233;&#239;&#227;&#241;&#225;&#246;&#223;&#225;"/>
+<gentext key="book"                     text="&#194;&#233;&#226;&#235;&#223;&#239;"/>
+<gentext key="caution"                  text="&#208;&#209;&#207;&#211;&#207;&#215;&#199;"/>
+<gentext key="caution"                  text="&#208;&#241;&#239;&#243;&#239;&#247;&#222;"/>
+<gentext key="chapter"                  text="&#202;&#229;&#246;&#220;&#235;&#225;&#233;&#239;"/>
+<gentext key="colophon"                 text="&#202;&#239;&#241;&#249;&#237;&#223;&#228;&#225;"/>
+<gentext key="copyright"                text="&#208;&#237;&#229;&#245;&#236;&#225;&#244;&#233;&#234;&#220; &#196;&#233;&#234;&#225;&#233;&#254;&#236;&#225;&#244;&#225;"/>
+<gentext key="dedication"               text="&#193;&#246;&#233;&#221;&#241;&#249;&#243;&#231;"/>
+<gentext key="edition"                  text="&#184;&#234;&#228;&#239;&#243;&#231;"/>
+<gentext key="equation"                 text="&#197;&#238;&#223;&#243;&#249;&#243;&#231;"/>
+<gentext key="example"                  text="&#208;&#225;&#241;&#220;&#228;&#229;&#233;&#227;&#236;&#225;"/>
+<gentext key="figure"                   text="&#211;&#247;&#222;&#236;&#225;"/>
+<gentext key="glosssee"                 text="&#196;&#229;&#223;&#244;&#229;"/>
+<gentext key="glossseealso"             text="&#196;&#229;&#223;&#244;&#229; &#197;&#240;&#223;&#243;&#231;&#242;"/>
+<gentext key="glossary"                 text="&#195;&#235;&#249;&#243;&#243;&#220;&#241;&#233;&#239;"/>
+<gentext key="important"                text="&#211;&#199;&#204;&#193;&#205;&#212;&#201;&#202;&#207;"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="&#211;&#231;&#236;&#225;&#237;&#244;&#233;&#234;&#252;"/>
+<gentext key="index"                    text="&#197;&#245;&#241;&#229;&#244;&#222;&#241;&#233;&#239;"/>
+<gentext key="legalnotice"              text="&#205;&#239;&#236;&#233;&#234;&#222; &#211;&#231;&#236;&#229;&#223;&#249;&#243;&#231;"/>
+<gentext key="msgaud"                   text="&#193;&#234;&#241;&#239;&#225;&#244;&#222;&#241;&#233;&#239;"/>
+<gentext key="msglevel"                 text="&#197;&#240;&#223;&#240;&#229;&#228;&#239;"/>
+<gentext key="msgorig"                  text="&#208;&#231;&#227;&#222;"/>
+<gentext key="note"                     text="&#211;&#199;&#204;&#197;&#201;&#217;&#211;&#199;"/>
+<gentext key="note"                     text="&#211;&#231;&#236;&#229;&#223;&#249;&#243;&#231;"/>
+<gentext key="part"                     text="&#204;&#221;&#241;&#239;&#242;"/>
+<gentext key="preface"                  text="&#197;&#233;&#243;&#225;&#227;&#249;&#227;&#222;"/>
+<gentext key="procedure"                text="&#196;&#233;&#225;&#228;&#233;&#234;&#225;&#243;&#223;&#225;"/>
+<gentext key="published"                text="&#196;&#231;&#236;&#239;&#243;&#233;&#229;&#245;&#236;&#221;&#237;&#239;"/>
+<gentext key="question"                 text="&#197;:"/>
+<gentext key="refentry"                 text=""/>
+<gentext key="reference"                text="&#193;&#237;&#225;&#246;&#239;&#241;&#220;"/>
+<gentext key="refname"                  text="&#188;&#237;&#239;&#236;&#225;"/>
+<gentext key="refsection"               text=""/>
+<gentext key="refsynopsisdiv"           text="&#211;&#253;&#237;&#239;&#248;&#231;"/>
+<gentext key="revision"                 text="&#193;&#237;&#225;&#232;&#229;&#254;&#241;&#231;&#243;&#231;"/>
+<gentext key="revhistory"               text="&#201;&#243;&#244;&#239;&#241;&#233;&#234;&#252; &#193;&#237;&#225;&#232;&#229;&#249;&#241;&#222;&#243;&#229;&#249;&#237;"/>
+<gentext key="section"                  text="&#212;&#236;&#222;&#236;&#225;"/>
+<gentext key="see"                      text="&#196;&#229;&#223;&#244;&#229;"/>
+<gentext key="seealso"                  text="&#196;&#229;&#223;&#244;&#229; &#197;&#240;&#223;&#243;&#231;&#242;"/>
+<gentext key="set"                      text="&#211;&#253;&#237;&#239;&#235;&#239;"/>
+<gentext key="setindex"                 text="&#197;&#245;&#241;&#229;&#244;&#222;&#241;&#233;&#239; &#211;&#245;&#237;&#252;&#235;&#249;&#237;"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="step"                     text="&#214;&#220;&#243;&#231;"/>
+<gentext key="tip"                      text="&#213;&#208;&#207;&#196;&#197;&#201;&#206;&#199;"/>
+<gentext key="table"                    text="&#208;&#223;&#237;&#225;&#234;&#225;&#242;"/>
+<gentext key="tip"                      text="&#213;&#240;&#252;&#228;&#229;&#233;&#238;&#231;"/>
+<gentext key="warning"                  text="&#208;&#209;&#207;&#197;&#201;&#196;&#207;&#208;&#207;&#201;&#199;&#211;&#199;"/>
+<gentext key="warning"                  text="&#208;&#241;&#239;&#229;&#233;&#228;&#239;&#240;&#239;&#223;&#231;&#243;&#231;"/>
+<gentext key="appendix"                 text="&#240;&#225;&#241;&#220;&#241;&#244;&#231;&#236;&#225;"/>
+<gentext key="chapter"                  text="&#234;&#229;&#246;&#220;&#235;&#225;&#233;&#239;"/>
+<gentext key="section"                  text="&#244;&#236;&#222;&#236;&#225;"/>
+<gentext key="sidebar"                  text="&#229;&#240;&#229;&#238;&#231;&#227;&#231;&#236;&#225;&#244;&#233;&#234;&#252; &#240;&#235;&#229;&#245;&#241;&#233;&#234;&#252; &#225;&#241;&#232;&#241;&#223;&#228;&#233;&#239;"/>
+<gentext key="step"                     text="&#246;&#220;&#243;&#231;"/>
+<gentext key="seealso"                  text="&#196;&#229;&#223;&#244;&#229; &#229;&#240;&#223;&#243;&#231;&#242;"/>
+
+<gentext key="TableofContents"          text="&#208;&#223;&#237;&#225;&#234;&#225;&#242; &#208;&#229;&#241;&#233;&#229;&#247;&#239;&#236;&#221;&#237;&#249;&#237;"/>
+<gentext key="in"                       text="&#243;&#229;"/>
+<gentext key="by"                       text="&#225;&#240;&#252;"/>
+<gentext key="Edited"                   text="&#197;&#240;&#233;&#236;&#221;&#235;&#229;&#233;&#225;"/>
+<gentext key="Editedby"                 text="&#197;&#240;&#233;&#236;&#221;&#235;&#229;&#233;&#225; &#225;&#240;&#252;"/>
+<gentext key="and"                      text="&#234;&#225;&#233;"/>
+<gentext key="Notes"                    text="&#211;&#231;&#236;&#229;&#233;&#254;&#243;&#229;&#233;&#242;"/>
+<gentext key="TableNotes"               text="&#208;&#223;&#237;&#225;&#234;&#225;&#242; &#211;&#231;&#236;&#229;&#233;&#254;&#243;&#229;&#249;&#237;"/>
+<gentext key="nonexistantelement"       text="&#236;&#231;-&#245;&#240;&#225;&#241;&#234;&#244;&#252; &#243;&#244;&#239;&#233;&#247;&#229;&#223;&#239;"/>
+<gentext key="Pgs"                      text="&#211;&#235;&#228;&#242;."/>
+<gentext key="unsupported"              text="&#236;&#231; &#245;&#240;&#239;&#243;&#244;&#231;&#241;&#233;&#230;&#252;&#236;&#229;&#237;&#239;"/>
+<gentext key="xrefto"                   text="&#225;&#237;&#244;&#233;&#240;&#225;&#241;&#225;&#240;&#239;&#236;&#240;&#222; &#243;&#229;"/>
+<gentext key="unexpectedelementname"    text="&#204;&#231; &#225;&#237;&#225;&#236;&#229;&#237;&#252;&#236;&#229;&#237;&#239; &#252;&#237;&#239;&#236;&#225; &#243;&#244;&#239;&#233;&#247;&#229;&#223;&#239;&#245;"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#208;&#233;&#237;&#220;&#234;&#249;&#237;"/>
+<gentext key="ListofExamples"           text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#208;&#225;&#241;&#225;&#228;&#229;&#233;&#227;&#236;&#220;&#244;&#249;&#237;"/>
+<gentext key="ListofFigures"            text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#211;&#247;&#231;&#236;&#220;&#244;&#249;&#237;"/>
+<gentext key="ListofEquations"          text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#197;&#238;&#233;&#243;&#254;&#243;&#229;&#249;&#237;"/>
+<gentext key="ListofUnknown"            text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#193;&#227;&#237;&#254;&#243;&#244;&#249;&#237;"/>
+
+<gentext key="nav-prev"                 text="&#208;&#241;&#239;&#231;&#227;"/>
+<gentext key="nav-prev-sibling"         text="&#208;&#241;&#239;&#242; &#244;&#231;&#237; &#225;&#241;&#247;&#222;"/>
+<gentext key="nav-next-sibling"         text="&#208;&#241;&#239;&#242; &#244;&#239; &#244;&#221;&#235;&#239;&#242;"/>
+<gentext key="nav-next"                 text="&#197;&#240;&#252;&#236;&#229;&#237;&#239;"/>
+<gentext key="nav-up"                   text="&#208;&#220;&#237;&#249;"/>
+<gentext key="nav-home"                 text="&#193;&#241;&#247;&#222;"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/en.xml b/help-converters/docbook/docbook/common/en.xml
new file mode 100644
index 0000000..a105370
--- /dev/null
+++ b/help-converters/docbook/docbook/common/en.xml
@@ -0,0 +1,102 @@
+<localization language="en">
+
+<gentext key="abstract"                 text="Abstract"/>
+<gentext key="answer"                   text="A:"/>
+<gentext key="appendix"                 text="Appendix"/>
+<gentext key="article"                  text="Article"/>
+<gentext key="bibliography"             text="Bibliography"/>
+<gentext key="book"                     text="Book"/>
+<gentext key="caution"                  text="Caution"/>
+<gentext key="chapter"                  text="Chapter"/>
+<gentext key="colophon"                 text="Colophon"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Dedication"/>
+<gentext key="edition"                  text="Edition"/>
+<gentext key="equation"                 text="Equation"/>
+<gentext key="example"                  text="Example"/>
+<gentext key="figure"                   text="Figure"/>
+<gentext key="glossary"                 text="Glossary"/>
+<gentext key="glosssee"                 text="See"/>
+<gentext key="glossseealso"             text="See Also"/>
+<gentext key="important"                text="Important"/>
+<gentext key="index"                    text="Index"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="legalnotice"              text="Legal Notice"/>
+<gentext key="msgaud"                   text="Audience"/>
+<gentext key="msglevel"                 text="Level"/>
+<gentext key="msgorig"                  text="Origin"/>
+<gentext key="note"                     text="Note"/>
+<gentext key="part"                     text="Part"/>
+<gentext key="preface"                  text="Preface"/>
+<gentext key="procedure"                text="Procedure"/>
+<gentext key="published"                text="Published"/>
+<gentext key="question"                 text="Q:"/>
+<gentext key="refentry"                 text=""/>
+<gentext key="reference"                text="Reference"/>
+<gentext key="refname"                  text="Name"/>
+<gentext key="refsection"               text=""/>
+<gentext key="refsynopsisdiv"           text="Synopsis"/>
+<gentext key="revhistory"               text="Revision History"/>
+<gentext key="revision"                 text="Revision"/>
+<gentext key="section"                  text="Section"/>
+<gentext key="sect1"                    text="Section"/>
+<gentext key="sect2"                    text="Section"/>
+<gentext key="sect3"                    text="Section"/>
+<gentext key="sect4"                    text="Section"/>
+<gentext key="sect5"                    text="Section"/>
+<gentext key="see"                      text="See"/>
+<gentext key="seealso"                  text="See Also"/>
+<gentext key="set"                      text="Set"/>
+<gentext key="setindex"                 text="Set Index"/>
+<gentext key="sidebar"                  text="Sidebar"/>
+<gentext key="step"                     text="Step"/>
+<gentext key="table"                    text="Table"/>
+<gentext key="tip"                      text="Tip"/>
+<gentext key="warning"                  text="Warning"/>
+
+<gentext key="TableofContents"          text="Table of Contents"/>
+<gentext key="in"                       text="in"/>
+<gentext key="by"                       text="by"/>
+<gentext key="Edited"                   text="Edited"/>
+<gentext key="Editedby"                 text="Edited by"/>
+<gentext key="and"                      text="and"/>
+<gentext key="Notes"                    text="Notes"/>
+<gentext key="TableNotes"               text="Notes"/>
+<gentext key="nonexistantelement"       text="non-existant element"/>
+<gentext key="Pgs"                      text="Pgs."/>
+<gentext key="unsupported"              text="unsupported"/>
+<gentext key="xrefto"                   text="xref to"/>
+<gentext key="unexpectedelementname"    text="Unexpected element name"/>
+<gentext key="Revisedby"                text="Revised by:"/>
+
+<gentext key="ListofTables"             text="List of Tables"/>
+<gentext key="ListofExamples"           text="List of Examples"/>
+<gentext key="ListofFigures"            text="List of Figures"/>
+<gentext key="ListofEquations"          text="List of Equations"/>
+<gentext key="ListofUnknown"            text="List of Unknown"/>
+
+<gentext key="nav-prev"                 text="Prev"/>
+<gentext key="nav-prev-sibling"         text="Fast Backward"/>
+<gentext key="nav-next-sibling"         text="Fast Forward"/>
+<gentext key="nav-next"                 text="Next"/>
+<gentext key="nav-up"                   text="Up"/>
+<gentext key="nav-home"                 text="Home"/>
+
+<gentext key="the section called"       text="the section called"/>
+
+<gentext key="index symbols"            text="Symbols"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="bibliography" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/es.xml b/help-converters/docbook/docbook/common/es.xml
new file mode 100644
index 0000000..78483df
--- /dev/null
+++ b/help-converters/docbook/docbook/common/es.xml
@@ -0,0 +1,98 @@
+<localization language="es">
+
+<gentext key="abstract"                 text="Resumen"/>
+<gentext key="appendix"                 text="Ap&#x00E9;ndice"/>
+<gentext key="article"                  text="Art&#x00ED;culo"/>
+<gentext key="bibliography"             text="Bibliograf&#x00ED;a"/>
+<gentext key="book"                     text="Libro"/>
+<gentext key="caution"                  text="ATENCI&#x00D3;N"/>
+<gentext key="caution"                  text="Atenci&#x00F3;n"/>
+<gentext key="chapter"                  text="Cap&#x00ED;tulo"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Dedicado"/>
+<gentext key="edition"                  text="Edici&#x00F3;n"/>
+<gentext key="equation"                 text="Ecuaci&#x00F3;n"/>
+<gentext key="example"                  text="Ejemplo"/>
+<gentext key="figure"                   text="Figura"/>
+<gentext key="glosssee"                 text="Ver"/>
+<gentext key="glossseealso"             text="Ver tambi&#x00E9;n"/>
+<gentext key="glossary"                 text="Glosario"/>
+<gentext key="important"                text="IMPORTANTE"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="Importante"/>
+<gentext key="index"                    text="&#x00CD;ndice"/>
+<gentext key="legalnotice"              text="Aviso Legal"/>
+<gentext key="msgaud"                   text="Audiencia"/>
+<gentext key="msglevel"                 text="Nivel"/>
+<gentext key="msgorig"                  text="Origen"/>
+<gentext key="note"                     text="NOTA"/>
+<gentext key="note"                     text="Nota"/>
+<gentext key="part"                     text="Parte"/>
+<gentext key="preface"                  text="Prefacio"/>
+<gentext key="procedure"                text="Procedimiento"/>
+<gentext key="pubdate"                  text="Fecha de publicaci&#x00F3;n"/>
+<gentext key="published"                text="Publicado"/>
+<gentext key="refname"                  text="Nombre"/>
+<gentext key="reference"                text="Referencia"/>
+<gentext key="revision"                 text="Revisi&#x00F3;n"/>
+<gentext key="revhistory"               text="Historial de revisiones"/>
+<gentext key="section"                  text="Secci&#x00F3;n"/>
+<gentext key="see"                      text="Ver"/>
+<gentext key="seealso"                  text="Ver Tambi&#x00E9;n"/>
+<gentext key="set"                      text="Conjunto"/>
+<gentext key="setindex"                 text="&#x00CD;ndice del conjunto"/>
+<gentext key="sidebar"                  text="Sidebar"/>
+<gentext key="step"                     text="Paso"/>
+<gentext key="tip"                      text="SUGERENCIA"/>
+<gentext key="table"                    text="Tabla"/>
+<gentext key="tip"                      text="Sugerencia"/>
+<gentext key="warning"                  text="AVISO"/>
+<gentext key="warning"                  text="Aviso"/>
+<gentext key="appendix"                 text="ap&#x00E9;ndice"/>
+<gentext key="chapter"                  text="cap&#x00ED;tulo"/>
+<gentext key="section"                  text="secci&#x00F3;n"/>
+<gentext key="step"                     text="paso"/>
+<gentext key="seealso"                  text="Ver Tambi&#x00E9;n"/>
+
+<gentext key="TableofContents"          text="Tabla de contenidos"/>
+<gentext key="in"                       text="en"/>
+<gentext key="by"                       text="por"/>
+<gentext key="Edited"                   text="Editado"/>
+<gentext key="Editedby"                 text="Editado por"/>
+<gentext key="and"                      text="y"/>
+<gentext key="Notes"                    text="Notas"/>
+<gentext key="TableNotes"               text="Notas"/>
+<gentext key="nonexistantelement"       text="elemento inexistente"/>
+<gentext key="Pgs"                      text="Pags."/>
+<gentext key="unsupported"              text="no soportado"/>
+<gentext key="xrefto"                   text="referido a"/>
+<gentext key="unexpectedelementname"    text="Nombre de elemento inesperado"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="Lista de tablas"/>
+<gentext key="ListofExamples"           text="Tabla de ejemplos"/>
+<gentext key="ListofFigures"            text="Tabla de figuras"/>
+<gentext key="ListofEquations"          text="Tabla de ecuaciones"/>
+<gentext key="ListofUnknown"            text="Lista de ???"/>
+
+<gentext key="nav-prev"                 text="Anterior"/>
+<gentext key="nav-prev-sibling"         text="Retroceder"/>
+<gentext key="nav-next-sibling"         text="Avanzar"/>
+<gentext key="nav-next"                 text="Siguiente"/>
+<gentext key="nav-up"                   text="Subir"/>
+<gentext key="nav-home"                 text="Inicio"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/et.xml b/help-converters/docbook/docbook/common/et.xml
new file mode 100644
index 0000000..4c63adb
--- /dev/null
+++ b/help-converters/docbook/docbook/common/et.xml
@@ -0,0 +1,104 @@
+<localization language="et">
+
+<gentext key="abstract"       text="&#220;levaade"/>
+<gentext key="answer"         text="V:"/>
+<gentext key="appendix"       text="Lisa"/>
+<gentext key="article"        text="Artikkel"/>
+<gentext key="bibliography"   text="Bibliograafia"/>
+<gentext key="book"           text="Raamat"/>
+<gentext key="caution"        text="ETTEVAATUST"/>
+<gentext key="caution"        text="Ettevaatust"/>
+<gentext key="chapter"        text="Peat&#252;kk"/>
+<gentext key="colophon"       text="L&#245;pum&#228;rgis"/>
+<gentext key="copyright"      text="Autori&#245;igus"/>
+<gentext key="dedication"     text="P&#252;hendus"/>
+<gentext key="edition"        text="V&#228;ljaanne"/>
+<gentext key="equation"       text="Valem"/>
+<gentext key="example"        text="N&#228;ide"/>
+<gentext key="figure"         text="Joonis"/>
+<gentext key="glosssee"       text="Vt."/>
+<gentext key="glossseealso"   text="Vt. ka"/>
+<gentext key="glossary"       text="S&#245;nastik"/>
+<gentext key="important"      text="OLULINE"/>
+<gentext key="isbn"           text="ISBN"/>
+<gentext key="important"      text="Oluline"/>
+<gentext key="index"          text="Aineregister"/>
+<gentext key="legalnotice"    text="Autori&#245;iguse m&#228;rge"/>
+<gentext key="msgaud"         text="Auditoorium"/>
+<gentext key="msglevel"       text="Tase"/>
+<gentext key="msgorig"        text="Algallikas"/>
+<gentext key="note"           text="M&#196;RKUS"/>
+<gentext key="note"           text="M&#228;rkus"/>
+<gentext key="part"           text="Osa"/>
+<gentext key="preface"        text="Eess&#245;na"/>
+<gentext key="procedure"      text="Protseduur"/>
+<gentext key="published"      text="Avaldatud"/>
+<gentext key="question"       text="K:"/>
+<gentext key="refentry"       text=""/>
+<gentext key="reference"      text="Viide"/>
+<gentext key="refname"        text="Nimi"/>
+<gentext key="refsection"     text="L&#245;ik"/>
+<gentext key="refsynopsisdiv" text="S&#252;nopsis"/>
+<gentext key="revision"       text="Vigade parandus"/>
+<gentext key="revhistory"     text="Vigade paranduste ajalugu"/>
+<gentext key="section"        text="Sektsioon"/>
+<gentext key="see"            text="Vt."/>
+<gentext key="seealso"        text="Vt. ka"/>
+<gentext key="set"            text="Sea"/>
+<gentext key="setindex"       text="Sea indeks"/>
+<gentext key="sidebar"        text=""/>
+<gentext key="step"           text="Samm"/>
+<gentext key="tip"            text="VIHJE"/>
+<gentext key="table"          text="Tabel"/>
+<gentext key="tip"            text="Vihje"/>
+<gentext key="warning"        text="HOIATUS"/>
+<gentext key="warning"        text="Hoiatus"/>
+<gentext key="appendix"       text="lisa"/>
+<gentext key="chapter"        text="peat&#252;kk"/>
+<gentext key="section"        text="l&#245;ik"/>
+<gentext key="sidebar"        text="k&#252;lgriba"/>
+<gentext key="step"           text="samm"/>
+<gentext key="seealso"        text="Vt. ka"/>
+
+<gentext key="TableofContents" text="Sisukord"/>
+<gentext key="in" text=""/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="Redaktsioon"/>
+<gentext key="Editedby" text="Redaktsiooni autor(id)"/>
+<gentext key="and" text="ja"/>
+<gentext key="Notes" text="M&#228;rkused"/>
+<gentext key="TableNotes" text="M&#228;rkused"/>
+<gentext key="nonexistantelement" text="mitte eksisteeriv element"/>
+<gentext key="Pgs" text="Lk."/>
+<gentext key="unsupported" text="toetuseta"/>
+<gentext key="xrefto" text="viide"/>
+<gentext key="unexpectedelementname" text="Ootamatu elemendi nimi"/>
+<gentext key="Revisedby" text="&#220;le vaadanud: "/>
+
+<gentext key="ListofTables" text="Tabelite nimekiri"/>
+<gentext key="ListofExamples" text="N&#228;idete nimekiri"/>
+<gentext key="ListofFigures" text="Jooniste nimekiri"/>
+<gentext key="ListofEquations" text="Valemite nimekiri"/>
+<gentext key="ListofUnknown" text="Tundmatute nimekiri"/>
+
+<gentext key="nav-prev" text="Eelmine"/>
+<gentext key="nav-prev-sibling" text="Kiiresti tagasi"/>
+<gentext key="nav-next-sibling" text="Kiiresti edasi"/>
+<gentext key="nav-next" text="J&#228;rgmine"/>
+<gentext key="nav-up" text="&#220;les"/>
+<gentext key="nav-home" text="Koju"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/fi.xml b/help-converters/docbook/docbook/common/fi.xml
new file mode 100644
index 0000000..5d25725
--- /dev/null
+++ b/help-converters/docbook/docbook/common/fi.xml
@@ -0,0 +1,98 @@
+<localization language="fi">
+
+<gentext key="abstract"                 text="Lyhennelm&#228;"/>
+<gentext key="appendix"                 text="Liite"/>
+<gentext key="article"                  text="Artikkeli"/>
+<gentext key="bibliography"             text="L&#228;hteet"/>
+<gentext key="book"                     text="Kirja"/>
+<gentext key="caution"                  text="VARO"/>
+<gentext key="caution"                  text="Varo"/>
+<gentext key="chapter"                  text="Luku"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Omistus"/>
+<gentext key="edition"                  text="Edition"/>
+<gentext key="equation"                 text="Kaava"/>
+<gentext key="example"                  text="Esimerkki"/>
+<gentext key="figure"                   text="Kuva"/>
+<gentext key="glosssee"                 text="Katso"/>
+<gentext key="glossseealso"             text="Katso my&#246;s"/>
+<gentext key="glossary"                 text="Sanasto"/>
+<gentext key="important"                text="T&#196;RKE&#196;&#196;"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="T&#228;rke&#228;&#228;"/>
+<gentext key="index"                    text="Indeksi"/>
+<gentext key="legalnotice"              text=""/>
+<gentext key="msgaud"                   text="Yleis&#246;"/>
+<gentext key="msglevel"                 text="Taso"/>
+<gentext key="msgorig"                  text="Alkuper&#228;"/>
+<gentext key="note"                     text="HUOMAA"/>
+<gentext key="note"                     text="Huomaa"/>
+<gentext key="part"                     text="Osa"/>
+<gentext key="preface"                  text="Esipuhe"/>
+<gentext key="procedure"                text="Aliohjelma"/>
+<gentext key="published"                text="Julkaistu"/>
+<gentext key="refname"                  text="Nimi"/>
+<gentext key="reference"                text="L&#228;hdeluettelo"/>
+<gentext key="revision"                 text="Versio"/>
+<gentext key="revhistory"               text="Versiohistoria"/>
+<gentext key="section"                  text="Kohta"/>
+<gentext key="see"                      text="Katso"/>
+<gentext key="seealso"                  text="Katso my&#246;s"/>
+<gentext key="set"                      text="Kokoelma"/>
+<gentext key="setindex"                 text="Kokoelman indeksi"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="step"                     text="Step"/>
+<gentext key="tip"                      text="VIHJE"/>
+<gentext key="table"                    text="Taulu"/>
+<gentext key="tip"                      text="Vihje"/>
+<gentext key="warning"                  text="VAROITUS"/>
+<gentext key="warning"                  text="Varoitus"/>
+<gentext key="appendix"                 text="liite"/>
+<gentext key="chapter"                  text="luku"/>
+<gentext key="section"                  text="kohta"/>
+<gentext key="sidebar"                  text="sivupalkki"/>
+<gentext key="step"                     text="step"/>
+<gentext key="seealso"                  text="Katso my&#246;s"/>
+
+<gentext key="TableofContents"          text="Sis&#228;llys"/>
+<gentext key="in"                       text="teoksessa"/>
+<gentext key="by"                       text=""/>
+<gentext key="Edited"                   text="Toim."/>
+<gentext key="Editedby"                 text="Toimittanut"/>
+<gentext key="and"                      text="ja"/>
+<gentext key="Notes"                    text=""/>
+<gentext key="TableNotes"               text=""/>
+<gentext key="nonexistantelement"       text="elementti&#228; ei ole olemassa"/>
+<gentext key="Pgs"                      text="Sivut"/>
+<gentext key="unsupported"              text="ei tueta"/>
+<gentext key="xrefto"                   text="xref johonkin"/>
+<gentext key="unexpectedelementname"    text="Odottamaton elementin nimi"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="Luettelo tauluista"/>
+<gentext key="ListofExamples"           text="Luettelo esimerkeist&#228;"/>
+<gentext key="ListofFigures"            text="Luettelo kuvista"/>
+<gentext key="ListofEquations"          text="Luettelo esimerkeist&#228;"/>
+<gentext key="ListofUnknown"            text="Luettelo tuntemattomista"/>
+
+<gentext key="nav-prev"                 text="Edellinen"/>
+<gentext key="nav-prev-sibling"         text="Nopeasti taaksep&#x00E4;in"/>
+<gentext key="nav-next-sibling"         text="Nopeasti eteenp&#x00E4;in"/>
+<gentext key="nav-next"                 text="Seuraava"/>
+<gentext key="nav-up"                   text="Yl&#x00F6;s"/>
+<gentext key="nav-home"                 text="Alkuun"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/fr.xml b/help-converters/docbook/docbook/common/fr.xml
new file mode 100644
index 0000000..f99c07f
--- /dev/null
+++ b/help-converters/docbook/docbook/common/fr.xml
@@ -0,0 +1,99 @@
+<localization language="fr">
+
+<gentext key="abstract"                 text="R&#x00E9;sum&#x00E9;"/>
+<gentext key="answer"                   text="R:"/>
+<gentext key="appendix"                 text="Annexe"/>
+<gentext key="article"                  text="Article"/>
+<gentext key="bibliography"             text="Bibliographie"/>
+<gentext key="book"                     text="Livre"/>
+<gentext key="caution"                  text="Attention"/>
+<gentext key="chapter"                  text="Chapitre"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="D&#x00E9;dicace"/>
+<gentext key="edition"                  text="&#x00C9;dition"/>
+<gentext key="equation"                 text="&#x00C9;quation"/>
+<gentext key="example"                  text="Exemple"/>
+<gentext key="figure"                   text="Figure"/>
+<gentext key="glosssee"                 text="Voir"/>
+<gentext key="glossseealso"             text="Voir aussi"/>
+<gentext key="glossary"                 text="Glossaire"/>
+<gentext key="important"                text="IMPORTANT"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="Important"/>
+<gentext key="index"                    text="Index"/>
+<gentext key="legalnotice"              text="Note l&#x00E9;gale"/>
+<gentext key="msgaud"                   text="Public vis&#x00E9;"/>
+<gentext key="msglevel"                 text="Niveau"/>
+<gentext key="msgorig"                  text="Origine"/>
+<gentext key="note"                     text="Note"/>
+<gentext key="part"                     text="Partie"/>
+<gentext key="preface"                  text="Pr&#x00E9;face"/>
+<gentext key="procedure"                text="Proc&#x00E9;dure"/>
+<gentext key="published"                text="Publi&#x00E9;"/>
+<gentext key="question"                 text="Q:"/>
+<gentext key="refentry"                 text=""/>
+<gentext key="refname"                  text="Nom"/>
+<gentext key="refsection"               text=""/>
+<gentext key="reference"                text="R&#x00E9;f&#x00E9;rence"/>
+<gentext key="revhistory"               text="Historique des versions"/>
+<gentext key="revision"                 text="Version"/>
+<gentext key="section"                  text="Section"/>
+<gentext key="see"                      text="Voir"/>
+<gentext key="seealso"                  text="Voir Aussi"/>
+<gentext key="seealso"                  text="Voir aussi"/>
+<gentext key="set"                      text="Ensemble"/>
+<gentext key="setindex"                 text="Index"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="step"                     text="&#x00C9;tape"/>
+<gentext key="tip"                      text="TUYAU"/>
+<gentext key="table"                    text="Tableau"/>
+<gentext key="tip"                      text="Tuyau"/>
+<gentext key="warning"                  text="Avertissement"/>
+<gentext key="appendix"                 text="annexe"/>
+<gentext key="chapter"                  text="chapitre"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="section"                  text="section"/>
+<gentext key="step"                     text="&#x00E9;tape"/>
+
+<gentext key="TableofContents"          text="Table des mati&#x00E8;res"/>
+<gentext key="in"                       text="dans"/>
+<gentext key="by"                       text="par"/>
+<gentext key="Edited"                   text="Publi&#x00E9;"/>
+<gentext key="Editedby"                 text="Publi&#x00E9; par"/>
+<gentext key="and"                      text="et"/>
+<gentext key="Notes"                    text="Notes"/>
+<gentext key="TableNotes"               text="Remarques"/>
+<gentext key="nonexistantelement"       text="Cet &#x00E9;l&#x00E9;ment n'existe pas"/>
+<gentext key="Pgs"                      text="Pages"/>
+<gentext key="unsupported"              text="Non reconnu par le syst&#x00E8;me"/>
+<gentext key="xrefto"                   text="R&#x00E9;f&#x00E9;rence vers"/>
+<gentext key="unexpectedelementname"    text="Nom d'&#x00E9;l&#x00E9;ment non attendu"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="Liste des tableaux"/>
+<gentext key="ListofExamples"           text="Liste des exemples"/>
+<gentext key="ListofFigures"            text="Liste des illustrations"/>
+<gentext key="ListofEquations"          text="Liste des &#x00E9;quations"/>
+<gentext key="ListofUnknown"            text="Liste des inconnues"/>
+
+<gentext key="nav-prev"                 text="Pr&#x00E9;c&#x00E9;dent"/>
+<gentext key="nav-prev-sibling"         text="Fast Backward"/>
+<gentext key="nav-next-sibling"         text="Fast Forward"/>
+<gentext key="nav-next"                 text="Suivant"/>
+<gentext key="nav-up"                   text="Niveau sup&#x00E9;rieur"/>
+<gentext key="nav-home"                 text="Sommaire"/>
+
+<dingbat key="startquote" text="&#x00AB;"/>
+<dingbat key="endquote" text="&#x00BB;"/>
+<dingbat key="nestedstartquote" text="&#x00AB;"/>
+<dingbat key="nestedendquote" text="&#x00BB;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/hu.xml b/help-converters/docbook/docbook/common/hu.xml
new file mode 100644
index 0000000..d37e06f
--- /dev/null
+++ b/help-converters/docbook/docbook/common/hu.xml
@@ -0,0 +1,94 @@
+<localization language="hu">
+
+<gentext key="abstract"       text="Kivonat"/>
+<gentext key="answer"         text="V:"/>
+<gentext key="appendix"       text="F&#x0171;ggel&#x00E9;k"/>
+<gentext key="article"        text="Cikk"/>
+<gentext key="bibliography"   text="Irodalomjegyz&#x00E9;k"/>
+<gentext key="book"           text="K&#x0151;nyv"/>
+<gentext key="caution"        text="Figyelem"/>
+<gentext key="chapter"        text="Fejezet"/>
+<gentext key="colophon"       text="V&#x00E9;gsz&#x00F3;"/>
+<gentext key="copyright"      text="V&#x08e9;djegy"/>
+<gentext key="dedication"     text="Aj&#x00E1;nl&#x00E1;s"/>
+<gentext key="edition"        text="Kiad&#x00E1;s"/>
+<gentext key="equation"       text="Egyenlet"/>
+<gentext key="example"        text="P&#x00E9;lda"/>
+<gentext key="figure"         text="&#x00C1;bra"/>
+<gentext key="glosssee"       text="L&#x00E1;sd"/>
+<gentext key="glossseealso"   text="L&#x00E1;sd m&#x00E9;g"/>
+<gentext key="glossary"       text="Sz&#x00F3;jegyz&#x00E9;k"/>
+<gentext key="important"      text="FONTOS"/>
+<gentext key="isbn"           text="ISBN"/>
+<gentext key="important"      text="Fontos"/>
+<gentext key="index"          text="T&#x00E1;rgymutat&#x00F3;"/>
+<gentext key="legalnotice"    text="Jogi k&#x0151;zlem&#x00E9;ny"/>
+<gentext key="msgaud"         text="C&#x00E9;lk&#x0151;z&#x0151;ns&#x00E9;g"/>
+<gentext key="msglevel"       text="Szint"/>
+<gentext key="msgorig"        text="Eredet"/>
+<gentext key="note"           text="Megjegyz&#x00E9;s"/>
+<gentext key="part"           text="R&#x00E9;sz"/>
+<gentext key="preface"        text="El&#x0151;sz&#x00F3;"/>
+<gentext key="procedure"      text="Elj&#x00E1;r&#x00E1;s"/>
+<gentext key="published"      text="Megjelent"/>
+<gentext key="question"       text="K:"/>
+<gentext key="refentry"       text=""/>
+<gentext key="reference"      text="Referencia"/>
+<gentext key="refname"        text="N&#x00E9;v"/>
+<gentext key="refsection"     text=""/>
+<gentext key="refsynopsisdiv" text="&#x00C1;ttekint&#x00E9;s"/>
+<gentext key="revision"       text="Verzi&#x00F3;"/>
+<gentext key="revhistory"     text="Verzi&#x00F3;k t&#x0151;rt&#x00E9;nete"/>
+<gentext key="section"        text="Szakasz"/>
+<gentext key="see"            text="L&#x00E1;sd"/>
+<gentext key="seealso"        text="L&#x00E1;sd m&#x00E9;g"/>
+<gentext key="set"            text="Set"/> <!-- en -->
+<gentext key="setindex"       text="Set Index"/> <!-- en -->
+<gentext key="sidebar"        text=""/>
+<gentext key="step"           text="L&#x00E9;p&#x00E9;s"/>
+<gentext key="table"          text="T&#x00E1;bl&#x00E1;zat"/>
+<gentext key="tip"            text="Tipp"/>
+<gentext key="warning"        text="Figyelem"/>
+
+<gentext key="TableofContents" text="Tartalom"/>
+<gentext key="in" text=""/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="Szerk."/>
+<gentext key="Editedby" text="Szerkesztette"/>
+<gentext key="and" text="&#x00E9;s"/>
+<gentext key="Notes" text="Megjegyz&#x00E9;sek"/>
+<gentext key="TableNotes" text="Megjegyz&#x00E9;sek"/>
+<gentext key="nonexistantelement" text="nem l&#x00E9;tezo elem"/>
+<gentext key="Pgs" text="Lsz."/>
+<gentext key="unsupported" text="nem t&#x00E1;mogatott"/>
+<gentext key="xrefto" text="keresztref:"/>
+<gentext key="unexpectedelementname" text="Nem v&#x00E1;rt elemn&#x00E9;v"/>
+<gentext key="Revisedby" text="Megvizsg&#x00E1;lva: "/>
+
+<gentext key="ListofTables" text="T&#x00E1;bl&#x00E1;zatok list&#x00E1;ja"/>
+<gentext key="ListofExamples" text="P&#x00E9;ld&#x00E1;k list&#x00E1;ja"/>
+<gentext key="ListofFigures" text="&#x00C1;br&#x00E1;k list&#x00E1;ja"/>
+<gentext key="ListofEquations" text="Egyenletek list&#x00E1;ja"/>
+<gentext key="ListofUnknown" text="Egy&#x00E9;b elemek list&#x00E1;ja"/>
+
+<gentext key="nav-prev" text="Vissza"/>
+<gentext key="nav-prev-sibling" text="Gyors vissza"/>
+<gentext key="nav-next-sibling" text="Gyors Tov&#x00E1;bb"/>
+<gentext key="nav-next" text="Tov&#x00E1;bb"/>
+<gentext key="nav-up" text="Fel"/>
+<gentext key="nav-home" text="Tartalom"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%n %g %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/id.xml b/help-converters/docbook/docbook/common/id.xml
new file mode 100644
index 0000000..f85b021
--- /dev/null
+++ b/help-converters/docbook/docbook/common/id.xml
@@ -0,0 +1,104 @@
+<localization language="id">
+
+<gentext key="abstract"       text="Abstrak"/>
+<gentext key="answer"         text="Jawab:"/>
+<gentext key="appendix"       text="Lampiran"/>
+<gentext key="article"        text="Artikel"/>
+<gentext key="bibliography"   text="Bibliografi"/>
+<gentext key="book"           text="Buku"/>
+<gentext key="caution"        text="PERHATIAN"/>
+<gentext key="caution"        text="Perhatian"/>
+<gentext key="chapter"        text="Bab"/>
+<gentext key="colophon"       text="Kolofon"/>
+<gentext key="copyright"      text="Hak Cipta"/>
+<gentext key="dedication"     text="Dedikasi"/>
+<gentext key="edition"        text="Edisi"/>
+<gentext key="equation"       text="Persamaan"/>
+<gentext key="example"        text="Teladan"/>
+<gentext key="figure"         text="Gambar"/>
+<gentext key="glosssee"       text="Lihat"/>
+<gentext key="glossseealso"   text="Lihat Juga"/>
+<gentext key="glossary"       text="Daftar Istilah"/>
+<gentext key="important"      text="PENTING"/>
+<gentext key="isbn"           text="ISBN"/>
+<gentext key="important"      text="Penting"/>
+<gentext key="index"          text="Indeks"/>
+<gentext key="legalnotice"    text="Aspek Hukum"/>
+<gentext key="msgaud"         text="Pemirsa"/>
+<gentext key="msglevel"       text="Tingkatan"/>
+<gentext key="msgorig"        text="Asal"/>
+<gentext key="note"           text="CATATAN"/>
+<gentext key="note"           text="Catatan"/>
+<gentext key="part"           text="Bagian"/>
+<gentext key="preface"        text="Kata Pengantar"/>
+<gentext key="procedure"      text="Prosedur"/>
+<gentext key="published"      text="Diterbitkan"/>
+<gentext key="question"       text="Tanya:"/>
+<gentext key="refentry"       text=""/>
+<gentext key="reference"      text="Referensi"/>
+<gentext key="refname"        text="Nama"/>
+<gentext key="refsection"     text=""/>
+<gentext key="refsynopsisdiv" text="Sinopsis"/>
+<gentext key="revision"       text="Revisi"/>
+<gentext key="revhistory"     text="Catatan Revisi"/>
+<gentext key="section"        text="Bagian"/>
+<gentext key="see"            text="Lihat"/>
+<gentext key="seealso"        text="Lihat Juga"/>
+<gentext key="set"            text="Set"/>
+<gentext key="setindex"       text="Set Index"/>
+<gentext key="sidebar"        text=""/>
+<gentext key="step"           text="Tahap"/>
+<gentext key="tip"            text="TIP"/>
+<gentext key="table"          text="Tabel"/>
+<gentext key="tip"            text="Tip"/>
+<gentext key="warning"        text="AWAS"/>
+<gentext key="warning"        text="Awas"/>
+<gentext key="appendix"       text="lampiran"/>
+<gentext key="chapter"        text="bab"/>
+<gentext key="section"        text="bagian"/>
+<gentext key="sidebar"        text="sidebar"/>
+<gentext key="step"           text="tahap"/>
+<gentext key="seealso"        text="Lihat juga"/>
+
+<gentext key="TableofContents" text="Daftar Isi"/>
+<gentext key="in" text="di"/>
+<gentext key="by" text="oleh"/>
+<gentext key="Edited" text="disunting"/>
+<gentext key="Editedby" text="disunting oleh"/>
+<gentext key="and" text="dan"/>
+<gentext key="Notes" text="Catatan"/>
+<gentext key="TableNotes" text="Catatan"/>
+<gentext key="nonexistantelement" text="elemen tak tampak"/>
+<gentext key="Pgs" text="Hal."/>
+<gentext key="unsupported" text="tidak didukung"/>
+<gentext key="xrefto" text="xref ke"/>
+<gentext key="unexpectedelementname" text="Nama Elemen seharusnya tidak ada"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Daftar Tabel"/>
+<gentext key="ListofExamples" text="Daftar Teladan"/>
+<gentext key="ListofFigures" text="Daftar Gambar"/>
+<gentext key="ListofEquations" text="Daftar Persamaan"/>
+<gentext key="ListofUnknown" text="Daftar Gaib"/>
+
+<gentext key="nav-prev" text="Prev"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Next"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/it.xml b/help-converters/docbook/docbook/common/it.xml
new file mode 100644
index 0000000..a7e1063
--- /dev/null
+++ b/help-converters/docbook/docbook/common/it.xml
@@ -0,0 +1,103 @@
+<localization language="it">
+<!-- updates from camille mandrakesoft com -->
+
+<gentext key="abstract"                 text="Estratto"/>
+<gentext key="appendix"                 text="Appendice"/>
+<gentext key="article"                  text="Articolo"/>
+<gentext key="audience"                 text="Pubblico"/>
+<gentext key="bibliography"             text="Bibliografia"/>
+<gentext key="book"                     text="Libro"/>
+<gentext key="caution"                  text="CAUTELA"/>
+<gentext key="caution"                  text="Cautela"/>
+<gentext key="chapter"                  text="Capitolo"/>
+<gentext key="colophon"                 text="Colophon"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Dedica"/>
+<gentext key="edition"                  text="Edizione"/>
+<gentext key="equation"                 text="Equazione"/>
+<gentext key="example"                  text="Esempio"/>
+<gentext key="figure"                   text="Figura"/>
+<gentext key="glossary"                 text="Glossario"/>
+<gentext key="glosssee"                 text="Vedi"/>
+<gentext key="glossseealso"             text="Vedi anche"/>
+<gentext key="important"                text="IMPORTANTE"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="Importante"/>
+<gentext key="index"                    text="Indice"/>
+<gentext key="legalnotice"              text="Note legali"/>
+<gentext key="level"                    text="Livello"/>
+<gentext key="note"                     text="NOTA"/>
+<gentext key="name"                     text="Nome"/>
+<gentext key="note"                     text="Nota"/>
+<gentext key="origin"                   text="Origine"/>
+<gentext key="part"                     text="Parte"/>
+<gentext key="preface"                  text="Prefazione"/>
+<gentext key="procedure"                text="Procedura"/>
+<gentext key="published"                text="Pubblicato"/>
+<gentext key="reference"                text="Riferimento"/>
+<gentext key="revision"                 text="Revisione"/>
+<gentext key="history"                  text="Diario"/>
+<gentext key="refsynopsisdiv"           text="Sinossi"/>
+<gentext key="revisionhistory"          text="Diario delle revisioni"/>
+<gentext key="section"                  text="Sezione"/>
+<gentext key="see"                      text="Vd."/>
+<gentext key="seealso"                  text="Vd. Anche"/>
+<gentext key="seealso"                  text="Vd. anche"/>
+<gentext key="set"                      text="Raccolta"/>
+<gentext key="setindex"                 text="Indice Raccolta"/>
+<gentext key="sidebar"                  text="Nota a margine"/>
+<gentext key="step"                     text="Passaggio"/>
+<gentext key="tip"                      text="SUGGERIMENTO"/>
+<gentext key="table"                    text="Tabella"/>
+<gentext key="tip"                      text="Suggerimento"/>
+<gentext key="warning"                  text="ATTENZIONE"/>
+<gentext key="warning"                  text="Attenzione"/>
+<gentext key="appendix"                 text="appendice"/>
+<gentext key="chapter"                  text="capitolo"/>
+<gentext key="section"                  text="sezione"/>
+<gentext key="step"                     text="passaggio"/>
+
+<gentext key="TableofContents"          text="Sommario"/>
+<gentext key="called"                   text="intitolato"/>
+<gentext key="in"                       text="in"/>
+<gentext key="by"                       text="di"/>
+<gentext key="Edited"                   text="A cura"/>
+<gentext key="Editedby"                 text="A cura di"/>
+<gentext key="and"                      text="e"/>
+<gentext key="Notes"                    text="Note"/>
+<gentext key="TableNotes"               text="Note"/>
+<gentext key="nonexistantelement"       text="elemento non esistente"/>
+<gentext key="the"                      text="il"/>
+<gentext key="Pgs"                      text="pp."/>
+<gentext key="unsupported"              text="non supportato"/>
+<gentext key="xrefto"                   text="riferimento a"/>
+<gentext key="unexpectedelementname"    text="Nome elemento inaspettato"/>
+<gentext key="Revisedby"                text="Modificato da:"/>
+
+<gentext key="ListofTables"             text="Lista delle Tabelle"/>
+<gentext key="ListofExamples"           text="Lista degli Esempi"/>
+<gentext key="ListofFigures"            text="Lista delle Figure"/>
+<gentext key="ListofEquations"          text="Lista delle Equazioni"/>
+<gentext key="ListofUnknown"            text="Lista Sconosciuti"/>
+
+<gentext key="nav-prev"                 text="Indietro"/>
+<gentext key="nav-prev-sibling"         text="Salta indietro"/>
+<gentext key="nav-next-sibling"         text="Salta avanti"/>
+<gentext key="nav-next"                 text="Avanti"/>
+<gentext key="nav-up"                   text="Risali"/>
+<gentext key="nav-home"                 text="Partenza"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/ja.xml b/help-converters/docbook/docbook/common/ja.xml
new file mode 100644
index 0000000..9180e8e
--- /dev/null
+++ b/help-converters/docbook/docbook/common/ja.xml
@@ -0,0 +1,104 @@
+<localization language="ja">
+
+<!--
+;; Contributors:
+;; Karl Critz, kcritz mathworks com, contributed the original dbl1ja.ent file
+;; Ralf Schleitzer, ralf schleitzer ixos de
+-->
+
+<gentext key="abstract"                 text="&#x6982;&#x8981;"/>
+<gentext key="appendix"                 text="&#x4ED8;&#x9332;"/>
+<gentext key="article"                  text="&#x9805;&#x76EE;"/>
+<gentext key="bibliography"             text="&#x53C2;&#x8003;&#x6587;&#x732E;"/>
+<gentext key="book"                     text="&#x30D6;&#x30C3;&#x30AF;"/>
+<gentext key="caution"                  text="&#x6CE8;&#x610F;"/>
+<gentext key="caution"                  text="&#x6CE8;&#x610F;"/>
+<gentext key="chapter"                  text="&#x7AE0;"/>
+<gentext key="copyright"                text="&#x88FD;&#x4F5C;&#x8457;&#x4F5C;"/>
+<gentext key="dedication"               text="&#x8B1D;&#x8F9E;"/>
+<gentext key="edition"                  text="&#x7DE8;&#x96C6;"/>
+<gentext key="equation"                 text="&#x5F0F;"/>
+<gentext key="example"                  text="&#x4F8B;"/>
+<gentext key="figure"                   text="&#x56F3;"/>
+<gentext key="glosssee"                 text="&#x53C2;&#x8003;"/>
+<gentext key="glossseealso"             text="&#x53C2;&#x8003;"/>
+<gentext key="glossary"                 text="&#x7528;&#x8A9E;&#x96C6;"/>
+<gentext key="important"                text="&#x91CD;&#x8981;&#x9805;&#x76EE;"/>
+<gentext key="isbn"                     text="&#x4953;&#x424E;"/>
+<gentext key="important"                text="&#x91CD;&#x8981;&#x9805;&#x76EE;"/>
+<gentext key="index"                    text="&#x76EE;&#x6B21;"/>
+<gentext key="legalnotice"              text=""/>
+<gentext key="msgaud"                   text="&#x4175;&#x6469;&#x656E;&#x6365;"/>
+<gentext key="msglevel"                 text="&#x30EC;&#x30D9;&#x30EB;"/>
+<gentext key="msgorig"                  text="&#x30AA;&#x30EA;&#x30B8;&#x30CA;&#x30EB;"/>
+<gentext key="note"                     text="&#x6CE8;&#x610F;"/>
+<gentext key="note"                     text="&#x6CE8;&#x610F;"/>
+<gentext key="part"                     text="&#x30D1;&#x30FC;&#x30C8;"/>
+<gentext key="preface"                  text="&#x5E8F;&#x6587;"/>
+<gentext key="procedure"                text="&#x624B;&#x9806;"/>
+<gentext key="published"                text="&#x767A;&#x884C;"/>
+<gentext key="refname"                  text="&#x540D;&#x524D;"/>
+<gentext key="reference"                text="&#x53C2;&#x8003;"/>
+<gentext key="revision"                 text="&#x6539;&#x8A02;"/>
+<gentext key="revhistory"               text="&#x6539;&#x8A02;&#x5C65;&#x6B74;"/>
+<gentext key="section"                  text="&#x7BC0;"/>
+<gentext key="see"                      text="&#x53C2;&#x8003;"/>
+<gentext key="seealso"                  text="&#x53C2;&#x8003;"/>
+<gentext key="set"                      text="&#x8A2D;&#x5B9A;"/>
+<gentext key="setindex"                 text="&#x76EE;&#x6B21;&#x8A2D;&#x5B9A;"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="step"                     text="&#x30B9;&#x30C6;&#x30C3;&#x30D7;"/>
+<gentext key="tip"                      text="&#x30C6;&#x30A3;&#x30C3;&#x30D7;"/>
+<gentext key="table"                    text="&#x8868;"/>
+<gentext key="tip"                      text="&#x30C6;&#x30A3;&#x30C3;&#x30D7;"/>
+<gentext key="warning"                  text="&#x8B66;&#x544A;"/>
+<gentext key="warning"                  text="&#x8B66;&#x544A;"/>
+<gentext key="appendix"                 text="&#x4ED8;&#x9332;"/>
+<gentext key="chapter"                  text="&#x7AE0;"/>
+<gentext key="section"                  text="&#x7BC0;"/>
+<gentext key="sidebar"                  text="&#x30B5;&#x30A4;&#x30C9;&#x30D0;&#x30FC;"/>
+<gentext key="step"                     text="&#x30B9;&#x30C6;&#x30C3;&#x30D7;"/>
+<gentext key="seealso"                  text="&#x53C2;&#x8003;"/>
+
+<gentext key="TableofContents"          text="&#x76EE;&#x6B21;"/>
+<gentext key="in"                       text="&#x65E5;&#x4ED8;"/>
+<gentext key="by"                       text="&#xFF1A;"/>
+<gentext key="Edited"                   text="&#x4F5C;&#x8005;"/>
+<gentext key="Editedby"                 text="26&#x4564;&#x6974;&#x3B20;&#x2662;&#x793B;"/>
+<gentext key="and"                      text="&#x3001;"/>
+<gentext key="Notes"                    text="&#x6CE8;&#x610F;"/>
+<gentext key="TableNotes"               text="&#x6CE8;&#x610F;"/>
+<gentext key="nonexistantelement"       text="&#x8981;&#x7D20;&#x304C;&#x5B58;&#x5728;&#x3057;&#x307E;&#x305B;&#x3093;"/>
+<gentext key="Pgs"                      text="&#x5067;&#x732E;"/>
+<gentext key="unsupported"              text="&#x30B5;&#x30DD;&#x30FC;&#x30C8;&#x3057;&#x307E;&#x305B;&#x3093;"/>
+<gentext key="xrefto"                   text="78&#x7265;&#x6620;&#x746F;"/>
+<gentext key="unexpectedelementname"    text="&#x4E0D;&#x660E;&#x306A;&#x8981;&#x7D20;&#x540D;"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="&#x8868;&#x30EA;&#x30B9;&#x30C8;"/>
+<gentext key="ListofExamples"           text="&#x4F8B;&#x984C;&#x30EA;&#x30B9;&#x30C8;"/>
+<gentext key="ListofFigures"            text="&#x0046;&#x0069;&#x0067;&#x0075;&#x0072;&#x0065;&#x30EA;&#x30B9;&#x30C8;"/>
+<gentext key="ListofEquations"          text="&#x5F0F;&#x30EA;&#x30B9;&#x30C8;"/>
+<gentext key="ListofUnknown"            text="&#x4E0D;&#x660E;&#x30EA;&#x30B9;&#x30C8;"/>
+
+<gentext key="nav-prev"                 text="&#x524D;&#x306E;&#x30DA;&#x30FC;&#x30B8;"/>
+<gentext key="nav-prev-sibling"         text="Fast Backward"/>
+<gentext key="nav-next-sibling"         text="Fast Forward"/>
+<gentext key="nav-next"                 text="&#x6B21;&#x306E;&#x30DA;&#x30FC;&#x30B8;"/>
+<gentext key="nav-up"                   text="Up"/>
+<gentext key="nav-home"                 text="Home"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/ko.xml b/help-converters/docbook/docbook/common/ko.xml
new file mode 100644
index 0000000..06dd7cb
--- /dev/null
+++ b/help-converters/docbook/docbook/common/ko.xml
@@ -0,0 +1,96 @@
+<localization language="ko">
+
+<!-- ;; by Park Yong Joo (yongjoo kldp org) -->
+
+<gentext key="abstract"       text="&#xCD08;&#xB85D;"/>
+<gentext key="answer"         text="&#xB2F5;&#xBCC0;:"/>
+<gentext key="appendix"       text="&#xBD80;&#xB85D;"/>
+<gentext key="article"        text="&#xBB38;&#xC11C;"/>
+<gentext key="bibliography"   text="&#xC11C;&#xC9C0;&#xC0AC;&#xD56D;"/>
+<gentext key="book"           text="&#xCC45;"/>
+<gentext key="caution"        text="&#xACBD;&#xACE0;!"/>
+<gentext key="chapter"        text=""/>
+<gentext key="colophon"       text="&#xD310;&#xAD8C;"/>
+<gentext key="copyright"      text="Copyright"/>
+<gentext key="dedication"     text="&#xBC14;&#xCE58;&#xB294; &#xAE00;"/>
+<gentext key="edition"        text="&#xAC1C;&#xC815;&#xD310;"/>
+<gentext key="equation"       text="&#xC218;&#xC2DD;"/>
+<gentext key="example"        text="&#xC608;"/>
+<gentext key="figure"         text="&#xADF8;&#xB9BC;"/>
+<gentext key="glosssee"       text="&#xC0B4;&#xD3B4;&#xBCFC; &#xB0B4;&#xC6A9;"/>
+<gentext key="glossseealso"   text="&#xB2E4;&#xB978; &#xC0B4;&#xD3B4;&#xBCFC; &#xB0B4;&#xC6A9;"/>
+<gentext key="glossary"       text="&#xC6A9;&#xC5B4;&#xD574;&#xC124;"/>
+<gentext key="important"      text="[&#xC911;&#xC694;]"/>
+<gentext key="isbn"           text="ISBN"/>
+<gentext key="important"      text="&#xC911;&#xC694;"/>
+<gentext key="index"          text="&#xC0C9;&#xC778;"/>
+<gentext key="legalnotice"    text="&#xBC95;&#xC801; &#xACF5;&#xC9C0;"/>
+<gentext key="msgaud"         text="&#xB4E3;&#xAE30;"/>
+<gentext key="msglevel"       text="&#xB808;&#xBCA8;"/>
+<gentext key="msgorig"        text="&#xC6D0;&#xCC9C;"/>
+<gentext key="note"           text="&#xCC38;&#xACE0;"/>
+<gentext key="part"           text="&#xBD80;&#xBD84;"/>
+<gentext key="preface"        text="&#xC11C;&#xBB38;"/>
+<gentext key="procedure"      text="&#xC21C;&#xC11C;"/>
+<gentext key="published"      text="&#xCD9C;&#xD310;"/>
+<gentext key="question"       text="&#xB2F5;&#xBCC0;:"/>
+<gentext key="refentry"       text=""/>
+<gentext key="reference"      text="&#xCC38;&#xACE0;&#xBB38;&#xD5CC;"/>
+<gentext key="refname"        text="&#xC81C;&#xBAA9;"/>
+<gentext key="refsection"     text=""/>
+<gentext key="refsynopsisdiv" text="&#xC694;&#xC57D;"/>
+<gentext key="revision"       text="&#xAD50;&#xC815;"/>
+<gentext key="revhistory"     text="&#xAD50;&#xC815; &#xACFC;&#xC815;"/>
+<gentext key="section"        text=""/>
+<gentext key="see"            text="&#xC0B4;&#xD3B4;&#xBCFC; &#xB0B4;&#xC6A9;"/>
+<gentext key="seealso"        text="[&#xC0B4;&#xD3B4;&#xBCFC; &#xB2E4;&#xB978; &#xB0B4;&#xC6A9;]"/>
+<gentext key="set"            text="&#xC804;&#xC9D1;"/>
+<gentext key="setindex"       text="&#xC804;&#xC9D1; &#xC0C9;&#xC778;"/>
+<gentext key="sidebar"        text=""/>
+<gentext key="step"           text="&#xB2E8;&#xACC4;"/>
+<gentext key="table"          text="&#xD45C;"/>
+<gentext key="tip"            text="&#xC791;&#xC740; &#xC815;&#xBCF4;"/>
+<gentext key="warning"        text="&#xC8FC;&#xC758;"/>
+
+<gentext key="TableofContents"        text="&#xCC28;&#xB840;"/>
+<gentext key="in"             text="-"/>
+<gentext key="by"             text="&#xAE00;&#xC4F4;&#xC774; : "/>
+<gentext key="Edited"         text="&#xD3B8;&#xC9D1;"/>
+<gentext key="Editedby"       text="&#xD3B8;&#xC9D1; : "/>
+<gentext key="and"            text="&#xADF8;&#xB9AC;&#xACE0;"/>
+<gentext key="Notes"          text="&#xC8FC;&#xC11D;"/>
+<gentext key="TableNotes"     text="&#xCC38;&#xACE0;"/>
+<gentext key="nonexistantelement"     text="&#xC874;&#xC7AC;&#xD558;&#xC9C0; &#xC54A;&#xB294; &#xAE30;&#xCD08;&#xC694;&#xC18C;&#xC785;&#xB2C8;&#xB2E4;"/>
+<gentext key="Pgs"            text="Pgs."/>
+<gentext key="unsupported"    text="&#xC9C0;&#xC6D0;&#xB418;&#xC9C0; &#xC54A;&#xC2B5;&#xB2C8;&#xB2E4;"/>
+<gentext key="xrefto"         text="&#xC774; &#xACF3;&#xC744; &#xCC38;&#xC870;&#xD558;&#xC138;&#xC694; : "/>
+<gentext key="unexpectedelementname"  text="&#xC54C; &#xC218; &#xC5C6;&#xB294; &#xAE30;&#xCD08;&#xC694;&#xC18C; &#xC774;&#xB984;&#xC785;&#xB2C8;&#xB2E4;"/>
+<gentext key="Revisedby"      text="&#xAD50;&#xC815; : "/>
+
+<gentext key="ListofTables" text="&#xD45C; &#xBAA9;&#xB85D;"/>
+<gentext key="ListofExamples" text="&#xC608; &#xBAA9;&#xB85D;"/>
+<gentext key="ListofFigures" text="&#xADF8;&#xB9BC; &#xBAA9;&#xB85D;"/>
+<gentext key="ListofEquations" text="&#xC218;&#xC2DD; &#xBAA9;&#xB85D;"/>
+<gentext key="ListofUnknown" text="&#xAE30;&#xD0C0; &#xBAA9;&#xB85D;"/>
+
+<gentext key="nav-prev"          text="Prev"/>
+<gentext key="nav-prev-sibling"          text="Fast Backward"/>
+<gentext key="nav-next-sibling"          text="Fast Forward"/>
+<gentext key="nav-next"          text="Next"/>
+<gentext key="nav-up"            text="Up"/>
+<gentext key="nav-home"          text="Home"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/l10n.dtd b/help-converters/docbook/docbook/common/l10n.dtd
new file mode 100644
index 0000000..0336baf
--- /dev/null
+++ b/help-converters/docbook/docbook/common/l10n.dtd
@@ -0,0 +1,25 @@
+<!ELEMENT internationalization (localization+)>
+
+<!ELEMENT localization (gentext|dingbat|xref)*>
+<!ATTLIST localization
+	language	CDATA	#REQUIRED
+>
+
+<!ELEMENT gentext EMPTY>
+<!ATTLIST gentext
+	key		CDATA	#REQUIRED
+	text		CDATA	#REQUIRED
+>
+
+<!ELEMENT dingbat EMPTY>
+<!ATTLIST dingbat
+	key		CDATA	#REQUIRED
+	text		CDATA	#REQUIRED
+>
+
+<!ELEMENT xref EMPTY>
+<!ATTLIST xref
+	element		CDATA	#REQUIRED
+	text		CDATA	#REQUIRED
+>
+
diff --git a/help-converters/docbook/docbook/common/l10n.xml b/help-converters/docbook/docbook/common/l10n.xml
new file mode 100644
index 0000000..a7ef90e
--- /dev/null
+++ b/help-converters/docbook/docbook/common/l10n.xml
@@ -0,0 +1,59 @@
+<?xml version='1.0'?>
+<!DOCTYPE internationalization SYSTEM "l10n.dtd" [
+<!ENTITY ca SYSTEM "ca.xml">
+<!ENTITY cs SYSTEM "cs.xml">
+<!ENTITY da SYSTEM "da.xml">
+<!ENTITY de SYSTEM "de.xml">
+<!ENTITY el SYSTEM "el.xml">
+<!ENTITY en SYSTEM "en.xml">
+<!ENTITY es SYSTEM "es.xml">
+<!ENTITY et SYSTEM "et.xml">
+<!ENTITY fi SYSTEM "fi.xml">
+<!ENTITY fr SYSTEM "fr.xml">
+<!ENTITY hu SYSTEM "hu.xml">
+<!ENTITY id SYSTEM "id.xml">
+<!ENTITY it SYSTEM "it.xml">
+<!ENTITY ja SYSTEM "ja.xml">
+<!ENTITY ko SYSTEM "ko.xml">
+<!ENTITY nl SYSTEM "nl.xml">
+<!ENTITY no SYSTEM "no.xml">
+<!ENTITY pl SYSTEM "pl.xml">
+<!ENTITY pt SYSTEM "pt.xml">
+<!ENTITY pt_br SYSTEM "pt_br.xml">
+<!ENTITY ro SYSTEM "ro.xml">
+<!ENTITY ru SYSTEM "ru.xml">
+<!ENTITY sk SYSTEM "sk.xml">
+<!ENTITY sl SYSTEM "sl.xml">
+<!ENTITY sv SYSTEM "sv.xml">
+<!ENTITY zh_cn SYSTEM "zh_cn.xml">
+<!ENTITY zh_tw SYSTEM "zh_tw.xml">
+]>
+<internationalization>
+&ca;
+&cs;
+&da;
+&de;
+&el;
+&en;
+&es;
+&et;
+&fi;
+&fr;
+&hu;
+&id;
+&it;
+&ja;
+&ko;
+&nl;
+&no;
+&pl;
+&pt;
+&pt_br;
+&ro;
+&ru;
+&sk;
+&sl;
+&sv;
+&zh_cn;
+&zh_tw;
+</internationalization>
diff --git a/help-converters/docbook/docbook/common/l10n.xsl b/help-converters/docbook/docbook/common/l10n.xsl
new file mode 100644
index 0000000..f2f6fad
--- /dev/null
+++ b/help-converters/docbook/docbook/common/l10n.xsl
@@ -0,0 +1,244 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     This file contains localization templates (for internationalization)
+     ******************************************************************** -->
+
+<xsl:param name="l10n.xml" select="document('../common/l10n.xml')"/>
+
+<xsl:param name="l10n.gentext.language" select="''"/>
+<xsl:param name="l10n.gentext.default.language" select="'en'"/>
+<xsl:param name="l10n.gentext.use.xref.language" select="false()"/>
+
+<xsl:template name="l10n.language">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="xref-context" select="false()"/>
+
+  <xsl:variable name="language">
+    <xsl:choose>
+      <xsl:when test="$l10n.gentext.language != ''">
+        <xsl:value-of select="$l10n.gentext.language"/>
+      </xsl:when>
+
+      <xsl:when test="$xref-context or $l10n.gentext.use.xref.language">
+        <xsl:variable name="lang-attr"
+                      select="($target/ancestor-or-self::*/@lang
+                               |$target/ancestor-or-self::*/@xml:lang)[last()]"/>
+        <xsl:choose>
+          <xsl:when test="string($lang-attr) = ''">
+            <xsl:value-of select="$l10n.gentext.default.language"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$lang-attr"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <xsl:variable name="lang-attr" 
+                      select="(ancestor-or-self::*/@lang
+                               |ancestor-or-self::*/@xml:lang)[last()]"/>
+        <xsl:choose>
+          <xsl:when test="string($lang-attr) = ''">
+            <xsl:value-of select="$l10n.gentext.default.language"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$lang-attr"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($language,'-')">
+      <xsl:value-of select="substring-before($language,'-')"/>
+      <xsl:text>_</xsl:text>
+      <xsl:value-of select="substring-after($language,'-')"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$language"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.xref.text">
+  <xsl:param name="element.name" select="name(.)"/>
+  <xsl:param name="default"></xsl:param>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:variable name="l10n.text">
+    <xsl:value-of select="($l10n.xml/internationalization/localization[ language=$lang]/xref[ element=$element name])[1]/@text"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$l10n.text=''">
+      <xsl:choose>
+        <xsl:when test="$default=''">
+          <xsl:message>
+            <xsl:text>No "</xsl:text>
+            <xsl:value-of select="$lang"/>
+            <xsl:text>" cross reference text for "</xsl:text>
+            <xsl:value-of select="$element.name"/>
+            <xsl:text>" exists and no default specified.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$default"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$l10n.text"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext">
+  <xsl:param name="key" select="local-name(.)"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:variable name="l10n.gentext"
+                select="($l10n.xml/internationalization/localization[ language=$lang]/gentext[ key=$key])[1]"/>
+
+  <xsl:variable name="l10n.name">
+    <xsl:value-of select="$l10n.gentext/@text"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($l10n.gentext)=0">
+      <xsl:message>
+        <xsl:text>No "</xsl:text>
+        <xsl:value-of select="$lang"/>
+        <xsl:text>" localization of "</xsl:text>
+        <xsl:value-of select="$key"/>
+        <xsl:text>" exists; using "en".</xsl:text>
+      </xsl:message>
+
+      <xsl:value-of select="($l10n.xml/internationalization/localization[ language='en']/gentext[ key=$key])[1]/@text"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$l10n.name"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.element.name">
+  <xsl:param name="element.name" select="name(.)"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="$element.name"/>
+    <xsl:with-param name="lang" select="$lang"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.space">
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template name="gentext.edited.by">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">Editedby</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.by">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">by</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.dingbat">
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:variable name="l10n.dingbat">
+    <xsl:value-of select="($l10n.xml/internationalization/localization[ language=$lang]/dingbat[ key=$dingbat])[1]/@text"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$l10n.dingbat=''">
+      <xsl:message>
+        <xsl:text>No "</xsl:text>
+        <xsl:value-of select="$lang"/>
+        <xsl:text>" localization of dingbat </xsl:text>
+        <xsl:value-of select="$dingbat"/>
+        <xsl:text> exists; using "en".</xsl:text>
+      </xsl:message>
+
+      <xsl:value-of select="($l10n.xml/internationalization/localization[ language='en']/dingbat[ key=$dingbat])[1]/@text"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$l10n.dingbat"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.startquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">startquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.endquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">endquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedstartquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">nestedstartquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedendquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">nestedendquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.prev">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">nav-prev</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.next">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">nav-next</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.home">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">nav-home</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.up">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">nav-up</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/common/nl.xml b/help-converters/docbook/docbook/common/nl.xml
new file mode 100644
index 0000000..56ead54
--- /dev/null
+++ b/help-converters/docbook/docbook/common/nl.xml
@@ -0,0 +1,105 @@
+<localization language="nl">
+
+<!-- Updated by Frederik Fouvry, fouvry essex ac uk -->
+<!--            Vincent Partington, vincent partington graddelt com -->
+<!-- Updated by Erwin Bolwidt, ejb tryllian com, august 2000 -->
+
+<gentext key="abstract"                 text="Overzicht"/>
+<gentext key="answer"                   text="A:"/>
+<gentext key="appendix"                 text="Aanhangsel"/>
+<gentext key="article"                  text="Artikel"/>
+<gentext key="bibliography"             text="Bibliografie"/>
+<gentext key="book"                     text="Boek"/>
+<gentext key="caution"                  text="Waarschuwing"/>
+<gentext key="chapter"                  text="Hoofdstuk"/>
+<gentext key="colophon"                 text="Colofon"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Opdracht"/>
+<gentext key="edition"                  text="Uitgave"/>
+<gentext key="equation"                 text="Vergelijking"/>
+<gentext key="example"                  text="Voorbeeld"/>
+<gentext key="figure"                   text="Figuur"/>
+<gentext key="glossary"                 text="Woordenlijst"/>
+<gentext key="glosssee"                 text="Zie"/>
+<gentext key="glossseealso"             text="Zie ook"/>
+<gentext key="important"                text="Belangrijk"/>
+<gentext key="index"                    text="Index"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="legalnotice"              text="Juridische mededeling"/>
+<gentext key="msgaud"                   text="Doelgroep"/>
+<gentext key="msglevel"                 text="Ernst"/>
+<gentext key="msgorig"                  text="Afkomst"/>
+<gentext key="note"                     text="N.B."/>
+<gentext key="part"                     text="Deel"/>
+<gentext key="preface"                  text="Inleiding"/>
+<gentext key="procedure"                text="Procedure"/>
+<gentext key="published"                text="Gepubliceerd"/>
+<gentext key="pubdate"                  text="Gepubliceerd"/>
+<gentext key="question"                 text="V:"/>
+<gentext key="refentry"                 text="Referentielemma"/>
+<gentext key="reference"                text="Referentie"/>
+<gentext key="refname"                  text="Referentienaam"/>
+<gentext key="refsection"               text="Referentieparagraaf"/>
+<gentext key="refsynopsisdiv"           text="Samenvatting"/>
+<gentext key="revhistory"               text="Revisie verloop"/>
+<gentext key="revision"                 text="Revisie"/>
+<gentext key="section"                  text="Sectie"/>
+<gentext key="sect1"                    text="Sectie"/>
+<gentext key="sect2"                    text="Sectie"/>
+<gentext key="sect3"                    text="Sectie"/>
+<gentext key="sect4"                    text="Sectie"/>
+<gentext key="sect5"                    text="Sectie"/>
+<gentext key="see"                      text="Zie"/>
+<gentext key="seealso"                  text="Zie ook"/>
+<gentext key="set"                      text="Verzameling"/>
+<gentext key="setindex"                 text="Hoofdindex"/>
+<gentext key="sidebar"                  text="Excursie"/>
+<gentext key="step"                     text="Stap"/>
+<gentext key="table"                    text="Tabel"/>
+<gentext key="tip"                      text="Tip"/>
+<gentext key="warning"                  text="Waarschuwing"/>
+
+<gentext key="TableofContents"          text="Inhoudsopgave"/>
+<gentext key="in"                       text="in"/>
+<gentext key="by"                       text="door"/>
+<gentext key="Edited"                   text="Redactie"/>
+<gentext key="Editedby"                 text="Redactie door"/>
+<gentext key="and"                      text="en"/>
+<gentext key="Notes"                    text="Opmerkingen"/>
+<gentext key="TableNotes"               text="Opmerkingen"/>
+<gentext key="nonexistantelement"       text="niet-bestaand element"/>
+<gentext key="Pgs"                      text="blz."/>
+<gentext key="unsupported"              text="niet ondersteund"/>
+<gentext key="xrefto"                   text="verwijzing naar"/>
+<gentext key="unexpectedelementname"    text="Onverwachte naam van element"/>
+<gentext key="Revisedby"                text="Herzien door:"/>
+
+<gentext key="ListofTables"             text="Lijst van Tabellen"/>
+<gentext key="ListofExamples"           text="Lijst van Voorbeelden"/>
+<gentext key="ListofFigures"            text="Lijst van Figuren"/>
+<gentext key="ListofEquations"          text="Lijst van Vergelijkingen"/>
+<gentext key="ListofUnknown"            text="Lijst van Onbekends"/>
+
+<gentext key="nav-prev"                 text="Vorige"/>
+<gentext key="nav-prev-sibling"         text="Snel terug"/>
+<gentext key="nav-next-sibling"         text="Snel vooruit"/>
+<gentext key="nav-next"                 text="Volgende"/>
+<gentext key="nav-up"                   text="Omhoog"/>
+<gentext key="nav-home"                 text="Begin"/>
+
+<gentext key="the section called"       text="de sectie genaamd"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="bibliography" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/no.xml b/help-converters/docbook/docbook/common/no.xml
new file mode 100644
index 0000000..b3aba44
--- /dev/null
+++ b/help-converters/docbook/docbook/common/no.xml
@@ -0,0 +1,97 @@
+<localization language="no">
+
+<gentext key="abstract"                 text="Abstract"/>
+<gentext key="appendix"                 text="Tillegg"/>
+<gentext key="article"                  text=""/>
+<gentext key="bibliography"             text="Bibliografi"/>
+<gentext key="book"                     text=""/>
+<gentext key="caution"                  text="OBS"/>
+<gentext key="caution"                  text="Obs"/>
+<gentext key="chapter"                  text="Kapittel"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Dedikasjon"/>
+<gentext key="edition"                  text=""/>
+<gentext key="equation"                 text="Formel"/>
+<gentext key="example"                  text="Eksempel"/>
+<gentext key="figure"                   text="Figur"/>
+<gentext key="glosssee"                 text="Se"/>
+<gentext key="glossseealso"             text="Se Ogs&#x00E5;"/>
+<gentext key="glossary"                 text="Ordliste"/>
+<gentext key="important"                text="VIKTIG"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="Viktig"/>
+<gentext key="index"                    text="Indeks"/>
+<gentext key="legalnotice"              text=""/>
+<gentext key="msgaud"                   text="Publikum"/>
+<gentext key="msglevel"                 text="Niv&#x00E5;"/>
+<gentext key="msgorig"                  text="Opphav"/>
+<gentext key="note"                     text="NOTAT"/>
+<gentext key="note"                     text="Notat"/>
+<gentext key="part"                     text="Del"/>
+<gentext key="preface"                  text="Forord"/>
+<gentext key="procedure"                text="Prosedyre"/>
+<gentext key="published"                text=""/>
+<gentext key="refname"                  text="Navn"/>
+<gentext key="reference"                text="Referanse"/>
+<gentext key="revision"                 text="Revisjon"/>
+<gentext key="revhistory"               text="Revisjonshistorie"/>
+<gentext key="section"                  text="Seksjon"/>
+<gentext key="see"                      text="Se"/>
+<gentext key="seealso"                  text="Se Ogs&#x00E5;"/>
+<gentext key="set"                      text=""/>
+<gentext key="setindex"                 text="Indeks"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="step"                     text="Steg"/>
+<gentext key="tip"                      text="TIPS"/>
+<gentext key="table"                    text="Tabell"/>
+<gentext key="tip"                      text="Tips"/>
+<gentext key="warning"                  text="ADVARSEL"/>
+<gentext key="warning"                  text="Advarsel"/>
+<gentext key="appendix"                 text="Tillegg"/>
+<gentext key="chapter"                  text="Kapittel"/>
+<gentext key="section"                  text="seksjon"/>
+<gentext key="step"                     text="steg"/>
+<gentext key="seealso"                  text="Se ogs&#x00E5;"/>
+
+<gentext key="TableofContents"          text="Innholdsfortegnelse"/>
+<gentext key="in"                       text="i"/>
+<gentext key="by"                       text="av"/>
+<gentext key="Edited"                   text="Redigert"/>
+<gentext key="Editedby"                 text="Redigert av"/>
+<gentext key="and"                      text="og"/>
+<gentext key="Notes"                    text="Sluttnotater"/>
+<gentext key="TableNotes"               text="Notater"/>
+<gentext key="nonexistantelement"       text="ikke-eksisterende element"/>
+<gentext key="Pgs"                      text="Sdr."/>
+<gentext key="unsupported"              text="ikke st&#x2298;ttet"/>
+<gentext key="xrefto"                   text="xref til"/>
+<gentext key="unexpectedelementname"    text="UVENTET-ELEMENTNAVN"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="Tabelloversikt"/>
+<gentext key="ListofExamples"           text="Eksempeloversikt"/>
+<gentext key="ListofFigures"            text="Figuroversikt"/>
+<gentext key="ListofEquations"          text="Formeloversikt"/>
+<gentext key="ListofUnknown"            text="???-oversikt"/>
+
+<gentext key="nav-prev"                 text="Forrige"/>
+<gentext key="nav-prev-sibling"         text="Raskt Bakover"/>
+<gentext key="nav-next-sibling"         text="Raskt Fremover"/>
+<gentext key="nav-next"                 text="Neste"/>
+<gentext key="nav-up"                   text="Opp"/>
+<gentext key="nav-home"                 text="Hjem"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/pl.xml b/help-converters/docbook/docbook/common/pl.xml
new file mode 100644
index 0000000..8582bbe
--- /dev/null
+++ b/help-converters/docbook/docbook/common/pl.xml
@@ -0,0 +1,96 @@
+<localization language="pl">
+
+<gentext key="abstract"                 text="Abstrakt"/>
+<gentext key="appendix"                 text="Dodatek"/>
+<gentext key="article"                  text="Article"/>
+<gentext key="bibliography"             text="Bibliografia"/>
+<gentext key="book"                     text="Book"/>
+<gentext key="caution"                  text="PRZYPADEK"/>
+<gentext key="caution"                  text="Przypadek"/>
+<gentext key="chapter"                  text="Rozdzia&#179;"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Dedykacja"/>
+<gentext key="edition"                  text="Wydanie"/>
+<gentext key="equation"                 text="R&#243;wnanie"/>
+<gentext key="example"                  text="Przyk&#179;ad"/>
+<gentext key="figure"                   text="Rysunek"/>
+<gentext key="glosssee"                 text="Patrz"/>
+<gentext key="glossseealso"             text="Patrz te&#191;"/>
+<gentext key="glossary"                 text="Glossary"/>
+<gentext key="important"                text="WA&#175;NE"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="WA&#175;NE"/>
+<gentext key="index"                    text="Indeks"/>
+<gentext key="legalnotice"              text=""/>
+<gentext key="msgaud"                   text="Odbiorcy"/>
+<gentext key="msglevel"                 text="Poziom"/>
+<gentext key="msgorig"                  text="Nadawca"/>
+<gentext key="note"                     text="NOTATKA"/>
+<gentext key="note"                     text="Notatka"/>
+<gentext key="part"                     text="Cz&#234;&#182;&#230;"/>
+<gentext key="preface"                  text="Przedmowa"/>
+<gentext key="procedure"                text="Procedura"/>
+<gentext key="published"                text="Data wydania"/>
+<gentext key="refname"                  text="Nazwa"/>
+<gentext key="reference"                text="Materia&#179;y &#188;r&#243;d&#179;owe"/>
+<gentext key="revision"                 text="Zmiana"/>
+<gentext key="revhistory"               text="Historia zmian"/>
+<gentext key="section"                  text="Sekcja"/>
+<gentext key="see"                      text="Patrz"/>
+<gentext key="seealso"                  text="Patrz Te&#191;"/>
+<gentext key="set"                      text="Set"/>
+<gentext key="setindex"                 text="Indeks"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="step"                     text="krok"/>
+<gentext key="tip"                      text="Podpowied&#188;"/>
+<gentext key="table"                    text="Tabela"/>
+<gentext key="tip"                      text="Podpowied&#188;"/>
+<gentext key="warning"                  text="Ostrze&#191;enie"/>
+<gentext key="warning"                  text="Ostrze&#191;enie"/>
+<gentext key="appendix"                 text="dodatek"/>
+<gentext key="chapter"                  text="rozdzia&#179;"/>
+<gentext key="section"                  text="sekcja"/>
+<gentext key="step"                     text="krok"/>
+<gentext key="seealso"                  text="Patrz te&#191;"/>
+
+<gentext key="TableofContents"          text="Spis tre&#182;ci"/>
+<gentext key="in"                       text="w"/>
+<gentext key="by"                       text=""/>
+<gentext key="Editedby"                 text="Redakcja: "/>
+<gentext key="and"                      text="i"/>
+<gentext key="Notes"                    text="Przypisy"/>
+<gentext key="TableNotes"               text="Przypisy"/>
+<gentext key="nonexistantelement"       text="nie istniej&#177;cy element"/>
+<gentext key="Pgs"                      text="stron"/>
+<gentext key="unsupported"              text="nie wspierany"/>
+<gentext key="xrefto"                   text="xref to"/>
+<gentext key="unexpectedelementname"    text="Unexpected element name"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="Spis tabel"/>
+<gentext key="ListofExamples"           text="Spis przyk&#179;ad&#243;w"/>
+<gentext key="ListofFigures"            text="Spis rysunk&#243;w"/>
+<gentext key="ListofEquations"          text="Spis r&#243;wna&#241;"/>
+<gentext key="ListofUnknown"            text="Spis ???"/>
+
+<gentext key="nav-prev"                 text="Poprzedni"/>
+<gentext key="nav-prev-sibling"         text="Poprzedni rozdzia&#179;"/>
+<gentext key="nav-next-sibling"         text="Nast&#234;pny rozdzia&#179;"/>
+<gentext key="nav-next"                 text="Nast&#234;pny"/>
+<gentext key="nav-up"                   text="Pocz&#177;tek rozdzia&#179;u"/>
+<gentext key="nav-home"                 text="Spis tre&#182;ci"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/pt.xml b/help-converters/docbook/docbook/common/pt.xml
new file mode 100644
index 0000000..af0c22f
--- /dev/null
+++ b/help-converters/docbook/docbook/common/pt.xml
@@ -0,0 +1,98 @@
+<localization language="pt">
+
+<gentext key="abstract"                 text="Resumo"/>
+<gentext key="appendix"                 text="Ap&#234;ndice"/>
+<gentext key="article"                  text="Article"/>
+<gentext key="bibliography"             text="Bibliografia"/>
+<gentext key="book"                     text="Book"/>
+<gentext key="caution"                  text="CAUTELA"/>
+<gentext key="caution"                  text="Cautela"/>
+<gentext key="chapter"                  text="Cap&#237;tulo"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Dedicat&#243;ria"/>
+<gentext key="edition"                  text="Edi&#231;&#227;o"/>
+<gentext key="equation"                 text="Equa&#231;&#227;o"/>
+<gentext key="example"                  text="Exemplo"/>
+<gentext key="figure"                   text="Figura"/>
+<gentext key="glosssee"                 text="Ver"/>
+<gentext key="glossseealso"             text="Ver Tamb&#233;m"/>
+<gentext key="glossary"                 text="Glossario"/>
+<gentext key="important"                text="IMPORTANTE"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="Importante"/>
+<gentext key="index"                    text="Index"/>
+<gentext key="legalnotice"              text=""/>
+<gentext key="msgaud"                   text="Audi&#234;ncia"/>
+<gentext key="msglevel"                 text="N&#237;vel"/>
+<gentext key="msgorig"                  text="Origem"/>
+<gentext key="note"                     text="NOTA"/>
+<gentext key="note"                     text="Nota"/>
+<gentext key="part"                     text="Parte"/>
+<gentext key="preface"                  text="Pref&#225;cio"/>
+<gentext key="procedure"                text="Procedimento"/>
+<gentext key="pubdate"                  text="Editado"/>
+<gentext key="published"                text="Published"/>
+<gentext key="refname"                  text="Nome"/>
+<gentext key="reference"                text="Refer&#234;ncia"/>
+<gentext key="revision"                 text="Revis&#227;o"/>
+<gentext key="revhistory"               text="Hitorial de Revis&#245;es"/>
+<gentext key="section"                  text="Sec&#231;&#227;o"/>
+<gentext key="see"                      text="Ver"/>
+<gentext key="seealso"                  text="Ver Tamb&#233;m"/>
+<gentext key="set"                      text="Set"/>
+<gentext key="setindex"                 text="Set Index"/>
+<gentext key="sidebar"                  text="Sidebar"/>
+<gentext key="step"                     text="Passo"/>
+<gentext key="tip"                      text="DICA"/>
+<gentext key="table"                    text="Tabela"/>
+<gentext key="tip"                      text="Dica"/>
+<gentext key="warning"                  text="ATEN&#199;&#195;O"/>
+<gentext key="warning"                  text="Aten&#231;&#227;o"/>
+<gentext key="appendix"                 text="ap&#234;ndice"/>
+<gentext key="chapter"                  text="cap&#237;tulo"/>
+<gentext key="section"                  text="sec&#231;&#227;o"/>
+<gentext key="step"                     text="passo"/>
+<gentext key="seealso"                  text="ver tamb&#233;m"/>
+
+<gentext key="TableofContents"          text="&#205;ndice"/>
+<gentext key="in"                       text=""/>
+<gentext key="by"                       text="por"/>
+<gentext key="Edited"                   text="Editado"/>
+<gentext key="Editedby"                 text="Editado por"/>
+<gentext key="and"                      text="e"/>
+<gentext key="Notes"                    text="Notas"/>
+<gentext key="TableNotes"               text="Notas"/>
+<gentext key="nonexistantelement"       text="non-existant element"/>
+<gentext key="Pgs"                      text="P&#225;ginas"/>
+<gentext key="unsupported"              text="unsupported"/>
+<gentext key="xrefto"                   text="xref to"/>
+<gentext key="unexpectedelementname"    text="Unexpected element name"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="Lista de Tabelas"/>
+<gentext key="ListofExamples"           text="Lista de Exemplos"/>
+<gentext key="ListofFigures"            text="Lista de Figuras"/>
+<gentext key="ListofEquations"          text="Lista de Equa&#231;&#245;es"/>
+<gentext key="ListofUnknown"            text="List of ???"/>
+
+<gentext key="nav-prev"                 text="Prev"/>
+<gentext key="nav-prev-sibling"         text="Fast Backward"/>
+<gentext key="nav-next-sibling"         text="Fast Forward"/>
+<gentext key="nav-next"                 text="Next"/>
+<gentext key="nav-up"                   text="Up"/>
+<gentext key="nav-home"                 text="Home"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/pt_br.xml b/help-converters/docbook/docbook/common/pt_br.xml
new file mode 100644
index 0000000..cf63d1e
--- /dev/null
+++ b/help-converters/docbook/docbook/common/pt_br.xml
@@ -0,0 +1,98 @@
+<localization language="pt_br">
+
+<gentext key="abstract"			text="Resumo"/>
+<gentext key="appendix"			text="Ap&#234;ndice"/>
+<gentext key="article"			text="Artigo"/>
+<gentext key="bibliography"		text="Bibliografia"/>
+<gentext key="book"			text="Livro"/>
+<gentext key="caution"			text="CUIDADO"/>
+<gentext key="caution"			text="Cuidado"/>
+<gentext key="chapter"			text="Cap&#237;tulo"/>
+<gentext key="copyright"		text="Copyright"/>
+<gentext key="dedication"		text="Dedicat&#243;ria"/>
+<gentext key="edition"			text="Edi&#231;&#227;o"/>
+<gentext key="equation"			text="Equa&#231;&#227;o"/>
+<gentext key="example"			text="Exemplo"/>
+<gentext key="figure"			text="Figura"/>
+<gentext key="glosssee"			text="Ver"/>
+<gentext key="glossseealso"		text="Ver Tamb&#233;m"/>
+<gentext key="glossary"			text="Gloss&#225;rio"/>
+<gentext key="important"		text="IMPORTANTE"/>
+<gentext key="isbn"			text="ISBN"/>
+<gentext key="important"		text="Importante"/>
+<gentext key="index"			text="&#205;ndice Remissivo"/>
+<gentext key="legalnotice"		text="Nota Legal"/>
+<gentext key="msgaud"			text="Audi&#234;ncia"/>
+<gentext key="msglevel"			text="N&#237;vel"/>
+<gentext key="msgorig"			text="Origem"/>
+<gentext key="note"			text="NOTA"/>
+<gentext key="note"			text="Nota"/>
+<gentext key="part"			text="Parte"/>
+<gentext key="preface"			text="Pref&#225;cio"/>
+<gentext key="procedure"		text="Procedimento"/>
+<gentext key="pubdate"			text="Data de Publica&#231;&#227;o"/>
+<gentext key="published"		text="Publicado"/>
+<gentext key="refname"			text="Nome"/>
+<gentext key="reference"		text="Refer&#234;ncia"/>
+<gentext key="revision"			text="Revis&#227;o"/>
+<gentext key="revhistory"		text="Hist&#243;rico de Revis&#245;es"/>
+<gentext key="section"			text="Sec&#231;&#227;o"/>
+<gentext key="see"			text="Ver"/>
+<gentext key="seealso"			text="Ver Tamb&#233;m"/>
+<gentext key="set"			text="Conjunto"/>
+<gentext key="setindex"			text="&#205;ndice do Conjunto"/>
+<gentext key="sidebar"			text="Quadro Lateral"/>
+<gentext key="step"			text="Passo"/>
+<gentext key="tip"			text="DICA"/>
+<gentext key="table"			text="Tabela"/>
+<gentext key="tip"			text="Dica"/>
+<gentext key="warning"			text="ATEN&#199;&#195;O"/>
+<gentext key="warning"			text="Aten&#231;&#227;o"/>
+<gentext key="appendix"			text="ap&#234;ndice"/>
+<gentext key="chapter"			text="cap&#237;tulo"/>
+<gentext key="section"			text="sec&#231;&#227;o"/>
+<gentext key="step"			text="passo"/>
+<gentext key="seealso"			text="ver tamb&#233;m"/>
+
+<gentext key="TableofContents"		text="&#205;ndice"/>
+<gentext key="in"			text=""/>
+<gentext key="by"			text="por"/>
+<gentext key="Edited"			text="Editado"/>
+<gentext key="Editedby"			text="Editado por"/>
+<gentext key="Revisedby"		text="Revised by: "/> <!-- en -->
+<gentext key="and"			text="e"/>
+<gentext key="Notes"			text="Notas"/>
+<gentext key="TableNotes"		text="Notas"/>
+<gentext key="nonexistantelement"	text="elemento inexistente"/>
+<gentext key="Pgs"			text="P&#225;ginas"/>
+<gentext key="unsupported"		text="n&#227;o suportado"/>
+<gentext key="xrefto"			text="refer&#234;ncia para"/>
+<gentext key="unexpectedelementname"	text="Nome de elemento inesperado"/>
+
+<gentext key="ListofTables"		text="Lista de Tabelas"/>
+<gentext key="ListofExamples"		text="Lista de Exemplos"/>
+<gentext key="ListofFigures"		text="Lista de Figuras"/>
+<gentext key="ListofEquations"		text="Lista de Equa&#231;&#245;es"/>
+<gentext key="ListofUnknown"		text="Lista de ???"/>
+
+<gentext key="nav-prev"                 text="Anterior"/>
+<gentext key="nav-prev-sibling"         text="In&#237;cio"/>
+<gentext key="nav-next-sibling"         text="Fim"/>
+<gentext key="nav-next"                 text="Pr&#243;xima"/>
+<gentext key="nav-up"                   text="Acima"/>
+<gentext key="nav-home"                 text="Principal"/>
+
+<dingbat key="startquote"		text="&#x201C;"/>
+<dingbat key="endquote"			text="&#x201D;"/>
+<dingbat key="nestedstartquote"		text="&#x2018;"/>
+<dingbat key="nestedendquote"		text="&#x2019;"/>
+<dingbat key="bullet"			text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/ro.xml b/help-converters/docbook/docbook/common/ro.xml
new file mode 100644
index 0000000..a59ffd8
--- /dev/null
+++ b/help-converters/docbook/docbook/common/ro.xml
@@ -0,0 +1,104 @@
+<localization language="ro">
+
+<gentext key="abstract"                 text="Rezumat"/>
+<gentext key="appendix"                 text="Anexa"/>
+<gentext key="article"                  text="Articol"/>
+<gentext key="bibliography"             text="Bibliografie"/>
+<gentext key="book"                     text="Carte"/>
+<gentext key="caution"                  text="ATEN&#222;IE"/>
+<gentext key="caution"                  text="Aten&#254;ie"/>
+<gentext key="chapter"                  text="Cap."/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Dedica&#254;ie"/>
+<gentext key="edition"                  text="Edi&#254;ie"/>
+<gentext key="equation"                 text="ecua&#254;ia"/>
+<gentext key="example"                  text="Exemplu"/>
+<gentext key="figure"                   text="Fig."/>
+<gentext key="glossary"                 text="Glosar"/>
+<gentext key="glosssee"                 text="Vezi"/>
+<gentext key="glossseealso"             text="Vezi &#x015F;i"/>
+<gentext key="important"                text="IMPORTANT"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="Important"/>
+<gentext key="index"                    text="Index"/>
+<gentext key="legalnotice"              text=""/>
+<gentext key="msgaud"                   text=""/>
+<gentext key="msglevel"                 text="Nivel"/>
+<gentext key="msgorig"                  text="Origine"/>
+<gentext key="note"                     text="NOT&#195;"/>
+<gentext key="note"                     text="Not&#227;"/>
+<gentext key="refname"                  text="Nume"/>
+<gentext key="note"                     text="Not&#227;"/>
+<gentext key="part"                     text="Parte"/>
+<gentext key="preface"                  text="Prefa&#254;&#227;"/>
+<gentext key="procedure"                text="Procedur&#227;"/>
+<gentext key="published"                text="Publicat"/>
+<gentext key="reference"                text="Referin&#254;&#227;"/>
+<gentext key="refentry"                 text=""/>
+<gentext key="reference"                text="Referin&#254;&#227;"/>
+<gentext key="refname"                  text="Name"/>
+<gentext key="refsection"               text=""/>
+<gentext key="refsynopsisdiv"           text="Rezumat"/>
+<gentext key="revision"                 text="Versiune"/>
+<gentext key="revhistory"               text="Istoricul versiunilor"/>
+<gentext key="section"                  text="Sec&#254;iune"/>
+<gentext key="see"                      text="Vezi"/>
+<gentext key="seealso"                  text="Vezi &#x015F;i"/>
+<gentext key="set"                      text="Set"/>
+<gentext key="setindex"                 text="Index"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="step"                     text="Opera&#254;ie"/>
+<gentext key="tip"                      text="INDICA&#222;IE"/>
+<gentext key="table"                    text="Tabel"/>
+<gentext key="tip"                      text="Indica&#254;ie"/>
+<gentext key="warning"                  text="AVERTISMENT"/>
+<gentext key="warning"                  text="Avertisment"/>
+<gentext key="appendix"                 text="anexa"/>
+<gentext key="sidebar"                  text="sidebar"/>
+<gentext key="chapter"                  text="cap."/>
+<gentext key="section"                  text="sec."/>
+<gentext key="step"                     text="opera&#254;iune"/>
+<gentext key="seealso"                  text="Vezi &#x015F;i"/>
+
+<gentext key="TableofContents"          text="Cuprins"/>
+<gentext key="in"                       text="&#x00EE;n"/>
+<gentext key="by"                       text="de"/>
+<gentext key="Edited"                   text="Publicat"/>
+<gentext key="Editedby"                 text="Publicat de"/>
+<gentext key="and"                      text="&#x015F;i"/>
+<gentext key="Notes"                    text="Note"/>
+<gentext key="TableNotes"               text="Remarci"/>
+<gentext key="nonexistantelement"       text="element inexistent"/>
+<gentext key="Pgs"                      text="Pagini"/>
+<gentext key="unsupported"              text="nerecunoscut de sisitem"/>
+<gentext key="xrefto"                   text="referin&#254;&#227; c&#227;tre"/>
+<gentext key="unexpectedelementname"    text="Nume de element nea&#x015F;teptat"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="List&#227; de tabele"/>
+<gentext key="ListofExamples"           text="List&#227; de exemple"/>
+<gentext key="ListofFigures"            text="List&#227; de figuri"/>
+<gentext key="ListofEquations"          text="List&#227; de ecua&#254;ii"/>
+<gentext key="ListofUnknown"            text="List&#227; de necunoscute"/>
+
+<gentext key="nav-prev"                 text="Prev"/>
+<gentext key="nav-prev-sibling"         text="Fast Backward"/>
+<gentext key="nav-next-sibling"         text="Fast Forward"/>
+<gentext key="nav-next"                 text="Next"/>
+<gentext key="nav-up"                   text="Up"/>
+<gentext key="nav-home"                 text="Home"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/ru.xml b/help-converters/docbook/docbook/common/ru.xml
new file mode 100644
index 0000000..a097cd4
--- /dev/null
+++ b/help-converters/docbook/docbook/common/ru.xml
@@ -0,0 +1,113 @@
+<localization language="ru">
+
+<gentext key="abstract"                 text="&#x0410;&#x043D;&#x043D;&#x043E;&#x0442;&#x0430;&#x0446;&#x0438;&#x044F;"/>
+<gentext key="appendix"                 text="&#x041F;&#x0440;&#x0438;&#x043B;&#x043E;&#x0436;&#x0435;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="appendix.abr"             text="&#x041F;&#x0440;&#x0438;&#x043B;."/>
+<gentext key="article"                  text="&#x0421;&#x0442;&#x0430;&#x0442;&#x044C;&#x044F;"/>
+<gentext key="audience"                 text="&#x0410;&#x0443;&#x0434;&#x0438;&#x0442;&#x043E;&#x0440;&#x0438;&#x044F;"/>
+<gentext key="bibliography"             text="&#x041B;&#x0438;&#x0442;&#x0435;&#x0440;&#x0430;&#x0442;&#x0443;&#x0440;&#x0430;"/>
+<gentext key="book"                     text="&#x041A;&#x043D;&#x0438;&#x0433;&#x0430;"/>
+<gentext key="caution"                  text="&#x041F;&#x0420;&#x0415;&#x0414;&#x041E;&#x0421;&#x0422;&#x0415;&#x0420;&#x0415;&#x0416;&#x0415;&#x041D;&#x0418;&#x0415;"/>
+<gentext key="caution"                  text="&#x041F;&#x0440;&#x0435;&#x0434;&#x043E;&#x0441;&#x0442;&#x0435;&#x0440;&#x0435;&#x0436;&#x0435;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="chapter"                  text="&#x0413;&#x043B;&#x0430;&#x0432;&#x0430;"/>
+<gentext key="chapter.abr"              text="&#x0413;&#x043B;."/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="&#x041F;&#x043E;&#x0441;&#x0432;&#x044F;&#x0449;&#x0435;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="edition"                  text="&#x0420;&#x0435;&#x0434;&#x0430;&#x043A;&#x0446;&#x0438;&#x044F;"/>
+<gentext key="equation"                 text="&#x0424;&#x043E;&#x0440;&#x043C;&#x0443;&#x043B;&#x0430;"/>
+<gentext key="equation.abr"             text="&#x0424;."/>
+<gentext key="example"                  text="&#x041F;&#x0440;&#x0438;&#x043C;&#x0435;&#x0440;"/>
+<gentext key="example.abr"              text="&#x041F;&#x0440;&#x0438;&#x043C;."/>
+<gentext key="figure"                   text="&#x0420;&#x0438;&#x0441;&#x0443;&#x043D;&#x043E;&#x043A;"/>
+<gentext key="figure.abr"               text="&#x0420;&#x0438;&#x0441;."/>
+<gentext key="glossary"                 text="&#x0413;&#x043B;&#x043E;&#x0441;&#x0441;&#x0430;&#x0440;&#x0438;&#x0439;"/>
+<gentext key="important"                text="&#x0412;&#x0410;&#x0416;&#x041D;&#x041E;"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="&#x0412;&#x0430;&#x0436;&#x043D;&#x043E;"/>
+<gentext key="index"                    text="&#x041F;&#x0440;&#x0435;&#x0434;&#x043C;&#x0435;&#x0442;&#x043D;&#x044B;&#x0439; &#x0443;&#x043A;&#x0430;&#x0437;&#x0430;&#x0442;&#x0435;&#x043B;&#x044C;"/>
+<gentext key="legalnotice"              text="&#x0410;&#x0432;&#x0442;&#x043E;&#x0440;&#x0441;&#x043A;&#x0438;&#x0435; &#x043F;&#x0440;&#x0430;&#x0432;&#x0430;"/>
+<gentext key="level"                    text="&#x0423;&#x0440;&#x043E;&#x0432;&#x0435;&#x043D;&#x044C;"/>
+<gentext key="note"                     text="&#x0417;&#x0410;&#x041C;&#x0415;&#x0427;&#x0410;&#x041D;&#x0418;&#x0415;"/>
+<gentext key="name"                     text="&#x0418;&#x043C;&#x044F;"/>
+<gentext key="note"                     text="&#x0417;&#x0430;&#x043C;&#x0435;&#x0447;&#x0430;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="origin"                   text="&#x0418;&#x0441;&#x0442;&#x043E;&#x0447;&#x043D;&#x0438;&#x043A;"/>
+<gentext key="part"                     text="&#x0427;&#x0430;&#x0441;&#x0442;&#x044C;"/>
+<gentext key="part.abr"                 text="&#x0427;."/>
+<gentext key="preface"                  text="&#x041F;&#x0440;&#x0435;&#x0434;&#x0438;&#x0441;&#x043B;&#x043E;&#x0432;&#x0438;&#x0435;"/>
+<gentext key="procedure"                text="&#x041F;&#x0440;&#x043E;&#x0446;&#x0435;&#x0434;&#x0443;&#x0440;&#x0430;"/>
+<gentext key="procedure.abr"            text="&#x041F;&#x0440;&#x043E;&#x0446;."/>
+<gentext key="published"                text="&#x041E;&#x043F;&#x0443;&#x0431;&#x043B;&#x0438;&#x043A;&#x043E;&#x0432;&#x0430;&#x043D;&#x043E;"/>
+<gentext key="reference"                text="&#x0421;&#x0441;&#x044B;&#x043B;&#x043A;&#x0430;"/>
+<gentext key="revision"                 text="&#x0418;&#x0437;&#x0434;&#x0430;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="history"                  text="&#x0418;&#x0441;&#x0442;&#x043E;&#x0440;&#x0438;&#x044F;"/>
+<gentext key="revisionhistory"          text="&#x0418;&#x0441;&#x0442;&#x043E;&#x0440;&#x0438;&#x044F; &#x043F;&#x0435;&#x0440;&#x0435;&#x0438;&#x0437;&#x0434;&#x0430;&#x043D;&#x0438;&#x044F;"/>
+<gentext key="section"                  text="&#x0420;&#x0430;&#x0437;&#x0434;&#x0435;&#x043B;"/>
+<gentext key="section.abr"              text="&#x0420;&#x0430;&#x0437;&#x0434;."/>
+<gentext key="see"                      text="&#x0421;&#x043C;."/>
+<gentext key="seealso"                  text="&#x0421;&#x043C;. &#x0442;&#x0430;&#x043A;&#x0436;&#x0435;"/>
+<gentext key="seealso"                  text="&#x0421;&#x043C;. &#x0442;&#x0430;&#x043A;&#x0436;&#x0435;"/>
+<gentext key="set"                      text="&#x041F;&#x043E;&#x0434;&#x0431;&#x043E;&#x0440;&#x043A;&#x0430;"/>
+<gentext key="setindex"                 text="&#x0418;&#x043D;&#x0434;&#x0435;&#x043A;&#x0441; &#x043F;&#x043E;&#x0434;&#x0431;&#x043E;&#x0440;&#x043A;&#x0438;"/>
+<gentext key="sidebar"                  text="&#x0412;&#x044B;&#x0434;&#x0435;&#x043B;&#x0435;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="step"                     text="&#x0428;&#x0430;&#x0433;"/>
+<gentext key="tip"                      text="&#x041F;&#x041E;&#x0414;&#x0421;&#x041A;&#x0410;&#x0417;&#x041A;&#x0410;"/>
+<gentext key="table"                    text="&#x0422;&#x0430;&#x0431;&#x043B;&#x0438;&#x0446;&#x0430;"/>
+<gentext key="table.abr"                text="&#x0422;&#x0430;&#x0431;&#x043B;."/>
+<gentext key="tip"                      text="&#x041F;&#x043E;&#x0434;&#x0441;&#x043A;&#x0430;&#x0437;&#x043A;&#x0430;"/>
+<gentext key="warning"                  text="&#x0412;&#x041D;&#x0418;&#x041C;&#x0410;&#x041D;&#x0418;&#x0415;"/>
+<gentext key="warning"                  text="&#x0412;&#x043D;&#x0438;&#x043C;&#x0430;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="appendix"                 text="&#x043F;&#x0440;&#x0438;&#x043B;&#x043E;&#x0436;&#x0435;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="chapter"                  text="&#x0433;&#x043B;&#x0430;&#x0432;&#x0430;"/>
+<gentext key="section"                  text="&#x0440;&#x0430;&#x0437;&#x0434;&#x0435;&#x043B;"/>
+<gentext key="step"                     text="&#x0448;&#x0430;&#x0433;"/>
+
+<gentext key="TableofContents"          text="&#x0421;&#x043E;&#x0434;&#x0435;&#x0440;&#x0436;&#x0430;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="called"                   text=""/>
+<gentext key="in"                       text="&#x0432;"/>
+<gentext key="by"                       text=""/>
+<gentext key="Edited"                   text="&#x041F;&#x043E;&#x0434; &#x0440;&#x0435;&#x0434;&#x0430;&#x043A;&#x0446;&#x0438;&#x0435;&#x0439;"/>
+<gentext key="Editedby"                 text="&#x041F;&#x043E;&#x0434; &#x0440;&#x0435;&#x0434;&#x0430;&#x043A;&#x0446;&#x0438;&#x0435;&#x0439;"/>
+<gentext key="and"                      text=""/>
+<!--                           the list of author names, but "and" in such 
+                               lists of Russian books is not traditionally 
+                               used (I. Kouznetsov) -->
+<gentext key="Notes"                    text="&#x041F;&#x0440;&#x0438;&#x043C;&#x0435;&#x0447;&#x0430;&#x043D;&#x0438;&#x044F;"/>
+<gentext key="TableNotes"               text="&#x041F;&#x0440;&#x0438;&#x043C;&#x0435;&#x0447;&#x0430;&#x043D;&#x0438;&#x044F;"/>
+
+<!-- Suggestion of I. Kouznetsov: Error messages are better in English -->
+
+<gentext key="nonexistantelement"       text="non-existant element"/>
+<gentext key="the"                      text=""/>
+<gentext key="Pgs"                      text="&#x0421;&#x0442;&#x0440;."/>
+<gentext key="unsupported"              text="unsupported"/>
+<gentext key="xrefto"                   text="xref to"/>
+<gentext key="unexpectedelementname"    text="unexpected element name"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="&#x0421;&#x043F;&#x0438;&#x0441;&#x043E;&#x043A; &#x0442;&#x0430;&#x0431;&#x043B;&#x0438;&#x0446;"/>
+<gentext key="ListofExamples"           text="&#x0421;&#x043F;&#x0438;&#x0441;&#x043E;&#x043A; &#x043F;&#x0440;&#x0438;&#x043C;&#x0435;&#x0440;&#x043E;&#x0432;"/>
+<gentext key="ListofFigures"            text="&#x0421;&#x043F;&#x0438;&#x0441;&#x043E;&#x043A; &#x0438;&#x043B;&#x043B;&#x044E;&#x0441;&#x0442;&#x0440;&#x0430;&#x0446;&#x0438;&#x0439;"/>
+<gentext key="ListofEquations"          text="&#x0421;&#x043F;&#x0438;&#x0441;&#x043E;&#x043A; &#x0444;&#x043E;&#x0440;&#x043C;&#x0443;&#x043B;"/>
+<gentext key="ListofUnknown"            text="&#x041D;&#x0435;&#x043E;&#x043F;&#x0440;&#x0435;&#x0434;&#x0435;&#x043B;&#x0435;&#x043D;&#x043D;&#x044B;&#x0439; &#x0441;&#x043F;&#x0438;&#x0441;&#x043E;&#x043A;"/>
+
+<gentext key="nav-prev"                 text="&#x041F;&#x0440;&#x0435;&#x0434;."/>
+<gentext key="nav-prev-sibling"         text="&#x041F;&#x0440;&#x0435;&#x0434;. &#x041F;&#x043E;&#x0434;&#x0440;&#x0430;&#x0437;&#x0434;&#x0435;&#x043B;"/>
+<gentext key="nav-next-sibling"         text="&#x0421;&#x043B;&#x0435;&#x0434;. &#x041F;&#x043E;&#x0434;&#x0440;&#x0430;&#x0437;&#x0434;&#x0435;&#x043B;"/>
+<gentext key="nav-next"                 text="&#x0421;&#x043B;&#x0435;&#x0434;."/>
+<gentext key="nav-up"                   text="&#x0423;&#x0440;&#x043E;&#x0432;&#x0435;&#x043D;&#x044C; &#x0432;&#x044B;&#x0448;&#x0435;"/>
+<gentext key="nav-home"                 text="&#x043D;&#x0430;&#x0447;&#x0430;&#x043B;&#x043E;"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/sk.xml b/help-converters/docbook/docbook/common/sk.xml
new file mode 100644
index 0000000..0c2fbc8
--- /dev/null
+++ b/help-converters/docbook/docbook/common/sk.xml
@@ -0,0 +1,104 @@
+<localization language="sk">
+
+<gentext key="abstract"                 text="Obsah"/>
+<gentext key="answer"                   text="A:"/>
+<gentext key="appendix"                 text="Dodatok"/>
+<gentext key="article"                  text="&#x010C;l&#x00E1;nok"/>
+<gentext key="bibliography"             text="Bibliografia"/>
+<gentext key="book"                     text="Kniha"/>
+<gentext key="caution"                  text="V&#x00DD;STRAHA"/>
+<gentext key="caution"                  text="V&#x00FD;straha"/>
+<gentext key="chapter"                  text="Kapitola"/>
+<gentext key="colophon"                 text="Tir&#x00E1;&#x017E;"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Venovanie"/>
+<gentext key="edition"                  text="Vydanie"/>
+<gentext key="equation"                 text="Rovnice"/>
+<gentext key="example"                  text="Pr&#x00ED;klad"/>
+<gentext key="figure"                   text="Obr&#x00E1;zok"/>
+<gentext key="glosssee"                 text="Pozri"/>
+<gentext key="glossseealso"             text="Pozri tie&#x017E;"/>
+<gentext key="glossary"                 text="Slovn&#x00ED;k"/>
+<gentext key="important"                text="D&#x00D4;LE&#x017D;IT&#x00C9;"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="D&#x00F4;le&#x017E;it&#x00E9;"/>
+<gentext key="index"                    text="Zoznam"/>
+<gentext key="legalnotice"              text="Pr&#x00E1;vna pozn&#x00E1;mka"/>
+<gentext key="msgaud"                   text="Publikum"/>
+<gentext key="msglevel"                 text="&#x00DA;rove&#x0148;"/>
+<gentext key="msgorig"                  text="P&#x00F4;vod"/>
+<gentext key="note"                     text="POZN&#x00C1;MKA"/>
+<gentext key="note"                     text="Pozn&#x00E1;mka"/>
+<gentext key="part"                     text="&#x010C;as&#x0165;"/>
+<gentext key="preface"                  text="&#x00DA;vod"/>
+<gentext key="procedure"                text="Postup"/>
+<gentext key="published"                text="Vydan&#x00E9;"/>
+<gentext key="question"                 text="Q:"/>
+<gentext key="refentry"                 text=""/>
+<gentext key="reference"                text="Odkaz"/>
+<gentext key="refname"                  text="Meno"/>
+<gentext key="refsection"               text=""/>
+<gentext key="refsynopsisdiv"           text="Preh&#x013E;ad"/>
+<gentext key="revision"                 text="Rev&#x00ED;zia"/>
+<gentext key="revhistory"               text="Preh&#x013E;ad rev&#x00ED;zi&#x00ED;"/>
+<gentext key="section"                  text="Oddiel"/>
+<gentext key="see"                      text="Pozri"/>
+<gentext key="seealso"                  text="Pozri tie&#x017E;"/>
+<gentext key="set"                      text="Nastavi&#x0165;"/>
+<gentext key="setindex"                 text="Nastavi&#x0165; index"/>
+<gentext key="sidebar"                  text=""/>
+<gentext key="step"                     text="Krok"/>
+<gentext key="tip"                      text="TIP"/>
+<gentext key="table"                    text="Tabu&#x013E;ka"/>
+<gentext key="tip"                      text="Tip"/>
+<gentext key="warning"                  text="VAROVANIE"/>
+<gentext key="warning"                  text="Varovanie"/>
+<gentext key="appendix"                 text="dodatok"/>
+<gentext key="chapter"                  text="kapitola"/>
+<gentext key="section"                  text="oddiel"/>
+<gentext key="sidebar"                  text="bo&#x010D;n&#x00ED; li&#x0161;ta"/>
+<gentext key="step"                     text="krok"/>
+<gentext key="seealso"                  text="Pozri tie&#x017E;"/>
+
+<gentext key="TableofContents"          text="Obsah"/>
+<gentext key="in"                       text="v"/>
+<gentext key="by"                       text=""/>
+<gentext key="Edited"                   text="Vydan&#x00E9;"/>
+<gentext key="Editedby"                 text="Vydan&#x00E9;"/>
+<gentext key="and"                      text="a"/>
+<gentext key="Notes"                    text="Pozn&#x00E1;mky"/>
+<gentext key="TableNotes"               text="Pozn&#x00E1;mky"/>
+<gentext key="nonexistantelement"       text="neexistuj&#x00FA;ci prvok"/>
+<gentext key="Pgs"                      text="Str."/>
+<gentext key="unsupported"              text="nepodporovan&#x00FD;"/>
+<gentext key="xrefto"                   text="xref k"/>
+<gentext key="unexpectedelementname"    text="Neo&#x010D;ak&#x00E1;van&#x00E9; meno prvku"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="Zoznam tabuliek"/>
+<gentext key="ListofExamples"           text="Zoznam pr&#x00ED;kladov"/>
+<gentext key="ListofFigures"            text="Zoznam obr&#x00E1;zkov"/>
+<gentext key="ListofEquations"          text="Zoznam rovn&#x00ED;c"/>
+<gentext key="ListofUnknown"            text="Zoznam nezn&#x00E1;meho"/>
+
+<gentext key="nav-prev"                 text="Predch&#x00E1;dzaj&#x00FA;ci"/>
+<gentext key="nav-prev-sibling"         text="R&#x00FD;chlo nazp&#x00E4;t"/>
+<gentext key="nav-next-sibling"         text="R&#x00FD;chlo dopredu"/>
+<gentext key="nav-next"                 text="&#x010E;al&#x0161;&#x00ED;"/>
+<gentext key="nav-up"                   text="Hore"/>
+<gentext key="nav-home"                 text="Domov"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/sl.xml b/help-converters/docbook/docbook/common/sl.xml
new file mode 100644
index 0000000..fca0f5e
--- /dev/null
+++ b/help-converters/docbook/docbook/common/sl.xml
@@ -0,0 +1,104 @@
+<localization language="sl">
+
+<gentext key="abstract"       text="Povzetek"/>
+<gentext key="answer"         text="O:"/>
+<gentext key="appendix"       text="Dodatek"/>
+<gentext key="article"        text="&#x010C;lanek"/>
+<gentext key="bibliography"   text="Literatura"/>
+<gentext key="book"           text="Knjiga"/>
+<gentext key="caution"        text="OPOZORILO"/>
+<gentext key="caution"        text="Opozorilo"/>
+<gentext key="chapter"        text="Poglavje"/>
+<gentext key="colophon"       text="Kolofon"/>
+<gentext key="copyright"      text="Pravna za&#x0161;&#x010D;ita"/>
+<gentext key="dedication"     text="Posvetilo"/>
+<gentext key="edition"        text="Izdaja"/>
+<gentext key="equation"       text="Ena&#x010D;ba"/>
+<gentext key="example"        text="Primer"/>
+<gentext key="figure"         text="Slika"/>
+<gentext key="glosssee"       text="glej"/>
+<gentext key="glossseealso"   text="glej tudi"/>
+<gentext key="glossary"       text="Slovar&#x010D;ek"/>
+<gentext key="important"      text="POMEMBNO"/>
+<gentext key="isbn"           text="ISBN"/>
+<gentext key="important"      text="Pomembno"/>
+<gentext key="index"          text="Stvarno kazalo"/>
+<gentext key="legalnotice"    text="Pravno sporo&#x010D;ilo"/>
+<gentext key="msgaud"         text="Ob&#x010D;instvo"/>
+<gentext key="msglevel"       text="Raven"/>
+<gentext key="msgorig"        text="Izvor"/>
+<gentext key="note"           text="OPOMBA"/>
+<gentext key="note"           text="Opomba"/>
+<gentext key="part"           text="Del"/>
+<gentext key="preface"        text="Predgovor"/>
+<gentext key="procedure"      text="Postopek"/>
+<gentext key="published"      text="Izdano"/>
+<gentext key="question"       text="V:"/>
+<gentext key="refentry"       text=""/>
+<gentext key="reference"      text="Sklic"/>
+<gentext key="refname"        text="Ime"/>
+<gentext key="refsection"     text=""/>
+<gentext key="refsynopsisdiv" text="Sinopsis"/>
+<gentext key="revision"       text="Razli&#x010D;ica"/>
+<gentext key="revhistory"     text="Zgodovina razli&#x010D;ic"/>
+<gentext key="section"        text="Razdelek"/>
+<gentext key="see"            text="glej"/>
+<gentext key="seealso"        text="glej tudi"/>
+<gentext key="set"            text="Postavi"/>                  <!-- ? -->
+<gentext key="setindex"       text="Postavi stvarno kazalo"/>   <!-- ? -->
+<gentext key="sidebar"        text=""/>
+<gentext key="step"           text="Korak"/>
+<gentext key="tip"            text="NAMIG"/>
+<gentext key="table"          text="Tabela"/>
+<gentext key="tip"            text="Namig"/>
+<gentext key="warning"        text="POZOR"/>
+<gentext key="warning"        text="Pozor"/>
+<gentext key="appendix"       text="dodatek"/>
+<gentext key="chapter"        text="poglavje"/>
+<gentext key="section"        text="razdelek"/>
+<gentext key="sidebar"        text="sidebar"/>   <!-- ? -->
+<gentext key="step"           text="korak"/>
+<gentext key="seealso"        text="Glej tudi"/>
+
+<gentext key="TableofContents" text="Kazalo"/>
+<gentext key="in" text="v"/>
+<gentext key="by" text="od"/>              <!-- ? -->
+<gentext key="Edited" text="Urejeno"/>         <!-- ? -->
+<gentext key="Editedby" text="Urejeno od"/>   <!-- ? -->
+<gentext key="and" text="in"/>
+<gentext key="Notes" text="Notes"/>           <!-- ? -->
+<gentext key="TableNotes" text="Notes"/>           <!-- ? -->
+<gentext key="nonexistantelement" text="neobstoje&#x010D;i element"/>
+<gentext key="Pgs" text="Str."/>
+<gentext key="unsupported" text="nepodprto"/>
+<gentext key="xrefto" text="xref na"/>         <!-- ? -->
+<gentext key="unexpectedelementname" text="Nepri&#x010D;akovano ime elementa"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Seznam tabel"/>
+<gentext key="ListofExamples" text="Seznam primerov"/>
+<gentext key="ListofFigures" text="Seznam slik"/>
+<gentext key="ListofEquations" text="Seznam ena&#x010D;b"/>
+<gentext key="ListofUnknown" text="Seznam neznanih stvari"/>   <!-- ? -->
+
+<gentext key="nav-prev" text="Nazaj"/>
+<gentext key="nav-prev-sibling" text="Hitro nazaj"/>
+<gentext key="nav-next-sibling" text="Hitro naprej"/>
+<gentext key="nav-next" text="Naprej"/>
+<gentext key="nav-up" text="Gor"/>
+<gentext key="nav-home" text="Domov"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/sv.xml b/help-converters/docbook/docbook/common/sv.xml
new file mode 100644
index 0000000..27b45cc
--- /dev/null
+++ b/help-converters/docbook/docbook/common/sv.xml
@@ -0,0 +1,99 @@
+<localization language="sv">
+
+<gentext key="abstract"                 text="Abstrakt"/>
+<gentext key="appendix"                 text="Appendix"/>
+<gentext key="article"                  text="Artikel"/>
+<gentext key="bibliography"             text="Bibliografi"/>
+<gentext key="book"                     text="Bok"/>
+<gentext key="caution"                  text="OBSERVERA"/>
+<gentext key="caution"                  text="Observera"/>
+<gentext key="chapter"                  text="Kapitel"/>
+<gentext key="copyright"                text="Copyright"/>
+<gentext key="dedication"               text="Dedikation"/>
+<gentext key="edition"                  text="Edition"/>
+<gentext key="equation"                 text="Ekvation"/>
+<gentext key="example"                  text="Exempel"/>
+<gentext key="figure"                   text="Figur"/>
+<gentext key="glosssee"                 text="Se"/>
+<gentext key="glossseealso"             text="Se &#196;ven"/>
+<gentext key="glossary"                 text="Gloslista"/>
+<gentext key="important"                text="VIKTIGT"/>
+<gentext key="isbn"                     text="ISBN"/>
+<gentext key="important"                text="Viktigt"/>
+<gentext key="index"                    text="Index"/>
+<gentext key="legalnotice"              text="Legal Notice"/>
+<gentext key="msgaud"                   text="M&#229;lgrupp"/>
+<gentext key="msglevel"                 text="Niv&#229;"/>
+<gentext key="msgorig"                  text="Ursprung"/>
+<gentext key="note"                     text="NOT"/>
+<gentext key="note"                     text="Not"/>
+<gentext key="part"                     text="Del"/>
+<gentext key="preface"                  text="F&#246;retal"/>
+<gentext key="procedure"                text="Procedur"/>
+<gentext key="published"                text="Publicerad"/>
+<gentext key="refname"                  text="Namn"/>
+<gentext key="reference"                text="Referens"/>
+<gentext key="revision"                 text="Revision"/>
+<gentext key="revhistory"               text="Revisions Historik;"/>
+<gentext key="section"                  text="Sektion"/>
+<gentext key="see"                      text="Se"/>
+<gentext key="seealso"                  text="Se &#196;ven"/>
+<gentext key="set"                      text="Set"/>
+<gentext key="setindex"                 text="Set Index"/>
+<gentext key="sidebar"                  text="Sidebar"/>
+<gentext key="step"                     text="Steg"/>
+<gentext key="tip"                      text="TIPS"/>
+<gentext key="table"                    text="Tabell"/>
+<gentext key="tip"                      text="Tips"/>
+<gentext key="warning"                  text="VARNING"/>
+<gentext key="warning"                  text="Varning"/>
+<gentext key="appendix"                 text="appendix"/>
+<gentext key="chapter"                  text="kapitel"/>
+<gentext key="section"                  text="sektion"/>
+<gentext key="step"                     text="steg"/>
+<gentext key="seealso"                  text="Se &#228;ven"/>
+
+<gentext key="TableofContents"          text="Inneh&#229;llsf&#246;rteckning"/>
+<gentext key="called"                   text="kallas"/>
+<gentext key="in"                       text="i"/>
+<gentext key="by"                       text="av"/>
+<gentext key="Edited"                   text="Utgiven"/>
+<gentext key="Editedby"                 text="Utgiven av"/>
+<gentext key="and"                      text="och"/>
+<gentext key="Notes"                    text="Noter"/>
+<gentext key="TableNotes"               text="Noter"/>
+<gentext key="nonexistantelement"       text="non-existant element"/>
+<gentext key="the"                      text=""/>
+<gentext key="Pgs"                      text="Sid."/>
+<gentext key="unsupported"              text="unsupported"/>
+<gentext key="xrefto"                   text="xref till"/>
+<gentext key="unexpectedelementname"    text="Unexpected element name"/>
+<gentext key="Revisedby"                text="Revised by: "/>
+
+<gentext key="ListofTables"             text="Tabellf&#246;rteckning"/>
+<gentext key="ListofExamples"           text="Exempelf&#246;rteckning"/>
+<gentext key="ListofFigures"            text="Figurf&#246;rteckning"/>
+<gentext key="ListofEquations"          text="Ekvationsf&#246;rteckning"/>
+<gentext key="ListofUnknown"            text="F&#246;rteckning av ok&#228;nda"/>
+
+<gentext key="nav-prev"                 text="F&#246;rutg&#229;ende"/>
+<gentext key="nav-prev-sibling"         text="Snabbt framm&#229;t"/>
+<gentext key="nav-next-sibling"         text="Snabbt bak&#229;t"/>
+<gentext key="nav-next"                 text="N&#228;sta"/>
+<gentext key="nav-up"                   text="Upp"/>
+<gentext key="nav-home"                 text="Hem"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/zh_cn.xml b/help-converters/docbook/docbook/common/zh_cn.xml
new file mode 100644
index 0000000..ef373b4
--- /dev/null
+++ b/help-converters/docbook/docbook/common/zh_cn.xml
@@ -0,0 +1,95 @@
+<localization language="zh_cn">
+
+<gentext key="abstract"       text="&#x6458;&#x8981;"/>
+<gentext key="answer"         text="&#x7B54;:"/>
+<gentext key="appendix"       text="&#x9644;&#x5F55;"/>
+<gentext key="article"        text="&#x6587;&#x7AE0;"/>
+<gentext key="bibliography"   text="&#x53C2;&#x8003;&#x4E66;&#x76EE;"/>
+<gentext key="book"           text="&#x4E66;&#x76EE;"/>
+<gentext key="caution"        text="&#x6CE8;&#x610F;"/>
+<gentext key="chapter"        text="&#x7AE0;"/>
+<gentext key="colophon"       text="Colophon"/>
+<gentext key="copyright"      text="&#x7248;&#x6743;"/>
+<gentext key="dedication"     text="&#x5949;&#x732E;"/>
+<gentext key="edition"        text="&#x7248;"/>
+<gentext key="equation"       text="&#x65B9;&#x7A0B;"/>
+<gentext key="example"        text="&#x4F8B;&#x5B50;"/>
+<gentext key="figure"         text="&#x56FE;&#x5F62;"/>
+<gentext key="glossary"       text="&#x672F;&#x8BED;&#x8868;"/>
+<gentext key="glosssee"       text="&#x89C1;"/>
+<gentext key="glossseealso"   text="&#x53E6;&#x89C1;"/>
+<gentext key="important"      text="&#x91CD;&#x8981;"/>
+<gentext key="index"          text="&#x7D22;&#x5F15;"/>
+<gentext key="isbn"           text="ISBN"/>
+<gentext key="legalnotice"    text="&#x6CD5;&#x5F8B;&#x5E03;&#x544A;"/>
+<gentext key="msgaud"         text="&#x8BFB;&#x8005;"/>
+<gentext key="msglevel"       text="&#x96BE;&#x5EA6;"/>
+<gentext key="msgorig"        text="&#x51FA;&#x5904;"/>
+<gentext key="note"           text="&#x6CE8;"/>
+<gentext key="part"           text="&#x90E8;&#x5206;"/>
+<gentext key="preface"        text="&#x524D;&#x8A00;"/>
+<gentext key="procedure"      text="&#x8FC7;&#x7A0B;"/>
+<gentext key="published"      text="&#x51FA;&#x7248;"/>
+<gentext key="question"       text="&#x95EE;:"/>
+<gentext key="refentry"       text=""/>
+<gentext key="reference"      text="&#x53C2;&#x8003;"/>
+<gentext key="refname"        text="&#x540D;&#x5B57;"/>
+<gentext key="refsection"     text=""/>
+<gentext key="refsynopsisdiv" text="&#x5927;&#x7EB2;"/>
+<gentext key="revhistory"     text="&#x4FEE;&#x8BA2;&#x5386;&#x53F2;"/>
+<gentext key="revision"       text="&#x4FEE;&#x8BA2;"/>
+<gentext key="section"        text="&#x8282;"/>
+<gentext key="see"            text="&#x89C1;"/>
+<gentext key="seealso"        text="&#x53E6;&#x89C1;"/>
+<gentext key="set"            text="Set"/>
+<gentext key="setindex"       text="Set Index"/>
+<gentext key="sidebar"        text="sidebar"/>
+<gentext key="step"           text="&#x6B65;&#x9AA4;"/>
+<gentext key="table"          text="&#x8868;&#x683C;"/>
+<gentext key="tip"            text="&#x63D0;&#x793A;"/>
+<gentext key="tip"            text="&#x63D0;&#x793A;"/>
+<gentext key="warning"        text="&#x8B66;&#x544A;"/>
+
+<gentext key="TableofContents"	text="&#x76EE;&#x5F55;"/>
+<gentext key="in"		text="&#x5728;"/>
+<gentext key="by"		text="&#x7531;"/>
+<gentext key="Edited"		text="&#x7F16;&#x8F91;"/>
+<gentext key="Editedby"		text="&#x7F16;&#x8F91;"/>
+<gentext key="and"		text="&#x548C;"/>
+<gentext key="Notes"		text="&#x6CE8;"/>
+<gentext key="TableNotes"	text="&#x6CE8;"/>
+<gentext key="nonexistantelement"	text="&#x4E0D;&#x5B58;&#x5728;&#x7684;&#x5143;&#x7D20;"/>
+<gentext key="Pgs"		text="&#x9875;"/>
+<gentext key="unsupported"	text="&#x4E0D;&#x652F;&#x6301;"/>
+<gentext key="xrefto"		text="&#x53C2;&#x7167;"/>
+<gentext key="unexpectedelementname"	text="&#x672A;&#x9884;&#x6599;&#x5230;&#x7684;&#x5143;&#x7D20;&#x540D;"/>
+<gentext key="Revisedby"	text="&#x4FEE;&#x8BA2;"/>
+
+<gentext key="ListofTables"	text="&#x8868;&#x683C;&#x5217;&#x8868;"/>
+<gentext key="ListofExamples"	text="&#x793A;&#x4F8B;&#x5217;&#x8868;"/>
+<gentext key="ListofFigures"	text="&#x56FE;&#x5F62;&#x5217;&#x8868;"/>
+<gentext key="ListofEquations"	text="&#x65B9;&#x7A0B;&#x5F0F;&#x5217;&#x8868;"/>
+<gentext key="ListofUnknown"	text="&#x5176;&#x4ED6;&#x5185;&#x5BB9;&#x5217;&#x8868;"/>
+
+<gentext key="nav-prev"		text="&#x540E;&#x9000;"/>
+<gentext key="nav-prev-sibling"	text="&#x5FEB;&#x901F;&#x540E;&#x9000;"/>
+<gentext key="nav-next-sibling"	text="&#x5FEB;&#x901F;&#x524D;&#x8FDB;"/>
+<gentext key="nav-next"		text="&#x524D;&#x8FDB;"/>
+<gentext key="nav-up"		text="&#x4E0A;&#x4E00;&#x7EA7;"/>
+<gentext key="nav-home"		text="&#x8D77;&#x70B9;"/>
+
+<dingbat key="startquote" text='"'/>
+<dingbat key="endquote" text='"'/>
+<dingbat key="nestedstartquote" text="'"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="appendix" text="%g %n"/>
+<xref element="chapter" text="%g %n"/>
+<xref element="dedication" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="bibliography" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/zh_tw.xml b/help-converters/docbook/docbook/common/zh_tw.xml
new file mode 100644
index 0000000..7168114
--- /dev/null
+++ b/help-converters/docbook/docbook/common/zh_tw.xml
@@ -0,0 +1,98 @@
+<localization language="zh_tw">
+
+<gentext key="abstract"       text="&#x6458;&#x8981;"/>
+<gentext key="answer"         text="&#x7B54;&#xFF1A;"/>
+<gentext key="appendix"       text="&#x9644;&#x9304;"/>
+<gentext key="article"        text="&#x6587;&#x7AE0;"/>
+<gentext key="bibliography"   text="&#x53C3;&#x8003;&#x6587;&#x737B;"/>
+<gentext key="book"           text="&#x66F8;&#x76EE;"/>
+<gentext key="caution"        text="&#x6CE8;&#x610F;"/>
+<gentext key="chapter"        text="&#x7AE0;"/>
+<gentext key="colophon"       text="&#x7248;&#x672C;&#x8A18;&#x9304;"/>
+<gentext key="copyright"      text="&#x7248;&#x6B0A;"/>
+<gentext key="dedication"     text="&#x5949;&#x737B;"/>
+<gentext key="edition"        text="&#x7248;"/>
+<gentext key="equation"       text="&#x65B9;&#x7A0B;&#x5F0F;"/>
+<gentext key="example"        text="&#x7BC4;&#x4F8B;"/>
+<gentext key="figure"         text="&#x5716;&#x5F62;"/>
+<gentext key="glossary"       text="&#x5C0F;&#x8FAD;&#x5F59;"/>
+<gentext key="glosssee"       text="&#x53C3;&#x898B;"/>
+<gentext key="glossseealso"   text="&#x53E6;&#x53C3;&#x898B;"/>
+<gentext key="important"      text="&#x91CD;&#x8981;"/>
+<gentext key="index"          text="&#x7D22;&#x5F15;"/>
+<gentext key="isbn"           text="ISBN"/>
+<gentext key="legalnotice"    text="&#x6CD5;&#x5F8B;&#x8072;&#x660E;"/>
+<gentext key="msgaud"         text="&#x8B80;&#x8005;"/>
+<gentext key="msglevel"       text="&#x7A0B;&#x5EA6;"/>
+<gentext key="msgorig"        text="&#x51FA;&#x8655;"/>
+<gentext key="note"           text="&#x6CE8;"/>
+<gentext key="part"           text="&#x90E8;"/>
+<gentext key="preface"        text="&#x5E8F;&#x8A00;"/>
+<gentext key="procedure"      text="&#x904E;&#x7A0B;"/>
+<gentext key="published"      text="&#x51FA;&#x7248;"/>
+<gentext key="question"       text="&#x554F;&#xFF1A;"/>
+<gentext key="refentry"       text="&#x53C3;&#x7167;&#x9805;&#x76EE;"/>
+<gentext key="reference"      text="&#x53C3;&#x8003;"/>
+<gentext key="refname"        text="&#x53C3;&#x8003;&#x540D;"/>
+<gentext key="refsection"     text="&#x53C3;&#x7167;&#x7AE0;&#x7BC0;"/>
+<gentext key="refsynopsisdiv" text="&#x5927;&#x7DB1;"/>
+<gentext key="revhistory"     text="&#x4FEE;&#x8A02;&#x8A18;&#x9304;"/>
+<gentext key="revision"       text="&#x4FEE;&#x8A02;"/>
+<gentext key="section"        text="&#x7BC0;"/>
+<gentext key="see"            text="&#x898B;"/>
+<gentext key="seealso"        text="&#x53E6;&#x898B;"/>
+<gentext key="set"            text="Set"/>
+<gentext key="setindex"       text="Set Index"/>
+<gentext key="sidebar"        text=""/>
+<gentext key="step"           text="&#x6B65;&#x9A5F;"/>
+<gentext key="table"          text="&#x8868;&#x683C;"/>
+<gentext key="tip"            text="&#x63D0;&#x793A;"/>
+<gentext key="tip"            text="&#x63D0;&#x793A;"/>
+<gentext key="warning"        text="&#x8B66;&#x544A;"/>
+
+<gentext key="TableofContents"
+         text="&#x5167;&#x5BB9;&#x76EE;&#x9304;"/>
+<gentext key="in"             text="&#x5728;"/>
+<gentext key="by"             text="&#x7531;"/>
+<gentext key="Edited"         text="&#x7DE8;&#x8F2F;"/>
+<gentext key="Editedby"       text="&#x7DE8;&#x8F2F;"/>
+<gentext key="and"            text="&#x4E14;"/>
+<gentext key="Notes"          text="&#x6CE8;"/>
+<gentext key="TableNotes"     text="&#x6CE8;&#x91CB;"/>
+<gentext key="nonexistantelement"
+         text="&#x4E0D;&#x5B58;&#x5728;&#x7684;&#x5143;&#x7D20;"/>
+<gentext key="Pgs"            text="&#x9801;"/>
+<gentext key="unsupported"    text="&#x672A;&#x652F;&#x63F4;"/>
+<gentext key="xrefto"         text="&#x53C3;&#x7167;"/>
+<gentext key="unexpectedelementname"
+         text="&#x975E;&#x9810;&#x671F;&#x7684;&#x5143;&#x7D20;&#x540D;"/>
+<gentext key="Revisedby"      text="&#x4FEE;&#x8A02;"/>
+
+<gentext key="ListofTables"   text="&#x9644;&#x8868;&#x76EE;&#x9304;"/>
+<gentext key="ListofExamples" text="&#x7BC4;&#x4F8B;&#x76EE;&#x9304;"/>
+<gentext key="ListofFigures"  text="&#x9644;&#x5716;&#x76EE;&#x9304;"/>
+<gentext key="ListofEquations" text="&#x516C;&#x5F0F;&#x76EE;&#x9304;"/>
+<gentext key="ListofUnknown"  text="&#x5176;&#x5B83;&#x5167;&#x5BB9;&#x76EE;&#x9304;"/>
+
+<gentext key="nav-prev"       text="&#x524D;&#x4E00;&#x9801;"/>
+<gentext key="nav-prev-sibling" text="&#x5FEB;&#x901F;&#x5411;&#x524D;"/>
+<gentext key="nav-next-sibling" text="&#x5FEB;&#x901F;&#x5411;&#x5F8C;"/>
+<gentext key="nav-next"         text="&#x4E0B;&#x4E00;&#x9801;"/>
+<gentext key="nav-up"           text="&#x4E0A;&#x4E00;&#x5C64;"/>
+<gentext key="nav-home"         text="&#x5167;&#x5BB9;"/>
+
+<dingbat key="startquote"     text="&quot;"/>
+<dingbat key="endquote"       text="&quot;"/>
+<dingbat key="nestedstartquote" text="'"/>
+<dingbat key="nestedendquote"   text="'"/>
+<dingbat key="bullet"         text="&#2022;"/>
+
+<xref element="appendix"      text="%g %n"/>
+<xref element="chapter"       text="%g %n"/>
+<xref element="dedication"    text="%t"/>
+<xref element="preface"       text="%t"/>
+<xref element="bibliography"  text="%t"/>
+<xref element="glossary"      text="%t"/>
+<xref element="index"         text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/html/admon.xsl b/help-converters/docbook/docbook/html/admon.xsl
new file mode 100644
index 0000000..234c3a2
--- /dev/null
+++ b/help-converters/docbook/docbook/html/admon.xsl
@@ -0,0 +1,149 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="note|important|warning|caution|tip">
+  <xsl:choose>
+    <xsl:when test="$admon.graphics != 0">
+      <xsl:call-template name="graphical.admonition"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="nongraphical.admonition"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="admon.graphic.width">
+  <xsl:param name="node" select="."/>
+  <xsl:text>25</xsl:text>
+</xsl:template>
+
+<xsl:template name="admon.graphic">
+  <xsl:param name="node" select="."/>
+  <xsl:value-of select="$admon.graphics.path"/>
+  <xsl:choose>
+    <xsl:when test="name($node)='note'">note</xsl:when>
+    <xsl:when test="name($node)='warning'">warning</xsl:when>
+    <xsl:when test="name($node)='caution'">caution</xsl:when>
+    <xsl:when test="name($node)='tip'">tip</xsl:when>
+    <xsl:when test="name($node)='important'">important</xsl:when>
+    <xsl:otherwise>note</xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$admon.graphics.extension"/>
+</xsl:template>
+
+<xsl:template name="graphical.admonition">
+  <div class="{name(.)}">
+  <xsl:if test="$admon.style">
+    <xsl:attribute name="style">
+      <xsl:value-of select="$admon.style"/>
+    </xsl:attribute>
+  </xsl:if>
+  <table border="0">
+    <tr>
+      <td rowspan="2" align="center" valign="top">
+        <xsl:attribute name="width">
+          <xsl:call-template name="admon.graphic.width"/>
+        </xsl:attribute>
+        <img>
+          <xsl:attribute name="src">
+            <xsl:call-template name="admon.graphic"/>
+          </xsl:attribute>
+        </img>
+      </td>
+      <th>
+        <xsl:choose>
+          <xsl:when test="./title">
+            <xsl:apply-templates select="./title" 
+                                 mode="graphic.admonition.title.mode"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <a>
+              <xsl:attribute name="name">
+                <xsl:call-template name="object.id"/>
+              </xsl:attribute>
+              <xsl:call-template name="gentext.element.name"/>
+            </a>
+          </xsl:otherwise>
+        </xsl:choose>
+      </th>
+    </tr>
+    <tr>
+      <td colspan="2" align="left" valign="top">
+        <xsl:apply-templates/>
+      </td>
+    </tr>
+  </table>
+  </div>
+</xsl:template>
+
+<xsl:template name="nongraphical.admonition">
+  <div class="{name(.)}">
+  <xsl:if test="$admon.style">
+    <xsl:attribute name="style">
+      <xsl:value-of select="$admon.style"/>
+    </xsl:attribute>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="./title">
+      <xsl:apply-templates select="./title" mode="admonition.title.mode"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <h3 class="title">
+        <a>
+          <xsl:attribute name="name">
+            <xsl:call-template name="object.id"/>
+          </xsl:attribute>
+          <xsl:call-template name="gentext.element.name"/>
+        </a>
+      </h3>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="note/title"></xsl:template>
+<xsl:template match="important/title"></xsl:template>
+<xsl:template match="warning/title"></xsl:template>
+<xsl:template match="caution/title"></xsl:template>
+<xsl:template match="tip/title"></xsl:template>
+
+<xsl:template match="title" mode="admonition.title.mode">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h3 class="title">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h3>
+</xsl:template>
+
+<xsl:template match="title" mode="graphic.admonition.title.mode">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <b class="title">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </b>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/autotoc.xsl b/help-converters/docbook/docbook/html/autotoc.xsl
new file mode 100644
index 0000000..e4a2204
--- /dev/null
+++ b/help-converters/docbook/docbook/html/autotoc.xsl
@@ -0,0 +1,511 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="href.target">
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:variable name="toc.listitem.type">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">dt</xsl:when>
+    <xsl:otherwise>li</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<!-- this is just hack because dl and ul aren't completely isomorphic -->
+<xsl:variable name="toc.dd.type">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">dd</xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:template name="set.toc">
+  <xsl:variable name="nodes" select="book|setindex"/>
+  <xsl:if test="$nodes">
+    <div class="toc">
+      <p>
+        <b>
+          <xsl:call-template name="gentext.element.name">
+            <xsl:with-param name="element.name">TableofContents</xsl:with-param>
+          </xsl:call-template>
+        </b>
+      </p>
+      <xsl:element name="{$toc.list.type}">
+        <xsl:apply-templates select="$nodes" mode="toc"/>
+      </xsl:element>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="division.toc">
+  <xsl:if test="$generate.division.toc != 0">
+    <xsl:variable name="nodes" select="part|reference
+                                       |preface|chapter|appendix
+                                       |bibliography|glossary|index
+                                       |refentry"/>
+    <xsl:if test="$nodes">
+      <div class="toc">
+        <p>
+          <b>
+           <xsl:call-template name="gentext.element.name">
+             <xsl:with-param name="element.name">TableofContents</xsl:with-param>
+           </xsl:call-template>
+          </b>
+        </p>
+        <xsl:element name="{$toc.list.type}">
+          <xsl:apply-templates select="$nodes" mode="toc"/>
+        </xsl:element>
+      </div>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.toc">
+  <xsl:if test="$generate.component.toc != 0">
+    <xsl:variable name="nodes" select="section|sect1|refentry"/>
+    <xsl:if test="$nodes">
+      <div class="toc">
+        <p>
+          <b>
+           <xsl:call-template name="gentext.element.name">
+             <xsl:with-param name="element.name">TableofContents</xsl:with-param>
+           </xsl:call-template>
+          </b>
+        </p>
+        <xsl:element name="{$toc.list.type}">
+          <xsl:apply-templates select="$nodes" mode="toc"/>
+        </xsl:element>
+      </div>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="section.toc">
+  <xsl:variable name="nodes" select="section|sect1|sect2|sect3|sect4|sect5|refentry"/>
+  <xsl:if test="$nodes">
+    <div class="toc">
+      <p>
+        <b>
+          <xsl:call-template name="gentext.element.name">
+            <xsl:with-param name="element.name">TableofContents</xsl:with-param>
+          </xsl:call-template>
+        </b>
+      </p>
+      <xsl:element name="{$toc.list.type}">
+        <xsl:apply-templates select="$nodes" mode="toc"/>
+      </xsl:element>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book|setindex" mode="toc">
+  <xsl:variable name="nodes" select="part|reference
+                                     |preface|chapter|appendix
+                                     |bibliography|glossary|index
+                                     |refentry"/>
+
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates mode="toc" select="$nodes"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.content"/>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.content"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>0 and count($nodes)&gt;0">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>0 and count($nodes)&gt;0">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part|reference|preface|chapter|appendix"
+              mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="section|sect1" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.content"/>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.content"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>0 and section|sect1">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>0 and section|sect1">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect1" mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="sect2" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.content"/>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.content"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>1 and sect2">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>1 and sect2">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect2" mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="sect3" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.content"/>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.content"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>2 and sect3">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>2 and sect3">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect3" mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="sect4" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.content"/>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.content"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>3 and sect4">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>3 and sect4">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect4" mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="sect5" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.content"/>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.content"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>4 and sect5">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>4 and sect5">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect5" mode="toc">
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.content"/>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.content"/>
+    </a>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="section" mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="section" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="toodeep">
+    <xsl:choose>
+      <!-- if the depth is less than 2, we're already deep enough -->
+      <xsl:when test="$toc.section.depth &lt; 2">yes</xsl:when>
+      <!-- if the current section has n-1 section ancestors -->
+      <!-- then we've already reached depth n -->
+      <xsl:when test="ancestor::section[position()=$toc.section.depth - 1]">
+        <xsl:text>yes</xsl:text>
+      </xsl:when>
+      <!-- otherwise, keep going -->
+      <xsl:otherwise>no</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.content"/>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.content"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toodeep='no' and section">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toodeep='no' and section">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary"
+              mode="toc">
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:choose>
+      <xsl:when test="title[1]">
+        <xsl:apply-templates select="title[1]" mode="toc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <a>
+          <xsl:attribute name="href">
+            <xsl:call-template name="href.target"/>
+          </xsl:attribute>
+          <xsl:call-template name="gentext.element.name"/>
+        </a>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="index" mode="toc">
+  <!-- If the index tag is empty, don't point at it from the TOC -->
+  <xsl:if test="* or $generate.index">
+    <xsl:element name="{$toc.listitem.type}">
+      <xsl:choose>
+        <xsl:when test="title[1]">
+          <xsl:apply-templates select="title[1]" mode="toc"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <a>
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target"/>
+            </xsl:attribute>
+            <xsl:call-template name="gentext.element.name"/>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:element>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refentry" mode="toc">
+  <xsl:variable name="refmeta" select=".//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select=".//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="title"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="title"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:copy-of select="$title"/>
+    </a>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="title" mode="toc">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select=".."/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/biblio.xsl b/help-converters/docbook/docbook/html/biblio.xsl
new file mode 100644
index 0000000..2742025
--- /dev/null
+++ b/help-converters/docbook/docbook/html/biblio.xsl
@@ -0,0 +1,948 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliography">
+  <div class="{name(.)}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:choose>
+      <xsl:when test="./title">
+        <xsl:apply-templates select="./title" mode="component.title.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <h2 class="title">
+          <a>
+            <xsl:attribute name="name">
+              <xsl:call-template name="object.id"/>
+            </xsl:attribute>
+            <xsl:call-template name="gentext.element.name"/>
+          </a>
+        </h2>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="./subtitle">
+      <xsl:apply-templates select="./subtitle" mode="component.title.mode"/>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliography/bibliographyinfo"></xsl:template>
+<xsl:template match="bibliography/title"></xsl:template>
+<xsl:template match="bibliography/subtitle"></xsl:template>
+<xsl:template match="bibliography/titleabbrev"></xsl:template>
+
+<xsl:template match="bibliography/title" mode="component.title.mode">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h2 class="title">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h2>
+</xsl:template>
+
+<xsl:template match="bibliography/subtitle" mode="component.title.mode">
+  <h3>
+    <i><xsl:apply-templates/></i>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliodiv">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliodiv/title">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h3 class="{name(.)}">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="biblioentry">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <div id="{$id}" class="{name(.)}">
+    <a name="{$id}"/>
+    <p>
+      <xsl:apply-templates mode="bibliography.mode"/>
+    </p>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliomixed">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <div id="{$id}" class="{name(.)}">
+    <a name="{$id}"/>
+    <p>
+      <xsl:choose>
+	<xsl:when test="local-name(*[1]) = 'abbrev'">
+	  <xsl:apply-templates select="*[position()>1]|text()"
+                               mode="bibliomixed.mode"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:apply-templates mode="bibliomixed.mode"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </p>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliography.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:text>[</xsl:text>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:text>] </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="address" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artheader|articleinfo" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:call-template name="person.name"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:call-template name="person.name.list"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="biblioset/title|biblioset/citetitle" 
+              mode="bibliography.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article'">
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">ldquo</xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates/>
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">rdquo</xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <I><xsl:apply-templates/></I>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$biblioentry.item.separator"/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bookbiblio" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <i><xsl:apply-templates mode="bibliography.mode"/></i>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collabname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confdates" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="copyright" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:call-template name="gentext.element.name"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">copyright</xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="year" mode="bibliography.mode"/>
+    <xsl:if test="holder">
+      <xsl:call-template name="gentext.space"/>
+      <xsl:apply-templates select="holder" mode="bibliography.mode"/>
+    </xsl:if>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="year" mode="bibliography.mode">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="corpauthor" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:call-template name="person.name"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="seriesinfo" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <I><xsl:apply-templates mode="bibliography.mode"/></I>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliomixed.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="address" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bibliomset" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomset/title|bibliomset/citetitle" 
+              mode="bibliomixed.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article'">
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">ldquo</xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates/>
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">rdquo</xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <I><xsl:apply-templates/></I>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <i><xsl:apply-templates mode="bibliomixed.mode"/></i>
+  </span>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="copyright" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/block.xsl b/help-converters/docbook/docbook/html/block.xsl
new file mode 100644
index 0000000..bf53b8d
--- /dev/null
+++ b/help-converters/docbook/docbook/html/block.xsl
@@ -0,0 +1,323 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="block.object">
+  <div class="{name(.)}">
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </a>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="para">
+  <p>
+    <xsl:if test="position() = 1 and parent::listitem">
+      <a>
+        <xsl:attribute name="name">
+          <xsl:call-template name="object.id">
+            <xsl:with-param name="object" select="parent::listitem"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </a>
+    </xsl:if>
+
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="simpara">
+  <p>
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="formalpara">
+  <p>
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="formalpara/title">
+  <b><xsl:apply-templates/></b>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="formalpara/para">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="blockquote">
+  <xsl:if test="@id">
+    <a name="{ id}"/>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="attribution">
+      <table border="0" width="100%"
+	     cellspacing="0" cellpadding="0" class="blockquote"
+             summary="Block quote">
+	<tr>
+	  <td width="10%" valign="top">&#160;</td>
+	  <td width="80%" valign="top">
+	    <xsl:apply-templates
+	      select="child::*[local-name(.)!='attribution']"/>
+	  </td>
+	  <td width="10%" valign="top">&#160;</td>
+	</tr>
+	<tr>
+	  <td colspan="2" align="right" valign="top">
+	    <xsl:text>--</xsl:text>
+	    <xsl:apply-templates select="attribution"/>
+	  </td>
+	  <td width="10%" valign="top">&#160;</td>
+	</tr>
+      </table>
+    </xsl:when>
+    <xsl:otherwise>
+      <blockquote class="blockquote">
+	<xsl:apply-templates/>
+      </blockquote>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="epigraph">
+  <div class="{name(.)}">
+    <xsl:apply-templates select="para"/>
+    <span>--<xsl:apply-templates select="attribution"/></span>
+  </div>
+</xsl:template>
+
+<xsl:template match="attribution">
+  <span class="{name(.)}"><xsl:apply-templates/></span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="sidebar">
+  <div class="{name(.)}">
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </a>
+  
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="sidebar/title">
+  <p class="title">
+    <b><xsl:apply-templates/></b>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="abstract">
+  <div class="{name(.)}">
+    <xsl:call-template name="formal.object.heading">
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="." mode="title.ref"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="abstract/title">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="msgset">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="simplemsgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msg">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgmain">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgmain/title">
+  <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgsub">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgsub/title">
+  <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgrel">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgrel/title">
+  <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgtext">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msginfo">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msglevel|msgorig|msgaud">
+  <p>
+    <b>
+      <xsl:call-template name="gentext.element.name"/>
+      <xsl:text>: </xsl:text>
+    </b>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="msgexplan">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgexplan/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="revhistory">
+  <div class="{name(.)}">
+    <table border="0" width="100%" summary="Revision history">
+      <tr>
+        <th align="left" valign="top" colspan="3">
+          <b><xsl:call-template name="gentext.element.name"/></b>
+        </th>
+      </tr>
+      <xsl:apply-templates/>
+    </table>
+  </div>
+</xsl:template>
+
+<xsl:template match="revhistory/revision">
+  <xsl:variable name="revnumber" select=".//revnumber"/>
+  <xsl:variable name="revdate"   select=".//date"/>
+  <xsl:variable name="revauthor" select=".//authorinitials"/>
+  <xsl:variable name="revremark" select=".//revremark|../revdescription"/>
+  <tr>
+    <td align="left">
+      <xsl:if test="$revnumber">
+        <xsl:call-template name="gentext.element.name"/>
+        <xsl:text> </xsl:text>
+        <xsl:apply-templates select="$revnumber"/>
+      </xsl:if>
+    </td>
+    <td align="left">
+      <xsl:apply-templates select="$revdate"/>
+    </td>
+    <xsl:choose>
+      <xsl:when test="count($revauthor)=0">
+        <td align="left">
+          <xsl:call-template name="dingbat">
+            <xsl:with-param name="dingbat">nbsp</xsl:with-param>
+          </xsl:call-template>
+        </td>
+      </xsl:when>
+      <xsl:otherwise>
+        <td align="left">
+          <xsl:apply-templates select="$revauthor"/>
+        </td>
+      </xsl:otherwise>
+    </xsl:choose>
+  </tr>
+  <xsl:if test="$revremark">
+    <tr>
+      <td align="left" colspan="3">
+        <xsl:apply-templates select="$revremark"/>
+      </td>
+    </tr>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/date">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials">
+  <xsl:text>, </xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials[1]" priority="2">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revremark">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="ackno">
+  <p class="{name(.)}">
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="highlights">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/callout.xsl b/help-converters/docbook/docbook/html/callout.xsl
new file mode 100644
index 0000000..68ca333
--- /dev/null
+++ b/help-converters/docbook/docbook/html/callout.xsl
@@ -0,0 +1,127 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:verb5="http://nwalsh.com/com.nwalsh.saxon.Verbatim";
+                xmlns:verb6="http://nwalsh.com/com.nwalsh.saxon6.Verbatim";
+                exclude-result-prefixes="verb5 verb6"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="programlistingco|screenco">
+  <xsl:variable name="verbatim" select="programlisting|screen"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="$saxon.extensions != '0'
+                    and $saxon.callouts != '0'">
+      <xsl:variable name="rtf">
+        <xsl:apply-templates select="$verbatim">
+          <xsl:with-param name="suppress-numbers" select="'1'"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+      <xsl:variable name="rtf-with-callouts">
+        <xsl:choose>
+          <xsl:when test="contains($vendor, 'SAXON 6')">
+            <xsl:copy-of select="verb6:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:when test="$callout.graphics != 0">
+            <xsl:copy-of select="verb5:insertCallouts(areaspec,$rtf,
+                                 $callout.defaultcolumn,
+                                 $callout.graphics.path,
+                                 $callout.graphics.extension,
+                                 $callout.graphics.number.limit,
+                                 false())"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:copy-of select="verb5:insertCallouts(areaspec,$rtf,
+                                 $callout.defaultcolumn)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$verbatim/@linenumbering = 'numbered'
+                        and $saxon.extensions != '0'
+                        and $saxon.linenumbering != '0'">
+          <div class="{name(.)}">
+            <xsl:choose>
+              <xsl:when test="contains($vendor, 'SAXON 6')">
+                <xsl:copy-of select="verb6:numberLines($rtf-with-callouts)"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:copy-of select="verb5:numberLines($rtf-with-callouts,
+                                     $linenumbering.everyNth,
+                                     $linenumbering.width,
+                                     $linenumbering.separator)"/>
+              </xsl:otherwise>
+            </xsl:choose>
+            <xsl:apply-templates select="calloutlist"/>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <div class="{name(.)}">
+            <xsl:copy-of select="$rtf-with-callouts"/>
+            <xsl:apply-templates select="calloutlist"/>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <div class="{name(.)}">
+        <xsl:apply-templates/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="areaspec|areaset|area">
+</xsl:template>
+
+<xsl:template match="areaset" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="area" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="co">
+  <a name="{ id}"/>
+  <xsl:apply-templates select="." mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="co" mode="callout-bug">
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:number count="co" format="1"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="callout-bug">
+  <xsl:param name="conum" select='1'/>
+
+  <xsl:choose>
+    <xsl:when test="$callout.graphics = '0'
+                    or $conum > $callout.graphics.number.limit">
+
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$conum"/>
+      <xsl:text>)</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <img src="{$callout.graphics.path}{$conum}{$callout.graphics.extension}"
+           alt="{$conum}" border="0"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/changebars.xsl b/help-converters/docbook/docbook/html/changebars.xsl
new file mode 100644
index 0000000..fee001a
--- /dev/null
+++ b/help-converters/docbook/docbook/html/changebars.xsl
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version="1.0">
+
+<xsl:import href="docbook.xsl"/>
+
+<xsl:param name="show.revisionflag" select="'1'"/>
+
+<xsl:template name="user.head.content">
+<style type="text/css">
+<xsl:text>
+div.added    { background-color: yellow; }
+div.deleted  { text-decoration: line-through;
+               background-color: #FF7F7F; }
+div.changed  { background-color: lime; }
+div.off      {  }
+
+span.added   { background-color: yellow; }
+span.deleted { text-decoration: line-through;
+               background-color: #FF7F7F; }
+span.changed { background-color: lime; }
+span.off     {  }
+</xsl:text>
+</style>
+</xsl:template>
+
+<xsl:template match="*[ revisionflag]">
+  <xsl:choose>
+    <xsl:when test="local-name(.) = 'para'
+                    or local-name(.) = 'section'
+                    or local-name(.) = 'sect1'
+                    or local-name(.) = 'sect2'
+                    or local-name(.) = 'sect3'
+                    or local-name(.) = 'sect4'
+                    or local-name(.) = 'sect5'
+                    or local-name(.) = 'chapter'
+                    or local-name(.) = 'preface'
+                    or local-name(.) = 'itemizedlist'
+                    or local-name(.) = 'appendix'">
+      <div class='{ revisionflag}'>
+	<xsl:apply-imports/>
+      </div>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'phrase'
+                    or local-name(.) = 'ulink'
+                    or local-name(.) = 'filename'
+                    or local-name(.) = 'literal'
+                    or local-name(.) = 'emphasis'
+                    or local-name(.) = 'command'
+                    or local-name(.) = 'xref'">
+      <span class='{ revisionflag}'>
+	<xsl:apply-imports/>
+      </span>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'listitem'
+                    or local-name(.) = 'title'">
+      <!-- nop; these are handled directly in the stylesheet -->
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Revisionflag on unexpected element: </xsl:text>
+	<xsl:value-of select="local-name(.)"/>
+	<xsl:text>(Assuming block)</xsl:text>
+      </xsl:message>
+      <div class='{ revisionflag}'>
+	<xsl:apply-imports/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/chunk-common.xsl b/help-converters/docbook/docbook/html/chunk-common.xsl
new file mode 100644
index 0000000..4b3221a
--- /dev/null
+++ b/help-converters/docbook/docbook/html/chunk-common.xsl
@@ -0,0 +1,755 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:saxon="http://icl.com/saxon";
+                xmlns:lxslt="http://xml.apache.org/xslt";
+                xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0";
+		version="1.0"
+                exclude-result-prefixes="doc"
+                extension-element-prefixes="saxon xalanredirect lxslt">
+
+<xsl:import href="docbook.xsl"/>
+
+<xsl:output method="html"
+            encoding="ISO-8859-1"
+            indent="no"/>
+
+<xsl:param name="html.ext" select="'.html'"/>
+<xsl:param name="root.filename" select="'index'"/>
+<xsl:param name="base.dir" select="''"/>
+<doc:param name="base.dir" xmlns="">
+<refpurpose>Output directory for chunks</refpurpose>
+<refdescription>
+<para>If specified, the <literal>base.dir</literal> identifies
+the output directory for chunks. (If not specified, the output directory
+is system dependent.)</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<!-- What's a chunk?
+
+     appendix
+     article
+     bibliography  in article or book
+     book
+     chapter
+     colophon
+     glossary      in article or book
+     index         in article or book
+     part
+     preface
+     refentry
+     reference
+     sect1         if position()>1
+     section       if position()>1 && parent != section
+     set
+     setindex
+                                                                          -->
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+  <!-- returns 1 if $node is a chunk -->
+
+  <xsl:choose>
+    <xsl:when test="name($node)='sect1'
+                    and count($node/preceding-sibling::sect1) > 0">1</xsl:when>
+    <xsl:when test="name($node)='section'
+                    and count($node/parent::section) = 0
+                    and count($node/preceding-sibling::section) > 0">1</xsl:when>
+    <xsl:when test="name($node)='preface'">1</xsl:when>
+    <xsl:when test="name($node)='chapter'">1</xsl:when>
+    <xsl:when test="name($node)='appendix'">1</xsl:when>
+    <xsl:when test="name($node)='article'">1</xsl:when>
+    <xsl:when test="name($node)='part'">1</xsl:when>
+    <xsl:when test="name($node)='reference'">1</xsl:when>
+    <xsl:when test="name($node)='refentry'">1</xsl:when>
+    <xsl:when test="name($node)='index'
+                    and (name($node/parent::*) = 'article'
+                         or name($node/parent::*) = 'book')">1</xsl:when>
+    <xsl:when test="name($node)='bibliography'
+                    and (name($node/parent::*) = 'article'
+                         or name($node/parent::*) = 'book')">1</xsl:when>
+    <xsl:when test="name($node)='glossary'
+                    and (name($node/parent::*) = 'article'
+                         or name($node/parent::*) = 'book')">1</xsl:when>
+    <xsl:when test="name($node)='colophon'">1</xsl:when>
+    <xsl:when test="name($node)='book'">1</xsl:when>
+    <xsl:when test="name($node)='set'">1</xsl:when>
+    <xsl:when test="name($node)='setindex'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="chunk-filename">
+  <xsl:param name="recursive" select="false()"/>
+
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+  <xsl:variable name="filename">
+    <xsl:call-template name="dbhtml-filename"/>
+  </xsl:variable>
+  <xsl:variable name="dir">
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$ischunk='0'">
+      <!-- if called on something that isn't a chunk, walk up... -->
+      <xsl:choose>
+        <xsl:when test="count(parent::*)>0">
+          <xsl:apply-templates mode="chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="$recursive"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <!-- unless there is no up, in which case return "" -->
+        <xsl:otherwise></xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="not($recursive) and $filename != ''">
+      <!-- if this chunk has an explicit name, use it -->
+      <xsl:if test="$dir != ''">
+        <xsl:value-of select="$dir"/>
+        <xsl:text>/</xsl:text>
+      </xsl:if>
+      <xsl:value-of select="$filename"/>
+    </xsl:when>
+
+    <xsl:when test="name(.)='set'">
+      <xsl:value-of select="$root.filename"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='book'">
+      <xsl:choose>
+        <xsl:when test="count(parent::*)>0">
+          <xsl:text>bk</xsl:text>
+          <xsl:number level="any" format="01"/>
+        </xsl:when>
+        <xsl:otherwise>
+	  <xsl:value-of select="$root.filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='article'">
+      <xsl:choose>
+        <xsl:when test="/set">
+          <!-- in a set, make sure we inherit the right book info... -->
+          <xsl:apply-templates mode="chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="true()"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <xsl:when test="count(parent::*)>0">
+          <!-- if we aren't the root, name them numerically ... -->
+          <xsl:text>ar</xsl:text>
+          <xsl:number level="any" format="01" from="book"/>
+        </xsl:when>
+        <xsl:otherwise>
+	  <xsl:value-of select="$root.filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='preface'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>pr</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='chapter'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>ch</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='appendix'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>ap</xsl:text>
+      <xsl:number level="any" format="a" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='part'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>pt</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='reference'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>rn</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='refentry'">
+      <xsl:if test="parent::reference">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>re</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='colophon'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>co</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='sect1' or name(.)='section'">
+      <xsl:apply-templates mode="chunk-filename" select="parent::*">
+        <xsl:with-param name="recursive" select="true()"/>
+      </xsl:apply-templates>
+      <xsl:text>s</xsl:text>
+      <xsl:number level="any" format="01" from="preface|chapter|appendix"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='bibliography'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>bi</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='glossary'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>go</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='index'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>ix</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='setindex'">
+      <xsl:text>si</xsl:text>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:text>chunk-filename-error-</xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="href.target">
+  <xsl:param name="object" select="."/>
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:apply-templates mode="chunk-filename" select="$object"/>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="html.head">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <head>
+    <xsl:call-template name="head.content"/>
+    <xsl:call-template name="user.head.content"/>
+
+    <xsl:if test="$home">
+      <link rel="home">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$home"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$home" mode="title.ref">
+            <xsl:with-param name="text-only" select="'1'"/>
+          </xsl:apply-templates>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$up">
+      <link rel="up">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$up"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$up" mode="title.ref">
+            <xsl:with-param name="text-only" select="'1'"/>
+          </xsl:apply-templates>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$prev">
+      <link rel="previous">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$prev"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$prev" mode="title.ref">
+            <xsl:with-param name="text-only" select="'1'"/>
+          </xsl:apply-templates>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$next">
+      <link rel="next">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$next"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$next" mode="title.ref">
+            <xsl:with-param name="text-only" select="'1'"/>
+          </xsl:apply-templates>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+  </head>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="header.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:if test="$suppress.navigation = '0'">
+    <div class="navheader">
+      <table width="100%">
+        <tr>
+          <th colspan="3" align="center">
+            <xsl:apply-templates select="." mode="title.ref"/>
+          </th>
+        </tr>
+        <tr>
+          <td width="20%" align="left">
+            <xsl:if test="count($prev)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$prev"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext.nav.prev"/>
+              </a>
+            </xsl:if>
+            <xsl:text>&#160;</xsl:text>
+          </td>
+          <th width="60%" align="center">
+            <xsl:choose>
+              <xsl:when test="count($up) > 0 and $up != $home">
+                <xsl:apply-templates select="$up" mode="title.ref"/>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </th>
+          <td width="20%" align="right">
+            <xsl:text>&#160;</xsl:text>
+            <xsl:if test="count($next)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$next"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext.nav.next"/>
+              </a>
+            </xsl:if>
+          </td>
+        </tr>
+      </table>
+      <hr/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="footer.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:if test="$suppress.navigation = '0'">
+    <div class="navfooter">
+      <hr/>
+      <table width="100%">
+        <tr>
+          <td width="40%" align="left">
+            <xsl:if test="count($prev)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$prev"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext.nav.prev"/>
+              </a>
+            </xsl:if>
+            <xsl:text>&#160;</xsl:text>
+          </td>
+          <td width="20%" align="center">
+            <xsl:choose>
+              <xsl:when test="$home != .">
+                <a>
+                  <xsl:attribute name="href">
+                    <xsl:call-template name="href.target">
+                      <xsl:with-param name="object" select="$home"/>
+                    </xsl:call-template>
+                  </xsl:attribute>
+                  <xsl:call-template name="gentext.nav.home"/>
+                </a>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </td>
+          <td width="40%" align="right">
+            <xsl:text>&#160;</xsl:text>
+            <xsl:if test="count($next)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$next"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext.nav.next"/>
+              </a>
+            </xsl:if>
+          </td>
+        </tr>
+
+        <tr>
+          <td width="40%" align="left">
+            <xsl:apply-templates select="$prev" mode="title.ref"/>
+            <xsl:text>&#160;</xsl:text>
+          </td>
+          <td width="20%" align="center">
+            <xsl:choose>
+              <xsl:when test="count($up)>0">
+                <a>
+                  <xsl:attribute name="href">
+                    <xsl:call-template name="href.target">
+                      <xsl:with-param name="object" select="$up"/>
+                    </xsl:call-template>
+                  </xsl:attribute>
+                  <xsl:call-template name="gentext.nav.up"/>
+                </a>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </td>
+          <td width="40%" align="right">
+            <xsl:text>&#160;</xsl:text>
+            <xsl:apply-templates select="$next" mode="title.ref"/>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+  <xsl:variable name="root" select="count(parent::*) &gt; 0"/>
+
+  <xsl:variable name="prev"
+    select="(preceding::book[1]
+             |preceding::preface[1]
+             |preceding::chapter[1]
+             |preceding::appendix[1]
+             |preceding::part[1]
+             |preceding::reference[1]
+             |preceding::refentry[1]
+             |preceding::colophon[1]
+             |preceding::sect1[name(preceding-sibling::*[1]) = 'sect1'][1]
+             |preceding::section[name(preceding-sibling::*[1]) = 'section'
+                                 and name(parent::*) != 'section'][1]
+             |preceding::article[1]
+             |preceding::bibliography[1]
+             |preceding::glossary[1]
+             |preceding::index[1]
+             |preceding::setindex[1]
+             |ancestor::set
+             |ancestor::book[1]
+             |ancestor::preface[1]
+             |ancestor::chapter[1]
+             |ancestor::appendix[1]
+             |ancestor::part[1]
+             |ancestor::reference[1]
+             |ancestor::article[1])[last()]"/>
+
+  <xsl:variable name="next"
+    select="(following::book[1]
+             |following::preface[1]
+             |following::chapter[1]
+             |following::appendix[1]
+             |following::part[1]
+             |following::reference[1]
+             |following::refentry[1]
+             |following::colophon[1]
+             |following::sect1[1]
+             |following::section[name(parent::*) != 'section'][1]
+             |following::bibliography[1]
+             |following::glossary[1]
+             |following::index[1]
+             |following::article[1]
+             |following::setindex[1]
+             |descendant::book[1]
+             |descendant::preface[1]
+             |descendant::chapter[1]
+             |descendant::appendix[1]
+             |descendant::article[1]
+             |descendant::bibliography[1]
+             |descendant::glossary[1]
+             |descendant::index[1]
+             |descendant::colophon[1]
+             |descendant::setindex[1]
+             |descendant::part[1]
+             |descendant::reference[1]
+             |descendant::refentry[1]
+             |descendant::sect1[2]
+             |descendant::section[name(parent::*) != 'section'][2])[1]"/>
+
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunkfn">
+    <xsl:if test="$ischunk='1'">
+      <xsl:apply-templates mode="chunk-filename" select="."/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:message>
+      <xsl:text>Error </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:text> is not a chunk!</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$base.dir"/>
+      <xsl:with-param name="base.name" select="$chunkfn"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:text> for </xsl:text>
+    <xsl:value-of select="name(.)"/>
+  </xsl:message>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="chunk-element-content">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk-element-content">
+  <xsl:param name="prev"></xsl:param>
+  <xsl:param name="next"></xsl:param>
+
+  <html>
+    <xsl:call-template name="html.head">
+      <xsl:with-param name="prev" select="$prev"/>
+      <xsl:with-param name="next" select="$next"/>
+    </xsl:call-template>
+
+    <body xsl:use-attribute-sets="body.attrs">
+      <xsl:call-template name="header.navigation">
+	<xsl:with-param name="prev" select="$prev"/>
+	<xsl:with-param name="next" select="$next"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.header.content"/>
+
+      <xsl:apply-imports/>
+
+      <xsl:call-template name="user.footer.content"/>
+
+      <xsl:call-template name="footer.navigation">
+	<xsl:with-param name="prev" select="$prev"/>
+	<xsl:with-param name="next" select="$next"/>
+      </xsl:call-template>
+    </body>
+  </html>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+  <xsl:choose>
+    <xsl:when test="$rootid != ''">
+      <xsl:choose>
+        <xsl:when test="count(id($rootid)) = 0">
+          <xsl:message terminate="yes">
+            <xsl:text>ID '</xsl:text>
+            <xsl:value-of select="$rootid"/>
+            <xsl:text>' not found in document.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="id($rootid)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set|book|part|preface|chapter|appendix
+                     |article
+                     |reference|refentry
+                     |sect1[position()>1]
+                     |section[position()>1 and name(parent::*) != 'section']
+                     |book/glossary|article/glossary
+                     |book/bibliography|article/bibliography
+                     |colophon">
+  <xsl:call-template name="process-chunk-element"/>
+</xsl:template>
+
+<xsl:template match="setindex
+                     |book/index
+                     |article/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)>0">
+    <xsl:call-template name="process-chunk-element"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/chunk.xsl b/help-converters/docbook/docbook/html/chunk.xsl
new file mode 100644
index 0000000..250c296
--- /dev/null
+++ b/help-converters/docbook/docbook/html/chunk.xsl
@@ -0,0 +1,67 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:saxon="http://icl.com/saxon";
+                xmlns:lxslt="http://xml.apache.org/xslt";
+                xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0";
+		version="1.0"
+                exclude-result-prefixes="doc"
+                extension-element-prefixes="saxon xalanredirect lxslt">
+
+<!-- This stylesheet does not work with XT. Use xtchunk.xsl instead. -->
+
+<xsl:include href="chunk-common.xsl"/>
+
+<!-- ==================================================================== -->
+<!-- This is a workaround for a XalanJ1 bug in element-available. -->
+
+<lxslt:component prefix="xalanredirect" elements="write">
+  <lxslt:script lang="javaclass"
+                src="org.apache.xalan.xslt.extensions.Redirect"/>
+</lxslt:component>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="element-available('xalanredirect:write')">
+      <!-- Xalan doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:when test="element-available('saxon:output')">
+      <!-- Saxon doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <!-- XT makes chunks relative, but it doesn't support -->
+    <!-- element-available() so use xtchunk.xsl instead. -->
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:value-of select="$base.name"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="'ISO-8859-1'"/>
+  <xsl:param name="content" select="''"/>
+
+  <xalanredirect:write file="{$filename}">
+    <xsl:copy-of select="$content"/>
+    <xsl:fallback>
+      <saxon:output file="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}">
+        <xsl:copy-of select="$content"/>
+        <xsl:fallback>
+          <xsl:copy-of select="$content"/>
+        </xsl:fallback>
+      </saxon:output>
+    </xsl:fallback>
+  </xalanredirect:write>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/component.xsl b/help-converters/docbook/docbook/html/component.xsl
new file mode 100644
index 0000000..63e46e5
--- /dev/null
+++ b/help-converters/docbook/docbook/html/component.xsl
@@ -0,0 +1,277 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="component.title">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <h2 class="title">
+    <a name="{$id}"/>
+    <xsl:apply-templates select="$node" mode="title.ref">
+      <xsl:with-param name="allow-anchors" select="'1'"/>
+    </xsl:apply-templates>
+  </h2>
+</xsl:template>
+
+<xsl:template name="component.subtitle">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="subtitle">
+    <xsl:apply-templates select="$node" mode="subtitle.content"/>
+  </xsl:variable>
+
+  <xsl:if test="$subtitle != ''">
+    <h3 class="subtitle">
+      <i>
+        <xsl:copy-of select="$subtitle"/>
+      </i>
+    </h3>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.separator">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="dedication">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="dedication.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="dedication"></xsl:template> <!-- see mode="dedication" -->
+<xsl:template match="dedication/title"></xsl:template>
+<xsl:template match="dedication/subtitle"></xsl:template>
+<xsl:template match="dedication/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="colophon">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="component.title"/>
+    <xsl:call-template name="component.subtitle"/>
+
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="colophon/title"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="preface">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="preface.titlepage"/>
+    <xsl:if test="$generate.preface.toc != '0'">
+      <xsl:call-template name="component.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="preface.titlepage.recto.mode">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::preface[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface/docinfo|prefaceinfo"></xsl:template>
+<xsl:template match="preface/title"></xsl:template>
+<xsl:template match="preface/titleabbrev"></xsl:template>
+<xsl:template match="preface/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="chapter">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="chapter.titlepage"/>
+    <xsl:if test="$generate.chapter.toc != '0'">
+      <xsl:call-template name="component.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="chapter.titlepage.recto.mode">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter/docinfo|chapterinfo"></xsl:template>
+<xsl:template match="chapter/title"></xsl:template>
+<xsl:template match="chapter/titleabbrev"></xsl:template>
+<xsl:template match="chapter/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="appendix">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="appendix.titlepage"/>
+    <xsl:if test="$generate.appendix.toc != '0'">
+      <xsl:call-template name="component.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="appendix.titlepage.recto.mode">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix/docinfo|appendixinfo"></xsl:template>
+<xsl:template match="appendix/title"></xsl:template>
+<xsl:template match="appendix/titleabbrev"></xsl:template>
+<xsl:template match="appendix/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="preface" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="chapter" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:text>.</xsl:text>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="$chapter.autolabel">
+      <xsl:number from="book" count="chapter" format="1."/>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:text>.</xsl:text>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="$chapter.autolabel">
+      <xsl:number from="book" count="appendix" format="A."/>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="glossary" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="index" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="article">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="article.titlepage"/>
+    <xsl:if test="$generate.article.toc != '0'">
+      <xsl:call-template name="component.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="article/artheader|article/articleinfo"></xsl:template>
+<xsl:template match="article/title"></xsl:template>
+<xsl:template match="article/subtitle"></xsl:template>
+
+<xsl:template match="article/appendix">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="section.heading">
+      <xsl:with-param name="level" select="2"/>
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="." mode="title.ref"/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+    <xsl:if test="not(ancestor::article)">
+      <xsl:call-template name="process.footnotes"/>
+    </xsl:if>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/division.xsl b/help-converters/docbook/docbook/html/division.xsl
new file mode 100644
index 0000000..c7c2925
--- /dev/null
+++ b/help-converters/docbook/docbook/html/division.xsl
@@ -0,0 +1,130 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}" id="{$id}">
+    <xsl:call-template name="set.titlepage"/>
+    <xsl:if test="$generate.set.toc != '0'">
+      <xsl:call-template name="set.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="set/setinfo"></xsl:template>
+<xsl:template match="set/title"></xsl:template>
+<xsl:template match="set/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}" id="{$id}">
+    <xsl:call-template name="book.titlepage"/>
+    <xsl:apply-templates select="dedication" mode="dedication"/>
+    <xsl:if test="$generate.book.toc != '0'">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="book/bookinfo"></xsl:template>
+<xsl:template match="book/title"></xsl:template>
+<xsl:template match="book/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="part">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}" id="{$id}">
+    <xsl:call-template name="part.titlepage"/>
+    <xsl:if test="not(partintro) and $generate.part.toc != '0'">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="part" mode="make.part.toc">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="reference" mode="make.part.toc">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="part/docinfo"></xsl:template>
+<xsl:template match="part/title"></xsl:template>
+<xsl:template match="part/subtitle"></xsl:template>
+
+<xsl:template match="partintro">
+  <div class="{name(.)}">
+    <xsl:call-template name="partintro.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:if test="$generate.part.toc != '0'">
+      <!-- not ancestor::part because partintro appears in reference -->
+      <xsl:apply-templates select="parent::*" mode="make.part.toc"/>
+    </xsl:if>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="partintro/title"></xsl:template>
+<xsl:template match="partintro/subtitle"></xsl:template>
+<xsl:template match="partintro/titleabbrev"></xsl:template>
+
+<xsl:template match="partintro/title" mode="partintro.title.mode">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h2>
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h2>
+</xsl:template>
+
+<xsl:template match="partintro/subtitle" mode="partintro.title.mode">
+  <h3>
+    <i><xsl:apply-templates/></i>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book" mode="division.number">
+  <xsl:number from="set" count="book" format="1."/>
+</xsl:template>
+
+<xsl:template match="part" mode="division.number">
+  <xsl:number from="book" count="part" format="I."/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/docbook.xsl b/help-converters/docbook/docbook/html/docbook.xsl
new file mode 100644
index 0000000..73e6495
--- /dev/null
+++ b/help-converters/docbook/docbook/html/docbook.xsl
@@ -0,0 +1,190 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0";
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<xsl:output method="html"
+            encoding="ISO-8859-1"
+            indent="no"/>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="html.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="pi.xsl"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>No template matches </xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>.</xsl:text>
+  </xsl:message>
+
+  <font color="red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </font>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="head.content">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="info" select="($node/docinfo
+                                     |$node/chapterinfo
+                                     |$node/appendixinfo
+                                     |$node/prefaceinfo
+                                     |$node/bookinfo
+                                     |$node/setinfo
+                                     |$node/articleinfo
+                                     |$node/artheader
+                                     |$node/sect1info
+                                     |$node/sect2info
+                                     |$node/sect3info
+                                     |$node/sect4info
+                                     |$node/sect5info
+                                     |$node/refsect1info
+                                     |$node/refsect2info
+                                     |$node/refsect3info
+                                     |$node/bibliographyinfo
+                                     |$node/glossaryinfo
+                                     |$node/indexinfo
+                                     |$node/refentryinfo
+                                     |$node/partinfo
+                                     |$node/referenceinfo)[1]"/>
+
+  <title>
+    <xsl:apply-templates select="$node" mode="title.ref">
+      <xsl:with-param name="text-only" select="'1'"/>
+    </xsl:apply-templates>
+  </title>
+
+  <xsl:if test="$html.stylesheet">
+    <link rel="stylesheet"
+          href="{$html.stylesheet}"
+          type="{$html.stylesheet.type}"/>
+  </xsl:if>
+
+  <xsl:if test="$link.mailto.url != ''">
+    <link rev="made"
+          href="{$link.mailto.url}"/>
+  </xsl:if>
+
+  <xsl:if test="$html.base != ''">
+    <base href="{$html.base}"/>
+  </xsl:if>
+
+  <meta name="generator" content="DocBook XSL Stylesheets V{$VERSION}"/>
+
+  <xsl:apply-templates select="$info/keywordset" mode="html.header"/>
+</xsl:template>
+
+<xsl:template name="user.head.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template match="/">
+  <xsl:choose>
+    <xsl:when test="$rootid != ''">
+      <xsl:choose>
+        <xsl:when test="count(id($rootid)) = 0">
+          <xsl:message terminate="yes">
+            <xsl:text>ID '</xsl:text>
+            <xsl:value-of select="$rootid"/>
+            <xsl:text>' not found in document.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="id($rootid)" mode="process.root"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="/" mode="process.root"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+  <html>
+  <head>
+    <xsl:call-template name="head.content">
+      <xsl:with-param name="node" select="$doc"/>
+    </xsl:call-template>
+    <xsl:call-template name="user.head.content"/>
+  </head>
+  <body xsl:use-attribute-sets="body.attrs">
+    <xsl:call-template name="user.header.content">
+      <xsl:with-param name="node" select="$doc"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="."/>
+    <xsl:call-template name="user.footer.content">
+      <xsl:with-param name="node" select="$doc"/>
+    </xsl:call-template>
+  </body>
+  </html>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/ebnf.xsl b/help-converters/docbook/docbook/html/ebnf.xsl
new file mode 100644
index 0000000..2bcb200
--- /dev/null
+++ b/help-converters/docbook/docbook/html/ebnf.xsl
@@ -0,0 +1,350 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0";
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>HTML EBNF Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes the templates and parameters relevant
+to formatting EBNF markup.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- This module formats EBNF tables. The DTD that this supports is  -->
+<!-- under development by the DocBook community. This code is        -->
+<!-- experimental and is not (yet) part of the DocBook stylesheets.  -->
+
+<xsl:include href="docbook.xsl"/>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="ebnf.table.bgcolor">#F5DCB3</xsl:param>
+
+<doc:param name="ebnf.table.bgcolor" xmlns="">
+<refpurpose>Background color for EBNF tables</refpurpose>
+<refdescription>
+<para>Sets the background color for EBNF tables. No <sgmltag>bgcolor</sgmltag>
+attribute is output if <varname>ebnf.table.bgcolor</varname> is set to
+the null string. The default value matches the value used in recent
+online versions of the W3C's XML Spec productions.</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="ebnf.table.border">1</xsl:param>
+
+<doc:param name="ebnf.table.border" xmlns="">
+<refpurpose>Selects border on EBNF tables</refpurpose>
+<refdescription>
+<para>Selects the border on EBNF tables. If non-zero, the tables have
+borders, otherwise they don't.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productionset">
+  <table width="100%" cellpadding="5">
+    <xsl:if test="$ebnf.table.bgcolor != ''">
+      <xsl:attribute name="bgcolor">
+	<xsl:value-of select="$ebnf.table.bgcolor"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$ebnf.table.border != 0">
+      <xsl:attribute name="border">1</xsl:attribute>
+    </xsl:if>
+    <xsl:attribute name="class">
+      <xsl:value-of select="name(.)"/>
+    </xsl:attribute>
+    <xsl:attribute name="summary">
+      <xsl:text>EBNF</xsl:text>
+      <xsl:if test="title">
+	<xsl:text> for </xsl:text>
+	<xsl:value-of select="title"/>
+      </xsl:if>
+    </xsl:attribute>
+
+    <xsl:if test="title">
+      <tr>
+	<th align="left" valign="top" class="{name(.)}">
+	  <xsl:apply-templates select="title"/>
+	</th>
+      </tr>
+    </xsl:if>
+    <tr>
+      <td>
+	<table border="0" width="99%" cellpadding="0">
+	  <xsl:if test="$ebnf.table.bgcolor != ''">
+	    <xsl:attribute name="bgcolor">
+	      <xsl:value-of select="$ebnf.table.bgcolor"/>
+	    </xsl:attribute>
+	  </xsl:if>
+	  <xsl:attribute name="class">
+	    <xsl:value-of select="name(.)"/>
+	  </xsl:attribute>
+	  <xsl:attribute name="summary">EBNF productions</xsl:attribute>
+	  <xsl:apply-templates select="production|productionrecap"/>
+	</table>
+      </td>
+    </tr>
+  </table>
+</xsl:template>
+
+<xsl:template match="productionset/title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="production">
+  <xsl:param name="recap" select="false()"/>
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <tr>
+    <td align="left" valign="top" width="3%">
+      <xsl:text>[</xsl:text>
+      <xsl:number count="production" level="any"/>
+      <xsl:text>]</xsl:text>
+    </td>
+    <td align="right" valign="top" width="10%">
+      <xsl:choose>
+	<xsl:when test="$recap">
+	  <a>
+	    <xsl:attribute name="href">
+	      <xsl:call-template name="href.target">
+		<xsl:with-param name="object" select="."/>
+	      </xsl:call-template>
+	    </xsl:attribute>
+	    <xsl:apply-templates select="lhs"/>
+	  </a>
+	</xsl:when>
+	<xsl:otherwise>
+	  <a name="{$id}"/>
+	  <xsl:apply-templates select="lhs"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <td valign="top" width="5%" align="center"><tt>::=</tt></td>
+    <td valign="top" width="52%">
+      <xsl:apply-templates select="rhs"/>
+    </td>
+    <td align="left" valign="top" width="30%">
+      <xsl:choose>
+	<xsl:when test="rhs/lineannotation|constraint">
+	  <xsl:apply-templates select="rhs/lineannotation" mode="rhslo"/>
+	  <xsl:apply-templates select="constraint"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:text>&#160;</xsl:text>
+	</xsl:otherwise>
+      </xsl:choose>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="productionrecap">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:if test="$check.idref = '1'">
+    <xsl:if test="count($targets)=0">
+      <xsl:message>
+        <xsl:text>Error: no ID for productionrecap linkend: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+        <xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:if>
+
+    <xsl:if test="count($targets)>1">
+      <xsl:message>
+        <xsl:text>Warning: multiple "IDs" for productionrecap linkend: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+        <xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:if>
+  </xsl:if>
+  <xsl:apply-templates select="$target">
+    <xsl:with-param name="recap" select="true()"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="lhs">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="rhs">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="nonterminal">
+  <xsl:variable name="linkend">
+    <xsl:call-template name="xpointer.idref">
+      <xsl:with-param name="xpointer" select="@def"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="$linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="$linkend"/>
+    <xsl:with-param name="element-list">production</xsl:with-param>
+  </xsl:call-template>
+
+  <!-- If you don't provide content, you can't point outside this doc. -->
+  <xsl:choose>
+    <xsl:when test="*|text()"><!--nop--></xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$linkend = ''">
+	<xsl:message>
+	  <xsl:text>Non-terminals with no content must point to </xsl:text>
+	  <xsl:text>production elements in the current document.</xsl:text>
+	</xsl:message>
+	<xsl:message>
+	  <xsl:text>Invalid xpointer for empty nt: </xsl:text>
+	  <xsl:value-of select="@def"/>
+	</xsl:message>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:variable name="href">
+    <xsl:choose>
+      <xsl:when test="$linkend != ''">
+	<xsl:variable name="targets" select="id($linkend)"/>
+	<xsl:variable name="target" select="$targets[1]"/>
+	<xsl:call-template name="href.target">
+	  <xsl:with-param name="object" select="$target"/>
+	</xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="@def"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <a href="{$href}">
+    <xsl:choose>
+      <xsl:when test="*|text()">
+	<xsl:apply-templates/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:choose>
+	  <xsl:when test="$linkend != ''">
+	    <xsl:variable name="targets" select="id($linkend)"/>
+	    <xsl:variable name="target" select="$targets[1]"/>
+	    <xsl:apply-templates select="$target/lhs"/>
+	  </xsl:when>
+	  <xsl:otherwise>
+	    <xsl:text>???</xsl:text>
+	  </xsl:otherwise>
+	</xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </a>
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation" mode="rhslo">
+  <xsl:text>/*&#160;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>&#160;*/</xsl:text>
+</xsl:template>
+
+<xsl:template match="constraint">
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="@linkend"/>
+    <xsl:with-param name="element-list">constraintdef</xsl:with-param>
+  </xsl:call-template>
+
+  <xsl:variable name="href">
+    <xsl:variable name="targets" select="id(@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:call-template name="href.target">
+      <xsl:with-param name="object" select="$target"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="preceding-sibling::constraint">
+    <br/>
+  </xsl:if>
+  <xsl:text>[ </xsl:text>
+
+  <xsl:choose>
+    <xsl:when test="@role">
+      <xsl:value-of select="@role"/>
+      <xsl:text>: </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="targets" select="id(@linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+      <xsl:if test="$target/@role">
+	<xsl:value-of select="$target/@role"/>
+	<xsl:text>: </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <a href="{$href}">
+    <xsl:variable name="targets" select="id(@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:apply-templates select="$target" mode="title.content"/>
+  </a>
+  <xsl:text> ]</xsl:text>
+</xsl:template>
+
+<xsl:template match="constraintdef">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="constraintdef/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/footnote.xsl b/help-converters/docbook/docbook/html/footnote.xsl
new file mode 100644
index 0000000..a5c7ec7
--- /dev/null
+++ b/help-converters/docbook/docbook/html/footnote.xsl
@@ -0,0 +1,138 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="footnote">
+  <xsl:variable name="name">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:text>#ftn.</xsl:text>
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="ancestor::table|ancestor::informaltable">
+      <sup>
+        <xsl:text>[</xsl:text>
+        <a name="{$name}" href="{$href}">
+          <xsl:apply-templates select="." mode="footnote.number"/>
+        </a>
+        <xsl:text>]</xsl:text>
+      </sup>
+    </xsl:when>
+    <xsl:otherwise>
+      <sup>
+        <xsl:text>[</xsl:text>
+        <a name="{$name}" href="{$href}">
+          <xsl:apply-templates select="." mode="footnote.number"/>
+        </a>
+        <xsl:text>]</xsl:text>
+      </sup>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="footnoteref">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="footnote" select="$targets[1]"/>
+  <xsl:variable name="href">
+    <xsl:text>#ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <sup>
+    <xsl:text>[</xsl:text>
+    <a href="{$href}">
+      <xsl:apply-templates select="$footnote" mode="footnote.number"/>
+    </a>
+    <xsl:text>]</xsl:text>
+  </sup>
+</xsl:template>
+
+<xsl:template match="footnote" mode="footnote.number">
+  <xsl:choose>
+    <xsl:when test="ancestor::table|ancestor::informaltable">
+      <xsl:number level="any" from="table|informaltable" format="a"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:number level="any" format="1"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="footnote/para[1]">
+  <!-- this only works if the first thing in a footnote is a para, -->
+  <!-- which is ok, because it usually is. -->
+  <xsl:variable name="name">
+    <xsl:text>ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <p>
+    <sup>
+      <xsl:text>[</xsl:text>
+      <a name="{$name}" href="{$href}">
+        <xsl:apply-templates select="ancestor::footnote"
+                             mode="footnote.number"/>
+      </a>
+      <xsl:text>] </xsl:text>
+    </sup>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.footnotes">
+  <xsl:variable name="footnotes" select=".//footnote"/>
+  <xsl:variable name="table.footnotes"
+                select=".//table//footnote|.//informaltable//footnote"/>
+
+  <!-- Only bother to do this if there's at least one non-table footnote -->
+  <xsl:if test="count($footnotes)>count($table.footnotes)">
+    <div class="footnotes">
+      <br/>
+      <hr width="100" align="left"/>
+      <xsl:apply-templates select="$footnotes" mode="process.footnote.mode"/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="footnote" mode="process.footnote.mode">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="informaltable//footnote|table//footnote" 
+              mode="process.footnote.mode">
+</xsl:template>
+
+<xsl:template match="footnote" mode="table.footnote.mode">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/formal.xsl b/help-converters/docbook/docbook/html/formal.xsl
new file mode 100644
index 0000000..d0f8fec
--- /dev/null
+++ b/help-converters/docbook/docbook/html/formal.xsl
@@ -0,0 +1,89 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="formal.object">
+  <div class="{name(.)}">
+    <xsl:call-template name="formal.object.heading">
+       <xsl:with-param name="title">
+         <xsl:apply-templates select="." mode="title.ref"/>
+       </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+  <xsl:param name="title"></xsl:param>
+  <p>
+    <a>
+      <xsl:attribute name="name">
+	<xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </a>
+    <b><xsl:copy-of select="$title"/></b>
+  </p>
+</xsl:template>
+
+<xsl:template name="informal.object">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <div class="{name(.)}" id="{$id}">
+    <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+    <a name="{$id}"/>
+    <xsl:apply-templates/>
+    <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template name="semiformal.object">
+  <xsl:choose>
+    <xsl:when test="title">
+      <xsl:call-template name="formal.object"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="informal.object"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|table|example">
+  <xsl:call-template name="formal.object"/>
+</xsl:template>
+
+<xsl:template match="equation">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="figure/title"></xsl:template>
+<xsl:template match="table/title"></xsl:template>
+<xsl:template match="example/title"></xsl:template>
+<xsl:template match="equation/title"></xsl:template>
+
+<xsl:template match="informalfigure">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalexample">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informaltable">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalequation">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/glossary.xsl b/help-converters/docbook/docbook/html/glossary.xsl
new file mode 100644
index 0000000..1885f84
--- /dev/null
+++ b/help-converters/docbook/docbook/html/glossary.xsl
@@ -0,0 +1,198 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossary">
+  <div class="{name(.)}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:choose>
+      <xsl:when test="./title">
+	<xsl:apply-templates select="./title" mode="component.title.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<h2 class="title">
+	  <a>
+	    <xsl:attribute name="name">
+	      <xsl:call-template name="object.id"/>
+	    </xsl:attribute>
+	  </a>
+	  <xsl:call-template name="gentext.element.name"/>
+	</h2>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="./subtitle">
+      <xsl:apply-templates select="./subtitle" mode="component.title.mode"/>
+    </xsl:if>
+
+    <dl>
+      <xsl:apply-templates/>
+    </dl>
+
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="glossary/glossaryinfo"></xsl:template>
+<xsl:template match="glossary/title"></xsl:template>
+<xsl:template match="glossary/subtitle"></xsl:template>
+<xsl:template match="glossary/titleabbrev"></xsl:template>
+
+<xsl:template match="glossary/title" mode="component.title.mode">
+  <h2>
+    <xsl:apply-templates/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="glossary/subtitle" mode="component.title.mode">
+  <h3>
+    <i><xsl:apply-templates/></i>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glosslist">
+  <div class="{name(.)}">
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </a>
+
+    <dl>
+      <xsl:apply-templates/>
+    </dl>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossdiv">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="glossdiv/title">
+  <h3 class="{name(.)}">
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+GlossEntry ::=
+  GlossTerm, Acronym?, Abbrev?,
+  (IndexTerm)*,
+  RevHistory?,
+  (GlossSee | GlossDef+)
+-->
+
+<xsl:template match="glossentry">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm[1]" priority="2">
+  <dt>
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id">
+           <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:apply-templates/>
+    </a>
+  </dt>
+</xsl:template>
+
+<xsl:template match="glossentry/acronym">
+</xsl:template>
+
+<xsl:template match="glossentry/abbrev">
+</xsl:template>
+
+<xsl:template match="glossentry/revhistory">
+</xsl:template>
+
+<xsl:template match="glossentry/glosssee">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="//node()[ id=$otherterm]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <dd>
+    <p>
+      <xsl:call-template name="gentext.element.name"/>
+      <xsl:call-template name="gentext.space"/>
+      <xsl:choose>
+        <xsl:when test="@otherterm">
+          <a href="#{ otherterm}">
+            <xsl:apply-templates select="$target" mode="xref"/>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:text>.</xsl:text>
+    </p>
+  </dd>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef">
+  <dd><xsl:apply-templates/></dd>
+</xsl:template>
+
+<xsl:template match="glossseealso">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="//node()[ id=$otherterm]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <p>
+    <xsl:call-template name="gentext.element.name"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:choose>
+      <xsl:when test="@otherterm">
+        <a href="#{ otherterm}">
+          <xsl:apply-templates select="$target" mode="xref"/>
+        </a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>.</xsl:text>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossentry" mode="xref">
+  <xsl:apply-templates select="./glossterm[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="glossterm" mode="xref">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/graphics.xsl b/help-converters/docbook/docbook/html/graphics.xsl
new file mode 100644
index 0000000..e30af9d
--- /dev/null
+++ b/help-converters/docbook/docbook/html/graphics.xsl
@@ -0,0 +1,315 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:xlink="http://www.w3.org/1999/xlink";
+                xmlns:text5="http://nwalsh.com/com.nwalsh.saxon.TextFactory";
+                xmlns:text6="http://nwalsh.com/com.nwalsh.saxon6.TextFactory";
+                exclude-result-prefixes="xlink text5 text6"
+                extension-element-prefixes="text5 text6"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     Contributors:
+     Colin Paul Adams, <colin colina demon co uk>
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="screenshot">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="screeninfo">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.image">
+  <!-- When this template is called, the current node should be  -->
+  <!-- a graphic, inlinegraphic, imagedata, or videodata. All    -->
+  <!-- those elements have the same set of attributes, so we can -->
+  <!-- handle them all in one place.                             -->
+  <xsl:param name="tag" select="'img'"/>
+  <xsl:param name="alt"/>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="local-name(.) = 'graphic'
+                      or local-name(.) = 'inlinegraphic'">
+        <xsl:choose>
+          <xsl:when test="@fileref">
+            <xsl:value-of select="@fileref"/>
+          </xsl:when>
+          <xsl:when test="@entityref">
+            <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message>
+              <xsl:text>A fileref or entityref is required on </xsl:text>
+              <xsl:value-of select="local-name(.)"/>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- imagedata, videodata, audiodata -->
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="width">
+    <xsl:choose>
+      <xsl:when test="@scale"><xsl:value-of select="@scale"/>%</xsl:when>
+      <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="height">
+    <xsl:choose>
+      <xsl:when test="@scale"></xsl:when>
+      <xsl:when test="@depth"><xsl:value-of select="@depth"/></xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="align">
+    <xsl:value-of select="@align"/>
+  </xsl:variable>
+
+  <xsl:element name="{$tag}">
+    <xsl:attribute name="src">
+      <xsl:value-of select="$filename"/>
+    </xsl:attribute>
+
+    <xsl:if test="$align != ''">
+      <xsl:attribute name="align">
+        <xsl:value-of select="$align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$height != ''">
+      <xsl:attribute name="height">
+        <xsl:value-of select="$height"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$width != ''">
+      <xsl:attribute name="width">
+        <xsl:value-of select="$width"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$alt != ''">
+      <xsl:attribute name="alt">
+        <xsl:value-of select="$alt"/>
+      </xsl:attribute>
+    </xsl:if>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="graphic">
+  <p>
+    <xsl:call-template name="process.image"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="inlinegraphic">
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:choose>
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$saxon.extensions != '0'
+                        and $saxon.textinsert != '0'">
+          <xsl:choose>
+            <xsl:when test="@entityref">
+              <xsl:choose>
+                <xsl:when test="contains($vendor, 'SAXON 6')">
+                  <text6:insertfile href="{unparsed-entity-uri(@entityref)}"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <text5:insertfile href="{unparsed-entity-uri(@entityref)}"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:choose>
+                <xsl:when test="contains($vendor, 'SAXON 6')">
+                  <text6:insertfile href="{ fileref}"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <text5:insertfile href="{ fileref}"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad">
+            <xsl:choose>
+              <xsl:when test="@entityref">
+                <xsl:attribute name="href">
+                  <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+                </xsl:attribute>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:attribute name="href">
+                  <xsl:value-of select="@fileref"/>
+                </xsl:attribute>
+              </xsl:otherwise>
+            </xsl:choose>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process.image"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject|mediaobjectco">
+  <div class="{name(.)}">
+    <xsl:call-template name="select.mediaobject"/>
+    <xsl:apply-templates select="caption"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="inlinemediaobject">
+  <span class="{name(.)}">
+    <xsl:call-template name="select.mediaobject"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="imageobjectco">
+  <xsl:apply-templates select="imageobject"/>
+</xsl:template>
+
+<xsl:template match="imageobject">
+  <xsl:apply-templates select="imagedata"/>
+</xsl:template>
+
+<xsl:template match="imagedata">
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:variable name="filename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$saxon.extensions != '0'
+                        and $saxon.textinsert != '0'">
+          <xsl:choose>
+            <xsl:when test="@entityref">
+              <xsl:choose>
+                <xsl:when test="contains($vendor, 'SAXON 6')">
+                  <text6:insertfile href="{unparsed-entity-uri(@entityref)}"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <text5:insertfile href="{unparsed-entity-uri(@entityref)}"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:choose>
+                <xsl:when test="contains($vendor, 'SAXON 6')">
+                  <text6:insertfile href="{ fileref}"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <text5:insertfile href="{ fileref}"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad">
+            <xsl:choose>
+              <xsl:when test="@entityref">
+                <xsl:attribute name="href">
+                  <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+                </xsl:attribute>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:attribute name="href">
+                  <xsl:value-of select="@fileref"/>
+                </xsl:attribute>
+              </xsl:otherwise>
+            </xsl:choose>
+          </a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process.image">
+        <xsl:with-param name="alt">
+          <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="videoobject">
+  <xsl:apply-templates select="videodata"/>
+</xsl:template>
+
+<xsl:template match="videodata">
+  <xsl:call-template name="process.image">
+    <xsl:with-param name="tag" select="'embed'"/>
+    <xsl:with-param name="alt">
+      <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="audioobject">
+  <xsl:apply-templates select="audiodata"/>
+</xsl:template>
+
+<xsl:template match="audiodata">
+  <xsl:call-template name="process.image">
+    <xsl:with-param name="tag" select="'embed'"/>
+    <xsl:with-param name="alt">
+      <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="textobject">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="caption">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/html.xsl b/help-converters/docbook/docbook/html/html.xsl
new file mode 100644
index 0000000..839c8ac
--- /dev/null
+++ b/help-converters/docbook/docbook/html/html.xsl
@@ -0,0 +1,56 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="dingbat">
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:choose>
+    <xsl:when test="false() and $using.chunker != 0">
+      <dingbat name="{$dingbat}"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="dingbat.characters">
+        <xsl:with-param name="dingbat" select="$dingbat"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="dingbat.characters">
+  <!-- now that I'm using the real serializer, all that dingbat malarky -->
+  <!-- isn't necessary anymore... -->
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$dingbat='bullet'">&#x2022;</xsl:when>
+    <xsl:when test="$dingbat='copyright'">&#x00A9;</xsl:when>
+    <xsl:when test="$dingbat='trademark'">&#x2122;</xsl:when>
+    <xsl:when test="$dingbat='trade'">&#x2122;</xsl:when>
+    <xsl:when test="$dingbat='registered'">&#x00AE;</xsl:when>
+    <xsl:when test="$dingbat='service'">(SM)</xsl:when>
+    <xsl:when test="$dingbat='nbsp'">&#x00A0;</xsl:when>
+    <xsl:when test="$dingbat='ldquo'">&#x201C;</xsl:when>
+    <xsl:when test="$dingbat='rdquo'">&#x201D;</xsl:when>
+    <xsl:when test="$dingbat='lsquo'">&#x2018;</xsl:when>
+    <xsl:when test="$dingbat='rsquo'">&#x2019;</xsl:when>
+    <xsl:when test="$dingbat='em-dash'">&#x2014;</xsl:when>
+    <xsl:when test="$dingbat='mdash'">&#x2014;</xsl:when>
+    <xsl:when test="$dingbat='en-dash'">&#x2013;</xsl:when>
+    <xsl:when test="$dingbat='ndash'">&#x2013;</xsl:when>
+    <xsl:otherwise>
+      <xsl:text>&#x2022;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/index.xsl b/help-converters/docbook/docbook/html/index.xsl
new file mode 100644
index 0000000..183d506
--- /dev/null
+++ b/help-converters/docbook/docbook/html/index.xsl
@@ -0,0 +1,478 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+
+<!ENTITY primary   'concat(primary/@sortas, primary[not(@sortas)])'>
+<!ENTITY secondary 'concat(secondary/@sortas, secondary[not(@sortas)])'>
+<!ENTITY tertiary  'concat(tertiary/@sortas, tertiary[not(@sortas)])'>
+
+<!ENTITY section   '(ancestor-or-self::set
+                     |ancestor-or-self::book
+                     |ancestor-or-self::part
+                     |ancestor-or-self::reference
+                     |ancestor-or-self::partintro
+                     |ancestor-or-self::chapter
+                     |ancestor-or-self::appendix
+                     |ancestor-or-self::preface
+                     |ancestor-or-self::section
+                     |ancestor-or-self::sect1
+                     |ancestor-or-self::sect2
+                     |ancestor-or-self::sect3
+                     |ancestor-or-self::sect4
+                     |ancestor-or-self::sect5
+                     |ancestor-or-self::refsect1
+                     |ancestor-or-self::refsect2
+                     |ancestor-or-self::refsect3
+                     |ancestor-or-self::simplesect
+                     |ancestor-or-self::bibliography
+                     |ancestor-or-self::glossary
+                     |ancestor-or-self::index)[last()]'>
+
+<!ENTITY section.id 'generate-id(&section;)'>
+<!ENTITY sep '" "'>
+]>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="index|setindex">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)>0 or $generate.index">
+    <div class="{name(.)}">
+      <xsl:call-template name="component.separator"/>
+      <xsl:choose>
+        <xsl:when test="./title">
+        <xsl:apply-templates select="./title" mode="component.title.mode"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <h2 class="title">
+          <a>
+            <xsl:attribute name="name">
+              <xsl:call-template name="object.id"/>
+            </xsl:attribute>
+            <xsl:call-template name="gentext.element.name"/>
+          </a>
+        </h2>
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <xsl:if test="./subtitle">
+        <xsl:apply-templates select="./subtitle" mode="component.title.mode"/>
+      </xsl:if>
+
+      <xsl:apply-templates/>
+
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+        <xsl:call-template name="generate-index"/>
+      </xsl:if>
+
+      <xsl:call-template name="process.footnotes"/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="index/title"></xsl:template>
+<xsl:template match="index/subtitle"></xsl:template>
+<xsl:template match="index/titleabbrev"></xsl:template>
+
+<xsl:template match="index/title" mode="component.title.mode">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h2 class="title">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h2>
+</xsl:template>
+
+<xsl:template match="index/subtitle" mode="component.title.mode">
+  <h3>
+    <i><xsl:apply-templates/></i>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexdiv">
+  <div class="{name(.)}">
+    <xsl:apply-templates mode="not-indexentrys"/>
+    <dl>
+      <xsl:apply-templates select="indexentry"/>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexentry" mode="not-indexentrys">
+  <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="indexdiv/title">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h3 class="{name(.)}">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexterm">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <a class="indexterm" name="{$id}"/>
+</xsl:template>
+
+<xsl:template match="primary|secondary|tertiary|see|seealso">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexentry">
+  <xsl:apply-templates select="primaryie"/>
+</xsl:template>
+
+<xsl:template match="primaryie">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="following-sibling::secondaryie">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="following-sibling::secondaryie"/>
+        </dl>
+      </dd>
+    </xsl:when>
+    <xsl:when test="following-sibling::seeie
+                    |following-sibling::seealsoie">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="following-sibling::seeie
+                                       |following-sibling::seealsoie"/>
+        </dl>
+      </dd>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="secondaryie">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="following-sibling::tertiaryie">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="following-sibling::tertiaryie"/>
+        </dl>
+      </dd>
+    </xsl:when>
+    <xsl:when test="following-sibling::seeie
+                    |following-sibling::seealsoie">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="following-sibling::seeie
+                                       |following-sibling::seealsoie"/>
+        </dl>
+      </dd>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tertiaryie">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+  <xsl:if test="following-sibling::seeie
+                |following-sibling::seealsoie">
+    <dd>
+      <dl>
+        <xsl:apply-templates select="following-sibling::seeie
+                                     |following-sibling::seealsoie"/>
+      </dl>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="seeie|seealsoie">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Jeni Tennison gets all the credit for what follows.
+     I think I understand it :-) Anyway, I've hacked it a bit, so the
+     bugs are mine. -->
+
+<xsl:key name="letter"
+         match="indexterm"
+         use="substring(&primary;, 1, 1)"/>
+
+<xsl:key name="primary"
+         match="indexterm"
+         use="&primary;"/>
+
+<xsl:key name="secondary"
+         match="indexterm"
+         use="concat(&primary;, &sep;, &secondary;)"/>
+
+<xsl:key name="tertiary"
+         match="indexterm"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+
+<xsl:key name="primary-section"
+         match="indexterm[not(secondary) and not(see)]"
+         use="concat(&primary;, &sep;, &section.id;)"/>
+
+<xsl:key name="secondary-section"
+         match="indexterm[not(tertiary) and not(see)]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &section.id;)"/>
+
+<xsl:key name="tertiary-section"
+         match="indexterm[not(see)]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, &section.id;)"/>
+
+<xsl:key name="see-also"
+         match="indexterm[seealso]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso)"/>
+
+<xsl:key name="see"
+         match="indexterm[see]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see)"/>
+
+<xsl:key name="sections" match="*[ id]" use="@id"/>
+
+<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'"/>
+<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
+
+<xsl:template name="generate-index">
+  <xsl:variable name="terms" select="//indexterm[count(.|key('letter',
+                                     substring(&primary;, 1, 1))[1]) = 1]"/>
+  <xsl:variable name="alphabetical"
+                select="$terms[contains(concat($lowercase, $uppercase),
+                                        substring(&primary;, 1, 1))]"/>
+  <xsl:variable name="others" select="$terms[not(contains(concat($lowercase,
+                                                 $uppercase),
+                                             substring(&primary;, 1, 1)))]"/>
+  <div class="index">
+    <xsl:if test="$others">
+      <div class="indexdiv">
+        <h3>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'index symbols'"/>
+          </xsl:call-template>
+        </h3>
+        <dl>
+          <xsl:apply-templates select="$others[count(.|key('primary',
+                                       &primary;)[1]) = 1]"
+                               mode="index-primary">
+            <xsl:sort select="&primary;"/>
+          </xsl:apply-templates>
+        </dl>
+      </div>
+    </xsl:if>
+    <xsl:apply-templates select="$alphabetical[count(.|key('letter',
+                                 substring(&primary;, 1, 1))[1]) = 1]"
+                         mode="index-div">
+      <xsl:sort select="&primary;"/>
+    </xsl:apply-templates>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div">
+  <xsl:variable name="key" select="substring(&primary;, 1, 1)"/>
+  <div class="indexdiv">
+    <h3>
+      <xsl:value-of select="translate($key, $lowercase, $uppercase)"/>
+    </h3>
+    <dl>
+      <xsl:apply-templates select="key('letter', $key)[count(.|key('primary', &primary;)[1]) = 1]"
+                           mode="index-primary">
+        <xsl:sort select="&primary;"/>
+      </xsl:apply-templates>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-primary">
+  <xsl:variable name="key" select="&primary;"/>
+  <xsl:variable name="refs" select="key('primary', $key)"/>
+  <dt>
+    <xsl:value-of select="primary"/>
+    <xsl:for-each select="$refs[generate-id() = generate-id(key('primary-section', concat($key, &sep;, &section.id;))[1])]">
+      <xsl:apply-templates select="." mode="reference"/>
+    </xsl:for-each>
+  </dt>
+  <xsl:if test="$refs/secondary or $refs[not(secondary)]/*[self::see or self::seealso]">
+    <dd>
+      <dl>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &sep;, &sep;, see))[1])]"
+                             mode="index-see">
+          <xsl:sort select="see"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &sep;, &sep;, seealso))[1])]"
+                             mode="index-seealso">
+          <xsl:sort select="seealso"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, &sep;, &secondary;))[1]) = 1]" 
+                             mode="index-secondary">
+          <xsl:sort select="&secondary;"/>
+        </xsl:apply-templates>
+      </dl>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-secondary">
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;)"/>
+  <xsl:variable name="refs" select="key('secondary', $key)"/>
+  <dt>
+    <xsl:value-of select="secondary"/>
+    <xsl:for-each select="$refs[generate-id() = generate-id(key('secondary-section', concat($key, &sep;, &section.id;))[1])]">
+      <xsl:apply-templates select="." mode="reference"/>
+    </xsl:for-each>
+  </dt>
+  <xsl:if test="$refs/tertiary or $refs[not(tertiary)]/*[self::see or self::seealso]">
+    <dd>
+      <dl>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, see))[1])]"
+                             mode="index-see">
+          <xsl:sort select="see"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, seealso))[1])]"
+                             mode="index-seealso">
+          <xsl:sort select="seealso"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, &sep;, &tertiary;))[1]) = 1]" 
+                             mode="index-tertiary">
+          <xsl:sort select="&tertiary;"/>
+        </xsl:apply-templates>
+      </dl>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-tertiary">
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+  <xsl:variable name="refs" select="key('tertiary', $key)"/>
+  <dt>
+    <xsl:value-of select="tertiary"/>
+    <xsl:for-each select="$refs[generate-id() = generate-id(key('tertiary-section', concat($key, &sep;, &section.id;))[1])]">
+      <xsl:apply-templates select="." mode="reference"/>
+    </xsl:for-each>
+  </dt>
+  <xsl:variable name="see" select="$refs/see | $refs/seealso"/>
+  <xsl:if test="$see">
+    <dd>
+      <dl>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see))[1])]"
+                             mode="index-see">
+          <xsl:sort select="see"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso))[1])]"
+                             mode="index-seealso">
+          <xsl:sort select="seealso"/>
+        </xsl:apply-templates>
+      </dl>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="reference">
+  <xsl:text>, </xsl:text>
+  <xsl:choose>
+    <xsl:when test="@zone and string(@zone)">
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="&section;"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="&section;" mode="title.content">
+          <xsl:with-param name="text-only" select="'1'"/>
+        </xsl:apply-templates>
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="reference">
+  <xsl:param name="zones"/>
+  <xsl:choose>
+    <xsl:when test="contains($zones, ' ')">
+      <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target[1]"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+      </a>
+      <xsl:text>, </xsl:text>
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="zone" select="$zones"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target[1]"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-see">
+   <dt><xsl:value-of select="see"/></dt>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-seealso">
+   <dt><xsl:value-of select="seealso"/></dt>
+</xsl:template>
+
+<xsl:template match="*" mode="index-title-content">
+  <xsl:apply-templates select="&section;" mode="title.content">
+    <xsl:with-param name="text-only" select="'1'"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/info.xsl b/help-converters/docbook/docbook/html/info.xsl
new file mode 100644
index 0000000..b1d6649
--- /dev/null
+++ b/help-converters/docbook/docbook/html/info.xsl
@@ -0,0 +1,53 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- These templates define the "default behavior" for info
+     elements.  Even if you don't process the *info wrappers,
+     some of these elements are needed because the elements are
+     processed from named templates that are called with modes.
+     Since modes aren't sticky, these rules apply. 
+     (TODO: clarify this comment) -->
+
+<!-- ==================================================================== -->
+<!-- called from named templates in a given mode -->
+
+<xsl:template match="corpauthor">
+  <span class="{name(.)}">
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="jobtitle">
+  <span class="{name(.)}">
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname">
+  <span class="{name(.)}">
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgdiv">
+  <span class="{name(.)}">
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/inline.xsl b/help-converters/docbook/docbook/html/inline.xsl
new file mode 100644
index 0000000..7901a59
--- /dev/null
+++ b/help-converters/docbook/docbook/html/inline.xsl
@@ -0,0 +1,683 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="inline.charseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <xsl:copy-of select="$content"/>
+</xsl:template>
+
+<xsl:template name="inline.monoseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <tt><xsl:copy-of select="$content"/></tt>
+</xsl:template>
+
+<xsl:template name="inline.boldseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <!-- don't put <b> inside figure, example, or table titles -->
+  <xsl:choose>
+    <xsl:when test="local-name(..) = 'title'
+                    and (local-name(../..) = 'figure'
+                         or local-name(../..) = 'example'
+                         or local-name(../..) = 'table')">
+      <xsl:copy-of select="$content"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <b><xsl:copy-of select="$content"/></b>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.italicseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <i><xsl:copy-of select="$content"/></i>
+</xsl:template>
+
+<xsl:template name="inline.boldmonoseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <!-- don't put <b> inside figure, example, or table titles -->
+  <!-- or other titles that may already be represented with <b>'s. -->
+  <xsl:choose>
+    <xsl:when test="local-name(..) = 'title'
+                    and (local-name(../..) = 'figure'
+                         or local-name(../..) = 'example'
+                         or local-name(../..) = 'table'
+                         or local-name(../..) = 'formalpara')">
+      <tt><xsl:copy-of select="$content"/></tt>
+    </xsl:when>
+    <xsl:otherwise>
+      <b><tt><xsl:copy-of select="$content"/></tt></b>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.italicmonoseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <i><tt><xsl:copy-of select="$content"/></tt></i>
+</xsl:template>
+
+<xsl:template name="inline.superscriptseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <sup><xsl:copy-of select="$content"/></sup>
+</xsl:template>
+
+<xsl:template name="inline.subscriptseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <sub><xsl:copy-of select="$content"/></sub>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- some special cases -->
+
+<xsl:template match="author">
+  <span class="{name(.)}"><xsl:call-template name="person.name"/></span>
+</xsl:template>
+
+<xsl:template match="editor">
+  <span class="{name(.)}"><xsl:call-template name="person.name"/></span>
+</xsl:template>
+
+<xsl:template match="othercredit">
+  <span class="{name(.)}"><xsl:call-template name="person.name"/></span>
+</xsl:template>
+
+<xsl:template match="authorinitials">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="accel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="action">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="application">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="classname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="exceptionname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="interfacename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="methodname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="command">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="computeroutput">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="constant">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="database">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorcode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortype">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="envar">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="filename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="function">
+  <xsl:choose>
+    <xsl:when test="$function.parens != '0'
+                    and (parameter or function or replaceable)">
+      <xsl:variable name="nodes" select="text()|*"/>
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:apply-templates select="$nodes[1]"/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>(</xsl:text>
+      <xsl:apply-templates select="$nodes[position()>1]"/>
+      <xsl:text>)</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+     <xsl:call-template name="inline.monoseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="function/parameter" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="function/replaceable" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="guibutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guiicon">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guilabel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenuitem">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guisubmenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="hardware">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interface">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interfacedefinition">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keycap">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="keycode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keysym">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="literal">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="medialabel">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="shortcut">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="mousebutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="option">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="parameter">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="property">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="prompt">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="replaceable" priority="1">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="returnvalue">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="structfield">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="structname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="symbol">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="systemitem">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="token">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="type">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="userinput">
+  <xsl:call-template name="inline.boldmonoseq"/>
+</xsl:template>
+
+<xsl:template match="abbrev">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="acronym">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="citerefentry">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="citetitle">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="emphasis">
+  <xsl:choose>
+    <xsl:when test="@role='bold'">
+      <xsl:call-template name="inline.boldseq"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="foreignphrase">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="markup">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phrase">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="quote">
+  <xsl:variable name="depth">
+    <xsl:call-template name="dot.count">
+      <xsl:with-param name="string"><xsl:number level="multiple"/></xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$depth mod 2 = 0">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.nestedstartquote"/>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:call-template name="gentext.nestedendquote"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="wordasword">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="lineannotation">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="superscript">
+  <xsl:call-template name="inline.superscriptseq"/>
+</xsl:template>
+
+<xsl:template match="subscript">
+  <xsl:call-template name="inline.subscriptseq"/>
+</xsl:template>
+
+<xsl:template match="trademark">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:if test="@class">
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat" select="@class"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="firstterm">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="glossterm">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="sgmltag">
+  <xsl:call-template name="format.sgmltag"/>
+</xsl:template>
+
+<xsl:template name="format.sgmltag">
+  <xsl:param name="class">
+    <xsl:choose>
+      <xsl:when test="@class">
+        <xsl:value-of select="@class"/>
+      </xsl:when>
+      <xsl:otherwise>element</xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$class='attribute'">
+      <xsl:call-template name="inline.charseq"/>
+    </xsl:when>
+    <xsl:when test="$class='attvalue'">
+      <xsl:call-template name="inline.monoseq"/>
+    </xsl:when>
+    <xsl:when test="$class='element'">
+      <xsl:call-template name="inline.monoseq"/>
+    </xsl:when>
+    <xsl:when test="$class='endtag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;/</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='genentity'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&amp;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='numcharref'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&amp;#</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='paramentity'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>%</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='pi'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;?</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='xmlpi'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;?</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>?&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='starttag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='emptytag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>/&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='sgmlcomment'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;!--</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>--&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.charseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="email">
+  <xsl:call-template name="inline.monoseq">
+    <xsl:with-param name="content">
+      <xsl:text>&lt;</xsl:text>
+      <a>
+       <xsl:attribute name="href">mailto:<xsl:value-of select="."/></xsl:attribute>
+       <xsl:apply-templates/>
+      </a>
+      <xsl:text>&gt;</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="keycombo">
+  <xsl:variable name="action" select="@action"/>
+  <xsl:variable name="joinchar">
+    <xsl:choose>
+      <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
+      <xsl:when test="$action='simul'">+</xsl:when>
+      <xsl:when test="$action='press'">-</xsl:when>
+      <xsl:when test="$action='click'">-</xsl:when>
+      <xsl:when test="$action='double-click'">-</xsl:when>
+      <xsl:when test="$action='other'"></xsl:when>
+      <xsl:otherwise>-</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:for-each select="./*">
+    <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if>
+    <xsl:apply-templates/>
+  </xsl:for-each>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="menuchoice">
+  <xsl:variable name="shortcut" select="./shortcut"/>
+  <xsl:call-template name="process.menuchoice"/>
+  <xsl:if test="$shortcut">
+    <xsl:text> (</xsl:text>
+    <xsl:apply-templates select="$shortcut"/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.menuchoice">
+  <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($nodelist)"></xsl:when>
+    <xsl:when test="$count=1">
+      <xsl:apply-templates select="$nodelist[$count=position()]"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="node" select="$nodelist[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="name($node)='guimenuitem'
+                        or name($node)='guisubmenu'">
+          <xsl:text>-&gt;</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>+</xsl:otherwise>
+      </xsl:choose>
+      <xsl:apply-templates select="$node"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="optional">
+  <xsl:value-of select="$arg.choice.opt.open.str"/>
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:value-of select="$arg.choice.opt.close.str"/>
+</xsl:template>
+
+<xsl:template match="citation">
+  <!-- todo: biblio-citation-check -->
+  <xsl:text>[</xsl:text>
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:text>]</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="comment|remark">
+  <xsl:if test="$show.comments != 0">
+    <i><xsl:call-template name="inline.charseq"/></i>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productname">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:if test="@class">
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat" select="@class"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="productnumber">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="pob|street|city|state|postcode|country|phone|fax|otheraddr">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/keywords.xsl b/help-converters/docbook/docbook/html/keywords.xsl
new file mode 100644
index 0000000..c3b5f70
--- /dev/null
+++ b/help-converters/docbook/docbook/html/keywords.xsl
@@ -0,0 +1,38 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="keywordset"></xsl:template>
+<xsl:template match="subjectset"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="keywordset" mode="html.header">
+  <meta name="keywords">
+    <xsl:attribute name="content">
+      <xsl:apply-templates select="keyword" mode="html.header"/>
+    </xsl:attribute>
+  </meta>
+</xsl:template>
+
+<xsl:template match="keyword[position()!=last()]" mode="html.header">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="keyword[position()=last()]" mode="html.header">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/lists.xsl b/help-converters/docbook/docbook/html/lists.xsl
new file mode 100644
index 0000000..2bae5e6
--- /dev/null
+++ b/help-converters/docbook/docbook/html/lists.xsl
@@ -0,0 +1,609 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="itemizedlist">
+  <div class="{name(.)}">
+    <xsl:if test="title">
+      <xsl:apply-templates select="title"/>
+    </xsl:if>
+    <ul>
+    <xsl:apply-templates select="listitem"/>
+    </ul>
+  </div>
+</xsl:template>
+
+<xsl:template match="itemizedlist/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template name="orderedlist-starting-number">
+  <xsl:param name="list" select="."/>
+  <xsl:choose>
+    <xsl:when test="$list/@continuation != 'continues'">1</xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="prevlist"
+                    select="$list/preceding::orderedlist[1]"/>
+      <xsl:choose>
+        <xsl:when test="count($prevlist) = 0">2</xsl:when>
+        <xsl:otherwise>
+          <xsl:variable name="prevlength" select="count($prevlist/listitem)"/>
+          <xsl:variable name="prevstart">
+            <xsl:call-template name="orderedlist-starting-number">
+              <xsl:with-param name="list" select="$prevlist"/>
+            </xsl:call-template>
+          </xsl:variable>
+          <xsl:value-of select="$prevstart + $prevlength"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="orderedlist">
+  <xsl:variable name="start">
+    <xsl:choose>
+      <xsl:when test="@continuation='continues'">
+        <xsl:call-template name="orderedlist-starting-number"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="numeration">
+    <xsl:choose>
+      <xsl:when test="@numeration='arabic'">1</xsl:when>
+      <xsl:when test="@numeration='loweralpha'">a</xsl:when>
+      <xsl:when test="@numeration='lowerroman'">i</xsl:when>
+      <xsl:when test="@numeration='upperalpha'">A</xsl:when>
+      <xsl:when test="@numeration='upperroman'">I</xsl:when>
+      <xsl:otherwise>
+        <!-- alternate the numeration based on depth -->
+        <xsl:variable name="depth" select="count(ancestor::orderedlist)"/>
+        <xsl:variable name="type" select="$depth mod 5"/>
+        <xsl:choose>
+          <xsl:when test="$type = 0">1</xsl:when>
+          <xsl:when test="$type = 1">a</xsl:when>
+          <xsl:when test="$type = 2">i</xsl:when>
+          <xsl:when test="$type = 3">A</xsl:when>
+          <xsl:when test="$type = 4">I</xsl:when>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <div class="{name(.)}">
+    <xsl:if test="title">
+      <xsl:apply-templates select="title"/>
+    </xsl:if>
+    <ol>
+    <xsl:if test="$start != '1'">
+      <xsl:attribute name="start">
+        <xsl:value-of select="$start"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$numeration != ''">
+      <xsl:attribute name="type">
+	<xsl:value-of select="$numeration"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@spacing='compact'">
+      <xsl:attribute name="compact">
+	<xsl:value-of select="compact"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates select="listitem"/>
+    </ol>
+  </div>
+</xsl:template>
+
+<xsl:template match="orderedlist/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="variablelist">
+  <div class="{name(.)}">
+    <xsl:if test="title">
+      <xsl:apply-templates select="title"/>
+    </xsl:if>
+    <dl>
+    <xsl:apply-templates select="varlistentry"/>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="variablelist/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="listitem">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="mark" select="ancestor-or-self::*/@mark"/>
+  <xsl:variable name="override" select="@override"/>
+
+  <xsl:variable name="usemark">
+    <xsl:choose>
+      <xsl:when test="$override != ''">
+	<xsl:value-of select="$override"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="$mark"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="cssmark">
+    <xsl:choose>
+      <xsl:when test="$usemark = 'bullet'">disc</xsl:when>
+      <xsl:when test="$usemark = 'box'">square</xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="$usemark"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <li>
+    <xsl:if test="$css.decoration = '1' and $cssmark != ''">
+      <xsl:attribute name="style">
+	<xsl:text>list-style-type: </xsl:text>
+	<xsl:value-of select="$cssmark"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <!-- we can't just drop the anchor in since some browsers (Opera)
+         get confused about line breaks if we do. So if the first child
+         is a para, assume the para will put in the anchor. Otherwise,
+         put the anchor in anyway. -->
+    <xsl:if test="local-name(child::*[1]) != 'para'">
+      <a name="{$id}"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag and @revisionflag">
+	<div class="{ revisionflag}">
+	  <xsl:apply-templates/>
+	</div>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </li>
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="varlistentry">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <dt><a name="{$id}"/><xsl:apply-templates select="term"/></dt>
+  <dd><xsl:apply-templates select="listitem"/></dd>
+</xsl:template>
+
+<xsl:template match="varlistentry/term">
+  <span class="term"><xsl:apply-templates/>, </span>
+</xsl:template>
+
+<xsl:template match="varlistentry/term[position()=last()]" priority="2">
+  <span class="term"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match="varlistentry/listitem">
+  <xsl:choose>
+    <xsl:when test="$show.revisionflag and @revisionflag">
+      <div class="{ revisionflag}">
+	<xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+
+<xsl:template match="simplelist">
+  <!-- with no type specified, the default is 'vert' -->
+  <table class="simplelist" border="0" summary="Simple list">
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols">
+	<xsl:choose>
+	  <xsl:when test="@columns">
+	    <xsl:value-of select="@columns"/>
+	  </xsl:when>
+	  <xsl:otherwise>1</xsl:otherwise>
+	</xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template match="simplelist[ type='inline']">
+  <span class="{name(.)}"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match="simplelist[ type='horiz']">
+  <table class="simplelist" border="0" summary="Simple list">
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template match="simplelist[ type='vert']">
+  <table class="simplelist" border="0" summary="Simple list">
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+
+  <xsl:if test="$cell &lt;= count($members)">
+    <tr>
+      <xsl:call-template name="simplelist.horiz.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+   </tr>
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell + $cols"/>
+      <xsl:with-param name="members" select="$members"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <td>
+      <xsl:choose>
+        <xsl:when test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$using.chunker != 0">
+              <xsl:text>&#160;</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <xsl:call-template name="simplelist.horiz.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="rows"
+             select="floor((count($members)+$cols - 1) div $cols)"/>
+
+  <xsl:if test="$cell &lt;= $rows">
+    <tr>
+      <xsl:call-template name="simplelist.vert.row">
+	<xsl:with-param name="cols" select="$cols"/>
+	<xsl:with-param name="rows" select="$rows"/>
+	<xsl:with-param name="cell" select="$cell"/>
+	<xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+    </tr>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="rows" select="$rows"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="rows">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <td>
+      <xsl:choose>
+        <xsl:when test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$using.chunker != 0">
+              <xsl:text>&#160;</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <xsl:call-template name="simplelist.vert.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="rows" select="$rows"/>
+      <xsl:with-param name="cell" select="$cell+$rows"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="member">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="simplelist[ type='inline']/member">
+  <xsl:apply-templates/>
+  <xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="simplelist[ type='inline']/member[position()=last()]"
+              priority="2">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="procedure">
+  <div class="{name(.)}">
+    <xsl:if test="title">
+      <xsl:apply-templates select="title" mode="procedure.title.mode"/>
+    </xsl:if>
+    <ol><xsl:apply-templates/></ol>
+  </div>
+</xsl:template>
+
+<xsl:template match="procedure/title">
+</xsl:template>
+
+<xsl:template match="title" mode="procedure.title.mode">
+  <p>
+    <b>
+      <xsl:apply-templates/>
+    </b>
+  </p>
+</xsl:template>
+
+<xsl:template match="substeps">
+  <ol><xsl:apply-templates/></ol>
+</xsl:template>
+
+<xsl:template match="step">
+  <li><xsl:apply-templates/></li>
+</xsl:template>
+
+<xsl:template match="step/title">
+  <xsl:apply-templates select="." mode="procedure.title.mode"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="segmentedlist">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="segmentedlist/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="segtitle">
+</xsl:template>
+
+<xsl:template match="segtitle" mode="segtitle-in-seg">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seglistitem">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seg">
+  <xsl:variable name="segnum" select="position()"/>
+  <xsl:variable name="seglist" select="ancestor::segmentedlist"/>
+  <xsl:variable name="segtitles" select="$seglist/segtitle"/>
+
+  <!--
+     Note: segtitle is only going to be the right thing in a well formed
+     SegmentedList.  If there are too many Segs or too few SegTitles,
+     you'll get something odd...maybe an error
+  -->
+
+  <p>
+    <b>
+      <xsl:apply-templates select="$segtitles[$segnum=position()]"
+                           mode="segtitle-in-seg"/>
+      <xsl:text>: </xsl:text>
+    </b>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="calloutlist">
+  <div class="{name(.)}">
+    <xsl:if test="./title">
+      <p>
+        <b>
+          <xsl:apply-templates select="./title" mode="calloutlist.title.mode"/>
+        </b>
+      </p>
+    </xsl:if>
+    <xsl:choose>
+      <xsl:when test="$callout.list.table != 0">
+        <table border="0" summary="Callout list">
+          <xsl:apply-templates/>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <dl compact="compact"><xsl:apply-templates/></dl>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="calloutlist/title">
+</xsl:template>
+
+<xsl:template match="calloutlist/title" mode="calloutlist.title.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="callout">
+  <xsl:choose>
+    <xsl:when test="$callout.list.table != 0">
+      <tr>
+        <td width="5%" valign="top" align="left">
+          <xsl:call-template name="callout.arearefs">
+            <xsl:with-param name="arearefs" select="@arearefs"/>
+          </xsl:call-template>
+        </td>
+        <td valign="top" align="left">
+          <xsl:apply-templates/>
+        </td>
+      </tr>
+    </xsl:when>
+    <xsl:otherwise>
+      <dt>
+        <xsl:call-template name="callout.arearefs">
+          <xsl:with-param name="arearefs" select="@arearefs"/>
+        </xsl:call-template>
+      </dt>
+      <dd><xsl:apply-templates/></dd>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="callout.arearefs">
+  <xsl:param name="arearefs"></xsl:param>
+  <xsl:if test="$arearefs!=''">
+    <xsl:choose>
+      <xsl:when test="substring-before($arearefs,' ')=''">
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef" select="$arearefs"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef"
+                          select="substring-before($arearefs,' ')"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="callout.arearefs">
+      <xsl:with-param name="arearefs"
+                      select="substring-after($arearefs,' ')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="callout.arearef">
+  <xsl:param name="arearef"></xsl:param>
+  <xsl:variable name="targets" select="id($arearef)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="count($target)=0">
+      <xsl:value-of select="$arearef"/>
+      <xsl:text>: ???</xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='co'">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:text>#</xsl:text>
+          <xsl:value-of select="$arearef"/>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target" mode="callout-bug"/>
+      </a>
+      <xsl:text> </xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='areaset'">
+      <xsl:call-template name="callout-bug">
+        <xsl:with-param name="conum">
+          <xsl:apply-templates select="$target" mode="conumber"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($target)='area'">
+      <xsl:choose>
+        <xsl:when test="$target/parent::areaset">
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target/parent::areaset"
+                                   mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target" mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>???</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/math.xsl b/help-converters/docbook/docbook/html/math.xsl
new file mode 100644
index 0000000..502a930
--- /dev/null
+++ b/help-converters/docbook/docbook/html/math.xsl
@@ -0,0 +1,22 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="inlineequation">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="alt">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/param.xsl b/help-converters/docbook/docbook/html/param.xsl
new file mode 100644
index 0000000..de1e131
--- /dev/null
+++ b/help-converters/docbook/docbook/html/param.xsl
@@ -0,0 +1,947 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0";
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>HTML Parameter Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes each of the HTML Stylesheet parameters.
+These are the <quote>easily customizable</quote> parts of the stylesheet.
+If you want to specify an alternate value for one or more of these
+parameters, you can do so in a <quote>driver</quote> stylesheet.</para>
+
+<para>For example, if you want to change the <literal>html.stylesheet</literal>
+to <filename>reference.css</filename>, you might create a driver
+stylesheet like this:</para>
+
+<programlisting><![CDATA[<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+  <xsl:import href="/path/to/html/docbook.xsl"/>
+
+  <xsl:param name="html.stylesheet">reference.css</xsl:param>
+
+</xsl:stylesheet>]]></programlisting>
+
+<para>Naturally, you have to change the
+<sgmltag class='attribute'>href</sgmltag> attribute on
+<literal>&lt;xsl:import&gt;</literal>
+to point to <filename>docbook.xsl</filename>
+on your system. (Or <filename>chunk.xsl</filename>, if you're using
+chunking.)</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+<xsl:param name="author.othername.in.middle" select="1" doc:type='boolean'/>
+
+<doc:param name="author.othername.in.middle" xmlns="">
+<refpurpose>Is <sgmltag>othername</sgmltag> in <sgmltag>author</sgmltag> a
+middle name?</refpurpose>
+<refdescription>
+<para>If true (non-zero), the <sgmltag>othername</sgmltag> of an <sgmltag>author</sgmltag>
+appears between the <sgmltag>firstname</sgmltag> and
+<sgmltag>surname</sgmltag>.  Otherwise, <sgmltag>othername</sgmltag>
+is suppressed.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="html.stylesheet" select="''" doc:type='string'/>
+
+<doc:param name="html.stylesheet" xmlns="">
+<refpurpose>Name of the stylesheet to use in the generated HTML</refpurpose>
+<refdescription>
+<para>The name of the stylesheet to place in the HTML <sgmltag>LINK</sgmltag>
+tag, or the empty string to suppress the stylesheet <sgmltag>LINK</sgmltag>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="html.stylesheet.type" doc:type='string'>text/css</xsl:param>
+
+<doc:param name="html.stylesheet.type" xmlns="">
+<refpurpose>The type of the stylesheet used in the generated HTML</refpurpose>
+<refdescription>
+<para>The type of the stylesheet to place in the HTML <sgmltag>link</sgmltag> tag.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="html.base" doc:type='uri'></xsl:param>
+
+<doc:param name="html.base" xmlns="">
+<refpurpose>An HTML base URI</refpurpose>
+<refdescription>
+<para>If html.base is set, it is used for the <sgmltag>BASE</sgmltag>
+element in the <sgmltag>HEAD</sgmltag> of the HTML documents.
+This is useful for dynamically served HTML where the base URI needs
+to be shifted.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="ulink.target" select="'_top'" doc:type='string'/>
+
+<doc:param name="ulink.target" xmlns="">
+<refpurpose>The HTML anchor target for ULinks</refpurpose>
+<refdescription>
+<para>If <parameter>ulink.target</parameter> is set, its value will
+be used for the <sgmltag class='attribute'>target</sgmltag> attribute
+on anchors generated for <sgmltag>ulink</sgmltag>s.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="refentry.xref.manvolnum" select="1" doc:type='boolean'/>
+
+<doc:param name="refentry.xref.manvolnum" xmlns="">
+<refpurpose>Output <sgmltag>manvolnum</sgmltag> as part of 
+<sgmltag>refentry</sgmltag> cross-reference?</refpurpose>
+<refdescription>
+<para>if true (non-zero), the <sgmltag>manvolnum</sgmltag> is used when cross-referencing
+<sgmltag>refentry</sgmltag>s, either with <sgmltag>xref</sgmltag>
+or <sgmltag>citerefentry</sgmltag>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="show.comments" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="show.comments" xmlns="">
+<refpurpose>Display <sgmltag>comment</sgmltag> elements?</refpurpose>
+<refdescription>
+<para>If true (non-zero), comments will be displayed, otherwise they are suppressed.
+Comments here refers to the <sgmltag>comment</sgmltag> element,
+which will be renamed <sgmltag>remark</sgmltag> in DocBook V4.0,
+not XML comments (&lt;-- like this --&gt;) which are unavailable.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="funcsynopsis.style"
+           doc:type='list'
+           doc:list='ansi kr'>kr</xsl:param>
+
+<doc:param name="funcsynopsis.style" xmlns="">
+<refpurpose>What style of 'FuncSynopsis' should be generated?</refpurpose>
+<refdescription>
+<para>If <varname>funcsynopsis.style</varname> is <literal>ansi</literal>,
+ANSI-style function synopses are generated for a
+<sgmltag>funcsynopsis</sgmltag>, otherwise K&amp;R-style
+function synopses are generated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="funcsynopsis.decoration" select="1" doc:type='boolean'/>
+
+<doc:param name="funcsynopsis.decoration" xmlns="">
+<refpurpose>Decorate elements of a FuncSynopsis?</refpurpose>
+<refdescription>
+<para>If true (non-zero), elements of the FuncSynopsis will be decorated (e.g. bold or
+italic).  The decoration is controlled by functions that can be redefined
+in a customization layer.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="function.parens" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="function.parens" xmlns="">
+<refpurpose>Generate parens after a function?</refpurpose>
+<refdescription>
+<para>If not 0, the formatting of
+a <sgmltag class="starttag">function</sgmltag> element will include
+generated parenthesis.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="refentry.generate.name" select="1" doc:type='boolean'/>
+
+<doc:param name="refentry.generate.name" xmlns="">
+<refpurpose>Output NAME header before 'RefName'(s)?</refpurpose>
+<refdescription>
+<para>If true (non-zero), a "NAME" section title is output before the list
+of 'RefName's.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.graphics" select="0" doc:type='boolean'/>
+
+<doc:param name="admon.graphics" xmlns="">
+<refpurpose>Use graphics in admonitions?</refpurpose>
+<refdescription>
+<para>If true (non-zero), admonitions are presented in an alternate style that uses
+a graphic.  Default graphics are provided in the distribution.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.graphics.path" doc:type='string'>../images/</xsl:param>
+
+<doc:param name="admon.graphics.path" xmlns="">
+<refpurpose>Path to admonition graphics</refpurpose>
+<refdescription>
+<para>Sets the path, probably relative to the directory where the HTML
+files are created, to the admonition graphics.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.graphics.extension" select="'.png'" doc:type='string'/>
+
+<doc:param name="admon.graphics.extension" xmlns="">
+<refpurpose>Extension for admonition graphics</refpurpose>
+<refdescription>
+<para>Sets the extension to use on admonition graphics.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.style" doc:type='string'>
+  <xsl:text>margin-left: 0.5in; margin-right: 0.5in;</xsl:text>
+</xsl:param>
+
+<doc:param name="admon.style" xmlns="">
+<refpurpose>CSS style attributes for admonitions</refpurpose>
+<refdescription>
+<para>Specifies the value of the <sgmltag class="attribute">STYLE</sgmltag>
+attribute that should be added to admonitions.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="section.autolabel" select="0" doc:type='boolean'/>
+
+<doc:param name="section.autolabel" xmlns="">
+<refpurpose>Are sections enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled sections will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="section.label.includes.component.label" select="0"
+           doc:type='boolean'/>
+
+<doc:param name="section.label.includes.component.label" xmlns="">
+<refpurpose>Do section labels include the component label?</refpurpose>
+<refdescription>
+<para>If true (non-zero), section labels are prefixed with the label of the
+component that contains them.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="chapter.autolabel" select="1" doc:type='boolean'/>
+
+<doc:param name="chapter.autolabel" xmlns="">
+<refpurpose>Are chapters and appendixes enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled chapters and appendixes will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="preface.autolabel" select="0" doc:type='boolean'/>
+
+<doc:param name="preface.autolabel" xmlns="">
+<refpurpose>Are prefaces enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled prefaces will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="part.autolabel" select="1" doc:type='boolean'/>
+
+<doc:param name="part.autolabel" xmlns="">
+<refpurpose>Are parts and references enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled parts and references will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="qandadiv.autolabel" select="1" doc:type='boolean'/>
+
+<doc:param name="qandadiv.autolabel" xmlns="">
+<refpurpose>Are divisions in QAndASets enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled qandadivs will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="qanda.inherit.numeration" select="1" doc:type='boolean'/>
+
+<doc:param name="qanda.inherit.numeration" xmlns="">
+<refpurpose>Does enumeration of QandASet components inherit the numeration of parent elements?</refpurpose>
+<refdescription>
+<para>If true (non-zero), numbered QandADiv elements and Questions and Answers inherit
+the numeration of the ancestors of the QandASet.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="qanda.defaultlabel"
+           doc:type='boolean'
+           doc:list='qanda number none'>number</xsl:param>
+
+<doc:param name="qanda.defaultlabel" xmlns="">
+<refpurpose>Sets the default for defaultlabel on QandASet.</refpurpose>
+<refdescription>
+<para>If no defaultlabel attribute is specified on a QandASet, this
+value is used. It must be one of the legal values for the defaultlabel
+attribute.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.qandaset.toc" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="generate.qandaset.toc" xmlns="">
+<refpurpose>Is a Table of Contents created for QandASets?</refpurpose>
+<refdescription>
+<para>If true (non-zero), a ToC is constructed for QandASets.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.qandadiv.toc" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="generate.qandadiv.toc" xmlns="">
+<refpurpose>Is a Table of Contents created for QandADivs?</refpurpose>
+<refdescription>
+<para>If true (non-zero), a ToC is constructed for QandADivs.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="biblioentry.item.separator" doc:type='string'>. </xsl:param>
+
+<doc:param name="biblioentry.item.separator" xmlns="">
+<refpurpose>Text to separate bibliography entries</refpurpose>
+<refdescription>
+<para>Text to separate bibliography entries
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="toc.section.depth"
+           doc:type='integer'
+           doc:min='1'
+           doc:max='10'>2</xsl:param>
+
+<doc:param name="toc.section.depth" xmlns="">
+<refpurpose>How deep should recursive <sgmltag>section</sgmltag>s appear
+in the TOC?</refpurpose>
+<refdescription>
+<para>Specifies the depth to which recursive sections should appear in the
+TOC.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="using.chunker" select="0" doc:type='boolean'/>
+
+<doc:param name="using.chunker" xmlns="">
+<refpurpose>Will the output be chunked?</refpurpose>
+<refdescription>
+<para>In addition to providing chunking, the chunker can cleanup a
+number of XML to HTML issues. If the chunker is not being used, the
+stylesheets try to avoid producing results that will not appear properly
+in browsers.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.component.toc" select="1" doc:type='boolean'/>
+
+<doc:param name="generate.component.toc" xmlns="">
+<refpurpose>Should TOCs be genereated in components (Chapters, Appendixes, etc.)?</refpurpose>
+<refdescription>
+<para>If true (non-zero), they are.
+</para>
+</refdescription>
+</doc:param>
+<!-- ==================================================================== -->
+<xsl:param name="generate.division.toc" select="1" doc:type='boolean'/>
+
+<doc:param name="generate.division.toc" xmlns="">
+<refpurpose>Should TOCs be genereated in divisions (Books, Parts, etc.)?</refpurpose>
+<refdescription>
+<para>If true (non-zero), they are.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="link.mailto.url" doc:type='string'></xsl:param>
+
+<doc:param name="link.mailto.url" xmlns="">
+<refpurpose>Mailto URL for the LINK REL=made HTML HEAD element</refpurpose>
+<refdescription>
+<para>If not the empty string, this address will be used for the
+REL=made <sgmltag>LINK</sgmltag> element in the HTML <sgmltag>HEAD</sgmltag>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="graphic.default.extension" doc:type='string'></xsl:param>
+
+<doc:param name="graphic.default.extension" xmlns="">
+<refpurpose>Default extension for graphic filenames</refpurpose>
+<refdescription>
+<para>If a <sgmltag>graphic</sgmltag> or <sgmltag>mediaobject</sgmltag>
+includes a reference to a filename that does not include an extension,
+and the <sgmltag class="attribute">format</sgmltag> attribute is
+<emphasis>unspecified</emphasis>, the default extension will be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="toc.list.type"
+           doc:type='list'
+           doc:list='dl ul ol'>dl</xsl:param>
+
+<doc:param name="toc.list.type" xmlns="">
+<refpurpose>Type of HTML list element to use for Tables of Contents</refpurpose>
+<refdescription>
+<para>When an automatically generated Table of Contents (or List of Titles)
+is produced, this HTML element will be used to make the list.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="check.idref" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="check.idref" xmlns="">
+<refpurpose>Test the target of IDREF attributes?</refpurpose>
+<refdescription>
+<para>If 1, the target of IDREF attributes are tested for presence
+(and uniqueness). This can be very expensive in large documents.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="use.id.function" doc:type='boolean' select="'1'"/>
+
+<doc:param name="use.id.function" xmlns="">
+<refpurpose>Use the XPath id() function to find link targets?</refpurpose>
+<refdescription>
+<para>If 1, the stylesheets use the <function>id()</function> function
+to find the targets of cross reference elements. This is more
+efficient, but only works if your XSLT processor implements the
+<function>id()</function> function, naturally.</para>
+<para>THIS PARAMETER IS NOT SUPPORTED. IT IS ALWAYS ASSUMED TO BE 1.
+SEE xref.xsl IF YOU NEED TO TURN IT OFF.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="spacing.paras" doc:type='boolean' select="'1'"/>
+
+<doc:param name="spacing.paras" xmlns="">
+<refpurpose>Insert additional &lt;p&gt; elements for spacing?</refpurpose>
+<refdescription>
+<para>When non-zero, additional, empty paragraphs are inserted in
+several contexts (for example, around informal figures), to create a
+more pleasing visual appearance in many browsers.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:attribute-set name="body.attrs">
+  <xsl:attribute name="bgcolor">white</xsl:attribute>
+  <xsl:attribute name="text">black</xsl:attribute>
+  <xsl:attribute name="link">#0000FF</xsl:attribute>
+  <xsl:attribute name="vlink">#840084</xsl:attribute>
+  <xsl:attribute name="alink">#0000FF</xsl:attribute>
+</xsl:attribute-set>
+
+<doc:attribute-set name="body.attrs" xmlns="">
+<refpurpose>Additional attributes for the HTML body tag</refpurpose>
+<refdescription>
+<para>The attributes defined by this attribute set are added to the
+HTML &lt;body&gt; tag.
+</para>
+</refdescription>
+</doc:attribute-set>
+
+<!-- ==================================================================== -->
+<xsl:param name="css.decoration" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="css.decoration" xmlns="">
+<refpurpose>Enable CSS decoration of elements</refpurpose>
+<refdescription>
+<para>
+If <literal>css.decoration</literal> is turned on, then HTML elements
+produced by the
+stylesheet may be decorated with STYLE attributes.  For example, the
+LI tags produced for list items may include a fragment of CSS in the
+STYLE attribute which sets the CSS property "list-style-type".
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="show.revisionflag" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="show.revisionflag" xmlns="">
+<refpurpose>Enable decoration of elements that have a revisionflag</refpurpose>
+<refdescription>
+<para>
+If <literal>show.revisionflag</literal> is turned on, then the stylesheets
+may produce additional markup designed to allow a CSS stylesheet to
+highlight elements that have specific revisionflag settings.</para>
+
+<para>The markup inserted will be usually be either a &lt;span> or &lt;div>
+with an appropriate <literal>class</literal> attribute. (The value of
+the class attribute will be the same as the value of the revisionflag
+attribute). In some contexts, for example tables, where extra markup
+would be structurally illegal, the class attribute will be added to the
+appropriate container element.</para>
+
+<para>In general, the stylesheets only test for revisionflag in contexts
+where an importing stylesheet would have to redefine whole templates.
+Most of the revisionflag processing is expected to be done by another
+stylesheet, for example <filename>changebars.xsl</filename>.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="suppress.navigation" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="suppress.navigation" xmlns="">
+<refpurpose>Disable header and footer navigation</refpurpose>
+<refdescription>
+<para>
+If <literal>suppress.navigation</literal> is turned on, header and
+footer navigation will be suppressed.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="rootid" select="''" doc:type='string'/>
+
+<doc:param name="rootid" xmlns="">
+<refpurpose>Specify the root element to format</refpurpose>
+<refdescription>
+<para>If <parameter>rootid</parameter> is specified, it must be the
+value of an ID that occurs in the document being formatted. The entire
+document will be loaded and parsed, but formatting will begin at the
+element identified, rather than at the root. For example, this allows
+you to process only chapter 4 of a book.</para>
+<para>Because the entire document is available to the processor, automatic
+numbering, cross references, and other dependencies are correctly
+resolved.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.list.table" select="'1'" doc:type='boolean'/>
+
+<doc:param name="callout.list.table" xmlns="">
+<refpurpose>Present callout lists using a table?</refpurpose>
+<refdescription>
+<para>The default presentation of <sgmltag>CalloutList</sgmltag>s uses
+an HTML <sgmltag>DL</sgmltag>. Some browsers don't align DLs very well
+if <parameter>callout.graphics</parameter> are used. With this option
+turned on, <sgmltag>CalloutList</sgmltag>s are presented in an HTML
+<sgmltag>TABLE</sgmltag>, which usually results in better alignment
+of the callout number with the callout description.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics" select="'1'" doc:type='boolean'/>
+
+<doc:param name="callout.graphics" xmlns="">
+<refpurpose>Use graphics for callouts?</refpurpose>
+<refdescription>
+<para>If non-zero, callouts are presented with graphics (e.g., reverse-video
+circled numbers instead of "(1)", "(2)", etc.).
+Default graphics are provided in the distribution.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.extension" select="'.png'" doc:type='string'/>
+
+<doc:param name="callout.graphics.extension" xmlns="">
+<refpurpose>Extension for callout graphics</refpurpose>
+<refdescription>
+<para>Sets the extension to use on callout graphics.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.path" select="'../images/callouts/'" doc:type='string'/>
+
+<doc:param name="callout.graphics.path" xmlns="">
+<refpurpose>Path to callout graphics</refpurpose>
+<refdescription>
+<para>Sets the path, probably relative to the directory where the HTML
+files are created, to the callout graphics.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.number.limit" select="'10'"
+           doc:type='integer'/>
+
+<doc:param name="callout.graphics.number.limit" xmlns="">
+<refpurpose>Number of the largest callout graphic</refpurpose>
+<refdescription>
+<para>If <parameter>callout.graphics</parameter>
+is non-zero, graphics are used to represent
+callout numbers. The value of
+<parameter>callout.graphics.number.limit</parameter>
+is
+the largest number for which a graphic exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.extensions" select="'0'" doc:type='boolean'/>
+
+<doc:param name="saxon.extensions" xmlns="">
+<refpurpose>Enable Saxon extensions</refpurpose>
+<refdescription>
+<para>If non-zero, saxon extensions may be used. Each extension is
+further controlled by its own parameter. But if
+<parameter>saxon.extensions</parameter> is zero, no extensions will
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.textinsert" select="'1'" doc:type='boolean'/>
+
+<doc:param name="saxon.textinsert" xmlns="">
+<refpurpose>Enable the textinsert extension element</refpurpose>
+<refdescription>
+<para>The textinsert extension element inserts the contents of a
+a file into the result tree (as text).
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.linenumbering" select="'1'" doc:type='boolean'/>
+
+<doc:param name="saxon.linenumbering" xmlns="">
+<refpurpose>Enable the line numbering extension</refpurpose>
+<refdescription>
+<para>If true, verbatim environments (elements that have the
+format='linespecific' notation attribute: address, literallayout,
+programlisting, screen, synopsis) that specify line numbering will
+have, surprise, line numbers.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.everyNth" select="'5'" doc:type='integer'/>
+
+<doc:param name="linenumbering.everyNth" xmlns="">
+<refpurpose>Indicate which lines should be numbered</refpurpose>
+<refdescription>
+<para>If line numbering is enabled, everyNth line will be numbered.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.width" select="'3'" doc:type='integer'/>
+
+<doc:param name="linenumbering.width" xmlns="">
+<refpurpose>Indicates the width of line numbers</refpurpose>
+<refdescription>
+<para>If line numbering is enabled, line numbers will appear right
+justified in a field "width" characters wide.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.separator" select="' '" doc:type='string'/>
+
+<doc:param name="linenumbering.separator" xmlns="">
+<refpurpose>Specify a separator between line numbers and lines</refpurpose>
+<refdescription>
+<para>The separator is inserted between line numbers and lines in
+the verbatim environment.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.callouts" select="'1'" doc:type='boolean'/>
+
+<doc:param name="saxon.callouts" xmlns="">
+<refpurpose>Enable the callout extension</refpurpose>
+<refdescription>
+<para>The callouts extension processes <sgmltag>areaset</sgmltag>
+elements in <sgmltag>ProgramListingCO</sgmltag> and other text-based
+callout elements.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.defaultcolumn" select="'60'" doc:type='integer'/>
+
+<doc:param name="callout.defaultcolumn" xmlns="">
+<refpurpose>Indicates what column callouts appear in by default</refpurpose>
+<refdescription>
+<para>If a callout does not identify a column (for example, if it uses
+the <literal>linerange</literal> <sgmltag class="attribute">unit</sgmltag>),
+it will appear in the default column.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="stylesheet.result.type" select="'html'"
+           doc:type='list'
+           doc:list='html fo'/>
+
+<doc:param name="stylesheet.result.type" xmlns="">
+<refpurpose>Identifies the output format of this stylesheet</refpurpose>
+<refdescription>
+<para>The Saxon extension functions need to know if the output format
+is HTML ('html') or XSL Formatting Objects ('fo'). This variable answers
+that question. Valid settings are 'html' or 'fo'.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="nominal.table.width" select="'6in'" doc:type='length'/>
+
+<doc:param name="nominal.table.width" xmlns="">
+<refpurpose>The (absolute) nominal width of tables</refpurpose>
+<refdescription>
+<para>In order to convert CALS column widths into HTML column widths, it
+is sometimes necessary to have an absolute table width to use for conversion
+of mixed absolute and relative widths. This value must be an absolute
+length (not a percentag).</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="default.table.width" select="''" doc:type='length'/>
+
+<doc:param name="default.table.width" xmlns="">
+<refpurpose>The default width of tables</refpurpose>
+<refdescription>
+<para>If specified, this value will be used for the WIDTH attribute on
+tables that do not specify an alternate width (with the dbhtml processing
+instruction).</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.tablecolumns" select="'1'" doc:type='boolean'/>
+
+<doc:param name="saxon.tablecolumns" xmlns="">
+<refpurpose>Enable the table columns extension function</refpurpose>
+<refdescription>
+<para>The table columns extension function adjusts the widths of table
+columns in the HTML result to more accurately reflect the specifications
+in the CALS table.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.set.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.book.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.part.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.reference.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.preface.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.chapter.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.appendix.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.article.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.section.toc" select='0' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.index" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/pi.xsl b/help-converters/docbook/docbook/html/pi.xsl
new file mode 100644
index 0000000..b9220aa
--- /dev/null
+++ b/help-converters/docbook/docbook/html/pi.xsl
@@ -0,0 +1,191 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="processing-instruction()">
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <xsl:if test="$using.chunker">
+    <xsl:processing-instruction name="dbhtml">
+      <xsl:value-of select="."/>
+    </xsl:processing-instruction>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-attribute">
+  <xsl:param name="pis" select="processing-instruction('dbhtml')"/>
+  <xsl:param name="attribute">filename</xsl:param>
+  <xsl:param name="count">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($pis)">
+      <!-- not found -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pi">
+        <xsl:value-of select="$pis[$count]"/>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="contains($pi,concat($attribute, '='))">
+          <xsl:variable name="rest" select="substring-after($pi,concat($attribute,'='))"/>
+          <xsl:variable name="quote" select="substring($rest,1,1)"/>
+          <xsl:value-of select="substring-before(substring($rest,2),$quote)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="dbhtml-attribute">
+            <xsl:with-param name="pis" select="$pis"/>
+            <xsl:with-param name="attribute" select="$attribute"/>
+            <xsl:with-param name="count" select="$count + 1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="dbhtml-filename">
+  <xsl:param name="pis" select="./processing-instruction('dbhtml')"/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute">filename</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dbhtml-dir">
+  <xsl:param name="pis" select="./processing-instruction('dbhtml')"/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute">dir</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.cmdsynopsis.list">
+  <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($cmdsynopses)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+             <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.cmdsynopsis.list">
+          <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbcmdlist')">
+  <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/>
+
+  <xsl:if test="count($cmdsynopses)&lt;1">
+    <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <dl>
+    <xsl:call-template name="process.cmdsynopsis.list">
+      <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.funcsynopsis.list">
+  <xsl:param name="funcsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($funcsynopses)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+              <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+                <xsl:with-param name="target" select="$cmdsyn"/>
+              </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.funcsynopsis.list">
+          <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbfunclist')">
+  <xsl:variable name="funcsynopses" select="..//funcsynopsis"/>
+
+  <xsl:if test="count($funcsynopses)&lt;1">
+    <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <dl>
+    <xsl:call-template name="process.funcsynopsis.list">
+      <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/qandaset.xsl b/help-converters/docbook/docbook/html/qandaset.xsl
new file mode 100644
index 0000000..bdbfea1
--- /dev/null
+++ b/help-converters/docbook/docbook/html/qandaset.xsl
@@ -0,0 +1,202 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0";
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="qandaset">
+  <xsl:variable name="title" select="title"/>
+  <xsl:variable name="rest" select="*[name(.)!='title']"/>
+
+  <div class="{name(.)}">
+    <xsl:apply-templates select="$title"/>
+    <xsl:if test="$generate.qandaset.toc != '0'">
+      <xsl:call-template name="process.qanda.toc"/>
+    </xsl:if>
+    <xsl:apply-templates select="$rest"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="qandaset/title">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qanda.section.level"/>
+  </xsl:variable>
+  <xsl:element name="h{string(number($qalevel)+1)}">
+    <xsl:attribute name="class">
+      <xsl:value-of select="name(.)"/>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandadiv">
+  <xsl:variable name="title" select="title"/>
+  <xsl:variable name="rest" select="*[name(.)!='title']"/>
+
+  <div class="{name(.)}">
+    <xsl:apply-templates select="$title"/>
+    <xsl:if test="$generate.qandadiv.toc != '0'">
+      <xsl:call-template name="process.qanda.toc"/>
+    </xsl:if>
+    <xsl:apply-templates select="$rest"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="qandadiv/title">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qandadiv.section.level"/>
+  </xsl:variable>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:element name="h{string(number($qalevel)+1)}">
+    <xsl:attribute name="class">
+      <xsl:value-of select="name(.)"/>
+    </xsl:attribute>
+    <a name="{$id}">
+      <xsl:apply-templates select="parent::qandadiv" mode="label.content"/>
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates/>
+    </a>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandaentry">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="question">
+  <xsl:variable name="firstch" select="(*[name(.)!='label'])[1]"/>
+  <xsl:variable name="restch" select="(*[name(.)!='label'])[position()!=1]"/>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <p>
+      <a name="{$id}">
+        <b>
+          <xsl:apply-templates select="." mode="label.content"/>
+          <xsl:text> </xsl:text>
+        </b>
+        <xsl:apply-templates select="$firstch" mode="no.wrapper.mode"/>
+      </a>
+    </p>
+    <xsl:apply-templates select="$restch"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="answer">
+  <xsl:variable name="firstch" select="(*[name(.)!='label'])[1]"/>
+  <xsl:variable name="restch" select="(*[name(.)!='label'])[position()!=1]"/>
+
+  <div class="{name(.)}">
+    <p>
+      <b>
+        <xsl:apply-templates select="." mode="label.content"/>
+        <xsl:text> </xsl:text>
+      </b>
+      <xsl:apply-templates select="$firstch" mode="no.wrapper.mode"/>
+    </p>
+    <xsl:apply-templates select="$restch"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="label">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.qanda.toc">
+  <dl>
+    <xsl:apply-templates select="qandadiv" mode="qandatoc.mode"/>
+    <xsl:apply-templates select="qandaentry" mode="qandatoc.mode"/>
+  </dl>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="qandatoc.mode">
+  <dt><xsl:apply-templates select="title" mode="qandatoc.mode"/></dt>
+  <dd><xsl:call-template name="process.qanda.toc"/></dd>
+</xsl:template>
+
+<xsl:template match="qandadiv/title" mode="qandatoc.mode">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qandadiv.section.level"/>
+  </xsl:variable>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:apply-templates select="parent::qandadiv" mode="label.content"/>
+  <xsl:text> </xsl:text>
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select="parent::*"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="qandatoc.mode">
+  <xsl:apply-templates mode="qandatoc.mode"/>
+</xsl:template>
+
+<xsl:template match="question" mode="qandatoc.mode">
+  <xsl:variable name="firstch" select="(*[name(.)!='label'])[1]"/>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <dt>
+    <xsl:apply-templates select="." mode="label.content"/>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="object" select="parent::*"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:value-of select="$firstch"/>
+    </a>
+  </dt>
+</xsl:template>
+
+<xsl:template match="answer|revhistory" mode="qandatoc.mode">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="no.wrapper.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/refentry.xsl b/help-converters/docbook/docbook/html/refentry.xsl
new file mode 100644
index 0000000..0d8dc36
--- /dev/null
+++ b/help-converters/docbook/docbook/html/refentry.xsl
@@ -0,0 +1,212 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="reference">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <xsl:if test="@id">
+      <a name="{$id}"/>
+    </xsl:if>
+    <xsl:call-template name="reference.titlepage"/>
+    <xsl:if test="not(partintro) and $generate.reference.toc != '0'">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="reference" mode="division.number">
+  <xsl:number from="book" count="reference" format="I."/>
+</xsl:template>
+
+<xsl:template match="reference/docinfo"></xsl:template>
+<xsl:template match="reference/referenceinfo"></xsl:template>
+<xsl:template match="reference/title"></xsl:template>
+<xsl:template match="reference/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="refentry">
+  <xsl:variable name="refmeta" select=".//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select=".//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="title"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="title"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <h1 class="title">
+      <a>
+        <xsl:attribute name="name">
+          <xsl:call-template name="object.id"/>
+        </xsl:attribute>
+      </a>
+      <xsl:copy-of select="$title"/>
+    </h1>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refentry/docinfo|refentry/refentryinfo"></xsl:template>
+
+<xsl:template match="refentrytitle|refname" mode="title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refmeta">
+</xsl:template>
+
+<xsl:template match="manvolnum">
+  <xsl:if test="$refentry.xref.manvolnum != 0">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refmiscinfo">
+</xsl:template>
+
+<xsl:template match="refentrytitle">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="refnamediv">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="refname">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::refname">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refname[1]">
+  <xsl:if test="$refentry.generate.name != 0">
+    <h2><xsl:call-template name="gentext.element.name"/></h2>
+  </xsl:if>
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::refname">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refpurpose">
+  <xsl:text> </xsl:text>
+  <xsl:call-template name="dingbat">
+    <xsl:with-param name="dingbat">em-dash</xsl:with-param>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refdescriptor">
+  <!-- todo: finish this -->
+</xsl:template>
+
+<xsl:template match="refclass">
+  <p>
+    <b>
+      <xsl:if test="@role">
+        <xsl:value-of select="@role"/>
+        <xsl:text>: </xsl:text>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </b>
+  </p>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv">
+  <div class="{name(.)}">
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </a>
+    <h2>Synopsis</h2>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refsynopsisdivinfo"></xsl:template>
+
+<xsl:template match="refsynopsisdiv/title">
+</xsl:template>
+
+<xsl:template match="refsect1|refsect2|refsect3">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="refsect1/title">
+  <h2>
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="ancestor::refsect1"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </a>
+    <xsl:apply-templates/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="refsect2/title">
+  <h3>
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="ancestor::refsect2"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </a>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<xsl:template match="refsect3/title">
+  <h4>
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="ancestor::refsect3"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </a>
+    <xsl:apply-templates/>
+  </h4>
+</xsl:template>
+
+<xsl:template match="refsect1info"></xsl:template>
+<xsl:template match="refsect2info"></xsl:template>
+<xsl:template match="refsect3info"></xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/sections.xsl b/help-converters/docbook/docbook/html/sections.xsl
new file mode 100644
index 0000000..ea7eb22
--- /dev/null
+++ b/help-converters/docbook/docbook/html/sections.xsl
@@ -0,0 +1,236 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="section">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="section.titlepage"/>
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="section.titlepage.recto.mode">
+  <xsl:variable name="section" select="(ancestor::section
+                                        |ancestor::simplesect
+                                        |ancestor::sect1
+                                        |ancestor::sect2
+                                        |ancestor::sect3
+                                        |ancestor::sect4
+                                        |ancestor::sect5)[last()]"/>
+  <xsl:call-template name="section.heading">
+    <xsl:with-param name="section" select="$section"/>
+    <xsl:with-param name="level">
+      <xsl:call-template name="section.level">
+        <xsl:with-param name="node" select="$section"/>
+      </xsl:call-template>
+    </xsl:with-param>
+    <xsl:with-param name="title">
+      <xsl:apply-templates select="$section" mode="title.ref">
+        <xsl:with-param name="label-wrapper" select="'span'"/>
+        <xsl:with-param name="label-wrapper-class" select="'label'"/>
+        <xsl:with-param name="title-wrapper" select="'span'"/>
+        <xsl:with-param name="title-wrapper-class" select="'title'"/>
+        <xsl:with-param name="allow-anchors" select="'1'"/>
+      </xsl:apply-templates>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect1">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="sect1.titlepage"/>
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect1.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect2">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="sect2.titlepage"/>
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect2.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect3">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="sect3.titlepage"/>
+
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect3.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect4">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="sect4.titlepage"/>
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect4.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect5">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="sect5.titlepage"/>
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect5.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="simplesect">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="simplesect.titlepage"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="simplesect.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="section/title"></xsl:template>
+<xsl:template match="section/subtitle"></xsl:template>
+<xsl:template match="sectioninfo"></xsl:template>
+
+<xsl:template match="sect1/title"></xsl:template>
+<xsl:template match="sect1/subtitle"></xsl:template>
+<xsl:template match="sect1info"></xsl:template>
+
+<xsl:template match="sect2/title"></xsl:template>
+<xsl:template match="sect2/subtitle"></xsl:template>
+<xsl:template match="sect2info"></xsl:template>
+
+<xsl:template match="sect3/title"></xsl:template>
+<xsl:template match="sect3/subtitle"></xsl:template>
+<xsl:template match="sect3info"></xsl:template>
+
+<xsl:template match="sect4/title"></xsl:template>
+<xsl:template match="sect4/subtitle"></xsl:template>
+<xsl:template match="sect4info"></xsl:template>
+
+<xsl:template match="sect5/title"></xsl:template>
+<xsl:template match="sect5/subtitle"></xsl:template>
+<xsl:template match="sect5info"></xsl:template>
+
+<xsl:template match="simplesect/title"></xsl:template>
+<xsl:template match="simplesect/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="section.heading">
+  <xsl:param name="section" select="."/>
+  <xsl:param name="level" select="'1'"/>
+  <xsl:param name="title"/>
+  <xsl:element name="h{$level}">
+    <xsl:attribute name="class">title</xsl:attribute>
+    <xsl:if test="$css.decoration != '0'">
+      <xsl:if test="$level&lt;3">
+        <xsl:attribute name="style">clear: all</xsl:attribute>
+      </xsl:if>
+    </xsl:if>
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$section"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </a>
+    <xsl:copy-of select="$title"/>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bridgehead">
+  <!-- need to calculate depth! -->
+  <h3><xsl:apply-templates/></h3>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/synop.xsl b/help-converters/docbook/docbook/html/synop.xsl
new file mode 100644
index 0000000..9c0f30d
--- /dev/null
+++ b/help-converters/docbook/docbook/html/synop.xsl
@@ -0,0 +1,939 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY RE "&#10;">
+<!ENTITY nbsp "&#160;">
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- synopsis is in verbatim -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="cmdsynopsis">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <div class="{name(.)}" id="{$id}">
+    <a name="{$id}"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command">
+  <br/>
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command[1]" priority="2">
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="group|arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:variable name="sepchar">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*/@sepchar">
+        <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:if test="position()>1"><xsl:value-of select="$sepchar"/></xsl:if>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.open.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.open.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates/>
+  <xsl:choose>
+    <xsl:when test="$rep='repeat'">
+      <xsl:value-of select="$arg.rep.repeat.str"/>
+    </xsl:when>
+    <xsl:when test="$rep='norepeat'">
+      <xsl:value-of select="$arg.rep.norepeat.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.rep.def.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.close.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.close.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:if test="position()>1"><xsl:value-of select="$arg.or.sep"/></xsl:if>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="sbr">
+  <br/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopfragmentref">
+  <xsl:variable name="target" select="id(@linkend)"/>
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+  </xsl:variable>
+  <i>
+    <a href="{ linkend}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+  </i>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="." mode="synopfragment.number"/>
+  </xsl:variable>
+  <p>
+    <a name="#{ id}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>   
+
+<xsl:template match="funcsynopsis">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsisinfo">
+  <pre class="{name(.)}"><xsl:apply-templates/></pre>
+</xsl:template>
+
+<xsl:template match="funcprototype">
+  <p>
+    <code>
+      <xsl:apply-templates/>
+      <xsl:if test="$funcsynopsis.style='kr'">
+        <xsl:apply-templates select="./paramdef" mode="kr-funcsynopsis-mode"/>
+      </xsl:if>
+    </code>
+  </p>
+</xsl:template>
+
+<xsl:template match="funcdef">
+  <code class="{name(.)}">
+    <xsl:apply-templates/>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <b class="fsfunc"><xsl:apply-templates/></b>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.style='ansi'">
+      <xsl:text>(void);</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>();</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varargs">
+  <xsl:text>(...);</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef">
+  <xsl:variable name="paramnum">
+    <xsl:number count="paramdef" format="1"/>
+  </xsl:variable>
+  <xsl:if test="$paramnum=1">(</xsl:if>
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.style='ansi'">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="./parameter"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="following-sibling::paramdef">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>);</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="following-sibling::parameter">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
+  <br/>
+  <xsl:apply-templates/>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="funcparams">
+  <xsl:text>(</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:variable name="default-classsynopsis-language">java</xsl:variable>
+
+<xsl:template match="classsynopsis">
+  <xsl:param name="language">
+    <xsl:choose>
+      <xsl:when test="@language">
+	<xsl:value-of select="@language"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="$default-classsynopsis-language"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$language='java'">
+      <xsl:apply-templates select="." mode="java"/>
+    </xsl:when>
+    <xsl:when test="$language='perl'">
+      <xsl:apply-templates select="." mode="perl"/>
+    </xsl:when>
+    <xsl:when test="$language='idl'">
+      <xsl:apply-templates select="." mode="idl"/>
+    </xsl:when>
+    <xsl:when test="$language='cpp'">
+      <xsl:apply-templates select="." mode="cpp"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Unrecognized language on classsynopsis: </xsl:text>
+	<xsl:value-of select="$language"/>
+      </xsl:message>
+      <xsl:apply-templates select=".">
+	<xsl:with-param name="language"
+	  select="$default-classsynopsis-language"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ===== Java ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="java">
+  <pre class="{name(.)}">
+    <xsl:apply-templates select="ooclass[1]" mode="java"/>
+    <xsl:if test="ooclass[position() &gt; 1]">
+      <xsl:text> extends</xsl:text>
+      <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="java"/>
+      <xsl:if test="oointerface|ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text>implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="java"/>
+      <xsl:if test="ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text>throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="java"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{&RE;&RE;</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="java"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="java">
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="java">
+  <xsl:choose>
+    <xsl:when test="position() &gt; 1">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text> </xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="java">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="java">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="java">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="java">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="java">
+  <div class="{name(.)}">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<xsl:template match="type" mode="java">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="java">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="java">
+  <span class="{name(.)}">
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="java">
+  <span class="{name(.)}">
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="java">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="java">
+  <xsl:param name="indent">0</xsl:param>
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>,&RE;</xsl:text>
+    <xsl:if test="$indent &gt; 0">
+      <xsl:call-template name="copy-string">
+	<xsl:with-param name="string">&nbsp;</xsl:with-param>
+	<xsl:with-param name="count" select="$indent + 1"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="java">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="java"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="decl">
+    <xsl:text>  </xsl:text>
+    <xsl:apply-templates select="$modifiers" mode="java"/>
+
+    <!-- type -->
+    <xsl:if test="name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="java"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="java"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <xsl:copy-of select="$decl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="java">
+      <xsl:with-param name="indent" select="string-length($decl)"/>
+    </xsl:apply-templates>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="java"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<!-- ===== C++ ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="cpp">
+  <pre class="{name(.)}">
+    <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
+    <xsl:if test="ooclass[position() &gt; 1]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="cpp"/>
+      <xsl:if test="oointerface|ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="cpp"/>
+      <xsl:if test="ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{&RE;&RE;</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="cpp"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="cpp">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="cpp">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="cpp">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="cpp">
+  <div class="{name(.)}">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<xsl:template match="type" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="cpp">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="cpp"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="type">
+  </xsl:variable>
+  <div class="{name(.)}">
+    <xsl:text>  </xsl:text>
+    <xsl:apply-templates select="$modifiers" mode="cpp"/>
+
+    <!-- type -->
+    <xsl:if test="name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="cpp"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="cpp"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<!-- ===== IDL ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="idl">
+  <pre class="{name(.)}">
+    <xsl:text>interface </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="idl"/>
+    <xsl:if test="ooclass[position() &gt; 1]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="idl"/>
+      <xsl:if test="oointerface|ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="idl"/>
+      <xsl:if test="ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="idl"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{&RE;&RE;</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="idl"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="idl">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="idl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="idl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="idl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="idl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="idl">
+  <div class="{name(.)}">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<xsl:template match="type" mode="idl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="idl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="idl">
+  <span class="{name(.)}">
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="idl">
+  <span class="{name(.)}">
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="idl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="idl">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="idl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="idl"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="type">
+  </xsl:variable>
+  <div class="{name(.)}">
+    <xsl:text>  </xsl:text>
+    <xsl:apply-templates select="$modifiers" mode="idl"/>
+
+    <!-- type -->
+    <xsl:if test="name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="idl"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="idl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="idl"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;raises(</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="idl"/>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<!-- ===== Perl ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="perl">
+  <pre class="{name(.)}">
+    <xsl:text>package </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="perl"/>
+    <xsl:text>;&RE;</xsl:text>
+
+    <xsl:if test="ooclass[position() &gt; 1]">
+      <xsl:text>@ISA = (</xsl:text>
+      <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="perl"/>
+      <xsl:text>);&RE;</xsl:text>
+    </xsl:if>
+
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="perl"/>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="perl">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="perl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="perl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="perl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="perl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="perl">
+  <div class="{name(.)}">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<xsl:template match="type" mode="perl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="perl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="perl">
+  <span class="{name(.)}">
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="perl">
+  <span class="{name(.)}">
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="perl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="perl">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="perl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="perl"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="type">
+  </xsl:variable>
+  <div class="{name(.)}">
+    <xsl:text>sub </xsl:text>
+
+    <xsl:apply-templates select="methodname" mode="perl"/>
+    <xsl:text> { ... };</xsl:text>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/table.xsl b/help-converters/docbook/docbook/html/table.xsl
new file mode 100644
index 0000000..7245295
--- /dev/null
+++ b/help-converters/docbook/docbook/html/table.xsl
@@ -0,0 +1,625 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0";
+                xmlns:tbl="http://nwalsh.com/com.nwalsh.saxon6.Table";
+                exclude-result-prefixes="doc tbl"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="tgroup">
+  <table>
+    <xsl:choose>
+      <!-- If there's a <?dbhtml table-summary="foo"?> PI, use it for
+           the HTML table summary attribute -->
+      <xsl:when test="processing-instruction('dbhtml')">
+        <xsl:variable name="summary">
+          <xsl:call-template name="dbhtml-attribute">
+            <xsl:with-param name="pis"
+                            select="processing-instruction('dbhtml')[1]"/>
+            <xsl:with-param name="attribute" select="'table-summary'"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:if test="$summary != ''">
+          <xsl:attribute name="summary">
+            <xsl:value-of select="$summary"/>
+          </xsl:attribute>
+        </xsl:if>
+      </xsl:when>
+      <!-- Otherwise, if there's a title, use that -->
+      <xsl:when test="../title">
+        <xsl:attribute name="summary">
+          <xsl:value-of select="string(../title)"/>
+        </xsl:attribute>
+      </xsl:when>
+      <!-- Otherwise, forget the whole idea -->
+      <xsl:otherwise><!-- nevermind --></xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="../@pgwide=1">
+      <xsl:attribute name="width">100%</xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="../@frame='none'">
+        <xsl:attribute name="border">0</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="border">1</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+    <xsl:variable name="colgroup">
+      <colgroup>
+        <xsl:call-template name="generate.colgroup">
+          <xsl:with-param name="cols" select="@cols"/>
+        </xsl:call-template>
+      </colgroup>
+    </xsl:variable>
+
+    <xsl:variable name="explicit.table.width">
+      <xsl:call-template name="dbhtml-attribute">
+        <xsl:with-param name="pis"
+                        select="../processing-instruction('dbhtml')[1]"/>
+        <xsl:with-param name="attribute" select="'table-width'"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="table.width">
+      <xsl:choose>
+        <xsl:when test="$explicit.table.width != ''">
+          <xsl:value-of select="$explicit.table.width"/>
+        </xsl:when>
+        <xsl:when test="$default.table.width = ''">
+          <xsl:text>100%</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$default.table.width"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test="$default.table.width != ''
+                  or $explicit.table.width != ''">
+      <xsl:attribute name="width">
+        <xsl:choose>
+          <xsl:when test="contains($table.width, '%')">
+            <xsl:value-of select="$table.width"/>
+          </xsl:when>
+          <xsl:when test="contains($vendor, 'SAXON 6')
+                          and $saxon.extensions != 0
+                          and $saxon.tablecolumns != 0">
+            <xsl:value-of select="tbl:convertLength($table.width)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$table.width"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="contains($vendor, 'SAXON 6')
+                      and $saxon.extensions != 0
+                      and $saxon.tablecolumns != 0">
+        <xsl:copy-of select="tbl:adjustColumnWidths($colgroup)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$colgroup"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:apply-templates/>
+
+    <xsl:if test=".//footnote">
+      <tr>
+        <td colspan="{ cols}">
+          <xsl:apply-templates select=".//footnote" 
+                               mode="table.footnote.mode"/>
+        </td>
+      </tr>
+    </xsl:if>
+  </table>
+</xsl:template>
+
+<xsl:template match="tgroup/processing-instruction('dbhtml')">
+  <xsl:variable name="summary">
+    <xsl:call-template name="dbhtml-attribute">
+      <xsl:with-param name="pis" select="."/>
+      <xsl:with-param name="attribute" select="'table-summary'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Suppress the table-summary PI -->
+  <xsl:if test="$summary = ''">
+    <xsl:processing-instruction name="dbhtml">
+      <xsl:value-of select="."/>
+    </xsl:processing-instruction>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="colspec"></xsl:template>
+
+<xsl:template match="spanspec"></xsl:template>
+
+<xsl:template match="thead|tfoot">
+  <xsl:element name="{name(.)}">
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="tbody">
+  <tbody>
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </tbody>
+</xsl:template>
+
+<xsl:template match="row">
+  <tr>
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </tr>
+</xsl:template>
+
+<xsl:template match="thead/row/entry">
+  <xsl:call-template name="process.cell">
+    <xsl:with-param name="cellgi">th</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="tbody/row/entry">
+  <xsl:call-template name="process.cell">
+    <xsl:with-param name="cellgi">td</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="tfoot/row/entry">
+  <xsl:call-template name="process.cell">
+    <xsl:with-param name="cellgi">th</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="process.cell">
+  <xsl:param name="cellgi">td</xsl:param>
+  <xsl:variable name="empty.cell" select="count(node()) = 0"/>
+
+  <xsl:variable name="entry.colnum">
+    <xsl:call-template name="entry.colnum"/>
+  </xsl:variable>
+
+  <xsl:if test="$entry.colnum != ''">
+    <xsl:variable name="prev.entry" select="preceding-sibling::*[1]"/>
+    <xsl:variable name="prev.ending.colnum">
+      <xsl:choose>
+        <xsl:when test="$prev.entry">
+          <xsl:call-template name="entry.ending.colnum">
+            <xsl:with-param name="entry" select="$prev.entry"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:call-template name="add-empty-entries">
+      <xsl:with-param name="number">
+        <xsl:choose>
+          <xsl:when test="$prev.ending.colnum = ''">0</xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$entry.colnum - $prev.ending.colnum - 1"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
+
+  <xsl:element name="{$cellgi}">
+    <xsl:if test="@morerows">
+      <xsl:attribute name="rowspan">
+        <xsl:value-of select="@morerows+1"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@namest">
+      <xsl:attribute name="colspan">
+        <xsl:call-template name="calculate.colspan"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="not(preceding-sibling::*)
+                  and ancestor::row/@id">
+      <a name="{ancestor::row/@id}"/>
+    </xsl:if>
+
+    <xsl:if test="@id">
+      <a name="{ id}"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$empty.cell">
+        <xsl:text>&#160;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="add-empty-entries">
+  <xsl:param name="number" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="$number &lt;= 0"></xsl:when>
+    <xsl:otherwise>
+      <td>&#160;</td>
+      <xsl:call-template name="add-empty-entries">
+        <xsl:with-param name="number" select="$number - 1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<doc:template name="add-empty-entries" xmlns="">
+<refpurpose>Insert empty TDs into a table row</refpurpose>
+<refdescription>
+<para>This template inserts empty TDs into a table row.</para>
+</refdescription>
+<refparameter>
+<variablelist>
+<varlistentry><term>number</term>
+<listitem>
+<para>The number of empty TDs to add.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+<refreturn>
+<para>Nothing</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="entry.colnum">
+  <xsl:param name="entry" select="."/>
+
+  <xsl:choose>
+    <xsl:when test="$entry/@colname">
+      <xsl:variable name="colname" select="$entry/@colname"/>
+      <xsl:variable name="colspec"
+                    select="$entry/ancestor::tgroup/colspec[ colname=$colname]"/>
+      <xsl:call-template name="colspec.colnum">
+        <xsl:with-param name="colspec" select="$colspec"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$entry/@namest">
+      <xsl:variable name="namest" select="$entry/@namest"/>
+      <xsl:variable name="colspec"
+                    select="$entry/ancestor::tgroup/colspec[ colname=$namest]"/>
+      <xsl:call-template name="colspec.colnum">
+        <xsl:with-param name="colspec" select="$colspec"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="count($entry/preceding-sibling::*) = 0">1</xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pcol">
+        <xsl:call-template name="entry.ending.colnum">
+          <xsl:with-param name="entry"
+                          select="$entry/preceding-sibling::*[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$pcol + 1"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<doc:template name="entry.colnum" xmlns="">
+<refpurpose>Determine the column number in which a given entry occurs</refpurpose>
+<refdescription>
+<para>If an <sgmltag>entry</sgmltag> has a
+<sgmltag class="attribute">colname</sgmltag> or
+<sgmltag class="attribute">namest</sgmltag> attribute, this template
+will determine the number of the column in which the entry should occur.
+For other <sgmltag>entry</sgmltag>s, nothing is returned.</para>
+</refdescription>
+<refparameter>
+<variablelist>
+<varlistentry><term>entry</term>
+<listitem>
+<para>The <sgmltag>entry</sgmltag>-element which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>This template returns the column number if it can be determined,
+or nothing (the empty string)</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="entry.ending.colnum">
+  <xsl:param name="entry" select="."/>
+
+  <xsl:choose>
+    <xsl:when test="$entry/@colname">
+      <xsl:variable name="colname" select="$entry/@colname"/>
+      <xsl:variable name="colspec"
+                    select="$entry/ancestor::tgroup/colspec[ colname=$colname]"/>
+      <xsl:call-template name="colspec.colnum">
+        <xsl:with-param name="colspec" select="$colspec"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$entry/@nameend">
+      <xsl:variable name="nameend" select="$entry/@nameend"/>
+      <xsl:variable name="colspec"
+                    select="$entry/ancestor::tgroup/colspec[ colname=$nameend]"/>
+      <xsl:call-template name="colspec.colnum">
+        <xsl:with-param name="colspec" select="$colspec"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="count($entry/preceding-sibling::*) = 0">1</xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pcol">
+        <xsl:call-template name="entry.ending.colnum">
+          <xsl:with-param name="entry"
+                          select="$entry/preceding-sibling::*[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$pcol + 1"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+<xsl:template name="colspec.colnum">
+  <xsl:param name="colspec" select="."/>
+  <xsl:choose>
+    <xsl:when test="$colspec/@colnum">
+      <xsl:value-of select="$colspec/@colnum"/>
+    </xsl:when>
+    <xsl:when test="$colspec/preceding-sibling::colspec">
+      <xsl:variable name="prec.colspec.colnum">
+        <xsl:call-template name="colspec.colnum">
+          <xsl:with-param name="colspec"
+                          select="$colspec/preceding-sibling::colspec[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$prec.colspec.colnum + 1"/>
+    </xsl:when>
+    <xsl:otherwise>1</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.colgroup">
+  <xsl:param name="cols" select="1"/>
+  <xsl:param name="count" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$count>$cols"></xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.col">
+        <xsl:with-param name="countcol" select="$count"/>
+      </xsl:call-template>
+      <xsl:call-template name="generate.colgroup">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.col">
+  <xsl:param name="countcol">1</xsl:param>
+  <xsl:param name="colspecs" select="./colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:param name="colnum">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($colspecs)">
+      <col/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+      <xsl:variable name="colspec.colnum">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colnum">
+            <xsl:value-of select="$colspec/@colnum"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$colnum"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$colspec.colnum=$countcol">
+          <col>
+            <xsl:if test="$colspec/@colwidth
+                          and $saxon.extensions != 0
+                          and $saxon.tablecolumns != 0">
+              <xsl:attribute name="width">
+                <xsl:value-of select="$colspec/@colwidth"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:if test="$colspec/@align">
+              <xsl:attribute name="align">
+                <xsl:value-of select="$colspec/@align"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:if test="$colspec/@char">
+              <xsl:attribute name="char">
+                <xsl:value-of select="$colspec/@char"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:if test="$colspec/@charoff">
+              <xsl:attribute name="charoff">
+                <xsl:value-of select="$colspec/@charoff"/>
+              </xsl:attribute>
+            </xsl:if>
+          </col>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="generate.col">
+            <xsl:with-param name="countcol" select="$countcol"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="colnum">
+              <xsl:choose>
+                <xsl:when test="$colspec/@colnum">
+                  <xsl:value-of select="$colspec/@colnum + 1"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$colnum + 1"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+           </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="colspec.colwidth">
+  <!-- when this macro is called, the current context must be an entry -->
+  <xsl:param name="colname"></xsl:param>
+  <!-- .. = row, ../.. = thead|tbody, ../../.. = tgroup -->
+  <xsl:param name="colspecs" select="../../../../tgroup/colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$count>count($colspecs)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="$colspec/@colname=$colname">
+          <xsl:value-of select="$colspec/@colwidth"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="colspec.colwidth">
+            <xsl:with-param name="colname" select="$colname"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="calculate.colspan">
+  <xsl:param name="entry" select="."/>
+  <xsl:variable name="namest" select="$entry/@namest"/>
+  <xsl:variable name="nameend" select="$entry/@nameend"/>
+
+  <xsl:variable name="scol">
+    <xsl:call-template name="colspec.colnum">
+      <xsl:with-param name="colspec"
+                      select="$entry/ancestor::tgroup/colspec[ colname=$namest]"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="ecol">
+    <xsl:call-template name="colspec.colnum">
+      <xsl:with-param name="colspec"
+                      select="$entry/ancestor::tgroup/colspec[ colname=$nameend]"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:value-of select="$ecol - $scol + 1"/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/titlepage.templates.xsl b/help-converters/docbook/docbook/html/titlepage.templates.xsl
new file mode 100644
index 0000000..e6f6ca8
--- /dev/null
+++ b/help-converters/docbook/docbook/html/titlepage.templates.xsl
@@ -0,0 +1,1986 @@
+<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
+
+<!-- This stylesheet was created by template/titlepage.xsl; do not edit it by hand. -->
+
+<xsl:template name="article.titlepage.recto">
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="(articleinfo/title|artheader/title|title)[1]"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="(articleinfo/subtitle|artheader/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor|artheader/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup|artheader/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author|artheader/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo|artheader/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright|artheader/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice|artheader/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate|artheader/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision|artheader/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory|artheader/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract|artheader/abstract"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="article.titlepage.before.recto"/>
+    <xsl:call-template name="article.titlepage.recto"/>
+    <xsl:call-template name="article.titlepage.before.verso"/>
+    <xsl:call-template name="article.titlepage.verso"/>
+    <xsl:call-template name="article.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="article.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="article.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="set.titlepage.recto">
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="(setinfo/title|title)[1]"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="(setinfo/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="set.titlepage.before.recto"/>
+    <xsl:call-template name="set.titlepage.recto"/>
+    <xsl:call-template name="set.titlepage.before.verso"/>
+    <xsl:call-template name="set.titlepage.verso"/>
+    <xsl:call-template name="set.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="set.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="set.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="book.titlepage.recto">
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="(bookinfo/title|title)[1]"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="(bookinfo/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="book.titlepage.before.recto"/>
+    <xsl:call-template name="book.titlepage.recto"/>
+    <xsl:call-template name="book.titlepage.before.verso"/>
+    <xsl:call-template name="book.titlepage.verso"/>
+    <xsl:call-template name="book.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="book.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="book.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="part.titlepage.recto">
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="(partinfo/title|docinfo/title|title)[1]"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="(partinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor|docinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup|docinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author|docinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo|docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright|docinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice|docinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate|docinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision|docinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory|docinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="part.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="part.titlepage.before.recto"/>
+    <xsl:call-template name="part.titlepage.recto"/>
+    <xsl:call-template name="part.titlepage.before.verso"/>
+    <xsl:call-template name="part.titlepage.verso"/>
+    <xsl:call-template name="part.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="part.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="part.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.recto">
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="(partintroinfo/title|docinfo/title|title)[1]"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="(partintroinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor|docinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup|docinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author|docinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo|docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright|docinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice|docinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate|docinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision|docinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory|docinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage">
+  <div>
+    <xsl:call-template name="partintro.titlepage.before.recto"/>
+    <xsl:call-template name="partintro.titlepage.recto"/>
+    <xsl:call-template name="partintro.titlepage.before.verso"/>
+    <xsl:call-template name="partintro.titlepage.verso"/>
+    <xsl:call-template name="partintro.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.recto">
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="(referenceinfo/title|docinfo/title|title)[1]"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="(referenceinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor|docinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup|docinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author|docinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo|docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright|docinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice|docinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate|docinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision|docinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory|docinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="reference.titlepage.before.recto"/>
+    <xsl:call-template name="reference.titlepage.recto"/>
+    <xsl:call-template name="reference.titlepage.before.verso"/>
+    <xsl:call-template name="reference.titlepage.verso"/>
+    <xsl:call-template name="reference.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.recto">
+  <div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
+</xsl:call-template></div>
+  <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="(dedicationinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="dedication.titlepage.before.recto"/>
+    <xsl:call-template name="dedication.titlepage.recto"/>
+    <xsl:call-template name="dedication.titlepage.before.verso"/>
+    <xsl:call-template name="dedication.titlepage.verso"/>
+    <xsl:call-template name="dedication.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="dedication.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.recto">
+  <div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::preface[1]"/>
+</xsl:call-template></div>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="(prefaceinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor|docinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup|docinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author|docinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo|docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright|docinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice|docinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate|docinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision|docinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory|docinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="preface.titlepage.before.recto"/>
+    <xsl:call-template name="preface.titlepage.recto"/>
+    <xsl:call-template name="preface.titlepage.before.verso"/>
+    <xsl:call-template name="preface.titlepage.verso"/>
+    <xsl:call-template name="preface.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.recto">
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="(chapterinfo/title|docinfo/title|title)[1]"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="(chapterinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor|docinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup|docinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author|docinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo|docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright|docinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice|docinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate|docinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision|docinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory|docinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="chapter.titlepage.before.recto"/>
+    <xsl:call-template name="chapter.titlepage.recto"/>
+    <xsl:call-template name="chapter.titlepage.before.verso"/>
+    <xsl:call-template name="chapter.titlepage.verso"/>
+    <xsl:call-template name="chapter.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.recto">
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="(appendixinfo/title|docinfo/title|title)[1]"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="(appendixinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor|docinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup|docinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author|docinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo|docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright|docinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice|docinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate|docinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision|docinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory|docinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="appendix.titlepage.before.recto"/>
+    <xsl:call-template name="appendix.titlepage.recto"/>
+    <xsl:call-template name="appendix.titlepage.before.verso"/>
+    <xsl:call-template name="appendix.titlepage.verso"/>
+    <xsl:call-template name="appendix.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="section.titlepage.recto">
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="(sectioninfo/title|title)[1]"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="(sectioninfo/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="section.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="section.titlepage.before.recto"/>
+    <xsl:call-template name="section.titlepage.recto"/>
+    <xsl:call-template name="section.titlepage.before.verso"/>
+    <xsl:call-template name="section.titlepage.verso"/>
+    <xsl:call-template name="section.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="section.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="section.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.recto">
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="(sect1info/title|title)[1]"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="(sect1info/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="sect1.titlepage.before.recto"/>
+    <xsl:call-template name="sect1.titlepage.recto"/>
+    <xsl:call-template name="sect1.titlepage.before.verso"/>
+    <xsl:call-template name="sect1.titlepage.verso"/>
+    <xsl:call-template name="sect1.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.recto">
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="(sect2info/title|title)[1]"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="(sect2info/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="sect2.titlepage.before.recto"/>
+    <xsl:call-template name="sect2.titlepage.recto"/>
+    <xsl:call-template name="sect2.titlepage.before.verso"/>
+    <xsl:call-template name="sect2.titlepage.verso"/>
+    <xsl:call-template name="sect2.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.recto">
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="(sect3info/title|title)[1]"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="(sect3info/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="sect3.titlepage.before.recto"/>
+    <xsl:call-template name="sect3.titlepage.recto"/>
+    <xsl:call-template name="sect3.titlepage.before.verso"/>
+    <xsl:call-template name="sect3.titlepage.verso"/>
+    <xsl:call-template name="sect3.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.recto">
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="(sect4info/title|title)[1]"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="(sect4info/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="sect4.titlepage.before.recto"/>
+    <xsl:call-template name="sect4.titlepage.recto"/>
+    <xsl:call-template name="sect4.titlepage.before.verso"/>
+    <xsl:call-template name="sect4.titlepage.verso"/>
+    <xsl:call-template name="sect4.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.recto">
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="(sect5info/title|title)[1]"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="(sect5info/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="sect5.titlepage.before.recto"/>
+    <xsl:call-template name="sect5.titlepage.recto"/>
+    <xsl:call-template name="sect5.titlepage.before.verso"/>
+    <xsl:call-template name="sect5.titlepage.verso"/>
+    <xsl:call-template name="sect5.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.recto">
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="(simplesectinfo/title|docinfo/title|title)[1]"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="(simplesectinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor|docinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup|docinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author|docinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo|docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright|docinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice|docinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate|docinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision|docinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory|docinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="simplesect.titlepage.before.recto"/>
+    <xsl:call-template name="simplesect.titlepage.recto"/>
+    <xsl:call-template name="simplesect.titlepage.before.verso"/>
+    <xsl:call-template name="simplesect.titlepage.verso"/>
+    <xsl:call-template name="simplesect.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/help-converters/docbook/docbook/html/titlepage.xsl b/help-converters/docbook/docbook/html/titlepage.xsl
new file mode 100644
index 0000000..f2da969
--- /dev/null
+++ b/help-converters/docbook/docbook/html/titlepage.xsl
@@ -0,0 +1,598 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:attribute-set name="book.titlepage.recto.style"/>
+<xsl:attribute-set name="book.titlepage.verso.style"/>
+
+<xsl:attribute-set name="article.titlepage.recto.style"/>
+<xsl:attribute-set name="article.titlepage.verso.style"/>
+
+<xsl:attribute-set name="set.titlepage.recto.style"/>
+<xsl:attribute-set name="set.titlepage.verso.style"/>
+
+<xsl:attribute-set name="part.titlepage.recto.style"/>
+<xsl:attribute-set name="part.titlepage.verso.style"/>
+
+<xsl:attribute-set name="partintro.titlepage.recto.style"/>
+<xsl:attribute-set name="partintro.titlepage.verso.style"/>
+
+<xsl:attribute-set name="reference.titlepage.recto.style"/>
+<xsl:attribute-set name="reference.titlepage.verso.style"/>
+
+<xsl:attribute-set name="dedication.titlepage.recto.style"/>
+<xsl:attribute-set name="dedication.titlepage.verso.style"/>
+
+<xsl:attribute-set name="preface.titlepage.recto.style"/>
+<xsl:attribute-set name="preface.titlepage.verso.style"/>
+
+<xsl:attribute-set name="chapter.titlepage.recto.style"/>
+<xsl:attribute-set name="chapter.titlepage.verso.style"/>
+
+<xsl:attribute-set name="appendix.titlepage.recto.style"/>
+<xsl:attribute-set name="appendix.titlepage.verso.style"/>
+
+<xsl:attribute-set name="section.titlepage.recto.style"/>
+<xsl:attribute-set name="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect1.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect1.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect2.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect2.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect3.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect3.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect4.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect4.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect5.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect5.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="simplesect.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="simplesect.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
+<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="titlepage.mode">
+  <!-- if an element isn't found in this mode, try the default mode -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="abbrev" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="titlepage.mode">
+  <div class="{name(.)}">
+    <xsl:call-template name="formal.object.heading">
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="." mode="title.ref"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="abstract/title" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="address" mode="titlepage.mode">
+<!-- this won't do quite what's desired... -->
+  <pre class="{name(.)}">
+  <xsl:apply-templates mode="titlepage.mode"/>
+  </pre>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="titlepage.mode">
+  <div class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="titlepage.mode">
+  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+  <xsl:apply-templates mode="titlepage.mode" select="./affiliation"/>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="titlepage.mode">
+  <div class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>  
+
+<xsl:template match="authorgroup" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="collab" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="copyright" mode="titlepage.mode">
+  <xsl:variable name="years" select="year"/>
+  <xsl:variable name="holders" select="holder"/>
+
+  <p class="{name(.)}">
+    <xsl:call-template name="gentext.element.name"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">copyright</xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$years" mode="titlepage.mode"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="gentext.by"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$holders" mode="titlepage.mode"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="year" mode="titlepage.mode">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="titlepage.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="titlepage.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="titlepage.mode">
+  <h3 class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </h3>
+</xsl:template>
+
+<xsl:template match="corpname" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="titlepage.mode">
+  <p class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="gentext.element.name"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="editor" mode="titlepage.mode">
+  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+</xsl:template>
+
+<xsl:template match="editor[position()=1]" mode="titlepage.mode">
+  <h4 class="editedby"><xsl:call-template name="gentext.edited.by"/></h4>
+  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+</xsl:template>
+
+<xsl:template match="firstname" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="graphic" mode="titlepage.mode">
+  <!-- use the normal graphic handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="honorific" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="itermset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="keywordset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="legalnotice " mode="titlepage.mode">
+  <div class="{local-name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="legalnotice/title" mode="titlepage.mode">
+  <p class="legalnotice-title"><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="lineage" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modespec" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.mode">
+  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+  <xsl:apply-templates mode="titlepage.mode"
+   select="./affiliation"/>
+</xsl:template>
+
+<xsl:template match="othername" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="titlepage.mode">
+  <div class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="productname" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="titlepage.mode">
+  <p class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="publishername" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="titlepage.mode">
+  <xsl:variable name="numcols">
+    <xsl:choose>
+      <xsl:when test="//authorinitials">3</xsl:when>
+      <xsl:otherwise>2</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <table border="1" width="100%" summary="Revision history">
+      <tr>
+        <th align="left" valign="top" colspan="{$numcols}">
+          <b><xsl:call-template name="gentext.element.name"/></b>
+        </th>
+      </tr>
+      <xsl:apply-templates mode="titlepage.mode">
+        <xsl:with-param name="numcols" select="$numcols"/>
+      </xsl:apply-templates>
+    </table>
+  </div>
+</xsl:template>
+
+<xsl:template match="revhistory/revision" mode="titlepage.mode">
+  <xsl:param name="numcols" select="'3'"/>
+  <xsl:variable name="revnumber" select=".//revnumber"/>
+  <xsl:variable name="revdate"   select=".//date"/>
+  <xsl:variable name="revauthor" select=".//authorinitials"/>
+  <xsl:variable name="revremark" select=".//revremark|.//revdescription"/>
+  <tr>
+    <td align="left">
+      <xsl:if test="$revnumber">
+        <xsl:call-template name="gentext.element.name"/>
+        <xsl:text> </xsl:text>
+        <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
+      </xsl:if>
+    </td>
+    <td align="left">
+      <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
+    </td>
+    <xsl:choose>
+      <xsl:when test="$revauthor">
+        <td align="left">
+          <xsl:apply-templates select="$revauthor[1]" mode="titlepage.mode"/>
+        </td>
+      </xsl:when>
+      <xsl:when test="$numcols &gt; 2">
+        <td>&#160;</td>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </tr>
+  <xsl:if test="$revremark">
+    <tr>
+      <td align="left" colspan="{$numcols}">
+        <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
+      </td>
+    </tr>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/date" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revremark" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subjectset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="subtitle" mode="titlepage.mode">
+  <h2 class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="surname" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="titlepage.mode">
+  <xsl:variable name="id">
+    <xsl:choose>
+      <!-- if title is in an *info wrapper, get the grandparent -->
+      <xsl:when test="contains(local-name(..), 'info')">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="../.."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <h1 class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag and @revisionflag">
+	<span class="{ revisionflag}">
+	  <xsl:apply-templates mode="titlepage.mode"/>
+	</span>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:apply-templates mode="titlepage.mode"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </h1>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+  
+<xsl:template match="volumenum" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/toc.xsl b/help-converters/docbook/docbook/html/toc.xsl
new file mode 100644
index 0000000..55d4716
--- /dev/null
+++ b/help-converters/docbook/docbook/html/toc.xsl
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="toc">
+</xsl:template>
+
+<xsl:template match="tocpart|tocchap|tocfront|tocback|tocentry">
+</xsl:template>
+
+<xsl:template match="toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="lot|lotentry">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/verbatim.xsl b/help-converters/docbook/docbook/html/verbatim.xsl
new file mode 100644
index 0000000..58a051c
--- /dev/null
+++ b/help-converters/docbook/docbook/html/verbatim.xsl
@@ -0,0 +1,280 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:verb5="http://nwalsh.com/com.nwalsh.saxon.Verbatim";
+                xmlns:verb6="http://nwalsh.com/com.nwalsh.saxon6.Verbatim";
+                exclude-result-prefixes="verb5 verb6"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="programlisting|screen|synopsis">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <!-- Obey the <?dbhtml linenumbering.everyNth="x"?> PI -->
+  <xsl:variable name="default.linenumbering.everyNth"
+                select="$linenumbering.everyNth"/>
+
+  <xsl:variable name="pi.linenumbering.everyNth">
+    <xsl:call-template name="dbhtml-attribute">
+      <xsl:with-param name="attribute" select="'everyNth'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.everyNth">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.everyNth != ''">
+        <xsl:value-of select="$pi.linenumbering.everyNth"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$default.linenumbering.everyNth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Obey the <?dbhtml linenumbering.separator="x"?> PI -->
+  <xsl:variable name="default.linenumbering.separator"
+                select="$linenumbering.separator"/>
+
+  <xsl:variable name="pi.linenumbering.separator">
+    <xsl:call-template name="dbhtml-attribute">
+      <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.separator">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.separator != ''">
+        <xsl:value-of select="$pi.linenumbering.separator"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$default.linenumbering.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="@id">
+    <a href="{$id}"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $saxon.extensions != '0'
+                    and $saxon.linenumbering != '0'">
+      <xsl:variable name="rtf">
+        <xsl:apply-templates/>
+      </xsl:variable>
+      <pre class="{name(.)}">
+        <xsl:choose>
+          <xsl:when test="contains($vendor, 'SAXON 6')">
+            <xsl:copy-of select="verb6:numberLines($rtf)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:copy-of select="verb5:numberLines($rtf,
+                                 $linenumbering.everyNth,
+                                 $linenumbering.width,
+                                 $linenumbering.separator)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </pre>
+    </xsl:when>
+    <xsl:otherwise>
+      <pre class="{name(.)}">
+        <xsl:apply-templates/>
+      </pre>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="literallayout">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $saxon.extensions != '0'
+                    and $saxon.linenumbering != '0'">
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <pre class="{name(.)}">
+            <xsl:choose>
+              <xsl:when test="contains($vendor, 'SAXON 6')">
+                <xsl:copy-of select="verb6:numberLines($rtf)"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:copy-of select="verb5:numberLines($rtf,
+                                     $linenumbering.everyNth,
+                                     $linenumbering.width,
+                                     $linenumbering.separator)"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </pre>
+        </xsl:when>
+        <xsl:otherwise>
+          <div class="{name(.)}">
+            <xsl:choose>
+              <xsl:when test="contains($vendor, 'SAXON 6')">
+                <xsl:copy-of select="verb6:numberLines($rtf)"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:copy-of select="verb5:numberLines($rtf,
+                                     $linenumbering.everyNth,
+                                     $linenumbering.width,
+                                     $linenumbering.separator)"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <pre class="{name(.)}">
+            <xsl:copy-of select="$rtf"/>
+          </pre>
+        </xsl:when>
+        <xsl:otherwise>
+          <div class="{name(.)}">
+            <xsl:copy-of select="$rtf"/>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="literallayout[not(@class)
+                                   or @class != 'monospaced']//text()">
+  <xsl:call-template name="make-verbatim">
+    <xsl:with-param name="text" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="address">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $saxon.extensions != '0'
+                    and $saxon.linenumbering != '0'">
+      <div class="{name(.)}">
+        <xsl:choose>
+          <xsl:when test="contains($vendor, 'SAXON 6')">
+            <xsl:copy-of select="verb6:numberLines($rtf)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:copy-of select="verb5:numberLines($rtf,
+                                 $linenumbering.everyNth,
+                                 $linenumbering.width,
+                                 $linenumbering.separator)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <div class="{name(.)}">
+        <xsl:apply-templates/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="address//text()">
+  <xsl:call-template name="make-verbatim">
+    <xsl:with-param name="text" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="make-verbatim">
+  <xsl:param name="text" select="''"/>
+
+  <xsl:variable name="starts-with-space"
+                select="substring($text, 1, 1) = ' '"/>
+
+  <xsl:variable name="starts-with-nl"
+                select="substring($text, 1, 1) = '&#xA;'"/>
+
+  <xsl:variable name="before-space">
+    <xsl:if test="contains($text, ' ')">
+      <xsl:value-of select="substring-before($text, ' ')"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="before-nl">
+    <xsl:if test="contains($text, '&#xA;')">
+      <xsl:value-of select="substring-before($text, '&#xA;')"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$starts-with-space">
+      <xsl:text>&#160;</xsl:text>
+      <xsl:call-template name="make-verbatim">
+        <xsl:with-param name="text" select="substring($text,2)"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="$starts-with-nl">
+      <br/><xsl:text>&#xA;</xsl:text>
+      <xsl:call-template name="make-verbatim">
+        <xsl:with-param name="text" select="substring($text,2)"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- if the string before a space is shorter than the string before
+         a newline, fix the space...-->
+    <xsl:when test="$before-space != ''
+                    and ((string-length($before-space)
+                          &lt; string-length($before-nl))
+                          or $before-nl = '')">
+      <xsl:value-of select="$before-space"/>
+      <xsl:text>&#160;</xsl:text>
+      <xsl:call-template name="make-verbatim">
+        <xsl:with-param name="text" select="substring-after($text, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- if the string before a newline is shorter than the string before
+         a space, fix the newline...-->
+    <xsl:when test="$before-nl != ''
+                    and ((string-length($before-nl)
+                          &lt; string-length($before-space))
+                          or $before-space = '')">
+      <xsl:value-of select="$before-nl"/>
+      <br/><xsl:text>&#xA;</xsl:text>
+      <xsl:call-template name="make-verbatim">
+        <xsl:with-param name="text" select="substring-after($text, '&#xA;')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- the string before the newline and the string before the
+         space are the same; which means they must both be empty -->
+    <xsl:otherwise>
+      <xsl:value-of select="$text"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/xref.xsl b/help-converters/docbook/docbook/html/xref.xsl
new file mode 100644
index 0000000..b0efbe6
--- /dev/null
+++ b/help-converters/docbook/docbook/html/xref.xsl
@@ -0,0 +1,633 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0";
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="anchor">
+  <a>
+    <xsl:attribute name="name">
+      <xsl:call-template name="object.id"/>
+    </xsl:attribute>
+  </a>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="xref">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:if test="@id">
+    <a name="{ id}"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$refelem=''">
+      <xsl:message>
+	<xsl:text>XRef to nonexistent id: </xsl:text>
+	<xsl:value-of select="@linkend"/>
+      </xsl:message>
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+
+    <xsl:when test="$target/@xreflabel">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:call-template name="xref.xreflabel">
+          <xsl:with-param name="target" select="$target"/>
+        </xsl:call-template>
+      </a>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:choose>
+	  <xsl:when test="@endterm">
+	    <xsl:variable name="etargets" select="id(@endterm)"/>
+	    <xsl:variable name="etarget" select="$etargets[1]"/>
+	    <xsl:choose>
+	      <xsl:when test="count($etarget) = 0">
+		<xsl:message>
+		  <xsl:value-of select="count($etargets)"/>
+		  <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+		  <xsl:value-of select="@endterm"/>
+		</xsl:message>
+		<xsl:text>???</xsl:text>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:apply-templates select="$etarget" mode="xref.text"/>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </xsl:when>
+
+          <xsl:otherwise>
+            <xsl:apply-templates select="$target" mode="xref-to"/>
+          </xsl:otherwise>
+<!--
+          <xsl:when test="$refelem='figure'">
+            <xsl:call-template name="xref.figure">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='example'">
+            <xsl:call-template name="xref.example">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='table'">
+            <xsl:call-template name="xref.table">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='equation'">
+            <xsl:call-template name="xref.equation">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='cmdsynopsis'">
+            <xsl:call-template name="xref.cmdsynopsis">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='funcsynopsis'">
+            <xsl:call-template name="xref.funcsynopsis">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='dedication'">
+            <xsl:call-template name="xref.dedication">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='preface'">
+            <xsl:call-template name="xref.preface">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='chapter'">
+            <xsl:call-template name="xref.chapter">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='appendix'">
+            <xsl:call-template name="xref.appendix">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='bibliography'">
+            <xsl:call-template name="xref.bibliography">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='biblioentry'">
+            <xsl:call-template name="xref.biblioentry">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='bibliomixed'">
+            <xsl:call-template name="xref.biblioentry">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='glossary'">
+            <xsl:call-template name="xref.glossary">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='index'">
+            <xsl:call-template name="xref.index">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='section'
+                          or $refelem='simplesect'
+                          or $refelem='sect1'
+                          or $refelem='sect2'
+                          or $refelem='sect3'
+                          or $refelem='sect4'
+                          or $refelem='sect5'
+                          or $refelem='refsect1'
+                          or $refelem='refsect2'
+                          or $refelem='refsect3'">
+            <xsl:call-template name="xref.section">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='listitem'
+                          and local-name($target/..)='orderedlist'">
+            <xsl:apply-templates select="$target" mode="xref"/>
+          </xsl:when>
+
+          <xsl:when test="$refelem='question'">
+            <xsl:call-template name="xref.question">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='answer'">
+            <xsl:call-template name="xref.answer">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='part'">
+            <xsl:call-template name="xref.part">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='reference'">
+            <xsl:call-template name="xref.reference">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='co'">
+            <xsl:call-template name="xref.co">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:when test="$refelem='book'">
+            <xsl:call-template name="xref.book">
+              <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+          </xsl:when>
+
+          <xsl:otherwise>
+	    <xsl:message>
+	      <xsl:text>[Don't know what gentext to create for xref to: "</xsl:text>
+	      <xsl:value-of select="$refelem"/>
+	      <xsl:text>"]</xsl:text>
+	    </xsl:message>
+            <xsl:text>???</xsl:text>
+          </xsl:otherwise>
+-->
+        </xsl:choose>
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="cross-reference">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+  <xsl:param name="xref.text">
+    <xsl:call-template name="gentext.xref.text">
+      <xsl:with-param name="element.name" select="$refelem"/>
+      <xsl:with-param name="default">%g %n</xsl:with-param>
+    </xsl:call-template>
+  </xsl:param>
+
+  <xsl:call-template name="subst.xref.text">
+    <xsl:with-param name="xref.text" select="$xref.text"/>
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="*" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:message>
+    <xsl:text>[Don't know what gentext to create for xref to: "</xsl:text>
+    <xsl:value-of select="$refelem"/>
+    <xsl:text>"]</xsl:text>
+  </xsl:message>
+  <xsl:text>???</xsl:text>
+</xsl:template>
+
+<xsl:template match="author" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="figure" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="example" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="table" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="equation" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:variable name="command" select="($target//command)[1]"/>
+
+  <xsl:apply-templates select="$command" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:variable name="func" select="($target//function)[1]"/>
+
+  <xsl:apply-templates select="$func" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="dedication" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to">
+  <!-- handles both biblioentry and bibliomixed -->
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:text>[</xsl:text>
+  <xsl:choose>
+    <xsl:when test="local-name($target/*[1]) = 'abbrev'">
+      <xsl:apply-templates select="$target/*[1]"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="@id"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:text>]</xsl:text>
+</xsl:template>
+
+<xsl:template match="glossary" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="index" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section|simplesect
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:choose>
+    <xsl:when test="$section.autolabel">
+      <xsl:call-template name="gentext.element.name">
+        <xsl:with-param name="element.name" select="$refelem"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="$target" mode="label.content"/>
+
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.element.name">
+        <xsl:with-param name="element.name">the section called</xsl:with-param>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates select="$target" mode="title.content"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="answer" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="part" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="reference" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="cross-reference">
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+  <xsl:apply-templates select="$target" mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="co" mode="conumber">
+  <xsl:number from="literallayout|programlisting|screen|synopsis"
+              level="single"
+              format="1"/>
+</xsl:template>
+
+<xsl:template match="book" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$target/title">
+        <xsl:apply-templates select="$target/title" mode="xref"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="$target/bookinfo/title"
+                             mode="xref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <i>
+    <xsl:copy-of select="$title"/>
+  </i>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="link">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <a>
+    <xsl:if test="@id">
+      <xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
+    </xsl:if>
+
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select="$target"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+<xsl:template match="ulink">
+  <a>
+    <xsl:if test="@id">
+      <xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
+    </xsl:if>
+    <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
+    <xsl:if test="$ulink.target != ''">
+      <xsl:attribute name="target">
+        <xsl:value-of select="$ulink.target"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:choose>
+      <xsl:when test="count(child::node())=0">
+	<xsl:value-of select="@url"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </a>
+</xsl:template>
+
+<xsl:template match="olink">
+  <xsl:if test="@id">
+    <a name="{ id}"/>
+  </xsl:if>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="title.xref">
+  <xsl:param name="target" select="."/>
+  <xsl:choose>
+    <xsl:when test="local-name($target) = 'figure'
+                    or local-name($target) = 'example'
+                    or local-name($target) = 'equation'
+                    or local-name($target) = 'table'
+                    or local-name($target) = 'dedication'
+                    or local-name($target) = 'preface'
+                    or local-name($target) = 'bibliography'
+                    or local-name($target) = 'glossary'
+                    or local-name($target) = 'index'
+                    or local-name($target) = 'setindex'
+                    or local-name($target) = 'colophon'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates select="$target" mode="title.content"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <i>
+        <xsl:apply-templates select="$target" mode="title.content"/>
+      </i>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="number.xref">
+  <xsl:param name="target" select="."/>
+  <xsl:apply-templates select="$target" mode="label.content"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="xref.xreflabel">
+  <!-- called to process an xreflabel...you might use this to make  -->
+  <!-- xreflabels come out in the right font for different targets, -->
+  <!-- for example. -->
+  <xsl:param name="target" select="."/>
+  <xsl:value-of select="$target/@xreflabel"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="title" mode="xref">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="command" mode="xref">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="function" mode="xref">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/xtchunk.xsl b/help-converters/docbook/docbook/html/xtchunk.xsl
new file mode 100644
index 0000000..aeb41b5
--- /dev/null
+++ b/help-converters/docbook/docbook/html/xtchunk.xsl
@@ -0,0 +1,36 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:xt="http://www.jclark.com/xt";
+                extension-element-prefixes="xt"
+		version="1.0">
+
+<xsl:include href="chunk-common.xsl"/>
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <!-- XT makes chunks relative -->
+  <xsl:choose>
+    <xsl:when test="count(parent::*) = 0">
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$base.name"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="'ISO-8859-1'"/>
+  <xsl:param name="content" select="''"/>
+
+  <xt:document href="{$filename}"
+               method="{$method}"
+               encoding="{$encoding}">
+    <xsl:copy-of select="$content"/>
+  </xt:document>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/help-converters/docbook/docbook/lib/lib.xsl b/help-converters/docbook/docbook/lib/lib.xsl
new file mode 100644
index 0000000..7aa690b
--- /dev/null
+++ b/help-converters/docbook/docbook/lib/lib.xsl
@@ -0,0 +1,242 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0";
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id$
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     This module implements DTD-independent functions
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>Library Template Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<xsl:template name="dot.count">
+  <!-- Returns the number of "." characters in a string -->
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="count" select="0"/>
+  <xsl:choose>
+    <xsl:when test="contains($string, '.')">
+      <xsl:call-template name="dot.count">
+        <xsl:with-param name="string" select="substring-after($string, '.')"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$count"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<xsl:template name="copy-string">
+  <!-- returns 'count' copies of 'string' -->
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="count" select="0"/>
+  <xsl:param name="result"></xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>0">
+      <xsl:call-template name="copy-string">
+        <xsl:with-param name="string" select="$string"/>
+        <xsl:with-param name="count" select="$count - 1"/>
+        <xsl:with-param name="result">
+          <xsl:value-of select="$result"/>
+          <xsl:value-of select="$string"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$result"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="string.subst" xmlns="">
+<refpurpose>Substitute one text string for another in a string</refpurpose>
+<refdescription>
+<para>The <function>string.subst</function> template replaces all
+occurances of <param>target</param> in <param>string</param>
+with <param>replacement</param> and returns the result.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="string.subst">
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="target"></xsl:param>
+  <xsl:param name="replacement"></xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $target)">
+      <xsl:variable name="rest">
+        <xsl:call-template name="string.subst">
+          <xsl:with-param name="string"
+                          select="substring-after($string, $target)"/>
+          <xsl:with-param name="target" select="$target"/>
+          <xsl:with-param name="replacement" select="$replacement"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="concat(substring-before($string, $target),
+                                   $replacement,
+                                   $rest)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$string"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="xpointer.idref" xmlns="">
+<refpurpose>Extract IDREF from an XPointer</refpurpose>
+<refdescription>
+<para>The <function>xpointer.idref</function> template returns the
+ID portion of an XPointer which is a pointer to an ID within the current
+document, or the empty string if it is not.</para>
+<para>In other words, <function>xpointer.idref</function> returns
+<quote>foo</quote> when passed either <literal>#foo</literal>
+or <literal>#xpointer(id('foo'))</literal>, otherwise it returns
+the empty string.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="xpointer.idref">
+  <xsl:param name="xpointer">http://...</xsl:param>
+  <xsl:choose>
+    <xsl:when test="starts-with($xpointer, '#xpointer(id(')">
+      <xsl:variable name="rest" select="substring-after($xpointer, '#xpointer(id(')"/>
+      <xsl:variable name="quote" select="substring($rest, 1, 1)"/>
+      <xsl:value-of select="substring-before(substring-after($xpointer, $quote), $quote)"/>
+    </xsl:when>
+    <xsl:when test="starts-with($xpointer, '#')">
+      <xsl:value-of select="substring-after($xpointer, '#')"/>
+    </xsl:when>
+    <!-- otherwise it's a pointer to some other document -->
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="length-magnitude" xmlns="">
+<refpurpose>Return the unqualified dimension from a length specification</refpurpose>
+<refdescription>
+<para>The <function>length-magnitude</function> template returns the
+unqualified length ("20" for "20pt") from a dimension.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="length-magnitude">
+  <xsl:param name="length" select="'0pt'"/>
+
+  <xsl:choose>
+    <xsl:when test="string-length($length) = 0"/>
+    <xsl:when test="substring($length,1,1) = '0'
+                    or substring($length,1,1) = '1'
+                    or substring($length,1,1) = '2'
+                    or substring($length,1,1) = '3'
+                    or substring($length,1,1) = '4'
+                    or substring($length,1,1) = '5'
+                    or substring($length,1,1) = '6'
+                    or substring($length,1,1) = '7'
+                    or substring($length,1,1) = '8'
+                    or substring($length,1,1) = '9'
+                    or substring($length,1,1) = '.'">
+      <xsl:value-of select="substring($length,1,1)"/>
+      <xsl:call-template name="length-magnitude">
+        <xsl:with-param name="length" select="substring($length,2)"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="length-spec" xmlns="">
+<refpurpose>Return a fully qualified length specification</refpurpose>
+<refdescription>
+<para>The <function>length-spec</function> template returns the
+qualified length from a dimension. If an unqualified length is given,
+the <param>default.units</param> will be added to it.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="length-spec">
+  <xsl:param name="length" select="'0pt'"/>
+  <xsl:param name="default.units" select="'pt'"/>
+  <xsl:variable name="magnitude">
+    <xsl:call-template name="length-magnitude">
+      <xsl:with-param name="length" select="$length"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="units">
+    <xsl:value-of select="substring($length, string-length($magnitude)+1)"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$magnitude"/>
+  <xsl:choose>
+    <xsl:when test="$units='cm'
+                    or $units='mm'
+                    or $units='in'
+                    or $units='pt'
+                    or $units='pc'
+                    or $units='px'
+                    or $units='em'">
+      <xsl:value-of select="$units"/>
+    </xsl:when>
+    <xsl:when test="$units = ''">
+      <xsl:value-of select="$default.units"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Unrecognized unit of measure: </xsl:text>
+        <xsl:value-of select="$units"/>
+        <xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/gnome-customization/gnome-customization.xsl b/help-converters/docbook/gnome-customization/gnome-customization.xsl
new file mode 100644
index 0000000..cdb8a56
--- /dev/null
+++ b/help-converters/docbook/gnome-customization/gnome-customization.xsl
@@ -0,0 +1,155 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'>
+
+<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets-1.29/docbook/html/chunk-common.xsl"/>
+<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets-1.29/docbook/html/docbook.xsl"/>
+
+<xsl:param name="gdb_docname" />
+
+<xsl:param name="gdb_pathname" />
+
+<xsl:output encoding="ISO-8859-1" />
+
+<!-- don't render the legalnotice on the titlepage -->
+<xsl:template match="legalnotice " mode="titlepage.mode">
+</xsl:template>
+
+
+<!-- customize the copyright notice to be a link to the legalnotice -->
+<xsl:template match="copyright" mode="titlepage.mode">
+  <xsl:variable name="years" select="year"/>
+  <xsl:variable name="holders" select="holder"/>
+
+  <p class="{name(.)}">
+  <a>
+    <xsl:attribute name="href">
+    <xsl:value-of select="$gdb_docname"/>
+    <xsl:text>?legalnotice</xsl:text>
+    </xsl:attribute>
+    <xsl:call-template name="gentext.element.name"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">copyright</xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$years" mode="titlepage.mode"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="gentext.by"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$holders" mode="titlepage.mode"/>
+  </a>
+  </p>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<!--
+<xsl:template match="graphic">
+  <p>
+    <img>
+    <xsl:attribute name="src">
+    <xsl:text>file://</xsl:text>
+    <xsl:value-of select="$gdb_pathname"/>
+    <xsl:text>/figures/example_panel.png</xsl:text>
+    </xsl:attribute>
+    </img>
+  </p>
+</xsl:template>
+-->
+
+<xsl:template name="process.image">
+  <!-- When this template is called, the current node should be  -->
+  <!-- a graphic, inlinegraphic, imagedata, or videodata. All    -->
+  <!-- those elements have the same set of attributes, so we can -->
+  <!-- handle them all in one place.                             -->
+  <xsl:param name="tag" select="'img'"/>
+  <xsl:param name="alt"/>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="local-name(.) = 'graphic'
+                      or local-name(.) = 'inlinegraphic'">
+        <xsl:choose>
+          <xsl:when test="@fileref">
+            <xsl:value-of select="@fileref"/>
+          </xsl:when>
+          <xsl:when test="@entityref">
+            <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message>
+              <xsl:text>A fileref or entityref is required on </xsl:text>
+              <xsl:value-of select="local-name(.)"/>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- imagedata, videodata, audiodata -->
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="width">
+    <xsl:choose>
+      <xsl:when test="@scale"><xsl:value-of select="@scale"/>%</xsl:when>
+      <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="height">
+    <xsl:choose>
+      <xsl:when test="@scale"></xsl:when>
+      <xsl:when test="@depth"><xsl:value-of select="@depth"/></xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="align">
+    <xsl:value-of select="@align"/>
+  </xsl:variable>
+
+  <xsl:element name="{$tag}">
+    <xsl:attribute name="src">
+
+ <xsl:text>file://</xsl:text>
+    <xsl:value-of select="$gdb_pathname"/>
+    <xsl:text>/</xsl:text>
+      <xsl:value-of select="$filename"/>
+	<xsl:text>.png</xsl:text>
+    </xsl:attribute>
+
+    <xsl:if test="$align != ''">
+      <xsl:attribute name="align">
+        <xsl:value-of select="$align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$height != ''">
+      <xsl:attribute name="height">
+        <xsl:value-of select="$height"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$width != ''">
+      <xsl:attribute name="width">
+        <xsl:value-of select="$width"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$alt != ''">
+      <xsl:attribute name="alt">
+        <xsl:value-of select="$alt"/>
+      </xsl:attribute>
+    </xsl:if>
+  </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/help-converters/docbook/gnome-db2html3.c b/help-converters/docbook/gnome-db2html3.c
new file mode 100644
index 0000000..6bbd82b
--- /dev/null
+++ b/help-converters/docbook/gnome-db2html3.c
@@ -0,0 +1,131 @@
+/*
+ * gnome-db2html3 - by John Fleck - based on Daniel Veillard's
+ * xsltproc: user program for the XSL Transformation engine
+ * 
+ * Copyright (C) John Fleck, 2001
+ *
+ */
+
+#include <glib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <libxml/xmlversion.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/debugXML.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/DOCBparser.h>
+#include <libxml/catalog.h>
+#include <libxslt/xslt.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/transform.h>
+#include <libxslt/xsltutils.h>
+
+extern int xmlLoadExtDtdDefaultValue;
+
+int
+main(int argc, char **argv) {
+
+	xsltStylesheetPtr gdb_xslreturn;
+	xmlDocPtr gdb_doc, gdb_results;
+	const char *params[16 + 1];
+	char *gdb_docname;         /* name of doc to be parsed */
+	char *gdb_pathname;        /* path to the file to be parsed */
+	char *gdb_rootid;          /* id of sect, chapt, etc to be parsed */
+	char *gdb_stylesheet;      /* stylesheet to be used */
+	char **gdb_split_docname;  /* placeholder for file type determination */
+	char *ptr;
+	const char *gdb_catalogs;  /* catalog(s) name */
+	gboolean has_rootid;
+ 
+	has_rootid = FALSE; 
+	/* stylesheet location based on Linux Standard Base      *
+	 * http://www.linuxbase.org/spec/gLSB/gLSB/sgmlr002.html */
+	gdb_stylesheet = g_strconcat (PREFIXDIR, "/share/sgml/docbook/gnome-customization-0.1/gnome-customization.xsl", NULL);
+	
+	if (argc <= 1) {
+		g_print("Usage: %s file?rootid, where file\n", argv[0]);
+		g_print("is the name of the file to be parsed and rootid\n");
+		g_print("is the id of the section to be displayed\n");
+		return(0);
+	}
+
+	/* use libxml2 catalog routine to retrieve catalog *
+	 * info to speed dtd resolution                    */
+	gdb_catalogs = getenv("SGML_CATALOG_FILES");
+	if (gdb_catalogs == NULL) {
+		fprintf(stderr, "Variable $SGML_CATALOG_FILES not set\n");
+	} else {
+		xmlLoadCatalogs(gdb_catalogs);
+	}
+
+	gdb_docname = argv[1];
+
+	/* check to see if gdb_docname has a ?sectid included */
+	for (ptr = gdb_docname; *ptr; ptr++){
+		if (*ptr == '?') {
+			*ptr = '\000';
+			if (*(ptr + 1)) {
+				gdb_rootid = ptr;
+				has_rootid = TRUE;
+			}
+		}
+	}
+
+	/* libxml housekeeping */
+	xmlSubstituteEntitiesDefault(1);
+	xmlLoadExtDtdDefaultValue = 1;
+
+	/* parse the stylesheet */
+	gdb_xslreturn  = xsltParseStylesheetFile((const xmlChar *)gdb_stylesheet);
+	if (gdb_xslreturn != NULL) { 
+		g_printerr ("Stylesheet %s successfully parsed\n", gdb_stylesheet);
+	}
+
+	/* check the file type by looking at name
+	 * FIXME - we need to be more sophisticated about this
+	 * then parse as either xml or sgml */
+	gdb_split_docname = g_strsplit(gdb_docname, ".", 2);
+	if (!strcmp(gdb_split_docname[1], "xml")) {
+		gdb_doc = xmlParseFile(gdb_docname);
+	}
+	else if (!strcmp(gdb_split_docname[1], "sgml")) {
+			gdb_doc = docbParseFile(gdb_docname, "UTF-8"); 
+	}
+	else if (gdb_doc == NULL) {
+		g_printerr ("Document not parsed successfully. \n");
+		return (0);
+	}
+	else {
+		g_printerr ("Document %s successfully parsed\n", gdb_docname);
+	}
+	
+	/* retrieve path component of filename passed in at
+	   command line */
+	gdb_pathname = g_dirname (gdb_doc->URL);
+
+	/* set params to be passed to stylesheet */
+	params[0] = "gdb_docname";
+	params[1] = g_strconcat("\"", gdb_doc->URL, "\"", NULL) ;
+	params[2] = "gdb_pathname";
+	params[3] = g_strconcat("\"", gdb_pathname, "\"", NULL) ;
+	params[4] = NULL;
+
+	if (has_rootid) {
+		params[4] = "rootid";
+		params[5] = g_strconcat("\"", gdb_rootid + 1, "\"", NULL) ;
+		params[6] = NULL;
+	}
+
+	gdb_results = xsltApplyStylesheet(gdb_xslreturn, gdb_doc, params);
+
+	if (gdb_results != NULL) { 
+		g_printerr ("Stylesheet successfully applied\n");
+	}
+
+	/* print out the results */
+	xsltSaveResultToFile(stdout, gdb_results, gdb_xslreturn);
+	
+	return (1);
+}



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