OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: keycap and localized @function


Hi,

as far as I know, DocBook have since version 4.3 a function attribut in 
keycap. However, it seems it is not supported by the current stylesheets.

For example, if you write <keycap function="control"/> I thought that the 
stylesheets fill in the missing content with a localized version. 
Unfortunatly, there is no output. 

For this reason I would suggest to introduce a new l:context for keycaps 
in common/*.xml to support localized keycaps (or whatever is best for 
this purpose.) In English the above keycap is resolved to "Ctrl" whereas 
for a German keyboard layout it is "Strg".

The modifications involves all localized version under common. For 
example, in German you have the following entries:

-------------[ common/de.xml ]
 <l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"; 
  language="de" 
  english-language-name="German">
   <!-- ... -->
   <l:context name="keycap">
      <l:template name="alt" text="Alt"/>
      <l:template name="backspace" text="&lt;&#x2014;"/>
      <!-- <l:template name="command" text=""/> -->
      <l:template name="control" text="Strg"/>
      <l:template name="delete" text="Entf"/>
      <l:template name="down" text="&#x02193;"/><!-- darr -->
      <l:template name="end" text="Ende"/>
      <l:template name="enter" text="Eingabetaste"/>
      <l:template name="escape" text="Esc"/>
      <l:template name="home" text="Pos&#x00A0;1"/>
      <l:template name="insert" text="Einfg"/>
      <l:template name="left" text="&#x02190;"/><!-- larr -->
      <l:template name="meta" text="Meta"/>
      <!-- <l:template name="option" text=""/> -->
      <l:template name="other" text="???"/>
      <l:template name="pagedown" text="Bild &#x02193;"/>
      <l:template name="pageup" text="Bild &#x02191;"/>
      <l:template name="right" text="&#x02192;"/><!-- rarr -->
      <l:template name="shift" text="Umschalttaste"/>
      <l:template name="space" text="Leertaste"/>
      <l:template name="tab" text="&#x02192;|"/>
      <l:template name="up" text="&#x02191;"/><!-- uarr -->
   </l:context>
 </l:l10n>
-------------

Of course, the stylesheet under fo/inline.xsl and {html,xhtml}/inline.xsl 
have to be adapated as well. I tested it with the following modification 
for HTML:

 <xsl:template match="keycap">
   <xsl:param name="key.contents"  select="."/>
   <xsl:variable name="key.length" select="string-length($key.contents)"/>

   <xsl:choose>
       <xsl:when test="@function and @function!=''">
         <xsl:call-template name="inline.boldseq">
            <xsl:with-param name="content">
               <xsl:call-template name="gentext.template">
                  <xsl:with-param name="context" select="local-name()"/>
                  <xsl:with-param name="name" select="@function"/>
               </xsl:call-template>
            </xsl:with-param>
         </xsl:call-template>
       </xsl:when>
       <xsl:otherwise>
         <xsl:call-template name="inline.boldseq"/>
       </xsl:otherwise>
   </xsl:choose>
 </xsl:template>


What do you think? Does it sound reasonable? :-)

Bye,
Tom

-- 
Thomas Schraitle


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]