[Résolu] Partage: Les menus de navigation wp_navigation ne sont pas traduits par WPML
Ce sujet est résolu. Voici une description du problème et de la solution.
Problème : Le client utilise le thème GeneratePress et a ajouté des éléments via des hooks WordPress et des hooks personnalisés. Ces éléments s'affichent correctement en français, mais dans d'autres langues, la barre latérale ne s'affiche pas, ce qui affecte le design du site. Solution : Si vous rencontrez ce problème, nous vous recommandons de suivre ces étapes pour résoudre le problème de hook manquant dans les traductions : 1. Accédez à "WPML > Réglages > Champs personnalisés" dans votre tableau de bord WordPress. 2. Cliquez sur "Afficher les champs système" pour voir plus d'options. 3. Trouvez "_generate_custom_hook" et définissez sa préférence de traduction sur "COPIER". 4. Effectuez une petite modification dans le contenu traduit et enregistrez à nouveau pour appliquer les changements. Cela devrait permettre d'afficher correctement le hook woocommerce_listing_sidebar dans la traduction anglaise.
Il est possible que cette solution devienne obsolète ou qu'elle ne s'applique pas à votre cas. Nous vous recommandons vivement de consulter les problèmes connus, de vérifier la version du correctif permanent et de confirmer que vous avez installé les dernières versions des thèmes et plugins. Si le problème persiste, n'hésitez pas à 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.
Super ça fonctionne !
Cependant je ne sais pas comment faire pour régler un problème similaire : j'utilise GeneratePress comme thème et il me permet d'ajouter des éléments sur le site à différents endroits (en-tête, hooks WordPress mais aussi hooks personnalisés).
Tous les éléments sont bien chargés, à part sur la boutique du site :
En français on a bien la barre latérale à gauche : lien caché
Dans les autres langues elle n'apparaît pas et ça casse le design :
lien caché lien caché
Et pourtant l'élément est bien traduit et si j'ajoute par le code du contenu sur le hook qui affiche la barre latérale, il s'affiche dans toutes les langues.
lien caché
Je sais que c'est un autre sujet mais peut-être qu'une action similaire pour re-synchroniser les informations ?
Les langues: Anglais (English )Allemand (Deutsch )Français (Français )
Fuseau horaire: Europe/Zagreb (GMT+02:00)
Pouvez-vous me dire s'il existe un modèle de page que vous sélectionnez pour la page de la boutique? Si c'est le cas, pouvez-vous ouvrir la page traduite de la boutique et vérifier si le même modèle de page est attribué?
Merci pour votre retour.
En fait je n'utilise aucune condition sur l'affichage de cet élément, il est affiché sur tout le site dans les réglages de GeneratePress.
Comme il est défini sur un hook WordPress qui n'est exécuté que sur les pages de la boutique, recherche et catégories de produits, je n'ai pas besoin de cibler ces éléments spécifiquement.
Après il s'agit d'un hook personnalisé que j'ai créé et que j'exécute par le code, mais là-encore, il est exécuté dans toutes les langues (j'ai testé).
Donc je ne pense pas que le problème vienne de la condition. Et il n'y pas de modèle spécifique pour la boutique, j'utilise la boutique de WooCommerce par défaut et c'est par le code que je change le visuel des éléments (CSS et un peu de PHP pour changer l'ordre).
Cette barre latérale s'exécute de toute manière en dehors de la boucle des produits donc je ne pense pas que ça soit lié, qu'en dites-vous ?
J'ai ajouté le même code pour ajouter la sidebar avant la liste des produits. Je l'ai ajouté directement à la fin du functions.php du thème GeneratePress.
Voici le résultat :
lien caché
J'ai mis un code en PHP pour exécuter du contenu sur ce hook
Et j'ai ajouté un élément GeneratePress sur ce hook par l'interface.
Problème, si on passe en anglais ça ne marche pas car il n'y a aucun produit à afficher :
lien caché
Il faudrait installer le plugin WPML multilingual pour WooCommmerce et traduire ce produit pour voir. Pouvez-vous vous en occuper ?
Si le problème est le même ! En anglais le bloc generatepress ne s’affiche pas alors qu’il s’affiche en fr, si vous comparez les 2.
Par contre ce qui est très étrange c’est que en anglais, si on est connecté en admin, dans la barre d’admin on voit le menu « éléments ». Ce menu permet de voir les éléments exécutés sur la page et apparement l’élément est exécuté mais il ne s’affiche pas.
Vous voyez ce que je veux dire ? Vous avez ce qu’il faut pour tester ça ?
Les langues: Anglais (English )Allemand (Deutsch )Français (Français )
Fuseau horaire: Europe/Zagreb (GMT+02:00)
Ok, donc pour confirmer, le problème est sur lien caché, cette partie « woocommerce_listing_sidebar appelé depuis GeneratePress » est manquante?
Si oui, pouvez-vous me donner des informations sur l'endroit où la fonction est ajoutée dans le backend? Une capture d'écran ou l'URL ferait l'affaire.
Je vais faire remonter l'information à notre équipe de compatibilité.
Les langues: Anglais (English )Allemand (Deutsch )Français (Français )
Fuseau horaire: Europe/Zagreb (GMT+02:00)
Ce problème a été escaladé à notre équipe de compatibilité pour une analyse plus approfondie, ce qui peut prendre un certain temps de débogage. Je ne peux pas donner de délai précis pour la résolution en raison de leur file d'attente, mais des solutions de contournement initiales sont généralement fournies sous 1 à 2 jours. Je vous tiendrai informé dès que j'aurai des nouvelles ou des questions.
Les langues: Anglais (English )Allemand (Deutsch )Français (Français )
Fuseau horaire: Europe/Zagreb (GMT+02:00)
Vous pouvez résoudre le problème du nom de hook manquant dans la traduction anglaise en suivant ces étapes :
1. Allez dans **"WPML > Réglages > Champs personnalisés"** dans votre tableau de bord WordPress.
2. Cliquez sur **"Afficher les champs système"** pour voir plus d’options.
3. Trouvez **"_generate_custom_hook"** et définissez sa préférence de traduction sur **"COPIER"**.
4. Effectuez une petite modification dans le contenu traduit et **enregistrez à nouveau** pour appliquer les changements.
Cela devrait permettre d'afficher correctement le hook **woocommerce_listing_sidebar** dans la traduction anglaise. N’hésitez pas à me contacter si vous avez besoin d’aide supplémentaire !