This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: localization techniques and code review


> Earlier, Jeni Tennison mailto:mail@jenitennison.com wrote:
>
> [snip]
>

Thanks Jeni,

That's exactly the kind of critique that I needed.

>
> The nested xsl:for-each is necessary.  The key() function that you use
> is scoped by the current node: it only looks for nodes within the
> current document.  In the outer xsl:for-each, the current document is
> your source XML.  You need to change it to the localization.xml
> document to use the key to retrieve information quickly from it.

I am confused about your statement about moving localization.xml to the
outer xsl:for-each. How would that be more advantageous? Would it change my
xsl:key?
On another note, is there a way for me to modify the following statement to
only return nodes which match lang=$selectLang attribute? (the idea is to
filter non-chosen languages - could I use something like
[@lang='$selectLang']??)
<xsl:variable name="trans" select="document('localization.xml')" />
How can the above statement be modified to achieve the above objective and
is that even something to consider?

For reference:

<?xml version="1.0"?>
<!--  localization.xml -->
<localization>
    <word name="_FIRST_NAME">
        <translation lang="es">Nombre</translation>
        <translation lang="en">First Name</translation>
        <translation lang="it">Nome</translation>
    </word>
    <word name="_OCCUPATION">
     <translation lang="es">Ocupacion</translation>
     <translation lang="en">Occupation</translation>
     <translation lang="it">Occupazione</translation>
    </word>
</localization>

>
> > 2. What if I need to re-print the table again? Could I have somehow
> > stored the results of the document() call to be able to reuse it at
> > a later stage?
>
> Not within XSLT.  It really depends on your set up, how you're
> processing the XSLT on the server.  It may be possible for the server
> to keep the DOM for the localization.xml document cached so that it
> doesn't have to parse it each time.  Perhaps a Cocoon person can give
> you a better answer.
>
> Sorry I can't be more help,
>
> Jeni

I am sorry. I think my choice of wording made you look deeper than I
intended. (My knowledge is not deep enough to think of document caching at
the server level :-)). I had meant to ask if I could re-print the results,
another time without having to re-document() the localization.xml file,
(perhaps in another style)? By clarifying the use of the $trans in:
<xsl:variable name="trans" select="document('localization.xml')" />
I know now that it is re-usable and has all the nodes inside it.

Thanks again,
--
Haroon Rafique <haroon@telepres.com>



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]