Come tradurre un tema per WordPress (aggiornato)

ATTENZIONE: questo articolo è stato scritto oltre un anno fa, ed i contenuti potrebbero non essere più validi o compatibili. Sei pregato di tenerne conto, e se hai informazioni in merito di segnalarmele, grazie.

Traduzione temi WordPress

Hai acquistato un nuovo tema per il tuo sito in wordPress, e ora ti ritrovi con un sacco di voci in inglese.

Ti tocca tradurre il tema, per fortuna è un’operazione relativamente semplice. Noiosa, ma semplice.

Per prima cosa bisogna che il tema che hai scelto sia predisposto per essere localizzato. Di solito è una di quelle cose che sarebbe meglio verificare prima di acquistarlo, ma per fortuna oramai quasi tutti lo sono.

Poi, una volta tradotto, devi prendere qualche accorgimento per evitare che il tema torni in inglese, al primo aggiornamento dello stesso, buttando alle ortiche tutto il lavoro svolto.

Vediamo come tradurre il tema e come proteggere la traduzione.

Per prima cosa, devi verificare se il tuo tema è predisposto per essere tradotto, o localizzato che dir si voglia.

Poi devi decidere come vuoi tradurre il tuo tema, se utilizzare una utility sul tuo computer o un plugin per WordPress.

Temi WordPress compatibili con la localizzazione

È facile scoprire se il tuo tema è predisposto per essere tradotto.

Di solito è sempre indicato nelle specifiche del tema, in genere viene specificata la predisposizione alla traduzione tramite file file .po (gettext).

Se lo è inoltre troverai, nella cartella principale del tema, una cartella “languages” con all’interno i file delle lingue eventualmente disponibili oltre la lingua madre del tema.

La cartella languages dei temi WordPress

Se lo sviluppatore ha fatto le cose a modino, nella cartella “languages” dovresti trovare un file con estensione .pot, che in genere è la “matrice” con tutte le stringe per la localizzazione, una base per iniziare la traduzione in altre lingue.

In alternativa, potresti trovare solo due file: en_US.po e en_US.mo, che sono i file per la lingua inglese (inglese americano per la precisione).

Quando invece il tema è già tradotto per altre lingue, troverai tanti file .po e .mo per ogni lingua disponibile, ed in base ai nomi dei file puoi scoprire facilmente a che lingue si riferiscono.

Quelli per l’italiano si chiamano it_IT.mo e it_IT.po, e ovviamente se li trovi non dovresti aver bisogno di tradurre il tema.

Tradurre un tema WordPress con Poedit, senza usare plugin

La traduzione dei temi tramite Poedit è il metodo che preferisco, molto pratico e veloce, si fa tutto in locale su una copia del tema e non si installano pesanti plugin.

Poedit è un’utility software disponibile per diverse piattaforme, in versione free e Pro. In genere, per un utilizzo saltuario, la versione gratuita è più che sufficiente.

Una volta lanciata l’applicazione, devi creare una nuova traduzione partendo da un file .pot o .po

Poedit per prima cosa ti chiede in che lingua vuoi fare la nuova traduzione. La scelta nel nostro caso ricade su “Italiano (Italia)“.

A questo punto appare l’elenco di tutte le stringhe di testo traducibili, e via via che la localizzazione procede a fianco di ogni stringa apparirà la relativa traduzione.

Quando deciderai che il lavoro di traduzione è completato, è sufficiente salvare. Poedit crea automaticamente il file .mo necessario per far funzionare la localizzazione in pratica.

I file così creati, it_IT.po e it_IT.mo, li devi uploadare nella cartella languages del tema in uso sul sito, gli effetti saranno visibili immediatamente.

Tradurre un tema WordPress con il plugin Codestyling Localization

Nota bene: al 27-4-15 il plugin di cui si parla in questo post, Codestyling Localization, risulta essere rimosso dalla repository di WordPress.
Non sono riuscito a capire le cause di questa rimozione, ma non è un buon segno e chiunque avesse installato questo plugin farebbe bene a rimuoverlo, in attesa di sviluppi o maggiori informazioni.

Se preferisci effettuare la traduzione del tema on line, puoi utilizzare il plugin Codestyling Localization.

È un plugin abbastanza tutto sommato abbastanza semplice da utilizzare, ma pesante per il sistema. Io consiglio di installarlo e attivarlo solo al bisogno, per cancellarlo a traduzione avvenuta.

