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.

Sun Mon Tue Wed Thu Fri Sat
- 8:00 – 15:00 8:00 – 15:00 8:00 – 15:00 8:00 – 15:00 8:00 – 15:00 -
- 16:00 – 17:00 16:00 – 17:00 16:00 – 17:00 16:00 – 17:00 16:00 – 17:00 -

Fuso orario del fornitore: Europe/Rome (GMT+01:00)

Questo ticket contiene 36 risposte, ha 3 voci.

Ultimo aggiornamento da Alejandro 1 anno, 6 mesi fa.

Assistito da: Alejandro.

Autore Messaggi
Maggio 3, 2023 a 3:33 pm #13580377

paoloC-16

dovrei aver attivato solo i plugin strettamente necessari. Il problema derivava dalla mancanza di alcuni file in uno dei due plugin per cui ho aperto questo ticket. Li ho riapplodati e ora sembra funzionare.

Per visionare il problema di mancata traduzione è sufficiente andare nel backend di un prodotto variabile e aprire una variazione e li si può vedere come la stringa "Noita Price" non venga inserita nelle stringhe da tradurre.

Maggio 4, 2023 a 11:40 am #13585879

Alejandro
Supporter

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

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

Per favore guarda questo video: link nascosto

Per ora useremo questo prodotto come riferimento: link nascosto

Prima avevi menzionato che qui "creavi il contenuto" o almeno era quello che avevo capito: link nascosto

Comunque questo plugin ti permette di assegnare una configurazione a seconda del ruolo ma non sembra creare il campo "noita price". ho pensato si facesse con metabox ma penso che non è così.

Come hai creato questo campo e dove?

Maggio 5, 2023 a 3:00 pm #13595387

paoloC-16

Ho scritta dinamica perchè quella stringa da tradurre è stata creata da me con il plugin User Role Price. In pratica questo tool ti fa creare un ulteriore campo prezzo per i prodotti associato ad un ruolo. Quello che ho cercato di fare, anche con i tuoi consigli, è di tradurre l'etichetta di questo campo, etichetta che è stata scritta da me in sede di creazione del campo.

L'etichetta viene salvata nella variabile $name
<p class="form-row <?php echo $class; ?>">
<label><?php echo esc_html(stripslashes($name)) . ' (' . get_woocommerce_currency_symbol() . ')'; ?> " href="#"> [?]</label>
<input type="text" size="5" name="<?php echo $field_name; ?>" value="<?php echo esc_attr( $_field_price ); ?>" class="wc_input_price" placeholder="<?php echo esc_html(stripslashes($name)); ?>" <?php echo $read_only; ?> />
</p>

Per impostare questo campo occorre andare nel backend in Woocommerce -> User Role Price -> tab Prices

Maggio 5, 2023 a 4:29 pm #13595685

Alejandro
Supporter

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

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

Ciao!

Perfetto. quindi è un custom field. Comunque, io qui vedo che quel campo è bloccato e questo mi dice che il plugin che crea il campo è compatible con WPML ed è messo come "copia". questo significa a sua volta che tu non dovresti toccare quel campo.

Potresti contattare gli autori del plugin del role pricing e chiedergli se quel campo si può cambiare invece come "translate" senza problemi perché se il campo è messo come "copy", in teoria dovrebbe sempre mostrare il contenuto della lingua originale e forse è per questo che non riesci mai a tradurlo, perché si sovrascrive con il valore originale del prodotto in lingua tradotta.

Maggio 5, 2023 a 5:24 pm #13596167

paoloC-16

Non so se ho capito bene. Quando parli di "contenuto" ti riferisci al valore che viene inserito nel del custom field (ovvero il prezzo) oppure all'etichetta/nome del custom field? quello che a me serve tradurre è il nome del custom field/etichetta e non capisco perché non venga considerato nelle traduzioni come avviene per la scritta "Prezzi delle variazioni custom". Il prezzo sarà lo stesso in tutte le lingue poi.

Con "campo è bloccato" cosa intendi?

