Article View: fr.comp.text.xml
Article #8672Re: Auriez-vous une id�e ?
From: Alain Ketterlin
Date: Thu, 30 Aug 2001 07:39
Date: Thu, 30 Aug 2001 07:39
87 lines
4318 bytes
4318 bytes
"Rapha�l THERY" <raphael.thery@free.fr> writes:
[...]
> Donc ce qui me pose probl�me, ce n'est pas la phase a proprement
> parl� de traduction mais d'identification. Je n'arrive pas � �crire
> une r�gle "d'identification" quand le noeud textuel contient un
> noeud <b> (vrai aussi pour TT, I, BIG, ...) j'ai l'impression de
> devoir faire une recurssion ou un appel � un template nomm� mais je
> ne vois pas trop comment abord� le truc.
Prenons un exemple : <p>Fromage <em>et</em> dessert</p>
Le noeud element <p> a trois fils :
- du texte (Fromage_)
- un element <em>
- du texte (_dessert)
L'element <em> lui-meme a un fils de texte (et).
La solution a base de <xsl:copy> effectuera la recursion elle-meme, et
le template sur "text()" se verra appele trois fois, une fois sur
chaque noeud de texte.
D'ailleurs, cela oblige le dictionnaire a contenir exactement le
texte, y compris les blancs (representes par _ ci-dessus). Ce n'est
pas terrible, parce que source d'erreur (et puis il se peut tres bien
que _Fromage apparaisse autre part. Et si tu changes l'original en
<p>Fromage
<em>et</em>
dessert</p>
c'est perdu (a moins de vouloir rajouter des sauts de lignes et des
blancs dans les termes du dico, ce qui n'est pas humain je pense).
(La fonction normalize-space peut aider cependant.)
La solution dont le parlais dans le PS de mon message precedent
consiste a ecrire
<p><term id="fromage"> <em><term id="et"></em>
<term id="dessert"></p>
Un peu lourdingue, d'accord, mais plus facile en phase de mise au
point.
> En tout cas merci d'avoir r�pondu, �a m'a au moins montr� que mon
> id�e de dico (avec ce format) n'�tait pas si con !
Ne neglige pas le fait que l'on est peut-etre plusieurs a etre cons
:-)
> ps: concernant le dictionnaire j'avais un petit probl�me. par
> exemple pour le terme ASCII il n'y a aucune traduction, inutile donc
> de l'�crire autant de fois qu'il y a de langues dans le dictionnaire
> et pourtant si j'enl�ve l'attribut "xml:lang" je n'arrive plus � y
> acc�der comme pour les autres ...
Pour cela, le plus simple (?) est d'utiliser une valeur speciale de
xml:lang (qui doit donc commencer par x-). Par exemple x-all, ca
oblige a modifier un peu le template de substitution. En supposant
qu'on utilise des <term> comme ci-dessus :
<xsl:template match="term">
<xsl:variable name="d" select="version[lang($dst)]"/>
<xsl:variable name="a" select="version[lang('x-all')]"/>
<!-- Tom a raison, bien sur -->
<xsl:choose>
<xsl:when test="$d">
<xsl:value-of select="$d"/>
</xsl:when>
<xsl:when test="$a">
<xsl:value-of select="$a"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>Comment dit-on <xsl:value-of
select="@id"/></xsl:message>
</xsl:message>
</xsl:choose>
</xsl:template>
(a peu pres -- ca devrait donner l'avantage a la langue cible, et se
rabattre sur une version internationale).
-- Alain.
Technical Details
Message-ID:
<wy3d6a2dyt.fsf@polya.u-strasbg.fr>Path:
arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!isdnet!195.25.12.36.MISMATCH!oleane.net!oleane!jussieu.fr!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> <wywv3n0zgs.fsf@polya.u-strasbg.fr> <3o7j7.596$hQ1.252999@nnrp1.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-30 01:29:40 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!isdnet!195.25.12.36.MISMATCH!oleane.net!oleane!jussieu.fr!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: 30 Aug 2001 09:39:54 +0200 Organization: CRC - Universite Louis Pasteur Strasbourg France Lines: 87 Message-ID: <wy3d6a2dyt.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> <wywv3n0zgs.fsf@polya.u-strasbg.fr> <3o7j7.596$hQ1.252999@nnrp1.proxad.net> NNTP-Posting-Host: polya.u-strasbg.fr X-Trace: news.u-strasbg.fr 999164884 5005 130.79.44.199 (30 Aug 2001 09:48:04 GMT) X-Complaints-To: usenet@u-strasbg.fr NNTP-Posting-Date: 30 Aug 2001 09:48:04 GMT X-Newsreader: Gnus v5.6.45/XEmacs 21.1 - "Capitol Reef"