[PyQt] Translation program
jeremy at jeremysanders.net
Sat Jun 2 18:50:21 BST 2012
I've written a program to find translation strings for PyQt. It uses
python's ast module to interpret python source code. It works a bit
differently to pylupdate4, as it looks for functions with a fixed
contexts to do the translation.
If you'd like to try it out, it is available here:
Click raw to get the real source code. It requires lxml and argparse
(which comes with Python 2.7+).
There is some help in the source. It basically looks for functions which
have disambiguation and context as optional arguments.
def trans(text, disambiguation=None, context='trans_context'):
return QCoreApplication.translate(context, text,
After the definition in your source code (the name "_" works!) you can
trans("other text", "some disambiguation")
trans("more text", context="other_context")
To run the command line looks like:
pyqt_find_translatable --output=file.ts --verbose *.py *.ui
It will write a new .ts file, or update an existing one, as appropriate.
It will mark strings as obsolete if they do not exist in a currently
Please give any feedback and patches! One downside is that the spacing
and format are a bit different to the default from linguist or pylupdate.
More information about the PyQt