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.

Le problème :
Je tente de traduire "dans mon panier" (bouton d'achat de ma fiche produit) et '"je commande" le bouton d'achat qui est dans le panier déroulant.

La solution:
- Utilisez des fonctions GetText():

function my_woocommerce_product_single_add_to_cart_text() {
    return __('dans  mon  panier,'nom_de_mon_theme');

Documentation:
https://wpml.org/documentation/support/troubleshooting-string-localization/#2-textdomain-argument-is-set-and-its-value-correct

Mots-clés : 

This topic contains 5 réponses, has 2 participants.

Last updated by Andrés il y a 1 an et 3 mois.

Assigned support staff: Andrés.

Auteur Messages
août 24, 2018 à 1:07

gregoireN

Je tente de : traduire "dans mon panier" (bouton d'achat de ma fiche produit) et '"je commande" le bouton d'achat qui est dans le panier déroulant (il faut mettre un produit dedans pour voir)

URL de (mon) site Internet où le problème apparaît : hidden link

Je m'attendais à voir : ces expressions en anglais

À la place, j'ai obtenu : elles ne sont pas traduites car j'ai changé les intitulés en utilisant des hooks dans le fichier functions.php de mon thème enfant

août 24, 2018 à 2:06 #2673359

Andrés
Supporter

Languages: Anglais (English ) Espagnol (Español ) Français (Français )

Timezone: Europe/Paris (GMT+01:00)

Bonjour,

Bienvenue à l'assistance technique de WPML.

1. Pouvez-vous partager les hooks utilisés pour modifier votre WooCommerce ?

2. N'ouvliez pas l'utilisation des fonctions GetText() au moment de modifier vos chaînes de texte:

<?php _e('Leave a reply','gogotheme'); ?>

https://wpml.org/documentation/support/troubleshooting-string-localization/#2-textdomain-argument-is-set-and-its-value-correct

Cordialement,
Andrés

août 24, 2018 à 2:38 #2673490

gregoireN

Pour le panier de la fiche produit, j'ai mis ceci :

function my_woocommerce_product_single_add_to_cart_text() {
    return 'dans  mon  panier !';
}
add_filter( 'woocommerce_product_single_add_to_cart_text', 'my_woocommerce_product_single_add_to_cart_text', 20 );

Pour le bouton commande du panier, j'ai mis ceci :

// changement texte bouton menu déroulant du panier
remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );

function my_woocommerce_widget_shopping_cart_proceed_to_checkout() {
    echo '<a href="' . esc_url( wc_get_checkout_url() ) . '" class="button checkout wc-forward">'. esc_html__( 'Je commande', 'woocommerce' ) .'</a>';
}

add_action( 'woocommerce_widget_shopping_cart_buttons', 'my_woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );

Il y a aussi les titres des onglets que j'ai ajoutés qui ne se traduisent pas :

function woo_caracteristique_product_tab( $tabs ) {
        // Adds the new tab
    $tabs['caracteristique_tab'] = array(
        'title'     => __( 'Caractéristiques', 'woocommerce' ),
        'priority'  => 9,
        'callback'  => 'woo_caracteristique_product_tab_content'
    );

    return $tabs;
}
add_filter( 'woocommerce_product_tabs', 'woo_caracteristique_product_tab' );
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
    
    // Adds the new tab
    
    $tabs['details_tab'] = array(
        'title'     => __( 'Détails', 'woocommerce' ),
        'priority'  => 10,
        'callback'  => 'woo_new_product_tab_content'
    );

    return $tabs;
}

Je ne connais rien aux fonctions GetText(); merci pour votre aide !

août 24, 2018 à 3:05 #2673572

Andrés
Supporter

Languages: Anglais (English ) Espagnol (Español ) Français (Français )

Timezone: Europe/Paris (GMT+01:00)

En effet, vous devez rajouter une fonction GetText() comme s'explique sur le lien que je vous ai partagé :
Par example, de :

...
function my_woocommerce_product_single_add_to_cart_text() {
    return 'dans  mon  panier !';

Vers :

...
function my_woocommerce_product_single_add_to_cart_text() {
    return __('dans  mon  panier,'nom_de_mon_theme');
août 27, 2018 à 8:46 #2677340

gregoireN

Merci, grâce à votre exemple j'ai pu comprendre et corriger le fichier "functions.php" de mon thème enfant, cela fonctionne.
Simplement j'ai mis les intitulés en anglais dans le fichier php car wpml me propose une traduction en français....

août 27, 2018 à 10:43 #2677713

Andrés
Supporter

Languages: Anglais (English ) Espagnol (Español ) Français (Français )

Timezone: Europe/Paris (GMT+01:00)

Parfait ! 🙂
Belle journée.