La façon dont vous traduisez un thème WordPress dépend de ce dont vous avez besoin. Si l'ensemble de votre site fonctionne dans une langue autre que l'anglais, changez la langue du site sous Paramètres → Général et laissez WordPress télécharger le pack de langue du thème, ou modifier celui du thème .po/.mo fichiers de traduction avec un outil tel que Loco Translate ou Poedit. Si vous souhaitez que les visiteurs choisissent entre plusieurs langues, vous avez besoin d'un plugin multilingue qui traduit le texte du thème et votre contenu pour chaque langue, puisque les fichiers de traduction du thème seuls basculent l'ensemble du site vers une seule langue.
Principaux points à retenir
- Les chaînes de thème (boutons, étiquettes, “Lire la suite”, “Résultats de recherche pour…”) vivent dans le code du thème et sont traduites via un domaine texte et
.po/.mofichiers. - Les thèmes du répertoire WordPress.org obtiennent automatiquement des packs de langues de translate.wordpress.org lorsque vous modifiez la langue du site.
- Enregistrez les traductions personnalisées là où les mises à jour du thème ne peuvent pas les écraser :
wp-content/languages/themes/ou le dossier protégé de Loco Translate. - Le texte qui n'est pas enveloppé dans des fonctions de traduction ne peut pas être traduit par
.pofichiers. Corrigez-le dans un thème enfant ou utilisez un outil qui traduit la page rendue. - Pour un site multilingue, chaque langue a besoin de sa propre URL et de son propre hreflang. A
.mole fichier ne fournit pas cela.
Tout d’abord, de quel type de “traduction” avez-vous besoin ?
| Votre objectif | Que faut-il utiliser |
|---|---|
| L'ensemble du site dans une seule langue (par exemple, un site uniquement en allemand sur un thème anglais) | Paramètre de langue du site ainsi que les fichiers de traduction du thème |
| Corrigez quelques phrases thématiques manquantes ou erronées dans votre langue | Loco Translate ou Poedit pour éditer les traductions du thème |
| Les visiteurs choisissent entre l’anglais, l’allemand, le français… | Un plugin multilingue qui traduit les chaînes de thèmes et le contenu par langue |
La plupart des questions “comment traduire mon thème” sont en réalité le troisième cas, c'est pourquoi la deuxième moitié de ce guide le couvre. Tout d’abord, comment fonctionne la traduction de thèmes.
Comment fonctionne la traduction de thèmes WordPress
Un thème prêt pour la traduction enveloppe chaque chaîne visible dans une fonction de traduction avec le thème domaine texte, un identifiant unique qui correspond à la limace du thème. Exemple du manuel du thème WordPress : un thème appelé Fabled Sunset utilise le domaine texte fabled-sunset, déclaré dans style.css comme Text Domain: fabled-sunset (Ressources pour les développeurs WordPress).
Dans les modèles du thème, les chaînes ressemblent à ceci :
<?php esc_html_e( 'Read more', 'fabled-sunset' ); ?>
<?php echo esc_html( sprintf( __( 'Search results for: %s', 'fabled-sunset' ), get_search_query() ) ); ?>Les traductions sont stockées dans .po fichiers (lisibles par l'homme) et compilés pour .mo fichiers, qui sont ceux que WordPress utilise réellement. Le manuel répertorie deux endroits où WordPress recherche la traduction d'un thème, en fonction des paramètres régionaux du site :
wp-content/themes/your-theme/{domain-path}/{locale}.mowp-content/languages/themes/{textdomain}-{locale}.mo
Depuis WordPress 6.5, les traductions peuvent également être chargées à partir de .l10n.php fichiers, un format PHP plus rapide que les packs de langage WordPress.org incluent désormais. Si seulement un .mo le fichier existe, il se charge toujours comme avant (Créer WordPress Core).
Étape 1 : vérifiez si votre thème est prêt à être traduit
- Ouvrir le thème
style.csset cherchez unText Domain:doubler. - Cherchez un
languagesdossier (ou similaire) contenant un.potfichier modèle. - Vérifiez ponctuellement un fichier modèle : les chaînes doivent être enveloppées dans des fonctions telles que
__(),_e(),esc_html__()ouesc_html_e(), chacun avec le domaine texte.
Si le thème n'a rien de tout cela, ses chaînes sont codées en dur et ne peuvent pas être traduites avec des fichiers de traduction. Passez à “Correction des chaînes codées en dur” ci-dessous ou à la section multilingue.
Étape 2 : essayez d’abord le pack linguistique
Pour les thèmes hébergés dans le répertoire des thèmes WordPress, le manuel indique que vous “n'avez pas besoin de charger de traductions” : Vérifications WordPress wp-content/languages et télécharge les traductions du projet Traduction WordPress.
- Aller à Paramètres → Général et choisissez votre Langue du site.
- Aller à Tableau de bord → Mises à jour et cliquez Mettre à jour les traductions si on vous le demande.
- Visitez le site. Si les bénévoles du thème l'ont traduit dans votre langue, la plupart des chaînes seront déjà traduites.
Les thèmes premium achetés ailleurs expédient généralement les leurs languages dossier à la place ; vérifiez la documentation du thème pour les langues incluses.
Étape 3 : modifier ou terminer la traduction
Si des chaînes manquent ou si vous n'aimez pas la formulation, modifiez les fichiers de traduction.
Option A : Loco Translate (à l'intérieur de WordPress)
Loco Translate “fournit une édition dans le navigateur des fichiers de traduction WordPress” et peut enregistrer des traductions personnalisées dans un répertoire de langue protégé, wp-content/languages/loco/themes, donc les mises à jour du thème ne les écrasent pas (Répertoire des plugins WordPress.org).
- Installez et activez Loco Translate.
- Aller à Loco Translate → Thèmes et choisissez votre thème.
- Cliquez Nouvelle langue, choisissez la langue et choisissez la Coutume emplacement (protégé).
- Recherchez la chaîne, tapez la traduction et cliquez Sauvegarder. Loco compile le
.modéposer pour vous.
Option B : Poedit (sur votre ordinateur)
- Téléchargez le thème
.potfichier (ou le fichier existant.popour votre langue). - Ouvrez-le dans Poedit, créez une nouvelle traduction pour votre région et traduisez les chaînes.
- Sauvegarder. Poedit écrit à la fois le
.poet le compilé.mo. - Renommer les fichiers en
{textdomain}-{locale}, par exemplefabled-sunset-de_DE.poet.mo, et téléchargez-les surwp-content/languages/themes/.
Ne placez pas de fichiers personnalisés dans le dossier du thème : une mise à jour du thème remplace ce dossier et vos traductions par lui.
Correction des chaînes codées en dur
Lorsqu'un thème imprime directement du texte (<a>Read more</a>), aucun fichier de traduction ne peut y accéder. Vos options, du plus propre au plus rapide :
- Demandez à l'auteur du thème pour rendre les chaînes traduisibles. Il aide chaque utilisateur du thème.
- Remplacer le modèle dans un thème enfant. Copiez le fichier modèle dans votre thème enfant et enveloppez la chaîne :
esc_html_e( 'Read more', 'my-child-theme' );. Chargez les traductions de votre thème enfant avecload_child_theme_textdomain()sur leafter_setup_themecrochet, comme le montre le manuel. - Utilisez un outil qui traduit la page rendue plutôt que le code, qui récupère le texte codé en dur avec tout le reste.
Remarque pour les développeurs : depuis WordPress 6.7, WordPress avertit lorsqu'un thème ou un plugin charge les traductions trop tôt, avant after_setup_theme ou init (Créer WordPress Core). Si vous voyez un _load_textdomain_just_in_time remarquez qu'après une mise à jour, le correctif appartient au code qui charge le domaine texte.
N'oubliez pas non plus ce qui ne fait pas partie du thème : le contenu de la page et de la publication, les menus que vous avez créés, le texte du widget, les modèles de blocs que vous avez modifiés, le texte du personnalisateur et les mises en page du créateur de pages sont tous stockés dans la base de données. Les fichiers de traduction de thèmes ne les touchent pas.
Traduire un thème pour un site web multilingue
UNE .mo le fichier change la langue des chaînes du thème pour l'ensemble du site. Il ne peut pas montrer l'allemand à un visiteur et le français à un autre, et il ne traduit pas votre contenu. Pour un site en plusieurs langues, vous avez besoin de trois choses supplémentaires :
- Chaque morceau de texte traduit, y compris les chaînes de thème, les menus, les widgets, le contenu et la sortie du plugin tels que les boutons WooCommerce et le paiement.
- Une URL distincte pour chaque langue, tels que
/de/et/fr/. Google recommande des URL différentes pour chaque version linguistique plutôt que des cookies ou des paramètres de navigateur (Recherche Google Central). - Annotations Hreflang lier les versions afin que les moteurs de recherche affichent la bonne. Voir comment ajouter des balises hreflang.
Comment ConveyThis le gère
Le plugin ConveyThis pour WordPress (1 000+ installations actives sur WordPress.org, notées 4,4/5 sur 145 notes) traduit les rendus WordPress de la page, de sorte que les chaînes du thème, le texte codé en dur, les menus, les widgets, le contenu et la sortie du plugin sont tous traduits ensemble, sans .po fichiers à maintenir. Il est utile lorsqu'un thème n'est pas prêt à être traduit ou lorsque vous préférez ne pas gérer les fichiers de traduction par langue.
En pratique:
- Première ébauche automatique, puis modifications. Les pages sont traduites automatiquement et vous affinez n'importe quelle chaîne dans l'éditeur visuel, qui l'affiche en place sur la page, afin que vous puissiez voir si une étiquette de bouton traduite convient toujours.
- Conditions cohérentes. UNE glossaire conserve les noms de marques et de produits non traduits ou traduits de la même manière partout.
- URL prêtes pour le référencement. Chaque langue est desservie à partir de son propre sous-dossier ou sous-domaine avec des méta-titres et descriptions traduits et un hreflang automatique. Vous pouvez aussi personnaliser les URL traduites.
- Exclusions. Conservez des pages ou des éléments spécifiques dans la langue d'origine avec règles d'exclusion.
- 210 langues, y compris les langues de droite à gauche comme l’arabe et l’hébreu.
Le Page d'intégration WordPress couvre l'installation, et le guide d'aide étape par étape parcourt la configuration. Si les performances sont un problème sur un site plus grand, consultez notre guide performances multilingues de WordPress.
Dépannage : pourquoi une chaîne de thème ne se traduit pas
- Mauvais domaine de texte. Le domaine dans l'appel de fonction doit correspondre à celui de
style.csset dans le nom du fichier. - Nom de fichier ou lieu incorrect.
de_DEn'est pasde; le fichier doit correspondre exactement à la langue du site. - Fichier dans le mauvais dossier, ou écrasé par une mise à jour du thème.
- Chaîne non enveloppée dans une fonction de traduction (codée en dur).
- La chaîne provient d'un plugin ou de la base de données, pas le thème. Recherchez les traductions du plugin ou modifiez le contenu lui-même.
- Mise en cache. Effacer les caches de page et d'objet après avoir modifié les fichiers de traduction.
Questions fréquemment posées
Comment traduire mon thème WordPress dans une autre langue ?
Définissez la langue du site sous Paramètres, Général, puis mettez à jour les traductions. Si le thème n'a pas de pack de langues ou si vous souhaitez une formulation différente, créez ou modifiez sa traduction avec Loco Translate ou Poedit et enregistrez-la dans wp-content/languages/themes ou dans le dossier protégé de Loco.
Où sont stockés les fichiers de traduction de thèmes WordPress ?
WordPress recherche dans le dossier de langue du thème et dans wp-content/languages/themes, en utilisant des fichiers nommés avec le domaine de texte et les paramètres régionaux, tels que légendaire-sunset-de_DE.mo. Les traductions personnalisées sont les plus sûres en dehors du dossier de thème.
Une mise à jour du thème supprimera-t-elle mes traductions ?
Oui, si vous les avez enregistrés dans le dossier du thème. Stockez-les plutôt dans wp-content/languages/themes ou dans le répertoire protégé de Loco Translate.
Puis-je traduire un thème qui n'est pas prêt à être traduit ?
Pas avec les fichiers de traduction. Enveloppez les chaînes dans des fonctions de traduction dans un thème enfant ou utilisez un outil qui traduit la page rendue, tel que ConveyThis.
Les fichiers .po et .mo rendent-ils mon site multilingue ?
Non. Ils changent la langue des chaînes du thème pour l'ensemble du site. Un site multilingue a besoin d'une traduction de contenu, d'une URL par langue et de hreflang, ce que fournit un plugin multilingue.
Traduisez l'ensemble du site, pas seulement le thème
Si votre objectif est un site que les visiteurs peuvent lire en plusieurs langues, vous pouvez créer un compte ConveyThis, installez le plugin WordPress et traduisez votre thème et votre contenu ensemble.