feedback

Méthode de traduction d'applications

pour Concrete5

Concrete5 propose de plus en plus d'applications (packages) sur le marketplace mais la majeure partie de celles-ci sont en anglais.

Il peut donc être utile d'avoir une interface francophone pour celle-ci, surtout si certains éditeurs de votre site web ne parlent pas anglais.

Pour ce faire trois méthodes:

  1. Via le terminal pour les amateurs
  2. Graphiquement via le logiciel PoEdit
  3. Nous le demander si vous n'êtes pas développeur

Pré Requis

Logiciels

Tout d'abord il nous faut installer, si ce n'est déjà fait, les utilitaires qui vont nous servir. Ici nous allons avoir besoins de la bibliothèque de gestion de traduction gettext et du logiciel PoEdit.

Terminologie et méthode de fonctionnement

Fonctionnement:

Concrete5 permet l'implémentation d'internationalisation via la fonction t() pour gérer les chaînes de caractères à traduire à l'écran.

Pour ce faire le noyau appel des fichiers nommés messages.mo placés dans un ensemble de répertoires agencés comme ceci:

{root}/languages/fr_FR/LC_MESSAGES/

Nous admettons ici que {root} est la racine du paquet à traduire, par exemple:

{root} correspond à /packages/easy_news pour le paquet easy_news

Concrete5 ayant un noyau surchargeable, il suffit d'ajouter le répertoire languages et son contenu à la racine du paquet pour que l'aplication en question soit automatiquement traduite.

notes Il est parfois nécessaire de purger le cache pour voi la différence si celui-ci est activé.

Nommage des catalogues:

Les fichiers doivent absoluement se nommer messages. Sinon le système ne les prendra pas en compte. Trois extensions vous seront nécessaires.

messages.po est le fichier non compréssé, et donc éditable, de gestion de traduction.

messages.pot est le catalogue de référence des traductions. Par exemple si vous développez votre propre application ce fichier permettra à dautres de traduire celle-ci dans leur langue, et de mettre à jour leur catalogues par rapport à cette référence.

messages.mo est le fichier compréssé du catalogue de traductions lu par le moteur de Concrete5. Ce fichier est crée, automatiquement selon les configurations des préférences, par PoEdit à l'enregistrement du catalogue.

Conventions:

Il faut bien partir de quelque chose, nous prendrons donc comme exemple de travail l'application easy_news. Ce pour deux raisons: Cette application est gratuite, et elle contient un nombre intéressant de lignes à traduire.

Mot clé: t() est la fonction utilisée par Concrete5, le mot clef à chercher sera donc t tout simplement.

{root} est la racine de votre paquet comme énoncé ci-dessus.

Chemin: c'est le chemin local de la racine de l'application que vous désirez traduire.

Nom et version du projet: C'est le nom de votre application, et sa version. Par exemple easy_news 1.1 pour la version 1.1 de easy news.

Equipe de traduction: le nom du traducteur ou de l'équipe, par exemple Concrete5 FR pour l'équipe francophone de conrete5.

Langue: Pour les francophones se sera par définition French. C'est la partie correspondant au fr de fr_FR, soit la partie ISO639 du code de language.

Pays: Pour les francophones se sera par définition FRANCE. C'est la partie correspondant au FR de fr_FR, soit la partie ISO3166 du code de language.

Jeu de caractères: C'est le type d'encodage utilisé pour la compilation du fichier .mo. Il faut donc mettre utf-8 afin d'être cohérent d'une part, et ne pas créer de caractères spéciaux avec C5 utilisant utf-8 (voir ci-dessous).

Jeu de caractères du code source: C'est le type d'encodage utilisé dans les fichiers de Concrete5, ses applications et ses thèmes. Il faut donc mettre utf-8.

Formes plurielles: C'est le codage utilisé pour la définition des formes plurielles des traductions. Pour les francophones nous utiliserons nplurals=2; plural=n>1;  Le premier signifiant que deux est une forme plurielle, et le second que tout ce qui est supérieur à 1 est pluriel.

Construction des catalogues:

Métode via le terminal:

Cette méthode est expliquée sur ce sujet du forum. Nous n'y reviendrons pas car elle n'est pas réellement cross-plateform d'une part, et beaucoup ont une certaine aversion pour les lignes de codes dans les terminaux.

Méthode graphique:

Nous partons du principe que vous avez installer les logiciels requis sur votre poste de travail est que ceux-ci sont fonctionnels.

Présisons que bien que le fichier .mo doit être dans /languages/fr_FR/LC_MESSAGES pour fonctionner en ligne, mais que notre espace de travail doit être se situe la racine de l'application.

Nous admettons également que vous avez téléchargé et décompressé l'application sur votre poste de travail.

Création du catalogue:

Lancer le logiciel PoEdit

Cliquer sur le menu fichier → nouveau catalogue

Vous obtenez une fenêtre semblable à celle-ci: 

catalogue poedit vierge

Il faut ensuite remplir le catalogue selon les conventions décrites plus haut.

