Sauter la navigation

Ce sujet est résolu. Voici une description du problème et de la solution.

Problem:
If you're experiencing issues with a widget that calls a block with a menu not consistently displaying in the correct language, with categories and titles appearing in different languages at different times.

Solution:
Solution 1:
First, ensure that the block is translated. Then, in the widgets section, try creating two widgets: one with the block ID for the French version in the shortcode (e.g., [block id="siderar"]) and set it to display only in French. Create another widget with the English translation shortcode and set it to display in English.

Solution 2:
If you prefer to use a single widget, follow these steps:
1. Note that the shortcodes are different for each language. For example, in French, it's [block id="filtre-siderar"] and in English, it's [block id="filtre-sidebar"].
2. The block itself contains shortcodes, such as [ux_menu_link text="• Lavande" term="103"].
3. To make your shortcodes translatable, add the following code to "WPML > Settings > Custom XML Configuration":

<wpml-config>
  <shortcodes>
    <shortcode>
      <tag>block</tag>
      <attributes>
        <attribute>id</attribute>
      </attributes>
    </shortcode>
    <shortcode>
      <tag>ux_menu_link</tag>
      <attributes>
        <attribute>text</attribute>
        <attribute>term</attribute>
      </attributes>
    </shortcode>
  </shortcodes>
</wpml-config>

> This will make your shortcodes translatable.
4. In "Appearance > Widgets", instead of using a UX block widget and selecting the block, use a "Text" widget and add the shortcode [block id="filtre-siderar"].
> WPML will translate this shortcode to the English version.
5. For the [ux_menu_link text="• Lavande" term="103"] shortcode, the translation of the "text" attribute will now be considered, and you should see "Lavander". However, since the "term" attribute is a number, it won't be translatable in our editor, and your links will still point to the French category.
6. Go to "UX Blocks", switch to English, and edit the English version of this filter. Replace the category ID with the English category ID (e.g., replace 103 with 260 for the "lavender" category).
[ux_menu_link text="• Lavander" term="260"]

If this solution doesn't look relevant, please open a new support ticket.

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.

Aucun de nos assistants n'est disponible aujourd'hui sur le forum French. Veuillez créer un ticket, et nous nous le traiterons dès notre prochaine connexion. Merci de votre compréhension.

Marqué : 

Ce sujet contient 6 réponses, a 2 voix.

Dernière mise à jour par Nicolas Viallet Il y a 2 mois et 4 semaines.

Assisté par: Nicolas Viallet.

Auteur Articles
janvier 25, 2024 à 11:26 am #15225773

aurelienP-3

Hello,
I'm trying to update the fitres of the online store.
It's a widget that calls a block with a menu. All categories are well translated. So is the block, but when the page loads, the widget sometimes appears all in English, sometimes all in French... Sometimes only the categories and not the titles, in short, a real headache!

The url :
lien caché
Click on "FILTRER LES PRODUITS ".

block.png
widget.png
janvier 25, 2024 à 7:11 pm #15227896

Nicolas Viallet
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Merci d'avoir contacté le support de WPML. Voici quelques points à vérifier:
- Assurez vous que le block soit traduit
- Dans widgets, pouvez vous essayer de créer deux widgets, l'un avec l'ID du block FR dans le shortcode (ici [block id ="siderar"] ) et choisissez "affichez dans la langue : Français". Puis un autre widget le shortcode de la traduction Anglaise et "affichez dans la langue : Anglais"

janvier 26, 2024 à 8:50 am #15229071

aurelienP-3

Bonjour Nicolas,
merci.
Alors pour le block est bien traduit (voir capture).

Pour le widget, c'est un peu laborieux d'en créer un par langue, car ce ne sont QUE des liens vers des catégories et attributs de produits. Donc il faudrait pouvoir (mais ce n'est pas possible avec le thème) choisir une URL spécifique pour chaque lien.

Je n'ai le choix que de la catégorie a afficher - sans possibilité d'en choisir la langue (voir capture)...

Ne peut-on pas faire en sorte que la traduction fonctionne pour le Widget de manière automatique, en sachant que toutes mes catégories et attributs sont bien traduits ?

Capture d’écran 2024-01-26 à 09.48.16.png
Capture d’écran 2024-01-26 à 09.45.12.png
janvier 26, 2024 à 5:01 pm #15231271

Nicolas Viallet
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Pourriez vous me donner temporairement accès à votre admin (wp-admin et FTP) – de préférence sur une copie test de votre site où le problème a été reproduit - pour que je puisse tester ce widget?

J'ai activé un champ privé pour votre prochaine réponse où vous pourrez partager ces informations de manière confidentielle avec notre support. Ne partagez pas votre propre compte admin, créez un nouveau compte que vous pourrez éliminer une fois l'assistance terminée.

IMPORTANT: Avant de continuer, faites un backup complet de votre site et base de données.

janvier 29, 2024 à 4:25 pm #15239856

Nicolas Viallet
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Merci pour l'accès. Je n'ai pas fait grand chose mise à part mettre à jour la traduction du block.
J'ai testé plusieurs fois le filtre Anglais que ce soit pour les couleurs, les senteurs ou les effets et il est bien traduit et fonctionne correctement pour moi.

J'ai purgé le cache et j'ai même testé sur un autre navigateur, connecté et non connecté. Vous dites que l'erreur arrive parfois, savez vous comment puis-je la reproduire?

janvier 30, 2024 à 7:46 am #15241689

aurelienP-3

Bonjour Nicolas,
je ne comprend pas trop, si je vais sur le site staging (lien caché), cela ne fonctionne pas du tout.
Si vous regardez ça sur le site en live (lien caché), alors oui, car j'ai entièrement refais la Sidbar en version anglaise ! Mais ce n'est pas du tout la traduction WPML.

Mais l'idée est de trouver pourquoi cela ne fonctionne pas en traduction WPML.
La capture montre la version Live avec les 2 Sidebar, et donc cela fonctionne, mais je souhaiterai que cela fonctionne en traduisant le Block.

Or sur le staging donc je vous ai donné l'accès cela ne marche pas : lien caché

Merci de m'éclairer sur ce point.
Aurélien.

version EN.png
janvier 30, 2024 à 4:19 pm #15245602

Nicolas Viallet
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Pardon, je pense que j'ai suivi un lien qui m'a renvoyé sur le site de production. En effet le filtre ne fonctionne pas sur la copie staging.

Pour moi, avoir les deux widgets reste une solution valable mais voici comment résoudre le problème avec un seul widget:
1. Les shortcodes sont différents
En français le shortcode pour ce block est [block id="filtre-siderar"] et en Anglais le shortcode est [block id="filtre-sidebar"]
2. Le block lui même contient des shortcodes par example [ux_menu_link text="• Lavande" term="103"]

Comment résoudre cela:
1. Dans "WPML > Paramètres > Configuration XML personnalisée" ajoutez ce code:

<wpml-config>
  <shortcodes>
    <shortcode>
      <tag>block</tag>
      <attributes>
        <attribute>id</attribute>
      </attributes>
    </shortcode>
    <shortcode>
      <tag>ux_menu_link</tag>
      <attributes>
        <attribute>text</attribute>
        <attribute>term</attribute>
      </attributes>
    </shortcode>
  </shortcodes>
</wpml-config>

> Cela rendra vos shortcodes traduisibles.

2. Dans "Apparence > Widgets" au lieu d'utiliser un widget UX block et sélectionner le block, utilisez un widget "Texte" et ajoutez le shortcode [block id="filtre-siderar"]
>WPML pourra traduire ce shortcode et obtenir la version EN

3. [ux_menu_link text="• Lavande" term="103"]
Maintenant la traduction du shortcode et de son attribut "text" sera prise en compte, vous verrez "Lavander". Cependant l'attribut term étant un numéro, il ne sera pas traduisible dans notre éditeur. Vos liens pointeront toujours vers la catégorie FR!

4. Allez dans "UX Blocks", basculez en Anglais et éditez la version EN de ce filtre
Dans mon example, remplacez 103 (ID de la catégorie lavande FR) par 260 (ID de la catégorie lavander EN)
[ux_menu_link text="• Lavander" term="260"]

J'ai fait le test seulement avec lavander. Allez sur cette page lien caché puis ouvrez le filtre et regardez le lien "lavander" il pointe bien vers la catégorie EN alors que les autres lien sont toujours en FR.

janvier 31, 2024 à 8:45 am #15247901

aurelienP-3

Parfait Nicolas,
cela fonctionne très bien ainsi aussi.

Merci,
bonne journée.

aurelienP-3 a confirmé que le problème avait été résolu sur 2024-01-31 08:45:23.
This ticket is now closed. If you're a WPML client and need related help, please open a new support ticket.