A programmer’s paranoia

Confessions of an hacker

A programmer’s paranoia header image 2

Multilingual Wordpress

Jul 3, 2008 - 13:29 · 25 comments

I’ve added a multilinguale support for my blog. It wasn’t a 2 click operation but now I’m proud of my work. I use Quian Quin qTranslate after having experimented with every multilingual plugin avaiable out there. I feel very confortable with this plugin. It create specific language link in the form:

site_name/the-two-letter-language-identifier/the_rest_of_the_link

For example permalink of this post is:

http://www.zaerl.com/2008/07/03/multilingual-wordpress/ (the english version, english is the default language)

http://www.zaerl.com/it/2008/07/03/multilingual-wordpress/ (the italian version)

If you aren’t in touch with gettext or the Wordpress infrastructure probably you don’t know that you can surround the text with some specific bbcode-like tag. For example in my blog I use italian and english. I have localized the term “language” on the qTranslate widget on the right column just modifying the title surrounding the english text with a bbcode tag lang_en and the italian one with lang_it.

You can localize pratically everything. On of the most interesting thing is that if a particular resource is not present on your language then Wordpress will show you the alternative version. Try to switch my blog to italian. Now on the right column you will see that “Grand Theft Auto IV for dummies” is indicated as “(English) Grand Theft Auto IV for dummies”. Isn’t this funny?

The only caveat is that sometimes the theme authors do not localize their themes and you have to do some quick hacks in order to modify the hardcoded text. I need to fix for example the main tab column in order to have it in italian. Well if you partecipate to some discussions you will always find that a multilingual Wordpress is a scary monster. No it isn’t. Just choose the right tool.

Tags: hacking

