La paranoia di un programmatore

Confessioni di un hacker

La paranoia di un programmatore header image 2

Wordpress multilingua

Lug 3, 2008 - 13:29 · 25 commenti

Ho aggiunto il support multilingua al mio blog. Non è stata una di quelle operazioni vanilla da 2 click e via ma adesso sono orgoglioso del mio lavoro. Io ho desiso di usare qTranslate di Quian Quin dopo aver sperimentato ogni plugin multilingua sulla piazza. Mi piace questo plugin. Posso creare link specifici a risorse localizzate in questa forma:

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

Per esempio il permalink di questo post è:

http://www.zaerl.com/2008/07/03/multilingual-wordpress/ (la versione inglese, l’inglese è il linguaggio predefinito)

http://www.zaerl.com/it/2008/07/03/multilingual-wordpress/ (la versione italiana)

Se non siete abituati a lavorare con gettext o Wordpress probabilmente non saprete che potete rinchiudere il testo con dei specifici tag tipo il bbcode. Per esempio nel mio blog io uso l’italiano e l’inglese. Ho tradotto il termine “linguaggio” nel widget di qTranslate sulla colonna di destra semplicemente modificanto il testo racchiudendo il termine inglese tra tag lang_en e quello italiano tra tag lang_it.

Si può tradurre praticamente qualsiasi cosa. Una delle cose più interessanti è che se una particolare risorsa non è presente nel tuo linguaggio allora Wordpress mostra la versione alternativa. Se leggete qui vuol dire che avete settato il blog in italiano. Sulla colonna destra vedete allora che “Grand Theft Auto IV for dummies” è indicato come “(English) Grand Theft Auto IV for dummies”. Non è divertente?

L’unica magagna è che qualche volta gli autori dei temi non traducono i loro temu e bisogna fare qualche piccolo hack per modificare il testo incluso. Per esempio io dovrei correggere la tab principale in modo da averla in italiano. Beh se avete mai partecipato a qualche discussione avrete sempre letto che rendere Wordpress multilingua è molto difficile. Ma non lo è. Basta scegliere gli attrezzi giusti.

Tag: hacking

25 risposte ↓

  • 1 Greenleaves il giorno Lug 29, 2008 alle 23:29 ha scritto

    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 il giorno Lug 29, 2008 alle 23:43 ha scritto

    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 il giorno Lug 29, 2008 alle 23:47 ha scritto

    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 il giorno Mag 10, 2009 alle 15:29 ha scritto

    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 il giorno Mag 10, 2009 alle 18:36 ha scritto

    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 il giorno Mag 10, 2009 alle 18:51 ha scritto

    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 il giorno Mag 10, 2009 alle 20:11 ha scritto

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

    Di niente.

  • 8 Leobardo Rivera Lizarraga il giorno Lug 22, 2009 alle 4:59 ha scritto

    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 il giorno Lug 22, 2009 alle 13:16 ha scritto

    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 il giorno Dic 3, 2009 alle 10:28 ha scritto

    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 il giorno Dic 3, 2009 alle 10:36 ha scritto

    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 il giorno Dic 3, 2009 alle 11:04 ha scritto

    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 il giorno Dic 3, 2009 alle 17:47 ha scritto

    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 il giorno Dic 4, 2009 alle 10:58 ha scritto

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

  • 15 Alessio il giorno Dic 28, 2009 alle 10:59 ha scritto

    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 il giorno Dic 28, 2009 alle 17:23 ha scritto

    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 il giorno Dic 28, 2009 alle 19:31 ha scritto

    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 il giorno Dic 29, 2009 alle 20:08 ha scritto

    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 il giorno Feb 19, 2010 alle 13:34 ha scritto

    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 il giorno Feb 19, 2010 alle 17:00 ha scritto

    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 il giorno Feb 19, 2010 alle 17:05 ha scritto

    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 il giorno Feb 20, 2010 alle 16:03 ha scritto

    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 il giorno Apr 15, 2010 alle 10:54 ha scritto

    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 il giorno Apr 16, 2010 alle 16:20 ha scritto

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

  • 25 Andrea il giorno Giu 14, 2010 alle 14:54 ha scritto

    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 ;)

Lascia un commento