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))