Pages : 1
#1 Le 16/12/2007, à 10:56
- Bud78
[Résolu] C++ et GetText Tutorial
Bonjour
Auriez vous une adresse pour un tuto de dev avec gettext en C++, ou lien vers une sources simple type "Hello wordl", pour comprendre le fonctionnement ?
J'ai trouvé des trucs mais quasi tout en php, j'aimerais voir quelque chose pour le C ou C++.
Merci d'avance
«Tout ce qui a son prix est de peu de valeur.»
[ Friedrich Nietzsche ] - Extrait de Ainsi parlait Zarathoustra
Hors ligne
#2 Le 16/12/2007, à 11:28
- lut!n
Re : [Résolu] C++ et GetText Tutorial
Salut,
regarde du cote de http://www.gnu.org/software/gettext/man … ext.html#C, peut-etre que les exemples listés pourront t'aider
a+
Hors ligne
#3 Le 16/12/2007, à 20:18
- Bud78
Re : [Résolu] C++ et GetText Tutorial
J'ai fini par trouver un exemple sur un "hello world !", si jamais ça intéresse quelqu'un qui passerait par là voici le lien :
http://www.haypocalc.com/wiki/Gettext
«Tout ce qui a son prix est de peu de valeur.»
[ Friedrich Nietzsche ] - Extrait de Ainsi parlait Zarathoustra
Hors ligne
#4 Le 17/08/2008, à 22:49
- zedtux
Re : [Résolu] C++ et GetText Tutorial
J'ai fini par trouver un exemple sur un "hello world !", si jamais ça intéresse quelqu'un qui passerait par là voici le lien :
http://www.haypocalc.com/wiki/Gettext
Grand merci à toi !
Je vais pouvoir implanter GetText dans TuXtremSplit
Edit: Le lien ne marche plus ?
RECOLLER VOS FICHIERS XTM AVEC TUXTREMSPLIT !!
Adhérant April numéro 4985 [Rejoindre l'April moi aussi !].
Hors ligne
#5 Le 18/08/2008, à 11:58
- melyo
Re : [Résolu] C++ et GetText Tutorial
Il a fait un couper/coller de l'exemple apparement...
"L'évasion n'est jamais qu'une construction de l'esprit" - Léo Ferré
Hors ligne
#6 Le 18/08/2008, à 14:59
- zedtux
Re : [Résolu] C++ et GetText Tutorial
Quelqu'un peut poster un exemple de hello world ?
( Sinon j'ai trouvé une tuto )
RECOLLER VOS FICHIERS XTM AVEC TUXTREMSPLIT !!
Adhérant April numéro 4985 [Rejoindre l'April moi aussi !].
Hors ligne
#7 Le 20/08/2008, à 23:00
- zedtux
Re : [Résolu] C++ et GetText Tutorial
Si quelqu'un est intéresse, j'ai trouvé un tutorial qui est marche parfaitement !
A tutorial on Native Language Support using GNU gettext
Voici le lien : http://oriya.sarovar.org/docs/gettext_single.html
Edit: Passé en résolu
RECOLLER VOS FICHIERS XTM AVEC TUXTREMSPLIT !!
Adhérant April numéro 4985 [Rejoindre l'April moi aussi !].
Hors ligne
#8 Le 20/08/2008, à 23:29
- zedtux
Re : [Résolu] C++ et GetText Tutorial
Enffet je me dis qu'il est possible aussi que ce lien meurt, alors je vais faire un poste rapide.
Mais pour bien comprendre tout ce qui se passe JE VOUS RECOMMANDE VIVEMENT DE LIRE LA DOC DE MON LIEN !!
Pour commencer, il faut inclure les dépendances pour l'internationalisation ( avoir la paquet gettext installé donc.):
//~ Internationalization Dependances
#include <libintl.h>
#include <locale.h>
//~ For lazy developers only ;)
#define _(STRING) gettext(STRING)
( La dernière ligne permet d'alléger le code. )
Ces inclusions sont donc à faire dans votre fichier main.cpp... Enfin celui qui contient votre int main( int argc, char * argv[] ).
Par la suite, il faut instancier GetText :
//~
//~ Internationalization Initialization
//~
//~ i18n: initializes the entire current locale of the program as per environment variables set by the user
setlocale( LC_ALL, "" );
//~ i18n: Indicate the path of the i18n catalog file
bindtextdomain( "helloworld", "/usr/share/locale" );
//~ i18n: sets the message domain
textdomain( "helloworld" );
Ces lignes vont appeler le catalogue de traduction dans /usr/share/locale, et appeler la section helloworld de ce catalogue.
Maintenant, il ne reste plus qu'a mettre vos messages !
Moi par exemple, j'ai codé mon soft en Anglais ( je ne pensais pas à gettext au début. ). Mais je vous conseil donc d'utiliser votre langue maternel du coup.
Donc par exemple, en C++, on va mettre :
cout << gettext( "Little GetText test!" ) << endl << endl;
En C :
printf( gettext( "Little GetText test!\n" ) );
A faire donc dans tout le code.
Maintenant, imagions que vous avez tout fais, il reste la dernière étape: Créer le catalogue de traduction !
Pour ce faire, Gettext a installé xgettext. Ce petit programme parcourt les fichiers que vous lui indiqué à la recherche de vos lignes de texte pour les inclure dans le catalogue tout seule comme un grand !
( Ouf ! Moi qui suis feignant... j'aime cet outil ! )
Donc, pour créer le catalogue pour tout votre projet :
xgettext -d cat_helloworld -s -o helloworld.pot ./*.cpp
- cat_helloworld est la référence. Si par exemple vous voulez créer plusieurs sections dans le catalogue, pour chaque fichiers, il faut préciser ici le nom de la catégorie.
- helloworld.pot correspond au fichier de catalogue non compilé.
- -s range dans l'ordre alphabétique les traductions...
- ./*.cpp permet de parcourir tout les fichiers .cpp de votre projet à la recherche de chaînes gettext.
Ensuite, il faut préparer le fichier avec la commande :
msginit -l fr -o french.po -i helloworld.pot
- -l fr précise que le catalogue est français.
- -o french.po indique le nom du fichier de sortie
- -i tuXtremSplit.pot indique le fichier de catalogue à utiliser.
Cette commande vous demandera quel adresse email les traducteurs peuvent utiliser pour vous contacter.
Maintenant il ne reste plus qu'a modifier le fichier pour ajouter les traductions.
( Dans mon cas, de Anglais à Français. )
Une fois terminé, et sauvegardé, il ne reste plus qu'à compiler le catalogue :
msgfmt -c -v -o helloworld.mo french.po
- -c vérifie le format de fichier .po
- -v passe le programme en mode verbose pour voire ce qui se passe.
- -o helloworld.mo indique le nom du fichier de sortie
Et voila !
Maintenant on copie le fichier au bon endroit :
sudo cp helloworld.mo /usr/share/locale/fr/LC_MESSAGES
Remplacer le fr dans le chemin par la langue correspondant.
Maintenant, si vous lancer le programme, vous devez avoir les chaînes traduite !
RECOLLER VOS FICHIERS XTM AVEC TUXTREMSPLIT !!
Adhérant April numéro 4985 [Rejoindre l'April moi aussi !].
Hors ligne
#9 Le 26/08/2009, à 19:54
- kevlar
Re : [Résolu] C++ et GetText Tutorial
merci pour ce tuto !
Hors ligne