[PyKDE] Phil: Any chance of getting the TR (translate) method working?

Boudewijn Rempt boud at rempt.xs4all.nl
Fri Aug 31 12:55:56 BST 2001


On Fri, 31 Aug 2001, Phil Thompson wrote:

> Boudewijn Rempt wrote:
> >
> > On Thursday 02 August 2001 00:31, Phil Thompson wrote:
> > > Bryan Brunton wrote:
> > > > (Reposting due to no response from previous post)
> > > >
> > > > Does anyone have the QObject.tr() method working?
> > > >
> > > > You can use the .qm file from the QT 2.3.1 i8ln example to test the code
> > > > down below.  The QApplication.translate method will correctly translate.
> > > > The tr method of the MyWidget object will not.
> > >
> > > Which version of PyQt? It's broken in 2.4 but should be fixed in the 2.5
> > > pre-releases. (But note that the 2.5 releases will only compile against
> > > Qt 2.3.1 - but that has been fixed in the CVS.)
> > >
> > > Phil
> > >
> > >
> >
> > I'm now also working on this topic, and I found that even with PyQt 2.5,
> > the tr function doesn't work - a bit of a wrench, since that's the last bit
> > I need to finish the last-but-one chapter of Part III!
>
> Hmm, I tested 2.5 with the test case that Bryan provided and it seemed
> to work Ok. Do you have a test case that demonstrates the problem?
>

I used exactly the same testcase - but did you remove the app.translate
line? That one was meant just to show that the translate() function
worked, but the tr not:


import sys
from qt import *

class MyWidget(QMainWindow):
     def __init__(self):
          QMainWindow.__init__(self,None,'',Qt.WDestructiveClose)
          self.setCaption( self.tr("Internationalization Example" ) );

if __name__ == '__main__':
    a = QApplication(sys.argv)
    QObject.connect(a,SIGNAL('lastWindowClosed()'),a,SLOT('quit()'))

    translator = QTranslator(None)
    translator.load( "mywidget_fr.qm", "." )
    a.installTranslator( translator )

    print(translator.contains("MyWidget", "Internationalization Example"))
    print(QTextCodec.locale())
    w = MyWidget()
		# comment this one out to actually test the problem
    #w.setCaption(a.translate("MyWidget", "Internationalization Example"))
    a.setMainWidget(w)
    w.show()
    a.exec_loop()

Boudewijn Rempt  | http://www.valdyas.org





More information about the PyQt mailing list