Blog

Guida completa alla traduzione multilingue dei siti web WordPress

Leonardo Losoviz
Di Leonardo Losoviz ·

Tradurre un sito web WordPress è un processo complesso che richiede una pianificazione e un'esecuzione accurate. Abbiamo creato questa guida completa basandoci sulla nostra vasta esperienza nella traduzione di siti web, utilizzando il plugin Gato AI Translations for Polylang.

Questa guida ti accompagna attraverso tutto ciò che devi sapere: dalle preparazioni iniziali e dalla configurazione, passando per il processo di traduzione vero e proprio, fino alla validazione e alla risoluzione dei problemi. Segui questa guida per garantire un'esperienza di traduzione fluida.

Installare e configurare Polylang

Gato AI Translations for Polylang richiede che Polylang sia installato e attivato. Polylang è il framework multilingue che gestisce le tue lingue e le relazioni di traduzione.

Dopo l'installazione, dovrai configurare Polylang con le tue lingue:

  1. Vai su Languages nel menu di amministrazione di WordPress
  2. Aggiungi la tua lingua predefinita (la lingua del tuo contenuto esistente)
  3. Aggiungi tutte le lingue di destinazione verso cui vuoi tradurre
Configurare le lingue di Polylang
Aggiungere e configurare le lingue nelle impostazioni di Polylang

Devi verificare che tutti i tuoi plugin attivi siano compatibili con Polylang. Alcuni plugin potrebbero non funzionare correttamente in un ambiente multilingue.

Se scopri un plugin incompatibile, cerca alternative, contatta lo sviluppatore per assistenza, oppure valuta se sia davvero indispensabile.

Verifica e correggi prima il tuo contenuto di origine

Prima di iniziare a tradurre, è essenziale assicurarti che il tuo contenuto di origine sia in condizioni perfette. Qualsiasi problema nel tuo contenuto originale verrà replicato in tutte le traduzioni, il che significa che dovrai correggere lo stesso problema più volte (una volta per ogni lingua).

Lista di controllo per l'audit del contenuto:

  1. Controlla i link non funzionanti

    • Usa un plugin come Broken Link Checker per identificare i link interni ed esterni non funzionanti
    • Correggi tutti i link non funzionanti prima di tradurre
    • Verifica che i link interni puntino agli articoli/alle pagine corretti
  2. Verifica che tutte le immagini esistano e siano ottimizzate

    • Controlla che tutte le immagini si carichino correttamente
    • Assicurati che le immagini abbiano un testo alt appropriato per l'accessibilità e la SEO
    • Verifica che le dimensioni dei file delle immagini siano ragionevoli (non troppo grandi)
    • Rimuovi eventuali immagini segnaposto o riferimenti a immagini non funzionanti
  3. Rivedi la formattazione e lo stile

    • Controlla che la formattazione del testo sia coerente
    • Verifica che i titoli siano strutturati correttamente (H1, H2, H3, ecc.)
    • Assicurati che liste, tabelle e altri contenuti strutturati si visualizzino correttamente
    • Verifica che lo stile personalizzato e il CSS funzionino come previsto
  4. Valida la struttura del contenuto

    • Assicurati di un uso corretto dei blocchi Gutenberg o degli elementi del page builder
    • Controlla che i custom post type e le tassonomie siano configurati correttamente
    • Verifica che i metadati (custom fields, campi ACF, ecc.) siano completi
  5. Controlla la presenza di contenuto segnaposto

    • Rimuovi qualsiasi testo "Lorem ipsum" o segnaposto
    • Sostituisci qualsiasi contenuto temporaneo con le versioni finali
    • Assicurati che tutto il contenuto sia pronto per la pubblicazione
  6. Considerazioni SEO

    • Verifica che i meta title e le descrizioni siano impostati
    • Controlla che gli URL siano ottimizzati per la SEO
    • Assicurati di un uso corretto dei titoli per la struttura SEO

Durante la traduzione del contenuto, i link interni devono essere aggiornati per puntare alle versioni tradotte. Gato AI Translations for Polylang può gestire questo automaticamente per te.

Il plugin ti consente di configurare quali tipi di link interni devono essere sostituiti:

  • Custom Posts: link ad altri articoli, pagine, custom post type, ecc.
  • Media: link a elementi multimediali (immagini, video, ecc.)
  • Tags: link alle pagine di archivio dei tag
  • Categories: link alle pagine di archivio delle categorie
  • Users: link alle pagine degli autori

I link agli articoli nel contenuto vengono estratti automaticamente dal contenuto di origine e sostituiti. Per gli altri tipi di link (media, tag, categorie, utenti), devi abilitarli nelle impostazioni se vuoi che vengano sostituiti.

Come configurare:

  1. Vai alla pagina delle Impostazioni, sotto Plugin Configuration > Internal Links Replacement
  2. Abilita solo i tipi di link che utilizzi effettivamente nel tuo contenuto
  3. Salva le tue impostazioni
Pagina delle impostazioni per sostituire i link interni
Configura quali tipi di link interni devono essere sostituiti nelle impostazioni del plugin

Affinché la funzionalità di sostituzione dei link interni funzioni correttamente, tutti i link nel tuo contenuto devono utilizzare il formato URL appropriato. Questo si applica ai link in:

  • Contenuto di articoli/pagine (blocchi Gutenberg, HTML, ecc.)
  • Widget Elementor e meta field
  • Elementi Bricks builder e meta field
  • Custom field e metadati

Requisiti degli URL:

  1. Gli URL devono includere il dominio completo

    • ✅ Corretto: https://www.mysite.com/hello-world/
    • ❌ Errato: /hello-world/ (URL relativo)
    • ❌ Errato: hello-world/ (senza dominio né protocollo)
  2. Gli URL devono puntare allo slug attuale

    • Se hai modificato lo slug di un articolo, aggiorna tutti i link per usare il nuovo slug
    • WordPress deve essere in grado di recuperare l'articolo a partire dall'URL
    • I vecchi slug che reindirizzano non funzioneranno per la sostituzione dei link
  3. Gli URL devono usare il dominio corretto (senza redirect)

    • ✅ Corretto: https://www.mysite.com/hello-world/
    • ❌ Errato: https://mysite.com/hello-world/ (se il tuo sito usa www)
    • Il plugin ha bisogno del dominio esatto per far corrispondere e sostituire i link correttamente

