Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME I. Les programmes

4. SCR4_TRD : traducteur de sources C et SCR

scr4_trd est un utilitaire de traduction de sources. Dans un environnement multilingue, le problème posé par la traduction correcte des sources est souvent considérable et demande à la fois du temps et un soin tout particulier.

L'idée de départ est très simple : dans une source C ou SCR, on va identifier tous les strings. Ceux-ci vont être nettoyés de leur ponctuation et placés dans une base de données à 2 entrées, une par langue. Cette base de données sera alors traduite. Enfin, les sources seront automatiquement traduites en fonction des traductions trouvées dans la base de données.

Schématiquement, le processus se déroule de la façon suivante :

Les avantages de cette procédure sont évidents :

Syntaxe

scr4_trd -options args ... @responsefile


OPTION ARGUMENTS REQ DEFAULT DESCRIPTION
------ --------- --- ------- -----------
-c dbase N create dbase
-e dbase N edit dbase
-db dbase N c:\scr\scr_trad set dbase name
-il 1-2 N 1 input language
-ol 1-2 N 2 output language
-scr N read SCR files
-fix N keep string lg
-freescr N free SCR string lg
-x file ... N extract from files
-t file ... N translate files
-h N display help

Etape 1 : création de la database

La commande permettant de créer une nouvelle database est :

    scr4_trd -c <database>

Etape 2 : extraction des strings

La commande permettant d'extraire les strings de sources C ou SCR est :

    scr4_trd -db database [-il 1]  [-scr] -x file1 ...

Les paramètres sont :

les \n ou autres caractères < 32 sont remplacés par des blancs dans la base de données et à la traduction, les sauts de lignes sont donc perdus. Les strings ne peuvent avoir plus de 280 caractères. En cas de dépassement, une erreur est générée lors de la compilation des sources traduites.

Etape 3 : traduction des strings

La commande permettant d'éditer la base de données de strings est :

    scr4_trd -db <database> -e

L'édition se fait sur base d'une MPAGE accédant directement à la base de données de strings. Il suffit de presser ENTER sur la ligne à traduire et d'introduire la traduction.

La paramètre -db prend les mêmes valeurs par défaut que pour l'extraction des strings.

Etape 4 : traduction des sources

La commande permettant de traduire les sources est :

    scr4_trd -db <database> [-il 1] [-ol 2] [-scr]
[-freescr] [-fix] -t file file ...

La traduction repère les strings dans les fichiers sources sur base du même algorithme que dans le cas de l'extraction. A chaque string trouvé, il recherche sa valeur dans la base de données. Si le string est trouvé, sa traduction remplace la valeur d'origine dans la source. S'il est trouvé sans traduction ou s'il n'est pas trouvé, la source demeure inchangée.

Les ponctuations sont gérées de telle sorte que les caractères de ponctuation utilisés en fin de string (.:?!,; ) ne soient pas repris dans la base de données, mais restitués dans la traduction. Ceci permet d'éviter les redondances ("Nom : ", "Nom ...", "Nom ... ").

Ainsi :

    "Nom ... "
"Nom ?"
"Nom : "

se trouveront une seule fois dans la base de données sous la forme

    "Nom"

Lors de la traduction, en supposant "Name" comme traduction dans le second langage, le résultat sera :

    "Name ... "
"Name ?"
"Name : "

Dans les versions antérieures à 4.13, la longueur des strings était conservée. A partir de cette version, ce n'est plus le cas. Pour forcer les longueurs égales, il faut utiliser le paramètre -fix.

Avant 4.13, les ponctuations seules sont transformées au besoin en fin de string. Au cas où la traduction est plus longue que le string initial, les derniers caractères sont perdus, sinon des blancs s'ajoutent.

En fin de processus, un message indique le nombre de traductions effectuées et le nombre de strings laissés inchangés.

Les paramètres ont la signification suivante :

Etape 5 : correction des sources

Si le programme source est modifié, il suffit de repasser à l'étape 2 (extraction des strings) et de reprendre jusqu'à l'étape 4. Seule l'étape 3 (traduction des strings) peut demander une intervention si de nouveaux strings ont été ajoutés dans les sources.

Exemple de construction automatique d'une version néerlandaise

Supposons que lexn soit le programme à construire et que lex soit construit dans le directory courant par la commande

    make lex

En supposant que de nouveaux strings n'aient pas été introduits dans les sources, les instructions à effectuer sont :

    mkdir nl
copy *.h *.c *.f makefile nl
cd nl
scr4_trd -scr -il 1 -ol 2 -t *.c *.f *.h
make lex
rename lex lexn

Si de nouveaux strings ont été introduits, il faut d'abord faire :

    scr4_trd -x *.c *.h *.f     -> extraction des strings
scr4_trd -e -> traduction des strings

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be