Deprecated: Assigning the return value of new by reference is deprecated in /storage/content/74/1007074/heracleums.org/public_html/pages/wp-includes/cache.php on line 103 Deprecated: Assigning the return value of new by reference is deprecated in /storage/content/74/1007074/heracleums.org/public_html/pages/wp-includes/query.php on line 61 Deprecated: Assigning the return value of new by reference is deprecated in /storage/content/74/1007074/heracleums.org/public_html/pages/wp-includes/theme.php on line 1109 2007 March - Archive - Heracleum Pages

Archives for the month March, 2007

Commenti a Heracleum Sudoku

Wednesday, March 7th, 2007

Ciao carissimi amanti del Sudoku.

Questo post è qui per ricevere da voi commenti, suggerimenti, segnalazioni di malfunzionamenti (impossibile! eheh)…

Heracleum Sudoku comments

Wednesday, March 7th, 2007

Hello Sudoku lovers!

This post is here to receive feedback, suggestions, bugs (impossible! eheh)

Blog Multilingua

Friday, March 2nd, 2007

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.