summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Alejandro <ivanalejandro0@gmail.com>2014-09-15 17:52:57 -0300
committerIvan Alejandro <ivanalejandro0@gmail.com>2014-09-15 17:52:57 -0300
commit719c472f23490dfe039327743f4553f600c799a9 (patch)
tree736bbdaf787e5c4cff9d43a9b616a55e736a2930
parent600596f074b9605a3aa68ef48ac80f75e3d66779 (diff)
Improve support for RTL languages.
* Update transifex resource name. * Use RightToLeft layout for Arabic language. * Use better names and comments on i18n section. * Use unicode to initialize widgets with text that otherwise (str) will fail when Arabic (and most likely any other language with non-ascii characters) is used. Closes #5289, #6033.
-rw-r--r--.tx/config2
-rw-r--r--src/leap/bitmask/frontend_app.py27
-rw-r--r--src/leap/bitmask/gui/eip_status.py2
-rw-r--r--src/leap/bitmask/gui/mainwindow.py2
4 files changed, 21 insertions, 12 deletions
diff --git a/.tx/config b/.tx/config
index 31ea5b1c..c52bc2d7 100644
--- a/.tx/config
+++ b/.tx/config
@@ -1,7 +1,7 @@
[main]
host = https://www.transifex.com
-[bitmask.bitmask]
+[bitmask.bitmask_client]
file_filter = data/translations/<lang>.ts
source_file = data/ts/en_US.ts
diff --git a/src/leap/bitmask/frontend_app.py b/src/leap/bitmask/frontend_app.py
index 5ea89fc9..909005f0 100644
--- a/src/leap/bitmask/frontend_app.py
+++ b/src/leap/bitmask/frontend_app.py
@@ -76,15 +76,24 @@ def run_frontend(options, flags_dict, backend_pid):
qApp = QtGui.QApplication(sys.argv)
- # To test:
- # $ LANG=es ./app.py
- locale = QtCore.QLocale.system().name()
- qtTranslator = QtCore.QTranslator()
- if qtTranslator.load("qt_%s" % locale, ":/translations"):
- qApp.installTranslator(qtTranslator)
- appTranslator = QtCore.QTranslator()
- if appTranslator.load("%s.qm" % locale[:2], ":/translations"):
- qApp.installTranslator(appTranslator)
+ # To test the app in other language you can do:
+ # shell> LANG=es bitmask
+ # or in some rare case if the code above didn't work:
+ # shell> LC_ALL=es LANG=es bitmask
+ locale = QtCore.QLocale.system().name() # en_US, es_AR, ar_SA, etc
+ locale_short = locale[:2] # en, es, ar, etc
+ rtl_languages = ('ar', ) # right now tested on 'arabic' only.
+
+ systemQtTranslator = QtCore.QTranslator()
+ if systemQtTranslator.load("qt_%s" % locale, ":/translations"):
+ qApp.installTranslator(systemQtTranslator)
+
+ bitmaskQtTranslator = QtCore.QTranslator()
+ if bitmaskQtTranslator.load("%s.qm" % locale_short, ":/translations"):
+ qApp.installTranslator(bitmaskQtTranslator)
+
+ if locale_short in rtl_languages:
+ qApp.setLayoutDirection(QtCore.Qt.LayoutDirection.RightToLeft)
# Needed for initializing qsettings it will write
# .config/leap/leap.conf top level app settings in a platform
diff --git a/src/leap/bitmask/gui/eip_status.py b/src/leap/bitmask/gui/eip_status.py
index 1c167335..a5cd03d3 100644
--- a/src/leap/bitmask/gui/eip_status.py
+++ b/src/leap/bitmask/gui/eip_status.py
@@ -97,7 +97,7 @@ class EIPStatusWidget(QtGui.QWidget):
# Action for the systray
self._eip_disabled_action = QtGui.QAction(
- "{0} is {1}".format(self._service_name, self.tr("disabled")), self)
+ u"{0} is {1}".format(self._service_name, self.tr("disabled")), self)
def connect_backend_signals(self):
"""
diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py
index 9c5045ec..4e11c979 100644
--- a/src/leap/bitmask/gui/mainwindow.py
+++ b/src/leap/bitmask/gui/mainwindow.py
@@ -934,7 +934,7 @@ class MainWindow(QtGui.QMainWindow):
systrayMenu.addAction(self._action_visible)
systrayMenu.addSeparator()
- eip_status_label = "{0}: {1}".format(
+ eip_status_label = u"{0}: {1}".format(
self._eip_conductor.eip_name, self.tr("OFF"))
self._eip_menu = eip_menu = systrayMenu.addMenu(eip_status_label)
eip_menu.addAction(self._action_eip_startstop)