Quando installato, il plugin aggiunge una voce “Localizzazione” al menù “Strumenti”.

Devi scegliere il tema (o il plugin) da tradurre, decidere la nuova lingua scegliendola da un menu, ed effettuare una scansione dei file del tema (o del plugin) per individuare le stringhe traducibili.

A questo punto puoi può iniziare il lavoro di localizzazione, cliccando su “Modifica” nella nuova lingua.

In questo modo si crea il file .po nella cartella “languages” del tema o del plugin selezionato per la localizzazione.

La creazione del file .mo, indispensabile, non è automatica. Una volta terminato il lavoro di traduzione, devi premere il bottone “crea un file .mo“. Solo allora la localizzazione avrà effetti pratici nel sistema.

Come evitare di perdere la traduzione in caso di aggiornamento del tema

Una volta tradotto il tema, la cosa peggiore che ti può accadere è di perdere tutto il lavoro al primo aggiornamento del tema.

Proteggersi da questa eventualità è molto semplice: bisogna utilizzare i temi child di WordPress.

Una volta che hai creato il tema child, come descritto nel link poco sopra, devi creare al suo interno una cartella “languages” e posizionarci i file it_IT.po e it_IT.mo della localizzazione italiana, indipendentemente che tu li abbia creati con Poedit o Codestyling Localization.

Considerazioni generali

Qualche piccolo accorgimento utile:

Tradurre tutto il tema o solo una parte?

Quando visualizzerai la lista delle stringhe da tradurre, a seconda del tema queste possono essere anche diverse centinaia.

Molte di queste, molto probabilmente, riguarderanno il backend del tema, ossia la parte di configurazione del tema stesso nella bacheca di WordPress.

Se il tuo scopo è la traduzione delle voci per soli i visitatori del sito, tutta la parte del backend puoi anche risparmiartela. In alcuni temi potrebbe anche essere la maggior parte delle voci, tanto tempo risparmiato.

Tradurre in locale o sul sito on line?

Indipendentemente che tu scegli di utilizzare Poedit o un plugin, il consiglio è sempre quello di tradurre in locale, provare la traduzione su una installazione di test, e solo a traduzione finita e verificata trasferirla nel sito on line.

Il tema parla ancora in inglese?

Un tema di WordPress assume la lingua definita nelle impostazioni di WordPress, purché i file di localizzazione siano presenti nella cartella “languages” del tema, altrimenti il tema parlerà l lingua per cui è stato scritto.

Per le versioni di WordPress precedenti alla 4.0, verifica che nel file di configurazione wp-config.php ci sia questa impostazione:

define (‘WPLANG’, ‘it_IT’);

Come puoi notare, il valore impostato è uguale al nome dei file di localizzazione italiana.

Per WordPress 4.0 e successivi, invece, la lingua di WordPress non è più impostata nel file di configurazione ma nelle Impostazioni Generali.

Se WordPress non è impostato in italiano, il tema parlerà nella lingua per cui è stato scritto, solitamente l’inglese.

Tags: , , , , , ,

