Salut,
Dans le projet sur lequel je travaille on fait aussi une traduction en 6 langues. Pour ce faire, on gère deux choses:
- La traduction de texte dynamique (dépend de l'enregistrement consulté)
- La traduction de texte statique (labels, titres)
- La traduction de texte dynamique: on tient compte de la culture choisie par l'internaute (fr-FR, en-GB, ...) et de l'identifiant de l'enregistrement pour obtenir la traduction. Un identifiant en base dépend de la table et du champ dans lequel il se trouve.
- La traduction de texte statique: les textes à traduire placés dans le code HTML. Ils sont identifiés par une clef (ex: ##123##) et remplacés dans le code grâce à des expressions régulière. On récupère dans un dictionnaire (au sens propre et figuré) la traduction en fonction de la culture.
On peut considérer que la méthode est de la forme
Translator.GetTranslation(clef, culture)
Pour de bonnes performances, il faut stocker les traduction dans des variable statiques de type Dictionary. Pour accélérer la recherche dans les dictionnaires, répartir les traductions dans autant de variables que de cultures. Ou faire un dictionnaire de dictionnaires.
A+
Partager