Come tradurre stringhe di un sito WordPress senza utilizzare plugin multilingua

Vi sarete certo trovati nella necessità di tradurre delle stringhe dall’inglese all’italiano, ad esempio, per delle parti del sito o del tema che, spesso e volentieri, sono in lingua inglese. Se questa opzione di traduzione non compare nell’admin del tema, è piuttosto laborioso tradurre queste stringhe utilizzando plugin come PoEdit, oppure, dio non voglia! Come WPML. Il quale certo è molto valido, ma sovradimensionato se occorre fare solo piccoli aggiustamenti senza implementare un sito totalmente multilingua. Solo in quest’ultimo caso (e solo se NON abbinato a Woocommerce, ma su questo scriverò un articolo a parte,) consiglio l’utilizzo di questo componente, molto sofisticato ma altrettanto pesante, e che rallenta di molto le performance del sito in termini di velocità di caricamento delle pagine. 

Ho trovato, smanettando come sempre è mio solito, una soluzione leggera e funzionale. La mia filosofia, negli anni, è infatti quella del “LESS IS MORE”… occorre evitare il più possibile di appesantire il sito con plugin, se certe azioni si possono fare da codice. 

Prima di tutto, occorre abilitare l’EDITOR DEL TEMA:  se non riuscite ad accedervi dal menu Aspetto  del backoffice, probabilmente dovete intervenire prima sul wp-config.php nella root del vostro sito. 

Una volta aperto questo file, anche con un normale editor di testo, dovete settare a false la seguente stringa: 

define( ‘DISALLOW_FILE_EDIT’, false );

Una volta fatta questa modifica, certamente potrete accedere all’Editor del tema dal menu di backoffice. 

Aprite dunque il file functions.php, e aggiungete questo codice, ovviamente personalizzandolo secondo le vostre necessità. Nel mio caso, avevo bisogno di personalizzare le stringhe Giorno(s), Ore(s), Minuto(i), Second(s), Show more, ovviamente sbagliate. Potete tradurre con questo metodo, in modo semplice e indolore, quante stringhe volete!

Ecco il codice:

/*TRADUZIONE STRINGHE*/

add_filter(‘gettext’, ‘translate_reply’);
add_filter(‘ngettext’, ‘translate_reply’);
function translate_reply($translated) {
$translated = str_ireplace(‘Giorno(s)’, ‘Giorni’, $translated);
$translated = str_ireplace(‘Ore(s)’, ‘Ore’, $translated);
$translated = str_ireplace(‘Minuto(i)’, ‘Minuti’, $translated);
$translated = str_ireplace(‘Second(s)’, ‘Secondi’, $translated);
$translated = str_ireplace(‘Show more’, ‘Mostra di più’, $translated);
return $translated;
}

Salvate il file functions.php dall’editor e il gioco è fatto. Attenzione, per evitare “arrosti involontari”, copiate e incollate in un notepad a parte il functions.php PRIMA della modifica, in modo da poterlo ripristinare subito se qualcosa andasse storto. 

 

 

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato.