Commenti a Heracleum Sudoku
Ciao carissimi amanti del Sudoku.
Questo post è qui per ricevere da voi commenti, suggerimenti, segnalazioni di malfunzionamenti (impossibile! eheh)…
Ciao carissimi amanti del Sudoku.
Questo post è qui per ricevere da voi commenti, suggerimenti, segnalazioni di malfunzionamenti (impossibile! eheh)…
Hello Sudoku lovers!
This post is here to receive feedback, suggestions, bugs (impossible! eheh)
Parola d’ordine: multilingua.
O meglio, “bilingue”. Nel mio caso, fondamentalmente avevo bisogno di scrivere articoli in due lingue (italiano e inglese). Durante le mie prime ricerche ho trovato numerosi plugin che supportano lingue multiple in un singolo post con feature per passare da una all’altra lato-client. Non è esattamente quello che cercavo: post distinti in differenti lingue ma legati tra di loro da una relazione del tipo “uno traduzione dell’altro”. Lo switch di lingua deve essere “globale”, a livello di sito: navigando il blog in inglese l’utente deve vedere solo post in inglese; ogni articolo deve esporre un link alla sua traduzione -se presente- nell’altra lingua altrimenti indicare che esiste solo la versione in quella lingua.
Tutto questo -ed altro- è reso possibile aggiungendo il plugin “Gengo” per wordpress.
In realtà Gengo -così com’è- non copre proprio tutte le mie necessità specifiche (e ci mancherebbe…) sicché ho dovuto metter mano al suo codice -piccolo hack- per farlo funzionare a dovere.
Prima di tutto, Gengo si aspetta di ricevere la lingua corrente come parametro nella query-string (ad es. ?language=en) che, una volta attivato l’opzione URL rewrite di wordpress -come ho fatto subito-, verrà mostrata nell’URL come un “/en/” aggiunto a sinistra in ogni contesto, per esempio un URL completo sarà:
host/wordpress/2007/02/17/post-title/en/
Questa soluzione, a parer mio e di altri -come ho potuto leggere nel loro Forum- risulta poco gradevole (proprio bruttarella, per dirla tutta).
Visto che al di fuori della sezione d’installazione di Wordpress (/pages/ in questo sito) la definizione della lingua corrente è determinata da un sottodominio (3° livello), it.heracleums.org per la versione italiana e nessun sottodominio (heracleums.org) per quella inglese, volevo che Gengo determinasse la lingua corrente secondo lo stesso criterio.
Questa è la prima modifica rilevante che ho dovuto applicare.
L’altro aspetto da considerare usando Gengo è che -ad oggi- anche nella’ultima versione non supporta ancora WP 2.1! Comunque, da quanto ho potuto vedere questo crea problemi solo quando si vuole assegnare una relazione di traduzioni nella pagina Write/Manage post di WP, associazione che fortunatamente è possibile fare (e funziona!) anche nella pagina “translations” del plugin Gengo.
Un problema sempre collegato all’incompatibilità con WP2.1 accade quando si tenta di reperire le traduzioni del singolo post -il language switch- nel proprio theme: non funge dicendo “No translations” anche quando ne ha in realtà. Il workaround richiede query costanti a mySQL: questo mi ha portato rapidamente a prendere in considerazione l’utilizzo di un plugin di gestione del caching (ne parlerò in seguito).
Tutto il resto funziona inaspettatamente bene, giusto per accennare ad un’altra simpatica feature multilingue: le Categorie, pur essendo un oggetto comune nelle differenti lingue, hanno ciascuna la sua brava traduzione.
Il resto del lavoro riguarda lo sviluppo del custom Theme che deve mostrare un look coerente a quello del sito intero, traduzioni bilingui di messaggi al suo interno -che nella maggior parte dei temi penso siano “schiantate” in inglese nel codice dai loro autori-, gestione flessibile (e variabile di contesto in contesto) degli stili CSS e questioni varie.