Article View: fr.comp.text.xml
Article #8667Re: Auriez-vous une id�e ?
From: Alain Ketterlin
Date: Wed, 29 Aug 2001 13:26
Date: Wed, 29 Aug 2001 13:26
86 lines
4134 bytes
4134 bytes
"Rapha�l THERY" <raphael.thery@free.fr> writes:
[...]
> Pour cela je dois identifier les "termes" traduisibles de la feuille XSL,
> les rapprocher d'un dictionnaire et faire la transposition pour obtenir
> la traduction souhait�e et donc une nouvelle page XSL !
OK, je vois mieux maintenant. Il y a plusieurs solutions :
1) Le transformer i18n de cocoon2 est assez sympa si c'est cela que tu
utilises (http://xml.apache.org/cocoon2/i18n.html)
2) Avec XSLT seulement, il faut absolument que ton texte a traduire
soit balise d'une facon ou d'une autre. Il y a plusieurs idees :
a) tout le texte est stocke dans un dico (en plusieurs langues), et
ledit dico est charge dans un parametre, et la feuille peche les
mots dans ce parametre a l'aide des id des differents morceaux
de texte
b) soit le feuille elle meme est moulinee par XSLT et le texte
traduit en fonction de ce qui se trouve dans un dico.
Apparemment c'est ce que tu veux faire, donc la suite du message
parle seulement de cela.
L'idee est de recopier l'arbre source (la feuille XSLT originale),
sauf dans certains cas :
* lorsqu'on est sur un noeud de texte : dans ce cas il faut chercher
la traduction
* lorsqu'on est sur un element special (comme le <a> de ton exemple),
dans ce cas, il faut etre selectif sur le traitement
Ca oblige a jongler avec les priorites des templates, mais l'idee est
la suivante :
<!-- un noeud specifique -->
<xsl:template match="a/@title" priority="1.0">
... traduire ...
</xsl:template>
<!-- le texte -->
<xsl:template match="text()" priority="0.5">
... traduire ...
</xsl:template>
<!-- le reste -->
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="node()" priority="0"/>
</xsl:copy>
</xsl:template>
(verifier le mecanisme des priorites, peut-etre est-il inutile de les
expliciter.)
Il reste le probleme des `...traduire...'. Le plus simple est d'avoir
un dico du style :
<dico>
<mot>
<version xml:lang="fr">un</version>
<version xml:lang="tr">bir</version>
<version xml:lang="my">satu</version>
...
</mot>
...
</dico>
On charge tout ca dans un parametre (disons dico).Et en connaissant la
langue d'origine (dans le param src) et de destination (dans le param
dst), faire un truc du genre :
<xsl:value-of select="$dico/mot/version[@xml:lang=$src
and .=current()]/../version[@xml:lang=$dst]"/>
(mouais, sans garantie, et c'est peut-etre mieux si tu balises la
feuille originale avec des id qui apparaissent dans chaque <mot>.)
Le resultat devrait etre une nouvelle feuille de style.
-- Alain.
P/S: est-il necessaire de preciser que tout cela est aussi speculatif
que non-teste (je ne suis jamais alle plus loin que le dico dans
lequel je peche le texte depuis la feuille XSLT).
Technical Details
Message-ID:
<wywv3n0zgs.fsf@polya.u-strasbg.fr>Path:
arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!oleane.net!oleane!esplande3000.net!fr.clara.net!heighliner.fr.clara.net!freenix!enst!univ-angers.fr!news.unicaen.fr!univ-lille1.fr!news.u-strasbg.fr!not-for-mailReferences:
<ve2j7.37$Xc.39976@nnrp6.proxad.net> <wy4rqr2qzc.fsf@polya.u-strasbg.fr> <903j7.3$a%.145549@nnrp6.proxad.net>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: 114f60,716861d7494f1dd8 X-Google-Attributes: gid114f60,public X-Google-ArrivalTime: 2001-08-29 07:15:53 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!oleane.net!oleane!esplande3000.net!fr.clara.net!heighliner.fr.clara.net!freenix!enst!univ-angers.fr!news.unicaen.fr!univ-lille1.fr!news.u-strasbg.fr!not-for-mail From: Alain Ketterlin <alain@dpt-info.u-strasbg.fr> Newsgroups: fr.comp.text.xml Subject: Re: Auriez-vous une id�e ? Date: 29 Aug 2001 15:26:11 +0200 Organization: CRC - Universite Louis Pasteur Strasbourg France Lines: 87 Message-ID: <wywv3n0zgs.fsf@polya.u-strasbg.fr> References: <ve2j7.37$Xc.39976@nnrp6.proxad.net> <wy4rqr2qzc.fsf@polya.u-strasbg.fr> <903j7.3$a%.145549@nnrp6.proxad.net> NNTP-Posting-Host: polya.u-strasbg.fr X-Trace: news.u-strasbg.fr 999099258 4285 130.79.44.199 (29 Aug 2001 15:34:18 GMT) X-Complaints-To: usenet@u-strasbg.fr NNTP-Posting-Date: 29 Aug 2001 15:34:18 GMT X-Newsreader: Gnus v5.6.45/XEmacs 21.1 - "Capitol Reef"