d6.04.03 Fonctionnement de l’internationalisation#
Résumé :
Ce document est dédié à l’internationalisation de Code_Aster , c’est-à-dire l’ensemble des outils, les pratiques, l’organisation qui permet au code de gérer des messages et des affichages dans différentes langues ainsi que la traduction de la documentation.
La condition principale pour obtenir une traduction de qualité des messages (quand bien même elle n’est pas automatique mais humaine) est d’avoir des messages originaux compréhensibles, bien écrits en français. C’est pour cette raison que l’on détaille également la vérification faite sur les messages originaux.
Vérification des messages#
La vérification des messages est effectuée par un cas-test dédié à cela: supv002.
Le but est de s’assurer:
que les messages fournis dans les catalogues ont le bon format: ils doivent être en unicode pour être capable de gérer les caractères non-ascii;
qu’ils pourront être formatés correctement, notamment que les variables qu’ils contiennent ont un type cohérent;
que les messages sont écrits en français !
Pour ce dernier point, on procède à une vérification systématique du texte des messages à l’aide du vérificateur d’orthographe aspell. Celui-ci s’appuie sur son propre dictionnaire auquel on ajoute le jargon propre à Code_Aster. C’est-à-dire:
un dictionnaire contenant la liste de tous les mots-clés du catalogue de commandes,
un dictionnaire ajoutant un certain nombre de mots en complément du dictionnaire français de base (des noms propres comme Newton , des mots anglais mais adoptés dans notre jargon comme level-set , etc.).
On veillera à limiter au strict minimum le dictionnaire personnel pour Code_Aster .
Remarque
aspell ne prend en compte qu’un dictionnaire personnel. Lors de la vérification, on concatène automatiquement nos deux dictionnaires pour n’en former qu’un seul.
Les dictionnaires sont rangés dans $ASTER_ROOT/share/codeaster respectivement sous les noms code_aster_cata.aspell.per et code_aster_dict.aspell.per. Attention à conserver l’encodage correct de ces fichiers.
Dictionnaire des mots-clés du catalogue#
On construit ce dictionnaire de la manière la plus simple qui soit (on peut le mettre à jour de temps en temps en fonction de l’apparition de nouveaux mots-clés): on prend tous les mots-clés en majuscules de cata.py.
aspell n’accepte pas les «_» en milieu de mot, ni les mots contenant les chiffres. On peut produire le dictionnaire ainsi :
import os
import re
cata=open(“cata.py”, “r”).read()
exp = re.compile(“([A-Z][A-Z]+)”, re.M)
kw = list(set(exp.findall(cata)))
kw.sort()
kw.insert(0, “personal_ws-1.1 fr 0 utf-8”)
open(“dict.aspell.per”, “w”).write(os.linesep.join(kw))
Traduction de la documentation#
La traduction de la documentation est faite de manière automatique via le logiciel Systran.
Une licence perpétuelle de Systran Entreprise Server a été acquise. Le logiciel est installé sur le serveur hébergeant différents services de la forge logicielle (claut681.der.edf.fr). Il s’agit de la version 7.3. Une version 7.4 est attendue, elle devrait améliorer le rendu de la traduction et corriger quelques anomalies (ne gênant pas la compréhension de la version anglaise).
Des scripts, sauvegardés dans une base Mercurial, assurent la traduction de tous les documents chaque nuit. Ils sont associés aux scripts permettant la publication des documents. Les différentes étapes sont les suivantes (encapsulée dans docaster_master.py ):
Extraction de tous les documents français au format OpenOffice ;
Traduction des documents : décompression des odt, envoi du fichier content.xml au serveur, recompression des odt avec la traduction ( systran_translator.py ) ;
Conversion des documents français et anglais au format PDF ;
Vérification des clés et des titres ;
Mise en ligne sur le site www.code-aster.org.
Ces étapes sont assurées pour la version de développement ( unstable ) et la version d’exploitation ( stable ).
La documentation en anglais est accessible depuis l’onglet Documentation en utilisant le switch de langue. Un avertissement est donné concernant le non engagement sur le résultat de la traduction ( Warning : The translation process used on this website is a « Machine Translation ». It may be imprecise and inaccurate in whole or in part and is provided as a convenience ). Cet avertissement figure sur la page d’accès aux documents et est systématiquement repris sur chaque pied de page.