Re: Tk et gettext
Denis Barbier écrivait : [...] je n'ai pas réussi à reproduire tes erreurs, mais ça vient de toute façon certainement de constructions comme $foo = gettext(blah),\n; Quand tu veux concaténer des chaînes, il faut mettre un point et pas une virgule, ça te fout la zone avec les variables passées en arguments de fonctions. Intuitivement, j'aurai dit pareil mais 1) C'est marqué comme cela dans la doc gettext-perl 2) Cela fonctionne *au moins* avec print (cf. l'exemple bidon). Ceci dit, je me suis méfié et pour certains trucs, comme les hachages ou certaines longues phrases, cela faisait bizarre et j'ai tout englobé. Merci quand même, PK -- |\ _,,,---,,_ Patrice KARATCHENTZEFF ZZZzz /,`.-'`'-. ;-;;,_ mailto:[EMAIL PROTECTED] |,4- ) )-,_. ,\ ( `'-' http://p.karatchentzeff.free.fr '---''(_/--' `-'\_)
Re: Tk et gettext
Patrice Karatchentzeff (2002-03-20 08:13:19 +0100) : Denis Barbier écrivait : [...] je n'ai pas réussi à reproduire tes erreurs, mais ça vient de toute façon certainement de constructions comme $foo = gettext(blah),\n; Quand tu veux concaténer des chaînes, il faut mettre un point et pas une virgule, ça te fout la zone avec les variables passées en arguments de fonctions. Intuitivement, j'aurai dit pareil mais 1) C'est marqué comme cela dans la doc gettext-perl Avec le = ? 2) Cela fonctionne *au moins* avec print (cf. l'exemple bidon). Ah oui mais c'est pas pareil. Avec print, si tu mets une virgule, ça appelle print avec deux arguments, et pas avec un seul argument qui est la concaténation des deux. print $a,$b est équivalent à print ($a, $b). $c = $a, $b est équivalent à $c = { $a, $b } ou à $c = { $a ; $b }. Le bloc entre accolades est évalué séquentiellement et sa valeur est la valeur du dernier élément. Roland. -- Roland Mas S'agirait pas d'atteindre la sublime transcendance du supramental sans se bouger le fion un minimum... -- in Sri Raoul le petit yogi (Gaudelette)
Re: Tk et gettext
Roland Mas écrivait : Patrice Karatchentzeff (2002-03-20 08:13:19 +0100) : Denis Barbier écrivait : [...] je n'ai pas réussi à reproduire tes erreurs, mais ça vient de toute façon certainement de constructions comme $foo = gettext(blah),\n; Quand tu veux concaténer des chaînes, il faut mettre un point et pas une virgule, ça te fout la zone avec les variables passées en arguments de fonctions. Intuitivement, j'aurai dit pareil mais 1) C'est marqué comme cela dans la doc gettext-perl Avec le = ? Bonne question en fait. Extrait de la doc : INTERNATIONALIZING YOUR PROGRAM Step 1 -- If you've already written your code, you need to wrap the gettext() function around all of the text strings. Needless to say, this is much easier if you do it while you write. print Welcome to my program\n; print gettext(Welcome to my program), \n; Note that you probably don't want to include that newline in the gettext() call, nor any formatting codes such as HTML tags. The argument to gettext() is the text string in the default language or locale. This is known as the C locale and should probably be usually English. donc quand on emploie print (la fonction de Perl), il n'y a pas de « = ». Par contre, il n'y a rien sur un autre type de construction. Comment i18nisons les exemples suivants : $print = C'est pas si simple l'i18n\n et %NoteBook = ( connection = [COnnection, Connexion, 0], mail = [Mail, Courriel, 1], log= [Log,Journaux de bord, 0], ) (sachant que la l10n ici se situe dans le 2e champs bien sûr) et $toto = $top - Button ( -text= joli bouton, -command = \{kill_button}, ); [...] Ah oui mais c'est pas pareil. Avec print, si tu mets une virgule, ça appelle print avec deux arguments, et pas avec un seul argument qui est la concaténation des deux. Merci. Je n'avais pas fait attention à cela. PK PS : en attendant, je repars à zéro en suivant les conseils de Denis. -- |\ _,,,---,,_ Patrice KARATCHENTZEFF ZZZzz /,`.-'`'-. ;-;;,_ mailto:[EMAIL PROTECTED] |,4- ) )-,_. ,\ ( `'-' http://p.karatchentzeff.free.fr '---''(_/--' `-'\_)
Re: Tk et gettext
On Wed, Mar 20, 2002 at 11:28:00AM +0100, Patrice Karatchentzeff wrote: [...] donc quand on emploie print (la fonction de Perl), il n'y a pas de « = ». Par contre, il n'y a rien sur un autre type de construction. Comment i18nisons les exemples suivants : $print = C'est pas si simple l'i18n\n $print = gettext(C'est pas si simple l'i18n\n) ou $print = gettext(C'est pas si simple l'i18n).\n et %NoteBook = ( connection = [COnnection, Connexion, 0], mail = [Mail, Courriel, 1], log= [Log,Journaux de bord, 0], ) %NoteBook = ( connection = [COnnection, gettext(Connexion), 0], mail = [Mail, gettext(Courriel), 1], log= [Log,gettext(Journaux de bord), 0], ) et $toto = $top - Button ( -text= joli bouton, -command = \{kill_button}, ); $toto = $top - Button ( -text= gettext(joli bouton), -command = \{kill_button}, ); Denis