Tradurre il blog in un’altra lingua

Come rendere disponibile il proprio sito in tante altre lingue con un semplice clic per il visitatore.

Questo è un post tecnico di 8 anni fa. Le istruzioni potrebbero non essere più valide.

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.

Autore: Aldo Latino

Aldo Latino usa con entusiasmo Linux nella distribuzione Ubuntu, è un appassionato di WordPress e si diletta a fare il blogger. Ha anche una lista dei desideri. Per altre informazioni visita la sua .

5 pensieri riguardo “Tradurre il blog in un’altra lingua”

  1. Perdona le mie finezze da informatico, ma non potevi fare un enumerativo e fare un for che ti generava tutti i “cosi” cambiando solo “en” con “fr” e così via? :)

    1. Ciao Silvio,
      molto strano che non vedi il link completo, anche perché non dipende dalla tua macchina, ma dal php del tema.

      Per i font non uso alcun plugin, ma la dichiarazione @font-face nel CSS. Solo con Opera ho difficoltà; con gli altri browser (Firefox, Chrome, Safari, IE) tutto ok.
      Grazie delle segnalazioni. :)

      Edit: Ho modificato leggermente il menu: magari ora non si sovrappongono le bandiere.

      1. Ti confermo che su FF i font si vedono bene (pensavo fosse un plugin tipo cufon).
        Per la traduzione, idem a prima.

I commenti sono chiusi