Si è detto in precedenza che non è possibile sovrascrivere i file lingua del core di WordPress senza rischiare di perdere le stringhe personalizzate ogni volta che viene rilasciato un aggiornamento del core; i file presenti nella directory /wp-content/languages
vengono infatti sovrascritti dagli upgrade. É per questo necessario utilizzare un plugin ad-hoc. La situazione è invece diversa nel caso in cui si decida di sovrascrivere i file lingua di temi e plugin.
Text Domain e localizzazione di temi e plugin
Prima di descrivere le operazioni necessarie alla localizzazione di un tema o di un plugin è necessario definire il concetto di Text domain. Si tratta di un identificatore univoco che assicura la corretta individuazione dei file lingua associati al tema o al plugin. Il Text Domain deve corrispondere allo slug del tema o del plugin, ad esempio il Text Domain del plugin mio-plugin.php
dovrà essere mio-plugin
(è ammesso il carattere -
ma non _
).
L'individuazione del Text Domain è indispensabile nel caso in cui si decida di aggiungere un file lingua ad un tema o ad un plugin. I nomi dei file .mo
dovranno sempre rispettare la seguente struttura:
text-domain-{locale}.mo
Se il valore di Text Domain
è dato dal nome del plugin, il valore di locale
è dato dal codice paese nel formato ISO-639 (ad esempio it
) seguito dal codice paese nella specifica ISO-3166 (_IT
). Nel caso di un file .mo
in lingua italiana, il nome dovrà essere mio-plugin-it_IT.mo
.
É così possibile aggiungere un file lingua diverso dalla lingua predefinita dell'istallazione e cambiare le impostazioni iniziali in qualsiasi momento. Insieme alla lingua del core, WordPress cambierà la lingua dei temi e dei plugin sempre che siano disponibili i relativi file .mo
.
twentyseventeen-it_IT.po
in PoeditSe ad esempio si volesse localizzare il tema Twenty Seventeen in lingua greca, basterebbe prelevare i file necessari dalla repository dei Language Packs o creare in autonomia i file lingua necessari, caricarli nella directory /wp-content/languages/themes
, quindi cambiare il valore del campo "Lingua del sito" nella pagina delle impostazioni generali.
Fino al rilascio della versione 4.6, WordPress cercava i file lingua di temi e plugin prima nella directory del tema o del plugin, poi nella directory /wp-content/languages
. A partire dalla versione 4.6 cambia l'ordine della ricerca con l'obiettivo di facilitare l'aggiornamento automatico dei file lingua di ciascun tema o plugin presente nelle directory di WordPress.org.
Il nuovo ordine di ricerca permette di sovrascrivere i file lingua predefiniti semplicemente collocando le proprie traduzioni nelle directory /wp-content/languages/themes
e /wp-content/languages/plugins
. Anche se il tema/plugin definisce il proprio Text Domain
all'interno della propria directory di istallazione, WordPress assegna la priorità ai Text Domain
presenti nella directory /wp-content/languages
. Ciò consente inoltre di preservare le proprie traduzioni anche in caso di aggiornamento del software. È opportuno, tuttavia, essere certi di quale sia la directory predefinita dei file lingua.