Conviene impostare le traduzioni del tema di WordPress nel tema figlio, in modo che non vengano sovrascritte quando il tema viene aggiornato.
Per far caricare le traduzioni dal tema figlio e non dal parte va aggiunto questo codice nel functions.php del tema figlio:
// Carica i file di traduzione dal tema figlio invece che dal padre
function my_child_theme_locale() {
load_child_theme_textdomain( 'domain-tema-padre', get_stylesheet_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'my_child_theme_locale' );
La stringa domain-tema-padre
deve essere il textdomain del tema padre. Lo si trova controllando le funzioni __()
e _e()
nei file del tema padre; il secondo parametro è la stringa da usare.
Si prende poi il file di modello del tema, che in genere sta nella cartella lang/ del tema padre ed ha l’estensione .pot, lo si copia in it_IT.po (se si vuole fare la traduzione italiana) e lo si traduce con PoEdit.
Per compilare il file .mo si usa, da linea di comando di Linux:
msgfmt -o it_IT.mo it_IT.po
I file .po e .mo si mettono nella directory languages/ del tema figlio.