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.

Bonjour & bienvenue sur le forum de soutien WPML. En raison des vacances, le forum français est fermé du 25 Avril à 11 Mai. D'ici là, veuillez vous adresser à notre support en anglais. Nous vous remercions pour votre compréhension et de votre patience. Équipe de soutien WPML

Sun Mon Tue Wed Thu Fri Sat
- 7:00 – 15:00 7:00 – 15:00 7:00 – 15:00 7:00 – 15:00 7:00 – 15:00 -
- - - - - - -

Fuseau horaire du supporter: Pacific/Easter (GMT-06:00)

Ce sujet contient 1 réponse, a 1 voix.

Dernière mise à jour par Nicolas V. Il y a 4 jours et 5 heures.

Assisté par: Ilyes.

Auteur Articles
Avril 4, 2025 at 10:32 am #16896791

pierre-yvesL

Contexte de la question:
J'étais en ligne avec le support quand le ticket a été fermé. Mon problème vient du fait qu'on ne peut pas traduire dans le fil d'Ariane le terme "Produits" (CPT). Je souhaiterai traduire le terme "Produits" dans toutes les langues mais je ne vois pas le terme dans "traduction de chaine". Voici le lien vers la page où le problème peut être vu: lien caché

Symptômes:
Je ne vois pas le terme "Produits" dans "traduction de chaine".

Questions:
Pourquoi le terme "Produits" n'apparaît-il pas dans "traduction de chaine"?
Comment puis-je traduire le terme "Produits" dans toutes les langues?

Avril 4, 2025 at 10:33 am #16896819

pierre-yvesL

Voici le fil d'Ariane qui pose problème :

Capture d’écran 2025-04-04 à 11.47.48.png
Avril 4, 2025 at 8:50 pm #16899064

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,

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.

Avril 11, 2025 at 10:00 pm #16924647

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-06:00)

Bonjour,

Ce fil d'Ariane appelle le nom du custom post type, habituellement, lorsqu'un CPT est créé avec ACF via l'interface graphique, vous pouvez traduire les libellés comme indiqué ici : https://wpml.org/compatibility/2024/04/acfml-2-1-0-translate-labels-for-acf-custom-posts-taxonomies-options-pages/

Mais je vois que vous avez créé ces CPTs via un JSON, n'est-ce pas ? et je vois que le fil d'Ariane est appelé par "display_yoast_breadcrumb() ;" sous /www/wp-content/themes/nobi_theme/template-parts/single/produit/produit-header.php

Donc dans ce cas, cette fonction n'est pas capable de charger le nom de post dans la bonne langue puisqu'il n'a pas été traduit,

Puisque vous avez codé en dur ces custom post types, pourriez-vous expliquer où et comment vous avez créé ces CPTs ? J'aimerais vérifier son code, car le nom n'est détectée comme traduisible nulle part.

Indiquez-moi le nom du fichier,

Merci,

Avril 14, 2025 at 12:20 pm #16929173

pierre-yvesL

Voici le fichier json du CPT "Produit" :

