]> granicus.if.org Git - docbook-dsssl/commitdiff
Fixed bug #1854199: glossary.xsl should use the sortas attribute on glossentry
authorDavid Cramer <david@thingbag.net>
Mon, 31 Dec 2007 17:47:44 +0000 (17:47 +0000)
committerDavid Cramer <david@thingbag.net>
Mon, 31 Dec 2007 17:47:44 +0000 (17:47 +0000)
xsl/fo/glossary.xsl

index 718bdb6981537e7c2723e1f027eaec86a786f92d..3bbc3655003c417e471cdcda0de4f84257c708b7 100644 (file)
@@ -82,9 +82,7 @@
           <xsl:choose>
             <xsl:when test="$glossary.sort != 0">
               <xsl:apply-templates select="$entries" mode="glossary.as.list">
-                <xsl:sort lang="{$language}"
-                          select="translate(glossterm, $lowercase, 
-                                            $uppercase)"/>
+                                 <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
               </xsl:apply-templates>
             </xsl:when>
             <xsl:otherwise>
@@ -99,9 +97,7 @@
       <xsl:choose>
         <xsl:when test="$glossary.sort != 0">
           <xsl:apply-templates select="$entries" mode="glossary.as.blocks">
-            <xsl:sort lang="{$language}"
-                      select="translate(glossterm, $lowercase, 
-                                        $uppercase)"/>
+                         <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
           </xsl:apply-templates>
         </xsl:when>
         <xsl:otherwise>
       <xsl:choose>
         <xsl:when test="$glossary.sort != 0">
           <xsl:apply-templates select="$entries" mode="glossary.as.blocks">
-            <xsl:sort lang="{$language}"
-                      select="translate(glossterm, $lowercase, 
-                                        $uppercase)"/>
+                               <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
           </xsl:apply-templates>
         </xsl:when>
         <xsl:otherwise>
           <xsl:choose>
             <xsl:when test="$glossary.sort != 0">
               <xsl:apply-templates select="$entries" mode="glossary.as.list">
-                <xsl:sort lang="{$language}"
-                          select="translate(glossterm, $lowercase, 
-                                            $uppercase)"/>
+                                       <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
               </xsl:apply-templates>
             </xsl:when>
             <xsl:otherwise>
         <xsl:choose>
           <xsl:when test="$glossary.sort != 0">
             <xsl:apply-templates select="glossentry" mode="glossary.as.list">
-              <xsl:sort lang="{$language}"
-                        select="translate(glossterm, $lowercase, 
-                                          $uppercase)"/>
+                               <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
             </xsl:apply-templates>
           </xsl:when>
           <xsl:otherwise>
       <xsl:choose>
         <xsl:when test="$glossary.sort != 0">
           <xsl:apply-templates select="glossentry" mode="glossary.as.blocks">
-            <xsl:sort lang="{$language}"
-                      select="translate(glossterm, $lowercase, 
-                                        $uppercase)"/>
+                               <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
           </xsl:apply-templates>
         </xsl:when>
         <xsl:otherwise>
       <xsl:choose>
         <xsl:when test="$glossary.sort != 0">
           <xsl:apply-templates select="glossentry" mode="glossary.as.blocks">
-            <xsl:sort lang="{$language}"
-                      select="translate(glossterm, $lowercase, 
-                                        $uppercase)"/>
+                               <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
           </xsl:apply-templates>
         </xsl:when>
         <xsl:otherwise>
         <xsl:choose>
           <xsl:when test="$glossary.sort != 0">
             <xsl:apply-templates select="glossentry" mode="glossary.as.list">
-              <xsl:sort lang="{$language}"
-                        select="translate(glossterm, $lowercase, 
-                                          $uppercase)"/>
+                               <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
             </xsl:apply-templates>
           </xsl:when>
           <xsl:otherwise>
             <xsl:choose>
               <xsl:when test="$glossary.sort != 0">
                 <xsl:for-each select="$collection//glossentry">
-                  <xsl:sort lang="{$language}"
-                            select="translate(glossterm, $lowercase, 
-                                              $uppercase)"/>
+                               <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
                   <xsl:variable name="cterm" select="glossterm"/>
                   <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
                     <xsl:apply-templates select="." 
           <xsl:choose>
             <xsl:when test="$glossary.sort != 0">
               <xsl:for-each select="$collection//glossentry">
-                <xsl:sort lang="{$language}"
-                          select="translate(glossterm, $lowercase, 
-                                            $uppercase)"/>
+                                       <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
                 <xsl:variable name="cterm" select="glossterm"/>
                 <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
                   <xsl:apply-templates select="." 
             <xsl:choose>
               <xsl:when test="$glossary.sort != 0">
                 <xsl:for-each select="$collection//glossentry">
-                  <xsl:sort lang="{$language}"
-                            select="translate(glossterm, $lowercase, 
-                                              $uppercase)"/>
+
+                               <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
                   <xsl:variable name="cterm" select="glossterm"/>
                   <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
                     <xsl:apply-templates select="." 
     <xsl:choose>
       <xsl:when test="$glossary.sort != 0">
         <xsl:for-each select="glossentry">
-          <xsl:sort lang="{$language}"
-                    select="translate(glossterm, $lowercase, $uppercase)"/>
+                               <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
           <xsl:variable name="cterm" select="glossterm"/>
           <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
             <xsl:apply-templates select="." mode="auto-glossary-as-list"/>
   <xsl:choose>
     <xsl:when test="$glossary.sort != 0">
       <xsl:for-each select="glossentry">
-        <xsl:sort lang="{$language}"
-                  select="translate(glossterm, $lowercase, $uppercase)"/>
+                               <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
         <xsl:variable name="cterm" select="glossterm"/>
         <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
           <xsl:apply-templates select="." mode="auto-glossary-as-blocks"/>
     <xsl:choose>
       <xsl:when test="$glossary.sort != 0">
         <xsl:apply-templates select="$entries" mode="glossary.as.list">
-          <xsl:sort lang="{$language}"
-                    select="translate(glossterm, $lowercase, 
-                                      $uppercase)"/>
+                               <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
         </xsl:apply-templates>
       </xsl:when>
       <xsl:otherwise>
@@ -932,9 +907,7 @@ GlossEntry ::=
   <xsl:choose>
     <xsl:when test="$glossary.sort != 0">
       <xsl:apply-templates select="$entries" mode="glossary.as.blocks">
-        <xsl:sort lang="{$language}"
-                  select="translate(glossterm, $lowercase, 
-                                    $uppercase)"/>
+                 <xsl:sort lang="{$language}" select="translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), &lowercase;, &uppercase;)"/>
       </xsl:apply-templates>
     </xsl:when>
     <xsl:otherwise>