Nov
23
|
|
Cependant, l’interface est en anglais. C’est logique puisque toutes les chaînes que j’ai utilisées le sont. Il est très vivement conseillé de coder ses chaînes en anglais et de fournir une traduction française si l’on souhaite que son extension soit davantage traduite.
Dans le code, on aura remarqué que toutes les chaînes à traduire sont encapsulées par une de ces deux méthodes : _e ou __.
- __ : Renvoie la traduction d’une chaîne
- _e : Affiche la traduction d’une chaîne
Le second paramètre précise que les traductions doivent être uniquement recherchées dans le domaine spécifié. Si aucun domaine n’est spécifié, la traduction pourra être éventuellement trouvée dans un autre fichier de traduction. Je préfère spécifier systématiquement le domaine de l’extension afin d’avoir d’éviter au maximum des traductions hors contextes.
Afin d’utiliser les traductions de son domaine, on a appelé la fonction load_plugin_textdomain dans le script PHP, en spécifiant le nom du domaine et le chemin où trouver les fichier : load_plugin_textdomain('random_number_generator', '', '/random_number_generator/languages');
Il ne reste plus qu’à générer les fichiers pour la traduction. Pour cela, je vais utiliser le logiciel Poedit. Vous pouvez consulter l’article plus détaillé le concernant.
- J’exécute Poedit, et crée un nouveau catalogue.
- Je spécifie le nom du projet, et les diverses métadonnées.
- Dans le chemin de base, je spécifie le répertoire racine de mon extension.
- Dans les mots-clés, j’ajoute les deux fonctions de traduction utilisées, à savoir, __ et _e.
- J’ai également modifié la configuration par défaut de l’analyseur PHP inclus dans Poedit pour extraire des commentaires pour les traducteurs, afin de leur facilité la tâche et lever toute ambiguité. J’ai simplement ajouté un paramètre aux commandes de l’analyseur : xgettext –force-po –add-comments=Tr.: -o %o %C %K %F
- Je peux ainsi directement ajouter des commentaires pour les traducteurs :
1
2//Tr.: Below the plugin name, in the plugin page
$settings_link = "<a href='options-general.php?page=random_number_generator/random_number_generator.php'>".__('Settings','random_number_generator')."</a>"; - Je demande une mise à jour depuis les sources afin d’extraire les différentes chaînes de mon script.
- Je sauvegarde ce fichier avec le nom
default.pot
, dans le sous-répertoirelanguages
que l’on avait spécifiquement créé pour. - Je le duplique en le renommant du nom de mon extension avec en plus la langue dans laquelle je vais le traduire :
random_number_generator-fr_FR.po
. - Puis j’édite ce nouveau fichier en traduisant les différentes chaînes.
- Je sauvegarde. Poedit a généré en plus le fichier
random_number_generator-fr_FR.mo
. C’est ce fichier qui sera utilisé par WordPress lors de la traduction.
Il ne reste plus qu’à retourner dans l’interface d’administration de WordPress pour constater que l’extension est effectivement, cette fois-ci en français :
Vous pouvez télécharger l’archive qui contient l’ensemble des fichiers de cet exemple.
Derniers commentaires