Maggio 8, 2023 a 10:16 am #13604153

Alejandro
Supporter

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

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

Ho provato a cambiare strategia, per cercare di capire meglio dove si trova il problema perché come te, non riesco a capire perché il campo con l'etichetta non si traduce (ho fatto diversi test tra cui anche quello della mia risposta precedente).

Per poter continuare, volevo disattivare altri plugin perché ci sono ancora troppe variabili in giro.

Se io volessi cambiare il tema, per storefront (un tema default) per non dover usare elementor e altri plugin. vedrei ancora il campo "no ita price"? se si, come faccio a configurarlo per vederlo?

Maggio 8, 2023 a 2:51 pm #13606951

paoloC-16

Puoi togliere il tema è metterne un altro senza problemi ed anche tutti gli altri plugin ma l'importante è non togliere Woocommerce User Role Pricing, WooCommerce Wholesale Ordering e ovviamente woocommerce.

Maggio 8, 2023 a 5:17 pm #13607803

Alejandro
Supporter

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

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

Per favore controlla questo video: link nascosto

Purtroppo non riesco a capire dove si trova o dove si dovrebbe trovare la stringa, non so come attivarla, non so come vederla. senza questa info sono bloccato e non saprei come continuare.

Puoi controllare se mi manca qualche passaggio (sospetto di si).

Grazie in anticipo.

Maggio 8, 2023 a 5:37 pm #13607939

paoloC-16

L'etichetta Noita Price da tradurre verrà visualizzata solo nel backand, nel frontend non verrà mai visualizzata perché viene usato solo il valore inserito ovvero il prezzo che è sempre lo stesso.

Per vederla basta andare nella pagina di modifica di un prodotto del backend.

Il plugin doppio Kootj puoi tralasciarlo dato che non influisce su quel campo dato che non usa quell'etichetta ma solo il suo valore nel frontend.

In sostanza la stringa da tradurre è "Noita Price" quella che vedi nel backend del prodotto e non il valore che verrà inserito.

Maggio 8, 2023 a 6:53 pm #13608347

Alejandro
Supporter

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

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

Perfetto, ok, quindi quello che provi a tradurre è una etichetta direttamente nel back-end, questo è un po' diverso, sopratutto perché stai caricando la sezione in una variazione che passa per filtri AJAX e quindi molte volte non sono localizzati.

Ti chiedo:

- Puoi chiedere agli autori del plugin che crea il campo, se le stringhe dei campi personalizzati sono localizzati per default in qualche modo?

Questo te lo chiedo perché prima menzionavi di aver localizzato tu la variabile MA, la localizzazione per custom field e sopratutto per il back-end non funziona come quella per il front-end visto che passano da filtri diversi e quindi magari devono essere localizzati in un' altro modo. sarebbe buono sapere cosa ti dicono gli autori del plugin a riguardo.

- Se crei un campo e l'aggiungi in una zona diversa dalle variazioni, come nel tab "generale" dove trovi il prezzo del prodotto, ad esempio, qui si riesce a tradurre il campo o meno?

- Puoi dirmi come fai ad assegnare il campo ad una zona specifica con questo plugin? così anche io posso fare altri test ed inviare l'info ai nostri sviluppatori.

Maggio 9, 2023 a 2:51 pm #13615027

paoloC-16

Una volta che viene creato un prezzo customizzato mediante il plugin User Role Price questo campo verrà visualizzato nel backend in tutti i punti in cui compare il campo prezzo regolare quindi per tutti i tipi di prodotto definiti in woocommerce.

la riga di codice da cui deriva la visualizzazione dell'etichetta nel frontend è questa "echo esc_html(stripslashes($name))" che da quanto ho capito presenta esc_html che non va bene ma anche provando altro resta sempre non presente nelle stringhe da tradurre mentre funziona correttamente la riga di codice poco sopra "_e('Custom Variation Prices:', 'woocom-urp');" quella che visualizza correttamente il testo in grassetto "Prezzi delle variazioni custom"