25 responses ↓

  • 1 Greenleaves on Jul 29, 2008 at 23:29 wrote

    Hi Francesco,

    Just wondering what tags you put in your permalinks to get that to work with the language. Is it automatic with the plugin? That is pretty cool.

  • 2 programmer on Jul 29, 2008 at 23:43 wrote

    qTranslate automatically create the permalink for the selected language. Basically it is a filter that intercept the URL and change the current language.

    Yes it functions pretty well. For example it is enough smart to redirect you to default language page if the language you choose isn’t installed. Trying french with this page will redirect you to the english one:

    http://www.zaerl.com/fr/2008/0.....-wordpress

    Anyway I found a weird bug today that affects non-firefox users. I’m waiting of an answer from the plugin creator.

  • 3 programmer on Jul 29, 2008 at 23:47 wrote

    The bug is: if you choose the italian language than you can’t select english again if you don’t specify /en/ after zarl.com. That bug spawns in safari 3.1.2 and Opera 9.51 (my 2nd and 3rd browers choice).

    It holds until I delete the cache on my server or you don’t restart the browser. Bizarre.

  • 4 Baga on May 10, 2009 at 15:29 wrote

    Ciao Francesco sai se è possibile modificare i permalink delle diverse lingue. Ad esempio:

    http://www.zaerl.com/2008/07/0.....wordpress/

    http://www.zaerl.com/it/2008/0.....ltilingua/

  • 5 programmer on May 10, 2009 at 18:36 wrote

    Ciao

    premetto che non uso più qTranslate perché si è rivelato essere pieno di subdoli bug ma ora uso xLanguage.

    La risposta alla tua domanda è no. La risposta un po’ più esaustiva è: xLanguage non permette di fare una cosa del genere perché non c’è un hook nel codice che permette a più di un permalink di indirizzare una risorsa.

    Comunque ora ci do un’occhiata più approfondita e poi magari saprò dirti qualcosa di più.

  • 6 Baga on May 10, 2009 at 18:51 wrote

    Peccato, in realtà stavo dando ora un’occhiata a questo nuovo plugin WPML: http://wpml.org/
    xLanguage l’ho usato in passato ma non mi aveva entusiasmato.
    Grazie comunque!

  • 7 programmer on May 10, 2009 at 20:11 wrote

    Funziona abbastanza bene. È una soluzione quick-and-dirty che a me piace.

    Di niente.

  • 8 Leobardo Rivera Lizarraga on Jul 22, 2009 at 4:59 wrote

    Hi, i have the same question of Baga, i read your answer but i dont speak italian but as far as i understand (i speak spanish so its little similar) the answer is that:
    http://www.zaerl.com/2008/07/0…..wordpress/
    http://www.zaerl.com/it/2008/0…..ltilingua/
    Its not posible with this plugin.
    I am right?

  • 9 programmer on Jul 22, 2009 at 13:16 wrote

    You’re right, the answer to your question is: no. A more detailed one is: you can’t do such a thing in xLanguage cause there isn’t an hook in the code that allow you to address a resource with more than one permalink.

    Have a nice day.

  • 10 Luca on Dec 3, 2009 at 10:28 wrote

    Ciao a tutti,

    Ho sempre usato XLanguage, ma all’improvviso, su una nuova isntallazione sembra essere diventato assolutamente incompatibile con qualsivoglia tipo di permalink. Anche voi avete avuto problemi di questo tipo? Come li avete risolti?

    E poi, opinioni sul plugin segnalato da Baga?

    Il problema di Xlanguage è che è… vecchio! Non più supportato, sviluppato per una versione di WP piuttosto superata, non da molto, ma da un pò (2.7.1). Il secondo dubbio è: meglio affidarsi a qualcosa di più recente?

    luca

  • 11 baga on Dec 3, 2009 at 10:36 wrote

    Ciao Luca,
    ho provato il plugin che avevo segnalato, ma alla fine ho optato per qTranslate che mi pare ben fatto e viene spesso aggiornato, oltre ad avere un ottimo forum di supporto.

  • 12 Luca on Dec 3, 2009 at 11:04 wrote

    Il mio terrore è la sequela di magagne segnalate (anche se quasi tutte risolte) nel loro forum di supporto.

    C’è da dire che Xlanguage non aveva il forum, se non erro, e quindi le magagne erano stemperate nei commenti! ;-)

    Luca

  • 13 programmer on Dec 3, 2009 at 17:47 wrote

    xLanguage ancora funziona bene (ora uso WP 2.8.*) anche se non supporta ufficialmente wordpress dalla 2.8 in poi. Comunque penso anch’io di passare a qTranslate di nuovo dato che xLanguage ormai è nel dimenticatoio e non ci sono alternative valide ora come ora.

    È un peccato che Wordpress stesso non si adegui ad una situazione comune come è quella di chi vuole avere contenuti in più di una lingua. Un supporto nativo sarebbe una feature che gli farebbe fare un salto di qualità notevole secondo me.

  • 14 baga on Dec 4, 2009 at 10:58 wrote

    Sono pienamente d’accordo con te, WordPress dovrebbe avere un supporto nativo di funzionalita’ multilingua.

  • 15 Alessio on Dec 28, 2009 at 10:59 wrote

    Ciao, ho installato qtranslate sul mio blog wordpress, plugin molto belle e ben fatto , ho solo un problema con il permalink, vorrei che per ogni lingua utilizzata si avesse nel link qualcosa del tipo /EN/titolopost /IT/titolopost . Il problema che qtranslare non me lo gestisce e da quello che vedo te ci sei riuscito, non riesco a capire se devo reinderizzare tutte le richieste con mod_rewrite o modificare il plugin manualmente. Grazie

  • 16 programmer on Dec 28, 2009 at 17:23 wrote

    Sulla pagina di configurazione di qTranslate, su “Advanced Settings” puoi scegliere lo schema che preferisci per i permalink tra:

    qualcosa?lang=en
    /en/qualcosa/
    en.qualcosa.com

    occhio che su wordpress 2.9 qTranslate funziona male. Io sono dovuto tornare temporaneamente a xLanguage.

  • 17 Luca on Dec 28, 2009 at 19:31 wrote

    Acc!

    1. Speravo che qLanguage fosse la soluzione
    2. Anche il tuo sito è caduto nella maledizione di X-Language: con firefox, cliccando su alcuni link (a me è capitato con la lingua) ti dà problemi e ti rimanda sul feed!

    Per il problema 2 ho anche scritto sul forum di Wordpress, ma nada, nessuna risposta (http://www.wordpress-it.it/forum/topic/13051)!

    Io sono letteralmente impazzito dietro a questo problema. La soluzione? Disattivare i permalink!!! Con tutto ciò che ne consegue!!!

    Se trovate una soluzione, benvenuta.

    In attesa: come la mettiamo con WPML? Qualcuno l’ha provato con successo?

  • 18 programmer on Dec 29, 2009 at 20:08 wrote

    Il problema fondamentale è che ancora non hanno trovato una soluzione stabile per i permalink. Aspetto che qTranslate venga aggiornato e vediamo un po’ come vanno le cose.

    WPML l’ho provato e non è un granché a mio avviso.

  • 19 Enrico on Feb 19, 2010 at 13:34 wrote

    Ciao a tutti!
    Anche io ho installato xlanguage, ma con l’ultima versione 2.9.2 di wp non funziona.
    qualcuno saprebbe dirmi come ha risolto il problema dei permalink?
    Io ho fatto dei test sia con il postfix che con il prefix ma se vado sul link diretto del blog non riesco a visualizzarlo.

  • 20 programmer on Feb 19, 2010 at 17:00 wrote

    In questo momento io sto girando in 2.9.2 e pare che xLanguage continui a funzionare (incredibile). Esempio:

    http://www.zaerl.com/lang/it/2.....-must-die/
    http://www.zaerl.com/lang/en/2.....-must-die/
    http://www.zaerl.com/2010/02/17/flash-must-die/

    fanno tutti e tre.

    Assicurati che nell’ordine:

    1) tu abbia creato un linguaggio (italiano)
    2) su “Language (advanced)” tu abbia messo sotto “Presentation” il segno di spunta ovunque
    3) su “Options -> Options” tu abbia messo “Only if WP-Cache (or WP-SuperCache) is enabled [Recommend]” e “Auto [Recommend] ”

    se mi dai il link del tuo blog posso investigare su possibili problemi.

  • 21 Enrico on Feb 19, 2010 at 17:05 wrote

    Dunque si.. le cose che mi hai detto sono ok.
    Questo è il blog
    http://blog.peoplesound.com/
    ora è attivo xlanguage.. e se clicchi su un blog vedi che il permalink sballa.
    Dopo un po’ di test, ho capito che il problema del permalink non dipende dal plugin ma dall’installazione di wp. Ora devo capire solo dove mettere le mani :-)

  • 22 programmer on Feb 20, 2010 at 16:03 wrote

    a quanto evinco i tuoi permalink sono del tipo:

    ?p=305&language=en

    quindi significa che non utilizzi mod_rewrite. Non so se è una cosa voluta oppure. Nel mio blog io lo uso così da avere permalink più belli da vedere.

    Ora per il resto mi sembra che funzioni. Ricorda che se non indichi un doppio titolo inglese/italiano ovviamente non genererai mai la pagina in italiano. Quando io creo una pagina ho una cosa del genere::

    Titolo post: English Title|Titolo Italiano

    Corpo del post:
    [lang_en]Hi there[/lang_en][lang_it]Ciao[/lang_it]

    Senza la doppia dicitura xLanguage non genera un language=it.

    Se vuoi attivare i permalink, cosa che ti consiglio, vai su Settings -> Permalink e su “Common Settings” metti il valore che vuoi. Io ho scelto “Day and name” che è secondo me è la soluzione più elegante.

    Stammi bene.

  • 23 Azzz on Apr 15, 2010 at 10:54 wrote

    Ciao, nel mio blog non c’è più la barra laterale e vorrei inserire il widget di qTranslate in un’altra posizione del template…
    Ho trovato un suggerimento in rete che dice che basta inserire una linea di codice

    http://www.silviaferri.com/appunti/?tag=qtranslate

    ma non mi funziona.
    Tu hai qualche suggerimento?
    Grazie! ciao

  • 24 programmer on Apr 16, 2010 at 16:20 wrote

    Dovrebbe funzionare a occhio ma non posso investigare ulteriormente perché io ora uso xLanguage.

  • 25 Andrea on Jun 14, 2010 at 14:54 wrote

    Ciao, volevo sapere una cosa.

    Ho letto che adesso utilizzi xlanguage. Volevo chiederti se per caso eri riuscito ad applicare il filtro lingua alla navbar.

    Mi spiego meglio. Hai presente quella barra dove viene vsualizzato il path della pagina in cui ti trovi? Vorrei sapere se per caso sei riuscito a far tradurre anche quello con xlanguage!

    Grazie ;)

Leave a Comment