Salut les C,

j'ai le problème suivant avec gettext qui est en théorie assez simple d'utilisation:

1. L'on définis quelques macro appelant gettext

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 
#include <libintl.h>
#define _(String) gettext (String)
#define gettext_noop(String) String
#define N_(String) gettext_noop (String)
Puis l'on place ces quelques lignes au début de la fonction main(...)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
int
     main (int argc, char *argv[])
     {
       …
       setlocale (LC_ALL, "");
       bindtextdomain (PACKAGE, LOCALEDIR);
       textdomain (PACKAGE);
       …
     }
Seulement je n'arrive pas a faire marcher la traduction en mettant les *.mo

dans un dossier de mon répertoire de travail de telle arborescence:

./my_prg

./my_prg/bin

./my_prg/source

./my_prg/share/my_prg

./my_prg/share/locale/fr/LC_MESSAGES/my_prg.mo

ou alors

./my_prg/share/my_prg/fr/LC_MESSAGES/mr_prg.mo

Alors je ne comprends pas pourquoi cela ne mache pas quand je modifie la variable d'environnement LANG ?

Alors que je définis:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
#ifdef PACKAGE
#undef PACKAGE
 
#define PACKAGE ./my_prg/bin/my_prg
 
#endif
 
#ifdef LOCALEDIR
#undef LOCALEDIR
 
#define LOCALEDIR ./my_prg/share/locale
 
#endif
Toute aide est la bienvenue, merci pour vos réponses éclairées.