Trovare un plugin per il tuo sito WordPress che soddisfi tutti i tuoi requisiti può essere difficile. Molti possono avvicinarsi allo scopo ma hanno bisogno di adattamenti o personalizzazioni. Inoltre, come sviluppatore, è fondamentale garantire che il codice sia sufficientemente flessibile per supportare gli utenti di tutto il mondo. 

Fortunatamente, ci sono alcune funzionalità del core di WordPress che possono aiutarti ad adattare alcuni elementi del tuo sito. Questo ti consente di personalizzare il pulsante o l’etichetta del testo anziché abbandonare un plugin altrimenti utile, o addirittura preparare il sito per la traduzione

In questo articolo, conosceremo meglio il filtro gettext e come funziona con il processo di traduzione del tuo sito. C’è molto di cu parlare, quindi immergiamoci subito!

Che cos’è il filtro Gettext? 

Il filtro gettext ti consente di modificare elementi di testo sul tuo sito WordPress. È meglio comprenderlo attraverso un esempio .

Supponiamo che il tuo modulo dei commenti abbia due campi: “Nome” e “Email”. Se preferisci che vengano letto “Nome” e “Indirizzo e-mail”, puoi utilizzare il filtro gettext per modificarlo invece di dover sostituire manualmente ogni istanza di ciascun termine nei file del tema.

Il filtro gettext funziona solo se il tuo sito è stato preparato per la traduzione. Pertanto, prima di approfondire il modo in cui puoi usarlo per personalizzare il testo, dobbiamo discutere su come internazionalizzare il tuo codice. 

Alcuni termini da comprendere prima di procedere includono: 

  • Internazionalizzazione (i18n). Ciò significa che il tuo codice WordPress è stato preparato per la traduzione in altre lingue. 
  • Localizzazione (l10n). Il processo mediante il quale è possibile eseguire la programmazione i18n e localizzare l’installazione di WordPress per l’uso in una lingua nativa. 
  • Libreria GNU gettext. GNU è un sistema operativo gratuito e open source. La sua libreria gettext consente di racchiudere il testo in stringhe di codice, che possono quindi essere estratte per la traduzione. 
  • File POT: per eseguire l’estrazione delle stringhe traducibili create con le funzioni gettext, vengono creati i file POT (Portable Object Template).
  • File PO: uno strumento come Poedit utilizza un file POT per creare file PO (Portable Object) che includono le traduzioni completate e le stringhe traducibili. 
  • File MO: un file MO (Machine Object) viene creato da un file PO. Risiede nel tuo plugin o nella directory dei temi e viene consegnato dal tuo server se è richiesta una versione tradotta del tuo sito web.

Tutti questi elementi svolgono un ruolo nella preparazione dei prodotti WordPress per la traduzione, come vedrai nei passaggi seguenti.

Gettext e PHP per la traduzione

Di seguito, spieghiamo il flusso di lavoro per l’internazionalizzazione di un tema o plugin. Prima di sperimentare tali cambiamenti però, si consiglia di creare un tema child con cui lavorare. Ciò proteggerà il tuo sito da eventuali disastri. 

Passaggio 1: estrarre stringhe di testo come file POT

La prima cosa che dovrai fare è verificare se il tuo tema o plugin include già file POT. In caso contrario, dovrai generarlo automaticamente , crearlo manualmente con Terminale o utilizzare un’applicazione consigliata da WordPress che abbiamo menzionato in precedenza chiamata Poedit: 

Homepage di Poedit

La versione Pro di Poedit offre una rapida funzione WordPress per la creazione dei file necessari ma puoi generare un file POT con pochi clic utilizzando l’app gratuita. 

Per iniziare, devi scaricare e installare Poedit, che verrà eseguito sul tuo desktop. Una volta fatto, vai su File > Nuovo . Ti verrà richiesto di selezionare la lingua per la traduzione: 

Selezione della lingua nell'app desktop Poedit

Dovrai quindi salvare il tuo nuovo progetto prima di procedere. Successivamente, avrai la possibilità di aggiornare un file POT esistente o Estrarlo dai sorgenti : 

Se necessario, puoi anche iniziare con un file POT vuoto , quindi modificare le stringhe di testo in Poedit. In alternativa, puoi cercare su Glotpress i plugin e i file dei temi esistenti da utilizzare. Per questo esempio, seguiremo la prima opzione. 