Per correggere i domini errati negli URL, puoi usare un plugin come Better Search Replace per cercare e sostituire gli URL direttamente nel tuo database, ad esempio: sostituendo https://mysite.com con https://www.mysite.com.

Scegliere lo stato Bozza o Pubblicato

Quando le traduzioni vengono create, devi decidere se debbano essere pubblicate immediatamente o salvate come bozze per essere prima revisionate.

Per impostazione predefinita, le traduzioni vengono salvate come bozze. Per fare in modo che le traduzioni vengano pubblicate immediatamente, vai alla pagina delle Impostazioni, sotto Plugin Configuration > General Configuration, e imposta l'opzione Status when translated su Publish oppure su Same as origin post (se l'articolo di origine è già pubblicato).

Impostare l'opzione 'Status when translated' su 'Publish' o 'Same as origin post'
Impostare l'opzione 'Status when translated' su 'Publish' o 'Same as origin post'

Supporto per le lingue da destra a sinistra (RTL)

Se stai traducendo verso lingue da destra a sinistra come ebraico, arabo, farsi o urdu, devi assicurarti che il tuo tema supporti correttamente i layout RTL.

Tema Blocksy che mostra un layout LTR
Tema Blocksy che mostra un layout RTL
Layout LTR e RTL nel tema Blocksy

Cosa influisce RTL:

Le lingue RTL richiedono più di semplici cambiamenti nella direzione del testo. Il tuo tema deve gestire:

  • Direzione del layout: gli elementi devono scorrere da destra a sinistra
  • Allineamento del testo: il testo deve essere allineato a destra per impostazione predefinita
  • Regolazioni della spaziatura: margin-left deve diventare margin-right, padding-left deve diventare padding-right, ecc.
  • Navigazione: i menu e la navigazione devono scorrere in RTL
  • Form: i campi di input e i pulsanti devono allinearsi correttamente
  • Icone e immagini: potrebbero richiedere un mirroring o un riposizionamento

Cosa è già gestito:

  • Polylang imposta automaticamente la direzione di lingua corretta (attributo dir="rtl")
  • La traduzione del contenuto funziona in modo identico per le lingue RTL e LTR
  • Gato AI Translations traduce il contenuto correttamente indipendentemente dalla direzione del testo
Configurazione delle lingue Polylang che mostra le lingue RTL
Polylang rileva e configura automaticamente le lingue RTL

Cosa devi verificare:

  1. Supporto RTL del tema: testa il tuo tema con una lingua RTL per vedere se la gestisce correttamente

    • Molti temi moderni includono fogli di stile RTL
    • Consulta la documentazione del tuo tema per le informazioni sul supporto RTL
    • Cerca file rtl.css o simili nel tuo tema
  2. CSS personalizzato: rivedi qualsiasi CSS personalizzato che hai aggiunto

    • I valori sinistra/destra codificati in modo fisso potrebbero richiedere aggiustamenti
    • Valuta l'uso di proprietà logiche (margin-inline-start invece di margin-left)
  3. Compatibilità dei page builder: se usi Elementor, Bricks o altri page builder

    • Verifica se supportano i layout RTL
    • Testa i layout in modalità RTL prima di tradurre

Se il tuo tema non supporta bene RTL, potresti dover passare a un tema compatibile con RTL, aggiungere CSS RTL personalizzato, oppure usare un plugin che aggiunge il supporto RTL.

Identificare il contenuto dei plugin di terze parti da tradurre

Molti plugin WordPress creano i propri Custom Post Type (CPT) per memorizzare il contenuto (ad esempio: i prodotti WooCommerce, gli eventi di Events Calendar, i corsi LearnDash, ecc.).

Prima di tradurre, devi:

  1. Identificare quali CPT contengono contenuto che deve essere tradotto

    • Esamina i tuoi plugin attivi e i loro CPT
    • Determina quali necessitano di traduzione (non tutti la richiedono)
  2. Assicurarti che i CPT e le tassonomie pertinenti siano traducibili

    • Vai su Languages > Settings > Custom post types and Taxonomies di Polylang
    • Abilita la traduzione per i CPT e le tassonomie pertinenti
Configurare i CPT e le tassonomie da tradurre
Configurare i CPT e le tassonomie da tradurre

Creare automaticamente le voci di traduzione per i CPT

Se un CPT si basa sul metodo wp_insert_post per creare le voci, puoi andare alla pagina delle Impostazioni, sotto Plugin Configuration > General Configuration, e abilitare l'opzione Automatic creation of translation entries per quel CPT, in modo che il plugin crei automaticamente le voci di traduzione.

Impostare l'opzione 'Automatic creation of translation entries'
Impostare l'opzione 'Automatic creation of translation entries'

Se un CPT si basa su un metodo diverso da wp_insert_post, dovrai creare manualmente le voci di traduzione utilizzando l'interfaccia di Polylang prima di poterle tradurre.

Ad esempio, con i prodotti WooCommerce, devi prima creare le voci di traduzione. Consulta la documentazione sulla traduzione dei Custom Post Type di terze parti per un video dimostrativo.

Verifica che il tuo plugin SEO sia supportato

I metadati SEO (meta title, descrizioni, tag Open Graph, ecc.) sono fondamentali per la SEO multilingue. Gato AI Translations for Polylang include un supporto integrato per i plugin SEO più popolari, traducendo automaticamente tutti i metadati relativi alla SEO.

Il plugin supporta 8 importanti plugin SEO:

  1. All in One SEO
  2. Rank Math
  3. SEO Simple Pack
  4. SEOPress
  5. Slim SEO
  6. The SEO Framework
  7. WP Meta SEO
  8. Yoast SEO

Se usi un plugin SEO che non figura nell'elenco qui sopra, devi indicare quali meta key sincronizzare e tradurre, corrispondenti al plugin SEO che stai usando. Qualsiasi plugin che memorizza i suoi metadati nella tabella wp_postmeta è supportato.

Scegliere il tuo provider e modello di IA

La qualità delle tue traduzioni dipende dal servizio IA e dal modello che scegli.

I servizi IA moderni (come ChatGPT, Claude e Gemini) producono traduzioni significativamente migliori rispetto ai servizi tradizionali (Google Translate o DeepL) perché comprendono meglio il contesto, il tono e le sfumature; preservano correttamente la struttura HTML e la formattazione; non traducono in modo errato gli URL o i link relativi; mantengono lo stile di scrittura e la voce in tutte le traduzioni; e gestiscono meglio i termini tecnici e il linguaggio specifico del settore.

Puoi scegliere tra i seguenti servizi IA:

  • ChatGPT (OpenAI)
  • Claude (Anthropic)
  • DeepSeek
  • Gemini (Google)
  • Mistral AI
  • OpenRouter (aggregatore di LLM che offre accesso a tutti i principali modelli, inclusi Grok e Llama)
  • LLM self-hosted (ospitato sul tuo server, ad esempio tramite Ollama)

Consigliamo di usare le ultime versioni dei modelli disponibili (ad esempio: ChatGPT 5.2 invece di 5.0), poiché i modelli più recenti forniscono costantemente una migliore qualità di traduzione.

Consiglio da esperto: puoi configurare servizi IA diversi per lingue diverse. Ad esempio, usa DeepSeek per il cinese (qualità eccellente e molto conveniente), ChatGPT per le lingue europee e Claude per i contenuti tecnici complessi. Questo ti consente di ottimizzare sia la qualità sia il costo.

Puoi usare OpenRouter per accedere agli ultimi modelli di IA non appena vengono rilasciati.

Valuta di personalizzare il tuo prompt di traduzione IA

Il prompt di traduzione predefinito funziona bene per la maggior parte dei contenuti, ma personalizzarlo può migliorare la qualità della traduzione per il tuo caso d'uso specifico.

Esempio:

Un blog di viaggi potrebbe personalizzare il proprio prompt aggiungendo quanto segue:

Translate to a natural, flowing, easy-to-read, casual blog-style language. Keep original content structure, meaning, and styling (but do adjust sentence structure and style to be relevant to the target language).
 
Lightly improve boring parts - Add curiosity triggers, light humor, and light slang (as fits the target language), like a human travel blogger would write.

Puoi modificare il prompt predefinito, oppure creare più prompt IA personalizzati e selezionare quale usare nelle Impostazioni:

Modifica di un prompt IA
Modifica il messaggio di sistema e il template del prompt per i prompt personalizzati

Verifica i tuoi blocchi Gutenberg

Prima di tradurre, devi identificare quali blocchi stai usando e assicurarti che siano supportati per la traduzione.

Blocchi Gutenberg supportati out of the box:

  • Tutti i blocchi core di WordPress: Paragraph, Heading, List, Quote, Image, Gallery, ecc.
  • Blocchi di terze parti: blocchi dei plugin Yoast SEO, GenerateBlocks, Kadence, Greenshift, ecc.

Se usi un blocco non supportato che contiene stringhe da tradurre, puoi:

Hai bisogno di aiuto? Possiamo integrare blocchi personalizzati per te. Dai un'occhiata ai nostri Servizi personalizzati se preferisci che siano degli esperti a gestire l'integrazione.

Nota: esistono blocchi che non possono essere tradotti.

Se devi sostituire un blocco non supportato, vorrai trovare tutti gli articoli che lo utilizzano. Consulta il tutorial sulla ricerca degli articoli contenenti un determinato blocco per i metodi per identificare dove vengono usati blocchi specifici.

Verifica i tuoi widget Elementor

Se usi il page builder Elementor, devi verificare quali widget stai usando e assicurarti che siano supportati per la traduzione. Il processo è simile alla verifica dei blocchi Gutenberg, ma specifico per i widget Elementor.

Tutti i widget core di Elementor sono supportati out of the box.

Se hai widget non supportati:

Verifica i tuoi elementi Bricks

Se usi il page builder Bricks, devi verificare quali elementi stai usando e assicurarti che siano supportati per la traduzione. Il processo è simile alla verifica dei blocchi Gutenberg, ma specifico per gli elementi Bricks.

Tutti gli elementi core di Bricks sono supportati out of the box.

Se hai elementi non supportati:

Gestire le immagini che contengono testo

Una svista comune nella traduzione dei siti web è dimenticare che le immagini possono contenere testo che potrebbe richiedere una traduzione.

Quando traduci un articolo, le immagini vengono copiate nella versione tradotta, e i metadati delle immagini (titolo, testo alt, didascalia) vengono tradotti, ma qualsiasi testo all'interno di quelle immagini rimane nella lingua originale.

Per verificare le tue immagini, il modo più semplice è impostare la Libreria multimediale di WordPress sul layout a Griglia — questo ti consente di scorrere visivamente tutte le tue immagini con un colpo d'occhio e individuare rapidamente quelle che contengono testo incorporato nella lingua sbagliata.

Libreria multimediale di WordPress nel layout a Griglia
Usa il layout a Griglia nella Libreria multimediale per esaminare visivamente tutte le immagini alla ricerca di testo incorporato

Ad esempio, questa immagine contiene testo in ebraico, il che la rende inadatta ad altre lingue.

Mappa della Thailandia con testo in ebraico
Le immagini possono contenere testo che deve essere preso in considerazione per la traduzione

Le tue opzioni:

  1. Mantenere il testo incorporato (se la lingua può comunque essere compresa in generale)

    • Adatto quando il testo è in una lingua ampiamente compresa o usa simboli/numeri universali
    • Nessun lavoro aggiuntivo richiesto
  2. Rimuovere il testo dalle immagini

    • Usa immagini senza testo incorporato
  3. Usare sovrapposizioni di testo invece del testo incorporato

    • Usa immagini senza testo incorporato
    • Sovrapponi del testo (usando blocchi Gutenberg, widget Elementor, elementi Bricks o CSS) che verrà tradotto automaticamente
  4. Creare versioni tradotte delle immagini

    • Crea file immagine separati per ogni lingua
    • Sostituisci manualmente le immagini negli articoli tradotti

Gestire la traduzione dei dati utente aggiuntivi

Polylang può gestire il campo biografia per i profili utente di WordPress, ma se hai dati utente aggiuntivi memorizzati in custom field (tramite ACF, Meta Box o altri mezzi), avrai bisogno di un approccio speciale.

Se hai dati utente che necessitano di traduzione (ad esempio, titoli professionali, qualifiche, descrizioni, ecc.), dovrai creare campi separati per ogni lingua.

  1. Creare campi separati per ogni lingua

    • Usando ACF o Meta Box, crea campi come:
      • Qualification EN
      • Qualification FR
      • Qualification DE
      • ecc.
  2. Aggiornare il tuo tema per visualizzare il campo corretto

    • Modifica i template del tuo tema per verificare la lingua attuale
    • Visualizza il campo appropriato in base alla lingua attiva
    • Esempio di codice PHP:
      $current_lang = pll_current_language();
      $qualification = get_field("qualification_{$current_lang}", 'user_' . $user_id);
      echo $qualification;
  3. Popolare i campi manualmente

    • Dopo aver tradotto il contenuto, aggiorna manualmente i campi del profilo utente

