]> granicus.if.org Git - docbook-dsssl/commitdiff
Support output of language attribute
authorNorman Walsh <ndw@nwalsh.com>
Sat, 19 Oct 2002 19:00:14 +0000 (19:00 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Sat, 19 Oct 2002 19:00:14 +0000 (19:00 +0000)
xsl/common/l10n.xsl
xsl/html/block.xsl
xsl/html/component.xsl
xsl/html/division.xsl
xsl/html/refentry.xsl
xsl/html/sections.xsl

index f778339ef81d99391ccd863ab4b09006647fdc3d..fb2a37ab56422dddb1fb552404a33e9b48f9cd7a 100644 (file)
@@ -34,7 +34,7 @@
                       select="($target/ancestor-or-self::*[@lang]
                                |$target/ancestor-or-self::*[@xml:lang])[last()]"/>
         <xsl:variable name="lang-attr"
-                      select="$lang-scope/@lang | $lang-scope/@xml:lang"/>
+                      select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
         <xsl:choose>
           <xsl:when test="string($lang-attr) = ''">
             <xsl:value-of select="$l10n.gentext.default.language"/>
@@ -51,7 +51,7 @@
                       select="(ancestor-or-self::*[@lang]
                                |ancestor-or-self::*[@xml:lang])[last()]"/>
         <xsl:variable name="lang-attr"
-                      select="$lang-scope/@lang | $lang-scope/@xml:lang"/>
+                      select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
 
         <xsl:choose>
           <xsl:when test="string($lang-attr) = ''">
   </xsl:choose>
 </xsl:template>
 
+<xsl:template name="language.attribute">
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="language">
+    <xsl:choose>
+      <xsl:when test="$l10n.gentext.language != ''">
+        <xsl:value-of select="$l10n.gentext.language"/>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <!-- can't do this one step: attributes are unordered! -->
+        <xsl:variable name="lang-scope"
+                      select="($node/ancestor-or-self::*[@lang]
+                               |$node/ancestor-or-self::*[@xml:lang])[last()]"/>
+        <xsl:variable name="lang-attr"
+                      select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
+
+        <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:if test="$language != ''">
+    <xsl:attribute name="lang">
+      <xsl:value-of select="$language"/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
 <xsl:template name="gentext">
   <xsl:param name="key" select="local-name(.)"/>
   <xsl:param name="lang">
index b4787bb228b7300243b52f3f55be499907cfca4a..3b1cf5efbd7a80d47ee94f1cac3ed4faafff0160 100644 (file)
 <!-- ==================================================================== -->
 
 <xsl:template match="blockquote">
-  <xsl:call-template name="anchor"/>
-  <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>
+  <div class="{local-name(.)}">
+    <xsl:if test="@lang or @xml:lang">
+      <xsl:call-template name="language.attribute"/>
+    </xsl:if>
+    <xsl:call-template name="anchor"/>
+
+    <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="{local-name(.)}">
+          <xsl:apply-templates/>
+        </blockquote>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
 </xsl:template>
 
 <xsl:template match="blockquote/title">
index 433841a95db609b046f56c9610733b2fa459dced..b508650f1b7801de807e6aeb72bf0139611ba27d 100644 (file)
@@ -54,6 +54,7 @@
 
 <xsl:template match="dedication" mode="dedication">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="dedication.titlepage"/>
     <xsl:apply-templates/>
     <xsl:call-template name="process.footnotes"/>
@@ -81,6 +82,7 @@
 
 <xsl:template match="colophon">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
         <xsl:call-template name="object.id"/>
 
 <xsl:template match="preface">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
         <xsl:call-template name="object.id"/>
 
 <xsl:template match="chapter">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
         <xsl:call-template name="object.id"/>
   </xsl:variable>
 
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
         <xsl:call-template name="object.id"/>
 
 <xsl:template match="article">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
         <xsl:call-template name="object.id"/>
index a25f38bb2f9ce2cd71605822ef8fbf24c57dc426..a61363ff1c30f7e85fca1f8606a9e2db75235702 100644 (file)
@@ -16,6 +16,7 @@
 
 <xsl:template match="set">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
         <xsl:call-template name="object.id"/>
@@ -48,6 +49,7 @@
 
 <xsl:template match="book">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
         <xsl:call-template name="object.id"/>
@@ -82,6 +84,7 @@
 
 <xsl:template match="part">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
         <xsl:call-template name="object.id"/>
 
 <xsl:template match="partintro">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:if test="$generate.id.attributes != 0">
       <xsl:attribute name="id">
         <xsl:call-template name="object.id"/>
index ba52a8641738ba1caed6cf365d9832a204943be1..242ac509cf52fef3f7170f493fe75f4ff934cbdc 100644 (file)
@@ -16,6 +16,7 @@
 
 <xsl:template match="reference">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="anchor">
       <xsl:with-param name="conditional" select="0"/>
     </xsl:call-template>
@@ -70,6 +71,7 @@
 
 <xsl:template match="refentry">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:if test="$refentry.separator != 0 and preceding-sibling::refentry">
       <div class="refentry.separator">
         <hr/>
 </xsl:template>
 
 <xsl:template match="refsection|refsect1|refsect2|refsect3">
-  <xsl:call-template name="block.object"/>
+  <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
+    <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </div>
 </xsl:template>
 
 <xsl:template match="refsection/title|refsect1/title">
index a280917d32fee471561053b3c39705364032c26e..472f2a2c812f41f2a3ef4b2572f5cf8a7dd99fbf 100644 (file)
@@ -18,6 +18,7 @@
   <xsl:variable name="depth" select="count(ancestor::section)+1"/>
 
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="section.titlepage"/>
 
     <xsl:variable name="toc.params">
@@ -71,6 +72,7 @@
 
 <xsl:template match="sect1">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="sect1.titlepage"/>
 
     <xsl:variable name="toc.params">
@@ -97,6 +99,7 @@
 
 <xsl:template match="sect2">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="sect2.titlepage"/>
 
     <xsl:variable name="toc.params">
 
 <xsl:template match="sect3">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="sect3.titlepage"/>
 
     <xsl:variable name="toc.params">
 
 <xsl:template match="sect4">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="sect4.titlepage"/>
 
     <xsl:variable name="toc.params">
 
 <xsl:template match="sect5">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="sect5.titlepage"/>
 
     <xsl:variable name="toc.params">
 
 <xsl:template match="simplesect">
   <div class="{name(.)}">
+    <xsl:call-template name="language.attribute"/>
     <xsl:call-template name="simplesect.titlepage"/>
     <xsl:apply-templates/>
   </div>