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épertoire languages 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 :

Options de l'extension en français

Options de l'extension en français

Vous pouvez télécharger l’archive qui contient l’ensemble des fichiers de cet exemple.

Share

Pages : 1 2 3

Lien permanent vers Exemple concret & complet d’implémentation d’une extension WordPress Rédigé par Whiler \\ Tags : , , , , , , , , , , , ,

Laisser une réponse

(requis)

(requis)

*

;) (lol) (y) |-( (hi) 8-) (angel) :s (clap) (bow) (tmi) (:| plus »

This site uses Akismet to reduce spam. Learn how your comment data is processed.