Saltare la traduzione dei termini che non devono essere tradotti

Alcuni termini non dovrebbero mai essere tradotti — nomi di marchi, nomi propri, termini tecnici o terminologia specifica del settore.

Puoi saltare la traduzione di questi termini aggiungendo istruzioni al tuo prompt personalizzato, ad esempio:

Do not translate the following types of terms:
- Hotel names (e.g., "Grand Hotel", "Beach Resort")
- Restaurant names
- Brand names
- Technical acronyms (API, SEO, CMS, etc.)
 
Keep these terms exactly as they appear in the original text.

Evitare i tag duplicati tra le lingue

Il nostro contenuto può avere tag che rappresentano lo stesso concetto in due lingue diverse. Quando questi tag vengono tradotti, possono creare duplicati o conflitti.

Ad esempio, se hai un sito web cinese tradotto in inglese, e hai sia un tag 布宜诺斯艾利斯 (Buenos Aires in cinese) sia un tag Buenos Aires in inglese, durante la traduzione in inglese entrambi i tag diventano buenos-aires. Questo crea una situazione di tag duplicato.

Tag duplicato tra 2 lingue
Tag duplicato tra 2 lingue

Come correggere prima di tradurre:

  1. Verifica i tuoi tag

    • Esamina tutti i tag nella tua lingua di origine
    • Identifica i tag che potrebbero essere duplicati di tag in altre lingue
    • Cerca i tag che rappresentano lo stesso concetto ma in lingue diverse
  2. Consolida i tag

    • Scegli una versione di lingua da mantenere (di solito la tua lingua di origine)
    • Unisci o rimuovi i tag duplicati
    • Aggiorna gli articoli per usare il tag consolidato
  3. Fai pulizia prima di tradurre

    • Assicurati che il tuo contenuto di origine abbia solo tag nella lingua di origine
    • Rimuovi qualsiasi tag nelle lingue di destinazione dal contenuto di origine
    • Questo evita i conflitti durante la traduzione

Evitare i nomi di luoghi duplicati tra le lingue

Se il tuo contenuto usa titoli che mescolano script diversi, potresti vedere questo schema: il titolo inizia con un nome di luogo locale, poi lo stesso nome in lettere latine tra parentesi, poi il resto della riga.

Schema di origine tipico (esempio):

  • Origine (ad esempio in ebraico): פוקט (Pouket) - מדריך לאי היפה — nome locale, poi un'ortografia inglese o internazionale tra parentesi, poi il sottotitolo.
  • Tradotto (ad esempio in inglese): Pouket (Pouket) - beautiful island guide.

Dopo la traduzione, il titolo è già in una lingua e in uno script, quindi la resa letterale del modello ripete due volte lo stesso nome di luogo (ad esempio Pouket (Pouket)).

Soluzione: affinare il prompt di traduzione

Personalizza il tuo prompt in modo che il modello normalizzi le aperture ridondanti "Nome (StessoNome)" quando la parte tra parentesi non aggiunge alcuna nuova informazione. Ad esempio, aggiungi istruzioni come:

If a heading begins with a place name followed by the same translated name in parentheses, remove the duplicate and keep one natural version. Do not remove the parenthesis if the text inside uses a different script, a different spelling, or includes additional descriptive information.

Fai attenzione agli slug dei tuoi tag/categorie

Se gli slug dei tuoi tag o categorie sono già nella lingua di destinazione, potresti pensare che non ci sia nulla da tradurre.

Le categorie in ebraico hanno lo slug in inglese
Le categorie in ebraico hanno lo slug in inglese

Spesso va bene — ma c'è un problema con Polylang free (non Pro).

Con Polylang Pro, i termini tradotti possono riutilizzare lo stesso slug tra le lingue. Con la versione gratuita, WordPress impone slug univoci a livello generale, quindi lo slug del termine tradotto riceve automaticamente un suffisso -2.

Ad esempio: una categoria con lo slug travels_and_attractions in ebraico, quando tradotta in inglese, diventa travels_and_attractions-2 invece di mantenere lo stesso slug.

Se questo influisce sui tuoi URL o sulla tua SEO, dovrai correggere manualmente gli slug dopo la traduzione, oppure passare a Polylang Pro per consentire il riutilizzo degli slug tra le lingue.

Assicurati che i tuoi embed siano in una lingua accettabile

Se incorpori contenuti di terze parti — come Google Maps, widget dei social media o altri iframe di piattaforme — verifica che l'embed venga visualizzato nella lingua di destinazione.

Ad esempio, un embed di Google Maps configurato per l'ebraico continuerà a mostrare etichette in ebraico, nomi di strade e interfaccia in ebraico anche dopo che hai tradotto il resto della pagina in inglese. In tal caso, potresti voler usare un embed indipendente dalla lingua.

Embed di Google Maps che mostra informazioni in ebraico su una pagina in inglese
Questo embed di Google Maps mostra ancora informazioni in ebraico — non adatto dopo aver tradotto il sito in inglese

Lo stesso vale per qualsiasi piattaforma o servizio che genera embed specifici di una lingua (ad esempio, i capitoli di YouTube, i widget di recensioni, i form di prenotazione). Verifica sempre ogni embed dopo la traduzione.

Assicurati che non ci sia stile specifico di una lingua nel contenuto di origine

Il contenuto degli articoli scritto per una lingua specifica — in particolare le lingue RTL come l'ebraico o l'arabo — può includere attributi inline di direzione e lingua applicati direttamente agli elementi HTML. Quando quel contenuto viene tradotto in una lingua diversa, quegli stili codificati in modo fisso si propagano e rompono il layout.

Colpevoli comuni nel contenuto di origine RTL:

  • <div dir="rtl" lang="he"> — forza la direzione RTL e marca la lingua come ebraico su un'intera sezione
  • <p dir="rtl"> — forza l'allineamento RTL sui singoli paragrafi
  • <h2 style="text-align: right;"> — codifica in modo fisso l'allineamento a destra sui titoli

