Traduzione siti… con mod_rewrite e .htaccess

Quante volte vi è capitato di avere un problema, ricercarne la soluzione su un motore di ricerca, e scoprire che l’unico ad averlo risolto è un utente tedesco o, peggio ancora, francese? L’unica cosa da fare, in questi casi, è affidarsi a un servizio di traduzione automatica (Google Translate, Babelfish, …), che renderà il testo per il 70% comprensibile e per il rimanente 30% immondizia. Sempre meglio di niente.

La pigrizia potrebbe però spingervi a chiudere la finestra e a cercare meglio altrove, o addirittura a tenervi il problema. Sebbene la seconda decisione conduca alla generazione di un poco interessante P.A. (Problema Altrui), la prima è un’evenienza di grosso impatto sociale, e che nessun web-author desidera: vedere utenti che scappano dal suo sito.

Bandiera Italiana Union Jack - Bandiera Inglese

Certo è che se trovaste una bandiera raffigurante i colori italiani, oppure una classica Union Jack, le cose andrebbero diversamente: ci clicchereste sopra, sperando di trovare lo stesso contenuto nella lingua a voi più comprensibile. Tuttavia è la stessa pigrizia che spinge pochissimi web-authors a tradurre i propri contenuti in altre lingue, e queste “bandierine”, manco a dirlo, non ci sono quasi mai.

Questa pigrizia “lato server” tuttavia non è molto giustificabile: se proprio non si vuole tradurre il sito, si può quantomeno aggiungere una truffaldina bandiera che semplicemente linka la pagina corrente a un servizio di traduzione automatica. Quello che, di fatto, renderà il sito agli stranieri pigri per il 70% comprensibile, e per il 30% immondizia.

E’ quindi semplice e comodo per tutti rendere i propri siti più accessibili agli stranieri. Si tratta solo di aggiungere un link a ogni pagina.

Attraverso l’url rewriting è però possibile aggiungere, a tal proposito, una simpatica feature. Con minime modifiche è possibile far sì che la pagina:
http://www.website.com/qualsiasi
Esista anche, tradotta in inglese, all’url:
http://www.website.com/qualsiasi/en

Come fare? E’ sufficiente configurare ad hoc il file .htaccess, inserendo al suo interno (possibilmente all’inizio) il seguente codice:



RewriteEngine On
RewriteRule ^(|(.*?)/)en/?$ http://www.google.com/translate_c?langpair=it/en&u=http://www.website.com/$2 [NC,L]

Dove alla riga 3:

  • Viene effettuato il matching con tutto ciò che termina per /en/ o per /en.
  • L’indirizzo è quello del traduttore di google, mentre www.website.com è il sito che si vuole tradurre.
  • $1 indica la stringa che ha superato tale matching (e quindi la pagina richiesta).
  • NC indica che il pattern è case-insensitive, e L indica che è l’ultima (Last) rule e di non valutare le (eventuali) successive.

A questo punto, per qualsiasi pagina sarà sufficiente aggiungere il suffisso “/en” in coda all’indirizzo, e automaticamente questa verrà visualizzata nel formato tradotto da Google.

Si potrà quindi aggiungere un comodo bottone di traduzione con il seguente codice:


English Translation

Ecco alcuni esempi funzionanti in questo sito:

E’ ovviamente possibile utilizzare servizi diversi da quello di Google, e aggiungere più regole di rewrite per più lingue.

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (1 votes, average: 5,00 out of 5)
Loading...

1 Commento a “Traduzione siti… con mod_rewrite e .htaccess”

  1. gialloporpora scrive:

    Io lo avevo aggiunto sul precedente blog, ma ho visto che nessuno ci cliccava :-P.
    Uhm, il francese è tanto più semplice del tedesco, io non mi ricorderei più come scrivere nella lingua di Napoleone, ma si capisce abbastanza, anzi mi sono persino iscritto ad un blog in lingua francofona :-).
    Ciao

Scrivi un commento



» Torna al Blog «




English Translation