<?php
/*
* Plugin Name: Produit
* Description: CPT Produit
* Version: 1.0
* Author: Nobilito
* Author URI: lien caché
*
* @link : https://developer.wordpress.org/reference/functions/register_post_type/
* $title_cpt
* $title_cpt_singular
* $slug_cpt : même contraintes d'une URL, utiliser des traits d'union, sans espace, ni caractères spéciaux, accentués
* $cpt_name : toujours au singulier, en français, en minuscules et _ si besoin, 20 caractères maxi
* $supports
* $taxos
*/
function cptui_register_cpt_produit()
{
$title_cpt = "Produits"; // Nom du CPT au pluriel visible dans le BO
$title_cpt_singular = "Produit"; // Nom du CPT au singulier visible dans le BO
$slug_cpt = "produits-archive"; // URL au pluriel de la page d'archive du CPT + base pour les singles
$cpt_name = 'produit'; // Identifiant du CPT au singulier utilisé dans le code
$supports = [
"title",
"editor",
"thumbnail",
"excerpt",
"revisions",
"author"
]; // Champs natifs autorisés
$taxos = [
'marche'
]; // $taxo_name des taxos rattachées

$labels = [
"name" => esc_html__($title_cpt, "nobi_theme"),
"singular_name" => esc_html__($title_cpt_singular, "nobi_theme"),
"menu_name" => esc_html__($title_cpt, "nobi_theme"),
"all_items" => esc_html__("Tous", "nobi_theme"),
"add_new" => esc_html__("Ajouter", "nobi_theme"),
"add_new_item" => esc_html__("Ajouter", "nobi_theme"),
"edit_item" => esc_html__("Modifier", "nobi_theme"),
"new_item" => esc_html__("Nouveau", "nobi_theme"),
"view_item" => esc_html__("Voir", "nobi_theme"),
"view_items" => esc_html__("Voir", "nobi_theme"),
"search_items" => esc_html__("Rechercher", "nobi_theme"),
"not_found" => esc_html__("Aucun", "nobi_theme"),
"not_found_in_trash" => esc_html__("Aucun", "nobi_theme"),
"parent" => esc_html__("Parent", "nobi_theme"),
"featured_image" => esc_html__("Image à la une", "nobi_theme"),
"set_featured_image" => esc_html__("Définir", "nobi_theme"),
"remove_featured_image" => esc_html__("Retirer", "nobi_theme"),
"use_featured_image" => esc_html__("Utiliser", "nobi_theme"),
"archives" => esc_html__("Archives", "nobi_theme"),
"insert_into_item" => esc_html__("Insérer", "nobi_theme"),
"uploaded_to_this_item" => esc_html__("Téléchargé", "nobi_theme"),
"filter_items_list" => esc_html__("Filtrer", "nobi_theme"),
"items_list_navigation" => esc_html__("Navigation", "nobi_theme"),
"items_list" => esc_html__("Liste", "nobi_theme"),
"attributes" => esc_html__("Attributs", "nobi_theme"),
"name_admin_bar" => esc_html__($title_cpt, "nobi_theme"),
"item_published" => esc_html__("Publié", "nobi_theme"),
"item_published_privately" => esc_html__("Publié en privé", "nobi_theme"),
"item_reverted_to_draft" => esc_html__("Repassé en brouillon", "nobi_theme"),
"item_scheduled" => esc_html__("Planifié", "nobi_theme"),
"item_updated" => esc_html__("Mis à jour", "nobi_theme"),
"parent_item_colon" => esc_html__("Parent", "nobi_theme"),
];

$args = [
"label" => esc_html__($title_cpt, "nobi_theme"),
"labels" => $labels,
"description" => "",
"public" => true,
"publicly_queryable" => true,
"show_ui" => true,
"show_in_rest" => true,
"rest_base" => "",
"rest_controller_class" => "WP_REST_Posts_Controller",
"has_archive" => $slug_cpt,
"show_in_nav_menus" => true,
"delete_with_user" => false,
"exclude_from_search" => false,
"capability_type" => "post",

"hierarchical" => false,
"rewrite" => [
"slug" => $slug_cpt,
"with_front" => false
],
"query_var" => true,
"supports" => $supports,
"taxonomies" => $taxos,
];

// CPT visible uniquement sur le site Environment
if (get_current_blog_id() === 3) {
$args["show_in_menu"] = true;
} else {
$args["show_in_menu"] = false;
}

register_post_type($cpt_name, $args);

}

add_action('init', 'cptui_register_cpt_produit');

Avril 14, 2025 at 10:02 pm #16931341

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-06:00)

Vous utilisez

"label" => esc_html__($title_cpt, "nobi_theme"),

pour le label du nom, mais __() (et ses variantes comme esc_html__()) requièrent des chaînes littérales - et non des variables - pour être détectées par WPML ou les outils gettext (comme wp i18n make-pot). Comme $title_cpt est une variable, il ne sera pas détecté pour la traduction.

cela peut être facilement corrigé en le changeant en :

"title" => esc_html__("Produits", "nobi_theme"),

Faites de même pour $title_cpt_singular et partout où vous passez une variable dans esc_html__() ou __().

Après ce changement, rechargez le thème et vous trouverez la nouvelle chaîne listée sous WPML > String translation.

Avril 18, 2025 at 12:38 pm #16947311

pierre-yvesL

Bonjour,

Nous avons mis en place votre solution sur les fichiers mu-plugin des CPT :
exemple :
"name" => esc_html__($taxo_title, "nobi_theme"),
Cela ne corrige pas le problème malgré tout car nous avons remouliné les thèmes puis vérifié dans les traductions de chaine mais nous retrouvons pas le terme "Produits" par exemple (Cf aperçu).

Capture d’écran 2025-04-18 à 14.35.56.png
Avril 21, 2025 at 12:11 pm #16951796

Nicolas V.
Supporter

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

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

Bonjour Pierre Yves,

Ilyes n'est pas disponible aujourd'hui à cause des fêtes de Pâques. je me permets donc d'intervenir pour vous aider à résoudre ce problème.

Je vois que vous utilisez Yoast SEO pour gérer votre breadcrumbs. Il y a une solution simple, car le plugin vous permet de choisir le nom de chaque CPT dans le fil d'Ariane.

- Allez dans "Yoast > Réglages > Types de contenu > (Afficher plus) > Produits"
- Tout en bas de la page, dans "Réglages supplémentaires", ajouter le nom pour le fil d'Ariane: "Produits".

- Allez ensuite dans "WPML > Traduction de chaînes" et recherchez "Produits". Vous trouverez une chaîne avec l'intitulé: [wpseo_titles]bctitle-ptarchive-produit

- Traduisez la

lien caché