Quando questo contenuto viene tradotto in inglese (o in qualsiasi lingua LTR), il testo diventa inglese ma il layout continua a visualizzarsi da destra a sinistra — con il risultato di titoli disallineati, flusso del testo invertito e formattazione rotta.

Prima di tradurre, verifica il tuo contenuto di origine alla ricerca di questi attributi e rimuovili. Lascia che il tema e le impostazioni di lingua/locale di WordPress controllino globalmente la direzione e l'allineamento, invece di incorporarli nei singoli blocchi di contenuto.

Gestire i template del Theme Builder di Elementor

Se usi il Theme Builder di Elementor per creare template globali (header, footer, template di singolo articolo, template di archivio, ecc.), è importante capire come questi template vengono gestiti durante la traduzione.

Cosa viene tradotto:

  • Menu: gli elementi del menu vengono sostituiti con le versioni del menu tradotte
  • Contenuto dinamico: il contenuto estratto dagli articoli/dalle pagine viene tradotto (poiché il contenuto di origine è tradotto)

Cosa non viene tradotto:

  • Testo codificato in modo fisso: qualsiasi testo aggiunto direttamente al template (non proveniente dal contenuto dinamico) NON viene tradotto
  • Testo dei widget: il testo nei widget come titoli, paragrafi, pulsanti, ecc. rimane nella lingua di origine
  • HTML personalizzato: qualsiasi blocco HTML personalizzato o di codice rimane non tradotto

Esempio:

Questo template di header Elementor contiene testo codificato in modo fisso ("Our Phone Number:"):

Template di header Elementor
Template di header Elementor

Soluzione:

Progetta i template per usare solo:

  • Menu (che vengono sostituiti automaticamente)
  • Immagini (che sono indipendenti dalla lingua)
  • Contenuto dinamico (che proviene dagli articoli tradotti)
  • Evita di aggiungere qualsiasi testo, titolo o descrizione codificati in modo fisso direttamente nei template

Questo garantisce che gli elementi globali del tuo sito (header, footer, ecc.) funzionino correttamente in tutte le lingue.

Configurare Advanced Custom Fields (ACF)

Se usi Advanced Custom Fields (ACF), devi configurare come ogni campo deve essere gestito durante la traduzione. I campi ACF possono contenere vari tipi di contenuto, e ogni tipo può richiedere una gestione diversa.

Nella sezione Gato Translate, i campi ACF possono essere impostati su una di queste opzioni:

  1. (Do nothing): il campo viene saltato dalla traduzione o dalla sincronizzazione

  2. Translate: il contenuto del campo viene tradotto nella lingua di destinazione

    • Da usare per: campi di testo, campi textarea, campi WYSIWYG e qualsiasi campo contenente testo traducibile
  3. Copy: il valore del campo viene copiato così com'è nella traduzione (non tradotto)

    • Da usare per: numeri, date, checkbox, campi vero/falso e qualsiasi campo che non deve essere tradotto
  4. Translate Reference: il campo fa riferimento a un'altra entità (articolo, pagina, utente, ecc.), e il riferimento viene aggiornato per puntare alla versione tradotta

    • Da usare per: campi Post Object, Page Link, Relationship, User e Taxonomy
Configurazione dell'opzione di traduzione per un campo ACF
Configura le opzioni di traduzione per ogni campo ACF (Translate, Copy o Translate Reference)

I Field Group possono applicarsi a molto più di articoli e pagine. Possono applicarsi anche a:

  • Categorie
  • Tag
  • Elementi multimediali
  • Utenti
  • Tassonomie personalizzate
  • Custom post type

Assicurati di configurare le impostazioni di traduzione anche per i field group che si applicano a queste entità!

Se usi Polylang Pro, devi anche disabilitare le sue funzionalità di traduzione ACF per consentire a Gato AI Translations di gestire la traduzione al suo posto.

Configurare Meta Box

Se usi Meta Box (un altro popolare plugin di custom field), il processo di configurazione è simile a quello di ACF. Anche i campi Meta Box devono essere configurati per la traduzione, la copia o la traduzione di riferimento.

Nella sezione Gato Translate, i campi Meta Box possono essere impostati su una di queste opzioni:

  1. (Do nothing): il campo viene saltato dalla traduzione o dalla sincronizzazione
  2. Translate: il contenuto del campo viene tradotto
  3. Copy: il valore del campo viene copiato così com'è
  4. Translate Reference: il riferimento del campo viene aggiornato per puntare all'entità tradotta
Configurazione della sincronizzazione/traduzione per un gruppo di campi Meta Box
Configurazione della sincronizzazione/traduzione per un gruppo di campi Meta Box

Devi anche disabilitare le funzionalità di traduzione Meta Box di Polylang per consentire a Gato AI Translations di gestire la traduzione al suo posto.

Configurare i campi meta personalizzati

Oltre ad ACF, Meta Box e ai plugin SEO, il tuo sito può avere altri campi meta personalizzati provenienti da:

  • Codice personalizzato
  • Altri plugin
  • Custom field di WordPress (il metabox Custom Fields di base)

Questi campi meta devono essere configurati manualmente nelle impostazioni del plugin.

Identificare le meta key personalizzate:

  1. Esporta il tuo contenuto

    • Vai su Tools > Export in WordPress
    • Esporta tutti i tipi di contenuto che intendi tradurre
    • Questo crea un file XML con tutto il tuo contenuto e i tuoi metadati
  2. Analizza il file di esportazione

    • Apri il file XML in un editor di testo
    • Cerca i tag <wp:postmeta>
    • Elenca tutte le meta key univoche
  3. Filtra i campi noti

    • Rimuovi i campi ACF (di solito preceduti dal nome del tuo field group)
    • Rimuovi i campi Meta Box
    • Rimuovi i campi core di WordPress (ad esempio, _edit_last, _wp_old_slug, _thumbnail_id)
    • Rimuovi i campi dei plugin SEO (se usi un plugin SEO supportato)
  4. Identifica ciò che rimane

    • Questi sono i tuoi campi meta personalizzati
    • Determina cosa contiene ogni campo e come deve essere gestito

Determinare le esigenze di traduzione:

Per ogni campo meta personalizzato, determina:

  • Translate: contiene testo traducibile (titoli, descrizioni, contenuto)
  • Copy: contiene dati che non devono essere tradotti (ID, numeri, impostazioni)
  • Translate Reference: contiene ID di entità che devono puntare alle versioni tradotte

