on xenial help sign in
Fix launcher internationalization

Call textdomain and use X-Ubuntu-Gettext-Domain bindtextdomain doesn't set the text domain, only the folder the domain has to be looked for. Fixes: 1354516 Approved by: Michael Zanetti

commita3d38fbc35e2aef1a9e177347afcb0ca325a9aa5 authorAlbert Astals <albert.astals@canonical.com> dateMon 8 Sep 2014, 14:13 (12 years ago) parent2c9ebd77f90efa
5 files changed+9−12
plugins/Unity/Launcher/backend/launcherbackend.cpp+7 qml/Dash/DashApplication.qml−6 qml/Shell.qml−6 src/Dash/main.cpp+1 src/main.cpp+1
plugins/Unity/Launcher/backend/launcherbackend.cpp+7
@@ -28,6 +28,8 @@
2828#include <QDebug>
2929#include <QStandardPaths>
3030
31+#include <libintl.h>
32+
3133class LauncherBackendItem
3234{
3335public:
@@ -350,7 +352,12 @@ LauncherBackendItem* LauncherBackend::parseDesktopFile(const QString &desktopFil
350352 QSettings settings(desktopFile, QSettings::IniFormat);
351353
352354 LauncherBackendItem* item = new LauncherBackendItem();
355+
353356 item->displayName = settings.value("Desktop Entry/Name").toString();
357+ const QString domain = settings.value("Desktop Entry/X-Ubuntu-Gettext-Domain").toString();
358+ if (!domain.isEmpty()) {
359+ item->displayName = dgettext(domain.toUtf8().constData(), item->displayName.toUtf8().constData());
360+ }
354361
355362 QString iconString = settings.value("Desktop Entry/Icon").toString();
356363 QString pathString = settings.value("Desktop Entry/Path").toString();
qml/Dash/DashApplication.qml−6
@@ -24,12 +24,6 @@ MainView {
2424
2525 useDeprecatedToolbar: false
2626
27− Binding {
28− target: i18n
29− property: "domain"
30− value: "unity8"
31− }
32−
3327 Dash {
3428 anchors.fill: parent
3529 }
qml/Shell.qml−6
@@ -593,12 +593,6 @@ Item {
593593 }
594594 }
595595
596− Binding {
597− target: i18n
598− property: "domain"
599− value: "unity8"
600− }
601−
602596 Dialogs {
603597 id: dialogs
604598 anchors.fill: parent
src/Dash/main.cpp+1
@@ -68,6 +68,7 @@ int main(int argc, const char *argv[])
6868 }
6969
7070 bindtextdomain("unity8", translationDirectory().toUtf8().data());
71+ textdomain("unity8");
7172
7273 QQuickView* view = new QQuickView();
7374 view->setResizeMode(QQuickView::SizeRootObjectToView);
src/main.cpp+1
@@ -108,6 +108,7 @@ Load the testability driver");
108108 }
109109
110110 bindtextdomain("unity8", translationDirectory().toUtf8().data());
111+ textdomain("unity8");
111112
112113 QQuickView* view = new QQuickView();
113114 view->setResizeMode(QQuickView::SizeRootObjectToView);