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: Custom Localization Support Broken?


recently, I've observed some strange behavior for my localization
customization. Maybe I didn't see my error as I've looked at it too
long. ;) Or it has something to do with the localization optimization
in revisions 8719, 8722, 8752, and 8760.

Ok, I've tried to strip it down to a small test case. Let's begin with
this small XML file (note the empty keycaps):

-------------------[ test.xml ]-------------------
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
<article lang="en">
  <title>Keycap Testcase</title>
  <para>This is a <keycap function="escape"/> key.</para>
  <para>This is a <keycap function="alt"/> key.</para>

What I was trying is to use the @function attribute and create a
localized string. In the above case, it should return "ESC" and "Alt"
for the two keycaps.

For this reason, I've created a language mapping in the l:i18n/l:l10n
elements with the context "keycap". The idea was to extract the
respective entry from the table through the gentext.template function.

Here is my customization layer:

-------------------[ mydb.xsl ]-------------------
<xsl:stylesheet version="1.0"

  <xsl:param name="local.l10n.xml" select="document('')"/>
  <l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0";>
    <l:l10n language="en" english-language-name="English">
      <l:context name="keycap">
        <l:template name="alt" text="Alt"/>
        <l:template name="backspace" text="&lt;&#x2014;"/><!-- mdash -->
        <!-- <l:template name="command" text="???"/> -->
        <l:template name="control" text="Ctrl"/>
        <l:template name="delete" text="Del"/>
        <l:template name="down" text="&#x02193;"/><!-- darr -->
        <l:template name="end" text="End"/>
        <l:template name="enter" text="Enter"/>
        <l:template name="escape" text="Esc"/>
        <l:template name="home" text="Home"/>
        <l:template name="insert" text="Ins"/>
        <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="Page &#x02193;"/>
        <l:template name="pageup" text="Page &#x02191;"/>
        <l:template name="right" text="&#x02192;"/><!-- rarr -->
        <l:template name="shift" text="Shift"/>
        <l:template name="space" text="Space"/>
        <l:template name="tab" text="&#x02192;|"/>
        <l:template name="up" text="&#x02191;"/><!-- uarr -->
  <xsl:template match="keycap">
     <xsl:text>keycap: @function=</xsl:text>
     <xsl:value-of select="@function"/>
     <xsl:text> [</xsl:text>
     <xsl:call-template name="gentext.template">
        <xsl:with-param name="context" select="local-name()"/>
        <xsl:with-param name="name" select="@function"/>
   <!-- Rest omitted as we are only interested in the above output

After I've transforming the above XML to XHTML, I'm getting this output:

$ xsltproc --output test.html mydb.xsl test.xml 
keycap: @function=escape []
keycap: @function=alt []

Another point to mention:
The above keycap context is not available in the original en.xml file.
The interesting thing is, if I include the context in the original file,
my customization works too.

Thanks! :-)

    Thomas Schraitle

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