v Come fare un sito web multilingua su WordPress | Luigi Nervo
Sito web multilingua con Wordpress

Sito web multilingua con WordPressSempre più clienti chiedono un sito web multilingua per intercettare mercati esteri. Come fare su WordPress? La soluzione migliore è il plugin gratis qTranslate, ma non basta installarlo: è necessario costruire una struttura efficacie, impostare i parametri di qTranslate, aggiungere delle estensioni e ritoccare alcune cose nel codice. Non si tratta di operazioni semplicissime e sono necessarie conoscenze sul funzionamento di WordPress e alcune basi di linguaggio Php, ma, una volta sistemato, qTranslate è un plugin molto efficacie e semplice da utilizzare. Di seguito scriverò passo per passo come realizzare un sito web multilingua su WordPress, prendendo come esempio un blog in italiano e in inglese. Realizzare due installazioni di WordPress o gestire il sito multilingua in una sola? Sono entrambe strade possibili. Se vogliamo realizzare due siti web diversi a seconda della lingua e indipendenti tra di loro, la soluzione migliore è quella delle due installazioni. Se invece vogliamo realizzare un sito duplicato in due lingue con le stesse pagine e gli stessi articoli, la doppia installazione ci farebbe perdere tanto tempo nella fase di costruzione e in quella di gestione dei contenuti. In questo caso, la soluzione migliore è quella di unire tutte le lingue e organizzare i contenuti attraverso un plugin come qTranslate.

È meglio utilizzare un sottodominio o un sistema di directory per un sito multilingua? In altre parole: en.sito.com oppure sito.com/en? Non ci sono grandissime differenze tra le due opzioni ed entrambe vengono utilizzate per il targeting geografico di Google Webmaster Tools. Il sottodominio è leggermente più efficace per i motori di ricerca perché consente diverse posizioni dei server e quindi divide più nettamente le lingue. Tuttavia, la struttura a directory viene percepita meglio dall’utente ed è più semplice da gestire. Valutando i pro e i contro delle due opzioni, la seconda è quella consigliata. Abbiamo dunque scelto il dominio.

A questo punto installiamo il plugin qTranslate di WordPress e scopriamo le funzionalità di base. È possibile installare un widget che consente di inserire le bandierine all’interno del sito per leggere i contenuti in tutte le lingue scelte (possiamo aggiungere tute quelle che vogliamo, anche inventate). Dall’editor dei post e delle pagine un’interfaccia intuitiva ci permette di impostare il titolo e il corpo del testo nelle lingue scelte. Possiamo modificare anche title, description e parole chiave nei campi del plugin All in one Seo, oppure i nomi delle categorie e i titoli dei widget inserendo prima del testo i codici associati alle lingue, per esempio [ :it] e [ :en] Ma questo sistema non basta.

Come si traducono parti di codice o il text widget con qTranslate? Innanzitutto installiamo il plugin qTranslate Extension sostituendo le righe dalla 202 alla 210 del suo file php con il codice Java che segue.

jQuery(document.body).bind('click.widgets-toggle', function(e){
     var target = jQuery(e.target);
     if ( target.hasClass('widget-control-save') ) {
          var form = target.parents('form:first');
          if(form.hasClass('multilanguage-form')){
               prepareMultilanguageData(form);
               setTimeout(function(){
                    generateMultilanguageElements(form.parent());
               },2500);
          }
          e.preventDefault();
     }
});

In questo modo si risolve il problema del text widget che adesso risponde ai codici lingua. Per lavorare sul codice delle pagine sono invece necessari dei comandi in php come quello che segue.

<!--?php if(qtrans_getLanguage() == "en") : ?-->English text<!--?php endif ?-->

Ovviamente, bisogna sostituire en con i codici delle lingue scelte. Per quanto riguarda i link dinamici, occorre inserire il link della lingua. Per esempio inserendo all’interno della stringa linguistica un comando come il seguente.

<!--?php if(qtrans_getLanguage() == "en") : ?--><a href="https://www.luiginervo.net/it/come-fare-un-sito-web-multilingua-su-wordpress/435/">text</a><!--?php endif ?-->

Per risovere un bug nei menu, occorre aggiungere il codice seguente al file functions.php.

add_filter('walker_nav_menu_start_el', 'qtrans_in_nav_el', 10, 4);
    function qtrans_in_nav_el($item_output, $item, $depth, $args){
        $attributes  = ! empty( $item-&gt;attr_title ) ? ' title="'  . esc_attr( $item-&gt;attr_title ) .'"' : '';
        $attributes .= ! empty( $item-&gt;target )     ? ' target="' . esc_attr( $item-&gt;target     ) .'"' : '';
        $attributes .= ! empty( $item-&gt;xfn )        ? ' rel="'    . esc_attr( $item-&gt;xfn        ) .'"' : '';
 
       // Determine integration with qTranslate Plugin
       if (function_exists('qtrans_convertURL')) {
          $attributes .= ! empty( $item-&gt;url ) ? ' href="' . qtrans_convertURL(esc_attr( $item-&gt;url )) .'"' : '';
       } else {
          $attributes .= ! empty( $item-&gt;url ) ? ' href="' . esc_attr( $item-&gt;url ) .'"' : '';
       }
 
       $item_output = $args-&gt;before;
       $item_output .= '&lt;a'. $attributes .'&gt;';
       $item_output .= $args-&gt;link_before . apply_filters( 'the_title', $item-&gt;title, $item-&gt;ID ) . $args-&gt;link_after;
       $item_output .= '';
       $item_output .= $args-&gt;after;
 
       return $item_output;
    }

