gettext

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

gettext

Messagepar ecureuil1 » 12 Déc 2004 20:04

Bonjour,

J'aimerai utiliser gettext ...
c'est pour des pgms perl...

Si vous aviez des liens pour des docs... des exemples...

merci
anne
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

Messagepar pulsergene » 12 Déc 2004 20:25

bonsoir

sur google j ai trouvé pas mal de choses mais je ne sais pas si cela repond a tes attentes
jetes y un tit coup d'oeil

bonne soirée
Avatar de l’utilisateur
pulsergene
Amiral
Amiral
 
Messages: 1314
Inscrit le: 14 Oct 2003 00:00
Localisation: cambrousse city

Messagepar ecureuil1 » 12 Déc 2004 20:31

pulsergene a écrit:bonsoir

sur google j ai trouvé pas mal de choses mais je ne sais pas si cela repond a tes attentes
jetes y un tit coup d'oeil

bonne soirée


J"y suis sur google... :cry:

Ce que je n'arrive pas à trouver c'est où et comment mettre les
traductions...

Pour mettre dans les pgm perl :
print gettext("code_libelle_a_traduire")."\n";
et il faut mettre l'anglais dans le pgm... sous peine de problème d'accent
dans les autres langues...!

les pages de doc sont plus que concises...
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

Messagepar ecureuil1 » 13 Déc 2004 07:57

bonjour,

J'ai bien progresser...

Mais j'ai un souci pour avoir la bonne langue...

use POSIX; # Needed for setlocale()
use Locale::gettext;

$old_locale = setlocale(LC_CTYPE);
$old_locale1 = setlocale(LC_MESSAGES);

#$ENV{LC_MESSAGES} = 'fr_FR';
#$ENV{LC_MESSAGES} = 'de_DE';
setlocale(LC_MESSAGES, "");
bindtextdomain('fax-voice', '/home/.../traduc/fax-voice/locale/');
textdomain('fax-voice');

print de $old_locale = C et de $old_locale1 = C

Je ne comprends pas d'où vient ce "C" ???

J'ai les textes en anglais dans le pgm...

si je décoche $ENV{LC_MESSAGES} = 'fr_FR'; il m'affiche les textes en français!

Je pensais que cela se faisait automatiquement...

anne
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

gettext et LC_MESSAGES

Messagepar ecureuil1 » 13 Déc 2004 16:55

rebonjour,

sur sme, LC_MESSAGES = C
Pas génial...

Comment récupérer la langue pour mettre dans LC_MESSAGES?
dans un pgm perl ou php... (web)

J'ai essayé :
setlocale(LC_MESSAGES, ""); => C

$ENV{LC_MESSAGES} = 'fr_FR';
C'est ok
setlocale(LC_MESSAGES, ""); => fr_FR

