diff options
-rw-r--r-- | README.rst | 6 | ||||
-rw-r--r-- | src/leap/util/translations.py | 58 |
2 files changed, 61 insertions, 3 deletions
@@ -15,12 +15,12 @@ You can read the documentation online at `http://leap-client.readthedocs.org <ht Quick Start ============== -At the current development stage we still do not have any versioned release. Instead, you might want to have a look at the `testers guide<http://leap-client.readthedocs.org/en/latest/testers/howto.html>`_ for a quick howto on fetching and testing latest development code. +At the current development stage we still do not have any versioned release. Instead, you might want to have a look at the `testers guide <http://leap-client.readthedocs.org/en/latest/testers/howto.html>`_ for a quick howto on fetching and testing latest development code. Dependencies ------------------ -Leap client depends on these libraries: +LEAP Client depends on these libraries: * ``python 2.6`` or ``2.7`` * ``qt4 libraries`` @@ -73,7 +73,7 @@ After a successful installation, there should be a launcher called ``leap-client Hacking ======= -See the `hackers guide<http://leap-client.readthedocs.org/en/latest/dev/environment.html>`_ +See the `hackers guide <http://leap-client.readthedocs.org/en/latest/dev/environment.html>`_. The LEAP client git repository is available at:: diff --git a/src/leap/util/translations.py b/src/leap/util/translations.py new file mode 100644 index 00000000..c06aa947 --- /dev/null +++ b/src/leap/util/translations.py @@ -0,0 +1,58 @@ +import inspect + +from PyQt4.QtCore import QCoreApplication + +""" +here I could not do all that I wanted. +the context is not getting passed to the xml file. +Looks like pylupdate4 is somehow a hack that does not +parse too well the python ast. +I guess we could generate the xml for ourselves as a last recourse. +""" + +# XXX BIG NOTE: +# RESIST the temptation to get the translate function +# more compact, or have the Context argument passed as a variable +# It HAS to be explicit due to how the pylupdate parser +# works. + + +qtTranslate = QCoreApplication.translate + + +class LEAPTr: + pass + + +def translate(*args): + """ + translate(Context, text, comment) + """ + print 'translating...' + klsname = None + try: + # get class value from instance + # using live object inspection + prev_frame = inspect.stack()[1][0] + self = inspect.getargvalues(prev_frame).locals.get('self') + if self: + # XXX will this work with QObject wrapper?? + if isinstance(LEAPTr, self) and hasattr(self, 'tr'): + print "we got a self in base class" + return self.tr(*args) + + # Trying to get the class name + # but this is useless, the parser + # has already got the context. + klsname = self.__class__.__name__ + print 'KLSNAME -- ', klsname + except: + print 'error getting stack frame' + + if klsname: + nargs = (klsname,) + args + return qtTranslate(*nargs) + + else: + nargs = ('default', ) + args + return qtTranslate(*nargs) |