En ce moment je travaille sur le »portage » d’une application pour [FreeBSD|http://www.freebsd.org/]. Comme elle fait appel à des fonctions qui ne sont pas disponibles sous ce système, je passe par l’analyse des fichiers [iso-codes|http://pkg-isocodes.alioth.debian.org/] $$Certains logiciels du projet [GNOME|http://www.gnome.org/] utilisent le même procédé.$$ mis à notre disposition par [Debian|http://www.debian.org/index.fr.html].
Il s’agit de mon premier programme en C, donc soyez indulgent.
J’utilise les bibliothèques suivantes :
* [GLib|https://developer.gnome.org/glib/stable/]
* [GIO|https://developer.gnome.org/gio/stable/]
* [libxml2|http://www.xmlsoft.org/]
Pour le compiler, il faut définir une variable (par exemple @@ISO_CODES_PREFIX@@), qui va nous servir de macro $$Reportez-vous à cette page du [wiki|http://avignu.wiki.tuxfamily.org/doku.php?id=snippet:c] pour plus de détail.$$.
///
ISO_CODES_PREFIX=`pkgconf –variable=prefix iso-codes`
gcc -Wall -DISO_CODES_PREFIX=\ »$ISO_CODES_PREFIX\ » `pkgconf –cflags –libs glib-2.0 gio-2.0 libxml-2.0` locales.c -o locales
///
__Note :__ Si »pkgconf » n’est pas disponible, essayez »pkg-config ».
Après compilation, on obtient une liste avec la locale suivi du nom du pays. Cela me sert pour renforcer les tests pour mon »patch ».
///
[…]
eu_ES.ISO8859-1 Spain
eu_ES.ISO8859-15 Spain
eu_ES.UTF-8 Spain
fi_FI.ISO8859-1 Finland
fi_FI.ISO8859-15 Finland
fi_FI.UTF-8 Finland
fr_BE.ISO8859-1 Belgium
fr_BE.ISO8859-15 Belgium
fr_BE.UTF-8 Belgium
fr_CA.ISO8859-1 Canada
fr_CA.ISO8859-15 Canada
fr_CA.UTF-8 Canada
fr_CH.ISO8859-1 Switzerland
fr_CH.ISO8859-15 Switzerland
fr_CH.UTF-8 Switzerland
fr_FR.ISO8859-1 France
fr_FR.ISO8859-15 France
fr_FR.UTF-8 France
he_IL.UTF-8 Israel
hi_IN.ISCII-DEV India
[…]
///