Manuel eXtranseasy XML translation

Sommaire
L'essentiel
Installation
Concepts
Format de fichier XTrans
Format de fichier de Session XTrans


3. Format de fichier XTrans

 

If you see this message, it means that your browser does not enable "style sheets". Please enable the style sheets in your browser options or preferences, otherwise go to the "nostyle" version of Kervarker here (note that you may have to enable JavaScript too).

3.1 Introduction

Les instructions sont insensibles à la casse, mais les arguments et l'object xtrans le sont.
Toute ligne commençant par # dans le fichier xtrans est considérée comme un commentaire et ignorée.

3.2 Instructions

3.2.1 Inclusion de fichier xtrans

include: includefilepath
 includefilepathLe chemin d'un autre fichier contenant des instructions xtrans.

On peut inclure en série et il n'y a pas de limite fixée sur le nombre d'inclusions.

3.2.2 Importer un module python

import: modulename
 modulenameUn nom de module python valide

Cette instruction fonctionne exactement comme celle de Python.
Notez que les modules string, os, re, sys, fphash, shutil sont déjà chargés et qu'il est inutile de les importer de nouveau.

3.2.3 Variables globales

global: variablename
expression
 variablenameun identificateur valide en python
 expressionUne expression en python qui sera évaluée pour initialiser la variable

La variable est ensuite accessible par xtrans.variablename dans le reste du fichier.

3.2.4 Définition de fonctions

function: fname paramrepeat with sep=","
python code
 fnameun identificateur valide en python
 paramun paramètre de la fonction
 python codeCode python indenté implémentant la fonction.

Tous les attributs et méthodes de l'objet xtrans sont accessibles dans la définition de la fonction.
La fonction est ensuite accessible par xtrans.functionname dans le reste du fichier.

3.2.5 Définition des délimiteurs de post-traitement

ppdelim: ldel rdel
 ldeldélimiteur gauche
 rdeldélimiteur droit

Cette instruction est optionnelle. Si elle est omise, les délimiteurs par défaut sont [ ].

3.2.6 Définition de postmacro

postmacro: pname
pythoncode
 pnameUn mot alphanumérique valide
 python codeCode python indenté qui sera éxécuté à chaque fois que la postmacro sera interprétée dans les fichiers cibles.

La postmacro est insérée dans les fichiers cibles entourée des délimiteurs de post-traitement.
La postmacro est éxécutée dans un environnement différent du reste du fichier xtrans. D'abord, une variable locale currentfileno contient l'indice du fichier cible dans lequel on interprète la macro. Ensuite, deux nouveaux attributs xtrans sont définis : xtrans.filenames et xtrans.labels. Voir la section sur les variables prédéfinies pour plus de détails.

3.2.7 Action balise ouvrante

starttag: tagname
pythoncode
 tagnameUn nom de balise XML valide et nu (action explicite) ou astérisque ("*"). L'astérique représente n'importe quelle balise pour laquelle il n'existe pas d'action starttag explicite.
 python codeCode python indenté qui sera éxécuté à chaque fois que la balise ouvrante de tagname sera rencontrée lors du parsing.

Tous les attributs et méthodes de l'objet xtrans sont accessibles dans la définition du code.
Si l'argument tagname est suivi par le mot-clé nostrip, tous les espaces entourant les balises intérieures sont conservés.

3.2.8 Action balise fermante

endtag: tagname
pythoncode
 tagnameUn nom de balise XML valide et nu (action explicite) ou astérisque ("*"). L'astérique représente n'importe quelle balise pour laquelle il n'existe pas d'action endtag explicite.
 python codeCode python indenté qui sera éxécuté à chaque fois que la balise fermante de tagname sera rencontrée lors du parsing.

Tous les attributs et méthodes de l'objet xtrans sont accessibles dans la définition du code.

3.3 Variables globales prédéfinies

Toutes les variables prédéfinies sont en lecture seule.

3.3.1 Variables d'environnement

Elle représentent toute l'information disponible concernant le parsing en cours.
xtrans.xtranssource
le chemin absolu vers le fichier de définition XTrans utilisé
xtrans.targetformat
le format cible généré
xtrans.targetdir
le chemin absolu vers le répertoire où sont déposés les fichiers générés
xtrans.output
l'objet fichier de sortie
xtrans.doctype
le type de documment accepté par ce parser
xtrans.xmlsource
le chemin absolu vers le fichier XML en cours de traitement
xtrans.xmldir
le chemin absolu vers le répertoire où réside le fichier XML traité
xtrans.generator
nom, version et copyright du logiciel eXtrans utilisé
xtrans.date
la date actuelle

3.3.2 Variables XML

Les variables XML contiennent les informations concernant le contenu et les attributs des balises XML.
xtrans.content
c'est un dictionnaire faisant correspondre les balises terminales avec leur contenu textuel
xtrans.attr
c'est un dictionnaire faisant correspondre les balises avec le dictionnaire de leurs attributs

3.3.3 Variables globales Postmacro

Les variables globales Postmacro ne sont définies que lors de la phase de post-traitement.
xtrans.filenames
c'est la liste de tous les fichiers cibles crées pour ce fichier XML, dans l'ordre de création
xtrans.labels
c'est la liste de tous les labels des fichiers crées, par ordre de création

3.4 Fonctions prédéfinies

3.4.1 Redirection de la sortie principale

xtrans.set_ouput (label, base)
 labelle label doit être une entrée unique pour le fichier, et peut apparaître dans les menus.
 baseinfixe dans le fichier cible généré.

Les noms de fichiers et leurs labels associées sont accessibles durant le post-traitement. Voir variables globales Postmacro.
On écrit dans le fichier de sortie en utilisant xtrans.output.write(string) ou le raccourci xtrans.put qui sélectionne la sortie.

3.4.2 Utiliser une sortie temporaire ou auxiliaire

xtrans.use_tmp_ouput (base, suffix)
 baseinfixe dans le fichier cible ouvert
 suffixl'extension du fichier, sans le point

Retourne le nom du fichier auxiliaire, relativement au fichier de sortie principal.
À n'utiliser que pour des sous-pages exploitées immédiatement dans le parsing.
La sortie temporaire court-circuite la sortie principale dans le racourcis xtrans.put.

3.4.3 Fermer une sortie temporaire ou auxiliaire

xtrans.close_tmp_ouput ()

Ferme la sortie temporaire.

3.4.4 Écrire sur la sortie

xtrans.put (string)
 stringchaîne de caractères ou buffer devant être envoyé en sortie.

C'est un racourci pratique qui écrit sur la sortie temporaire si elle est ouverte, sur la sortie principale sinon.

3.4.5 Tester le contexte

xtrans.is_parent (tag)
 tagle nom de balise à comparer avec la balise parente de celle qui est parsée actuellement.

On peut ainsi écrire du code contextuel.