On Wednesday 05 July 2006 6:07 pm, Andreas Pakulat wrote: > On 05.07.06 17:28:59, Phil Thompson wrote: > > On Thursday 29 June 2006 11:49 pm, Andreas Pakulat wrote: > > > On 30.06.06 00:24:10, Andreas Pakulat wrote: > > > > just had a look at generated code from pyuic4 and I'm curious: > > > > > > > > Shouldn't pyuic4 use > > > > QtCore.QCoreApplication.translate(classname.objectName(), > > > > <somestring>) in retranslateUi(self, classname)? > > > > > > Turns out it already does by redefining self.tr, however it's not > > > completely right, because it uses self.uiname, which is the objectName > > > of the class created. > > > > > > The attached classes uses self.toplevelWidget.uiclass for the context > > > parameter. This makes translation of generated python code working and > > > by this "workaround" you can translate ui-forms. > > > > Sorry for taking so long to get around to this... > > > > Can you remind me what problem this is trying to fix? > > The problem is: Translations extracted from the generated code of pyuic4 > don't work due to the "wrong" context. The context is set to the content > of the <class> element in the ui file, however the classname of the > generated class get's a Ui_ prepended, thus the translation file > contains Ui_<classname> as context and the translation doesn't work. > > > Isn't changing the context name going to create problems sharing > > translations between C++ and Python code? > > Indeed, that would be a problem. So maybe the right thing to do is to > remove the Ui_ prefix from the classes when parsing a generated python > file? If you always remove Ui_ from the classname to use the result as > context for the translation file, you'll be in trouble when anybody > wants to name his own classes Ui_foobar. > > Maybe an extra commandline parameter to use when listing generated > python files, or pyuic4 could put a global variable into the generated > code and pylupdate4 tries to read that? > > Or you could add the ui-parsing (btw, that patch from me needs an update > then too, because I hardcoded a Ui_ prefix there) to pylupdate4 and > forbid the parsing of generated python files via documentation. I guess > that's the easiest solution.
I know what the root cause is - pylupdate isn't being clever enough when parsing the code generated by pyuic. I'll fix it in the next day or two. Phil _______________________________________________ PyKDE mailing list [email protected] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
