Questo thread è stato risolto. Ecco una descrizione del problema e della soluzione.
Problema:
Il cliente sta cercando di sincronizzare i prezzi in inglese con quelli in italiano e tradurre i badge "disponibile" e "fuori stagione" che sono stati implementati tramite il
functions.php
di WordPress.
Soluzione:
1. Assicurati che il testo nel
functions.php
sia internazionalizzato usando le funzioni di WordPress "gettext": https://developer.wordpress.org/themes/functionality/internationalization/.
2. Scansiona il tema per trovare il codice con il testo codificato: https://wpml.org/documentation/getting-started-guide/string-translation/finding-strings-that-dont-appear-on-the-string-translation-page/ (sezione "translatable hard-coded text").
3. Vai su WPML > Traduzione stringhe per trovare e tradurre le stringhe.
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: WCML
Documentazione correlata:
Questo ticket contiene 11 risposte, ha 2 voci.
Ultimo aggiornamento da Alejandro 1 anno, 12 mese fa.
Assistito da: Alejandro.
| Autore | Post |
|---|---|
| Dicembre 11, 2023 alle 9:01 pm #15040881 | |
|
emanueleA-9 |
Sto tentando di: modificare i prezzi in inglese, che non sono sincronizzati a quelli in italiano. Link a una pagina dove è possibile vedere il problema: Prezzi corretti: link nascosto |
| Dicembre 12, 2023 alle 8:44 am #15043139 | |
|
Alejandro Sostenitore di WPML dal 02/2018
Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano ) Fuso orario: Europe/Rome (GMT+02:00) |
Ciao! Puoi assicurarti che quei prodotti sono effettivamente traduzioni? te lo chiedo perché io non vedo niente in inglese in quel sito. Ricordati che la homepage del sito deve esistere in Inglese e deve essere pubblica, non una bozza. lo stesso vale per lo shop, e i prodotti devono essere collegati tra di loro per considerarsi traduzioni. In questo momento magari hai nascosto la lingua inglese oppure il contenuto è ancora in bozza perché io non posso vedere niente in Inglese. Fammi sapere per capire come continuare. |
| Dicembre 12, 2023 alle 10:00 am #15043935 | |
|
emanueleA-9 |
Salve, l'inglese attualmente è nascosto per evitare che la gente vi entri dato che il sito è pubblico, e i prezzi non sono corretti, ho già utilizzato wpml in molti siti ed adottato sempre lo stesso procedimento, tutto nel sito risulta tradotto, anche i prodotti stessi risultano tradotti, ma i prezzi non sono sincronizzati, vuole che le crei un'accesso per verificare? |
| Dicembre 12, 2023 alle 10:11 am #15044045 | |
|
Alejandro Sostenitore di WPML dal 02/2018
Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano ) Fuso orario: Europe/Rome (GMT+02:00) |
A questo punto, si, se tutto è nascosto non avrei un altro modo di verificare cosa potrebbe creare questo problema. Per favore inserisci le credenziali di accesso nei campi che ho abilitato in questa prossima risposta e poi dammi un prodotto di riferimento da usare come esempio. Saluti. |
| Dicembre 12, 2023 alle 10:38 am #15044289 | |
|
emanueleA-9 |
Non so come sia possibile, ma mentre cercavo un prodotto da darle come test mi sono reso conto che adesso sono tutti sincronizzati |
| Dicembre 12, 2023 alle 10:52 am #15044435 | |
|
Alejandro Sostenitore di WPML dal 02/2018
Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano ) Fuso orario: Europe/Rome (GMT+02:00) |
1) Se hai cache nel sito o nel server, potrebbe essere che si è pulito e quindi stai vedendo una versione reale e non in cache. 2) Vai su WPML > Assistenza e controlla la sezione PHP e quella WordPress, specificamente della memoria. se hai un uso di memoria attuale di 200M o un po' superiore, allora potrebbe essere che non avevi abbastanza memoria. Per il resto, puoi sempre "forzare" questi cambiamenti andando su WooCommerce > WooCommerce Multilingual & Multicurrency > Impostazioni > Soluzione dei problemi. ci sono diverse opzioni lì, puoi selezionarle e cliccare il pulsante per avviarle. non è necessario di solio ma potrebbe aiutarti. |
| Dicembre 12, 2023 alle 1:27 pm #15046463 | |
|
emanueleA-9 |
Perfetto, invece un'altra cosa nell'inglese dentro la sezione shop, vi sono i prodotti con il badge "disponibile" e "fuori stagione" che sono stati implementati tramite il function.php di wordpress, come faccio a tradurre quelli? |
| Dicembre 12, 2023 alle 3:21 pm #15047141 | |
|
Alejandro Sostenitore di WPML dal 02/2018
Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano ) Fuso orario: Europe/Rome (GMT+02:00) |
1)Se sono nel functions.php, allora devono essere prima di tutto internazionalizzati usando gli standard di WordPress ovvero le funzioni "get text": https://developer.wordpress.org/themes/functionality/internationalization/ 2) Successivamente scannerizza il tema dove si trova questo codice: https://wpml.org/documentation/getting-started-guide/string-translation/finding-strings-that-dont-appear-on-the-string-translation-page/ (sezione "translatable hard-coded text") 3) Vai su WPML > Traduzione stringhe e qui troverai le stringhe. -------------- Disclaimer: noi non possiamo fare il codice per te visto che è fuori dallo scopo del supporto che offriamo, però possiamo guidarti dove necessario. puoi inviare il codice se non ci riesci da solo e posso provare a guidarti sul da fare. -------------- Saluti. |
| Dicembre 12, 2023 alle 3:45 pm #15047543 | |
|
emanueleA-9 |
/** Notifica quanto per la alla spedizione gratuita nel carrello */ $min_free = 39; // importo minimo per spedizione gratuita impostato su WooCommerce $cart_now = WC()->cart->subtotal; if ( $cart_now < $min_free ) { // Aggiungi un badge "Fuori Stagione" in sovraimpressione sull'immagine del prodotto // Verifica se il prodotto è esaurito // Aggiungi il badge in sovraimpressione sull'immagine del prodotto // Aggiungi un badge "Disponibile" in sovraimpressione sull'immagine del prodotto // Verifica se il prodotto è disponibile // Aggiungi il badge in sovraimpressione sull'immagine del prodotto /** |
| Dicembre 12, 2023 alle 4:25 pm #15048175 | |
|
Alejandro Sostenitore di WPML dal 02/2018
Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano ) Fuso orario: Europe/Rome (GMT+02:00) |
Come ho menzionato non ti posso fare tutto il codice ma ad esempio: $notice = sprintf( $added_text ); puoi scambiare quel "sprintf" per __() In questo caso si vedrebbe più o meno così: $notice = __( $added_text, 'Codice notifica spedizione', 'added_text' ); I parametri 2 e 3 si chiamano "contesto" e "nome" rispettivamente, il contesto serve a dare un riferimento sul DOVE si trova il codice, e il nome deve essere UNICO e dice "cosa fa" quel testo. sono testi normali, quindi decidi tu cosa mettere ma puoi usarli per raggruppare i codici appartenenti ad un progetto. La stessa cosa puoi applicarla al "$translated_text = 'Fuori Stagione';" e testi simili. Leggi la documentazioni per vedere i diversi gettext a tua disposizione e poi segui le istruzioni del mio messaggio di prima per capire come registrare questi testi con WPML. Spero ti sia stato d'aiuto. |
| Dicembre 13, 2023 alle 10:24 am #15052687 | |
|
emanueleA-9 |
quindi verrebbe così corretto? /** Notifica quanto per la alla spedizione gratuita nel carrello */ if ( $cart_now < $min_free ) { // Aggiungi un badge "Fuori Stagione" in sovraimpressione sull'immagine del prodotto // Verifica se il prodotto è esaurito // Aggiungi il badge in sovraimpressione sull'immagine del prodotto // Aggiungi un badge "Disponibile" in sovraimpressione sull'immagine del prodotto // Verifica se il prodotto è disponibile // Aggiungi il badge in sovraimpressione sull'immagine del prodotto /** |
| Dicembre 13, 2023 alle 11:19 am #15053741 | |
|
Alejandro Sostenitore di WPML dal 02/2018
Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano ) Fuso orario: Europe/Rome (GMT+02:00) |
Se continuiamo in questo modo, probabilmente finiremo confusi entrambi. In quel codice ci sono diverse funzioni che fanno cose diverse tra di loro quindi prima di tutto separiamole: 1) rrob_avviso_sped_free() Nella funzione 1, vedo che hai inserito la funzione gettext dentro il sprintf. questo è il modo giusto per usare testo dinamico + hardcoded, quindi è OK. ---------------------- Nella funzione 2 e 3, forse esc_html__( 'il tuo testo va qui', 'text-domain' ) non è il miglior modo però prova lo stesso prima a vedere se compare su string translation quando scannerizzi il tema e se si traduce, altrimenti prova con _e( 'il tuo testo va qui', 'text-domain' ); ---------------------- Ti do un trucco: - Rimuovi quella funzione (commentala, per ora), e poi scannerizza il posto da dove arriva inizialmente quest'etichetta (WooCommerce immagino? forse è quello con il testo "sale"?). - Poi cerca la stringa originale su WPML > String Translation - Ora cambia la lingua della stringa originale ad una lingua che non è attiva sul sito - Ora potrai tradurre il testo originale in qualunque altra cosa + tradurlo senza bisogno di codice. Provaci e fammi sapere come va. |
| Dicembre 13, 2023 alle 12:09 pm #15054365 | |
|
emanueleA-9 |
Grandioso, sono riuscito a risolvere tutto. Grazie mille! |