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. Andreas -- Stay away from flying saucers today. _______________________________________________ PyKDE mailing list [email protected] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
