Bonsoir,
Comme promis, j'ai avancé sur le parser. Je ne vais pas publier tout de suite le résultat, et vous allez comprendre pourquoi durant ce message.
Je compte encore faire mieux, mais pour l'instant, j'ai codé la partie "internationalisation" ("i18n" comme disent les geeks) de la façon suivante :
- je considère que le logiciel ne connaît qu'une seule langue, et que quand on lui parle d'une vasque, il ne comprend que "VA".
- le logiciel comprend donc une série de codes (VA, MA, ML, CV, etc...) dans cette seule langue
- le parser ne sert qu'à une seule chose : traduire les chaînes qu'un étranger fournirait.
Donc, si on donne une chaîne en anglais qui décrit un enchaînement du genre "walk 10m / waterfall 20m / pool 5m" en donnant la chaine "wa10/wf20/po5", le parser va reconnaître tout ça et le traduire en interne par "ma10/cv20/va5".
Et comment va-t-il reconnaître ? Tout simplement parce qu'on lui aura dit :
en0.1:/wa10/wf20/po5
Voilà, pour l'instant, le parser ne sert qu'à ça : traduire dans une langue "interne" les données proposées dans une autre langue.
Maintenant, c'est là où je vais avoir besoin de vous
Je ne connais pas les termes usuels en canyon en langues étrangères. J'ai bien quelques idées, mais Google ne remplacera pas vos connaissances de terrain sur les usages.
Dans un premier temps, il faudra au moins disposer des traductions en anglais, allemand, espagnol, italien, mais cette liste est infinie.
Pour l'instant, voici les symboles dont je dispose :
'ca' => array ('ca','cb'), // Cascade arrondie
'cv' => array ('cv'), // Cascade verticale
'ra' => array ('ra'), // Ressaut arrondi
're' => array ('re'), // Ressaut
'cs' => array ('cs','cd'), // Cascade surplombante
'ma' => array ('ma','mi'), // Marche
'ml' => array ('ml'), // Marche longue
'va' => array ('va'), // Vasque
'pi' => array ('pi'), // Plan incliné
'as' => array ('as','au'), // Amarrage simple
'ad' => array ('ad','am'), // Amarrage double
'an' => array ('an'), // Amarrage naturel
'sa' => array ('sa'), // Sapin
'to' => array ('to') // Toboggan
et qu'il faudrait traduire.
Donc si vous avez des notions dans les langues sus-citées, votre participation sera très appréciée.
PS : Les plus observateurs d'entre vous auront peut-être noté que pour un même symbole il est possible d'utiliser des alias.
Ben ouais, c'est cadeau, c'est le petit bonus de tonton nec.
Exemple : amarrage double + amarrage multiple. amarrage simple + amarrage unique, marche + marche intermédiaire, etc...
Il faut juste éviter de doublonner des définitions au sein d'une même langue.
PPS : Et ça justifie l'emploi des arrays.
Tout le travail sus-décrit tente de conserver une souplesse nécessaire à l'adoption des propositions de chacun, et en particulier de Thierry Saunier. Disons que pour l'instant, ma seule contrainte réside dans l'usage de deux caractères, suivi de n'importe quoi.