multilanguage application - step by step

Thomas Jollans t at jollybox.de
Thu Jul 28 14:36:19 CEST 2011


I used gettext in xmm2tray. You can have a look at the code as an example:
http://code.jollybox.de/hg/xmms2tray/file/04443c59a7a1/src/xmms2tray/__init__.py

On 2011-07-28 12:12, Peter Irbizon wrote:
> I tried this:
> # -*- coding: utf-8 -*-
> import gettext
> gettext.bindtextdomain('multilanguage', 'E:\folder')
'\f' is, IIRC, the form feed character. Use forward slashes or escape 
your backslashes properly.
> gettext.textdomain('multilanguage')
> _ = gettext.gettext
I specified the translation file location in the gettext.translation 
call, but I'm no expert; I assume this'll work too.
> # ...
> lang1 = gettext.translation('multilanguage', languages=['sk'])
use fallback=True here if you want it to work without translation files 
(simply using the string passed to _())
> lang1.install()
> print _('This is a translatable string.')
> but ErrNo 2 no translation file found for domain: 'multilanguage'
> I am doing something wrong way. I would like to switch languages in my 
> program 'on the fly' without affecting windows.
The usual way of using gettext is to use the system locale to determine 
the right language. Of course, you can have different translations and 
install() them (I expect), but you'll have to re-load all the strings 
displayed in your application when you switch language, which might be 
tricky.

> P.S. sorry for double posting but when I post my message on 
> googlegroups I can't see it in googlegroups (don't know why)
> thanks
> 2011/7/28 Chris Rebert <clp2 at rebertia.com <mailto:clp2 at rebertia.com>>
>
>     On Thu, Jul 28, 2011 at 2:11 AM, Peter Irbizon
>     <peterirbizon at gmail.com <mailto:peterirbizon at gmail.com>> wrote:
>     > Hello guys,
>     >
>     > I would like to translate all strings in my application for several
>     > languages (eng, es, de, etc) and user should be able to switch app
>     > from one language to another. I am still newbie with python so is
>     > there any "step-by-step" tutorial how to to this? thanks for help
>
>     Please refrain from double-posting in the future.
>
>     The `gettext` module's docs look fairly straightforward:
>     http://docs.python.org/library/gettext.html#internationalizing-your-programs-and-modules
>     See also the "Here’s an example of typical usage for this API:"
>     code snippet.
>
>     For the translation file workflow, the Wikipedia article seems
>     enlightening:
>     http://en.wikipedia.org/wiki/GNU_gettext
>
>     Cheers,
>     Chris
>     --
>     http://rebertia.com <http://rebertia.com/>
>
>
>
>




More information about the Python-list mailing list