Dopo aver fatto clic su Estrai dai sorgenti avrai tre schede di impostazioni da configurare: 

Impostazioni di configurazione di Poedit - percorsi di origine

Dovrai impostare i percorsi per le sorgenti delle stringhe di testo. Puoi anche escludere determinati percorsi. Quindi, ti consigliamo di configurare le proprietà della traduzione: 

Impostazioni di configurazione di Poedit - proprietà di traduzione

Qui nominerai il tuo progetto e personalizzerai le impostazioni per i plurali e altri elementi specifici della lingua. Infine, puoi utilizzare la scheda Chiavi ricerca sorgente per completare la configurazione del tuo file POT:

Impostazioni di configurazione di Poedit - parole chiave di origine

Potrai anche aggiungere parole chiave gettext per completare la configurazione della traduzione. Sarai anche in grado di vedere e cercare stringhe di testo dai tuoi file sorgente.

Passaggio 2: creare un file PO (Portable Object) 

Successivamente, dovrai convertire il tuo file POT in un file PO per ogni lingua che desideri aggiungere. Se non stai traducendo il tuo tema o plugin e intendi utilizzare solo il filtro gettext per le sostituzioni dall’italiano all’italiano, imposta entrambe le lingue (sorgente e traduzione) su italiano. 

Se accedi a Catalogo > Aggiorna da file POT in Poedit, puoi scegliere il file che vuoi tradurre: 

creare file PO

Successivamente, il file passerà attraverso un processo di estrazione durante il quale tutte le stringhe traducibili verranno portate in Poedit che crerà il file PO. Ti consigliamo di nominarlo per abbinarlo gli altri file di questo progetto. 

Quindi, fai clic su Crea nuova traduzione nella parte inferiore dell’elenco delle stringhe di testo per iniziare a apportare le modifiche: 

Crea nuova traduzione con Poedit

Per modificare il testo dall’italiano all’italiano, è sufficiente fare clic sulla stringa che si desidera modificare e utilizzare la finestra di traduzione sotto Testo sorgente per digitare la parola sostituita: 

La finestra di traduzione di Poedit

Completa questo processo per tutte le stringhe che desideri modificare nel tema o nel plugin. Successivamente, creerai l’ultimo dei tre file necessari. 

Passaggio 3: convertire in file MO (Machine Object)

Fino ad ora, hai visto le fasi per creare istruzioni di programmazione riguardanti le tue traduzioni. Ora, dovrai convertire ogni file PO in modo che possa essere letto dal server e consegnare il testo desiderato ai visitatori. 

A seconda di come si procede attraverso il flusso di lavoro di Poedit, potrebbe essere già stato creato un file MO nella cartella Languages del tema . In caso contrario, vai su File > Compila in MO : 

file MO (Machine Object)

Ora dovresti avere i componenti necessari per eseguire le funzionalità rese possibili dal filtro gettext in WordPress.

Quando è utile il filtro Gettext di WordPress? 

Sebbene il processo che abbiamo descritto sopra possa aiutarti a tradurre il tuo sito in molte lingue, questo non è lo scopo del filtro gettext. In altre parole, non vorrai usare questo hook per trasformare il testo italiano in spagnolo.

Piuttosto, questa è più di una funzionalità di progettazione che puoi utilizzare per modificare il testo predefinito aggiunto al tuo sito da un plugin o da un tema, ad esempio attraverso: 

  • Personalizzazione di etichette
  • Cambiamenti al testo dei bottoni
  • Modifica di titoli

Questo processo può essere utilizzato per personalizzare qualsiasi testo ritenuto traducibile nei file del tuo sito web. Per fare un altro esempio, se il tuo tema ha pulsanti preimpostati con il testo “Acquista ora” ma il tuo sito ha bisogno del testo “Iscriviti”, gettext è il filtro che può aiutarti in questo processo.

È importante notare che l’uso di gettext troppo frequentemente può avere un impatto negativo sulle prestazioni del tuo sito web dato che si tratta di un codice aggiuntivo che deve essere eseguito ogni volta che il tuo sito viene caricato, quindi usalo con parsimonia per evitare una riduzione delle performance del tuo sito web.

Buona traduzione!