Il va de soit que vous remplacez le mail par le votre, l'équipe de traduction par la votre ou votre nom ou pseudo, et le nom du projet par celui de votre paquet.

Au final votre configuration devrait ressembler à ça:

catalogue onglet info rempli
Ne validez pas !

cliquez sur l'onglet chemins, puis sur le bouton bouton_new.jpeg

Ensuite saisissez le chemin local vers la racine du dossier de l'application que vous désirez traduire.

par exemple ici: /home/cali/Bureau/packages/easy_news (exemple sur GNU/Linux)

Pour obtenir votre chemin, si vous ne le connaissez pas, faites un clic droit sur votre dossier et reportez le chemin indiqué dans les propriétés.

Vous obtenez un résultat semblable à celui-ci:

Onglet chemins avec le chemin renseigné
Remarquez que le chemin se termine par un /
Ne validez toujours pas !

Cliquer sur l'onglet Mots Clés puis sur le bouton bouton_new.jpeg

Renseignez le champ avec le mot clef utilisé dans Concrete5 soit un simple t

Vous obtenez cela:

Onglet Mots-clés renseigné
Maintenant vous pouvez valider !

L'application va vous demander d'enregistrer votre fichier.

Naviguez jusque dans le dossier de votre application, n'oubliez pas de nommer votre fichier messages.po

Fenêtre d'enregistrement initial

Une fois la validation enclenchée, PoEdit va analyser récursivement les dossiers et fichiers présents à la racine et composer automatiquement le catalogue.

Dès que cette opération se termine vous obtenez quelquechose comme ça:

Sortie de l'analyse de PoEdit

Si tout ce passe bien, que les champs sont corectement renseignés et que le paquet est codé proprement, vous ne devriez pas avoir d'erreurs.

Vous validez donc la sortie et obtenez un catalogue rempli similaire à celui-ci:

Catalogue prêt à l'emploi
Attention ce n'est pas terminé, mais presque !

Il vous reste à enregistrer votre fichier à la racine de l'application.

Vous pouvez supprimer le .mo si votre configuration le génère automatiquement. Puis effectuer une copie du fichier messages.po et la nommer messages.pot

Cette copie servira de référence par la suite, elle doit donc rester vierge de tout élément traduit.

Créez enfin vos répertoires /languages/fr_FR/LC_MESSAGES/ et copiez votre fichier .po dedans.

Vous devriez donc avoir une arborescence de ce type :

notes.png le nombre de fichiers et dossiers dépend de l'application, mais les fichiers de traductions doivent êtres ordonnancés de cette façon.

Arborescence des fichiers
Votre fichier de travail devient donc celui situé dans LC_MESSAGES.

Nous laissons les autres en modèle.

Procédure de mise à jour

Les avantages des copies précédentes, à savoir la délocalisation du fichier de travail, sont la simplicité de maintient à jour de vos traductions et la possibilité de partage.

Le fonctionnement en est très simple.

Conventions

Nous admettons que les fichiers .po et .pot sur {root} restent vierges de toutes traductions.

 

Méthode

Tout d'abord il faut remplacer les sources du paquet, par les nouvelles. Ceci de façon à garder le même chemin local. Nous ne déplaçons donc pas nos références.

Ensuite il faut ouvrir le fichier .po de référence, en effet la mise à jour directe du catalogue .pot risquerait de provoquer des erreurs à l'enregistrement.

Cliquer sur le bouton bouton mise à jour catalogue pour mettre à jour le catalogue depuis les sources.

Une sortie similaire à la création apparait, résumant à la fois les nouvelles chaînes et celles qui sont devenus obsolettes.

Enregistrez votre fichier messages.po

Ventilation

Pour mettre à jour notre fichier .pot, il suffit de supprimer le fichier précédent, puis effectuer une nouvelle copie du .po renommé en .pot

Nous avons donc nos références à jour.

Pour terminer, et mettre à jour notre fichier de travail, nous allons ouvrir le .po situé dans LC_MESSAGES puis cliquer sur le menu Catalogue → Mettre à jour depuis fichier POT

Vous allez sélectionner votre fichier de référence nouvellement créé et valider l'action.

Une liste de chaînes non traduites apparaitra donc en haut de votre liste.

Nettoyage

Si des chaînes deviennent obslotettes le menu Catalogue → Purger les traductions supprimées deviendra actif, vous permettant ainsi de nettoyer votre catalogue.

Conclusion

Comme vous avez pus le constater, ou le constaterez bientôt, il est plus long de lire ce tutoriel que de créer les catalogues et les remplir Cool

Ce qui prend du temps ce sont les traductions, selon les applications.

Si vous avez une question, ou un commentaire, n'hésitez pas !

Participer !

Bonnes traductions à tous Smile

 Remarques

Toute contribution est la bienvenue si vous avez réalisé des traductions, n'hesitez pas à nous contacter pour les partager.

La liste des applications déjà traduites est disponible sur cette page.


Si vous avez une question, ou un commentaire, n'hésitez pas !

Participer !