[PyQt] linguist skipping a line and missing context

Paul Rouleau paul.rouleau at videotron.ca
Sat Aug 22 19:51:59 BST 2009


I report a weird behavior of linguist for a .ts file generated with 
pylupdate4.

The python source code is

-------- begin code of test.py
#!/usr/bin/python
# -*- coding: utf8 -*-

import functools
from PyQt4 import QtGui

tr = functools.partial( QtGui.QApplication.instance.translate, 'test.py')

YES = tr('Yes')
NO = tr('No')


---------- end test.py

The .pro file is

----------- begin test.pro
SOURCES += ../test.py
TRANSLATIONS += test_fr.ts
------------ end test.pro

I keep my translations in a subdirectory called translations. So you 
need the ../ prefix to get to the source code. I run the following 
commands in the translations subdirectory.

pylupdate4 test.pro
linguist

Once in linguist I open the test_fr.ts file.

The weird behavior is twofold:

1- When I go to the Source code window, linguist point to the line below 
the one where the source text occurs. I.e when I translate the string 
'Yes' it points to the line NO = tr('NO').

2- The contest string 'test.py' doesn't show up. Linguist reports 
@default being the context.


Could some of this have to do with the use of functools.partial with 
translate? I thought this is a neat way to avoid repeating the same 
string over and over when translating definitions made at module level. 
It also let us alias the translation function to reduce typing and 
increase readability.

I am using PyQt 4.3 on Ubuntu Hardy Heron. This is the most recent 
version of PyQt that is packaged with Hardy.


This is nothing more than a minor annoyance, but I think it is useful to 
report anyway.


More information about the PyQt mailing list