Traduction des pages non-WordPress du site centcols.org

Rédigé par Patrick Schleppi

Aperçu

Les pages du site centcols.org qui ne font pas partie de WordPress sont principalement les pages de la section membres et leurs outils administratifs. Elles doivent pouvoir être traduites pour s’adapter aux différentes langues des membres. Mais il n’est pas possible de tout traduire immédiatement, donc il faut avoir un système qui s’accommode du fait que toutes les pages n’existent pas dans toutes les langues. Ce document décrit d’une part comment les traductions s’appliquent aux pages du site et d’autre part comment les traductions sont effectuées par les traducteurs.

Programmation

Toute page PHP devant être traduite doit d’abord inclure le script trad.php, normalement par

require_once(PHP.'trad.php');

Dès lors, tous les messages et autres textes générés par le script ne doivent plus être émis que par appel d’une fonction trad() avec comme paramètre un code représentant la chaîne de caractères à traduire. Ce code est choisi pour rappeler d’une manière très abrégée le contenu (en français) de la chaîne. Par exemple, pour le message « Mot de passe oublié », on utilise trad(‘mdpoubli’). Tant qu’une page n’est pas entièrement traduite, elle affiche les codes au lieu des messages, pour qu’on voie déjà pendant la programmation quels messages viendront où.
Les traductions elles-mêmes sont enregistrées dans la base de données (BD) centcols006, dans une table appelée trad dont la clé primaire est composée du code de traduction et du code ISO de la langue. La BD comprend en outre une table appelée pages qui contient l’état de la traduction des différentes langues pour les différentes pages traduites ou en voie de traduction. Concrètement, l’état est codé ainsi: 0 = pas encore traduit, 1 = traduction partielle, 2 = traduction complète. Ces états sont mis à jour automatiquement lors du travail des traducteurs (voir plus loin). La BD ne contient par contre pas l’information de quels textes sont utilisés dans quelles pages. Ceci permet de programmer les pages en y introduisant de nouveaux textes (ou en enlevant) sans devoir mettre à jour la BD. Il est tout à fait possible (et même recommandé) de réutiliser les mêmes textes traduits dans plusieurs pages. Il suffit pour cela de réutiliser les mêmes codes comme paramètres de la fonction trad().

Choix de la langue à afficher

Quand un membre arrive sur la page de connexion, on ne sait pas encore de qui il s’agit. La page de connexion s’affiche alors autant que possible dans une des langues préférées selon les options du navigateur. Dès que le membre s’est connecté avec son numéro et son mot de passe, la langue préférée devient celle qui est définie sur la fiche de membre. Mais s’il le désire, le membre a, sur la page de connexion, la possibilité de définir une autre langue préférée pour la session qui s’ouvre. Une fois que ce choix est fait, il n’est pas possible de le changer sans se déconnecter. Mais il serait envisageable à l’avenir de donner un tel choix dans le menu de la section membres. Finalement, comme toutes les pages ne sont pas traduites dans toutes les langues, si la langue préférée par l’utilisateur n’est pas disponible, une des langues préférées au niveau du navigateur sert de deuxième priorité.

Déroulement des traductions

La page des traductions est à l’adresse www.centcols.org/membres/trad/. Elle liste toutes les pages en cours de traduction ou traduites. Cette page est disponible pour les webmestres et pour les membres chargés des traductions. Quand on clique sur une des pages listées, tous les textes apparaissent dans les langues déjà traduites. Chaque traducteur s’occupe normalement d’une seule langue, mais il a en fait la possibilité de modifier les traductions dans toutes les langues. Ceci est prévu pour permettre des corrections directes, sans avoir à prendre contact avec les autres traducteurs. Chaque traducteur doit donc juger par lui-même s’il est en mesure d’effectuer de telles modifications directes dans d’autres langues. Les traductions sont enregistrées par un des boutons « enregistrer » situé juste au-dessous de chaque bloc. À chaque enregistrement, la table de base de données pages est mise à jour.
Note: certains textes contiennent des codes commençant par le signe %. Ces codes servent à être remplacés par des éléments fixes, non-traduisibles, comme un nombre ou un nom propre. Il faut donc les réutiliser tels quels dans les traductions.
Ce sont les webmestres qui mettent en traduction de nouvelles pages. Pour cela ils ont un lien supplémentaire en haut de la page des traductions. Si un traducteur aimerait lancer la traduction d’une nouvelle page, c’est donc aux webmestres qu’il doit s’adresser, par exemple via l’adresse d’assistance technique. Ceci est nécessaire car, quand une nouvelle page est mise en traduction, il faut faire des modifications au programme lui-même en remplaçant tous les textes par des appels à la fonction trad().