Configurazione nel plugin:

  1. Vai alle Impostazioni, sotto la scheda Meta Configuration
  2. Scegli l'opzione di traduzione (Translate/Copy/Translate Reference)
  3. Aggiungi i nomi delle meta key personalizzate, usando una corrispondenza esatta o un pattern regex
Configurazione delle meta key per la traduzione
Configura le meta key personalizzate per la traduzione nelle impostazioni del plugin

Eseguire il processo di traduzione

Ora che tutte le preparazioni sono complete, è il momento di eseguire le traduzioni.

Testa prima il processo

Prima di lanciarti nella traduzione dell'intero sito web, è fondamentale testare prima il processo su piccola scala. Questo approccio ti farà risparmiare tempo e impedirà che i problemi vengano replicati in tutto il tuo contenuto.

Ecco il flusso di lavoro di test consigliato:

  1. Inizia con un singolo articolo e una sola lingua

    • Scegli un articolo rappresentativo che includa vari tipi di contenuto (testo, immagini, link, ecc.)
    • Traducilo in una sola lingua di destinazione che comprendi bene
    • Valida la traduzione in modo approfondito: controlla ogni blocco, ogni link, ogni immagine e ogni elemento di metadati
    • Se scopri un problema (ad esempio, un blocco non è stato tradotto, un link non è stato sostituito, la formattazione si è rotta), correggilo prima di proseguire. Lo stesso problema verrà replicato per tutte le lingue se non lo affronti adesso.
  2. Espandi ad alcuni articoli in più

    • Una volta che la prima traduzione è perfetta, traduci altri 3-5 articoli nella stessa lingua
    • Valida ciascuno di essi in modo approfondito
    • Questo ti aiuta a identificare eventuali schemi o problemi ricorrenti
  3. Testa con lingue aggiuntive

    • Se stai traducendo in più lingue, testa con un'altra lingua per assicurarti che tutto funzioni tra diverse coppie di lingue
  4. Solo a quel punto procedi con la traduzione in massa

    • Una volta che sei sicuro che tutto funzioni correttamente, puoi procedere a tradurre il resto del tuo sito web

Questo approccio incrementale garantisce che qualsiasi problema di configurazione o di contenuto venga individuato presto, quando è facile da correggere.

Ordine di traduzione

L'ordine in cui traduci i diversi tipi di contenuto è importante, soprattutto quando il contenuto fa riferimento ad altri contenuti.

Traduci il contenuto in questo ordine specifico per evitare problemi di riferimento:

  1. Users

    • Le descrizioni degli utenti possono essere incluse nei blocchi
  2. Taxonomies (Tags/Categories)

    • I tag e le categorie (e le tassonomie personalizzate) sono spesso referenziati dagli articoli, quindi devono esistere prima che gli articoli vengano tradotti
  3. Media

    • Gli elementi multimediali (immagini, video, documenti) sono referenziati dagli articoli come immagini in evidenza o immagini di galleria, quindi traducili prima degli articoli
  4. Custom Post Types

    • Traduci articoli, pagine e altri CPT
    • Importante: se un CPT fa riferimento a un altro, traduci nell'ordine inverso di dipendenza
    • Ad esempio: se gli articoli usano Blocchi riutilizzabili, traduci prima i Blocchi riutilizzabili, poi gli Articoli
  5. Menus

    • Traduci i menu per ultimi, poiché fanno riferimento ad articoli, pagine e categorie

Decidi se tradurre gli slug o no

Tradurre gli slug degli articoli e delle tassonomie nella lingua di destinazione è spesso desiderabile per le lingue a script latino (ad esempio, francese, tedesco, spagnolo): il percorso rimane leggibile e puoi riflettere parole chiave localizzate nell'URL.

Per gli script non latini — ebraico, giapponese, cinese e simili — gli slug localizzati spesso si trasformano in un caos: traslitterazioni goffe, segmenti molto lunghi, codifica percentuale o URL difficili da condividere e confrontare. Molti team mantengono slug latini (o nella lingua di origine) per quelle lingue e si affidano al titolo tradotto per il nome visibile e localizzato.

Tratta la traduzione degli slug come una politica per lingua di destinazione, non come un semplice interruttore on/off per l'intero sito:

  1. Dividi le lingue in gruppi — ad esempio, "tradurre gli slug" per le destinazioni latine vs "non tradurre gli slug" per cinese, giapponese, ebraico, ecc.
  2. Esegui lotti di traduzione separati — traduci in massa verso un gruppo con la traduzione degli slug abilitata, poi esegui un altro lotto verso l'altro gruppo con la traduzione degli slug disabilitata.
  3. Configura ogni lotto tramite Gato Translate (Custom) (trattato sotto Come eseguire le traduzioni qui sotto): disabilita opzioni come Translate custom post slugs? e Translate tag and category slugs? per i lotti in cui vuoi mantenere gli slug invariati. Punta a una politica per esecuzione (ad esempio, una lingua o un gruppo di lingue che condividono la stessa regola) in modo che le impostazioni corrispondano al risultato che ti aspetti.

Per flussi di lavoro scriptati o ripetibili, WP-CLI supporta --translate-slugs=true o --translate-slugs=false per ogni invocazione.

Traduzione in due passaggi

Se hai abilitato la sostituzione dei link interni o la traduzione dei riferimenti tra entità, potresti dover tradurre in due passaggi:

Passaggio 1: tradurre solo le proprietà

  1. Configura la traduzione per escludere contenuto e meta, ovvero tradurre solo le proprietà (titolo/nome e slug)
  2. Esegui la traduzione
Selezione solo delle proprietà dell'articolo (titolo, slug) per la traduzione
Primo passaggio: tradurre solo le proprietà (titolo, slug) per creare le voci tradotte

Dopo l'esecuzione del primo passaggio, gli articoli tradotti verranno creati con i loro URL e ID tradotti, consentendo agli URL dei link interni e agli ID dei riferimenti tra entità di essere risolti nella lingua di destinazione.

Passaggio 2: tradurre solo contenuto e meta

  1. Configura la traduzione per tradurre solo il contenuto e i meta (ovvero escludere le proprietà)
  2. Esegui di nuovo la traduzione
Selezione solo del contenuto e dei meta dell'articolo per la traduzione
Secondo passaggio: tradurre solo contenuto e meta per sostituire i link interni e i riferimenti tra entità

Dopo l'esecuzione del secondo passaggio, il contenuto e i meta rimanenti verranno tradotti, e gli URL dei link interni e gli ID dei riferimenti tra entità verranno sostituiti con le versioni tradotte.

