[PyQt] i18n
Doug Bell
dougb at bellz.org
Wed Feb 11 16:18:33 GMT 2009
Frédéric wrote:
> Does anybody could point me on example how to use i18n in PyQt?
>
> Riverbank documentation says that one should not use tr() method, but
> insteead QtCore.QCoreApplication.translate(). As the object must be
> passed to this method, this not improves the readability :o/
>
> Are there some tips, for example, to bind the _() method I use with
> gettext and PyGTK? Something to help me migrate my code without having
> to modify it everywhere...
Here's how I do it:
def translate(text, comment=''):
"""Translation function that sets context to calling module's
filename"""
try:
frame = sys._getframe(1)
fileName = frame.f_code.co_filename
finally:
del frame
context = os.path.basename(os.path.splitext(fileName)[0])
return unicode(QtCore.QCoreApplication.translate(context, text,
comment))
def markNoTranslate(text, comment=''):
"""Mark text for translation without actually doing the
translation"""
return text
__builtin__._ = translate
__builtin__.N_ = markNoTranslate
> Are there also some tools to migrate a .po file to a Qt i18n stuff?
I don't know.
Doug.
More information about the PyQt
mailing list