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
- 11:00 – 15:00 11:00 – 15:00 11:00 – 15:00 11:00 – 15:00 11:00 – 15:00 -
- 16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 16:00 – 20:00 -

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

Etichettato: 

Questo ticket contiene 12 risposte, ha 2 voci.

Ultimo aggiornamento da Laura 7 mese, 1 settimana fa.

Assistito da: Laura.

Autore Messaggi
Settembre 20, 2024 a 1:29 pm #16203182

lucaL-14

Contesto del problema:
I am using Advanced Custom Fields (ACF) with a Repeater Field in a multilingual site managed with WPML. My goal is to ensure that custom field data from the main language (Italian) is automatically copied to the translated versions (English) whenever a post is updated. Specifically, I want all sub-fields (items) within an ACF repeater field to be copied from the Italian version to the English version whenever changes are made in the main language, without needing manual intervention for each new item in the repeater.

Currently, WPML's Custom Fields Translation settings are overriding ACF’s settings, with each repeater sub-field given its own rule (Copy, Translate, Do not translate). This is causing issues, as newly added items default to 'Do not translate'.

Sintomi:
Not all repeater items are copied to the translated version. After updating a post in Italian, only 2 out of 3 items in the repeater were copied to the English translation. I discovered that this occurs because WPML assigns individual translation rules (Copy, Translate, Do not translate) to each sub-field in the repeater. Newly added items default to 'Do not translate', meaning I have to manually change each new item’s setting to 'Copy' in WPML’s settings. This isn't practical, especially when the repeater fields are dynamic and can change frequently based on client input.

Domande:
How can I ensure that all items within an ACF repeater field are automatically copied from the Italian post to the English post?
Is there a way to set WPML to automatically copy all current and future items within the repeater field without manual intervention, regardless of how many new items the client adds?
Can WPML respect ACF's internal "Copy" setting globally for all items in the repeater, instead of having to set the rule for each item individually in WPML's Custom Fields Translation settings?

Settembre 23, 2024 a 8:22 am #16207857

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

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

Salve,

grazie per averci contattato.

La richiesta principale, cioè "custom field data from the main language (Italian) is automatically copied to the translated versions (English) whenever a post is updated" non è attualmente possibile. I campi impostati su "copia" vengono copiati al momento del salvataggio della traduzione, quindi se si modifica l'originale perché i cambiamenti si vedano nella versione inglese vanno necessariamente aggiornati i post.

Quanto alle impostazioni dei campi, il problema principale è che il post type acf-field-group è impostato su "traduci" mentre deve essere impostato su "non tradurre".
Non mi è chiaro quale tipo di modalità stai usando. Se "esperto" è normale che i nuovi campi siano impostati su "non tradurre" in quanto sta all'utente decidere quale opzione di traduzione scegliere.
Se invece è su "stessi campi tra le lingue" o "campi diversi tra le lingue" allora WPML assegna automaticamente le preferenze di traduzione vengono assegnate in base a questa tabella.

Settembre 23, 2024 a 9:22 am #16208228

lucaL-14

Ciao, grazie per la risposta.

La mia domanda principale era: come mai le preferenze di traduzione impostata all'interno di ACF vengono sovrascritte da Traduzioni dei campi personalizzati dentro WPML? Questa modalità è particolarmente scomoda se si pensa agli ACF repeater dove WPML sembra creare una regola diversa per ogni indice del repeater.

1) In realtà all'interno di "Traduzioni dei tipi di contenuti", il post type acf-field-group è impostato di default come non traducibile ed è anche lucchettato quindi dubito di averlo toccato.

2) In modalità di traduzione compare "Traduci ciò che scegli", mi sembra di capire che è la versione base.. sbaglio? Dovrei cambiare?

Con queste info aggiuntive spero tu mi possa aiutare.

Settembre 23, 2024 a 9:45 am #16208444

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

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

Non ci sono 2 set di impostazioni, è sempre lo stesso e dovresti modificarlo solo dalla pagina di ACF. Onestamente non mi è chiaro cosa stai facendo.

1. dalle informazioni di debug che hai fornito il campo risulta impostato su traducibile, per quello ho fatto l'osservazione
2. "traduci ciò che scegli" è un'altra cosa. Mi riferisco a cosa vedi quando entri nel gruppo di campi, ci sono 3 possibili opzioni: "stessi campi tra lingue", "campi diversi tra lingue", "esperto". L'opzione di default nelle nuove installazioni è "stessi campi tra lingue", in quelle create prima di ACFML 2.1.0 è esperto.

Settembre 23, 2024 a 10:12 am #16208617

lucaL-14

Come non ci sono 2 set di impostazioni? Da ACF io imposto le preferenze di traduzione del repeater e poi nelle impostazioni di WPML compare una regola separata per ogni indice del repeater.. vedi screenshot. Si può notare pois_0_distanza_macchina dove 0 è l'indice del repeater, cercando nella lista si trovano pois_1, pois_2 fino alla 7.

A questo punto è decisivo il test che ho fatto: impostato le traduzioni solo tramite ACF su Copia, aggiornato un post in IT, visitando il post in EN noto che 2/3 dei pois (points of interest) sono tradotti ma non l'ultimo. Mi sposto nelle impostazioni di WPML e trovo pois_0 e pois_1 impostati su Copia e pois_2 invece di default su Non tradurre.

1) dici che le impostazioni reali sono diverse da quelle che io vedo a schermo? può essere? speriamo di no, sennò diventa difficile capirci qualcosa

2) grazie per la delucidazione, dal menu ACF c'è addirittura una colonna relativa le Opzioni di traduzione. Vedo solo la dicitura Esperto da tutte le parti, quindi direi che è quella attiva. Dovrei cambiare? Perché per i repeater mi è comodo che si arrangi, magari per altri campi è meglio questa opzione già attiva.

