Fork me on GitHub

Traduire un module en français

200701
Septembre
  Christian Documentations 10603

Il arrive parfois que l'on souhaite utiliser un module pour lequel les fichiers du langage français n'existent pas, ou ne sont pas à jour compte tenu de l'évolution des versions.


L'objectif de cet article est de vous procurer une méthode qui soit à la fois fiable et performante.



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 tout simple (bloc-notes, pspad, notepad++, ultraedit...) 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. Les caractères accentués

Pour le codage des caractères accentués, je vous renvoie à cette page qui explique le pourquoi du comment. Mais comme il n'est pas très pratique de relire facilement son texte une fois que l'on a commencé à y mettre le code html de ces caractères accentués, je vous suggère de rédiger votre traduction normalement et d'utiliser ensuite un utilitaire comme html_helper qui vous convertira en 2 clics tous les fichiers du répertoire choisi dans un sens ou dans l'autre.

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é.

Note: 5.00 (4 votes) - Noter cet article -

Partager Twitter Partagez cette article sur GG+
Format imprimable Envoyer cet article à un ami
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Xoops accro
Inscrit le: 25/02/2004
De: Région parisienne
Contributions: 2526
DuGris Posté le: 01/09/2007 13:38  Mis à jour: 01/09/2007 13:38
 Re: Traduire un module en français
Voici un très bon article, qui j'en suis sur permettra à nos membres de se lancer dans la traduction de module !!!
Régulier
Inscrit le: 06/09/2005
De: Tours
Contributions: 306
kryxx Posté le: 01/09/2007 13:41  Mis à jour: 01/09/2007 13:41
 Re: Traduire un module en français
merci pour ce tuto et le lien pour winmerge. Celui ci a l'air plus adpaté qu'ultra edit
Xoops accro
Inscrit le: 16/08/2005
De: Nanterre
Contributions: 2331
eparcyl92 Posté le: 01/09/2007 16:07  Mis à jour: 01/09/2007 16:07
 Re: Traduire un module en français
Surtout qu'actuellement, c'est pas pour dire, mais les mise à jours et tout les traductions et tout le reste... c'est pas simple.
Merci pour l'article, les liens et les astuces, Christian
Semi pro
Inscrit le: 22/02/2004
De:
Contributions: 997
kraven30 Posté le: 01/09/2007 20:46  Mis à jour: 01/09/2007 20:46
 Re: Traduire un module en français
Merci pour les infos

++
Semi pro
Inscrit le: 05/06/2004
De:
Contributions: 750
Niluge Posté le: 02/09/2007 00:18  Mis à jour: 02/09/2007 00:18
 Re: Traduire un module en français
Très bon article, très clair!
WinMerge est vraiment bien fait, il m'a entre autre permis de m'y retrouver dans du code auquel je n'avais pas touché depuis plus d'un an...
Semi pro
Inscrit le: 04/02/2003
De: Qc.ca
Contributions: 1389
king76 Posté le: 04/09/2007 16:47  Mis à jour: 04/09/2007 16:47
 Re: Traduire un module en français
Sous linux, je conseil ce logiciel : http://meld.sourceforge.net/

A+
Semi pro
Inscrit le: 05/06/2004
De:
Contributions: 750
Niluge Posté le: 04/09/2007 20:54  Mis à jour: 04/09/2007 20:54
 Re: Traduire un module en français
Merci pour le lien :)
Supporter Xoops
Inscrit le: 09/01/2005
De: Breizh
Contributions: 16972
Kris Posté le: 06/09/2007 00:26  Mis à jour: 06/09/2007 00:26
 Re: Traduire un module en français
Merci pour l'article, une petite recommandation pour nos futurs traducteurs : n'oubliez pas que vos traductions sont susceptibles d'être utilisées dans un environnement pro, donc penser à mettre des "vous" au lieu des "tu", et faire attention ô feautes d'oretaugrafes et la tournure des phrases

@ +
Aspirant
Inscrit le: 18/04/2007
De: France Rhone-Alpes
Contributions: 25
corbatis Posté le: 08/09/2007 18:38  Mis à jour: 08/09/2007 18:38
 Re: Traduire un module en français
Bonjour,
Je dit bravo, je ne suis pas programeur, mes avec des explications simple on arrive a tout faire.... Encore Merci Christian !!!!
Régulier
Inscrit le: 20/02/2005
De: France - Ulcot - 79150
Contributions: 167
Melmack Posté le: 09/09/2007 22:10  Mis à jour: 09/09/2007 22:12
 Re: Traduire un module en français
Bravo et merci pour cette info !

Pour le "tu" et le "vous" , je me rappelle , il me semble l'équipe Wfsection allemande qui proposait les deux versions ! !

Je ne connais pas Winmerge car j'utilise un autre éditeur : Context.

J'avoue que j'en suis content . j'édite tous mes fichiers avec des colorations syntaxiques distinctes ( apache, ini, mysql, php, log . . . ) et il fait les comparaisons de fichiers ! !
un fichier de 5 méga ne lui fait pas peur !

Pour les amateurs Vers le Téléchargement :
Xoops accro
Inscrit le: 15/07/2004
De:
Contributions: 4763
blueteen Posté le: 10/09/2007 16:37  Mis à jour: 10/09/2007 16:37
 Re: Traduire un module en français
Note du 07/09/07, l'auteur de Context arrête le développement, et décide de vendre son produit à qui le veut.
La dernière version date du 03/12/2006.
Attention donc, quitte à utiliser un programme, d'en prendre un "vivant"
Régulier
Inscrit le: 22/01/2004
De: Sessenheim Alsace ...
Contributions: 107
jetfuzz Posté le: 06/11/2008 07:52  Mis à jour: 06/11/2008 07:52
 Re: Traduire un module en français
Bonjour.
pour les traductions de module il existe un module.

voir ICI il y a même une beta pour la 2.3 !!
sinon préféré la version 0.0761 .
si ça peut servir.
Régulier
Inscrit le: 22/01/2004
De: Sessenheim Alsace ...
Contributions: 107
jetfuzz Posté le: 06/11/2008 20:22  Mis à jour: 06/11/2008 20:23
 Re: Traduire un module en français
Salut Burning.
l'essayer c'est l'approuver.
ca a l'air bizarre au début mais une fois pris en main c'est que du bonheur.
traduire un module,devient un jeux d'enfant.
ce module a le mérite d'être mis en avant.
et comme le dit si bien hervé

Citation :
la conversion des caractères accentués en entités html est la dernière des choses à faire.


bonne soirée

michael
Supporter Xoops
Inscrit le: 09/01/2005
De: Breizh
Contributions: 16972
Kris Posté le: 11/08/2009 23:51  Mis à jour: 11/08/2009 23:51
 Re: Traduire un module en français
J'adore celà comme guide
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

45 Personne(s) en ligne (1 Personne(s) connectée(s) sur Articles) | Utilisateur(s): 0 | Invité(s): 45 | Plus ...