Bonjour,
J'essaie de comprendre comme utiliser gettext avec ce code là dans un fichier "main.cpp" :
Au même niveau que mon fichier "main.cpp", j'ai les fichiers suivants
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
16
17
18
19
20
21
22
23 #include <iostream> #include <string> #include <libintl.h> #include <locale.h> void main() { #if 1 char const * const catalog = "fr_FR"; char const * const locale = "french_France.1252"; #else char const * const catalog = "es_ES"; char const * const locale = "Spanish_Spain.1252"; #endif char const * const a = setlocale(LC_ALL, locale); char const * const b = textdomain(catalog); char const * const c = bindtextdomain(catalog, "i18n"); char const * const d = bind_textdomain_codeset(catalog, "UTF-8"); std::string const e = gettext("hello"); std::cout << e << std::endl; std::cin.get(); }
- i18n\es_ES\LC_MESSAGES\es_ES.po
- i18n\es_ES\LC_MESSAGES\es_ES.mo
- i18n\fr_FR\LC_MESSAGES\fr_FR.po
- i18n\fr_FR\LC_MESSAGES\fr_FR.mo
En espagnol, "Hello" est traduit par "Hola".
En français, "Hello" est traduit par "Bonjour".
Mon système d'exploitation est Windows XP en version française.
Évidement, en français cela marche mais pas quand j'essaye en espagnol. En espagnol, la fonction "setlocale" me renvoie bien "Spanish_Spain.1252". Mais le texte "hello" reste "hello".
Comment dois-je modifier mon code pour que cela fonctionne ? Ca me rend un peu fou cette histoire .
Je suppose que l'on doit pouvoir changer la locale de l'application par n'importe quelle locale, non ?
Merci
Flo.
Partager