WordPress: come personalizzare le traduzioni del tema Divi

Prerequisiti Per poter applicare le indicazioni di questa breve guida, è necessario avere a disposizione: un tema child; un editor di testo che supporti la codifica UTF-8 (io utilizzo Notepad++); un client FTP (io utilizzo FileZilla Client); il programma POEdit. Come Divi gestisce le traduzioni Applicando lo standard di WordPress, anche il plugin Divi gestisce […]
immagine dell'autore dell'articolo

Scritto da: Alberto

Una vita nell'informatica, per lavoro e per passione.
agsdix-far fa-calendar-alt
Data pubblicazione: 24 Luglio 2021
agsdix-far fa-comments

Prerequisiti

Per poter applicare le indicazioni di questa breve guida, è necessario avere a disposizione:

  • un tema child;
  • un editor di testo che supporti la codifica UTF-8 (io utilizzo Notepad++);
  • un client FTP (io utilizzo FileZilla Client);
  • il programma POEdit.

Come Divi gestisce le traduzioni

Applicando lo standard di WordPress, anche il plugin Divi gestisce le traduzioni tramite i file .po/.mo.

In particolare, Divi utilizza due file .mo:

  • /wp-content/themes/Divi/lang/it_IT.mo, contenente le traduzioni per il tema Divi
  • /wp-content/themes/Divi/includes/builder/languages/it_IT.mo, contenente le traduzioni per il builder

I file .po non sono distribuiti nell’installazione di Divi, ma sono disponibili sul sito di elegantthemes.com.

Ovviamente, la modifica dei file po/mo originali non è consigliabile, perché le modifiche verrebbero ricoperte dal rilascio della successiva versione di Divi; bisogna perciò ricorrere al tema child, nel quale inseriremo le sole traduzioni personalizzate, lasciando al tema principale la traduzione di tutto il resto.

Di seguito il procedimento da seguire.

Configurare il tema child

  • All’interno della cartella principale del tema child, creare una struttura di cartelle /languages/themes/divi/;
  • all’interno, creare la sottocartella builder, che conterrà le traduzioni personalizzate per il builder (textdomain: “et_builder”), e theme, che conterrà le traduzioni personalizzate del tema (textdomain: “Divi”);
  • utilizzare la funzione load_child_textdomain() all’interno del file functions.php del tema child:
/*================================================
#Load the translations from the child theme folder
================================================*/
function my_translation() {
	load_child_theme_textdomain( 'Divi', 
		get_stylesheet_directory() . '/languages/theme/divi/theme/' );
	load_child_theme_textdomain( 'et_builder', 
		get_stylesheet_directory() . '/languages/theme/divi/builder/' );
}
add_action( 'after_setup_theme', 'my_translation' );
  • procedere con la creazione dei file .po e .mo; se sono necessarie traduzioni personalizzate per entrambi i textdomain, ripetere il procedimento due volte.

La struttura di un file .po

Se si apre un file .po di WordPress (ad esempio uno di quelli scaricati dal sito di elegantthemes.com) con un editor di testo, si vedrà che è costituito da una intestazione e da una struttura ripetitiva:

  • una o più righe di commento (caratteri iniziali: “#:”) con l’indicazione del file .php a cui appartiene il testo da tradurre;
  • una riga msgid (ad esempio: msgid “Total”);
  • una riga msgstr (ad esempio: msgstr “Totale”);
  • una riga vuota

Per creare il proprio file .po sarà dunque sufficiente ripetere questa struttura, omettendo le righe di commento, per velocizzare l’attività.

Per maggiori informazioni sulla struttura di un file .po, vedere l’articolo Cosa sono i file .PO e .MO su questo sito.

Creare il proprio file .po

  • creare in locale la cartella per lo specifico textdomain (theme o builder);
  • tramite Notepad++ creare nella cartella un file vuoto it_IT.po in formato UTF-8 (eventualmente utilizzando la voce di menu: Formato > Converti un UTF-8);
  • inserire nel file le seguenti righe di intestazione, dove "yyyy-mm-dd hh:mm" rappresenta giorno e ora correnti (si tratta di un’intestazione minimale, possono essere aggiunte ulteriori informazioni):
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: yyyy-mm-dd hh:mm+0200\n"
"PO-Revision-Date: yyyy-mm-dd hh:mm+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: it_IT\n"
  • La scritta “Plural-Forms: nplurals=2; plural=(n != 1);\n” indica che per la lingua italiana ci sono 2 forme di plurale (singolare e plurale) e che il plurale si applica per tutti i valori diversi da 1. Vedere in merito il manuale GNU gettext.
  • inserire in successione tutte le traduzioni personalizzate, seguite da una riga vuota:
msgid "Fullwidth Map"
msgstr "Map a Larghezza Intera"

msgid "Fullwidth Portfolio"
msgstr "Portfolio a Larghezza Intera"

ecc..

Se si deve tradurre un testo particolarmente lungo, è possibile spezzarlo su più righe, in questo caso il testo della prima riga sarà vuoto:

msgid ""
"text that spans "
"multiple lines"
msgstr ""
"testo che si espande "
"su più righe"
  • salvare il file.

Creare il proprio file .mo

  • aprire lo stesso file con il programma POEdit;
  • salvare il file senza operare modifiche; questa operazione genera nella stessa cartella il corrispondente file it_IT.mo.

Portare le traduzioni personalizzate in produzione

  • Tramite FileZilla, fare l’upload del file it_IT.mo (ed eventualmente del corrispondente it_IT.po) nella cartella appropriata del tema child (/languages/themes/divi/theme o /languages/themes/divi/builder).
  • Verificare il funzionamento del tutto aprendo le pagine del sito interessate dalle traduzioni personalizzate.

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *