L'avvento di Gnome e delle librerie Gtk+ nel mondo Linux ha contribuito non solo allo sviluppo generale del sistema, ma soprattutto ad una decisa svolta verso quell' "easy-to-use" che sembrava del tutto mancare al primo approccio dal lato utente con i sistemi "Unix-like".
Allo stesso tempo si è offerto allo sviluppatore un potente e completo framework per la progettazione e costruzione di applicazioni basate su standard oramai affermati e facilmente integrabili con i più diffusi linguaggi di programmazione attualmente disponibili nel mondo Unix.
Gnome e Gtk sono nate per creare uno standard free (open source) per scrivere applicazioni grafiche uniformi per sistemi UNIX.
Chiunque può usare le librerie Gtk e la infrastruttura Gnome senza dover pagare diritti o sottostare a vincoli dei produttori.
Visto il rapido sviluppo di questi strumenti ho deciso di scrivere un paio di articoli in materia corredati da un tutorial integralmente in italiano che traduce e riassume essenzialmente quello ufficiale fornito a corredo delle librerie.
Struttura di un'applicazione Gnome
Abbiamo già evidenziato la differenza tra Gnome e Gtk+ per chi non l'avesse ancora chiara rimandiamo alla lettura dell'articolo che si trova nella specifica sezione.
Qui basti rilevare che Gnome comprende Gtk+ quindi un'applicazione Gnome comprenderà automaticamente le librerie Gtk+ che non sarà neanche necessario richiamare con l'include in quanto automaticamente comprese nell'header "gnome.h".
1. Caratteristiche di un'applicazione Gnome.
I sorgenti delle applicazioni Gnome seguono alcune convenzioni
Ecco alcune delle caratteristiche che accomunano la maggior parte delle applicazioni Gnome:- Un file README che descrive il pacchetto;
- Un file INSTALL che spiega come compilare e installare il pacchetto;
- Uno script chiamato "configure" che adatta automaticamente l'applicazione alla piattaforma sulla quale viene compilato e specifica il percorso del pacchetto;
- Dei target standard per make come clean etc..
- L'internazionalizzazione viene fornita attraverso il pacchetto GNU gettext che deve essere fornito con l'applicazione.Inoltre gli applicativi Gnome forniscono uno o più file ".desktop", che descrivono come l'applicazione viene mostrata nei menu del pannello dell'ambiente Gnome, l'icona associata etc.
2. Inizializzazione delle librerie.
All'avvio l'applicazione deve inizializzare le librerie GTK+ e GNOME. Il tutto avviene attraverso la chiamata a gnome_init() (che corrisponde a gtk_init() nelle applicazioni GTK). gnome_init() chiama infatti automaticamente gtk_init() per voi.
int
gnome_init(const char* app_id,
const char* app_version,
int argc,
char** argv);Il primo argomento è il nome della vostra applicazione mentre il secondo è una stringa che rappresenta il numero della versione.
Il valore restituito da gnome_init() è sempre zero infatti gnome_init() si limiterà semplicemente ad uscire in caso di errore.3. Internazionalizzazione.
Tutte le stringhe che vengono visualizzate in una applicazione dovrebbero essere rese traducibili.
La traduzione si ottiene utilizzando GNU gettext. Gettext è un semplice archivio di messaggi che funziona sul principio di coppie chiave-valore, dove la chiave è la stringa presente nel codice del programma e il valore è la stringa tradotta.
Lo sviluppatore dovrebbe assicurarsi che le stringhe siano traducibili in modo tale che gli script di gettext possano estrarre le liste delle stringhe che devono essere tradotte, inserendo una speciale funzione su ogni stringa in modo tale che possa avvenire la catalogazione.
Gnome rende questa operazione semplice definendo le due macro:_(string);
N_(string);La prima marca la stringa sia per la traduzione che per la ricerca durante l'inserimento nel catalogo.
La seconda non opera l'inserimento nel catalogo, ma marca unicamente per la traduzione.