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 de WPML répond aux messages du forum 6 jours sur 7, 22 heures sur 24.

This thread is resolved. Here is a description of the problem and solution.

Problème:
L'utilisateur voudrait pouvoir traduire les liens sur une page.
Solution:
Les liens sont codés sur le fichier PHP, il faut mettre à jour le fichier.

Le problème sera résolut en adaptant le fichier PHP avec des modifications similaires à celle-ci:
Changer

<a href="<?php bloginfo('url'); ?>/barque-peche/">

A

<a href="<?php echo trailingslashit( get_bloginfo('url') ) . __('barque-peche', 'URL Slug'); ?>">
Auteur Messages
mai 8, 2019 à 2:08 #3767519

arnaudY

La dernière mise à jour a explosé toute ma configuration !!! Tout fonctionnait très bien jusqu'à présent et maintenant, mes slugs ne sont plus traduits, mes pages CPT archives affichent les produits dans toutes les langues, certains chaines ne sont plus traduites ! Bref, c'est n'importe quoi !
Il faut que je refasse tout depuis le début ou quoi ?

mai 8, 2019 à 2:48 #3767903

Jamal
Supporter

Languages: Anglais (English ) Français (Français )

Timezone: Africa/Casablanca (GMT+01:00)

Bonjour,

Merci d'avoir contacter l'assistance WPML. Je serais heureux de pouvoir vous aider.

Si vous avez une sauvegarde avant la mise à jour, veuillez restaurer cette sauvegarde pour rétablir votre site. Ensuite il est recommandé de faire la mise à jour sur un serveur de test avant de la faire sur le serveur de production.

Si vous n'avez pas de sauvegarde, je vous prie de détailler un problème su ce ticket, et de créer un ticket par problème, pour les règles de support, nous ne pouvons gérer qu'un problème à la fois. Cela nous aide à vous fournir un meilleur service et à aider les autres utilisateurs à trouver toutes les informations exposées.

Cordialement,
Jamal
Assistance WPML

mai 8, 2019 à 3:00 #3768005

arnaudY

Ok, alors commençons par le problème des slugs. Pourquoi la traduction des slugs ne se fait pas sur cette page hidden link ? C'est une page avec un template spécifique. Dois-je ajouter un <?php if (ICL_LANGUAGE_CODE == 'en') { ?> pour chaque lien ? Et pourquoi cela fonctionnait très bien avant ?
Merci.

mai 8, 2019 à 3:25 #3768497

Jamal
Supporter

Languages: Anglais (English ) Français (Français )

Timezone: Africa/Casablanca (GMT+01:00)

Bonjour,

Merci pour votre retour. Je viens de visiter la page, je pense que vous parlez des produist! Ils pointent sur des produits qui ont le même slug pour les deux langues. Est ce bien cela dont vous parler? Si ce n'est pas le cas je vous prie d'élaborer encore sur le problème.

Si c'est le cas, je pense qu'il faudrait effectivement mettre à jour la template. Les liens pour les produits contient 2 "/" comme sur hidden link, ce qui me laisse penser qu'il y a quelque chose codé sur la template.

