Merge lp:~ralsina/ubuntuone-control-panel/translate-all-the-dialogs into lp:ubuntuone-control-panel

Proposed by Roberto Alsina
Status: Merged
Approved by: Natalia Bidart
Approved revision: 284
Merged at revision: 281
Proposed branch: lp:~ralsina/ubuntuone-control-panel/translate-all-the-dialogs
Merge into: lp:ubuntuone-control-panel
Diff against target: 91 lines (+36/-0)
2 files modified
ubuntuone/controlpanel/gui/qt/main/__init__.py (+8/-0)
ubuntuone/controlpanel/gui/qt/main/tests/test_main.py (+28/-0)
To merge this branch: bzr merge lp:~ralsina/ubuntuone-control-panel/translate-all-the-dialogs
Reviewer Review Type Date Requested Status
Natalia Bidart (community) Approve
Diego Sarmentero (community) Approve
Review via email: mp+96889@code.launchpad.net

Commit message

- Enabled Qt translation engine so standard dialogs are translated (LP: #951651).

Description of the change

- Enabled Qt translation engine so standard dialogs are translated (Fixes lp:951651).

To test it, run like this:

python setup.py clean build && U1_DEBUG=True LANG=es_ES.UTF-8 ./bin/ubuntuone-control-panel-qt

Make sure you have language-pack-es and language-pack-gnome-es installed, then click on "Add a new folder".

You should see somthing like this: https://bugs.launchpad.net/ubuntuone-control-panel/+bug/951651/+attachment/2846209/+files/12.png

To post a comment you must log in.
284. By Roberto Alsina

test case

Revision history for this message
Diego Sarmentero (diegosarmentero) wrote :

Good one!
+1

review: Approve
Revision history for this message
Natalia Bidart (nataliabidart) wrote :

Looks good, thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'ubuntuone/controlpanel/gui/qt/main/__init__.py'
--- ubuntuone/controlpanel/gui/qt/main/__init__.py 2012-03-08 16:40:50 +0000
+++ ubuntuone/controlpanel/gui/qt/main/__init__.py 2012-03-10 18:41:18 +0000
@@ -65,6 +65,14 @@
6565
66 args = ['ubuntuone-installer'] + args[1:]66 args = ['ubuntuone-installer'] + args[1:]
67 app = UniqueApplication(args, "ubuntuone-control-panel")67 app = UniqueApplication(args, "ubuntuone-control-panel")
68
69 # Install translator for standard dialogs.
70 locale = unicode(QtCore.QLocale.system().name())
71 translator = QtCore.QTranslator()
72 translator.load("qt_" + locale,
73 QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath))
74 app.installTranslator(translator)
75
68 parser = parser_options()76 parser = parser_options()
69 # Use only the arguments that are not recognized by Qt77 # Use only the arguments that are not recognized by Qt
70 args = parser.parse_args(args=[unicode(x) for x in app.arguments()[1:]])78 args = parser.parse_args(args=[unicode(x) for x in app.arguments()[1:]])
7179
=== modified file 'ubuntuone/controlpanel/gui/qt/main/tests/test_main.py'
--- ubuntuone/controlpanel/gui/qt/main/tests/test_main.py 2012-03-08 16:40:50 +0000
+++ ubuntuone/controlpanel/gui/qt/main/tests/test_main.py 2012-03-10 18:41:18 +0000
@@ -16,12 +16,24 @@
1616
17"""Tests for the control panel's Qt main."""17"""Tests for the control panel's Qt main."""
1818
19from PyQt4 import QtCore
19from twisted.internet.defer import inlineCallbacks20from twisted.internet.defer import inlineCallbacks
2021
21from ubuntuone.controlpanel.gui.qt import main22from ubuntuone.controlpanel.gui.qt import main
22from ubuntuone.controlpanel.tests import TestCase23from ubuntuone.controlpanel.tests import TestCase
2324
2425
26class FakeTranslator(object):
27
28 """A fake QTranslator."""
29
30 args = None
31
32 def load(self, *args, **kwargs):
33 """fake load."""
34 self.args = (args, kwargs)
35
36
25class FakeApplication(object):37class FakeApplication(object):
2638
27 """A fake application."""39 """A fake application."""
@@ -29,6 +41,7 @@
29 def __init__(self):41 def __init__(self):
30 self.args = None42 self.args = None
31 self.style = None43 self.style = None
44 self.translator = None
3245
33 def __call__(self, argv, *args, **kwargs):46 def __call__(self, argv, *args, **kwargs):
34 """Fake arg filtering function."""47 """Fake arg filtering function."""
@@ -41,6 +54,10 @@
41 def setStyleSheet(self, *args, **kwargs):54 def setStyleSheet(self, *args, **kwargs):
42 """Fake setStyleSheet."""55 """Fake setStyleSheet."""
43 self.style = (args, kwargs)56 self.style = (args, kwargs)
57
58 def installTranslator(self, translator):
59 """Fake installTranslator."""
60 self.translator = translator
44 # pylint: enable=C010361 # pylint: enable=C0103
4562
46 def arguments(self):63 def arguments(self):
@@ -90,9 +107,11 @@
90 def setUp(self):107 def setUp(self):
91 yield super(MainTestCase, self).setUp()108 yield super(MainTestCase, self).setUp()
92 self.app = FakeApplication()109 self.app = FakeApplication()
110 self.translator = FakeTranslator()
93 self.start = FakeStart()111 self.start = FakeStart()
94 self.patch(main, "UniqueApplication", self.app)112 self.patch(main, "UniqueApplication", self.app)
95 self.patch(main, "start", self.start)113 self.patch(main, "start", self.start)
114 self.patch(QtCore, "QTranslator", lambda: self.translator)
96115
97 def test_wm_class(self):116 def test_wm_class(self):
98 """Test that we set the 1st argument, used for WM_CLASS, correctly."""117 """Test that we set the 1st argument, used for WM_CLASS, correctly."""
@@ -126,3 +145,12 @@
126 """Ensure the --switch-to option is parsed and passed correctly."""145 """Ensure the --switch-to option is parsed and passed correctly."""
127 main.main(["foobar", "--switch-to", "folders"])146 main.main(["foobar", "--switch-to", "folders"])
128 self.assertEqual(self.start.window.tabname, "folders")147 self.assertEqual(self.start.window.tabname, "folders")
148
149 def test_translator(self):
150 """Ensure the Qt translator is loaded."""
151 main.main(["foo"])
152 locale = unicode(QtCore.QLocale.system().name())
153 self.assertEqual(self.app.translator, self.translator)
154 self.assertEqual(self.translator.args, (("qt_" + locale,
155 QtCore.QLibraryInfo.location(
156 QtCore.QLibraryInfo.TranslationsPath)), {}))

Subscribers

People subscribed via source and target branches