Screenshot 2024-09-23 alle 12.05.16.png
Settembre 23, 2024 a 10:14 am #16208634

lucaL-14

2.1) perdonami, aggiungo un pezzo: dentro il menu ACF leggo sotto l'opzione Esperto "Se stai eseguendo la migrazione di un sito, i gruppi di campi esistenti utilizzeranno l'impostazione Esperto.", noi effettivamente abbiamo effettuato una clonazione verso il sito di staging, quindi WPML in automatico si auto impostato su Esperto?

Settembre 23, 2024 a 1:30 pm #16210083

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

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

Se apri i singoli sottocampi del repeater dalla pagina di ACF vedrai che c'è anche lì l'opzione per le preferenze di traduzione, ed è da lì che vanno impostate. Questo perché ACF crea un campo ogni volta che viene utilizzato, per cui se lo fai da lì devi modificarlo ogni volta che crei un post. Non so se mi spiego.

In pratica se compili lo stesso campo ACF in 3 post diversi, in WPML > Impostazioni vedi 3 voci, e devi modificarla per tutti e 3. Se imposti la preferenza dalla pagina di ACF lo devi fare una volta sola.

Sì, WPML si è settato su "esperto" ma non ci sono stati cambi nelle impostazioni. Se per te è più adatta la modalità "esperto" o quella "stessi campi tra le lingue" è una cosa che devi valutare da te. Se useresti le stesse impostazioni di default di "stessi campi tra le lingue" (quelle che vedi qui insomma) magari ti conviene utilizzare quella modalità.

Settembre 23, 2024 a 2:31 pm #16210365

lucaL-14

Ho capito, quindi tu puoi assicurarmi al 100% che le impostazioni dentro ACF sono quelle che hanno priorità più alta? Anche più delle impostazioni specifiche dentro Traduzioni campi personalizzati?

Se mi confermi questo, vedrò di fare un altro test partendo da zero.

Settembre 23, 2024 a 2:58 pm #16210443

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

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

Non c'è una priorità più alta, la priorità è la stessa, la differenza tra le due cose è quella che ti ho spiegato. Fai finta che WPML > Impostazioni non esista e configura tutto solo dalla pagina di ACF.

Settembre 24, 2024 a 8:04 am #16212823

lucaL-14

Capisco, tuttavia dal punti di visto tecnico non ha molto senso..
Se sono due opzioni separate, mi aspetto che una abbia priorità: nel momento nel quale WPML deve scegliere cosa fare deve prendere l'info da una delle due o, se da entrambe, una delle due verrà sovrascritta dall'altra.

Poi con l'esempio pratico che ho portato, non rimangono molti dubbi; per caso riesci a rispondermi sul merito?
"After updating a post in Italian, only 2 out of 3 items in the repeater were copied to the English translation. I discovered that this occurs because WPML assigns individual translation rules (Copy, Translate, Do not translate) to each sub-field in the repeater."
sarebbe a dire "Dopo aver aggiornato un post in IT, solo 2 su 3 tra gli elementi del repeater ACF erano stati copiati in EN. Poi ho scoperto che su ACF i campi erano tutti impostati su Copia e invece nelle impostazioni WPML solo item_0 e item_1 erano impostati correttamente (non ho idea del perché), e quindi in questo caso ignorare le impostazioni WPML era deleterio. Che dici?

Settembre 24, 2024 a 8:48 am #16213154

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

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

Non ho elementi per dire perché sia successo quello che riporti. L'unica cosa che posso suggerirti è di impostare le opzioni di tutti i campi ACF, inclusi i sottocampi del repeater, dalla pagina del gruppo di campi di ACF e di aggiornare il post e vedere che succede.

Se si copiano ancora solo 2 dei campi ti chiedo le credenziali del sito per approfondimenti.

Settembre 24, 2024 a 1:19 pm #16215126

lucaL-14

Ho "capito" dove sta il problema: per aggiornare il CPT usiamo il widget Update a post di Make, si vede che usano qualche metodo strano per aggiornare i post.

L'iter sarebbe queso: admin aggiorna il post, Make si triggera, implementa nuovi dati in base ai metadati (per fare questo aggiorna lo stesso post diverse). Con questo metodo l'ultimo aggiornamento del post non triggera WPML.. come workaround ho aggiunto un nuovo update alla fine dello scenario e così ho messo una toppa al problema.

Però è strano, no? E' come se il 2° aggiornamento triggeri la traduzione del 1°, così a cascata.. solo che l'ultimo non viene triggerato da nessuno. Hai idea di quale possa essere il problema?

Ti lascio questo link come reference: link nascosto

Settembre 24, 2024 a 6:41 pm #16217197

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

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

Bisognerebbe vedere cosa chiama Make per fare gli update, è molto probabile che manchi qualche hook che usa WPML, per cui aggiorna solo il post originale. Se poi fai un ulteriore aggiornamento sul post tradotto allora copia tutto perché rileva le differenze.

Oppure aggiorna contemporaneamente i post, e quando i campi personalizzati sono impostati su copia vengono copiati al salvataggio del post, e se avviene in contemporanea probabilmente non rileva le modifiche.

Penso però che non sia qualcosa che possiamo risolvere noi ma dovrebbe farlo Make, perché sono loro che si agganciano alle API di WordPress. Se poi c'è un problema con la nostra nello specifico possiamo fornirgli delucidazioni ma non possiamo modificare il loro codice.

L'argomento '[Chiuso] Dynamic ACF Repeater Fields Not Being Copied Correctly in WPML Due to Custom Fields Translation Sett…' è chiuso a nuove risposte.