La traduction d’un thème ou d’un plugin peut parfois être compliquée, surtout si le code source ne l’a pas prévue.
Il peut donc arriver que vous ne réussissiez pas à traduire un bouton ou un mot sur une page, même avec l’utilisation de Poedit ou de l’extension Loco Translate.
Il vous reste donc deux solutions :
- Mettre les mains dans le code et chercher dans les fichiers du thème ou du plugin où se situe l’expression à traduire ou modifier. Il vous faudra alors ensuite copier ces fichiers dans votre thème enfant pour ne pas perdre les modifications aux prochaines mises à jour.
- Utiliser le snippet suivant qui va faire toutes les modifications automatiquement à votre place.
Intégrez le code suivant dans le fichier functions.php
de votre thème enfant.
Il vous reste maintenant à modifier les chaines de caractères 'texte à traduire'
et 'la traduction que vous souhaitez afficher à vos visiteurs'
par ce que vous voulez.
Voici un exemple sur un site ou il fallait remplacer l’expression « produits apparentés » par « blog similaire : »
Et le snippet utilisé :
Vérifiez bien avant d’utiliser cette fonction que l’expression à traduire ou à modifier est unique, car elle sera modifiée partout sur votre site.
Merci Alex pour cette info comme d’habitude clair et tres pratique
je m ‘en sert deja sur mon site mais je n’arrive pas faire une deuxième traduction comment ajouter une autre traduction
si je copie une seconde fois le code en modifiant ce qui m’intéresse le site plante
je pense qu’il ne faut pas copier le tout pour une seconde trad mais mes essais ne sont pas concluants
merci de m’aider M’sieur
Bonjour, pour une seconde traduction tu peux utiliser le même code exactement mais en renommant la fonction. Il ne peut y avoir deux fonctions avec le même nom donc rajoute un 2 après et le tour est joué!
Merci pour l’astuce ! J’ai un souci pour changer la phrase complète « Calculer les frais d’expédition » sur la page panier de Woocommerce. Ca ne fonctionne pas, même en mettant un anti-slash devant l’apostrophe. Pour l’instant, j’ai contourné le problème en ne remplaçant que « Calculer les frais d », le mot expédition n’étant pas un problème. Avez-vous une idée ?
Merci !
Hello, tu es sur que ça ne marche pas simplement en traduisant le plugin avec Loco Translate?
Je n’ai pas essayé avec un plug-in. Ta méthode me convient bien, sachant que je n’ai que ce bout de texte à modifier pour l’instant.
Merci ce snippet m’a été très utile pour des chaines de caractères se situant sur le blog du site et se traduisant ni avec Poedit, ni avec loco-translate et aussi bien pour les traductions thème que pour les traductions plugins. Pour ne pas les citer il s’agit de « leave a comment ». Il me reste « your comment » qui refuse toujours de se traduire et le thème regina lite me refuse l’accès au fichier concerné : wp-comments-post.php.
Mais je n’ai pas dit mon dernier mot !!! Encore merci.
Merci beaucoup pour tous ces partages, ces petites astuces, c’est un domaine passionnant… 😉
Merci pour le snippet « wpm_traduction », il fonctionne mais il agit sur les 2 versions du site (Anglais et Français) sur lequel j’ai installé Polylang.
Comment faire pour restreindre son action sur une seule langue ?
Bonjour,
Il faut que vous adaptiez le code en vérifiant quelle est la langue active avec la fonction de polylang pll_current_language()
Vous pouvez par exemple tester le code ci-dessous :
function wpm_traduction($texte) {
if(« fr »==pll_current_language()){
$texte = str_ireplace(‘texte à traduire’, ‘la traduction que vous souhaitez afficher à vos visiteurs’, $texte);
}
return $texte;
}
add_filter(‘gettext’, ‘wpm_traduction’);
add_filter(‘ngettext’, ‘wpm_traduction’);
Bonjour,
Merci pour ce code.
Je l’ai utilisé pour traduire le mot « Product » en « Produit »
Malheureusement, il me traduit aussi le mot « Production » en « Produition ».
Comment faire pour qu’il traduise uniquement quand il trouve le mot entier exclusivement ?
Merci à vous,
Bonjour,
ce n’est pas possible avec cette technique.
Bonjour et merci pour vos articles riches et utiles !
Je viens d’utiliser cette fonction qui à très bien traduit un élément qui restait, malgré tous mes efforts, en Anglais. Le but était de changer des « Read More » en « Lire la suite ».
Cependant, le changement n’est effectif que sur ma page d’accueil, mes pages catégories affichent toujours « Read More ». Y a-t-il une action supplémentaire à effectuer ?
Je vous remercie par avance de votre aide !
Amicalement,
Manon
Bonjour Manon. Il n’y a aucune raison que cela ne marche pas. L’expression était la même?
Je t’avoue que la comme ça je ne sais pas d’ou ça peut provenir. Tu as essayé avec Loco Translate?
Oui c’est la première chose que j’ai tenté, mais pour le même résultat.
Entre temps j’ai trouvé la solution, il fallait que je remplace également le terme dans le « archive.php » et c’est tout bon maintenant !
En tout cas je te remercie d’avoir pris le temps de me répondre ! 🙂
Bonjour et merci pour ce tuto très simple…
Mais pour moi ça se refuse à tout fonctionnement, et je m’arrache un peu les cheveux sur ce coup là…
J’ai testé avec un peu n’importe quoi sur mon site rien à faire, des textes sur la page d’accueil ou ailleurs!
WordPress dernière version à jour avec woocommerce et le thème twentyseventeen… Et surtout un plugin non traduit : Product Add-Ons WooCommerce
Merci d’avance de votre aide 😉
Lucio
Bonjour, as-tu essayé avec le plugin Loco Translate?
Non je vais tester. Merci de ta réponse en tout cas 🙂
🙂
Merci
Avec plaisir 😉
Alors là c’est un super snippet ! J’avais des problèmes de traduction approximatives de DIVI. Voilà qui est réglé ! Merci mille fois.
Bonjour, j’ai trouvé votre site car je cherchais désespéramment à traduire un chaîne de caractères rebelle sur woocommerce alors que toutes les autres fonctionnent bien. J’ai cru avoir trouvé le graal mais malheureusement le code n’a pas fonctionné 🙁 Si vous avez une idée ou update du sujet je suis preneur !
Bravo pour votre site rempli d’astuces,
Belle journée,
Julien
Bonjour, si ça ne fonctionne ni avec Locotranslate ni avec le snippet, je ne sais quoi te dire. Peut-être voir avec un prestataire développeur du coup.
Super, merci bcp !!! PEut on changer la couleur du texte en même temps ?
Bonjour pour la couleur du texte, il faudra ajouter du code css dans le fichier style.css
Bonjour Alex,
existe t il un moyen de savoir dans quel plugin ou thème se situe un mot à traduire sans avoir à faire une recherche par plugin ?
J’utilise locotranslate.
Merci pour votre aide 🙂
Bonjour, pas vraiment mais suivant où elle se trouve ça te donne souvent un indice 😉
Bonjour,
et comment faire lorsque le site est en deux langues?
est-il possible d’ajouter une variante de traduction dans le fichier function, plutôt qu’une traduction définitive ?
merci pour votre lumière
Bonjour,
Oui tu peux utiliser une condition PHP sur la langue de la page.
Salut à toute l’équipe !
Je suis désespérée car il m’est impossible de traduire entièrement mon thème. J’ai traduit tous les fichiers .po avec Poedit, j’ai ajouté le snippet au fichier functions.php de mon thème enfant, mais certaines chaines de caractère ne veulent toujours pas se traduire… Auriez-vous une autre solution ?
Merci !
Difficile à dire comme ça, cela vient peut-être d’une extension à traduire.
Ça fonctionne bien, mais si on a plusieurs chaine de caractères à traduire, comment ont écrit le snippet.
Bonjour, il faut redéfinir la fonction autant de fois que nécessaire en changeant son nom à chaque fois.