Article View: fr.comp.text.xml
Article #8668Re: Auriez-vous une id�e ?
From: Rapha�l THERY
Date: Wed, 29 Aug 2001 14:55
Date: Wed, 29 Aug 2001 14:55
142 lines
6725 bytes
6725 bytes
C'est tout � fait cela !
J'ai opt� pour une transformation "XSLT seulement" (pour le moment)
Concernant le dictionnaire c'est �galement ce que j'ai fais en plus �labor�
(si peu).
<dico>
<terme>
<expression xml:lang="fr"> ... </expression>
<expression xml:lang="en"> ... </expression>
<expression xml:lang="en"> ...
<abbreviation> ... </abbreviation>
<abbreviation> ... </abbreviation>
</expression>
...
</terme>
...
</dico>
Mon dictionnaire est constitu� de termes, englobant chacun un ensemble
d'expressions �quivalentes exprim�es dans une langue donn�e.
Dans un m�me terme, il est possible de trouver plusieurs expressions dans la
m�me langue, car la traduction peut se diff�rencier
d'un contexte � l'autre. Enfin pour une expression donn�e on peut l'associer
� une ou plusieurs abbr�viations si l'on en est contraint (question de
place).
Le fait d'avoir plusieurs expressions dans la m�me langue emp�che toute
traduction automatique, Ce n'est pas grave puisque ce n'est pas le but.
(la d�cision est prise par le traducteur, ensuite celle-ci devient
automatique gr�ce aux "contextes").
Toujours est-il, que dans la majorit� des cas et si le dictionnaire est
renseign�, j'arrive � substituer le terme par un autre (mais ma solution est
sans doute
plus compliqu�e que la votre, je vais donc l'�tudier d'un peu plus pr�s).
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.
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 !
Rapha�l
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 ...
"Alain Ketterlin" <alain@dpt-info.u-strasbg.fr> a �crit dans le message
news: wywv3n0zgs.fsf@polya.u-strasbg.fr...
> "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:
<3o7j7.596$hQ1.252999@nnrp1.proxad.net>Path:
arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!isdnet!teaser.fr!proxad.net!feeder2-1.proxad.net!nnrp1.proxad.net.POSTED!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>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:56:00 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!isdnet!teaser.fr!proxad.net!feeder2-1.proxad.net!nnrp1.proxad.net.POSTED!not-for-mail From: "Rapha�l THERY" <raphael.thery@free.fr> Newsgroups: fr.comp.text.xml 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> Subject: Re: Auriez-vous une id�e ? Lines: 144 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Message-ID: <3o7j7.596$hQ1.252999@nnrp1.proxad.net> Date: Wed, 29 Aug 2001 14:55:59 GMT NNTP-Posting-Host: 195.115.154.77 X-Complaints-To: abuse@proxad.net X-Trace: nnrp1.proxad.net 999096959 195.115.154.77 (Wed, 29 Aug 2001 16:55:59 CEST) NNTP-Posting-Date: Wed, 29 Aug 2001 16:55:59 CEST Organization: Guest of ProXad - France