Tradurre il blog in un’altra lingua

Se volessimo rendere multilingua il nostro blog, potremmo installare uno dei diversi plugin disponibili per WordPress: ne cito solo due, WPML Multilingual CMS e qTranslate, tramite i quali possiamo tradurre manualmente il testo, tenendolo sotto controllo. Ma per chi non vuole intraprendere la fatica del compito di traduzione o non ha il tempo per farlo, si può delegare Google a questo compito. Non sarà una traduzione perfetta, ma almeno chi non parla l’italiano comprenderà in buona parte cosa ci sia scritto. Se lo si vuole si può implementare la soluzione così come Google la propone, ma si può scegliere anche un modo diverso, che io ho implementato in Ubuntu block notes.

La cosa interessante, secondo me, è fornire l’indirizzo che si sta visualizzando e non semplicemente l’URL del nostro blog: in quest’ultimo caso, infatti, il lettore dovrebbe andare a ripescarsi l’articolo cercandolo tra gli altri. Con un po’ di attenzione possiamo fornirgli sempre l’indirizzo corretto che lui stava visualizzando nel momento in cui ha premuto il pulsante di traduzione.

Ecco il codice così com’è in uso in questo blog:

<div id="translate">
    <?php
        if(is_home()) {
            $myUrl = get_bloginfo('url');
        } elseif (is_singular()) { // single OR page OR attachment
            $myUrl = get_permalink($post->ID);
        } elseif (is_archive() || is_search()) {
            $myUrl = get_bloginfo('url').$_SERVER['REQUEST_URI'];
        }
        $enUrl = 'http://translate.google.com/translate?u='.$myUrl.'&sl=it&tl=en&hl=&ie=UTF-8';
        $frUrl = 'http://translate.google.com/translate?u='.$myUrl.'&sl=it&tl=fr&hl=&ie=UTF-8';
        $esUrl = 'http://translate.google.com/translate?u='.$myUrl.'&sl=it&tl=es&hl=&ie=UTF-8';
        $deUrl = 'http://translate.google.com/translate?u='.$myUrl.'&sl=it&tl=de&hl=&ie=UTF-8';
    ?> 
    <a href="<?php echo esc_url($enUrl); ?>" title="Translate this page into English">
        <img src="<?php echo get_bloginfo('template_url'); ?>/images/en.png" alt="English" width="32" height="32" />
    </a>
    <a href="<?php echo esc_url($frUrl); ?>" title="Traduire cette page en français">
        <img src="<?php echo get_bloginfo('template_url'); ?>/images/fr.png" alt="Français" width="32" height="32" />
    </a>
    <a href="<?php echo esc_url($esUrl); ?>" title="Traducir esta página en español">
        <img src="<?php echo get_bloginfo('template_url'); ?>/images/es.png" alt="Español" width="32" height="32" />
    </a>
    <a href="<?php echo esc_url($deUrl); ?>" title="Übersetzen Sie diese Seite in Deutsch">
        <img src="<?php echo get_bloginfo('template_url'); ?>/images/de.png" alt="Deutsch" width="32" height="32" />
    </a>
</div>

Dovrebbe essere tutto chiaro. Lo illustro comunque brevemente:

  • se il lettore visita la home page del blog, l’indirizzo da tradurre sarà l’URL del blog;
  • se invece si trova in un articolo o in una pagina o in un allegato, verrà fornito l’URL in questione;
  • se invece si trova in una pagina d’archivio o in una ricerca, WordPress non ha una funzione interna per restituire l’URL che si visita, ma possiamo chiedere al server di restituircelo.

Dopo aver definito l’indirizzo da tradurre, costruiamo il link per il pulsante che rinvia alla traduzione di Google. L’indirizzo è composto così nel caso dell’inglese:

http://translate.google.com/translate?u=http://domain.tld&sl=it&tl=en&hl=&ie=UTF-8

dove u è l’indirizzo, sl è la lingua di partenza e tl è la lingua di arrivo. Risulta così facile costruire i quattro link per le quattro lingue (nel mio caso inglese, francese, spagnolo e tedesco).

Segue, infine, la costruzione dei “pulsanti” che rimandano alle pagine di traduzione e che sono raffigurati dalle bandierine dei rispettivi paesi. Ovviamente va personalizzato il percorso verso queste immagini che risiedono nel vostro server: nell’esempio che riporto le immagini vengono prelevate dalla sottodirectory /images del tema in uso.

A me sinceramente fa un certo effetto vedere i miei scritti tradotti istantaneamente in altre quattro lingue e, al di là della traduzione perfetta o meno, credo sia un gesto carino per i lettori che non parlano l’italiano fornire loro un testo che, seppure da rivedere, sia comunque comprensibile.