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.

Sun Mon Tue Wed Thu Fri Sat
- 6:00 – 12:00 8:00 – 12:00 6:00 – 12:00 8:00 – 12:00 6:00 – 12:00 -
- 13:00 – 15:00 13:00 – 17:00 13:00 – 15:00 13:00 – 17:00 13:00 – 15:00 -

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

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

Dernière mise à jour par Nicolas Viallet Il y a 6 mois et 1 semaine.

Assisté par: Nicolas Viallet.

Auteur Articles
octobre 14, 2023 à 3:01 pm #14577431

nicolasD-27

Je tente de traduire la page : lien caché , en particulier le bouton "Lire plus" ; "Lire moins". Cela ne m'est pas proposé. J'utilise DIVI et j'ai mis un code pour afficher ce bouton qui est le suivant :

<script>
jQuery(document).ready(function ($) {
$("a.bouton-ouverture").removeAttr("href"); // On supprime le lien de notre bouton

$('.bouton-ouverture').on('click', function(){ // lorsqu'on clique sur le bouton
$('.texte-cache').toggleClass('ouvert'); // On ajoute ou retire la classe CSS "ouvert"

if ($('.texte-cache').hasClass('ouvert')) { // Si le module texte a la classe "ouvert"
$('.bouton-ouverture').html('LIRE MOINS'); // On affiche LIRE MOINS sur le bouton
} else {
$('.bouton-ouverture').html('LIRE PLUS'); // Sinon on affiche LIRE PLUS
}
});
});
</script>

octobre 16, 2023 à 12:02 pm #14584279

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. WPML ne pourra pas traduire cette chaine de texte "hardcodée" dans un script.

Je pense que vous pouvez utiliser la fonction 'wp_localize_script' pour cela: https://developer.wordpress.org/reference/functions/wp_localize_script/

Exemple sur la page:

// Register the script
wp_register_script( 'some_handle', 'path/to/myscript.js' );

// Localize the script with new data
$translation_array = array(
	'some_string' => __( 'Some string to translate', 'plugin-domain' ),
	'a_value' => '10'
);
wp_localize_script( 'some_handle', 'object_name', $translation_array );

// Enqueued script with localized data.
wp_enqueue_script( 'some_handle' );

Une fois le script enregistré, veuillez aller dans "WPML > Localisation du thème et des plugins" pour re-scanner votre thème. Puis dans "WPML > Traduction de chaînes" pour traduire les chaines de texte.

Pour comprendre comment le "textdomain" fonctionne (ici 'plugin-domain') vous pouvez lire: https://wpml.org/documentation/support/enabling-text-translation-for-themes-not-compatible-with-wpml/

---

PS: sans rapport avec votre question, je vois que vous avez des versions anciennes de nos plugins. Vous pouvez télécharger les dernières versions de tous nos plugins directement dans votre compte WPML.
- Allez sur https://wpml.org/fr/account/downloads/
- et cliquez sur "Télécharger WPML manuellement" pour les voir et les télécharger
- Puis dans votre backoffice, allez dans "Extensions > Ajouter" et utiliser le bouton en haut de l'écran pour téléverser le fichier .zip

octobre 17, 2023 à 10:48 am #14593115

nicolasD-27

Bonjour,
Je vous remercie.
J'ai peur de ne pas comprendre comment utiliser la fonction wp_localize_script...
Il faut le mettre dans le code source du site ?
Merci de votre retour.

octobre 18, 2023 à 11:37 am #14603557

Nicolas Viallet
Supporter

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

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

Bonjour,

Oui il faudrait enregistrer votre script dans functions.php. Les codes personnalisés ne sont pas pris en charge par notre politique de support et si vous n'êtes pas comfortable avec cela la meilleure solution serait d'appliquer un script différent selon la langue.

<?php 
$my_current_lang = apply_filters( 'wpml_current_language', NULL );
if ( $my_current_lang == 'en' ) { 
	<script>script en Anglais</script>
} else { 
	<script>script en Français</script>
};
?>

De cette manière vous n'avez qu'à re-copier le script et changer les textes à l'intérieur.

Le sujet '[Fermé] Traduction de code' est fermé aux nouvelles réponses.