|
Subject: Re: [xsl] How can I create a variable with a variable access path? From: Alexander Johannesen <alexander.johannesen@xxxxxxxxx> Date: Tue, 6 Dec 2005 11:05:05 +1100 |
Hi,
Ferdinand Soethe <xsl-list@xxxxxxxxxx> wrote:
> For an international application I'd like to store all texts in a
> construct like
>
> <xsl:variable name="AllTexts">
> <!-- german language texts -->
> <de>
> <searchButton>Suchen</searchButton>
> </de>
First, in XSLT 1.0 you cannot access result-tree fragments through
XPath, but if you're using XSLT 2.0 you're alright. However, I'd
strongly advice to put all this stuff in an external XML file, such as
;
text.xml:
<text>
<searchButton de="Suchen" en="Search" />
<findButton de="Finden" en="Find" />
<clickButton de="Drucken" en="Click" />
</text>
And then you can use this in your stylesheet as ;
<xsl:param name="language">de</xsl:param>
<xsl:variable name="AllTexts" select="document('text.xml')/*" />
<xsl:value-of select="$AllTexts/searchButton/@*[name()=$language]" />
To further this, to make the XSLT look nicer it would be good to acces
the language texts as ;
<xsl:value-of select="$AllTexts/searchButton" />
and you could do that by having your languages in separate XML files
as text_en.xml and text_de.xml, and ;
<xsl:variable name="AllTexts"
select="document(concat('text_',$language,'.xml'))/*" />
and have the format of your text_de.xml (for example) file as ;
<text>
<searchButton>Suchen</searchButton>
...
</text>
Many options here, really. Depends on how complex your needs are and so
forth.
Alex
--
"Ultimately, all things are known because you want to believe you know."
- Frank Herbert
__ http://shelter.nu/ __________________________________________________
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] How can I create a variab, Ferdinand Soethe | Thread | RE: [xsl] How can I create a variab, Michael Kay |
| Re: [xsl] XSLT w/ PHP, ASP, JSP Pro, Wendell Piez | Date | Re: [xsl] XSLT w/ PHP, ASP, JSP Pro, Jon Gorman |
| Month |