This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: How does XSLT deal with international characters?
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] How does XSLT deal with international characters?
- From: Goetz Bock <bock at blacknet dot de>
- Date: Wed, 2 May 2001 01:22:17 +0200
- References: <C719E250A02BD411893F00508BD6AD4B7E3790@jd.contivo.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
On Tue, May 01 '01 at 15:40, Frank Zhou wrote:
> I thought someone in the list might be able to answer this question
> for me. I am wondering how XSLT deals with internationalization? My
> particular question is that suppose in one XML document all the tags and
> contents (is it allowed?) are in English, while the other one in Japanese,
> how do people handle this tranformation? If you could refer me to any
> documents explaining these issues, that would be great!
What exactly is your problem?
If your (target) japenese tags are valid XML, you can use an XSL-T
(in either PULL or PUSH "mode") to convert english tags. Doing this with
the content of the tags is feaseale but no fun.
e.g. (english -> german, don't know japanese ;-))
given XML document:
<contact>
<titel>Mr.</title>
<surename>Goetz</surename>
<name>Bock</name>
<company>BlackNet IT-Consulting</company>
<street>Nettelbeckstr. 7</street>
<city>Munich</city>
<zip>81929</zip>
<country>Germany</country>
</contact>
intended target XML:
<kontakt>
<anrede>Hr.</anrede>
<vorname>Goetz</vorname>
<name>Bock</bock>
<firma>BlackNet EDV-Beratung</firma>
<strasse>Nettelbeckstr. 7</strasse>
<stadt>Muenchen</stadt>
<postleitzahl>81929</postleitzahl>
<land>Deutschland</land>
</kontakt>
As you can see, there is a pritty stright forward one2one mapping. But
there are also some content transformations:
Mr. -> Hr.
Germany -> Deutschland
...
i will not do them here.
XSL-T fragment (pull):
<xsl:template match="contact">
<kontakt>
<anrede>
<xsl:call-template name="transformTitle">
<xsl:param name="title">
<xsl:value-of select="title"/>
</xsl:param>
</xsl:call-template>
</anrede>
<vorname><xsl:value-of select="surename"/></vorname>
<name><xsl:value-of select="name"/></name>
<firma><xsl:value-of select="company"/></firma>
<strasse><xsl:value-of select="street"/></strasse>
<stadt><xsl:value-of select="city"/></stadt>
<postleitzahl><xsl:value-of select="zip"/><postleitzahl>
<land>
<xsl:call-template name="transformCountry">
<xsl:param name="country">
<xsl:value-of select="country"/>
</xsl:param>
</xsl:call-template>
</land>
</kontakt>
</xsl:template>
The called templates (transformTitle and transformCountry) allow you to
do the above mentioned transformations (but you have to write them
yourself).
BTW: It has proven to be very helpfull to not ask "How do you <some
vague idea/>" but to say "I have <XML/>, I want <XML/>. I've tried
<XSL/>. But it does not work <because/>". But please keep the <XML/> and
<XSL/> parts as short as possible and as verbose as necessary (and do
some indenting to make it nice to read on a 80 colomn text terminal).
Have fun,
Goetz.
PGP signature