2. 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.
2.1. 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))