40 Risposte a “Come tradurre un tema per WordPress (aggiornato)”

  1. Paul 10 Nov 2014 at 12:50 #

    Ciao Roberto, su questo argomento ho veramente necessità di supporto, vorrei installare wpml per localizzare il tema in inglese, tu hai esperienza in merito??

    Grazie
    Paul

    • Paul 10 Nov 2014 at 12:52 #

      Te lo chiedo perché ho fatto due tentativi e sono stati veramente un disastro, questo plugin molto famoso ha duplicato tutti i contenuti del sito incluse immagini per poi alla fine non funzionare e bloccandomi il sito, c’è un metodo per procedere passo passo evitando di fare errori??

      Grazie
      Paul

      • Roberto Rota 10 Nov 2014 at 13:02 #

        Non ho mai sentito che Codestyling Localization abbia mai duplicato contenuti a qualcuno.

        Sei sicuro di non confonderti con WPML o altro plugin per la realizzazione di siti multilingua?

        rob

        • Paul 10 Nov 2014 at 14:02 #

          Ciao Roberto,

          mi riferivo proprio a WPLM e questo plugin che effettua la duplicazione di tutto e poi manda il template in crash, per quello ti chiedevo se tu hai esperienza con questo plugin.
          Grazie
          Paul

          • Roberto Rota 10 Nov 2014 at 14:31 #

            Allora, WPML serve per creare siti multilingua, non per localizzare un tema, sono due cose molto differenti (anche se hanno parecchi punti in comune).

            WPML lo uso quotidianamente, è perfettamente normale che crei dei duplicati di post e pagine (e molto altro) per ogni lingua che si vuole aggiungere al sito.

            rob

            • Paul 10 Nov 2014 at 14:43 #

              Si scusami ho sbagliato intendevo proprio quello, tradurre il sito in inglese evitando di scrivere su unico posto la traduzione in lingua inglese, puoi dirmi se esiste un articolo che descrive passo passo come avviare la procedura del plugin, ci ho provato su un sito cliente fra l’altro un e-commerce, ho dovuto installare oltre al plugin altri 4/5 addon, risultato la pagina cassa, carrello ecc. irragiungibili… non ti dico per rimettere tutto in ordine che fatica, ho dovuto ricaricare tutte le immagini, che una volta dissimulato il plugin sparivano .. nn si sa perché..
              Grazie
              Paul

              • Paul 10 Nov 2014 at 14:46 #

                scusa gli errori ma dipende dal correttore della tastiera, intendevo scrivere disinstallato il plugin.

                Paul

              • Roberto Rota 10 Nov 2014 at 14:50 #

                WPML è un sistema complesso, crea degli equilibri estremamente delicati che vanno gestiti da manuale, specie se ci sono altri elementi in campo come WooCommerce.

                L’argomento è molto complesso, ti consiglio prima di tutto di leggere a fondo la manualistica su wpml.org, è molto ben fatta e ti permette di capire come funziona il sistema, e quindi di seguire le istruzioni alla lettera.

                rob

                • Paul 10 Nov 2014 at 15:06 #

                  Grazie del suggerimento Roberto, in sincerità ho seguito alla lettera i consigli di WPML ma nonostante tutto sono sorti diversi problemi, per quello ora sono molto cauto, vorrei riprovare l’installazione, ma farò in questo modo, creerò un sottodominio ed installerò e configurerò il plugin in quel ambiente per verificare passo passo le problematiche, e speriamo di uscirne.
                  Puoi rispondere anche alla mia domanda sul tema child, ora che sono riuscito a farlo funzionare avendo da poco aggiornato il template vorrei proprio mettere in pratica quanto hai scritto.
                  Ti ringrazio
                  Paul

  2. mario 12 Mar 2015 at 16:19 #

    Ciao Roberto,
    Articolo super utile.
    Io sto costruendo un sito multilingua (It/En) con l’ausilio del plugin qTranslate. Il mio primo passo è tradurre in italiano il tema che ho acquistato, poiché la sua lingua originaria è l’inglese.
    Ho deciso di tradurre il tema con POEDIT, lavoro infinitamente lungo ma semplice. Il problema sorge quando posiziono la copia dei file tradotti (it_IT.mo e it_IT.po) nella cartella language nel tema child: il tema rimane in inglese. Mentre se inserisco la copia di file (it_IT.mo e it_IT.po) nella cartella language del tema “genitore”, tutto sembra funzionare alla perfezione: riesco a visualizzare il sito sia in inglese sia in italiano.
    Come posso risolvere?

    • Roberto Rota 12 Mar 2015 at 23:07 #

      Ciao Mario, questo è un problema con cui litigo da parecchio tempo, e non ho una soluzione universale a portata di mano.

      Alcuni temi, più attenti alle problematiche dei temi child, riconoscono un’eventuale cartella con i file di localizzazione quando viene chiamata come quella del tema genitore.

      Altri ancor più lungimiranti, come i temi di WooThemes ad esempio, riconoscono i file di localizzazione inseriti direttamente al primo livello della cartella del tema child.

      Altrimenti è il caos.

      Con alcuni temi sono riuscito a mettere in pratica le istruzioni del codex di WordPress relative alla localizzazione dei temi child, ma con alcuni temi più ostici no, e non sono riuscito a capire il perché.

      rob

      • mario 16 Mar 2015 at 22:08 #

        Ciao Roberto,
        ho risolto in questo modo:

        1 – inserito il file functions.php nella cartella del tema child (/wordpress / wp-content / themes / neighborhood-child)

        2 – compilato il file functions.php con il seguente codice:

        add_action( 'after_setup_theme', 'my_translation_child_theme_setup' );
        function my_translation_child_theme_setup() {
        load_child_theme_textdomain( 'swiftframework', get_stylesheet_directory() . '/languages' );
        }

        3 – creato la cartella “languages” nella stessa directory

        4 – copiato all’interno della cartella i files .mo e .po

        • Roberto Rota 16 Mar 2015 at 22:56 #

          Grazie del feedback Mario, ma nel commento si è persa la parte del codice del punto 2.

          Se me la mandi via mail (support (at) robrota.com) la inserisco io nel tuo commento.

          rob

        • Roberto Rota 17 Mar 2015 at 11:32 #

          Ciao Mario.

          Sì, è più o meno il codice indicato nel codex di WP per queste operazioni, in generale bisogna sostituire il textdomain (swiftframework nel tuo esempio) con quello corretto per il tema utilizzato.

          Rispetto il codice originario (vedi link nel mio precedente commento) la riga add_action è inserita prima e non dopo la funzione, secondo taluni questo dovrebbe farlo andare meglio.

          Purtroppo non funziona con tutti i temi, secondo la mia esperienza.

          Grazie ancora per il feedback.

          rob

    • Codrin 25 Lug 2016 at 12:08 #

      Ciao Mario, posso chiederti se sei riuscito a tradurre il tema ” Neighborhood “, se era possibile sentirci via mail per uno scambio, pagandoti ovviamente. Ti ringrazio!

  3. Francesco 25 Mar 2015 at 18:29 #

    Ciao Roberto, ottimo articolo. Ascolta, ho un problema: se io volessi pre-includere in una mia localizzazione la traduzione di alcune parole (che poi sono campi meta compilati dall’utente) c’è un modo per riuscire a farlo? Cioè esiste qualcosa o non è fattibile?
    Plugin non ne ho trovati. Si accettano suggerimenti sono mezzo bloccato. Grazie. Francesco

    • Roberto Rota 25 Mar 2015 at 18:47 #

      Ciao Francesco, ma ho riletto più volte il tuo commento ma non sono riuscito ad inquadrare il problema.

      Prova a rispiegarmelo come faresti con un bambino 😉

      rob

  4. Andrea 6 Giu 2015 at 22:55 #

    Ho fatto tutto con Codestyling Localization, ho creato la lingua ecc., infatti ora il mio tema è in italiano, ma come faccio ora a tornare all’inglese?, io non avevo modificato la lingua inglese, avevo solo creato l’italiano, quindi ora dovrei solo selezionare l’inglese come lingua del tema, come lo faccio? Grazie.

    • Roberto Rota 6 Giu 2015 at 22:57 #

      Ciao Andrea, o rimuovi/sposti i file di traduzione in italiano creati da Codestyling Localization, o setti la lingua di WordPress in inglese nelle preferenze.

      Rob

    • Andrea 6 Giu 2015 at 23:03 #

      Ho l’ultima versione di wordpress, come lingua di wordpress ho messo inglese, ma il tema rimane in italiano

      • Roberto Rota 6 Giu 2015 at 23:05 #

        Forse c’è qualcosa che non va nella tua localizzazione, ripristina i file della cartella languages dal tema originale.

        rob

        • Andrea 6 Giu 2015 at 23:07 #

          Hai scritto qualche guida su come impostare la lingua del sito in base alla posizione dell’utente connesso al sito? E’ una cosa difficile?
          Grazie!

          • Roberto Rota 6 Giu 2015 at 23:31 #

            No, non ricordo di aver mai scritto niente a riguardo, ma di solito ci si preoccupa di questo solo se si realizza un sito multilingua, che non si limita a tradurre le voci del tema ma soprattutto i contenuti.

            Poi, più che la posizione, si guardano le preferenze di lingua del browser per determinare la versione del sito multilinga da visualizzare: se la lingua del browser è tra quelle disponibili l’utente viene indirizzato in quella, altrimenti viene indirizzato alla lingua di default.

            I plugin multilingua come WPML hanno questa opzione di serie.

            rob

            • Andrea 6 Giu 2015 at 23:46 #

              Grazie mille, buona serata!

      • Andrea 6 Giu 2015 at 23:06 #

        Risolto, vedevo ancora in italiano per colpa della cache del browser. Grazie!

  5. enigmamma 9 Giu 2015 at 19:55 #

    Ciao! Ma il software Poedit va bene anche per tradurre solo “pezzi” rimasti intradotti nel tema italiano? Tipo i Read more e i Posted by lasciati così nonostante tutto il resto del tema sia già in italiano? Grazie per la precisione e accuratezza degli articoli

    • Roberto Rota 9 Giu 2015 at 23:06 #

      Si, è possibile fargli digerire anche file di localizzazione parzialmente tradotti.

      rob

  6. Christian 13 Dic 2015 at 17:06 #

    Ciao, io ho tradotto il template del sito 1 con codestyling. Adesso vorrei creare il sito 2 con lo stesso template del sito 1 e sfruttare la traduzione già fatta ma non ci riesco. Quale è la procedura da seguire?

    • Roberto Rota 13 Dic 2015 at 17:24 #

      Ciao christian, basta che prendi i file della localizzazione nella cartella languages (o lang a seconda del tema) del tema 1 e li copi nella stessa cartella del tema 2.

  7. Enrico 28 Gen 2016 at 11:26 #

    Salve, avrei un quesito:
    Ho tradotto correttamente tutte le stringhe, ma alcuni campi (nonostante siano tradotti) del woocommerce restano sempre in inglese. Mi riferisco ad esempio alla pagina carrello.
    Qualche suggerimento per risolvere il problema?

    • Roberto Rota 28 Gen 2016 at 15:06 #

      In genere dipende dal tema, alcuni temi non si comportano bene al 100% con le traduzioni.

      Se non torvi le stringhe nei file di traduzione puoi modificare i template o le funzioni che le riguardano, o puoi intercettare le stringe e tradurle con degli snippet php.

      Roberto

  8. Luca Cannarozzo 29 Feb 2016 at 17:56 #

    Ciao Roberto ho utilizzato il programma che hai indicato.. davvero molto utile! Ho seguito passo passo ciò che hai scritto ma purtroppo il mio sito resta in inglese.. come mai?

    • Luca Cannarozzo 29 Feb 2016 at 18:00 #

      PS Ho controllato anche le impostazioni del tema e sembrano esatte.. 🙁

    • Roberto Rota 1 Mar 2016 at 07:44 #

      Ciao Luca, senza vedere cosa hai fatto, per poter individuare eventuali problematiche o errori di procedura, non saprei davvero come consigliarti.

      rob

  9. woody 9 Lug 2016 at 18:32 #

    Ciao Roberto,
    io traduco da un po’ i temi con Poedit, ma resta sempre il problema… Mi spiego meglio:

    1. Ho acquistato un tema pro, ho tradotto quasi tutto il file e caricato nella cartella tema. Tutto funziona bene.
    2. Dopo qualche mese c’è un aggiornamento del tema è anche stato aggiornato il file language. Cosa faccio?
    3. La mia soluzione è verificare con un tool online i due file language ed implemento una per una…. (lavoro lunghissimo. infinito) le nuove voci e tolgo quelle non più presenti. Però riaprendo il file con Poedit mi accorgo che tutte le traduzioni che avevo fatto non sono abilitate (sono in colore marrone), allora devo abilitarle una per una.

    Chiaramente ogni aggiornamento è un lavoro infinito.

    Conosci un metodo migliore?
    Grazie

    • Roberto Rota 11 Lug 2016 at 09:10 #

      Ciao, in genere io utilizzo la funzione di Poedit per aggiornare il file pot originale, di solito non ho grossi problemi e devo solo localizzare le stringhe aggiunte e poco più.

      rob

      • woody 11 Lug 2016 at 09:16 #

        Ciao, c’è una funzione che semplifica?
        Fa un confronto da solo e segnala quelli cambiati? o eliminati?
        Grazie

        • Roberto Rota 11 Lug 2016 at 10:02 #

          Ora non ho sotto mano poedit, ma se non ricordo male c’è una voce per aggiornare da file pot o qualcosa del genere.

          rob

  10. ivano 12 Gen 2017 at 17:33 #

    ciao, ho fatto diverse volte le traduzioni dei temi, peò adesso mi sfugge come mantenere le traduzioni per i plugin, dopo l’aggiornamento. Voglio dire, all’interno della crtella del plugin che voglio tradurre c’è la cartella languages, al cui interno ho i file po e mo. una volta che io aggingo delle traduzioni le salvo li dentro, ma con l’aggiornaento del plugin le perderò e dovrò ricaricare i miei file tradotti ogni volta che si aggiorna il plugin, come si può fare?

Dubbi o suggerimenti? Lascia un commento!

I love Instagram