Sauter la navigation

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.

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

Dernière mise à jour par christelleS-4 Il y a 1 an et 8 mois.

Assisté par: Nicolas Viallet.

Auteur Articles
août 18, 2022 à 2:02 pm #11887565

christelleS-4

Bonjour,

Mon site est paramétré en 2 langues (français par défaut, anglais comme seconde langue)

Sur une page construite avec Elementor, j'utilise le widget Elementor "code court" pour afficher ce shortcode : [listdom id="504"]. Le shortcode provient du plugin LISTDOM.

Je cherche à modifier l'attribut id du shortcode pour la page traduite (page en anglais).
Dans l'éditeur avancé de traduction WPML, je n'ai pas accès à l'édition de cet attribut id.

J'ai suivi cette documentation https://wpml.org/documentation/support/language-configuration-files/how-to-register-page-builder-widgets-for-translation/
ainsi que l'aide sur ce ticket : https://wpml.org/forums/topic/elementor-and-ate-issue/

1/ settings WPML : _elementor_data en Translate.
2/ création nouvelle page Elementor qui contient uniquement le widget code court avec le shortcode [listdom id="504"]
3/ settings WPML : activation de l'éditeur classique
4/ traduction de la nouvelle page pour obtenir le tableau sérialisé

[{"id":"4b7e859","elType":"section","settings":{"pa_condition_repeater":[{"_id":"3a664be"}]},"elements":[{"id":"cd6c717","elType":"column","settings":{"_column_size":100,"_inline_size":null,"pa_condition_repeater":[{"_id":"b113608"}]},"elements":[{"id":"72661c1","elType":"widget","settings":{"shortcode":"[listdom id=\"504\"]","pa_condition_repeater":[{"_id":"75e8816"}]},"elements":[],"widgetType":"shortcode"}],"isInner":false}],"isInner":false}]

5/ settings WPML : Configuration Custom XML

<wpml-config>
<shortcodes>
<shortcode>
<tag>listdom</tag>
<attributes>
<attribute>id</attribute>
</attributes>
</shortcode>
</shortcodes>
</wpml-config>

6/ settings WPML : paramètres remis à défaut (_elementor_data en "Copier une fois" et editeur avancé réactivé

7/ traduction de la nouvelle page avec l'éditeur avancé
=> Je ne peux toujours pas traduire l'attribut id du shortcode (voir image jointe)

Est-ce que la configuration XML n'est pas bonne ?
Faut-il que j'utilise le tag <elementor-widgets> au lieu de <shortcodes> ?

Merci d'avance pour toute aide que vous pourrez m'apporter,

Christelle

FireShot Capture 1459 - Advanced Translation Editor - WPML - e.ate.wpml.org.png
août 18, 2022 à 4:22 pm #11888979

Nicolas Viallet
Supporter

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

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

Bonjour,

Bienvenue sur le support de WPML.

je pense que le widget "shortcode" d'Elementor mais pas traduisible. De plus WPML ne vous laissera pas traduire une valeur si c'est un simple chiffre.

Pourriez vous essayer avec un widget "HTML" à la place?
Ensuite vous pourrez traduire le shortcode depuis "WPML > Traduction de chaînes" et ainsi changer l'ID.

Nico

août 18, 2022 à 4:42 pm #11889057

christelleS-4

Bonjour Nicolas,

Merci pour votre retour.
J'ai essayé votre recommandation : insérer le shortcode [listdom id="504"] dans le widget Elementor HTML.
J'ai traduit le shortcode dans WPML -> Traduction de chaînes
=> le shortcode a bien été traduit [listdom id="924"]

Problème :
Une fois le shortcode traduit, si je modifie le contenu de la page originale (mise à jour d'un texte par exemple), et que je traduis à nouveau la page.
=> la traduction du shortcode est perdue

août 18, 2022 à 5:42 pm #11889313

Nicolas Viallet
Supporter

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

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

Re bonjour,

C'est étrange car normalement les widgets Elementor sont enregistrés dans la traduction de chaînes avec l'ID de la page (ID ne change pas jamais).

Par exemple dans "Traduction de chaînes" si vous avez le domain "elementor-163" cela signifie que ce sont les chaînes présentes dans Elementor sur la page qui a l'ID 163.

La traduction du shortcode devrait donc rester enregistrée.
- Est-elle encore présente dans "traduction de chaines" ?
- Si vous ouvrez la traduction et que vous la sauvegardée de nouveau, est-ce que cela résout le problème?
- Utilisez vous la traduction automatique pour traduire votre page?

Nico

août 18, 2022 à 6:24 pm #11889397

christelleS-4

Pour répondre à vos questions :
Après la traduction du shortcode (dans Traduction de chaine), puis mise à jour de la page d'origine :
- La traduction du shortcode dans "Traduction de chaînes" est bien présente (icône crayon) MAIS le shortcode traduit = shortcode de la page d'origine.
- Non je traduis manuellement (pas de traduction automatique)

Je n'ai pas bien saisi votre 2ème question ; est-ce que je dois accéder à la traduction de la page en utilisant le switcher de langue présent dans la topbar ?

1_html-shortcode-string-translation.png
2_traduction-shortcode-perdue-apres-update-page-origine.png
août 18, 2022 à 7:46 pm #11889637

Nicolas Viallet
Supporter

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

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

Merci pour cette clarification.

Pou revenir à ma deuxième question:
Donc oui la traduction est perdue dans le sens ou le shortcode copié depuis l'original.

Mais si vous mettez à jour cette traduction dans string translation, est-ce qu'elle est bien prise en compte à nouveau?

J'attends votre réponse pour essayer de reproduire le problème sur un site test.

Nico

août 18, 2022 à 8:11 pm #11889691

christelleS-4

Oui, si je remet à jour une nouvelle fois la traduction du shortcode (dans Traduction de chaînes), elle est bien prise en compte (la page traduite affiche à nouveau le shortcode traduit)

août 18, 2022 à 8:45 pm #11889759

christelleS-4

Je tiens à préciser qu'après ma 1ère tentative de traduire le shortcode avec WPML-CONFIG, j'ai enlevé tout le code présent dans l'onglet "Configuration XML personnalisée" et j'ai remis la traduction du champ personnalisé "_elementor_data" sur "Copier une fois".
Si cela peut vous aider...

août 19, 2022 à 12:13 pm #11893581

Nicolas Viallet
Supporter

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

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

Bonjour Christelle,

Merci pour ces précisions. J'ai réussi à reproduire l'erreur sur un site test. Je vais demander à notre équipe de compatibilité s'il s'agit d'un bug, s'il faut changer quelque chose dans le fichier wpml-config.php ou si c'est le comportement normal attendu.

En attendant, veuillez penser à vérifier cette traduction dans "String Translation" à chaque fois que vous mettez à jour votre page.

Nico

août 19, 2022 à 12:37 pm #11893691

christelleS-4

Merci Nicolas,

Dans l'attente de votre retour, je vous souhaite de passer un bon weekend,
Christelle

août 19, 2022 à 7:13 pm #11895259

Nicolas Viallet
Supporter

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

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

Re bonjour,

Avez-vous essayé de mettre le shortcode dans un simple widget "Texte"? Le plugin "listdom" devrait Être capable de le détecter.

Sinon j'ai reçu une autre solution.
1/ Ajoutez ce dans votre fichier functions.php

/**
 * Allow translating numbers
 *
 */
function wpmlsupp_7499_allow_translating_numbers( $is_translatable, $job_translate ) {
    $data = $job_translate['field_data'];

	if ( 'base64' === $job_translate['field_format'] ) {
		$data = base64_decode( $data );
	}

    if ( is_numeric( $data ) ) {
    	return true;
    }

    return $is_translatable;
}
add_filter( 'wpml_tm_job_field_is_translatable', 'wpmlsupp_7499_allow_translating_numbers', 10, 2 );

2/ Ajouter à nouveau votre code dans wpml-config.php pour enregistrer le widget

3/ Utilisez l'éditeur de traduction classique (CTE) dans "WPML > Paramètres > Éditeur de traduction"

4/ Faites une petite modification sur l'original pour que le code soit pris en compte puis éditez la traduction vous devriez pouvoir traduire l'ID du shortcode

Nico

août 20, 2022 à 11:50 am #11897187

christelleS-4

Bonjour Nicolas,

Oui, j'avais testé avec le shortcode listdom dans un widget "Editeur de texte".
Mais la traduction du shortcode était également perdue suite à une mise à jour de la page originale (et de plus, la traduction du shortcode avait une valeur très bizarre :
<p>[listdom id="504" [id="924"]]</p>
Je n'ai plus la traduction exacte en tête, mais c'était quelque chose dans ce style.

Concernant l'autre solution proposée, je l'ai testée en suivant vos instructions (excepté que je n'ai pas changé l'éditeur en CTE, car idéalement je souhaitais conserver l'éditeur ATE).
Résultat : L'ID du shortcode était bien modifiable dans l'éditeur ATE.
Problème : la traduction du shortcode ne marchait pas

En vérifiant dans "Traductions de chaînes" :
- L'ID du shortcode était bien traduit (FR:504 -> EN:924)
- mais le shortcode n'était pas traduit (FR:[listdom id="504"] -> EN:[listdom id="504"])
Vous pouvez voir les pièces-jointes, ce sera plus parlant.

Actuellement, n'ayant trouvé aucune solution avec l'éditeur ATE, j'ai changé l'éditeur en CTE.
Avec l'éditeur CTE, je n'ai aucun soucis à traduire manuellement le shortcode. Et le shortcode reste bien traduit même après la mise à jour de la page originale. (PS : la fonction wpmlsupp_7499_allow_translating_numbers() a été enlevée du fichier functions.php)

Idéalement, j'aurai préféré conserver l'éditeur ATE...la solution du shortode insérée dans le widget HTML d'Elementor m'aurait arrangée, mais comme la traduction du shortcode est perdue après chaque mise à jour de la page originale, ce n'est pas une solution viable.

Pourquoi la traduction du shortcode dans l'éditeur ATE est-elle si difficile alors que celle-ci marche nativement dans l'éditeur CTE ?

Y a t-il des inconvénients majeurs à ne pas utiliser l'éditeur ATE ? (hormis la traduction automatique, dont je n'ai pas besoin).
Est-ce que l'éditeur CTE est amené à disparaitre dans un futur proche ?

Merci d'avance pour votre retour,
Christelle

tracution-CTE-shortcode-widget-elementor_OK.png
shortcode-widget-strings-translation-01.png
shortcode-widget-strings-translation-02.png
août 20, 2022 à 5:06 pm #11898129

Nicolas Viallet
Supporter

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

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

Bonjour,

1/ Je comprends que vous souhaitiez garder ATE (vous pouvez le désactiver seulement pour cette page, et le garder pour le reste de votre site).

2/ J'ai trouvé cet errata qui concerne Divi mais il semble s'appliquer à différents theme builder:
https://wpml.org/errata/page-builders-translated-content-is-overwritten-with-the-original-when-updating-the-original-post/

Essayez d'ajouter ce code à votre fichier wp-config.php, cela devrait stopper les mises à jour automatiques des traductions:

define( 'WPML_TRANSLATION_AUTO_UPDATE_ENABLED', false );

3/ Enfin concernant CTE, il n'est pas amener à disparaître car actuellement les traductions qui ont été faites avec CTE (pour les clients anciens par exemple) ne sont pas accessible depuis ATE. Donc ces clients perdraient toutes les traductions faites avant l'existence de ATE. C'est pour cela que dans "WPML > Paramètres > Éditeur de traduction" vous avez l'option:

Éditeur pour les traductions précédemment créées à l'aide de l'Éditeur de traduction classique
Éditeur de traduction classique (recommandé)

Nico

août 21, 2022 à 12:55 pm #11900185

christelleS-4

Bonjour Nicolas,

Merci pour votre retour.
Voici mes commentaires :
1/ Etant donné que je vais avoir d'autres shortcodes (formulaires, sliders...) à insérer sur d'autres pages (avec des contenus textes susceptibles d'être modifiés), je préfère ne pas passer en traduction manuelle, le client final risque d'être perdu au niveau de la gestion des traductions (avec/sans éditeur).

2/ Je n'ai pas encore testé le code dans wp-config.php
Avez-vous un lien vers la documentation de ce code (je ne l'ai pas trouvé) ?

3/ Merci c'est rassurant 🙂

Actuellement, j'ai basculé sur l'éditeur classique pour la création de nouvelles traductions.

Je rencontre un problème sur une page (qui avait été initialement traduite avec ATE) :
L'éditeur CTE m'affiche 2 blocs "Page Builder Page 75"
- le premier bloc est ok (concerne les widgets Elementor)
- le deuxième bloc affiche "wpml_string_wrapper:content" (répétition de mes contenus Elementor)

J'ai supprimé la traduction existante, et refais une nouvelle traduction avec CTE.
Ce deuxième bloc s'affiche toujours.
Comment faire pour qu'il ne s'affiche plus ?
Il me semble que ce bloc est apparu suite à la configuration de wpml-config.xml (qui est vide actuellement)
J'ai trouvé ce ticket en relation : https://wpml.org/forums/topic/problem-with-duplicate-content-in-wpml_string_wrapper-content/

Merci d'avance pour votre aide,
Christelle

wpml_string_wrapper_content_CTE.png
août 23, 2022 à 2:00 pm #11913153

Nicolas Viallet
Supporter

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

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

Bonjour,

1/ Oui je comprends

2/ Malheureusement je n'ai trouvé aucune documentation pour cette constant autre que l'errata fourni

3/ Oui, maintenant que le bloc est enregistré pour cette page, il apparaitra dans les traductions. Supprimer la traduction ne résoudra pas le problème puisque le bloc est attaché à la page originale. Je pense qu'il faudrait créer une nouvelle page originale depuis zéro (sans utiliser un plugin de duplication de page).

Cordialement,
Nico

This ticket is now closed. If you're a WPML client and need related help, please open a new support ticket.