Come gestire il Seo di un sito WordPress multilingua che utilizza il plugin qTranslate? Abbiamo visto che è semplicissimo modificare title, description e parole chiave grazie ai codici lingua che vengono accettati dal plugin All in One SEO Pack. Ma non è possibile tradurre l’Url che è molto importante per l’indicizzazione su Google e sui motori di ricerca. Per aggiustare questo problema, basta installare il plugin qTranslate slug with Widget e sostituire il widget delle bandierine con quello ora disponibile. Possiamo tradurre gli Url di post, pagine e categorie dai campi qTranslate Slug translation. Infine, non dimentichiamoci la sitemap. Quelle tradizionali non vanno bene perché difficilmente considerano la divisione in lingue, ma possiamo rimediare grazie al plugin Google XML Sitemaps v3 for qTranslate. Così facendo, si ottiene un sito web in WordPress completamente multilingua ed ottimizzato per il Seo. Personalmente ho testato il plugin qTranslate sul mio blog e sui siti di diversi clienti. Il verdetto? È una bomba, ma fatevi aiutare da un professionista per evitare che vi esploda tra le mani.

CONSIGLIO

In molti mi hanno chiesto consulenza per installare il plugin di qTranslate. Il mio consiglio è quello di dare un’occhiata a WPML e valutare l’acquisto di questo plugin. Si tratta di un plugin a pagamento, ma che richiede uno sforzo minore per essere installato e configurato. Anche il costo per la consulenza sarà più basso e avrai un modulo multilingua più funzionale e versatile.

WordPress multilingue

Articoli correlati

10 pensieri su “Come fare un sito web multilingua su WordPress”

  1. Salve Luigi,
    si può selezionare la lingua e mantenerla di default?
    Mi spiego meglio. Ho notato che quando si seleziona la lingua e poi si clicca sul tasto “home” o sul logo del sito, il sito torna in italiano. Come si può (se si può) ovviare questo problema?

    Grazie, Gabriele

  2. Buonasera, grazie per l’articolo :)

    Avrei un problema che non riesco a risolvere da giorni e mi chiedevo se lei potrebbe darmi un consiglio utile. Ho creato un sito con wordpress utilizzando il plugin Qtranslate. Tuttavia non riesco a trovare una soluzione per tradurre le anteprime del portfolio nella homepage. Secondo lei come potrei agire?

    La ringrazio moltissimo

  3. Buingiorno,

    grazie per l’interessante articolo. Ma è possibile creare un sito multilingua che prescinda dai traduttori automatici? qualcosa che mi colleghi la pagina alla bandierina?

    Scusi il mio linguaggio da veramente, veramente, poco esperta,

    Grazie ancora

  4. Ciao Luigi,

    ti ringrazio ma ho notato che pur avendo i due plugin (qtranslate e Seo All in One), non riesco a utilizzare i meta nelle due lingue (italiano e inglese), aspetto fondamentale per una buona indicizzazione.

    Mi sapresti aiutare?

    Grazie mille!

    Ciao,

    Piero

  5. Ciao Luigi,
    grazie per l’articolo interessante.
    Ho scaricato sia Qtranslate che All In One (ma stavo pensando di provare WordPress SEO by Yoast).
    Comunque il punto è che non riesco a predisporre la seo (title, description, ecc) nelle due lingue ma solo in italiano.
    Mi potresti aiutare?
    Grazie mille!
    Ciao,
    Piero

  6. Salve Luigi,
    grazie dell’articolo.
    Ho una domanda in riferimento a ciò che riguarda la compatibilità di questo plug in con i temi wordpress.
    il widget che consente di inserire le bandierine… è ovviamente dipendente dalla struttura del template. Ad esempio se io so che un sito dev essere multilingua e vorrei che le bandierine apparissero in alto a destra (dove generalmente mi aspetto di trovarle) devo assicurarmi che il template lo preveda..

    Ora, il mio è un commento forse un po improvvisato, ma ho la sensazione che di template che permettano questo siano non tanti. L’alternativa è metterlo nella sidebar, ma se si usa un template senza sidebar? cosa consiglieresti?

    Grazie

    Claudio

    1. Ciao Claudio.
      La soluzione più semplice è quella di inserire le bandierine come widget. Tuttavia, è possibile anche inserirle nel punto in cui vuoi che appaiono, ma per farlo devi forzare un pò il tema andando a modificare il codice. Non è semplice, manemmeno impossibile

  7. Sull’argomento naturalmente, come dico sempre, in ottica seo e posizionamento si vive di case study e tanti test. Personalmente preferisco la soluzione sito/it/articolo ma da alcuni miei test sembra rispondere meglio, in caso di 2 siti ad esempio in italiano e inglese, una struttura separata del tipo sito.it/articolo ed sito.com/articolo.

  8. parere espressamente SEO, sulla questione sottodomini/cartelle: meglio le cartelle, perchè quando il conteggio dei link viene fatto da google, prende in considerazione il numero di link che arrivano sul dominio, quindi un sottodominio è come se fosse un dominio a parte, una cartella viene considerata come facente parte dello stesso “insieme”.
    Entrambi i casi comunque sono nanerottoli, se confrontati alla soluzione che ha il dominio con l’estensione regionale (e quasi sicuramente richiede una installazione a parte).
    My 2 cents :)

    1. Grazie mille per il commento :)
      Anche io ho preferito adottare la soluzione sito/it/articolo, la migliore se non si vuole acquistare un’estensione regionale aggiuntiva e procedere con una registrazione in più (consigliata invece per siti di aziende grandi o medio-grandi che hanno le risorse per gestirli oppure di multinazionali)

Lascia un commento

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