getText ! si quelqu'un connait un minimum qu'il se montre !!! - PHP - Programmation
Marsh Posté le 25-10-2002 à 06:33:24
| --greg-- a écrit a écrit  : J'aurais besoin d'un tit coup de main... alors, toi, le champion de php_gettext, laisse ton petit nom ici s'il te plait   (il est un peu tard pour que j'explique mon pb maintenant là) ![[:the radec] [:the radec]](https://forum-images.hardware.fr/images/perso/the radec.gif)  | 
 
 
bah un post de solidarité ... je connais a peine gettext (besoin pour installer horde/imp mais il etait deja sur le serveur d'ovh alors ...) ... 
 
je suis pas sur que tu aie bcp de reponses si tu expose pas ton probleme ... enfin le poser c'est souvent trouver la reponse ... 
 
  
 
Marsh Posté le 25-10-2002 à 17:54:58
| izz a écrit a écrit  : bah un post de solidarité ... je connais a peine gettext (besoin pour installer horde/imp mais il etait deja sur le serveur d'ovh alors ...) ... je suis pas sur que tu aie bcp de reponses si tu expose pas ton probleme ... enfin le poser c'est souvent trouver la reponse ...   | 
je sais merci  mais j'avais la flemme hier soir
 mais j'avais la flemme hier soir 
enfin 
jette un oeil de temps en temps stp  paske en fait apparement j'aurai pas le temps avant semaine prochaine
 paske en fait apparement j'aurai pas le temps avant semaine prochaine 
Marsh Posté le 25-10-2002 à 18:14:05
bon en gros mon pb c'est que j'ai certains chaines qui apparaissent traduites, et d'autres pas. 
faudrait que je me penche d'un peu plus près sur mon fichier .po 
 
questions: 
Y'a un autre moyen pour generer le .mo que msgfmt ? 
Faut il redemarrer le serveur si on modifie le .mo 
est-ce que le .po est necessaire , ou seulement le .mo ? 
a quoi sert le "header" ? que faut-il obligatoirement y mettre? 
a quoi sert le msg vide qui est au debut des fichiers exemple que j'ai vu et qui me semble "obligatoire" ? 
Y'a t'il d'autres formats pour écrire le .po ? celui que j'utilise est pas pratique pour un balle.  
 
| Citation :   | 
  c naze comme format...  
 
 
voila voila. 
 
si qqun a un indice sur un truc sur lequel il est frequent de se planter, ça pourra m'aider  
 
(chuis pas chez moi  là, donc j'aurais du mal à donner plus d'infos) 
 
  
 
Marsh Posté le 25-10-2002 à 20:37:04
 
tiens, vu que t'as pas de reponse ... je te balance le contenu du po/readme de mon webmail (horde/IMP, une merveille) 
 
ca va p'tet t'aider ... 
 
--- 
 
$Horde: horde/po/README,v 1.1.2.9 2002/03/24 13:36:08 jan Exp $ 
 
Horde Translation Guide 
Copyright 2000-2002 Joris Braakman <jbraakman@yahoo.com> 
Copyright 2001-2002 Chuck Hagenbuch <chuck@horde.org> 
Copyright 2001-2002 Jan Schneider <jan@horde.org> 
 
Contents 
======== 
- GNU gettext, PHP and Horde 
- Starting a new translation 
- Example messages header 
- Updating a existing translation 
- Debugging 
- Solaris 
- Changing the English standard texts 
 
 
GNU gettext, PHP and Horde 
-------------------------- 
 
Horde uses GNU gettext for internationalization (i18n) and localization 
(l10n). The manual at http://www.gnu.org/manual/gettext/index.html is 
biased against C and using Emacs. This is more for Horde. 
 
There is a good explanation for PHP and gettext at: 
http://www.faqts.com/knowledge-bas [...] 53/fid/422 
 
People seem to like learning from examples better, so I have used 
dutch (nl_NL) as an example everywhere. 
 
 
Starting a new translation 
-------------------------- 
 
- run xgettext.sh (in this directory - horde/po/), this generates a 
  messages.po file. 
- rename it to the language you are translating to, e.g. nl_NL.po 
- adjust the header of nl_NL.po, then remove the #, fuzzy line. 
  Emacs has support for .po files, but I used vi 
- translate, the time consuming part. 
- convert the nl_NL.po to horde.mo and put the file in place: 
$ make install 
Compiling locale nl_NL: 
261 translated messages, 21 untranslated messages. 
  ... done 
 
- modify the horde/config/lang.php to use nl_NL as the default language, if you 
  wish. 
- Make sure your language exists in the horde/config/lang.php file. Also, if 
  the translation uses a character set that isn't ascii, make sure the 
  appropriate charset is defined in $nls['charsets']. You should also define 
  an alias for the language because some browsers only send a two letter code 
  in their Accept-Charset header. 
 
And then it works. 
 
 
Example messages header 
----------------------- 
# Dutch translation for Horde. 
# Joris Braakman <jbraakman@yahoo.com>, 2000. 
# 
msgid "" 
msgstr "" 
"Project-Id-Version: Horde 2.3\n" 
"POT-Creation-Date: 2000-08-14 10:30+0200\n" 
"PO-Revision-Date: 2000-08-14 17:17+02:00\n" 
"Last-Translator: Joris Braakman <jbraakman@yahoo.com>\n" 
"Language-Team: Dutch <dev@lists.horde.org>\n" 
"MIME-Version: 1.0\n" 
"Content-Type: text/plain; charset=ISO-8859-1\n" 
"Content-Transfer-Encoding: 8-bit\n" 
 
 
Updating a existing translation 
------------------------------- 
As soon as you check out a new version you have to check the translations 
again, messages might have been changed after all. If you don't, you 
can get strange effects.  Information is cached every where so as a no 
brain solutions I sometimes also restart the webbrowser and webserver 
to make sure everything is fresh. msgmerge will mark translations that 
have changed a bit to fuzzy. 
 
If you want to update an existing translation and contribute it to the Horde 
project you should first contact the last translator to see if he is still 
working on it, doesn't have time to further maintain it or is even unreachable. 
 
- run xgettext.sh again, this generates a messages.po file. 
- merge it with the old .po file: 
$ msgmerge nl_NL.po messages.po > nl_NL-new.po 
 
- translate/update the strings that are new or have become fuzzy. 
- delete the '#, fuzzy' lines. 
- move the nl_NL-new.po to nl_NL.po 
- put the new translations in effect 
$ make install 
Compiling locale nl_NL: 
261 translated messages, 21 untranslated messages. 
  ... done 
 
 
Debugging 
--------- 
Is this locale (nl_NL) installed at all? 
$ locale -a 
should list all locales installed on your system. 
 
On Debian not all locales may be enabled by default. Edit /etc/locale.gen and 
run locale-gen if you changed the list of enabled locales. 
 
Do you have any .mo files? Usually in /usr/share/locale/ 
e.g. /usr/share/locale/nl/LC_MESSAGES/tar.mo 
 
Does gettext even work? 
Get a string to translate, 
$ strings /bin/tar | grep Memory 
Memory exhausted 
$ (LANG=nl_NL; LANGUAGE=nl_NL; LC_MESSAGES=nl_NL; gettext tar "Memory exhausted" ) 
Geheugen uitgeput 
 
Does the local Horde file work? 
Assuming that you have put the translated Horde file in 
/data/www/horde/locale/nl_NL/LC_MESSAGES/horde.mo 
$ export TEXTDOMAINDIR=/data/www/horde/locale 
$ (LANG=nl_NL; LANGUAGE=nl_NL; LC_MESSAGES=nl_NL; gettext horde "Message" ) 
Bericht 
 
Create a file in the horde directory, langtest.php: 
<?php 
setlocale(LC_MESSAGES, 'nl_NL' ;
; 
putenv('LANG=nl_NL' ;
; 
putenv('LANGUAGE=nl_NL' ;
; 
// use the tar test. 
echo dgettext('tar', 'Memory exhausted' ;
; 
echo '<br />'; 
 
// Specify location of translation tables 
bindtextdomain('horde', './locale' ;
; 
 
// Choose domain 
textdomain('horde' ;
; 
 
// Print the already tested message 
echo _("Message" ); 
echo '<br />'; 
 
// this should print the same. 
echo dgettext('horde', 'Message' ;
; 
 
?> 
 
OUTPUT web browser: 
Geheugen uitgeput 
Bericht 
Bericht 
 
 
Solaris 
------- 
Since the .mo files are binary, they are platform specific. You 
have to rerun make in all po directories. 
 
You have not installed the Supplementary Partial Locales (SUNWploc1) if 
you get: 
$ LANG=nl_NL 
couldn't set locale correctly 
 
This is what it should say. 
$ pkginfo | grep ploc 
system      SUNWploc       Partial Locales 
system      SUNWploc1      Supplementary Partial Locales 
 
The stuff is installed in /usr/lib/locale 
$ ls /usr/lib/locale/nl 
LC_COLLATE   LC_CTYPE     LC_MESSAGES  LC_MONETARY  LC_NUMERIC   LC_TIME      nl.so.1 
 
We assume that the Solaris gettext implementation is installed when we compile 
the translations. Thus the make process will fail if the installed gettext is 
from GNU. If anyone knows how to determine if the installed gettext is from 
Solaris or GNU on Solaris systems, please send us a note. 
 
 
Changing the English standard texts 
----------------------------------- 
You can also use gettext to change some of the English texts to your own taste. 
 
- Create a message.po file as described in "Starting a new translation" 
- Edit the msgstr entry of the strings you want to change. You can leave all 
  other msgstr entries empty. 
- Run "make install" 
Marsh Posté le 26-10-2002 à 01:49:18
comment java c'est tranquille comparé à ça   
   
 
Marsh Posté le 26-10-2002 à 01:49:25
et merci bcp 
Marsh Posté le 26-10-2002 à 17:47:28
| --greg-- a écrit a écrit  : et merci bcp   | 
 
 
bah de rien ...   
  
 
bon courage ...
Marsh Posté le 26-10-2002 à 22:06:45
| izz a écrit a écrit  : bah de rien ...   bon courage ... | 
en fait j'ai trouvé mon erreur, je fais un bindtexttrucmachin sur "./MONREP" ... alors forcément ça marchait pas trop pour les pages dans des sous-directories   
 
Marsh Posté le 27-10-2002 à 03:58:42
j'ai toujours un problème: 
 
qd je demarre le serveur la langue est celle que je choisis (elle passe par l'url notamment), mais qd je la change, la langue affichée par gettext est plus la bonne  
 
(pourtant ma variable $lang est à la bonne valeur) 
 
| session_start();  | 
 
la fonction selectLang() va pecher la langue dans l'url, dans la session, dans HTTP_ACCEPT_LANGUAGE, ou la langue par defaut (dans l'ordre). 
les differents "echo" affiche la bonne langue, mais les appels à gettext renvoie le texte dans la 1ere langue qui a été utilisée depuis que le serveur est lancé 
une idée qqun? 
Marsh Posté le 27-10-2002 à 16:28:28
j'ai ajouté 
putenv ("LANGUAGE=$lang" );  
et ça marche.... 
Marsh Posté le 27-10-2002 à 16:52:11
| --greg-- a écrit a écrit  : j'ai ajouté putenv ("LANGUAGE=$lang" ); et ça marche....   | 
 
 
ce qui est bien c'est que tu t'aides tout seul   
 
Marsh Posté le 27-10-2002 à 18:49:14
Ce que j'espères c'est qu'ensuite, il  nous fera un récapitulatif de  tout ce qu'il faut faire et pas faire pour que ca marche. 
Marsh Posté le 27-10-2002 à 19:45:29
| omega2 a écrit a écrit  : Ce que j'espères c'est qu'ensuite, il nous fera un récapitulatif de tout ce qu'il faut faire et pas faire pour que ca marche.   | 
 
 
ben... j'dois avouer que je capte pas tout ... enfin si mais manifestement gettext n'a pas un comportement tres standardisé... je soupçonne le "language" d'etre utilisé sous win, alors que le "lang" serait utilisé sous unix, ... enfin une cochonerie dans le style...
Marsh Posté le 25-10-2002 à 02:58:00
J'aurais besoin d'un tit coup de main... alors, toi, le champion de php_gettext, laisse ton petit nom ici s'il te plait 
 
![[:the radec] [:the radec]](https://forum-images.hardware.fr/images/perso/the radec.gif) 
 
(il est un peu tard pour que j'explique mon pb maintenant là)
---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!