FreeSpeak, un traduttore per GNOME
Introduzione ad un software per la traduzione di testi, siti web e per lo sviluppo di applicazioni internazionalizzate. L’articolo si prefigge anche di indirizzare il lettore su come possono essere utilizzati alcuni strumenti per lo sviluppo di applicazioni desktop.
INTRODUZIONE
Nell’era dell’evoluzione di GNU/Linux, sempre più utilizzato come sistema operativo per personal computers, non si può non [...]
Introduzione ad un software per la traduzione di testi, siti web e per lo sviluppo di applicazioni internazionalizzate. L’articolo si prefigge anche di indirizzare il lettore su come possono essere utilizzati alcuni strumenti per lo sviluppo di applicazioni desktop.
INTRODUZIONE
Nell’era dell’evoluzione di GNU/Linux, sempre più utilizzato come sistema operativo per personal computers, non si può non parlare di come il desktop abbia influenzato questa ascesa. Un ruolo molto importante in tutto ciò lo riveste indubbiamente l’ambiente GNOME.
Nonostante i notevoli miglioramenti e le decine di migliaia di applicazioni libere disponibili, può a volte sorgere il bisogno di scrivere nuove applicazioni non presenti o di riprenderne di abbandonate.
In questo caso parleremo di un software libero di nome FreeSpeak.
Quante volte avete avuto bisogno di tradurre delle parole, degli interi siti web, di avere dei suggerimenti su come tradurre una frase di un programma? Oppure, un esempio ancora più lampante, litigare con software shareware di traduzione su sistemi closed source che fanno uso di dizionari locali?
FreeSpeak si prefigge di risolvere proprio questi problemi, e di specializzarsi sempre di più in questo ambito al fine di offrire agli utenti GNOME una piattaforma full-featured per effettuare traduzioni.
Il nome FreeSpeak non ha un significato particolare, se non altro è l’insieme di due termini noti “Libero” e “Parlare”.
Il progetto nasce nel 2005 rilasciato sotto licenza GPL v2+, scritto da due sviluppatori membri del primo PUG italiano (l’Italian Python Users Group), tra cui io, e ripreso dopo circa 3 anni di inattività.
L’intento è quello di sfruttare dizionari e risorse già disponibili in rete ed usufruibili gratuitamente da tutti. Il funzionamento è molto simile a quello del dizionario di GNOME.
L’utente può scegliere per ogni traduzione quale motore online usare (come Google, Yahoo, FreeTranslation, Open-Tran, ecc.), dopodiché FreeSpeak traduce i dati immessi attraverso questi servizi.

Il risultato: avere una comoda applicazione in grado di effettuare traduzioni di testi, interi siti web, ed altre modalità, utilizzando il motore che si preferisce, con le lingue e le limitazioni che esso offre, senza dover navigare sul browser e rinunciare all’integrazione desktop.

COMMENTI SULLE TECNOLOGIE USATE
Come ben sapete, il free software è sempre in continua evoluzione, soprattutto quando si parla del sistema GNU/Linux, dove gli aggiornamenti e lo sviluppo è una macchina infernale che sforna idee, algoritmi e tecnologie sempre più raffinate e all’avanguardia.
FreeSpeak nacque in un’epoca molto diversa da quella attuale. Se per i sistemi closed source la creazione e l’applicazione di una tecnologia necessita 3 anni, per il mondo open source bastano 3 mesi.
Le prime versioni di FreeSpeak erano decisamente più portabili, semplicemente per una scelta di progettazione.
Inizialmente faceva uso di sockets con un protocollo costruito appositamente per l’Inter Process Communication tra istanze di FreeSpeak stesso, di un modulo esterno in C da compilare per la trayicon, di particolari algoritmi e moduli al fine di fare il parsing delle pagine HTML risultanti dalle richieste di traduzione, di files INI per la configurazione, e sfortunatamente di una progettazione molto scarsa del codice a causa dell’ancora poca esperienza degli sviluppatori nella programmazione.
Oggi alcune cose sono cambiate, e la piattaforma GNOME mette a disposizione ulteriori strumenti per facilitare la scrittura del codice. Ecco le tecnologie utilizzate da FreeSpeak:
-
Python 2.5+: uno dei linguaggi portanti per l’ambiente desktop e per molti altri progetti free software. Paradigma OO ibrido, semplice da utilizzare e interpretato. Lo odio anche per alcuni motivi che non sto qui a discutere, ma per questi tipi di progetti è decisamente una buona scelta.
-
Autotools: nonostante Python offre già dei moduli per l’installazione del software, quali distutils e setuptools, gli autotools sono di grande aiuto per quanto riguarda il software GNOME.
-
GTK+: il noto toolkit grafico di GIMP scritto in C sui cui si basano tutte le applicazioni GNOME. Con le ultime versioni si è riusciti a creare un trayicon non più obsoleta e al passo con lo standard FreeDesktop.org. Nonché la gestione della clipboard, che è di notevole importanza per effettuare traduzioni in modo lampante. -
Gnome-Doc-Utils: strumenti per la creazione di documentazione GNOME da visualizzare in Yelp, attraverso la scrittura di documenti docbook in XML.
-
GConf: un demone importantissimo per le applicazioni che permette di salvare la configurazione delle applicazioni mediante un’API molto semplice. La migrazione dai files INI è stata immediata, è bastato solo cambiare l’astrazione e il path d’accesso alle impostazioni. FreeSpeak ha un suo schema (file .schemas) di configurazione che installa in GConf al fine di definire i tipi nella configurazione. -
Gettext: questa nota libreria GNU viene utilizzata per la traduzione di FreeSpeak in altri linguaggi. L’applicazione non fa altro che utilizzare delle funzioni che estraggono le stringhe tradotte dai files .mo per poi essere visualizzate nel programma.
-
Intltool: essendo un programma di traduzione non può mancare lo strumento necessario per sviluppare un’applicazione internazionalizzata. La potenza nell’usare intltool con gli autotools è evidente. Permette di automatizzare l’aggiornamento dei .po (che saranno poi trasformati in .mo) con le stringhe non solo del programma, ma anche dei files .desktop, .schemas e dei docbook .xml.
-
Gtkmozembed: nonostante odio gecko, è al momento l’unico web engine stabile per essere embeddato nelle proprie applicazioni. Serve a visualizzare le pagine web tradotte.
-
Httplib e urllib: sono dei moduli interni a Python che permettono di dialogare con i servizi HTTP e di fare richieste GET e POST per effettuare traduzioni di tipo testuale.
-
LXML: libreria Python (con alcune parti scritte in C) per il parsing del broken HTML. I dati tradotti sono ottenuti utilizzando prevalentemente espressioni XPath.
CONCLUSIONI
Lo sviluppo di FreeSpeak è aperto a tutti, dalla segnalazione dei bugs, alla richiesta di supporto, ai suggerimenti e critiche, e, ovviamente, all’apporto di codice.
Questo è un chiaro esempio di come possa essere importante conoscere i diversi aspetti della programmazione e soprattutto delle potenzialità che il free software fornisce agli utenti e agli sviluppatori stessi, e della chiara flessibilità dei sistemi operativi su cui questi strumenti vengono ad essere adoperati.
Potete trovare ulteriori informazioni sul sito del progetto: http://freespeak.berlios.de.
Luca Bruno