$ENV{HTTP_ACCEPT_LANGUAGE} => fr-be
$ENV{LC_MESSAGES} = $ENV{HTTP_ACCEPT_LANGUAGE};
pas ok :(
setlocale(LC_MESSAGES, ""); => C

y-a pas de fr-be dans les locale mais fr_BE

Le fr-be vient de mon pc windows....
Donc selon les navigateurs... la code langue n'est identique.

Comment gérer ce problème...?
Si vous aviez des explications... des idées...

merci
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

Messagepar sibsib » 13 Déc 2004 22:55

Salut, Anne,

J'ai juste une petite idée, inspirée de SME :

En fait, je suppose que tu n'es pas encore arrivée au niveau ou tu modifies ton texte ou ta présentation différemment pour les Français et pour les Belges ;-)

Dans ce contexte, en récupérant la variable d'environnement et en testant uniquement les deux premières lettres, çà devrait le faire, non ?

D'une analyse fort peu creusée, j'avais déduis ceci :

fr_BE :
fr -> famille générique
BE -> localisation spécifique (notamment pour les symboles monétaires, ne pas confondre un Euro et un Franc CFA, c'est pas vraiment la même chose, et pourtant, 'ils' parlent français !)

A+,
Pascal
Sibsib, admin heureux d'un petit SME !!!
- SME 8.0 beta 6 dans une VM :-)
- ESXI 4.1 sur hardware noname
Ma petite page sur SME
Avatar de l’utilisateur
sibsib
Amiral
Amiral
 
Messages: 2368
Inscrit le: 11 Mai 2002 00:00
Localisation: France - région parisienne

Messagepar Landry » 13 Déc 2004 22:58

Salut écureuil !

Je suis justement en train de me jeter (pas trop fort) dans l'internationalisation de ma contrib (sme6admin), et je cherche des trucs exactement sur le meme sujet. Donc je propose qu'on se fasse part mutuellement de nos avancées, et pourquoi pas de rediger une chti'te doc, etant donné que pour l'instant une doc sur gettext ca court pas les rues, et encore moins spécifique a SME. ou alors j'ai mal cherché. :roll:
Avatar de l’utilisateur
Landry
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 149
Inscrit le: 16 Juin 2004 16:42
Localisation: Rennes

Messagepar ecureuil1 » 14 Déc 2004 01:20

Landry a écrit:Salut écureuil !

Je suis justement en train de me jeter (pas trop fort) dans l'internationalisation de ma contrib (sme6admin), et je cherche des trucs exactement sur le meme sujet. Donc je propose qu'on se fasse part mutuellement de nos avancées, et pourquoi pas de rediger une chti'te doc, etant donné que pour l'instant une doc sur gettext ca court pas les rues, et encore moins spécifique a SME. ou alors j'ai mal cherché. :roll:


Je pense que tu as bien cherché!
Dur, dur

Si tu installes gettext, tu auras plus d'info!

On m'avait parlé de 2 façons
gettext et FormMagick

Tu peux retrouver le post du 6/11/2004 d'ecureuil... sibsib m'avait répondu
"internalisation d'une interface web"

J'ai trouvé cela mais après...
http://www.mail-archive.com/translation ... 00016.html

En vrac :
http://abs.traduc.org/abs-3.1-fr/localization.html
http://www.arts-du-web.fr/aide/php/gettext.intro.html
http://www.bsdbooks.net/shells/scriptin ... ation.html
http://cvs.orion.education.fr/cgi-bin/v ... pl?rev=1.5
http://www.delafond.org/traducmanfr/man ... ext.1.html
http://www.gnu.org/software/gettext/manual/gettext.html
http://www.gnu.org/software/gettext/man ... ttext.html
http://graal.ens-lyon.fr/~mquinson/Util ... t.wml.html
http://www.iro.umontreal.ca/translation ... ttext.html
http://linuxfr.org/forums/31/2258.html
http://lists.debian.org/debian-devel-fr ... 00053.html
http://www.mandragor.org/tutoriels/down ... _file.html
http://phpcodeur.net/manuel/fr/function.gettext
http://www-eleves-isia.cma.fr/Doc/gette ... 1/htmldoc/
http://www-mrim.imag.fr/ressources/docP ... ttext.html
http://www.enstimac.fr/Perl/perl5.8.5/5 ... POSIX.html
http://www.enstimac.fr/Perl/perl5.6.1/s ... ttext.html
http://jflecomt.free.fr/docs/i18n.html
http://jamesthornton.com/gnu/gettext/gettext_13.html
http://search.cpan.org/src/PVANDRY/gettext-1.01/README
http://vim.sourceforge.net/scripts/scri ... ipt_id=695

Tu as de la lecture! :D

Chez moi xgettext pour récupérer les chaines...(création du .po) Il m'en a mis un peu plus...!
J'ai encore un nombre certain de pgm à faire!
Je ne suis pas très au point!

anne
Dernière édition par ecureuil1 le 14 Déc 2004 04:25, édité 1 fois au total.
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

Messagepar ecureuil1 » 14 Déc 2004 04:24

sibsib a écrit:Salut, Anne,

J'ai juste une petite idée, inspirée de SME :

En fait, je suppose que tu n'es pas encore arrivée au niveau ou tu modifies ton texte ou ta présentation différemment pour les Français et pour les Belges ;-)

Dans ce contexte, en récupérant la variable d'environnement et en testant uniquement les deux premières lettres, çà devrait le faire, non ?

D'une analyse fort peu creusée, j'avais déduis ceci :

fr_BE :
fr -> famille générique
BE -> localisation spécifique (notamment pour les symboles monétaires, ne pas confondre un Euro et un Franc CFA, c'est pas vraiment la même chose, et pourtant, 'ils' parlent français !)

A+,
Pascal


vi,vi!

Ce que j'ai fait : (c'est un pgm perl)

use POSIX; # Needed for setlocale()
use Locale::gettext; # utilisation de gettext

$http_lang =~ s/^fr*./fr_FR/g;
$http_lang =~ s/^de.*/de_DE/g;
$ENV{LC_MESSAGES} = "$http_lang";
setlocale(LC_MESSAGES, "");

bindtextdomain('fax-voice', '???/fax-voice/locale/');
textdomain('fax-voice');

# set gettext stufs :
sub _ {
return gettext($_[0]);
}

$ret_menu_princip=_("Return to main menu");

J'ai récupéré toutes les variables du pgm qui se trouvaient dans le fichier langue que j'avais créé

sous le répertoire ???/fax-voice/locale/, j'ai créé les répertoires des langues que je voulais...
???/fax-voice/locale/fr_FR/LC_MESSAGES/fax-voice.po
???/fax-voice/locale/de_DE/LC_MESSAGES/fax-voice.po
???/fax-voice/locale/fr_FR/LC_MESSAGES/fax-voice.mo
???/fax-voice/locale/de_DE/LC_MESSAGES/fax-voice.mo

??? = je ne sais pas où le mettre!

Dans le .po

#: faxhists.cgi:87
msgid "Return to main menu"
msgstr "Retour au menu principal"

J'ia eu quelques soucis avec la cde xgettext. La version de redhat 7.3 gettext 0.11 ne connait pas Perl!
Il m'a récupéré comme si c'était un pgm C avec la cde :
"xgettext -a -o fr.po faxhists.cgi"
Sans le -a, il ne voulait pas créer le .po

J'ai modifié le fr.po pour avoir les libelles en français.
On se retrouve avec des lignes de ce style
#: faxhists.cgi:87
msgid "Return to main menu"
msgstr ""

J'ai renommé le fr.po en fax-voice.po

"msgfmt fax-voice.po -o fax-voice.mo"
J'ai copié "fax-voice.mo" dans ???/fax-voice/locale/fr_FR/LC_MESSAGES/

et c'était ok! :)

C'est un début de howto pour Landry!

anne
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

Messagepar Landry » 25 Déc 2004 22:08

Merci , merci beaucoup anne !!

De mon coté, j'ai trouvé de la doc en grand-briton, meme d'ailleurs la doc officielle qui est pas si compliquée que ca.
http://search.cpan.org/src/PVANDRY/gettext-1.01/README
http://www.gnu.org/software/gettext/manual/html_chapter/gettext.html

Je commence a tatonner le truc, et j'ai eu un leger pb : sur ma SME6.0, j'ai pas le package gettext. :shock: :shock:
j'ai que 2 utilitaires fait en python , pygettext2.py et msgfmt2.py, et pas de xgettext. Normal ca ?????
Fallait installer un rpm ? j'aurai juré que c'etait par défaut, vu que le server-manager s'en sert ...
Bon j'ai installé cuila, qui correspond a la RH7.3
ftp://fr.rpmfind.net/linux/redhat/7.3/en/os/i386/RedHat/RPMS/gettext-0.11.1-2.i386.rpm
Bref j'y bricole, ca devrait vite avancer (j'espere).

