Sempre 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.

English text

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 echo home_url( '/en' ); ?>

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->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
        $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
        $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';

       // Determine integration with qTranslate Plugin
       if (function_exists('qtrans_convertURL')) {
          $attributes .= ! empty( $item->url ) ? ' href="' . qtrans_convertURL(esc_attr( $item->url )) .'"' : '';
       } else {
          $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : '';
       }

       $item_output = $args->before;
       $item_output .= '<a'. $attributes .'>';
       $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
       $item_output .= '';
       $item_output .= $args->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.

Pin It on Pinterest

Share This