Je voudrais surtout comprendre le problème que vous rencontrez. Est ce que les slugs étaient traduits ('bateau-loisirs' pour le français et 'recreational-boat' pour l'anglais) et maintenant ne le sont plus?

Pourriez vous m'accorder l'accès à votre backend pour que je puisse voir de plus prés? J'ai activé l'espace privé pour partager les accès. Veuillez faire une sauvegarde de votre base de données.

Cordialement,
Jamal

mai 8, 2019 à 4:14 #3768967

Jamal
Supporter

Languages: Anglais (English ) Français (Français )

Timezone: Africa/Casablanca (GMT+01:00)

Merci pour votre retour, mais je suis désolé, je ne vois toujours pas de quels slugs vous parlez?
Pourriez vous expliquer avec:
1. Je m'attends à avoir xxxxx.
2. J'ai par contre xxxxx.

Merci,
Jamal

mai 9, 2019 à 1:36 #3776551

arnaudY

Sur cette page hidden link, le liens de ma 1ère vignette image pointe vers cette URL hidden link alors qu'il devrait pointer vers hidden link.
Je n'ai jamais changé les slugs ni le code source. Tout fonctionnaite encore très bien il y a quelques semaines/mois.
Merci de m'aider, je ne comprends pas ce qu'il se passe.

mai 9, 2019 à 3:23 #3777693

Jamal
Supporter

Languages: Anglais (English ) Français (Français )

Timezone: Africa/Casablanca (GMT+01:00)

Bonjour,

Comme vous pouvez le voir sur la capture attachée, les liens sont codés sur le fichier PHP, il faut mettre à jour le fichier.

Actuellement je ne sais à quel niveau les slugs ont été enregistrés sur le domain "URL slug" sur votre capture (85421ba1-7acc-48b8-a8b0-cd530db7343f.png).

Je peux dire que le problème sera résolut en adaptant le fichier PHP avec des modifications similaires à celle-ci:

Changer

<a href="<?php bloginfo('url'); ?>/barque-peche/">

à

<a href="<?php bloginfo('url') . __('barque-peche', 'URL Slug'); ?>">

Mais je ne suis pas sûr. Il faudrait contacter l'auteur du thème pour qu'il met à jour le fichier pour prendre en compte les traductions WPML.

Finalement, ceci est un code personnalisée et ne rentre pas dans le cadre du support WPML, je vous suggère de contacter un de nos partenaires qui pourrait vous aider à mettre à jour votre thème.
https://wpml.org/contractors/

Best regards,
Jamal

mai 9, 2019 à 3:34 #3777753

arnaudY

Alors je peux très bien faire ça moi-même, merci. Je voulais avant tout comprendre pourquoi tout ça a changé alors que ça marchait très bien.
Je vais ouvrir d'autres tickets pour les autres problèmes.
Merci pour votre aide.

mai 9, 2019 à 4:14 #3777985

Jamal
Supporter

Languages: Anglais (English ) Français (Français )

Timezone: Africa/Casablanca (GMT+01:00)

Merci 🙂

Je vous prie de marquer ce ticket comme résolu si vous pensez que c'est bon.
Je reste à votre disposition.

Cordialement,
Jamal

mai 15, 2019 à 5:53 #3819255

arnaudY

Bonjour Jamal,

J'ai suivi vos instructions mais il manque encore quelque chose pour que ça fonctionne parfaitement.

Si j'ajoute

<a href="<?php bloginfo('url') . _e('barque-peche', 'URL Slug'); ?>">

, je me retrouve avec des slugs de ce type :
hidden link en anglais (parfait)
mais hidden link en français. Et là, ça ne va plus évidemment.

Notez au passage, l'utilisation du _e au lieu de __.

J'ai donc cherché à utiliser les fonctions home_url() ou site_url() et get_option() comme sur l'explication ici : https://wpml.org/fr/documentation-6/informations-pour-les-developpeurs/personnaliser-des-themes-multilingues/lien-vers-la-page-daccueil/ mais cela ne fonctionne pas comme je le voudrais car ce n'est pas hidden link qui s'affiche mais un lien relatif avec tout le chemin : hidden link

Vous pouvez le constater actuellement sur la page hidden link.

Comment puis-je faire pour avoir uniquement l'URL du site (hidden link) avec le "/" et son équivalent en anglais hidden link ?

Merci d'avance.

mai 16, 2019 à 6:47 #3822297

arnaudY

J'ai bien une solution qui consiste à renseigner _e('/barque-peche', 'URL Slug') (avec le "/") et à le traduire en angling-boats (sans le "/") mais ce n'est pas propre, je pense qu'on peut faire mieux, non ?

mai 16, 2019 à 9:25 #3823797

Jamal
Supporter

Languages: Anglais (English ) Français (Français )

Timezone: Africa/Casablanca (GMT+01:00)

Bonjour,

Vous pouvez utiliser get_bloginfo() qui retourne l'url du site, avec trailingslashit() qui ajouterait le "/" et finalement un echo pour écrire le résultat sur HTML:

<a href="<?php echo trailingslashit( get_bloginfo('url') ) . __('barque-peche', 'URL Slug'); ?>">

https://developer.wordpress.org/reference/functions/bloginfo/
https://developer.wordpress.org/reference/functions/trailingslashit/

Qu'en dites vous! pourriez vous le tester?
Je reste à votre disposition.

Cordialement,
Jamal

mai 16, 2019 à 10:27 #3824645

arnaudY

Excellent, merci ! Ça fonctionne ! Je ne connaissais pas trailingslashit(). 1 problème de réglé déjà !

mai 16, 2019 à 10:27 #3824649

arnaudY

Merci beaucoup !