Thanks both for your help,<br>
<br>
I managed to find one book which talk about i18n for Python: &quot;Python in a Nutshell&quot; (few pages for i18n)<br>
<br>
I've used sys.prefix on my ubuntu box to find the default directory and it works fine this way:<br>
<a href="http://www.flickr.com/photos/frenchy/116742621/">http://www.flickr.com/photos/frenchy/116742621/</a><br>
<br>
I've also done like you said:<br>
gettext.install(domain, localedir)<br>
and now it works fine also with a locale directory&nbsp;&nbsp; :)<br>
<br>
Then what I've got now is:<br>
- I log on the french version of Ubuntu I've got the french app&nbsp; version<br>
- I log on the UK version of Ubuntu I've got the original app version in English<br>
<br>
Now I'd like to be able to change language without loging out, change language, log in.<br>
<br>
Martelli says in his book that to set the default language for the app I just need to do:<br>
<br>
&gt;&gt;&gt; os.environ.setdefault('LANG', 'fr_FR')<br>
&nbsp;<br>
and Python doesn't complain (but doesn't work) but if I then do:<br>
<br>
&gt;&gt;&gt; print locale.getdefaultlocale()<br>
<br>
Python says : ('en_GB', 'utf-8')&nbsp; # meaning that really couldn't work ?<br>
<br>
How can I have my app in French even if I'm still in the GB version of Ubuntu (change the language for the app) ?<br>
<br>
I've also tried the &quot;translation&quot; way instead of the &quot;install&quot; way:<br>
<br>
if I do:<br>
gettext.install(&quot;myapp&quot;, localedir) #it translates in French when I'm in the French Ubuntu<br>
but if I do instead: gettext.translation(&quot;myapp&quot;, localedir, languages=&quot;fr_FR&quot;) #with the same localedir which worked before<br>
=&gt;<br>
Python complains:<br>
&quot;&nbsp;&nbsp;&nbsp; gettext.translation(&quot;myapp&quot;, localedir, languages=&quot;fr_FR&quot;)<br>
&nbsp; File &quot;/usr/lib/python2.4/gettext.py&quot;, line 480, in translation<br>
&nbsp;&nbsp;&nbsp; raise IOError(ENOENT, 'No translation file found for domain', domain)<br>
IOError: [Errno 2] No translation file found for domain: 'myapp' &quot;<br>
<br>
I find it strange that &quot;install&quot; finds it but not &quot;translation&quot; (for the same localedir) ?<br>
<br>
Thanks in advance If you can help.<br>
<br>
francois<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br><br><div><span class="gmail_quote">On 23/03/06, <b class="gmail_sendername">Michael Lange</b> &lt;<a href="mailto:klappnase@freenet.de">klappnase@freenet.de</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Wed, 22 Mar 2006 17:41:14 +0100<br>&quot;francois schnell&quot; &lt;<a href="mailto:francois.schnell@gmail.com">francois.schnell@gmail.com</a>&gt; wrote:<br><br>&gt; Hello all,<br>&gt;<br>&gt; I wish to translate a Python script from English to French. I've read the
<br>&gt; offical documentation (<a href="http://python.org">python.org</a> doc) but I must admit that I'm lost now<br>&gt; ...<br>&gt; I've found some simple explanations here but I can't make it work:<br>&gt; <a href="http://karrigell.sourceforge.net/en/internationalization.htm">
http://karrigell.sourceforge.net/en/internationalization.htm</a><br>&gt;<br>&gt; Here's where I'm stuck:<br>&gt;<br>&gt; Let's imagine my app is: myapp.py<br>&gt; --<br>&gt; import gettext<br>&gt; _ = gettext.gettext<br>&gt;
<br>&gt; print _(&quot;hello friends&quot;)<br>&gt; print _(&quot;Bye Bye&quot;)<br>&gt; ---<br>&gt;<br>&gt; Here are my folders on a windows box:<br>&gt;<br>&gt; C:\myappfolder\<br>&gt; -----------------------\Translations\francais\LC_MESSAGES
<br>&gt;<br>&gt; My myapp.py is in myappfolder<br>&gt;<br>&gt; In this folder I've used pygettext.py to produce a messages.pot file =&gt; I<br>&gt; add the translation in it =&gt; I have a messages.po file.<br>&gt; I then used 
msgfmt.py to produce messages.mo file.<br>&gt;<br>&gt; I then copied messages.po and messages.mo in LC_MESSAGES folder<br>&gt; C:\myappfolder\<br>&gt; -----------------------\Translations\francais\LC_MESSAGES<br>&gt;<br>&gt; I now come back to 
myapp.py and add two lines:<br>&gt;<br>&gt; ---<br>&gt; import gettext<br>&gt; _ = gettext.gettext<br>&gt;<br>&gt; t=gettext.translation(&quot;messages&quot;,&quot;c:\myappfolder\Translations&quot;,&quot;francais&quot;)<br>
&gt; t.install()<br>&gt;<br>&gt; print _(&quot;hello friends&quot;)<br>&gt; print _(&quot;Bye Bye&quot;)<br>&gt; ---<br>&gt;<br>&gt; When I do that Python anwers:<br>&gt;<br>&gt; &gt;&gt;&gt;<br>&gt; Traceback (most recent call last):
<br>&gt;&nbsp;&nbsp; File &quot;C:\myappfolder\myapp.py&quot;, line 4, in ?<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; t=gettext.translation<br>&gt; (&quot;messages&quot;,&quot;c:\myappfolder\Translations&quot;,&quot;francais&quot;)<br>&gt;&nbsp;&nbsp; File &quot;C:\Python24\lib\gettext.py&quot;, line 456, in translation
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; raise IOError(ENOENT, 'No translation file found for domain', domain)<br>&gt; IOError: [Errno 2] No translation file found for domain: 'messages'<br>&gt; &gt;&gt;&gt;<br>&gt;<br>Hi Francois,<br><br>not sure if it is different on windows, on linux I simply do:
<br><br>&nbsp;&nbsp;import gettext<br>&nbsp;&nbsp;gettext.install(domain, localedir)<br><br>to install _() into my application's global namespace,<br>where localedir in your case was &quot;c:\myappfolder\Translations&quot;.<br>The path that contains the french translation should be &quot;..\fr\LC_MESSAGES&quot; instead of &quot;..\francais\LC_MESSAGES&quot;
<br>I think (at least that is true on linux).<br><br>I hope this helps<br><br>Michael<br><br>_______________________________________________<br>Tutor maillist&nbsp;&nbsp;-&nbsp;&nbsp;<a href="mailto:Tutor@python.org">Tutor@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/tutor">http://mail.python.org/mailman/listinfo/tutor</a><br></blockquote></div><br>