Come eseguire le traduzioni

Opzione 1: Amministrazione WordPress (Bulk Actions)

  1. Vai all'elenco dei contenuti (Articoli, Pagine, Media, ecc.)
  2. Seleziona gli elementi che vuoi tradurre
  3. Scegli Gato Translate dal menu a tendina delle bulk actions
  4. Clicca su Applica
Esecuzione dell'azione Gato Translate
Usa le bulk actions per tradurre più elementi contemporaneamente

I menu vengono tradotti in modo diverso: vengono tradotti automaticamente quando li salvi nell'editor dei menu.

Alternativa: Gato Translate (Custom)

Per un maggiore controllo, usa Gato Translate (Custom) che ti consente di sovrascrivere le impostazioni per quella specifica esecuzione di traduzione:

Esecuzione della bulk action Gato Translate (Custom)
Usa Gato Translate (Custom) per impostazioni personalizzate per ogni traduzione

Questo apre una pagina di impostazioni personalizzate dove puoi fornire opzioni specifiche per quella esecuzione di traduzione:

Personalizzazione dell'esecuzione dell'azione 'Gato Translate'
Personalizza le impostazioni di traduzione per questa specifica esecuzione

Opzione 2: WP-CLI (per lotti di grandi dimensioni)

Per siti web di grandi dimensioni con centinaia o migliaia di elementi, WP-CLI è un'alternativa comoda.

Puoi eseguire le traduzioni in batch tramite la riga di comando, così puoi eseguire le traduzioni in background, mentre lavori su qualcos'altro.

Esecuzione dello script 'gatotranslate.sh'
Esecuzione dello script 'gatotranslate.sh'

Controllare i log di traduzione

Quando una traduzione fallisce (a causa dell'API che va offline, dell'esaurimento dei crediti API, ecc.) o produce avvisi, vedrai un badge di notifica nel menu del plugin:

La traduzione in spagnolo dell'articolo 'Hello World' è fallita, e viene visualizzato un badge di notifica
Un badge di notifica appare quando le traduzioni falliscono

Consulta i log di traduzione per capire cosa è successo:

  1. Vai all'elemento di menu Logs nel menu del plugin
  2. Esamina eventuali errori o avvisi
  3. Correggi eventuali problemi prima di continuare
Navigazione nei log
Sfoglia i log di traduzione per identificare i problemi
Visualizzazione di un singolo log
Visualizza una voce di log dettagliata per comprendere l'errore

Riavviare le traduzioni fallite

Ogni volta che una traduzione fallisce, puoi riattivare la traduzione solo di quella voce e di quella lingua, ed evitare di spendere crediti API per le traduzioni che hanno avuto successo.

Le traduzioni fallite sono evidenziate con uno sfondo giallo sull'icona di modifica di Polylang:

Sfondo giallo sull'icona di modifica di Polylang per le traduzioni fallite
Le traduzioni fallite sono evidenziate con uno sfondo giallo

Puoi filtrare per mostrare solo le voci con traduzioni fallite:

Filtrare per mostrare solo le voci con traduzioni fallite
Filtrare per mostrare solo le traduzioni fallite

Per ritradurre solo le voci fallite, usa la bulk action Gato Translate (Custom) con l'opzione Process failed translations only:

Filtrare per mostrare solo le voci con traduzioni fallite
Elenco delle voci con traduzioni fallite
Selezione dell'opzione 'Process failed translations only' nella pagina Impostazioni di 'Gato Translate (Custom)'
Riavvia le traduzioni solo per le voci fallite

Validare la qualità e la completezza della traduzione

Dopo aver tradotto il contenuto, è fondamentale validare che le traduzioni siano riuscite e di buona qualità. Non dare per scontato che tutto abbia funzionato perfettamente — prenditi il tempo di verificare.

Validazione nell'editor:

Apri gli articoli tradotti nell'editor di WordPress e controlla:

  1. Traduzione del contenuto

    • Tutto il testo è tradotto? (non solo il titolo)
    • Tutti i blocchi/widget/elementi sono tradotti?
    • Controlla i blocchi Gutenberg, i widget Elementor o gli elementi Bricks
    • Verifica che la formattazione sia preservata
  2. Campi personalizzati

    • I campi ACF sono tradotti/copiati/referenziati correttamente?
    • I campi Meta Box sono gestiti correttamente?
    • I campi meta personalizzati sono configurati correttamente?
  3. Metadati SEO

    • Controlla che i meta title siano tradotti
    • Verifica che le meta description siano tradotte
    • Conferma che i tag Open Graph siano tradotti
    • Esamina qualsiasi altro campo del plugin SEO
  4. Media

    • Le immagini in evidenza sono impostate correttamente?
    • Le immagini nel contenuto puntano alle versioni tradotte (se applicabile)?
    • I testi alt delle immagini sono tradotti?
  5. Link

    • I link interni puntano alle versioni tradotte?
    • I link esterni sono preservati correttamente?
    • I link di categorie/tag funzionano?

Validazione sul frontend:

Visualizza gli articoli tradotti nel browser e verifica:

  1. Aspetto visivo

    • La pagina si visualizza correttamente?
    • Il layout è preservato?
    • Le immagini si visualizzano correttamente?
    • Lo stile è corretto?
  2. Applicazione dei template

    • Viene usato il template corretto?
    • L'header/footer si visualizzano correttamente?
    • Le barre laterali/i widget si visualizzano?
    • Il menu mostra la versione tradotta?
  3. Funzionalità

    • Tutti i link funzionano?
    • I form funzionano?
    • Gli elementi interattivi funzionano?
    • La navigazione è corretta?
  4. Elementi specifici della lingua

    • Per le lingue RTL, il layout è corretto?
    • I font vengono visualizzati correttamente?
    • La direzione del testo è corretta?

Qualità della traduzione:

La traduzione IA moderna è generalmente molto buona, ma dovresti comunque verificare:

  1. Le lingue che comprendi

    • Leggi le traduzioni nelle lingue che conosci
    • Controlla l'accuratezza, il tono e lo stile
    • Verifica che i termini tecnici siano corretti
    • Assicurati che la voce del marchio sia mantenuta
  2. Le lingue che non comprendi

    • Per le lingue che non parli, valuta di assumere un madrelingua per la revisione
    • Questo è particolarmente importante per le lingue molto diverse dalla tua (ad esempio, dall'inglese al coreano, al cinese, all'arabo)
    • Anche una revisione rapida può individuare problemi importanti
    • Una correzione di bozze professionale è consigliata per i contenuti importanti
  3. Contenuto specifico del settore

    • Il contenuto tecnico può richiedere una revisione da parte di esperti
    • Il contenuto legale/medico dovrebbe essere revisionato da professionisti
    • Il contenuto di marketing può richiedere aggiustamenti della voce del marchio

Riparare i blocchi "Invalid Content"

Durante la traduzione di grandi blob di HTML che contengono molti tag e attributi, i servizi IA possono talvolta restituire una risposta che rompe l'output del blocco.

Ad esempio, durante la traduzione di un blocco core/paragraph che contiene un blob HTML molto grande usando ChatGPT 5.0 mini, come questo:

<!-- wp:paragraph -->
<p>
  Pédagogie: 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><strong><br></strong>Support : 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><br>Coûts : 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><br>Débouchés : 
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
  <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark>
</p>
<!-- /wp:paragraph -->

...la risposta potrebbe introdurre un tag <mark> aggiuntivo che non era presente nel contenuto originale:

<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★
+<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">

Durante la modifica dell'articolo nell'editor di WordPress, quel blocco potrebbe non visualizzarsi e mostrare invece il messaggio "Block contains unexpected or invalid content":

Blocco corrotto che mostra il messaggio di contenuto non valido
Blocco corrotto che mostra il messaggio di contenuto non valido

Cliccare su Attempt recovery risolverà molto probabilmente il problema.

Se possibile, evita di usare blocchi HTML, perché l'intero blob HTML deve essere tradotto come una singola unità.

Usa invece blocchi personalizzati con proprietà, in modo che quelle stringhe traducibili possano essere identificate, estratte e tradotte senza rompere alcuna formattazione.

Risolvere gli errori di dati corrotti

Occasionalmente, potresti incontrare errori durante la traduzione perché il tuo contenuto contiene dati corrotti o obsoleti. Questo accade tipicamente quando:

  • Un tipo di articolo supportava in precedenza una funzionalità (come gli articoli padre) ma non lo fa più
  • Il contenuto fa riferimento a entità che non esistono più
  • Incoerenze nel database derivanti da migrazioni o cambiamenti di plugin
  • Relazioni orfane nei custom field

Comprendere l'errore:

Quando vedi un errore come questo nei log:

2025-10-25T03:40:38+00:00 Error [Query "create-missing-translation-media"] Execution with errors: 🔴 Object with ID '26061' (of type 'GenericCustomPost') cannot be loaded. Please check if referencing this ID is stale data (i.e. still stored on the WordPress database, but pointing to a non-existing object) and, if so, remove it or fix it.

Questo significa:

  • Il contenuto fa riferimento a un'entità (articolo, pagina, media, ecc.) con l'ID 26061
  • Quell'entità non esiste più nel database
  • Il plugin non può tradurre perché non può risolvere il riferimento

Come correggere:

Metodo 1: Editor WordPress (il più semplice)

  1. Apri l'articolo/l'elemento che non riesce a essere tradotto
  2. Identifica il riferimento corrotto (controlla i custom field, le relazioni, ecc.)
  3. Rimuovi o correggi il riferimento
  4. Salva l'articolo
  5. Riprova la traduzione

Metodo 2: Pulizia del database

Se non riesci a correggerlo tramite l'editor:

  1. Identifica quale campo contiene il riferimento errato
  2. Usa uno strumento di database o un plugin per rimuovere i dati obsoleti
  3. Fai attenzione — fai sempre un backup prima di apportare modifiche al database

Metodo 3: Gato GraphQL (avanzato)

Poiché Gato AI Translations for Polylang utilizza Gato GraphQL sotto il cofano, puoi eseguire queries GraphQL per correggere i dati corrotti in modo programmatico:

  1. Per prima cosa, recupera gli ID degli elementi con problemi usando una query GraphQL.

  2. Poi correggi il problema usando una mutation. Ad esempio, per rimuovere un riferimento padre da un elemento multimediale:

mutation {
  updateMediaItem( input: { id: 26066, customPostID: null } ) {
    status
    errors {
      __typename
      ...on GenericErrorPayload {
        message
      }
    }
  }
}

Se non riesci a correggerlo:

Se i dati corrotti non possono essere ripuliti, potresti dover:

  • Ricreare l'articolo/l'elemento da zero
  • Esportare il contenuto, ripulirlo e reimportarlo
  • Contattare il supporto per assistenza con i casi complessi

Integrare le voci tradotte nella configurazione

Dopo aver tradotto il tuo contenuto, le voci tradotte appena create potrebbero dover essere integrate nella configurazione del sito web.

Aggiornare gli ACF Field Group

Gli ACF Field Group possono essere assegnati ad articoli, pagine, categorie, tag o altre entità specifiche. Quando traduci il contenuto, anche le versioni tradotte potrebbero dover essere assegnate agli stessi field group.

Dopo la traduzione, aggiorna le assegnazioni dei tuoi ACF Field Group per includere le versioni tradotte:

  1. Vai all'elemento di menu Field Groups nel menu del plugin ACF
  2. Modifica il field group che si applica a entità specifiche
  3. Nelle Location Rules, aggiungi le versioni tradotte
  4. Salva il field group

Esempio:

Un field group si applica all'articolo specifico "Hello World" nella lingua di origine:

ACF field group prima dell'aggiunta delle traduzioni
ACF field group prima dell'aggiunta delle traduzioni - si applica solo all'articolo originale

Dopo la traduzione dell'articolo, anche le versioni tradotte ("Hola Mundo" in spagnolo e "你好世界" in cinese) devono essere assegnate allo stesso field group:

ACF field group dopo l'aggiunta delle traduzioni
ACF field group dopo l'aggiunta delle traduzioni - si applica a tutte le versioni linguistiche

È tutto!

Hai ora completato il processo di traduzione. Congratulazioni! 👏

Conclusione

Questa guida completa dovrebbe aiutarti a tradurre con successo il tuo sito web WordPress. Se hai bisogno di maggiori informazioni, consulta la documentazione di Gato AI Translations for Polylang.


Scopri cosa arriva dopo

Iscriviti alla nostra newsletter: ti avviseremo quando pubblicheremo una nuova versione, lanceremo un nuovo plugin o avremo novità da condividere con te.