Contatto l'autore è sento che dice, ma potresti spiegarmi meglio quanto scrivi " se le stringhe dei campi personalizzati sono localizzati per default in qualche modo?"

Maggio 9, 2023 a 3:01 pm #13615153

Alejandro
Supporter

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

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

Ok,

Come ben dici, l'autore sta usando esc_html per stampare il codice. Non so bene perché lo sta usando visto che di solito quello si usa quando nella variabile potrebbe esserci codice HTML e non penso che qui sia il caso.

Invece la riga di sopra è localizzata con _e() che è una funzione chiamata: gettext
- https://developer.wordpress.org/themes/functionality/internationalization/
- https://wpml.org/documentation/support/translating-the-theme-you-created/

Ora, cosa succede? Quando cambi il codice di sopra per uno localizzato e ancora non funziona, potrebbe significare che in realtà esiste un altra riga che gestisce la stampa nel backend e quindi per quello la riusciamo a trovare ma dopo non si stampa la versione giusta.

Quando ti chiedo di parlare con l'autore e chiedere se ha localizzato la stringa (e dove), ti chiedo di dirmi più che altro se ha seguito tutte le procedure per rendere la stringa correttamente "multilingual ready" e di dirci dove controllare, perché forse oltre al file che ci hai menzionato prima, magari c'è qualche altro dove attraverso un hook gestisce questa stessa stringa.

Spero di essere stato più chiaro questa volta 🙂

Maggio 9, 2023 a 4:31 pm #13616129

paoloC-16

Mi ha risposto molto velocemente:

"I’m heading out the door, but I need to load up a current version of WPML to do some testing with their newer version to see if anything has changed. I’ll do that later today.

However, any custom text that you create by filling out a form field on the admin side is translated differently than the other text strings that you translate with __(xxxx, domain) or any of the _e variants.

It’s possible I missed that one, so I will need to double check. But, I know that I did register the admin created text strings with WPML, so they should show up somewhere in the WPML interface to be translated. I can’t remember right now if WPML translates those automatically as they are retrieved from the options table, or if I needed to run each one through a function when retrieving the value.

The problem with this particular plugin is that many of those admin fields are not pre-defined, they are dynamically created as you create new custom prices. So, it’s impossible to define them ahead of time for WPML to translate. But, I’m pretty sure I did figure out a way to do it. So, either I missed that one, or WPML changed something, or you possibly weren’t looking in the right section to find that string to translate.

I will take a look later today."

Maggio 9, 2023 a 4:52 pm #13616229

Alejandro
Supporter

Lingue: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

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

Perfetto, allora se ci dicono dove hanno tradotto il contenuto, posso passare il caso ai nostri sviluppatori.

Per quanto riguarda la registrazione automatica dei campi creati dinamicamente: dipende da come li ha creati e con questa info posso mettere i nostri sviluppatori in contatto con loro per rendere il loro codice compatibili con noi senza problemi 🙂

Ti dovrebbe rispondere di nuovo con alri dettagli, potresti condividerli con me appena li leggi, per favore? sicuramente questo ci aiuterà a capire meglio come continuare.

Maggio 10, 2023 a 3:05 pm #13624177

paoloC-16

ecco la risposta "OK, so taking a closer look at what you posted, and then finding that function in my code to confirm, that field label you are talking about ONLY shows on the admin side. It is never used on the public side. Also, since you are creating the custom price fields and giving them a unique name that you can use to identify them, you can make that unique name in any language that you want. There is no need to translate those fields, since the public will never see those names. Also, as mentioned, these fields do NOT have a pre-defined name… they don’t exist until you create them, so I can’t know the option/field name ahead of time to set it up for translation. Just give it the name exactly as you want your admin users to see, so they can identify which price it is, and don’t worry about that. No need for translation."

A questo punto credo che l'unico modo è andare a modificare il valore dell'etichetta direttamente nel database.

L'argomento '[Chiuso] Translate dynamic string from a php variable' è chiuso a nuove risposte.