🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.text.xml
Article #8668

Re: Auriez-vous une id�e ?

#8668
From: Rapha�l THERY
Date: Wed, 29 Aug 2001 14:55
142 lines
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-mail
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>

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