Ce sujet est résolu. Voici une description du problème et de la solution.
Problème :
Vous rencontrez des difficultés avec la traduction des champs "description" des auteurs dans WordPress utilisant le thème Divi. Les descriptions ne s'affichent pas dans la langue traduite sur les articles, malgré la traduction effectuée.
Solution :
Le problème provient du fichier
dynamic-content.php
dans le répertoire Divi. Le code utilise
get_queried_object
qui ne récupère pas les métadonnées traduites de l'utilisateur. Pour résoudre ce problème, remplacez le code suivant :
$content = et_core_intentionally_unescaped( $author->description, 'cap_based_sanitized' );
par :
$content = et_core_intentionally_unescaped( get_the_author_meta("description", $author->ID), 'cap_based_sanitized' );
Nous avons également contacté Divi pour une solution permanente dans les futures mises à jour.
Si cette solution ne résout pas votre problème ou semble obsolète, nous vous recommandons de vérifier les problèmes connus, de confirmer que vous avez installé les dernières versions de vos thèmes et plugins, et si nécessaire, d'ouvrir un nouveau ticket de support sur notre forum de support.
Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.
Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.
Marqué : Custom Work
Ce sujet contient 11 réponses, a 3 voix.
Dernière mise à jour par Ilyes Il y a 1 année et 1 mois.
Assisté par: Ilyes.
Auteur | Messages |
---|---|
mai 8, 2024 à 6:34 pm #15607575 | |
vincentd-56 |
WPML bonjour Je rencontre deux difficultés avec la traduction des chaines "authors", et plus précisément "description". J 1) Tout d'abord, l'ensemble des champs "author" apparait en Anglais, alors qu'ils ont été créés en Français et en Italien. Si j'ai bien compris, c'est une question de cœur de WordPress, et je devrais donc rédiger les champs "description" en Anglais dans la page "comptes", de WP, pour ensuite les traduire dans les différentes langues, correct ? 2) J'ai traduit un champs "description" pour un auteur. Ce champs n'apparait pas traduit dans les articles, je n'ai que la version originale, que dois-je faire ? J'ai lu plusieurs post en Anglais traitant le sujet, il es question de cases à cocher dans les paramètres, voire de code .php... Je suis un peu perdu, là... Merci d'avance pour votre réponse, cordialement, VIncent |
mai 8, 2024 à 9:22 pm #15607897 | |
Nicolas V. Supporter
Les langues: Anglais (English ) Français (Français ) Fuseau horaire: America/Lima (GMT-05:00) |
Bonjour Vincent, Bienvenue sur le forum d'assistance WPML. Merci de nous avoir contacté. En attendant l'aide d'un de mes collègues pour ce ticket, et sur la base de ce que vous avez décrit, permettez-moi de vous guider à travers quelques étapes initiales de débogage. 1. Sur la capture d'écran je vois que la description est en italien mais elle est marquée comme Anglaise (drapeau). Vous pouvez changer la langue source de ces chaînes facilement en suivant cette documentation: https://wpml.org/documentation/getting-started-guide/string-translation/how-to-change-the-source-language-of-strings/ - Une fois que les chaînes sont enregistrées dans la bonne langue vous pouvez les traduire. 2. C'est rare que les champs "bio" soient visibles sur le frontend. Donc bien souvent c'est fait par le biais d'un code personnalisé. Il se peut que le code ne soit pas tout à fait correct. Mais rassurez vous nous avons également une documentation pour cela: https://wpml.org/documentation/getting-started-guide/string-translation/translating-user-meta-information-with-wpml/ Le code devrait ressembler à cela: get_the_author_meta( 'description', $user_id ); Utilisez get_the_author_meta au lieu de get_user_meta() est souvent la solution |
mai 9, 2024 à 6:55 am #15608767 | |
vincentd-56 |
Merci pour votre réponse rapide ! 1) Résolu, et je suggère une amélioration pour une prochaine version : le texte du bouton est en gris sur fond gris dans un bandeau gris, ce n'est pas l'idéal en terme d'ergonomie 🙂 2) J'ai passé get_the_author_meta( 'description', $user_id ); dans le fichier functions.php de mon thème enfant, j'ai purgé avec Yoast SEo, mais cela ne fait pas de différence, j'ai toujours la langue native qui s'affiche dans les traductions. Cordialement, |
mai 9, 2024 à 9:06 pm #15612325 | |
Ilyes Supporter
Les langues: Anglais (English ) Français (Français ) Arabe (العربية ) Fuseau horaire: Pacific/Easter (GMT-06:00) |
Bonjour, J'aimerais vous demander un accès temporaire au wp-admin et au FTP de votre site de test, ce qui me permettra de trouver ces informations pour vous, Merci de me fournir les étapes à suivre pour reproduire le problème. Il est important de noter que vous devez sauvegarder votre site et votre base de données avant de procéder, et vous pouvez utiliser un plugin comme Duplicator à cette fin. Voici un lien vers ce plugin : http://wordpress.org/plugins/duplicator/ Si vous ne voyez pas le formulaire ci-dessous, n'entrez pas vos informations d'identification, car elles seront exposées publiquement : lien caché Pour des raisons de confidentialité et de sécurité, veillez à ce que votre réponse soit privée. |
mai 15, 2024 à 3:12 am #15627470 | |
Ilyes Supporter
Les langues: Anglais (English ) Français (Français ) Arabe (العربية ) Fuseau horaire: Pacific/Easter (GMT-06:00) |
Bonjour, Après avoir vérifié votre site de développement, j'ai installé un plugin de migration pour télécharger une copie et la déboguer localement, le changement de thème provoque de nombreuses erreurs critiques, je suppose donc qu'un code personnalisé est lié à ce problème, Ces champs d'utilisateur ne sont généralement pas affichés dans le front-end et l'ajout du code recommandé par mon collègue n'aide pas. Je transmets maintenant ce problème à notre équipe de deuxième niveau car ils pourraient avoir une meilleure idée de la raison de ce problème, Je vous remercie de votre patience, |
mai 15, 2024 à 6:29 am #15627735 | |
vincentd-56 |
Merci pour votre intervention, j'attends donc la suite sans impatience Bonne journée, Vincent |
mai 21, 2024 à 3:21 pm #15651615 | |
Ilyes Supporter
Les langues: Anglais (English ) Français (Français ) Arabe (العربية ) Fuseau horaire: Pacific/Easter (GMT-06:00) |
Bonjour, Merci de votre patience, Le problème se trouve dans le fichier \et_builder_filter_resolve_default_dynamic_content dans wp-content/themes/Divi/includes/builder/feature/dynamic-content.php. case 'post_author_bio' : if ( ! $author ) { break ; } $content = et_core_intentionally_unescaped( $author->description, 'cap_based_sanitized' ) ; break ; Ils utilisent : \get_queried_object pour obtenir l'auteur, mais cela permet d'obtenir les valeurs par défaut pour les méta utilisateurs (dans ce cas la description) Comme solution, remplacez leur code : $content = et_core_intentionally_unescaped( $author->description, 'cap_based_sanitized' ) ; avec : $content = et_core_intentionally_unescaped( get_the_author_meta(" description ", $author->ID), 'cap_based_sanitized' ) ; Nous contactons Divi car il s'agit d'un problème de compatibilité avec eux pour une solution finale dans les versions futures, |
mai 21, 2024 à 6:20 pm #15652321 | |
vincentd-56 |
Bonjour Ilyes, et merci pour l'intervention Toutefois je n'obtient pas le résultat escompté. J'ai rentré le code (image 1) et j'obtiens ceci (image 2) : la bio de l'auteur a disparue... visible ici : lien caché merci d'avance pour la réponse, Vincent |
mai 22, 2024 à 7:48 pm #15659727 | |
Ilyes Supporter
Les langues: Anglais (English ) Français (Français ) Arabe (العربية ) Fuseau horaire: Pacific/Easter (GMT-06:00) |
Bonjour, J'ai testé cela moi-même, et il semble que cela ne fonctionne pas comme prévu, j'ai envoyé les résultats à notre deuxième niveau, Je vous répondrai bientôt, |
mai 23, 2024 à 12:28 pm #15662916 | |
Ilyes Supporter
Les langues: Anglais (English ) Français (Français ) Arabe (العربية ) Fuseau horaire: Pacific/Easter (GMT-06:00) |
Bonjour, Cela fonctionne maintenant : lien caché Il s'avère qu'il y avait un problème de syntaxe dans le code, voici le code à ajouter : case 'post_author_bio' : if ( ! $author ) { break ; } $content = et_core_intentionally_unescaped( get_the_author_meta(" description ", $author->ID), 'cap_based_sanitized' ) ; break ; Il y a une différence entre " description " et "description", donc enlever les espaces a aidé. |
mai 23, 2024 à 2:29 pm #15663799 | |
vincentd-56 |
Bonjour Ilyes Effectivement, parfait ! Et merci pour le travail ! Je garde ce fichier .php en cas d'écrasement par une MAJ Divi ? Mais peut-être pourrais-je le mettre dans mon thème enfant et si oui, ou ça ? Les autres tickets seront sans doute plus simples, j'ai beau m'être casse la tête pour savoir comment fonctionne WPML, je suis loin de tous maîtriser ! Bonne journée et à bientôt, Vincent |
mai 24, 2024 à 3:37 pm #15668540 | |
Ilyes Supporter
Les langues: Anglais (English ) Français (Français ) Arabe (العربية ) Fuseau horaire: Pacific/Easter (GMT-06:00) |
Bonjour, Vous ne semblez pas avoir le fichier nécessaire dans le thème enfant, veuillez donc garder une copie de ce code. Gardez à l'esprit que nous travaillons sur l'implémentation d'un correctif pour ce problème dans les prochaines versions de Divi, donc vous n'aurez peut-être pas besoin d'ajouter ce code dans les prochaines versions, Et oui, merci pour votre patience avec WPML, c'est un plugin puissant, mais qui vient avec un peu de complexité dans des cas uniques comme celui-ci. Coridalement, |
mai 24, 2024 à 8:38 pm #15669165 | |
vincentd-56 |
Merci pour tout, j'ouvre mon ticket suivant 🙂 |