Caleb Marcus wrote:
I'm planning to make my application translatable with gettext. Do I have to make the text in my gtk stock buttons and things like that use gettext, or will they automatically translate due to their use of gtk stock things?

Here are a few quick hints to make life easier. Do not use Python unicode strings in your application, use UTF-8 and put it in a normal Python string. Why? Because all the libraries you're linking with expect UTF-8, not unicode.

Use gettext.install() as soon as your application starts up, that will install _() as a global symbol. Tell gettext you're using UTF-8, otherwise it will default to unicode and you will have a raft of problems. (If you're not providing a program, but rather library modules another program will load then the technique is different).

gettext.install(domain    = program_name),
                unicode   = False,
                codeset   = 'utf-8')

Then in your application wherever you have a translatable string enclose it it _(). For example: button.set_text(_('Press me for a good time'))

Use intltool to produce the .po files and install them.

If you don't know what _() is or .po files then read the first couple of chapters of the GNU GetText manual. Hint: any string enclosed in _() get's factored out into a translation file, a translator translates it (e.g. 'Press me for a good time'), and the translation is put into a .po file. At run time gettext.install loads the translation, and _() causes the source string (e.g. 'Press me for a good time') to be looked up in the translation catalog and replaced with the translated string. The translated string is what is actually passed to GTK. If a translation can't be found the original string is passed instead. The strings must be UTF-8.
--
John Dennis <[EMAIL PROTECTED]>
_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to