Salta la navigazione

Questo è il forum di assistenza tecnica di WPML, il plug-in multilingue di WordPress.

La sua lettura è permessa a tutti, ma la pubblicazione è riservata esclusivamente ai clienti di WPML. Il team di WPML risponde sul forum 6 giorni su 7, 22 ore su 24.

Etichettato: 

Questo ticket contiene 3 risposte, ha 2 voci.

Ultimo aggiornamento da Laura 1 anno, 10 mese fa.

Assistito da: Laura.

Autore Messaggi
Giugno 14, 2023 a 3:22 pm #13826719

alessandroF-21

Spiegaci cosa stai tentando di fare.
Ho aggiunto un Leggi tutto e leggi meno alla short description del single product in woocommerce. In italiano funziona bene. Ho quindi cercato di tradurre questi testi in Inglese e francese con l'aiuto di un esempio che ho trovato sul vostro forum e l'ho adattato al mio caso. Diciamo che la traduzione funziona ma quando clicco su Read More in Inglese il testo sparisce, idem per francese.

Vedi qui:
link nascosto

Il sito é ancora in sviluppo ma quasi pronto.

Siccome non sono un grande programmatore in php potreste darmi una mano a capire l'errore?
Grazie
Alex

Questo il codice che funziona in italiano:
add_action( 'woocommerce_before_single_product', 'shoptimizer_woocommerce_short_description_truncate_read_more' );

function shoptimizer_woocommerce_short_description_truncate_read_more() {
wc_enqueue_js('
var show_char = 250;
var ellipses = "... ";
var content = $(".woocommerce-product-details__short-description").html();
if (content.length > show_char) {
var a = content.substring(0, show_char);
var html = "<span class=\'truncated\'>" + a + ellipses + "Leggi tutto</p></span><span class=\'truncated\' style=\'display:none\'>" + content + "Leggi meno</span>";
$(".woocommerce-product-details__short-description").html(html);
}
$(".read-more").click(function(e) {
e.preventDefault();
$(".woocommerce-product-details__short-description .truncated").toggle();
});
$(".read-less").click(function(e) {
e.preventDefault();
$(".woocommerce-product-details__short-description .truncated").toggle();
});
');
}

Mentre questo quello che ho adattato per Inglese e Francese con uno snippet ulteriore solo per EN e FR.
<?php
//Function for the EN language
function shoptimizer_woocommerce_short_description_truncate_read_more_en() {
wc_enqueue_js('
var show_char = 250;
var ellipses = "... ";
var content = $(".woocommerce-product-details__short-description").html();
if (content.length > show_char) {
var a = content.substring(0, show_char);
var html = "<span class=\'truncated\'>" + a + ellipses + "Read more</p></span><span class=\'truncated\' style=\'display:none\'>" + content + "Read less</span>";
$(".woocommerce-product-details__short-description").html(html);
}
$(".read-more").click(function(e) {
e.preventDefault();
$(".woocommerce-product-details__short-description .truncated").toggle();
});
$(".read-less").click(function(e) {
e.preventDefault();
$(".woocommerce-product-details__short-description .truncated").toggle();
});
');
}

//Function for the FR language
function shoptimizer_woocommerce_short_description_truncate_read_more_fr() {
wc_enqueue_js('
var show_char = 250;
var ellipses = "... ";
var content = $(".woocommerce-product-details__short-description").html();
if (content.length > show_char) {
var a = content.substring(0, show_char);
var html = "<span class=\'truncated\'>" + a + ellipses + "Lire plus</p></span><span class=\'truncated\' style=\'display:none\'>" + content + "Lire moins</span>";
$(".woocommerce-product-details__short-description").html(html);
}
$(".read-more").click(function(e) {
e.preventDefault();
$(".woocommerce-product-details__short-description .truncated").toggle();
});
$(".read-less").click(function(e) {
e.preventDefault();
$(".woocommerce-product-details__short-description .truncated").toggle();
});
');
}

// If French content
if ( defined( 'ICL_LANGUAGE_CODE' ) && 'fr' == ICL_LANGUAGE_CODE ) {
//French code here
add_action( 'woocommerce_before_single_product', 'shoptimizer_woocommerce_short_description_truncate_read_more_fr' );
}
// If English content
else if ( defined( 'ICL_LANGUAGE_CODE' ) && 'en' == ICL_LANGUAGE_CODE ) {
//English code here
add_action( 'woocommerce_before_single_product', 'shoptimizer_woocommerce_short_description_truncate_read_more_en' );
}
?>

Giugno 14, 2023 a 4:23 pm #13827071

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+02:00)

Salve,

grazie per averci contattato.

Da dove hai preso il codice? Di base non forniamo codice custom.

Giugno 14, 2023 a 4:29 pm #13827083

alessandroF-21

Salve Laura,
da questo thread ho tratto spunto per tradurre le parti interessate:
https://wpml.org/forums/topic/i-cant-see-translation-for-code-snippet-plugin/

mentre il codice per applicare il troncamento del testo dello short description é stato ispirato da qui, ma anche altre pagine:
link nascosto

Giugno 14, 2023 a 5:47 pm #13827405

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+02:00)

La costante ICL_LANGUAGE_CODE è deprecata (vedi https://wpml.org/documentation/support/wpml-coding-api/#language-constants) quindi non dovresti usarla.

Se la funzione in italiano funziona per tutte le lingue e il problema è solo tradurre la stringa, dovresti usare le chiamate GetText per poi tradurle in Traduzione Stringhe, vedi https://wpml.org/documentation/support/enabling-text-translation-for-themes-not-compatible-with-wpml/

Più di così non posso suggerire, perché come detto il nostro supporto non prevede il debugging di codice custom.