on xenial help sign in
Merge with trunk
b3939afMirco Müller
cmake/modules/QmlTest.cmake+15−3
@@ -27,11 +27,14 @@ endif()
27
27
28set(qmlscene_exe ${CMAKE_BINARY_DIR}/tests/uqmlscene/uqmlscene)
28set(qmlscene_exe ${CMAKE_BINARY_DIR}/tests/uqmlscene/uqmlscene)
29
29
30+set(test_env UNITY_TESTING=1)
31+
30macro(add_manual_qml_test SUBPATH COMPONENT_NAME)
32macro(add_manual_qml_test SUBPATH COMPONENT_NAME)
31 set(options NO_ADD_TEST NO_TARGETS)
33 set(options NO_ADD_TEST NO_TARGETS)
32 set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT)
34 set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT)
33
35
34 cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN})
36 cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN})
37+ cmake_parse_arguments(qmltest_default "${options}" "" "${multi_value_keywords}" ${qmltest_DEFAULT_PROPERTIES})
35
38
36 set(qmlscene_TARGET try${COMPONENT_NAME})
39 set(qmlscene_TARGET try${COMPONENT_NAME})
37 set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME})
40 set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME})
@@ -49,8 +52,12 @@ macro(add_manual_qml_test SUBPATH COMPONENT_NAME)
49 endforeach(IMPORT_PATH)
52 endforeach(IMPORT_PATH)
50 endif()
53 endif()
51
54
55+ if("${qmltest_ENVIRONMENT}" STREQUAL "")
56+ set(qmltest_ENVIRONMENT "${qmltest_default_ENVIRONMENT}")
57+ endif()
58+
52 set(qmlscene_command
59 set(qmlscene_command
53− env ${qmltest_ENVIRONMENT}
60+ env ${test_env} ${qmltest_ENVIRONMENT}
54 ${qmlscene_exe} -qmljsdebugger=port:3768 ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
61 ${qmlscene_exe} -qmljsdebugger=port:3768 ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
55 ${qmlscene_imports}
62 ${qmlscene_imports}
56 )
63 )
@@ -71,6 +78,7 @@ macro(add_qml_test_internal SUBPATH COMPONENT_NAME ITERATIONS)
71 set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT)
78 set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT)
72
79
73 cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN})
80 cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN})
81+ cmake_parse_arguments(qmltest_default "${options}" "" "${multi_value_keywords}" ${qmltest_DEFAULT_PROPERTIES})
74
82
75 set(qmltest_TARGET test${COMPONENT_NAME})
83 set(qmltest_TARGET test${COMPONENT_NAME})
76 set(qmltest_xvfb_TARGET xvfbtest${COMPONENT_NAME})
84 set(qmltest_xvfb_TARGET xvfbtest${COMPONENT_NAME})
@@ -102,8 +110,12 @@ macro(add_qml_test_internal SUBPATH COMPONENT_NAME ITERATIONS)
102 set(ITERATIONS_STRING "")
110 set(ITERATIONS_STRING "")
103 endif()
111 endif()
104
112
113+ if("${qmltest_ENVIRONMENT}" STREQUAL "")
114+ set(qmltest_ENVIRONMENT "${qmltest_default_ENVIRONMENT}")
115+ endif()
116+
105 set(qmltest_command
117 set(qmltest_command
106− env ${qmltest_ENVIRONMENT} UNITY_TESTING=1
118+ env ${test_env} ${qmltest_ENVIRONMENT}
107 ${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
119 ${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
108 ${qmltestrunner_imports}
120 ${qmltestrunner_imports}
109 ${ITERATIONS_STRING}
121 ${ITERATIONS_STRING}
@@ -117,7 +129,7 @@ macro(add_qml_test_internal SUBPATH COMPONENT_NAME ITERATIONS)
117 set(LD_PRELOAD_PATH "LD_PRELOAD=/usr/lib/${ARCH_TRIPLET}/mesa/libGL.so.1")
129 set(LD_PRELOAD_PATH "LD_PRELOAD=/usr/lib/${ARCH_TRIPLET}/mesa/libGL.so.1")
118 endif()
130 endif()
119 set(qmltest_xvfb_command
131 set(qmltest_xvfb_command
120− env ${qmltest_ENVIRONMENT} ${LD_PRELOAD_PATH} UNITY_TESTING=1
132+ env ${test_env} ${qmltest_ENVIRONMENT} ${LD_PRELOAD_PATH}
121 xvfb-run --server-args "-screen 0 1024x768x24" --auto-servernum
133 xvfb-run --server-args "-screen 0 1024x768x24" --auto-servernum
122 ${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
134 ${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
123 ${qmltestrunner_imports}
135 ${qmltestrunner_imports}
data/unity8-dash.desktop.in+3−3
@@ -1,9 +1,9 @@
1[Desktop Entry]
1[Desktop Entry]
2Type=Application
2Type=Application
3−Name=Unity 8 Dash
3+Name=Scopes
4−Comment=The converged Unity shell dash
4+Comment=An interface for using the Scopes system
5Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8-dash
5Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8-dash
6Terminal=false
6Terminal=false
7−Icon=unity8
7+Icon=
8NoDisplay=true
8NoDisplay=true
9X-Ubuntu-Touch=true
9X-Ubuntu-Touch=true
data/unity8-filewatcher.confnew file+8
@@ -0,0 +1,8 @@
1+description "File system watcher for unity8"
2+author "Michael Zanetti <michael.zanetti@canonical.com>"
3+
4+# Workaround for bug 1360208. ~ and * in one expression doesn't work currently
5+start on (file FILE=/home/phablet/.local/share/applications/*.desktop) or (file FILE=/usr/share/applications/*.desktop)
6+
7+exec dbus-send --type=method_call --dest=com.canonical.Unity.Launcher /com/canonical/Unity/Launcher com.canonical.Unity.Launcher.Refresh
8+
data/unity8.desktop.in+1−1
@@ -4,6 +4,6 @@ Name=Unity 8
4Comment=The converged Unity shell
4Comment=The converged Unity shell
5Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8
5Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8
6Terminal=false
6Terminal=false
7−Icon=unity8
7+Icon=
8NoDisplay=true
8NoDisplay=true
9X-Ubuntu-Touch=true
9X-Ubuntu-Touch=true
debian/changelog+60
@@ -1,3 +1,63 @@
1+unity8 (8.00+14.10.20140918.3-0ubuntu1) utopic; urgency=low
2+
3+ [ Michał Sawicz ]
4+ * Add -windowgeometry option to the Dash and drop any user-visible
5+ mentions of Dash
6+ * Dash: Fix issue when expanding a category and collapsing another one
7+ at the same time.
8+
9+ [ Albert Astals ]
10+ * Dash: Fix issue when expanding a category and collapsing another one
11+ at the same time.
12+ * Make the categoryView invisible when we are in the preview mode (LP:
13+ #1341205)
14+ * Pixel pushing in the dash header (LP: #1365929)
15+
16+ [ Ying-Chun Liu ]
17+ * Re-add restart button for power menu. (LP: 1358197) (LP: #1358197)
18+
19+ [ Marcus Tomlinson ]
20+ * Don't show a preview if a null response is returned from
21+ scope.preview(result)
22+
23+ [ Mirco Müller ]
24+ * Don't limit the number of text-lines for body-text. (LP: #1369438)
25+
26+ [ Michael Zanetti ]
27+ * Don't hide launcher when nothing happens on long left edge swipes
28+ (LP: #1357333)
29+ * Rework LauncherBackend
30+
31+ [ Michael Terry ]
32+ * When running qmluitests, make sure that they use LANGUAGE=C, fixing
33+ a test failure when running locally in the US.
34+
35+ [ Daniel d'Andrada ]
36+ * Some ApplicationWindow test improvements
37+
38+ [ Rodney Dawes ]
39+ * Check purchase state to determine if purchase was cancelled and hide
40+ progress. (LP: #1362622)
41+
42+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 18 Sep 2014 21:26:42 +0000
43+
44+unity8 (8.00+14.10.20140918-0ubuntu1) utopic; urgency=low
45+
46+ [ Michael Zanetti ]
47+ * Focus first app if there are already some running when we're
48+ starting up (LP: #1339883)
49+
50+ [ Michał Sawicz ]
51+ * Don't play empty urls in Notification.qml
52+
53+ [ Daniel d'Andrada ]
54+ * Improve tst_Shell
55+ * Build without any warnings
56+ * Make tst_Card work from outside the source tree (LP:1359201) (LP:
57+ #1359201)
58+
59+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 18 Sep 2014 09:44:06 +0000
60+
1unity8 (8.00+14.10.20140910.1-0ubuntu1) utopic; urgency=low
61unity8 (8.00+14.10.20140910.1-0ubuntu1) utopic; urgency=low
2
62
3 [ Pete Woods ]
63 [ Pete Woods ]
debian/control+4−4
@@ -24,7 +24,7 @@ Build-Depends: cmake,
24 libpulse-dev,
24 libpulse-dev,
25 libqmenumodel-dev (>= 0.2.8),
25 libqmenumodel-dev (>= 0.2.8),
26 libqt5xmlpatterns5-dev,
26 libqt5xmlpatterns5-dev,
27− libunity-api-dev (>= 7.89),
27+ libunity-api-dev (>= 7.90),
28 libusermetricsoutput1-dev,
28 libusermetricsoutput1-dev,
29 libxcb1-dev,
29 libxcb1-dev,
30 pkg-config,
30 pkg-config,
@@ -87,7 +87,7 @@ Depends: gsettings-desktop-schemas,
87 qtdeclarative5-gsettings1.0,
87 qtdeclarative5-gsettings1.0,
88 qtdeclarative5-qtmir-plugin (>= 0.4.3),
88 qtdeclarative5-qtmir-plugin (>= 0.4.3),
89 qtdeclarative5-ubuntu-telephony0.1,
89 qtdeclarative5-ubuntu-telephony0.1,
90− unity-launcher-impl-3,
90+ unity-launcher-impl-4,
91 unity8-common (= ${source:Version}),
91 unity8-common (= ${source:Version}),
92 unity8-private (= ${binary:Version}),
92 unity8-private (= ${binary:Version}),
93 unity8-private | unity-launcher-impl,
93 unity8-private | unity-launcher-impl,
@@ -171,12 +171,12 @@ Pre-Depends: ${misc:Pre-Depends},
171Depends: accountsservice-ubuntu-schemas (>= 0.0.3),
171Depends: accountsservice-ubuntu-schemas (>= 0.0.3),
172 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
172 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
173 libhardware2,
173 libhardware2,
174− libunity-core-6.0-9,
174+ unity-schemas (>= 7.3.1+14.10.20140915),
175 pay-service,
175 pay-service,
176 ${misc:Depends},
176 ${misc:Depends},
177 ${shlibs:Depends},
177 ${shlibs:Depends},
178Provides: unity-launcher-impl,
178Provides: unity-launcher-impl,
179− unity-launcher-impl-3,
179+ unity-launcher-impl-4,
180Description: Unity 8 private libs
180Description: Unity 8 private libs
181 The Unity 8 shell is the primary user interface for Ubuntu devices.
181 The Unity 8 shell is the primary user interface for Ubuntu devices.
182 .
182 .
debian/unity8.install+1
@@ -1,5 +1,6 @@
1data/unity8.conf usr/share/upstart/sessions/
1data/unity8.conf usr/share/upstart/sessions/
2data/unity8-dash.conf usr/share/upstart/sessions/
2data/unity8-dash.conf usr/share/upstart/sessions/
3+data/unity8-filewatcher.conf usr/share/upstart/sessions/
3usr/bin/unity8
4usr/bin/unity8
4usr/bin/unity8-dash
5usr/bin/unity8-dash
5usr/share/applications/unity8.desktop
6usr/share/applications/unity8.desktop
plugins/Dash/CardCreator.js+2−2
@@ -78,8 +78,8 @@ var kArtShapeHolderCode = 'Item { \n\
78 width = root.fixedArtShapeSize.width; \n\
78 width = root.fixedArtShapeSize.width; \n\
79 height = root.fixedArtShapeSize.height; \n\
79 height = root.fixedArtShapeSize.height; \n\
80 } else { \n\
80 } else { \n\
81− width = Qt.binding(function() { return !visible ? 0 : image.width }); \n\
81+ width = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.width }); \n\
82− height = Qt.binding(function() { return !visible ? 0 : image.height }); \n\
82+ height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height }); \n\
83 } \n\
83 } \n\
84 } \n\
84 } \n\
85 image: Image { \n\
85 image: Image { \n\
plugins/Dash/listviewwithpageheader.cpp+11−1
@@ -409,6 +409,16 @@ void ListViewWithPageHeader::showHeader()
409 }
409 }
410}
410}
411
411
412+int ListViewWithPageHeader::firstCreatedIndex() const
413+{
414+ return m_firstVisibleIndex;
415+}
416+
417+int ListViewWithPageHeader::createdItemCount() const
418+{
419+ return m_visibleItems.count();
420+}
421+
412QQuickItem *ListViewWithPageHeader::item(int modelIndex) const
422QQuickItem *ListViewWithPageHeader::item(int modelIndex) const
413{
423{
414 ListItem *item = itemAtIndex(modelIndex);
424 ListItem *item = itemAtIndex(modelIndex);
@@ -520,7 +530,7 @@ void ListViewWithPageHeader::adjustHeader(qreal diff)
520 // (but the header was not shown by it's own position)
530 // (but the header was not shown by it's own position)
521 // or the header is partially shown and we are not doing a maximizeVisibleArea either
531 // or the header is partially shown and we are not doing a maximizeVisibleArea either
522 const bool scrolledUp = m_previousContentY > contentY();
532 const bool scrolledUp = m_previousContentY > contentY();
523− const bool notRebounding = contentY() + height() < contentHeight();
533+ const bool notRebounding = qRound(contentY() + height()) < qRound(contentHeight());
524 const bool notShownByItsOwn = contentY() + diff >= m_headerItem->y() + m_headerItem->height();
534 const bool notShownByItsOwn = contentY() + diff >= m_headerItem->y() + m_headerItem->height();
525 const bool maximizeVisibleAreaRunning = m_contentYAnimation->isRunning() && contentYAnimationType == ContentYAnimationMaximizeVisibleArea;
535 const bool maximizeVisibleAreaRunning = m_contentYAnimation->isRunning() && contentYAnimationType == ContentYAnimationMaximizeVisibleArea;
526
536
plugins/Dash/listviewwithpageheader.h+2
@@ -86,6 +86,8 @@ public:
86
86
87 Q_INVOKABLE void positionAtBeginning();
87 Q_INVOKABLE void positionAtBeginning();
88 Q_INVOKABLE void showHeader();
88 Q_INVOKABLE void showHeader();
89+ Q_INVOKABLE int firstCreatedIndex() const;
90+ Q_INVOKABLE int createdItemCount() const;
89 Q_INVOKABLE QQuickItem *item(int modelIndex) const;
91 Q_INVOKABLE QQuickItem *item(int modelIndex) const;
90
92
91 // The index has to be created for this to try to do something
93 // The index has to be created for this to try to do something
plugins/Lights/Lights.cpp+1−2
@@ -20,8 +20,7 @@
20#include <QtCore/QDebug>
20#include <QtCore/QDebug>
21
21
22extern "C" {
22extern "C" {
23−#include <hardware/hardware.h>
24−#include <hardware/lights.h>
23+#include "android-hardware.h"
25#include <string.h>
24#include <string.h>
26}
25}
27
26
plugins/Lights/android-hardware.hnew file+23
@@ -0,0 +1,23 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ */
17+
18+// The purpose of this header wrapper is just to avoid having warnings being reported on
19+// code from external header files, as we can't do anything about them.
20+#pragma GCC system_header
21+
22+#include <hardware/hardware.h>
23+#include <hardware/lights.h>
plugins/Ubuntu/Payments/Payments.cpp+21−1
@@ -41,13 +41,23 @@ static void observer(PayPackage* /* package */, const char* itemid, PayPackageIt
41 case PAY_PACKAGE_ITEM_STATUS_PURCHASED:
41 case PAY_PACKAGE_ITEM_STATUS_PURCHASED:
42 Q_EMIT self->purchaseCompleted();
42 Q_EMIT self->purchaseCompleted();
43 break;
43 break;
44+ case PAY_PACKAGE_ITEM_STATUS_PURCHASING:
45+ self->setPurchasing(true);
46+ break;
47+ case PAY_PACKAGE_ITEM_STATUS_NOT_PURCHASED:
48+ if (self->purchasing()) {
49+ self->setPurchasing(false);
50+ Q_EMIT self->purchaseCancelled();
51+ }
52+ break;
44 default:
53 default:
45 break;
54 break;
46 }
55 }
47}
56}
48
57
49Payments::Payments(QObject *parent)
58Payments::Payments(QObject *parent)
50− : QObject(parent)
59+ : QObject(parent),
60+ m_purchasing(false)
51{
61{
52 m_package = pay_package_new("click-scope");
62 m_package = pay_package_new("click-scope");
53 pay_package_item_observer_install(m_package, observer, this);
63 pay_package_item_observer_install(m_package, observer, this);
@@ -80,6 +90,11 @@ QString Payments::formattedPrice() const
80 return locale.toCurrencyString(m_price, m_currency);
90 return locale.toCurrencyString(m_price, m_currency);
81}
91}
82
92
93+bool Payments::purchasing() const
94+{
95+ return m_purchasing;
96+}
97+
83void Payments::setCurrency(const QString &currency)
98void Payments::setCurrency(const QString &currency)
84{
99{
85 if(m_currency != currency) {
100 if(m_currency != currency) {
@@ -112,6 +127,11 @@ void Payments::setStoreItemId(const QString &store_item_id)
112 pay_package_item_start_verification(m_package, m_store_item_id.toLocal8Bit().data());
127 pay_package_item_start_verification(m_package, m_store_item_id.toLocal8Bit().data());
113}
128}
114
129
130+void Payments::setPurchasing(bool is_purchasing)
131+{
132+ m_purchasing = is_purchasing;
133+}
134+
115void Payments::start()
135void Payments::start()
116{
136{
117 pay_package_item_start_purchase(m_package, m_store_item_id.toLocal8Bit().data());
137 pay_package_item_start_purchase(m_package, m_store_item_id.toLocal8Bit().data());
plugins/Ubuntu/Payments/Payments.h+4
@@ -39,10 +39,12 @@ public:
39 double price() const;
39 double price() const;
40 QString storeItemId() const;
40 QString storeItemId() const;
41 QString formattedPrice() const;
41 QString formattedPrice() const;
42+ bool purchasing() const;
42
43
43 void setCurrency(const QString& currency);
44 void setCurrency(const QString& currency);
44 void setPrice(const double price);
45 void setPrice(const double price);
45 void setStoreItemId(const QString& store_item_id);
46 void setStoreItemId(const QString& store_item_id);
47+ void setPurchasing(bool is_purchasing);
46 Q_INVOKABLE void start();
48 Q_INVOKABLE void start();
47
49
48Q_SIGNALS:
50Q_SIGNALS:
@@ -53,11 +55,13 @@ Q_SIGNALS:
53
55
54 void purchaseError(const QString &error);
56 void purchaseError(const QString &error);
55 void purchaseCompleted();
57 void purchaseCompleted();
58+ void purchaseCancelled();
56
59
57private:
60private:
58 QString m_currency;
61 QString m_currency;
59 double m_price;
62 double m_price;
60 QString m_store_item_id;
63 QString m_store_item_id;
64+ bool m_purchasing;
61
65
62 PayPackage *m_package;
66 PayPackage *m_package;
63};
67};
plugins/Unity/Launcher/CMakeLists.txt+5−3
@@ -1,5 +1,5 @@
1include(FindPkgConfig)
1include(FindPkgConfig)
2−pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=3)
2+pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=4)
3pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=3)
3pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=3)
4pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
4pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
5
5
@@ -16,8 +16,10 @@ set(QMLLAUNCHERPLUGIN_SRC
16 launchermodel.cpp
16 launchermodel.cpp
17 launcheritem.cpp
17 launcheritem.cpp
18 quicklistmodel.cpp
18 quicklistmodel.cpp
19− common/quicklistentry.cpp
19+ quicklistentry.cpp
20− backend/launcherbackend.cpp
20+ dbusinterface.cpp
21+ gsettings.cpp
22+ desktopfilehandler.cpp
21 ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
23 ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
22 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h
24 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h
23 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h
25 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h
plugins/Unity/Launcher/backend/launcherbackend.cppdeleted−591
@@ -1,591 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * Authors:
5− * Michael Terry <michael.terry@canonical.com>
6− * Michael Zanetti <michael.zanetti@canonical.com>
7− *
8− * This program is free software; you can redistribute it and/or modify
9− * it under the terms of the GNU General Public License as published by
10− * the Free Software Foundation; version 3.
11− *
12− * This program is distributed in the hope that it will be useful,
13− * but WITHOUT ANY WARRANTY; without even the implied warranty of
14− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15− * GNU General Public License for more details.
16− *
17− * You should have received a copy of the GNU General Public License
18− * along with this program. If not, see <http://www.gnu.org/licenses/>.
19− */
20−
21−#include "AccountsServiceDBusAdaptor.h"
22−#include "launcherbackend.h"
23−
24−#include <QDir>
25−#include <QDBusArgument>
26−#include <QFileInfo>
27−#include <QGSettings>
28−#include <QDebug>
29−#include <QStandardPaths>
30−
31−#include <libintl.h>
32−
33−class LauncherBackendItem
34−{
35−public:
36− QString displayName;
37− QString icon;
38− int count;
39− bool countVisible;
40−};
41−
42−LauncherBackend::LauncherBackend(QObject *parent):
43− QDBusVirtualObject(parent),
44− m_accounts(nullptr)
45−{
46−#ifndef LAUNCHER_TESTING
47− m_accounts = new AccountsServiceDBusAdaptor(this);
48−#endif
49− m_user = qgetenv("USER");
50− syncFromAccounts();
51−
52− /* Set up ourselves on DBus */
53− QDBusConnection con = QDBusConnection::sessionBus();
54− if (!con.registerService("com.canonical.Unity.Launcher")) {
55− qDebug() << "Unable to register launcher name";
56− }
57− if (!con.registerVirtualObject("/com/canonical/Unity/Launcher", this, QDBusConnection::VirtualObjectRegisterOption::SubPath)) {
58− qDebug() << "Unable to register launcher object";
59− }
60−}
61−
62−LauncherBackend::~LauncherBackend()
63−{
64− /* Remove oursevles from DBus */
65− QDBusConnection con = QDBusConnection::sessionBus();
66− con.unregisterService("com.canonical.Unity.Launcher");
67− con.unregisterObject("/com/canonical/Unity/Launcher");
68−
69− /* Clear data */
70− m_storedApps.clear();
71−
72− Q_FOREACH(LauncherBackendItem *item, m_itemCache) {
73− delete item;
74− }
75− m_itemCache.clear();
76−}
77−
78−QStringList LauncherBackend::storedApplications() const
79−{
80− return m_storedApps;
81−}
82−
83−void LauncherBackend::setStoredApplications(const QStringList &appIds)
84−{
85− if (appIds.count() < m_storedApps.count()) {
86− Q_FOREACH(const QString &appId, m_storedApps) {
87− if (!appIds.contains(appId)) {
88− delete m_itemCache.take(appId);
89− }
90− }
91− }
92− m_storedApps = appIds;
93− Q_FOREACH(const QString &appId, appIds) {
94− if (!m_itemCache.contains(appId)) {
95− QString df = findDesktopFile(appId);
96− if (!df.isEmpty()) {
97− LauncherBackendItem *item = parseDesktopFile(df);
98− m_itemCache.insert(appId, item);
99− } else {
100− // Cannot find any data for that app... ignoring it.
101− qWarning() << "cannot find desktop file for" << appId << ". discarding app.";
102− m_storedApps.removeAll(appId);
103− }
104− }
105− }
106− syncToAccounts();
107−}
108−
109−QString LauncherBackend::desktopFile(const QString &appId) const
110−{
111− return findDesktopFile(appId);
112−}
113−
114−QString LauncherBackend::displayName(const QString &appId) const
115−{
116− LauncherBackendItem *item = m_itemCache.value(appId, nullptr);
117− if (item) {
118− return item->displayName;
119− }
120−
121− QString df = findDesktopFile(appId);
122− if (!df.isEmpty()) {
123− LauncherBackendItem *item = parseDesktopFile(df);
124− m_itemCache.insert(appId, item);
125− return item->displayName;
126− }
127−
128− return QString();
129−}
130−
131−QString LauncherBackend::icon(const QString &appId) const
132−{
133− QString iconName;
134− LauncherBackendItem *item = getItem(appId);
135− if (item) {
136− iconName = item->icon;
137− }
138−
139− return iconName;
140−}
141−
142−QList<QuickListEntry> LauncherBackend::quickList(const QString &appId) const
143−{
144− // TODO: Get static (from .desktop file) and dynamic (from the app itself)
145− // entries and return them here. Frontend related entries (like "Pin to launcher")
146− // don't matter here. This is just the backend part.
147− // TODO: emit quickListChanged() when the dynamic part changes
148− Q_UNUSED(appId)
149− return QList<QuickListEntry>();
150−}
151−
152−int LauncherBackend::progress(const QString &appId) const
153−{
154− // TODO: Return value for progress emblem.
155− // TODO: emit progressChanged() when this value changes.
156− Q_UNUSED(appId)
157− return -1;
158−}
159−
160−int LauncherBackend::count(const QString &appId) const
161−{
162− int count = -1;
163− LauncherBackendItem *item = getItem(appId);
164−
165− if (item) {
166− if (item->countVisible) {
167− count = item->count;
168− }
169− }
170−
171− return count;
172−}
173−
174−void LauncherBackend::setCount(const QString &appId, int count) const
175−{
176− LauncherBackendItem *item = getItem(appId);
177−
178− bool emitchange = false;
179− if (item) {
180− emitchange = (item->count != count);
181− item->count = count;
182− }
183−
184− if (emitchange) {
185− /* TODO: This needs to use the accessor to handle the visibility
186− correctly, but when we have the two properties we can just use
187− the local value */
188− Q_EMIT countChanged(appId, this->count(appId));
189− QVariant vcount(item->count);
190− emitPropChangedDbus(appId, "count", vcount);
191− }
192−}
193−
194−bool LauncherBackend::countVisible(const QString &appId) const
195−{
196− bool visible = false;
197− LauncherBackendItem *item = getItem(appId);
198−
199− if (item) {
200− visible = item->countVisible;
201− }
202−
203− return visible;
204−}
205−
206−void LauncherBackend::setCountVisible(const QString &appId, bool visible) const
207−{
208− LauncherBackendItem *item = getItem(appId);
209−
210− bool emitchange = false;
211− if (item) {
212− emitchange = (item->countVisible != visible);
213− item->countVisible = visible;
214− } else {
215− qDebug() << "Unable to find:" << appId;
216− }
217−
218− if (emitchange) {
219− /* TODO: Because we're using visible in determining the
220− count we need to emit a count changed as well */
221− Q_EMIT countChanged(appId, this->count(appId));
222− Q_EMIT countVisibleChanged(appId, item->countVisible);
223− QVariant vCountVisible(item->countVisible);
224− emitPropChangedDbus(appId, "countVisible", vCountVisible);
225− }
226−}
227−
228−void LauncherBackend::setUser(const QString &username)
229−{
230− if (qgetenv("USER") == "lightdm" && m_user != username) {
231− m_user = username;
232− syncFromAccounts();
233− }
234−}
235−
236−void LauncherBackend::triggerQuickListAction(const QString &appId, const QString &quickListId)
237−{
238− // TODO: execute the given quicklist action
239− Q_UNUSED(appId)
240− Q_UNUSED(quickListId)
241−}
242−
243−void LauncherBackend::syncFromAccounts()
244−{
245− QList<QVariantMap> apps;
246− bool defaults = true;
247−
248− m_storedApps.clear();
249−
250− if (m_accounts && !m_user.isEmpty()) {
251− QVariant variant = m_accounts->getUserProperty(m_user, "com.canonical.unity.AccountsService", "launcher-items");
252− if (variant.isValid() && variant.canConvert<QDBusArgument>()) {
253− apps = qdbus_cast<QList<QVariantMap>>(variant.value<QDBusArgument>());
254− defaults = isDefaultsItem(apps);
255− }
256− }
257−
258− if (m_accounts && defaults) { // Checking accounts as it'll be null when !useStorage
259− QGSettings gSettings("com.canonical.Unity.Launcher", "/com/canonical/unity/launcher/");
260− Q_FOREACH(const QString &entry, gSettings.get("favorites").toStringList()) {
261− if (entry.startsWith("application://")) {
262− QString appId = entry;
263− // Transform "application://foobar.desktop" to "application://foobar"
264− appId.remove("application://");
265− if (appId.endsWith(".desktop")) {
266− appId.chop(8);
267− }
268− QString df = findDesktopFile(appId);
269−
270− if (!df.isEmpty()) {
271− m_storedApps << appId;
272−
273− if (!m_itemCache.contains(appId)) {
274− m_itemCache.insert(appId, parseDesktopFile(df));
275− }
276− }
277− }
278− if (entry.startsWith("appid://")) {
279− QString appId = entry;
280− appId.remove("appid://");
281− // Strip hook name and current-user-version in case its there
282−
283− if (appId.split('/').count() != 3) {
284− qWarning() << "ignoring entry " + appId + ". Not a valid appId.";
285− continue;
286− }
287− appId = appId.split('/').first() + "_" + appId.split('/').at(1);
288− QString df = findDesktopFile(appId);
289−
290− if (!df.isEmpty()) {
291− m_storedApps << appId;
292−
293− if (!m_itemCache.contains(appId)) {
294− m_itemCache.insert(appId, parseDesktopFile(df));
295− }
296− }
297− }
298− }
299− } else {
300− for (const QVariant &app: apps) {
301− loadFromVariant(app.toMap());
302− }
303− }
304−}
305−
306−void LauncherBackend::syncToAccounts()
307−{
308− if (m_accounts && !m_user.isEmpty()) {
309− QList<QVariantMap> items;
310−
311− Q_FOREACH(const QString &appId, m_storedApps) {
312− items << itemToVariant(appId);
313− }
314−
315− m_accounts->setUserProperty(m_user, "com.canonical.unity.AccountsService", "launcher-items", QVariant::fromValue(items));
316− }
317−}
318−
319−QString LauncherBackend::findDesktopFile(const QString &appId) const
320−{
321− int dashPos = -1;
322− QString helper = appId;
323−
324− QStringList searchDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
325−#ifdef LAUNCHER_TESTING
326− searchDirs << "";
327−#endif
328−
329− do {
330− if (dashPos != -1) {
331− helper = helper.replace(dashPos, 1, '/');
332− }
333−
334− Q_FOREACH(const QString &searchDirName, searchDirs) {
335− QDir searchDir(searchDirName);
336− Q_FOREACH(const QString &desktopFile, searchDir.entryList(QStringList() << "*.desktop")) {
337− if (desktopFile.startsWith(helper)) {
338− QFileInfo fileInfo(searchDir, desktopFile);
339− return fileInfo.absoluteFilePath();
340− }
341− }
342− }
343−
344− dashPos = helper.indexOf("-");
345− } while (dashPos != -1);
346−
347− return QString();
348−}
349−
350−LauncherBackendItem* LauncherBackend::parseDesktopFile(const QString &desktopFile) const
351−{
352− QSettings settings(desktopFile, QSettings::IniFormat);
353−
354− LauncherBackendItem* item = new LauncherBackendItem();
355−
356− 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− }
361−
362− QString iconString = settings.value("Desktop Entry/Icon").toString();
363− QString pathString = settings.value("Desktop Entry/Path").toString();
364− if (QFileInfo(iconString).exists()) {
365− item->icon = QFileInfo(iconString).absoluteFilePath();
366− } else if (QFileInfo(pathString + '/' + iconString).exists()) {
367− item->icon = pathString + '/' + iconString;
368− } else {
369− item->icon = "image://theme/" + iconString;
370− }
371−
372− /* TODO: These should be looked up in a cache somewhere */
373− item->count = 0;
374− item->countVisible = false;
375−
376− return item;
377−}
378−
379−/* Gets an item, and tries to create a new one if we need it to */
380−LauncherBackendItem* LauncherBackend::getItem(const QString &appId) const
381−{
382− LauncherBackendItem *item = m_itemCache.value(appId, nullptr);
383− if (!item) {
384− QString df = findDesktopFile(appId);
385− if (!df.isEmpty()) {
386− item = parseDesktopFile(df);
387− if (item) {
388− m_itemCache[appId] = item;
389− } else {
390− qWarning() << "Unable to parse desktop file for" << appId << "path" << df;
391− }
392− } else {
393− qWarning() << "Unable to find desktop file for:" << appId;
394− }
395− }
396−
397− if (!item)
398− qWarning() << "Unable to find item for: " << appId;
399−
400− return item;
401−}
402−
403−void LauncherBackend::loadFromVariant(const QVariantMap &details)
404−{
405− if (!details.contains("id")) {
406− return;
407− }
408− QString appId = details.value("id").toString();
409−
410− LauncherBackendItem *item = m_itemCache.value(appId, nullptr);
411− if (item) {
412− delete item;
413− }
414−
415− item = new LauncherBackendItem();
416−
417− item->displayName = details.value("name").toString();
418− item->icon = details.value("icon").toString();
419− item->count = details.value("count").toInt();
420− item->countVisible = details.value("countVisible").toBool();
421−
422− m_itemCache.insert(appId, item);
423− m_storedApps.append(appId);
424−}
425−
426−QVariantMap LauncherBackend::itemToVariant(const QString &appId) const
427−{
428− LauncherBackendItem *item = m_itemCache.value(appId);
429− QVariantMap details;
430− details.insert("id", appId);
431− details.insert("name", item->displayName);
432− details.insert("icon", item->icon);
433− details.insert("count", item->count);
434− details.insert("countVisible", item->countVisible);
435− return details;
436−}
437−
438−bool LauncherBackend::isDefaultsItem(const QList<QVariantMap> &apps) const
439−{
440− // To differentiate between an empty list and a list that hasn't been set
441− // yet (and should thus be populated with the defaults), we use a special
442− // list of one item with the 'defaults' field set to true.
443− return (apps.size() == 1 && apps[0].value("defaults").toBool());
444−}
445−
446−bool LauncherBackend::handleMessage(const QDBusMessage& message, const QDBusConnection& connection)
447−{
448− /* Check to make sure we're getting properties on our interface */
449− if (message.type() != QDBusMessage::MessageType::MethodCallMessage) {
450− return false;
451− }
452− if (message.interface() != "org.freedesktop.DBus.Properties") {
453− return false;
454− }
455− if (message.arguments()[0].toString() != "com.canonical.Unity.Launcher.Item") {
456− return false;
457− }
458−
459− /* Break down the path to just the app id */
460− QString pathtemp = message.path();
461− if (!pathtemp.startsWith("/com/canonical/Unity/Launcher/")) {
462− return false;
463− }
464− pathtemp.remove("/com/canonical/Unity/Launcher/");
465− if (pathtemp.indexOf('/') >= 0) {
466− return false;
467− }
468−
469− /* Find ourselves an appid */
470− QString appid = decodeAppId(pathtemp);
471− QVariantList retval;
472−
473− if (message.member() == "Get") {
474− if (message.arguments()[1].toString() == "count") {
475− retval.append(QVariant::fromValue(QDBusVariant(this->count(appid))));
476− } else if (message.arguments()[1].toString() == "countVisible") {
477− retval.append(QVariant::fromValue(QDBusVariant(this->countVisible(appid))));
478− }
479− } else if (message.member() == "Set") {
480− if (message.arguments()[1].toString() == "count") {
481− this->setCount(appid, message.arguments()[2].value<QDBusVariant>().variant().toInt());
482− } else if (message.arguments()[1].toString() == "countVisible") {
483− this->setCountVisible(appid, message.arguments()[2].value<QDBusVariant>().variant().toBool());
484− }
485− } else if (message.member() == "GetAll") {
486− retval.append(this->itemToVariant(appid));
487− } else {
488− return false;
489− }
490−
491− QDBusMessage reply = message.createReply(retval);
492− return connection.send(reply);
493−}
494−
495−QString LauncherBackend::introspect(const QString &path) const
496−{
497− /* This case we should just list the nodes */
498− if (path == "/com/canonical/Unity/Launcher/" || path == "/com/canonical/Unity/Launcher") {
499− QString nodes;
500−
501− Q_FOREACH(const QString &appId, m_itemCache.keys()) {
502− nodes.append("<node name=\"");
503− nodes.append(encodeAppId(appId));
504− nodes.append("\"/>\n");
505− }
506−
507− return nodes;
508− }
509−
510− /* Should not happen, but let's handle it */
511− if (!path.startsWith("/com/canonical/Unity/Launcher")) {
512− return "";
513− }
514−
515− /* Now we should be looking at a node */
516− QString nodeiface =
517− "<interface name=\"com.canonical.Unity.Launcher.Item\">"
518− "<property name=\"count\" type=\"i\" access=\"readwrite\" />"
519− "<property name=\"countVisible\" type=\"b\" access=\"readwrite\" />"
520− "</interface>";
521− return nodeiface;
522−}
523−
524−QString LauncherBackend::decodeAppId(const QString& path)
525−{
526− QByteArray bytes = path.toUtf8();
527− QByteArray decoded;
528−
529− for (int i = 0; i < bytes.size(); ++i) {
530− char chr = bytes.at(i);
531−
532− if (chr == '_') {
533− QString number;
534− number.append(bytes.at(i+1));
535− number.append(bytes.at(i+2));
536−
537− bool okay;
538− char newchar = number.toUInt(&okay, 16);
539− if (okay)
540− decoded.append(newchar);
541−
542− i += 2;
543− } else {
544− decoded.append(chr);
545− }
546− }
547−
548− return QString::fromUtf8(decoded);
549−}
550−
551−QString LauncherBackend::encodeAppId(const QString& appId)
552−{
553− QByteArray bytes = appId.toUtf8();
554− QString encoded;
555−
556− for (int i = 0; i < bytes.size(); ++i) {
557− uchar chr = bytes.at(i);
558−
559− if ((chr >= 'a' && chr <= 'z') ||
560− (chr >= 'A' && chr <= 'Z') ||
561− (chr >= '0' && chr <= '9'&& i != 0)) {
562− encoded.append(chr);
563− } else {
564− QString hexval = QString("_%1").arg(chr, 2, 16, QChar('0'));
565− encoded.append(hexval.toUpper());
566− }
567− }
568−
569− return encoded;
570−}
571−
572−void LauncherBackend::emitPropChangedDbus(const QString& appId, const QString& property, QVariant &value) const
573−{
574− QString path("/com/canonical/Unity/Launcher/");
575− path.append(encodeAppId(appId));
576−
577− QDBusMessage message = QDBusMessage::createSignal(path, "org.freedesktop.DBus.Properties", "PropertiesChanged");
578−
579− QList<QVariant> arguments;
580− QVariantHash changedprops;
581− changedprops[property] = QVariant::fromValue(QDBusVariant(value));
582− QVariantList deletedprops;
583−
584− arguments.append(changedprops);
585− arguments.append(deletedprops);
586−
587− message.setArguments(arguments);
588−
589− QDBusConnection con = QDBusConnection::sessionBus();
590− con.send(message);
591−}
plugins/Unity/Launcher/backend/launcherbackend.hdeleted−196
@@ -1,196 +0,0 @@
1−/* Copyright (C) 2013 Canonical, Ltd.
2− *
3− * Authors:
4− * Michael Zanetti <michael.zanetti@canonical.com>
5− *
6− * This program is free software; you can redistribute it and/or modify
7− * it under the terms of the GNU General Public License as published by
8− * the Free Software Foundation; version 3.
9− *
10− * This program is distributed in the hope that it will be useful,
11− * but WITHOUT ANY WARRANTY; without even the implied warranty of
12− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13− * GNU General Public License for more details.
14− *
15− * You should have received a copy of the GNU General Public License
16− * along with this program. If not, see <http://www.gnu.org/licenses/>.
17− */
18−
19−#ifndef LAUNCHERBACKEND_H
20−#define LAUNCHERBACKEND_H
21−
22−#include "common/quicklistentry.h"
23−
24−#include <QObject>
25−#include <QSettings>
26−#include <QStringList>
27−#include <QDBusVirtualObject>
28−
29−class AccountsServiceDBusAdaptor;
30−
31−/**
32− * @brief An interface that provides all the data needed by the launcher.
33− */
34−
35−class LauncherBackendItem;
36−class LauncherBackendTest;
37−
38−class LauncherBackend : public QDBusVirtualObject
39−{
40− Q_OBJECT
41−
42− friend LauncherBackendTest;
43−
44−public:
45− LauncherBackend(QObject *parent = 0);
46− virtual ~LauncherBackend();
47−
48− /**
49− * @brief Returns a list of stored applications.
50− * @returns A list of application IDs.
51− */
52− QStringList storedApplications() const;
53−
54− /**
55− * @brief Set the list of stored applications.
56− *
57− * Any previously stored information for apps not contained
58− * in the list any more, e.g. the pinned state, will be
59− * discarded.
60− *
61− * @param appIds The new list of stored applications.
62− */
63− void setStoredApplications(const QStringList &appIds);
64−
65− /**
66− * @brief Get the full path to the .desktop file.
67− *
68− * The application does not need to be in the list of stored applications.
69− *
70− * @returns The full path to the .dekstop file.
71− */
72− QString desktopFile(const QString &appId) const;
73−
74− /**
75− * @brief Get the user friendly name of an application.
76− *
77− * The application does not need to be in the list of stored applications.
78− *
79− * @param appId The ID of the application.
80− * @returns The user friendly name of the application.
81− */
82− QString displayName(const QString &appId) const;
83−
84− /**
85− * @brief Get the icon of an application.
86− *
87− * The application does not need to be in the list of stored applications.
88− *
89− * @param appId The ID of the application.
90− * @returns The full path to the icon for the application.
91− */
92− QString icon(const QString &appId) const;
93−
94− /**
95− * @brief Get the QuickList for an application.
96− * @param appId The ID of the application.
97− * @returns A QuickListModelInterface containing the QuickList.
98− */
99− QList<QuickListEntry> quickList(const QString &appId) const;
100−
101− /**
102− * @brief Execute an action from the quickList
103− * @param appId The app ID for which the action was triggered
104− * @param the quicklist ID of the action that was triggered
105− */
106− void triggerQuickListAction(const QString &appId, const QString &entryId);
107−
108− /**
109− * @brief Get the progress for the progress overlay of an application.
110− * @param appId The ID of the application.
111− * @returns The percentage of the overlay progress bar. -1 if no progress bar available.
112− */
113− int progress(const QString &appId) const;
114−
115− /**
116− * @brief Get the count of the count overlay of an application.
117− * @param appId The ID of the application.
118− * @returns The number to be displayed in the overlay. -1 if no count overlay is available.
119− */
120− int count(const QString &appId) const;
121−
122− /**
123− * @brief Set the count on an item
124− * @param appId The ID of the application
125− * @param count Count to show on the application
126− */
127− void setCount(const QString &appId, int count) const;
128−
129− /**
130− * @brief Get whether the count should be visible
131− * @param appId The ID of the application.
132− * @returns Whether to show a count on the launcher
133− */
134− bool countVisible(const QString &appId) const;
135−
136− /**
137− * @brief Set the visibility of the count item
138− * @param appId The ID of the application
139− * @param visible Whether the count should be visible
140− */
141− void setCountVisible(const QString &appId, bool visible) const;
142−
143− /**
144− * @brief Sets the username for which to look up launcher items.
145− * @param username The username to use.
146− */
147− void setUser(const QString &username);
148−
149− /**
150− * @brief Handle a message to an application node
151− * @param message DBus message to handle
152− * @param connection DBus connection that we're using
153− * @returns whether the message was handled
154− */
155− virtual bool handleMessage(const QDBusMessage& message, const QDBusConnection& connection);
156−
157− /**
158− * @brief Get introspection information on the objects we're exporting
159− * @param path the dbus path containing the appid
160− * @returns Introspection information for that node in the tree
161− */
162− virtual QString introspect (const QString &path) const;
163−
164−Q_SIGNALS:
165− void quickListChanged(const QString &appId, const QList<QuickListEntry> &quickList) const;
166− void progressChanged(const QString &appId, int progress) const;
167− void countChanged(const QString &appId, int count) const;
168− void countVisibleChanged(const QString &appId, bool visible) const;
169−
170−private:
171− QString findDesktopFile(const QString &appId) const;
172− LauncherBackendItem* parseDesktopFile(const QString &desktopFile) const;
173−
174− QVariantMap itemToVariant(const QString &appId) const;
175− void loadFromVariant(const QVariantMap &details);
176−
177− bool isDefaultsItem(const QList<QVariantMap> &apps) const;
178− void syncFromAccounts();
179− void syncToAccounts();
180−
181− QList<QString> m_storedApps;
182− mutable QHash<QString, LauncherBackendItem*> m_itemCache;
183−
184− AccountsServiceDBusAdaptor *m_accounts;
185− QString m_user;
186−
187− void emitPropChangedDbus(const QString& appId, const QString& property, QVariant &value) const;
188−
189−protected: /* Protected to allow testing */
190− LauncherBackendItem* getItem(const QString& appId) const;
191−
192− static QString decodeAppId(const QString& path);
193− static QString encodeAppId(const QString& appId);
194−};
195−
196−#endif // LAUNCHERBACKEND_H
plugins/Unity/Launcher/dbusinterface.cppnew file+232
@@ -0,0 +1,232 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Michael Zanetti <michael.zanetti@canonical.com>
18+ */
19+
20+#include "dbusinterface.h"
21+#include "launchermodel.h"
22+#include "launcheritem.h"
23+
24+#include <QDBusArgument>
25+#include <QDBusConnection>
26+#include <QDBusMessage>
27+#include <QDebug>
28+
29+DBusInterface::DBusInterface(LauncherModel *parent):
30+ QDBusVirtualObject(parent),
31+ m_launcherModel(parent)
32+{
33+ /* Set up ourselves on DBus */
34+ QDBusConnection con = QDBusConnection::sessionBus();
35+ if (!con.registerService("com.canonical.Unity.Launcher")) {
36+ qWarning() << "Unable to register launcher name";
37+ }
38+ if (!con.registerVirtualObject("/com/canonical/Unity/Launcher", this, QDBusConnection::VirtualObjectRegisterOption::SubPath)) {
39+ qWarning() << "Unable to register launcher object";
40+ }
41+}
42+
43+DBusInterface::~DBusInterface()
44+{
45+ /* Remove oursevles from DBus */
46+ QDBusConnection con = QDBusConnection::sessionBus();
47+ con.unregisterService("com.canonical.Unity.Launcher");
48+ con.unregisterObject("/com/canonical/Unity/Launcher");
49+}
50+
51+QString DBusInterface::introspect(const QString &path) const
52+{
53+ /* This case we should just list the nodes */
54+ if (path == "/com/canonical/Unity/Launcher/" || path == "/com/canonical/Unity/Launcher") {
55+ QString nodes;
56+
57+ // Add Refresh to introspect
58+ nodes = "<interface name=\"com.canonical.Unity.Launcher\">"
59+ "<method name=\"Refresh\"/>"
60+ "</interface>";
61+
62+ // Add dynamic properties for launcher emblems
63+ for (int i = 0; i < m_launcherModel->rowCount(); i++) {
64+ nodes.append("<node name=\"");
65+ nodes.append(encodeAppId(m_launcherModel->get(i)->appId()));
66+ nodes.append("\"/>\n");
67+ }
68+ return nodes;
69+ }
70+
71+ /* Should not happen, but let's handle it */
72+ if (!path.startsWith("/com/canonical/Unity/Launcher")) {
73+ return "";
74+ }
75+
76+ /* Now we should be looking at a node */
77+ QString nodeiface =
78+ "<interface name=\"com.canonical.Unity.Launcher.Item\">"
79+ "<property name=\"count\" type=\"i\" access=\"readwrite\" />"
80+ "<property name=\"countVisible\" type=\"b\" access=\"readwrite\" />"
81+ "</interface>";
82+ return nodeiface;
83+}
84+
85+
86+QString DBusInterface::decodeAppId(const QString& path)
87+{
88+ QByteArray bytes = path.toUtf8();
89+ QByteArray decoded;
90+
91+ for (int i = 0; i < bytes.size(); ++i) {
92+ char chr = bytes.at(i);
93+
94+ if (chr == '_') {
95+ QString number;
96+ number.append(bytes.at(i+1));
97+ number.append(bytes.at(i+2));
98+
99+ bool okay;
100+ char newchar = number.toUInt(&okay, 16);
101+ if (okay)
102+ decoded.append(newchar);
103+
104+ i += 2;
105+ } else {
106+ decoded.append(chr);
107+ }
108+ }
109+
110+ return QString::fromUtf8(decoded);
111+}
112+
113+QString DBusInterface::encodeAppId(const QString& appId)
114+{
115+ QByteArray bytes = appId.toUtf8();
116+ QString encoded;
117+
118+ for (int i = 0; i < bytes.size(); ++i) {
119+ uchar chr = bytes.at(i);
120+
121+ if ((chr >= 'a' && chr <= 'z') ||
122+ (chr >= 'A' && chr <= 'Z') ||
123+ (chr >= '0' && chr <= '9'&& i != 0)) {
124+ encoded.append(chr);
125+ } else {
126+ QString hexval = QString("_%1").arg(chr, 2, 16, QChar('0'));
127+ encoded.append(hexval.toUpper());
128+ }
129+ }
130+
131+ return encoded;
132+}
133+
134+bool DBusInterface::handleMessage(const QDBusMessage& message, const QDBusConnection& connection)
135+{
136+ /* Check to make sure we're getting properties on our interface */
137+ if (message.type() != QDBusMessage::MessageType::MethodCallMessage) {
138+ return false;
139+ }
140+
141+ // First handle methods of the Launcher interface
142+ if (message.interface() == "com.canonical.Unity.Launcher") {
143+ if (message.member() == "Refresh") {
144+ QDBusMessage reply = message.createReply();
145+ Q_EMIT refreshCalled();
146+ return connection.send(reply);
147+ }
148+ }
149+
150+ // Now handle dynamic properties (for launcher emblems)
151+ if (message.interface() != "org.freedesktop.DBus.Properties") {
152+ return false;
153+ }
154+
155+ if (message.member() != "GetAll" && message.arguments()[0].toString() != "com.canonical.Unity.Launcher.Item") {
156+ return false;
157+ }
158+
159+ /* Break down the path to just the app id */
160+ QString pathtemp = message.path();
161+ if (!pathtemp.startsWith("/com/canonical/Unity/Launcher/")) {
162+ return false;
163+ }
164+ pathtemp.remove("/com/canonical/Unity/Launcher/");
165+ if (pathtemp.indexOf('/') >= 0) {
166+ return false;
167+ }
168+
169+ /* Find ourselves an appid */
170+ QString appid = decodeAppId(pathtemp);
171+ int index = m_launcherModel->findApplication(appid);
172+ LauncherItem *item = static_cast<LauncherItem*>(m_launcherModel->get(index));
173+
174+ QVariantList retval;
175+ if (message.member() == "Get") {
176+ if (!item) {
177+ return false;
178+ }
179+ if (message.arguments()[1].toString() == "count") {
180+ retval.append(QVariant::fromValue(QDBusVariant(item->count())));
181+ } else if (message.arguments()[1].toString() == "countVisible") {
182+ retval.append(QVariant::fromValue(QDBusVariant(item->countVisible())));
183+ }
184+ } else if (message.member() == "Set") {
185+ if (message.arguments()[1].toString() == "count") {
186+ int newCount = message.arguments()[2].toInt();
187+ if (!item || newCount != item->count()) {
188+ Q_EMIT countChanged(appid, newCount);
189+ emitPropChangedDbus(appid, "count", QVariant(newCount));
190+ }
191+ } else if (message.arguments()[1].toString() == "countVisible") {
192+ bool newVisible = message.arguments()[2].toBool();
193+ if (!item || newVisible != item->countVisible()) {
194+ Q_EMIT countVisibleChanged(appid, newVisible);
195+ emitPropChangedDbus(appid, "countVisible", newVisible);
196+ }
197+ }
198+ } else if (message.member() == "GetAll") {
199+ if (item) {
200+ QVariantMap all;
201+ all.insert("count", item->count());
202+ all.insert("countVisible", item->countVisible());
203+ retval.append(all);
204+ }
205+ } else {
206+ return false;
207+ }
208+
209+ QDBusMessage reply = message.createReply(retval);
210+ return connection.send(reply);
211+}
212+
213+void DBusInterface::emitPropChangedDbus(const QString& appId, const QString& property, const QVariant &value)
214+{
215+ QString path("/com/canonical/Unity/Launcher/");
216+ path.append(encodeAppId(appId));
217+
218+ QDBusMessage message = QDBusMessage::createSignal(path, "org.freedesktop.DBus.Properties", "PropertiesChanged");
219+
220+ QList<QVariant> arguments;
221+ QVariantHash changedprops;
222+ changedprops[property] = QVariant::fromValue(QDBusVariant(value));
223+ QVariantList deletedprops;
224+
225+ arguments.append(changedprops);
226+ arguments.append(deletedprops);
227+
228+ message.setArguments(arguments);
229+
230+ QDBusConnection con = QDBusConnection::sessionBus();
231+ con.send(message);
232+}
plugins/Unity/Launcher/dbusinterface.hnew file+50
@@ -0,0 +1,50 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Michael Zanetti <michael.zanetti@canonical.com>
18+ */
19+
20+#include "launcheritem.h"
21+
22+#include <QDBusVirtualObject>
23+
24+class LauncherModel;
25+
26+class DBusInterface: public QDBusVirtualObject
27+{
28+ Q_OBJECT
29+public:
30+ DBusInterface(LauncherModel *parent);
31+ ~DBusInterface();
32+
33+ // QDBusVirtualObject implementaition
34+ QString introspect (const QString &path) const override;
35+ bool handleMessage(const QDBusMessage& message, const QDBusConnection& connection) override;
36+
37+Q_SIGNALS:
38+ void countChanged(const QString &appId, int count);
39+ void countVisibleChanged(const QString &appId, bool countVisible);
40+ void refreshCalled();
41+
42+private:
43+ static QString decodeAppId(const QString& path);
44+ static QString encodeAppId(const QString& appId);
45+
46+ void emitPropChangedDbus(const QString& appId, const QString& property, const QVariant &value);
47+
48+ LauncherModel *m_launcherModel;
49+
50+};
plugins/Unity/Launcher/desktopfilehandler.cppnew file+151
@@ -0,0 +1,151 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Michael Zanetti <michael.zanetti@canonical.com>
18+ */
19+
20+#include "desktopfilehandler.h"
21+
22+#include <QStringList>
23+#include <QStandardPaths>
24+#include <QDir>
25+#include <QSettings>
26+#include <QLocale>
27+
28+#include <libintl.h>
29+
30+DesktopFileHandler::DesktopFileHandler(const QString &appId, QObject *parent):
31+ QObject(parent),
32+ m_appId(appId)
33+{
34+ load();
35+}
36+
37+QString DesktopFileHandler::appId() const
38+{
39+ return m_appId;
40+}
41+
42+void DesktopFileHandler::setAppId(const QString &appId)
43+{
44+ if (m_appId != appId) {
45+ m_appId = appId;
46+ load();
47+ }
48+}
49+
50+QString DesktopFileHandler::filename() const
51+{
52+ return m_filename;
53+}
54+
55+bool DesktopFileHandler::isValid() const
56+{
57+ return !m_filename.isEmpty();
58+}
59+
60+void DesktopFileHandler::load()
61+{
62+ m_filename.clear();
63+
64+ if (m_appId.isEmpty()) {
65+ return;
66+ }
67+
68+ int dashPos = -1;
69+ QString helper = m_appId;
70+
71+ QStringList searchDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
72+#ifdef LAUNCHER_TESTING
73+ searchDirs << "";
74+#endif
75+
76+ QString path;
77+ do {
78+ if (dashPos != -1) {
79+ helper.replace(dashPos, 1, '/');
80+ }
81+
82+ if (helper.contains("/")) {
83+ path += helper.split('/').first() + '/';
84+ helper.remove(QRegExp("^" + path));
85+ }
86+
87+ Q_FOREACH(const QString &searchDirName, searchDirs) {
88+ QDir searchDir(searchDirName + "/" + path);
89+ Q_FOREACH(const QString &desktopFile, searchDir.entryList(QStringList() << "*.desktop")) {
90+ if (desktopFile.startsWith(helper)) {
91+ QFileInfo fileInfo(searchDir, desktopFile);
92+ m_filename = fileInfo.absoluteFilePath();
93+ return;
94+ }
95+ }
96+ }
97+
98+ dashPos = helper.indexOf("-");
99+ } while (dashPos != -1);
100+}
101+
102+QString DesktopFileHandler::displayName() const
103+{
104+ if (!isValid()) {
105+ return QString();
106+ }
107+
108+ QSettings settings(m_filename, QSettings::IniFormat);
109+ settings.beginGroup("Desktop Entry");
110+
111+ // First try to find Name[xx_YY] and Name[xx] in .desktop file
112+ QString locale = QLocale::system().name();
113+ QString shortLocale = locale.split('_').first();
114+
115+ if (locale != shortLocale && settings.contains(QString("Name[%1]").arg(locale))) {
116+ return settings.value(QString("Name[%1]").arg(locale)).toString();
117+ }
118+
119+ if (settings.contains(QString("Name[%1]").arg(shortLocale))) {
120+ return settings.value(QString("Name[%1]").arg(shortLocale)).toString();
121+ }
122+
123+ // No translation found in desktop file. Get the untranslated one and have a go with gettext.
124+ QString displayName = settings.value("Name").toString();
125+
126+ if (settings.contains("X-Ubuntu-Gettext-Domain")) {
127+ const QString domain = settings.value("X-Ubuntu-Gettext-Domain").toString();
128+ return dgettext(domain.toUtf8().constData(), displayName.toUtf8().constData());
129+ }
130+
131+ return displayName;
132+}
133+
134+QString DesktopFileHandler::icon() const
135+{
136+ if (!isValid()) {
137+ return QString();
138+ }
139+
140+ QSettings settings(m_filename, QSettings::IniFormat);
141+ settings.beginGroup("Desktop Entry");
142+ QString iconString = settings.value("Icon").toString();
143+ QString pathString = settings.value("Path").toString();
144+
145+ if (QFileInfo(iconString).exists()) {
146+ return QFileInfo(iconString).absoluteFilePath();
147+ } else if (QFileInfo(pathString + '/' + iconString).exists()) {
148+ return pathString + '/' + iconString;
149+ }
150+ return "image://theme/" + iconString;
151+}
plugins/Unity/Launcher/desktopfilehandler.hnew file+56
@@ -0,0 +1,56 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Michael Zanetti <michael.zanetti@canonical.com>
18+ */
19+
20+#ifndef DESKTOPFILEHANDLER_H
21+#define DESKTOPFILEHANDLER_H
22+
23+#include <QObject>
24+
25+/**
26+ * When an object of this class is created or whenever setAppId(appId) is called,
27+ * this will search for a .desktop file matching the give appId. If a file is
28+ * found, isValid() will return true and the other methods return the contents
29+ * of the .desktop file.
30+ *
31+ * Note that this class will consider the user's locale and do a best effort
32+ * to return localized values.
33+ */
34+
35+class DesktopFileHandler: public QObject
36+{
37+ Q_OBJECT
38+public:
39+ DesktopFileHandler(const QString &appId = QString(), QObject *parent = nullptr);
40+
41+ QString appId() const;
42+ void setAppId(const QString &appId);
43+
44+ bool isValid() const;
45+ QString filename() const;
46+ QString displayName() const;
47+ QString icon() const;
48+
49+private:
50+ void load();
51+
52+ QString m_appId;
53+ QString m_filename;
54+};
55+
56+#endif
plugins/Unity/Launcher/gsettings.cppnew file+66
@@ -0,0 +1,66 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Michael Zanetti <michael.zanetti@canonical.com>
18+ */
19+
20+#include "gsettings.h"
21+
22+#include <QGSettings>
23+#include <QVariant>
24+
25+GSettings::GSettings(QObject *parent):
26+ QObject(parent)
27+{
28+
29+}
30+
31+QStringList GSettings::storedApplications() const
32+{
33+ QStringList storedApps;
34+
35+ QGSettings gSettings("com.canonical.Unity.Launcher", "/com/canonical/unity/launcher/");
36+
37+ Q_FOREACH(const QString &entry, gSettings.get("items").toStringList()) {
38+ if (entry.startsWith("application:///")) {
39+ // convert legacy entries to new world appids
40+ QString appId = entry;
41+ // Transform "application://foobar.desktop" to "foobar"
42+ appId.remove(QRegExp("^application:///"));
43+ appId.remove(QRegExp(".desktop$"));
44+ storedApps << appId;
45+ } else if (entry.startsWith("appid://")) {
46+ QString appId = entry;
47+ appId.remove("appid://");
48+ if (appId.split('/').count() == 3) {
49+ // Strip current-user-version in case its there
50+ appId = appId.split('/').first() + "_" + appId.split('/').at(1);
51+ }
52+ storedApps << appId;
53+ }
54+ }
55+ return storedApps;
56+}
57+
58+void GSettings::setStoredApplications(const QStringList &storedApplications)
59+{
60+ QGSettings gSettings("com.canonical.Unity.Launcher", "/com/canonical/unity/launcher/");
61+ QStringList gSettingsList;
62+ Q_FOREACH(const QString &entry, storedApplications) {
63+ gSettingsList << QString("appid://%1").arg(entry);
64+ }
65+ gSettings.set("items", gSettingsList);
66+}
plugins/Unity/Launcher/gsettings.hnew file+37
@@ -0,0 +1,37 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Michael Zanetti <michael.zanetti@canonical.com>
18+ */
19+
20+#ifndef GSETTINGS_H
21+#define GSETTINGS_H
22+
23+#include <QObject>
24+#include <QStringList>
25+
26+
27+class GSettings: public QObject
28+{
29+ Q_OBJECT
30+public:
31+ GSettings(QObject *parent = nullptr);
32+
33+ QStringList storedApplications() const;
34+ void setStoredApplications(const QStringList &storedApplications);
35+};
36+
37+#endif
plugins/Unity/Launcher/launcheritem.cpp+30
@@ -32,6 +32,7 @@ LauncherItem::LauncherItem(const QString &appId, const QString &name, const QStr
32 m_recent(false),
32 m_recent(false),
33 m_progress(-1),
33 m_progress(-1),
34 m_count(0),
34 m_count(0),
35+ m_countVisible(false),
35 m_focused(false),
36 m_focused(false),
36 m_quickList(new QuickListModel(this))
37 m_quickList(new QuickListModel(this))
37{
38{
@@ -55,11 +56,27 @@ QString LauncherItem::name() const
55 return m_name;
56 return m_name;
56}
57}
57
58
59+void LauncherItem::setName(const QString &name)
60+{
61+ if (m_name != name) {
62+ m_name = name;
63+ Q_EMIT nameChanged(name);
64+ }
65+}
66+
58QString LauncherItem::icon() const
67QString LauncherItem::icon() const
59{
68{
60 return m_icon;
69 return m_icon;
61}
70}
62
71
72+void LauncherItem::setIcon(const QString &icon)
73+{
74+ if (m_icon != icon) {
75+ m_icon = icon;
76+ Q_EMIT iconChanged(icon);
77+ }
78+}
79+
63bool LauncherItem::pinned() const
80bool LauncherItem::pinned() const
64{
81{
65 return m_pinned;
82 return m_pinned;
@@ -129,6 +146,19 @@ void LauncherItem::setCount(int count)
129 }
146 }
130}
147}
131
148
149+bool LauncherItem::countVisible() const
150+{
151+ return m_countVisible;
152+}
153+
154+void LauncherItem::setCountVisible(bool countVisible)
155+{
156+ if (m_countVisible != countVisible) {
157+ m_countVisible = countVisible;
158+ Q_EMIT countVisibleChanged(countVisible);
159+ }
160+}
161+
132bool LauncherItem::focused() const
162bool LauncherItem::focused() const
133{
163{
134 return m_focused;
164 return m_focused;
plugins/Unity/Launcher/launcheritem.h+19−20
@@ -34,34 +34,30 @@ class LauncherItem: public LauncherItemInterface
34public:
34public:
35 LauncherItem(const QString &appId, const QString &name, const QString &icon, QObject *parent = 0);
35 LauncherItem(const QString &appId, const QString &name, const QString &icon, QObject *parent = 0);
36
36
37− QString appId() const;
37+ QString appId() const override;
38− QString name() const;
38+ QString name() const override;
39− QString icon() const;
39+ QString icon() const override;
40+ bool pinned() const override;
41+ bool running() const override;
42+ bool recent() const override;
43+ int progress() const override;
44+ int count() const override;
45+ bool countVisible() const override;
46+ bool focused() const override;
47+
48+ unity::shell::launcher::QuickListModelInterface *quickList() const override;
40
49
41− bool pinned() const;
50+private:
51+ void setName(const QString &name);
52+ void setIcon(const QString &icon);
42 void setPinned(bool pinned);
53 void setPinned(bool pinned);
43−
44− bool running() const;
45 void setRunning(bool running);
54 void setRunning(bool running);
46−
47− bool recent() const;
48 void setRecent(bool recent);
55 void setRecent(bool recent);
49−
50− int progress() const;
51 void setProgress(int progress);
56 void setProgress(int progress);
52−
53− int count() const;
54 void setCount(int count);
57 void setCount(int count);
55−
58+ void setCountVisible(bool countVisible);
56− bool focused() const;
57 void setFocused(bool focused);
59 void setFocused(bool focused);
58
60
59− unity::shell::launcher::QuickListModelInterface *quickList() const;
60−
61−Q_SIGNALS:
62− void favoriteChanged(bool favorite);
63− void runningChanged(bool running);
64−
65private:
61private:
66 QString m_appId;
62 QString m_appId;
67 QString m_name;
63 QString m_name;
@@ -71,8 +67,11 @@ private:
71 bool m_recent;
67 bool m_recent;
72 int m_progress;
68 int m_progress;
73 int m_count;
69 int m_count;
70+ bool m_countVisible;
74 bool m_focused;
71 bool m_focused;
75 QuickListModel *m_quickList;
72 QuickListModel *m_quickList;
73+
74+ friend class LauncherModel;
76};
75};
77
76
78#endif // LAUNCHERITEM_H
77#endif // LAUNCHERITEM_H
plugins/Unity/Launcher/launchermodel.cpp+85−15
@@ -19,7 +19,9 @@
19
19
20#include "launchermodel.h"
20#include "launchermodel.h"
21#include "launcheritem.h"
21#include "launcheritem.h"
22−#include "backend/launcherbackend.h"
22+#include "gsettings.h"
23+#include "desktopfilehandler.h"
24+#include "dbusinterface.h"
23
25
24#include <unity/shell/application/ApplicationInfoInterface.h>
26#include <unity/shell/application/ApplicationInfoInterface.h>
25
27
@@ -30,16 +32,24 @@ using namespace unity::shell::application;
30
32
31LauncherModel::LauncherModel(QObject *parent):
33LauncherModel::LauncherModel(QObject *parent):
32 LauncherModelInterface(parent),
34 LauncherModelInterface(parent),
33− m_backend(new LauncherBackend(this)),
35+ m_settings(new GSettings(this)),
36+ m_dbusIface(new DBusInterface(this)),
34 m_appManager(0)
37 m_appManager(0)
35{
38{
36− connect(m_backend, SIGNAL(countChanged(QString,int)), SLOT(countChanged(QString,int)));
39+ connect(m_dbusIface, &DBusInterface::countChanged, this, &LauncherModel::countChanged);
37− connect(m_backend, SIGNAL(progressChanged(QString,int)), SLOT(progressChanged(QString,int)));
40+ connect(m_dbusIface, &DBusInterface::countVisibleChanged, this, &LauncherModel::countVisibleChanged);
41+ connect(m_dbusIface, &DBusInterface::refreshCalled, this, &LauncherModel::refresh);
42+
43+ Q_FOREACH (const QString &entry, m_settings->storedApplications()) {
44+ DesktopFileHandler desktopFile(entry);
45+ if (!desktopFile.isValid()) {
46+ qWarning() << "Couldn't find a .desktop file for" << entry << ". Skipping...";
47+ continue;
48+ }
38
49
39− Q_FOREACH (const QString &entry, m_backend->storedApplications()) {
40 LauncherItem *item = new LauncherItem(entry,
50 LauncherItem *item = new LauncherItem(entry,
41− m_backend->displayName(entry),
51+ desktopFile.displayName(),
42− m_backend->icon(entry),
52+ desktopFile.icon(),
43 this);
53 this);
44 item->setPinned(true);
54 item->setPinned(true);
45 m_list.append(item);
55 m_list.append(item);
@@ -73,6 +83,8 @@ QVariant LauncherModel::data(const QModelIndex &index, int role) const
73 return item->pinned();
83 return item->pinned();
74 case RoleCount:
84 case RoleCount:
75 return item->count();
85 return item->count();
86+ case RoleCountVisible:
87+ return item->countVisible();
76 case RoleProgress:
88 case RoleProgress:
77 return item->progress();
89 return item->progress();
78 case RoleFocused:
90 case RoleFocused:
@@ -139,10 +151,17 @@ void LauncherModel::pin(const QString &appId, int index)
139 if (index == -1) {
151 if (index == -1) {
140 index = m_list.count();
152 index = m_list.count();
141 }
153 }
154+
155+ DesktopFileHandler desktopFile(appId);
156+ if (!desktopFile.isValid()) {
157+ qWarning() << "Can't pin this application, there is no .destkop file available.";
158+ return;
159+ }
160+
142 beginInsertRows(QModelIndex(), index, index);
161 beginInsertRows(QModelIndex(), index, index);
143 LauncherItem *item = new LauncherItem(appId,
162 LauncherItem *item = new LauncherItem(appId,
144− m_backend->displayName(appId),
163+ desktopFile.displayName(),
145− m_backend->icon(appId),
164+ desktopFile.icon(),
146 this);
165 this);
147 item->setPinned(true);
166 item->setPinned(true);
148 m_list.insert(index, item);
167 m_list.insert(index, item);
@@ -197,25 +216,27 @@ void LauncherModel::quickListActionInvoked(const QString &appId, int actionIndex
197
216
198 // Nope, we don't know this action, let the backend forward it to the application
217 // Nope, we don't know this action, let the backend forward it to the application
199 } else {
218 } else {
200− m_backend->triggerQuickListAction(appId, actionId);
219+ // TODO: forward quicklist action to app, possibly via m_dbusIface
201 }
220 }
202 }
221 }
203}
222}
204
223
205void LauncherModel::setUser(const QString &username)
224void LauncherModel::setUser(const QString &username)
206{
225{
207− m_backend->setUser(username);
226+ Q_UNUSED(username)
227+ qWarning() << "This backend doesn't support multiple users";
208}
228}
209
229
210QString LauncherModel::getUrlForAppId(const QString &appId) const
230QString LauncherModel::getUrlForAppId(const QString &appId) const
211{
231{
212 // appId is either an appId or a legacy app name. Let's find out which
232 // appId is either an appId or a legacy app name. Let's find out which
213− if (appId.isEmpty())
233+ if (appId.isEmpty()) {
214 return QString();
234 return QString();
235+ }
215
236
216− QString df = m_backend->desktopFile(appId + ".desktop");
237+ if (!appId.contains("_")) {
217− if (!df.isEmpty())
218 return "application:///" + appId + ".desktop";
238 return "application:///" + appId + ".desktop";
239+ }
219
240
220 QStringList parts = appId.split('_');
241 QStringList parts = appId.split('_');
221 QString package = parts.value(0);
242 QString package = parts.value(0);
@@ -275,7 +296,7 @@ void LauncherModel::storeAppList()
275 appIds << item->appId();
296 appIds << item->appId();
276 }
297 }
277 }
298 }
278− m_backend->setStoredApplications(appIds);
299+ m_settings->setStoredApplications(appIds);
279}
300}
280
301
281int LauncherModel::findApplication(const QString &appId)
302int LauncherModel::findApplication(const QString &appId)
@@ -310,6 +331,55 @@ void LauncherModel::countChanged(const QString &appId, int count)
310 }
331 }
311}
332}
312
333
334+void LauncherModel::countVisibleChanged(const QString &appId, int countVisible)
335+{
336+ int idx = findApplication(appId);
337+ if (idx >= 0) {
338+ LauncherItem *item = m_list.at(idx);
339+ item->setCountVisible(countVisible);
340+ Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleCountVisible);
341+
342+ // If countVisible goes to false, and the item is neither pinned nor recent we can drop it
343+ if (!countVisible && !item->pinned() && !item->recent()) {
344+ beginRemoveRows(QModelIndex(), idx, idx);
345+ m_list.takeAt(idx)->deleteLater();
346+ endRemoveRows();
347+ }
348+ } else {
349+ // Need to create a new LauncherItem and show the highlight
350+ DesktopFileHandler desktopFile(appId);
351+ if (countVisible && desktopFile.isValid()) {
352+ LauncherItem *item = new LauncherItem(appId,
353+ desktopFile.displayName(),
354+ desktopFile.icon());
355+ item->setCountVisible(true);
356+ beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
357+ m_list.append(item);
358+ endInsertRows();
359+ }
360+ }
361+}
362+
363+void LauncherModel::refresh()
364+{
365+ QList<LauncherItem*> toBeRemoved;
366+ Q_FOREACH (LauncherItem* item, m_list) {
367+ DesktopFileHandler desktopFile(item->appId());
368+ if (!desktopFile.isValid()) {
369+ toBeRemoved << item;
370+ } else {
371+ int idx = m_list.indexOf(item);
372+ item->setName(desktopFile.displayName());
373+ item->setIcon(desktopFile.icon());
374+ Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleName << RoleIcon);
375+ }
376+ }
377+
378+ Q_FOREACH (LauncherItem* item, toBeRemoved) {
379+ requestRemove(item->appId());
380+ }
381+}
382+
313void LauncherModel::applicationAdded(const QModelIndex &parent, int row)
383void LauncherModel::applicationAdded(const QModelIndex &parent, int row)
314{
384{
315 Q_UNUSED(parent);
385 Q_UNUSED(parent);
plugins/Unity/Launcher/launchermodel.h+15−8
@@ -20,15 +20,14 @@
20#ifndef LAUNCHERMODEL_H
20#ifndef LAUNCHERMODEL_H
21#define LAUNCHERMODEL_H
21#define LAUNCHERMODEL_H
22
22
23−// unity-api
24#include <unity/shell/launcher/LauncherModelInterface.h>
23#include <unity/shell/launcher/LauncherModelInterface.h>
25#include <unity/shell/application/ApplicationManagerInterface.h>
24#include <unity/shell/application/ApplicationManagerInterface.h>
26
25
27−// Qt
28#include <QAbstractListModel>
26#include <QAbstractListModel>
29
27
30class LauncherItem;
28class LauncherItem;
31−class LauncherBackend;
29+class GSettings;
30+class DBusInterface;
32
31
33using namespace unity::shell::launcher;
32using namespace unity::shell::launcher;
34using namespace unity::shell::application;
33using namespace unity::shell::application;
@@ -41,14 +40,13 @@ public:
41 LauncherModel(QObject *parent = 0);
40 LauncherModel(QObject *parent = 0);
42 ~LauncherModel();
41 ~LauncherModel();
43
42
44− int rowCount(const QModelIndex &parent) const;
43+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
45
44
46 QVariant data(const QModelIndex &index, int role) const;
45 QVariant data(const QModelIndex &index, int role) const;
47
46
48 Q_INVOKABLE unity::shell::launcher::LauncherItemInterface* get(int index) const;
47 Q_INVOKABLE unity::shell::launcher::LauncherItemInterface* get(int index) const;
49 Q_INVOKABLE void move(int oldIndex, int newIndex);
48 Q_INVOKABLE void move(int oldIndex, int newIndex);
50 Q_INVOKABLE void pin(const QString &appId, int index = -1);
49 Q_INVOKABLE void pin(const QString &appId, int index = -1);
51− Q_INVOKABLE void requestRemove(const QString &appId);
52 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
50 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
53 Q_INVOKABLE void setUser(const QString &username);
51 Q_INVOKABLE void setUser(const QString &username);
54 Q_INVOKABLE QString getUrlForAppId(const QString &appId) const;
52 Q_INVOKABLE QString getUrlForAppId(const QString &appId) const;
@@ -56,13 +54,19 @@ public:
56 unity::shell::application::ApplicationManagerInterface* applicationManager() const;
54 unity::shell::application::ApplicationManagerInterface* applicationManager() const;
57 void setApplicationManager(unity::shell::application::ApplicationManagerInterface *appManager);
55 void setApplicationManager(unity::shell::application::ApplicationManagerInterface *appManager);
58
56
57+ int findApplication(const QString &appId);
58+
59+public Q_SLOTS:
60+ void requestRemove(const QString &appId);
61+
59private:
62private:
60 void storeAppList();
63 void storeAppList();
61− int findApplication(const QString &appId);
62
64
63private Q_SLOTS:
65private Q_SLOTS:
64− void progressChanged(const QString &appId, int progress);
65 void countChanged(const QString &appId, int count);
66 void countChanged(const QString &appId, int count);
67+ void countVisibleChanged(const QString &appId, int count);
68+ void progressChanged(const QString &appId, int progress);
69+ void refresh();
66
70
67 void applicationAdded(const QModelIndex &parent, int row);
71 void applicationAdded(const QModelIndex &parent, int row);
68 void applicationRemoved(const QModelIndex &parent, int row);
72 void applicationRemoved(const QModelIndex &parent, int row);
@@ -70,7 +74,10 @@ private Q_SLOTS:
70
74
71private:
75private:
72 QList<LauncherItem*> m_list;
76 QList<LauncherItem*> m_list;
73− LauncherBackend *m_backend;
77+
78+ GSettings *m_settings;
79+ DBusInterface *m_dbusIface;
80+
74 ApplicationManagerInterface *m_appManager;
81 ApplicationManagerInterface *m_appManager;
75};
82};
76
83
plugins/Unity/Launcher/common/quicklistentry.cpp → plugins/Unity/Launcher/quicklistentry.cpprenamed

The content is the same.

plugins/Unity/Launcher/common/quicklistentry.h → plugins/Unity/Launcher/quicklistentry.hrenamed

The content is the same.

plugins/Unity/Launcher/quicklistmodel.h+1−1
@@ -20,7 +20,7 @@
20#ifndef QUICKLISTMODEL_H
20#ifndef QUICKLISTMODEL_H
21#define QUICKLISTMODEL_H
21#define QUICKLISTMODEL_H
22
22
23−#include "common/quicklistentry.h"
23+#include "quicklistentry.h"
24
24
25#include <unity/shell/launcher/QuickListModelInterface.h>
25#include <unity/shell/launcher/QuickListModelInterface.h>
26
26
plugins/Unity/Session/CMakeLists.txt+7
@@ -1,10 +1,16 @@
1+include(FindPkgConfig)
2+
3+pkg_search_module(GIO REQUIRED gio-2.0)
4+
1include_directories(
5include_directories(
2 ${CMAKE_CURRENT_SOURCE_DIR}
6 ${CMAKE_CURRENT_SOURCE_DIR}
7+ ${GIO_INCLUDE_DIRS}
3)
8)
4
9
5set(QMLSESSIONPLUGIN_SRC
10set(QMLSESSIONPLUGIN_SRC
6 plugin.cpp
11 plugin.cpp
7 dbusunitysessionservice.cpp
12 dbusunitysessionservice.cpp
13+ orientationlock.cpp
8 )
14 )
9
15
10add_library(UnitySession-qml MODULE
16add_library(UnitySession-qml MODULE
@@ -12,6 +18,7 @@ add_library(UnitySession-qml MODULE
12 )
18 )
13
19
14qt5_use_modules(UnitySession-qml DBus Qml)
20qt5_use_modules(UnitySession-qml DBus Qml)
21+target_link_libraries(UnitySession-qml ${GIO_LDFLAGS})
15
22
16# export the qmldir and qmltypes files
23# export the qmldir and qmltypes files
17add_unity8_plugin(Unity.Session 0.1 Unity/Session TARGETS UnitySession-qml)
24add_unity8_plugin(Unity.Session 0.1 Unity/Session TARGETS UnitySession-qml)
plugins/Unity/Session/orientationlock.cppnew file+74
@@ -0,0 +1,74 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it under
5+ * the terms of the GNU Lesser General Public License version 3, as published by
6+ * the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but WITHOUT
9+ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10+ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11+ * Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "orientationlock.h"
18+
19+#include <QDBusConnection>
20+#include <QDBusInterface>
21+
22+OrientationLock::OrientationLock(QObject *parent)
23+ : QObject(parent)
24+ , m_enabled(false)
25+ , m_savedOrientation(Qt::PortraitOrientation)
26+{
27+ systemSettings = g_settings_new("com.ubuntu.touch.system");
28+ g_signal_connect(systemSettings, "changed::rotation-lock",
29+ G_CALLBACK(OrientationLock::onEnabledChangedProxy), this);
30+ m_enabled = g_settings_get_boolean(systemSettings, "rotation-lock");
31+}
32+
33+OrientationLock::~OrientationLock()
34+{
35+ g_signal_handlers_disconnect_by_data(systemSettings, this);
36+ g_object_unref(systemSettings);
37+}
38+
39+bool OrientationLock::enabled() const
40+{
41+ return m_enabled;
42+}
43+
44+Qt::ScreenOrientation OrientationLock::savedOrientation() const
45+{
46+ return m_savedOrientation;
47+}
48+
49+void OrientationLock::onEnabledChangedProxy(GSettings */*settings*/, const gchar */*key*/, gpointer data)
50+{
51+ OrientationLock* _this = static_cast<OrientationLock*>(data);
52+ _this->onEnabledChanged();
53+}
54+
55+void OrientationLock::onEnabledChanged()
56+{
57+ const bool enabled = g_settings_get_boolean(systemSettings, "rotation-lock");
58+ if (m_enabled != enabled) {
59+ m_enabled = enabled;
60+ Q_EMIT enabledChanged();
61+ }
62+}
63+
64+void OrientationLock::setSavedOrientation(const Qt::ScreenOrientation orientation)
65+{
66+ if (orientation == m_savedOrientation) {
67+ return;
68+ }
69+
70+ m_savedOrientation = orientation;
71+
72+ //TODO - save value with dbus to persist over sessions
73+ Q_EMIT savedOrientationChanged();
74+}
plugins/Unity/Session/orientationlock.hnew file+62
@@ -0,0 +1,62 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it under
5+ * the terms of the GNU Lesser General Public License version 3, as published by
6+ * the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but WITHOUT
9+ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10+ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11+ * Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef ORIENTATIONLOCK_H
18+#define ORIENTATIONLOCK_H
19+
20+#include <gio/gio.h>
21+#include <QtCore/QObject>
22+#include <QtDBus/QDBusInterface>
23+
24+/**
25+ * @brief The OrientationLock class exports orientation lock related properties to QML
26+ * It has two properties:
27+ * - readonly boolean with the Orientation lock property state
28+ * - Qt::ScreenOrientation to save the locked orientation state across Sessions (only relevant if lock is true)
29+ */
30+class OrientationLock : public QObject
31+{
32+ Q_OBJECT
33+
34+ Q_PROPERTY(bool enabled READ enabled NOTIFY enabledChanged)
35+ Q_PROPERTY(Qt::ScreenOrientation savedOrientation READ savedOrientation WRITE setSavedOrientation
36+ NOTIFY savedOrientationChanged)
37+
38+public:
39+ explicit OrientationLock(QObject *parent = 0);
40+ ~OrientationLock();
41+
42+ bool enabled() const;
43+ Qt::ScreenOrientation savedOrientation() const;
44+ void setSavedOrientation(const Qt::ScreenOrientation orientation);
45+
46+Q_SIGNALS:
47+ void enabledChanged();
48+ void savedOrientationChanged();
49+
50+private Q_SLOTS:
51+ static void onEnabledChangedProxy(GSettings *settings, const gchar *key, gpointer data);
52+ void onEnabledChanged();
53+
54+private:
55+ QDBusInterface *dbusInterface;
56+ GSettings *systemSettings;
57+
58+ bool m_enabled;
59+ Qt::ScreenOrientation m_savedOrientation;
60+};
61+
62+#endif // ORIENTATIONLOCK_H
plugins/Unity/Session/plugin.cpp+8−4
@@ -18,23 +18,27 @@
18
18
19#include "plugin.h"
19#include "plugin.h"
20#include "dbusunitysessionservice.h"
20#include "dbusunitysessionservice.h"
21+#include "orientationlock.h"
21
22
22#include <QAbstractItemModel>
23#include <QAbstractItemModel>
23#include <QDBusConnection>
24#include <QDBusConnection>
24#include <QtQml/qqml.h>
25#include <QtQml/qqml.h>
25
26
26−static QObject *dbusunitysessionservice_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
27+static QObject *dbusunitysessionservice_provider(QQmlEngine */*engine*/, QJSEngine */*jsEngine*/)
27{
28{
28− Q_UNUSED(engine)
29− Q_UNUSED(scriptEngine)
30−
31 return new DBusUnitySessionService();
29 return new DBusUnitySessionService();
32}
30}
33
31
32+static QObject *orientationlock_provider(QQmlEngine */*engine*/, QJSEngine */*jsEngine*/)
33+{
34+ return new OrientationLock();
35+}
36+
34void SessionPlugin::registerTypes(const char *uri)
37void SessionPlugin::registerTypes(const char *uri)
35{
38{
36 qmlRegisterType<QAbstractItemModel>();
39 qmlRegisterType<QAbstractItemModel>();
37
40
38 Q_ASSERT(uri == QLatin1String("Unity.Session"));
41 Q_ASSERT(uri == QLatin1String("Unity.Session"));
39 qmlRegisterSingletonType<DBusUnitySessionService>(uri, 0, 1, "DBusUnitySessionService", dbusunitysessionservice_provider);
42 qmlRegisterSingletonType<DBusUnitySessionService>(uri, 0, 1, "DBusUnitySessionService", dbusunitysessionservice_provider);
43+ qmlRegisterSingletonType<OrientationLock>(uri, 0, 1, "OrientationLock", orientationlock_provider);
40}
44}
plugins/Utils/windowkeysfilter.cpp+1
@@ -31,6 +31,7 @@ bool WindowKeysFilter::eventFilter(QObject *watched, QEvent *event)
31{
31{
32 Q_ASSERT(!m_filteredWindow.isNull());
32 Q_ASSERT(!m_filteredWindow.isNull());
33 Q_ASSERT(watched == static_cast<QObject*>(m_filteredWindow.data()));
33 Q_ASSERT(watched == static_cast<QObject*>(m_filteredWindow.data()));
34+ Q_UNUSED(watched);
34
35
35 if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) {
36 if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) {
36 // Let QML see this event and decide if it does not want it
37 // Let QML see this event and decide if it does not want it
po/am.po+7−3
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-09-02 01:51+0000\n"
11+"PO-Revision-Date: 2014-09-20 13:57+0000\n"
12"Last-Translator: samson <Unknown>\n"
12"Last-Translator: samson <Unknown>\n"
13"Language-Team: Amharic <am@li.org>\n"
13"Language-Team: Amharic <am@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-03 07:05+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-21 06:25+0000\n"
18"X-Generator: Launchpad (build 17196)\n"
18"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "ማጥፊያ"
81msgstr "ማጥፊያ"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "እንደገና ማስጀመሪያ"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "መሰረዣ"
89msgstr "መሰረዣ"
po/ar.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-05-22 08:22+0000\n"
11"PO-Revision-Date: 2014-05-22 08:22+0000\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
13"Language-Team: Arabic <ar@li.org>\n"
13"Language-Team: Arabic <ar@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:29+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -164,7 +168,8 @@ msgstr "شاهد أقل"
164msgid "See all"
168msgid "See all"
165msgstr ""
169msgstr ""
166
170
167−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
171+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
172+#: qml/Panel/SearchIndicator.qml:27
168msgid "Search"
173msgid "Search"
169msgstr "ابحث"
174msgstr "ابحث"
170
175
@@ -204,11 +209,11 @@ msgstr "أرسل"
204msgid "Manage Dash"
209msgid "Manage Dash"
205msgstr ""
210msgstr ""
206
211
207−#: qml/Dash/ScopesOverview.qml:408
212+#: qml/Dash/ScopesOverview.qml:417
208msgid "Done"
213msgid "Done"
209msgstr ""
214msgstr ""
210
215
211−#: qml/Dash/ScopesOverview.qml:434
216+#: qml/Dash/ScopesOverview.qml:443
212msgid "Store"
217msgid "Store"
213msgstr ""
218msgstr ""
214
219
@@ -224,7 +229,7 @@ msgstr ""
224msgid "Swipe to unlock"
229msgid "Swipe to unlock"
225msgstr "اسحب لفتح القفل"
230msgstr "اسحب لفتح القفل"
226
231
227−#: qml/Hud/HudParametrizedActionsPage.qml:132
232+#: qml/Hud/HudParametrizedActionsPage.qml:139
228msgid "Confirm"
233msgid "Confirm"
229msgstr "التأكيد"
234msgstr "التأكيد"
230
235
@@ -252,7 +257,7 @@ msgstr "عرض كلمة السر"
252msgid "Enter SIM PIN"
257msgid "Enter SIM PIN"
253msgstr ""
258msgstr ""
254
259
255−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
260+#: qml/Notifications/NotificationMenuItemFactory.qml:121
256msgid "Sorry, incorrect PIN"
261msgid "Sorry, incorrect PIN"
257msgstr ""
262msgstr ""
258
263
@@ -296,11 +301,11 @@ msgstr ""
296msgid "Roaming"
301msgid "Roaming"
297msgstr ""
302msgstr ""
298
303
299−#: qml/Shell.qml:266
304+#: qml/Shell.qml:279
300msgid "Enter your passphrase"
305msgid "Enter your passphrase"
301msgstr ""
306msgstr ""
302
307
303−#: qml/Shell.qml:267
308+#: qml/Shell.qml:280
304msgid "Sorry, incorrect passphrase"
309msgid "Sorry, incorrect passphrase"
305msgstr ""
310msgstr ""
306
311
@@ -312,35 +317,35 @@ msgstr ""
312msgid "Sorry, incorrect passcode"
317msgid "Sorry, incorrect passcode"
313msgstr ""
318msgstr ""
314
319
315−#: qml/Shell.qml:273
320+#: qml/Shell.qml:286
316#, qt-format
321#, qt-format
317msgid "Enter your %1"
322msgid "Enter your %1"
318msgstr ""
323msgstr ""
319
324
320−#: qml/Shell.qml:274
325+#: qml/Shell.qml:287
321#, qt-format
326#, qt-format
322msgid "Sorry, incorrect %1"
327msgid "Sorry, incorrect %1"
323msgstr ""
328msgstr ""
324
329
325−#: qml/Shell.qml:310
330+#: qml/Shell.qml:323
326msgid "Sorry, incorrect passphrase."
331msgid "Sorry, incorrect passphrase."
327msgstr ""
332msgstr ""
328
333
329−#: qml/Shell.qml:311
334+#: qml/Shell.qml:324
330msgid "Sorry, incorrect passcode."
335msgid "Sorry, incorrect passcode."
331msgstr ""
336msgstr ""
332
337
333−#: qml/Shell.qml:312
338+#: qml/Shell.qml:325
334msgid "This will be your last attempt."
339msgid "This will be your last attempt."
335msgstr ""
340msgstr ""
336
341
337−#: qml/Shell.qml:314
342+#: qml/Shell.qml:327
338msgid ""
343msgid ""
339"If passphrase is entered incorrectly, your phone will conduct a factory "
344"If passphrase is entered incorrectly, your phone will conduct a factory "
340"reset and all personal data will be deleted."
345"reset and all personal data will be deleted."
341msgstr ""
346msgstr ""
342
347
343−#: qml/Shell.qml:315
348+#: qml/Shell.qml:328
344msgid ""
349msgid ""
345"If passcode is entered incorrectly, your phone will conduct a factory reset "
350"If passcode is entered incorrectly, your phone will conduct a factory reset "
346"and all personal data will be deleted."
351"and all personal data will be deleted."
po/ast.po+8−4
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-08-31 12:51+0000\n"
11+"PO-Revision-Date: 2014-09-23 10:48+0000\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
13"Language-Team: Asturian <ast@li.org>\n"
13"Language-Team: Asturian <ast@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-01 07:33+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-24 07:41+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Apagar"
81msgstr "Apagar"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Reaniciar"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Encaboxar"
89msgstr "Encaboxar"
po/az.po+6−2
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-09-03 16:39+0000\n"
11"PO-Revision-Date: 2014-09-03 16:39+0000\n"
12"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
12"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-04 08:35+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18"X-Generator: Launchpad (build 17196)\n"
18"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
@@ -78,6 +78,10 @@ msgstr ""
78msgid "Power off"
78msgid "Power off"
79msgstr "Söndür"
79msgstr "Söndür"
80
80
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
81#: qml/Components/Dialogs.qml:157
85#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr "İmtina"
87msgstr "İmtina"
po/bg.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-04-01 14:08+0000\n"
11"PO-Revision-Date: 2014-04-01 14:08+0000\n"
12"Last-Translator: Atanas Kovachki <Unknown>\n"
12"Last-Translator: Atanas Kovachki <Unknown>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:29+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -168,7 +172,8 @@ msgstr ""
168msgid "See all"
172msgid "See all"
169msgstr ""
173msgstr ""
170
174
171−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
175+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
176+#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
177msgid "Search"
173msgstr "Търсене"
178msgstr "Търсене"
174
179
@@ -208,11 +213,11 @@ msgstr "Изпрати"
208msgid "Manage Dash"
213msgid "Manage Dash"
209msgstr ""
214msgstr ""
210
215
211−#: qml/Dash/ScopesOverview.qml:408
216+#: qml/Dash/ScopesOverview.qml:417
212msgid "Done"
217msgid "Done"
213msgstr ""
218msgstr ""
214
219
215−#: qml/Dash/ScopesOverview.qml:434
220+#: qml/Dash/ScopesOverview.qml:443
216msgid "Store"
221msgid "Store"
217msgstr ""
222msgstr ""
218
223
@@ -228,7 +233,7 @@ msgstr ""
228msgid "Swipe to unlock"
233msgid "Swipe to unlock"
229msgstr ""
234msgstr ""
230
235
231−#: qml/Hud/HudParametrizedActionsPage.qml:132
236+#: qml/Hud/HudParametrizedActionsPage.qml:139
232msgid "Confirm"
237msgid "Confirm"
233msgstr "Потвърди"
238msgstr "Потвърди"
234
239
@@ -256,7 +261,7 @@ msgstr "Покажи паролата"
256msgid "Enter SIM PIN"
261msgid "Enter SIM PIN"
257msgstr ""
262msgstr ""
258
263
259−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
264+#: qml/Notifications/NotificationMenuItemFactory.qml:121
260msgid "Sorry, incorrect PIN"
265msgid "Sorry, incorrect PIN"
261msgstr ""
266msgstr ""
262
267
@@ -300,11 +305,11 @@ msgstr ""
300msgid "Roaming"
305msgid "Roaming"
301msgstr ""
306msgstr ""
302
307
303−#: qml/Shell.qml:266
308+#: qml/Shell.qml:279
304msgid "Enter your passphrase"
309msgid "Enter your passphrase"
305msgstr ""
310msgstr ""
306
311
307−#: qml/Shell.qml:267
312+#: qml/Shell.qml:280
308msgid "Sorry, incorrect passphrase"
313msgid "Sorry, incorrect passphrase"
309msgstr ""
314msgstr ""
310
315
@@ -316,35 +321,35 @@ msgstr ""
316msgid "Sorry, incorrect passcode"
321msgid "Sorry, incorrect passcode"
317msgstr ""
322msgstr ""
318
323
319−#: qml/Shell.qml:273
324+#: qml/Shell.qml:286
320#, qt-format
325#, qt-format
321msgid "Enter your %1"
326msgid "Enter your %1"
322msgstr ""
327msgstr ""
323
328
324−#: qml/Shell.qml:274
329+#: qml/Shell.qml:287
325#, qt-format
330#, qt-format
326msgid "Sorry, incorrect %1"
331msgid "Sorry, incorrect %1"
327msgstr ""
332msgstr ""
328
333
329−#: qml/Shell.qml:310
334+#: qml/Shell.qml:323
330msgid "Sorry, incorrect passphrase."
335msgid "Sorry, incorrect passphrase."
331msgstr ""
336msgstr ""
332
337
333−#: qml/Shell.qml:311
338+#: qml/Shell.qml:324
334msgid "Sorry, incorrect passcode."
339msgid "Sorry, incorrect passcode."
335msgstr ""
340msgstr ""
336
341
337−#: qml/Shell.qml:312
342+#: qml/Shell.qml:325
338msgid "This will be your last attempt."
343msgid "This will be your last attempt."
339msgstr ""
344msgstr ""
340
345
341−#: qml/Shell.qml:314
346+#: qml/Shell.qml:327
342msgid ""
347msgid ""
343"If passphrase is entered incorrectly, your phone will conduct a factory "
348"If passphrase is entered incorrectly, your phone will conduct a factory "
344"reset and all personal data will be deleted."
349"reset and all personal data will be deleted."
345msgstr ""
350msgstr ""
346
351
347−#: qml/Shell.qml:315
352+#: qml/Shell.qml:328
348msgid ""
353msgid ""
349"If passcode is entered incorrectly, your phone will conduct a factory reset "
354"If passcode is entered incorrectly, your phone will conduct a factory reset "
350"and all personal data will be deleted."
355"and all personal data will be deleted."
po/br.po+41−43
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-26 08:28+0000\n"
11"PO-Revision-Date: 2014-08-26 08:28+0000\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
13"Language-Team: Breton <br@li.org>\n"
13"Language-Team: Breton <br@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:29+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr "Ger-tremen : "
22msgstr "Ger-tremen : "
23
23
@@ -32,53 +32,59 @@ msgstr "Dispilhennañ ar verradenn"
32
32
33#: qml/Components/Dialogs.qml:70
33#: qml/Components/Dialogs.qml:70
34msgid "Log out"
34msgid "Log out"
35−msgstr ""
35+msgstr "Digevreañ"
36
36
37#: qml/Components/Dialogs.qml:71
37#: qml/Components/Dialogs.qml:71
38msgid "Are you sure you want to log out?"
38msgid "Are you sure you want to log out?"
39−msgstr ""
39+msgstr "Ha sur oc'h e fell deoc'h digevreañ ?"
40
40
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:122
42#: qml/Components/Dialogs.qml:122
43msgid "No"
43msgid "No"
44−msgstr ""
44+msgstr "N'on ket"
45
45
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
47#: qml/Components/Dialogs.qml:129
47#: qml/Components/Dialogs.qml:129
48msgid "Yes"
48msgid "Yes"
49−msgstr ""
49+msgstr "Ya"
50
50
51#: qml/Components/Dialogs.qml:94
51#: qml/Components/Dialogs.qml:94
52msgid "Shut down"
52msgid "Shut down"
53−msgstr ""
53+msgstr "Lazhañ ar benveg"
54
54
55#: qml/Components/Dialogs.qml:95
55#: qml/Components/Dialogs.qml:95
56msgid "Are you sure you want to shut down?"
56msgid "Are you sure you want to shut down?"
57−msgstr ""
57+msgstr "Ha sur oc'h e fell deoc'h lazhañ ar benveg ?"
58
58
59#: qml/Components/Dialogs.qml:119
59#: qml/Components/Dialogs.qml:119
60msgid "Reboot"
60msgid "Reboot"
61−msgstr ""
61+msgstr "Adloc'hañ"
62
62
63#: qml/Components/Dialogs.qml:120
63#: qml/Components/Dialogs.qml:120
64msgid "Are you sure you want to reboot?"
64msgid "Are you sure you want to reboot?"
65−msgstr ""
65+msgstr "Ha sur oc'h e fell deoc'h adloc'hañ ?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "Tredan"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76+"Ha sur oc'h e fell deoc'h\n"
77+"troc'hañ an tredan ?"
76
78
77−#: qml/Components/Dialogs.qml:144
79+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
80msgid "Power off"
79msgstr "Lazhañ"
81msgstr "Lazhañ"
80
82
81−#: qml/Components/Dialogs.qml:162
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr ""
86+
87+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
88msgid "Cancel"
83msgstr "Nullañ"
89msgstr "Nullañ"
84
90
@@ -168,21 +174,22 @@ msgstr "Gwelet nebeutoc'h"
168msgid "See all"
174msgid "See all"
169msgstr "Gwelet pep tra"
175msgstr "Gwelet pep tra"
170
176
171−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
177+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
178+#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
179msgid "Search"
173msgstr "Klask"
180msgstr "Klask"
174
181
175#: qml/Dash/PageHeader.qml:270
182#: qml/Dash/PageHeader.qml:270
176msgid "Settings"
183msgid "Settings"
177−msgstr ""
184+msgstr "Arventennoù"
178
185
179#: qml/Dash/PageHeader.qml:279
186#: qml/Dash/PageHeader.qml:279
180msgid "Remove from Favorites"
187msgid "Remove from Favorites"
181−msgstr ""
188+msgstr "Lemel eus ar sinedoù"
182
189
183#: qml/Dash/PageHeader.qml:279
190#: qml/Dash/PageHeader.qml:279
184msgid "Add to Favorites"
191msgid "Add to Favorites"
185−msgstr ""
192+msgstr "Ouzhpennañ d'ar sinedoù"
186
193
187#: qml/Dash/Previews/PreviewActionCombo.qml:34
194#: qml/Dash/Previews/PreviewActionCombo.qml:34
188msgid "More..."
195msgid "More..."
@@ -208,11 +215,11 @@ msgstr "Kas"
208msgid "Manage Dash"
215msgid "Manage Dash"
209msgstr "Merañ an daolenn-vourzh"
216msgstr "Merañ an daolenn-vourzh"
210
217
211−#: qml/Dash/ScopesOverview.qml:408
218+#: qml/Dash/ScopesOverview.qml:417
212msgid "Done"
219msgid "Done"
213msgstr "Graet eo"
220msgstr "Graet eo"
214
221
215−#: qml/Dash/ScopesOverview.qml:434
222+#: qml/Dash/ScopesOverview.qml:443
216msgid "Store"
223msgid "Store"
217msgstr "Enrollañ"
224msgstr "Enrollañ"
218
225
@@ -228,7 +235,7 @@ msgstr "An holl anezho"
228msgid "Swipe to unlock"
235msgid "Swipe to unlock"
229msgstr "Riklañ evit dibrennañ"
236msgstr "Riklañ evit dibrennañ"
230
237
231−#: qml/Hud/HudParametrizedActionsPage.qml:132
238+#: qml/Hud/HudParametrizedActionsPage.qml:139
232msgid "Confirm"
239msgid "Confirm"
233msgstr "Kadarnaat"
240msgstr "Kadarnaat"
234
241
@@ -256,7 +263,7 @@ msgstr "Diskouez ar ger-tremen"
256msgid "Enter SIM PIN"
263msgid "Enter SIM PIN"
257msgstr "Ebarzhit kod PIN ar gartenn SIM"
264msgstr "Ebarzhit kod PIN ar gartenn SIM"
258
265
259−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
266+#: qml/Notifications/NotificationMenuItemFactory.qml:121
260msgid "Sorry, incorrect PIN"
267msgid "Sorry, incorrect PIN"
261msgstr "Siwazh, kod PIN direizh"
268msgstr "Siwazh, kod PIN direizh"
262
269
@@ -300,45 +307,45 @@ msgstr "Dibrennañ ar gartenn SIM"
300msgid "Roaming"
307msgid "Roaming"
301msgstr "O kantren"
308msgstr "O kantren"
302
309
303−#: qml/Shell.qml:266
310+#: qml/Shell.qml:279
304msgid "Enter your passphrase"
311msgid "Enter your passphrase"
305msgstr "Ebarzhit ho frazenn-dremen"
312msgstr "Ebarzhit ho frazenn-dremen"
306
313
307−#: qml/Shell.qml:267
314+#: qml/Shell.qml:280
308msgid "Sorry, incorrect passphrase"
315msgid "Sorry, incorrect passphrase"
309msgstr "Siwazh, frazenn-dremen direizh"
316msgstr "Siwazh, frazenn-dremen direizh"
310
317
311#: qml/Shell.qml:282
318#: qml/Shell.qml:282
312msgid "Enter your passcode"
319msgid "Enter your passcode"
313−msgstr ""
320+msgstr "Ebarzhit ho kod-tremen"
314
321
315#: qml/Shell.qml:283
322#: qml/Shell.qml:283
316msgid "Sorry, incorrect passcode"
323msgid "Sorry, incorrect passcode"
317−msgstr ""
324+msgstr "Digarezit, kod-tremen direizh"
318
325
319−#: qml/Shell.qml:273
326+#: qml/Shell.qml:286
320#, qt-format
327#, qt-format
321msgid "Enter your %1"
328msgid "Enter your %1"
322msgstr "Ebarzhit ho %1"
329msgstr "Ebarzhit ho %1"
323
330
324−#: qml/Shell.qml:274
331+#: qml/Shell.qml:287
325#, qt-format
332#, qt-format
326msgid "Sorry, incorrect %1"
333msgid "Sorry, incorrect %1"
327msgstr "Siwazh, %1 direizh"
334msgstr "Siwazh, %1 direizh"
328
335
329−#: qml/Shell.qml:310
336+#: qml/Shell.qml:323
330msgid "Sorry, incorrect passphrase."
337msgid "Sorry, incorrect passphrase."
331msgstr "Siwazh, frazenn-dremen direizh"
338msgstr "Siwazh, frazenn-dremen direizh"
332
339
333−#: qml/Shell.qml:311
340+#: qml/Shell.qml:324
334msgid "Sorry, incorrect passcode."
341msgid "Sorry, incorrect passcode."
335msgstr "Siwazh, kod-tremen direizh"
342msgstr "Siwazh, kod-tremen direizh"
336
343
337−#: qml/Shell.qml:312
344+#: qml/Shell.qml:325
338msgid "This will be your last attempt."
345msgid "This will be your last attempt."
339msgstr "Ho taol-esae diwezhañ e vo."
346msgstr "Ho taol-esae diwezhañ e vo."
340
347
341−#: qml/Shell.qml:314
348+#: qml/Shell.qml:327
342msgid ""
349msgid ""
343"If passphrase is entered incorrectly, your phone will conduct a factory "
350"If passphrase is entered incorrectly, your phone will conduct a factory "
344"reset and all personal data will be deleted."
351"reset and all personal data will be deleted."
@@ -346,19 +353,10 @@ msgstr ""
346"Ma vez ebarzhet ur frazenn-dremen direizh, e vo adderaouekaet ho pellgomzer "
353"Ma vez ebarzhet ur frazenn-dremen direizh, e vo adderaouekaet ho pellgomzer "
347"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel"
354"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel"
348
355
349−#: qml/Shell.qml:315
356+#: qml/Shell.qml:328
350msgid ""
357msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
358"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
359"and all personal data will be deleted."
353msgstr ""
360msgstr ""
354"Ma vez ebarzhet ur c'hod-tremen direizh, e vo adderaouekaet ho pellgomzer "
361"Ma vez ebarzhet ur c'hod-tremen direizh, e vo adderaouekaet ho pellgomzer "
355"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel."
362"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel."
356−
357−#~ msgid "Are you sure you would like to turn power off?"
358−#~ msgstr "Ha sur oc'h e fell deoc'h lazhañ ar benveg ?"
359−
360−#~ msgid "Restart"
361−#~ msgstr "Adloc'hañ"
362−
363−#~ msgid "Enter your PIN"
364−#~ msgstr "Ebarzhit ho kod PIN"
po/bs.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-01-16 22:33+0000\n"
11"PO-Revision-Date: 2014-01-16 22:33+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:29+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr ""
171msgstr ""
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr ""
231msgstr ""
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/ca.po+7−3
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-09-07 04:05+0000\n"
11+"PO-Revision-Date: 2014-09-23 06:27+0000\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-08 06:58+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-24 07:41+0000\n"
18"X-Generator: Launchpad (build 17196)\n"
18"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Apaga"
81msgstr "Apaga"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Reinicia"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Cancel·la"
89msgstr "Cancel·la"
po/ckb.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "گەڕان"
171msgstr "گەڕان"
167
172
@@ -201,11 +206,11 @@ msgstr "ناردن"
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "پشتڕاستکردنەوە"
231msgstr "پشتڕاستکردنەوە"
227
232
@@ -249,7 +254,7 @@ msgstr "تێپەڕەوشە پیشان بدە"
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/cs.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-01-08 10:11+0000\n"
11"PO-Revision-Date: 2014-01-08 10:11+0000\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
13"Language-Team: Czech <cs@li.org>\n"
13"Language-Team: Czech <cs@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "Hledat"
171msgstr "Hledat"
167
172
@@ -201,11 +206,11 @@ msgstr "Odeslat"
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "Potvrdit"
231msgstr "Potvrdit"
227
232
@@ -249,7 +254,7 @@ msgstr "Zobrazit heslo"
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/da.po+25−20
@@ -8,17 +8,17 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
11+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
12"PO-Revision-Date: 2014-07-30 12:37+0000\n"
12"PO-Revision-Date: 2014-07-30 12:37+0000\n"
13"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
13"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
14"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
14"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
15"MIME-Version: 1.0\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
17"Content-Transfer-Encoding: 8bit\n"
18−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
18+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
19−"X-Generator: Launchpad (build 17174)\n"
19+"X-Generator: Launchpad (build 17196)\n"
20
20
21−#: plugins/LightDM/Greeter.cpp:129
21+#: plugins/LightDM/Greeter.cpp:130
22msgid "Password: "
22msgid "Password: "
23msgstr ""
23msgstr ""
24
24
@@ -75,11 +75,15 @@ msgid ""
75"to power off?"
75"to power off?"
76msgstr ""
76msgstr ""
77
77
78−#: qml/Components/Dialogs.qml:144
78+#: qml/Components/Dialogs.qml:147
79msgid "Power off"
79msgid "Power off"
80msgstr ""
80msgstr ""
81
81
82−#: qml/Components/Dialogs.qml:162
82+#: qml/Components/Dialogs.qml:157
83+msgid "Restart"
84+msgstr ""
85+
86+#: qml/Components/Dialogs.qml:157
83msgid "Cancel"
87msgid "Cancel"
84msgstr ""
88msgstr ""
85
89
@@ -164,7 +168,8 @@ msgstr "Vis mindre"
164msgid "See all"
168msgid "See all"
165msgstr "Se alle"
169msgstr "Se alle"
166
170
167−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
171+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
172+#: qml/Panel/SearchIndicator.qml:27
168msgid "Search"
173msgid "Search"
169msgstr "Søg"
174msgstr "Søg"
170
175
@@ -204,11 +209,11 @@ msgstr "Send"
204msgid "Manage Dash"
209msgid "Manage Dash"
205msgstr ""
210msgstr ""
206
211
207−#: qml/Dash/ScopesOverview.qml:408
212+#: qml/Dash/ScopesOverview.qml:417
208msgid "Done"
213msgid "Done"
209msgstr ""
214msgstr ""
210
215
211−#: qml/Dash/ScopesOverview.qml:434
216+#: qml/Dash/ScopesOverview.qml:443
212msgid "Store"
217msgid "Store"
213msgstr ""
218msgstr ""
214
219
@@ -224,7 +229,7 @@ msgstr ""
224msgid "Swipe to unlock"
229msgid "Swipe to unlock"
225msgstr "Stryg for at låse op"
230msgstr "Stryg for at låse op"
226
231
227−#: qml/Hud/HudParametrizedActionsPage.qml:132
232+#: qml/Hud/HudParametrizedActionsPage.qml:139
228msgid "Confirm"
233msgid "Confirm"
229msgstr "Bekræft"
234msgstr "Bekræft"
230
235
@@ -252,7 +257,7 @@ msgstr "Vis adgangskode"
252msgid "Enter SIM PIN"
257msgid "Enter SIM PIN"
253msgstr ""
258msgstr ""
254
259
255−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
260+#: qml/Notifications/NotificationMenuItemFactory.qml:121
256msgid "Sorry, incorrect PIN"
261msgid "Sorry, incorrect PIN"
257msgstr ""
262msgstr ""
258
263
@@ -296,11 +301,11 @@ msgstr ""
296msgid "Roaming"
301msgid "Roaming"
297msgstr ""
302msgstr ""
298
303
299−#: qml/Shell.qml:266
304+#: qml/Shell.qml:279
300msgid "Enter your passphrase"
305msgid "Enter your passphrase"
301msgstr ""
306msgstr ""
302
307
303−#: qml/Shell.qml:267
308+#: qml/Shell.qml:280
304msgid "Sorry, incorrect passphrase"
309msgid "Sorry, incorrect passphrase"
305msgstr ""
310msgstr ""
306
311
@@ -312,35 +317,35 @@ msgstr ""
312msgid "Sorry, incorrect passcode"
317msgid "Sorry, incorrect passcode"
313msgstr ""
318msgstr ""
314
319
315−#: qml/Shell.qml:273
320+#: qml/Shell.qml:286
316#, qt-format
321#, qt-format
317msgid "Enter your %1"
322msgid "Enter your %1"
318msgstr ""
323msgstr ""
319
324
320−#: qml/Shell.qml:274
325+#: qml/Shell.qml:287
321#, qt-format
326#, qt-format
322msgid "Sorry, incorrect %1"
327msgid "Sorry, incorrect %1"
323msgstr ""
328msgstr ""
324
329
325−#: qml/Shell.qml:310
330+#: qml/Shell.qml:323
326msgid "Sorry, incorrect passphrase."
331msgid "Sorry, incorrect passphrase."
327msgstr ""
332msgstr ""
328
333
329−#: qml/Shell.qml:311
334+#: qml/Shell.qml:324
330msgid "Sorry, incorrect passcode."
335msgid "Sorry, incorrect passcode."
331msgstr ""
336msgstr ""
332
337
333−#: qml/Shell.qml:312
338+#: qml/Shell.qml:325
334msgid "This will be your last attempt."
339msgid "This will be your last attempt."
335msgstr ""
340msgstr ""
336
341
337−#: qml/Shell.qml:314
342+#: qml/Shell.qml:327
338msgid ""
343msgid ""
339"If passphrase is entered incorrectly, your phone will conduct a factory "
344"If passphrase is entered incorrectly, your phone will conduct a factory "
340"reset and all personal data will be deleted."
345"reset and all personal data will be deleted."
341msgstr ""
346msgstr ""
342
347
343−#: qml/Shell.qml:315
348+#: qml/Shell.qml:328
344msgid ""
349msgid ""
345"If passcode is entered incorrectly, your phone will conduct a factory reset "
350"If passcode is entered incorrectly, your phone will conduct a factory reset "
346"and all personal data will be deleted."
351"and all personal data will be deleted."
po/de.po+11−7
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-09-04 15:02+0000\n"
11+"PO-Revision-Date: 2014-09-23 08:31+0000\n"
12−"Last-Translator: Niklas Wenzel <nikwen.developer@gmail.com>\n"
12+"Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n"
13"Language-Team: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-05 07:50+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-24 07:41+0000\n"
18"X-Generator: Launchpad (build 17196)\n"
18"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
@@ -73,13 +73,17 @@ msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76−"Sind Sie sicher dass Sie\n"
76+"Sind Sie sicher, dass Sie das\n"
77−"ausschalten wollen?"
77+"Gerät ausschalten wollen?"
78
78
79#: qml/Components/Dialogs.qml:147
79#: qml/Components/Dialogs.qml:147
80msgid "Power off"
80msgid "Power off"
81msgstr "Ausschalten"
81msgstr "Ausschalten"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Neustarten"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Abbrechen"
89msgstr "Abbrechen"
@@ -295,7 +299,7 @@ msgstr "Fehlgeschlagen, tippen Sie zum Wiederholen"
295
299
296#: qml/Panel/Indicators/ModemInfoItem.qml:105
300#: qml/Panel/Indicators/ModemInfoItem.qml:105
297msgid "Unlock SIM"
301msgid "Unlock SIM"
298−msgstr "SIM-Karte entsprerren"
302+msgstr "SIM-Karte entsperren"
299
303
300#: qml/Panel/Indicators/RoamingIndication.qml:27
304#: qml/Panel/Indicators/RoamingIndication.qml:27
301msgid "Roaming"
305msgid "Roaming"
po/el.po+25−23
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-21 12:06+0000\n"
11"PO-Revision-Date: 2014-08-21 12:06+0000\n"
12"Last-Translator: Chris Taklis (aka Kailor) <ctaklis@gmail.com>\n"
12"Last-Translator: Chris Taklis (aka Kailor) <ctaklis@gmail.com>\n"
13"Language-Team: Greek <el@li.org>\n"
13"Language-Team: Greek <el@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr "Κωδικός πρόσβασης: "
22msgstr "Κωδικός πρόσβασης: "
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr "Τερματισμός"
79msgstr "Τερματισμός"
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr "Ακύρωση"
87msgstr "Ακύρωση"
84
88
@@ -165,7 +169,8 @@ msgstr "Λιγότερα"
165msgid "See all"
169msgid "See all"
166msgstr "Εμφάνιση όλων"
170msgstr "Εμφάνιση όλων"
167
171
168−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
172+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
173+#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
174msgid "Search"
170msgstr "Αναζήτηση"
175msgstr "Αναζήτηση"
171
176
@@ -205,11 +210,11 @@ msgstr "Αποστολή"
205msgid "Manage Dash"
210msgid "Manage Dash"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:408
213+#: qml/Dash/ScopesOverview.qml:417
209msgid "Done"
214msgid "Done"
210msgstr "Ολοκληρώθηκε"
215msgstr "Ολοκληρώθηκε"
211
216
212−#: qml/Dash/ScopesOverview.qml:434
217+#: qml/Dash/ScopesOverview.qml:443
213msgid "Store"
218msgid "Store"
214msgstr "Κατάστημα"
219msgstr "Κατάστημα"
215
220
@@ -225,7 +230,7 @@ msgstr "Όλα"
225msgid "Swipe to unlock"
230msgid "Swipe to unlock"
226msgstr "Σύρετε για να ξεκλειδώσετε"
231msgstr "Σύρετε για να ξεκλειδώσετε"
227
232
228−#: qml/Hud/HudParametrizedActionsPage.qml:132
233+#: qml/Hud/HudParametrizedActionsPage.qml:139
229msgid "Confirm"
234msgid "Confirm"
230msgstr "Επιβεβαίωση"
235msgstr "Επιβεβαίωση"
231
236
@@ -253,7 +258,7 @@ msgstr "Εμφάνιση κωδικού"
253msgid "Enter SIM PIN"
258msgid "Enter SIM PIN"
254msgstr ""
259msgstr ""
255
260
256−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
261+#: qml/Notifications/NotificationMenuItemFactory.qml:121
257msgid "Sorry, incorrect PIN"
262msgid "Sorry, incorrect PIN"
258msgstr ""
263msgstr ""
259
264
@@ -297,11 +302,11 @@ msgstr "Ξεκλείδωμα SIM"
297msgid "Roaming"
302msgid "Roaming"
298msgstr "Περιαγωγή"
303msgstr "Περιαγωγή"
299
304
300−#: qml/Shell.qml:266
305+#: qml/Shell.qml:279
301msgid "Enter your passphrase"
306msgid "Enter your passphrase"
302msgstr ""
307msgstr ""
303
308
304−#: qml/Shell.qml:267
309+#: qml/Shell.qml:280
305msgid "Sorry, incorrect passphrase"
310msgid "Sorry, incorrect passphrase"
306msgstr ""
311msgstr ""
307
312
@@ -313,39 +318,36 @@ msgstr ""
313msgid "Sorry, incorrect passcode"
318msgid "Sorry, incorrect passcode"
314msgstr ""
319msgstr ""
315
320
316−#: qml/Shell.qml:273
321+#: qml/Shell.qml:286
317#, qt-format
322#, qt-format
318msgid "Enter your %1"
323msgid "Enter your %1"
319msgstr "Εισάγετε το %1"
324msgstr "Εισάγετε το %1"
320
325
321−#: qml/Shell.qml:274
326+#: qml/Shell.qml:287
322#, qt-format
327#, qt-format
323msgid "Sorry, incorrect %1"
328msgid "Sorry, incorrect %1"
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:310
331+#: qml/Shell.qml:323
327msgid "Sorry, incorrect passphrase."
332msgid "Sorry, incorrect passphrase."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:311
335+#: qml/Shell.qml:324
331msgid "Sorry, incorrect passcode."
336msgid "Sorry, incorrect passcode."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:312
339+#: qml/Shell.qml:325
335msgid "This will be your last attempt."
340msgid "This will be your last attempt."
336msgstr ""
341msgstr ""
337
342
338−#: qml/Shell.qml:314
343+#: qml/Shell.qml:327
339msgid ""
344msgid ""
340"If passphrase is entered incorrectly, your phone will conduct a factory "
345"If passphrase is entered incorrectly, your phone will conduct a factory "
341"reset and all personal data will be deleted."
346"reset and all personal data will be deleted."
342msgstr ""
347msgstr ""
343
348
344−#: qml/Shell.qml:315
349+#: qml/Shell.qml:328
345msgid ""
350msgid ""
346"If passcode is entered incorrectly, your phone will conduct a factory reset "
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"and all personal data will be deleted."
352"and all personal data will be deleted."
348msgstr ""
353msgstr ""
349−
350−#~ msgid "Restart"
351−#~ msgstr "Επανεκκίνηση"
po/en_AU.po+8−4
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-08-31 11:20+0000\n"
11+"PO-Revision-Date: 2014-09-23 01:24+0000\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-01 07:33+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-24 07:41+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Power off"
81msgstr "Power off"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Restart"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Cancel"
89msgstr "Cancel"
po/en_GB.po+42−44
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-23 13:48+0000\n"
11"PO-Revision-Date: 2014-08-23 13:48+0000\n"
12−"Last-Translator: Alan Pope ㋛ <alan@ubuntu.com>\n"
12+"Last-Translator: Alan Pope ( ͡°╭͜ʖ╮͡° ) <alan@ubuntu.com>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr "Password: "
22msgstr "Password: "
23
23
@@ -32,53 +32,59 @@ msgstr "Unpin shortcut"
32
32
33#: qml/Components/Dialogs.qml:70
33#: qml/Components/Dialogs.qml:70
34msgid "Log out"
34msgid "Log out"
35−msgstr ""
35+msgstr "Log out"
36
36
37#: qml/Components/Dialogs.qml:71
37#: qml/Components/Dialogs.qml:71
38msgid "Are you sure you want to log out?"
38msgid "Are you sure you want to log out?"
39−msgstr ""
39+msgstr "Are you sure you want to log out?"
40
40
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:122
42#: qml/Components/Dialogs.qml:122
43msgid "No"
43msgid "No"
44−msgstr ""
44+msgstr "No"
45
45
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
47#: qml/Components/Dialogs.qml:129
47#: qml/Components/Dialogs.qml:129
48msgid "Yes"
48msgid "Yes"
49−msgstr ""
49+msgstr "Yes"
50
50
51#: qml/Components/Dialogs.qml:94
51#: qml/Components/Dialogs.qml:94
52msgid "Shut down"
52msgid "Shut down"
53−msgstr ""
53+msgstr "Shut down"
54
54
55#: qml/Components/Dialogs.qml:95
55#: qml/Components/Dialogs.qml:95
56msgid "Are you sure you want to shut down?"
56msgid "Are you sure you want to shut down?"
57−msgstr ""
57+msgstr "Are you sure you want to shut down?"
58
58
59#: qml/Components/Dialogs.qml:119
59#: qml/Components/Dialogs.qml:119
60msgid "Reboot"
60msgid "Reboot"
61−msgstr ""
61+msgstr "Reboot"
62
62
63#: qml/Components/Dialogs.qml:120
63#: qml/Components/Dialogs.qml:120
64msgid "Are you sure you want to reboot?"
64msgid "Are you sure you want to reboot?"
65−msgstr ""
65+msgstr "Are you sure you want to reboot?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "Power"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76+"Are you sure you would like\n"
77+"to power off?"
76
78
77−#: qml/Components/Dialogs.qml:144
79+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
80msgid "Power off"
79msgstr "Power off"
81msgstr "Power off"
80
82
81−#: qml/Components/Dialogs.qml:162
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Restart"
86+
87+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
88msgid "Cancel"
83msgstr "Cancel"
89msgstr "Cancel"
84
90
@@ -163,21 +169,22 @@ msgstr "See less"
163msgid "See all"
169msgid "See all"
164msgstr "See all"
170msgstr "See all"
165
171
166−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
172+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
173+#: qml/Panel/SearchIndicator.qml:27
167msgid "Search"
174msgid "Search"
168msgstr "Search"
175msgstr "Search"
169
176
170#: qml/Dash/PageHeader.qml:270
177#: qml/Dash/PageHeader.qml:270
171msgid "Settings"
178msgid "Settings"
172−msgstr ""
179+msgstr "Settings"
173
180
174#: qml/Dash/PageHeader.qml:279
181#: qml/Dash/PageHeader.qml:279
175msgid "Remove from Favorites"
182msgid "Remove from Favorites"
176−msgstr ""
183+msgstr "Remove from Favourites"
177
184
178#: qml/Dash/PageHeader.qml:279
185#: qml/Dash/PageHeader.qml:279
179msgid "Add to Favorites"
186msgid "Add to Favorites"
180−msgstr ""
187+msgstr "Add to Favourites"
181
188
182#: qml/Dash/Previews/PreviewActionCombo.qml:34
189#: qml/Dash/Previews/PreviewActionCombo.qml:34
183msgid "More..."
190msgid "More..."
@@ -203,11 +210,11 @@ msgstr "Send"
203msgid "Manage Dash"
210msgid "Manage Dash"
204msgstr "Manage Dash"
211msgstr "Manage Dash"
205
212
206−#: qml/Dash/ScopesOverview.qml:408
213+#: qml/Dash/ScopesOverview.qml:417
207msgid "Done"
214msgid "Done"
208msgstr "Done"
215msgstr "Done"
209
216
210−#: qml/Dash/ScopesOverview.qml:434
217+#: qml/Dash/ScopesOverview.qml:443
211msgid "Store"
218msgid "Store"
212msgstr "Store"
219msgstr "Store"
213
220
@@ -223,7 +230,7 @@ msgstr "All"
223msgid "Swipe to unlock"
230msgid "Swipe to unlock"
224msgstr "Swipe to unlock"
231msgstr "Swipe to unlock"
225
232
226−#: qml/Hud/HudParametrizedActionsPage.qml:132
233+#: qml/Hud/HudParametrizedActionsPage.qml:139
227msgid "Confirm"
234msgid "Confirm"
228msgstr "Confirm"
235msgstr "Confirm"
229
236
@@ -251,7 +258,7 @@ msgstr "Show password"
251msgid "Enter SIM PIN"
258msgid "Enter SIM PIN"
252msgstr "Enter SIM PIN"
259msgstr "Enter SIM PIN"
253
260
254−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
261+#: qml/Notifications/NotificationMenuItemFactory.qml:121
255msgid "Sorry, incorrect PIN"
262msgid "Sorry, incorrect PIN"
256msgstr "Sorry, incorrect PIN"
263msgstr "Sorry, incorrect PIN"
257
264
@@ -295,45 +302,45 @@ msgstr "Unlock SIM"
295msgid "Roaming"
302msgid "Roaming"
296msgstr "Roaming"
303msgstr "Roaming"
297
304
298−#: qml/Shell.qml:266
305+#: qml/Shell.qml:279
299msgid "Enter your passphrase"
306msgid "Enter your passphrase"
300msgstr "Enter your passphrase"
307msgstr "Enter your passphrase"
301
308
302−#: qml/Shell.qml:267
309+#: qml/Shell.qml:280
303msgid "Sorry, incorrect passphrase"
310msgid "Sorry, incorrect passphrase"
304msgstr "Sorry, incorrect passphrase"
311msgstr "Sorry, incorrect passphrase"
305
312
306#: qml/Shell.qml:282
313#: qml/Shell.qml:282
307msgid "Enter your passcode"
314msgid "Enter your passcode"
308−msgstr ""
315+msgstr "Enter your passcode"
309
316
310#: qml/Shell.qml:283
317#: qml/Shell.qml:283
311msgid "Sorry, incorrect passcode"
318msgid "Sorry, incorrect passcode"
312−msgstr ""
319+msgstr "Sorry, incorrect passcode"
313
320
314−#: qml/Shell.qml:273
321+#: qml/Shell.qml:286
315#, qt-format
322#, qt-format
316msgid "Enter your %1"
323msgid "Enter your %1"
317msgstr "Enter your %1"
324msgstr "Enter your %1"
318
325
319−#: qml/Shell.qml:274
326+#: qml/Shell.qml:287
320#, qt-format
327#, qt-format
321msgid "Sorry, incorrect %1"
328msgid "Sorry, incorrect %1"
322msgstr "Sorry, incorrect %1"
329msgstr "Sorry, incorrect %1"
323
330
324−#: qml/Shell.qml:310
331+#: qml/Shell.qml:323
325msgid "Sorry, incorrect passphrase."
332msgid "Sorry, incorrect passphrase."
326msgstr "Sorry, incorrect passphrase."
333msgstr "Sorry, incorrect passphrase."
327
334
328−#: qml/Shell.qml:311
335+#: qml/Shell.qml:324
329msgid "Sorry, incorrect passcode."
336msgid "Sorry, incorrect passcode."
330msgstr "Sorry, incorrect passcode."
337msgstr "Sorry, incorrect passcode."
331
338
332−#: qml/Shell.qml:312
339+#: qml/Shell.qml:325
333msgid "This will be your last attempt."
340msgid "This will be your last attempt."
334msgstr "This will be your last attempt."
341msgstr "This will be your last attempt."
335
342
336−#: qml/Shell.qml:314
343+#: qml/Shell.qml:327
337msgid ""
344msgid ""
338"If passphrase is entered incorrectly, your phone will conduct a factory "
345"If passphrase is entered incorrectly, your phone will conduct a factory "
339"reset and all personal data will be deleted."
346"reset and all personal data will be deleted."
@@ -341,19 +348,10 @@ msgstr ""
341"If passphrase is entered incorrectly, your phone will conduct a factory "
348"If passphrase is entered incorrectly, your phone will conduct a factory "
342"reset and all personal data will be deleted."
349"reset and all personal data will be deleted."
343
350
344−#: qml/Shell.qml:315
351+#: qml/Shell.qml:328
345msgid ""
352msgid ""
346"If passcode is entered incorrectly, your phone will conduct a factory reset "
353"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"and all personal data will be deleted."
354"and all personal data will be deleted."
348msgstr ""
355msgstr ""
349"If passcode is entered incorrectly, your phone will conduct a factory reset "
356"If passcode is entered incorrectly, your phone will conduct a factory reset "
350"and all personal data will be deleted."
357"and all personal data will be deleted."
351−
352−#~ msgid "Are you sure you would like to turn power off?"
353−#~ msgstr "Are you sure you would like to turn power off?"
354−
355−#~ msgid "Restart"
356−#~ msgstr "Restart"
357−
358−#~ msgid "Enter your PIN"
359−#~ msgstr "Enter your PIN"
po/eo.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr ""
171msgstr ""
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr ""
231msgstr ""
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/es.po+13−9
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-09-02 08:16+0000\n"
11+"PO-Revision-Date: 2014-09-23 04:06+0000\n"
12−"Last-Translator: Víctor R. Ruiz <Unknown>\n"
12+"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
13"Language-Team: Spanish <es@li.org>\n"
13"Language-Team: Spanish <es@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-03 07:05+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-24 07:41+0000\n"
18"X-Generator: Launchpad (build 17196)\n"
18"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Apagar"
81msgstr "Apagar"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Reiniciar"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Cancelar"
89msgstr "Cancelar"
@@ -303,11 +307,11 @@ msgstr "Itinerancia"
303
307
304#: qml/Shell.qml:279
308#: qml/Shell.qml:279
305msgid "Enter your passphrase"
309msgid "Enter your passphrase"
306−msgstr "Introudzca su contraseña"
310+msgstr "Escriba su contraseña"
307
311
308#: qml/Shell.qml:280
312#: qml/Shell.qml:280
309msgid "Sorry, incorrect passphrase"
313msgid "Sorry, incorrect passphrase"
310−msgstr "Lo sentimos, contraseña incorrecta"
314+msgstr "La contraseña es incorrecta"
311
315
312#: qml/Shell.qml:282
316#: qml/Shell.qml:282
313msgid "Enter your passcode"
317msgid "Enter your passcode"
@@ -315,7 +319,7 @@ msgstr "Escriba su código de acceso"
315
319
316#: qml/Shell.qml:283
320#: qml/Shell.qml:283
317msgid "Sorry, incorrect passcode"
321msgid "Sorry, incorrect passcode"
318−msgstr "El código de acceso es incorrecto"
322+msgstr "El código es incorrecto"
319
323
320#: qml/Shell.qml:286
324#: qml/Shell.qml:286
321#, qt-format
325#, qt-format
@@ -325,11 +329,11 @@ msgstr "Introduzca su %1"
325#: qml/Shell.qml:287
329#: qml/Shell.qml:287
326#, qt-format
330#, qt-format
327msgid "Sorry, incorrect %1"
331msgid "Sorry, incorrect %1"
328−msgstr "Lo sentimos, %1 incorrecto"
332+msgstr "Incorrecto (%1)"
329
333
330#: qml/Shell.qml:323
334#: qml/Shell.qml:323
331msgid "Sorry, incorrect passphrase."
335msgid "Sorry, incorrect passphrase."
332−msgstr "Frase de paso incorrecta"
336+msgstr "La contraseña es incorrecta."
333
337
334#: qml/Shell.qml:324
338#: qml/Shell.qml:324
335msgid "Sorry, incorrect passcode."
339msgid "Sorry, incorrect passcode."
po/eu.po+8−4
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-09-02 20:34+0000\n"
11+"PO-Revision-Date: 2014-09-20 13:13+0000\n"
12"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
12"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
13"Language-Team: Basque <eu@li.org>\n"
13"Language-Team: Basque <eu@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-03 07:05+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-21 06:25+0000\n"
18"X-Generator: Launchpad (build 17196)\n"
18"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
@@ -66,7 +66,7 @@ msgstr "Ziur berrabiarazi nahi duzula?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr "Energia"
69+msgstr "Piztu/itzali"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
@@ -78,6 +78,10 @@ msgstr "Ziur itzali nahi duzula?"
78msgid "Power off"
78msgid "Power off"
79msgstr "Itzali"
79msgstr "Itzali"
80
80
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr "Berrabiarazi"
84+
81#: qml/Components/Dialogs.qml:157
85#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr "Utzi"
87msgstr "Utzi"
po/fa.po+26−27
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-08-27 20:08+0000\n"
11+"PO-Revision-Date: 2014-09-21 10:43+0000\n"
12"Last-Translator: Danial Behzadi <dani.behzi@gmail.com>\n"
12"Last-Translator: Danial Behzadi <dani.behzi@gmail.com>\n"
13"Language-Team: Persian <fa@li.org>\n"
13"Language-Team: Persian <fa@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-22 07:05+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr "گذرواژه: "
22msgstr "گذرواژه: "
23
23
@@ -76,11 +76,15 @@ msgstr ""
76"آیا مطمئن هستید که\n"
76"آیا مطمئن هستید که\n"
77"می‌خواهید خاموش کنید؟"
77"می‌خواهید خاموش کنید؟"
78
78
79−#: qml/Components/Dialogs.qml:144
79+#: qml/Components/Dialogs.qml:147
80msgid "Power off"
80msgid "Power off"
81msgstr "خاموش کردن"
81msgstr "خاموش کردن"
82
82
83−#: qml/Components/Dialogs.qml:162
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "شروع مجدّد"
86+
87+#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "لغو"
89msgstr "لغو"
86
90
@@ -165,7 +169,8 @@ msgstr "کم‌تر ببینید"
165msgid "See all"
169msgid "See all"
166msgstr "دیدن همه"
170msgstr "دیدن همه"
167
171
168−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
172+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
173+#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
174msgid "Search"
170msgstr "جست‌وجو"
175msgstr "جست‌وجو"
171
176
@@ -205,11 +210,11 @@ msgstr "ارسال"
205msgid "Manage Dash"
210msgid "Manage Dash"
206msgstr "مدیریت دش"
211msgstr "مدیریت دش"
207
212
208−#: qml/Dash/ScopesOverview.qml:408
213+#: qml/Dash/ScopesOverview.qml:417
209msgid "Done"
214msgid "Done"
210msgstr "انجام شد"
215msgstr "انجام شد"
211
216
212−#: qml/Dash/ScopesOverview.qml:434
217+#: qml/Dash/ScopesOverview.qml:443
213msgid "Store"
218msgid "Store"
214msgstr "فروشگاه"
219msgstr "فروشگاه"
215
220
@@ -225,7 +230,7 @@ msgstr "همه"
225msgid "Swipe to unlock"
230msgid "Swipe to unlock"
226msgstr "برای باز کردن قفل بکشد"
231msgstr "برای باز کردن قفل بکشد"
227
232
228−#: qml/Hud/HudParametrizedActionsPage.qml:132
233+#: qml/Hud/HudParametrizedActionsPage.qml:139
229msgid "Confirm"
234msgid "Confirm"
230msgstr "تأیید"
235msgstr "تأیید"
231
236
@@ -253,7 +258,7 @@ msgstr "نمایش گذرواژه"
253msgid "Enter SIM PIN"
258msgid "Enter SIM PIN"
254msgstr "PIN سیم‌کارت را وارد کنید"
259msgstr "PIN سیم‌کارت را وارد کنید"
255
260
256−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
261+#: qml/Notifications/NotificationMenuItemFactory.qml:121
257msgid "Sorry, incorrect PIN"
262msgid "Sorry, incorrect PIN"
258msgstr "متأسّفیم، PIN نادرست بود"
263msgstr "متأسّفیم، PIN نادرست بود"
259
264
@@ -297,11 +302,11 @@ msgstr "باز کردن قفل سیم‌کارت"
297msgid "Roaming"
302msgid "Roaming"
298msgstr "رومینگ"
303msgstr "رومینگ"
299
304
300−#: qml/Shell.qml:266
305+#: qml/Shell.qml:279
301msgid "Enter your passphrase"
306msgid "Enter your passphrase"
302msgstr "عبارت‌عبورتان را وارد کنید"
307msgstr "عبارت‌عبورتان را وارد کنید"
303
308
304−#: qml/Shell.qml:267
309+#: qml/Shell.qml:280
305msgid "Sorry, incorrect passphrase"
310msgid "Sorry, incorrect passphrase"
306msgstr "متأسّفیم، عبارت‌عبور نادرست بود"
311msgstr "متأسّفیم، عبارت‌عبور نادرست بود"
307
312
@@ -313,29 +318,29 @@ msgstr "رمزعبورتان را وارد کنید"
313msgid "Sorry, incorrect passcode"
318msgid "Sorry, incorrect passcode"
314msgstr "متأسّفیم، رمزعبور نادرست بود"
319msgstr "متأسّفیم، رمزعبور نادرست بود"
315
320
316−#: qml/Shell.qml:273
321+#: qml/Shell.qml:286
317#, qt-format
322#, qt-format
318msgid "Enter your %1"
323msgid "Enter your %1"
319msgstr "%1 خود را وارد کنید"
324msgstr "%1 خود را وارد کنید"
320
325
321−#: qml/Shell.qml:274
326+#: qml/Shell.qml:287
322#, qt-format
327#, qt-format
323msgid "Sorry, incorrect %1"
328msgid "Sorry, incorrect %1"
324msgstr "متأسّفیم، %1 نادرست بود"
329msgstr "متأسّفیم، %1 نادرست بود"
325
330
326−#: qml/Shell.qml:310
331+#: qml/Shell.qml:323
327msgid "Sorry, incorrect passphrase."
332msgid "Sorry, incorrect passphrase."
328msgstr "متأسّفیم، عبارت‌عبور نادرست است."
333msgstr "متأسّفیم، عبارت‌عبور نادرست است."
329
334
330−#: qml/Shell.qml:311
335+#: qml/Shell.qml:324
331msgid "Sorry, incorrect passcode."
336msgid "Sorry, incorrect passcode."
332msgstr "متأسّفیم، رمزعبور نادرست است."
337msgstr "متأسّفیم، رمزعبور نادرست است."
333
338
334−#: qml/Shell.qml:312
339+#: qml/Shell.qml:325
335msgid "This will be your last attempt."
340msgid "This will be your last attempt."
336msgstr "این آخرین تلاش شما خواهد بود."
341msgstr "این آخرین تلاش شما خواهد بود."
337
342
338−#: qml/Shell.qml:314
343+#: qml/Shell.qml:327
339msgid ""
344msgid ""
340"If passphrase is entered incorrectly, your phone will conduct a factory "
345"If passphrase is entered incorrectly, your phone will conduct a factory "
341"reset and all personal data will be deleted."
346"reset and all personal data will be deleted."
@@ -343,16 +348,10 @@ msgstr ""
343"اگر عبارت‌عبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
348"اگر عبارت‌عبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
344"اطّلاعات شخصی حذف خواهند شد."
349"اطّلاعات شخصی حذف خواهند شد."
345
350
346−#: qml/Shell.qml:315
351+#: qml/Shell.qml:328
347msgid ""
352msgid ""
348"If passcode is entered incorrectly, your phone will conduct a factory reset "
353"If passcode is entered incorrectly, your phone will conduct a factory reset "
349"and all personal data will be deleted."
354"and all personal data will be deleted."
350msgstr ""
355msgstr ""
351"اگر رمزعبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
356"اگر رمزعبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
352"اطّلاعات شخصی حذف خواهند شد."
357"اطّلاعات شخصی حذف خواهند شد."
353−
354−#~ msgid "Are you sure you would like to turn power off?"
355−#~ msgstr "مطمئنید که می‌خواهید خاموش کنید؟"
356−
357−#~ msgid "Restart"
358−#~ msgstr "شروع مجدّد"
po/fi.po+7−3
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-28 13:47+0000\n"
11"PO-Revision-Date: 2014-08-28 13:47+0000\n"
12"Last-Translator: Timo Jyrinki <timo.jyrinki@canonical.com>\n"
12"Last-Translator: Timo Jyrinki <timo.jyrinki@canonical.com>\n"
13"Language-Team: Finnish <fi@li.org>\n"
13"Language-Team: Finnish <fi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-30 07:46+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Sammuta"
81msgstr "Sammuta"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr ""
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Peru"
89msgstr "Peru"
po/fo.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-01-14 20:08+0000\n"
11"PO-Revision-Date: 2014-01-14 20:08+0000\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
13"Language-Team: Faroese <fo@li.org>\n"
13"Language-Team: Faroese <fo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "Leita"
171msgstr "Leita"
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "Vátta"
231msgstr "Vátta"
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/fr.po+11−5
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-29 10:31+0000\n"
11"PO-Revision-Date: 2014-08-29 10:31+0000\n"
12"Last-Translator: Sébastien Maes <nautilussebastien@gmail.com>\n"
12"Last-Translator: Sébastien Maes <nautilussebastien@gmail.com>\n"
13"Language-Team: French <fr@li.org>\n"
13"Language-Team: French <fr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-30 07:46+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -66,18 +66,24 @@ msgstr "Êtes-vous sûr de vouloir redémarrer ?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "Alimentation"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76+"Êtes-vous sûr de vouloir\n"
77+"couper l'alimentation ?"
76
78
77#: qml/Components/Dialogs.qml:147
79#: qml/Components/Dialogs.qml:147
78msgid "Power off"
80msgid "Power off"
79msgstr "Éteindre"
81msgstr "Éteindre"
80
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr ""
86+
81#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
88msgid "Cancel"
83msgstr "Annuler"
89msgstr "Annuler"
@@ -217,7 +223,7 @@ msgstr "Terminé"
217
223
218#: qml/Dash/ScopesOverview.qml:443
224#: qml/Dash/ScopesOverview.qml:443
219msgid "Store"
225msgid "Store"
220−msgstr ""
226+msgstr "Logithèque"
221
227
222#: qml/Dash/ScopesOverviewTab.qml:36
228#: qml/Dash/ScopesOverviewTab.qml:36
223msgid "Favorites"
229msgid "Favorites"
po/gd.po+32−20
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-09-10 16:35+0000\n"
11+"PO-Revision-Date: 2014-09-12 16:34+0000\n"
12"Last-Translator: GunChleoc <Unknown>\n"
12"Last-Translator: GunChleoc <Unknown>\n"
13−"Language-Team: Fòram na Gàidhlig http://www.foramnagaidhlig.net\n"
13+"Language-Team: Fòram na Gàidhlig\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-11 07:27+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18"X-Generator: Launchpad (build 17196)\n"
18"X-Generator: Launchpad (build 17196)\n"
19"Language: gd\n"
19"Language: gd\n"
20
20
@@ -37,7 +37,7 @@ msgstr "Clàraich a-mach"
37
37
38#: qml/Components/Dialogs.qml:71
38#: qml/Components/Dialogs.qml:71
39msgid "Are you sure you want to log out?"
39msgid "Are you sure you want to log out?"
40−msgstr ""
40+msgstr "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?"
41
41
42#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
43#: qml/Components/Dialogs.qml:122
43#: qml/Components/Dialogs.qml:122
@@ -55,7 +55,7 @@ msgstr "Dùin sìos"
55
55
56#: qml/Components/Dialogs.qml:95
56#: qml/Components/Dialogs.qml:95
57msgid "Are you sure you want to shut down?"
57msgid "Are you sure you want to shut down?"
58−msgstr ""
58+msgstr "A bheil thu cinnteach gu bheil thu airson a dhùnadh sìos?"
59
59
60#: qml/Components/Dialogs.qml:119
60#: qml/Components/Dialogs.qml:119
61msgid "Reboot"
61msgid "Reboot"
@@ -63,7 +63,7 @@ msgstr "Ath-thòisich an siostam"
63
63
64#: qml/Components/Dialogs.qml:120
64#: qml/Components/Dialogs.qml:120
65msgid "Are you sure you want to reboot?"
65msgid "Are you sure you want to reboot?"
66−msgstr ""
66+msgstr "A bheil thu cinnteach gu bheil thu airson tòiseachadh às ùr?"
67
67
68#: qml/Components/Dialogs.qml:144
68#: qml/Components/Dialogs.qml:144
69msgid "Power"
69msgid "Power"
@@ -74,11 +74,17 @@ msgid ""
74"Are you sure you would like\n"
74"Are you sure you would like\n"
75"to power off?"
75"to power off?"
76msgstr ""
76msgstr ""
77+"A bheil thu cinnteach gu bheil thu\n"
78+"airson a' chumhachd a chur dheth?"
77
79
78#: qml/Components/Dialogs.qml:147
80#: qml/Components/Dialogs.qml:147
79msgid "Power off"
81msgid "Power off"
80msgstr "Cuir a' chumhachd dheth"
82msgstr "Cuir a' chumhachd dheth"
81
83
84+#: qml/Components/Dialogs.qml:157
85+msgid "Restart"
86+msgstr ""
87+
82#: qml/Components/Dialogs.qml:157
88#: qml/Components/Dialogs.qml:157
83msgid "Cancel"
89msgid "Cancel"
84msgstr "Sguir dheth"
90msgstr "Sguir dheth"
@@ -143,7 +149,7 @@ msgstr "Fuirich ort"
143
149
144#: qml/Components/Lockscreen.qml:172
150#: qml/Components/Lockscreen.qml:172
145msgid "Too many incorrect attempts"
151msgid "Too many incorrect attempts"
146−msgstr ""
152+msgstr "Cus oidhirpean leis nach do shoirbhich"
147
153
148#: qml/Components/Lockscreen.qml:206
154#: qml/Components/Lockscreen.qml:206
149msgid "Emergency Call"
155msgid "Emergency Call"
@@ -181,11 +187,11 @@ msgstr "Roghainnean"
181
187
182#: qml/Dash/PageHeader.qml:279
188#: qml/Dash/PageHeader.qml:279
183msgid "Remove from Favorites"
189msgid "Remove from Favorites"
184−msgstr ""
190+msgstr "Thoir air falbh o na h-annsachdan"
185
191
186#: qml/Dash/PageHeader.qml:279
192#: qml/Dash/PageHeader.qml:279
187msgid "Add to Favorites"
193msgid "Add to Favorites"
188−msgstr ""
194+msgstr "Cuir ris na h-annsachdan"
189
195
190#: qml/Dash/Previews/PreviewActionCombo.qml:34
196#: qml/Dash/Previews/PreviewActionCombo.qml:34
191msgid "More..."
197msgid "More..."
@@ -261,7 +267,7 @@ msgstr "Cuir a-steach PIN an t-SIM"
261
267
262#: qml/Notifications/NotificationMenuItemFactory.qml:121
268#: qml/Notifications/NotificationMenuItemFactory.qml:121
263msgid "Sorry, incorrect PIN"
269msgid "Sorry, incorrect PIN"
264−msgstr ""
270+msgstr "Duilich ach tha a' PIN cearr"
265
271
266#: qml/Panel/ActiveCallHint.qml:77
272#: qml/Panel/ActiveCallHint.qml:77
267msgid "Tap to return to call..."
273msgid "Tap to return to call..."
@@ -305,50 +311,56 @@ msgstr "Air fàrsan"
305
311
306#: qml/Shell.qml:279
312#: qml/Shell.qml:279
307msgid "Enter your passphrase"
313msgid "Enter your passphrase"
308−msgstr ""
314+msgstr "Cuir an abairt-fhaire agad a-steach"
309
315
310#: qml/Shell.qml:280
316#: qml/Shell.qml:280
311msgid "Sorry, incorrect passphrase"
317msgid "Sorry, incorrect passphrase"
312−msgstr ""
318+msgstr "Duilich ach tha an abairt-fhaire cearr"
313
319
314#: qml/Shell.qml:282
320#: qml/Shell.qml:282
315msgid "Enter your passcode"
321msgid "Enter your passcode"
316−msgstr ""
322+msgstr "Cuir an còd-faire agad a-steach"
317
323
318#: qml/Shell.qml:283
324#: qml/Shell.qml:283
319msgid "Sorry, incorrect passcode"
325msgid "Sorry, incorrect passcode"
320−msgstr ""
326+msgstr "Duilich ach tha an còd-faire cearr"
321
327
322#: qml/Shell.qml:286
328#: qml/Shell.qml:286
323#, qt-format
329#, qt-format
324msgid "Enter your %1"
330msgid "Enter your %1"
325−msgstr ""
331+msgstr "Cuir a-steach a' %1 agad"
326
332
327#: qml/Shell.qml:287
333#: qml/Shell.qml:287
328#, qt-format
334#, qt-format
329msgid "Sorry, incorrect %1"
335msgid "Sorry, incorrect %1"
330−msgstr ""
336+msgstr "Duilich ach tha a' %1 cearr"
331
337
332#: qml/Shell.qml:323
338#: qml/Shell.qml:323
333msgid "Sorry, incorrect passphrase."
339msgid "Sorry, incorrect passphrase."
334−msgstr ""
340+msgstr "Duilich ach tha an abairt-fhaire cearr."
335
341
336#: qml/Shell.qml:324
342#: qml/Shell.qml:324
337msgid "Sorry, incorrect passcode."
343msgid "Sorry, incorrect passcode."
338−msgstr ""
344+msgstr "Duilich ach tha an còd-faire cearr."
339
345
340#: qml/Shell.qml:325
346#: qml/Shell.qml:325
341msgid "This will be your last attempt."
347msgid "This will be your last attempt."
342−msgstr ""
348+msgstr "Seo an oidhirp mu dheireadh agad."
343
349
344#: qml/Shell.qml:327
350#: qml/Shell.qml:327
345msgid ""
351msgid ""
346"If passphrase is entered incorrectly, your phone will conduct a factory "
352"If passphrase is entered incorrectly, your phone will conduct a factory "
347"reset and all personal data will be deleted."
353"reset and all personal data will be deleted."
348msgstr ""
354msgstr ""
355+"Ma thèid an abairt-fhaire a chur a-steach mar bu chòir, thèid an fhòn agad a "
356+"ath-shuidheachadh air roghainnean an fhactaraidh agus thèid gach dàta "
357+"pearsanta a sguabadh às."
349
358
350#: qml/Shell.qml:328
359#: qml/Shell.qml:328
351msgid ""
360msgid ""
352"If passcode is entered incorrectly, your phone will conduct a factory reset "
361"If passcode is entered incorrectly, your phone will conduct a factory reset "
353"and all personal data will be deleted."
362"and all personal data will be deleted."
354msgstr ""
363msgstr ""
364+"Ma thèid an còd-faire a chur a-steach mar bu chòir, thèid an fhòn agad a ath-"
365+"shuidheachadh air roghainnean an fhactaraidh agus thèid gach dàta pearsanta "
366+"a sguabadh às."
po/gl.po+41−45
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-08-22 15:16+0000\n"
11+"PO-Revision-Date: 2014-09-20 12:08+0000\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
13"Language-Team: Galician <gl@li.org>\n"
13"Language-Team: Galician <gl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-21 06:25+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr "Contrasinal : "
22msgstr "Contrasinal : "
23
23
@@ -32,53 +32,57 @@ msgstr "Eliminar o atallo"
32
32
33#: qml/Components/Dialogs.qml:70
33#: qml/Components/Dialogs.qml:70
34msgid "Log out"
34msgid "Log out"
35−msgstr ""
35+msgstr "Saír da sesión"
36
36
37#: qml/Components/Dialogs.qml:71
37#: qml/Components/Dialogs.qml:71
38msgid "Are you sure you want to log out?"
38msgid "Are you sure you want to log out?"
39−msgstr ""
39+msgstr "Está seguro de querer pechar a sesión?"
40
40
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:122
42#: qml/Components/Dialogs.qml:122
43msgid "No"
43msgid "No"
44−msgstr ""
44+msgstr "Non"
45
45
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
47#: qml/Components/Dialogs.qml:129
47#: qml/Components/Dialogs.qml:129
48msgid "Yes"
48msgid "Yes"
49−msgstr ""
49+msgstr "Si"
50
50
51#: qml/Components/Dialogs.qml:94
51#: qml/Components/Dialogs.qml:94
52msgid "Shut down"
52msgid "Shut down"
53−msgstr ""
53+msgstr "Apagar"
54
54
55#: qml/Components/Dialogs.qml:95
55#: qml/Components/Dialogs.qml:95
56msgid "Are you sure you want to shut down?"
56msgid "Are you sure you want to shut down?"
57−msgstr ""
57+msgstr "Está seguro de querer apagar?"
58
58
59#: qml/Components/Dialogs.qml:119
59#: qml/Components/Dialogs.qml:119
60msgid "Reboot"
60msgid "Reboot"
61−msgstr ""
61+msgstr "Reiniciar"
62
62
63#: qml/Components/Dialogs.qml:120
63#: qml/Components/Dialogs.qml:120
64msgid "Are you sure you want to reboot?"
64msgid "Are you sure you want to reboot?"
65−msgstr ""
65+msgstr "Está seguro de querer reiniciar?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "Enerxía"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75−msgstr ""
75+msgstr "Está seguro de querer apagar?"
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr "Apagar"
79msgstr "Apagar"
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr "Reiniciar"
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr "Cancelar"
87msgstr "Cancelar"
84
88
@@ -165,21 +169,22 @@ msgstr "Ver menos"
165msgid "See all"
169msgid "See all"
166msgstr "Ver todo"
170msgstr "Ver todo"
167
171
168−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
172+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
173+#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
174msgid "Search"
170msgstr "Buscar"
175msgstr "Buscar"
171
176
172#: qml/Dash/PageHeader.qml:270
177#: qml/Dash/PageHeader.qml:270
173msgid "Settings"
178msgid "Settings"
174−msgstr ""
179+msgstr "Axustes"
175
180
176#: qml/Dash/PageHeader.qml:279
181#: qml/Dash/PageHeader.qml:279
177msgid "Remove from Favorites"
182msgid "Remove from Favorites"
178−msgstr ""
183+msgstr "Eliminar dos favoritos"
179
184
180#: qml/Dash/PageHeader.qml:279
185#: qml/Dash/PageHeader.qml:279
181msgid "Add to Favorites"
186msgid "Add to Favorites"
182−msgstr ""
187+msgstr "Engadir aos favoritos"
183
188
184#: qml/Dash/Previews/PreviewActionCombo.qml:34
189#: qml/Dash/Previews/PreviewActionCombo.qml:34
185msgid "More..."
190msgid "More..."
@@ -205,11 +210,11 @@ msgstr "Enviar"
205msgid "Manage Dash"
210msgid "Manage Dash"
206msgstr "Xestión do Panel"
211msgstr "Xestión do Panel"
207
212
208−#: qml/Dash/ScopesOverview.qml:408
213+#: qml/Dash/ScopesOverview.qml:417
209msgid "Done"
214msgid "Done"
210msgstr "Feito"
215msgstr "Feito"
211
216
212−#: qml/Dash/ScopesOverview.qml:434
217+#: qml/Dash/ScopesOverview.qml:443
213msgid "Store"
218msgid "Store"
214msgstr "Tenda"
219msgstr "Tenda"
215
220
@@ -225,7 +230,7 @@ msgstr "Todos"
225msgid "Swipe to unlock"
230msgid "Swipe to unlock"
226msgstr "Esvare o dedo para desbloquear"
231msgstr "Esvare o dedo para desbloquear"
227
232
228−#: qml/Hud/HudParametrizedActionsPage.qml:132
233+#: qml/Hud/HudParametrizedActionsPage.qml:139
229msgid "Confirm"
234msgid "Confirm"
230msgstr "Confirmar"
235msgstr "Confirmar"
231
236
@@ -253,7 +258,7 @@ msgstr "Mostrar contrasinal"
253msgid "Enter SIM PIN"
258msgid "Enter SIM PIN"
254msgstr "Introduza o PIN da SIM"
259msgstr "Introduza o PIN da SIM"
255
260
256−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
261+#: qml/Notifications/NotificationMenuItemFactory.qml:121
257msgid "Sorry, incorrect PIN"
262msgid "Sorry, incorrect PIN"
258msgstr "Sentímolo, o PIN é incorrecto"
263msgstr "Sentímolo, o PIN é incorrecto"
259
264
@@ -297,45 +302,45 @@ msgstr "Desbloquear a SIM"
297msgid "Roaming"
302msgid "Roaming"
298msgstr "Itinerancia"
303msgstr "Itinerancia"
299
304
300−#: qml/Shell.qml:266
305+#: qml/Shell.qml:279
301msgid "Enter your passphrase"
306msgid "Enter your passphrase"
302msgstr "Introduza a frase de paso"
307msgstr "Introduza a frase de paso"
303
308
304−#: qml/Shell.qml:267
309+#: qml/Shell.qml:280
305msgid "Sorry, incorrect passphrase"
310msgid "Sorry, incorrect passphrase"
306msgstr "Sentímolo a frase é incorrecta"
311msgstr "Sentímolo a frase é incorrecta"
307
312
308#: qml/Shell.qml:282
313#: qml/Shell.qml:282
309msgid "Enter your passcode"
314msgid "Enter your passcode"
310−msgstr ""
315+msgstr "Introduza a clave"
311
316
312#: qml/Shell.qml:283
317#: qml/Shell.qml:283
313msgid "Sorry, incorrect passcode"
318msgid "Sorry, incorrect passcode"
314−msgstr ""
319+msgstr "Sentímolo, a clave é incorrecta"
315
320
316−#: qml/Shell.qml:273
321+#: qml/Shell.qml:286
317#, qt-format
322#, qt-format
318msgid "Enter your %1"
323msgid "Enter your %1"
319msgstr "Introducir %1"
324msgstr "Introducir %1"
320
325
321−#: qml/Shell.qml:274
326+#: qml/Shell.qml:287
322#, qt-format
327#, qt-format
323msgid "Sorry, incorrect %1"
328msgid "Sorry, incorrect %1"
324msgstr "Sentímolo, %1 incorrecto"
329msgstr "Sentímolo, %1 incorrecto"
325
330
326−#: qml/Shell.qml:310
331+#: qml/Shell.qml:323
327msgid "Sorry, incorrect passphrase."
332msgid "Sorry, incorrect passphrase."
328msgstr "Sentímolo é incorrecta."
333msgstr "Sentímolo é incorrecta."
329
334
330−#: qml/Shell.qml:311
335+#: qml/Shell.qml:324
331msgid "Sorry, incorrect passcode."
336msgid "Sorry, incorrect passcode."
332msgstr "Sentímolo, a clave é incorrecta."
337msgstr "Sentímolo, a clave é incorrecta."
333
338
334−#: qml/Shell.qml:312
339+#: qml/Shell.qml:325
335msgid "This will be your last attempt."
340msgid "This will be your last attempt."
336msgstr "Este será o seu último intento."
341msgstr "Este será o seu último intento."
337
342
338−#: qml/Shell.qml:314
343+#: qml/Shell.qml:327
339msgid ""
344msgid ""
340"If passphrase is entered incorrectly, your phone will conduct a factory "
345"If passphrase is entered incorrectly, your phone will conduct a factory "
341"reset and all personal data will be deleted."
346"reset and all personal data will be deleted."
@@ -343,19 +348,10 @@ msgstr ""
343"Se a frase de paso introducida é incorrecta, o teléfono restabelecerá os "
348"Se a frase de paso introducida é incorrecta, o teléfono restabelecerá os "
344"valores de fábrica e perderá todos os datos persoais."
349"valores de fábrica e perderá todos os datos persoais."
345
350
346−#: qml/Shell.qml:315
351+#: qml/Shell.qml:328
347msgid ""
352msgid ""
348"If passcode is entered incorrectly, your phone will conduct a factory reset "
353"If passcode is entered incorrectly, your phone will conduct a factory reset "
349"and all personal data will be deleted."
354"and all personal data will be deleted."
350msgstr ""
355msgstr ""
351"Se a clave introducida é incorrecta, o teléfono restabelecerá os valores de "
356"Se a clave introducida é incorrecta, o teléfono restabelecerá os valores de "
352"fábrica e perderá todos os datos persoais."
357"fábrica e perderá todos os datos persoais."
353−
354−#~ msgid "Are you sure you would like to turn power off?"
355−#~ msgstr "Está certo de apagar o aparato?"
356−
357−#~ msgid "Restart"
358−#~ msgstr "Reiniciar"
359−
360−#~ msgid "Enter your PIN"
361−#~ msgstr "Introduza o PIN"
po/he.po+25−26
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-23 14:19+0000\n"
11"PO-Revision-Date: 2014-08-23 14:19+0000\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
13"Language-Team: Hebrew <he@li.org>\n"
13"Language-Team: Hebrew <he@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr "ססמה: "
22msgstr "ססמה: "
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr "כיבוי"
79msgstr "כיבוי"
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr "ביטול"
87msgstr "ביטול"
84
88
@@ -163,7 +167,8 @@ msgstr "לראות פחות"
163msgid "See all"
167msgid "See all"
164msgstr "להציג הכול"
168msgstr "להציג הכול"
165
169
166−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
170+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
171+#: qml/Panel/SearchIndicator.qml:27
167msgid "Search"
172msgid "Search"
168msgstr "חיפוש"
173msgstr "חיפוש"
169
174
@@ -203,11 +208,11 @@ msgstr "שליחה"
203msgid "Manage Dash"
208msgid "Manage Dash"
204msgstr ""
209msgstr ""
205
210
206−#: qml/Dash/ScopesOverview.qml:408
211+#: qml/Dash/ScopesOverview.qml:417
207msgid "Done"
212msgid "Done"
208msgstr "סיימתי"
213msgstr "סיימתי"
209
214
210−#: qml/Dash/ScopesOverview.qml:434
215+#: qml/Dash/ScopesOverview.qml:443
211msgid "Store"
216msgid "Store"
212msgstr "אחסון"
217msgstr "אחסון"
213
218
@@ -223,7 +228,7 @@ msgstr "הכול"
223msgid "Swipe to unlock"
228msgid "Swipe to unlock"
224msgstr "יש להחליק לפתיחה"
229msgstr "יש להחליק לפתיחה"
225
230
226−#: qml/Hud/HudParametrizedActionsPage.qml:132
231+#: qml/Hud/HudParametrizedActionsPage.qml:139
227msgid "Confirm"
232msgid "Confirm"
228msgstr "אישור"
233msgstr "אישור"
229
234
@@ -251,7 +256,7 @@ msgstr "הצגת הססמה"
251msgid "Enter SIM PIN"
256msgid "Enter SIM PIN"
252msgstr ""
257msgstr ""
253
258
254−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
259+#: qml/Notifications/NotificationMenuItemFactory.qml:121
255msgid "Sorry, incorrect PIN"
260msgid "Sorry, incorrect PIN"
256msgstr ""
261msgstr ""
257
262
@@ -295,11 +300,11 @@ msgstr ""
295msgid "Roaming"
300msgid "Roaming"
296msgstr "נדידה"
301msgstr "נדידה"
297
302
298−#: qml/Shell.qml:266
303+#: qml/Shell.qml:279
299msgid "Enter your passphrase"
304msgid "Enter your passphrase"
300msgstr "נא להזין את מילת הצופן שלך"
305msgstr "נא להזין את מילת הצופן שלך"
301
306
302−#: qml/Shell.qml:267
307+#: qml/Shell.qml:280
303msgid "Sorry, incorrect passphrase"
308msgid "Sorry, incorrect passphrase"
304msgstr "מילת הצופן שגויה, עמך הסליחה."
309msgstr "מילת הצופן שגויה, עמך הסליחה."
305
310
@@ -311,42 +316,36 @@ msgstr ""
311msgid "Sorry, incorrect passcode"
316msgid "Sorry, incorrect passcode"
312msgstr ""
317msgstr ""
313
318
314−#: qml/Shell.qml:273
319+#: qml/Shell.qml:286
315#, qt-format
320#, qt-format
316msgid "Enter your %1"
321msgid "Enter your %1"
317msgstr ""
322msgstr ""
318
323
319−#: qml/Shell.qml:274
324+#: qml/Shell.qml:287
320#, qt-format
325#, qt-format
321msgid "Sorry, incorrect %1"
326msgid "Sorry, incorrect %1"
322msgstr ""
327msgstr ""
323
328
324−#: qml/Shell.qml:310
329+#: qml/Shell.qml:323
325msgid "Sorry, incorrect passphrase."
330msgid "Sorry, incorrect passphrase."
326msgstr "מילת הצופן שגויה, עמך הסליחה."
331msgstr "מילת הצופן שגויה, עמך הסליחה."
327
332
328−#: qml/Shell.qml:311
333+#: qml/Shell.qml:324
329msgid "Sorry, incorrect passcode."
334msgid "Sorry, incorrect passcode."
330msgstr "הצופן שגוי, עם הסליחה."
335msgstr "הצופן שגוי, עם הסליחה."
331
336
332−#: qml/Shell.qml:312
337+#: qml/Shell.qml:325
333msgid "This will be your last attempt."
338msgid "This will be your last attempt."
334msgstr "זה יהיה הניסיון האחרון שלך."
339msgstr "זה יהיה הניסיון האחרון שלך."
335
340
336−#: qml/Shell.qml:314
341+#: qml/Shell.qml:327
337msgid ""
342msgid ""
338"If passphrase is entered incorrectly, your phone will conduct a factory "
343"If passphrase is entered incorrectly, your phone will conduct a factory "
339"reset and all personal data will be deleted."
344"reset and all personal data will be deleted."
340msgstr ""
345msgstr ""
341
346
342−#: qml/Shell.qml:315
347+#: qml/Shell.qml:328
343msgid ""
348msgid ""
344"If passcode is entered incorrectly, your phone will conduct a factory reset "
349"If passcode is entered incorrectly, your phone will conduct a factory reset "
345"and all personal data will be deleted."
350"and all personal data will be deleted."
346msgstr ""
351msgstr ""
347−
348−#~ msgid "Restart"
349−#~ msgstr "הפעלה מחדש"
350−
351−#~ msgid "Are you sure you would like to turn power off?"
352−#~ msgstr "האם ברצונך לכבות את המכשיר?"
po/hi.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-01-15 01:49+0000\n"
11"PO-Revision-Date: 2014-01-15 01:49+0000\n"
12"Last-Translator: Siddhanathan S. <Unknown>\n"
12"Last-Translator: Siddhanathan S. <Unknown>\n"
13"Language-Team: Hindi <hi@li.org>\n"
13"Language-Team: Hindi <hi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "खोजें"
171msgstr "खोजें"
167
172
@@ -201,11 +206,11 @@ msgstr "भेजें"
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr ""
231msgstr ""
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/hr.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Croatian <hr@li.org>\n"
13"Language-Team: Croatian <hr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "Pretraživanje"
171msgstr "Pretraživanje"
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "Potvrdi"
231msgstr "Potvrdi"
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/hu.po+8−4
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-08-30 08:11+0000\n"
11+"PO-Revision-Date: 2014-09-22 08:09+0000\n"
12"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
12"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-31 07:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-23 07:21+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Kikapcsolás"
81msgstr "Kikapcsolás"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Újraindítás"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Mégse"
89msgstr "Mégse"
po/hy.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
13"Language-Team: Armenian <hy@li.org>\n"
13"Language-Team: Armenian <hy@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:29+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "Որոնում"
171msgstr "Որոնում"
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "Հաստատել"
231msgstr "Հաստատել"
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/id.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Indonesian <id@li.org>\n"
13"Language-Team: Indonesian <id@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr ""
171msgstr ""
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr ""
231msgstr ""
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/is.po+46−41
@@ -9,20 +9,20 @@ msgid ""
9msgstr ""
9msgstr ""
10"Project-Id-Version: po_unity8-is\n"
10"Project-Id-Version: po_unity8-is\n"
11"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
12−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
12+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
13−"PO-Revision-Date: 2014-07-31 16:10+0000\n"
13+"PO-Revision-Date: 2014-09-21 12:07+0000\n"
14"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
14"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
15"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
15"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
16"MIME-Version: 1.0\n"
16"MIME-Version: 1.0\n"
17"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Type: text/plain; charset=UTF-8\n"
18"Content-Transfer-Encoding: 8bit\n"
18"Content-Transfer-Encoding: 8bit\n"
19−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
19+"X-Launchpad-Export-Date: 2014-09-22 07:04+0000\n"
20−"X-Generator: Launchpad (build 17174)\n"
20+"X-Generator: Launchpad (build 17196)\n"
21"Language: is\n"
21"Language: is\n"
22
22
23−#: plugins/LightDM/Greeter.cpp:129
23+#: plugins/LightDM/Greeter.cpp:130
24msgid "Password: "
24msgid "Password: "
25−msgstr ""
25+msgstr "Lykilorð: "
26
26
27#: plugins/Unity/Launcher/launcheritem.cpp:43
27#: plugins/Unity/Launcher/launcheritem.cpp:43
28#: plugins/Unity/Launcher/launcheritem.cpp:73
28#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -35,7 +35,7 @@ msgstr "Losa flýtilykil"
35
35
36#: qml/Components/Dialogs.qml:70
36#: qml/Components/Dialogs.qml:70
37msgid "Log out"
37msgid "Log out"
38−msgstr ""
38+msgstr "Útskráning"
39
39
40#: qml/Components/Dialogs.qml:71
40#: qml/Components/Dialogs.qml:71
41msgid "Are you sure you want to log out?"
41msgid "Are you sure you want to log out?"
@@ -44,16 +44,16 @@ msgstr ""
44#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
44#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
45#: qml/Components/Dialogs.qml:122
45#: qml/Components/Dialogs.qml:122
46msgid "No"
46msgid "No"
47−msgstr ""
47+msgstr "Nei"
48
48
49#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
49#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
50#: qml/Components/Dialogs.qml:129
50#: qml/Components/Dialogs.qml:129
51msgid "Yes"
51msgid "Yes"
52−msgstr ""
52+msgstr "Já"
53
53
54#: qml/Components/Dialogs.qml:94
54#: qml/Components/Dialogs.qml:94
55msgid "Shut down"
55msgid "Shut down"
56−msgstr ""
56+msgstr "Slökkva á tölvunni"
57
57
58#: qml/Components/Dialogs.qml:95
58#: qml/Components/Dialogs.qml:95
59msgid "Are you sure you want to shut down?"
59msgid "Are you sure you want to shut down?"
@@ -61,7 +61,7 @@ msgstr ""
61
61
62#: qml/Components/Dialogs.qml:119
62#: qml/Components/Dialogs.qml:119
63msgid "Reboot"
63msgid "Reboot"
64−msgstr ""
64+msgstr "Endurræsa"
65
65
66#: qml/Components/Dialogs.qml:120
66#: qml/Components/Dialogs.qml:120
67msgid "Are you sure you want to reboot?"
67msgid "Are you sure you want to reboot?"
@@ -69,7 +69,7 @@ msgstr ""
69
69
70#: qml/Components/Dialogs.qml:144
70#: qml/Components/Dialogs.qml:144
71msgid "Power"
71msgid "Power"
72−msgstr ""
72+msgstr "Aflstjórnun"
73
73
74#: qml/Components/Dialogs.qml:145
74#: qml/Components/Dialogs.qml:145
75msgid ""
75msgid ""
@@ -77,13 +77,17 @@ msgid ""
77"to power off?"
77"to power off?"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/Dialogs.qml:144
80+#: qml/Components/Dialogs.qml:147
81msgid "Power off"
81msgid "Power off"
82−msgstr ""
82+msgstr "Slökkva"
83
83
84−#: qml/Components/Dialogs.qml:162
84+#: qml/Components/Dialogs.qml:157
85+msgid "Restart"
86+msgstr "Endurræsa"
87+
88+#: qml/Components/Dialogs.qml:157
85msgid "Cancel"
89msgid "Cancel"
86−msgstr ""
90+msgstr "Hætta við"
87
91
88#: qml/Components/EdgeDemoOverlay.qml:151
92#: qml/Components/EdgeDemoOverlay.qml:151
89msgid "Skip intro"
93msgid "Skip intro"
@@ -136,7 +140,7 @@ msgstr ""
136
140
137#: qml/Components/Lockscreen.qml:167
141#: qml/Components/Lockscreen.qml:167
138msgid "Please wait"
142msgid "Please wait"
139−msgstr ""
143+msgstr "Bíddu aðeins"
140
144
141#: qml/Components/Lockscreen.qml:172
145#: qml/Components/Lockscreen.qml:172
142msgid "Too many incorrect attempts"
146msgid "Too many incorrect attempts"
@@ -167,21 +171,22 @@ msgstr "Sjá minna"
167msgid "See all"
171msgid "See all"
168msgstr "Sjá allt"
172msgstr "Sjá allt"
169
173
170−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
174+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
175+#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
176msgid "Search"
172msgstr "Leita"
177msgstr "Leita"
173
178
174#: qml/Dash/PageHeader.qml:270
179#: qml/Dash/PageHeader.qml:270
175msgid "Settings"
180msgid "Settings"
176−msgstr ""
181+msgstr "Stillingar"
177
182
178#: qml/Dash/PageHeader.qml:279
183#: qml/Dash/PageHeader.qml:279
179msgid "Remove from Favorites"
184msgid "Remove from Favorites"
180−msgstr ""
185+msgstr "Fjarlægja úr Eftirlæti"
181
186
182#: qml/Dash/PageHeader.qml:279
187#: qml/Dash/PageHeader.qml:279
183msgid "Add to Favorites"
188msgid "Add to Favorites"
184−msgstr ""
189+msgstr "Bæta við Eftirlæti"
185
190
186#: qml/Dash/Previews/PreviewActionCombo.qml:34
191#: qml/Dash/Previews/PreviewActionCombo.qml:34
187msgid "More..."
192msgid "More..."
@@ -207,27 +212,27 @@ msgstr "Senda"
207msgid "Manage Dash"
212msgid "Manage Dash"
208msgstr ""
213msgstr ""
209
214
210−#: qml/Dash/ScopesOverview.qml:408
215+#: qml/Dash/ScopesOverview.qml:417
211msgid "Done"
216msgid "Done"
212−msgstr ""
217+msgstr "Lokið"
213
218
214−#: qml/Dash/ScopesOverview.qml:434
219+#: qml/Dash/ScopesOverview.qml:443
215msgid "Store"
220msgid "Store"
216−msgstr ""
221+msgstr "Geyma"
217
222
218#: qml/Dash/ScopesOverviewTab.qml:36
223#: qml/Dash/ScopesOverviewTab.qml:36
219msgid "Favorites"
224msgid "Favorites"
220−msgstr ""
225+msgstr "Eftirlæti"
221
226
222#: qml/Dash/ScopesOverviewTab.qml:54
227#: qml/Dash/ScopesOverviewTab.qml:54
223msgid "All"
228msgid "All"
224−msgstr ""
229+msgstr "Allt"
225
230
226#: qml/Greeter/Greeter.qml:157
231#: qml/Greeter/Greeter.qml:157
227msgid "Swipe to unlock"
232msgid "Swipe to unlock"
228msgstr "Strjúka til að aflæsa"
233msgstr "Strjúka til að aflæsa"
229
234
230−#: qml/Hud/HudParametrizedActionsPage.qml:132
235+#: qml/Hud/HudParametrizedActionsPage.qml:139
231msgid "Confirm"
236msgid "Confirm"
232msgstr "Staðfesta"
237msgstr "Staðfesta"
233
238
@@ -253,11 +258,11 @@ msgstr "Birta lykilorð"
253
258
254#: qml/Notifications/NotificationMenuItemFactory.qml:120
259#: qml/Notifications/NotificationMenuItemFactory.qml:120
255msgid "Enter SIM PIN"
260msgid "Enter SIM PIN"
256−msgstr ""
261+msgstr "Settu inn PIN-númer SIM-kortsins"
257
262
258−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
263+#: qml/Notifications/NotificationMenuItemFactory.qml:121
259msgid "Sorry, incorrect PIN"
264msgid "Sorry, incorrect PIN"
260−msgstr ""
265+msgstr "Því miður, rangt PIN-númer"
261
266
262#: qml/Panel/ActiveCallHint.qml:77
267#: qml/Panel/ActiveCallHint.qml:77
263msgid "Tap to return to call..."
268msgid "Tap to return to call..."
@@ -293,17 +298,17 @@ msgstr "Mistókst, sláðu létt til að reyna aftur"
293
298
294#: qml/Panel/Indicators/ModemInfoItem.qml:105
299#: qml/Panel/Indicators/ModemInfoItem.qml:105
295msgid "Unlock SIM"
300msgid "Unlock SIM"
296−msgstr ""
301+msgstr "Aflæsa SIM-korti"
297
302
298#: qml/Panel/Indicators/RoamingIndication.qml:27
303#: qml/Panel/Indicators/RoamingIndication.qml:27
299msgid "Roaming"
304msgid "Roaming"
300msgstr ""
305msgstr ""
301
306
302−#: qml/Shell.qml:266
307+#: qml/Shell.qml:279
303msgid "Enter your passphrase"
308msgid "Enter your passphrase"
304msgstr ""
309msgstr ""
305
310
306−#: qml/Shell.qml:267
311+#: qml/Shell.qml:280
307msgid "Sorry, incorrect passphrase"
312msgid "Sorry, incorrect passphrase"
308msgstr ""
313msgstr ""
309
314
@@ -315,35 +320,35 @@ msgstr ""
315msgid "Sorry, incorrect passcode"
320msgid "Sorry, incorrect passcode"
316msgstr ""
321msgstr ""
317
322
318−#: qml/Shell.qml:273
323+#: qml/Shell.qml:286
319#, qt-format
324#, qt-format
320msgid "Enter your %1"
325msgid "Enter your %1"
321msgstr ""
326msgstr ""
322
327
323−#: qml/Shell.qml:274
328+#: qml/Shell.qml:287
324#, qt-format
329#, qt-format
325msgid "Sorry, incorrect %1"
330msgid "Sorry, incorrect %1"
326msgstr ""
331msgstr ""
327
332
328−#: qml/Shell.qml:310
333+#: qml/Shell.qml:323
329msgid "Sorry, incorrect passphrase."
334msgid "Sorry, incorrect passphrase."
330msgstr ""
335msgstr ""
331
336
332−#: qml/Shell.qml:311
337+#: qml/Shell.qml:324
333msgid "Sorry, incorrect passcode."
338msgid "Sorry, incorrect passcode."
334msgstr ""
339msgstr ""
335
340
336−#: qml/Shell.qml:312
341+#: qml/Shell.qml:325
337msgid "This will be your last attempt."
342msgid "This will be your last attempt."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:314
345+#: qml/Shell.qml:327
341msgid ""
346msgid ""
342"If passphrase is entered incorrectly, your phone will conduct a factory "
347"If passphrase is entered incorrectly, your phone will conduct a factory "
343"reset and all personal data will be deleted."
348"reset and all personal data will be deleted."
344msgstr ""
349msgstr ""
345
350
346−#: qml/Shell.qml:315
351+#: qml/Shell.qml:328
347msgid ""
352msgid ""
348"If passcode is entered incorrectly, your phone will conduct a factory reset "
353"If passcode is entered incorrectly, your phone will conduct a factory reset "
349"and all personal data will be deleted."
354"and all personal data will be deleted."
po/it.po+7−3
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-28 15:31+0000\n"
11"PO-Revision-Date: 2014-08-28 15:31+0000\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
13"Language-Team: Italian <it@li.org>\n"
13"Language-Team: Italian <it@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-30 07:46+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Spegni"
81msgstr "Spegni"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr ""
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Annulla"
89msgstr "Annulla"
po/ja.po+20−16
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-09-01 06:20+0000\n"
11+"PO-Revision-Date: 2014-09-18 09:47+0000\n"
12"Last-Translator: Mitsuya Shibata <mty.shibata@gmail.com>\n"
12"Last-Translator: Mitsuya Shibata <mty.shibata@gmail.com>\n"
13"Language-Team: Japanese <ja@li.org>\n"
13"Language-Team: Japanese <ja@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-02 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17192)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -36,7 +36,7 @@ msgstr "ログアウト"
36
36
37#: qml/Components/Dialogs.qml:71
37#: qml/Components/Dialogs.qml:71
38msgid "Are you sure you want to log out?"
38msgid "Are you sure you want to log out?"
39−msgstr ""
39+msgstr "本当にログアウトしますか?"
40
40
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:122
42#: qml/Components/Dialogs.qml:122
@@ -54,7 +54,7 @@ msgstr "シャットダウン"
54
54
55#: qml/Components/Dialogs.qml:95
55#: qml/Components/Dialogs.qml:95
56msgid "Are you sure you want to shut down?"
56msgid "Are you sure you want to shut down?"
57−msgstr ""
57+msgstr "本当にシャットダウンしますか?"
58
58
59#: qml/Components/Dialogs.qml:119
59#: qml/Components/Dialogs.qml:119
60msgid "Reboot"
60msgid "Reboot"
@@ -62,22 +62,26 @@ msgstr "再起動"
62
62
63#: qml/Components/Dialogs.qml:120
63#: qml/Components/Dialogs.qml:120
64msgid "Are you sure you want to reboot?"
64msgid "Are you sure you want to reboot?"
65−msgstr ""
65+msgstr "本当に再起動しますか?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "電源"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75−msgstr ""
75+msgstr "本当に電源を切りますか?"
76
76
77#: qml/Components/Dialogs.qml:147
77#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr "電源を切る"
79msgstr "電源を切る"
80
80
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
81#: qml/Components/Dialogs.qml:157
85#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr "キャンセル"
87msgstr "キャンセル"
@@ -249,11 +253,11 @@ msgstr "パスワードを表示"
249
253
250#: qml/Notifications/NotificationMenuItemFactory.qml:120
254#: qml/Notifications/NotificationMenuItemFactory.qml:120
251msgid "Enter SIM PIN"
255msgid "Enter SIM PIN"
252−msgstr ""
256+msgstr "SIM PINの入力"
253
257
254#: qml/Notifications/NotificationMenuItemFactory.qml:121
258#: qml/Notifications/NotificationMenuItemFactory.qml:121
255msgid "Sorry, incorrect PIN"
259msgid "Sorry, incorrect PIN"
256−msgstr ""
260+msgstr "PINが違います"
257
261
258#: qml/Panel/ActiveCallHint.qml:77
262#: qml/Panel/ActiveCallHint.qml:77
259msgid "Tap to return to call..."
263msgid "Tap to return to call..."
@@ -297,19 +301,19 @@ msgstr "ローミング"
297
301
298#: qml/Shell.qml:279
302#: qml/Shell.qml:279
299msgid "Enter your passphrase"
303msgid "Enter your passphrase"
300−msgstr ""
304+msgstr "パスフレーズの入力"
301
305
302#: qml/Shell.qml:280
306#: qml/Shell.qml:280
303msgid "Sorry, incorrect passphrase"
307msgid "Sorry, incorrect passphrase"
304−msgstr ""
308+msgstr "パスフレーズが違います"
305
309
306#: qml/Shell.qml:282
310#: qml/Shell.qml:282
307msgid "Enter your passcode"
311msgid "Enter your passcode"
308−msgstr ""
312+msgstr "パスコードの入力"
309
313
310#: qml/Shell.qml:283
314#: qml/Shell.qml:283
311msgid "Sorry, incorrect passcode"
315msgid "Sorry, incorrect passcode"
312−msgstr "ごめんなさい、誤ったパスコードです"
316+msgstr "パスコードが違います"
313
317
314#: qml/Shell.qml:286
318#: qml/Shell.qml:286
315#, qt-format
319#, qt-format
@@ -319,7 +323,7 @@ msgstr "%1を入力してください"
319#: qml/Shell.qml:287
323#: qml/Shell.qml:287
320#, qt-format
324#, qt-format
321msgid "Sorry, incorrect %1"
325msgid "Sorry, incorrect %1"
322−msgstr ""
326+msgstr "%1が違います"
323
327
324#: qml/Shell.qml:323
328#: qml/Shell.qml:323
325msgid "Sorry, incorrect passphrase."
329msgid "Sorry, incorrect passphrase."
po/km.po+46−45
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-20 02:48+0000\n"
11"PO-Revision-Date: 2014-08-20 02:48+0000\n"
12"Last-Translator: Sok Sophea <sksophea@gmail.com>\n"
12"Last-Translator: Sok Sophea <sksophea@gmail.com>\n"
13"Language-Team: Khmer <km@li.org>\n"
13"Language-Team: Khmer <km@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr "ពាក្យសម្ងាត់៖ "
22msgstr "ពាក្យសម្ងាត់៖ "
23
23
@@ -32,53 +32,59 @@ msgstr "មិន​ភ្ជាប់ផ្លូវកាត់"
32
32
33#: qml/Components/Dialogs.qml:70
33#: qml/Components/Dialogs.qml:70
34msgid "Log out"
34msgid "Log out"
35−msgstr ""
35+msgstr "ចេញ"
36
36
37#: qml/Components/Dialogs.qml:71
37#: qml/Components/Dialogs.qml:71
38msgid "Are you sure you want to log out?"
38msgid "Are you sure you want to log out?"
39−msgstr ""
39+msgstr "តើ​អ្នក​ពិតជា​ចង់​ចេញ​មែន​ឬ?"
40
40
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:122
42#: qml/Components/Dialogs.qml:122
43msgid "No"
43msgid "No"
44−msgstr ""
44+msgstr "ទេ"
45
45
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
47#: qml/Components/Dialogs.qml:129
47#: qml/Components/Dialogs.qml:129
48msgid "Yes"
48msgid "Yes"
49−msgstr ""
49+msgstr "បាទ/ចាស"
50
50
51#: qml/Components/Dialogs.qml:94
51#: qml/Components/Dialogs.qml:94
52msgid "Shut down"
52msgid "Shut down"
53−msgstr ""
53+msgstr "បិទ"
54
54
55#: qml/Components/Dialogs.qml:95
55#: qml/Components/Dialogs.qml:95
56msgid "Are you sure you want to shut down?"
56msgid "Are you sure you want to shut down?"
57−msgstr ""
57+msgstr "តើ​អ្នក​ពិតជា​ចង់​បិទ​មែន​ឬ?"
58
58
59#: qml/Components/Dialogs.qml:119
59#: qml/Components/Dialogs.qml:119
60msgid "Reboot"
60msgid "Reboot"
61−msgstr ""
61+msgstr "ចាប់ផ្ដើម​ឡើងវិញ"
62
62
63#: qml/Components/Dialogs.qml:120
63#: qml/Components/Dialogs.qml:120
64msgid "Are you sure you want to reboot?"
64msgid "Are you sure you want to reboot?"
65−msgstr ""
65+msgstr "តើ​អ្នក​ពិតជា​ចង់​ចាប់ផ្ដើម​ឡើងវិញ​មែន​ឬ?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "បីទ/បើក"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76+"តើ​អ្នក​ពិតជា​ចង់\n"
77+"បិទ​មែន​ឬ?"
76
78
77−#: qml/Components/Dialogs.qml:144
79+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
80msgid "Power off"
79msgstr "បិទ"
81msgstr "បិទ"
80
82
81−#: qml/Components/Dialogs.qml:162
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr ""
86+
87+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
88msgid "Cancel"
83msgstr "បោះបង់"
89msgstr "បោះបង់"
84
90
@@ -165,21 +171,22 @@ msgstr "មើល​តិច​ជាង"
165msgid "See all"
171msgid "See all"
166msgstr "មើល​ទាំងអស់"
172msgstr "មើល​ទាំងអស់"
167
173
168−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
174+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
175+#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
176msgid "Search"
170msgstr "ស្វែង​រក"
177msgstr "ស្វែង​រក"
171
178
172#: qml/Dash/PageHeader.qml:270
179#: qml/Dash/PageHeader.qml:270
173msgid "Settings"
180msgid "Settings"
174−msgstr ""
181+msgstr "ការកំណត់"
175
182
176#: qml/Dash/PageHeader.qml:279
183#: qml/Dash/PageHeader.qml:279
177msgid "Remove from Favorites"
184msgid "Remove from Favorites"
178−msgstr ""
185+msgstr "យក​ចេញពី​សំណព្វ"
179
186
180#: qml/Dash/PageHeader.qml:279
187#: qml/Dash/PageHeader.qml:279
181msgid "Add to Favorites"
188msgid "Add to Favorites"
182−msgstr ""
189+msgstr "បន្ថែម​ទៅ​សណព្វ"
183
190
184#: qml/Dash/Previews/PreviewActionCombo.qml:34
191#: qml/Dash/Previews/PreviewActionCombo.qml:34
185msgid "More..."
192msgid "More..."
@@ -205,11 +212,11 @@ msgstr "ផ្ញើ"
205msgid "Manage Dash"
212msgid "Manage Dash"
206msgstr "គ្រប់គ្រង​ផ្ទាំង"
213msgstr "គ្រប់គ្រង​ផ្ទាំង"
207
214
208−#: qml/Dash/ScopesOverview.qml:408
215+#: qml/Dash/ScopesOverview.qml:417
209msgid "Done"
216msgid "Done"
210msgstr "ធ្វើរួច"
217msgstr "ធ្វើរួច"
211
218
212−#: qml/Dash/ScopesOverview.qml:434
219+#: qml/Dash/ScopesOverview.qml:443
213msgid "Store"
220msgid "Store"
214msgstr "រក្សាទុក"
221msgstr "រក្សាទុក"
215
222
@@ -225,7 +232,7 @@ msgstr "ទាំងអស់"
225msgid "Swipe to unlock"
232msgid "Swipe to unlock"
226msgstr "អូស​ដើម្បី​ដោះសោ"
233msgstr "អូស​ដើម្បី​ដោះសោ"
227
234
228−#: qml/Hud/HudParametrizedActionsPage.qml:132
235+#: qml/Hud/HudParametrizedActionsPage.qml:139
229msgid "Confirm"
236msgid "Confirm"
230msgstr "បញ្ជាក់"
237msgstr "បញ្ជាក់"
231
238
@@ -251,11 +258,11 @@ msgstr "បង្ហាញ​ពាក្យ​សម្ងាត់"
251
258
252#: qml/Notifications/NotificationMenuItemFactory.qml:120
259#: qml/Notifications/NotificationMenuItemFactory.qml:120
253msgid "Enter SIM PIN"
260msgid "Enter SIM PIN"
254−msgstr ""
261+msgstr "បញ្ចូល​លេខ​កូដ PIN ស៊ីម"
255
262
256−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
263+#: qml/Notifications/NotificationMenuItemFactory.qml:121
257msgid "Sorry, incorrect PIN"
264msgid "Sorry, incorrect PIN"
258−msgstr ""
265+msgstr "សូមទោស! លេខ​កូដ PIN មិន​ត្រឹមត្រូវ"
259
266
260#: qml/Panel/ActiveCallHint.qml:77
267#: qml/Panel/ActiveCallHint.qml:77
261msgid "Tap to return to call..."
268msgid "Tap to return to call..."
@@ -297,45 +304,45 @@ msgstr "ដោះ​សោ​ស៊ីម"
297msgid "Roaming"
304msgid "Roaming"
298msgstr "រ៉ូមីង"
305msgstr "រ៉ូមីង"
299
306
300−#: qml/Shell.qml:266
307+#: qml/Shell.qml:279
301msgid "Enter your passphrase"
308msgid "Enter your passphrase"
302−msgstr ""
309+msgstr "បញ្ចូល​ឃ្លា​សម្ងាត់​របស់​អ្នក"
303
310
304−#: qml/Shell.qml:267
311+#: qml/Shell.qml:280
305msgid "Sorry, incorrect passphrase"
312msgid "Sorry, incorrect passphrase"
306−msgstr ""
313+msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ"
307
314
308#: qml/Shell.qml:282
315#: qml/Shell.qml:282
309msgid "Enter your passcode"
316msgid "Enter your passcode"
310−msgstr ""
317+msgstr "បញ្ចូល​កូដ​សម្ងាត់​របស់​អ្នក"
311
318
312#: qml/Shell.qml:283
319#: qml/Shell.qml:283
313msgid "Sorry, incorrect passcode"
320msgid "Sorry, incorrect passcode"
314−msgstr ""
321+msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ"
315
322
316−#: qml/Shell.qml:273
323+#: qml/Shell.qml:286
317#, qt-format
324#, qt-format
318msgid "Enter your %1"
325msgid "Enter your %1"
319msgstr "បញ្ចូល %1 របស់​អ្នក"
326msgstr "បញ្ចូល %1 របស់​អ្នក"
320
327
321−#: qml/Shell.qml:274
328+#: qml/Shell.qml:287
322#, qt-format
329#, qt-format
323msgid "Sorry, incorrect %1"
330msgid "Sorry, incorrect %1"
324−msgstr ""
331+msgstr "សូមទោស! %1 មិន​ត្រឹមត្រូវ"
325
332
326−#: qml/Shell.qml:310
333+#: qml/Shell.qml:323
327msgid "Sorry, incorrect passphrase."
334msgid "Sorry, incorrect passphrase."
328msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
335msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
329
336
330−#: qml/Shell.qml:311
337+#: qml/Shell.qml:324
331msgid "Sorry, incorrect passcode."
338msgid "Sorry, incorrect passcode."
332msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
339msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
333
340
334−#: qml/Shell.qml:312
341+#: qml/Shell.qml:325
335msgid "This will be your last attempt."
342msgid "This will be your last attempt."
336msgstr "នេះ​គឺ​ការ​ព្យាយាម​លើក​ចុងក្រោយ។"
343msgstr "នេះ​គឺ​ការ​ព្យាយាម​លើក​ចុងក្រោយ។"
337
344
338−#: qml/Shell.qml:314
345+#: qml/Shell.qml:327
339msgid ""
346msgid ""
340"If passphrase is entered incorrectly, your phone will conduct a factory "
347"If passphrase is entered incorrectly, your phone will conduct a factory "
341"reset and all personal data will be deleted."
348"reset and all personal data will be deleted."
@@ -344,7 +351,7 @@ msgstr ""
344"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
351"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
345"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
352"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
346
353
347−#: qml/Shell.qml:315
354+#: qml/Shell.qml:328
348msgid ""
355msgid ""
349"If passcode is entered incorrectly, your phone will conduct a factory reset "
356"If passcode is entered incorrectly, your phone will conduct a factory reset "
350"and all personal data will be deleted."
357"and all personal data will be deleted."
@@ -352,9 +359,3 @@ msgstr ""
352"បើ​បញ្ចូល​កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ "
359"បើ​បញ្ចូល​កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ "
353"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
360"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
354"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
361"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
355−
356−#~ msgid "Are you sure you would like to turn power off?"
357−#~ msgstr "តើ​អ្នក​ពិតជា​ចង់​បិទ​មែន​ឬ?"
358−
359−#~ msgid "Restart"
360−#~ msgstr "ចាប់ផ្ដើម​ឡើងវិញ"
po/kn.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kannada <kn@li.org>\n"
13"Language-Team: Kannada <kn@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "ಹುಡುಕು"
171msgstr "ಹುಡುಕು"
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "ಖಚಿತಪಡಿಸು"
231msgstr "ಖಚಿತಪಡಿಸು"
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/ko.po+72−76
@@ -7,78 +7,82 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-19 13:02+0000\n"
11"PO-Revision-Date: 2014-08-19 13:02+0000\n"
12"Last-Translator: MinSik CHO <Unknown>\n"
12"Last-Translator: MinSik CHO <Unknown>\n"
13"Language-Team: Korean <ko@li.org>\n"
13"Language-Team: Korean <ko@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22−msgstr "열쇠글: "
22+msgstr "암호: "
23
23
24#: plugins/Unity/Launcher/launcheritem.cpp:43
24#: plugins/Unity/Launcher/launcheritem.cpp:43
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26msgid "Pin shortcut"
26msgid "Pin shortcut"
27−msgstr "바로가기를 고정하기"
27+msgstr "바로 가기를 고정"
28
28
29#: plugins/Unity/Launcher/launcheritem.cpp:73
29#: plugins/Unity/Launcher/launcheritem.cpp:73
30msgid "Unpin shortcut"
30msgid "Unpin shortcut"
31−msgstr "바로가기를 고정 해제하기"
31+msgstr "바로 가기를 고정 해제"
32
32
33#: qml/Components/Dialogs.qml:70
33#: qml/Components/Dialogs.qml:70
34msgid "Log out"
34msgid "Log out"
35−msgstr ""
35+msgstr "로그아웃"
36
36
37#: qml/Components/Dialogs.qml:71
37#: qml/Components/Dialogs.qml:71
38msgid "Are you sure you want to log out?"
38msgid "Are you sure you want to log out?"
39−msgstr ""
39+msgstr "정말 로그아웃하시겠습니까?"
40
40
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:122
42#: qml/Components/Dialogs.qml:122
43msgid "No"
43msgid "No"
44−msgstr ""
44+msgstr "아니요"
45
45
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
47#: qml/Components/Dialogs.qml:129
47#: qml/Components/Dialogs.qml:129
48msgid "Yes"
48msgid "Yes"
49−msgstr ""
49+msgstr "예"
50
50
51#: qml/Components/Dialogs.qml:94
51#: qml/Components/Dialogs.qml:94
52msgid "Shut down"
52msgid "Shut down"
53−msgstr ""
53+msgstr "컴퓨터 끄기"
54
54
55#: qml/Components/Dialogs.qml:95
55#: qml/Components/Dialogs.qml:95
56msgid "Are you sure you want to shut down?"
56msgid "Are you sure you want to shut down?"
57−msgstr ""
57+msgstr "정말 컴퓨터를 끄시겠습니까?"
58
58
59#: qml/Components/Dialogs.qml:119
59#: qml/Components/Dialogs.qml:119
60msgid "Reboot"
60msgid "Reboot"
61−msgstr ""
61+msgstr "다시 시작"
62
62
63#: qml/Components/Dialogs.qml:120
63#: qml/Components/Dialogs.qml:120
64msgid "Are you sure you want to reboot?"
64msgid "Are you sure you want to reboot?"
65−msgstr ""
65+msgstr "정말 컴퓨터를 다시 시작하시겠습니까?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "전원"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75−msgstr ""
75+msgstr "정말 컴퓨터를 끄시겠습니까?"
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr "전원 끄기"
79msgstr "전원 끄기"
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr "취소"
87msgstr "취소"
84
88
@@ -92,15 +96,15 @@ msgstr "오른쪽 끝"
92
96
93#: qml/Components/EdgeDemo.qml:113
97#: qml/Components/EdgeDemo.qml:113
94msgid "Try swiping from the right edge to unlock the phone"
98msgid "Try swiping from the right edge to unlock the phone"
95−msgstr "휴대 전화를 잠금 해제하려면 오른쪽에서부터 끌어보세요."
99+msgstr "오른쪽 가장자리에서 쓸면 휴대 전화의 잠금을 해제합니다."
96
100
97#: qml/Components/EdgeDemo.qml:144
101#: qml/Components/EdgeDemo.qml:144
98msgid "Top edge"
102msgid "Top edge"
99−msgstr "윗쪽 끝"
103+msgstr "윗쪽 가장자리"
100
104
101#: qml/Components/EdgeDemo.qml:145
105#: qml/Components/EdgeDemo.qml:145
102msgid "Try swiping from the top edge to access the indicators"
106msgid "Try swiping from the top edge to access the indicators"
103−msgstr "알림을 보려면 위쪽에서 끌어보세요."
107+msgstr "위쪽 가장자리에서 쓸면 알림에 접근할 수 있습니다."
104
108
105#: qml/Components/EdgeDemo.qml:170
109#: qml/Components/EdgeDemo.qml:170
106msgid "Close"
110msgid "Close"
@@ -108,15 +112,15 @@ msgstr "닫기"
108
112
109#: qml/Components/EdgeDemo.qml:171
113#: qml/Components/EdgeDemo.qml:171
110msgid "Swipe up again to close the settings screen"
114msgid "Swipe up again to close the settings screen"
111−msgstr "환경설정 창을 닫으려면 위로 다시 끌어보세요."
115+msgstr "위쪽으로 쓸면 설정 화면을 닫습니다."
112
116
113#: qml/Components/EdgeDemo.qml:198
117#: qml/Components/EdgeDemo.qml:198
114msgid "Left edge"
118msgid "Left edge"
115−msgstr "왼쪽 끝"
119+msgstr "왼쪽 가장자리"
116
120
117#: qml/Components/EdgeDemo.qml:199
121#: qml/Components/EdgeDemo.qml:199
118msgid "Swipe from the left to reveal the launcher for quick access to apps"
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
119−msgstr "애플리케이션을 빠르게 열기 위해 런처를 보려면 왼쪽에서 끌어보세요."
123+msgstr "왼쪽에서 쓸면 런처를 표시해 프로그램에 빠르게 접근할 수 있습니다."
120
124
121#: qml/Components/EdgeDemo.qml:226
125#: qml/Components/EdgeDemo.qml:226
122msgid "Well done"
126msgid "Well done"
@@ -127,8 +131,7 @@ msgid ""
127"You have now mastered the edge gestures and can start using the "
131"You have now mastered the edge gestures and can start using the "
128"phone<br><br>Tap on the screen to start"
132"phone<br><br>Tap on the screen to start"
129msgstr ""
133msgstr ""
130−"여러분은 끝에서 끌어오기 제스쳐를 완벽히 익히셨기 때문에 휴대 전화를 사용하기 시작할 수 있습니다. <br><br> 스크린을 터치해서 "
134+"여러분은 가장자리에서 끌어오기 제스쳐를 완벽히 익히셨고 휴대 전화를 사용할 수 있습니다. <br><br> 스크린을 터치해서 시작하세요."
131−"시작하세요."
132
135
133#: qml/Components/Lockscreen.qml:167
136#: qml/Components/Lockscreen.qml:167
134msgid "Please wait"
137msgid "Please wait"
@@ -157,27 +160,28 @@ msgstr "안녕하세요"
157
160
158#: qml/Dash/GenericScopeView.qml:361
161#: qml/Dash/GenericScopeView.qml:361
159msgid "See less"
162msgid "See less"
160−msgstr "간단히 표시하기"
163+msgstr "간단히 표시"
161
164
162#: qml/Dash/GenericScopeView.qml:361
165#: qml/Dash/GenericScopeView.qml:361
163msgid "See all"
166msgid "See all"
164msgstr "모두 보기"
167msgstr "모두 보기"
165
168
166−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
169+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
170+#: qml/Panel/SearchIndicator.qml:27
167msgid "Search"
171msgid "Search"
168msgstr "검색"
172msgstr "검색"
169
173
170#: qml/Dash/PageHeader.qml:270
174#: qml/Dash/PageHeader.qml:270
171msgid "Settings"
175msgid "Settings"
172−msgstr ""
176+msgstr "설정"
173
177
174#: qml/Dash/PageHeader.qml:279
178#: qml/Dash/PageHeader.qml:279
175msgid "Remove from Favorites"
179msgid "Remove from Favorites"
176−msgstr ""
180+msgstr "즐겨찾기에서 제거"
177
181
178#: qml/Dash/PageHeader.qml:279
182#: qml/Dash/PageHeader.qml:279
179msgid "Add to Favorites"
183msgid "Add to Favorites"
180−msgstr ""
184+msgstr "즐겨찾기에 추가"
181
185
182#: qml/Dash/Previews/PreviewActionCombo.qml:34
186#: qml/Dash/Previews/PreviewActionCombo.qml:34
183msgid "More..."
187msgid "More..."
@@ -189,11 +193,11 @@ msgstr "간단하게..."
189
193
190#: qml/Dash/Previews/PreviewRatingInput.qml:81
194#: qml/Dash/Previews/PreviewRatingInput.qml:81
191msgid "Rate this"
195msgid "Rate this"
192−msgstr "이 애플리케이션 평가하기"
196+msgstr "이 프로그램 평가"
193
197
194#: qml/Dash/Previews/PreviewRatingInput.qml:126
198#: qml/Dash/Previews/PreviewRatingInput.qml:126
195msgid "Add a review"
199msgid "Add a review"
196−msgstr "평가 제출하기"
200+msgstr "평가 추가"
197
201
198#: qml/Dash/Previews/PreviewRatingInput.qml:166
202#: qml/Dash/Previews/PreviewRatingInput.qml:166
199msgid "Send"
203msgid "Send"
@@ -203,11 +207,11 @@ msgstr "보내기"
203msgid "Manage Dash"
207msgid "Manage Dash"
204msgstr "대시 관리"
208msgstr "대시 관리"
205
209
206−#: qml/Dash/ScopesOverview.qml:408
210+#: qml/Dash/ScopesOverview.qml:417
207msgid "Done"
211msgid "Done"
208msgstr "완료"
212msgstr "완료"
209
213
210−#: qml/Dash/ScopesOverview.qml:434
214+#: qml/Dash/ScopesOverview.qml:443
211msgid "Store"
215msgid "Store"
212msgstr "장터"
216msgstr "장터"
213
217
@@ -221,9 +225,9 @@ msgstr "모두"
221
225
222#: qml/Greeter/Greeter.qml:157
226#: qml/Greeter/Greeter.qml:157
223msgid "Swipe to unlock"
227msgid "Swipe to unlock"
224−msgstr "휴대전화를 잠금 해제하려면 움직이세요."
228+msgstr "쓸어서 잠금 해제"
225
229
226−#: qml/Hud/HudParametrizedActionsPage.qml:132
230+#: qml/Hud/HudParametrizedActionsPage.qml:139
227msgid "Confirm"
231msgid "Confirm"
228msgstr "확인"
232msgstr "확인"
229
233
@@ -233,7 +237,7 @@ msgstr "명령을 입력하거나 말하세요."
233
237
234#: qml/Hud/Hud.qml:84
238#: qml/Hud/Hud.qml:84
235msgid "Loading. Please Wait..."
239msgid "Loading. Please Wait..."
236−msgstr "준비 중.. 잠시만 기다려 주세요..."
240+msgstr "불러오는 중 입니다. 짐시 기다려주십시오..."
237
241
238#: qml/Hud/Hud.qml:89
242#: qml/Hud/Hud.qml:89
239msgid "Speak Now..."
243msgid "Speak Now..."
@@ -245,15 +249,15 @@ msgstr "말하는 중..."
245
249
246#: qml/Notifications/NotificationMenuItemFactory.qml:105
250#: qml/Notifications/NotificationMenuItemFactory.qml:105
247msgid "Show password"
251msgid "Show password"
248−msgstr "비밀 번호 보기"
252+msgstr "암호 표시"
249
253
250#: qml/Notifications/NotificationMenuItemFactory.qml:120
254#: qml/Notifications/NotificationMenuItemFactory.qml:120
251msgid "Enter SIM PIN"
255msgid "Enter SIM PIN"
252−msgstr ""
256+msgstr "심 카드의 개인 식별 번호 입력"
253
257
254−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
258+#: qml/Notifications/NotificationMenuItemFactory.qml:121
255msgid "Sorry, incorrect PIN"
259msgid "Sorry, incorrect PIN"
256−msgstr ""
260+msgstr "죄송합니다. 개인 식별 번호가 올바르지 않습니다."
257
261
258#: qml/Panel/ActiveCallHint.qml:77
262#: qml/Panel/ActiveCallHint.qml:77
259msgid "Tap to return to call..."
263msgid "Tap to return to call..."
@@ -265,7 +269,7 @@ msgstr "회의"
265
269
266#: qml/Panel/Indicators/MenuItemFactory.qml:651
270#: qml/Panel/Indicators/MenuItemFactory.qml:651
267msgid "In queue…"
271msgid "In queue…"
268−msgstr "재생 중..."
272+msgstr "대기 중..."
269
273
270#: qml/Panel/Indicators/MenuItemFactory.qml:655
274#: qml/Panel/Indicators/MenuItemFactory.qml:655
271msgid "Downloading"
275msgid "Downloading"
@@ -273,82 +277,74 @@ msgstr "다운로드 중"
273
277
274#: qml/Panel/Indicators/MenuItemFactory.qml:657
278#: qml/Panel/Indicators/MenuItemFactory.qml:657
275msgid "Paused, tap to resume"
279msgid "Paused, tap to resume"
276−msgstr "일시 중지 되었습니다. 계속하려면 누르세요."
280+msgstr "일시 중지하였습니다. 계속하려면 눌러주세요."
277
281
278#: qml/Panel/Indicators/MenuItemFactory.qml:659
282#: qml/Panel/Indicators/MenuItemFactory.qml:659
279msgid "Canceled"
283msgid "Canceled"
280−msgstr "취소됨"
284+msgstr "취소함"
281
285
282#: qml/Panel/Indicators/MenuItemFactory.qml:661
286#: qml/Panel/Indicators/MenuItemFactory.qml:661
283msgid "Finished"
287msgid "Finished"
284−msgstr "완료됨"
288+msgstr "완료함"
285
289
286#: qml/Panel/Indicators/MenuItemFactory.qml:663
290#: qml/Panel/Indicators/MenuItemFactory.qml:663
287msgid "Failed, tap to retry"
291msgid "Failed, tap to retry"
288−msgstr "실패하였습니다. 재시도하려면 누르세요."
292+msgstr "실패, 누르면 다시 시도합니다."
289
293
290#: qml/Panel/Indicators/ModemInfoItem.qml:105
294#: qml/Panel/Indicators/ModemInfoItem.qml:105
291msgid "Unlock SIM"
295msgid "Unlock SIM"
292−msgstr "SIM 카드 보안 해제"
296+msgstr "심 카드 잠금 해제"
293
297
294#: qml/Panel/Indicators/RoamingIndication.qml:27
298#: qml/Panel/Indicators/RoamingIndication.qml:27
295msgid "Roaming"
299msgid "Roaming"
296msgstr "로밍"
300msgstr "로밍"
297
301
298−#: qml/Shell.qml:266
302+#: qml/Shell.qml:279
299msgid "Enter your passphrase"
303msgid "Enter your passphrase"
300−msgstr ""
304+msgstr "패스프레이즈를 입력해주십시오."
301
305
302−#: qml/Shell.qml:267
306+#: qml/Shell.qml:280
303msgid "Sorry, incorrect passphrase"
307msgid "Sorry, incorrect passphrase"
304−msgstr ""
308+msgstr "죄송합니다. 패스프레이즈가 올바르지 않습니다."
305
309
306#: qml/Shell.qml:282
310#: qml/Shell.qml:282
307msgid "Enter your passcode"
311msgid "Enter your passcode"
308−msgstr ""
312+msgstr "패스코드를 입력해주십시오."
309
313
310#: qml/Shell.qml:283
314#: qml/Shell.qml:283
311msgid "Sorry, incorrect passcode"
315msgid "Sorry, incorrect passcode"
312−msgstr ""
316+msgstr "죄송합니다. 패스코드가 올바르지 않습니다."
313
317
314−#: qml/Shell.qml:273
318+#: qml/Shell.qml:286
315#, qt-format
319#, qt-format
316msgid "Enter your %1"
320msgid "Enter your %1"
317−msgstr "%1를 입력하세요"
321+msgstr "%1을(를) 입력해주십시오."
318
322
319−#: qml/Shell.qml:274
323+#: qml/Shell.qml:287
320#, qt-format
324#, qt-format
321msgid "Sorry, incorrect %1"
325msgid "Sorry, incorrect %1"
322−msgstr ""
326+msgstr "죄송합니다. %1이(가) 올바르지 않습니다."
323
327
324−#: qml/Shell.qml:310
328+#: qml/Shell.qml:323
325msgid "Sorry, incorrect passphrase."
329msgid "Sorry, incorrect passphrase."
326−msgstr "잘못된 비밀번호입니다."
330+msgstr "올바르지 않은 패스프레이즈입니다."
327
331
328−#: qml/Shell.qml:311
332+#: qml/Shell.qml:324
329msgid "Sorry, incorrect passcode."
333msgid "Sorry, incorrect passcode."
330−msgstr "잘못된 비밀번호입니다."
334+msgstr "최송합니다. 패스코드가 올바르지 않습니다."
331
335
332−#: qml/Shell.qml:312
336+#: qml/Shell.qml:325
333msgid "This will be your last attempt."
337msgid "This will be your last attempt."
334msgstr "마지막 시도입니다."
338msgstr "마지막 시도입니다."
335
339
336−#: qml/Shell.qml:314
340+#: qml/Shell.qml:327
337msgid ""
341msgid ""
338"If passphrase is entered incorrectly, your phone will conduct a factory "
342"If passphrase is entered incorrectly, your phone will conduct a factory "
339"reset and all personal data will be deleted."
343"reset and all personal data will be deleted."
340−msgstr ""
344+msgstr "이번에도 올바르지 않은 패스프레이즈를 입력하면 휴대 전화를 공장 초기화하여 모든 개인 정보를 삭제합니다."
341−"만약 이번 시도에서 잘못 입력하면, 보안을 위해 휴대 전화가 공장 초기화 과정을 거쳐 모든 사용자 데이터를 삭제할 것입니다."
342
345
343−#: qml/Shell.qml:315
346+#: qml/Shell.qml:328
344msgid ""
347msgid ""
345"If passcode is entered incorrectly, your phone will conduct a factory reset "
348"If passcode is entered incorrectly, your phone will conduct a factory reset "
346"and all personal data will be deleted."
349"and all personal data will be deleted."
347−msgstr ""
350+msgstr "이번에도 올바르지 않은 패스코드를 입력하면 휴대 전화를 공장 초기화하여 모든 개인 정보를 삭제합니다."
348−"만약 이번 시도에서 잘못 입력하면, 보안을 위해 휴대 전화가 공장 초기화 과정을 거쳐 모든 사용자 데이터를 삭제할 것입니다."
349−
350−#~ msgid "Are you sure you would like to turn power off?"
351−#~ msgstr "정말로 전원을 끌까요?"
352−
353−#~ msgid "Restart"
354−#~ msgstr "재시작"
po/ku.po+60−49
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-09-10 13:14+0000\n"
11"PO-Revision-Date: 2014-09-10 13:14+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Kurdish <ku@li.org>\n"
13"Language-Team: Kurdish <ku@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-11 07:27+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18"X-Generator: Launchpad (build 17196)\n"
18"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
@@ -24,11 +24,11 @@ msgstr "Şîfre: "
24#: plugins/Unity/Launcher/launcheritem.cpp:43
24#: plugins/Unity/Launcher/launcheritem.cpp:43
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26msgid "Pin shortcut"
26msgid "Pin shortcut"
27−msgstr ""
27+msgstr "Kurteriyê pêveke"
28
28
29#: plugins/Unity/Launcher/launcheritem.cpp:73
29#: plugins/Unity/Launcher/launcheritem.cpp:73
30msgid "Unpin shortcut"
30msgid "Unpin shortcut"
31−msgstr ""
31+msgstr "Derzîdanka kurteriyê rake"
32
32
33#: qml/Components/Dialogs.qml:70
33#: qml/Components/Dialogs.qml:70
34msgid "Log out"
34msgid "Log out"
@@ -66,16 +66,22 @@ msgstr "Ji dil dixwazî bidî destpêkirin?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "Hêz"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76+"Ji dil dixwazî\n"
77+"kompîturê bigirî?"
76
78
77#: qml/Components/Dialogs.qml:147
79#: qml/Components/Dialogs.qml:147
78msgid "Power off"
80msgid "Power off"
81+msgstr "Bigire"
82+
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
79msgstr ""
85msgstr ""
80
86
81#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
@@ -84,23 +90,23 @@ msgstr "Betal bike"
84
90
85#: qml/Components/EdgeDemoOverlay.qml:151
91#: qml/Components/EdgeDemoOverlay.qml:151
86msgid "Skip intro"
92msgid "Skip intro"
87−msgstr ""
93+msgstr "Danasînê derbas bike"
88
94
89#: qml/Components/EdgeDemo.qml:112
95#: qml/Components/EdgeDemo.qml:112
90msgid "Right edge"
96msgid "Right edge"
91−msgstr ""
97+msgstr "Kêleka rastê"
92
98
93#: qml/Components/EdgeDemo.qml:113
99#: qml/Components/EdgeDemo.qml:113
94msgid "Try swiping from the right edge to unlock the phone"
100msgid "Try swiping from the right edge to unlock the phone"
95−msgstr ""
101+msgstr "Ji bo kilîdê vekî ji kêleka rastê kaş bike"
96
102
97#: qml/Components/EdgeDemo.qml:144
103#: qml/Components/EdgeDemo.qml:144
98msgid "Top edge"
104msgid "Top edge"
99−msgstr ""
105+msgstr "Kêleka jorê"
100
106
101#: qml/Components/EdgeDemo.qml:145
107#: qml/Components/EdgeDemo.qml:145
102msgid "Try swiping from the top edge to access the indicators"
108msgid "Try swiping from the top edge to access the indicators"
103−msgstr ""
109+msgstr "JI bo xwe bigihînî danezanan ji kêleka jorê kaş bike"
104
110
105#: qml/Components/EdgeDemo.qml:170
111#: qml/Components/EdgeDemo.qml:170
106msgid "Close"
112msgid "Close"
@@ -108,15 +114,15 @@ msgstr "Bigire"
108
114
109#: qml/Components/EdgeDemo.qml:171
115#: qml/Components/EdgeDemo.qml:171
110msgid "Swipe up again to close the settings screen"
116msgid "Swipe up again to close the settings screen"
111−msgstr ""
117+msgstr "Ji bo girtina ekrana eyaran dîsa bi jorê ve kaş bike"
112
118
113#: qml/Components/EdgeDemo.qml:198
119#: qml/Components/EdgeDemo.qml:198
114msgid "Left edge"
120msgid "Left edge"
115−msgstr ""
121+msgstr "Kêleka çepê"
116
122
117#: qml/Components/EdgeDemo.qml:199
123#: qml/Components/EdgeDemo.qml:199
118msgid "Swipe from the left to reveal the launcher for quick access to apps"
124msgid "Swipe from the left to reveal the launcher for quick access to apps"
119−msgstr ""
125+msgstr "Ji bo vekirina gihînera lezgîn ya bernamokan ji kêleka çepê kaş bike"
120
126
121#: qml/Components/EdgeDemo.qml:226
127#: qml/Components/EdgeDemo.qml:226
122msgid "Well done"
128msgid "Well done"
@@ -127,6 +133,7 @@ msgid ""
127"You have now mastered the edge gestures and can start using the "
133"You have now mastered the edge gestures and can start using the "
128"phone<br><br>Tap on the screen to start"
134"phone<br><br>Tap on the screen to start"
129msgstr ""
135msgstr ""
136+"Tu tevgerên kêlekê fêr bûyî<br><br>Ji bo destpêkirinê ekranê bipelîne"
130
137
131#: qml/Components/Lockscreen.qml:167
138#: qml/Components/Lockscreen.qml:167
132msgid "Please wait"
139msgid "Please wait"
@@ -134,7 +141,7 @@ msgstr "Tika ye li bendê bimîne"
134
141
135#: qml/Components/Lockscreen.qml:172
142#: qml/Components/Lockscreen.qml:172
136msgid "Too many incorrect attempts"
143msgid "Too many incorrect attempts"
137−msgstr ""
144+msgstr "Te gelek caran ceribandinên çewt kirin"
138
145
139#: qml/Components/Lockscreen.qml:206
146#: qml/Components/Lockscreen.qml:206
140msgid "Emergency Call"
147msgid "Emergency Call"
@@ -188,15 +195,15 @@ msgstr "Hindiktir..."
188
195
189#: qml/Dash/Previews/PreviewRatingInput.qml:81
196#: qml/Dash/Previews/PreviewRatingInput.qml:81
190msgid "Rate this"
197msgid "Rate this"
191−msgstr ""
198+msgstr "Deng bidê"
192
199
193#: qml/Dash/Previews/PreviewRatingInput.qml:126
200#: qml/Dash/Previews/PreviewRatingInput.qml:126
194msgid "Add a review"
201msgid "Add a review"
195−msgstr ""
202+msgstr "Binirxîne"
196
203
197#: qml/Dash/Previews/PreviewRatingInput.qml:166
204#: qml/Dash/Previews/PreviewRatingInput.qml:166
198msgid "Send"
205msgid "Send"
199−msgstr ""
206+msgstr "Bişîne"
200
207
201#: qml/Dash/ScopesOverview.qml:201
208#: qml/Dash/ScopesOverview.qml:201
202msgid "Manage Dash"
209msgid "Manage Dash"
@@ -204,142 +211,146 @@ msgstr ""
204
211
205#: qml/Dash/ScopesOverview.qml:417
212#: qml/Dash/ScopesOverview.qml:417
206msgid "Done"
213msgid "Done"
207−msgstr ""
214+msgstr "Qediya"
208
215
209#: qml/Dash/ScopesOverview.qml:443
216#: qml/Dash/ScopesOverview.qml:443
210msgid "Store"
217msgid "Store"
211−msgstr ""
218+msgstr "Firoşgeh"
212
219
213#: qml/Dash/ScopesOverviewTab.qml:36
220#: qml/Dash/ScopesOverviewTab.qml:36
214msgid "Favorites"
221msgid "Favorites"
215−msgstr ""
222+msgstr "Bijare"
216
223
217#: qml/Dash/ScopesOverviewTab.qml:54
224#: qml/Dash/ScopesOverviewTab.qml:54
218msgid "All"
225msgid "All"
219−msgstr ""
226+msgstr "Hemû"
220
227
221#: qml/Greeter/Greeter.qml:157
228#: qml/Greeter/Greeter.qml:157
222msgid "Swipe to unlock"
229msgid "Swipe to unlock"
223−msgstr ""
230+msgstr "Ji bo vekirinê kaş bike"
224
231
225#: qml/Hud/HudParametrizedActionsPage.qml:139
232#: qml/Hud/HudParametrizedActionsPage.qml:139
226msgid "Confirm"
233msgid "Confirm"
227−msgstr ""
234+msgstr "Erê bike"
228
235
229#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
236#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
230msgid "Type or say a command"
237msgid "Type or say a command"
231−msgstr ""
238+msgstr "Fermanekê bêje yan binivîse"
232
239
233#: qml/Hud/Hud.qml:84
240#: qml/Hud/Hud.qml:84
234msgid "Loading. Please Wait..."
241msgid "Loading. Please Wait..."
235−msgstr ""
242+msgstr "Bar dike. Tika ye li bendê bî..."
236
243
237#: qml/Hud/Hud.qml:89
244#: qml/Hud/Hud.qml:89
238msgid "Speak Now..."
245msgid "Speak Now..."
239−msgstr ""
246+msgstr "Niha biaxive..."
240
247
241#: qml/Hud/Hud.qml:94
248#: qml/Hud/Hud.qml:94
242msgid "Speaking..."
249msgid "Speaking..."
243−msgstr ""
250+msgstr "Diaxive..."
244
251
245#: qml/Notifications/NotificationMenuItemFactory.qml:105
252#: qml/Notifications/NotificationMenuItemFactory.qml:105
246msgid "Show password"
253msgid "Show password"
247−msgstr ""
254+msgstr "Şîfreyê nîşan bide"
248
255
249#: qml/Notifications/NotificationMenuItemFactory.qml:120
256#: qml/Notifications/NotificationMenuItemFactory.qml:120
250msgid "Enter SIM PIN"
257msgid "Enter SIM PIN"
251−msgstr ""
258+msgstr "PINa SIMê binivîse"
252
259
253#: qml/Notifications/NotificationMenuItemFactory.qml:121
260#: qml/Notifications/NotificationMenuItemFactory.qml:121
254msgid "Sorry, incorrect PIN"
261msgid "Sorry, incorrect PIN"
255−msgstr ""
262+msgstr "Bibore, PIN çewt e"
256
263
257#: qml/Panel/ActiveCallHint.qml:77
264#: qml/Panel/ActiveCallHint.qml:77
258msgid "Tap to return to call..."
265msgid "Tap to return to call..."
259−msgstr ""
266+msgstr "Ji bo vegerî lêgerînê bipelîne..."
260
267
261#: qml/Panel/ActiveCallHint.qml:90
268#: qml/Panel/ActiveCallHint.qml:90
262msgid "Conference"
269msgid "Conference"
263−msgstr ""
270+msgstr "Konferans"
264
271
265#: qml/Panel/Indicators/MenuItemFactory.qml:651
272#: qml/Panel/Indicators/MenuItemFactory.qml:651
266msgid "In queue…"
273msgid "In queue…"
267−msgstr ""
274+msgstr "Li bendê ye..."
268
275
269#: qml/Panel/Indicators/MenuItemFactory.qml:655
276#: qml/Panel/Indicators/MenuItemFactory.qml:655
270msgid "Downloading"
277msgid "Downloading"
271−msgstr ""
278+msgstr "Jêbar dibe..."
272
279
273#: qml/Panel/Indicators/MenuItemFactory.qml:657
280#: qml/Panel/Indicators/MenuItemFactory.qml:657
274msgid "Paused, tap to resume"
281msgid "Paused, tap to resume"
275−msgstr ""
282+msgstr "Hat rawestandin, ji bo dewam bike bipelîne"
276
283
277#: qml/Panel/Indicators/MenuItemFactory.qml:659
284#: qml/Panel/Indicators/MenuItemFactory.qml:659
278msgid "Canceled"
285msgid "Canceled"
279−msgstr ""
286+msgstr "Hat betalkirin"
280
287
281#: qml/Panel/Indicators/MenuItemFactory.qml:661
288#: qml/Panel/Indicators/MenuItemFactory.qml:661
282msgid "Finished"
289msgid "Finished"
283−msgstr ""
290+msgstr "Qediya"
284
291
285#: qml/Panel/Indicators/MenuItemFactory.qml:663
292#: qml/Panel/Indicators/MenuItemFactory.qml:663
286msgid "Failed, tap to retry"
293msgid "Failed, tap to retry"
287−msgstr ""
294+msgstr "Bi ser neket, ji bo dewam bike bipelîne"
288
295
289#: qml/Panel/Indicators/ModemInfoItem.qml:105
296#: qml/Panel/Indicators/ModemInfoItem.qml:105
290msgid "Unlock SIM"
297msgid "Unlock SIM"
291−msgstr ""
298+msgstr "Kilîda SIMê veke"
292
299
293#: qml/Panel/Indicators/RoamingIndication.qml:27
300#: qml/Panel/Indicators/RoamingIndication.qml:27
294msgid "Roaming"
301msgid "Roaming"
295−msgstr ""
302+msgstr "Geriyan"
296
303
297#: qml/Shell.qml:279
304#: qml/Shell.qml:279
298msgid "Enter your passphrase"
305msgid "Enter your passphrase"
299−msgstr ""
306+msgstr "Parolaya xwe binivîse"
300
307
301#: qml/Shell.qml:280
308#: qml/Shell.qml:280
302msgid "Sorry, incorrect passphrase"
309msgid "Sorry, incorrect passphrase"
303−msgstr ""
310+msgstr "Bibore, parola çewt e"
304
311
305#: qml/Shell.qml:282
312#: qml/Shell.qml:282
306msgid "Enter your passcode"
313msgid "Enter your passcode"
307−msgstr ""
314+msgstr "Parolaya xwe binivîse"
308
315
309#: qml/Shell.qml:283
316#: qml/Shell.qml:283
310msgid "Sorry, incorrect passcode"
317msgid "Sorry, incorrect passcode"
311−msgstr ""
318+msgstr "Bibore, parola çewrt e"
312
319
313#: qml/Shell.qml:286
320#: qml/Shell.qml:286
314#, qt-format
321#, qt-format
315msgid "Enter your %1"
322msgid "Enter your %1"
316−msgstr ""
323+msgstr "%1a xwe binivîse"
317
324
318#: qml/Shell.qml:287
325#: qml/Shell.qml:287
319#, qt-format
326#, qt-format
320msgid "Sorry, incorrect %1"
327msgid "Sorry, incorrect %1"
321−msgstr ""
328+msgstr "Bibore, %1 çewt e"
322
329
323#: qml/Shell.qml:323
330#: qml/Shell.qml:323
324msgid "Sorry, incorrect passphrase."
331msgid "Sorry, incorrect passphrase."
325−msgstr ""
332+msgstr "Bibore, parola çewt e."
326
333
327#: qml/Shell.qml:324
334#: qml/Shell.qml:324
328msgid "Sorry, incorrect passcode."
335msgid "Sorry, incorrect passcode."
329−msgstr ""
336+msgstr "Bibore, parola çewt e."
330
337
331#: qml/Shell.qml:325
338#: qml/Shell.qml:325
332msgid "This will be your last attempt."
339msgid "This will be your last attempt."
333−msgstr ""
340+msgstr "Ev ê ceribandina dawiyê be."
334
341
335#: qml/Shell.qml:327
342#: qml/Shell.qml:327
336msgid ""
343msgid ""
337"If passphrase is entered incorrectly, your phone will conduct a factory "
344"If passphrase is entered incorrectly, your phone will conduct a factory "
338"reset and all personal data will be deleted."
345"reset and all personal data will be deleted."
339msgstr ""
346msgstr ""
347+"Eger parola çewt bê nivîsandin, telefona te dê vegere eyarên fabrîkayê û "
348+"hemû daneyên te yên taybet dê bên jêbirin."
340
349
341#: qml/Shell.qml:328
350#: qml/Shell.qml:328
342msgid ""
351msgid ""
343"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"If passcode is entered incorrectly, your phone will conduct a factory reset "
344"and all personal data will be deleted."
353"and all personal data will be deleted."
345msgstr ""
354msgstr ""
355+"Eger parola çewt bê nivîsandin, telefona te dê vegere eyarên fabrîkayê û "
356+"hemû daneyên te yên taybet dê bên jêbirin."
po/ky.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "Издөө"
171msgstr "Издөө"
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "Аныктоо"
231msgstr "Аныктоо"
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/lo.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
13"Language-Team: Lao <lo@li.org>\n"
13"Language-Team: Lao <lo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "ຊອກຫາ"
171msgstr "ຊອກຫາ"
167
172
@@ -201,11 +206,11 @@ msgstr "ສົ່ງ"
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "ຢືນຢັນ"
231msgstr "ຢືນຢັນ"
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/lt.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-05-19 17:15+0000\n"
11"PO-Revision-Date: 2014-05-19 17:15+0000\n"
12"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
12"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
13"Language-Team: Lithuanian <lt@li.org>\n"
13"Language-Team: Lithuanian <lt@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -164,7 +168,8 @@ msgstr ""
164msgid "See all"
168msgid "See all"
165msgstr ""
169msgstr ""
166
170
167−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
171+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
172+#: qml/Panel/SearchIndicator.qml:27
168msgid "Search"
173msgid "Search"
169msgstr "Paieška"
174msgstr "Paieška"
170
175
@@ -204,11 +209,11 @@ msgstr "Siųsti"
204msgid "Manage Dash"
209msgid "Manage Dash"
205msgstr ""
210msgstr ""
206
211
207−#: qml/Dash/ScopesOverview.qml:408
212+#: qml/Dash/ScopesOverview.qml:417
208msgid "Done"
213msgid "Done"
209msgstr ""
214msgstr ""
210
215
211−#: qml/Dash/ScopesOverview.qml:434
216+#: qml/Dash/ScopesOverview.qml:443
212msgid "Store"
217msgid "Store"
213msgstr ""
218msgstr ""
214
219
@@ -224,7 +229,7 @@ msgstr ""
224msgid "Swipe to unlock"
229msgid "Swipe to unlock"
225msgstr "Braukite ir atrakinsite"
230msgstr "Braukite ir atrakinsite"
226
231
227−#: qml/Hud/HudParametrizedActionsPage.qml:132
232+#: qml/Hud/HudParametrizedActionsPage.qml:139
228msgid "Confirm"
233msgid "Confirm"
229msgstr "Patvirtinti"
234msgstr "Patvirtinti"
230
235
@@ -252,7 +257,7 @@ msgstr "Rodyti slaptažodį"
252msgid "Enter SIM PIN"
257msgid "Enter SIM PIN"
253msgstr ""
258msgstr ""
254
259
255−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
260+#: qml/Notifications/NotificationMenuItemFactory.qml:121
256msgid "Sorry, incorrect PIN"
261msgid "Sorry, incorrect PIN"
257msgstr ""
262msgstr ""
258
263
@@ -296,11 +301,11 @@ msgstr ""
296msgid "Roaming"
301msgid "Roaming"
297msgstr ""
302msgstr ""
298
303
299−#: qml/Shell.qml:266
304+#: qml/Shell.qml:279
300msgid "Enter your passphrase"
305msgid "Enter your passphrase"
301msgstr ""
306msgstr ""
302
307
303−#: qml/Shell.qml:267
308+#: qml/Shell.qml:280
304msgid "Sorry, incorrect passphrase"
309msgid "Sorry, incorrect passphrase"
305msgstr ""
310msgstr ""
306
311
@@ -312,35 +317,35 @@ msgstr ""
312msgid "Sorry, incorrect passcode"
317msgid "Sorry, incorrect passcode"
313msgstr ""
318msgstr ""
314
319
315−#: qml/Shell.qml:273
320+#: qml/Shell.qml:286
316#, qt-format
321#, qt-format
317msgid "Enter your %1"
322msgid "Enter your %1"
318msgstr ""
323msgstr ""
319
324
320−#: qml/Shell.qml:274
325+#: qml/Shell.qml:287
321#, qt-format
326#, qt-format
322msgid "Sorry, incorrect %1"
327msgid "Sorry, incorrect %1"
323msgstr ""
328msgstr ""
324
329
325−#: qml/Shell.qml:310
330+#: qml/Shell.qml:323
326msgid "Sorry, incorrect passphrase."
331msgid "Sorry, incorrect passphrase."
327msgstr ""
332msgstr ""
328
333
329−#: qml/Shell.qml:311
334+#: qml/Shell.qml:324
330msgid "Sorry, incorrect passcode."
335msgid "Sorry, incorrect passcode."
331msgstr ""
336msgstr ""
332
337
333−#: qml/Shell.qml:312
338+#: qml/Shell.qml:325
334msgid "This will be your last attempt."
339msgid "This will be your last attempt."
335msgstr ""
340msgstr ""
336
341
337−#: qml/Shell.qml:314
342+#: qml/Shell.qml:327
338msgid ""
343msgid ""
339"If passphrase is entered incorrectly, your phone will conduct a factory "
344"If passphrase is entered incorrectly, your phone will conduct a factory "
340"reset and all personal data will be deleted."
345"reset and all personal data will be deleted."
341msgstr ""
346msgstr ""
342
347
343−#: qml/Shell.qml:315
348+#: qml/Shell.qml:328
344msgid ""
349msgid ""
345"If passcode is entered incorrectly, your phone will conduct a factory reset "
350"If passcode is entered incorrectly, your phone will conduct a factory reset "
346"and all personal data will be deleted."
351"and all personal data will be deleted."
po/lv.po+35−36
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-21 09:46+0000\n"
11"PO-Revision-Date: 2014-08-21 09:46+0000\n"
12"Last-Translator: Jānis-Marks Gailis <jm-gailis@fai-vianet.fr>\n"
12"Last-Translator: Jānis-Marks Gailis <jm-gailis@fai-vianet.fr>\n"
13"Language-Team: Latvian <lv@li.org>\n"
13"Language-Team: Latvian <lv@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr "Parole: "
22msgstr "Parole: "
23
23
@@ -32,7 +32,7 @@ msgstr ""
32
32
33#: qml/Components/Dialogs.qml:70
33#: qml/Components/Dialogs.qml:70
34msgid "Log out"
34msgid "Log out"
35−msgstr ""
35+msgstr "Iziet"
36
36
37#: qml/Components/Dialogs.qml:71
37#: qml/Components/Dialogs.qml:71
38msgid "Are you sure you want to log out?"
38msgid "Are you sure you want to log out?"
@@ -41,16 +41,16 @@ msgstr ""
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:122
42#: qml/Components/Dialogs.qml:122
43msgid "No"
43msgid "No"
44−msgstr ""
44+msgstr "Nē"
45
45
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
47#: qml/Components/Dialogs.qml:129
47#: qml/Components/Dialogs.qml:129
48msgid "Yes"
48msgid "Yes"
49−msgstr ""
49+msgstr "Jā"
50
50
51#: qml/Components/Dialogs.qml:94
51#: qml/Components/Dialogs.qml:94
52msgid "Shut down"
52msgid "Shut down"
53−msgstr ""
53+msgstr "Izslēgt"
54
54
55#: qml/Components/Dialogs.qml:95
55#: qml/Components/Dialogs.qml:95
56msgid "Are you sure you want to shut down?"
56msgid "Are you sure you want to shut down?"
@@ -58,7 +58,7 @@ msgstr ""
58
58
59#: qml/Components/Dialogs.qml:119
59#: qml/Components/Dialogs.qml:119
60msgid "Reboot"
60msgid "Reboot"
61−msgstr ""
61+msgstr "Pārstartēt"
62
62
63#: qml/Components/Dialogs.qml:120
63#: qml/Components/Dialogs.qml:120
64msgid "Are you sure you want to reboot?"
64msgid "Are you sure you want to reboot?"
@@ -66,7 +66,7 @@ msgstr ""
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "Barošana"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr "Izslēgt"
79msgstr "Izslēgt"
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr "Atcelt"
87msgstr "Atcelt"
84
88
@@ -161,21 +165,22 @@ msgstr "Redzēt mazāk"
161msgid "See all"
165msgid "See all"
162msgstr "Skatīt visus"
166msgstr "Skatīt visus"
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "Meklēt"
171msgstr "Meklēt"
167
172
168#: qml/Dash/PageHeader.qml:270
173#: qml/Dash/PageHeader.qml:270
169msgid "Settings"
174msgid "Settings"
170−msgstr ""
175+msgstr "Iestatījumi"
171
176
172#: qml/Dash/PageHeader.qml:279
177#: qml/Dash/PageHeader.qml:279
173msgid "Remove from Favorites"
178msgid "Remove from Favorites"
174−msgstr ""
179+msgstr "Izņemt no izlases"
175
180
176#: qml/Dash/PageHeader.qml:279
181#: qml/Dash/PageHeader.qml:279
177msgid "Add to Favorites"
182msgid "Add to Favorites"
178−msgstr ""
183+msgstr "Pievienot izlasei"
179
184
180#: qml/Dash/Previews/PreviewActionCombo.qml:34
185#: qml/Dash/Previews/PreviewActionCombo.qml:34
181msgid "More..."
186msgid "More..."
@@ -201,11 +206,11 @@ msgstr "Sūtīt"
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr "Pabeigts"
211msgstr "Pabeigts"
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr "Veikals"
215msgstr "Veikals"
211
216
@@ -221,7 +226,7 @@ msgstr "Visi"
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "Apstiprināt"
231msgstr "Apstiprināt"
227
232
@@ -247,9 +252,9 @@ msgstr "Rādīt paroli"
247
252
248#: qml/Notifications/NotificationMenuItemFactory.qml:120
253#: qml/Notifications/NotificationMenuItemFactory.qml:120
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250−msgstr ""
255+msgstr "Ievadiet SIM PIN"
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr "Atbloķēt SIM"
293msgid "Roaming"
298msgid "Roaming"
294msgstr "Viesabonēšana"
299msgstr "Viesabonēšana"
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,42 +314,36 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr "Ievadiet jūsu %1"
320msgstr "Ievadiet jūsu %1"
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr "Šīs būs jūs pēdējais mēģinājums."
337msgstr "Šīs būs jūs pēdējais mēģinājums."
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
344msgstr ""
349msgstr ""
345−
346−#~ msgid "Restart"
347−#~ msgstr "Pārstartēt"
348−
349−#~ msgid "Are you sure you would like to turn power off?"
350−#~ msgstr "Vai esat drošs ka vēlaties izslēgt?"
po/ml.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-11-23 11:44+0000\n"
11"PO-Revision-Date: 2013-11-23 11:44+0000\n"
12"Last-Translator: ST Alfas <Unknown>\n"
12"Last-Translator: ST Alfas <Unknown>\n"
13"Language-Team: Malayalam <ml@li.org>\n"
13"Language-Team: Malayalam <ml@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -163,7 +167,8 @@ msgstr ""
163msgid "See all"
167msgid "See all"
164msgstr ""
168msgstr ""
165
169
166−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
170+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
171+#: qml/Panel/SearchIndicator.qml:27
167msgid "Search"
172msgid "Search"
168msgstr "തിരയുക"
173msgstr "തിരയുക"
169
174
@@ -203,11 +208,11 @@ msgstr "അയയ്‌ക്കുക"
203msgid "Manage Dash"
208msgid "Manage Dash"
204msgstr ""
209msgstr ""
205
210
206−#: qml/Dash/ScopesOverview.qml:408
211+#: qml/Dash/ScopesOverview.qml:417
207msgid "Done"
212msgid "Done"
208msgstr ""
213msgstr ""
209
214
210−#: qml/Dash/ScopesOverview.qml:434
215+#: qml/Dash/ScopesOverview.qml:443
211msgid "Store"
216msgid "Store"
212msgstr ""
217msgstr ""
213
218
@@ -223,7 +228,7 @@ msgstr ""
223msgid "Swipe to unlock"
228msgid "Swipe to unlock"
224msgstr ""
229msgstr ""
225
230
226−#: qml/Hud/HudParametrizedActionsPage.qml:132
231+#: qml/Hud/HudParametrizedActionsPage.qml:139
227msgid "Confirm"
232msgid "Confirm"
228msgstr "സ്ഥിരീകരിക്കുക"
233msgstr "സ്ഥിരീകരിക്കുക"
229
234
@@ -251,7 +256,7 @@ msgstr "രഹസ്യവാക്ക് കാണിക്കുക"
251msgid "Enter SIM PIN"
256msgid "Enter SIM PIN"
252msgstr ""
257msgstr ""
253
258
254−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
259+#: qml/Notifications/NotificationMenuItemFactory.qml:121
255msgid "Sorry, incorrect PIN"
260msgid "Sorry, incorrect PIN"
256msgstr ""
261msgstr ""
257
262
@@ -295,11 +300,11 @@ msgstr ""
295msgid "Roaming"
300msgid "Roaming"
296msgstr ""
301msgstr ""
297
302
298−#: qml/Shell.qml:266
303+#: qml/Shell.qml:279
299msgid "Enter your passphrase"
304msgid "Enter your passphrase"
300msgstr ""
305msgstr ""
301
306
302−#: qml/Shell.qml:267
307+#: qml/Shell.qml:280
303msgid "Sorry, incorrect passphrase"
308msgid "Sorry, incorrect passphrase"
304msgstr ""
309msgstr ""
305
310
@@ -311,35 +316,35 @@ msgstr ""
311msgid "Sorry, incorrect passcode"
316msgid "Sorry, incorrect passcode"
312msgstr ""
317msgstr ""
313
318
314−#: qml/Shell.qml:273
319+#: qml/Shell.qml:286
315#, qt-format
320#, qt-format
316msgid "Enter your %1"
321msgid "Enter your %1"
317msgstr ""
322msgstr ""
318
323
319−#: qml/Shell.qml:274
324+#: qml/Shell.qml:287
320#, qt-format
325#, qt-format
321msgid "Sorry, incorrect %1"
326msgid "Sorry, incorrect %1"
322msgstr ""
327msgstr ""
323
328
324−#: qml/Shell.qml:310
329+#: qml/Shell.qml:323
325msgid "Sorry, incorrect passphrase."
330msgid "Sorry, incorrect passphrase."
326msgstr ""
331msgstr ""
327
332
328−#: qml/Shell.qml:311
333+#: qml/Shell.qml:324
329msgid "Sorry, incorrect passcode."
334msgid "Sorry, incorrect passcode."
330msgstr ""
335msgstr ""
331
336
332−#: qml/Shell.qml:312
337+#: qml/Shell.qml:325
333msgid "This will be your last attempt."
338msgid "This will be your last attempt."
334msgstr ""
339msgstr ""
335
340
336−#: qml/Shell.qml:314
341+#: qml/Shell.qml:327
337msgid ""
342msgid ""
338"If passphrase is entered incorrectly, your phone will conduct a factory "
343"If passphrase is entered incorrectly, your phone will conduct a factory "
339"reset and all personal data will be deleted."
344"reset and all personal data will be deleted."
340msgstr ""
345msgstr ""
341
346
342−#: qml/Shell.qml:315
347+#: qml/Shell.qml:328
343msgid ""
348msgid ""
344"If passcode is entered incorrectly, your phone will conduct a factory reset "
349"If passcode is entered incorrectly, your phone will conduct a factory reset "
345"and all personal data will be deleted."
350"and all personal data will be deleted."
po/mr.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-01-14 19:54+0000\n"
11"PO-Revision-Date: 2014-01-14 19:54+0000\n"
12"Last-Translator: Rohan Deshmukh <Unknown>\n"
12"Last-Translator: Rohan Deshmukh <Unknown>\n"
13"Language-Team: Marathi <mr@li.org>\n"
13"Language-Team: Marathi <mr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr ""
171msgstr ""
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr ""
231msgstr ""
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/ms.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-01-17 09:05+0000\n"
11"PO-Revision-Date: 2014-01-17 09:05+0000\n"
12"Last-Translator: abuyop <Unknown>\n"
12"Last-Translator: abuyop <Unknown>\n"
13"Language-Team: Malay <ms@li.org>\n"
13"Language-Team: Malay <ms@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "Gelintar"
171msgstr "Gelintar"
167
172
@@ -201,11 +206,11 @@ msgstr "Hantar"
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "Sahkan"
231msgstr "Sahkan"
227
232
@@ -249,7 +254,7 @@ msgstr "Tunjuk kata laluan"
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/my.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-12-12 11:12+0000\n"
11"PO-Revision-Date: 2013-12-12 11:12+0000\n"
12"Last-Translator: Pyae Sone <Unknown>\n"
12"Last-Translator: Pyae Sone <Unknown>\n"
13"Language-Team: Burmese <my@li.org>\n"
13"Language-Team: Burmese <my@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:29+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "ရှာဖွေ"
171msgstr "ရှာဖွေ"
167
172
@@ -201,11 +206,11 @@ msgstr "ပို့မည်"
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "အတည်ပြုပါ"
231msgstr "အတည်ပြုပါ"
227
232
@@ -249,7 +254,7 @@ msgstr "စကားဝှက်ကိုပြ"
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/nb.po+8−4
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-08-28 16:54+0000\n"
11+"PO-Revision-Date: 2014-09-20 12:02+0000\n"
12"Last-Translator: Åka Sikrom <Unknown>\n"
12"Last-Translator: Åka Sikrom <Unknown>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-30 07:46+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-21 06:25+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Slå av"
81msgstr "Slå av"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Start på nytt"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Avbryt"
89msgstr "Avbryt"
po/nl.po+8−4
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-08-30 18:22+0000\n"
11+"PO-Revision-Date: 2014-09-19 14:29+0000\n"
12"Last-Translator: rob <linuxned@gmail.com>\n"
12"Last-Translator: rob <linuxned@gmail.com>\n"
13"Language-Team: Dutch <nl@li.org>\n"
13"Language-Team: Dutch <nl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-31 07:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Uitschakelen"
81msgstr "Uitschakelen"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Herstarten"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Annuleren"
89msgstr "Annuleren"
po/pl.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-18 20:25+0000\n"
11"PO-Revision-Date: 2014-08-18 20:25+0000\n"
12"Last-Translator: Paweł Stroka <pawstr@gmail.com>\n"
12"Last-Translator: Paweł Stroka <pawstr@gmail.com>\n"
13"Language-Team: Polish <pl@li.org>\n"
13"Language-Team: Polish <pl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -165,7 +169,8 @@ msgstr "Zobacz mniej"
165msgid "See all"
169msgid "See all"
166msgstr "Zobacz wszystko"
170msgstr "Zobacz wszystko"
167
171
168−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
172+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
173+#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
174msgid "Search"
170msgstr "Szukaj"
175msgstr "Szukaj"
171
176
@@ -205,11 +210,11 @@ msgstr "Wyślij"
205msgid "Manage Dash"
210msgid "Manage Dash"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:408
213+#: qml/Dash/ScopesOverview.qml:417
209msgid "Done"
214msgid "Done"
210msgstr ""
215msgstr ""
211
216
212−#: qml/Dash/ScopesOverview.qml:434
217+#: qml/Dash/ScopesOverview.qml:443
213msgid "Store"
218msgid "Store"
214msgstr ""
219msgstr ""
215
220
@@ -225,7 +230,7 @@ msgstr ""
225msgid "Swipe to unlock"
230msgid "Swipe to unlock"
226msgstr "Przeciągnij aby odblokować"
231msgstr "Przeciągnij aby odblokować"
227
232
228−#: qml/Hud/HudParametrizedActionsPage.qml:132
233+#: qml/Hud/HudParametrizedActionsPage.qml:139
229msgid "Confirm"
234msgid "Confirm"
230msgstr "Potwierdź"
235msgstr "Potwierdź"
231
236
@@ -253,7 +258,7 @@ msgstr "Wyświetl hasło"
253msgid "Enter SIM PIN"
258msgid "Enter SIM PIN"
254msgstr ""
259msgstr ""
255
260
256−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
261+#: qml/Notifications/NotificationMenuItemFactory.qml:121
257msgid "Sorry, incorrect PIN"
262msgid "Sorry, incorrect PIN"
258msgstr ""
263msgstr ""
259
264
@@ -297,11 +302,11 @@ msgstr ""
297msgid "Roaming"
302msgid "Roaming"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:266
305+#: qml/Shell.qml:279
301msgid "Enter your passphrase"
306msgid "Enter your passphrase"
302msgstr ""
307msgstr ""
303
308
304−#: qml/Shell.qml:267
309+#: qml/Shell.qml:280
305msgid "Sorry, incorrect passphrase"
310msgid "Sorry, incorrect passphrase"
306msgstr ""
311msgstr ""
307
312
@@ -313,35 +318,35 @@ msgstr ""
313msgid "Sorry, incorrect passcode"
318msgid "Sorry, incorrect passcode"
314msgstr ""
319msgstr ""
315
320
316−#: qml/Shell.qml:273
321+#: qml/Shell.qml:286
317#, qt-format
322#, qt-format
318msgid "Enter your %1"
323msgid "Enter your %1"
319msgstr ""
324msgstr ""
320
325
321−#: qml/Shell.qml:274
326+#: qml/Shell.qml:287
322#, qt-format
327#, qt-format
323msgid "Sorry, incorrect %1"
328msgid "Sorry, incorrect %1"
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:310
331+#: qml/Shell.qml:323
327msgid "Sorry, incorrect passphrase."
332msgid "Sorry, incorrect passphrase."
328msgstr "Niestety, błędne hasło"
333msgstr "Niestety, błędne hasło"
329
334
330−#: qml/Shell.qml:311
335+#: qml/Shell.qml:324
331msgid "Sorry, incorrect passcode."
336msgid "Sorry, incorrect passcode."
332msgstr "Niestety, błędny kod"
337msgstr "Niestety, błędny kod"
333
338
334−#: qml/Shell.qml:312
339+#: qml/Shell.qml:325
335msgid "This will be your last attempt."
340msgid "This will be your last attempt."
336msgstr ""
341msgstr ""
337
342
338−#: qml/Shell.qml:314
343+#: qml/Shell.qml:327
339msgid ""
344msgid ""
340"If passphrase is entered incorrectly, your phone will conduct a factory "
345"If passphrase is entered incorrectly, your phone will conduct a factory "
341"reset and all personal data will be deleted."
346"reset and all personal data will be deleted."
342msgstr ""
347msgstr ""
343
348
344−#: qml/Shell.qml:315
349+#: qml/Shell.qml:328
345msgid ""
350msgid ""
346"If passcode is entered incorrectly, your phone will conduct a factory reset "
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"and all personal data will be deleted."
352"and all personal data will be deleted."
po/pt.po+8−4
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-08-29 10:59+0000\n"
11+"PO-Revision-Date: 2014-09-21 15:26+0000\n"
12"Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n"
12"Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n"
13"Language-Team: Portuguese <pt@li.org>\n"
13"Language-Team: Portuguese <pt@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-30 07:46+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-22 07:05+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Desligar"
81msgstr "Desligar"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Reiniciar"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Cancelar"
89msgstr "Cancelar"
po/pt_BR.po+25−29
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-27 19:23+0000\n"
11"PO-Revision-Date: 2014-08-27 19:23+0000\n"
12"Last-Translator: Rafael Neri <Unknown>\n"
12"Last-Translator: Rafael Neri <Unknown>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr "Senha: "
22msgstr "Senha: "
23
23
@@ -76,11 +76,15 @@ msgstr ""
76"Tem certeza que você gostaria \n"
76"Tem certeza que você gostaria \n"
77"de desligar?"
77"de desligar?"
78
78
79−#: qml/Components/Dialogs.qml:144
79+#: qml/Components/Dialogs.qml:147
80msgid "Power off"
80msgid "Power off"
81msgstr "Desligar"
81msgstr "Desligar"
82
82
83−#: qml/Components/Dialogs.qml:162
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr ""
86+
87+#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Cancelar"
89msgstr "Cancelar"
86
90
@@ -167,7 +171,8 @@ msgstr "Ver menos"
167msgid "See all"
171msgid "See all"
168msgstr "Ver todos"
172msgstr "Ver todos"
169
173
170−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
174+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
175+#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
176msgid "Search"
172msgstr "Pesquisar"
177msgstr "Pesquisar"
173
178
@@ -207,11 +212,11 @@ msgstr "Enviar"
207msgid "Manage Dash"
212msgid "Manage Dash"
208msgstr "Gerencia painel"
213msgstr "Gerencia painel"
209
214
210−#: qml/Dash/ScopesOverview.qml:408
215+#: qml/Dash/ScopesOverview.qml:417
211msgid "Done"
216msgid "Done"
212msgstr "Concluído"
217msgstr "Concluído"
213
218
214−#: qml/Dash/ScopesOverview.qml:434
219+#: qml/Dash/ScopesOverview.qml:443
215msgid "Store"
220msgid "Store"
216msgstr "Loja"
221msgstr "Loja"
217
222
@@ -227,7 +232,7 @@ msgstr "Tudo"
227msgid "Swipe to unlock"
232msgid "Swipe to unlock"
228msgstr "Deslizar para desbloquear"
233msgstr "Deslizar para desbloquear"
229
234
230−#: qml/Hud/HudParametrizedActionsPage.qml:132
235+#: qml/Hud/HudParametrizedActionsPage.qml:139
231msgid "Confirm"
236msgid "Confirm"
232msgstr "Confirmar"
237msgstr "Confirmar"
233
238
@@ -255,7 +260,7 @@ msgstr "Exibir senha"
255msgid "Enter SIM PIN"
260msgid "Enter SIM PIN"
256msgstr "Digite o PIN do SIM"
261msgstr "Digite o PIN do SIM"
257
262
258−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
263+#: qml/Notifications/NotificationMenuItemFactory.qml:121
259msgid "Sorry, incorrect PIN"
264msgid "Sorry, incorrect PIN"
260msgstr "Desculpe, PIN incorreto"
265msgstr "Desculpe, PIN incorreto"
261
266
@@ -299,11 +304,11 @@ msgstr "Desbloquear SIM"
299msgid "Roaming"
304msgid "Roaming"
300msgstr "Roaming"
305msgstr "Roaming"
301
306
302−#: qml/Shell.qml:266
307+#: qml/Shell.qml:279
303msgid "Enter your passphrase"
308msgid "Enter your passphrase"
304msgstr "Digite sua senha"
309msgstr "Digite sua senha"
305
310
306−#: qml/Shell.qml:267
311+#: qml/Shell.qml:280
307msgid "Sorry, incorrect passphrase"
312msgid "Sorry, incorrect passphrase"
308msgstr "Desculpe, senha incorreta"
313msgstr "Desculpe, senha incorreta"
309
314
@@ -315,29 +320,29 @@ msgstr "Digite sua senha"
315msgid "Sorry, incorrect passcode"
320msgid "Sorry, incorrect passcode"
316msgstr "Desculpe, senha incorreta"
321msgstr "Desculpe, senha incorreta"
317
322
318−#: qml/Shell.qml:273
323+#: qml/Shell.qml:286
319#, qt-format
324#, qt-format
320msgid "Enter your %1"
325msgid "Enter your %1"
321msgstr "Digite o seu %1"
326msgstr "Digite o seu %1"
322
327
323−#: qml/Shell.qml:274
328+#: qml/Shell.qml:287
324#, qt-format
329#, qt-format
325msgid "Sorry, incorrect %1"
330msgid "Sorry, incorrect %1"
326msgstr "Desculpe, %1 incorreto"
331msgstr "Desculpe, %1 incorreto"
327
332
328−#: qml/Shell.qml:310
333+#: qml/Shell.qml:323
329msgid "Sorry, incorrect passphrase."
334msgid "Sorry, incorrect passphrase."
330msgstr "Desculpe, senha incorreta."
335msgstr "Desculpe, senha incorreta."
331
336
332−#: qml/Shell.qml:311
337+#: qml/Shell.qml:324
333msgid "Sorry, incorrect passcode."
338msgid "Sorry, incorrect passcode."
334msgstr "Desculpe, código de acesso incorreto."
339msgstr "Desculpe, código de acesso incorreto."
335
340
336−#: qml/Shell.qml:312
341+#: qml/Shell.qml:325
337msgid "This will be your last attempt."
342msgid "This will be your last attempt."
338msgstr "Esta será a sua última tentativa."
343msgstr "Esta será a sua última tentativa."
339
344
340−#: qml/Shell.qml:314
345+#: qml/Shell.qml:327
341msgid ""
346msgid ""
342"If passphrase is entered incorrectly, your phone will conduct a factory "
347"If passphrase is entered incorrectly, your phone will conduct a factory "
343"reset and all personal data will be deleted."
348"reset and all personal data will be deleted."
@@ -345,19 +350,10 @@ msgstr ""
345"Se a senha for digitada incorretamente, o telefone será restaurado aos "
350"Se a senha for digitada incorretamente, o telefone será restaurado aos "
346"padrões de fábrica e todos os dados pessoais serão apagados."
351"padrões de fábrica e todos os dados pessoais serão apagados."
347
352
348−#: qml/Shell.qml:315
353+#: qml/Shell.qml:328
349msgid ""
354msgid ""
350"If passcode is entered incorrectly, your phone will conduct a factory reset "
355"If passcode is entered incorrectly, your phone will conduct a factory reset "
351"and all personal data will be deleted."
356"and all personal data will be deleted."
352msgstr ""
357msgstr ""
353"Se o código de acesso for digitado incorretamente, o telefone será "
358"Se o código de acesso for digitado incorretamente, o telefone será "
354"restaurado aos padrões de fábrica e todos os dados pessoais serão apagados."
359"restaurado aos padrões de fábrica e todos os dados pessoais serão apagados."
355−
356−#~ msgid "Restart"
357−#~ msgstr "Reiniciar"
358−
359−#~ msgid "Are you sure you would like to turn power off?"
360−#~ msgstr "Você tem certeza de que deseja desligar?"
361−
362−#~ msgid "Enter your PIN"
363−#~ msgstr "Digite o seu PIN"
po/ro.po+8−4
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-08-31 09:24+0000\n"
11+"PO-Revision-Date: 2014-09-20 11:45+0000\n"
12"Last-Translator: Meriuță Cornel <meriutacornel@neacornel.eu>\n"
12"Last-Translator: Meriuță Cornel <meriutacornel@neacornel.eu>\n"
13"Language-Team: Romanian <ro@li.org>\n"
13"Language-Team: Romanian <ro@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-01 07:33+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-21 06:25+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Oprire"
81msgstr "Oprire"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Repornire"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Anulează"
89msgstr "Anulează"
po/ru.po+7−3
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-29 08:06+0000\n"
11"PO-Revision-Date: 2014-08-29 08:06+0000\n"
12"Last-Translator: Jay ZDLin <Unknown>\n"
12"Last-Translator: Jay ZDLin <Unknown>\n"
13"Language-Team: Russian <ru@li.org>\n"
13"Language-Team: Russian <ru@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-30 07:46+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -78,6 +78,10 @@ msgstr "Отключить питание?"
78msgid "Power off"
78msgid "Power off"
79msgstr "Отключить"
79msgstr "Отключить"
80
80
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
81#: qml/Components/Dialogs.qml:157
85#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr "Отменить"
87msgstr "Отменить"
po/shn.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Shan <shn@li.org>\n"
13"Language-Team: Shan <shn@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr ""
171msgstr ""
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr ""
231msgstr ""
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/si.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr ""
171msgstr ""
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr ""
231msgstr ""
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/sl.po+8−4
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-08-28 06:43+0000\n"
11+"PO-Revision-Date: 2014-09-23 12:35+0000\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-30 07:46+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-24 07:41+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Izklopi"
81msgstr "Izklopi"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Ponovni zagon"
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Prekliči"
89msgstr "Prekliči"
po/sq.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-01-15 13:51+0000\n"
11"PO-Revision-Date: 2014-01-15 13:51+0000\n"
12"Last-Translator: Besmir Zanaj <besmirzanaj@gmail.com>\n"
12"Last-Translator: Besmir Zanaj <besmirzanaj@gmail.com>\n"
13"Language-Team: Albanian <sq@li.org>\n"
13"Language-Team: Albanian <sq@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:29+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:33+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -162,7 +166,8 @@ msgstr ""
162msgid "See all"
166msgid "See all"
163msgstr ""
167msgstr ""
164
168
165−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
169+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
170+#: qml/Panel/SearchIndicator.qml:27
166msgid "Search"
171msgid "Search"
167msgstr ""
172msgstr ""
168
173
@@ -202,11 +207,11 @@ msgstr ""
202msgid "Manage Dash"
207msgid "Manage Dash"
203msgstr ""
208msgstr ""
204
209
205−#: qml/Dash/ScopesOverview.qml:408
210+#: qml/Dash/ScopesOverview.qml:417
206msgid "Done"
211msgid "Done"
207msgstr ""
212msgstr ""
208
213
209−#: qml/Dash/ScopesOverview.qml:434
214+#: qml/Dash/ScopesOverview.qml:443
210msgid "Store"
215msgid "Store"
211msgstr ""
216msgstr ""
212
217
@@ -222,7 +227,7 @@ msgstr ""
222msgid "Swipe to unlock"
227msgid "Swipe to unlock"
223msgstr ""
228msgstr ""
224
229
225−#: qml/Hud/HudParametrizedActionsPage.qml:132
230+#: qml/Hud/HudParametrizedActionsPage.qml:139
226msgid "Confirm"
231msgid "Confirm"
227msgstr ""
232msgstr ""
228
233
@@ -250,7 +255,7 @@ msgstr ""
250msgid "Enter SIM PIN"
255msgid "Enter SIM PIN"
251msgstr ""
256msgstr ""
252
257
253−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
258+#: qml/Notifications/NotificationMenuItemFactory.qml:121
254msgid "Sorry, incorrect PIN"
259msgid "Sorry, incorrect PIN"
255msgstr ""
260msgstr ""
256
261
@@ -294,11 +299,11 @@ msgstr ""
294msgid "Roaming"
299msgid "Roaming"
295msgstr ""
300msgstr ""
296
301
297−#: qml/Shell.qml:266
302+#: qml/Shell.qml:279
298msgid "Enter your passphrase"
303msgid "Enter your passphrase"
299msgstr ""
304msgstr ""
300
305
301−#: qml/Shell.qml:267
306+#: qml/Shell.qml:280
302msgid "Sorry, incorrect passphrase"
307msgid "Sorry, incorrect passphrase"
303msgstr ""
308msgstr ""
304
309
@@ -310,35 +315,35 @@ msgstr ""
310msgid "Sorry, incorrect passcode"
315msgid "Sorry, incorrect passcode"
311msgstr ""
316msgstr ""
312
317
313−#: qml/Shell.qml:273
318+#: qml/Shell.qml:286
314#, qt-format
319#, qt-format
315msgid "Enter your %1"
320msgid "Enter your %1"
316msgstr ""
321msgstr ""
317
322
318−#: qml/Shell.qml:274
323+#: qml/Shell.qml:287
319#, qt-format
324#, qt-format
320msgid "Sorry, incorrect %1"
325msgid "Sorry, incorrect %1"
321msgstr ""
326msgstr ""
322
327
323−#: qml/Shell.qml:310
328+#: qml/Shell.qml:323
324msgid "Sorry, incorrect passphrase."
329msgid "Sorry, incorrect passphrase."
325msgstr ""
330msgstr ""
326
331
327−#: qml/Shell.qml:311
332+#: qml/Shell.qml:324
328msgid "Sorry, incorrect passcode."
333msgid "Sorry, incorrect passcode."
329msgstr ""
334msgstr ""
330
335
331−#: qml/Shell.qml:312
336+#: qml/Shell.qml:325
332msgid "This will be your last attempt."
337msgid "This will be your last attempt."
333msgstr ""
338msgstr ""
334
339
335−#: qml/Shell.qml:314
340+#: qml/Shell.qml:327
336msgid ""
341msgid ""
337"If passphrase is entered incorrectly, your phone will conduct a factory "
342"If passphrase is entered incorrectly, your phone will conduct a factory "
338"reset and all personal data will be deleted."
343"reset and all personal data will be deleted."
339msgstr ""
344msgstr ""
340
345
341−#: qml/Shell.qml:315
346+#: qml/Shell.qml:328
342msgid ""
347msgid ""
343"If passcode is entered incorrectly, your phone will conduct a factory reset "
348"If passcode is entered incorrectly, your phone will conduct a factory reset "
344"and all personal data will be deleted."
349"and all personal data will be deleted."
po/sr.po+7−3
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-30 11:46+0000\n"
11"PO-Revision-Date: 2014-08-30 11:46+0000\n"
12"Last-Translator: Данило Шеган <Unknown>\n"
12"Last-Translator: Данило Шеган <Unknown>\n"
13"Language-Team: Serbian <sr@li.org>\n"
13"Language-Team: Serbian <sr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-31 07:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17176)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:130
20#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
@@ -80,6 +80,10 @@ msgstr ""
80msgid "Power off"
80msgid "Power off"
81msgstr "Искључи"
81msgstr "Искључи"
82
82
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr ""
86+
83#: qml/Components/Dialogs.qml:157
87#: qml/Components/Dialogs.qml:157
84msgid "Cancel"
88msgid "Cancel"
85msgstr "Откажи"
89msgstr "Откажи"
po/sv.po+7−3
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-09-08 15:57+0000\n"
11+"PO-Revision-Date: 2014-09-23 08:37+0000\n"
12"Last-Translator: Josef Andersson <Unknown>\n"
12"Last-Translator: Josef Andersson <Unknown>\n"
13"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
13"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-09-10 08:02+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-24 07:41+0000\n"
18"X-Generator: Launchpad (build 17196)\n"
18"X-Generator: Launchpad (build 17196)\n"
19"Language: sv\n"
19"Language: sv\n"
20
20
@@ -81,6 +81,10 @@ msgstr ""
81msgid "Power off"
81msgid "Power off"
82msgstr "Stäng av"
82msgstr "Stäng av"
83
83
84+#: qml/Components/Dialogs.qml:157
85+msgid "Restart"
86+msgstr "Omstart"
87+
84#: qml/Components/Dialogs.qml:157
88#: qml/Components/Dialogs.qml:157
85msgid "Cancel"
89msgid "Cancel"
86msgstr "Avbryt"
90msgstr "Avbryt"
po/sw.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-01-14 19:28+0000\n"
11"PO-Revision-Date: 2014-01-14 19:28+0000\n"
12"Last-Translator: Damas <Unknown>\n"
12"Last-Translator: Damas <Unknown>\n"
13"Language-Team: Swahili <sw@li.org>\n"
13"Language-Team: Swahili <sw@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "Tafuta"
171msgstr "Tafuta"
167
172
@@ -201,11 +206,11 @@ msgstr "Tuma"
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "Thibitisha"
231msgstr "Thibitisha"
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/ta.po+25−20
@@ -7,18 +7,18 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
12"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
12"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19"Language: ta\n"
19"Language: ta\n"
20
20
21−#: plugins/LightDM/Greeter.cpp:129
21+#: plugins/LightDM/Greeter.cpp:130
22msgid "Password: "
22msgid "Password: "
23msgstr ""
23msgstr ""
24
24
@@ -75,11 +75,15 @@ msgid ""
75"to power off?"
75"to power off?"
76msgstr ""
76msgstr ""
77
77
78−#: qml/Components/Dialogs.qml:144
78+#: qml/Components/Dialogs.qml:147
79msgid "Power off"
79msgid "Power off"
80msgstr ""
80msgstr ""
81
81
82−#: qml/Components/Dialogs.qml:162
82+#: qml/Components/Dialogs.qml:157
83+msgid "Restart"
84+msgstr ""
85+
86+#: qml/Components/Dialogs.qml:157
83msgid "Cancel"
87msgid "Cancel"
84msgstr ""
88msgstr ""
85
89
@@ -164,7 +168,8 @@ msgstr ""
164msgid "See all"
168msgid "See all"
165msgstr ""
169msgstr ""
166
170
167−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
171+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
172+#: qml/Panel/SearchIndicator.qml:27
168msgid "Search"
173msgid "Search"
169msgstr "தெடு"
174msgstr "தெடு"
170
175
@@ -204,11 +209,11 @@ msgstr "அனுப்பு"
204msgid "Manage Dash"
209msgid "Manage Dash"
205msgstr ""
210msgstr ""
206
211
207−#: qml/Dash/ScopesOverview.qml:408
212+#: qml/Dash/ScopesOverview.qml:417
208msgid "Done"
213msgid "Done"
209msgstr ""
214msgstr ""
210
215
211−#: qml/Dash/ScopesOverview.qml:434
216+#: qml/Dash/ScopesOverview.qml:443
212msgid "Store"
217msgid "Store"
213msgstr ""
218msgstr ""
214
219
@@ -224,7 +229,7 @@ msgstr ""
224msgid "Swipe to unlock"
229msgid "Swipe to unlock"
225msgstr ""
230msgstr ""
226
231
227−#: qml/Hud/HudParametrizedActionsPage.qml:132
232+#: qml/Hud/HudParametrizedActionsPage.qml:139
228msgid "Confirm"
233msgid "Confirm"
229msgstr "உறுதிப்படுத்து"
234msgstr "உறுதிப்படுத்து"
230
235
@@ -252,7 +257,7 @@ msgstr ""
252msgid "Enter SIM PIN"
257msgid "Enter SIM PIN"
253msgstr ""
258msgstr ""
254
259
255−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
260+#: qml/Notifications/NotificationMenuItemFactory.qml:121
256msgid "Sorry, incorrect PIN"
261msgid "Sorry, incorrect PIN"
257msgstr ""
262msgstr ""
258
263
@@ -296,11 +301,11 @@ msgstr ""
296msgid "Roaming"
301msgid "Roaming"
297msgstr ""
302msgstr ""
298
303
299−#: qml/Shell.qml:266
304+#: qml/Shell.qml:279
300msgid "Enter your passphrase"
305msgid "Enter your passphrase"
301msgstr ""
306msgstr ""
302
307
303−#: qml/Shell.qml:267
308+#: qml/Shell.qml:280
304msgid "Sorry, incorrect passphrase"
309msgid "Sorry, incorrect passphrase"
305msgstr ""
310msgstr ""
306
311
@@ -312,35 +317,35 @@ msgstr ""
312msgid "Sorry, incorrect passcode"
317msgid "Sorry, incorrect passcode"
313msgstr ""
318msgstr ""
314
319
315−#: qml/Shell.qml:273
320+#: qml/Shell.qml:286
316#, qt-format
321#, qt-format
317msgid "Enter your %1"
322msgid "Enter your %1"
318msgstr ""
323msgstr ""
319
324
320−#: qml/Shell.qml:274
325+#: qml/Shell.qml:287
321#, qt-format
326#, qt-format
322msgid "Sorry, incorrect %1"
327msgid "Sorry, incorrect %1"
323msgstr ""
328msgstr ""
324
329
325−#: qml/Shell.qml:310
330+#: qml/Shell.qml:323
326msgid "Sorry, incorrect passphrase."
331msgid "Sorry, incorrect passphrase."
327msgstr ""
332msgstr ""
328
333
329−#: qml/Shell.qml:311
334+#: qml/Shell.qml:324
330msgid "Sorry, incorrect passcode."
335msgid "Sorry, incorrect passcode."
331msgstr ""
336msgstr ""
332
337
333−#: qml/Shell.qml:312
338+#: qml/Shell.qml:325
334msgid "This will be your last attempt."
339msgid "This will be your last attempt."
335msgstr ""
340msgstr ""
336
341
337−#: qml/Shell.qml:314
342+#: qml/Shell.qml:327
338msgid ""
343msgid ""
339"If passphrase is entered incorrectly, your phone will conduct a factory "
344"If passphrase is entered incorrectly, your phone will conduct a factory "
340"reset and all personal data will be deleted."
345"reset and all personal data will be deleted."
341msgstr ""
346msgstr ""
342
347
343−#: qml/Shell.qml:315
348+#: qml/Shell.qml:328
344msgid ""
349msgid ""
345"If passcode is entered incorrectly, your phone will conduct a factory reset "
350"If passcode is entered incorrectly, your phone will conduct a factory reset "
346"and all personal data will be deleted."
351"and all personal data will be deleted."
po/te.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-07-19 10:04+0000\n"
11"PO-Revision-Date: 2014-07-19 10:04+0000\n"
12"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
12"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
13"Language-Team: Telugu <te@li.org>\n"
13"Language-Team: Telugu <te@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "వెతుకు"
171msgstr "వెతుకు"
167
172
@@ -201,11 +206,11 @@ msgstr "పంపు"
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr "తాళంతీయుటకు గీకండి"
227msgstr "తాళంతీయుటకు గీకండి"
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "నిర్ధారించండి"
231msgstr "నిర్ధారించండి"
227
232
@@ -249,7 +254,7 @@ msgstr "సంకేతపదాన్ని చూపించు"
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/tr.po+51−42
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-07-16 17:58+0000\n"
11"PO-Revision-Date: 2014-07-16 17:58+0000\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
13"Language-Team: Turkish <tr@li.org>\n"
13"Language-Team: Turkish <tr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -41,16 +41,16 @@ msgstr ""
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:122
42#: qml/Components/Dialogs.qml:122
43msgid "No"
43msgid "No"
44−msgstr ""
44+msgstr "Hayır"
45
45
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
47#: qml/Components/Dialogs.qml:129
47#: qml/Components/Dialogs.qml:129
48msgid "Yes"
48msgid "Yes"
49−msgstr ""
49+msgstr "Evet"
50
50
51#: qml/Components/Dialogs.qml:94
51#: qml/Components/Dialogs.qml:94
52msgid "Shut down"
52msgid "Shut down"
53−msgstr ""
53+msgstr "Bilgisayarı Kapat"
54
54
55#: qml/Components/Dialogs.qml:95
55#: qml/Components/Dialogs.qml:95
56msgid "Are you sure you want to shut down?"
56msgid "Are you sure you want to shut down?"
@@ -58,11 +58,11 @@ msgstr ""
58
58
59#: qml/Components/Dialogs.qml:119
59#: qml/Components/Dialogs.qml:119
60msgid "Reboot"
60msgid "Reboot"
61−msgstr ""
61+msgstr "Yeniden başlat"
62
62
63#: qml/Components/Dialogs.qml:120
63#: qml/Components/Dialogs.qml:120
64msgid "Are you sure you want to reboot?"
64msgid "Are you sure you want to reboot?"
65−msgstr ""
65+msgstr "Bilgisayarı yeniden başlatmak istediğinize emin misiniz?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
@@ -72,13 +72,17 @@ msgstr ""
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75−msgstr ""
75+msgstr "Bilgisayarı kapatmak istediğinize emin misiniz?"
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -137,7 +141,7 @@ msgstr ""
137
141
138#: qml/Components/Lockscreen.qml:172
142#: qml/Components/Lockscreen.qml:172
139msgid "Too many incorrect attempts"
143msgid "Too many incorrect attempts"
140−msgstr ""
144+msgstr "Çok fazla hatalı deneme yaptınız"
141
145
142#: qml/Components/Lockscreen.qml:206
146#: qml/Components/Lockscreen.qml:206
143msgid "Emergency Call"
147msgid "Emergency Call"
@@ -162,9 +166,10 @@ msgstr "Daha azını gör"
162
166
163#: qml/Dash/GenericScopeView.qml:361
167#: qml/Dash/GenericScopeView.qml:361
164msgid "See all"
168msgid "See all"
165−msgstr ""
169+msgstr "Tümünü gör"
166
170
167−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
171+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
172+#: qml/Panel/SearchIndicator.qml:27
168msgid "Search"
173msgid "Search"
169msgstr "Ara"
174msgstr "Ara"
170
175
@@ -178,11 +183,11 @@ msgstr ""
178
183
179#: qml/Dash/PageHeader.qml:279
184#: qml/Dash/PageHeader.qml:279
180msgid "Add to Favorites"
185msgid "Add to Favorites"
181−msgstr ""
186+msgstr "Yer İmlerine Ekle"
182
187
183#: qml/Dash/Previews/PreviewActionCombo.qml:34
188#: qml/Dash/Previews/PreviewActionCombo.qml:34
184msgid "More..."
189msgid "More..."
185−msgstr "Daha fazlası..."
190+msgstr "Daha Fazla..."
186
191
187#: qml/Dash/Previews/PreviewActionCombo.qml:34
192#: qml/Dash/Previews/PreviewActionCombo.qml:34
188msgid "Less..."
193msgid "Less..."
@@ -204,13 +209,13 @@ msgstr "Gönder"
204msgid "Manage Dash"
209msgid "Manage Dash"
205msgstr ""
210msgstr ""
206
211
207−#: qml/Dash/ScopesOverview.qml:408
212+#: qml/Dash/ScopesOverview.qml:417
208msgid "Done"
213msgid "Done"
209−msgstr ""
214+msgstr "Bitti"
210
215
211−#: qml/Dash/ScopesOverview.qml:434
216+#: qml/Dash/ScopesOverview.qml:443
212msgid "Store"
217msgid "Store"
213−msgstr ""
218+msgstr "Mağaza"
214
219
215#: qml/Dash/ScopesOverviewTab.qml:36
220#: qml/Dash/ScopesOverviewTab.qml:36
216msgid "Favorites"
221msgid "Favorites"
@@ -224,7 +229,7 @@ msgstr ""
224msgid "Swipe to unlock"
229msgid "Swipe to unlock"
225msgstr "Açmak için kaydırın"
230msgstr "Açmak için kaydırın"
226
231
227−#: qml/Hud/HudParametrizedActionsPage.qml:132
232+#: qml/Hud/HudParametrizedActionsPage.qml:139
228msgid "Confirm"
233msgid "Confirm"
229msgstr "Onayla"
234msgstr "Onayla"
230
235
@@ -252,9 +257,9 @@ msgstr "Parolayı göster"
252msgid "Enter SIM PIN"
257msgid "Enter SIM PIN"
253msgstr ""
258msgstr ""
254
259
255−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
260+#: qml/Notifications/NotificationMenuItemFactory.qml:121
256msgid "Sorry, incorrect PIN"
261msgid "Sorry, incorrect PIN"
257−msgstr ""
262+msgstr "Üzgünüm, hatalı PIN"
258
263
259#: qml/Panel/ActiveCallHint.qml:77
264#: qml/Panel/ActiveCallHint.qml:77
260msgid "Tap to return to call..."
265msgid "Tap to return to call..."
@@ -290,58 +295,62 @@ msgstr "Başarısız, yeniden denemek için dokunun"
290
295
291#: qml/Panel/Indicators/ModemInfoItem.qml:105
296#: qml/Panel/Indicators/ModemInfoItem.qml:105
292msgid "Unlock SIM"
297msgid "Unlock SIM"
293−msgstr ""
298+msgstr "SIM kilidini aç"
294
299
295#: qml/Panel/Indicators/RoamingIndication.qml:27
300#: qml/Panel/Indicators/RoamingIndication.qml:27
296msgid "Roaming"
301msgid "Roaming"
297msgstr ""
302msgstr ""
298
303
299−#: qml/Shell.qml:266
304+#: qml/Shell.qml:279
300msgid "Enter your passphrase"
305msgid "Enter your passphrase"
301−msgstr ""
306+msgstr "Parolanızı girin"
302
307
303−#: qml/Shell.qml:267
308+#: qml/Shell.qml:280
304msgid "Sorry, incorrect passphrase"
309msgid "Sorry, incorrect passphrase"
305−msgstr ""
310+msgstr "Üzgünüm, hatalı parola"
306
311
307#: qml/Shell.qml:282
312#: qml/Shell.qml:282
308msgid "Enter your passcode"
313msgid "Enter your passcode"
309−msgstr ""
314+msgstr "Parolanızı girin"
310
315
311#: qml/Shell.qml:283
316#: qml/Shell.qml:283
312msgid "Sorry, incorrect passcode"
317msgid "Sorry, incorrect passcode"
313−msgstr ""
318+msgstr "Üzgünüm, hatalı parola"
314
319
315−#: qml/Shell.qml:273
320+#: qml/Shell.qml:286
316#, qt-format
321#, qt-format
317msgid "Enter your %1"
322msgid "Enter your %1"
318msgstr ""
323msgstr ""
319
324
320−#: qml/Shell.qml:274
325+#: qml/Shell.qml:287
321#, qt-format
326#, qt-format
322msgid "Sorry, incorrect %1"
327msgid "Sorry, incorrect %1"
323−msgstr ""
328+msgstr "Üzgünüm, hatalı %1"
324
329
325−#: qml/Shell.qml:310
330+#: qml/Shell.qml:323
326msgid "Sorry, incorrect passphrase."
331msgid "Sorry, incorrect passphrase."
327−msgstr ""
332+msgstr "Üzgünüm, hatalı parola."
328
333
329−#: qml/Shell.qml:311
334+#: qml/Shell.qml:324
330msgid "Sorry, incorrect passcode."
335msgid "Sorry, incorrect passcode."
331−msgstr ""
336+msgstr "Üzgünüm, hatalı parola."
332
337
333−#: qml/Shell.qml:312
338+#: qml/Shell.qml:325
334msgid "This will be your last attempt."
339msgid "This will be your last attempt."
335−msgstr ""
340+msgstr "Bu son denemeniz olacak."
336
341
337−#: qml/Shell.qml:314
342+#: qml/Shell.qml:327
338msgid ""
343msgid ""
339"If passphrase is entered incorrectly, your phone will conduct a factory "
344"If passphrase is entered incorrectly, your phone will conduct a factory "
340"reset and all personal data will be deleted."
345"reset and all personal data will be deleted."
341msgstr ""
346msgstr ""
347+"Eğer hatalı parola girilirse, telefonunuz fabrika ayarlarına dönecek ve tüm "
348+"kişisel verileriniz silinecek."
342
349
343−#: qml/Shell.qml:315
350+#: qml/Shell.qml:328
344msgid ""
351msgid ""
345"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"If passcode is entered incorrectly, your phone will conduct a factory reset "
346"and all personal data will be deleted."
353"and all personal data will be deleted."
347msgstr ""
354msgstr ""
355+"Eğer hatalı parola girilirse, telefonunuz fabrika ayarlarına dönecek ve tüm "
356+"kişisel verileriniz silinecek."
po/ug.po+68−57
@@ -7,19 +7,19 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11−"PO-Revision-Date: 2014-07-29 04:06+0000\n"
11+"PO-Revision-Date: 2014-09-23 04:49+0000\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
13"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
13"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-24 07:41+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22−msgstr ""
22+msgstr "ئىم: "
23
23
24#: plugins/Unity/Launcher/launcheritem.cpp:43
24#: plugins/Unity/Launcher/launcheritem.cpp:43
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -32,55 +32,61 @@ msgstr "تېزلەتمىنى ئېلىۋەت"
32
32
33#: qml/Components/Dialogs.qml:70
33#: qml/Components/Dialogs.qml:70
34msgid "Log out"
34msgid "Log out"
35−msgstr ""
35+msgstr "تىزىمدىن چىق"
36
36
37#: qml/Components/Dialogs.qml:71
37#: qml/Components/Dialogs.qml:71
38msgid "Are you sure you want to log out?"
38msgid "Are you sure you want to log out?"
39−msgstr ""
39+msgstr "راستلا چىقىپ كېتەمسىز؟"
40
40
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:122
42#: qml/Components/Dialogs.qml:122
43msgid "No"
43msgid "No"
44−msgstr ""
44+msgstr "ياق"
45
45
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
47#: qml/Components/Dialogs.qml:129
47#: qml/Components/Dialogs.qml:129
48msgid "Yes"
48msgid "Yes"
49−msgstr ""
49+msgstr "ھەئە"
50
50
51#: qml/Components/Dialogs.qml:94
51#: qml/Components/Dialogs.qml:94
52msgid "Shut down"
52msgid "Shut down"
53−msgstr ""
53+msgstr "تاقا"
54
54
55#: qml/Components/Dialogs.qml:95
55#: qml/Components/Dialogs.qml:95
56msgid "Are you sure you want to shut down?"
56msgid "Are you sure you want to shut down?"
57−msgstr ""
57+msgstr "راستلا تاقامسىز؟"
58
58
59#: qml/Components/Dialogs.qml:119
59#: qml/Components/Dialogs.qml:119
60msgid "Reboot"
60msgid "Reboot"
61−msgstr ""
61+msgstr "قايتا قوزغات"
62
62
63#: qml/Components/Dialogs.qml:120
63#: qml/Components/Dialogs.qml:120
64msgid "Are you sure you want to reboot?"
64msgid "Are you sure you want to reboot?"
65−msgstr ""
65+msgstr "راستلا قايتا قوزغىتامسىز؟"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "توك مەنبە"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76+"راستلا\n"
77+"توكنى ئۈزەمسىز؟"
76
78
77−#: qml/Components/Dialogs.qml:144
79+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
80msgid "Power off"
79−msgstr ""
81+msgstr "توكنى ئۈز"
82+
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "قايتا قوزغات"
80
86
81−#: qml/Components/Dialogs.qml:162
87+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
88msgid "Cancel"
83−msgstr ""
89+msgstr "ئەمەلدىن قالدۇر"
84
90
85#: qml/Components/EdgeDemoOverlay.qml:151
91#: qml/Components/EdgeDemoOverlay.qml:151
86msgid "Skip intro"
92msgid "Skip intro"
@@ -132,11 +138,11 @@ msgstr ""
132
138
133#: qml/Components/Lockscreen.qml:167
139#: qml/Components/Lockscreen.qml:167
134msgid "Please wait"
140msgid "Please wait"
135−msgstr ""
141+msgstr "سەل ساقلاڭ"
136
142
137#: qml/Components/Lockscreen.qml:172
143#: qml/Components/Lockscreen.qml:172
138msgid "Too many incorrect attempts"
144msgid "Too many incorrect attempts"
139−msgstr ""
145+msgstr "مەغلۇپ بولۇش سانى چەكتىن ئېشىپ كەتتى"
140
146
141#: qml/Components/Lockscreen.qml:206
147#: qml/Components/Lockscreen.qml:206
142msgid "Emergency Call"
148msgid "Emergency Call"
@@ -163,21 +169,22 @@ msgstr "ئازراق كۆرۈش"
163msgid "See all"
169msgid "See all"
164msgstr "ھەممىنى كۆرۈش…"
170msgstr "ھەممىنى كۆرۈش…"
165
171
166−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
172+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
173+#: qml/Panel/SearchIndicator.qml:27
167msgid "Search"
174msgid "Search"
168msgstr "ئىزدە"
175msgstr "ئىزدە"
169
176
170#: qml/Dash/PageHeader.qml:270
177#: qml/Dash/PageHeader.qml:270
171msgid "Settings"
178msgid "Settings"
172−msgstr ""
179+msgstr "تەڭشەكلەر"
173
180
174#: qml/Dash/PageHeader.qml:279
181#: qml/Dash/PageHeader.qml:279
175msgid "Remove from Favorites"
182msgid "Remove from Favorites"
176−msgstr ""
183+msgstr "يىغقۇچتىن چىقىرىۋەت"
177
184
178#: qml/Dash/PageHeader.qml:279
185#: qml/Dash/PageHeader.qml:279
179msgid "Add to Favorites"
186msgid "Add to Favorites"
180−msgstr ""
187+msgstr "يىغقۇچقا قوش"
181
188
182#: qml/Dash/Previews/PreviewActionCombo.qml:34
189#: qml/Dash/Previews/PreviewActionCombo.qml:34
183msgid "More..."
190msgid "More..."
@@ -197,33 +204,33 @@ msgstr "باھا قوشۇش"
197
204
198#: qml/Dash/Previews/PreviewRatingInput.qml:166
205#: qml/Dash/Previews/PreviewRatingInput.qml:166
199msgid "Send"
206msgid "Send"
200−msgstr "ئەۋەت"
207+msgstr "يوللا"
201
208
202#: qml/Dash/ScopesOverview.qml:201
209#: qml/Dash/ScopesOverview.qml:201
203msgid "Manage Dash"
210msgid "Manage Dash"
204−msgstr ""
211+msgstr "باش تاختىنى باشقۇرۇش"
205
212
206−#: qml/Dash/ScopesOverview.qml:408
213+#: qml/Dash/ScopesOverview.qml:417
207msgid "Done"
214msgid "Done"
208−msgstr ""
215+msgstr "تامام"
209
216
210−#: qml/Dash/ScopesOverview.qml:434
217+#: qml/Dash/ScopesOverview.qml:443
211msgid "Store"
218msgid "Store"
212−msgstr ""
219+msgstr "ساقلا"
213
220
214#: qml/Dash/ScopesOverviewTab.qml:36
221#: qml/Dash/ScopesOverviewTab.qml:36
215msgid "Favorites"
222msgid "Favorites"
216−msgstr ""
223+msgstr "يىغقۇچ"
217
224
218#: qml/Dash/ScopesOverviewTab.qml:54
225#: qml/Dash/ScopesOverviewTab.qml:54
219msgid "All"
226msgid "All"
220−msgstr ""
227+msgstr "ھەممىسى"
221
228
222#: qml/Greeter/Greeter.qml:157
229#: qml/Greeter/Greeter.qml:157
223msgid "Swipe to unlock"
230msgid "Swipe to unlock"
224msgstr "سىيرىسىڭىز قۇلۇپسىزلىنىدۇ"
231msgstr "سىيرىسىڭىز قۇلۇپسىزلىنىدۇ"
225
232
226−#: qml/Hud/HudParametrizedActionsPage.qml:132
233+#: qml/Hud/HudParametrizedActionsPage.qml:139
227msgid "Confirm"
234msgid "Confirm"
228msgstr "جەزملە"
235msgstr "جەزملە"
229
236
@@ -249,11 +256,11 @@ msgstr "ئىم كۆرسەت"
249
256
250#: qml/Notifications/NotificationMenuItemFactory.qml:120
257#: qml/Notifications/NotificationMenuItemFactory.qml:120
251msgid "Enter SIM PIN"
258msgid "Enter SIM PIN"
252−msgstr ""
259+msgstr "SIM نىڭ ئىمى(PIN) نى كىرگۈزۈڭ"
253
260
254−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
261+#: qml/Notifications/NotificationMenuItemFactory.qml:121
255msgid "Sorry, incorrect PIN"
262msgid "Sorry, incorrect PIN"
256−msgstr ""
263+msgstr "كەچۈرۈڭ، PIN توغرا ئەمەس"
257
264
258#: qml/Panel/ActiveCallHint.qml:77
265#: qml/Panel/ActiveCallHint.qml:77
259msgid "Tap to return to call..."
266msgid "Tap to return to call..."
@@ -289,58 +296,62 @@ msgstr "مەغلۇپ بولدى، چېكىپ قايتا سىناڭ"
289
296
290#: qml/Panel/Indicators/ModemInfoItem.qml:105
297#: qml/Panel/Indicators/ModemInfoItem.qml:105
291msgid "Unlock SIM"
298msgid "Unlock SIM"
292−msgstr ""
299+msgstr "SIM نى قۇلۇپسىزلاش"
293
300
294#: qml/Panel/Indicators/RoamingIndication.qml:27
301#: qml/Panel/Indicators/RoamingIndication.qml:27
295msgid "Roaming"
302msgid "Roaming"
296−msgstr ""
303+msgstr "كەزمە"
297
304
298−#: qml/Shell.qml:266
305+#: qml/Shell.qml:279
299msgid "Enter your passphrase"
306msgid "Enter your passphrase"
300−msgstr ""
307+msgstr "ئىمىڭىزنى كىرگۈزۈڭ"
301
308
302−#: qml/Shell.qml:267
309+#: qml/Shell.qml:280
303msgid "Sorry, incorrect passphrase"
310msgid "Sorry, incorrect passphrase"
304−msgstr ""
311+msgstr "كەچۈرۈڭ، ئىم توغرا ئەمەس"
305
312
306#: qml/Shell.qml:282
313#: qml/Shell.qml:282
307msgid "Enter your passcode"
314msgid "Enter your passcode"
308−msgstr ""
315+msgstr "ئىمىڭىزنى كىرگۈزۈڭ"
309
316
310#: qml/Shell.qml:283
317#: qml/Shell.qml:283
311msgid "Sorry, incorrect passcode"
318msgid "Sorry, incorrect passcode"
312−msgstr ""
319+msgstr "كەچۈرۈڭ، ئىم توغرا ئەمەس"
313
320
314−#: qml/Shell.qml:273
321+#: qml/Shell.qml:286
315#, qt-format
322#, qt-format
316msgid "Enter your %1"
323msgid "Enter your %1"
317−msgstr ""
324+msgstr "%1 نى كىرگۈزۈڭ"
318
325
319−#: qml/Shell.qml:274
326+#: qml/Shell.qml:287
320#, qt-format
327#, qt-format
321msgid "Sorry, incorrect %1"
328msgid "Sorry, incorrect %1"
322−msgstr ""
329+msgstr "كەچۈرۈڭ، %1 توغرا ئەمەس"
323
330
324−#: qml/Shell.qml:310
331+#: qml/Shell.qml:323
325msgid "Sorry, incorrect passphrase."
332msgid "Sorry, incorrect passphrase."
326−msgstr ""
333+msgstr "كەچۈرۈڭ، ئىم توغرا ئەمەس"
327
334
328−#: qml/Shell.qml:311
335+#: qml/Shell.qml:324
329msgid "Sorry, incorrect passcode."
336msgid "Sorry, incorrect passcode."
330−msgstr ""
337+msgstr "كەچۈرۈڭ، ئىم كودى ئەمەس"
331
338
332−#: qml/Shell.qml:312
339+#: qml/Shell.qml:325
333msgid "This will be your last attempt."
340msgid "This will be your last attempt."
334−msgstr ""
341+msgstr "بۇ سىزنىڭ ئەڭ ئاخىرقى پۇرسىتىڭىز"
335
342
336−#: qml/Shell.qml:314
343+#: qml/Shell.qml:327
337msgid ""
344msgid ""
338"If passphrase is entered incorrectly, your phone will conduct a factory "
345"If passphrase is entered incorrectly, your phone will conduct a factory "
339"reset and all personal data will be deleted."
346"reset and all personal data will be deleted."
340msgstr ""
347msgstr ""
348+"ئەگەر ئىم توغرا بولمىسا، تېلېفونىڭىز ئەسلىگە قايتۇرۇلۇپ، زاۋۇتتىن چىققان "
349+"ھالەتكە كېلىپ قالىدۇ. بارلىق مەزمۇنلار يوقىلىدۇ."
341
350
342−#: qml/Shell.qml:315
351+#: qml/Shell.qml:328
343msgid ""
352msgid ""
344"If passcode is entered incorrectly, your phone will conduct a factory reset "
353"If passcode is entered incorrectly, your phone will conduct a factory reset "
345"and all personal data will be deleted."
354"and all personal data will be deleted."
346msgstr ""
355msgstr ""
356+"ئەگەر ئىم كودى توغرا بولمىسا، تېلېفونىڭىز ئەسلىگە قايتۇرۇلۇپ، زاۋۇتتىن "
357+"چىققان ھالەتكە كېلىپ قالىدۇ. بارلىق مەزمۇنلار يوقىلىدۇ."
po/uk.po+41−43
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-26 19:06+0000\n"
11"PO-Revision-Date: 2014-08-26 19:06+0000\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr "Пароль: "
22msgstr "Пароль: "
23
23
@@ -32,53 +32,59 @@ msgstr "Розблокувати кнопку"
32
32
33#: qml/Components/Dialogs.qml:70
33#: qml/Components/Dialogs.qml:70
34msgid "Log out"
34msgid "Log out"
35−msgstr ""
35+msgstr "Вийти"
36
36
37#: qml/Components/Dialogs.qml:71
37#: qml/Components/Dialogs.qml:71
38msgid "Are you sure you want to log out?"
38msgid "Are you sure you want to log out?"
39−msgstr ""
39+msgstr "Ви справді хочете вийти?"
40
40
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:122
42#: qml/Components/Dialogs.qml:122
43msgid "No"
43msgid "No"
44−msgstr ""
44+msgstr "Ні"
45
45
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
47#: qml/Components/Dialogs.qml:129
47#: qml/Components/Dialogs.qml:129
48msgid "Yes"
48msgid "Yes"
49−msgstr ""
49+msgstr "Так"
50
50
51#: qml/Components/Dialogs.qml:94
51#: qml/Components/Dialogs.qml:94
52msgid "Shut down"
52msgid "Shut down"
53−msgstr ""
53+msgstr "Вимкнути"
54
54
55#: qml/Components/Dialogs.qml:95
55#: qml/Components/Dialogs.qml:95
56msgid "Are you sure you want to shut down?"
56msgid "Are you sure you want to shut down?"
57−msgstr ""
57+msgstr "Ви справді хочете вимкнути пристрій?"
58
58
59#: qml/Components/Dialogs.qml:119
59#: qml/Components/Dialogs.qml:119
60msgid "Reboot"
60msgid "Reboot"
61−msgstr ""
61+msgstr "Перезавантажити"
62
62
63#: qml/Components/Dialogs.qml:120
63#: qml/Components/Dialogs.qml:120
64msgid "Are you sure you want to reboot?"
64msgid "Are you sure you want to reboot?"
65−msgstr ""
65+msgstr "Ви справді хочете перезавантажити пристрій?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "Живлення"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76+"Ви справді хочете вимкнути\n"
77+"живлення?"
76
78
77−#: qml/Components/Dialogs.qml:144
79+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
80msgid "Power off"
79msgstr "Вимкнути"
81msgstr "Вимкнути"
80
82
81−#: qml/Components/Dialogs.qml:162
83+#: qml/Components/Dialogs.qml:157
84+msgid "Restart"
85+msgstr "Перезапуск"
86+
87+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
88msgid "Cancel"
83msgstr "Скасувати"
89msgstr "Скасувати"
84
90
@@ -166,21 +172,22 @@ msgstr "Стисліше"
166msgid "See all"
172msgid "See all"
167msgstr "Детальніше"
173msgstr "Детальніше"
168
174
169−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
175+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
176+#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
177msgid "Search"
171msgstr "Пошук"
178msgstr "Пошук"
172
179
173#: qml/Dash/PageHeader.qml:270
180#: qml/Dash/PageHeader.qml:270
174msgid "Settings"
181msgid "Settings"
175−msgstr ""
182+msgstr "Параметри"
176
183
177#: qml/Dash/PageHeader.qml:279
184#: qml/Dash/PageHeader.qml:279
178msgid "Remove from Favorites"
185msgid "Remove from Favorites"
179−msgstr ""
186+msgstr "Вилучити з вибраного"
180
187
181#: qml/Dash/PageHeader.qml:279
188#: qml/Dash/PageHeader.qml:279
182msgid "Add to Favorites"
189msgid "Add to Favorites"
183−msgstr ""
190+msgstr "Додати до вибраного"
184
191
185#: qml/Dash/Previews/PreviewActionCombo.qml:34
192#: qml/Dash/Previews/PreviewActionCombo.qml:34
186msgid "More..."
193msgid "More..."
@@ -206,11 +213,11 @@ msgstr "Надіслати"
206msgid "Manage Dash"
213msgid "Manage Dash"
207msgstr "Керування панеллю"
214msgstr "Керування панеллю"
208
215
209−#: qml/Dash/ScopesOverview.qml:408
216+#: qml/Dash/ScopesOverview.qml:417
210msgid "Done"
217msgid "Done"
211msgstr "Виконано"
218msgstr "Виконано"
212
219
213−#: qml/Dash/ScopesOverview.qml:434
220+#: qml/Dash/ScopesOverview.qml:443
214msgid "Store"
221msgid "Store"
215msgstr "Крамниця"
222msgstr "Крамниця"
216
223
@@ -226,7 +233,7 @@ msgstr "Все"
226msgid "Swipe to unlock"
233msgid "Swipe to unlock"
227msgstr "Проведіть пальцем, щоб розблокувати"
234msgstr "Проведіть пальцем, щоб розблокувати"
228
235
229−#: qml/Hud/HudParametrizedActionsPage.qml:132
236+#: qml/Hud/HudParametrizedActionsPage.qml:139
230msgid "Confirm"
237msgid "Confirm"
231msgstr "Підтвердити"
238msgstr "Підтвердити"
232
239
@@ -254,7 +261,7 @@ msgstr "Показати пароль"
254msgid "Enter SIM PIN"
261msgid "Enter SIM PIN"
255msgstr "Введіть PIN-код SIM-картки"
262msgstr "Введіть PIN-код SIM-картки"
256
263
257−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
264+#: qml/Notifications/NotificationMenuItemFactory.qml:121
258msgid "Sorry, incorrect PIN"
265msgid "Sorry, incorrect PIN"
259msgstr "Вибачте, помилковий PIN-код"
266msgstr "Вибачте, помилковий PIN-код"
260
267
@@ -298,45 +305,45 @@ msgstr "Розблокувати SIM"
298msgid "Roaming"
305msgid "Roaming"
299msgstr "Роумінг"
306msgstr "Роумінг"
300
307
301−#: qml/Shell.qml:266
308+#: qml/Shell.qml:279
302msgid "Enter your passphrase"
309msgid "Enter your passphrase"
303msgstr "Введіть ваш пароль"
310msgstr "Введіть ваш пароль"
304
311
305−#: qml/Shell.qml:267
312+#: qml/Shell.qml:280
306msgid "Sorry, incorrect passphrase"
313msgid "Sorry, incorrect passphrase"
307msgstr "Вибачте, помилковий пароль"
314msgstr "Вибачте, помилковий пароль"
308
315
309#: qml/Shell.qml:282
316#: qml/Shell.qml:282
310msgid "Enter your passcode"
317msgid "Enter your passcode"
311−msgstr ""
318+msgstr "Введіть ваш код-пароль"
312
319
313#: qml/Shell.qml:283
320#: qml/Shell.qml:283
314msgid "Sorry, incorrect passcode"
321msgid "Sorry, incorrect passcode"
315−msgstr ""
322+msgstr "Вибачте, помилковий код-пароль"
316
323
317−#: qml/Shell.qml:273
324+#: qml/Shell.qml:286
318#, qt-format
325#, qt-format
319msgid "Enter your %1"
326msgid "Enter your %1"
320msgstr "Вкажіть ваш %1"
327msgstr "Вкажіть ваш %1"
321
328
322−#: qml/Shell.qml:274
329+#: qml/Shell.qml:287
323#, qt-format
330#, qt-format
324msgid "Sorry, incorrect %1"
331msgid "Sorry, incorrect %1"
325msgstr "Вибачте, помилковий %1"
332msgstr "Вибачте, помилковий %1"
326
333
327−#: qml/Shell.qml:310
334+#: qml/Shell.qml:323
328msgid "Sorry, incorrect passphrase."
335msgid "Sorry, incorrect passphrase."
329msgstr "Вибачте, помилковий пароль."
336msgstr "Вибачте, помилковий пароль."
330
337
331−#: qml/Shell.qml:311
338+#: qml/Shell.qml:324
332msgid "Sorry, incorrect passcode."
339msgid "Sorry, incorrect passcode."
333msgstr "Вибачте, помилковий код-пароль."
340msgstr "Вибачте, помилковий код-пароль."
334
341
335−#: qml/Shell.qml:312
342+#: qml/Shell.qml:325
336msgid "This will be your last attempt."
343msgid "This will be your last attempt."
337msgstr "Ця спроба буде останньою."
344msgstr "Ця спроба буде останньою."
338
345
339−#: qml/Shell.qml:314
346+#: qml/Shell.qml:327
340msgid ""
347msgid ""
341"If passphrase is entered incorrectly, your phone will conduct a factory "
348"If passphrase is entered incorrectly, your phone will conduct a factory "
342"reset and all personal data will be deleted."
349"reset and all personal data will be deleted."
@@ -344,19 +351,10 @@ msgstr ""
344"Якщо пароль буде вказано неправильно, телефон повернеться до початкового "
351"Якщо пароль буде вказано неправильно, телефон повернеться до початкового "
345"стану, усі особисті дані буде вилучено."
352"стану, усі особисті дані буде вилучено."
346
353
347−#: qml/Shell.qml:315
354+#: qml/Shell.qml:328
348msgid ""
355msgid ""
349"If passcode is entered incorrectly, your phone will conduct a factory reset "
356"If passcode is entered incorrectly, your phone will conduct a factory reset "
350"and all personal data will be deleted."
357"and all personal data will be deleted."
351msgstr ""
358msgstr ""
352"Якщо код-пароль буде вказано неправильно, телефон повернеться до початкового "
359"Якщо код-пароль буде вказано неправильно, телефон повернеться до початкового "
353"стану, усі особисті дані буде вилучено."
360"стану, усі особисті дані буде вилучено."
354−
355−#~ msgid "Are you sure you would like to turn power off?"
356−#~ msgstr "Ви справді хочете вимкнути пристрій?"
357−
358−#~ msgid "Restart"
359−#~ msgstr "Перезавантажити"
360−
361−#~ msgid "Enter your PIN"
362−#~ msgstr "Введіть ваш PIN-код"
po/unity8.pot+33−29
@@ -8,7 +8,7 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: \n"
10"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
11+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -21,12 +21,12 @@ msgstr ""
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
24−#: plugins/Unity/Launcher/launcheritem.cpp:43
24+#: plugins/Unity/Launcher/launcheritem.cpp:44
25−#: plugins/Unity/Launcher/launcheritem.cpp:73
25+#: plugins/Unity/Launcher/launcheritem.cpp:74
26msgid "Pin shortcut"
26msgid "Pin shortcut"
27msgstr ""
27msgstr ""
28
28
29−#: plugins/Unity/Launcher/launcheritem.cpp:73
29+#: plugins/Unity/Launcher/launcheritem.cpp:74
30msgid "Unpin shortcut"
30msgid "Unpin shortcut"
31msgstr ""
31msgstr ""
32
32
@@ -79,6 +79,10 @@ msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81#: qml/Components/Dialogs.qml:157
81#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:167
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -153,36 +157,36 @@ msgstr ""
153msgid "Hello"
157msgid "Hello"
154msgstr ""
158msgstr ""
155
159
156−#: qml/Dash/GenericScopeView.qml:361
160+#: qml/Dash/GenericScopeView.qml:364 qml/Dash/GenericScopeView.qml:483
157msgid "See less"
161msgid "See less"
158msgstr ""
162msgstr ""
159
163
160−#: qml/Dash/GenericScopeView.qml:361
164+#: qml/Dash/GenericScopeView.qml:364
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
168+#: qml/Dash/GenericScopeView.qml:427 qml/Dash/PageHeader.qml:258
165#: qml/Panel/SearchIndicator.qml:27
169#: qml/Panel/SearchIndicator.qml:27
166msgid "Search"
170msgid "Search"
167msgstr ""
171msgstr ""
168
172
169−#: qml/Dash/PageHeader.qml:270
173+#: qml/Dash/PageHeader.qml:268
170msgid "Settings"
174msgid "Settings"
171msgstr ""
175msgstr ""
172
176
173−#: qml/Dash/PageHeader.qml:279
177+#: qml/Dash/PageHeader.qml:275
174msgid "Remove from Favorites"
178msgid "Remove from Favorites"
175msgstr ""
179msgstr ""
176
180
177−#: qml/Dash/PageHeader.qml:279
181+#: qml/Dash/PageHeader.qml:275
178msgid "Add to Favorites"
182msgid "Add to Favorites"
179msgstr ""
183msgstr ""
180
184
181−#: qml/Dash/Previews/PreviewActionCombo.qml:34
185+#: qml/Dash/Previews/PreviewActionCombo.qml:35
182msgid "More..."
186msgid "More..."
183msgstr ""
187msgstr ""
184
188
185−#: qml/Dash/Previews/PreviewActionCombo.qml:34
189+#: qml/Dash/Previews/PreviewActionCombo.qml:35
186msgid "Less..."
190msgid "Less..."
187msgstr ""
191msgstr ""
188
192
@@ -198,15 +202,15 @@ msgstr ""
198msgid "Send"
202msgid "Send"
199msgstr ""
203msgstr ""
200
204
201−#: qml/Dash/ScopesOverview.qml:201
205+#: qml/Dash/ScopesOverview.qml:206
202msgid "Manage Dash"
206msgid "Manage Dash"
203msgstr ""
207msgstr ""
204
208
205−#: qml/Dash/ScopesOverview.qml:417
209+#: qml/Dash/ScopesOverview.qml:428
206msgid "Done"
210msgid "Done"
207msgstr ""
211msgstr ""
208
212
209−#: qml/Dash/ScopesOverview.qml:443
213+#: qml/Dash/ScopesOverview.qml:454
210msgid "Store"
214msgid "Store"
211msgstr ""
215msgstr ""
212
216
@@ -242,15 +246,15 @@ msgstr ""
242msgid "Speaking..."
246msgid "Speaking..."
243msgstr ""
247msgstr ""
244
248
245−#: qml/Notifications/NotificationMenuItemFactory.qml:105
249+#: qml/Notifications/NotificationMenuItemFactory.qml:108
246msgid "Show password"
250msgid "Show password"
247msgstr ""
251msgstr ""
248
252
249−#: qml/Notifications/NotificationMenuItemFactory.qml:120
253+#: qml/Notifications/NotificationMenuItemFactory.qml:124
250msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
251msgstr ""
255msgstr ""
252
256
253−#: qml/Notifications/NotificationMenuItemFactory.qml:121
257+#: qml/Notifications/NotificationMenuItemFactory.qml:125
254msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
255msgstr ""
259msgstr ""
256
260
@@ -294,51 +298,51 @@ msgstr ""
294msgid "Roaming"
298msgid "Roaming"
295msgstr ""
299msgstr ""
296
300
297−#: qml/Shell.qml:279
301+#: qml/Shell.qml:292
298msgid "Enter your passphrase"
302msgid "Enter your passphrase"
299msgstr ""
303msgstr ""
300
304
301−#: qml/Shell.qml:280
305+#: qml/Shell.qml:293
302msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
303msgstr ""
307msgstr ""
304
308
305−#: qml/Shell.qml:282
309+#: qml/Shell.qml:295
306msgid "Enter your passcode"
310msgid "Enter your passcode"
307msgstr ""
311msgstr ""
308
312
309−#: qml/Shell.qml:283
313+#: qml/Shell.qml:296
310msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
311msgstr ""
315msgstr ""
312
316
313−#: qml/Shell.qml:286
317+#: qml/Shell.qml:299
314#, qt-format
318#, qt-format
315msgid "Enter your %1"
319msgid "Enter your %1"
316msgstr ""
320msgstr ""
317
321
318−#: qml/Shell.qml:287
322+#: qml/Shell.qml:300
319#, qt-format
323#, qt-format
320msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
321msgstr ""
325msgstr ""
322
326
323−#: qml/Shell.qml:323
327+#: qml/Shell.qml:335
324msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
325msgstr ""
329msgstr ""
326
330
327−#: qml/Shell.qml:324
331+#: qml/Shell.qml:336
328msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
329msgstr ""
333msgstr ""
330
334
331−#: qml/Shell.qml:325
335+#: qml/Shell.qml:337
332msgid "This will be your last attempt."
336msgid "This will be your last attempt."
333msgstr ""
337msgstr ""
334
338
335−#: qml/Shell.qml:327
339+#: qml/Shell.qml:339
336msgid ""
340msgid ""
337"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
338"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
339msgstr ""
343msgstr ""
340
344
341−#: qml/Shell.qml:328
345+#: qml/Shell.qml:340
342msgid ""
346msgid ""
343"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
344"and all personal data will be deleted."
348"and all personal data will be deleted."
po/vi.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-01-15 01:19+0000\n"
11"PO-Revision-Date: 2014-01-15 01:19+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Vietnamese <vi@li.org>\n"
13"Language-Team: Vietnamese <vi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr ""
171msgstr ""
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr ""
231msgstr ""
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/xh.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr ""
161msgid "See all"
165msgid "See all"
162msgstr ""
166msgstr ""
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr ""
171msgstr ""
167
172
@@ -201,11 +206,11 @@ msgstr ""
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr ""
227msgstr ""
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr ""
231msgstr ""
227
232
@@ -249,7 +254,7 @@ msgstr ""
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/zh_CN.po+25−26
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-12 14:09+0000\n"
11"PO-Revision-Date: 2014-08-12 14:09+0000\n"
12"Last-Translator: Anthony Wong <anthony.wong@ubuntu.com>\n"
12"Last-Translator: Anthony Wong <anthony.wong@ubuntu.com>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr "关机"
79msgstr "关机"
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr "取消"
87msgstr "取消"
84
88
@@ -161,7 +165,8 @@ msgstr "显示更少"
161msgid "See all"
165msgid "See all"
162msgstr "查看全部"
166msgstr "查看全部"
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "搜索"
171msgstr "搜索"
167
172
@@ -201,11 +206,11 @@ msgstr "发送"
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr "管理 Dash"
207msgstr "管理 Dash"
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr "完成"
211msgstr "完成"
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr "商店"
215msgstr "商店"
211
216
@@ -221,7 +226,7 @@ msgstr "所有"
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr "滑动解锁"
227msgstr "滑动解锁"
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "确认"
231msgstr "确认"
227
232
@@ -249,7 +254,7 @@ msgstr "显示密码"
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr "解开 SIM"
293msgid "Roaming"
298msgid "Roaming"
294msgstr "漫游"
299msgstr "漫游"
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,42 +314,36 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
344msgstr ""
349msgstr ""
345−
346−#~ msgid "Are you sure you would like to turn power off?"
347−#~ msgstr "确定要关闭电源吗?"
348−
349−#~ msgid "Restart"
350−#~ msgstr "重启"
po/zh_HK.po+25−20
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-08-10 11:45+0000\n"
11"PO-Revision-Date: 2014-08-10 11:45+0000\n"
12"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
12"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
13"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
13"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -74,11 +74,15 @@ msgid ""
74"to power off?"
74"to power off?"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/Dialogs.qml:162
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
83+msgstr ""
84+
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr ""
87msgstr ""
84
88
@@ -161,7 +165,8 @@ msgstr "縮減查看"
161msgid "See all"
165msgid "See all"
162msgstr "查看全部"
166msgstr "查看全部"
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "搜尋"
171msgstr "搜尋"
167
172
@@ -201,11 +206,11 @@ msgstr "傳送"
201msgid "Manage Dash"
206msgid "Manage Dash"
202msgstr ""
207msgstr ""
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206msgstr ""
211msgstr ""
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210msgstr ""
215msgstr ""
211
216
@@ -221,7 +226,7 @@ msgstr ""
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr "滑動解除鎖定"
227msgstr "滑動解除鎖定"
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "確認"
231msgstr "確認"
227
232
@@ -249,7 +254,7 @@ msgstr "顯示密碼"
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250msgstr ""
255msgstr ""
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254msgstr ""
259msgstr ""
255
260
@@ -293,11 +298,11 @@ msgstr ""
293msgid "Roaming"
298msgid "Roaming"
294msgstr ""
299msgstr ""
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298msgstr ""
303msgstr ""
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302msgstr ""
307msgstr ""
303
308
@@ -309,35 +314,35 @@ msgstr ""
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310msgstr ""
315msgstr ""
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr ""
320msgstr ""
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320msgstr ""
325msgstr ""
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324msgstr ""
329msgstr ""
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328msgstr ""
333msgstr ""
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr ""
337msgstr ""
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338msgstr ""
343msgstr ""
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
po/zh_TW.po+57−52
@@ -7,17 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-26 18:24+0200\n"
10+"POT-Creation-Date: 2014-09-18 20:12+0800\n"
11"PO-Revision-Date: 2014-07-26 16:21+0000\n"
11"PO-Revision-Date: 2014-07-26 16:21+0000\n"
12"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
12"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-28 06:30+0000\n"
17+"X-Launchpad-Export-Date: 2014-09-20 06:34+0000\n"
18−"X-Generator: Launchpad (build 17174)\n"
18+"X-Generator: Launchpad (build 17196)\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr "密碼: "
22msgstr "密碼: "
23
23
@@ -32,53 +32,57 @@ msgstr "取消捷徑釘選"
32
32
33#: qml/Components/Dialogs.qml:70
33#: qml/Components/Dialogs.qml:70
34msgid "Log out"
34msgid "Log out"
35−msgstr ""
35+msgstr "登出"
36
36
37#: qml/Components/Dialogs.qml:71
37#: qml/Components/Dialogs.qml:71
38msgid "Are you sure you want to log out?"
38msgid "Are you sure you want to log out?"
39−msgstr ""
39+msgstr "確定要登出?"
40
40
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
41#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42#: qml/Components/Dialogs.qml:122
42#: qml/Components/Dialogs.qml:122
43msgid "No"
43msgid "No"
44−msgstr ""
44+msgstr "否"
45
45
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
46#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
47#: qml/Components/Dialogs.qml:129
47#: qml/Components/Dialogs.qml:129
48msgid "Yes"
48msgid "Yes"
49−msgstr ""
49+msgstr "是"
50
50
51#: qml/Components/Dialogs.qml:94
51#: qml/Components/Dialogs.qml:94
52msgid "Shut down"
52msgid "Shut down"
53−msgstr ""
53+msgstr "關機"
54
54
55#: qml/Components/Dialogs.qml:95
55#: qml/Components/Dialogs.qml:95
56msgid "Are you sure you want to shut down?"
56msgid "Are you sure you want to shut down?"
57−msgstr ""
57+msgstr "確定要關機?"
58
58
59#: qml/Components/Dialogs.qml:119
59#: qml/Components/Dialogs.qml:119
60msgid "Reboot"
60msgid "Reboot"
61−msgstr ""
61+msgstr "重新開機"
62
62
63#: qml/Components/Dialogs.qml:120
63#: qml/Components/Dialogs.qml:120
64msgid "Are you sure you want to reboot?"
64msgid "Are you sure you want to reboot?"
65−msgstr ""
65+msgstr "確定要重新開機?"
66
66
67#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
68msgid "Power"
68msgid "Power"
69−msgstr ""
69+msgstr "關閉電源"
70
70
71#: qml/Components/Dialogs.qml:145
71#: qml/Components/Dialogs.qml:145
72msgid ""
72msgid ""
73"Are you sure you would like\n"
73"Are you sure you would like\n"
74"to power off?"
74"to power off?"
75−msgstr ""
75+msgstr "確定要關閉電源?"
76
76
77−#: qml/Components/Dialogs.qml:144
77+#: qml/Components/Dialogs.qml:147
78msgid "Power off"
78msgid "Power off"
79+msgstr "關閉電源"
80+
81+#: qml/Components/Dialogs.qml:157
82+msgid "Restart"
79msgstr ""
83msgstr ""
80
84
81−#: qml/Components/Dialogs.qml:162
85+#: qml/Components/Dialogs.qml:157
82msgid "Cancel"
86msgid "Cancel"
83msgstr "取消"
87msgstr "取消"
84
88
@@ -134,7 +138,7 @@ msgstr "請稍候"
134
138
135#: qml/Components/Lockscreen.qml:172
139#: qml/Components/Lockscreen.qml:172
136msgid "Too many incorrect attempts"
140msgid "Too many incorrect attempts"
137−msgstr ""
141+msgstr "錯得太多次"
138
142
139#: qml/Components/Lockscreen.qml:206
143#: qml/Components/Lockscreen.qml:206
140msgid "Emergency Call"
144msgid "Emergency Call"
@@ -161,21 +165,22 @@ msgstr "縮減查看"
161msgid "See all"
165msgid "See all"
162msgstr "查看全部"
166msgstr "查看全部"
163
167
164−#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
168+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
169+#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
170msgid "Search"
166msgstr "搜尋"
171msgstr "搜尋"
167
172
168#: qml/Dash/PageHeader.qml:270
173#: qml/Dash/PageHeader.qml:270
169msgid "Settings"
174msgid "Settings"
170−msgstr ""
175+msgstr "設定"
171
176
172#: qml/Dash/PageHeader.qml:279
177#: qml/Dash/PageHeader.qml:279
173msgid "Remove from Favorites"
178msgid "Remove from Favorites"
174−msgstr ""
179+msgstr "自「最愛」移除"
175
180
176#: qml/Dash/PageHeader.qml:279
181#: qml/Dash/PageHeader.qml:279
177msgid "Add to Favorites"
182msgid "Add to Favorites"
178−msgstr ""
183+msgstr "加入到「最愛」"
179
184
180#: qml/Dash/Previews/PreviewActionCombo.qml:34
185#: qml/Dash/Previews/PreviewActionCombo.qml:34
181msgid "More..."
186msgid "More..."
@@ -199,29 +204,29 @@ msgstr "發送"
199
204
200#: qml/Dash/ScopesOverview.qml:201
205#: qml/Dash/ScopesOverview.qml:201
201msgid "Manage Dash"
206msgid "Manage Dash"
202−msgstr ""
207+msgstr "管理 Dash"
203
208
204−#: qml/Dash/ScopesOverview.qml:408
209+#: qml/Dash/ScopesOverview.qml:417
205msgid "Done"
210msgid "Done"
206−msgstr ""
211+msgstr "完成"
207
212
208−#: qml/Dash/ScopesOverview.qml:434
213+#: qml/Dash/ScopesOverview.qml:443
209msgid "Store"
214msgid "Store"
210−msgstr ""
215+msgstr "商城"
211
216
212#: qml/Dash/ScopesOverviewTab.qml:36
217#: qml/Dash/ScopesOverviewTab.qml:36
213msgid "Favorites"
218msgid "Favorites"
214−msgstr ""
219+msgstr "最愛"
215
220
216#: qml/Dash/ScopesOverviewTab.qml:54
221#: qml/Dash/ScopesOverviewTab.qml:54
217msgid "All"
222msgid "All"
218−msgstr ""
223+msgstr "全部"
219
224
220#: qml/Greeter/Greeter.qml:157
225#: qml/Greeter/Greeter.qml:157
221msgid "Swipe to unlock"
226msgid "Swipe to unlock"
222msgstr "滑開解除鎖定"
227msgstr "滑開解除鎖定"
223
228
224−#: qml/Hud/HudParametrizedActionsPage.qml:132
229+#: qml/Hud/HudParametrizedActionsPage.qml:139
225msgid "Confirm"
230msgid "Confirm"
226msgstr "確認"
231msgstr "確認"
227
232
@@ -247,11 +252,11 @@ msgstr "顯示密碼"
247
252
248#: qml/Notifications/NotificationMenuItemFactory.qml:120
253#: qml/Notifications/NotificationMenuItemFactory.qml:120
249msgid "Enter SIM PIN"
254msgid "Enter SIM PIN"
250−msgstr ""
255+msgstr "輸入 SIM 卡 PIN 碼"
251
256
252−#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
257+#: qml/Notifications/NotificationMenuItemFactory.qml:121
253msgid "Sorry, incorrect PIN"
258msgid "Sorry, incorrect PIN"
254−msgstr ""
259+msgstr "抱歉,PIN 碼不對"
255
260
256#: qml/Panel/ActiveCallHint.qml:77
261#: qml/Panel/ActiveCallHint.qml:77
257msgid "Tap to return to call..."
262msgid "Tap to return to call..."
@@ -287,58 +292,58 @@ msgstr "失敗,輕觸可重試"
287
292
288#: qml/Panel/Indicators/ModemInfoItem.qml:105
293#: qml/Panel/Indicators/ModemInfoItem.qml:105
289msgid "Unlock SIM"
294msgid "Unlock SIM"
290−msgstr ""
295+msgstr "為 SIM 卡解鎖"
291
296
292#: qml/Panel/Indicators/RoamingIndication.qml:27
297#: qml/Panel/Indicators/RoamingIndication.qml:27
293msgid "Roaming"
298msgid "Roaming"
294−msgstr ""
299+msgstr "漫遊"
295
300
296−#: qml/Shell.qml:266
301+#: qml/Shell.qml:279
297msgid "Enter your passphrase"
302msgid "Enter your passphrase"
298−msgstr ""
303+msgstr "輸入密語"
299
304
300−#: qml/Shell.qml:267
305+#: qml/Shell.qml:280
301msgid "Sorry, incorrect passphrase"
306msgid "Sorry, incorrect passphrase"
302−msgstr ""
307+msgstr "抱歉,密語不對"
303
308
304#: qml/Shell.qml:282
309#: qml/Shell.qml:282
305msgid "Enter your passcode"
310msgid "Enter your passcode"
306−msgstr ""
311+msgstr "輸入密碼"
307
312
308#: qml/Shell.qml:283
313#: qml/Shell.qml:283
309msgid "Sorry, incorrect passcode"
314msgid "Sorry, incorrect passcode"
310−msgstr ""
315+msgstr "抱歉,密碼不對"
311
316
312−#: qml/Shell.qml:273
317+#: qml/Shell.qml:286
313#, qt-format
318#, qt-format
314msgid "Enter your %1"
319msgid "Enter your %1"
315msgstr "輸入您的 %1"
320msgstr "輸入您的 %1"
316
321
317−#: qml/Shell.qml:274
322+#: qml/Shell.qml:287
318#, qt-format
323#, qt-format
319msgid "Sorry, incorrect %1"
324msgid "Sorry, incorrect %1"
320−msgstr ""
325+msgstr "抱歉,%1不對"
321
326
322−#: qml/Shell.qml:310
327+#: qml/Shell.qml:323
323msgid "Sorry, incorrect passphrase."
328msgid "Sorry, incorrect passphrase."
324−msgstr ""
329+msgstr "抱歉,密語不對"
325
330
326−#: qml/Shell.qml:311
331+#: qml/Shell.qml:324
327msgid "Sorry, incorrect passcode."
332msgid "Sorry, incorrect passcode."
328−msgstr ""
333+msgstr "抱歉,密碼不對。"
329
334
330−#: qml/Shell.qml:312
335+#: qml/Shell.qml:325
331msgid "This will be your last attempt."
336msgid "This will be your last attempt."
332msgstr "這將會是您最後一次嘗試的機會。"
337msgstr "這將會是您最後一次嘗試的機會。"
333
338
334−#: qml/Shell.qml:314
339+#: qml/Shell.qml:327
335msgid ""
340msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
341"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
342"reset and all personal data will be deleted."
338−msgstr ""
343+msgstr "如輸入的密語不對,本電話會進行重設,所有個人資料都會刪除。"
339
344
340−#: qml/Shell.qml:315
345+#: qml/Shell.qml:328
341msgid ""
346msgid ""
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"and all personal data will be deleted."
348"and all personal data will be deleted."
344−msgstr ""
349+msgstr "如輸入的密碼不對,本電話會進行重設,所有個人資料都會刪除。"
qml/Components/Dialogs.qml+10
@@ -153,6 +153,16 @@ Item {
153 }
153 }
154 color: UbuntuColors.red
154 color: UbuntuColors.red
155 }
155 }
156+ Button {
157+ text: i18n.tr("Restart")
158+ onClicked: {
159+ dBusUnitySessionServiceConnection.closeAllApps();
160+ DBusUnitySessionService.Reboot();
161+ PopupUtils.close(dialoguePower);
162+ d.dialogShown = false;
163+ }
164+ color: UbuntuColors.green
165+ }
156 Button {
166 Button {
157 text: i18n.tr("Cancel")
167 text: i18n.tr("Cancel")
158 onClicked: {
168 onClicked: {
qml/Dash/CardCarousel.qml+1−1
@@ -49,7 +49,7 @@ DashRenderer {
49 objectName: "carouselDelegate" + index
49 objectName: "carouselDelegate" + index
50
50
51 function clicked() { cardCarousel.clicked(index, model.result, loader.item, model) }
51 function clicked() { cardCarousel.clicked(index, model.result, loader.item, model) }
52− function pressAndHold() { cardCarousel.pressAndHold(index, model) }
52+ function pressAndHold() { cardCarousel.pressAndHold(index, model.result, model) }
53
53
54 sourceComponent: cardTool.cardComponent
54 sourceComponent: cardTool.cardComponent
55 onLoaded: {
55 onLoaded: {
qml/Dash/CardGrid.qml+1−1
@@ -74,7 +74,7 @@ DashRenderer {
74 Connections {
74 Connections {
75 target: loader.item
75 target: loader.item
76 onClicked: root.clicked(index, result, loader.item, model)
76 onClicked: root.clicked(index, result, loader.item, model)
77− onPressAndHold: root.pressAndHold(index, model)
77+ onPressAndHold: root.pressAndHold(index, result, model)
78 }
78 }
79 }
79 }
80 }
80 }
qml/Dash/CardHorizontalList.qml+1−1
@@ -55,7 +55,7 @@ DashRenderer {
55 Connections {
55 Connections {
56 target: loader.item
56 target: loader.item
57 onClicked: root.clicked(index, result, loader.item, model)
57 onClicked: root.clicked(index, result, loader.item, model)
58− onPressAndHold: root.pressAndHold(index, model)
58+ onPressAndHold: root.pressAndHold(index, result, model)
59 }
59 }
60 }
60 }
61 }
61 }
qml/Dash/CardVerticalJournal.qml+1−1
@@ -62,7 +62,7 @@ DashRenderer {
62 Connections {
62 Connections {
63 target: loader.item
63 target: loader.item
64 onClicked: root.clicked(index, result, loader.item, model)
64 onClicked: root.clicked(index, result, loader.item, model)
65− onPressAndHold: root.pressAndHold(index, model)
65+ onPressAndHold: root.pressAndHold(index, result, model)
66 }
66 }
67 }
67 }
68 }
68 }
qml/Dash/DashApplication.qml+2−2
@@ -19,8 +19,8 @@ import Ubuntu.Components 1.0
19import Ubuntu.Thumbnailer 0.1 // Register support for image://thumbnailer/ and image://albumart/
19import Ubuntu.Thumbnailer 0.1 // Register support for image://thumbnailer/ and image://albumart/
20
20
21MainView {
21MainView {
22− width: units.gu(40)
22+ width: applicationArguments.hasGeometry() ? applicationArguments.width() : units.gu(40)
23− height: units.gu(71)
23+ height: applicationArguments.hasGeometry() ? applicationArguments.height() : units.gu(68)
24
24
25 useDeprecatedToolbar: false
25 useDeprecatedToolbar: false
26
26
qml/Dash/DashNavigation.qml+2−3
@@ -37,9 +37,8 @@ Item {
37 // FIXME this is only here for highlight purposes (see Background.qml, too)
37 // FIXME this is only here for highlight purposes (see Background.qml, too)
38 readonly property var background: backgroundItem
38 readonly property var background: backgroundItem
39
39
40+ visible: height != 0
40− visible: navigationButton.currentNavigation || altNavigationButton.currentNavigation
41+ height: navigationButton.currentNavigation || altNavigationButton.currentNavigation ? units.gu(5) : 0
41−
42− height: visible ? units.gu(5) : 0
43
42
44 QtObject {
43 QtObject {
45 id: d
44 id: d
qml/Dash/DashRenderer.qml+3−2
@@ -40,13 +40,14 @@ Item {
40
40
41 /// Emitted when the user clicked on an item
41 /// Emitted when the user clicked on an item
42 /// @param index is the index of the clicked item
42 /// @param index is the index of the clicked item
43− /// @param result result model of the cliked item, used for activation
43+ /// @param result result model of the clicked item, used for activation
44 /// @param item item that has been clicked
44 /// @param item item that has been clicked
45 /// @param itemModel model of the item
45 /// @param itemModel model of the item
46 signal clicked(int index, var result, var item, var itemModel)
46 signal clicked(int index, var result, var item, var itemModel)
47
47
48 /// Emitted when the user pressed and held on an item
48 /// Emitted when the user pressed and held on an item
49 /// @param index is the index of the held item
49 /// @param index is the index of the held item
50+ /// @param result result model of the clicked item, used for activation
50 /// @param itemModel model of the item
51 /// @param itemModel model of the item
51− signal pressAndHold(int index, var itemModel)
52+ signal pressAndHold(int index, var result, var itemModel)
52}
53}
qml/Dash/GenericScopeView.qml+85−35
@@ -47,6 +47,10 @@ FocusScope {
47
47
48 signal backClicked()
48 signal backClicked()
49
49
50+ onScopeChanged: {
51+ floatingSeeLess.companionBase = null;
52+ }
53+
50 function positionAtBeginning() {
54 function positionAtBeginning() {
51 categoryView.positionAtBeginning()
55 categoryView.positionAtBeginning()
52 }
56 }
@@ -66,13 +70,17 @@ FocusScope {
66 // so it's not implemented
70 // so it's not implemented
67 scope.activate(result)
71 scope.activate(result)
68 } else {
72 } else {
73+ if (scope.preview(result)) {
69− openPreview(index, resultsModel, limitedCategoryItemCount);
74+ openPreview(index, resultsModel, limitedCategoryItemCount);
75+ }
70 }
76 }
71 }
77 }
72
78
73− function itemPressedAndHeld(index, itemModel, resultsModel, limitedCategoryItemCount) {
79+ function itemPressedAndHeld(index, result, itemModel, resultsModel, limitedCategoryItemCount) {
74 if (itemModel.uri.indexOf("scope://") !== 0) {
80 if (itemModel.uri.indexOf("scope://") !== 0) {
81+ if (scope.preview(result)) {
75− openPreview(index, resultsModel, limitedCategoryItemCount);
82+ openPreview(index, resultsModel, limitedCategoryItemCount);
83+ }
76 }
84 }
77 }
85 }
78
86
@@ -142,6 +150,7 @@ FocusScope {
142 objectName: "categoryListView"
150 objectName: "categoryListView"
143
151
144 x: subPageLoader.open ? -width : 0
152 x: subPageLoader.open ? -width : 0
153+ visible: x != -width
145 Behavior on x { UbuntuNumberAnimation { } }
154 Behavior on x { UbuntuNumberAnimation { } }
146 width: parent.width
155 width: parent.width
147 height: floatingSeeLess.visible ? parent.height - floatingSeeLess.height + floatingSeeLess.yOffset
156 height: floatingSeeLess.visible ? parent.height - floatingSeeLess.height + floatingSeeLess.yOffset
@@ -152,11 +161,54 @@ FocusScope {
152 forceNoClip: subPageLoader.open
161 forceNoClip: subPageLoader.open
153 pixelAligned: true
162 pixelAligned: true
154
163
155− property Item expandedCategoryItem: null
164+ property string expandedCategoryId: ""
165+ property int runMaximizeAfterSizeChanges: 0
156
166
157 readonly property bool pageHeaderTotallyVisible: scopeView.showPageHeader &&
167 readonly property bool pageHeaderTotallyVisible: scopeView.showPageHeader &&
158 ((headerItemShownHeight == 0 && categoryView.contentY <= categoryView.originY) || (headerItemShownHeight == pageHeaderLoader.item.height))
168 ((headerItemShownHeight == 0 && categoryView.contentY <= categoryView.originY) || (headerItemShownHeight == pageHeaderLoader.item.height))
159
169
170+ onExpandedCategoryIdChanged: {
171+ var firstCreated = firstCreatedIndex();
172+ var shrinkingAny = false;
173+ var shrinkHeightDifference = 0;
174+ for (var i = 0; i < createdItemCount(); ++i) {
175+ var baseItem = item(firstCreated + i);
176+ if (baseItem.expandable) {
177+ var shouldExpand = baseItem.category === expandedCategoryId;
178+ if (shouldExpand != baseItem.expanded) {
179+ var animate = false;
180+ if (!subPageLoader.open) {
181+ var animateShrinking = !shouldExpand && baseItem.y + baseItem.item.collapsedHeight + baseItem.seeAllButton.height < categoryView.height;
182+ var animateGrowing = shouldExpand && baseItem.y + baseItem.height < categoryView.height;
183+ animate = shrinkingAny || animateShrinking || animateGrowing;
184+ }
185+
186+ if (!shouldExpand) {
187+ shrinkingAny = true;
188+ shrinkHeightDifference = baseItem.item.expandedHeight - baseItem.item.collapsedHeight;
189+ }
190+
191+ if (shouldExpand && !subPageLoader.open) {
192+ if (!shrinkingAny) {
193+ categoryView.maximizeVisibleArea(firstCreated + i, baseItem.item.expandedHeight + baseItem.seeAllButton.height);
194+ } else {
195+ // If the space that shrinking is smaller than the one we need to grow we'll call maximizeVisibleArea
196+ // after the shrink/grow animation ends
197+ var growHeightDifference = baseItem.item.expandedHeight - baseItem.item.collapsedHeight;
198+ if (growHeightDifference > shrinkHeightDifference) {
199+ runMaximizeAfterSizeChanges = 2;
200+ } else {
201+ runMaximizeAfterSizeChanges = 0;
202+ }
203+ }
204+ }
205+
206+ baseItem.expand(shouldExpand, animate);
207+ }
208+ }
209+ }
210+ }
211+
160 delegate: ListItems.Base {
212 delegate: ListItems.Base {
161 id: baseItem
213 id: baseItem
162 objectName: "dashCategory" + category
214 objectName: "dashCategory" + category
@@ -194,7 +246,7 @@ FocusScope {
194 // This can happen with the VJ that doesn't know how height it will be on creation
246 // This can happen with the VJ that doesn't know how height it will be on creation
195 // so doesn't set expandable until a bit too late for onLoaded
247 // so doesn't set expandable until a bit too late for onLoaded
196 if (expandable) {
248 if (expandable) {
197− var shouldExpand = baseItem === categoryView.expandedCategoryItem;
249+ var shouldExpand = baseItem.category === categoryView.expandedCategoryId;
198 baseItem.expand(shouldExpand, false /*animate*/);
250 baseItem.expand(shouldExpand, false /*animate*/);
199 }
251 }
200 }
252 }
@@ -215,9 +267,23 @@ FocusScope {
215 id: heightBehaviour
267 id: heightBehaviour
216 enabled: false
268 enabled: false
217 animation: UbuntuNumberAnimation {
269 animation: UbuntuNumberAnimation {
270+ duration: UbuntuAnimation.FastDuration
218 onRunningChanged: {
271 onRunningChanged: {
219 if (!running) {
272 if (!running) {
220 heightBehaviour.enabled = false
273 heightBehaviour.enabled = false
274+ if (categoryView.runMaximizeAfterSizeChanges > 0) {
275+ categoryView.runMaximizeAfterSizeChanges--;
276+ if (categoryView.runMaximizeAfterSizeChanges == 0) {
277+ var firstCreated = categoryView.firstCreatedIndex();
278+ for (var i = 0; i < categoryView.createdItemCount(); ++i) {
279+ var baseItem = categoryView.item(firstCreated + i);
280+ if (baseItem.category === categoryView.expandedCategoryId) {
281+ categoryView.maximizeVisibleArea(firstCreated + i, baseItem.item.expandedHeight + baseItem.seeAllButton.height);
282+ break;
283+ }
284+ }
285+ }
286+ }
221 }
287 }
222 }
288 }
223 }
289 }
@@ -245,7 +311,7 @@ FocusScope {
245 item.objectName = Qt.binding(function() { return categoryId })
311 item.objectName = Qt.binding(function() { return categoryId })
246 item.scopeStyle = scopeView.scopeStyle;
312 item.scopeStyle = scopeView.scopeStyle;
247 if (baseItem.expandable) {
313 if (baseItem.expandable) {
248− var shouldExpand = baseItem === categoryView.expandedCategoryItem;
314+ var shouldExpand = baseItem.category === categoryView.expandedCategoryId;
249 baseItem.expand(shouldExpand, false /*animate*/);
315 baseItem.expand(shouldExpand, false /*animate*/);
250 }
316 }
251 updateDelegateCreationRange();
317 updateDelegateCreationRange();
@@ -269,7 +335,7 @@ FocusScope {
269 }
335 }
270
336
271 onPressAndHold: {
337 onPressAndHold: {
272− scopeView.itemPressedAndHeld(index, itemModel, target.model, categoryItemCount());
338+ scopeView.itemPressedAndHeld(index, result, itemModel, target.model, categoryItemCount());
273 }
339 }
274
340
275 function categoryItemCount() {
341 function categoryItemCount() {
@@ -282,27 +348,6 @@ FocusScope {
282 }
348 }
283 Connections {
349 Connections {
284 target: categoryView
350 target: categoryView
285− onExpandedCategoryItemChanged: {
286− collapseAllButExpandedCategory();
287− }
288− function collapseAllButExpandedCategory() {
289− var item = rendererLoader.item;
290− if (baseItem.expandable) {
291− var shouldExpand = baseItem === categoryView.expandedCategoryItem;
292− if (shouldExpand != baseItem.expanded) {
293− // If the filter animation will be seen start it, otherwise, just flip the switch
294− var shrinkingVisible = !shouldExpand && y + item.collapsedHeight + seeAll.height < categoryView.height;
295− var growingVisible = shouldExpand && y + height < categoryView.height;
296− if (!subPageLoader.open || shouldExpand) {
297− var animate = shrinkingVisible || growingVisible;
298− baseItem.expand(shouldExpand, animate)
299− if (shouldExpand && !subPageLoader.open) {
300− categoryView.maximizeVisibleArea(index, item.expandedHeight + seeAll.height);
301− }
302− }
303− }
304− }
305− }
306 onOriginYChanged: rendererLoader.updateDelegateCreationRange();
351 onOriginYChanged: rendererLoader.updateDelegateCreationRange();
307 onContentYChanged: rendererLoader.updateDelegateCreationRange();
352 onContentYChanged: rendererLoader.updateDelegateCreationRange();
308 onHeightChanged: rendererLoader.updateDelegateCreationRange();
353 onHeightChanged: rendererLoader.updateDelegateCreationRange();
@@ -349,13 +394,15 @@ FocusScope {
349 left: parent.left
394 left: parent.left
350 right: parent.right
395 right: parent.right
351 }
396 }
352− height: seeAllLabel.visible ? seeAllLabel.font.pixelSize + units.gu(4) : 0
397+ height: baseItem.expandable && !baseItem.headerLink ? seeAllLabel.font.pixelSize + units.gu(4) : 0
398+ visible: height != 0
353
399
354 onClicked: {
400 onClicked: {
355− if (categoryView.expandedCategoryItem !== baseItem) {
401+ if (categoryView.expandedCategoryId !== baseItem.category) {
356− categoryView.expandedCategoryItem = baseItem;
402+ categoryView.expandedCategoryId = baseItem.category;
403+ floatingSeeLess.companionBase = baseItem;
357 } else {
404 } else {
358− categoryView.expandedCategoryItem = null;
405+ categoryView.expandedCategoryId = "";
359 }
406 }
360 }
407 }
361
408
@@ -369,7 +416,6 @@ FocusScope {
369 fontSize: "small"
416 fontSize: "small"
370 font.weight: Font.Bold
417 font.weight: Font.Bold
371 color: scopeStyle ? scopeStyle.foreground : Theme.palette.normal.baseText
418 color: scopeStyle ? scopeStyle.foreground : Theme.palette.normal.baseText
372− visible: baseItem.expandable && !baseItem.headerLink
373 }
419 }
374 }
420 }
375
421
@@ -455,7 +501,7 @@ FocusScope {
455 objectName: "floatingSeeLess"
501 objectName: "floatingSeeLess"
456
502
457 property Item companionTo: companionBase ? companionBase.seeAllButton : null
503 property Item companionTo: companionBase ? companionBase.seeAllButton : null
458− property Item companionBase: categoryView.expandedCategoryItem
504+ property Item companionBase: null
459 property bool showBecausePosition: false
505 property bool showBecausePosition: false
460 property real yOffset: 0
506 property real yOffset: 0
461
507
@@ -467,7 +513,7 @@ FocusScope {
467 height: seeLessLabel.font.pixelSize + units.gu(4)
513 height: seeLessLabel.font.pixelSize + units.gu(4)
468 visible: companionTo && showBecausePosition
514 visible: companionTo && showBecausePosition
469
515
470− onClicked: categoryView.expandedCategoryItem = null;
516+ onClicked: categoryView.expandedCategoryId = "";
471
517
472 function updateVisibility() {
518 function updateVisibility() {
473 var companionPos = companionTo.mapToItem(floatingSeeLess, 0, 0);
519 var companionPos = companionTo.mapToItem(floatingSeeLess, 0, 0);
@@ -476,6 +522,10 @@ FocusScope {
476 var posToBase = floatingSeeLess.mapToItem(companionBase, 0, -yOffset).y;
522 var posToBase = floatingSeeLess.mapToItem(companionBase, 0, -yOffset).y;
477 yOffset = Math.max(0, companionBase.item.collapsedHeight - posToBase);
523 yOffset = Math.max(0, companionBase.item.collapsedHeight - posToBase);
478 yOffset = Math.min(yOffset, height);
524 yOffset = Math.min(yOffset, height);
525+
526+ if (!showBecausePosition && categoryView.expandedCategoryId === "") {
527+ companionBase = null;
528+ }
479 }
529 }
480
530
481 Label {
531 Label {
qml/Dash/PageHeader.qml+4−3
@@ -37,7 +37,7 @@ Item {
37 property ListModel searchHistory: SearchHistoryModel
37 property ListModel searchHistory: SearchHistoryModel
38 property alias searchQuery: searchTextField.text
38 property alias searchQuery: searchTextField.text
39 property alias searchHint: searchTextField.placeholderText
39 property alias searchHint: searchTextField.placeholderText
40− property alias showSignatureLine: bottomBorder.visible
40+ property bool showSignatureLine: true
41
41
42 property alias bottomItem: bottomContainer.children
42 property alias bottomItem: bottomContainer.children
43 property int paginationCount: 0
43 property int paginationCount: 0
@@ -132,7 +132,7 @@ Item {
132 objectName: "headerContainer"
132 objectName: "headerContainer"
133 clip: contentY < height
133 clip: contentY < height
134 anchors { left: parent.left; top: parent.top; right: parent.right }
134 anchors { left: parent.left; top: parent.top; right: parent.right }
135− height: units.gu(6.5)
135+ height: units.gu(7)
136 contentHeight: headersColumn.height
136 contentHeight: headersColumn.height
137 interactive: false
137 interactive: false
138 contentY: showSearch ? 0 : height
138 contentY: showSearch ? 0 : height
@@ -287,7 +287,7 @@ Item {
287 id: imageComponent
287 id: imageComponent
288
288
289 Item {
289 Item {
290− anchors { fill: parent; topMargin: units.gu(1); bottomMargin: units.gu(1) }
290+ anchors { fill: parent; topMargin: units.gu(1.5); bottomMargin: units.gu(1.5) }
291 clip: true
291 clip: true
292 Image {
292 Image {
293 objectName: "titleImage"
293 objectName: "titleImage"
@@ -346,6 +346,7 @@ Item {
346
346
347 Rectangle {
347 Rectangle {
348 id: bottomBorder
348 id: bottomBorder
349+ visible: showSignatureLine
349 anchors {
350 anchors {
350 top: headerContainer.bottom
351 top: headerContainer.bottom
351 left: parent.left
352 left: parent.left
qml/Dash/Previews/PreviewPayments.qml+6
@@ -63,6 +63,12 @@ PreviewWidget {
63 paymentButton.opacity = 1;
63 paymentButton.opacity = 1;
64 root.triggered(widgetId, "purchaseError", source);
64 root.triggered(widgetId, "purchaseError", source);
65 }
65 }
66+ onPurchaseCancelled: {
67+ paymentButton.opacity = 1;
68+ // DO NOT emit the signal right now, as it causes a new
69+ // preview to be requested, when that is not what we want.
70+ //root.triggered(widgetId, "purchaseCancelled", source);
71+ }
66 }
72 }
67 }
73 }
68
74
qml/Dash/ScopesOverview.qml+1−1
@@ -203,7 +203,7 @@ Item {
203 }
203 }
204 width: parent.width
204 width: parent.width
205 clip: true
205 clip: true
206− title: i18n.tr("Manage Dash")
206+ title: i18n.tr("Manage Scopes")
207 scopeStyle: overviewScopeStyle
207 scopeStyle: overviewScopeStyle
208 showSignatureLine: false
208 showSignatureLine: false
209 searchEntryEnabled: true
209 searchEntryEnabled: true
qml/Launcher/Launcher.qml+1−2
@@ -243,10 +243,9 @@ Item {
243 onDraggingChanged: {
243 onDraggingChanged: {
244 if (!dragging) {
244 if (!dragging) {
245 if (distance > panel.width / 2) {
245 if (distance > panel.width / 2) {
246+ root.switchToNextState("visible")
246 if (distance > minimizeDistance) {
247 if (distance > minimizeDistance) {
247 root.dash();
248 root.dash();
248− } else {
249− root.switchToNextState("visible")
250 }
249 }
251 } else {
250 } else {
252 root.switchToNextState("")
251 root.switchToNextState("")
qml/Launcher/LauncherDelegate.qml+4−2
@@ -21,7 +21,8 @@ Item {
21 id: root
21 id: root
22
22
23 property string iconName
23 property string iconName
24− property int count: -1
24+ property int count: 0
25+ property bool countVisible: false
25 property int progress: -1
26 property int progress: -1
26 property bool itemFocused: false
27 property bool itemFocused: false
27 property real maxAngle: 0
28 property real maxAngle: 0
@@ -80,11 +81,12 @@ Item {
80 width: Math.min(root.itemWidth, Math.max(units.gu(2), countLabel.implicitWidth + units.gu(1)))
81 width: Math.min(root.itemWidth, Math.max(units.gu(2), countLabel.implicitWidth + units.gu(1)))
81 height: units.gu(2)
82 height: units.gu(2)
82 color: UbuntuColors.orange
83 color: UbuntuColors.orange
83− visible: root.count > 0
84+ visible: root.countVisible
84 borderSource: "none"
85 borderSource: "none"
85
86
86 Label {
87 Label {
87 id: countLabel
88 id: countLabel
89+ objectName: "countLabel"
88 text: root.count
90 text: root.count
89 anchors.centerIn: parent
91 anchors.centerIn: parent
90 // FIXME: verticalCenter seems to be off wee bit and QML doesn't have a centerLine
92 // FIXME: verticalCenter seems to be off wee bit and QML doesn't have a centerLine
qml/Launcher/LauncherPanel.qml+1
@@ -156,6 +156,7 @@ Rectangle {
156 height: itemHeight
156 height: itemHeight
157 iconName: model.icon
157 iconName: model.icon
158 count: model.count
158 count: model.count
159+ countVisible: model.countVisible
159 progress: model.progress
160 progress: model.progress
160 clipCorner: model.pinned
161 clipCorner: model.pinned
161 itemFocused: model.focused
162 itemFocused: model.focused
qml/Notifications/Notification.qml+2−2
@@ -84,7 +84,7 @@ Item {
84
84
85 // FIXME: using onCompleted because of LP: #1354406 workaround, has to be onOpacityChanged really
85 // FIXME: using onCompleted because of LP: #1354406 workaround, has to be onOpacityChanged really
86 Component.onCompleted: {
86 Component.onCompleted: {
87− if (opacity == 1.0 && hints["suppress-sound"] != "true" && sound.source) {
87+ if (opacity == 1.0 && hints["suppress-sound"] != "true" && sound.source != "") {
88 sound.play();
88 sound.play();
89 }
89 }
90 }
90 }
@@ -265,7 +265,7 @@ Item {
265 fontSize: "small"
265 fontSize: "small"
266 color: darkOnBright ? sdFontColor : Theme.palette.selected.backgroundText
266 color: darkOnBright ? sdFontColor : Theme.palette.selected.backgroundText
267 wrapMode: Text.WordWrap
267 wrapMode: Text.WordWrap
268− maximumLineCount: 2
268+ maximumLineCount: type == Notification.SnapDecision ? 12 : 2
269 elide: Text.ElideRight
269 elide: Text.ElideRight
270 textFormat: Text.PlainText
270 textFormat: Text.PlainText
271 }
271 }
qml/Shell.qml+33−1
@@ -15,6 +15,7 @@
15 */
15 */
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18+import QtQuick.Window 2.0
18import AccountsService 0.1
19import AccountsService 0.1
19import GSettings 1.0
20import GSettings 1.0
20import Unity.Application 0.1
21import Unity.Application 0.1
@@ -61,6 +62,22 @@ Item {
61 property int failedLoginsDelayAttempts: 7 // number of failed logins
62 property int failedLoginsDelayAttempts: 7 // number of failed logins
62 property int failedLoginsDelaySeconds: 5 * 60 // seconds of forced waiting
63 property int failedLoginsDelaySeconds: 5 * 60 // seconds of forced waiting
63
64
65+ property int orientation
66+ readonly property int deviceOrientationAngle: Screen.angleBetween(Screen.primaryOrientation, Screen.orientation)
67+ onDeviceOrientationAngleChanged: {
68+ if (!OrientationLock.enabled) {
69+ orientation = Screen.orientation;
70+ }
71+ }
72+ readonly property bool orientationLockEnabled: OrientationLock.enabled
73+ onOrientationLockEnabledChanged: {
74+ if (orientationLockEnabled) {
75+ OrientationLock.savedOrientation = Screen.orientation;
76+ } else {
77+ orientation = Screen.orientation;
78+ }
79+ }
80+
64 function activateApplication(appId) {
81 function activateApplication(appId) {
65 if (ApplicationManager.findApplication(appId)) {
82 if (ApplicationManager.findApplication(appId)) {
66 ApplicationManager.requestFocusApplication(appId);
83 ApplicationManager.requestFocusApplication(appId);
@@ -85,6 +102,12 @@ Item {
85
102
86 Component.onCompleted: {
103 Component.onCompleted: {
87 Theme.name = "Ubuntu.Components.Themes.SuruGradient"
104 Theme.name = "Ubuntu.Components.Themes.SuruGradient"
105+ if (ApplicationManager.count > 0) {
106+ ApplicationManager.focusApplication(ApplicationManager.get(0).appId);
107+ }
108+ if (orientationLockEnabled) {
109+ orientation = OrientationLock.savedOrientation;
110+ }
88 }
111 }
89
112
90 GSettings {
113 GSettings {
@@ -207,6 +230,11 @@ Item {
207 property: "inverseProgress"
230 property: "inverseProgress"
208 value: launcher.progress
231 value: launcher.progress
209 }
232 }
233+ Binding {
234+ target: applicationsDisplayLoader.item
235+ property: "orientation"
236+ value: shell.orientation
237+ }
210 }
238 }
211 }
239 }
212
240
@@ -536,7 +564,11 @@ Item {
536 available: edgeDemo.launcherEnabled && (!shell.locked || AccountsService.enableLauncherWhileLocked) && greeter.fakeActiveForApp === ""
564 available: edgeDemo.launcherEnabled && (!shell.locked || AccountsService.enableLauncherWhileLocked) && greeter.fakeActiveForApp === ""
537
565
538 onShowDashHome: showHome()
566 onShowDashHome: showHome()
567+ onDash: {
568+ if (ApplicationManager.focusedApplicationId != "unity8-dash") {
539− onDash: showDash()
569+ showDash()
570+ }
571+ }
540 onDashSwipeChanged: {
572 onDashSwipeChanged: {
541 if (dashSwipe) {
573 if (dashSwipe) {
542 dash.setCurrentScope("clickscope", false, true)
574 dash.setCurrentScope("clickscope", false, true)
qml/Stages/ApplicationWindow.qml+2
@@ -27,6 +27,7 @@ Item {
27
27
28 // to be set from outside
28 // to be set from outside
29 property QtObject application
29 property QtObject application
30+ property int orientation
30
31
31 QtObject {
32 QtObject {
32 id: d
33 id: d
@@ -111,6 +112,7 @@ Item {
111 id: sessionContainer
112 id: sessionContainer
112 session: application ? application.session : null
113 session: application ? application.session : null
113 anchors.fill: parent
114 anchors.fill: parent
115+ orientation: root.orientation
114
116
115 onSurfaceChanged: {
117 onSurfaceChanged: {
116 if (sessionContainer.surface) {
118 if (sessionContainer.surface) {
qml/Stages/PhoneStage.qml+9
@@ -18,6 +18,7 @@ import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19import Ubuntu.Gestures 0.1
19import Ubuntu.Gestures 0.1
20import Unity.Application 0.1
20import Unity.Application 0.1
21+import Unity.Session 0.1
21import Utils 0.1
22import Utils 0.1
22import "../Components"
23import "../Components"
23
24
@@ -30,6 +31,7 @@ Rectangle {
30 property bool interactive
31 property bool interactive
31 property bool spreadEnabled: true // If false, animations and right edge will be disabled
32 property bool spreadEnabled: true // If false, animations and right edge will be disabled
32 property real inverseProgress: 0 // This is the progress for left edge drags, in pixels.
33 property real inverseProgress: 0 // This is the progress for left edge drags, in pixels.
34+ property int orientation: Qt.PortraitOrientation
33
35
34 color: "black"
36 color: "black"
35
37
@@ -372,6 +374,13 @@ Rectangle {
372 progress: appDelegate.progress - spreadView.positionMarker1
374 progress: appDelegate.progress - spreadView.positionMarker1
373 }
375 }
374
376
377+ Binding {
378+ target: appDelegate
379+ property: "orientation"
380+ when: appDelegate.interactive
381+ value: root.orientation
382+ }
383+
375 onClicked: {
384 onClicked: {
376 if (spreadView.phase == 2) {
385 if (spreadView.phase == 2) {
377 if (ApplicationManager.focusedApplicationId == ApplicationManager.get(index).appId) {
386 if (ApplicationManager.focusedApplicationId == ApplicationManager.get(index).appId) {
qml/Stages/SessionContainer.qml+7
@@ -24,12 +24,14 @@ Item {
24 readonly property var childSessions: session ? session.childSessions : null
24 readonly property var childSessions: session ? session.childSessions : null
25 readonly property alias surface: _surfaceContainer.surface
25 readonly property alias surface: _surfaceContainer.surface
26 property bool interactive: true
26 property bool interactive: true
27+ property int orientation
27
28
28 readonly property alias surfaceContainer: _surfaceContainer
29 readonly property alias surfaceContainer: _surfaceContainer
29 SurfaceContainer {
30 SurfaceContainer {
30 id: _surfaceContainer
31 id: _surfaceContainer
31 anchors.fill: parent
32 anchors.fill: parent
32 surface: session ? session.surface : null
33 surface: session ? session.surface : null
34+ orientation: root.orientation
33 }
35 }
34
36
35 Binding {
37 Binding {
@@ -74,6 +76,11 @@ Item {
74 target: item; when: item
76 target: item; when: item
75 property: "height"; value: root.height
77 property: "height"; value: root.height
76 }
78 }
79+
80+ Binding {
81+ target: item; when: item
82+ property: "orientation"; value: root.orientation
83+ }
77 }
84 }
78 }
85 }
79
86
qml/Stages/SpreadDelegate.qml+3
@@ -36,6 +36,7 @@ Item {
36 property alias swipeToCloseEnabled: dragArea.enabled
36 property alias swipeToCloseEnabled: dragArea.enabled
37 property bool closeable
37 property bool closeable
38 property alias application: appWindow.application
38 property alias application: appWindow.application
39+ property int orientation
39
40
40 Item {
41 Item {
41 objectName: "appWindowWithShadow"
42 objectName: "appWindowWithShadow"
@@ -56,12 +57,14 @@ Item {
56
57
57 ApplicationWindow {
58 ApplicationWindow {
58 id: appWindow
59 id: appWindow
60+ objectName: application ? "appWindow_" + application.appId : "appWindow_null"
59 anchors {
61 anchors {
60 fill: parent
62 fill: parent
61 topMargin: appWindow.fullscreen ? 0 : maximizedAppTopMargin
63 topMargin: appWindow.fullscreen ? 0 : maximizedAppTopMargin
62 }
64 }
63
65
64 interactive: root.interactive
66 interactive: root.interactive
67+ orientation: root.orientation
65 }
68 }
66 }
69 }
67
70
qml/Stages/SurfaceContainer.qml+5
@@ -22,6 +22,7 @@ Item {
22 objectName: "surfaceContainer"
22 objectName: "surfaceContainer"
23 property Item surface: null
23 property Item surface: null
24 property bool hadSurface: false
24 property bool hadSurface: false
25+ property int orientation
25
26
26 onSurfaceChanged: {
27 onSurfaceChanged: {
27 if (surface) {
28 if (surface) {
@@ -34,6 +35,10 @@ Item {
34 target: surface
35 target: surface
35 property: "anchors.fill"; value: root
36 property: "anchors.fill"; value: root
36 }
37 }
38+ Binding {
39+ target: surface
40+ property: "orientation"; value: root.orientation
41+ }
37
42
38 states: [
43 states: [
39 State {
44 State {
qml/Stages/TabletStage.qml+8
@@ -34,6 +34,7 @@ Rectangle {
34 property real maximizedAppTopMargin
34 property real maximizedAppTopMargin
35 property bool interactive
35 property bool interactive
36 property real inverseProgress: 0 // This is the progress for left edge drags, in pixels.
36 property real inverseProgress: 0 // This is the progress for left edge drags, in pixels.
37+ property int orientation: Qt.PortraitOrientation
37
38
38 onInverseProgressChanged: {
39 onInverseProgressChanged: {
39 // This can't be a simple binding because that would be triggered after this handler
40 // This can't be a simple binding because that would be triggered after this handler
@@ -535,6 +536,13 @@ Rectangle {
535 return progress;
536 return progress;
536 }
537 }
537
538
539+ Binding {
540+ target: spreadTile
541+ property: "orientation"
542+ when: spreadTile.interactive
543+ value: root.orientation
544+ }
545+
538 onClicked: {
546 onClicked: {
539 if (spreadView.phase == 2) {
547 if (spreadView.phase == 2) {
540 spreadView.snapTo(index);
548 spreadView.snapTo(index);
src/Dash/CMakeLists.txt+1
@@ -1,5 +1,6 @@
1set(DASH_SRCS
1set(DASH_SRCS
2 main.cpp
2 main.cpp
3+ ../ApplicationArguments.h
3 ../MouseTouchAdaptor.cpp
4 ../MouseTouchAdaptor.cpp
4 ../CachingNetworkManagerFactory.cpp
5 ../CachingNetworkManagerFactory.cpp
5)
6)
src/Dash/main.cpp+16−2
@@ -28,6 +28,7 @@
28
28
29#include <paths.h>
29#include <paths.h>
30#include "../MouseTouchAdaptor.h"
30#include "../MouseTouchAdaptor.h"
31+#include "../ApplicationArguments.h"
31#include "../CachingNetworkManagerFactory.h"
32#include "../CachingNetworkManagerFactory.h"
32
33
33int main(int argc, const char *argv[])
34int main(int argc, const char *argv[])
@@ -42,7 +43,11 @@ int main(int argc, const char *argv[])
42 "Allow the mouse to provide touch input");
43 "Allow the mouse to provide touch input");
43 parser.addOption(mousetouchOption);
44 parser.addOption(mousetouchOption);
44
45
46+ QCommandLineOption windowGeometryOption(QStringList() << "windowgeometry",
47+ "Specify the window geometry as [<width>x<height>]", "windowgeometry", "1");
48+ parser.addOption(windowGeometryOption);
49+
45− // FIXME Remove once we drop the need of the hint
50+ // FIXME Remove once we drop the need of the hint
46 QCommandLineOption desktopFileHintOption("desktop_file_hint",
51 QCommandLineOption desktopFileHintOption("desktop_file_hint",
47 "The desktop_file_hint option for QtMir", "hint_file");
52 "The desktop_file_hint option for QtMir", "hint_file");
48 parser.addOption(desktopFileHintOption);
53 parser.addOption(desktopFileHintOption);
@@ -52,6 +57,14 @@ int main(int argc, const char *argv[])
52 parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions);
57 parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions);
53 parser.process(*application);
58 parser.process(*application);
54
59
60+ ApplicationArguments qmlArgs;
61+ if (parser.isSet(windowGeometryOption) &&
62+ parser.value(windowGeometryOption).split('x').size() == 2)
63+ {
64+ QStringList geom = parser.value(windowGeometryOption).split('x');
65+ qmlArgs.setSize(geom.at(0).toInt(), geom.at(1).toInt());
66+ }
67+
55 if (getenv("QT_LOAD_TESTABILITY")) {
68 if (getenv("QT_LOAD_TESTABILITY")) {
56 QLibrary testLib(QLatin1String("qttestability"));
69 QLibrary testLib(QLatin1String("qttestability"));
57 if (testLib.load()) {
70 if (testLib.load()) {
@@ -72,7 +85,8 @@ int main(int argc, const char *argv[])
72
85
73 QQuickView* view = new QQuickView();
86 QQuickView* view = new QQuickView();
74 view->setResizeMode(QQuickView::SizeRootObjectToView);
87 view->setResizeMode(QQuickView::SizeRootObjectToView);
75− view->setTitle("Unity Dash");
88+ view->setTitle("Scopes");
89+ view->rootContext()->setContextProperty("applicationArguments", &qmlArgs);
76
90
77 // You will need this if you want to interact with touch-only components using a mouse
91 // You will need this if you want to interact with touch-only components using a mouse
78 // Needed only when manually testing on a desktop.
92 // Needed only when manually testing on a desktop.
tests/autopilot/unity8/shell/tests/__init__.py+4−21
@@ -432,12 +432,6 @@ class DashBaseTestCase(AutopilotTestCase):
432 binary_path = get_binary_path('unity8-dash')
432 binary_path = get_binary_path('unity8-dash')
433 dash_proxy = self.launch_dash(binary_path, self.environment)
433 dash_proxy = self.launch_dash(binary_path, self.environment)
434
434
435− if self.should_simulate_device():
436− # XXX Currently we have no way to launch the application with a
437− # specific size, so we must resize it after it's launched.
438− # --elopio - 2014-06-25
439− self.resize_window()
440−
441 self.dash_app = dash_helpers.DashApp(dash_proxy)
435 self.dash_app = dash_helpers.DashApp(dash_proxy)
442 self.dash = self.dash_app.dash
436 self.dash = self.dash_app.dash
443 self.wait_for_dash()
437 self.wait_for_dash()
@@ -470,18 +464,7 @@ class DashBaseTestCase(AutopilotTestCase):
470 simulate_device_fixture = self.useFixture(
464 simulate_device_fixture = self.useFixture(
471 toolkit_fixtures.SimulateDevice(
465 toolkit_fixtures.SimulateDevice(
472 self.app_width, self.app_height, self.grid_unit_px))
466 self.app_width, self.app_height, self.grid_unit_px))
473− self.app_width = simulate_device_fixture.app_width
467+ self.environment['GRID_UNIT_PX'] = simulate_device_fixture.grid_unit_px
474− self.app_height = simulate_device_fixture.app_height
468+ self.environment['ARGS'] = '-windowgeometry {0}x{1}'\
475−
469+ .format(simulate_device_fixture.app_width,
476− def resize_window(self):
470+ simulate_device_fixture.app_height)
477− application = self.process_manager.get_running_applications()[0]
478− window = application.get_windows()[0]
479− window.resize(self.app_width, self.app_height)
480−
481− def get_window_size():
482− _, _, window_width, window_height = window.geometry
483− return window_width, window_height
484−
485− self.assertThat(
486− get_window_size,
487− Eventually(Equals((self.app_width, self.app_height))))
tests/mocks/HudClient/fake_libhud_client.cpp+8−1
@@ -63,6 +63,7 @@ HudClientQuery *hud_client_query_new(const gchar *query)
63DeeModel *hud_client_query_get_results_model(HudClientQuery *cquery)
63DeeModel *hud_client_query_get_results_model(HudClientQuery *cquery)
64{
64{
65 Q_ASSERT(cquery == HudClientStub::m_query);
65 Q_ASSERT(cquery == HudClientStub::m_query);
66+ Q_UNUSED(cquery);
66 if (!resultsModel) {
67 if (!resultsModel) {
67 resultsModel = dee_sequence_model_new();
68 resultsModel = dee_sequence_model_new();
68 dee_model_set_schema_full(resultsModel, results_model_schema, G_N_ELEMENTS(results_model_schema));
69 dee_model_set_schema_full(resultsModel, results_model_schema, G_N_ELEMENTS(results_model_schema));
@@ -113,18 +114,21 @@ void hud_client_query_execute_toolbar_item(HudClientQuery *cquery, HudClientQuer
113{
114{
114 Q_ASSERT(cquery == HudClientStub::m_query);
115 Q_ASSERT(cquery == HudClientStub::m_query);
115 Q_UNUSED(timestamp);
116 Q_UNUSED(timestamp);
117+ Q_UNUSED(cquery);
116 HudClientStub::m_lastExecutedToolbarItem = item;
118 HudClientStub::m_lastExecutedToolbarItem = item;
117}
119}
118
120
119void hud_client_query_set_query(HudClientQuery *cquery, const char *query)
121void hud_client_query_set_query(HudClientQuery *cquery, const char *query)
120{
122{
121 Q_ASSERT(cquery == HudClientStub::m_query);
123 Q_ASSERT(cquery == HudClientStub::m_query);
124+ Q_UNUSED(cquery);
122 HudClientStub::m_lastSetQuery = QString::fromUtf8(query);
125 HudClientStub::m_lastSetQuery = QString::fromUtf8(query);
123}
126}
124
127
125void hud_client_query_execute_command(HudClientQuery *cquery, GVariant *command_key, guint timestamp)
128void hud_client_query_execute_command(HudClientQuery *cquery, GVariant *command_key, guint timestamp)
126{
129{
127 Q_ASSERT(cquery == HudClientStub::m_query);
130 Q_ASSERT(cquery == HudClientStub::m_query);
131+ Q_UNUSED(cquery);
128 Q_UNUSED(timestamp);
132 Q_UNUSED(timestamp);
129 for (uint i = 0; i < dee_model_get_n_rows(resultsModel); ++i) {
133 for (uint i = 0; i < dee_model_get_n_rows(resultsModel); ++i) {
130 DeeModelIter *iter = dee_model_get_iter_at_row(resultsModel, i);
134 DeeModelIter *iter = dee_model_get_iter_at_row(resultsModel, i);
@@ -144,6 +148,7 @@ void hud_client_query_execute_command(HudClientQuery *cquery, GVariant *command_
144HudClientParam *hud_client_query_execute_param_command(HudClientQuery *cquery, GVariant *command_key, guint timestamp)
148HudClientParam *hud_client_query_execute_param_command(HudClientQuery *cquery, GVariant *command_key, guint timestamp)
145{
149{
146 Q_ASSERT(cquery == HudClientStub::m_query);
150 Q_ASSERT(cquery == HudClientStub::m_query);
151+ Q_UNUSED(cquery);
147 Q_UNUSED(timestamp);
152 Q_UNUSED(timestamp);
148 for (uint i = 0; i < dee_model_get_n_rows(resultsModel); ++i) {
153 for (uint i = 0; i < dee_model_get_n_rows(resultsModel); ++i) {
149 DeeModelIter *iter = dee_model_get_iter_at_row(resultsModel, i);
154 DeeModelIter *iter = dee_model_get_iter_at_row(resultsModel, i);
@@ -165,12 +170,14 @@ HudClientParam *hud_client_query_execute_param_command(HudClientQuery *cquery, G
165void hud_client_query_voice_query(HudClientQuery *cquery)
170void hud_client_query_voice_query(HudClientQuery *cquery)
166{
171{
167 Q_ASSERT(cquery == HudClientStub::m_query);
172 Q_ASSERT(cquery == HudClientStub::m_query);
173+ Q_UNUSED(cquery);
168 // TODO We are not testing voice queries yet
174 // TODO We are not testing voice queries yet
169}
175}
170
176
171gboolean hud_client_query_toolbar_item_active(HudClientQuery *cquery, HudClientQueryToolbarItems item)
177gboolean hud_client_query_toolbar_item_active(HudClientQuery *cquery, HudClientQueryToolbarItems item)
172{
178{
173 Q_ASSERT(cquery == HudClientStub::m_query);
179 Q_ASSERT(cquery == HudClientStub::m_query);
180+ Q_UNUSED(cquery);
174 if (item == HUD_CLIENT_QUERY_TOOLBAR_HELP)
181 if (item == HUD_CLIENT_QUERY_TOOLBAR_HELP)
175 return HudClientStub::m_helpToolbarItemEnabled;
182 return HudClientStub::m_helpToolbarItemEnabled;
176
183
@@ -218,7 +225,7 @@ GActionGroup *hud_client_param_get_actions(HudClientParam *param)
218 if (!parametrizedActionGroup) {
225 if (!parametrizedActionGroup) {
219 GSimpleActionGroup *actionGroup = g_simple_action_group_new();
226 GSimpleActionGroup *actionGroup = g_simple_action_group_new();
220 GSimpleAction *action = g_simple_action_new("costAction", G_VARIANT_TYPE_DOUBLE);
227 GSimpleAction *action = g_simple_action_new("costAction", G_VARIANT_TYPE_DOUBLE);
221− g_simple_action_group_insert(actionGroup, G_ACTION(action));
228+ g_action_map_add_action(G_ACTION_MAP(actionGroup), G_ACTION(action));
222
229
223 g_signal_connect (action, "activate", G_CALLBACK (on_signal_activated), nullptr);
230 g_signal_connect (action, "activate", G_CALLBACK (on_signal_activated), nullptr);
224
231
tests/mocks/QtMultimedia/audio.cpp+1−1
@@ -77,7 +77,7 @@ void Audio::pause()
77
77
78void Audio::play()
78void Audio::play()
79{
79{
80− if (m_playbackState != PlayingState && m_source.isValid()) {
80+ if (m_playbackState != PlayingState) {
81 m_playbackState = PlayingState;
81 m_playbackState = PlayingState;
82 Q_EMIT playbackStateChanged(m_playbackState);
82 Q_EMIT playbackStateChanged(m_playbackState);
83
83
tests/mocks/Ubuntu/Payments/MockPayments.cpp+3−1
@@ -84,7 +84,9 @@ void MockPayments::start()
84
84
85void MockPayments::process()
85void MockPayments::process()
86{
86{
87− if (m_store_item_id == "com.example.invalid") {
87+ if (m_store_item_id == "com.example.cancel") {
88+ Q_EMIT purchaseCancelled();
89+ } else if (m_store_item_id == "com.example.invalid") {
88 Q_EMIT purchaseError("Purchase failed.");
90 Q_EMIT purchaseError("Purchase failed.");
89 } else {
91 } else {
90 Q_EMIT purchaseCompleted();
92 Q_EMIT purchaseCompleted();
tests/mocks/Ubuntu/Payments/MockPayments.h+1
@@ -51,6 +51,7 @@ Q_SIGNALS:
51
51
52 void purchaseError(const QString &error);
52 void purchaseError(const QString &error);
53 void purchaseCompleted();
53 void purchaseCompleted();
54+ void purchaseCancelled();
54
55
55private:
56private:
56 QString m_currency;
57 QString m_currency;
tests/mocks/Unity/Application/MirSurfaceItem.cpp+14
@@ -39,6 +39,7 @@ MirSurfaceItem::MirSurfaceItem(const QString& name,
39 , m_type(type)
39 , m_type(type)
40 , m_state(state)
40 , m_state(state)
41 , m_live(true)
41 , m_live(true)
42+ , m_orientation(Qt::PortraitOrientation)
42 , m_qmlItem(nullptr)
43 , m_qmlItem(nullptr)
43 , m_screenshotUrl(screenshot)
44 , m_screenshotUrl(screenshot)
44{
45{
@@ -108,6 +109,19 @@ void MirSurfaceItem::release()
108 }
109 }
109}
110}
110
111
112+void MirSurfaceItem::setOrientation(const Qt::ScreenOrientation orientation)
113+{
114+ if (m_orientation == orientation)
115+ return;
116+
117+ m_orientation = orientation;
118+
119+ QQmlProperty orientationProp(m_qmlItem, "orientation");
120+ orientationProp.write(QVariant::fromValue(orientation));
121+
122+ Q_EMIT orientationChanged();
123+}
124+
111void MirSurfaceItem::setSession(Session* session)
125void MirSurfaceItem::setSession(Session* session)
112{
126{
113 m_session = session;
127 m_session = session;
tests/mocks/Unity/Application/MirSurfaceItem.h+7
@@ -34,6 +34,7 @@ class MirSurfaceItem : public QQuickItem
34 Q_PROPERTY(State state READ state NOTIFY stateChanged)
34 Q_PROPERTY(State state READ state NOTIFY stateChanged)
35 Q_PROPERTY(QString name READ name CONSTANT)
35 Q_PROPERTY(QString name READ name CONSTANT)
36 Q_PROPERTY(bool live READ live NOTIFY liveChanged)
36 Q_PROPERTY(bool live READ live NOTIFY liveChanged)
37+ Q_PROPERTY(Qt::ScreenOrientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged DESIGNABLE false)
37
38
38public:
39public:
39 enum Type {
40 enum Type {
@@ -64,6 +65,9 @@ public:
64 State state() const { return m_state; }
65 State state() const { return m_state; }
65 QString name() const { return m_name; }
66 QString name() const { return m_name; }
66 bool live() const { return m_live; }
67 bool live() const { return m_live; }
68+ Qt::ScreenOrientation orientation() const { return m_orientation; }
69+
70+ void setOrientation(const Qt::ScreenOrientation orientation);
67
71
68 void setSession(Session* item);
72 void setSession(Session* item);
69 void setScreenshot(const QUrl& screenshot);
73 void setScreenshot(const QUrl& screenshot);
@@ -76,6 +80,7 @@ Q_SIGNALS:
76 void typeChanged(Type);
80 void typeChanged(Type);
77 void stateChanged(State);
81 void stateChanged(State);
78 void liveChanged(bool live);
82 void liveChanged(bool live);
83+ void orientationChanged();
79
84
80 void inputMethodRequested();
85 void inputMethodRequested();
81 void inputMethodDismissed();
86 void inputMethodDismissed();
@@ -104,6 +109,7 @@ private:
104 const Type m_type;
109 const Type m_type;
105 State m_state;
110 State m_state;
106 bool m_live;
111 bool m_live;
112+ Qt::ScreenOrientation m_orientation;
107
113
108 QQmlComponent *m_qmlContentComponent;
114 QQmlComponent *m_qmlContentComponent;
109 QQuickItem *m_qmlItem;
115 QQuickItem *m_qmlItem;
@@ -114,5 +120,6 @@ private:
114
120
115Q_DECLARE_METATYPE(MirSurfaceItem*)
121Q_DECLARE_METATYPE(MirSurfaceItem*)
116Q_DECLARE_METATYPE(QList<MirSurfaceItem*>)
122Q_DECLARE_METATYPE(QList<MirSurfaceItem*>)
123+Q_DECLARE_METATYPE(Qt::ScreenOrientation)
117
124
118#endif // MIRSURFACEITEM_H
125#endif // MIRSURFACEITEM_H
tests/mocks/Unity/Application/MirSurfaceItem.qml+12−2
@@ -21,12 +21,22 @@ Rectangle {
21 id: root
21 id: root
22 color: "pink"
22 color: "pink"
23
23
24− anchors.fill: parent
25−
26 implicitWidth: units.gu(40)
24 implicitWidth: units.gu(40)
27 implicitHeight: units.gu(70)
25 implicitHeight: units.gu(70)
28
26
27+ rotation: {
28+ if (orientation == Qt.PortraitOrientation) return 0;
29+ else if (orientation == Qt.LandscapeOrientation) return 90;
30+ else if (orientation == Qt.InvertedPortraitOrientation) return 180;
31+ else return 270;
32+ }
33+ x: parent ? (parent.width - width) / 2 : 0
34+ y: parent ? (parent.height - height) / 2 : 0
35+ width: parent ? (rotation == 0 || rotation == 180 ? parent.width : parent.height) : implicitWidth
36+ height: parent ? (rotation == 0 || rotation == 180 ? parent.height : parent.width) : implicitHeight
37+
29 property alias screenshotSource: screenshotImage.source
38 property alias screenshotSource: screenshotImage.source
39+ property int orientation: Qt.PortraitOrientation
30
40
31 property bool wantInputMethod: false
41 property bool wantInputMethod: false
32
42
tests/mocks/Unity/Launcher/CMakeLists.txt+1−1
@@ -1,4 +1,4 @@
1−pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=3)
1+pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=4)
2
2
3include_directories(
3include_directories(
4 ${CMAKE_CURRENT_SOURCE_DIR}
4 ${CMAKE_CURRENT_SOURCE_DIR}
tests/mocks/Unity/Launcher/MockLauncherItem.cpp+14
@@ -35,6 +35,7 @@ MockLauncherItem::MockLauncherItem(const QString &appId, const QString& desktopF
35 m_recent(false),
35 m_recent(false),
36 m_progress(-1),
36 m_progress(-1),
37 m_count(0),
37 m_count(0),
38+ m_countVisible(false),
38 m_focused(false),
39 m_focused(false),
39 m_quickList(new MockQuickListModel(this))
40 m_quickList(new MockQuickListModel(this))
40{
41{
@@ -131,6 +132,19 @@ void MockLauncherItem::setCount(int count)
131 }
132 }
132}
133}
133
134
135+bool MockLauncherItem::countVisible() const
136+{
137+ return m_countVisible;
138+}
139+
140+void MockLauncherItem::setCountVisible(bool countVisible)
141+{
142+ if (m_countVisible != countVisible) {
143+ m_countVisible = countVisible;
144+ Q_EMIT countVisibleChanged(countVisible);
145+ }
146+}
147+
134bool MockLauncherItem::focused() const
148bool MockLauncherItem::focused() const
135{
149{
136 return m_focused;
150 return m_focused;
tests/mocks/Unity/Launcher/MockLauncherItem.h+18−17
@@ -32,32 +32,30 @@ class MockLauncherItem: public LauncherItemInterface
32public:
32public:
33 MockLauncherItem(const QString &appId, const QString& desktopFile, const QString& name, const QString& icon, QObject* parent = 0);
33 MockLauncherItem(const QString &appId, const QString& desktopFile, const QString& name, const QString& icon, QObject* parent = 0);
34
34
35− QString appId() const;
35+ QString appId() const override;
36 QString desktopFile() const;
36 QString desktopFile() const;
37− QString name() const;
37+ QString name() const override;
38− QString icon() const;
38+ QString icon() const override;
39
39
40− bool pinned() const;
40+ bool pinned() const override;
41− void setPinned(bool pinned);
41+ bool running() const override;
42+ bool recent() const override;
43+ int progress() const override;
44+ int count() const override;
45+ bool countVisible() const override;
46+ bool focused() const;
42
47
43− bool running() const;
48+ unity::shell::launcher::QuickListModelInterface *quickList() const;
44− void setRunning(bool running);
45
49
46− bool recent() const;
50+private:
51+ void setPinned(bool pinned);
52+ void setRunning(bool running);
47 void setRecent(bool recent);
53 void setRecent(bool recent);
48−
49− int progress() const;
50 void setProgress(int progress);
54 void setProgress(int progress);
51−
52− int count() const;
53 void setCount(int count);
55 void setCount(int count);
54−
56+ void setCountVisible(bool countVisible);
55− bool focused() const;
56 void setFocused(bool focused);
57 void setFocused(bool focused);
57
58
58− unity::shell::launcher::QuickListModelInterface *quickList() const;
59−
60−private:
61 QString m_appId;
59 QString m_appId;
62 QString m_desktopFile;
60 QString m_desktopFile;
63 QString m_name;
61 QString m_name;
@@ -67,8 +65,11 @@ private:
67 bool m_recent;
65 bool m_recent;
68 int m_progress;
66 int m_progress;
69 int m_count;
67 int m_count;
68+ bool m_countVisible;
70 bool m_focused;
69 bool m_focused;
71 MockQuickListModel *m_quickList;
70 MockQuickListModel *m_quickList;
71+
72+ friend class MockLauncherModel;
72};
73};
73
74
74#endif // MOCKLAUNCHERITEM_H
75#endif // MOCKLAUNCHERITEM_H
tests/mocks/Unity/Launcher/MockLauncherModel.cpp+10
@@ -33,26 +33,32 @@ MockLauncherModel::MockLauncherModel(QObject* parent): LauncherModelInterface(pa
33 m_list.append(item);
33 m_list.append(item);
34 item = new MockLauncherItem("gallery-app", "/usr/share/applications/gallery-app.desktop", "Gallery", "gallery", this);
34 item = new MockLauncherItem("gallery-app", "/usr/share/applications/gallery-app.desktop", "Gallery", "gallery", this);
35 item->setProgress(50);
35 item->setProgress(50);
36+ item->setCountVisible(true);
36 m_list.append(item);
37 m_list.append(item);
37 item = new MockLauncherItem("facebook-webapp", "/usr/share/applications/facebook-webapp.desktop", "Facebook", "facebook", this);
38 item = new MockLauncherItem("facebook-webapp", "/usr/share/applications/facebook-webapp.desktop", "Facebook", "facebook", this);
38 item->setProgress(150);
39 item->setProgress(150);
39 m_list.append(item);
40 m_list.append(item);
40 item = new MockLauncherItem("webbrowser-app", "/usr/share/applications/webbrowser-app.desktop", "Browser", "browser", this);
41 item = new MockLauncherItem("webbrowser-app", "/usr/share/applications/webbrowser-app.desktop", "Browser", "browser", this);
41 item->setCount(1);
42 item->setCount(1);
43+ item->setCountVisible(true);
42 m_list.append(item);
44 m_list.append(item);
43 item = new MockLauncherItem("twitter-webapp", "/usr/share/applications/twitter-webapp.desktop", "Twitter", "twitter", this);
45 item = new MockLauncherItem("twitter-webapp", "/usr/share/applications/twitter-webapp.desktop", "Twitter", "twitter", this);
44 item->setCount(12);
46 item->setCount(12);
47+ item->setCountVisible(true);
45 item->setPinned(true);
48 item->setPinned(true);
46 m_list.append(item);
49 m_list.append(item);
47 item = new MockLauncherItem("gmail-webapp", "/usr/share/applications/gmail-webapp.desktop", "GMail", "gmail", this);
50 item = new MockLauncherItem("gmail-webapp", "/usr/share/applications/gmail-webapp.desktop", "GMail", "gmail", this);
48 item->setCount(123);
51 item->setCount(123);
52+ item->setCountVisible(true);
49 m_list.append(item);
53 m_list.append(item);
50 item = new MockLauncherItem("ubuntu-weather-app", "/usr/share/applications/ubuntu-weather-app.desktop", "Weather", "weather", this);
54 item = new MockLauncherItem("ubuntu-weather-app", "/usr/share/applications/ubuntu-weather-app.desktop", "Weather", "weather", this);
51 item->setCount(1234567890);
55 item->setCount(1234567890);
56+ item->setCountVisible(true);
52 m_list.append(item);
57 m_list.append(item);
53 item = new MockLauncherItem("notes-app", "/usr/share/applications/notes-app.desktop", "Notepad", "notepad", this);
58 item = new MockLauncherItem("notes-app", "/usr/share/applications/notes-app.desktop", "Notepad", "notepad", this);
54 item->setProgress(50);
59 item->setProgress(50);
55 item->setCount(5);
60 item->setCount(5);
61+ item->setCountVisible(true);
56 item->setFocused(true);
62 item->setFocused(true);
57 item->setPinned(true);
63 item->setPinned(true);
58 m_list.append(item);
64 m_list.append(item);
@@ -76,6 +82,8 @@ QVariant MockLauncherModel::data(const QModelIndex& index, int role) const
76 LauncherItemInterface *item = m_list.at(index.row());
82 LauncherItemInterface *item = m_list.at(index.row());
77 switch(role)
83 switch(role)
78 {
84 {
85+ case RoleAppId:
86+ return item->appId();
79 case RoleName:
87 case RoleName:
80 return item->name();
88 return item->name();
81 case RoleIcon:
89 case RoleIcon:
@@ -90,6 +98,8 @@ QVariant MockLauncherModel::data(const QModelIndex& index, int role) const
90 return item->progress();
98 return item->progress();
91 case RoleCount:
99 case RoleCount:
92 return item->count();
100 return item->count();
101+ case RoleCountVisible:
102+ return item->countVisible();
93 case RoleFocused:
103 case RoleFocused:
94 return item->focused();
104 return item->focused();
95 }
105 }
tests/mocks/Unity/fake_categories.cpp+95−136
@@ -29,25 +29,12 @@ Categories::Categories(int category_count, QObject* parent)
29
29
30int Categories::rowCount(const QModelIndex& /*parent*/) const
30int Categories::rowCount(const QModelIndex& /*parent*/) const
31{
31{
32− return m_category_count + m_specialCategories.count();
32+ return m_category_count;
33}
33}
34
34
35−void Categories::addSpecialCategory(QString const& categoryId, QString const& name, QString const& icon, QString const& rawTemplate, QObject* countObject)
35+void Categories::addSpecialCategory(QString const& /*categoryId*/, QString const& /*name*/, QString const& /*icon*/, QString const& /*rawTemplate*/, QObject* /*countObject*/)
36{
36{
37− CategoryData catData;
37+ qFatal("Using un-implemented Categories::addSpecialCategory");
38− catData.categoryId = categoryId;
39− catData.name = name;
40− catData.icon = icon;
41− catData.rawTemplate = rawTemplate;
42− catData.countObject = countObject;
43−
44− beginInsertRows(QModelIndex(), 0, 0);
45− m_specialCategories.prepend(catData);
46− endInsertRows();
47−
48− if (countObject) {
49− connect(countObject, SIGNAL(countChanged()), this, SLOT(countChanged()));
50− }
51}
38}
52
39
53bool Categories::overrideCategoryJson(QString const& /* categoryId */, QString const& /* json */)
40bool Categories::overrideCategoryJson(QString const& /* categoryId */, QString const& /* json */)
@@ -55,23 +42,6 @@ bool Categories::overrideCategoryJson(QString const& /* categoryId */, QString c
55 qFatal("Using un-implemented Categories::overrideCategoryJson");
42 qFatal("Using un-implemented Categories::overrideCategoryJson");
56}
43}
57
44
58−void Categories::countChanged()
59−{
60− QObject* countObject = sender();
61−
62− for (int i = 0; i < m_specialCategories.count(); ++i) {
63− const CategoryData &catData = m_specialCategories.at(i);
64− if (catData.countObject == countObject) {
65− QVector<int> roles;
66− roles.append(RoleCount);
67−
68− QModelIndex changedIndex(index(i));
69− dataChanged(changedIndex, changedIndex, roles);
70− break;
71− }
72− }
73−}
74−
75QVariant
45QVariant
76Categories::data(const QModelIndex& index, int role) const
46Categories::data(const QModelIndex& index, int role) const
77{
47{
@@ -79,115 +49,74 @@ Categories::data(const QModelIndex& index, int role) const
79 return QVariant();
49 return QVariant();
80 }
50 }
81
51
82− ResultsModel *resultsModel = m_resultsModels[index.row()];
52+ ResultsModel *resultsModel = resultModel(index.row());
83− if (!resultsModel) {
84− resultsModel = new ResultsModel(15, index.row());
85− m_resultsModels[index.row()] = resultsModel;
86− }
87− if (index.row() < m_specialCategories.count()) {
88− const CategoryData &catData = m_specialCategories.at(index.row());
89− switch (role) {
53+ switch (role) {
90− case RoleCategoryId:
54+ case RoleCategoryId:
91− return catData.categoryId;
55+ return QString("%1").arg(index.row());
92− case RoleName:
56+ case RoleName:
93− return catData.name;
57+ return QString("Category %1").arg(index.row());
94− case RoleIcon:
58+ case RoleIcon:
95− return catData.icon;
59+ return "gtk-apply";
96− case RoleRawRendererTemplate:
60+ case RoleRawRendererTemplate:
97− return catData.rawTemplate;
61+ qFatal("Using un-implemented RoleRawRendererTemplate Categories role");
62+ return QVariant();
98− case RoleRenderer:
63+ case RoleRenderer:
99− {
64+ {
100− QVariantMap map;
65+ QVariantMap map;
101− if (index.row() % 2 == 0) {
66+ if (index.row() % 2 == 0) {
102− map["category-layout"] = "grid";
67+ map["category-layout"] = "grid";
103− } else {
68+ } else {
104− map["category-layout"] = "carousel";
69+ map["category-layout"] = "carousel";
105− map["overlay"] = true;
106− }
107− map["card-size"] = "small";
108− return map;
109 }
70 }
110− case RoleComponents:
71+ if (index.row() == 18) {
111− {
72+ map["category-layout"] = "horizontal-list";
112− QVariantMap map, artMap, attributeMap;
73+ }
113− artMap["aspect-ratio"] = "1.0";
74+ if (index.row() == 19) {
114− artMap["field"] = "art";
75+ map["category-layout"] = "grid";
115− map["art"] = artMap;
76+ map["collapsed-rows"] = 0;
116− map["title"] = "HOLA";
77+ }
117− attributeMap["field"] = "attribute";
78+ map["card-size"] = "small";
118− map["attributes"] = attributeMap;
79+
119− return map;
80+ map["category-layout"] = m_layouts.value(index.row(), map["category-layout"].toString());
81+
82+ if (map["category-layout"] == "carousel") {
83+ map["overlay"] = true;
120 }
84 }
121− case RoleHeaderLink:
85+
122− return QString();
123− case RoleResults:
124− return QVariant();
86+ return map;
125− case RoleCount:
126− return catData.countObject->property("count");
127− default:
128− qFatal("Using un-implemented Categories role");
129− return QVariant();
130 }
87 }
131− } else {
88+ case RoleComponents:
132− switch (role) {
133− case RoleCategoryId:
134− return QString("%1").arg(index.row());
135− case RoleName:
136− return QString("Category %1").arg(index.row());
137− case RoleIcon:
138− return "gtk-apply";
139− case RoleRawRendererTemplate:
140− qFatal("Using un-implemented RoleRawRendererTemplate Categories role");
141− return QVariant();
142− case RoleRenderer:
143− {
89+ {
144− QVariantMap map;
90+ QVariantMap map, artMap, attributeMap;
145− if (index.row() % 2 == 0) {
91+ if (index.row() % 2 != 0) {
146− map["category-layout"] = "grid";
92+ artMap["aspect-ratio"] = QString("1.%1").arg(index.row());
147− } else {
93+ } else {
148− map["category-layout"] = "carousel";
94+ artMap["aspect-ratio"] = "1.0";
149− map["card-size"] = "medium";
150− map["overlay"] = true;
151− }
152− if (index.row() == 18) {
153− map["category-layout"] = "horizontal-list";
154− }
155− if (index.row() == 19) {
156− map["category-layout"] = "grid";
157− map["collapsed-rows"] = 0;
158− }
159− map["card-size"] = "small";
160− return map;
161 }
95 }
162− case RoleComponents:
163− {
164− QVariantMap map, artMap, attributeMap;
165− if (index.row() % 2 != 0) {
166− artMap["aspect-ratio"] = QString("1.%1").arg(index.row());
167− } else {
168− artMap["aspect-ratio"] = "1.0";
169− }
170− artMap["field"] = "art";
96+ artMap["field"] = "art";
171− map["art"] = artMap;
97+ map["art"] = artMap;
172− map["title"] = "HOLA";
98+ map["title"] = "HOLA";
173− map["subtitle"] = "HOLA";
99+ map["subtitle"] = "HOLA";
174− attributeMap["field"] = "attribute";
100+ attributeMap["field"] = "attribute";
175− map["attributes"] = attributeMap;
101+ map["attributes"] = attributeMap;
176− return map;
102+ return map;
103+ }
104+ case RoleHeaderLink:
105+ {
106+ QString res;
107+ if (index.row() == 1 || index.row() == 4) {
108+ res = QString("scope://query/1");
177 }
109 }
178− case RoleHeaderLink:
110+ res = m_headerLinks.value(index.row(), res);
179− if (index.row() == 1 || index.row() == 4) {
180− return QString("scope://query/1");
181− }
182− return QString();
183− case RoleResults:
184− return QVariant::fromValue(resultsModel);
185− case RoleCount:
186− return resultsModel->rowCount();
187− default:
188− qFatal("Using un-implemented Categories role");
189− return QVariant();
111+ return res;
190 }
112 }
113+ case RoleResults:
114+ return QVariant::fromValue(resultsModel);
115+ case RoleCount:
116+ return resultsModel->rowCount();
117+ default:
118+ qFatal("Using un-implemented Categories role");
119+ return QVariant();
191 }
120 }
192}
121}
193
122
@@ -196,3 +125,33 @@ Categories::data(int row, int role) const
196{
125{
197 return data(index(row, 0), role);
126 return data(index(row, 0), role);
198}
127}
128+
129+void Categories::setCount(int count)
130+{
131+ if (m_category_count != count) {
132+ beginResetModel(); // This is just for test setup so we can be lazy and reset
133+ m_category_count = count;
134+ endResetModel();
135+ }
136+}
137+
138+ResultsModel* Categories::resultModel(int row) const
139+{
140+ ResultsModel *result = m_resultsModels[row];
141+ if (!result) {
142+ Categories *that = const_cast<Categories*>(this);
143+ result = new ResultsModel(15, row, that);
144+ m_resultsModels[row] = result;
145+ }
146+ return result;
147+}
148+
149+void Categories::setLayout(int row, const QString &layout)
150+{
151+ m_layouts[row] = layout;
152+}
153+
154+void Categories::setHeaderLink(int row, const QString &headerLink)
155+{
156+ m_headerLinks[row] = headerLink;
157+}
tests/mocks/Unity/fake_categories.h+7−12
@@ -39,22 +39,17 @@ public:
39
39
40 Q_INVOKABLE QVariant data(int row, int role) const;
40 Q_INVOKABLE QVariant data(int row, int role) const;
41
41
42−private Q_SLOTS:
42+ // For testing purposes
43− void countChanged();
43+ Q_INVOKABLE void setCount(int count);
44+ Q_INVOKABLE ResultsModel* resultModel(int row) const;
45+ Q_INVOKABLE void setLayout(int row, const QString &layout);
46+ Q_INVOKABLE void setHeaderLink(int row, const QString &headerLink);
44
47
45private:
48private:
46 mutable QHash<int, ResultsModel*> m_resultsModels;
49 mutable QHash<int, ResultsModel*> m_resultsModels;
50+ QHash<int, QString> m_layouts;
51+ QHash<int, QString> m_headerLinks;
47 int m_category_count;
52 int m_category_count;
48−
49− struct CategoryData {
50− QString categoryId;
51− QString name;
52− QString icon;
53− QString rawTemplate;
54− QObject* countObject;
55− };
56−
57− QList<CategoryData> m_specialCategories;
58};
53};
59
54
60#endif // FAKE_CATEGORIES_H
55#endif // FAKE_CATEGORIES_H
tests/mocks/Unity/fake_resultsmodel.cpp+9
@@ -44,6 +44,15 @@ void ResultsModel::setCategoryId(QString const& /*id*/)
44 qFatal("Calling un-implemented ResultsModel::setCategoryId");
44 qFatal("Calling un-implemented ResultsModel::setCategoryId");
45}
45}
46
46
47+void ResultsModel::setResultCount(int result_count)
48+{
49+ if (m_result_count != result_count) {
50+ beginResetModel(); // This is just for test setup so we can be lazy and reset
51+ m_result_count = result_count;
52+ endResetModel();
53+ }
54+}
55+
47int ResultsModel::rowCount(const QModelIndex& parent) const
56int ResultsModel::rowCount(const QModelIndex& parent) const
48{
57{
49 Q_UNUSED(parent);
58 Q_UNUSED(parent);
tests/mocks/Unity/fake_resultsmodel.h+3
@@ -41,6 +41,9 @@ public:
41 /* setters */
41 /* setters */
42 void setCategoryId(QString const& id) override;
42 void setCategoryId(QString const& id) override;
43
43
44+ // For testing purposes
45+ Q_INVOKABLE void setResultCount(int result_count);
46+
44private:
47private:
45 int m_result_count;
48 int m_result_count;
46 int m_categoryId;
49 int m_categoryId;
tests/mocks/Unity/fake_scope.cpp+26−4
@@ -28,7 +28,7 @@ Scope::Scope(Scopes* parent) : Scope("MockScope5", "Mock Scope", false, parent)
28{
28{
29}
29}
30
30
31−Scope::Scope(QString const& id, QString const& name, bool favorite, Scopes* parent, int categories)
31+Scope::Scope(QString const& id, QString const& name, bool favorite, Scopes* parent, int categories, bool returnNullPreview)
32 : unity::shell::scopes::ScopeInterface(parent)
32 : unity::shell::scopes::ScopeInterface(parent)
33 , m_id(id)
33 , m_id(id)
34 , m_name(name)
34 , m_name(name)
@@ -41,6 +41,7 @@ Scope::Scope(QString const& id, QString const& name, bool favorite, Scopes* pare
41 , m_categories(new Categories(categories, this))
41 , m_categories(new Categories(categories, this))
42 , m_openScope(nullptr)
42 , m_openScope(nullptr)
43 , m_settings(new SettingsModel(this))
43 , m_settings(new SettingsModel(this))
44+ , m_returnNullPreview(returnNullPreview)
44{
45{
45}
46}
46
47
@@ -145,6 +146,23 @@ void Scope::setFavorite(const bool favorite)
145 Q_EMIT favoriteChanged();
146 Q_EMIT favoriteChanged();
146 }
147 }
147}
148}
149+
150+void Scope::setId(const QString &id)
151+{
152+ if (id != m_id) {
153+ m_id = id;
154+ Q_EMIT idChanged();
155+ }
156+}
157+
158+void Scope::setName(const QString &name)
159+{
160+ if (name != m_name) {
161+ m_name = name;
162+ Q_EMIT nameChanged();
163+ }
164+}
165+
148void Scope::setSearchInProgress(const bool inProg)
166void Scope::setSearchInProgress(const bool inProg)
149{
167{
150 if (inProg != m_searching) {
168 if (inProg != m_searching) {
@@ -175,9 +193,13 @@ PreviewStack* Scope::preview(QVariant const& result)
175{
193{
176 Q_UNUSED(result);
194 Q_UNUSED(result);
177
195
196+ if (m_returnNullPreview) {
197+ return nullptr;
198+ } else {
178− // This probably leaks, do we don't care
199+ // This probably leaks, do we don't care
179− // it's a test after all
200+ // it's a test after all
180− return new PreviewStack;
201+ return new PreviewStack;
202+ }
181}
203}
182
204
183void Scope::cancelActivation()
205void Scope::cancelActivation()
tests/mocks/Unity/fake_scope.h+5−1
@@ -32,7 +32,7 @@ class Scope : public unity::shell::scopes::ScopeInterface
32
32
33public:
33public:
34 Scope(Scopes* parent = 0);
34 Scope(Scopes* parent = 0);
35− Scope(QString const& id, QString const& name, bool favorite, Scopes* parent = 0, int categories = 20);
35+ Scope(QString const& id, QString const& name, bool favorite, Scopes* parent = 0, int categories = 20, bool returnNullPreview = false);
36
36
37 /* getters */
37 /* getters */
38 QString id() const override;
38 QString id() const override;
@@ -56,6 +56,8 @@ public:
56 void setFormFactor(const QString& form_factor) override;
56 void setFormFactor(const QString& form_factor) override;
57 void setActive(const bool) override;
57 void setActive(const bool) override;
58 void setFavorite(const bool) override;
58 void setFavorite(const bool) override;
59+ Q_INVOKABLE void setId(const QString &id); // This is not invokable in the Interface, here for testing benefits
60+ Q_INVOKABLE void setName(const QString &name); // This is not invokable in the Interface, here for testing benefits
59 Q_INVOKABLE void setSearchInProgress(const bool inProg); // This is not invokable in the Interface, here for testing benefits
61 Q_INVOKABLE void setSearchInProgress(const bool inProg); // This is not invokable in the Interface, here for testing benefits
60
62
61 Q_INVOKABLE void activate(QVariant const& result) override;
63 Q_INVOKABLE void activate(QVariant const& result) override;
@@ -97,6 +99,8 @@ protected:
97 unity::shell::scopes::CategoriesInterface* m_categories;
99 unity::shell::scopes::CategoriesInterface* m_categories;
98 unity::shell::scopes::ScopeInterface* m_openScope;
100 unity::shell::scopes::ScopeInterface* m_openScope;
99 unity::shell::scopes::SettingsModelInterface* m_settings;
101 unity::shell::scopes::SettingsModelInterface* m_settings;
102+
103+ bool m_returnNullPreview;
100};
104};
101
105
102#endif // FAKE_SCOPE_H
106#endif // FAKE_SCOPE_H
tests/mocks/Unity/fake_scopes.cpp+1
@@ -59,6 +59,7 @@ void Scopes::updateScopes()
59 addScope(new Scope("MockScope7", "MS7", false, this));
59 addScope(new Scope("MockScope7", "MS7", false, this));
60 addScope(new Scope("MockScope8", "MS8", false, this));
60 addScope(new Scope("MockScope8", "MS8", false, this));
61 addScope(new Scope("MockScope9", "MS9", false, this));
61 addScope(new Scope("MockScope9", "MS9", false, this));
62+ addScope(new Scope("NullPreviewScope", "NPS", false, this, 1, true));
62 m_scopesOverview = new ScopesOverview(this);
63 m_scopesOverview = new ScopesOverview(this);
63
64
64 if (!m_loaded) {
65 if (!m_loaded) {
tests/plugins/Dash/cardcreator/1.res+2−2
@@ -40,8 +40,8 @@ Item {
40 width = root.fixedArtShapeSize.width;
40 width = root.fixedArtShapeSize.width;
41 height = root.fixedArtShapeSize.height;
41 height = root.fixedArtShapeSize.height;
42 } else {
42 } else {
43− width = Qt.binding(function() { return !visible ? 0 : image.width });
43+ width = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.width });
44− height = Qt.binding(function() { return !visible ? 0 : image.height });
44+ height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height });
45 }
45 }
46 }
46 }
47 image: Image {
47 image: Image {
tests/plugins/Dash/cardcreator/3.res+3−3
@@ -40,9 +40,9 @@ Item {
40 width = root.fixedArtShapeSize.width;
40 width = root.fixedArtShapeSize.width;
41 height = root.fixedArtShapeSize.height;
41 height = root.fixedArtShapeSize.height;
42 } else {
42 } else {
43− width = Qt.binding(function() { return !visible ? 0 : image.width });
43+ width = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.width });
44− height = Qt.binding(function() { return !visible ? 0 : image.height });
44+ height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height });
45− }
45+ }
46 }
46 }
47 image: Image {
47 image: Image {
48 objectName: "artImage";
48 objectName: "artImage";
tests/plugins/Dash/cardcreator/5.res+3−3
@@ -40,9 +40,9 @@ Item {
40 width = root.fixedArtShapeSize.width;
40 width = root.fixedArtShapeSize.width;
41 height = root.fixedArtShapeSize.height;
41 height = root.fixedArtShapeSize.height;
42 } else {
42 } else {
43− width = Qt.binding(function() { return !visible ? 0 : image.width });
43+ width = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.width });
44− height = Qt.binding(function() { return !visible ? 0 : image.height });
44+ height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height });
45− }
45+ }
46 }
46 }
47 image: Image {
47 image: Image {
48 objectName: "artImage";
48 objectName: "artImage";
tests/plugins/Unity/Launcher/CMakeLists.txt+9−24
@@ -1,12 +1,11 @@
1pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
1pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
2−pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=3)
2+pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=4)
3pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=3)
3pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=3)
4
4
5include_directories(
5include_directories(
6 ${CMAKE_CURRENT_BINARY_DIR}
6 ${CMAKE_CURRENT_BINARY_DIR}
7 ${CMAKE_SOURCE_DIR}/plugins/AccountsService
7 ${CMAKE_SOURCE_DIR}/plugins/AccountsService
8 ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher
8 ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher
9− ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/backend
10 ${GSETTINGS_QT_INCLUDE_DIRS}
9 ${GSETTINGS_QT_INCLUDE_DIRS}
11 )
10 )
12
11
@@ -14,35 +13,21 @@ add_definitions(-DSM_BUSNAME=sessionBus)
14add_definitions(-DSRCDIR="${CMAKE_CURRENT_SOURCE_DIR}")
13add_definitions(-DSRCDIR="${CMAKE_CURRENT_SOURCE_DIR}")
15add_definitions(-DLAUNCHER_TESTING)
14add_definitions(-DLAUNCHER_TESTING)
16
15
17−### LauncherBackendTest
18−set(testBackendCommand dbus-test-runner --task ${CMAKE_CURRENT_BINARY_DIR}/launcherbackendtestExec
19− --parameter -o --parameter ${CMAKE_BINARY_DIR}/launcherbackendtest.xml,xunitxml
20− --parameter -o --parameter -,txt)
21−add_test(NAME launcherbackendtest COMMAND ${testBackendCommand})
22−add_custom_target(launcherbackendtest ${testBackendCommand})
23−add_executable(launcherbackendtestExec
24− launcherbackendtest.cpp
25− ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
26− ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/backend/launcherbackend.cpp
27− ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/common/quicklistentry.cpp
28− )
29−target_link_libraries(launcherbackendtestExec ${GSETTINGS_QT_LDFLAGS})
30−qt5_use_modules(launcherbackendtestExec Test Core DBus)
31−
32### LauncherModelTest
16### LauncherModelTest
33−set(testModelCommand ${CMAKE_CURRENT_BINARY_DIR}/launchermodeltestExec
17+set(testModelCommand dbus-test-runner --task ${CMAKE_CURRENT_BINARY_DIR}/launchermodeltestExec
34− -o ${CMAKE_BINARY_DIR}/launchermodeltest.xml,xunitxml
18+ --parameter -o --parameter ${CMAKE_BINARY_DIR}/launchermodeltest.xml,xunitxml
35− -o -,txt)
19+ --parameter -o --parameter -,txt)
36add_test(NAME launchermodeltest COMMAND ${testModelCommand})
20add_test(NAME launchermodeltest COMMAND ${testModelCommand})
37add_custom_target(launchermodeltest ${testModelCommand})
21add_custom_target(launchermodeltest ${testModelCommand})
38add_executable(launchermodeltestExec
22add_executable(launchermodeltestExec
39 launchermodeltest.cpp
23 launchermodeltest.cpp
24+ gsettings.cpp
40 ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/launchermodel.cpp
25 ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/launchermodel.cpp
41 ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/launcheritem.cpp
26 ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/launcheritem.cpp
42 ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/quicklistmodel.cpp
27 ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/quicklistmodel.cpp
43− ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
28+ ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/dbusinterface.cpp
44− ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/backend/launcherbackend.cpp
29+ ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/desktopfilehandler.cpp
45− ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/common/quicklistentry.cpp
30+ ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/quicklistentry.cpp
46 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h
31 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h
47 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h
32 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h
48 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h
33 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h
@@ -50,7 +35,7 @@ add_executable(launchermodeltestExec
50 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
35 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
51 )
36 )
52target_link_libraries(launchermodeltestExec ${GSETTINGS_QT_LDFLAGS})
37target_link_libraries(launchermodeltestExec ${GSETTINGS_QT_LDFLAGS})
53−qt5_use_modules(launchermodeltestExec Test Core DBus Gui)
38+qt5_use_modules(launchermodeltestExec Test Core DBus Xml Gui)
54
39
55# copy .desktop files into build directory for shadow builds
40# copy .desktop files into build directory for shadow builds
56file(GLOB DESKTOP_FILES *.desktop)
41file(GLOB DESKTOP_FILES *.desktop)
tests/plugins/Unity/Launcher/gsettings.cppnew file+40
@@ -0,0 +1,40 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Michael Zanetti <michael.zanetti@canonical.com>
18+ */
19+
20+#include "gsettings.h"
21+
22+#include <QDebug>
23+
24+// This is a mock implementation to not touch GSettings for real during tests
25+
26+GSettings::GSettings(QObject *parent):
27+ QObject(parent)
28+{
29+
30+}
31+
32+QStringList GSettings::storedApplications() const
33+{
34+ return QStringList();
35+}
36+
37+void GSettings::setStoredApplications(const QStringList &storedApplications)
38+{
39+ Q_UNUSED(storedApplications)
40+}
tests/plugins/Unity/Launcher/gsettings.hnew file+38
@@ -0,0 +1,38 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Michael Zanetti <michael.zanetti@canonical.com>
18+ */
19+
20+#ifndef GSETTINGS_H
21+#define GSETTINGS_H
22+
23+#include <QObject>
24+#include <QStringList>
25+
26+// This is a mock implementation to not touch GSettings for real during tests
27+
28+class GSettings: public QObject
29+{
30+ Q_OBJECT
31+public:
32+ GSettings(QObject *parent = nullptr);
33+
34+ QStringList storedApplications() const;
35+ void setStoredApplications(const QStringList &storedApplications);
36+};
37+
38+#endif
tests/plugins/Unity/Launcher/launcherbackendtest.cppdeleted−239
@@ -1,239 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Michael Terry <michael.terry@canonical.com>
18− */
19−
20−#include "launcherbackend.h"
21−
22−#include <QtTest>
23−#include <QDBusConnection>
24−#include <QDBusMessage>
25−#include <QDBusVariant>
26−
27−
28−class LauncherBackendTest : public QObject
29−{
30− Q_OBJECT
31−
32−private Q_SLOTS:
33−
34− void initTestCase()
35− {
36− // As we want to test absolute file paths in the .desktop file, we need to modify the
37− // sample file and replace the path in there with the current build dir.
38− QSettings settings(QDir::currentPath() + "/click-icon.desktop", QSettings::IniFormat);
39− settings.setValue("Desktop Entry/Path", QDir::currentPath());
40− }
41−
42− void testFileNames()
43− {
44− LauncherBackend backend;
45−
46− backend.setStoredApplications(QStringList() << "rel-icon" << "abs-icon" << "invalid");
47− QCOMPARE(backend.storedApplications(), QStringList() << "rel-icon" << "abs-icon");
48− }
49−
50− void testIcon_data() {
51− QTest::addColumn<QString>("appId");
52− QTest::addColumn<QString>("expectedIcon");
53−
54− // Needs to expand a relative icon to the absolute path
55− QTest::newRow("relative icon path") << "rel-icon" << QDir::currentPath() + "/rel-icon.svg";
56−
57− // In case an icon is not found on disk, it needs to fallback on image://theme/ for it
58− QTest::newRow("fallback on theme") << "abs-icon" << "image://theme//path/to/icon.png";
59−
60− // Click packages have a relative icon path but an absolute path as a separate entry
61− QTest::newRow("click package icon") << "click-icon" << QDir::currentPath() + "/click-icon.svg";
62− }
63−
64− void testIcon() {
65− QFETCH(QString, appId);
66− QFETCH(QString, expectedIcon);
67−
68− LauncherBackend backend;
69− backend.setStoredApplications(QStringList() << appId);
70−
71− QCOMPARE(backend.icon(appId), expectedIcon);
72− }
73−
74− void testGetItem_data() {
75− QTest::addColumn<QString>("appId");
76− QTest::addColumn<bool>("exists");
77−
78− QTest::newRow("Exists") << "rel-icon" << true;
79− QTest::newRow("Doesn't Exist") << "does-not-exist" << false;
80− }
81−
82− void testGetItem() {
83− QFETCH(QString, appId);
84− QFETCH(bool, exists);
85−
86− LauncherBackend backend;
87− auto item = backend.getItem(appId);
88−
89− if (exists) {
90− QVERIFY(item != nullptr);
91− } else {
92− QVERIFY(item == nullptr);
93− }
94− }
95−
96− void testCount_data() {
97− QTest::addColumn<QString>("appId");
98− QTest::addColumn<bool>("setCount");
99− QTest::addColumn<int>("inCount");
100− QTest::addColumn<bool>("countVisible");
101− QTest::addColumn<int>("expectedCount");
102−
103− /* Get baseline data on things working */
104− QTest::newRow("Baseline") << "rel-icon" << false << 0 << false << -1;
105−
106− /* Valid count, but not visible */
107− QTest::newRow("Not visible") << "rel-icon" << true << 42 << false << -1;
108−
109− /* Turn it on */
110− QTest::newRow("Visible Count") << "rel-icon" << true << 42 << true << 42;
111−
112− /* Invalide app to load */
113− QTest::newRow("Invalid App ID") << "this-app-doesnt-exist" << true << 42 << true << -1;
114− }
115−
116− void testCount() {
117− QFETCH(QString, appId);
118− QFETCH(bool, setCount);
119− QFETCH(int, inCount);
120− QFETCH(bool, countVisible);
121− QFETCH(int, expectedCount);
122−
123− LauncherBackend backend;
124−
125− if (setCount)
126− backend.setCount(appId, inCount);
127− backend.setCountVisible(appId, countVisible);
128−
129− QCOMPARE(backend.count(appId), expectedCount);
130− }
131−
132− void testDbusName_data() {
133− QTest::addColumn<QString>("decoded");
134− QTest::addColumn<QString>("encoded");
135−
136− /* Passthrough test */
137− QTest::newRow("Passthrough") << "fine" << "fine";
138−
139− /* Number as first characeter */
140− QTest::newRow("Number first") << "31337" << "_331337";
141−
142− /* Underscore test */
143− QTest::newRow("Underscore test") << "this_is_c_style_namespacing" << "this_5Fis_5Fc_5Fstyle_5Fnamespacing";
144−
145− /* Hyphen test */
146− QTest::newRow("Hyphen test") << "typical-application" << "typical_2Dapplication";
147−
148− /* Japanese test */
149− QTest::newRow("日本語 test") << "日本語" << "_E6_97_A5_E6_9C_AC_E8_AA_9E";
150− }
151−
152− void testDbusName() {
153− QFETCH(QString, decoded);
154− QFETCH(QString, encoded);
155−
156− QString encodeOut = LauncherBackend::encodeAppId(decoded);
157− QCOMPARE(encoded, encodeOut);
158−
159− QString decodeOut = LauncherBackend::decodeAppId(encoded);
160− QCOMPARE(decoded, decodeOut);
161− }
162−
163− void testDbusIface_data() {
164− QTest::addColumn<QString>("appId");
165− QTest::addColumn<bool>("setCount");
166− QTest::addColumn<int>("inCount");
167− QTest::addColumn<bool>("countVisible");
168− QTest::addColumn<int>("expectedCount");
169−
170− /* Get baseline data on things working */
171− QTest::newRow("Baseline") << "rel-icon" << false << 0 << false << -1;
172−
173− /* Turn it on */
174− QTest::newRow("Visible Count") << "rel-icon" << true << 42 << true << 42;
175−
176− /* Invalide app to load */
177− QTest::newRow("Invalid App ID") << "this-app-doesnt-exist" << true << 42 << true << -1;
178− }
179−
180− void testDbusIface() {
181− QFETCH(QString, appId);
182− QFETCH(bool, setCount);
183− QFETCH(int, inCount);
184− QFETCH(bool, countVisible);
185− QFETCH(int, expectedCount);
186−
187− QDBusConnection con = QDBusConnection::sessionBus();
188− QDBusMessage message;
189− QDBusMessage reply;
190−
191− LauncherBackend backend;
192−
193− if (setCount) {
194− message = QDBusMessage::createMethodCall("com.canonical.Unity.Launcher",
195− "/com/canonical/Unity/Launcher/" + LauncherBackend::encodeAppId(appId),
196− "org.freedesktop.DBus.Properties",
197− "Set");
198− QVariantList cargs;
199− cargs.append(QString("com.canonical.Unity.Launcher.Item"));
200− cargs.append(QString("count"));
201− cargs.append(QVariant::fromValue(QDBusVariant(inCount)));
202−
203− message.setArguments(cargs);
204− reply = con.call(message);
205− QCOMPARE(reply.type(), QDBusMessage::ReplyMessage);
206− }
207−
208− /* Set countVisible */
209− message = QDBusMessage::createMethodCall("com.canonical.Unity.Launcher",
210− "/com/canonical/Unity/Launcher/" + LauncherBackend::encodeAppId(appId),
211− "org.freedesktop.DBus.Properties",
212− "Set");
213− QVariantList cvargs;
214− cvargs.append(QString("com.canonical.Unity.Launcher.Item"));
215− cvargs.append(QString("countVisible"));
216− cvargs.append(QVariant::fromValue(QDBusVariant(countVisible)));
217−
218− message.setArguments(cvargs);
219− reply = con.call(message);
220− QCOMPARE(reply.type(), QDBusMessage::ReplyMessage);
221−
222− /* Get value */
223− message = QDBusMessage::createMethodCall("com.canonical.Unity.Launcher",
224− "/com/canonical/Unity/Launcher/" + LauncherBackend::encodeAppId(appId),
225− "org.freedesktop.DBus.Properties",
226− "Get");
227− QVariantList getargs;
228− getargs.append(QString("com.canonical.Unity.Launcher.Item"));
229− getargs.append(QString("count"));
230−
231− message.setArguments(getargs);
232− reply = con.call(message);
233− QCOMPARE(reply.type(), QDBusMessage::ReplyMessage);
234− QCOMPARE(reply.arguments()[0].value<QDBusVariant>().variant().toInt(), expectedCount);
235− }
236−};
237−
238−QTEST_GUILESS_MAIN(LauncherBackendTest)
239−#include "launcherbackendtest.moc"
tests/plugins/Unity/Launcher/launchermodeltest.cpp+81−1
@@ -23,8 +23,12 @@
23
23
24#include "launcheritem.h"
24#include "launcheritem.h"
25#include "launchermodel.h"
25#include "launchermodel.h"
26+#include "dbusinterface.h"
26
27
27#include <QtTest>
28#include <QtTest>
29+#include <QDBusInterface>
30+#include <QDBusReply>
31+#include <QDomDocument>
28
32
29// This is a mock, specifically to test the LauncherModel
33// This is a mock, specifically to test the LauncherModel
30class MockApp: public unity::shell::application::ApplicationInfoInterface
34class MockApp: public unity::shell::application::ApplicationInfoInterface
@@ -287,10 +291,86 @@ private Q_SLOTS:
287 QCOMPARE(launcherModel->getUrlForAppId(QString()), QString());
291 QCOMPARE(launcherModel->getUrlForAppId(QString()), QString());
288 QCOMPARE(launcherModel->getUrlForAppId(""), QString());
292 QCOMPARE(launcherModel->getUrlForAppId(""), QString());
289 QCOMPARE(launcherModel->getUrlForAppId("no-name"), QString("application:///no-name.desktop"));
293 QCOMPARE(launcherModel->getUrlForAppId("no-name"), QString("application:///no-name.desktop"));
290− QCOMPARE(launcherModel->getUrlForAppId("com.test.good"), QString("appid://com.test.good/first-listed-app/current-user-version"));
294+ QCOMPARE(launcherModel->getUrlForAppId("com.test.good"), QString("application:///com.test.good.desktop"));
291 QCOMPARE(launcherModel->getUrlForAppId("com.test.good_application"), QString("appid://com.test.good/application/current-user-version"));
295 QCOMPARE(launcherModel->getUrlForAppId("com.test.good_application"), QString("appid://com.test.good/application/current-user-version"));
292 QCOMPARE(launcherModel->getUrlForAppId("com.test.good_application_1.2.3"), QString("appid://com.test.good/application/current-user-version"));
296 QCOMPARE(launcherModel->getUrlForAppId("com.test.good_application_1.2.3"), QString("appid://com.test.good/application/current-user-version"));
293 }
297 }
298+
299+ void testIntrospection() {
300+ QDBusInterface interface("com.canonical.Unity.Launcher", "/com/canonical/Unity/Launcher", "org.freedesktop.DBus.Introspectable");
301+ QDBusReply<QString> reply = interface.call("Introspect");
302+ QStringList nodes = extractNodes(reply.value());
303+ QCOMPARE(nodes.count(), launcherModel->rowCount());
304+
305+ appManager->addApplication(new MockApp("foobar"));
306+ reply = interface.call("Introspect");
307+ nodes = extractNodes(reply.value());
308+ QCOMPARE(nodes.contains("foobar"), true);
309+
310+ appManager->removeApplication(2);
311+ reply = interface.call("Introspect");
312+ nodes = extractNodes(reply.value());
313+ QCOMPARE(nodes.contains("foobar"), false);
314+ }
315+
316+ QStringList extractNodes(const QString &introspectionXml) {
317+ QXmlStreamReader introspectReply(introspectionXml);
318+
319+ QStringList ret;
320+ while (!introspectReply.atEnd() && !introspectReply.hasError()) {
321+ QXmlStreamReader::TokenType token = introspectReply.readNext();
322+
323+ if (token == QXmlStreamReader::StartElement) {
324+ if (introspectReply.name() == "node" && introspectReply.attributes().count() > 0) {
325+ ret << introspectReply.attributes().value("name").toString();
326+ }
327+ }
328+ }
329+ return ret;
330+ }
331+
332+ void testCountEmblems() {
333+ // Call GetAll on abs-icon
334+ QDBusInterface interface("com.canonical.Unity.Launcher", "/com/canonical/Unity/Launcher/abs_2Dicon", "org.freedesktop.DBus.Properties");
335+ QDBusReply<QVariantMap> reply = interface.call("GetAll");
336+ QVariantMap map = reply.value();
337+
338+ // Make sure GetAll returns a map with count and countVisible props
339+ QCOMPARE(map.contains("count"), true);
340+ QCOMPARE(map.contains("countVisible"), true);
341+
342+ // Make sure count is intitilized to 0 and non-visible
343+ QCOMPARE(map.value("count").toInt(), 0);
344+ QCOMPARE(map.value("countVisible").toBool(), false);
345+
346+ // Now make it visible and set it to 55 through D-Bus
347+ interface.call("Set", "com.canonical.Unity.Launcher.Item", "count", 55);
348+ interface.call("Set", "com.canonical.Unity.Launcher.Item", "countVisible", true);
349+
350+ // Fetch it again using GetAll
351+ reply = interface.call("GetAll");
352+ map = reply.value();
353+
354+ // Make sure values have changed on the D-Bus interface
355+ QCOMPARE(map.value("count").toInt(), 55);
356+ QCOMPARE(map.value("countVisible").toBool(), true);
357+
358+ // Now the item on the upper side of the API
359+ int index = launcherModel->findApplication("abs-icon");
360+ QCOMPARE(index >= 0, true);
361+
362+ // And make sure values have changed there as well
363+ QCOMPARE(launcherModel->get(index)->countVisible(), true);
364+ QCOMPARE(launcherModel->get(index)->count(), 55);
365+ }
366+
367+ void testRefresh() {
368+ QDBusInterface interface("com.canonical.Unity.Launcher", "/com/canonical/Unity/Launcher", "com.canonical.Unity.Launcher");
369+ QDBusReply<void> reply = interface.call("Refresh");
370+
371+ // Make sure the call to Refresh returned without error.
372+ QCOMPARE(reply.isValid(), true);
373+ }
294};
374};
295
375
296QTEST_GUILESS_MAIN(LauncherModelTest)
376QTEST_GUILESS_MAIN(LauncherModelTest)
tests/plugins/Utils/CMakeLists.txt−1
@@ -11,7 +11,6 @@ macro(run_tests)
11 -o ${CMAKE_BINARY_DIR}/${_test}.xml,xunitxml
11 -o ${CMAKE_BINARY_DIR}/${_test}.xml,xunitxml
12 -o -,txt)
12 -o -,txt)
13 add_test(NAME ${_test} COMMAND ${testCommand})
13 add_test(NAME ${_test} COMMAND ${testCommand})
14− set_tests_properties(${_test} PROPERTIES ENVIRONMENT "LC_ALL=C")
15 add_custom_target(${_test} env "LC_ALL=C" ${testCommand})
14 add_custom_target(${_test} env "LC_ALL=C" ${testCommand})
16 add_executable(${_test}Exec ${_test}.cpp modeltest.cpp)
15 add_executable(${_test}Exec ${_test}.cpp modeltest.cpp)
17 qt5_use_modules(${_test}Exec Test Core Qml)
16 qt5_use_modules(${_test}Exec Test Core Qml)
tests/qmltests/Dash/Previews/tst_PreviewPayments.qml+39
@@ -33,6 +33,10 @@ Rectangle {
33 "source": { "price" : 0.99, "currency": "USD", "store_item_id": "com.example.invalid" }
33 "source": { "price" : 0.99, "currency": "USD", "store_item_id": "com.example.invalid" }
34 }
34 }
35
35
36+ property var jsonPurchaseCancel: {
37+ "source": { "price" : 0.99, "currency": "USD", "store_item_id": "com.example.cancel" }
38+ }
39+
36 SignalSpy {
40 SignalSpy {
37 id: spy
41 id: spy
38 target: previewPayments
42 target: previewPayments
@@ -160,5 +164,40 @@ Rectangle {
160 compare(args[1], "purchaseError");
164 compare(args[1], "purchaseError");
161 compare(args[2], jsonPurchaseError["source"]);
165 compare(args[2], jsonPurchaseError["source"]);
162 }
166 }
167+
168+ function test_purchase_cancelled() {
169+ // The mock Payments triggers cancellation when com.example.cancel
170+ // is passed to it as store_item_id. Exercise it here
171+ previewPayments.widgetData = jsonPurchaseCancel;
172+
173+ var button = findChild(previewPayments, "paymentButton");
174+ var progress = findChild(previewPayments, "loadingBar");
175+ verify(button, "Button not found.");
176+ verify(progress, "Progress not found.");
177+
178+ mouseClick(button, button.width / 2, button.height / 2);
179+
180+ tryCompare(progress, "visible", true);
181+ tryCompare(progress, "opacity", 1);
182+ tryCompare(button, "visible", false);
183+ tryCompare(button, "opacity", 0);
184+
185+ paymentClient.process();
186+
187+ // Signal is not used at the moment, to avoid preview refresh.
188+ /*
189+ *spy.wait();
190+ *
191+ * var args = spy.signalArguments[0];
192+ * compare(args[0], "previewPayments");
193+ * compare(args[1], "purchaseCancelled");
194+ * compare(args[2], jsonPurchaseCancel["source"]);
195+ */
196+
197+ tryCompare(progress, "visible", false);
198+ tryCompare(progress, "opacity", 0);
199+ tryCompare(button, "visible", true);
200+ tryCompare(button, "opacity", 1);
201+ }
163 }
202 }
164}
203}
tests/qmltests/Dash/tst_Card.qml+3−3
@@ -29,9 +29,9 @@ Rectangle {
29
29
30 property string cardData: '
30 property string cardData: '
31 {
31 {
32− "art": "../../../tests/qmltests/Dash/artwork/music-player-design.png",
32+ "art": "'+Qt.resolvedUrl("artwork/music-player-design.png").toString()+'",
33− "mascot": "../../../tests/qmltests/Dash/artwork/avatar.png",
33+ "mascot": "'+Qt.resolvedUrl("artwork/avatar.png").toString()+'",
34− "emblem": "../../../tests/qmltests/Dash/artwork/emblem.png",
34+ "emblem": "'+Qt.resolvedUrl("artwork/emblem.png").toString()+'",
35 "title": "foo",
35 "title": "foo",
36 "subtitle": "bar",
36 "subtitle": "bar",
37 "summary": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
37 "summary": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
tests/qmltests/Dash/tst_GenericScopeView.qml+129−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright 2014 Canonical Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -43,6 +43,10 @@ Item {
43 onLoadedChanged: if (loaded) genericScopeView.scope = scopes.getScope(2);
43 onLoadedChanged: if (loaded) genericScopeView.scope = scopes.getScope(2);
44 }
44 }
45
45
46+ MockScope {
47+ id: mockScope
48+ }
49+
46 SignalSpy {
50 SignalSpy {
47 id: spy
51 id: spy
48 }
52 }
@@ -92,6 +96,17 @@ Item {
92 return findChild(genericScopeView, category);
96 return findChild(genericScopeView, category);
93 }
97 }
94
98
99+ function scrollToEnd()
100+ {
101+ var categoryListView = findChild(genericScopeView, "categoryListView");
102+ waitForRendering(categoryListView);
103+ while (!categoryListView.atYEnd) {
104+ mouseFlick(genericScopeView, genericScopeView.width/2, genericScopeView.height - units.gu(8),
105+ genericScopeView.width/2, genericScopeView.y)
106+ tryCompare(categoryListView, "moving", false);
107+ }
108+ }
109+
95 function test_isActive() {
110 function test_isActive() {
96 tryCompare(genericScopeView.scope, "isActive", false)
111 tryCompare(genericScopeView.scope, "isActive", false)
97 genericScopeView.isCurrent = true
112 genericScopeView.isCurrent = true
@@ -280,6 +295,7 @@ Item {
280 mouseClick(tile, tile.width / 2, tile.height / 2);
295 mouseClick(tile, tile.width / 2, tile.height / 2);
281 tryCompare(testCase.subPageLoader, "open", true);
296 tryCompare(testCase.subPageLoader, "open", true);
282 tryCompare(testCase.subPageLoader, "x", 0);
297 tryCompare(testCase.subPageLoader, "x", 0);
298+ tryCompare(findChild(genericScopeView, "categoryListView"), "visible", false);
283 }
299 }
284
300
285 function closePreview() {
301 function closePreview() {
@@ -288,6 +304,9 @@ Item {
288
304
289 tryCompare(testCase.subPageLoader, "open", false);
305 tryCompare(testCase.subPageLoader, "open", false);
290 tryCompare(testCase.subPageLoader, "visible", false);
306 tryCompare(testCase.subPageLoader, "visible", false);
307+ var categoryListView = findChild(genericScopeView, "categoryListView");
308+ tryCompare(categoryListView, "visible", true);
309+ tryCompare(categoryListView, "x", 0);
291 }
310 }
292
311
293 function test_previewOpenClose() {
312 function test_previewOpenClose() {
@@ -301,6 +320,34 @@ Item {
301 closePreview();
320 closePreview();
302 }
321 }
303
322
323+ function test_tryOpenNullPreview() {
324+ genericScopeView.scope = scopes.getScope("NullPreviewScope");
325+
326+ tryCompareFunction(function() {
327+ var cardGrid = findChild(genericScopeView, 0);
328+ if (cardGrid != null) {
329+ var tile = findChild(cardGrid, 0);
330+ return tile != null;
331+ }
332+ return false;
333+ },
334+ true);
335+ var tile = findChild(findChild(genericScopeView, 0), 0);
336+
337+ tryCompare(testCase.subPageLoader, "open", false);
338+ tryCompare(testCase.subPageLoader, "visible", false);
339+
340+ mouseClick(tile, tile.width / 2, tile.height / 2);
341+
342+ tryCompare(testCase.subPageLoader, "open", false);
343+ tryCompare(testCase.subPageLoader, "visible", false);
344+
345+ mousePress(tile, tile.width / 2, tile.height / 2);
346+ tryCompare(testCase.subPageLoader, "open", false);
347+ tryCompare(testCase.subPageLoader, "visible", false);
348+ mouseRelease(tile, tile.width / 2, tile.height / 2);
349+ }
350+
304 function test_showPreviewCarousel() {
351 function test_showPreviewCarousel() {
305 var category = scrollToCategory("dashCategory1");
352 var category = scrollToCategory("dashCategory1");
306
353
@@ -426,6 +473,87 @@ Item {
426 compare(image.source, data.logo, "Title image has the wrong source");
473 compare(image.source, data.logo, "Title image has the wrong source");
427 }
474 }
428
475
476+ function test_seeAllTwoCategoriesScenario1() {
477+ mockScope.setId("mockScope");
478+ mockScope.setName("Mock Scope");
479+ mockScope.categories.setCount(2);
480+ mockScope.categories.resultModel(0).setResultCount(50);
481+ mockScope.categories.resultModel(1).setResultCount(15);
482+ mockScope.categories.setLayout(0, "grid");
483+ mockScope.categories.setLayout(1, "grid");
484+ mockScope.categories.setHeaderLink(0, "");
485+ mockScope.categories.setHeaderLink(1, "");
486+ genericScopeView.scope = mockScope;
487+ waitForRendering(genericScopeView.categoryView);
488+
489+ var category0 = findChild(genericScopeView, "dashCategory0")
490+ var seeAll0 = findChild(category0, "seeAll")
491+
492+ waitForRendering(seeAll0);
493+ verify(category0.expandable);
494+ verify(!category0.expanded);
495+
496+ mouseClick(seeAll0, seeAll0.width / 2, seeAll0.height / 2);
497+ verify(category0.expanded);
498+ tryCompare(category0, "height", category0.item.expandedHeight + seeAll0.height);
499+ tryCompare(genericScopeView.categoryView, "contentY", units.gu(13.5));
500+
501+ scrollToEnd();
502+
503+ tryCompareFunction(function() { return findChild(genericScopeView, "dashCategory1") !== null; }, true);
504+ var category1 = findChild(genericScopeView, "dashCategory1")
505+ var seeAll1 = findChild(category1, "seeAll")
506+ verify(category1.expandable);
507+ verify(!category1.expanded);
508+
509+ mouseClick(seeAll1, seeAll1.width / 2, seeAll1.height / 2);
510+ verify(!category0.expanded);
511+ verify(category1.expanded);
512+ tryCompare(category1, "height", category1.item.expandedHeight + seeAll1.height);
513+ tryCompareFunction(function() {
514+ return genericScopeView.categoryView.contentY + category1.y + category1.height
515+ == genericScopeView.categoryView.contentHeight;}
516+ , true);
517+ }
518+
519+ function test_seeAllTwoCategoriesScenario2() {
520+ mockScope.setId("mockScope");
521+ mockScope.setName("Mock Scope");
522+ mockScope.categories.setCount(2);
523+ mockScope.categories.resultModel(0).setResultCount(15);
524+ mockScope.categories.resultModel(1).setResultCount(50);
525+ mockScope.categories.setLayout(0, "grid");
526+ mockScope.categories.setLayout(1, "grid");
527+ mockScope.categories.setHeaderLink(0, "");
528+ mockScope.categories.setHeaderLink(1, "");
529+ genericScopeView.scope = mockScope;
530+ waitForRendering(genericScopeView.categoryView);
531+
532+ var category0 = findChild(genericScopeView, "dashCategory0")
533+ var seeAll0 = findChild(category0, "seeAll")
534+
535+ waitForRendering(seeAll0);
536+ verify(category0.expandable);
537+ verify(!category0.expanded);
538+
539+ mouseClick(seeAll0, seeAll0.width / 2, seeAll0.height / 2);
540+ verify(category0.expanded);
541+ tryCompare(category0, "height", category0.item.expandedHeight + seeAll0.height);
542+
543+ scrollToEnd();
544+
545+ var category1 = findChild(genericScopeView, "dashCategory1")
546+ var seeAll1 = findChild(category1, "seeAll")
547+ verify(category1.expandable);
548+ verify(!category1.expanded);
549+
550+ mouseClick(seeAll1, seeAll1.width / 2, seeAll1.height / 2);
551+ verify(!category0.expanded);
552+ verify(category1.expanded);
553+ tryCompare(category1, "height", category1.item.expandedHeight + seeAll1.height);
554+ tryCompare(category1, "y", units.gu(5));
555+ }
556+
429 function test_favorite_data() {
557 function test_favorite_data() {
430 return [
558 return [
431 { tag: "People", id: "MockScope1", favorite: true },
559 { tag: "People", id: "MockScope1", favorite: true },
tests/qmltests/Launcher/tst_Launcher.qml+3−1
@@ -194,7 +194,9 @@ Item {
194 var launcherListView = findChild(launcher, "launcherListView");
194 var launcherListView = findChild(launcher, "launcherListView");
195 for (var i = 0; i < launcherListView.count; ++i) {
195 for (var i = 0; i < launcherListView.count; ++i) {
196 var delegate = findChild(launcherListView, "launcherDelegate" + i)
196 var delegate = findChild(launcherListView, "launcherDelegate" + i)
197− compare(findChild(delegate, "countEmblem").visible, LauncherModel.get(i).count > 0)
197+ compare(findChild(delegate, "countEmblem").visible, LauncherModel.get(i).countVisible)
198+ // Intentionally allow type coercion (string/number)
199+ compare(findChild(delegate, "countLabel").text == LauncherModel.get(i).count, true)
198 }
200 }
199 }
201 }
200
202
tests/qmltests/Notifications/tst_Notifications.qml+1−1
@@ -537,7 +537,7 @@ Row {
537 compare(buttonRow.visible, data.buttonRowVisible, "button visibility is incorrect")
537 compare(buttonRow.visible, data.buttonRowVisible, "button visibility is incorrect")
538
538
539 var audioItem = findInvisibleChild(notification, "sound")
539 var audioItem = findInvisibleChild(notification, "sound")
540− tryCompare(audioItem, "playbackState", data.hasSound ? Audio.PlayingState : Audio.StoppedState)
540+ compare(audioItem.playbackState, data.hasSound ? Audio.PlayingState : Audio.StoppedState, "Audio has wrong state")
541
541
542 if(data.buttonRowVisible) {
542 if(data.buttonRowVisible) {
543 var buttonCancel = findChild(buttonRow, "notify_button1")
543 var buttonCancel = findChild(buttonRow, "notify_button1")
tests/qmltests/Stages/RecursingChildSessionControl.qml+1−1
@@ -93,7 +93,7 @@ ColumnLayout {
93 onCheckedChanged: {
93 onCheckedChanged: {
94 if (checked) {
94 if (checked) {
95 root.session.createSurface();
95 root.session.createSurface();
96− } else if (root.session.surface) {
96+ } else if (root.session && root.session.surface) {
97 ApplicationTest.removeSurface(root.session.surface);
97 ApplicationTest.removeSurface(root.session.surface);
98 }
98 }
99 }
99 }
tests/qmltests/Stages/tst_ApplicationWindow.qml+30−12
@@ -50,22 +50,18 @@ Rectangle {
50 ApplicationWindow {
50 ApplicationWindow {
51 anchors.fill: parent
51 anchors.fill: parent
52 application: fakeApplication
52 application: fakeApplication
53+ orientation: Qt.PortraitOrientation
53 }
54 }
54 }
55 }
55− FocusScope {
56+ Loader {
56− id: appFocus
57+ id: applicationWindowLoader
57 anchors {
58 anchors {
58 top: parent.top
59 top: parent.top
59 bottom: parent.bottom
60 bottom: parent.bottom
60 left: parent.left
61 left: parent.left
61 }
62 }
62 width: units.gu(40)
63 width: units.gu(40)
63−
64− Loader {
65− id: applicationWindowLoader
66− anchors.fill: parent
67− sourceComponent: applicationWindowComponent
64+ sourceComponent: applicationWindowComponent
68− }
69 }
65 }
70
66
71 Rectangle {
67 Rectangle {
@@ -73,7 +69,7 @@ Rectangle {
73 anchors {
69 anchors {
74 top: parent.top
70 top: parent.top
75 bottom: parent.bottom
71 bottom: parent.bottom
76− left: appFocus.right
72+ left: applicationWindowLoader.right
77 right: parent.right
73 right: parent.right
78 }
74 }
79
75
@@ -147,6 +143,24 @@ Rectangle {
147 }
143 }
148 }
144 }
149
145
146+ Button {
147+ anchors { left: parent.left; right: parent.right }
148+ text: "Rotate device \u27F3"
149+ onClicked: {
150+ var orientation = applicationWindowLoader.item.orientation
151+ if (orientation == Qt.PortraitOrientation) {
152+ orientation = Qt.LandscapeOrientation;
153+ } else if (orientation == Qt.LandscapeOrientation) {
154+ orientation = Qt.InvertedPortraitOrientation;
155+ } else if (orientation == Qt.InvertedPortraitOrientation) {
156+ orientation = Qt.InvertedLandscapeOrientation;
157+ } else {
158+ orientation = Qt.PortraitOrientation;
159+ }
160+ applicationWindowLoader.item.orientation = orientation;
161+ }
162+ }
163+
150 }
164 }
151 }
165 }
152
166
@@ -384,15 +398,19 @@ Rectangle {
384 verify(stateGroup.state === "void");
398 verify(stateGroup.state === "void");
385 }
399 }
386
400
387− // should be forcing active focus when interactive changes,
388− // which will cause a FocusScope higher in the object hierarchy tp be given the focus
389 function test_forceActiveFocusFollowsInterative() {
401 function test_forceActiveFocusFollowsInterative() {
390 fakeApplication.createSession();
402 fakeApplication.createSession();
391 applicationWindowLoader.item.interactive = false;
403 applicationWindowLoader.item.interactive = false;
392 applicationWindowLoader.item.interactive = true;
404 applicationWindowLoader.item.interactive = true;
393 fakeSession.createSurface();
405 fakeSession.createSurface();
394
406
395− compare(appFocus.focus, true);
407+ compare(fakeSession.surface.activeFocus, true);
408+
409+ applicationWindowLoader.item.interactive = false;
410+ compare(fakeSession.surface.activeFocus, false);
411+
412+ applicationWindowLoader.item.interactive = true;
413+ compare(fakeSession.surface.activeFocus, true);
396 }
414 }
397 }
415 }
398}
416}
tests/qmltests/Stages/tst_PhoneStage.qml+58
@@ -31,6 +31,8 @@ Item {
31 anchors { fill: parent; rightMargin: units.gu(30) }
31 anchors { fill: parent; rightMargin: units.gu(30) }
32 dragAreaWidth: units.gu(2)
32 dragAreaWidth: units.gu(2)
33 maximizedAppTopMargin: units.gu(3) + units.dp(2)
33 maximizedAppTopMargin: units.gu(3) + units.dp(2)
34+ interactive: true
35+ orientation: Qt.PortraitOrientation
34 }
36 }
35
37
36 Binding {
38 Binding {
@@ -67,6 +69,21 @@ Item {
67 ApplicationManager.get(appList.selectedAppIndex).setState(ApplicationInfoInterface.Stopped);
69 ApplicationManager.get(appList.selectedAppIndex).setState(ApplicationInfoInterface.Stopped);
68 }
70 }
69 }
71 }
72+ Button {
73+ anchors { left: parent.left; right: parent.right }
74+ text: "Rotate device \u27F3"
75+ onClicked: {
76+ if (phoneStage.orientation == Qt.PortraitOrientation) {
77+ phoneStage.orientation = Qt.LandscapeOrientation;
78+ } else if (phoneStage.orientation == Qt.LandscapeOrientation) {
79+ phoneStage.orientation = Qt.InvertedPortraitOrientation;
80+ } else if (phoneStage.orientation == Qt.InvertedPortraitOrientation) {
81+ phoneStage.orientation = Qt.InvertedLandscapeOrientation;
82+ } else {
83+ phoneStage.orientation = Qt.PortraitOrientation;
84+ }
85+ }
86+ }
70 }
87 }
71 ListView {
88 ListView {
72 id: appList
89 id: appList
@@ -256,6 +273,46 @@ Item {
256 compare(ApplicationManager.focusedApplicationId, selectedApp.appId);
273 compare(ApplicationManager.focusedApplicationId, selectedApp.appId);
257 }
274 }
258
275
276+ function test_orientation_change_sent_to_focused_app() {
277+ phoneStage.orientation = Qt.PortraitOrientation;
278+ addApps(1);
279+
280+ var spreadView = findChild(phoneStage, "spreadView");
281+ var app = findChild(spreadView, "appDelegate0");
282+ tryCompare(app, "orientation", Qt.PortraitOrientation);
283+
284+ phoneStage.orientation = Qt.LandscapeOrientation;
285+ tryCompare(app, "orientation", Qt.LandscapeOrientation);
286+ }
287+
288+ function test_orientation_change_not_sent_to_apps_while_spread_open() {
289+ phoneStage.orientation = Qt.PortraitOrientation;
290+ addApps(1);
291+
292+ var spreadView = findChild(phoneStage, "spreadView");
293+ var app = findChild(spreadView, "appDelegate0");
294+ tryCompare(app, "orientation", Qt.PortraitOrientation);
295+
296+ goToSpread();
297+ phoneStage.orientation = Qt.LandscapeOrientation;
298+ tryCompare(app, "orientation", Qt.PortraitOrientation);
299+ }
300+
301+ function test_orientation_change_not_sent_to_unfocused_app_until_it_focused() {
302+ phoneStage.orientation = Qt.PortraitOrientation;
303+ addApps(1);
304+
305+ var spreadView = findChild(phoneStage, "spreadView");
306+ var app = findChild(spreadView, "appDelegate0");
307+
308+ goToSpread();
309+ phoneStage.orientation = Qt.LandscapeOrientation;
310+ tryCompare(app, "orientation", Qt.PortraitOrientation);
311+
312+ phoneStage.select(app.application.appId);
313+ tryCompare(app, "orientation", Qt.LandscapeOrientation);
314+ }
315+
259 function cleanup() {
316 function cleanup() {
260 while (ApplicationManager.count > 1) {
317 while (ApplicationManager.count > 1) {
261 var oldCount = ApplicationManager.count;
318 var oldCount = ApplicationManager.count;
@@ -263,6 +320,7 @@ Item {
263 ApplicationManager.stopApplication(ApplicationManager.get(closingIndex).appId)
320 ApplicationManager.stopApplication(ApplicationManager.get(closingIndex).appId)
264 tryCompare(ApplicationManager, "count", oldCount - 1)
321 tryCompare(ApplicationManager, "count", oldCount - 1)
265 }
322 }
323+ phoneStage.orientation = Qt.PortraitOrientation;
266 }
324 }
267 }
325 }
268}
326}
tests/qmltests/Stages/tst_SessionContainer.qml+63
@@ -41,6 +41,7 @@ Rectangle {
41 SessionContainer {
41 SessionContainer {
42 id: sessionContainer
42 id: sessionContainer
43 anchors.fill: parent
43 anchors.fill: parent
44+ orientation: Qt.PortraitOrientation
44 }
45 }
45 }
46 }
46
47
@@ -112,6 +113,24 @@ Rectangle {
112 session: sessionContainerLoader.item ? sessionContainerLoader.item.session : null
113 session: sessionContainerLoader.item ? sessionContainerLoader.item.session : null
113 }
114 }
114 }
115 }
116+
117+ Button {
118+ anchors { left: parent.left; right: parent.right }
119+ text: "Rotate device \u27F3"
120+ onClicked: {
121+ var orientation = sessionContainerLoader.item.orientation
122+ if (orientation == Qt.PortraitOrientation) {
123+ orientation = Qt.LandscapeOrientation;
124+ } else if (orientation == Qt.LandscapeOrientation) {
125+ orientation = Qt.InvertedPortraitOrientation;
126+ } else if (orientation == Qt.InvertedPortraitOrientation) {
127+ orientation = Qt.InvertedLandscapeOrientation;
128+ } else {
129+ orientation = Qt.PortraitOrientation;
130+ }
131+ sessionContainerLoader.item.orientation = orientation;
132+ }
133+ }
115 }
134 }
116 }
135 }
117
136
@@ -263,5 +282,49 @@ Rectangle {
263 // wait for animation to end
282 // wait for animation to end
264 tryCompareFunction(function() { return isContainerAnimating(childContainer); }, false);
283 tryCompareFunction(function() { return isContainerAnimating(childContainer); }, false);
265 }
284 }
285+
286+ function test_orientationPropagatedToChildren_data() {
287+ return [ { tag: "count=1", count: 1 },
288+ { tag: "count=4", count: 4 } ];
289+ }
290+
291+ /* Test orientation changes are propagated to all children immediately */
292+ function test_orientationPropagatedToChildren(data) {
293+ sessionCheckbox.checked = true;
294+ var rootSessionContainer = sessionContainerLoader.item;
295+ compare(rootSessionContainer.childSessions.count(), 0);
296+
297+ var i;
298+ var sessions = [];
299+ for (i = 0; i < data.count; i++) {
300+ var session = ApplicationTest.addChildSession(rootSessionContainer.session,
301+ "gallery");
302+ session.createSurface();
303+ rootSessionContainer.session.addChildSession(session);
304+
305+ // Check child SessionContainer has orientation matching the parent
306+ var delegate = findChild(rootSessionContainer, "childDelegate" + i);
307+ var childSessionContainer = findChild(delegate, "sessionContainer");
308+
309+ tryCompare(rootSessionContainer, "orientation", childSessionContainer.orientation);
310+
311+ sessions.push(session);
312+ }
313+
314+ // Change orientation and verify all children updated
315+ rootSessionContainer.orientation = Qt.LandscapeOrientation;
316+
317+ for (i = 0; i < data.count; i++) {
318+ var delegate = findChild(rootSessionContainer, "childDelegate" + i);
319+ var childSessionContainer = findChild(delegate, "sessionContainer");
320+
321+ tryCompare(rootSessionContainer, "orientation", childSessionContainer.orientation);
322+ }
323+
324+ // Clean up
325+ for (i = data.count-1; i >= 0; i--) {
326+ ApplicationTest.removeSession(sessions[i]);
327+ }
328+ }
266 }
329 }
267}
330}
tests/qmltests/tst_Shell.qml+103−28
@@ -21,6 +21,7 @@ import QtQuick 2.0
21import QtTest 1.0
21import QtTest 1.0
22import GSettings 1.0
22import GSettings 1.0
23import LightDM 0.1 as LightDM
23import LightDM 0.1 as LightDM
24+import Ubuntu.Components 1.1
24import Ubuntu.Telephony 0.1 as Telephony
25import Ubuntu.Telephony 0.1 as Telephony
25import Unity.Application 0.1
26import Unity.Application 0.1
26import Unity.Connectivity 0.1
27import Unity.Connectivity 0.1
@@ -29,10 +30,9 @@ import Powerd 0.1
29
30
30import "../../qml"
31import "../../qml"
31
32
32−Item {
33+Row {
33 id: root
34 id: root
34− width: shell.width
35+ spacing: 0
35− height: shell.height
36
36
37 QtObject {
37 QtObject {
38 id: applicationArguments
38 id: applicationArguments
@@ -50,13 +50,52 @@ Item {
50 }
50 }
51 }
51 }
52
52
53− Shell {
53+ Loader {
54− id: shell
54+ id: shellLoader
55+
56+ // Copied from Shell.qml
57+ property bool tablet: false
58+ width: tablet ? units.gu(160)
59+ : applicationArguments.hasGeometry() ? applicationArguments.width()
60+ : units.gu(40)
61+ height: tablet ? units.gu(100)
62+ : applicationArguments.hasGeometry() ? applicationArguments.height()
63+ : units.gu(71)
64+
65+ property bool itemDestroyed: false
66+ sourceComponent: Component {
67+ Shell {
68+ Component.onDestruction: {
69+ shellLoader.itemDestroyed = true;
70+ }
71+ }
72+ }
55 }
73 }
56
74
57− Component {
75+ Rectangle {
58− id: shellComponent
76+ color: "white"
59− Shell {}
77+ width: units.gu(30)
78+ height: shellLoader.height
79+
80+ Column {
81+ anchors { left: parent.left; right: parent.right; top: parent.top; margins: units.gu(1) }
82+ spacing: units.gu(1)
83+ Row {
84+ anchors { left: parent.left; right: parent.right }
85+ Button {
86+ text: "Show Greeter"
87+ onClicked: {
88+ if (shellLoader.status !== Loader.Ready)
89+ return;
90+
91+ var greeter = testCase.findChild(shellLoader.item, "greeter");
92+ if (!greeter.shown) {
93+ greeter.show();
94+ }
95+ }
96+ }
97+ }
98+ }
60 }
99 }
61
100
62 SignalSpy {
101 SignalSpy {
@@ -81,10 +120,13 @@ Item {
81 }
120 }
82
121
83 UT.UnityTestCase {
122 UT.UnityTestCase {
123+ id: testCase
84 name: "Shell"
124 name: "Shell"
85 when: windowShown
125 when: windowShown
86
126
127+ property Item shell: shellLoader.status === Loader.Ready ? shellLoader.item : null
128+
87− function initTestCase() {
129+ function init() {
88 swipeAwayGreeter();
130 swipeAwayGreeter();
89
131
90 sessionSpy.target = findChild(shell, "greeter")
132 sessionSpy.target = findChild(shell, "greeter")
@@ -92,17 +134,30 @@ Item {
92 }
134 }
93
135
94 function cleanup() {
136 function cleanup() {
95− // If a test invoked the greeter, make sure we swipe it away again
137+ shellLoader.itemDestroyed = false;
96− var greeter = findChild(shell, "greeter");
138+
97− if (greeter.shown) {
139+ shellLoader.active = false;
98− swipeAwayGreeter();
140+
99− }
141+ tryCompare(shellLoader, "status", Loader.Null);
142+ tryCompare(shellLoader, "item", null);
143+ // Loader.status might be Loader.Null and Loader.item might be null but the Loader
144+ // item might still be alive. So if we set Loader.active back to true
145+ // again right now we will get the very same Shell instance back. So no reload
146+ // actually took place. Likely because Loader waits until the next event loop
147+ // iteration to do its work. So to ensure the reload, we will wait until the
148+ // Shell instance gets destroyed.
149+ tryCompare(shellLoader, "itemDestroyed", true);
100
150
101 // kill all (fake) running apps
151 // kill all (fake) running apps
102 killApps(ApplicationManager);
152 killApps(ApplicationManager);
103
153
104− waitForUIToSettle();
154+ unlockAllModemsSpy.clear()
105− hideIndicators();
155+
156+ // reload our test subject to get it in a fresh state once again
157+ shellLoader.active = true;
158+
159+ tryCompare(shellLoader, "status", Loader.Ready);
160+ removeTimeConstraintsFromDirectionalDragAreas(shellLoader.item);
106 }
161 }
107
162
108 function killApps() {
163 function killApps() {
@@ -115,10 +170,11 @@ Item {
115
170
116 function test_leftEdgeDrag_data() {
171 function test_leftEdgeDrag_data() {
117 return [
172 return [
118− {tag: "without launcher", revealLauncher: false, swipeLength: units.gu(27), appHides: true},
173+ {tag: "without launcher", revealLauncher: false, swipeLength: units.gu(27), appHides: true, focusedApp: "dialer-app", launcherHides: true},
119− {tag: "with launcher", revealLauncher: true, swipeLength: units.gu(27), appHides: true},
174+ {tag: "with launcher", revealLauncher: true, swipeLength: units.gu(27), appHides: true, focusedApp: "dialer-app", launcherHides: true},
120− {tag: "small swipe", revealLauncher: false, swipeLength: units.gu(25), appHides: false},
175+ {tag: "small swipe", revealLauncher: false, swipeLength: units.gu(25), appHides: false, focusedApp: "dialer-app", launcherHides: false},
176+ {tag: "long swipe", revealLauncher: false, swipeLength: units.gu(27), appHides: true, focusedApp: "dialer-app", launcherHides: true},
121− {tag: "long swipe", revealLauncher: false, swipeLength: units.gu(27), appHides: true}
177+ {tag: "long swipe", revealLauncher: false, swipeLength: units.gu(27), appHides: true, focusedApp: "unity8-dash", launcherHides: false}
122 ];
178 ];
123 }
179 }
124
180
@@ -126,16 +182,22 @@ Item {
126 dragLauncherIntoView();
182 dragLauncherIntoView();
127 tapOnAppIconInLauncher();
183 tapOnAppIconInLauncher();
128 waitUntilApplicationWindowIsFullyVisible();
184 waitUntilApplicationWindowIsFullyVisible();
185+ ApplicationManager.focusApplication(data.focusedApp)
186+ waitUntilApplicationWindowIsFullyVisible();
129
187
130 if (data.revealLauncher) {
188 if (data.revealLauncher) {
131 dragLauncherIntoView();
189 dragLauncherIntoView();
132 }
190 }
133
191
134 swipeFromLeftEdge(data.swipeLength);
192 swipeFromLeftEdge(data.swipeLength);
135− if (data.appHides)
193+ if (data.appHides) {
136 waitUntilDashIsFocused();
194 waitUntilDashIsFocused();
137− else
195+ } else {
138 waitUntilApplicationWindowIsFullyVisible();
196 waitUntilApplicationWindowIsFullyVisible();
197+ }
198+
199+ var launcher = findChild(shell, "launcherPanel");
200+ tryCompare(launcher, "x", data.launcherHides ? -launcher.width : 0)
139 }
201 }
140
202
141 function test_suspend() {
203 function test_suspend() {
@@ -241,10 +303,27 @@ Item {
241 tryCompare(item, "visible", false);
303 tryCompare(item, "visible", false);
242 }
304 }
243
305
306+ // wait until any transition animation has finished
307+ function waitUntilTransitionsEnd(stateGroup) {
308+ var transitions = stateGroup.transitions;
309+ for (var i = 0; i < transitions.length; ++i) {
310+ var transition = transitions[i];
311+ tryCompare(transition, "running", false, 2000);
312+ }
313+ }
314+
315+ // Wait until the ApplicationWindow for the given Application object is fully loaded
316+ // (ie, the real surface has replaced the splash screen)
317+ function waitUntilAppWindowIsFullyLoaded(app) {
318+ var appWindow = findChild(shell, "appWindow_" + app.appId);
319+ var appWindowStateGroup = findInvisibleChild(appWindow, "applicationWindowStateGroup");
320+ tryCompareFunction(function() { return appWindowStateGroup.state === "surface" }, true);
321+ waitUntilTransitionsEnd(appWindowStateGroup);
322+ }
323+
244 function test_surfaceLosesFocusWhilePanelIsOpen() {
324 function test_surfaceLosesFocusWhilePanelIsOpen() {
245 var app = ApplicationManager.startApplication("dialer-app");
325 var app = ApplicationManager.startApplication("dialer-app");
246− // wait until the app is fully loaded (ie, real surface replaces splash screen)
326+ waitUntilAppWindowIsFullyLoaded(app);
247− tryCompareFunction(function() { return app.session !== null && app.session.surface !== null }, true);
248
327
249 tryCompare(app.session.surface, "focus", true);
328 tryCompare(app.session.surface, "focus", true);
250
329
@@ -465,13 +544,9 @@ Item {
465 }
544 }
466
545
467 function test_unlockAllModemsOnBoot() {
546 function test_unlockAllModemsOnBoot() {
468− unlockAllModemsSpy.clear()
469− // actually create an object so we notice the onCompleted signal
470− var greeter = shellComponent.createObject(root)
471 // TODO reenable when service ready (LP: #1361074)
547 // TODO reenable when service ready (LP: #1361074)
472 expectFail("", "Unlock on boot temporarily disabled");
548 expectFail("", "Unlock on boot temporarily disabled");
473 tryCompare(unlockAllModemsSpy, "count", 1)
549 tryCompare(unlockAllModemsSpy, "count", 1)
474− greeter.destroy()
475 }
550 }
476 }
551 }
477}
552}