[Tech] Aiuto Gettext

Christopher R. Gabriel cgabriel@softwarelibero.org
Sab 10 Mar 2001 02:07:41 CET


    Dinogen> Ciao ALL, Aiutatemi! Non riesco a usare il gettext, non
    Dinogen> ci capisco nulla.  E' la quarta volta che leggo la troppo
    Dinogen> lunga doc.  Vorrei fare una prova col hello.c, ma non mi
    Dinogen> riesce.  Sono arrivato a mettere i gettext(" ... ") nel
    Dinogen> sorgente, e a creare il file= =20 messages.po.  Ho messo
    Dinogen> le linee apposite nel main, ma non capisco proprio cosa
    Dinogen> significa= =20 PACKAGE e cosa si intende per domain.

PACKAGE viene solitamente definito in config.h (se segue i GNU
standards - se usi gli GNU autotools la cosa e' praticamente
automatica) ed e' una stringa che identifica il pacchetto (solitamente
l'eseguibile). Solitamente e' anche accompagnato dalla versione dello
stesso.

Roba tipo:

#define PACKAGE "ruttolibero"
#define VERSION "0.4pre12-no-me-patch"

Per l'uso di gettext ecco alcuni indirizzi:

http://www.gnu.org/manual/gettext/html_mono/gettext.html
http://www.it.gnome.org/GGAD/sec-i18n.html

Inoltre, ti attacco qui un estratto da libgnome/gnome-i18n.h, dove
vengono definite alcune macro molto comode:

#ifdef ENABLE_NLS
#    include <libintl.h>
#    ifdef GNOME_EXPLICIT_TRANSLATION_DOMAIN
#        undef _
#        define _(String) dgettext (GNOME_EXPLICIT_TRANSLATION_DOMAIN, String)
#    else 
#        define _(String) gettext (String)
#    endif
#    ifdef gettext_noop
#        define N_(String) gettext_noop (String)
#    else
#        define N_(String) (String)
#    endif
#else
/* Stubs that do something close enough.  */
#    define textdomain(String) (String)
#    define gettext(String) (String)
#    define dgettext(Domain,Message) (Message)
#    define dcgettext(Domain,Message,Type) (Message)
#    define bindtextdomain(Domain,Directory) (Domain)
#    define _(String) (String)
#    define N_(String) (String)
#endif


    Dinogen> Poi sembra obbligatorio metter su una istallazione tipo
    Dinogen> ./configure per il= =20 programma che si vuol tradurre,
    Dinogen> =E8 vero?

No, non e' vero.

Ciao,
-- 
Christopher R. Gabriel <cgabriel@softwarelibero.org>     ___    
                                                        | __|__ 
http://www.linux.it/~cgabriel/                          | _|___|
http://persone.softwarelibero.org/person/cgabriel/      |___|   







Maggiori informazioni sulla lista flug-tech