J'ai aussi trouvé ca :
http://aut.dyndns.org/webl10n/webl10n.html
Bon evidemment c'est en anglais, mais c'est un truc qui est /mieux/ (selon l'auteur) que gettext, c'est maketext::lexicon. bon j'avoue honnetement, j'ai trouvé ca bcp trop compliqué, mais si ca interesse... En plus il dresse un panorama des differentes methodes pour rentre un site "international".

Ah et si, au fait, joyeux nowèl :)
Avatar de l’utilisateur
Landry
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 149
Inscrit le: 16 Juin 2004 16:42
Localisation: Rennes

Messagepar jibe » 25 Déc 2004 23:06

Salut,

Excusez ma curiosité... Les Form Magic ne peuvent pas s'appliquer à ce que vous faites ? Pourquoi ne les utilisez-vous pas ?

Au fait, anne, je voulais tenter d'en savoir plus ici :
ecureuil1 a écrit:Tu peux retrouver le post du 6/11/2004 d'ecureuil... sibsib m'avait répondu
"internalisation d'une interface web"

mais tu n'as pas posté à cette date ! Quant à ecureil, il existe bien, mais n'a jamais posté... Tu peux rectifier ou mieux donner le lien sur le post en question, STP ?
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar Landry » 27 Déc 2004 01:40

