Re: [docbook] Gentext page pg number formatting

From
"Cob Rtayton"
Date
2005-09-20T16:25:20+00:00
ID
009801c5bdff$db733d80$6400a8c0@toshiro
Thread
Re: [docbook] Gentext page pg number formatting
This looks like it should work, and in fact 
it does work why I try it.  You didn't include a sample of your locale 
files.  Do they contain a gentext template for the key 
'pageof'?

 

Bob Stayton
Sagehill Enterprises
DocBook Consulting


 

 

  
----- Original Message ----- 

  
From: 
  David White 
  

  
To:  
  

  
Sent: Monday, September 19, 2005 9:29 
  AM

  
Subject: [docbook] Gentext page pg number 
  formatting

  

  

  
Hello 
  all,

  
 

  
I have a bit of code 
  which is intended to produce “ 1 of XX “ page numbering for out footer.  
  However, it must use gentext to allow for languages which we translate our 
  book into.

  
 

  
Here is how I pull in 
  the language files:

  
 

  
The start of the XSL 
  file…

  
<?xml version="1.0" 
  encoding="UTF-8"?>

  
<!DOCTYPE 
  xsl:stylesheet [

  
                
  <!ENTITY da.locale SYSTEM "da_OR.xml">

  
                
  <!ENTITY de.locale 
  SYSTEM "de_OR.xml">

  
                
  <!ENTITY el.locale 
  SYSTEM "el_OR.xml">

  
                
  <!ENTITY en.locale 
  SYSTEM "en_OR.xml">

  
                
  <!ENTITY es.locale 
  SYSTEM "es_OR.xml">

  
                
  <!ENTITY fi.locale 
  SYSTEM "fi_OR.xml">

  
                
  <!ENTITY fr.locale 
  SYSTEM "fr_OR.xml">

  
                
  <!ENTITY it.locale 
  SYSTEM "it_OR.xml">

  
                
  <!ENTITY nl.locale 
  SYSTEM "nl_OR.xml">

  
                
  <!ENTITY no.locale 
  SYSTEM "no_OR.xml">

  
                
  <!ENTITY pt.locale 
  SYSTEM "pt_OR.xml">

  
                
  <!ENTITY sv.locale 
  SYSTEM "sv_OR.xml">

  
                
  <!ENTITY ru.locale 
  SYSTEM "ru_OR.xml">

  
                
  <!ENTITY cs.locale 
  SYSTEM "cs_OR.xml">

  
                
  <!ENTITY sk.locale 
  SYSTEM "sk_OR.xml">

  
                
  <!ENTITY sl.locale 
  SYSTEM "sl_OR.xml">

  
                
  <!ENTITY hu.locale 
  SYSTEM "hu_OR.xml">

  
                
  <!ENTITY pl.locale 
  SYSTEM "pl_OR.xml">

  
                
  <!ENTITY hr.locale 
  SYSTEM "hr_OR.xml">

  
]>

  
 

  
These are small XML files which contain 
  key words for gentext to use over the standard docbook XSL library of 
  translated words…

  
 

  
This is how Gentext is 
  setup:

  
 

  
<!--==============================================================-->

  
<!--  
  Gentext                                                     
  -->

  
<!--==============================================================-->

  
                
  <xsl:param 
  name="local.l10n.xml" 
  select="document('')"/>

  
                
  <l:i18n 
  xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">&da.locale;&de.locale;&el.locale;&en.locale;&es.locale;&fi.locale;&fr.locale;&it.locale;&nl.locale;&no.locale;&pt.locale;&sv.locale;

  
                
  </l:i18n>

  
 

  
Then, the template im 
  executing:

  
 

  
<xsl:template 
  name="footer.content">

  
                
  <xsl:param 
  name="pageclass" 
  select="''"/>

  
                
  <xsl:param 
  name="sequence" 
  select="''"/>

  
                
  <xsl:param 
  name="position" 
  select="''"/>

  
                
  <xsl:param 
  name="gentext-key" 
  select="''"/>

  
                
  <xsl:param 
  name="lang"><xsl:call-template 
  name="l10n.language"/></xsl:param>

  
                                                
  

  
 <fo:block>

  
   
  <!-- pageclass can be 
  front, body, back -->

  
   
  <!-- sequence can be odd, 
  even, first, blank -->

  
   
  <!-- position can be left, 
  center, right -->

  
   
  <xsl:choose> 
  

  
                
  <!-- nop; no footer on 
  title pages -->

  
    
  <xsl:when 
  test="$pageclass = 
  'titlepage'">  
  

  
     
  </xsl:when>

  
 

  
     
  <xsl:when 
  test="$double.sided != 0 and 
  

  
                     
  (($sequence = 'even'

  
                     
  and $position='left') 

  
                     
  or

  
                     
  (($sequence = 'odd' or $sequence = 'first')

  
                     
  and $position='right'))">

  
       
  <fo:external-graphic>

  
         
  <xsl:attribute 
  name="src">

  
           
  <xsl:call-template 
  name="fo-external-image">

  
             
  <xsl:with-param 
  name="filename">

  
               
  <xsl:call-template 
  name="lang.icon"/>

  
             
  </xsl:with-param>

  
           
  </xsl:call-template>

  
         
  </xsl:attribute>

  
         
  <xsl:attribute 
  name="width">0.45in</xsl:attribute>

  
       
  </fo:external-graphic>

  
     
  </xsl:when>

  
 

  
     
  <xsl:when 
  test="$double.sided != 0 and 
  

  
                     
  (($sequence = 'even'

  
                     
  and $position='right') 

  
                     
  or

  
                     
  (($sequence = 'odd' or $sequence = 'first')

  
                     
  and $position='left'))">

  
       
  <xsl:attribute 
  name="font-size">6pt</xsl:attribute>

  
       
  <xsl:value-of 
  select="$footer.tag"/>

  
     
  </xsl:when>

  
 

  
     
  <xsl:when 
  test="$double.sided != 0 and 
  $position='center'">

  
                                
  <fo:inline>

  
                                
  <fo:page-number/><xsl:call-template 
  name="gentext.space"/>

  
                                                
  <xsl:call-template 
  name="gentext">

  
                                                                
  <xsl:with-param 
  name="key" 
  select="'pageof'"/>

  
                                                
  </xsl:call-template>                  
  

  
                                
  <xsl:call-template 
  name="gentext.space"/><fo:page-number-citation 
  ref-id="lAsT-pAgE"/> 
  

  
                                
  </fo:inline>

  
     
  

  
     
  </xsl:when>

  
     
  <xsl:otherwise>

  
       
  <!-- nop 
  -->

  
     
  </xsl:otherwise>

  
   
  </xsl:choose>

  
 </fo:block>

  
</xsl:template>

  
 

  
The only output I can manage is: “1  
  22”, it simply ignores the gentext call.  I can replace the gentext with 
  “<xsl:text>of</xsl:text>” and that does 
  render.

  
 

  
Anyone recognize the source of my 
  error?