Fork me on GitHub

Traduire un module


1. Création du dossier french

Les normes de développement des modules prévoient que les fichiers de langue de ceux-ci soient positionnés dans le répertoire language du module.
Considérant qu'en principe les fichiers du répertoire english sont corrects, il faut commencer par copier le répertoire english situé dans le dossier language pour le coller au même endroit et le renommer en french.

2. Utilisation d'un éditeur

Il convient ensuite avec un éditeur de texte comme notepad++ d'éditer les fichiers un à un pour commencer la réalisation de la traduction.
Lorsqu'on ouvre l'un des fichiers on trouve une présentation quasiment toujours identique comme celle-ci :



<?php
// $Id: main.php,v 1.3 2005/10/19 17:20:33 phppp Exp $
if(defined('MAIN_DEFINED')) return;
define('MAIN_DEFINED',true);

define('_MD_ERROR','Error');
define('_MD_NOPOSTS','No Posts');
define('_MD_GO','Go');
define('_MD_SELFORUM','Select a Forum');

Il est donc nécessaire de traduire tout ce qui se trouve après la virgule, ce qui va donc donner :

<?php
// $Id: main.php,v 1.3 2005/10/19 17:20:33 phppp Exp $
if(defined('MAIN_DEFINED')) return;
define('MAIN_DEFINED',true);

define('_MD_ERROR','Erreur');
define('_MD_NOPOSTS','Aucun message');
define('_MD_GO','Aller au module');
define('_MD_SELFORUM','Sélectionner un forum');

Comme on peut le constater, certains développeurs insèrent parfois du code php un peu différent qu'il convient de ne pas modifier sans en connaitre les conséquences.

3. Les délimiteurs

Selon les habitudes des développeurs on remarquera que les variables sont protégées par des délimiteurs qui peuvent être soit l'apostrophe simple, soit le guillemet (double apostrophe). L'apostrophe simple peut poser quelques soucis avec notre langage qui peut nécessiter l'utilisation de ce caractère dans la traduction que l'on aura à réaliser; ce qui ne manquera pas de provoquer une erreur dans le module si l'on ne prend pas quelques précautions. Dans ce genre de situation, il vous est proposé deux possibilités pour remédier à cette difficulté. Soit vous faites précédez le caractère apostrophe du symbole \, soit vous remplacer le délimiteur apostrophe par le guillemet, ce qui vous donne donc le résultat suivant :

//Ligne originale
define('_MD_PENDING_POSTS_FOR_AUTH','Posts pending approval:');

//Proposition 1 avec le symbole 
define('_MD_PENDING_POSTS_FOR_AUTH','Messages en attente d'approbation :');

//Proposition 2 remplacement de l'
apostrophe par des guillements
define
("_MD_PENDING_POSTS_FOR_AUTH","Messages en attente d'approbation:");

4. Encodage UTF_8

Traduisez votre fichier avec des lettres et caractères normalement. Une fois votre fichier traduit, encodez-le en UTF_8 sans BOOM (Voir tutoriel)

5. Mettre à jour une version antérieure

Un développeur vient de publier une nouvelle version de son module, et vous disposez des fichiers de traduction d'une version antérieure. Il est possible que l'auteur ait rajouté des "define" pour gérer de nouvelles variables à différents endroits dans les différents fichiers, ce qui peut paraître rebutant au premier abord. Pour ne pas avoir à rechercher partout où se situent les nouveautés, ou réécrire la totalité des fichiers de traduction, il est possible de contrôler aisément ces différences en utilisant un logiciel adapté comme winmerge. Soyez rassuré si l'interface de téléchargement est en anglais, vous pourrez à l'installation choisir une interface en français.

Si vous avez déjà une version ancienne des fichiers langues pour ce module, vous pouvez copier votre dossier french dans le répertoire language. Avec winmerge, ouvrez d'abord un fichier du dossier english, puis le même dossier du répertoire french. Les couleurs vous guideront sur les lignes identiques, manquantes ou supplémentaires. Vous pouvez effectuez des copier/coller entre la partie gauche en anglais vers la partie droite où se situe le fichier français, puis traduire directement dans cette partie droite.

6. Recommandations

Les fichiers présents dans ce répertoire portent toujours le même nom :

  • admin.php : affichage de l'interface d'administration
  • blocks.php : affichage des blocs
  • main.php : affichage de l'interface coté utilisateur
  • modinfo.php : affichage de la page préférences du module
Il se suffit pas de traduire simplement la phrase qui vous est présentée sur chacune des lignes du fichier en cours, il convient de tester simultanément le module afin d'adapter la traduction au contexte dans lequel se situe la variable. Cette phase de test servira autant à vérifier la bonne adéquation de votre traduction qu'à contrôler que le module ne provoque pas d'erreurs suite à une imperfection dans votre travail. C'est la raison pour laquelle il faut préalablement activer le mode debug avant de commencer.

Si vous vous retrouvez avec une page blanche sans indications alors que le module fonctionnait auparavant, il existe de fortes probabilités qu'une erreur se soit glissée dans votre travail, essayez de la retrouver le mode debug est censé vous fournir le nom et la ligne du fichier concerné.

Licence, certains droits réservés
Partager Twitter Partagez cette article sur GG+
  Voir cet article en format PDF Imprimer cet article Envoyer cet article

Naviguer à travers les articles
Article précédent Des sous-sites Xoops Utilisation de modèles / gabarits pour vos articles Article suivant
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

45 Personne(s) en ligne (1 Personne(s) connectée(s) sur Documentations) | Utilisateur(s): 1 | Invité(s): 44 | Cesagonchu, Plus ...