Ben les FormMagick... trop compliqué !! Bcp trop dur :(
J'ai bricolé le gettext en ligne de commande et je commence a maitriser la bete.
Mais evidemment je bute sur un nouveau probleme, ou apparemment ecureuil a reussi.

j'ai fait un mini pgm qui marche en ligne de commande, mais pas dans le navigateur web :?:
Le programme :
Code: Tout sélectionner
#!/usr/bin/perl -w

use POSIX; # Needed for setlocale()
use Locale::gettext; # utilisation de gettext

print"Content-type: text/html\n\n";
setlocale(LC_MESSAGES, "fr_FR");
print "Locale : ",setlocale(LC_MESSAGES),"\n<br/>";
bindtextdomain("test","/root/test/gttxt_daemon/locale");
textdomain("test");
printf("langue=%s<br/>",gettext("langue\n"));
print "<br/>";


Avec dans le repertoire /root/test/gttxt_daemon/locale/fr_FR/LC_MESSAGES
le fichier test.mo compilé avec le test.po suivant :
Code: Tout sélectionner
domain "test"

msgid "langue\n"
msgstr "francais\n"


Donc j'obtiens en ligne de commande le résultat suivant :
Code: Tout sélectionner
root@spud[cgi-bin]$./a.pl
Content-type: text/html

Locale : fr_FR
<br/>langue=francais


Et dans mon navigateur :
Code: Tout sélectionner
Locale : fr_FR
langue=langue


Comme quoi, le gettext("langue\n") marche pas dans le navigateur. Pourtant, il arrive bien a trouver le fichier .po, a faire le bindtextdomain ..... J'avoue que la je suis un peu perplexe.
Si quelqu'un a une idée, ca m'aiderai vraiment beaucoup !!
Avatar de l’utilisateur
Landry
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 149
Inscrit le: 16 Juin 2004 16:42
Localisation: Rennes

Messagepar Landry » 27 Déc 2004 01:46

Bon ben je me reponds a moi-meme, je viens de me rappeler que les pgms perl n'ont pas accés a tous les fichiers du systeme quand ils sont dans une ibay, seulement qd ils sont panels du server-manager et sous certaines conditions.

Donc en mettant cette ligne a la place de l'ancienne
Code: Tout sélectionner
bindtextdomain("test","./locale");


et en mettant le .mo dans "racine_ibay"/cgi-bin/locale/fr_FR/LC_MESSAGES, ben maintenant ca marche.
Je fais le test voir comment ca fonctionne lorsque on est panel du server-manager.
Avatar de l’utilisateur
Landry
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 149
Inscrit le: 16 Juin 2004 16:42
Localisation: Rennes

Messagepar jibe » 27 Déc 2004 09:49

Salut,

Landry a écrit:Ben les FormMagick... trop compliqué !! Bcp trop dur :(


Pourtant, pour SMERP (pub gratuite :wink: ), on y trouve de nombreux avantages et c'est ce qu'on a choisi d'utiliser. Peut-être un petit peu plus compliqué à mettre en oeuvre, mais on s'y retrouve largement ensuite... Sans compter que c'est la solution qui a été choisie pour SME, et que ça fait plus "pro" de l'utiliser pour les contribs !

Avez-vous lu cet excellent document de gla ? Il contient un mini-howto pour FormMagick que je trouve assez clair et bien fait.

Sorry, je suis un peu à côté de la question d'ecureuil1 sur gettext, mais je pense que ça vaut le coup d'y regarder à deux fois avant de rejeter FormMagick. Pour finir de vous convaincre, je vous invite à lire ce post et les suivants, où gla incite l'équipe SMERP à utiliser FormMagick suite à des difficultés rencontrées par argenlos, et ce que finalement les principaux acteurs (dont les traducteurs) en pensent.
Depuis, argenlos a reconverti toutes ses contribs sous FormMagick et s'en félicite...
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar ecureuil1 » 31 Déc 2004 01:53

bonjour,

Je viens de revenir chez moi...

Pourquoi je n'ai pas choisi FormMagick...

A priori FormMagick de sme n'est pas tout à fait standard...
Comme je voulais faire un source pour n'importe quelle distribution, je me suis orientée sur gettext...
je n'utilise pas le server-manager pour l'interface web que j'ai faite...

Par contre, pour sme, je fais un rpm!
Il n'est pas tout à fait fini...
Tout sera décompressé à un endroit et l'install de l'interface web utilisera un petit pgm que j'ai fait avec "dialog". Cela crée l'ibay, le groupe, l'utilisateur et installe les pgm dans l'ibay avec les bons droits ainsi que les pgms qui vont dans /etc et dans /usr...
Pour créer l'ibay, le groupe et l'utilisateur, je me suis servie de certains pgms de "Lazy Administrator's Tools".

Il faut que je finisse les pgms de l'interface web... et que je teste le rpm...
Avant de partir me promener, j'avais quelques soucis avec les pgms perl pour que cela fonctionne avec "-wT". J'ai 2 pgms où je n'arrive pas à formater la cde d'appel à un autre pgm ... J'ai des msgs du style...
Insecure $ENV{PATH} et Insecure dependency

Je précise que je me suis basée sur une interface web existante que j'ai un peu, beaucoup modifiée!

J'ai réussi avec les autres pgms à mettre la cde sous le bonne forme... mais pour 2 pgms je coince complètement... Cela fonctionne très bien sans le "-T", mais avec le -T... !!!

Dans un des pgms, j'ai ces lignes...
open (FAX, "/usr/bin/faxspool $mailto $coverpage $to_name $from_name $fax
$memo $files 2>&1 |") || errormessage("$libel_cant_export $!<p>\n");
print "<pre>\n";
while( <FAX> )
{
print $_;
}
close FAX;

Cela appelle le pgm faxspool et donne les messages d'avancement des cdes de faxspool... (si la création du fax se passe bien ou pas)

J'ai tourné le open dans tous les sens, parcouru plein de docs perl...
Si quelqu'un pouvait m'aider... Je donnerai plus de précisions dans les tests que j'ai fait...

--------------------
Au fait, anne, je voulais tenter d'en savoir plus ici :
ecureuil1 a écrit:
Tu peux retrouver le post du 6/11/2004 d'ecureuil... sibsib m'avait répondu
"internalisation d'une interface web"

mais tu n'as pas posté à cette date ! Quant à ecureil, il existe bien, mais n'a jamais posté... Tu peux rectifier ou mieux donner le lien sur le post en question, STP ?
--------------------

c'est sur alt.e-smith que sibsib m'a répondu!


anne
ecureuil
Avatar de l’utilisateur
ecureuil1
Contre-Amiral
Contre-Amiral
 
Messages: 448
Inscrit le: 04 Avr 2002 00:00
Localisation: Grenoble, France

Suivant

Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron