Traduire un thème /​ un plugin WordPress
  • 1 — Traduire un thème WordPress
  • 2 — Astuce WordPress : conserver la traduction de son thème lors d’une mise à jour

Les traductions sont stockées dans les fichiers .po (version utilisateur) et .mo (machine).

Quand on traduit un thème, malheureusement, lors d’une mise à jour, WordPress supprime le dossier du thème et recharge la totalité du dossier de la nouvelle version. Et notre belle traduction est perdue…

Il existe une astuce, qui permet de la conserver, c’est de la stocker dans le dossier /​wp-​​content/​languages/​themes

Il faudra aussi changer le nom du fichier : au lieu de le laisser sous la forme fr_FR.po /​ fr_FR.mo il faut lui ajouter le nom du thème, ou plus exactement le « textdomain ».

Etape 1 : identifier le textdomain

Il est chargé dans le fichier functions.php du thème.

Il suffit de localiser la fonction load_​theme_​textdomain et de prendre le premier paramètre.

Ainsi, dans Magnificent, le thème d’Elegant Theme dont la mise à jour m’a forcée à trouver cette astuce, on a dans le fichier functions.php l’instruction suivante :

load_theme_textdomain('Magnificent',$template_dir.'/lang');

Le textdomain est donc « Magnificent » (avec la majuscule)

Etape 2 : renommer les fichiers de traduction

J’ai pris les fichier fr_FR.po et .mo que j’avais enregistrés dans le dossier du thème, et je les renomme respectivement

Magnificent-fr_FR.po et Magnificent-fr_FR.po

A cet instant, le thème n’est plus traduit. Quand ils sont stockés dans le dossier du thème, les fichiers de traduction ne doivent avoir que l’identifiant de la langue comme nom.

Etape 3 : les déplacer dans le dossier commun des traductions des thèmes

Aussitôt déplacés via FTP dans ce dossier, le thème est à nouveau traduit ! Et le gros avantage, c’est que ces fichiers là ne sont pas touchés lors d’une mise à jour du thème : la traduction ne disparait pas.

En stockant les fichiers dans le dossier global dans wp-​​content, les traductions sont conservées

Attention : cette astuce ne marche pas quand le thème est traduit et que vous modifiez la traduction ! Car les fichiers stockés dans le dossier du thème sont prioritaires.

Dans ce cas, il y a deux méthodes :

  • la plus simple, si il s’agit juste de la traduction : stocker les fichiers sur le PC et les uploader à nouveau lors de chaque mise à jour
  • un peu plus compliquée, si vous avez un thème enfant : les traductions sont chargées via une action, il faut donc utiliser dans le thème enfant remove_​action , puis faire une nouvelle action, avec le chargement du textdomain qui pointe vers un autre répertoire. Dans ce cas, je recommande de faire deux répertoires dans le thème enfant, un /​lang/​domainparent et un /​lang pour stocker les chaines spécifiques au thème enfant.

(Je n’ai pas testé, mais je pense que cela doit marcher aussi pour les plugins, avec un dossier wp-​​content/​languages/​plugin

Que pensez-vous de cet article ?
Super0
Bien0
Bof0
Nul0
Poster un commentaire