on xenial help sign in
merged with trunk
c91a996Nick Dedekind
CMakeLists.txt+4−1
@@ -57,7 +57,10 @@ find_package(Qt5DBus 5.4 REQUIRED)
57find_package(Qt5Concurrent 5.4 REQUIRED)
57find_package(Qt5Concurrent 5.4 REQUIRED)
58find_package(Qt5Sql 5.4 REQUIRED)
58find_package(Qt5Sql 5.4 REQUIRED)
59
59
60−pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=12)
60+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=13)
61+pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
62+pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
63+pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
61
64
62# Standard install paths
65# Standard install paths
63include(GNUInstallDirs)
66include(GNUInstallDirs)
data/unity8.conf+4−2
@@ -44,7 +44,11 @@ pre-start script
44 fi
44 fi
45
45
46 initctl set-env --global MIR_SERVER_PROMPT_FILE=1
46 initctl set-env --global MIR_SERVER_PROMPT_FILE=1
47+end script
48+
49+exec ${BINARY:-unity8} $ARGS
47
50
51+post-start script
48 initctl emit --no-wait indicator-services-start
52 initctl emit --no-wait indicator-services-start
49
53
50 # Disable Qt's stuttering 'touch compression' to fix scrolling smoothness
54 # Disable Qt's stuttering 'touch compression' to fix scrolling smoothness
@@ -58,8 +62,6 @@ pre-start script
58 # initctl set-env MIR_SERVER_NBUFFERS=2
62 # initctl set-env MIR_SERVER_NBUFFERS=2
59end script
63end script
60
64
61−exec ${BINARY:-unity8} $ARGS
62−
63post-stop script
65post-stop script
64 initctl set-env --global MIR_SOCKET=$UNITY_MIR_SOCKET
66 initctl set-env --global MIR_SOCKET=$UNITY_MIR_SOCKET
65 initctl unset-env --global UNITY_MIR_SOCKET
67 initctl unset-env --global UNITY_MIR_SOCKET
debian/changelog+143
@@ -1,3 +1,146 @@
1+unity8 (8.11+16.04.20160216.1-0ubuntu1) xenial; urgency=medium
2+
3+ [ Albert Astals Cid ]
4+ * Make the audio previews create a playlist (LP: #1540477)
5+
6+ [ CI Train Bot ]
7+ * Resync trunk. added: po/aa.po
8+ * Update translation template
9+
10+ -- Pawel Stolowski <ci-train-bot@canonical.com> Tue, 16 Feb 2016 03:24:46 +0000
11+
12+unity8 (8.11+16.04.20160212-0ubuntu1) xenial; urgency=medium
13+
14+ [ Albert Astals Cid ]
15+ * Do not use components in card creator generated code
16+ * Forward the makesurevisible signal from the inner preview widget
17+ * Make fallback also be fallback when the image is empty and not only
18+ on error (LP: #1531913)
19+ * Make the artShapeSize assignment be updated when using dynamic grid
20+ units
21+ * Visual improvements to the dash audio play cards
22+ * We don't use the unity-scope-scopes anymore (LP: #1439172)
23+
24+ [ Andrea Cimitan ]
25+ * only request a bigger image if zoomable widget data property is
26+ true, otherwise just leave the screen size (LP: #1536814)
27+
28+ [ CI Train Bot ]
29+ * Update translation template
30+
31+ [ Daniel d'Andrada ]
32+ * Set initial surface size (LP: #1532974)
33+
34+ [ Daniel d'Andrada, Michał Sawicz ]
35+ * Window Size Hints
36+
37+ [ Florian Boucault ]
38+ * Splash screen: delay showing the ActivityIndicator by 2 seconds.
39+
40+ [ Lukáš Tinkl ]
41+ * Replace the word "phone" with a more generic term "device" in the
42+ welcome wizard (LP: #1294732, #1543527)
43+
44+ [ Michael Terry ]
45+ * Have the tablet greeter set appropriate OSK hints if the user has a
46+ passcode instead of a passphrase. (LP: #1544173)
47+
48+ [ Michael Zanetti ]
49+ * Don't eat mouse events in the edgebarrer
50+
51+ [ Michał Sawicz ]
52+ * Bump unity-api dependencies
53+
54+ [ Nick Dedekind ]
55+ * Added support for secondary indicator actions (LP: #1398888)
56+ * Remove zombie if they're not animated. (LP: #1534541)
57+ * Removed unused panel resources
58+
59+ [ Ted Gould ]
60+ * Start the indicators after Unity8 starts instead of before
61+
62+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 12 Feb 2016 00:12:41 +0000
63+
64+unity8 (8.11+16.04.20160208-0ubuntu1) xenial; urgency=medium
65+
66+ [ Albert Astals Cid ]
67+ * LVWPH: Reset to initial values when list is empty (LP: #1540490)
68+ * Make LazyImage qmltest less flaky on CI
69+
70+ [ Andrea Cimitan ]
71+ * Make LazyImage qmltest less flaky on CI
72+
73+ [ CI Train Bot ]
74+ * Resync trunk.
75+ * Update translation template
76+
77+ [ Michael Terry ]
78+ * Display the current user's real name on the tablet lockscreen. (LP:
79+ #1536714)
80+
81+ -- Michał Sawicz <michal.sawicz@canonical.com> Mon, 08 Feb 2016 09:38:00 +0000
82+
83+unity8 (8.11+16.04.20160129-0ubuntu1) xenial; urgency=medium
84+
85+ [ Albert Astals Cid ]
86+ * Audio Preview Button: Don't gain focus on press (LP: #1517830)
87+ * Better attempt at sanitization
88+ * Better looking application scopes for wide screens
89+ * Call printSettings correctly
90+ * Card test: Limit the precision we ask for doubles to be equal
91+ * Convert while into tryCompareFunction
92+ * Do not use the same filepath parameter for all the card creator
93+ createQmlObject calls (LP: #1536379)
94+ * Fix some test shells being unstable in the armhf builders
95+ * Make revealByEdgePush more stable
96+ * More reliable compares
97+ * Move the mouse over the bfb before waiting for rendering
98+ * Remove the DDAs constrains for every test
99+ * Set the background source size to the max we'll need + new
100+ background (LP: #1539011)
101+
102+ [ Andrea Cimitan ]
103+ * Dynamically change click scope card size according to size (LP:
104+ #1536745)
105+ * Should fix lazyimage test failures on fast machines
106+
107+ [ CI Train Bot ]
108+ * Fix card tests on the phone
109+ * Update translation template
110+
111+ [ Daniel d'Andrada ]
112+ * Desktop stage rotates only to follow screen orientation (LP:
113+ #1515977)
114+
115+ [ Lukáš Tinkl ]
116+ * Hide/reveal the mouse pointer on touch/mouse events renamed:
117+ plugins/Utils/HomeKeyWatcher.cpp =>
118+ plugins/Utils/WindowInputMonitor.cpp plugins/Utils/HomeKeyWatcher.h
119+ => plugins/Utils/WindowInputMonitor.h
120+ tests/mocks/Utils/HomeKeyWatcher.qml =>
121+ tests/mocks/Utils/WindowInputMonitor.qml
122+ tests/plugins/Utils/HomeKeyWatcherTest.cpp =>
123+ tests/plugins/Utils/WindowInputMonitorTest.cpp
124+
125+ [ Michael Terry ]
126+ * Synchronize the mouse-cursor-speed and touchpad-cursor-speed
127+ properties with USC. (LP: #1536383)
128+
129+ [ Michael Zanetti ]
130+ * Add InputMethod to secondary screen
131+ * Add a virtual Touchpad while external screen is connected
132+ * Make big tablets switch to windowed mode by plugging a kbd only (LP:
133+ #1535399)
134+ * Prevent alt key presses from being dispatched to the app on alt+tab
135+ (LP: #1532862)
136+
137+ [ Michał Sawicz ]
138+ * Make qmluitests.sh more robust and allow parallel test execution
139+ * Skip SessionBackendTest::testLogin1Capabilities until we talk to a
140+ mock instead (LP: #1532112, #1532113)
141+
142+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 29 Jan 2016 11:53:27 +0000
143+
1unity8 (8.11+16.04.20160122-0ubuntu1) xenial; urgency=medium
144unity8 (8.11+16.04.20160122-0ubuntu1) xenial; urgency=medium
2
145
3 [ Albert Astals Cid ]
146 [ Albert Astals Cid ]
debian/control+4−5
@@ -29,7 +29,7 @@ Build-Depends: cmake,
29 libqt5xmlpatterns5-dev,
29 libqt5xmlpatterns5-dev,
30 libsystemsettings-dev,
30 libsystemsettings-dev,
31 libudev-dev,
31 libudev-dev,
32− libunity-api-dev (>= 7.105),
32+ libunity-api-dev (>= 7.106),
33 libusermetricsoutput1-dev,
33 libusermetricsoutput1-dev,
34# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
34# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
35 libx11-dev[!armhf],
35 libx11-dev[!armhf],
@@ -114,7 +114,6 @@ Depends: dmz-cursor-theme,
114 ${shlibs:Depends},
114 ${shlibs:Depends},
115Recommends: unity-scope-click,
115Recommends: unity-scope-click,
116 unity-scope-mediascanner2,
116 unity-scope-mediascanner2,
117− unity-scope-scopes,
118Breaks: indicator-network (<< 0.5.1+14.10.20141014),
117Breaks: indicator-network (<< 0.5.1+14.10.20141014),
119 ubuntu-touch-session (<< 0.107),
118 ubuntu-touch-session (<< 0.107),
120 unity8-greeter (<< 7.89),
119 unity8-greeter (<< 7.89),
@@ -132,7 +131,7 @@ Depends: qml-module-qtquick-layouts,
132 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1627) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1627),
131 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1627) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1627),
133 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
132 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
134 ubuntu-thumbnailer-impl-0,
133 ubuntu-thumbnailer-impl-0,
135− unity-application-impl-12,
134+ unity-application-impl-13,
136 unity-notifications-impl-3,
135 unity-notifications-impl-3,
137 unity-plugin-scopes | unity-scopes-impl,
136 unity-plugin-scopes | unity-scopes-impl,
138 unity-scopes-impl-9,
137 unity-scopes-impl-9,
@@ -178,7 +177,7 @@ Pre-Depends: ${misc:Pre-Depends},
178Depends: ${misc:Depends},
177Depends: ${misc:Depends},
179 ${shlibs:Depends},
178 ${shlibs:Depends},
180Provides: unity-application-impl,
179Provides: unity-application-impl,
181− unity-application-impl-12,
180+ unity-application-impl-13,
182Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
181Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
183Description: Fake environment for running Unity 8 shell
182Description: Fake environment for running Unity 8 shell
184 Provides fake implementations of some QML modules used by Unity 8 shell
183 Provides fake implementations of some QML modules used by Unity 8 shell
@@ -188,7 +187,7 @@ Package: unity8-private
188Architecture: any
187Architecture: any
189Multi-Arch: same
188Multi-Arch: same
190Pre-Depends: ${misc:Pre-Depends},
189Pre-Depends: ${misc:Pre-Depends},
191−Depends: accountsservice-ubuntu-schemas (>= 0.0.3),
190+Depends: accountsservice-ubuntu-schemas (>= 0.0.5),
192 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
191 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
193 libhardware2,
192 libhardware2,
194 pay-service,
193 pay-service,
debian/tests/autopilot.shnew file+13
@@ -0,0 +1,13 @@
1+#!/bin/sh
2+
3+# log all commands and abort on error
4+set -xe
5+
6+if [ ! -f /system/build.prop ]; then
7+ echo "WARNING: Skipping autopilot test, will only run on devices at the moment."
8+ exit 0
9+fi
10+
11+initctl --session stop unity8
12+autopilot3 run --verbose --format xml --output "${ADT_ARTIFACTS}/unity8.xml" unity8
13+initctl --session start unity8
debian/tests/control+5
@@ -3,3 +3,8 @@ Restrictions: allow-stderr
3Depends: @,
3Depends: @,
4 @builddeps@,
4 @builddeps@,
5 xvfb,
5 xvfb,
6+
7+Tests: autopilot.sh
8+Restrictions: allow-stderr,
9+ isolation-machine,
10+Depends: unity8-autopilot,
debian/tests/qmluitests.sh+4−2
@@ -1,5 +1,8 @@
1#!/bin/sh
1#!/bin/sh
2
2
3+# log all commands and abort on error
4+set -xe
5+
3SHELL_QML_PATH=$(pkg-config --variable=plugindir unity-shell-api)
6SHELL_QML_PATH=$(pkg-config --variable=plugindir unity-shell-api)
4UNITY_SOURCE_DIR=$(readlink -f $(dirname $(readlink -f $0))/../..)
7UNITY_SOURCE_DIR=$(readlink -f $(dirname $(readlink -f $0))/../..)
5
8
@@ -15,5 +18,4 @@ dh_auto_build --parallel -- -C tests/utils
15
18
16export UNITY_SOURCE_DIR
19export UNITY_SOURCE_DIR
17
20
18−# FIXME: --parallel here causes some failures
19−dh_auto_build -- -k xvfballtests
21+dh_auto_build --parallel -- -k xvfballtests
debian/unity8-private.install+1
@@ -12,6 +12,7 @@ usr/lib/*/unity8/qml/ScreenGrabber
12usr/lib/*/unity8/qml/SessionBroadcast
12usr/lib/*/unity8/qml/SessionBroadcast
13usr/lib/*/unity8/qml/Ubuntu
13usr/lib/*/unity8/qml/Ubuntu
14usr/lib/*/unity8/qml/Unity
14usr/lib/*/unity8/qml/Unity
15+usr/lib/*/unity8/qml/UInput
15usr/lib/*/unity8/qml/Utils
16usr/lib/*/unity8/qml/Utils
16usr/lib/*/unity8/qml/Wizard
17usr/lib/*/unity8/qml/Wizard
17usr/share/accountsservice/interfaces
18usr/share/accountsservice/interfaces
plugins/AccountsService/AccountsService.cpp+61
@@ -19,6 +19,7 @@
19#include "AccountsService.h"
19#include "AccountsService.h"
20#include "AccountsServiceDBusAdaptor.h"
20#include "AccountsServiceDBusAdaptor.h"
21
21
22+#include <QDBusInterface>
22#include <QFile>
23#include <QFile>
23#include <QStringList>
24#include <QStringList>
24#include <QDebug>
25#include <QDebug>
@@ -35,6 +36,11 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
35 m_hereEnabled(false),
36 m_hereEnabled(false),
36 m_hereLicensePath() // null means not set yet
37 m_hereLicensePath() // null means not set yet
37{
38{
39+ m_unityInput = new QDBusInterface(QStringLiteral("com.canonical.Unity.Input"),
40+ QStringLiteral("/com/canonical/Unity/Input"),
41+ QStringLiteral("com.canonical.Unity.Input"),
42+ QDBusConnection::SM_BUSNAME(), this);
43+
38 connect(m_service, &AccountsServiceDBusAdaptor::propertiesChanged, this, &AccountsService::onPropertiesChanged);
44 connect(m_service, &AccountsServiceDBusAdaptor::propertiesChanged, this, &AccountsService::onPropertiesChanged);
39 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged, this, &AccountsService::onMaybeChanged);
45 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged, this, &AccountsService::onMaybeChanged);
40
46
@@ -58,6 +64,8 @@ void AccountsService::setUser(const QString &user)
58 updateEnableLauncherWhileLocked(false);
64 updateEnableLauncherWhileLocked(false);
59 updateEnableIndicatorsWhileLocked(false);
65 updateEnableIndicatorsWhileLocked(false);
60 updateBackgroundFile(false);
66 updateBackgroundFile(false);
67+ updateMouseCursorSpeed();
68+ updateTouchpadCursorSpeed();
61 updateStatsWelcomeScreen(false);
69 updateStatsWelcomeScreen(false);
62 updatePasswordDisplayHint(false);
70 updatePasswordDisplayHint(false);
63 updateFailedLogins(false);
71 updateFailedLogins(false);
@@ -246,6 +254,52 @@ void AccountsService::updateBackgroundFile(bool async)
246 }
254 }
247}
255}
248
256
257+void AccountsService::updateMouseCursorSpeed()
258+{
259+ QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
260+ QStringLiteral("com.ubuntu.AccountsService.Input"),
261+ QStringLiteral("MouseCursorSpeed"));
262+ QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
263+
264+ connect(watcher, &QDBusPendingCallWatcher::finished,
265+ this, [this](QDBusPendingCallWatcher* watcher) {
266+
267+ QDBusPendingReply<QVariant> reply = *watcher;
268+ watcher->deleteLater();
269+ if (reply.isError()) {
270+ qWarning() << "Failed to get 'MouseCursorSpeed' property - " << reply.error().message();
271+ return;
272+ }
273+
274+ // Merely proxy this along to USC. We don't care about keeping a copy
275+ // or exporting it internally.
276+ m_unityInput->asyncCall(QStringLiteral("setMouseCursorSpeed"), reply.value());
277+ });
278+}
279+
280+void AccountsService::updateTouchpadCursorSpeed()
281+{
282+ QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
283+ QStringLiteral("com.ubuntu.AccountsService.Input"),
284+ QStringLiteral("TouchpadCursorSpeed"));
285+ QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
286+
287+ connect(watcher, &QDBusPendingCallWatcher::finished,
288+ this, [this](QDBusPendingCallWatcher* watcher) {
289+
290+ QDBusPendingReply<QVariant> reply = *watcher;
291+ watcher->deleteLater();
292+ if (reply.isError()) {
293+ qWarning() << "Failed to get 'TouchpadCursorSpeed' property - " << reply.error().message();
294+ return;
295+ }
296+
297+ // Merely proxy this along to USC. We don't care about keeping a copy
298+ // or exporting it internally.
299+ m_unityInput->asyncCall(QStringLiteral("setTouchpadCursorSpeed"), reply.value());
300+ });
301+}
302+
249void AccountsService::updateStatsWelcomeScreen(bool async)
303void AccountsService::updateStatsWelcomeScreen(bool async)
250{
304{
251 QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
305 QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
@@ -423,6 +477,13 @@ void AccountsService::onPropertiesChanged(const QString &user, const QString &in
423 if (changed.contains(QStringLiteral("FailedLogins"))) {
477 if (changed.contains(QStringLiteral("FailedLogins"))) {
424 updateFailedLogins();
478 updateFailedLogins();
425 }
479 }
480+ } else if (interface == QLatin1String("com.ubuntu.AccountsService.Input")) {
481+ if (changed.contains(QStringLiteral("MouseCursorSpeed"))) {
482+ updateMouseCursorSpeed();
483+ }
484+ if (changed.contains(QStringLiteral("TouchpadCursorSpeed"))) {
485+ updateTouchpadCursorSpeed();
486+ }
426 } else if (interface == QLatin1String("com.ubuntu.touch.AccountsService.SecurityPrivacy")) {
487 } else if (interface == QLatin1String("com.ubuntu.touch.AccountsService.SecurityPrivacy")) {
427 if (changed.contains(QStringLiteral("StatsWelcomeScreen"))) {
488 if (changed.contains(QStringLiteral("StatsWelcomeScreen"))) {
428 updateStatsWelcomeScreen();
489 updateStatsWelcomeScreen();
plugins/AccountsService/AccountsService.h+4
@@ -23,6 +23,7 @@
23#include <QString>
23#include <QString>
24
24
25class AccountsServiceDBusAdaptor;
25class AccountsServiceDBusAdaptor;
26+class QDBusInterface;
26
27
27class AccountsService: public QObject
28class AccountsService: public QObject
28{
29{
@@ -112,6 +113,8 @@ private:
112 void updateEnableLauncherWhileLocked(bool async = true);
113 void updateEnableLauncherWhileLocked(bool async = true);
113 void updateEnableIndicatorsWhileLocked(bool async = true);
114 void updateEnableIndicatorsWhileLocked(bool async = true);
114 void updateBackgroundFile(bool async = true);
115 void updateBackgroundFile(bool async = true);
116+ void updateMouseCursorSpeed();
117+ void updateTouchpadCursorSpeed();
115 void updateStatsWelcomeScreen(bool async = true);
118 void updateStatsWelcomeScreen(bool async = true);
116 void updatePasswordDisplayHint(bool async = true);
119 void updatePasswordDisplayHint(bool async = true);
117 void updateFailedLogins(bool async = true);
120 void updateFailedLogins(bool async = true);
@@ -119,6 +122,7 @@ private:
119 void updateHereLicensePath(bool async = true);
122 void updateHereLicensePath(bool async = true);
120
123
121 AccountsServiceDBusAdaptor *m_service;
124 AccountsServiceDBusAdaptor *m_service;
125+ QDBusInterface *m_unityInput;
122 QString m_user;
126 QString m_user;
123 bool m_demoEdges;
127 bool m_demoEdges;
124 bool m_enableLauncherWhileLocked;
128 bool m_enableLauncherWhileLocked;
plugins/CMakeLists.txt+1
@@ -22,6 +22,7 @@ add_subdirectory(Powerd)
22add_subdirectory(SessionBroadcast)
22add_subdirectory(SessionBroadcast)
23add_subdirectory(ScreenGrabber)
23add_subdirectory(ScreenGrabber)
24add_subdirectory(Ubuntu)
24add_subdirectory(Ubuntu)
25+add_subdirectory(UInput)
25add_subdirectory(Unity)
26add_subdirectory(Unity)
26add_subdirectory(Utils)
27add_subdirectory(Utils)
27add_subdirectory(Wizard)
28add_subdirectory(Wizard)
plugins/Cursor/MousePointer.cpp+4
@@ -42,6 +42,10 @@ void MousePointer::handleMouseEvent(ulong timestamp, QPointF movement, Qt::Mouse
42 return;
42 return;
43 }
43 }
44
44
45+ if (!movement.isNull()) {
46+ Q_EMIT mouseMoved();
47+ }
48+
45 qreal newX = x() + movement.x();
49 qreal newX = x() + movement.x();
46 if (newX < 0) {
50 if (newX < 0) {
47 Q_EMIT pushedLeftBoundary(qAbs(newX), buttons);
51 Q_EMIT pushedLeftBoundary(qAbs(newX), buttons);
plugins/Cursor/MousePointer.h+1
@@ -48,6 +48,7 @@ public Q_SLOTS:
48Q_SIGNALS:
48Q_SIGNALS:
49 void pushedLeftBoundary(qreal amount, Qt::MouseButtons buttons);
49 void pushedLeftBoundary(qreal amount, Qt::MouseButtons buttons);
50 void pushedRightBoundary(qreal amount, Qt::MouseButtons buttons);
50 void pushedRightBoundary(qreal amount, Qt::MouseButtons buttons);
51+ void mouseMoved();
51
52
52protected:
53protected:
53 void itemChange(ItemChange change, const ItemChangeData &value) override;
54 void itemChange(ItemChange change, const ItemChangeData &value) override;
plugins/Dash/CardCreator.js+76−47
@@ -16,9 +16,9 @@
16
16
17.pragma library
17.pragma library
18
18
19−// %1 is the template["card-background"] string
19+// %1 is the template["card-background"]["elements"][0]
20−// %2 is the template["card-background"]["elements"][0]
20+// %2 is the template["card-background"]["elements"][1]
21−// %3 is the template["card-background"]["elements"][1]
21+// %3 is the template["card-background"] string
22var kBackgroundLoaderCode = 'Loader {\n\
22var kBackgroundLoaderCode = 'Loader {\n\
23 id: backgroundLoader; \n\
23 id: backgroundLoader; \n\
24 objectName: "backgroundLoader"; \n\
24 objectName: "backgroundLoader"; \n\
@@ -46,14 +46,14 @@ var kBackgroundLoaderCode = 'Loader {\n\
46 objectName: "backgroundImage"; \n\
46 objectName: "backgroundImage"; \n\
47 source: { \n\
47 source: { \n\
48 if (cardData && typeof cardData["background"] === "string") return cardData["background"]; \n\
48 if (cardData && typeof cardData["background"] === "string") return cardData["background"]; \n\
49− else return "%1"; \n\
49+ else return %3; \n\
50 } \n\
50 } \n\
51 } \n\
51 } \n\
52 function getColor(index) { \n\
52 function getColor(index) { \n\
53 if (cardData && typeof cardData["background"] === "object" \n\
53 if (cardData && typeof cardData["background"] === "object" \n\
54 && (cardData["background"]["type"] === "color" || cardData["background"]["type"] === "gradient")) { \n\
54 && (cardData["background"]["type"] === "color" || cardData["background"]["type"] === "gradient")) { \n\
55 return cardData["background"]["elements"][index]; \n\
55 return cardData["background"]["elements"][index]; \n\
56− } else return index === 0 ? %2 : %3; \n\
56+ } else return index === 0 ? %1 : %2; \n\
57 } \n\
57 } \n\
58 } \n\
58 } \n\
59 }\n';
59 }\n';
@@ -61,7 +61,10 @@ var kBackgroundLoaderCode = 'Loader {\n\
61// %1 is used as anchors of artShapeHolder
61// %1 is used as anchors of artShapeHolder
62// %2 is used as image width
62// %2 is used as image width
63// %3 is used as image height
63// %3 is used as image height
64+// %4 is used for artShapeSource.hideSource and inner Loader visible
65+// %5 is used as aspect ratio fallback
64−// %4 is injected as code to artImage
66+// %6 is injected as code to artImage
67+// %7 is used as image fallback
65var kArtShapeHolderCode = 'Item { \n\
68var kArtShapeHolderCode = 'Item { \n\
66 id: artShapeHolder; \n\
69 id: artShapeHolder; \n\
67 height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height; \n\
70 height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height; \n\
@@ -70,13 +73,13 @@ var kArtShapeHolderCode = 'Item { \n\
70 Loader { \n\
73 Loader { \n\
71 id: artShapeLoader; \n\
74 id: artShapeLoader; \n\
72 objectName: "artShapeLoader"; \n\
75 objectName: "artShapeLoader"; \n\
73− active: cardData && cardData["art"] || false; \n\
76+ readonly property string cardArt: cardData && cardData["art"] || %7; \n\
77+ active: cardArt != ""; \n\
74 asynchronous: root.asynchronous; \n\
78 asynchronous: root.asynchronous; \n\
75 visible: status == Loader.Ready; \n\
79 visible: status == Loader.Ready; \n\
76 sourceComponent: Item { \n\
80 sourceComponent: Item { \n\
77 id: artShape; \n\
81 id: artShape; \n\
78 objectName: "artShape"; \n\
82 objectName: "artShape"; \n\
79− readonly property bool doShapeItem: components["art"]["conciergeMode"] !== true; \n\
80 visible: image.status == Image.Ready; \n\
83 visible: image.status == Image.Ready; \n\
81 readonly property alias image: artImage; \n\
84 readonly property alias image: artImage; \n\
82 ShaderEffectSource { \n\
85 ShaderEffectSource { \n\
@@ -85,11 +88,11 @@ var kArtShapeHolderCode = 'Item { \n\
85 anchors.centerIn: parent; \n\
88 anchors.centerIn: parent; \n\
86 width: 1; \n\
89 width: 1; \n\
87 height: 1; \n\
90 height: 1; \n\
88− hideSource: doShapeItem; \n\
91+ hideSource: %4; \n\
89 } \n\
92 } \n\
90 Loader { \n\
93 Loader { \n\
91 anchors.fill: parent; \n\
94 anchors.fill: parent; \n\
92− visible: artShape.doShapeItem; \n\
95+ visible: %4; \n\
93 sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent; \n\
96 sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent; \n\
94 Component { \n\
97 Component { \n\
95 id: artShapeShapeComponent; \n\
98 id: artShapeShapeComponent; \n\
@@ -113,7 +116,7 @@ var kArtShapeHolderCode = 'Item { \n\
113 } \n\
116 } \n\
114 } \n\
117 } \n\
115 readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1; \n\
118 readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1; \n\
116− readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : components !== undefined ? components["art"]["aspect-ratio"] : 1; \n\
119+ readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : %5; \n\
117 Component.onCompleted: { updateWidthHeightBindings(); } \n\
120 Component.onCompleted: { updateWidthHeightBindings(); } \n\
118 Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); } \n\
121 Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); } \n\
119 function updateWidthHeightBindings() { \n\
122 function updateWidthHeightBindings() { \n\
@@ -128,11 +131,11 @@ var kArtShapeHolderCode = 'Item { \n\
128 CroppedImageMinimumSourceSize { \n\
131 CroppedImageMinimumSourceSize { \n\
129 id: artImage; \n\
132 id: artImage; \n\
130 objectName: "artImage"; \n\
133 objectName: "artImage"; \n\
131− source: cardData && cardData["art"] || ""; \n\
134+ source: artShapeLoader.cardArt; \n\
132 asynchronous: root.asynchronous; \n\
135 asynchronous: root.asynchronous; \n\
133 width: %2; \n\
136 width: %2; \n\
134 height: %3; \n\
137 height: %3; \n\
135− %4 \n\
138+ %6 \n\
136 } \n\
139 } \n\
137 } \n\
140 } \n\
138 } \n\
141 } \n\
@@ -152,11 +155,20 @@ var kAudioButtonCode = 'AbstractButton { \n\
152 visible: parent.pressed; \n\
155 visible: parent.pressed; \n\
153 radius: "medium"; \n\
156 radius: "medium"; \n\
154 } \n\
157 } \n\
158+ Rectangle { \n\
159+ color: Qt.rgba(0, 0, 0, 0.5); \n\
160+ anchors.centerIn: parent; \n\
161+ width: parent.width * 0.5; \n\
162+ height: width; \n\
163+ radius: width / 2; \n\
164+ } \n\
155 Icon { \n\
165 Icon { \n\
156− anchors.fill: parent; \n\
166+ anchors.centerIn: parent; \n\
157− anchors.margins: parent.height > units.gu(5) ? units.gu(2) : 0; \n\
167+ width: parent.width * 0.3; \n\
168+ height: width; \n\
158 opacity: 0.9; \n\
169 opacity: 0.9; \n\
159 name: DashAudioPlayer.playing && AudioUrlComparer.compare(parent.source, DashAudioPlayer.currentSource) ? "media-playback-pause" : "media-playback-start"; \n\
170 name: DashAudioPlayer.playing && AudioUrlComparer.compare(parent.source, DashAudioPlayer.currentSource) ? "media-playback-pause" : "media-playback-start"; \n\
171+ color: "white"; \n\
160 } \n\
172 } \n\
161 onClicked: { \n\
173 onClicked: { \n\
162 if (AudioUrlComparer.compare(source, DashAudioPlayer.currentSource)) { \n\
174 if (AudioUrlComparer.compare(source, DashAudioPlayer.currentSource)) { \n\
@@ -245,11 +257,12 @@ var kMascotShapeLoaderCode = 'Loader { \n\
245// %1 is used as anchors of mascotImage
257// %1 is used as anchors of mascotImage
246// %2 is used as visible of mascotImage
258// %2 is used as visible of mascotImage
247// %3 is injected as code to mascotImage
259// %3 is injected as code to mascotImage
260+// %4 is used as fallback image
248var kMascotImageCode = 'CroppedImageMinimumSourceSize { \n\
261var kMascotImageCode = 'CroppedImageMinimumSourceSize { \n\
249 id: mascotImage; \n\
262 id: mascotImage; \n\
250 objectName: "mascotImage"; \n\
263 objectName: "mascotImage"; \n\
251 anchors { %1 } \n\
264 anchors { %1 } \n\
252− source: cardData && cardData["mascot"] || ""; \n\
265+ source: cardData && cardData["mascot"] || %4; \n\
253 width: units.gu(6); \n\
266 width: units.gu(6); \n\
254 height: units.gu(5.625); \n\
267 height: units.gu(5.625); \n\
255 horizontalAlignment: Image.AlignHCenter; \n\
268 horizontalAlignment: Image.AlignHCenter; \n\
@@ -373,32 +386,25 @@ var kAudioProgressBarCode = 'CardAudioProgress { \n\
373 color: %3; \n\
386 color: %3; \n\
374 }';
387 }';
375
388
376−function evil_param(object) {
389+function sanitizeColor(colorString) {
377− for (var x in object) {
390+ if (colorString !== undefined) {
378− if (typeof object[x] === "object" && evil_param(object[x]))
391+ if (colorString.match(/^[#a-z0-9]*$/i) === null) {
379− return true;
392+ // This is not the perfect regexp for color
380−
393+ // but what we're trying to do here is just protect
381− if (typeof object[x] === "string" && object[x].match(/"(?:[^"\\]|\\.)*"/) != null)
394+ // against injection so it's ok
382− return true;
395+ return "";
396+ }
383 }
397 }
384−
385− return false;
398+ return colorString;
386}
399}
387
400
388function cardString(template, components) {
401function cardString(template, components) {
389 var code;
402 var code;
390
403
391− if (evil_param(template))
392− return "";
393−
394− if (evil_param(components))
395− return "";
396−
397 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
404 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
398
405
399 code = 'AbstractButton { \n\
406 code = 'AbstractButton { \n\
400 id: root; \n\
407 id: root; \n\
401− property var components; \n\
402 property var cardData; \n\
408 property var cardData; \n\
403 property string artShapeStyle: "inset"; \n\
409 property string artShapeStyle: "inset"; \n\
404 property string backgroundShapeStyle: "inset"; \n\
410 property string backgroundShapeStyle: "inset"; \n\
@@ -416,7 +422,8 @@ function cardString(template, components) {
416
422
417 var hasArt = components["art"] && components["art"]["field"] || false;
423 var hasArt = components["art"] && components["art"]["field"] || false;
418 var hasSummary = components["summary"] || false;
424 var hasSummary = components["summary"] || false;
425+ var isConciergeMode = components["art"] && components["art"]["conciergeMode"] || false;
419− var artAndSummary = hasArt && hasSummary && components["art"]["conciergeMode"] !== true;
426+ var artAndSummary = hasArt && hasSummary && !isConciergeMode;
420 var isHorizontal = template["card-layout"] === "horizontal";
427 var isHorizontal = template["card-layout"] === "horizontal";
421 var hasBackground = (!isHorizontal && (template["card-background"] || components["background"] || artAndSummary)) ||
428 var hasBackground = (!isHorizontal && (template["card-background"] || components["background"] || artAndSummary)) ||
422 (hasSummary && (template["card-background"] || components["background"]));
429 (hasSummary && (template["card-background"] || components["background"]));
@@ -442,18 +449,26 @@ function cardString(template, components) {
442 }
449 }
443
450
444 if (hasBackground) {
451 if (hasBackground) {
452+ var templateCardBackground;
445− var templateCardBackground = (template && typeof template["card-background"] === "string") ? template["card-background"] : "";
453+ if (template && typeof template["card-background"] === "string") {
454+ templateCardBackground = 'decodeURI("' + encodeURI(template["card-background"]) + '")';
455+ } else {
456+ templateCardBackground = '""';
457+ }
458+
446 var backgroundElements0;
459 var backgroundElements0;
447 var backgroundElements1;
460 var backgroundElements1;
448 if (template && typeof template["card-background"] === "object" && (template["card-background"]["type"] === "color" || template["card-background"]["type"] === "gradient")) {
461 if (template && typeof template["card-background"] === "object" && (template["card-background"]["type"] === "color" || template["card-background"]["type"] === "gradient")) {
449− if (template["card-background"]["elements"][0] !== undefined) {
462+ var element0 = sanitizeColor(template["card-background"]["elements"][0]);
463+ var element1 = sanitizeColor(template["card-background"]["elements"][1]);
464+ if (element0 !== undefined) {
450− backgroundElements0 = '"%1"'.arg(template["card-background"]["elements"][0]);
465+ backgroundElements0 = '"%1"'.arg(element0);
451 }
466 }
452− if (template["card-background"]["elements"][1] !== undefined) {
467+ if (element1 !== undefined) {
453− backgroundElements1 = '"%1"'.arg(template["card-background"]["elements"][1]);
468+ backgroundElements1 = '"%1"'.arg(element1);
454 }
469 }
455 }
470 }
456− code += kBackgroundLoaderCode.arg(templateCardBackground).arg(backgroundElements0).arg(backgroundElements1);
471+ code += kBackgroundLoaderCode.arg(backgroundElements0).arg(backgroundElements1).arg(templateCardBackground);
457 }
472 }
458
473
459 if (hasArt) {
474 if (hasArt) {
@@ -478,12 +493,21 @@ function cardString(template, components) {
478 heightCode = 'width / artShape.aspect';
493 heightCode = 'width / artShape.aspect';
479 }
494 }
480
495
496+ var aspectRatio = components["art"] && components["art"]["aspect-ratio"] || 1;
497+ if (isNaN(aspectRatio)) {
498+ aspectRatio = 1;
499+ }
481 var fallback = components["art"] && components["art"]["fallback"] || "";
500 var fallback = components["art"] && components["art"]["fallback"] || "";
482− var fallbackCode = "";
501+ fallback = encodeURI(fallback);
502+ var fallbackStatusCode = "";
503+ var fallbackURICode = '""';
483 if (fallback !== "") {
504 if (fallback !== "") {
505+ // fallbackStatusCode has %6 in it because we want to substitute it for fallbackURICode
506+ // which in kArtShapeHolderCode is %7
484− fallbackCode += 'onStatusChanged: if (status === Image.Error) source = "%1";'.arg(fallback);
507+ fallbackStatusCode += 'onStatusChanged: if (status === Image.Error) source = %7;';
508+ fallbackURICode = 'decodeURI("%1")'.arg(fallback);
485 }
509 }
486− code += kArtShapeHolderCode.arg(artAnchors).arg(widthCode).arg(heightCode).arg(fallbackCode);
510+ code += kArtShapeHolderCode.arg(artAnchors).arg(widthCode).arg(heightCode).arg(isConciergeMode ? "false" : "true").arg(aspectRatio).arg(fallbackStatusCode).arg(fallbackURICode);
487 } else {
511 } else {
488 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
512 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
489 }
513 }
@@ -576,11 +600,16 @@ function cardString(template, components) {
576
600
577 var mascotImageVisible = useMascotShape ? 'false' : 'showHeader';
601 var mascotImageVisible = useMascotShape ? 'false' : 'showHeader';
578 var fallback = components["mascot"] && components["mascot"]["fallback"] || "";
602 var fallback = components["mascot"] && components["mascot"]["fallback"] || "";
579− var fallbackCode = "";
603+ fallback = encodeURI(fallback);
604+ var fallbackStatusCode = "";
605+ var fallbackURICode = '""';
580 if (fallback !== "") {
606 if (fallback !== "") {
607+ // fallbackStatusCode has %4 in it because we want to substitute it for fallbackURICode
608+ // which in kMascotImageCode is %4
581− fallbackCode += 'onStatusChanged: if (status === Image.Error) source = "%1";'.arg(fallback);
609+ fallbackStatusCode += 'onStatusChanged: if (status === Image.Error) source = %4;';
610+ fallbackURICode = 'decodeURI("%1")'.arg(fallback);
582 }
611 }
583− mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible).arg(fallbackCode);
612+ mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible).arg(fallbackStatusCode).arg(fallbackURICode);
584 }
613 }
585
614
586 var summaryColorWithBackground = 'backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item && backgroundLoader.item.luminance > 0.7 ? theme.palette.normal.baseText : "white")';
615 var summaryColorWithBackground = 'backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item && backgroundLoader.item.luminance > 0.7 ? theme.palette.normal.baseText : "white")';
@@ -825,7 +854,7 @@ function cardString(template, components) {
825 return code;
854 return code;
826}
855}
827
856
828−function createCardComponent(parent, template, components) {
857+function createCardComponent(parent, template, components, identifier) {
829 var imports = 'import QtQuick 2.4; \n\
858 var imports = 'import QtQuick 2.4; \n\
830 import Ubuntu.Components 1.3; \n\
859 import Ubuntu.Components 1.3; \n\
831 import Ubuntu.Settings.Components 0.1; \n\
860 import Ubuntu.Settings.Components 0.1; \n\
@@ -835,7 +864,7 @@ function createCardComponent(parent, template, components) {
835 var code = imports + 'Component {\n' + card + '}\n';
864 var code = imports + 'Component {\n' + card + '}\n';
836
865
837 try {
866 try {
838− return Qt.createQmlObject(code, parent, "createCardComponent");
867+ return Qt.createQmlObject(code, parent, identifier);
839 } catch (e) {
868 } catch (e) {
840 console.error("ERROR: Invalid component created.");
869 console.error("ERROR: Invalid component created.");
841 console.error("Template:");
870 console.error("Template:");
plugins/Dash/CardCreatorCache.qml+1−1
@@ -32,7 +32,7 @@ QtObject {
32 var allString = tString + cString;
32 var allString = tString + cString;
33 var component = cache[allString];
33 var component = cache[allString];
34 if (component === undefined) {
34 if (component === undefined) {
35− component = CardCreator.createCardComponent(root, template, components);
35+ component = CardCreator.createCardComponent(root, template, components, allString);
36 cache[allString] = component;
36 cache[allString] = component;
37 }
37 }
38 return component;
38 return component;
plugins/Dash/listviewwithpageheader.cpp+18−9
@@ -219,13 +219,7 @@ void ListViewWithPageHeader::setDelegate(QQmlComponent *delegate)
219 Q_FOREACH(ListItem *item, m_visibleItems)
219 Q_FOREACH(ListItem *item, m_visibleItems)
220 releaseItem(item);
220 releaseItem(item);
221 m_visibleItems.clear();
221 m_visibleItems.clear();
222− m_firstVisibleIndex = -1;
222+ initializeValuesForEmptyList();
223− adjustMinYExtent();
224− setContentY(0);
225− m_clipItem->setY(0);
226− if (m_topSectionItem) {
227− QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
228− }
229
223
230 m_delegateModel->setDelegate(delegate);
224 m_delegateModel->setDelegate(delegate);
231
225
@@ -236,6 +230,17 @@ void ListViewWithPageHeader::setDelegate(QQmlComponent *delegate)
236 }
230 }
237}
231}
238
232
233+void ListViewWithPageHeader::initializeValuesForEmptyList()
234+{
235+ m_firstVisibleIndex = -1;
236+ adjustMinYExtent();
237+ setContentY(0);
238+ m_clipItem->setY(0);
239+ if (m_topSectionItem) {
240+ QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
241+ }
242+}
243+
239QQuickItem *ListViewWithPageHeader::header() const
244QQuickItem *ListViewWithPageHeader::header() const
240{
245{
241 return m_headerItem;
246 return m_headerItem;
@@ -835,7 +840,7 @@ bool ListViewWithPageHeader::removeNonVisibleItems(qreal bufferFrom, qreal buffe
835 }
840 }
836 }
841 }
837 if (!foundVisible) {
842 if (!foundVisible) {
838− m_firstVisibleIndex = -1;
843+ initializeValuesForEmptyList();
839 }
844 }
840 if (m_firstVisibleIndex != oldFirstVisibleIndex) {
845 if (m_firstVisibleIndex != oldFirstVisibleIndex) {
841 adjustMinYExtent();
846 adjustMinYExtent();
@@ -1092,7 +1097,11 @@ void ListViewWithPageHeader::onModelUpdated(const QQmlChangeSet &changeSet, bool
1092 }
1097 }
1093
1098
1094 if (m_firstVisibleIndex != oldFirstVisibleIndex) {
1099 if (m_firstVisibleIndex != oldFirstVisibleIndex) {
1100+ if (m_visibleItems.isEmpty()) {
1101+ initializeValuesForEmptyList();
1102+ } else {
1095− adjustMinYExtent();
1103+ adjustMinYExtent();
1104+ }
1096 }
1105 }
1097
1106
1098 for (int i = 0; i < m_visibleItems.count(); ++i) {
1107 for (int i = 0; i < m_visibleItems.count(); ++i) {
plugins/Dash/listviewwithpageheader.h+1
@@ -168,6 +168,7 @@ private:
168 QQuickItem *getSectionItem(int modelIndex, bool alreadyInserted);
168 QQuickItem *getSectionItem(int modelIndex, bool alreadyInserted);
169 QQuickItem *getSectionItem(const QString &sectionText);
169 QQuickItem *getSectionItem(const QString &sectionText);
170 void updateSectionItem(int modelIndex);
170 void updateSectionItem(int modelIndex);
171+ void initializeValuesForEmptyList();
171
172
172 QQmlDelegateModel *m_delegateModel;
173 QQmlDelegateModel *m_delegateModel;
173
174
plugins/IntegratedLightDM/liblightdm/CMakeLists.txt+3
@@ -13,14 +13,17 @@ add_library(MockLightDM-demo-shared SHARED ${LibLightDM_SOURCES})
13
13
14include_directories(
14include_directories(
15 ${CMAKE_CURRENT_BINARY_DIR}
15 ${CMAKE_CURRENT_BINARY_DIR}
16+ ${GLIB_INCLUDE_DIRS}
16 ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
17 ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
17)
18)
18
19
19target_link_libraries(integratedLightDM
20target_link_libraries(integratedLightDM
21+ ${GLIB_LIBRARIES}
20 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
22 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
21 -lpam
23 -lpam
22)
24)
23target_link_libraries(MockLightDM-demo-shared
25target_link_libraries(MockLightDM-demo-shared
26+ ${GLIB_LIBRARIES}
24 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
27 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
25 -lpam
28 -lpam
26)
29)
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+23−7
@@ -18,6 +18,7 @@
18
18
19#include "UsersModelPrivate.h"
19#include "UsersModelPrivate.h"
20
20
21+#include <glib.h>
21#include <QDir>
22#include <QDir>
22#include <QSettings>
23#include <QSettings>
23#include <QStringList>
24#include <QStringList>
@@ -28,14 +29,29 @@ namespace QLightDM
28UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
29UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
29 : q_ptr(parent)
30 : q_ptr(parent)
30{
31{
31− QSettings settings(QDir::homePath() + "/.unity8-greeter-demo", QSettings::NativeFormat);
32+ QFileInfo demoFile(QDir::homePath() + "/.unity8-greeter-demo");
32− QStringList users = settings.value(QStringLiteral("users"), QStringList() << qgetenv("USER")).toStringList();
33+ QString currentUser = g_get_user_name();
33
34
35+ if (demoFile.exists()) {
36+ QSettings settings(demoFile.filePath(), QSettings::NativeFormat);
37+ QStringList users = settings.value(QStringLiteral("users"), QStringList() << currentUser).toStringList();
38+
34− entries.reserve(users.count());
39+ entries.reserve(users.count());
35− Q_FOREACH(const QString &user, users)
40+ Q_FOREACH(const QString &user, users)
36− {
41+ {
37− QString name = settings.value(user + "/name", user).toString();
42+ QString name = settings.value(user + "/name", user).toString();
38− entries.append({user, name, 0, 0, false, false, 0, 0});
43+ entries.append({user, name, 0, 0, false, false, 0, 0});
44+ }
45+ } else {
46+ // If we were using the actual liblightdm, we could just ask it
47+ // for the user's real name. But we aren't. We *should* ask
48+ // AccountsService for the real name, like liblightdm does internally,
49+ // but this is close enough since AS and passwd are always in sync.
50+ QString realName = QString::fromUtf8(g_get_real_name()); // gets name from passwd entry
51+ if (realName == QStringLiteral("Unknown")) { // glib doesn't translate this string
52+ realName.clear();
53+ }
54+ entries.append({currentUser, realName, 0, 0, false, false, 0, 0});
39 }
55 }
40}
56}
41
57
plugins/Powerd/CMakeLists.txt−2
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
3include_directories(
1include_directories(
4 ${GIO_INCLUDE_DIRS}
2 ${GIO_INCLUDE_DIRS}
5)
3)
plugins/UInput/CMakeLists.txtnew file+7
@@ -0,0 +1,7 @@
1+add_library(UInput-qml MODULE
2+ plugin.cpp
3+ uinput.cpp
4+)
5+
6+qt5_use_modules(UInput-qml Qml)
7+add_unity8_plugin(UInput 0.1 UInput TARGETS UInput-qml)
plugins/UInput/UInput.qmltypesnew file+44
@@ -0,0 +1,44 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable UInput 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "UInput"
12+ prototype: "QObject"
13+ exports: ["UInput/UInput 0.1"]
14+ exportMetaObjectRevisions: [0]
15+ Enum {
16+ name: "Button"
17+ values: {
18+ "ButtonLeft": 0,
19+ "ButtonRight": 1,
20+ "ButtonMiddle": 2
21+ }
22+ }
23+ Method { name: "createMouse" }
24+ Method { name: "removeMouse" }
25+ Method {
26+ name: "moveMouse"
27+ Parameter { name: "dx"; type: "int" }
28+ Parameter { name: "dy"; type: "int" }
29+ }
30+ Method {
31+ name: "pressMouse"
32+ Parameter { name: "button"; type: "Button" }
33+ }
34+ Method {
35+ name: "releaseMouse"
36+ Parameter { name: "button"; type: "Button" }
37+ }
38+ Method {
39+ name: "scrollMouse"
40+ Parameter { name: "dh"; type: "int" }
41+ Parameter { name: "dv"; type: "int" }
42+ }
43+ }
44+}
plugins/UInput/plugin.cppnew file+26
@@ -0,0 +1,26 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "plugin.h"
18+#include "uinput.h"
19+
20+#include <QtQml/qqml.h>
21+
22+void UInputPlugin::registerTypes(const char *uri)
23+{
24+ Q_ASSERT(uri == QLatin1String("UInput"));
25+ qmlRegisterType<UInput>(uri, 0, 1, "UInput");
26+}
plugins/UInput/plugin.hnew file+32
@@ -0,0 +1,32 @@
1+/*
2+ * Copyright (C) 2015 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+#ifndef UINPUT_PLUGIN_H
18+#define UINPUT_PLUGIN_H
19+
20+#include <QtQml/QQmlEngine>
21+#include <QtQml/QQmlExtensionPlugin>
22+
23+class UInputPlugin : public QQmlExtensionPlugin
24+{
25+ Q_OBJECT
26+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
27+
28+public:
29+ void registerTypes(const char *uri) override;
30+};
31+
32+#endif
plugins/UInput/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module UInput
2+plugin UInput-qml
3+typeinfo UInput.qmltypes
plugins/UInput/uinput.cppnew file+182
@@ -0,0 +1,182 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "uinput.h"
18+
19+#include <QFile>
20+#include <QDebug>
21+#include <QDateTime>
22+
23+#include <unistd.h>
24+#include <time.h>
25+
26+UInput::UInput(QObject *parent) :
27+ QObject(parent)
28+{
29+ m_devName = QByteArrayLiteral("unity8-simulated-mouse");
30+ m_uinput.setFileName(QStringLiteral("/dev/uinput"));
31+
32+ memset(&m_uinput_mouse_dev, 0, sizeof(m_uinput_mouse_dev));
33+ m_uinput_mouse_dev.id.bustype = BUS_USB;
34+ m_uinput_mouse_dev.id.version = 1;
35+ strncpy(m_uinput_mouse_dev.name, m_devName.constData(), m_devName.length());
36+}
37+
38+UInput::~UInput()
39+{
40+ if (m_mouseCreated) {
41+ removeMouse();
42+ }
43+}
44+
45+void UInput::createMouse()
46+{
47+ if (m_mouseCreated) {
48+ qDebug() << "Already have a virtual device. Not creating another one.";
49+ return;
50+ }
51+
52+ if (!m_uinput.isOpen() && !m_uinput.open(QFile::WriteOnly)) {
53+ return;
54+ }
55+
56+ ioctl(m_uinput.handle(), UI_SET_EVBIT, EV_REL);
57+ ioctl(m_uinput.handle(), UI_SET_RELBIT, REL_X);
58+ ioctl(m_uinput.handle(), UI_SET_RELBIT, REL_Y);
59+ ioctl(m_uinput.handle(), UI_SET_RELBIT, REL_HWHEEL);
60+ ioctl(m_uinput.handle(), UI_SET_RELBIT, REL_WHEEL);
61+
62+ ioctl(m_uinput.handle(), UI_SET_EVBIT, EV_KEY);
63+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_MOUSE);
64+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_LEFT);
65+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_MIDDLE);
66+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_RIGHT);
67+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_FORWARD);
68+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_BACK);
69+
70+ ioctl(m_uinput.handle(), UI_SET_EVBIT, EV_SYN);
71+
72+ int len = write(m_uinput.handle(), &m_uinput_mouse_dev, sizeof(m_uinput_mouse_dev));
73+ if (len <= 0) {
74+ qWarning() << "Failed to write to uinput. Cannot create virtual uinput mouse.";
75+ return;
76+ }
77+
78+ int err = ioctl(m_uinput.handle(), UI_DEV_CREATE);
79+ if (err != 0) {
80+ qWarning() << "Cannot create virtual uinput device. Create ioctl failed:" << err;
81+ return;
82+ }
83+ m_mouseCreated = true;
84+ qDebug() << "Virtual uinput mouse device created.";
85+}
86+
87+void UInput::removeMouse()
88+{
89+ if (!m_mouseCreated) {
90+ return;
91+ }
92+
93+ if (!m_uinput.isOpen() && !m_uinput.open(QFile::WriteOnly)) {
94+ qWarning() << "cannot open uinput... ";
95+ return;
96+ }
97+
98+ int err = ioctl(m_uinput.handle(), UI_DEV_DESTROY);
99+ if (err != 0) {
100+ qWarning() << "Failed to destroy virtual uinput device. Destroy ioctl failed:" << err;
101+ } else {
102+ qDebug() << "Virtual uinput mouse device removed.";
103+ }
104+ m_uinput.close();
105+ m_mouseCreated = false;
106+}
107+
108+void UInput::moveMouse(int dx, int dy)
109+{
110+ struct input_event event;
111+ memset(&event, 0, sizeof(event));
112+ clock_gettime(CLOCK_MONOTONIC, (timespec*)&event.time);
113+ event.type = EV_REL;
114+ event.code = REL_X;
115+ event.value = dx;
116+ write(m_uinput.handle(), &event, sizeof(event));
117+
118+ event.code = REL_Y;
119+ event.value = dy;
120+ write(m_uinput.handle(), &event, sizeof(event));
121+
122+ event.type = EV_SYN;
123+ event.code = SYN_REPORT;
124+ event.value = 0;
125+ write(m_uinput.handle(), &event, sizeof(event));
126+}
127+
128+void UInput::pressMouse(Button button)
129+{
130+ injectMouse(button, 1);
131+}
132+
133+void UInput::releaseMouse(Button button)
134+{
135+ injectMouse(button, 0);
136+}
137+
138+void UInput::scrollMouse(int dh, int dv)
139+{
140+ struct input_event event;
141+ memset(&event, 0, sizeof(event));
142+ clock_gettime(CLOCK_MONOTONIC, (timespec*)&event.time);
143+ event.type = EV_REL;
144+ event.code = REL_HWHEEL;
145+ event.value = dh;
146+ write(m_uinput.handle(), &event, sizeof(event));
147+
148+ event.code = REL_WHEEL;
149+ event.value = dv;
150+ write(m_uinput.handle(), &event, sizeof(event));
151+
152+ event.type = EV_SYN;
153+ event.code = SYN_REPORT;
154+ event.value = 0;
155+ write(m_uinput.handle(), &event, sizeof(event));
156+}
157+
158+void UInput::injectMouse(Button button, int down)
159+{
160+ struct input_event event;
161+ memset(&event, 0, sizeof(event));
162+ clock_gettime(CLOCK_MONOTONIC, (timespec*)&event.time);
163+ event.type = EV_KEY;
164+ switch (button) {
165+ case ButtonLeft:
166+ event.code = BTN_LEFT;
167+ break;
168+ case ButtonRight:
169+ event.code = BTN_RIGHT;
170+ break;
171+ case ButtonMiddle:
172+ event.code = BTN_MIDDLE;
173+ break;
174+ }
175+ event.value = down;
176+ write(m_uinput.handle(), &event, sizeof(event));
177+
178+ event.type = EV_SYN;
179+ event.code = SYN_REPORT;
180+ event.value = 0;
181+ write(m_uinput.handle(), &event, sizeof(event));
182+}
plugins/UInput/uinput.hnew file+61
@@ -0,0 +1,61 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+
18+#ifndef UINPUT_H
19+#define UINPUT_H
20+
21+#include <QObject>
22+#include <QFile>
23+
24+#include <linux/uinput.h>
25+
26+
27+class UInput : public QObject
28+{
29+ Q_OBJECT
30+ Q_ENUMS(Button)
31+
32+public:
33+ enum Button {
34+ ButtonLeft,
35+ ButtonRight,
36+ ButtonMiddle
37+ };
38+
39+ explicit UInput(QObject *parent = nullptr);
40+ ~UInput();
41+
42+ Q_INVOKABLE void createMouse();
43+ Q_INVOKABLE void removeMouse();
44+
45+ Q_INVOKABLE void moveMouse(int dx, int dy);
46+ Q_INVOKABLE void pressMouse(Button button);
47+ Q_INVOKABLE void releaseMouse(Button button);
48+ Q_INVOKABLE void scrollMouse(int dh, int dv);
49+
50+private:
51+ void injectMouse(Button button, int down);
52+
53+private:
54+ QFile m_uinput;
55+ uinput_user_dev m_uinput_mouse_dev;
56+ QByteArray m_devName;
57+
58+ bool m_mouseCreated = false;
59+};
60+
61+#endif // UINPUT_H
plugins/Unity/Indicators/CMakeLists.txt−4
@@ -1,9 +1,5 @@
1project(IndicatorsQml)
1project(IndicatorsQml)
2
2
3−pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
4−pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
5−pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
6−
7find_package(Qt5Core REQUIRED)
3find_package(Qt5Core REQUIRED)
8find_package(Qt5Quick REQUIRED)
4find_package(Qt5Quick REQUIRED)
9
5
plugins/Unity/Indicators/modelactionrootstate.cpp+76−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright 2013-2016 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 Lesser General Public License as published by
5 * it under the terms of the GNU Lesser General Public License as published by
@@ -32,6 +32,7 @@ extern "C" {
32ModelActionRootState::ModelActionRootState(QObject *parent)
32ModelActionRootState::ModelActionRootState(QObject *parent)
33 : RootStateObject(parent),
33 : RootStateObject(parent),
34 m_menu(nullptr)
34 m_menu(nullptr)
35+ , m_reentryGuard(false)
35{
36{
36}
37}
37
38
@@ -62,6 +63,7 @@ void ModelActionRootState::setMenu(UnityMenuModel* menu)
62 connect(m_menu, &UnityMenuModel::destroyed, this, &ModelActionRootState::reset);
63 connect(m_menu, &UnityMenuModel::destroyed, this, &ModelActionRootState::reset);
63 }
64 }
64 updateActionState();
65 updateActionState();
66+ updateOtherActions();
65 Q_EMIT menuChanged();
67 Q_EMIT menuChanged();
66
68
67 if (wasValid != valid())
69 if (wasValid != valid())
@@ -69,6 +71,21 @@ void ModelActionRootState::setMenu(UnityMenuModel* menu)
69 }
71 }
70}
72}
71
73
74+QString ModelActionRootState::secondaryAction() const
75+{
76+ return m_secondaryAction;
77+}
78+
79+QString ModelActionRootState::scrollAction() const
80+{
81+ return m_scrollAction;
82+}
83+
84+QString ModelActionRootState::submenuAction() const
85+{
86+ return m_submenuAction;
87+}
88+
72bool ModelActionRootState::valid() const
89bool ModelActionRootState::valid() const
73{
90{
74 return !currentState().empty();
91 return !currentState().empty();
@@ -79,6 +96,7 @@ void ModelActionRootState::onModelRowsAdded(const QModelIndex& parent, int start
79 Q_UNUSED(parent);
96 Q_UNUSED(parent);
80 if (start == 0 && end >= 0) {
97 if (start == 0 && end >= 0) {
81 updateActionState();
98 updateActionState();
99+ updateOtherActions();
82 }
100 }
83}
101}
84
102
@@ -87,6 +105,7 @@ void ModelActionRootState::onModelRowsRemoved(const QModelIndex& parent, int sta
87 Q_UNUSED(parent);
105 Q_UNUSED(parent);
88 if (start == 0 && end >= 0) {
106 if (start == 0 && end >= 0) {
89 updateActionState();
107 updateActionState();
108+ updateOtherActions();
90 }
109 }
91}
110}
92
111
@@ -99,6 +118,7 @@ void ModelActionRootState::onModelDataChanged(const QModelIndex& topLeft, const
99
118
100 if (topLeft.row() <= 0 && bottomRight.row() >= 0) {
119 if (topLeft.row() <= 0 && bottomRight.row() >= 0) {
101 updateActionState();
120 updateActionState();
121+ updateOtherActions();
102 }
122 }
103}
123}
104
124
@@ -108,10 +128,15 @@ void ModelActionRootState::reset()
108
128
109 Q_EMIT menuChanged();
129 Q_EMIT menuChanged();
110 setCurrentState(QVariantMap());
130 setCurrentState(QVariantMap());
131+
132+ updateOtherActions();
111}
133}
112
134
113void ModelActionRootState::updateActionState()
135void ModelActionRootState::updateActionState()
114{
136{
137+ if (m_reentryGuard) return;
138+ m_reentryGuard = true;
139+
115 if (m_menu && m_menu->rowCount() > 0) {
140 if (m_menu && m_menu->rowCount() > 0) {
116 ActionStateParser* oldParser = m_menu->actionStateParser();
141 ActionStateParser* oldParser = m_menu->actionStateParser();
117 m_menu->setActionStateParser(&m_parser);
142 m_menu->setActionStateParser(&m_parser);
@@ -126,4 +151,54 @@ void ModelActionRootState::updateActionState()
126 }
151 }
127 // else if m_menu->rowCount() == 0, let's leave existing cache in place
152 // else if m_menu->rowCount() == 0, let's leave existing cache in place
128 // until the new menu comes in, to avoid flashing the UI empty for a moment
153 // until the new menu comes in, to avoid flashing the UI empty for a moment
154+
155+ m_reentryGuard = false;
156+}
157+
158+void ModelActionRootState::updateOtherActions()
159+{
160+ if (m_reentryGuard) return;
161+ m_reentryGuard = true;
162+
163+ if (m_menu && m_menu->rowCount() > 0) {
164+ QVariantMap map;
165+ map[QStringLiteral("submenu-action")] = QStringLiteral("string");
166+ map[QStringLiteral("x-canonical-scroll-action")] = QStringLiteral("string");
167+ map[QStringLiteral("x-canonical-secondary-action")] = QStringLiteral("string");
168+ m_menu->loadExtendedAttributes(0, map);
169+ QVariantMap extMap = m_menu->get(0, "ext").toMap();
170+
171+ QString secondaryAction = extMap.value(QStringLiteral("xCanonicalSecondaryAction")).toString();
172+ if (m_secondaryAction != secondaryAction) {
173+ m_secondaryAction = secondaryAction;
174+ Q_EMIT secondaryActionChanged();
175+ }
176+
177+ QString scrollAction = extMap.value(QStringLiteral("xCanonicalScrollAction")).toString();
178+ if (m_scrollAction != scrollAction) {
179+ m_scrollAction = scrollAction;
180+ Q_EMIT scrollActionChanged();
181+ }
182+
183+ QString submenuAction = extMap.value(QStringLiteral("submenuAction")).toString();
184+ if (m_submenuAction != submenuAction) {
185+ m_submenuAction = submenuAction;
186+ Q_EMIT submenuActionChanged();
187+ }
188+ } else {
189+ if (!m_secondaryAction.isEmpty()) {
190+ m_secondaryAction.clear();
191+ Q_EMIT secondaryActionChanged();
192+ }
193+ if (!m_scrollAction.isEmpty()) {
194+ m_scrollAction.clear();
195+ Q_EMIT scrollActionChanged();
196+ }
197+ if (!m_submenuAction.isEmpty()) {
198+ m_submenuAction.clear();
199+ Q_EMIT submenuActionChanged();
200+ }
201+ }
202+
203+ m_reentryGuard = false;
129}
204}
plugins/Unity/Indicators/modelactionrootstate.h+15−4
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright 2013-2016 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 Lesser General Public License as published by
5 * it under the terms of the GNU Lesser General Public License as published by
@@ -30,6 +30,9 @@ class UNITYINDICATORS_EXPORT ModelActionRootState : public RootStateObject
30{
30{
31 Q_OBJECT
31 Q_OBJECT
32 Q_PROPERTY(UnityMenuModel* menu READ menu WRITE setMenu NOTIFY menuChanged)
32 Q_PROPERTY(UnityMenuModel* menu READ menu WRITE setMenu NOTIFY menuChanged)
33+ Q_PROPERTY(QString secondaryAction READ secondaryAction NOTIFY secondaryActionChanged)
34+ Q_PROPERTY(QString scrollAction READ scrollAction NOTIFY scrollActionChanged)
35+ Q_PROPERTY(QString submenuAction READ submenuAction NOTIFY submenuActionChanged)
33public:
36public:
34 ModelActionRootState(QObject *parent = 0);
37 ModelActionRootState(QObject *parent = 0);
35 virtual ~ModelActionRootState();
38 virtual ~ModelActionRootState();
@@ -37,14 +40,17 @@ public:
37 UnityMenuModel* menu() const;
40 UnityMenuModel* menu() const;
38 void setMenu(UnityMenuModel* menu);
41 void setMenu(UnityMenuModel* menu);
39
42
40− int index() const;
43+ QString secondaryAction() const;
41− void setIndex(int index);
44+ QString scrollAction() const;
45+ QString submenuAction() const;
42
46
43 bool valid() const override;
47 bool valid() const override;
44
48
45Q_SIGNALS:
49Q_SIGNALS:
46 void menuChanged();
50 void menuChanged();
47− void indexChanged();
51+ void secondaryActionChanged();
52+ void scrollActionChanged();
53+ void submenuActionChanged();
48
54
49private Q_SLOTS:
55private Q_SLOTS:
50 void onModelRowsAdded(const QModelIndex& parent, int start, int end);
56 void onModelRowsAdded(const QModelIndex& parent, int start, int end);
@@ -54,8 +60,13 @@ private Q_SLOTS:
54
60
55private:
61private:
56 void updateActionState();
62 void updateActionState();
63+ void updateOtherActions();
57
64
58 UnityMenuModel* m_menu;
65 UnityMenuModel* m_menu;
66+ QString m_secondaryAction;
67+ QString m_scrollAction;
68+ QString m_submenuAction;
69+ bool m_reentryGuard;
59};
70};
60
71
61#endif // MODELACTIONROOTSTATE_H
72#endif // MODELACTIONROOTSTATE_H
plugins/Unity/Session/CMakeLists.txt−2
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
3include_directories(
1include_directories(
4 ${CMAKE_CURRENT_SOURCE_DIR}
2 ${CMAKE_CURRENT_SOURCE_DIR}
5 ${CMAKE_CURRENT_BINARY_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
plugins/Utils/CMakeLists.txt+2−3
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
3include_directories(
1include_directories(
4 ${CMAKE_CURRENT_SOURCE_DIR}
2 ${CMAKE_CURRENT_SOURCE_DIR}
5 ${CMAKE_CURRENT_BINARY_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
@@ -13,7 +11,7 @@ set(QMLPLUGIN_SRC
13 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
11 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
14 applicationsfiltermodel.cpp
12 applicationsfiltermodel.cpp
15 constants.cpp
13 constants.cpp
16− HomeKeyWatcher.cpp
14+ WindowInputMonitor.cpp
17 inputwatcher.cpp
15 inputwatcher.cpp
18 qlimitproxymodelqml.cpp
16 qlimitproxymodelqml.cpp
19 unitysortfilterproxymodelqml.cpp
17 unitysortfilterproxymodelqml.cpp
@@ -24,6 +22,7 @@ set(QMLPLUGIN_SRC
24 easingcurve.cpp
22 easingcurve.cpp
25 windowstatestorage.cpp
23 windowstatestorage.cpp
26 timezoneFormatter.cpp
24 timezoneFormatter.cpp
25+ inputeventgenerator.cpp
27 plugin.cpp
26 plugin.cpp
28 )
27 )
29
28
plugins/Utils/EdgeBarrierSettings.qml+1−1
@@ -35,7 +35,7 @@ QtObject {
35
35
36 property Timer printSettingsTimer: Timer {
36 property Timer printSettingsTimer: Timer {
37 interval: 1
37 interval: 1
38− onTriggered: printSettings();
38+ onTriggered: d.printSettings();
39 }
39 }
40 function printSettings() {
40 function printSettings() {
41 console.log("EdgeBarrierSettings: min="+(minPushThreshold/units.gu(1))+"gu("+minPushThreshold+"px)"
41 console.log("EdgeBarrierSettings: min="+(minPushThreshold/units.gu(1))+"gu("+minPushThreshold+"px)"
plugins/Utils/HomeKeyWatcher.hdeleted−74
@@ -1,74 +0,0 @@
1−/*
2− * Copyright (C) 2015 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−#ifndef UNITY_HOMEKEYWATCHER_H
18−#define UNITY_HOMEKEYWATCHER_H
19−
20−#include <QQuickItem>
21−#include <QPointer>
22−
23−#include "Timer.h"
24−#include "ElapsedTimer.h"
25−
26−/*
27− Signals when the home key seems to be have been intentionally tapped.
28−
29− It only says the home key has been activated if it has been tapped in isolation,
30− that is, without being accompanied by touches on the screen. Home key taps that
31− happen along with (or immediately after, or immediately before) touches on the
32− screen are considered to have happened unintentionally and are thus ignored.
33−
34− Rationale being that it's easy to accidentally hit the home key while performing
35− a swipe from a screen edge, for instance. That's particularly the case when the
36− home key is a capacitive key.
37− */
38−class HomeKeyWatcher : public QQuickItem
39−{
40− Q_OBJECT
41−public:
42−
43− HomeKeyWatcher(QQuickItem *parent = 0);
44−
45− // for testing
46− HomeKeyWatcher(UnityUtil::AbstractTimer *timer,
47− UnityUtil::AbstractElapsedTimer *elapsedTimer,
48− QQuickItem *parent = 0);
49−
50− virtual ~HomeKeyWatcher();
51−
52− bool eventFilter(QObject *watched, QEvent *event) override;
53−
54− void update(QEvent *event);
55−
56− const qint64 msecsWithoutTouches = 150;
57−
58−Q_SIGNALS:
59− // Emitted when the home key has been intentionally tapped
60− void activated();
61−
62−private Q_SLOTS:
63− void setupFilterOnWindow(QQuickWindow *window);
64− void emitActivatedIfNoTouchesAround();
65−
66−private:
67− QPointer<QQuickWindow> m_filteredWindow;
68− bool m_windowBeingTouched;
69− bool m_homeKeyPressed;
70− UnityUtil::AbstractElapsedTimer *m_windowLastTouchedTimer;
71− UnityUtil::AbstractTimer *m_activationTimer;
72−};
73−
74−#endif // UNITY_HOMEKEYWATCHER_H
plugins/Utils/HomeKeyWatcher.cpp → plugins/Utils/WindowInputMonitor.cpprenamed+19−12
@@ -14,18 +14,18 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−#include "HomeKeyWatcher.h"
17+#include "WindowInputMonitor.h"
18
18
19#include <QQuickWindow>
19#include <QQuickWindow>
20
20
21using namespace UnityUtil;
21using namespace UnityUtil;
22
22
23−HomeKeyWatcher::HomeKeyWatcher(QQuickItem *parent)
23+WindowInputMonitor::WindowInputMonitor(QQuickItem *parent)
24− : HomeKeyWatcher(new Timer, new ElapsedTimer, parent)
24+ : WindowInputMonitor(new Timer, new ElapsedTimer, parent)
25{
25{
26}
26}
27
27
28−HomeKeyWatcher::HomeKeyWatcher(UnityUtil::AbstractTimer *timer,
28+WindowInputMonitor::WindowInputMonitor(UnityUtil::AbstractTimer *timer,
29 UnityUtil::AbstractElapsedTimer *elapsedTimer,
29 UnityUtil::AbstractElapsedTimer *elapsedTimer,
30 QQuickItem *parent)
30 QQuickItem *parent)
31 : QQuickItem(parent)
31 : QQuickItem(parent)
@@ -37,20 +37,20 @@ HomeKeyWatcher::HomeKeyWatcher(UnityUtil::AbstractTimer *timer,
37 m_windowLastTouchedTimer->start();
37 m_windowLastTouchedTimer->start();
38
38
39 connect(this, &QQuickItem::windowChanged,
39 connect(this, &QQuickItem::windowChanged,
40− this, &HomeKeyWatcher::setupFilterOnWindow);
40+ this, &WindowInputMonitor::setupFilterOnWindow);
41
41
42 connect(m_activationTimer, &UnityUtil::AbstractTimer::timeout,
42 connect(m_activationTimer, &UnityUtil::AbstractTimer::timeout,
43− this, &HomeKeyWatcher::emitActivatedIfNoTouchesAround);
43+ this, &WindowInputMonitor::emitActivatedIfNoTouchesAround);
44 m_activationTimer->setInterval(msecsWithoutTouches);
44 m_activationTimer->setInterval(msecsWithoutTouches);
45}
45}
46
46
47−HomeKeyWatcher::~HomeKeyWatcher()
47+WindowInputMonitor::~WindowInputMonitor()
48{
48{
49 delete m_windowLastTouchedTimer;
49 delete m_windowLastTouchedTimer;
50 delete m_activationTimer;
50 delete m_activationTimer;
51}
51}
52
52
53−bool HomeKeyWatcher::eventFilter(QObject *watched, QEvent *event)
53+bool WindowInputMonitor::eventFilter(QObject *watched, QEvent *event)
54{
54{
55 Q_ASSERT(!m_filteredWindow.isNull());
55 Q_ASSERT(!m_filteredWindow.isNull());
56 Q_ASSERT(watched == static_cast<QObject*>(m_filteredWindow.data()));
56 Q_ASSERT(watched == static_cast<QObject*>(m_filteredWindow.data()));
@@ -62,7 +62,7 @@ bool HomeKeyWatcher::eventFilter(QObject *watched, QEvent *event)
62 return false;
62 return false;
63}
63}
64
64
65−void HomeKeyWatcher::update(QEvent *event)
65+void WindowInputMonitor::update(QEvent *event)
66{
66{
67 if (event->type() == QEvent::KeyPress) {
67 if (event->type() == QEvent::KeyPress) {
68 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
68 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
@@ -86,15 +86,22 @@ void HomeKeyWatcher::update(QEvent *event)
86
86
87 m_activationTimer->stop();
87 m_activationTimer->stop();
88 m_windowBeingTouched = true;
88 m_windowBeingTouched = true;
89+ Q_EMIT touchBegun();
89
90
90 } else if (event->type() == QEvent::TouchEnd) {
91 } else if (event->type() == QEvent::TouchEnd) {
91
92
92 m_windowBeingTouched = false;
93 m_windowBeingTouched = false;
93 m_windowLastTouchedTimer->start();
94 m_windowLastTouchedTimer->start();
95+
96+ QTouchEvent * touchEv = static_cast<QTouchEvent *>(event);
97+ if (touchEv && !touchEv->touchPoints().isEmpty()) {
98+ const QPointF pos = touchEv->touchPoints().last().screenPos();
99+ Q_EMIT touchEnded(pos);
100+ }
94 }
101 }
95}
102}
96
103
97−void HomeKeyWatcher::setupFilterOnWindow(QQuickWindow *window)
104+void WindowInputMonitor::setupFilterOnWindow(QQuickWindow *window)
98{
105{
99 if (!m_filteredWindow.isNull()) {
106 if (!m_filteredWindow.isNull()) {
100 m_filteredWindow->removeEventFilter(this);
107 m_filteredWindow->removeEventFilter(this);
@@ -107,10 +114,10 @@ void HomeKeyWatcher::setupFilterOnWindow(QQuickWindow *window)
107 }
114 }
108}
115}
109
116
110−void HomeKeyWatcher::emitActivatedIfNoTouchesAround()
117+void WindowInputMonitor::emitActivatedIfNoTouchesAround()
111{
118{
112 if (!m_homeKeyPressed && !m_windowBeingTouched &&
119 if (!m_homeKeyPressed && !m_windowBeingTouched &&
113 (m_windowLastTouchedTimer->elapsed() > msecsWithoutTouches)) {
120 (m_windowLastTouchedTimer->elapsed() > msecsWithoutTouches)) {
114− Q_EMIT activated();
121+ Q_EMIT homeKeyActivated();
115 }
122 }
116}
123}
plugins/Utils/WindowInputMonitor.hnew file+91
@@ -0,0 +1,91 @@
1+/*
2+ * Copyright (C) 2015 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+#ifndef UNITY_WINDOWINPUTMONITOR_H
18+#define UNITY_WINDOWINPUTMONITOR_H
19+
20+#include <QQuickItem>
21+#include <QPointer>
22+
23+#include "Timer.h"
24+#include "ElapsedTimer.h"
25+
26+/**
27+ * Monitors input events received by the window holding this item and the Home (Win aka Super_L)
28+ * key presses.
29+ *
30+ * Additionally, this class monitors for generic touch events on the screen, to
31+ * help with hiding/revealing the mouse pointer.
32+ */
33+class WindowInputMonitor : public QQuickItem
34+{
35+ Q_OBJECT
36+public:
37+
38+ WindowInputMonitor(QQuickItem *parent = 0);
39+
40+ // for testing
41+ WindowInputMonitor(UnityUtil::AbstractTimer *timer,
42+ UnityUtil::AbstractElapsedTimer *elapsedTimer,
43+ QQuickItem *parent = 0);
44+
45+ virtual ~WindowInputMonitor();
46+
47+ bool eventFilter(QObject *watched, QEvent *event) override;
48+
49+ void update(QEvent *event);
50+
51+ const qint64 msecsWithoutTouches = 150;
52+
53+Q_SIGNALS:
54+ /**
55+ * Emitted when the home key has been intentionally tapped
56+ *
57+ * It only says the home key has been activated if it has been tapped in isolation,
58+ * that is, without being accompanied by touches on the screen. Home key taps that
59+ * happen along with (or immediately after, or immediately before) touches on the
60+ * screen are considered to have happened unintentionally and are thus ignored.
61+ *
62+ * Rationale being that it's easy to accidentally hit the home key while performing
63+ * a swipe from a screen edge, for instance. That's particularly the case when the
64+ * home key is a capacitive key.
65+ */
66+ void homeKeyActivated();
67+
68+ /**
69+ * Emitted when a touch begin event is detected
70+ */
71+ void touchBegun();
72+
73+ /**
74+ * Emitted when a touch end event is detected
75+ * @param pos the position in screen coordinates
76+ */
77+ void touchEnded(const QPointF &pos);
78+
79+private Q_SLOTS:
80+ void setupFilterOnWindow(QQuickWindow *window);
81+ void emitActivatedIfNoTouchesAround();
82+
83+private:
84+ QPointer<QQuickWindow> m_filteredWindow;
85+ bool m_windowBeingTouched;
86+ bool m_homeKeyPressed;
87+ UnityUtil::AbstractElapsedTimer *m_windowLastTouchedTimer;
88+ UnityUtil::AbstractTimer *m_activationTimer;
89+};
90+
91+#endif // UNITY_WINDOWINPUTMONITOR_H
plugins/Utils/inputeventgenerator.cppnew file+34
@@ -0,0 +1,34 @@
1+/*
2+ * Copyright (C) 2016 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+#include "inputeventgenerator.h"
18+
19+#include <QQuickWindow>
20+#include <QDebug>
21+#include <QDateTime>
22+
23+InputEventGenerator::InputEventGenerator(QQuickItem *parent)
24+ : QQuickItem(parent)
25+{
26+}
27+
28+void InputEventGenerator::generateKeyEvent(Qt::Key key, bool pressed, Qt::KeyboardModifiers modifiers, quint64 timestamp, quint32 nativeScanCode, const QString &text)
29+{
30+ QEvent::Type type = pressed ? QEvent::KeyPress : QEvent::KeyRelease;
31+ QKeyEvent ev(type, key, modifiers, nativeScanCode, 0, 0, text);
32+ ev.setTimestamp(timestamp);
33+ QCoreApplication::sendEvent(window(), &ev);
34+}
plugins/Utils/inputeventgenerator.hnew file+40
@@ -0,0 +1,40 @@
1+/*
2+ * Copyright (C) 2016 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+#ifndef INPUTEVENTGENERATOR_H
18+#define INPUTEVENTGENERATOR_H
19+
20+#include <QQuickItem>
21+#include <QPointer>
22+#include <QDateTime>
23+
24+/**
25+ * \brief This class allows injecting Key events into the scene it lives in.
26+ */
27+class InputEventGenerator : public QQuickItem
28+{
29+ Q_OBJECT
30+public:
31+ InputEventGenerator(QQuickItem *parent = 0);
32+
33+ /**
34+ * Generate and post and event to the scene. The key event will be sent to the scene the Generator
35+ * lives in and it will be dispatched through the regular event/focus queue.
36+ */
37+ Q_INVOKABLE void generateKeyEvent(Qt::Key key, bool pressed, Qt::KeyboardModifiers modifiers = Qt::NoModifier, quint64 timestamp = QDateTime::currentMSecsSinceEpoch(), quint32 nativeScanCode = 0, const QString &text = QString());
38+};
39+
40+#endif // INPUTEVENTGENERATOR_H
plugins/Utils/plugin.cpp+4−2
@@ -25,7 +25,7 @@
25// local
25// local
26#include "activefocuslogger.h"
26#include "activefocuslogger.h"
27#include "easingcurve.h"
27#include "easingcurve.h"
28−#include "HomeKeyWatcher.h"
28+#include "WindowInputMonitor.h"
29#include "inputwatcher.h"
29#include "inputwatcher.h"
30#include "qlimitproxymodelqml.h"
30#include "qlimitproxymodelqml.h"
31#include "unitysortfilterproxymodelqml.h"
31#include "unitysortfilterproxymodelqml.h"
@@ -36,6 +36,7 @@
36#include "constants.h"
36#include "constants.h"
37#include "timezoneFormatter.h"
37#include "timezoneFormatter.h"
38#include "applicationsfiltermodel.h"
38#include "applicationsfiltermodel.h"
39+#include "inputeventgenerator.h"
39
40
40static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
41static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
41{
42{
@@ -54,7 +55,7 @@ static QObject *createConstants(QQmlEngine *engine, QJSEngine *scriptEngine)
54void UtilsPlugin::registerTypes(const char *uri)
55void UtilsPlugin::registerTypes(const char *uri)
55{
56{
56 Q_ASSERT(uri == QLatin1String("Utils"));
57 Q_ASSERT(uri == QLatin1String("Utils"));
57− qmlRegisterType<HomeKeyWatcher>(uri, 0, 1, "HomeKeyWatcher");
58+ qmlRegisterType<WindowInputMonitor>(uri, 0, 1, "WindowInputMonitor");
58 qmlRegisterType<QAbstractItemModel>();
59 qmlRegisterType<QAbstractItemModel>();
59 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1, "LimitProxyModel");
60 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1, "LimitProxyModel");
60 qmlRegisterType<UnitySortFilterProxyModelQML>(uri, 0, 1, "UnitySortFilterProxyModel");
61 qmlRegisterType<UnitySortFilterProxyModelQML>(uri, 0, 1, "UnitySortFilterProxyModel");
@@ -68,6 +69,7 @@ void UtilsPlugin::registerTypes(const char *uri)
68 [](QQmlEngine*, QJSEngine*) -> QObject* { return new TimezoneFormatter; });
69 [](QQmlEngine*, QJSEngine*) -> QObject* { return new TimezoneFormatter; });
69 qmlRegisterType<ActiveFocusLogger>(uri, 0, 1, "ActiveFocusLogger");
70 qmlRegisterType<ActiveFocusLogger>(uri, 0, 1, "ActiveFocusLogger");
70 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
71 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
72+ qmlRegisterType<InputEventGenerator>(uri, 0, 1, "InputEventGenerator");
71}
73}
72
74
73void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
75void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
po/aa.ponew file+667
@@ -0,0 +1,667 @@
1+# Afar translation for unity8
2+# Copyright (c) 2016 Rosetta Contributors and Canonical Ltd 2016
3+# This file is distributed under the same license as the unity8 package.
4+# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
5+#
6+msgid ""
7+msgstr ""
8+"Project-Id-Version: unity8\n"
9+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11+"PO-Revision-Date: 2016-02-12 10:18+0000\n"
12+"Last-Translator: Charif AYFARAH <ayfarah@ymail.com>\n"
13+"Language-Team: Afar <aa@li.org>\n"
14+"MIME-Version: 1.0\n"
15+"Content-Type: text/plain; charset=UTF-8\n"
16+"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19+"X-Generator: Launchpad (build 17925)\n"
20+
21+#: plugins/IntegratedLightDM/Greeter.cpp:112
22+msgid "Password: "
23+msgstr "Cuumita "
24+
25+#: plugins/Unity/Launcher/launcheritem.cpp:47
26+#: plugins/Unity/Launcher/launcheritem.cpp:106
27+msgid "Pin shortcut"
28+msgstr ""
29+
30+#: plugins/Unity/Launcher/launcheritem.cpp:52
31+msgid "Quit"
32+msgstr "Kat"
33+
34+#: plugins/Unity/Launcher/launcheritem.cpp:106
35+msgid "Unpin shortcut"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:49
39+msgid "Device Locked"
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:64
43+msgid "You have been locked out due to too many failed passphrase attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:65
47+msgid "You have been locked out due to too many failed passcode attempts."
48+msgstr ""
49+
50+#: qml/Components/DelayedLockscreen.qml:74
51+#, qt-format
52+msgid "Please wait %1 minute and then try again…"
53+msgid_plural "Please wait %1 minutes and then try again…"
54+msgstr[0] "Maganak %1 minit qambaalaay, kaadu gabbat"
55+msgstr[1] "Maganak %1 minit qambaalaay, kaadu gabbat"
56+
57+#: qml/Components/Dialogs.qml:144
58+msgctxt "Title: Lock/Log out dialog"
59+msgid "Log out"
60+msgstr "Eweq"
61+
62+#: qml/Components/Dialogs.qml:145
63+msgid "Are you sure you want to log out?"
64+msgstr ""
65+
66+#: qml/Components/Dialogs.qml:147
67+msgctxt "Button: Lock the system"
68+msgid "Lock"
69+msgstr "Koflis"
70+
71+#: qml/Components/Dialogs.qml:154
72+msgctxt "Button: Log out from the system"
73+msgid "Log Out"
74+msgstr "Eweq"
75+
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
77+#: qml/Components/Dialogs.qml:253
78+msgid "Cancel"
79+msgstr "Bayis"
80+
81+#: qml/Components/Dialogs.qml:173
82+msgctxt "Title: Reboot/Shut down dialog"
83+msgid "Shut down"
84+msgstr "Bargus"
85+
86+#: qml/Components/Dialogs.qml:174
87+msgid "Are you sure you want to shut down?"
88+msgstr "Bargussuh digga maay litoo?"
89+
90+#: qml/Components/Dialogs.qml:176
91+msgctxt "Button: Reboot the system"
92+msgid "Reboot"
93+msgstr "Wadir-ugus"
94+
95+#: qml/Components/Dialogs.qml:185
96+msgctxt "Button: Shut down the system"
97+msgid "Shut down"
98+msgstr "Bargus"
99+
100+#: qml/Components/Dialogs.qml:207
101+msgctxt "Title: Reboot dialog"
102+msgid "Reboot"
103+msgstr "Wadir-ugus"
104+
105+#: qml/Components/Dialogs.qml:208
106+msgid "Are you sure you want to reboot?"
107+msgstr "Wadir-ugussuh digga maay litoo?"
108+
109+#: qml/Components/Dialogs.qml:210
110+msgid "No"
111+msgstr "Maleey"
112+
113+#: qml/Components/Dialogs.qml:217
114+msgid "Yes"
115+msgstr "Yeey"
116+
117+#: qml/Components/Dialogs.qml:232
118+msgctxt "Title: Power off/Restart dialog"
119+msgid "Power"
120+msgstr "Cayla"
121+
122+#: qml/Components/Dialogs.qml:233
123+msgid ""
124+"Are you sure you would like\n"
125+"to power off?"
126+msgstr "Timmi haytuh digga maay litoo?"
127+
128+#: qml/Components/Dialogs.qml:235
129+msgctxt "Button: Power off the system"
130+msgid "Power off"
131+msgstr "Timmi hayis"
132+
133+#: qml/Components/Dialogs.qml:244
134+msgctxt "Button: Restart the system"
135+msgid "Restart"
136+msgstr "Wadir-qimbis"
137+
138+#: qml/Components/Lockscreen.qml:245
139+msgid "Return to Call"
140+msgstr "Seecol gacis"
141+
142+#: qml/Components/Lockscreen.qml:245
143+msgid "Emergency Call"
144+msgstr ""
145+
146+#: qml/Components/Lockscreen.qml:277
147+msgid "OK"
148+msgstr "Hayya"
149+
150+#: qml/Components/ModeSwitchWarningDialog.qml:32
151+msgid "Apps may have unsaved data:"
152+msgstr ""
153+
154+#: qml/Components/ModeSwitchWarningDialog.qml:57
155+msgid "Re-dock, save your work and close these apps to continue."
156+msgstr ""
157+
158+#: qml/Components/ModeSwitchWarningDialog.qml:63
159+msgid "Or force close now (unsaved data will be lost)."
160+msgstr ""
161+
162+#: qml/Components/ModeSwitchWarningDialog.qml:75
163+msgid "OK, I will reconnect"
164+msgstr ""
165+
166+#: qml/Components/ModeSwitchWarningDialog.qml:76
167+msgid "Reconnect now!"
168+msgstr ""
169+
170+#: qml/Components/ModeSwitchWarningDialog.qml:88
171+msgid "Close all"
172+msgstr "Inkih alif"
173+
174+#: qml/Dash/DashPageHeader.qml:266
175+msgctxt "Button: Open the Ubuntu Store"
176+msgid "Store"
177+msgstr ""
178+
179+#: qml/Dash/DashPageHeader.qml:273
180+msgctxt "Button: Start a search in the current dash scope"
181+msgid "Search"
182+msgstr "Goranto"
183+
184+#: qml/Dash/DashPageHeader.qml:283
185+msgctxt "Button: Show the current dash scope settings"
186+msgid "Settings"
187+msgstr "Massosu"
188+
189+#: qml/Dash/DashPageHeader.qml:290
190+msgid "Remove from Favorites"
191+msgstr ""
192+
193+#: qml/Dash/DashPageHeader.qml:290
194+msgid "Add to Favorites"
195+msgstr ""
196+
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198+msgid "See less"
199+msgstr ""
200+
201+#: qml/Dash/GenericScopeView.qml:587
202+msgid "See all"
203+msgstr ""
204+
205+#: qml/Dash/GenericScopeView.qml:649
206+msgctxt "Label: Hint for dash search line edit"
207+msgid "Search"
208+msgstr "Goranto"
209+
210+#: qml/Dash/Previews/PreviewActionCombo.qml:35
211+msgid "More..."
212+msgstr ""
213+
214+#: qml/Dash/Previews/PreviewActionCombo.qml:35
215+msgid "Less..."
216+msgstr ""
217+
218+#: qml/Dash/Previews/PreviewCommentInput.qml:68
219+#: qml/Dash/Previews/PreviewRatingInput.qml:174
220+msgid "Send"
221+msgstr "Rub"
222+
223+#: qml/Dash/Previews/PreviewRatingInput.qml:84
224+msgid "Rate this"
225+msgstr ""
226+
227+#: qml/Dash/Previews/PreviewRatingInput.qml:129
228+msgid "Add a review"
229+msgstr ""
230+
231+#: qml/Dash/Previews/PreviewSharing.qml:50
232+msgid "Preview Share Item"
233+msgstr ""
234+
235+#: qml/Dash/PullToRefreshScopeStyle.qml:55
236+msgid "Pull to refresh…"
237+msgstr ""
238+
239+#: qml/Dash/PullToRefreshScopeStyle.qml:60
240+msgid "Release to refresh…"
241+msgstr ""
242+
243+#: qml/Dash/ScopeSettings/ScopeSettingBoolean.qml:43
244+msgid "Enable location data"
245+msgstr ""
246+
247+#: qml/Dash/ScopesList.qml:67
248+msgid "Manage"
249+msgstr ""
250+
251+#: qml/Dash/ScopesList.qml:113
252+msgid "Home"
253+msgstr "Dabqi"
254+
255+#: qml/Dash/ScopesList.qml:114
256+msgid "Also installed"
257+msgstr ""
258+
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
263+msgstr ""
264+
265+#: qml/Greeter/CoverPage.qml:107
266+msgid "Unlock"
267+msgstr ""
268+
269+#: qml/Greeter/LoginList.qml:239
270+msgid "Retry"
271+msgstr "Qagis"
272+
273+#: qml/Greeter/LoginList.qml:240
274+msgid "Tap to unlock"
275+msgstr ""
276+
277+#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
278+msgid "Sorry, incorrect passphrase."
279+msgstr ""
280+
281+#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
282+msgid "Sorry, incorrect passcode."
283+msgstr ""
284+
285+#: qml/Greeter/NarrowView.qml:56
286+msgid "This will be your last attempt."
287+msgstr ""
288+
289+#: qml/Greeter/NarrowView.qml:58
290+msgid ""
291+"If passphrase is entered incorrectly, your phone will conduct a factory "
292+"reset and all personal data will be deleted."
293+msgstr ""
294+
295+#: qml/Greeter/NarrowView.qml:59
296+msgid ""
297+"If passcode is entered incorrectly, your phone will conduct a factory reset "
298+"and all personal data will be deleted."
299+msgstr ""
300+
301+#: qml/Greeter/NarrowView.qml:116
302+#, qt-format
303+msgid "Enter %1"
304+msgstr "%1 culus"
305+
306+#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
307+msgid "Enter passphrase"
308+msgstr "Tatur-maxco culus"
309+
310+#: qml/Greeter/NarrowView.qml:118
311+msgid "Enter passcode"
312+msgstr "Tatur-mudenta culus"
313+
314+#: qml/Greeter/NarrowView.qml:119
315+#, qt-format
316+msgid "Sorry, incorrect %1"
317+msgstr ""
318+
319+#: qml/Greeter/NarrowView.qml:120
320+msgid "Sorry, incorrect passphrase"
321+msgstr ""
322+
323+#: qml/Greeter/NarrowView.qml:121
324+msgctxt "passphrase"
325+msgid "Please re-enter"
326+msgstr ""
327+
328+#: qml/Greeter/NarrowView.qml:122
329+msgid "Sorry, incorrect passcode"
330+msgstr ""
331+
332+#: qml/Notifications/NotificationMenuItemFactory.qml:129
333+msgid "Show password"
334+msgstr "Cuumita uybulluy"
335+
336+#: qml/Panel/ActiveCallHint.qml:79
337+msgid "Tap to return to call..."
338+msgstr ""
339+
340+#: qml/Panel/ActiveCallHint.qml:92
341+msgid "Conference"
342+msgstr "Koboxu"
343+
344+#: qml/Panel/Indicators/MenuItemFactory.qml:753
345+msgid "Nothing is playing"
346+msgstr ""
347+
348+#: qml/Panel/Indicators/MenuItemFactory.qml:882
349+#, qt-format
350+msgid "%1 hour"
351+msgid_plural "%1 hours"
352+msgstr[0] "%1 saaqata"
353+msgstr[1] "%1 saaqata"
354+
355+#: qml/Panel/Indicators/MenuItemFactory.qml:886
356+#, qt-format
357+msgid "%1 minute"
358+msgid_plural "%1 minutes"
359+msgstr[0] "%1 miniti"
360+msgstr[1] "%1 miniti"
361+
362+#: qml/Panel/Indicators/MenuItemFactory.qml:891
363+#, qt-format
364+msgid "%1 second"
365+msgid_plural "%1 seconds"
366+msgstr[0] "%1 nammayye"
367+msgstr[1] "%1 nammayye"
368+
369+#: qml/Panel/Indicators/MenuItemFactory.qml:894
370+msgid "0 seconds"
371+msgstr "0 nammayye"
372+
373+#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
374+#: qml/Panel/Indicators/MenuItemFactory.qml:896
375+#, qt-format
376+msgid "%1 remaining"
377+msgstr "%1 raaqe"
378+
379+#: qml/Panel/Indicators/MenuItemFactory.qml:902
380+msgid "In queue…"
381+msgstr ""
382+
383+#: qml/Panel/Indicators/MenuItemFactory.qml:906
384+msgid "Downloading"
385+msgstr "Qulluumah"
386+
387+#: qml/Panel/Indicators/MenuItemFactory.qml:908
388+msgid "Paused, tap to resume"
389+msgstr ""
390+
391+#: qml/Panel/Indicators/MenuItemFactory.qml:910
392+msgid "Canceled"
393+msgstr "Bayteh"
394+
395+#: qml/Panel/Indicators/MenuItemFactory.qml:912
396+msgid "Finished"
397+msgstr "Duudumteh"
398+
399+#: qml/Panel/Indicators/MenuItemFactory.qml:914
400+msgid "Failed, tap to retry"
401+msgstr ""
402+
403+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
404+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
405+msgctxt "Button: Send a reply message"
406+msgid "Send"
407+msgstr "Rub"
408+
409+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
410+msgctxt "Label: Hint in message indicator line edit"
411+msgid "Reply"
412+msgstr ""
413+
414+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
415+msgctxt "Button: Call back on phone"
416+msgid "Call back"
417+msgstr ""
418+
419+#: qml/Panel/Indicators/ModemInfoItem.qml:105
420+msgid "Unlock SIM"
421+msgstr ""
422+
423+#: qml/Panel/Indicators/RoamingIndication.qml:27
424+msgid "Roaming"
425+msgstr ""
426+
427+#: qml/Tutorial/TutorialBottom.qml:28
428+msgid "Open special menus"
429+msgstr ""
430+
431+#: qml/Tutorial/TutorialBottom.qml:29
432+msgid "Swipe up from the bottom edge."
433+msgstr ""
434+
435+#: qml/Tutorial/TutorialBottomFinish.qml:24
436+msgid "This action does different things for different apps"
437+msgstr ""
438+
439+#: qml/Tutorial/TutorialBottomFinish.qml:25
440+msgid "Tap here to finish."
441+msgstr ""
442+
443+#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
444+#: qml/Tutorial/TutorialRight.qml:144
445+msgid "Tap here to continue."
446+msgstr ""
447+
448+#: qml/Tutorial/TutorialLeft.qml:26
449+msgid "Open the launcher"
450+msgstr ""
451+
452+#: qml/Tutorial/TutorialLeft.qml:27
453+msgid "Short swipe from the left edge."
454+msgstr ""
455+
456+#: qml/Tutorial/TutorialLeftFinish.qml:24
457+msgid "These are the shortcuts to favorite apps"
458+msgstr ""
459+
460+#: qml/Tutorial/TutorialPage.qml:178
461+msgid "You almost got it!"
462+msgstr ""
463+
464+#: qml/Tutorial/TutorialPage.qml:195
465+msgid "Try again."
466+msgstr ""
467+
468+#: qml/Tutorial/TutorialRight.qml:31
469+msgid "To view open apps"
470+msgstr ""
471+
472+#: qml/Tutorial/TutorialRight.qml:32
473+msgid "Long swipe from the right edge."
474+msgstr ""
475+
476+#: qml/Tutorial/TutorialRight.qml:122
477+msgid "View all your running tasks."
478+msgstr ""
479+
480+#: qml/Wizard/Page.qml:89
481+msgctxt "Button: Go back one page in the Wizard"
482+msgid "Back"
483+msgstr "Derre"
484+
485+#: qml/Wizard/Pages/10-welcome.qml:27
486+msgid "Hi!"
487+msgstr "Nagaale!"
488+
489+#: qml/Wizard/Pages/10-welcome.qml:44
490+msgid "Welcome to your Ubuntu device."
491+msgstr ""
492+
493+#: qml/Wizard/Pages/10-welcome.qml:52
494+msgid "Let’s get started."
495+msgstr "Hayya qimbisnay."
496+
497+#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
498+#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
499+#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
500+#: qml/Wizard/Pages/passwd-set.qml:90
501+msgid "Continue"
502+msgstr "Tatur"
503+
504+#: qml/Wizard/Pages/20-sim.qml:25
505+msgid "Add a SIM card and restart your device"
506+msgstr ""
507+
508+#: qml/Wizard/Pages/20-sim.qml:59
509+msgid "Without it, you won’t be able to make calls or use text messaging."
510+msgstr ""
511+
512+#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
513+msgid "Skip"
514+msgstr "Kaqit"
515+
516+#: qml/Wizard/Pages/30-passwd-type.qml:39
517+msgid "Lock security"
518+msgstr ""
519+
520+#: qml/Wizard/Pages/30-passwd-type.qml:79
521+msgid "Please select how you’d like to unlock your device."
522+msgstr ""
523+
524+#: qml/Wizard/Pages/30-passwd-type.qml:102
525+msgctxt "Label: Type of security method"
526+msgid "Swipe"
527+msgstr "Uysuttuc"
528+
529+#: qml/Wizard/Pages/30-passwd-type.qml:103
530+msgctxt "Label: Description of security method"
531+msgid "No security"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/30-passwd-type.qml:105
535+msgctxt "Label: Type of security method"
536+msgid "Passcode"
537+msgstr ""
538+
539+#: qml/Wizard/Pages/30-passwd-type.qml:106
540+msgctxt "Label: Description of security method"
541+msgid "4 digits only"
542+msgstr ""
543+
544+#: qml/Wizard/Pages/30-passwd-type.qml:108
545+msgctxt "Label: Type of security method"
546+msgid "Passphrase"
547+msgstr ""
548+
549+#: qml/Wizard/Pages/30-passwd-type.qml:109
550+msgctxt "Label: Description of security method"
551+msgid "Numbers and letters"
552+msgstr ""
553+
554+#: qml/Wizard/Pages/40-wifi.qml:29
555+msgid "Connect to Wi‑Fi"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/40-wifi.qml:168
559+msgid "Available networks…"
560+msgstr ""
561+
562+#: qml/Wizard/Pages/40-wifi.qml:169
563+msgid "No available networks."
564+msgstr ""
565+
566+#: qml/Wizard/Pages/50-location.qml:27
567+msgid "Location"
568+msgstr ""
569+
570+#: qml/Wizard/Pages/50-location.qml:62
571+msgid "Let the phone detect your location:"
572+msgstr ""
573+
574+#: qml/Wizard/Pages/50-location.qml:69
575+msgid "Using GPS only (less accurate)"
576+msgstr ""
577+
578+#: qml/Wizard/Pages/50-location.qml:86
579+msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
580+msgstr ""
581+
582+#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
583+#: qml/Wizard/Pages/50-location.qml:103
584+msgid ""
585+"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
586+"conditions</a>."
587+msgstr ""
588+
589+#: qml/Wizard/Pages/50-location.qml:112
590+msgid "Not at all"
591+msgstr ""
592+
593+#: qml/Wizard/Pages/50-location.qml:124
594+msgid "You can change your mind later in <b>System Settings</b>."
595+msgstr ""
596+
597+#: qml/Wizard/Pages/60-reporting.qml:26
598+msgid "Improving your experience"
599+msgstr ""
600+
601+#: qml/Wizard/Pages/60-reporting.qml:46
602+msgid ""
603+"Your phone is set up to automatically report errors to Canonical and its "
604+"partners, the makers of the operating system."
605+msgstr ""
606+
607+#: qml/Wizard/Pages/60-reporting.qml:53
608+msgid ""
609+"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
610+"Privacy</b>"
611+msgstr ""
612+
613+#: qml/Wizard/Pages/80-finished.qml:24
614+msgid "All done"
615+msgstr ""
616+
617+#: qml/Wizard/Pages/80-finished.qml:39
618+msgid "Nice work!"
619+msgstr ""
620+
621+#: qml/Wizard/Pages/80-finished.qml:46
622+msgid "Your device is now ready to use."
623+msgstr ""
624+
625+#: qml/Wizard/Pages/80-finished.qml:53
626+msgid "Finish"
627+msgstr ""
628+
629+#: qml/Wizard/Pages/here-terms.qml:27
630+msgid "Terms & Conditions"
631+msgstr ""
632+
633+#: qml/Wizard/Pages/passwd-confirm.qml:49
634+msgid "Confirm passphrase"
635+msgstr ""
636+
637+#: qml/Wizard/Pages/passwd-confirm.qml:50
638+msgid "Confirm passcode"
639+msgstr ""
640+
641+#: qml/Wizard/Pages/passwd-confirm.qml:53
642+#: qml/Wizard/Pages/passwd-confirm.qml:54
643+msgid "Please try again."
644+msgstr ""
645+
646+#: qml/Wizard/Pages/passwd-set.qml:61
647+msgid "Choose your passcode"
648+msgstr ""
649+
650+#: qml/Wizard/Pages/passwd-set.qml:68
651+msgid "Passphrase must be 4 characters long"
652+msgstr ""
653+
654+#. Translators: This is the arrow for "Back" buttons
655+#: qml/Wizard/StackButton.qml:39
656+#, qt-format
657+msgid "〈 %1"
658+msgstr ""
659+
660+#. Translators: This is the arrow for "Forward" buttons
661+#: qml/Wizard/StackButton.qml:42
662+#, qt-format
663+msgid "%1 〉"
664+msgstr ""
665+
666+#~ msgid "Welcome to your Ubuntu phone."
667+#~ msgstr "Ubuntu Telefoonul arcib"
po/am.po+29−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-11-19 19:27+0000\n"
11"PO-Revision-Date: 2015-11-19 19:27+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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "ከምወዳቸው ማስወገጃ"
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr "ወደምወዳቸው መጨመሪያ"
197msgstr "ወደምወዳቸው መጨመሪያ"
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr "አነስተኛ መመልከቻ"
201msgstr "አነስተኛ መመልከቻ"
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr "ሁሉንም መመልከቻ"
205msgstr "ሁሉንም መመልከቻ"
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr "መፈለጊያ"
210msgstr "መፈለጊያ"
@@ -258,19 +258,22 @@ msgstr "ቤት"
258msgid "Also installed"
258msgid "Also installed"
259msgstr "እንዲሁም የተገጠሙ"
259msgstr "እንዲሁም የተገጠሙ"
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
265+msgstr ""
263−msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል"
266+"የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ ከ አይጥ ጋር ተባብሮ ይሰራል"
264
267
265#: qml/Greeter/CoverPage.qml:107
268#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
269msgid "Unlock"
267msgstr "መክፈቻ"
270msgstr "መክፈቻ"
268
271
269−#: qml/Greeter/LoginList.qml:236
272+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
273msgid "Retry"
271msgstr "እንደገና ይሞክሩ"
274msgstr "እንደገና ይሞክሩ"
272
275
273−#: qml/Greeter/LoginList.qml:237
276+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
277msgid "Tap to unlock"
275msgstr "ለመክፈት መታ ያድርጉ"
278msgstr "ለመክፈት መታ ያድርጉ"
276
279
@@ -491,8 +494,8 @@ msgid "Hi!"
491msgstr "ሰላም"
494msgstr "ሰላም"
492
495
493#: qml/Wizard/Pages/10-welcome.qml:44
496#: qml/Wizard/Pages/10-welcome.qml:44
494−msgid "Welcome to your Ubuntu phone."
497+msgid "Welcome to your Ubuntu device."
495−msgstr "እንኳን ደህና መጡ ወደ እርስዎ ኡቡንቱ ስልክ"
498+msgstr "እንኳን ድህና መጡ ወደ ኡቡንቱ"
496
499
497#: qml/Wizard/Pages/10-welcome.qml:52
500#: qml/Wizard/Pages/10-welcome.qml:52
498msgid "Let’s get started."
501msgid "Let’s get started."
@@ -522,8 +525,8 @@ msgid "Lock security"
522msgstr "ደህንነት መቆለፊያ"
525msgstr "ደህንነት መቆለፊያ"
523
526
524#: qml/Wizard/Pages/30-passwd-type.qml:79
527#: qml/Wizard/Pages/30-passwd-type.qml:79
525−msgid "Please select how you’d like to unlock your phone."
528+msgid "Please select how you’d like to unlock your device."
526−msgstr "እባክዎን የ እርስዎን ስልክ እንዴት እንደሚከፍቱ ይምረጡ"
529+msgstr "እባክዎን የ እርስዎን አካል እንዴት እንደሚከፈት ይምረጡ"
527
530
528#: qml/Wizard/Pages/30-passwd-type.qml:102
531#: qml/Wizard/Pages/30-passwd-type.qml:102
529msgctxt "Label: Type of security method"
532msgctxt "Label: Type of security method"
@@ -626,8 +629,8 @@ msgid "Nice work!"
626msgstr "ጥሩ ሰርተዋል!"
629msgstr "ጥሩ ሰርተዋል!"
627
630
628#: qml/Wizard/Pages/80-finished.qml:46
631#: qml/Wizard/Pages/80-finished.qml:46
629−msgid "Your phone is now ready to use."
632+msgid "Your device is now ready to use."
630−msgstr "ስልኩ አሁን ለመጠቀም ዝግጁ ነው"
633+msgstr "የ እርስዎ አካል አሁን ዝግጁ ነው"
631
634
632#: qml/Wizard/Pages/80-finished.qml:53
635#: qml/Wizard/Pages/80-finished.qml:53
633msgid "Finish"
636msgid "Finish"
@@ -763,6 +766,15 @@ msgstr "%1 〉"
763#~ msgid "Please re-enter"
766#~ msgid "Please re-enter"
764#~ msgstr "እባክዎን እንደገና-ያስገቡ"
767#~ msgstr "እባክዎን እንደገና-ያስገቡ"
765
768
769+#~ msgid "Please select how you’d like to unlock your phone."
770+#~ msgstr "እባክዎን የ እርስዎን ስልክ እንዴት እንደሚከፍቱ ይምረጡ"
771+
772+#~ msgid "Your phone is now ready to use."
773+#~ msgstr "ስልኩ አሁን ለመጠቀም ዝግጁ ነው"
774+
775+#~ msgid "Welcome to your Ubuntu phone."
776+#~ msgstr "እንኳን ደህና መጡ ወደ እርስዎ ኡቡንቱ ስልክ"
777+
766#~ msgid "%a %d %b %H:%M"
778#~ msgid "%a %d %b %H:%M"
767#~ msgstr "%a %d %b %ሰ:%ደ"
779#~ msgstr "%a %d %b %ሰ:%ደ"
768
780
po/ar.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-29 09:41+0000\n"
11"PO-Revision-Date: 2015-07-29 09:41+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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -203,15 +203,15 @@ msgstr "حذف من المفضلات"
203msgid "Add to Favorites"
203msgid "Add to Favorites"
204msgstr "إضافة إلى المفضلات"
204msgstr "إضافة إلى المفضلات"
205
205
206−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
206+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
207msgid "See less"
207msgid "See less"
208msgstr "شاهد أقل"
208msgstr "شاهد أقل"
209
209
210−#: qml/Dash/GenericScopeView.qml:576
210+#: qml/Dash/GenericScopeView.qml:587
211msgid "See all"
211msgid "See all"
212msgstr "عرض الكل"
212msgstr "عرض الكل"
213
213
214−#: qml/Dash/GenericScopeView.qml:638
214+#: qml/Dash/GenericScopeView.qml:649
215msgctxt "Label: Hint for dash search line edit"
215msgctxt "Label: Hint for dash search line edit"
216msgid "Search"
216msgid "Search"
217msgstr "بحث"
217msgstr "بحث"
@@ -265,19 +265,21 @@ msgstr "الرئيسية"
265msgid "Also installed"
265msgid "Also installed"
266msgstr "أيضا تم تثبيت"
266msgstr "أيضا تم تثبيت"
267
267
268−#: qml/DisabledScreenNotice.qml:42
268+#: qml/DisabledScreenNotice.qml:87
269+msgid ""
269−msgid "Your device is now connected to an external display."
270+"Your device is now connected to an external display. Use this screen as a "
271+"touch pad to interact with the mouse."
270msgstr ""
272msgstr ""
271
273
272#: qml/Greeter/CoverPage.qml:107
274#: qml/Greeter/CoverPage.qml:107
273msgid "Unlock"
275msgid "Unlock"
274msgstr "فك القفل"
276msgstr "فك القفل"
275
277
276−#: qml/Greeter/LoginList.qml:236
278+#: qml/Greeter/LoginList.qml:239
277msgid "Retry"
279msgid "Retry"
278msgstr "إعادة المحاولة"
280msgstr "إعادة المحاولة"
279
281
280−#: qml/Greeter/LoginList.qml:237
282+#: qml/Greeter/LoginList.qml:240
281msgid "Tap to unlock"
283msgid "Tap to unlock"
282msgstr "انقر لفك القفل"
284msgstr "انقر لفك القفل"
283
285
@@ -510,8 +512,8 @@ msgid "Hi!"
510msgstr "أهلا!"
512msgstr "أهلا!"
511
513
512#: qml/Wizard/Pages/10-welcome.qml:44
514#: qml/Wizard/Pages/10-welcome.qml:44
513−msgid "Welcome to your Ubuntu phone."
515+msgid "Welcome to your Ubuntu device."
514−msgstr "مرحبا بك في أوبونتو للهواتف."
516+msgstr ""
515
517
516#: qml/Wizard/Pages/10-welcome.qml:52
518#: qml/Wizard/Pages/10-welcome.qml:52
517msgid "Let’s get started."
519msgid "Let’s get started."
@@ -542,8 +544,8 @@ msgid "Lock security"
542msgstr "قِفل الأمان"
544msgstr "قِفل الأمان"
543
545
544#: qml/Wizard/Pages/30-passwd-type.qml:79
546#: qml/Wizard/Pages/30-passwd-type.qml:79
545−msgid "Please select how you’d like to unlock your phone."
547+msgid "Please select how you’d like to unlock your device."
546−msgstr "رجاءً اختر الطريقة التي ترغب بأن توصد هاتفك بها."
548+msgstr ""
547
549
548#: qml/Wizard/Pages/30-passwd-type.qml:102
550#: qml/Wizard/Pages/30-passwd-type.qml:102
549msgctxt "Label: Type of security method"
551msgctxt "Label: Type of security method"
@@ -651,8 +653,8 @@ msgid "Nice work!"
651msgstr "عمل جيد!"
653msgstr "عمل جيد!"
652
654
653#: qml/Wizard/Pages/80-finished.qml:46
655#: qml/Wizard/Pages/80-finished.qml:46
654−msgid "Your phone is now ready to use."
656+msgid "Your device is now ready to use."
655−msgstr "هاتفك جاهز الآن للاستخدام."
657+msgstr ""
656
658
657#: qml/Wizard/Pages/80-finished.qml:53
659#: qml/Wizard/Pages/80-finished.qml:53
658msgid "Finish"
660msgid "Finish"
@@ -783,3 +785,12 @@ msgstr ""
783
785
784#~ msgid "Please re-enter"
786#~ msgid "Please re-enter"
785#~ msgstr "برجاء إعادة إدخالها"
787#~ msgstr "برجاء إعادة إدخالها"
788+
789+#~ msgid "Welcome to your Ubuntu phone."
790+#~ msgstr "مرحبا بك في أوبونتو للهواتف."
791+
792+#~ msgid "Please select how you’d like to unlock your phone."
793+#~ msgstr "رجاءً اختر الطريقة التي ترغب بأن توصد هاتفك بها."
794+
795+#~ msgid "Your phone is now ready to use."
796+#~ msgstr "هاتفك جاهز الآن للاستخدام."
po/ast.po+38−25
@@ -7,16 +7,16 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11−"PO-Revision-Date: 2015-10-06 12:07+0000\n"
11+"PO-Revision-Date: 2016-02-19 19:39+0000\n"
12"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
12"Last-Translator: Xuacu Saturio <xuacusk8@gmail.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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -152,27 +152,29 @@ msgstr "Aceutar"
152
152
153#: qml/Components/ModeSwitchWarningDialog.qml:32
153#: qml/Components/ModeSwitchWarningDialog.qml:32
154msgid "Apps may have unsaved data:"
154msgid "Apps may have unsaved data:"
155−msgstr ""
155+msgstr "Apps que pueden tener datos sin guardar:"
156
156
157#: qml/Components/ModeSwitchWarningDialog.qml:57
157#: qml/Components/ModeSwitchWarningDialog.qml:57
158msgid "Re-dock, save your work and close these apps to continue."
158msgid "Re-dock, save your work and close these apps to continue."
159msgstr ""
159msgstr ""
160+"Pa siguir coneuta nuevamente'l preséu, guarda'l trabayu y zarra estes "
161+"aplicaciones."
160
162
161#: qml/Components/ModeSwitchWarningDialog.qml:63
163#: qml/Components/ModeSwitchWarningDialog.qml:63
162msgid "Or force close now (unsaved data will be lost)."
164msgid "Or force close now (unsaved data will be lost)."
163−msgstr ""
165+msgstr "O fuerza salir agora (perderás tolos datos sin guardar)."
164
166
165#: qml/Components/ModeSwitchWarningDialog.qml:75
167#: qml/Components/ModeSwitchWarningDialog.qml:75
166msgid "OK, I will reconnect"
168msgid "OK, I will reconnect"
167−msgstr ""
169+msgstr "D'alcuerdu, reconeutaré"
168
170
169#: qml/Components/ModeSwitchWarningDialog.qml:76
171#: qml/Components/ModeSwitchWarningDialog.qml:76
170msgid "Reconnect now!"
172msgid "Reconnect now!"
171−msgstr ""
173+msgstr "Reconeutar agora."
172
174
173#: qml/Components/ModeSwitchWarningDialog.qml:88
175#: qml/Components/ModeSwitchWarningDialog.qml:88
174msgid "Close all"
176msgid "Close all"
175−msgstr ""
177+msgstr "Zarrar too"
176
178
177#: qml/Dash/DashPageHeader.qml:266
179#: qml/Dash/DashPageHeader.qml:266
178msgctxt "Button: Open the Ubuntu Store"
180msgctxt "Button: Open the Ubuntu Store"
@@ -197,15 +199,15 @@ msgstr "Desaniciar de favoritos"
197msgid "Add to Favorites"
199msgid "Add to Favorites"
198msgstr "Amestar a favoritos"
200msgstr "Amestar a favoritos"
199
201
200−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
202+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
201msgid "See less"
203msgid "See less"
202msgstr "Ver menos"
204msgstr "Ver menos"
203
205
204−#: qml/Dash/GenericScopeView.qml:576
206+#: qml/Dash/GenericScopeView.qml:587
205msgid "See all"
207msgid "See all"
206msgstr "Ver too"
208msgstr "Ver too"
207
209
208−#: qml/Dash/GenericScopeView.qml:638
210+#: qml/Dash/GenericScopeView.qml:649
209msgctxt "Label: Hint for dash search line edit"
211msgctxt "Label: Hint for dash search line edit"
210msgid "Search"
212msgid "Search"
211msgstr "Guetar"
213msgstr "Guetar"
@@ -233,7 +235,7 @@ msgstr "Amestar una reseña"
233
235
234#: qml/Dash/Previews/PreviewSharing.qml:50
236#: qml/Dash/Previews/PreviewSharing.qml:50
235msgid "Preview Share Item"
237msgid "Preview Share Item"
236−msgstr ""
238+msgstr "Entever l'elementu compartíu"
237
239
238#: qml/Dash/PullToRefreshScopeStyle.qml:55
240#: qml/Dash/PullToRefreshScopeStyle.qml:55
239msgid "Pull to refresh…"
241msgid "Pull to refresh…"
@@ -259,19 +261,21 @@ msgstr "Aniciu"
259msgid "Also installed"
261msgid "Also installed"
260msgstr "Tamién instalaos"
262msgstr "Tamién instalaos"
261
263
262−#: qml/DisabledScreenNotice.qml:42
264+#: qml/DisabledScreenNotice.qml:87
265+msgid ""
263−msgid "Your device is now connected to an external display."
266+"Your device is now connected to an external display. Use this screen as a "
267+"touch pad to interact with the mouse."
264msgstr ""
268msgstr ""
265
269
266#: qml/Greeter/CoverPage.qml:107
270#: qml/Greeter/CoverPage.qml:107
267msgid "Unlock"
271msgid "Unlock"
268msgstr "Desbloquiar"
272msgstr "Desbloquiar"
269
273
270−#: qml/Greeter/LoginList.qml:236
274+#: qml/Greeter/LoginList.qml:239
271msgid "Retry"
275msgid "Retry"
272msgstr "Reintentar"
276msgstr "Reintentar"
273
277
274−#: qml/Greeter/LoginList.qml:237
278+#: qml/Greeter/LoginList.qml:240
275msgid "Tap to unlock"
279msgid "Tap to unlock"
276msgstr "Calca pa desbloquiar"
280msgstr "Calca pa desbloquiar"
277
281
@@ -409,7 +413,7 @@ msgstr "Falló, toca pa reintentar"
409#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
413#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
410msgctxt "Button: Send a reply message"
414msgctxt "Button: Send a reply message"
411msgid "Send"
415msgid "Send"
412−msgstr ""
416+msgstr "Unviar"
413
417
414#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
418#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
415msgctxt "Label: Hint in message indicator line edit"
419msgctxt "Label: Hint in message indicator line edit"
@@ -419,7 +423,7 @@ msgstr "Responder"
419#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
423#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
420msgctxt "Button: Call back on phone"
424msgctxt "Button: Call back on phone"
421msgid "Call back"
425msgid "Call back"
422−msgstr ""
426+msgstr "Devolver llamada"
423
427
424#: qml/Panel/Indicators/ModemInfoItem.qml:105
428#: qml/Panel/Indicators/ModemInfoItem.qml:105
425msgid "Unlock SIM"
429msgid "Unlock SIM"
@@ -492,8 +496,8 @@ msgid "Hi!"
492msgstr "¡Hola!"
496msgstr "¡Hola!"
493
497
494#: qml/Wizard/Pages/10-welcome.qml:44
498#: qml/Wizard/Pages/10-welcome.qml:44
495−msgid "Welcome to your Ubuntu phone."
499+msgid "Welcome to your Ubuntu device."
496−msgstr "Bienllegáu/ada al to teléfonu d'Ubuntu"
500+msgstr ""
497
501
498#: qml/Wizard/Pages/10-welcome.qml:52
502#: qml/Wizard/Pages/10-welcome.qml:52
499msgid "Let’s get started."
503msgid "Let’s get started."
@@ -523,8 +527,8 @@ msgid "Lock security"
523msgstr "Seguranza del bloquéu"
527msgstr "Seguranza del bloquéu"
524
528
525#: qml/Wizard/Pages/30-passwd-type.qml:79
529#: qml/Wizard/Pages/30-passwd-type.qml:79
526−msgid "Please select how you’d like to unlock your phone."
530+msgid "Please select how you’d like to unlock your device."
527−msgstr "Por favor, esbilla como te prestaría desbloquiar el teléfonu."
531+msgstr ""
528
532
529#: qml/Wizard/Pages/30-passwd-type.qml:102
533#: qml/Wizard/Pages/30-passwd-type.qml:102
530msgctxt "Label: Type of security method"
534msgctxt "Label: Type of security method"
@@ -631,8 +635,8 @@ msgid "Nice work!"
631msgstr "¡Bon trabayu!"
635msgstr "¡Bon trabayu!"
632
636
633#: qml/Wizard/Pages/80-finished.qml:46
637#: qml/Wizard/Pages/80-finished.qml:46
634−msgid "Your phone is now ready to use."
638+msgid "Your device is now ready to use."
635−msgstr "El teléfonu yá ta tresnáu pa usase."
639+msgstr ""
636
640
637#: qml/Wizard/Pages/80-finished.qml:53
641#: qml/Wizard/Pages/80-finished.qml:53
638msgid "Finish"
642msgid "Finish"
@@ -771,6 +775,15 @@ msgstr "%1 〉"
771#~ msgid "Please re-enter"
775#~ msgid "Please re-enter"
772#~ msgstr "Por favor, reintroduzla"
776#~ msgstr "Por favor, reintroduzla"
773
777
778+#~ msgid "Please select how you’d like to unlock your phone."
779+#~ msgstr "Por favor, esbilla como te prestaría desbloquiar el teléfonu."
780+
781+#~ msgid "Welcome to your Ubuntu phone."
782+#~ msgstr "Bienllegáu/ada al to teléfonu d'Ubuntu"
783+
784+#~ msgid "Your phone is now ready to use."
785+#~ msgstr "El teléfonu yá ta tresnáu pa usase."
786+
774#~ msgid "%a %H:%M"
787#~ msgid "%a %H:%M"
775#~ msgstr "%a %H:%M"
788#~ msgstr "%a %H:%M"
776
789
po/az.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "Seçilmişlәrdәn çıxart"
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr "Seçilmişlәrә әlavә et"
195msgstr "Seçilmişlәrә әlavә et"
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr "Daha azını gör"
199msgstr "Daha azını gör"
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr "Hamısını gör"
203msgstr "Hamısını gör"
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -489,7 +491,7 @@ msgid "Hi!"
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:44
493#: qml/Wizard/Pages/10-welcome.qml:44
492−msgid "Welcome to your Ubuntu phone."
494+msgid "Welcome to your Ubuntu device."
493msgstr ""
495msgstr ""
494
496
495#: qml/Wizard/Pages/10-welcome.qml:52
497#: qml/Wizard/Pages/10-welcome.qml:52
@@ -520,7 +522,7 @@ msgid "Lock security"
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:79
524#: qml/Wizard/Pages/30-passwd-type.qml:79
523−msgid "Please select how you’d like to unlock your phone."
525+msgid "Please select how you’d like to unlock your device."
524msgstr ""
526msgstr ""
525
527
526#: qml/Wizard/Pages/30-passwd-type.qml:102
528#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -621,7 +623,7 @@ msgid "Nice work!"
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:46
625#: qml/Wizard/Pages/80-finished.qml:46
624−msgid "Your phone is now ready to use."
626+msgid "Your device is now ready to use."
625msgstr ""
627msgstr ""
626
628
627#: qml/Wizard/Pages/80-finished.qml:53
629#: qml/Wizard/Pages/80-finished.qml:53
po/be.po+29−18
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-12-13 13:12+0000\n"
11"PO-Revision-Date: 2015-12-13 13:12+0000\n"
12"Last-Translator: Mikhail_SaTuRn <mikhail_saturn@tut.by>\n"
12"Last-Translator: Mikhail_SaTuRn <mikhail_saturn@tut.by>\n"
13"Language-Team: Belarusian <be@li.org>\n"
13"Language-Team: Belarusian <be@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -201,15 +201,15 @@ msgstr "Выдаліць з абранага"
201msgid "Add to Favorites"
201msgid "Add to Favorites"
202msgstr "Дадаць да абранага"
202msgstr "Дадаць да абранага"
203
203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205msgid "See less"
205msgid "See less"
206msgstr "Карацей"
206msgstr "Карацей"
207
207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209msgid "See all"
209msgid "See all"
210msgstr "Больш падрабязна"
210msgstr "Больш падрабязна"
211
211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213msgctxt "Label: Hint for dash search line edit"
213msgctxt "Label: Hint for dash search line edit"
214msgid "Search"
214msgid "Search"
215msgstr "Пошук"
215msgstr "Пошук"
@@ -237,7 +237,7 @@ msgstr "Дадаць рэцэнзію"
237
237
238#: qml/Dash/Previews/PreviewSharing.qml:50
238#: qml/Dash/Previews/PreviewSharing.qml:50
239msgid "Preview Share Item"
239msgid "Preview Share Item"
240−msgstr "Падзяліцца праглядаймым"
240+msgstr "Праглядзець элемент"
241
241
242#: qml/Dash/PullToRefreshScopeStyle.qml:55
242#: qml/Dash/PullToRefreshScopeStyle.qml:55
243msgid "Pull to refresh…"
243msgid "Pull to refresh…"
@@ -263,19 +263,21 @@ msgstr "Хатняя папка"
263msgid "Also installed"
263msgid "Also installed"
264msgstr "Таксама ўсталявана"
264msgstr "Таксама ўсталявана"
265
265
266−#: qml/DisabledScreenNotice.qml:42
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
267−msgid "Your device is now connected to an external display."
268+"Your device is now connected to an external display. Use this screen as a "
268−msgstr "Прылада падлучана да вонкавага дысплэю."
269+"touch pad to interact with the mouse."
270+msgstr ""
269
271
270#: qml/Greeter/CoverPage.qml:107
272#: qml/Greeter/CoverPage.qml:107
271msgid "Unlock"
273msgid "Unlock"
272msgstr "Разблакаваць"
274msgstr "Разблакаваць"
273
275
274−#: qml/Greeter/LoginList.qml:236
276+#: qml/Greeter/LoginList.qml:239
275msgid "Retry"
277msgid "Retry"
276msgstr "Паспрабаваць зноў"
278msgstr "Паспрабаваць зноў"
277
279
278−#: qml/Greeter/LoginList.qml:237
280+#: qml/Greeter/LoginList.qml:240
279msgid "Tap to unlock"
281msgid "Tap to unlock"
280msgstr "Націсніце, каб разблакаваць"
282msgstr "Націсніце, каб разблакаваць"
281
283
@@ -499,8 +501,8 @@ msgid "Hi!"
499msgstr "Вітай!"
501msgstr "Вітай!"
500
502
501#: qml/Wizard/Pages/10-welcome.qml:44
503#: qml/Wizard/Pages/10-welcome.qml:44
502−msgid "Welcome to your Ubuntu phone."
504+msgid "Welcome to your Ubuntu device."
503−msgstr "Вітаем Вас у сістэме тэлефона Ubuntu."
505+msgstr ""
504
506
505#: qml/Wizard/Pages/10-welcome.qml:52
507#: qml/Wizard/Pages/10-welcome.qml:52
506msgid "Let’s get started."
508msgid "Let’s get started."
@@ -530,8 +532,8 @@ msgid "Lock security"
530msgstr "Блакіроўка"
532msgstr "Блакіроўка"
531
533
532#: qml/Wizard/Pages/30-passwd-type.qml:79
534#: qml/Wizard/Pages/30-passwd-type.qml:79
533−msgid "Please select how you’d like to unlock your phone."
535+msgid "Please select how you’d like to unlock your device."
534−msgstr "Калі ласка, абярыце спосаб разблакавання тэлефона."
536+msgstr ""
535
537
536#: qml/Wizard/Pages/30-passwd-type.qml:102
538#: qml/Wizard/Pages/30-passwd-type.qml:102
537msgctxt "Label: Type of security method"
539msgctxt "Label: Type of security method"
@@ -638,8 +640,8 @@ msgid "Nice work!"
638msgstr "Выдатная праца!"
640msgstr "Выдатная праца!"
639
641
640#: qml/Wizard/Pages/80-finished.qml:46
642#: qml/Wizard/Pages/80-finished.qml:46
641−msgid "Your phone is now ready to use."
643+msgid "Your device is now ready to use."
642−msgstr "Цяпер Вашым тэлефонам можна карыстацца."
644+msgstr ""
643
645
644#: qml/Wizard/Pages/80-finished.qml:53
646#: qml/Wizard/Pages/80-finished.qml:53
645msgid "Finish"
647msgid "Finish"
@@ -744,6 +746,15 @@ msgstr "%1 〉"
744#~ msgid "Store"
746#~ msgid "Store"
745#~ msgstr "Крама"
747#~ msgstr "Крама"
746
748
749+#~ msgid "Welcome to your Ubuntu phone."
750+#~ msgstr "Вітаем Вас у сістэме тэлефона Ubuntu."
751+
752+#~ msgid "Please select how you’d like to unlock your phone."
753+#~ msgstr "Калі ласка, абярыце спосаб разблакавання тэлефона."
754+
755+#~ msgid "Your phone is now ready to use."
756+#~ msgstr "Цяпер Вашым тэлефонам можна карыстацца."
757+
747#~ msgid "Restart"
758#~ msgid "Restart"
748#~ msgstr "Перазапусціць"
759#~ msgstr "Перазапусціць"
749
760
po/bg.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-04-12 14:43+0000\n"
11"PO-Revision-Date: 2015-04-12 14:43+0000\n"
12"Last-Translator: George Karavasilev <kokoto-java@ubuntu.com>\n"
12"Last-Translator: George Karavasilev <kokoto-java@ubuntu.com>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -196,15 +196,15 @@ msgstr ""
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr ""
197msgstr ""
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr ""
201msgstr ""
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr ""
205msgstr ""
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr ""
210msgstr ""
@@ -258,19 +258,21 @@ msgstr ""
258msgid "Also installed"
258msgid "Also installed"
259msgstr ""
259msgstr ""
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263msgstr ""
265msgstr ""
264
266
265#: qml/Greeter/CoverPage.qml:107
267#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
268msgid "Unlock"
267msgstr ""
269msgstr ""
268
270
269−#: qml/Greeter/LoginList.qml:236
271+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
272msgid "Retry"
271msgstr ""
273msgstr ""
272
274
273−#: qml/Greeter/LoginList.qml:237
275+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
276msgid "Tap to unlock"
275msgstr ""
277msgstr ""
276
278
@@ -487,7 +489,7 @@ msgid "Hi!"
487msgstr ""
489msgstr ""
488
490
489#: qml/Wizard/Pages/10-welcome.qml:44
491#: qml/Wizard/Pages/10-welcome.qml:44
490−msgid "Welcome to your Ubuntu phone."
492+msgid "Welcome to your Ubuntu device."
491msgstr ""
493msgstr ""
492
494
493#: qml/Wizard/Pages/10-welcome.qml:52
495#: qml/Wizard/Pages/10-welcome.qml:52
@@ -518,7 +520,7 @@ msgid "Lock security"
518msgstr ""
520msgstr ""
519
521
520#: qml/Wizard/Pages/30-passwd-type.qml:79
522#: qml/Wizard/Pages/30-passwd-type.qml:79
521−msgid "Please select how you’d like to unlock your phone."
523+msgid "Please select how you’d like to unlock your device."
522msgstr ""
524msgstr ""
523
525
524#: qml/Wizard/Pages/30-passwd-type.qml:102
526#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -619,7 +621,7 @@ msgid "Nice work!"
619msgstr ""
621msgstr ""
620
622
621#: qml/Wizard/Pages/80-finished.qml:46
623#: qml/Wizard/Pages/80-finished.qml:46
622−msgid "Your phone is now ready to use."
624+msgid "Your device is now ready to use."
623msgstr ""
625msgstr ""
624
626
625#: qml/Wizard/Pages/80-finished.qml:53
627#: qml/Wizard/Pages/80-finished.qml:53
po/bn.po+24−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-11-27 19:38+0000\n"
11"PO-Revision-Date: 2015-11-27 19:38+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Bengali <bn@li.org>\n"
13"Language-Team: Bengali <bn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "পছন্দ থেকে মুছে ফেলুন"
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr "পছন্দতে যোগ করুন"
197msgstr "পছন্দতে যোগ করুন"
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr "কম দেখুন"
201msgstr "কম দেখুন"
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr "সব দেখুন"
205msgstr "সব দেখুন"
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr "খুঁজুন"
210msgstr "খুঁজুন"
@@ -258,19 +258,21 @@ msgstr ""
258msgid "Also installed"
258msgid "Also installed"
259msgstr "আরও ইন্সটল করা রয়েছে..."
259msgstr "আরও ইন্সটল করা রয়েছে..."
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
263−msgstr "আপনার ডিভাইসটি এখন অতিরিক্ত ডিসপ্লের সাথে যুক্ত রয়েছে"
264+"touch pad to interact with the mouse."
265+msgstr ""
264
266
265#: qml/Greeter/CoverPage.qml:107
267#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
268msgid "Unlock"
267msgstr "লক খুলুন"
269msgstr "লক খুলুন"
268
270
269−#: qml/Greeter/LoginList.qml:236
271+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
272msgid "Retry"
271msgstr ""
273msgstr ""
272
274
273−#: qml/Greeter/LoginList.qml:237
275+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
276msgid "Tap to unlock"
275msgstr "লক খোলার জন্য চাপ দিন"
277msgstr "লক খোলার জন্য চাপ দিন"
276
278
@@ -488,8 +490,8 @@ msgid "Hi!"
488msgstr ""
490msgstr ""
489
491
490#: qml/Wizard/Pages/10-welcome.qml:44
492#: qml/Wizard/Pages/10-welcome.qml:44
491−msgid "Welcome to your Ubuntu phone."
493+msgid "Welcome to your Ubuntu device."
492−msgstr "আপনার উবুন্টু ফোনে স্বাগতম।"
494+msgstr ""
493
495
494#: qml/Wizard/Pages/10-welcome.qml:52
496#: qml/Wizard/Pages/10-welcome.qml:52
495msgid "Let’s get started."
497msgid "Let’s get started."
@@ -519,8 +521,8 @@ msgid "Lock security"
519msgstr "নিরাপত্তা লক"
521msgstr "নিরাপত্তা লক"
520
522
521#: qml/Wizard/Pages/30-passwd-type.qml:79
523#: qml/Wizard/Pages/30-passwd-type.qml:79
522−msgid "Please select how you’d like to unlock your phone."
524+msgid "Please select how you’d like to unlock your device."
523−msgstr "আপনি কিভাবে ফোনের লক খুলতে চান তা নির্ধারণ করুন।"
525+msgstr ""
524
526
525#: qml/Wizard/Pages/30-passwd-type.qml:102
527#: qml/Wizard/Pages/30-passwd-type.qml:102
526msgctxt "Label: Type of security method"
528msgctxt "Label: Type of security method"
@@ -620,7 +622,7 @@ msgid "Nice work!"
620msgstr ""
622msgstr ""
621
623
622#: qml/Wizard/Pages/80-finished.qml:46
624#: qml/Wizard/Pages/80-finished.qml:46
623−msgid "Your phone is now ready to use."
625+msgid "Your device is now ready to use."
624msgstr ""
626msgstr ""
625
627
626#: qml/Wizard/Pages/80-finished.qml:53
628#: qml/Wizard/Pages/80-finished.qml:53
@@ -664,6 +666,9 @@ msgstr ""
664msgid "%1 〉"
666msgid "%1 〉"
665msgstr ""
667msgstr ""
666
668
669+#~ msgid "Welcome to your Ubuntu phone."
670+#~ msgstr "আপনার উবুন্টু ফোনে স্বাগতম।"
671+
667#~ msgid "Log out"
672#~ msgid "Log out"
668#~ msgstr "লগ অাউট"
673#~ msgstr "লগ অাউট"
669
674
@@ -723,3 +728,6 @@ msgstr ""
723
728
724#~ msgid "Please re-enter"
729#~ msgid "Please re-enter"
725#~ msgstr "অনুগ্রহ করে আবার লিখুন"
730#~ msgstr "অনুগ্রহ করে আবার লিখুন"
731+
732+#~ msgid "Please select how you’d like to unlock your phone."
733+#~ msgstr "আপনি কিভাবে ফোনের লক খুলতে চান তা নির্ধারণ করুন।"
po/br.po+40−25
@@ -7,16 +7,16 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11−"PO-Revision-Date: 2015-10-05 06:47+0000\n"
11+"PO-Revision-Date: 2016-02-22 12:29+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"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -155,27 +155,29 @@ msgstr "Mat eo"
155
155
156#: qml/Components/ModeSwitchWarningDialog.qml:32
156#: qml/Components/ModeSwitchWarningDialog.qml:32
157msgid "Apps may have unsaved data:"
157msgid "Apps may have unsaved data:"
158−msgstr ""
158+msgstr "Roadennoù ha n'int ket enrollet a c'hall bezañ gant an arloadoù :"
159
159
160#: qml/Components/ModeSwitchWarningDialog.qml:57
160#: qml/Components/ModeSwitchWarningDialog.qml:57
161msgid "Re-dock, save your work and close these apps to continue."
161msgid "Re-dock, save your work and close these apps to continue."
162msgstr ""
162msgstr ""
163+"Adlugit, enrollit ho labour ha serrit an arloadoù-mañ evit kenderc'hel."
163
164
164#: qml/Components/ModeSwitchWarningDialog.qml:63
165#: qml/Components/ModeSwitchWarningDialog.qml:63
165msgid "Or force close now (unsaved data will be lost)."
166msgid "Or force close now (unsaved data will be lost)."
166msgstr ""
167msgstr ""
168+"Pe rediañ da serriñ bremañ (kollet e vo ar roadennoù n'int ket bet enrollet)."
167
169
168#: qml/Components/ModeSwitchWarningDialog.qml:75
170#: qml/Components/ModeSwitchWarningDialog.qml:75
169msgid "OK, I will reconnect"
171msgid "OK, I will reconnect"
170−msgstr ""
172+msgstr "Mat eo, ez an da adkevreañ"
171
173
172#: qml/Components/ModeSwitchWarningDialog.qml:76
174#: qml/Components/ModeSwitchWarningDialog.qml:76
173msgid "Reconnect now!"
175msgid "Reconnect now!"
174−msgstr ""
176+msgstr "Adkevreañ bremañ !"
175
177
176#: qml/Components/ModeSwitchWarningDialog.qml:88
178#: qml/Components/ModeSwitchWarningDialog.qml:88
177msgid "Close all"
179msgid "Close all"
178−msgstr ""
180+msgstr "Serriñ pep tra"
179
181
180#: qml/Dash/DashPageHeader.qml:266
182#: qml/Dash/DashPageHeader.qml:266
181msgctxt "Button: Open the Ubuntu Store"
183msgctxt "Button: Open the Ubuntu Store"
@@ -200,15 +202,15 @@ msgstr "Lemel eus ar sinedoù"
200msgid "Add to Favorites"
202msgid "Add to Favorites"
201msgstr "Ouzhpennañ d'ar sinedoù"
203msgstr "Ouzhpennañ d'ar sinedoù"
202
204
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204msgid "See less"
206msgid "See less"
205msgstr "Gwelet nebeutoc'h"
207msgstr "Gwelet nebeutoc'h"
206
208
207−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
208msgid "See all"
210msgid "See all"
209msgstr "Gwelet pep tra"
211msgstr "Gwelet pep tra"
210
212
211−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
212msgctxt "Label: Hint for dash search line edit"
214msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
215msgid "Search"
214msgstr "Klask"
216msgstr "Klask"
@@ -236,7 +238,7 @@ msgstr "Ouzhpennañ un ali"
236
238
237#: qml/Dash/Previews/PreviewSharing.qml:50
239#: qml/Dash/Previews/PreviewSharing.qml:50
238msgid "Preview Share Item"
240msgid "Preview Share Item"
239−msgstr ""
241+msgstr "Rakwelet an elfenn lodet"
240
242
241#: qml/Dash/PullToRefreshScopeStyle.qml:55
243#: qml/Dash/PullToRefreshScopeStyle.qml:55
242msgid "Pull to refresh…"
244msgid "Pull to refresh…"
@@ -262,19 +264,23 @@ msgstr "Er gêr"
262msgid "Also installed"
264msgid "Also installed"
263msgstr "Staliet ivez"
265msgstr "Staliet ivez"
264
266
265−#: qml/DisabledScreenNotice.qml:42
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
266−msgid "Your device is now connected to an external display."
269+"Your device is now connected to an external display. Use this screen as a "
270+"touch pad to interact with the mouse."
267msgstr ""
271msgstr ""
272+"N'eo ket kevreet ho penveg ouzh un diskwel diavaez. Implijit ar skramm-mañ "
273+"da douch evit ober gant al logodenn."
268
274
269#: qml/Greeter/CoverPage.qml:107
275#: qml/Greeter/CoverPage.qml:107
270msgid "Unlock"
276msgid "Unlock"
271msgstr "Dibrennañ"
277msgstr "Dibrennañ"
272
278
273−#: qml/Greeter/LoginList.qml:236
279+#: qml/Greeter/LoginList.qml:239
274msgid "Retry"
280msgid "Retry"
275msgstr "Esaeañ en-dro"
281msgstr "Esaeañ en-dro"
276
282
277−#: qml/Greeter/LoginList.qml:237
283+#: qml/Greeter/LoginList.qml:240
278msgid "Tap to unlock"
284msgid "Tap to unlock"
279msgstr "Pouezañ evit dibrennañ"
285msgstr "Pouezañ evit dibrennañ"
280
286
@@ -412,7 +418,7 @@ msgstr "C'hwitet, touchit evit adkregiñ"
412#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
418#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
413msgctxt "Button: Send a reply message"
419msgctxt "Button: Send a reply message"
414msgid "Send"
420msgid "Send"
415−msgstr ""
421+msgstr "Kas"
416
422
417#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
423#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
418msgctxt "Label: Hint in message indicator line edit"
424msgctxt "Label: Hint in message indicator line edit"
@@ -422,7 +428,7 @@ msgstr "Respont"
422#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
428#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
423msgctxt "Button: Call back on phone"
429msgctxt "Button: Call back on phone"
424msgid "Call back"
430msgid "Call back"
425−msgstr ""
431+msgstr "Gervel en-dro"
426
432
427#: qml/Panel/Indicators/ModemInfoItem.qml:105
433#: qml/Panel/Indicators/ModemInfoItem.qml:105
428msgid "Unlock SIM"
434msgid "Unlock SIM"
@@ -495,8 +501,8 @@ msgid "Hi!"
495msgstr "Salud deoc'h !"
501msgstr "Salud deoc'h !"
496
502
497#: qml/Wizard/Pages/10-welcome.qml:44
503#: qml/Wizard/Pages/10-welcome.qml:44
498−msgid "Welcome to your Ubuntu phone."
504+msgid "Welcome to your Ubuntu device."
499−msgstr "Deuet-mat oc'h en ho pellgomzer Ubuntu."
505+msgstr "Donemat en ho penveg Ubuntu"
500
506
501#: qml/Wizard/Pages/10-welcome.qml:52
507#: qml/Wizard/Pages/10-welcome.qml:52
502msgid "Let’s get started."
508msgid "Let’s get started."
@@ -526,9 +532,8 @@ msgid "Lock security"
526msgstr "Surentez ar prennañ"
532msgstr "Surentez ar prennañ"
527
533
528#: qml/Wizard/Pages/30-passwd-type.qml:79
534#: qml/Wizard/Pages/30-passwd-type.qml:79
529−msgid "Please select how you’d like to unlock your phone."
535+msgid "Please select how you’d like to unlock your device."
530−msgstr ""
531−"Diuzit e peseurt mod e fell deoc'h dibrennañ ho pellgomzer, mar plij."
536+msgstr "Diuzit penaos e fell deoc'h dibrennañ ho penveg, mar plij."
532
537
533#: qml/Wizard/Pages/30-passwd-type.qml:102
538#: qml/Wizard/Pages/30-passwd-type.qml:102
534msgctxt "Label: Type of security method"
539msgctxt "Label: Type of security method"
@@ -635,8 +640,8 @@ msgid "Nice work!"
635msgstr "Gwellat labour !"
640msgstr "Gwellat labour !"
636
641
637#: qml/Wizard/Pages/80-finished.qml:46
642#: qml/Wizard/Pages/80-finished.qml:46
638−msgid "Your phone is now ready to use."
643+msgid "Your device is now ready to use."
639−msgstr "Prest eo ho pellgomzer da vezañ implijet bremañ."
644+msgstr "Prest eo ho penveg da vezañ implijet bremañ."
640
645
641#: qml/Wizard/Pages/80-finished.qml:53
646#: qml/Wizard/Pages/80-finished.qml:53
642msgid "Finish"
647msgid "Finish"
@@ -778,6 +783,16 @@ msgstr "%1 〉"
778#~ msgid "Please re-enter"
783#~ msgid "Please re-enter"
779#~ msgstr "Adverkañ, mar plij"
784#~ msgstr "Adverkañ, mar plij"
780
785
786+#~ msgid "Please select how you’d like to unlock your phone."
787+#~ msgstr ""
788+#~ "Diuzit e peseurt mod e fell deoc'h dibrennañ ho pellgomzer, mar plij."
789+
790+#~ msgid "Welcome to your Ubuntu phone."
791+#~ msgstr "Deuet-mat oc'h en ho pellgomzer Ubuntu."
792+
793+#~ msgid "Your phone is now ready to use."
794+#~ msgstr "Prest eo ho pellgomzer da vezañ implijet bremañ."
795+
781#~ msgid "%a %d %b %H:%M"
796#~ msgid "%a %d %b %H:%M"
782#~ msgstr "%a %b %d %H:%M"
797#~ msgstr "%a %b %d %H:%M"
783
798
po/bs.po+28−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-12-01 20:06+0000\n"
11"PO-Revision-Date: 2015-12-01 20:06+0000\n"
12"Last-Translator: Kenan Gutić <Unknown>\n"
12"Last-Translator: Kenan Gutić <Unknown>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -200,15 +200,15 @@ msgstr "Ukloni iz Omiljenih"
200msgid "Add to Favorites"
200msgid "Add to Favorites"
201msgstr "Dodaj u Omiljene"
201msgstr "Dodaj u Omiljene"
202
202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204msgid "See less"
204msgid "See less"
205msgstr "Pogledati manje"
205msgstr "Pogledati manje"
206
206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208msgid "See all"
208msgid "See all"
209msgstr "Pogledati sve"
209msgstr "Pogledati sve"
210
210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212msgctxt "Label: Hint for dash search line edit"
212msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
213msgid "Search"
214msgstr "Pretraži"
214msgstr "Pretraži"
@@ -262,19 +262,21 @@ msgstr "Početna"
262msgid "Also installed"
262msgid "Also installed"
263msgstr "Također instalirano"
263msgstr "Također instalirano"
264
264
265−#: qml/DisabledScreenNotice.qml:42
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
266−msgid "Your device is now connected to an external display."
267+"Your device is now connected to an external display. Use this screen as a "
267−msgstr "Vaš uređaj je sada povezan sa vanjskim ekranom."
268+"touch pad to interact with the mouse."
269+msgstr ""
268
270
269#: qml/Greeter/CoverPage.qml:107
271#: qml/Greeter/CoverPage.qml:107
270msgid "Unlock"
272msgid "Unlock"
271msgstr "Otključaj"
273msgstr "Otključaj"
272
274
273−#: qml/Greeter/LoginList.qml:236
275+#: qml/Greeter/LoginList.qml:239
274msgid "Retry"
276msgid "Retry"
275msgstr "Ponovi"
277msgstr "Ponovi"
276
278
277−#: qml/Greeter/LoginList.qml:237
279+#: qml/Greeter/LoginList.qml:240
278msgid "Tap to unlock"
280msgid "Tap to unlock"
279msgstr "Kucnite za otključavanje"
281msgstr "Kucnite za otključavanje"
280
282
@@ -498,8 +500,8 @@ msgid "Hi!"
498msgstr "Ćao!"
500msgstr "Ćao!"
499
501
500#: qml/Wizard/Pages/10-welcome.qml:44
502#: qml/Wizard/Pages/10-welcome.qml:44
501−msgid "Welcome to your Ubuntu phone."
503+msgid "Welcome to your Ubuntu device."
502−msgstr "Dobrodošli u vaš Ubuntu telefon."
504+msgstr ""
503
505
504#: qml/Wizard/Pages/10-welcome.qml:52
506#: qml/Wizard/Pages/10-welcome.qml:52
505msgid "Let’s get started."
507msgid "Let’s get started."
@@ -531,8 +533,8 @@ msgid "Lock security"
531msgstr "Sigurnost zaključavanja"
533msgstr "Sigurnost zaključavanja"
532
534
533#: qml/Wizard/Pages/30-passwd-type.qml:79
535#: qml/Wizard/Pages/30-passwd-type.qml:79
534−msgid "Please select how you’d like to unlock your phone."
536+msgid "Please select how you’d like to unlock your device."
535−msgstr "Molimo izaberite kako biste željeli da otključavate vaš telefon."
537+msgstr ""
536
538
537#: qml/Wizard/Pages/30-passwd-type.qml:102
539#: qml/Wizard/Pages/30-passwd-type.qml:102
538msgctxt "Label: Type of security method"
540msgctxt "Label: Type of security method"
@@ -638,8 +640,8 @@ msgid "Nice work!"
638msgstr "Dobro urađeno!"
640msgstr "Dobro urađeno!"
639
641
640#: qml/Wizard/Pages/80-finished.qml:46
642#: qml/Wizard/Pages/80-finished.qml:46
641−msgid "Your phone is now ready to use."
643+msgid "Your device is now ready to use."
642−msgstr "Vaš telefon je sada spreman za upotrebu."
644+msgstr ""
643
645
644#: qml/Wizard/Pages/80-finished.qml:53
646#: qml/Wizard/Pages/80-finished.qml:53
645msgid "Finish"
647msgid "Finish"
@@ -696,3 +698,12 @@ msgstr "%1 〉"
696
698
697#~ msgid "Please re-enter"
699#~ msgid "Please re-enter"
698#~ msgstr "Molimo ponovo unesite"
700#~ msgstr "Molimo ponovo unesite"
701+
702+#~ msgid "Welcome to your Ubuntu phone."
703+#~ msgstr "Dobrodošli u vaš Ubuntu telefon."
704+
705+#~ msgid "Please select how you’d like to unlock your phone."
706+#~ msgstr "Molimo izaberite kako biste željeli da otključavate vaš telefon."
707+
708+#~ msgid "Your phone is now ready to use."
709+#~ msgstr "Vaš telefon je sada spreman za upotrebu."
po/ca.po+36−23
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-04 09:48+0000\n"
11"PO-Revision-Date: 2015-07-04 09:48+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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -155,27 +155,29 @@ msgstr "D'acord"
155
155
156#: qml/Components/ModeSwitchWarningDialog.qml:32
156#: qml/Components/ModeSwitchWarningDialog.qml:32
157msgid "Apps may have unsaved data:"
157msgid "Apps may have unsaved data:"
158−msgstr ""
158+msgstr "Pot ser que aquestes aplicacions no hagin desat les dades:"
159
159
160#: qml/Components/ModeSwitchWarningDialog.qml:57
160#: qml/Components/ModeSwitchWarningDialog.qml:57
161msgid "Re-dock, save your work and close these apps to continue."
161msgid "Re-dock, save your work and close these apps to continue."
162msgstr ""
162msgstr ""
163+"Torneu a connectar, deseu la feina i tanqueu aquestes aplicacions per "
164+"continuar."
163
165
164#: qml/Components/ModeSwitchWarningDialog.qml:63
166#: qml/Components/ModeSwitchWarningDialog.qml:63
165msgid "Or force close now (unsaved data will be lost)."
167msgid "Or force close now (unsaved data will be lost)."
166−msgstr ""
168+msgstr "O força el tancament (les dades no desades es perdran)."
167
169
168#: qml/Components/ModeSwitchWarningDialog.qml:75
170#: qml/Components/ModeSwitchWarningDialog.qml:75
169msgid "OK, I will reconnect"
171msgid "OK, I will reconnect"
170−msgstr ""
172+msgstr "D'acord, tornaré a connectar"
171
173
172#: qml/Components/ModeSwitchWarningDialog.qml:76
174#: qml/Components/ModeSwitchWarningDialog.qml:76
173msgid "Reconnect now!"
175msgid "Reconnect now!"
174−msgstr ""
176+msgstr "Torna a connectar"
175
177
176#: qml/Components/ModeSwitchWarningDialog.qml:88
178#: qml/Components/ModeSwitchWarningDialog.qml:88
177msgid "Close all"
179msgid "Close all"
178−msgstr ""
180+msgstr "Tanca-ho tot"
179
181
180#: qml/Dash/DashPageHeader.qml:266
182#: qml/Dash/DashPageHeader.qml:266
181msgctxt "Button: Open the Ubuntu Store"
183msgctxt "Button: Open the Ubuntu Store"
@@ -200,15 +202,15 @@ msgstr "Suprimeix dels preferits"
200msgid "Add to Favorites"
202msgid "Add to Favorites"
201msgstr "Afegeix als preferits"
203msgstr "Afegeix als preferits"
202
204
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204msgid "See less"
206msgid "See less"
205msgstr "Mostra'n menys"
207msgstr "Mostra'n menys"
206
208
207−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
208msgid "See all"
210msgid "See all"
209msgstr "Mostra-ho tot"
211msgstr "Mostra-ho tot"
210
212
211−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
212msgctxt "Label: Hint for dash search line edit"
214msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
215msgid "Search"
214msgstr "Cerca"
216msgstr "Cerca"
@@ -262,19 +264,21 @@ msgstr "Inici"
262msgid "Also installed"
264msgid "Also installed"
263msgstr "També instal·lat"
265msgstr "També instal·lat"
264
266
265−#: qml/DisabledScreenNotice.qml:42
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
266−msgid "Your device is now connected to an external display."
269+"Your device is now connected to an external display. Use this screen as a "
270+"touch pad to interact with the mouse."
267msgstr ""
271msgstr ""
268
272
269#: qml/Greeter/CoverPage.qml:107
273#: qml/Greeter/CoverPage.qml:107
270msgid "Unlock"
274msgid "Unlock"
271msgstr "Desbloca"
275msgstr "Desbloca"
272
276
273−#: qml/Greeter/LoginList.qml:236
277+#: qml/Greeter/LoginList.qml:239
274msgid "Retry"
278msgid "Retry"
275msgstr "Torna-ho a provar"
279msgstr "Torna-ho a provar"
276
280
277−#: qml/Greeter/LoginList.qml:237
281+#: qml/Greeter/LoginList.qml:240
278msgid "Tap to unlock"
282msgid "Tap to unlock"
279msgstr "Feu un toc per desblocar"
283msgstr "Feu un toc per desblocar"
280
284
@@ -414,7 +418,7 @@ msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
414#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
418#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
415msgctxt "Button: Send a reply message"
419msgctxt "Button: Send a reply message"
416msgid "Send"
420msgid "Send"
417−msgstr ""
421+msgstr "Envia"
418
422
419#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
423#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
420msgctxt "Label: Hint in message indicator line edit"
424msgctxt "Label: Hint in message indicator line edit"
@@ -424,7 +428,7 @@ msgstr "Respon"
424#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
428#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
425msgctxt "Button: Call back on phone"
429msgctxt "Button: Call back on phone"
426msgid "Call back"
430msgid "Call back"
427−msgstr ""
431+msgstr "Retorna la trucada"
428
432
429#: qml/Panel/Indicators/ModemInfoItem.qml:105
433#: qml/Panel/Indicators/ModemInfoItem.qml:105
430msgid "Unlock SIM"
434msgid "Unlock SIM"
@@ -497,8 +501,8 @@ msgid "Hi!"
497msgstr "Hola!"
501msgstr "Hola!"
498
502
499#: qml/Wizard/Pages/10-welcome.qml:44
503#: qml/Wizard/Pages/10-welcome.qml:44
500−msgid "Welcome to your Ubuntu phone."
504+msgid "Welcome to your Ubuntu device."
501−msgstr "Us donem la benvinguda al vostre telèfon Ubuntu."
505+msgstr ""
502
506
503#: qml/Wizard/Pages/10-welcome.qml:52
507#: qml/Wizard/Pages/10-welcome.qml:52
504msgid "Let’s get started."
508msgid "Let’s get started."
@@ -528,8 +532,8 @@ msgid "Lock security"
528msgstr "Seguretat del bloqueig"
532msgstr "Seguretat del bloqueig"
529
533
530#: qml/Wizard/Pages/30-passwd-type.qml:79
534#: qml/Wizard/Pages/30-passwd-type.qml:79
531−msgid "Please select how you’d like to unlock your phone."
535+msgid "Please select how you’d like to unlock your device."
532−msgstr "Seleccioneu com voleu desblocar el telèfon."
536+msgstr ""
533
537
534#: qml/Wizard/Pages/30-passwd-type.qml:102
538#: qml/Wizard/Pages/30-passwd-type.qml:102
535msgctxt "Label: Type of security method"
539msgctxt "Label: Type of security method"
@@ -638,8 +642,8 @@ msgid "Nice work!"
638msgstr "Bona feina!"
642msgstr "Bona feina!"
639
643
640#: qml/Wizard/Pages/80-finished.qml:46
644#: qml/Wizard/Pages/80-finished.qml:46
641−msgid "Your phone is now ready to use."
645+msgid "Your device is now ready to use."
642−msgstr "Ja podeu utilitzar el vostre telèfon."
646+msgstr ""
643
647
644#: qml/Wizard/Pages/80-finished.qml:53
648#: qml/Wizard/Pages/80-finished.qml:53
645msgid "Finish"
649msgid "Finish"
@@ -782,6 +786,15 @@ msgstr "%1 〉"
782#~ msgid "Manage Scopes"
786#~ msgid "Manage Scopes"
783#~ msgstr "Gestioneu les lents"
787#~ msgstr "Gestioneu les lents"
784
788
789+#~ msgid "Welcome to your Ubuntu phone."
790+#~ msgstr "Us donem la benvinguda al vostre telèfon Ubuntu."
791+
792+#~ msgid "Please select how you’d like to unlock your phone."
793+#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
794+
795+#~ msgid "Your phone is now ready to use."
796+#~ msgstr "Ja podeu utilitzar el vostre telèfon."
797+
785#~ msgid "Yesterday %l:%M %p"
798#~ msgid "Yesterday %l:%M %p"
786#~ msgstr "Ahir %l.%M %p"
799#~ msgstr "Ahir %l.%M %p"
787
800
po/ca@valencia.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-02-22 15:22+0000\n"
11"PO-Revision-Date: 2015-02-22 15:22+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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -200,15 +200,15 @@ msgstr "Suprimeix dels preferits"
200msgid "Add to Favorites"
200msgid "Add to Favorites"
201msgstr "Afig als preferits"
201msgstr "Afig als preferits"
202
202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204msgid "See less"
204msgid "See less"
205msgstr "Mostra'n menys"
205msgstr "Mostra'n menys"
206
206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208msgid "See all"
208msgid "See all"
209msgstr "Mostra-ho tot"
209msgstr "Mostra-ho tot"
210
210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212msgctxt "Label: Hint for dash search line edit"
212msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
@@ -262,19 +262,21 @@ msgstr "Inici"
262msgid "Also installed"
262msgid "Also installed"
263msgstr "També instal·lat"
263msgstr "També instal·lat"
264
264
265−#: qml/DisabledScreenNotice.qml:42
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
266−msgid "Your device is now connected to an external display."
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
267msgstr ""
269msgstr ""
268
270
269#: qml/Greeter/CoverPage.qml:107
271#: qml/Greeter/CoverPage.qml:107
270msgid "Unlock"
272msgid "Unlock"
271msgstr "Desbloca"
273msgstr "Desbloca"
272
274
273−#: qml/Greeter/LoginList.qml:236
275+#: qml/Greeter/LoginList.qml:239
274msgid "Retry"
276msgid "Retry"
275msgstr ""
277msgstr ""
276
278
277−#: qml/Greeter/LoginList.qml:237
279+#: qml/Greeter/LoginList.qml:240
278msgid "Tap to unlock"
280msgid "Tap to unlock"
279msgstr ""
281msgstr ""
280
282
@@ -497,8 +499,8 @@ msgid "Hi!"
497msgstr "Hola!"
499msgstr "Hola!"
498
500
499#: qml/Wizard/Pages/10-welcome.qml:44
501#: qml/Wizard/Pages/10-welcome.qml:44
500−msgid "Welcome to your Ubuntu phone."
502+msgid "Welcome to your Ubuntu device."
501−msgstr "Vos donem la benvinguda al vostre telèfon Ubuntu."
503+msgstr ""
502
504
503#: qml/Wizard/Pages/10-welcome.qml:52
505#: qml/Wizard/Pages/10-welcome.qml:52
504msgid "Let’s get started."
506msgid "Let’s get started."
@@ -528,8 +530,8 @@ msgid "Lock security"
528msgstr "Seguretat del bloqueig"
530msgstr "Seguretat del bloqueig"
529
531
530#: qml/Wizard/Pages/30-passwd-type.qml:79
532#: qml/Wizard/Pages/30-passwd-type.qml:79
531−msgid "Please select how you’d like to unlock your phone."
533+msgid "Please select how you’d like to unlock your device."
532−msgstr "Seleccioneu com voleu desblocar el telèfon."
534+msgstr ""
533
535
534#: qml/Wizard/Pages/30-passwd-type.qml:102
536#: qml/Wizard/Pages/30-passwd-type.qml:102
535msgctxt "Label: Type of security method"
537msgctxt "Label: Type of security method"
@@ -638,8 +640,8 @@ msgid "Nice work!"
638msgstr "Bona faena!"
640msgstr "Bona faena!"
639
641
640#: qml/Wizard/Pages/80-finished.qml:46
642#: qml/Wizard/Pages/80-finished.qml:46
641−msgid "Your phone is now ready to use."
643+msgid "Your device is now ready to use."
642−msgstr "Ja podeu utilitzar el vostre telèfon."
644+msgstr ""
643
645
644#: qml/Wizard/Pages/80-finished.qml:53
646#: qml/Wizard/Pages/80-finished.qml:53
645msgid "Finish"
647msgid "Finish"
@@ -772,6 +774,15 @@ msgstr "%1 〉"
772#~ msgid "Please re-enter"
774#~ msgid "Please re-enter"
773#~ msgstr "Torneu-ho a introduir"
775#~ msgstr "Torneu-ho a introduir"
774
776
777+#~ msgid "Welcome to your Ubuntu phone."
778+#~ msgstr "Vos donem la benvinguda al vostre telèfon Ubuntu."
779+
780+#~ msgid "Please select how you’d like to unlock your phone."
781+#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
782+
783+#~ msgid "Your phone is now ready to use."
784+#~ msgstr "Ja podeu utilitzar el vostre telèfon."
785+
775#~ msgid "Type or say a command"
786#~ msgid "Type or say a command"
776#~ msgstr "Escriviu o pronuncieu una ordre"
787#~ msgstr "Escriviu o pronuncieu una ordre"
777
788
po/ce.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-02-15 04:01+0000\n"
11"PO-Revision-Date: 2015-02-15 04:01+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Chechen <ce@li.org>\n"
13"Language-Team: Chechen <ce@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/ckb.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/cs.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-07 10:44+0000\n"
11"PO-Revision-Date: 2015-07-07 10:44+0000\n"
12"Last-Translator: Vojtěch Daněk <vdanek@outlook.com>\n"
12"Last-Translator: Vojtěch Daněk <vdanek@outlook.com>\n"
13"Language-Team: Czech <cs@li.org>\n"
13"Language-Team: Czech <cs@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20"Language: cs\n"
20"Language: cs\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -200,15 +200,15 @@ msgstr "Odstranit z oblíbených"
200msgid "Add to Favorites"
200msgid "Add to Favorites"
201msgstr "Přidat do oblíbených"
201msgstr "Přidat do oblíbených"
202
202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204msgid "See less"
204msgid "See less"
205msgstr "Zobrazit méně"
205msgstr "Zobrazit méně"
206
206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208msgid "See all"
208msgid "See all"
209msgstr "Zobrazit vše"
209msgstr "Zobrazit vše"
210
210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212msgctxt "Label: Hint for dash search line edit"
212msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
213msgid "Search"
214msgstr "Hledat"
214msgstr "Hledat"
@@ -262,19 +262,21 @@ msgstr "Domů"
262msgid "Also installed"
262msgid "Also installed"
263msgstr "Také nainstalováno"
263msgstr "Také nainstalováno"
264
264
265−#: qml/DisabledScreenNotice.qml:42
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
266−msgid "Your device is now connected to an external display."
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
267msgstr ""
269msgstr ""
268
270
269#: qml/Greeter/CoverPage.qml:107
271#: qml/Greeter/CoverPage.qml:107
270msgid "Unlock"
272msgid "Unlock"
271msgstr "Odemknout"
273msgstr "Odemknout"
272
274
273−#: qml/Greeter/LoginList.qml:236
275+#: qml/Greeter/LoginList.qml:239
274msgid "Retry"
276msgid "Retry"
275msgstr "Znovu"
277msgstr "Znovu"
276
278
277−#: qml/Greeter/LoginList.qml:237
279+#: qml/Greeter/LoginList.qml:240
278msgid "Tap to unlock"
280msgid "Tap to unlock"
279msgstr "Klepnout pro odemčení"
281msgstr "Klepnout pro odemčení"
280
282
@@ -498,8 +500,8 @@ msgid "Hi!"
498msgstr "Ahoj!"
500msgstr "Ahoj!"
499
501
500#: qml/Wizard/Pages/10-welcome.qml:44
502#: qml/Wizard/Pages/10-welcome.qml:44
501−msgid "Welcome to your Ubuntu phone."
503+msgid "Welcome to your Ubuntu device."
502−msgstr "Vítejte ve vašem Ubuntu telefonu."
504+msgstr ""
503
505
504#: qml/Wizard/Pages/10-welcome.qml:52
506#: qml/Wizard/Pages/10-welcome.qml:52
505msgid "Let’s get started."
507msgid "Let’s get started."
@@ -529,8 +531,8 @@ msgid "Lock security"
529msgstr "Bezpečnostní uzamčení"
531msgstr "Bezpečnostní uzamčení"
530
532
531#: qml/Wizard/Pages/30-passwd-type.qml:79
533#: qml/Wizard/Pages/30-passwd-type.qml:79
532−msgid "Please select how you’d like to unlock your phone."
534+msgid "Please select how you’d like to unlock your device."
533−msgstr "Zvolte, prosím, jak chcete svůj telefon odemykat."
535+msgstr ""
534
536
535#: qml/Wizard/Pages/30-passwd-type.qml:102
537#: qml/Wizard/Pages/30-passwd-type.qml:102
536msgctxt "Label: Type of security method"
538msgctxt "Label: Type of security method"
@@ -637,8 +639,8 @@ msgid "Nice work!"
637msgstr "Skvělá práce!"
639msgstr "Skvělá práce!"
638
640
639#: qml/Wizard/Pages/80-finished.qml:46
641#: qml/Wizard/Pages/80-finished.qml:46
640−msgid "Your phone is now ready to use."
642+msgid "Your device is now ready to use."
641−msgstr "Váš telefon je nyní připraven k použití."
643+msgstr ""
642
644
643#: qml/Wizard/Pages/80-finished.qml:53
645#: qml/Wizard/Pages/80-finished.qml:53
644msgid "Finish"
646msgid "Finish"
@@ -732,6 +734,15 @@ msgstr "%1 〉"
732#~ msgid "Please re-enter"
734#~ msgid "Please re-enter"
733#~ msgstr "Vložte znovu"
735#~ msgstr "Vložte znovu"
734
736
737+#~ msgid "Welcome to your Ubuntu phone."
738+#~ msgstr "Vítejte ve vašem Ubuntu telefonu."
739+
740+#~ msgid "Please select how you’d like to unlock your phone."
741+#~ msgstr "Zvolte, prosím, jak chcete svůj telefon odemykat."
742+
743+#~ msgid "Your phone is now ready to use."
744+#~ msgstr "Váš telefon je nyní připraven k použití."
745+
735#~ msgid "%a %d %b %H:%M"
746#~ msgid "%a %d %b %H:%M"
736#~ msgstr "%a %b. %d %H:%M"
747#~ msgstr "%a %b. %d %H:%M"
737
748
po/cy.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-31 13:21+0000\n"
11"PO-Revision-Date: 2015-07-31 13:21+0000\n"
12"Last-Translator: Owen Llywelyn <owen.llywelyn@gmail.com>\n"
12"Last-Translator: Owen Llywelyn <owen.llywelyn@gmail.com>\n"
13"Language-Team: Welsh <cy@li.org>\n"
13"Language-Team: Welsh <cy@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
17"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
18"2 : 3;\n"
18"2 : 3;\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -201,15 +201,15 @@ msgstr "Tynnu o Ffefrynnau"
201msgid "Add to Favorites"
201msgid "Add to Favorites"
202msgstr "Ychwanegu at Ffefrynnau"
202msgstr "Ychwanegu at Ffefrynnau"
203
203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205msgid "See less"
205msgid "See less"
206msgstr "Gweld llai"
206msgstr "Gweld llai"
207
207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209msgid "See all"
209msgid "See all"
210msgstr "Gweld y cyfan"
210msgstr "Gweld y cyfan"
211
211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213msgctxt "Label: Hint for dash search line edit"
213msgctxt "Label: Hint for dash search line edit"
214msgid "Search"
214msgid "Search"
215msgstr "Chwilio"
215msgstr "Chwilio"
@@ -263,19 +263,21 @@ msgstr "Cartref"
263msgid "Also installed"
263msgid "Also installed"
264msgstr "Hefyd wedi gosod"
264msgstr "Hefyd wedi gosod"
265
265
266−#: qml/DisabledScreenNotice.qml:42
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
267−msgid "Your device is now connected to an external display."
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
268msgstr ""
270msgstr ""
269
271
270#: qml/Greeter/CoverPage.qml:107
272#: qml/Greeter/CoverPage.qml:107
271msgid "Unlock"
273msgid "Unlock"
272msgstr "Datgloi"
274msgstr "Datgloi"
273
275
274−#: qml/Greeter/LoginList.qml:236
276+#: qml/Greeter/LoginList.qml:239
275msgid "Retry"
277msgid "Retry"
276msgstr "Ailgynnig"
278msgstr "Ailgynnig"
277
279
278−#: qml/Greeter/LoginList.qml:237
280+#: qml/Greeter/LoginList.qml:240
279msgid "Tap to unlock"
281msgid "Tap to unlock"
280msgstr "Tapiwch i ddatgloi"
282msgstr "Tapiwch i ddatgloi"
281
283
@@ -502,8 +504,8 @@ msgid "Hi!"
502msgstr "Shwmae!"
504msgstr "Shwmae!"
503
505
504#: qml/Wizard/Pages/10-welcome.qml:44
506#: qml/Wizard/Pages/10-welcome.qml:44
505−msgid "Welcome to your Ubuntu phone."
507+msgid "Welcome to your Ubuntu device."
506−msgstr "Croeso i'ch ffôn Ubuntu."
508+msgstr ""
507
509
508#: qml/Wizard/Pages/10-welcome.qml:52
510#: qml/Wizard/Pages/10-welcome.qml:52
509msgid "Let’s get started."
511msgid "Let’s get started."
@@ -533,8 +535,8 @@ msgid "Lock security"
533msgstr "Diogelwch cloi"
535msgstr "Diogelwch cloi"
534
536
535#: qml/Wizard/Pages/30-passwd-type.qml:79
537#: qml/Wizard/Pages/30-passwd-type.qml:79
536−msgid "Please select how you’d like to unlock your phone."
538+msgid "Please select how you’d like to unlock your device."
537−msgstr "Dewiswch sut yr hoffech ddatgloi'r ffôn."
539+msgstr ""
538
540
539#: qml/Wizard/Pages/30-passwd-type.qml:102
541#: qml/Wizard/Pages/30-passwd-type.qml:102
540msgctxt "Label: Type of security method"
542msgctxt "Label: Type of security method"
@@ -641,8 +643,8 @@ msgid "Nice work!"
641msgstr "Da iawn!"
643msgstr "Da iawn!"
642
644
643#: qml/Wizard/Pages/80-finished.qml:46
645#: qml/Wizard/Pages/80-finished.qml:46
644−msgid "Your phone is now ready to use."
646+msgid "Your device is now ready to use."
645−msgstr "Mae eich ffôn yn barod i'w ddefnyddio"
647+msgstr ""
646
648
647#: qml/Wizard/Pages/80-finished.qml:53
649#: qml/Wizard/Pages/80-finished.qml:53
648msgid "Finish"
650msgid "Finish"
@@ -714,3 +716,12 @@ msgstr "%1 〉"
714
716
715#~ msgid "Tomorrow %H:%M"
717#~ msgid "Tomorrow %H:%M"
716#~ msgstr "Yfory %H:%M"
718#~ msgstr "Yfory %H:%M"
719+
720+#~ msgid "Welcome to your Ubuntu phone."
721+#~ msgstr "Croeso i'ch ffôn Ubuntu."
722+
723+#~ msgid "Please select how you’d like to unlock your phone."
724+#~ msgstr "Dewiswch sut yr hoffech ddatgloi'r ffôn."
725+
726+#~ msgid "Your phone is now ready to use."
727+#~ msgstr "Mae eich ffôn yn barod i'w ddefnyddio"
po/da.po+27−16
@@ -8,7 +8,7 @@ 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: 2016-01-22 17:08+0000\n"
11+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
12"PO-Revision-Date: 2015-07-06 12:05+0000\n"
12"PO-Revision-Date: 2015-07-06 12:05+0000\n"
13"Last-Translator: Folmer Fredslund <Unknown>\n"
13"Last-Translator: Folmer Fredslund <Unknown>\n"
14"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
14"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -16,8 +16,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -201,15 +201,15 @@ msgstr "Fjern fra Favoritter"
201msgid "Add to Favorites"
201msgid "Add to Favorites"
202msgstr "Tilføj til Favoritter"
202msgstr "Tilføj til Favoritter"
203
203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205msgid "See less"
205msgid "See less"
206msgstr "Vis mindre"
206msgstr "Vis mindre"
207
207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209msgid "See all"
209msgid "See all"
210msgstr "Se alle"
210msgstr "Se alle"
211
211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213msgctxt "Label: Hint for dash search line edit"
213msgctxt "Label: Hint for dash search line edit"
214msgid "Search"
214msgid "Search"
215msgstr "Søg"
215msgstr "Søg"
@@ -263,19 +263,21 @@ msgstr "Hjem"
263msgid "Also installed"
263msgid "Also installed"
264msgstr "Også installeret"
264msgstr "Også installeret"
265
265
266−#: qml/DisabledScreenNotice.qml:42
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
267−msgid "Your device is now connected to an external display."
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
268msgstr ""
270msgstr ""
269
271
270#: qml/Greeter/CoverPage.qml:107
272#: qml/Greeter/CoverPage.qml:107
271msgid "Unlock"
273msgid "Unlock"
272msgstr "Lås op"
274msgstr "Lås op"
273
275
274−#: qml/Greeter/LoginList.qml:236
276+#: qml/Greeter/LoginList.qml:239
275msgid "Retry"
277msgid "Retry"
276msgstr "Forsøg igen"
278msgstr "Forsøg igen"
277
279
278−#: qml/Greeter/LoginList.qml:237
280+#: qml/Greeter/LoginList.qml:240
279msgid "Tap to unlock"
281msgid "Tap to unlock"
280msgstr "Tap for at låse op"
282msgstr "Tap for at låse op"
281
283
@@ -496,8 +498,8 @@ msgid "Hi!"
496msgstr "Hej!"
498msgstr "Hej!"
497
499
498#: qml/Wizard/Pages/10-welcome.qml:44
500#: qml/Wizard/Pages/10-welcome.qml:44
499−msgid "Welcome to your Ubuntu phone."
501+msgid "Welcome to your Ubuntu device."
500−msgstr "Velkommen til din Ubuntu-telefon."
502+msgstr ""
501
503
502#: qml/Wizard/Pages/10-welcome.qml:52
504#: qml/Wizard/Pages/10-welcome.qml:52
503msgid "Let’s get started."
505msgid "Let’s get started."
@@ -529,8 +531,8 @@ msgid "Lock security"
529msgstr "Låsesikkerhed"
531msgstr "Låsesikkerhed"
530
532
531#: qml/Wizard/Pages/30-passwd-type.qml:79
533#: qml/Wizard/Pages/30-passwd-type.qml:79
532−msgid "Please select how you’d like to unlock your phone."
534+msgid "Please select how you’d like to unlock your device."
533−msgstr "Vælg venligst hvordan du ønsker at låse din telefon op."
535+msgstr ""
534
536
535#: qml/Wizard/Pages/30-passwd-type.qml:102
537#: qml/Wizard/Pages/30-passwd-type.qml:102
536msgctxt "Label: Type of security method"
538msgctxt "Label: Type of security method"
@@ -637,8 +639,8 @@ msgid "Nice work!"
637msgstr "Godt arbejde!"
639msgstr "Godt arbejde!"
638
640
639#: qml/Wizard/Pages/80-finished.qml:46
641#: qml/Wizard/Pages/80-finished.qml:46
640−msgid "Your phone is now ready to use."
642+msgid "Your device is now ready to use."
641−msgstr "Din telefon er nu klar til brug."
643+msgstr ""
642
644
643#: qml/Wizard/Pages/80-finished.qml:53
645#: qml/Wizard/Pages/80-finished.qml:53
644msgid "Finish"
646msgid "Finish"
@@ -739,6 +741,15 @@ msgstr "%1 〉"
739#~ msgid "Please re-enter"
741#~ msgid "Please re-enter"
740#~ msgstr "Vær venlig at genindtaste"
742#~ msgstr "Vær venlig at genindtaste"
741
743
744+#~ msgid "Please select how you’d like to unlock your phone."
745+#~ msgstr "Vælg venligst hvordan du ønsker at låse din telefon op."
746+
747+#~ msgid "Your phone is now ready to use."
748+#~ msgstr "Din telefon er nu klar til brug."
749+
750+#~ msgid "Welcome to your Ubuntu phone."
751+#~ msgstr "Velkommen til din Ubuntu-telefon."
752+
742#~ msgid "%a %d %b %H:%M"
753#~ msgid "%a %d %b %H:%M"
743#~ msgstr "%a %b. %d %H:%M"
754#~ msgstr "%a %b. %d %H:%M"
744
755
po/de.po+32−19
@@ -7,16 +7,16 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11−"PO-Revision-Date: 2015-07-24 18:03+0000\n"
11+"PO-Revision-Date: 2016-02-17 19:16+0000\n"
12−"Last-Translator: Torsten Franz <Unknown>\n"
12+"Last-Translator: schuko24 <gerdsaenger@t-online.de>\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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -202,15 +202,15 @@ msgstr "Aus den Favoriten entfernen"
202msgid "Add to Favorites"
202msgid "Add to Favorites"
203msgstr "Zu Favoriten hinzufügen"
203msgstr "Zu Favoriten hinzufügen"
204
204
205−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
206msgid "See less"
206msgid "See less"
207msgstr "Weniger ansehen"
207msgstr "Weniger ansehen"
208
208
209−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
210msgid "See all"
210msgid "See all"
211msgstr "Alle anzeigen"
211msgstr "Alle anzeigen"
212
212
213−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
214msgctxt "Label: Hint for dash search line edit"
214msgctxt "Label: Hint for dash search line edit"
215msgid "Search"
215msgid "Search"
216msgstr "Suchen"
216msgstr "Suchen"
@@ -264,19 +264,23 @@ msgstr "Startseite"
264msgid "Also installed"
264msgid "Also installed"
265msgstr "Ebenfalls installiert"
265msgstr "Ebenfalls installiert"
266
266
267−#: qml/DisabledScreenNotice.qml:42
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
268−msgid "Your device is now connected to an external display."
269+"Your device is now connected to an external display. Use this screen as a "
270+"touch pad to interact with the mouse."
271+msgstr ""
269−msgstr "Ihr Gerät ist jetzt mit einem externen Bildschirm verbunden."
272+"Ihr Gerät ist nun mit einer externen Anzeige verbunden. Benutzen Sie diesen "
273+"Bildschirm als Touchpad zur Steuerung des Mauszeigers."
270
274
271#: qml/Greeter/CoverPage.qml:107
275#: qml/Greeter/CoverPage.qml:107
272msgid "Unlock"
276msgid "Unlock"
273msgstr "Entsperren"
277msgstr "Entsperren"
274
278
275−#: qml/Greeter/LoginList.qml:236
279+#: qml/Greeter/LoginList.qml:239
276msgid "Retry"
280msgid "Retry"
277msgstr "Erneut versuchen"
281msgstr "Erneut versuchen"
278
282
279−#: qml/Greeter/LoginList.qml:237
283+#: qml/Greeter/LoginList.qml:240
280msgid "Tap to unlock"
284msgid "Tap to unlock"
281msgstr "Zum Entsperren tippen"
285msgstr "Zum Entsperren tippen"
282
286
@@ -498,8 +502,8 @@ msgid "Hi!"
498msgstr "Hallo!"
502msgstr "Hallo!"
499
503
500#: qml/Wizard/Pages/10-welcome.qml:44
504#: qml/Wizard/Pages/10-welcome.qml:44
501−msgid "Welcome to your Ubuntu phone."
505+msgid "Welcome to your Ubuntu device."
502−msgstr "Willkommen zu Ihrem Ubuntu-Telefon."
506+msgstr "Willkommen auf Ihrem Ubuntu-Gerät."
503
507
504#: qml/Wizard/Pages/10-welcome.qml:52
508#: qml/Wizard/Pages/10-welcome.qml:52
505msgid "Let’s get started."
509msgid "Let’s get started."
@@ -529,8 +533,8 @@ msgid "Lock security"
529msgstr "Sicherheit nach dem Sperren"
533msgstr "Sicherheit nach dem Sperren"
530
534
531#: qml/Wizard/Pages/30-passwd-type.qml:79
535#: qml/Wizard/Pages/30-passwd-type.qml:79
532−msgid "Please select how you’d like to unlock your phone."
536+msgid "Please select how you’d like to unlock your device."
533−msgstr "Bitte wählen Sie aus, wie Sie Ihr Telefon entsperren wollen."
537+msgstr "Bitte wählen Sie, wie Sie dieses Gerät entsperren möchten."
534
538
535#: qml/Wizard/Pages/30-passwd-type.qml:102
539#: qml/Wizard/Pages/30-passwd-type.qml:102
536msgctxt "Label: Type of security method"
540msgctxt "Label: Type of security method"
@@ -638,8 +642,8 @@ msgid "Nice work!"
638msgstr "Gute Arbeit!"
642msgstr "Gute Arbeit!"
639
643
640#: qml/Wizard/Pages/80-finished.qml:46
644#: qml/Wizard/Pages/80-finished.qml:46
641−msgid "Your phone is now ready to use."
645+msgid "Your device is now ready to use."
642−msgstr "Ihr Telefon ist nun einsatzbereit."
646+msgstr "Ihr Gerät ist nun einsatzbereit."
643
647
644#: qml/Wizard/Pages/80-finished.qml:53
648#: qml/Wizard/Pages/80-finished.qml:53
645msgid "Finish"
649msgid "Finish"
@@ -779,6 +783,15 @@ msgstr "%1 〉"
779#~ msgid "Please re-enter"
783#~ msgid "Please re-enter"
780#~ msgstr "Bitte erneut eingeben"
784#~ msgstr "Bitte erneut eingeben"
781
785
786+#~ msgid "Welcome to your Ubuntu phone."
787+#~ msgstr "Willkommen zu Ihrem Ubuntu-Telefon."
788+
789+#~ msgid "Please select how you’d like to unlock your phone."
790+#~ msgstr "Bitte wählen Sie aus, wie Sie Ihr Telefon entsperren wollen."
791+
792+#~ msgid "Your phone is now ready to use."
793+#~ msgstr "Ihr Telefon ist nun einsatzbereit."
794+
782#~ msgid "%a %H:%M"
795#~ msgid "%a %H:%M"
783#~ msgstr "%a %k:%M"
796#~ msgstr "%a %k:%M"
784
797
po/el.po+28−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-12-04 09:38+0000\n"
11"PO-Revision-Date: 2015-12-04 09:38+0000\n"
12"Last-Translator: Aggelos Arnaoutis <angelosarn@hotmail.com>\n"
12"Last-Translator: Aggelos Arnaoutis <angelosarn@hotmail.com>\n"
13"Language-Team: Greek <el@li.org>\n"
13"Language-Team: Greek <el@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -202,15 +202,15 @@ msgstr "Αφαίρεση από τα αγαπημένα"
202msgid "Add to Favorites"
202msgid "Add to Favorites"
203msgstr "Προσθήκη στα αγαπημένα"
203msgstr "Προσθήκη στα αγαπημένα"
204
204
205−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
206msgid "See less"
206msgid "See less"
207msgstr "Λιγότερα"
207msgstr "Λιγότερα"
208
208
209−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
210msgid "See all"
210msgid "See all"
211msgstr "Εμφάνιση όλων"
211msgstr "Εμφάνιση όλων"
212
212
213−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
214msgctxt "Label: Hint for dash search line edit"
214msgctxt "Label: Hint for dash search line edit"
215msgid "Search"
215msgid "Search"
216msgstr "Αναζήτηση"
216msgstr "Αναζήτηση"
@@ -264,19 +264,21 @@ msgstr "Αρχή"
264msgid "Also installed"
264msgid "Also installed"
265msgstr "Επίσης εγκατεστημένα"
265msgstr "Επίσης εγκατεστημένα"
266
266
267−#: qml/DisabledScreenNotice.qml:42
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
268−msgid "Your device is now connected to an external display."
269+"Your device is now connected to an external display. Use this screen as a "
269−msgstr "Η συσκευή σας τώρα είναι συνδεδεμένη σε εξωτερική οθόνη."
270+"touch pad to interact with the mouse."
271+msgstr ""
270
272
271#: qml/Greeter/CoverPage.qml:107
273#: qml/Greeter/CoverPage.qml:107
272msgid "Unlock"
274msgid "Unlock"
273msgstr "Ξεκλείδωμα"
275msgstr "Ξεκλείδωμα"
274
276
275−#: qml/Greeter/LoginList.qml:236
277+#: qml/Greeter/LoginList.qml:239
276msgid "Retry"
278msgid "Retry"
277msgstr "Επανάληψη"
279msgstr "Επανάληψη"
278
280
279−#: qml/Greeter/LoginList.qml:237
281+#: qml/Greeter/LoginList.qml:240
280msgid "Tap to unlock"
282msgid "Tap to unlock"
281msgstr "Ακουμπήστε για να ξεκλειδώσετε"
283msgstr "Ακουμπήστε για να ξεκλειδώσετε"
282
284
@@ -500,8 +502,8 @@ msgid "Hi!"
500msgstr "Γεια!"
502msgstr "Γεια!"
501
503
502#: qml/Wizard/Pages/10-welcome.qml:44
504#: qml/Wizard/Pages/10-welcome.qml:44
503−msgid "Welcome to your Ubuntu phone."
505+msgid "Welcome to your Ubuntu device."
504−msgstr "Καλώς ήρθατε στο Ubuntu phone σας."
506+msgstr ""
505
507
506#: qml/Wizard/Pages/10-welcome.qml:52
508#: qml/Wizard/Pages/10-welcome.qml:52
507msgid "Let’s get started."
509msgid "Let’s get started."
@@ -533,8 +535,8 @@ msgid "Lock security"
533msgstr "Κλείδωμα ασφαλείας"
535msgstr "Κλείδωμα ασφαλείας"
534
536
535#: qml/Wizard/Pages/30-passwd-type.qml:79
537#: qml/Wizard/Pages/30-passwd-type.qml:79
536−msgid "Please select how you’d like to unlock your phone."
538+msgid "Please select how you’d like to unlock your device."
537−msgstr "Παρακαλούμε επιλέξτε πως θα θέλατε να ξεκλειδώνετε το τηλέφωνό σας."
539+msgstr ""
538
540
539#: qml/Wizard/Pages/30-passwd-type.qml:102
541#: qml/Wizard/Pages/30-passwd-type.qml:102
540msgctxt "Label: Type of security method"
542msgctxt "Label: Type of security method"
@@ -644,8 +646,8 @@ msgid "Nice work!"
644msgstr "Ωραία δουλειά!"
646msgstr "Ωραία δουλειά!"
645
647
646#: qml/Wizard/Pages/80-finished.qml:46
648#: qml/Wizard/Pages/80-finished.qml:46
647−msgid "Your phone is now ready to use."
649+msgid "Your device is now ready to use."
648−msgstr "Το τηλέφωνό σας είναι πλέον έτοιμο για χρήση."
650+msgstr ""
649
651
650#: qml/Wizard/Pages/80-finished.qml:53
652#: qml/Wizard/Pages/80-finished.qml:53
651msgid "Finish"
653msgid "Finish"
@@ -778,6 +780,15 @@ msgstr "%1 〉"
778#~ msgid "Settings"
780#~ msgid "Settings"
779#~ msgstr "Ρυθμίσεις"
781#~ msgstr "Ρυθμίσεις"
780
782
783+#~ msgid "Welcome to your Ubuntu phone."
784+#~ msgstr "Καλώς ήρθατε στο Ubuntu phone σας."
785+
786+#~ msgid "Please select how you’d like to unlock your phone."
787+#~ msgstr "Παρακαλούμε επιλέξτε πως θα θέλατε να ξεκλειδώνετε το τηλέφωνό σας."
788+
789+#~ msgid "Your phone is now ready to use."
790+#~ msgstr "Το τηλέφωνό σας είναι πλέον έτοιμο για χρήση."
791+
781#~ msgid "Power"
792#~ msgid "Power"
782#~ msgstr "Ενέργεια"
793#~ msgstr "Ενέργεια"
783
794
po/en_AU.po+41−28
@@ -7,16 +7,16 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11−"PO-Revision-Date: 2015-07-12 07:17+0000\n"
11+"PO-Revision-Date: 2016-02-12 23:22+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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -29,7 +29,7 @@ msgstr "Pin shortcut"
29
29
30#: plugins/Unity/Launcher/launcheritem.cpp:52
30#: plugins/Unity/Launcher/launcheritem.cpp:52
31msgid "Quit"
31msgid "Quit"
32−msgstr ""
32+msgstr "Quit"
33
33
34#: plugins/Unity/Launcher/launcheritem.cpp:106
34#: plugins/Unity/Launcher/launcheritem.cpp:106
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
@@ -151,27 +151,27 @@ msgstr "OK"
151
151
152#: qml/Components/ModeSwitchWarningDialog.qml:32
152#: qml/Components/ModeSwitchWarningDialog.qml:32
153msgid "Apps may have unsaved data:"
153msgid "Apps may have unsaved data:"
154−msgstr ""
154+msgstr "Apps may have unsaved data:"
155
155
156#: qml/Components/ModeSwitchWarningDialog.qml:57
156#: qml/Components/ModeSwitchWarningDialog.qml:57
157msgid "Re-dock, save your work and close these apps to continue."
157msgid "Re-dock, save your work and close these apps to continue."
158−msgstr ""
158+msgstr "Re-dock, save your work and close these apps to continue."
159
159
160#: qml/Components/ModeSwitchWarningDialog.qml:63
160#: qml/Components/ModeSwitchWarningDialog.qml:63
161msgid "Or force close now (unsaved data will be lost)."
161msgid "Or force close now (unsaved data will be lost)."
162−msgstr ""
162+msgstr "Or force close now (unsaved data will be lost)."
163
163
164#: qml/Components/ModeSwitchWarningDialog.qml:75
164#: qml/Components/ModeSwitchWarningDialog.qml:75
165msgid "OK, I will reconnect"
165msgid "OK, I will reconnect"
166−msgstr ""
166+msgstr "OK, I will reconnect"
167
167
168#: qml/Components/ModeSwitchWarningDialog.qml:76
168#: qml/Components/ModeSwitchWarningDialog.qml:76
169msgid "Reconnect now!"
169msgid "Reconnect now!"
170−msgstr ""
170+msgstr "Reconnect now!"
171
171
172#: qml/Components/ModeSwitchWarningDialog.qml:88
172#: qml/Components/ModeSwitchWarningDialog.qml:88
173msgid "Close all"
173msgid "Close all"
174−msgstr ""
174+msgstr "Close all"
175
175
176#: qml/Dash/DashPageHeader.qml:266
176#: qml/Dash/DashPageHeader.qml:266
177msgctxt "Button: Open the Ubuntu Store"
177msgctxt "Button: Open the Ubuntu Store"
@@ -196,15 +196,15 @@ msgstr "Remove from Favourites"
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr "Add to Favourites"
197msgstr "Add to Favourites"
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr "See less"
201msgstr "See less"
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr "See all"
205msgstr "See all"
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr "Search"
210msgstr "Search"
@@ -232,7 +232,7 @@ msgstr "Add a review"
232
232
233#: qml/Dash/Previews/PreviewSharing.qml:50
233#: qml/Dash/Previews/PreviewSharing.qml:50
234msgid "Preview Share Item"
234msgid "Preview Share Item"
235−msgstr ""
235+msgstr "Preview Share Item"
236
236
237#: qml/Dash/PullToRefreshScopeStyle.qml:55
237#: qml/Dash/PullToRefreshScopeStyle.qml:55
238msgid "Pull to refresh…"
238msgid "Pull to refresh…"
@@ -258,19 +258,23 @@ msgstr "Home"
258msgid "Also installed"
258msgid "Also installed"
259msgstr "Also installed"
259msgstr "Also installed"
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263msgstr ""
265msgstr ""
266+"Your device is now connected to an external display. Use this screen as a "
267+"touch pad to interact with the mouse."
264
268
265#: qml/Greeter/CoverPage.qml:107
269#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
270msgid "Unlock"
267msgstr "Unlock"
271msgstr "Unlock"
268
272
269−#: qml/Greeter/LoginList.qml:236
273+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
274msgid "Retry"
271msgstr "Retry"
275msgstr "Retry"
272
276
273−#: qml/Greeter/LoginList.qml:237
277+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
278msgid "Tap to unlock"
275msgstr "Tap to unlock"
279msgstr "Tap to unlock"
276
280
@@ -327,7 +331,7 @@ msgstr "Sorry, incorrect passphrase"
327#: qml/Greeter/NarrowView.qml:121
331#: qml/Greeter/NarrowView.qml:121
328msgctxt "passphrase"
332msgctxt "passphrase"
329msgid "Please re-enter"
333msgid "Please re-enter"
330−msgstr ""
334+msgstr "Please re-enter"
331
335
332#: qml/Greeter/NarrowView.qml:122
336#: qml/Greeter/NarrowView.qml:122
333msgid "Sorry, incorrect passcode"
337msgid "Sorry, incorrect passcode"
@@ -408,7 +412,7 @@ msgstr "Failed, tap to retry"
408#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
412#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
409msgctxt "Button: Send a reply message"
413msgctxt "Button: Send a reply message"
410msgid "Send"
414msgid "Send"
411−msgstr ""
415+msgstr "Send"
412
416
413#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
417#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
414msgctxt "Label: Hint in message indicator line edit"
418msgctxt "Label: Hint in message indicator line edit"
@@ -418,7 +422,7 @@ msgstr "Reply"
418#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
422#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
419msgctxt "Button: Call back on phone"
423msgctxt "Button: Call back on phone"
420msgid "Call back"
424msgid "Call back"
421−msgstr ""
425+msgstr "Call back"
422
426
423#: qml/Panel/Indicators/ModemInfoItem.qml:105
427#: qml/Panel/Indicators/ModemInfoItem.qml:105
424msgid "Unlock SIM"
428msgid "Unlock SIM"
@@ -491,8 +495,8 @@ msgid "Hi!"
491msgstr "Hi!"
495msgstr "Hi!"
492
496
493#: qml/Wizard/Pages/10-welcome.qml:44
497#: qml/Wizard/Pages/10-welcome.qml:44
494−msgid "Welcome to your Ubuntu phone."
498+msgid "Welcome to your Ubuntu device."
495−msgstr "Welcome to your Ubuntu phone."
499+msgstr ""
496
500
497#: qml/Wizard/Pages/10-welcome.qml:52
501#: qml/Wizard/Pages/10-welcome.qml:52
498msgid "Let’s get started."
502msgid "Let’s get started."
@@ -522,8 +526,8 @@ msgid "Lock security"
522msgstr "Lock security"
526msgstr "Lock security"
523
527
524#: qml/Wizard/Pages/30-passwd-type.qml:79
528#: qml/Wizard/Pages/30-passwd-type.qml:79
525−msgid "Please select how you’d like to unlock your phone."
529+msgid "Please select how you’d like to unlock your device."
526−msgstr "Please select how you’d like to unlock your phone."
530+msgstr ""
527
531
528#: qml/Wizard/Pages/30-passwd-type.qml:102
532#: qml/Wizard/Pages/30-passwd-type.qml:102
529msgctxt "Label: Type of security method"
533msgctxt "Label: Type of security method"
@@ -629,8 +633,8 @@ msgid "Nice work!"
629msgstr "Nice work!"
633msgstr "Nice work!"
630
634
631#: qml/Wizard/Pages/80-finished.qml:46
635#: qml/Wizard/Pages/80-finished.qml:46
632−msgid "Your phone is now ready to use."
636+msgid "Your device is now ready to use."
633−msgstr "Your phone is now ready to use."
637+msgstr ""
634
638
635#: qml/Wizard/Pages/80-finished.qml:53
639#: qml/Wizard/Pages/80-finished.qml:53
636msgid "Finish"
640msgid "Finish"
@@ -767,6 +771,15 @@ msgstr "%1 〉"
767#~ msgid "Please re-enter"
771#~ msgid "Please re-enter"
768#~ msgstr "Please re-enter"
772#~ msgstr "Please re-enter"
769
773
774+#~ msgid "Welcome to your Ubuntu phone."
775+#~ msgstr "Welcome to your Ubuntu phone."
776+
777+#~ msgid "Please select how you’d like to unlock your phone."
778+#~ msgstr "Please select how you’d like to unlock your phone."
779+
780+#~ msgid "Your phone is now ready to use."
781+#~ msgstr "Your phone is now ready to use."
782+
770#~ msgid "%a %d %b %H:%M"
783#~ msgid "%a %d %b %H:%M"
771#~ msgstr "%a %b %d %H:%M"
784#~ msgstr "%a %b %d %H:%M"
772
785
po/en_GB.po+30−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-04-23 12:59+0000\n"
11"PO-Revision-Date: 2015-04-23 12:59+0000\n"
12"Last-Translator: Andi Chandler <Unknown>\n"
12"Last-Translator: Andi Chandler <Unknown>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Remove from Favourites"
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr "Add to Favourites"
197msgstr "Add to Favourites"
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr "See less"
201msgstr "See less"
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr "See all"
205msgstr "See all"
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr "Search"
210msgstr "Search"
@@ -258,19 +258,23 @@ msgstr "Home"
258msgid "Also installed"
258msgid "Also installed"
259msgstr "Also installed"
259msgstr "Also installed"
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
265+msgstr ""
263−msgstr "Your device is now connected to an external display."
266+"Your device is now connected to an external display. Use this screen as a "
267+"touch pad to interact with the mouse."
264
268
265#: qml/Greeter/CoverPage.qml:107
269#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
270msgid "Unlock"
267msgstr "Unlock"
271msgstr "Unlock"
268
272
269−#: qml/Greeter/LoginList.qml:236
273+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
274msgid "Retry"
271msgstr "Retry"
275msgstr "Retry"
272
276
273−#: qml/Greeter/LoginList.qml:237
277+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
278msgid "Tap to unlock"
275msgstr "Tap to unlock"
279msgstr "Tap to unlock"
276
280
@@ -491,8 +495,8 @@ msgid "Hi!"
491msgstr "Hi!"
495msgstr "Hi!"
492
496
493#: qml/Wizard/Pages/10-welcome.qml:44
497#: qml/Wizard/Pages/10-welcome.qml:44
494−msgid "Welcome to your Ubuntu phone."
498+msgid "Welcome to your Ubuntu device."
495−msgstr "Welcome to your Ubuntu phone."
499+msgstr "Welcome to your Ubuntu device."
496
500
497#: qml/Wizard/Pages/10-welcome.qml:52
501#: qml/Wizard/Pages/10-welcome.qml:52
498msgid "Let’s get started."
502msgid "Let’s get started."
@@ -522,8 +526,8 @@ msgid "Lock security"
522msgstr "Lock security"
526msgstr "Lock security"
523
527
524#: qml/Wizard/Pages/30-passwd-type.qml:79
528#: qml/Wizard/Pages/30-passwd-type.qml:79
525−msgid "Please select how you’d like to unlock your phone."
529+msgid "Please select how you’d like to unlock your device."
526−msgstr "Please select how you’d like to unlock your phone."
530+msgstr "Please select how you would like to unlock your device."
527
531
528#: qml/Wizard/Pages/30-passwd-type.qml:102
532#: qml/Wizard/Pages/30-passwd-type.qml:102
529msgctxt "Label: Type of security method"
533msgctxt "Label: Type of security method"
@@ -629,8 +633,8 @@ msgid "Nice work!"
629msgstr "Nice work!"
633msgstr "Nice work!"
630
634
631#: qml/Wizard/Pages/80-finished.qml:46
635#: qml/Wizard/Pages/80-finished.qml:46
632−msgid "Your phone is now ready to use."
636+msgid "Your device is now ready to use."
633−msgstr "Your phone is now ready to use."
637+msgstr "Your device is now ready to use."
634
638
635#: qml/Wizard/Pages/80-finished.qml:53
639#: qml/Wizard/Pages/80-finished.qml:53
636msgid "Finish"
640msgid "Finish"
@@ -767,6 +771,15 @@ msgstr "%1 〉"
767#~ msgid "Please re-enter"
771#~ msgid "Please re-enter"
768#~ msgstr "Please re-enter"
772#~ msgstr "Please re-enter"
769
773
774+#~ msgid "Please select how you’d like to unlock your phone."
775+#~ msgstr "Please select how you’d like to unlock your phone."
776+
777+#~ msgid "Welcome to your Ubuntu phone."
778+#~ msgstr "Welcome to your Ubuntu phone."
779+
780+#~ msgid "Your phone is now ready to use."
781+#~ msgstr "Your phone is now ready to use."
782+
770#~ msgid "%a %H:%M"
783#~ msgid "%a %H:%M"
771#~ msgstr "%a %H:%M"
784#~ msgstr "%a %H:%M"
772
785
po/eo.po+19−14
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-06-06 23:37+0000\n"
11"PO-Revision-Date: 2015-06-06 23:37+0000\n"
12"Last-Translator: Eliovir <Unknown>\n"
12"Last-Translator: Eliovir <Unknown>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr "Aldoni al favoritoj"
195msgstr "Aldoni al favoritoj"
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr "Serĉi"
208msgstr "Serĉi"
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr "Malŝlosi"
267msgstr "Malŝlosi"
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr "Reprovi"
271msgstr "Reprovi"
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,8 +487,8 @@ msgid "Hi!"
485msgstr "Saluton!"
487msgstr "Saluton!"
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489−msgstr "Bonvenon al via Ubuntu-telefono."
491+msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
492msgid "Let’s get started."
494msgid "Let’s get started."
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
@@ -660,3 +662,6 @@ msgstr "〈 %1"
660#, qt-format
662#, qt-format
661msgid "%1 〉"
663msgid "%1 〉"
662msgstr "%1 〉"
664msgstr "%1 〉"
665+
666+#~ msgid "Welcome to your Ubuntu phone."
667+#~ msgstr "Bonvenon al via Ubuntu-telefono."
po/es.po+30−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2016-01-15 14:48+0000\n"
11"PO-Revision-Date: 2016-01-15 14:48+0000\n"
12"Last-Translator: Víctor R. Ruiz <Unknown>\n"
12"Last-Translator: Víctor R. Ruiz <Unknown>\n"
13"Language-Team: Spanish <es@li.org>\n"
13"Language-Team: Spanish <es@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -202,15 +202,15 @@ msgstr "Quitar de favoritos"
202msgid "Add to Favorites"
202msgid "Add to Favorites"
203msgstr "Añadir a favoritos"
203msgstr "Añadir a favoritos"
204
204
205−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
206msgid "See less"
206msgid "See less"
207msgstr "Ver menos"
207msgstr "Ver menos"
208
208
209−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
210msgid "See all"
210msgid "See all"
211msgstr "Ver todo"
211msgstr "Ver todo"
212
212
213−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
214msgctxt "Label: Hint for dash search line edit"
214msgctxt "Label: Hint for dash search line edit"
215msgid "Search"
215msgid "Search"
216msgstr "Búsqueda"
216msgstr "Búsqueda"
@@ -264,19 +264,23 @@ msgstr "Inicio"
264msgid "Also installed"
264msgid "Also installed"
265msgstr "También instalados"
265msgstr "También instalados"
266
266
267−#: qml/DisabledScreenNotice.qml:42
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
268−msgid "Your device is now connected to an external display."
269+"Your device is now connected to an external display. Use this screen as a "
270+"touch pad to interact with the mouse."
271+msgstr ""
269−msgstr "Se ha conectado el dispositivo a una pantalla externa."
272+"Ahora está conectado a una pantalla externa. Utilice esta pantalla como "
273+"dispositivo táctil para controlar el ratón."
270
274
271#: qml/Greeter/CoverPage.qml:107
275#: qml/Greeter/CoverPage.qml:107
272msgid "Unlock"
276msgid "Unlock"
273msgstr "Desbloquear"
277msgstr "Desbloquear"
274
278
275−#: qml/Greeter/LoginList.qml:236
279+#: qml/Greeter/LoginList.qml:239
276msgid "Retry"
280msgid "Retry"
277msgstr "Reintentar"
281msgstr "Reintentar"
278
282
279−#: qml/Greeter/LoginList.qml:237
283+#: qml/Greeter/LoginList.qml:240
280msgid "Tap to unlock"
284msgid "Tap to unlock"
281msgstr "Toque para desbloquear"
285msgstr "Toque para desbloquear"
282
286
@@ -497,8 +501,8 @@ msgid "Hi!"
497msgstr "¡Hola!"
501msgstr "¡Hola!"
498
502
499#: qml/Wizard/Pages/10-welcome.qml:44
503#: qml/Wizard/Pages/10-welcome.qml:44
500−msgid "Welcome to your Ubuntu phone."
504+msgid "Welcome to your Ubuntu device."
501−msgstr "Bienvenido a su teléfono Ubuntu."
505+msgstr "Bienvenido a su dispositivo Ubuntu."
502
506
503#: qml/Wizard/Pages/10-welcome.qml:52
507#: qml/Wizard/Pages/10-welcome.qml:52
504msgid "Let’s get started."
508msgid "Let’s get started."
@@ -528,8 +532,8 @@ msgid "Lock security"
528msgstr "Seguridad de bloqueo"
532msgstr "Seguridad de bloqueo"
529
533
530#: qml/Wizard/Pages/30-passwd-type.qml:79
534#: qml/Wizard/Pages/30-passwd-type.qml:79
531−msgid "Please select how you’d like to unlock your phone."
535+msgid "Please select how you’d like to unlock your device."
532−msgstr "Seleccione el método de desbloqueo del teléfono."
536+msgstr "Por favor, seleccione cómo desea desbloquear el dispositivo."
533
537
534#: qml/Wizard/Pages/30-passwd-type.qml:102
538#: qml/Wizard/Pages/30-passwd-type.qml:102
535msgctxt "Label: Type of security method"
539msgctxt "Label: Type of security method"
@@ -635,8 +639,8 @@ msgid "Nice work!"
635msgstr "¡Buen trabajo!"
639msgstr "¡Buen trabajo!"
636
640
637#: qml/Wizard/Pages/80-finished.qml:46
641#: qml/Wizard/Pages/80-finished.qml:46
638−msgid "Your phone is now ready to use."
642+msgid "Your device is now ready to use."
639−msgstr "El teléfono ya está listo para usarse."
643+msgstr "El dispositivo ya está listo."
640
644
641#: qml/Wizard/Pages/80-finished.qml:53
645#: qml/Wizard/Pages/80-finished.qml:53
642msgid "Finish"
646msgid "Finish"
@@ -776,6 +780,15 @@ msgstr "%1 〉"
776#~ msgid "Manage Scopes"
780#~ msgid "Manage Scopes"
777#~ msgstr "Administrar Scopes"
781#~ msgstr "Administrar Scopes"
778
782
783+#~ msgid "Please select how you’d like to unlock your phone."
784+#~ msgstr "Seleccione el método de desbloqueo del teléfono."
785+
786+#~ msgid "Welcome to your Ubuntu phone."
787+#~ msgstr "Bienvenido a su teléfono Ubuntu."
788+
789+#~ msgid "Your phone is now ready to use."
790+#~ msgstr "El teléfono ya está listo para usarse."
791+
779#~ msgid "%a %d %b %H:%M"
792#~ msgid "%a %d %b %H:%M"
780#~ msgstr "%a %b %d %H:%M"
793#~ msgstr "%a %b %d %H:%M"
781
794
po/eu.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-13 23:29+0000\n"
11"PO-Revision-Date: 2015-07-13 23:29+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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -197,15 +197,15 @@ msgstr "Kendu gogokoetatik"
197msgid "Add to Favorites"
197msgid "Add to Favorites"
198msgstr "Gehitu gogokoetara"
198msgstr "Gehitu gogokoetara"
199
199
200−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
200+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
201msgid "See less"
201msgid "See less"
202msgstr "Ikusi gutxiago"
202msgstr "Ikusi gutxiago"
203
203
204−#: qml/Dash/GenericScopeView.qml:576
204+#: qml/Dash/GenericScopeView.qml:587
205msgid "See all"
205msgid "See all"
206msgstr "Ikusi guztiak"
206msgstr "Ikusi guztiak"
207
207
208−#: qml/Dash/GenericScopeView.qml:638
208+#: qml/Dash/GenericScopeView.qml:649
209msgctxt "Label: Hint for dash search line edit"
209msgctxt "Label: Hint for dash search line edit"
210msgid "Search"
210msgid "Search"
211msgstr "Bilatu"
211msgstr "Bilatu"
@@ -259,19 +259,21 @@ msgstr "Hasiera"
259msgid "Also installed"
259msgid "Also installed"
260msgstr "Hau ere instalatuta"
260msgstr "Hau ere instalatuta"
261
261
262−#: qml/DisabledScreenNotice.qml:42
262+#: qml/DisabledScreenNotice.qml:87
263+msgid ""
263−msgid "Your device is now connected to an external display."
264+"Your device is now connected to an external display. Use this screen as a "
265+"touch pad to interact with the mouse."
264msgstr ""
266msgstr ""
265
267
266#: qml/Greeter/CoverPage.qml:107
268#: qml/Greeter/CoverPage.qml:107
267msgid "Unlock"
269msgid "Unlock"
268msgstr "Desblokeatu"
270msgstr "Desblokeatu"
269
271
270−#: qml/Greeter/LoginList.qml:236
272+#: qml/Greeter/LoginList.qml:239
271msgid "Retry"
273msgid "Retry"
272msgstr "Saiatu berriz"
274msgstr "Saiatu berriz"
273
275
274−#: qml/Greeter/LoginList.qml:237
276+#: qml/Greeter/LoginList.qml:240
275msgid "Tap to unlock"
277msgid "Tap to unlock"
276msgstr "Ukitu desblokeatzeko"
278msgstr "Ukitu desblokeatzeko"
277
279
@@ -492,8 +494,8 @@ msgid "Hi!"
492msgstr "Epa!"
494msgstr "Epa!"
493
495
494#: qml/Wizard/Pages/10-welcome.qml:44
496#: qml/Wizard/Pages/10-welcome.qml:44
495−msgid "Welcome to your Ubuntu phone."
497+msgid "Welcome to your Ubuntu device."
496−msgstr "Ongi etorri zure Ubuntu telefonora."
498+msgstr ""
497
499
498#: qml/Wizard/Pages/10-welcome.qml:52
500#: qml/Wizard/Pages/10-welcome.qml:52
499msgid "Let’s get started."
501msgid "Let’s get started."
@@ -523,8 +525,8 @@ msgid "Lock security"
523msgstr "Blokeo-segurtasuna"
525msgstr "Blokeo-segurtasuna"
524
526
525#: qml/Wizard/Pages/30-passwd-type.qml:79
527#: qml/Wizard/Pages/30-passwd-type.qml:79
526−msgid "Please select how you’d like to unlock your phone."
528+msgid "Please select how you’d like to unlock your device."
527−msgstr "Aukeratu telefonoa nola desblokeatu nahi duzun."
529+msgstr ""
528
530
529#: qml/Wizard/Pages/30-passwd-type.qml:102
531#: qml/Wizard/Pages/30-passwd-type.qml:102
530msgctxt "Label: Type of security method"
532msgctxt "Label: Type of security method"
@@ -632,8 +634,8 @@ msgid "Nice work!"
632msgstr "Bikain!"
634msgstr "Bikain!"
633
635
634#: qml/Wizard/Pages/80-finished.qml:46
636#: qml/Wizard/Pages/80-finished.qml:46
635−msgid "Your phone is now ready to use."
637+msgid "Your device is now ready to use."
636−msgstr "Zure telefonoa erabiltzeko prest dago."
638+msgstr ""
637
639
638#: qml/Wizard/Pages/80-finished.qml:53
640#: qml/Wizard/Pages/80-finished.qml:53
639msgid "Finish"
641msgid "Finish"
@@ -773,6 +775,15 @@ msgstr "%1 〉"
773#~ msgid "Please re-enter"
775#~ msgid "Please re-enter"
774#~ msgstr "Errepikatu"
776#~ msgstr "Errepikatu"
775
777
778+#~ msgid "Welcome to your Ubuntu phone."
779+#~ msgstr "Ongi etorri zure Ubuntu telefonora."
780+
781+#~ msgid "Please select how you’d like to unlock your phone."
782+#~ msgstr "Aukeratu telefonoa nola desblokeatu nahi duzun."
783+
784+#~ msgid "Your phone is now ready to use."
785+#~ msgstr "Zure telefonoa erabiltzeko prest dago."
786+
776#~ msgid "%a %H:%M"
787#~ msgid "%a %H:%M"
777#~ msgstr "%a %H:%M"
788#~ msgstr "%a %H:%M"
778
789
po/fa.po+28−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-11 15:43+0000\n"
11"PO-Revision-Date: 2015-07-11 15: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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -197,15 +197,15 @@ msgstr "برداشتن از برگزیده‌ها"
197msgid "Add to Favorites"
197msgid "Add to Favorites"
198msgstr "افزودن به برگزیده‌ها"
198msgstr "افزودن به برگزیده‌ها"
199
199
200−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
200+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
201msgid "See less"
201msgid "See less"
202msgstr "کم‌تر ببینید"
202msgstr "کم‌تر ببینید"
203
203
204−#: qml/Dash/GenericScopeView.qml:576
204+#: qml/Dash/GenericScopeView.qml:587
205msgid "See all"
205msgid "See all"
206msgstr "دیدن همه"
206msgstr "دیدن همه"
207
207
208−#: qml/Dash/GenericScopeView.qml:638
208+#: qml/Dash/GenericScopeView.qml:649
209msgctxt "Label: Hint for dash search line edit"
209msgctxt "Label: Hint for dash search line edit"
210msgid "Search"
210msgid "Search"
211msgstr "جست‌وجو"
211msgstr "جست‌وجو"
@@ -259,19 +259,21 @@ msgstr "خانه"
259msgid "Also installed"
259msgid "Also installed"
260msgstr "هم‌چنین نصب شده"
260msgstr "هم‌چنین نصب شده"
261
261
262−#: qml/DisabledScreenNotice.qml:42
262+#: qml/DisabledScreenNotice.qml:87
263+msgid ""
263−msgid "Your device is now connected to an external display."
264+"Your device is now connected to an external display. Use this screen as a "
264−msgstr "افزاره‌تان اکنون به یک نمایشگر خارجی وصل شده است."
265+"touch pad to interact with the mouse."
266+msgstr ""
265
267
266#: qml/Greeter/CoverPage.qml:107
268#: qml/Greeter/CoverPage.qml:107
267msgid "Unlock"
269msgid "Unlock"
268msgstr "بازکردن قفل"
270msgstr "بازکردن قفل"
269
271
270−#: qml/Greeter/LoginList.qml:236
272+#: qml/Greeter/LoginList.qml:239
271msgid "Retry"
273msgid "Retry"
272msgstr "تلاش دوباره"
274msgstr "تلاش دوباره"
273
275
274−#: qml/Greeter/LoginList.qml:237
276+#: qml/Greeter/LoginList.qml:240
275msgid "Tap to unlock"
277msgid "Tap to unlock"
276msgstr "برای باز کردن قفل ضربه بزنید"
278msgstr "برای باز کردن قفل ضربه بزنید"
277
279
@@ -489,8 +491,8 @@ msgid "Hi!"
489msgstr "سلام!"
491msgstr "سلام!"
490
492
491#: qml/Wizard/Pages/10-welcome.qml:44
493#: qml/Wizard/Pages/10-welcome.qml:44
492−msgid "Welcome to your Ubuntu phone."
494+msgid "Welcome to your Ubuntu device."
493−msgstr "به تلفن اوبونتوی خودتان خوش آمدید."
495+msgstr ""
494
496
495#: qml/Wizard/Pages/10-welcome.qml:52
497#: qml/Wizard/Pages/10-welcome.qml:52
496msgid "Let’s get started."
498msgid "Let’s get started."
@@ -521,8 +523,8 @@ msgid "Lock security"
521msgstr "امنیت قفل"
523msgstr "امنیت قفل"
522
524
523#: qml/Wizard/Pages/30-passwd-type.qml:79
525#: qml/Wizard/Pages/30-passwd-type.qml:79
524−msgid "Please select how you’d like to unlock your phone."
526+msgid "Please select how you’d like to unlock your device."
525−msgstr "لطفاً برگزینید که می‌خواهید چگونه قفل تلفنتان را باز کنید."
527+msgstr ""
526
528
527#: qml/Wizard/Pages/30-passwd-type.qml:102
529#: qml/Wizard/Pages/30-passwd-type.qml:102
528msgctxt "Label: Type of security method"
530msgctxt "Label: Type of security method"
@@ -629,8 +631,8 @@ msgid "Nice work!"
629msgstr "عالی بود!"
631msgstr "عالی بود!"
630
632
631#: qml/Wizard/Pages/80-finished.qml:46
633#: qml/Wizard/Pages/80-finished.qml:46
632−msgid "Your phone is now ready to use."
634+msgid "Your device is now ready to use."
633−msgstr "هم‌اکنون تلفن شما آماده‌ی استفاده است."
635+msgstr ""
634
636
635#: qml/Wizard/Pages/80-finished.qml:53
637#: qml/Wizard/Pages/80-finished.qml:53
636msgid "Finish"
638msgid "Finish"
@@ -767,6 +769,15 @@ msgstr "%1 〉"
767#~ msgid "Manage Scopes"
769#~ msgid "Manage Scopes"
768#~ msgstr "مدیریت حوزه‌ها"
770#~ msgstr "مدیریت حوزه‌ها"
769
771
772+#~ msgid "Please select how you’d like to unlock your phone."
773+#~ msgstr "لطفاً برگزینید که می‌خواهید چگونه قفل تلفنتان را باز کنید."
774+
775+#~ msgid "Welcome to your Ubuntu phone."
776+#~ msgstr "به تلفن اوبونتوی خودتان خوش آمدید."
777+
778+#~ msgid "Your phone is now ready to use."
779+#~ msgstr "هم‌اکنون تلفن شما آماده‌ی استفاده است."
780+
770#~ msgid "%a %d %b %H:%M"
781#~ msgid "%a %d %b %H:%M"
771#~ msgstr "%a %d %b %OH:%OM"
782#~ msgstr "%a %d %b %OH:%OM"
772
783
po/fi.po+30−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-04 18:32+0000\n"
11"PO-Revision-Date: 2015-07-04 18:32+0000\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
13"Language-Team: Finnish <fi@li.org>\n"
13"Language-Team: Finnish <fi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -200,15 +200,15 @@ msgstr "Poista suosikeista"
200msgid "Add to Favorites"
200msgid "Add to Favorites"
201msgstr "Lisää suosikkeihin"
201msgstr "Lisää suosikkeihin"
202
202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204msgid "See less"
204msgid "See less"
205msgstr "Näytä vähemmän"
205msgstr "Näytä vähemmän"
206
206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208msgid "See all"
208msgid "See all"
209msgstr "Näytä kaikki"
209msgstr "Näytä kaikki"
210
210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212msgctxt "Label: Hint for dash search line edit"
212msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
213msgid "Search"
214msgstr "Etsi"
214msgstr "Etsi"
@@ -262,19 +262,23 @@ msgstr "Koti"
262msgid "Also installed"
262msgid "Also installed"
263msgstr "Myös asennettu"
263msgstr "Myös asennettu"
264
264
265−#: qml/DisabledScreenNotice.qml:42
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
266−msgid "Your device is now connected to an external display."
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
269+msgstr ""
267−msgstr "Laitteesi on nyt liitetty ulkoiseen näyttöön."
270+"Laitteesi on nyt yhdistetty erilliseen näyttöön. Käytä tätä näyttöä "
271+"kosketuslevynä vaikuttaaksesi hiiren toimintaan."
268
272
269#: qml/Greeter/CoverPage.qml:107
273#: qml/Greeter/CoverPage.qml:107
270msgid "Unlock"
274msgid "Unlock"
271msgstr "Avaa lukitus"
275msgstr "Avaa lukitus"
272
276
273−#: qml/Greeter/LoginList.qml:236
277+#: qml/Greeter/LoginList.qml:239
274msgid "Retry"
278msgid "Retry"
275msgstr "Yritä uudelleen"
279msgstr "Yritä uudelleen"
276
280
277−#: qml/Greeter/LoginList.qml:237
281+#: qml/Greeter/LoginList.qml:240
278msgid "Tap to unlock"
282msgid "Tap to unlock"
279msgstr "Napauta avataksesi lukituksen"
283msgstr "Napauta avataksesi lukituksen"
280
284
@@ -495,8 +499,8 @@ msgid "Hi!"
495msgstr "Hei!"
499msgstr "Hei!"
496
500
497#: qml/Wizard/Pages/10-welcome.qml:44
501#: qml/Wizard/Pages/10-welcome.qml:44
498−msgid "Welcome to your Ubuntu phone."
502+msgid "Welcome to your Ubuntu device."
499−msgstr "Tervetuloa Ubuntu-puhelimen pariin."
503+msgstr "Tervetuloa Ubuntu-laitteesi pariin."
500
504
501#: qml/Wizard/Pages/10-welcome.qml:52
505#: qml/Wizard/Pages/10-welcome.qml:52
502msgid "Let’s get started."
506msgid "Let’s get started."
@@ -528,8 +532,8 @@ msgid "Lock security"
528msgstr "Lukitusturva"
532msgstr "Lukitusturva"
529
533
530#: qml/Wizard/Pages/30-passwd-type.qml:79
534#: qml/Wizard/Pages/30-passwd-type.qml:79
531−msgid "Please select how you’d like to unlock your phone."
535+msgid "Please select how you’d like to unlock your device."
532−msgstr "Valitse puhelimen lukituksen avaustapa."
536+msgstr "Valitse kuinka haluat avata laitteen lukituksen."
533
537
534#: qml/Wizard/Pages/30-passwd-type.qml:102
538#: qml/Wizard/Pages/30-passwd-type.qml:102
535msgctxt "Label: Type of security method"
539msgctxt "Label: Type of security method"
@@ -634,8 +638,8 @@ msgid "Nice work!"
634msgstr "Hyvä!"
638msgstr "Hyvä!"
635
639
636#: qml/Wizard/Pages/80-finished.qml:46
640#: qml/Wizard/Pages/80-finished.qml:46
637−msgid "Your phone is now ready to use."
641+msgid "Your device is now ready to use."
638−msgstr "Puhelimesi on nyt valmis käytettäväksi."
642+msgstr "Laitteesi on nyt valmis käytettäväksi."
639
643
640#: qml/Wizard/Pages/80-finished.qml:53
644#: qml/Wizard/Pages/80-finished.qml:53
641msgid "Finish"
645msgid "Finish"
@@ -772,6 +776,15 @@ msgstr "%1 〉"
772#~ msgid "Please re-enter"
776#~ msgid "Please re-enter"
773#~ msgstr "Anna uudelleen"
777#~ msgstr "Anna uudelleen"
774
778
779+#~ msgid "Welcome to your Ubuntu phone."
780+#~ msgstr "Tervetuloa Ubuntu-puhelimen pariin."
781+
782+#~ msgid "Please select how you’d like to unlock your phone."
783+#~ msgstr "Valitse puhelimen lukituksen avaustapa."
784+
785+#~ msgid "Your phone is now ready to use."
786+#~ msgstr "Puhelimesi on nyt valmis käytettäväksi."
787+
775#~ msgid "Tomorrow %l:%M %p"
788#~ msgid "Tomorrow %l:%M %p"
776#~ msgstr "Huomenna %l:%M %p"
789#~ msgstr "Huomenna %l:%M %p"
777
790
po/fo.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/fr.po+34−19
@@ -7,16 +7,16 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11−"PO-Revision-Date: 2015-11-07 19:43+0000\n"
11+"PO-Revision-Date: 2016-02-28 17:22+0000\n"
12−"Last-Translator: Jean-Marc <Unknown>\n"
12+"Last-Translator: Anne <anneonyme017@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"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-29 05:58+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -204,15 +204,15 @@ msgstr "Retirer des favoris"
204msgid "Add to Favorites"
204msgid "Add to Favorites"
205msgstr "Ajouter aux favoris"
205msgstr "Ajouter aux favoris"
206
206
207−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
207+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
208msgid "See less"
208msgid "See less"
209msgstr "Voir moins"
209msgstr "Voir moins"
210
210
211−#: qml/Dash/GenericScopeView.qml:576
211+#: qml/Dash/GenericScopeView.qml:587
212msgid "See all"
212msgid "See all"
213msgstr "Tout voir"
213msgstr "Tout voir"
214
214
215−#: qml/Dash/GenericScopeView.qml:638
215+#: qml/Dash/GenericScopeView.qml:649
216msgctxt "Label: Hint for dash search line edit"
216msgctxt "Label: Hint for dash search line edit"
217msgid "Search"
217msgid "Search"
218msgstr "Rechercher"
218msgstr "Rechercher"
@@ -266,19 +266,23 @@ msgstr "Accueil"
266msgid "Also installed"
266msgid "Also installed"
267msgstr "Également installées"
267msgstr "Également installées"
268
268
269−#: qml/DisabledScreenNotice.qml:42
269+#: qml/DisabledScreenNotice.qml:87
270+msgid ""
270−msgid "Your device is now connected to an external display."
271+"Your device is now connected to an external display. Use this screen as a "
272+"touch pad to interact with the mouse."
273+msgstr ""
271−msgstr "Votre périphérique est maintenant connecté à un écran externe."
274+"Votre appareil est maintenant connecté à un affichage externe. Utilisez cet "
275+"écran comme un pavé tactile pour interagir avec la souris."
272
276
273#: qml/Greeter/CoverPage.qml:107
277#: qml/Greeter/CoverPage.qml:107
274msgid "Unlock"
278msgid "Unlock"
275msgstr "Déverrouiller"
279msgstr "Déverrouiller"
276
280
277−#: qml/Greeter/LoginList.qml:236
281+#: qml/Greeter/LoginList.qml:239
278msgid "Retry"
282msgid "Retry"
279msgstr "Réessayer"
283msgstr "Réessayer"
280
284
281−#: qml/Greeter/LoginList.qml:237
285+#: qml/Greeter/LoginList.qml:240
282msgid "Tap to unlock"
286msgid "Tap to unlock"
283msgstr "Appuyer pour déverrouiller"
287msgstr "Appuyer pour déverrouiller"
284
288
@@ -501,8 +505,8 @@ msgid "Hi!"
501msgstr "Salut !"
505msgstr "Salut !"
502
506
503#: qml/Wizard/Pages/10-welcome.qml:44
507#: qml/Wizard/Pages/10-welcome.qml:44
504−msgid "Welcome to your Ubuntu phone."
508+msgid "Welcome to your Ubuntu device."
505−msgstr "Bienvenue sur votre téléphone Ubuntu."
509+msgstr "Bienvenue sur votre appareil Ubuntu."
506
510
507#: qml/Wizard/Pages/10-welcome.qml:52
511#: qml/Wizard/Pages/10-welcome.qml:52
508msgid "Let’s get started."
512msgid "Let’s get started."
@@ -534,9 +538,10 @@ msgid "Lock security"
534msgstr "Sécurité de verrouillage"
538msgstr "Sécurité de verrouillage"
535
539
536#: qml/Wizard/Pages/30-passwd-type.qml:79
540#: qml/Wizard/Pages/30-passwd-type.qml:79
537−msgid "Please select how you’d like to unlock your phone."
541+msgid "Please select how you’d like to unlock your device."
538msgstr ""
542msgstr ""
539−"Veuillez sélectionner comment vous souhaitez déverrouiller votre téléphone."
543+"Veuillez sélectionner la façon dont vous souhaitez déverrouiller votre "
544+"appareil."
540
545
541#: qml/Wizard/Pages/30-passwd-type.qml:102
546#: qml/Wizard/Pages/30-passwd-type.qml:102
542msgctxt "Label: Type of security method"
547msgctxt "Label: Type of security method"
@@ -645,8 +650,8 @@ msgid "Nice work!"
645msgstr "Beau travail !"
650msgstr "Beau travail !"
646
651
647#: qml/Wizard/Pages/80-finished.qml:46
652#: qml/Wizard/Pages/80-finished.qml:46
648−msgid "Your phone is now ready to use."
653+msgid "Your device is now ready to use."
649−msgstr "Votre téléphone est maintenant prêt à être utilisé."
654+msgstr "Votre appareil est maintenant prêt à être utilisé."
650
655
651#: qml/Wizard/Pages/80-finished.qml:53
656#: qml/Wizard/Pages/80-finished.qml:53
652msgid "Finish"
657msgid "Finish"
@@ -790,6 +795,16 @@ msgstr "%1 〉"
790#~ msgid "Please re-enter"
795#~ msgid "Please re-enter"
791#~ msgstr "Veuillez ressaisir"
796#~ msgstr "Veuillez ressaisir"
792
797
798+#~ msgid "Welcome to your Ubuntu phone."
799+#~ msgstr "Bienvenue sur votre téléphone Ubuntu."
800+
801+#~ msgid "Please select how you’d like to unlock your phone."
802+#~ msgstr ""
803+#~ "Veuillez sélectionner comment vous souhaitez déverrouiller votre téléphone."
804+
805+#~ msgid "Your phone is now ready to use."
806+#~ msgstr "Votre téléphone est maintenant prêt à être utilisé."
807+
793#~ msgid "%a %H:%M"
808#~ msgid "%a %H:%M"
794#~ msgstr "%a %H:%M"
809#~ msgstr "%a %H:%M"
795
810
po/ga.po+28−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2016-01-25 11:33+0000\n"
11"PO-Revision-Date: 2016-01-25 11:33+0000\n"
12"Last-Translator: Joshua Kiley <Unknown>\n"
12"Last-Translator: Joshua Kiley <Unknown>\n"
13"Language-Team: Irish <ga@li.org>\n"
13"Language-Team: Irish <ga@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2016-01-26 05:33+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -197,15 +197,15 @@ msgstr "Bain ó Cheanáin"
197msgid "Add to Favorites"
197msgid "Add to Favorites"
198msgstr "Cuir le Ceanáin"
198msgstr "Cuir le Ceanáin"
199
199
200−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
200+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
201msgid "See less"
201msgid "See less"
202msgstr "Taispeáin níos lú"
202msgstr "Taispeáin níos lú"
203
203
204−#: qml/Dash/GenericScopeView.qml:576
204+#: qml/Dash/GenericScopeView.qml:587
205msgid "See all"
205msgid "See all"
206msgstr "Taispeáin gach rud"
206msgstr "Taispeáin gach rud"
207
207
208−#: qml/Dash/GenericScopeView.qml:638
208+#: qml/Dash/GenericScopeView.qml:649
209msgctxt "Label: Hint for dash search line edit"
209msgctxt "Label: Hint for dash search line edit"
210msgid "Search"
210msgid "Search"
211msgstr "Cuardach"
211msgstr "Cuardach"
@@ -259,19 +259,21 @@ msgstr "Baile"
259msgid "Also installed"
259msgid "Also installed"
260msgstr ""
260msgstr ""
261
261
262−#: qml/DisabledScreenNotice.qml:42
262+#: qml/DisabledScreenNotice.qml:87
263+msgid ""
263−msgid "Your device is now connected to an external display."
264+"Your device is now connected to an external display. Use this screen as a "
264−msgstr "Tá do uirlis ceangailte le taispeánt sheachtrach"
265+"touch pad to interact with the mouse."
266+msgstr ""
265
267
266#: qml/Greeter/CoverPage.qml:107
268#: qml/Greeter/CoverPage.qml:107
267msgid "Unlock"
269msgid "Unlock"
268msgstr "Oscail"
270msgstr "Oscail"
269
271
270−#: qml/Greeter/LoginList.qml:236
272+#: qml/Greeter/LoginList.qml:239
271msgid "Retry"
273msgid "Retry"
272msgstr "Bain triail as arís"
274msgstr "Bain triail as arís"
273
275
274−#: qml/Greeter/LoginList.qml:237
276+#: qml/Greeter/LoginList.qml:240
275msgid "Tap to unlock"
277msgid "Tap to unlock"
276msgstr "Cnag le hoscail"
278msgstr "Cnag le hoscail"
277
279
@@ -495,8 +497,8 @@ msgid "Hi!"
495msgstr "Dia duit!"
497msgstr "Dia duit!"
496
498
497#: qml/Wizard/Pages/10-welcome.qml:44
499#: qml/Wizard/Pages/10-welcome.qml:44
498−msgid "Welcome to your Ubuntu phone."
500+msgid "Welcome to your Ubuntu device."
499−msgstr "Tá fáilte romhat chuig do fhón Ubuntu."
501+msgstr ""
500
502
501#: qml/Wizard/Pages/10-welcome.qml:52
503#: qml/Wizard/Pages/10-welcome.qml:52
502msgid "Let’s get started."
504msgid "Let’s get started."
@@ -526,8 +528,8 @@ msgid "Lock security"
526msgstr "Slándáil ghlasála"
528msgstr "Slándáil ghlasála"
527
529
528#: qml/Wizard/Pages/30-passwd-type.qml:79
530#: qml/Wizard/Pages/30-passwd-type.qml:79
529−msgid "Please select how you’d like to unlock your phone."
531+msgid "Please select how you’d like to unlock your device."
530−msgstr "Roghnaigh conas ar mhaith leat do fhón a díghlasáil"
532+msgstr ""
531
533
532#: qml/Wizard/Pages/30-passwd-type.qml:102
534#: qml/Wizard/Pages/30-passwd-type.qml:102
533msgctxt "Label: Type of security method"
535msgctxt "Label: Type of security method"
@@ -634,8 +636,8 @@ msgid "Nice work!"
634msgstr "D'éirigh leat!"
636msgstr "D'éirigh leat!"
635
637
636#: qml/Wizard/Pages/80-finished.qml:46
638#: qml/Wizard/Pages/80-finished.qml:46
637−msgid "Your phone is now ready to use."
639+msgid "Your device is now ready to use."
638−msgstr "Tá do fhón reidh le húsáid anois."
640+msgstr ""
639
641
640#: qml/Wizard/Pages/80-finished.qml:53
642#: qml/Wizard/Pages/80-finished.qml:53
641msgid "Finish"
643msgid "Finish"
@@ -677,3 +679,12 @@ msgstr ""
677#, qt-format
679#, qt-format
678msgid "%1 〉"
680msgid "%1 〉"
679msgstr ""
681msgstr ""
682+
683+#~ msgid "Welcome to your Ubuntu phone."
684+#~ msgstr "Tá fáilte romhat chuig do fhón Ubuntu."
685+
686+#~ msgid "Please select how you’d like to unlock your phone."
687+#~ msgstr "Roghnaigh conas ar mhaith leat do fhón a díghlasáil"
688+
689+#~ msgid "Your phone is now ready to use."
690+#~ msgstr "Tá do fhón reidh le húsáid anois."
po/gd.po+31−18
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-16 10:56+0000\n"
11"PO-Revision-Date: 2015-07-16 10:56+0000\n"
12"Last-Translator: GunChleoc <Unknown>\n"
12"Last-Translator: GunChleoc <Unknown>\n"
13"Language-Team: Fòram na Gàidhlig\n"
13"Language-Team: Fòram na Gàidhlig\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
17"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
18"(n > 2 && n < 20) ? 2 : 3;\n"
18"(n > 2 && n < 20) ? 2 : 3;\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21"Language: gd\n"
21"Language: gd\n"
22
22
23#: plugins/IntegratedLightDM/Greeter.cpp:112
23#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -206,15 +206,15 @@ msgstr "Thoir air falbh o na h-annsachdan"
206msgid "Add to Favorites"
206msgid "Add to Favorites"
207msgstr "Cuir ris na h-annsachdan"
207msgstr "Cuir ris na h-annsachdan"
208
208
209−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
209+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
210msgid "See less"
210msgid "See less"
211msgstr "Seall nas lugha"
211msgstr "Seall nas lugha"
212
212
213−#: qml/Dash/GenericScopeView.qml:576
213+#: qml/Dash/GenericScopeView.qml:587
214msgid "See all"
214msgid "See all"
215msgstr "Seall na h-uile"
215msgstr "Seall na h-uile"
216
216
217−#: qml/Dash/GenericScopeView.qml:638
217+#: qml/Dash/GenericScopeView.qml:649
218msgctxt "Label: Hint for dash search line edit"
218msgctxt "Label: Hint for dash search line edit"
219msgid "Search"
219msgid "Search"
220msgstr "Lorg"
220msgstr "Lorg"
@@ -268,21 +268,24 @@ msgstr "Dhachaigh"
268msgid "Also installed"
268msgid "Also installed"
269msgstr "Air a stàladh cuideachd"
269msgstr "Air a stàladh cuideachd"
270
270
271−#: qml/DisabledScreenNotice.qml:42
271+#: qml/DisabledScreenNotice.qml:87
272+msgid ""
272−msgid "Your device is now connected to an external display."
273+"Your device is now connected to an external display. Use this screen as a "
274+"touch pad to interact with the mouse."
273msgstr ""
275msgstr ""
274−"Tha an t-uidheam agad ceangailte ri uidheam-taisbeanaidh air an taobh a-"
276+"Tha an t-uidheam agad air a cheangal ri uidheam-taisbeanaidh air an taobh a-"
275−"muigh a-nis."
277+"muigh a-nis. Cleachd an sgrìn seo 'na phada-suathaidh gus gnìomh luchaige a "
278+"dhèanamh."
276
279
277#: qml/Greeter/CoverPage.qml:107
280#: qml/Greeter/CoverPage.qml:107
278msgid "Unlock"
281msgid "Unlock"
279msgstr "Thoir a' ghlas dheth"
282msgstr "Thoir a' ghlas dheth"
280
283
281−#: qml/Greeter/LoginList.qml:236
284+#: qml/Greeter/LoginList.qml:239
282msgid "Retry"
285msgid "Retry"
283msgstr "Feuch ris a-rithist"
286msgstr "Feuch ris a-rithist"
284
287
285−#: qml/Greeter/LoginList.qml:237
288+#: qml/Greeter/LoginList.qml:240
286msgid "Tap to unlock"
289msgid "Tap to unlock"
287msgstr "Gnog gus a' ghlas a thoirt fo bharr"
290msgstr "Gnog gus a' ghlas a thoirt fo bharr"
288
291
@@ -511,8 +514,8 @@ msgid "Hi!"
511msgstr "Shin thu!"
514msgstr "Shin thu!"
512
515
513#: qml/Wizard/Pages/10-welcome.qml:44
516#: qml/Wizard/Pages/10-welcome.qml:44
514−msgid "Welcome to your Ubuntu phone."
517+msgid "Welcome to your Ubuntu device."
515−msgstr "Fàilte dhan fhòn Ubuntu agad."
518+msgstr "Fàilte dhan uidheam Ubuntu agad."
516
519
517#: qml/Wizard/Pages/10-welcome.qml:52
520#: qml/Wizard/Pages/10-welcome.qml:52
518msgid "Let’s get started."
521msgid "Let’s get started."
@@ -542,8 +545,9 @@ msgid "Lock security"
542msgstr "Glas tèarainteachd"
545msgstr "Glas tèarainteachd"
543
546
544#: qml/Wizard/Pages/30-passwd-type.qml:79
547#: qml/Wizard/Pages/30-passwd-type.qml:79
545−msgid "Please select how you’d like to unlock your phone."
548+msgid "Please select how you’d like to unlock your device."
549+msgstr ""
546−msgstr "Tagh an dòigh sa tha thu airson a' ghlas a thoirt far an fhòn agad."
550+"Tagh an dòigh sa tha thu airson a' ghlas a thoirt far an uidheam agad."
547
551
548#: qml/Wizard/Pages/30-passwd-type.qml:102
552#: qml/Wizard/Pages/30-passwd-type.qml:102
549msgctxt "Label: Type of security method"
553msgctxt "Label: Type of security method"
@@ -654,8 +658,8 @@ msgid "Nice work!"
654msgstr "Shin thu!"
658msgstr "Shin thu!"
655
659
656#: qml/Wizard/Pages/80-finished.qml:46
660#: qml/Wizard/Pages/80-finished.qml:46
657−msgid "Your phone is now ready to use."
661+msgid "Your device is now ready to use."
658−msgstr "Gabhaidh am fòn agad cleachdadh a-nis."
662+msgstr "Tha an t-uidheam agad ullamh a-nis."
659
663
660#: qml/Wizard/Pages/80-finished.qml:53
664#: qml/Wizard/Pages/80-finished.qml:53
661msgid "Finish"
665msgid "Finish"
@@ -795,6 +799,15 @@ msgstr "%1 〉"
795#~ msgid "Manage Scopes"
799#~ msgid "Manage Scopes"
796#~ msgstr "Stiùirich na sgòpaichean"
800#~ msgstr "Stiùirich na sgòpaichean"
797
801
802+#~ msgid "Welcome to your Ubuntu phone."
803+#~ msgstr "Fàilte dhan fhòn Ubuntu agad."
804+
805+#~ msgid "Please select how you’d like to unlock your phone."
806+#~ msgstr "Tagh an dòigh sa tha thu airson a' ghlas a thoirt far an fhòn agad."
807+
808+#~ msgid "Your phone is now ready to use."
809+#~ msgstr "Gabhaidh am fòn agad cleachdadh a-nis."
810+
798#~ msgid "%a %H:%M"
811#~ msgid "%a %H:%M"
799#~ msgstr "%a %H:%M"
812#~ msgstr "%a %H:%M"
800
813
po/gl.po+30−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2016-01-15 14:56+0000\n"
11"PO-Revision-Date: 2016-01-15 14:56+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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Eliminar dos favoritos"
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr "Engadir aos favoritos"
197msgstr "Engadir aos favoritos"
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr "Ver menos"
201msgstr "Ver menos"
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr "Ver todo"
205msgstr "Ver todo"
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr "Buscar"
210msgstr "Buscar"
@@ -258,19 +258,23 @@ msgstr "Persoal"
258msgid "Also installed"
258msgid "Also installed"
259msgstr "Tamén instalado"
259msgstr "Tamén instalado"
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
265+msgstr ""
263−msgstr "O dispositivo conectouse a unha pantalla externa."
266+"O dispositivo está agora conectado a unha pantalla externa. Use esta "
267+"pantalla como área táctil para interactuar co rato."
264
268
265#: qml/Greeter/CoverPage.qml:107
269#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
270msgid "Unlock"
267msgstr "Desbloquear"
271msgstr "Desbloquear"
268
272
269−#: qml/Greeter/LoginList.qml:236
273+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
274msgid "Retry"
271msgstr "Reintentar"
275msgstr "Reintentar"
272
276
273−#: qml/Greeter/LoginList.qml:237
277+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
278msgid "Tap to unlock"
275msgstr "Tocar para desbloquear"
279msgstr "Tocar para desbloquear"
276
280
@@ -491,8 +495,8 @@ msgid "Hi!"
491msgstr "Boas!"
495msgstr "Boas!"
492
496
493#: qml/Wizard/Pages/10-welcome.qml:44
497#: qml/Wizard/Pages/10-welcome.qml:44
494−msgid "Welcome to your Ubuntu phone."
498+msgid "Welcome to your Ubuntu device."
495−msgstr "Benvido/a ao seu teléfono Ubuntu."
499+msgstr "Benvido/a ao seu dispositivo Ubuntu."
496
500
497#: qml/Wizard/Pages/10-welcome.qml:52
501#: qml/Wizard/Pages/10-welcome.qml:52
498msgid "Let’s get started."
502msgid "Let’s get started."
@@ -523,8 +527,8 @@ msgid "Lock security"
523msgstr "Seguranza do bloqueo"
527msgstr "Seguranza do bloqueo"
524
528
525#: qml/Wizard/Pages/30-passwd-type.qml:79
529#: qml/Wizard/Pages/30-passwd-type.qml:79
526−msgid "Please select how you’d like to unlock your phone."
530+msgid "Please select how you’d like to unlock your device."
527−msgstr "Por favor, seleccione a forma de desbloquear o teléfono."
531+msgstr "Seleccione o xeito de desbloquear o dispositivo."
528
532
529#: qml/Wizard/Pages/30-passwd-type.qml:102
533#: qml/Wizard/Pages/30-passwd-type.qml:102
530msgctxt "Label: Type of security method"
534msgctxt "Label: Type of security method"
@@ -630,8 +634,8 @@ msgid "Nice work!"
630msgstr "Bo traballo!"
634msgstr "Bo traballo!"
631
635
632#: qml/Wizard/Pages/80-finished.qml:46
636#: qml/Wizard/Pages/80-finished.qml:46
633−msgid "Your phone is now ready to use."
637+msgid "Your device is now ready to use."
634−msgstr "Xa ten o teléfono listo para usar."
638+msgstr "O dispositivo xa está listo para o seu uso."
635
639
636#: qml/Wizard/Pages/80-finished.qml:53
640#: qml/Wizard/Pages/80-finished.qml:53
637msgid "Finish"
641msgid "Finish"
@@ -770,6 +774,12 @@ msgstr "%1 〉"
770#~ msgid "Please re-enter"
774#~ msgid "Please re-enter"
771#~ msgstr "Introducir de novo"
775#~ msgstr "Introducir de novo"
772
776
777+#~ msgid "Please select how you’d like to unlock your phone."
778+#~ msgstr "Por favor, seleccione a forma de desbloquear o teléfono."
779+
780+#~ msgid "Welcome to your Ubuntu phone."
781+#~ msgstr "Benvido/a ao seu teléfono Ubuntu."
782+
773#~ msgid "%a %d %b %H:%M"
783#~ msgid "%a %d %b %H:%M"
774#~ msgstr "%a %b %d %H:%M"
784#~ msgstr "%a %b %d %H:%M"
775
785
@@ -797,6 +807,9 @@ msgstr "%1 〉"
797#~ msgid "%H:%M"
807#~ msgid "%H:%M"
798#~ msgstr "%H:%M"
808#~ msgstr "%H:%M"
799
809
810+#~ msgid "Your phone is now ready to use."
811+#~ msgstr "Xa ten o teléfono listo para usar."
812+
800#~ msgid "Call back"
813#~ msgid "Call back"
801#~ msgstr "Chamar de volta"
814#~ msgstr "Chamar de volta"
802
815
po/gv.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-04-02 14:24+0000\n"
11"PO-Revision-Date: 2015-04-02 14:24+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Manx <gv@li.org>\n"
13"Language-Team: Manx <gv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : (n == 2 ? 1 : 2);\n"
17"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : (n == 2 ? 1 : 2);\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -201,15 +201,15 @@ msgstr "Jean scughey woish Reihyn"
201msgid "Add to Favorites"
201msgid "Add to Favorites"
202msgstr "Cur ayns Reihyn"
202msgstr "Cur ayns Reihyn"
203
203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205msgid "See less"
205msgid "See less"
206msgstr "Faik ny sloo"
206msgstr "Faik ny sloo"
207
207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209msgid "See all"
209msgid "See all"
210msgstr "Faik ooilley"
210msgstr "Faik ooilley"
211
211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213msgctxt "Label: Hint for dash search line edit"
213msgctxt "Label: Hint for dash search line edit"
214msgid "Search"
214msgid "Search"
215msgstr ""
215msgstr ""
@@ -263,19 +263,21 @@ msgstr "Balley"
263msgid "Also installed"
263msgid "Also installed"
264msgstr ""
264msgstr ""
265
265
266−#: qml/DisabledScreenNotice.qml:42
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
267−msgid "Your device is now connected to an external display."
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
268msgstr ""
270msgstr ""
269
271
270#: qml/Greeter/CoverPage.qml:107
272#: qml/Greeter/CoverPage.qml:107
271msgid "Unlock"
273msgid "Unlock"
272msgstr ""
274msgstr ""
273
275
274−#: qml/Greeter/LoginList.qml:236
276+#: qml/Greeter/LoginList.qml:239
275msgid "Retry"
277msgid "Retry"
276msgstr ""
278msgstr ""
277
279
278−#: qml/Greeter/LoginList.qml:237
280+#: qml/Greeter/LoginList.qml:240
279msgid "Tap to unlock"
281msgid "Tap to unlock"
280msgstr ""
282msgstr ""
281
283
@@ -492,7 +494,7 @@ msgid "Hi!"
492msgstr ""
494msgstr ""
493
495
494#: qml/Wizard/Pages/10-welcome.qml:44
496#: qml/Wizard/Pages/10-welcome.qml:44
495−msgid "Welcome to your Ubuntu phone."
497+msgid "Welcome to your Ubuntu device."
496msgstr ""
498msgstr ""
497
499
498#: qml/Wizard/Pages/10-welcome.qml:52
500#: qml/Wizard/Pages/10-welcome.qml:52
@@ -523,7 +525,7 @@ msgid "Lock security"
523msgstr ""
525msgstr ""
524
526
525#: qml/Wizard/Pages/30-passwd-type.qml:79
527#: qml/Wizard/Pages/30-passwd-type.qml:79
526−msgid "Please select how you’d like to unlock your phone."
528+msgid "Please select how you’d like to unlock your device."
527msgstr ""
529msgstr ""
528
530
529#: qml/Wizard/Pages/30-passwd-type.qml:102
531#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -624,7 +626,7 @@ msgid "Nice work!"
624msgstr ""
626msgstr ""
625
627
626#: qml/Wizard/Pages/80-finished.qml:46
628#: qml/Wizard/Pages/80-finished.qml:46
627−msgid "Your phone is now ready to use."
629+msgid "Your device is now ready to use."
628msgstr ""
630msgstr ""
629
631
630#: qml/Wizard/Pages/80-finished.qml:53
632#: qml/Wizard/Pages/80-finished.qml:53
po/he.po+23−15
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-12 08:47+0000\n"
11"PO-Revision-Date: 2015-07-12 08:47+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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "הסרה מהמועדפים"
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr "הוספה למועדפים"
195msgstr "הוספה למועדפים"
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr "לראות פחות"
199msgstr "לראות פחות"
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr "להציג הכול"
203msgstr "להציג הכול"
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr "חיפוש"
208msgstr "חיפוש"
@@ -256,19 +256,21 @@ msgstr "בית"
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr "שחרור נעילה"
267msgstr "שחרור נעילה"
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr "ניסיון חוזר"
271msgstr "ניסיון חוזר"
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr "יש לגעת כדי לשחרר נעילה"
275msgstr "יש לגעת כדי לשחרר נעילה"
274
276
@@ -485,8 +487,8 @@ msgid "Hi!"
485msgstr "שלום!"
487msgstr "שלום!"
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489−msgstr "ברוך בואך לטלפון האובונטו שלך."
491+msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
492msgid "Let’s get started."
494msgid "Let’s get started."
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,8 +619,8 @@ msgid "Nice work!"
617msgstr "כל הכבוד!"
619msgstr "כל הכבוד!"
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621−msgstr "הטלפון שלך מוכן לשימוש."
623+msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
624msgid "Finish"
626msgid "Finish"
@@ -730,3 +732,9 @@ msgstr ""
730
732
731#~ msgid "Favorites"
733#~ msgid "Favorites"
732#~ msgstr "מועדפים"
734#~ msgstr "מועדפים"
735+
736+#~ msgid "Welcome to your Ubuntu phone."
737+#~ msgstr "ברוך בואך לטלפון האובונטו שלך."
738+
739+#~ msgid "Your phone is now ready to use."
740+#~ msgstr "הטלפון שלך מוכן לשימוש."
po/hi.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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 Shanmugam <Unknown>\n"
12"Last-Translator: Siddhanathan Shanmugam <Unknown>\n"
13"Language-Team: Hindi <hi@li.org>\n"
13"Language-Team: Hindi <hi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/hr.po+31−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -158,6 +158,7 @@ msgstr "Aplikacija možda ima nespremljene podatke:"
158#: qml/Components/ModeSwitchWarningDialog.qml:57
158#: qml/Components/ModeSwitchWarningDialog.qml:57
159msgid "Re-dock, save your work and close these apps to continue."
159msgid "Re-dock, save your work and close these apps to continue."
160msgstr ""
160msgstr ""
161+"Za nastavak ponovno povežite, spremite svoj rad i zatvorite te aplikacije."
161
162
162#: qml/Components/ModeSwitchWarningDialog.qml:63
163#: qml/Components/ModeSwitchWarningDialog.qml:63
163msgid "Or force close now (unsaved data will be lost)."
164msgid "Or force close now (unsaved data will be lost)."
@@ -198,15 +199,15 @@ msgstr "Ukloni iz omiljenih"
198msgid "Add to Favorites"
199msgid "Add to Favorites"
199msgstr "Dodaj u omiljene"
200msgstr "Dodaj u omiljene"
200
201
201−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
202+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
202msgid "See less"
203msgid "See less"
203msgstr "Prikaži manje"
204msgstr "Prikaži manje"
204
205
205−#: qml/Dash/GenericScopeView.qml:576
206+#: qml/Dash/GenericScopeView.qml:587
206msgid "See all"
207msgid "See all"
207msgstr "Prikaži sve"
208msgstr "Prikaži sve"
208
209
209−#: qml/Dash/GenericScopeView.qml:638
210+#: qml/Dash/GenericScopeView.qml:649
210msgctxt "Label: Hint for dash search line edit"
211msgctxt "Label: Hint for dash search line edit"
211msgid "Search"
212msgid "Search"
212msgstr "Pretraži"
213msgstr "Pretraži"
@@ -260,19 +261,23 @@ msgstr "Naslovnica"
260msgid "Also installed"
261msgid "Also installed"
261msgstr "Također instalirano"
262msgstr "Također instalirano"
262
263
263−#: qml/DisabledScreenNotice.qml:42
264+#: qml/DisabledScreenNotice.qml:87
265+msgid ""
264−msgid "Your device is now connected to an external display."
266+"Your device is now connected to an external display. Use this screen as a "
267+"touch pad to interact with the mouse."
268+msgstr ""
265−msgstr "Vaš uređaj je povezan s vanjskim zalonom"
269+"Vaš uređaj je sada povezan s vanjskim zaslonom. Koristite ovaj uređaj kao "
270+"touchpad za interakciju s mišem."
266
271
267#: qml/Greeter/CoverPage.qml:107
272#: qml/Greeter/CoverPage.qml:107
268msgid "Unlock"
273msgid "Unlock"
269msgstr "Otključaj"
274msgstr "Otključaj"
270
275
271−#: qml/Greeter/LoginList.qml:236
276+#: qml/Greeter/LoginList.qml:239
272msgid "Retry"
277msgid "Retry"
273msgstr "Pokušaj ponovno"
278msgstr "Pokušaj ponovno"
274
279
275−#: qml/Greeter/LoginList.qml:237
280+#: qml/Greeter/LoginList.qml:240
276msgid "Tap to unlock"
281msgid "Tap to unlock"
277msgstr "Dodirni za otključavanje"
282msgstr "Dodirni za otključavanje"
278
283
@@ -496,8 +501,8 @@ msgid "Hi!"
496msgstr "Bok!"
501msgstr "Bok!"
497
502
498#: qml/Wizard/Pages/10-welcome.qml:44
503#: qml/Wizard/Pages/10-welcome.qml:44
499−msgid "Welcome to your Ubuntu phone."
504+msgid "Welcome to your Ubuntu device."
500−msgstr "Dobrodošli u vaš Ubuntu telefon."
505+msgstr "Dobrodošli u svoj Ubuntu uređaj."
501
506
502#: qml/Wizard/Pages/10-welcome.qml:52
507#: qml/Wizard/Pages/10-welcome.qml:52
503msgid "Let’s get started."
508msgid "Let’s get started."
@@ -527,8 +532,8 @@ msgid "Lock security"
527msgstr "Sigurnosno zaključavanje"
532msgstr "Sigurnosno zaključavanje"
528
533
529#: qml/Wizard/Pages/30-passwd-type.qml:79
534#: qml/Wizard/Pages/30-passwd-type.qml:79
530−msgid "Please select how you’d like to unlock your phone."
535+msgid "Please select how you’d like to unlock your device."
531−msgstr "Odaberite kako želite otključati vaš telefon."
536+msgstr "Odaberite kako želite otključavati svoj uređaj."
532
537
533#: qml/Wizard/Pages/30-passwd-type.qml:102
538#: qml/Wizard/Pages/30-passwd-type.qml:102
534msgctxt "Label: Type of security method"
539msgctxt "Label: Type of security method"
@@ -635,8 +640,8 @@ msgid "Nice work!"
635msgstr "Dobro obavljeno!"
640msgstr "Dobro obavljeno!"
636
641
637#: qml/Wizard/Pages/80-finished.qml:46
642#: qml/Wizard/Pages/80-finished.qml:46
638−msgid "Your phone is now ready to use."
643+msgid "Your device is now ready to use."
639−msgstr "Vaš telefon je sada spreman za korištenje."
644+msgstr "Vaš uređaj je sada spreman za upotrebu."
640
645
641#: qml/Wizard/Pages/80-finished.qml:53
646#: qml/Wizard/Pages/80-finished.qml:53
642msgid "Finish"
647msgid "Finish"
@@ -729,3 +734,12 @@ msgstr "%1 〉"
729
734
730#~ msgid "Call back"
735#~ msgid "Call back"
731#~ msgstr "Uzvrati poziv"
736#~ msgstr "Uzvrati poziv"
737+
738+#~ msgid "Welcome to your Ubuntu phone."
739+#~ msgstr "Dobrodošli u vaš Ubuntu telefon."
740+
741+#~ msgid "Please select how you’d like to unlock your phone."
742+#~ msgstr "Odaberite kako želite otključati vaš telefon."
743+
744+#~ msgid "Your phone is now ready to use."
745+#~ msgstr "Vaš telefon je sada spreman za korištenje."
po/hu.po+31−18
@@ -7,16 +7,16 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11−"PO-Revision-Date: 2015-12-30 09:49+0000\n"
11+"PO-Revision-Date: 2016-02-16 07:23+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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -198,15 +198,15 @@ msgstr "Eltávolítás a kedvencek közül"
198msgid "Add to Favorites"
198msgid "Add to Favorites"
199msgstr "Hozzáadás a kedvencekhez"
199msgstr "Hozzáadás a kedvencekhez"
200
200
201−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
201+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
202msgid "See less"
202msgid "See less"
203msgstr "Kevesebb"
203msgstr "Kevesebb"
204
204
205−#: qml/Dash/GenericScopeView.qml:576
205+#: qml/Dash/GenericScopeView.qml:587
206msgid "See all"
206msgid "See all"
207msgstr "Összes megtekintése"
207msgstr "Összes megtekintése"
208
208
209−#: qml/Dash/GenericScopeView.qml:638
209+#: qml/Dash/GenericScopeView.qml:649
210msgctxt "Label: Hint for dash search line edit"
210msgctxt "Label: Hint for dash search line edit"
211msgid "Search"
211msgid "Search"
212msgstr "Keresés"
212msgstr "Keresés"
@@ -260,19 +260,23 @@ msgstr "Kezdőlapon"
260msgid "Also installed"
260msgid "Also installed"
261msgstr "Telepítve"
261msgstr "Telepítve"
262
262
263−#: qml/DisabledScreenNotice.qml:42
263+#: qml/DisabledScreenNotice.qml:87
264+msgid ""
264−msgid "Your device is now connected to an external display."
265+"Your device is now connected to an external display. Use this screen as a "
266+"touch pad to interact with the mouse."
267+msgstr ""
265−msgstr "Egy külső kijelzőhöz csatlakoztatta a készüléket."
268+"Egy külső kijelzőhöz csatlakoztatta a készülékét. A telefon kijelzőjén tett "
269+"ujjmozdulatokkal mozgathatja az egeret."
266
270
267#: qml/Greeter/CoverPage.qml:107
271#: qml/Greeter/CoverPage.qml:107
268msgid "Unlock"
272msgid "Unlock"
269msgstr "Feloldás"
273msgstr "Feloldás"
270
274
271−#: qml/Greeter/LoginList.qml:236
275+#: qml/Greeter/LoginList.qml:239
272msgid "Retry"
276msgid "Retry"
273msgstr "Újra"
277msgstr "Újra"
274
278
275−#: qml/Greeter/LoginList.qml:237
279+#: qml/Greeter/LoginList.qml:240
276msgid "Tap to unlock"
280msgid "Tap to unlock"
277msgstr "Koppintson a feloldáshoz"
281msgstr "Koppintson a feloldáshoz"
278
282
@@ -493,8 +497,8 @@ msgid "Hi!"
493msgstr "Üdvözöljük!"
497msgstr "Üdvözöljük!"
494
498
495#: qml/Wizard/Pages/10-welcome.qml:44
499#: qml/Wizard/Pages/10-welcome.qml:44
496−msgid "Welcome to your Ubuntu phone."
500+msgid "Welcome to your Ubuntu device."
497−msgstr "Köszöntjük az Ubuntu telefonos változatában."
501+msgstr "Köszönti az Ubuntus eszköze."
498
502
499#: qml/Wizard/Pages/10-welcome.qml:52
503#: qml/Wizard/Pages/10-welcome.qml:52
500msgid "Let’s get started."
504msgid "Let’s get started."
@@ -526,8 +530,8 @@ msgid "Lock security"
526msgstr "Képernyőzárolás"
530msgstr "Képernyőzárolás"
527
531
528#: qml/Wizard/Pages/30-passwd-type.qml:79
532#: qml/Wizard/Pages/30-passwd-type.qml:79
529−msgid "Please select how you’d like to unlock your phone."
533+msgid "Please select how you’d like to unlock your device."
530−msgstr "Válassza ki, hogy milyen módon kívánja feloldani a telefonját."
534+msgstr "Válassza ki, hogy milyen módon szeretné feloldani az eszközét."
531
535
532#: qml/Wizard/Pages/30-passwd-type.qml:102
536#: qml/Wizard/Pages/30-passwd-type.qml:102
533msgctxt "Label: Type of security method"
537msgctxt "Label: Type of security method"
@@ -633,8 +637,8 @@ msgid "Nice work!"
633msgstr "Szép munka!"
637msgstr "Szép munka!"
634
638
635#: qml/Wizard/Pages/80-finished.qml:46
639#: qml/Wizard/Pages/80-finished.qml:46
636−msgid "Your phone is now ready to use."
640+msgid "Your device is now ready to use."
637−msgstr "A telefonja készen áll a használatra."
641+msgstr "Az eszköze készen áll a használatra."
638
642
639#: qml/Wizard/Pages/80-finished.qml:53
643#: qml/Wizard/Pages/80-finished.qml:53
640msgid "Finish"
644msgid "Finish"
@@ -770,6 +774,12 @@ msgstr "%1 〉"
770#~ msgid "Manage Scopes"
774#~ msgid "Manage Scopes"
771#~ msgstr "Lencsék kezelése"
775#~ msgstr "Lencsék kezelése"
772
776
777+#~ msgid "Please select how you’d like to unlock your phone."
778+#~ msgstr "Válassza ki, hogy milyen módon kívánja feloldani a telefonját."
779+
780+#~ msgid "Your phone is now ready to use."
781+#~ msgstr "A telefonja készen áll a használatra."
782+
773#~ msgid "Please re-enter"
783#~ msgid "Please re-enter"
774#~ msgstr "Próbálja újra"
784#~ msgstr "Próbálja újra"
775
785
@@ -800,6 +810,9 @@ msgstr "%1 〉"
800#~ msgid "Call back"
810#~ msgid "Call back"
801#~ msgstr "Visszahívás"
811#~ msgstr "Visszahívás"
802
812
813+#~ msgid "Welcome to your Ubuntu phone."
814+#~ msgstr "Köszöntjük az Ubuntu telefonos változatában."
815+
803#~ msgid "%a %d %b %l:%M %p"
816#~ msgid "%a %d %b %l:%M %p"
804#~ msgstr "%b. %d., %a %p. %I.%M"
817#~ msgstr "%b. %d., %a %p. %I.%M"
805
818
po/hy.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2014-10-28 06:34+0000\n"
11"PO-Revision-Date: 2014-10-28 06:34+0000\n"
12"Last-Translator: Vahan Harutyunyan <Unknown>\n"
12"Last-Translator: Vahan Harutyunyan <Unknown>\n"
13"Language-Team: Armenian <hy@li.org>\n"
13"Language-Team: Armenian <hy@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -198,15 +198,15 @@ msgstr "Հեռացնել ընտրյալների ցուցակից"
198msgid "Add to Favorites"
198msgid "Add to Favorites"
199msgstr "Ավելացնել ընտրյալների ցուցակում"
199msgstr "Ավելացնել ընտրյալների ցուցակում"
200
200
201−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
201+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
202msgid "See less"
202msgid "See less"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:576
205+#: qml/Dash/GenericScopeView.qml:587
206msgid "See all"
206msgid "See all"
207msgstr "Տեսնել բոլորը"
207msgstr "Տեսնել բոլորը"
208
208
209−#: qml/Dash/GenericScopeView.qml:638
209+#: qml/Dash/GenericScopeView.qml:649
210msgctxt "Label: Hint for dash search line edit"
210msgctxt "Label: Hint for dash search line edit"
211msgid "Search"
211msgid "Search"
212msgstr ""
212msgstr ""
@@ -260,19 +260,21 @@ msgstr ""
260msgid "Also installed"
260msgid "Also installed"
261msgstr ""
261msgstr ""
262
262
263−#: qml/DisabledScreenNotice.qml:42
263+#: qml/DisabledScreenNotice.qml:87
264+msgid ""
264−msgid "Your device is now connected to an external display."
265+"Your device is now connected to an external display. Use this screen as a "
266+"touch pad to interact with the mouse."
265msgstr ""
267msgstr ""
266
268
267#: qml/Greeter/CoverPage.qml:107
269#: qml/Greeter/CoverPage.qml:107
268msgid "Unlock"
270msgid "Unlock"
269msgstr "Ապաբլոկավորել"
271msgstr "Ապաբլոկավորել"
270
272
271−#: qml/Greeter/LoginList.qml:236
273+#: qml/Greeter/LoginList.qml:239
272msgid "Retry"
274msgid "Retry"
273msgstr ""
275msgstr ""
274
276
275−#: qml/Greeter/LoginList.qml:237
277+#: qml/Greeter/LoginList.qml:240
276msgid "Tap to unlock"
278msgid "Tap to unlock"
277msgstr ""
279msgstr ""
278
280
@@ -489,7 +491,7 @@ msgid "Hi!"
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:44
493#: qml/Wizard/Pages/10-welcome.qml:44
492−msgid "Welcome to your Ubuntu phone."
494+msgid "Welcome to your Ubuntu device."
493msgstr ""
495msgstr ""
494
496
495#: qml/Wizard/Pages/10-welcome.qml:52
497#: qml/Wizard/Pages/10-welcome.qml:52
@@ -520,7 +522,7 @@ msgid "Lock security"
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:79
524#: qml/Wizard/Pages/30-passwd-type.qml:79
523−msgid "Please select how you’d like to unlock your phone."
525+msgid "Please select how you’d like to unlock your device."
524msgstr ""
526msgstr ""
525
527
526#: qml/Wizard/Pages/30-passwd-type.qml:102
528#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -621,7 +623,7 @@ msgid "Nice work!"
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:46
625#: qml/Wizard/Pages/80-finished.qml:46
624−msgid "Your phone is now ready to use."
626+msgid "Your device is now ready to use."
625msgstr ""
627msgstr ""
626
628
627#: qml/Wizard/Pages/80-finished.qml:53
629#: qml/Wizard/Pages/80-finished.qml:53
po/ia.po+28−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-08-25 19:31+0000\n"
11"PO-Revision-Date: 2015-08-25 19:31+0000\n"
12"Last-Translator: karm <melo@carmu.com>\n"
12"Last-Translator: karm <melo@carmu.com>\n"
13"Language-Team: Interlingua <ia@li.org>\n"
13"Language-Team: Interlingua <ia@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -199,15 +199,15 @@ msgstr "Remover ex le Favoritos"
199msgid "Add to Favorites"
199msgid "Add to Favorites"
200msgstr "Adder al Favoritos"
200msgstr "Adder al Favoritos"
201
201
202−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
202+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
203msgid "See less"
203msgid "See less"
204msgstr "Vider minus"
204msgstr "Vider minus"
205
205
206−#: qml/Dash/GenericScopeView.qml:576
206+#: qml/Dash/GenericScopeView.qml:587
207msgid "See all"
207msgid "See all"
208msgstr "Vider toto"
208msgstr "Vider toto"
209
209
210−#: qml/Dash/GenericScopeView.qml:638
210+#: qml/Dash/GenericScopeView.qml:649
211msgctxt "Label: Hint for dash search line edit"
211msgctxt "Label: Hint for dash search line edit"
212msgid "Search"
212msgid "Search"
213msgstr "Cerca"
213msgstr "Cerca"
@@ -261,19 +261,21 @@ msgstr "A domo"
261msgid "Also installed"
261msgid "Also installed"
262msgstr "Ja installate"
262msgstr "Ja installate"
263
263
264−#: qml/DisabledScreenNotice.qml:42
264+#: qml/DisabledScreenNotice.qml:87
265+msgid ""
265−msgid "Your device is now connected to an external display."
266+"Your device is now connected to an external display. Use this screen as a "
266−msgstr "Tu dispositivo es nunc connexe a un schermo externe"
267+"touch pad to interact with the mouse."
268+msgstr ""
267
269
268#: qml/Greeter/CoverPage.qml:107
270#: qml/Greeter/CoverPage.qml:107
269msgid "Unlock"
271msgid "Unlock"
270msgstr "Liberar"
272msgstr "Liberar"
271
273
272−#: qml/Greeter/LoginList.qml:236
274+#: qml/Greeter/LoginList.qml:239
273msgid "Retry"
275msgid "Retry"
274msgstr "Re-provar"
276msgstr "Re-provar"
275
277
276−#: qml/Greeter/LoginList.qml:237
278+#: qml/Greeter/LoginList.qml:240
277msgid "Tap to unlock"
279msgid "Tap to unlock"
278msgstr "Pulsa pro liberar"
280msgstr "Pulsa pro liberar"
279
281
@@ -494,8 +496,8 @@ msgid "Hi!"
494msgstr "Salute!"
496msgstr "Salute!"
495
497
496#: qml/Wizard/Pages/10-welcome.qml:44
498#: qml/Wizard/Pages/10-welcome.qml:44
497−msgid "Welcome to your Ubuntu phone."
499+msgid "Welcome to your Ubuntu device."
498−msgstr "Benvenite a tu telephono Ubuntu."
500+msgstr ""
499
501
500#: qml/Wizard/Pages/10-welcome.qml:52
502#: qml/Wizard/Pages/10-welcome.qml:52
501msgid "Let’s get started."
503msgid "Let’s get started."
@@ -526,8 +528,8 @@ msgid "Lock security"
526msgstr "Bloco de securitate"
528msgstr "Bloco de securitate"
527
529
528#: qml/Wizard/Pages/30-passwd-type.qml:79
530#: qml/Wizard/Pages/30-passwd-type.qml:79
529−msgid "Please select how you’d like to unlock your phone."
531+msgid "Please select how you’d like to unlock your device."
530−msgstr "Per favor selige in qual maniera disblocar tu telephono."
532+msgstr ""
531
533
532#: qml/Wizard/Pages/30-passwd-type.qml:102
534#: qml/Wizard/Pages/30-passwd-type.qml:102
533msgctxt "Label: Type of security method"
535msgctxt "Label: Type of security method"
@@ -637,8 +639,8 @@ msgid "Nice work!"
637msgstr "Belle obra!"
639msgstr "Belle obra!"
638
640
639#: qml/Wizard/Pages/80-finished.qml:46
641#: qml/Wizard/Pages/80-finished.qml:46
640−msgid "Your phone is now ready to use."
642+msgid "Your device is now ready to use."
641−msgstr "Tu telephono es ora preste al uso."
643+msgstr ""
642
644
643#: qml/Wizard/Pages/80-finished.qml:53
645#: qml/Wizard/Pages/80-finished.qml:53
644msgid "Finish"
646msgid "Finish"
@@ -765,6 +767,15 @@ msgstr "%1 〉"
765#~ "Tu es ora maestrate le gestos del bordo e pote initiar usar le "
767#~ "Tu es ora maestrate le gestos del bordo e pote initiar usar le "
766#~ "telephono<br><br>colpar sur le schermo pro initiar"
768#~ "telephono<br><br>colpar sur le schermo pro initiar"
767
769
770+#~ msgid "Welcome to your Ubuntu phone."
771+#~ msgstr "Benvenite a tu telephono Ubuntu."
772+
773+#~ msgid "Please select how you’d like to unlock your phone."
774+#~ msgstr "Per favor selige in qual maniera disblocar tu telephono."
775+
776+#~ msgid "Your phone is now ready to use."
777+#~ msgstr "Tu telephono es ora preste al uso."
778+
768#~ msgid "%a %d %b %H:%M"
779#~ msgid "%a %d %b %H:%M"
769#~ msgstr "%a %d %b %H:%M"
780#~ msgstr "%a %d %b %H:%M"
770
781
po/id.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -197,15 +197,15 @@ msgstr "Hapus dari Favorit"
197msgid "Add to Favorites"
197msgid "Add to Favorites"
198msgstr "Tambah ke Favorit"
198msgstr "Tambah ke Favorit"
199
199
200−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
200+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
201msgid "See less"
201msgid "See less"
202msgstr "Lihat lebih sedikit"
202msgstr "Lihat lebih sedikit"
203
203
204−#: qml/Dash/GenericScopeView.qml:576
204+#: qml/Dash/GenericScopeView.qml:587
205msgid "See all"
205msgid "See all"
206msgstr "Lihat semua"
206msgstr "Lihat semua"
207
207
208−#: qml/Dash/GenericScopeView.qml:638
208+#: qml/Dash/GenericScopeView.qml:649
209msgctxt "Label: Hint for dash search line edit"
209msgctxt "Label: Hint for dash search line edit"
210msgid "Search"
210msgid "Search"
211msgstr ""
211msgstr ""
@@ -259,19 +259,21 @@ msgstr "Beranda"
259msgid "Also installed"
259msgid "Also installed"
260msgstr "Juga terpasang"
260msgstr "Juga terpasang"
261
261
262−#: qml/DisabledScreenNotice.qml:42
262+#: qml/DisabledScreenNotice.qml:87
263+msgid ""
263−msgid "Your device is now connected to an external display."
264+"Your device is now connected to an external display. Use this screen as a "
265+"touch pad to interact with the mouse."
264msgstr ""
266msgstr ""
265
267
266#: qml/Greeter/CoverPage.qml:107
268#: qml/Greeter/CoverPage.qml:107
267msgid "Unlock"
269msgid "Unlock"
268msgstr "Buka kunci"
270msgstr "Buka kunci"
269
271
270−#: qml/Greeter/LoginList.qml:236
272+#: qml/Greeter/LoginList.qml:239
271msgid "Retry"
273msgid "Retry"
272msgstr ""
274msgstr ""
273
275
274−#: qml/Greeter/LoginList.qml:237
276+#: qml/Greeter/LoginList.qml:240
275msgid "Tap to unlock"
277msgid "Tap to unlock"
276msgstr ""
278msgstr ""
277
279
@@ -492,7 +494,7 @@ msgid "Hi!"
492msgstr ""
494msgstr ""
493
495
494#: qml/Wizard/Pages/10-welcome.qml:44
496#: qml/Wizard/Pages/10-welcome.qml:44
495−msgid "Welcome to your Ubuntu phone."
497+msgid "Welcome to your Ubuntu device."
496msgstr ""
498msgstr ""
497
499
498#: qml/Wizard/Pages/10-welcome.qml:52
500#: qml/Wizard/Pages/10-welcome.qml:52
@@ -523,7 +525,7 @@ msgid "Lock security"
523msgstr ""
525msgstr ""
524
526
525#: qml/Wizard/Pages/30-passwd-type.qml:79
527#: qml/Wizard/Pages/30-passwd-type.qml:79
526−msgid "Please select how you’d like to unlock your phone."
528+msgid "Please select how you’d like to unlock your device."
527msgstr ""
529msgstr ""
528
530
529#: qml/Wizard/Pages/30-passwd-type.qml:102
531#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -624,7 +626,7 @@ msgid "Nice work!"
624msgstr ""
626msgstr ""
625
627
626#: qml/Wizard/Pages/80-finished.qml:46
628#: qml/Wizard/Pages/80-finished.qml:46
627−msgid "Your phone is now ready to use."
629+msgid "Your device is now ready to use."
628msgstr ""
630msgstr ""
629
631
630#: qml/Wizard/Pages/80-finished.qml:53
632#: qml/Wizard/Pages/80-finished.qml:53
po/is.po+15−13
@@ -9,7 +9,7 @@ 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: 2016-01-22 17:08+0000\n"
12+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
13"PO-Revision-Date: 2014-11-13 09:32+0000\n"
13"PO-Revision-Date: 2014-11-13 09:32+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"
@@ -17,8 +17,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
19"Plural-Forms: nplurals=2; plural=n != 1;\n"
20−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
21−"X-Generator: Launchpad (build 17902)\n"
21+"X-Generator: Launchpad (build 17925)\n"
22"Language: is\n"
22"Language: is\n"
23
23
24#: plugins/IntegratedLightDM/Greeter.cpp:112
24#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -203,15 +203,15 @@ msgstr "Fjarlægja úr Eftirlæti"
203msgid "Add to Favorites"
203msgid "Add to Favorites"
204msgstr "Bæta við Eftirlæti"
204msgstr "Bæta við Eftirlæti"
205
205
206−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
206+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
207msgid "See less"
207msgid "See less"
208msgstr "Sjá minna"
208msgstr "Sjá minna"
209
209
210−#: qml/Dash/GenericScopeView.qml:576
210+#: qml/Dash/GenericScopeView.qml:587
211msgid "See all"
211msgid "See all"
212msgstr "Sjá allt"
212msgstr "Sjá allt"
213
213
214−#: qml/Dash/GenericScopeView.qml:638
214+#: qml/Dash/GenericScopeView.qml:649
215msgctxt "Label: Hint for dash search line edit"
215msgctxt "Label: Hint for dash search line edit"
216msgid "Search"
216msgid "Search"
217msgstr ""
217msgstr ""
@@ -265,19 +265,21 @@ msgstr ""
265msgid "Also installed"
265msgid "Also installed"
266msgstr ""
266msgstr ""
267
267
268−#: qml/DisabledScreenNotice.qml:42
268+#: qml/DisabledScreenNotice.qml:87
269+msgid ""
269−msgid "Your device is now connected to an external display."
270+"Your device is now connected to an external display. Use this screen as a "
271+"touch pad to interact with the mouse."
270msgstr ""
272msgstr ""
271
273
272#: qml/Greeter/CoverPage.qml:107
274#: qml/Greeter/CoverPage.qml:107
273msgid "Unlock"
275msgid "Unlock"
274msgstr "Aflæsa"
276msgstr "Aflæsa"
275
277
276−#: qml/Greeter/LoginList.qml:236
278+#: qml/Greeter/LoginList.qml:239
277msgid "Retry"
279msgid "Retry"
278msgstr ""
280msgstr ""
279
281
280−#: qml/Greeter/LoginList.qml:237
282+#: qml/Greeter/LoginList.qml:240
281msgid "Tap to unlock"
283msgid "Tap to unlock"
282msgstr ""
284msgstr ""
283
285
@@ -498,7 +500,7 @@ msgid "Hi!"
498msgstr ""
500msgstr ""
499
501
500#: qml/Wizard/Pages/10-welcome.qml:44
502#: qml/Wizard/Pages/10-welcome.qml:44
501−msgid "Welcome to your Ubuntu phone."
503+msgid "Welcome to your Ubuntu device."
502msgstr ""
504msgstr ""
503
505
504#: qml/Wizard/Pages/10-welcome.qml:52
506#: qml/Wizard/Pages/10-welcome.qml:52
@@ -529,7 +531,7 @@ msgid "Lock security"
529msgstr ""
531msgstr ""
530
532
531#: qml/Wizard/Pages/30-passwd-type.qml:79
533#: qml/Wizard/Pages/30-passwd-type.qml:79
532−msgid "Please select how you’d like to unlock your phone."
534+msgid "Please select how you’d like to unlock your device."
533msgstr ""
535msgstr ""
534
536
535#: qml/Wizard/Pages/30-passwd-type.qml:102
537#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -630,7 +632,7 @@ msgid "Nice work!"
630msgstr ""
632msgstr ""
631
633
632#: qml/Wizard/Pages/80-finished.qml:46
634#: qml/Wizard/Pages/80-finished.qml:46
633−msgid "Your phone is now ready to use."
635+msgid "Your device is now ready to use."
634msgstr ""
636msgstr ""
635
637
636#: qml/Wizard/Pages/80-finished.qml:53
638#: qml/Wizard/Pages/80-finished.qml:53
po/it.po+28−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-09-18 08:24+0000\n"
11"PO-Revision-Date: 2015-09-18 08:24+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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -202,15 +202,15 @@ msgstr "Rimuovi dai preferiti"
202msgid "Add to Favorites"
202msgid "Add to Favorites"
203msgstr "Aggiungi ai preferiti"
203msgstr "Aggiungi ai preferiti"
204
204
205−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
206msgid "See less"
206msgid "See less"
207msgstr "Mostra meno"
207msgstr "Mostra meno"
208
208
209−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
210msgid "See all"
210msgid "See all"
211msgstr "Mostra tutto"
211msgstr "Mostra tutto"
212
212
213−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
214msgctxt "Label: Hint for dash search line edit"
214msgctxt "Label: Hint for dash search line edit"
215msgid "Search"
215msgid "Search"
216msgstr "Cerca"
216msgstr "Cerca"
@@ -264,19 +264,21 @@ msgstr "Home"
264msgid "Also installed"
264msgid "Also installed"
265msgstr "Installato anche"
265msgstr "Installato anche"
266
266
267−#: qml/DisabledScreenNotice.qml:42
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
268−msgid "Your device is now connected to an external display."
269+"Your device is now connected to an external display. Use this screen as a "
269−msgstr "Il dispositivo è ora collegato a un monitor esterno."
270+"touch pad to interact with the mouse."
271+msgstr ""
270
272
271#: qml/Greeter/CoverPage.qml:107
273#: qml/Greeter/CoverPage.qml:107
272msgid "Unlock"
274msgid "Unlock"
273msgstr "Sblocca"
275msgstr "Sblocca"
274
276
275−#: qml/Greeter/LoginList.qml:236
277+#: qml/Greeter/LoginList.qml:239
276msgid "Retry"
278msgid "Retry"
277msgstr "Riprova"
279msgstr "Riprova"
278
280
279−#: qml/Greeter/LoginList.qml:237
281+#: qml/Greeter/LoginList.qml:240
280msgid "Tap to unlock"
282msgid "Tap to unlock"
281msgstr "Tocca per sbloccare"
283msgstr "Tocca per sbloccare"
282
284
@@ -497,8 +499,8 @@ msgid "Hi!"
497msgstr "Ciao!"
499msgstr "Ciao!"
498
500
499#: qml/Wizard/Pages/10-welcome.qml:44
501#: qml/Wizard/Pages/10-welcome.qml:44
500−msgid "Welcome to your Ubuntu phone."
502+msgid "Welcome to your Ubuntu device."
501−msgstr "Benvenuti in Ubuntu Phone."
503+msgstr ""
502
504
503#: qml/Wizard/Pages/10-welcome.qml:52
505#: qml/Wizard/Pages/10-welcome.qml:52
504msgid "Let’s get started."
506msgid "Let’s get started."
@@ -530,8 +532,8 @@ msgid "Lock security"
530msgstr "Sicurezza di blocco"
532msgstr "Sicurezza di blocco"
531
533
532#: qml/Wizard/Pages/30-passwd-type.qml:79
534#: qml/Wizard/Pages/30-passwd-type.qml:79
533−msgid "Please select how you’d like to unlock your phone."
535+msgid "Please select how you’d like to unlock your device."
534−msgstr "Selezionare il metodo di sblocco del telefono."
536+msgstr ""
535
537
536#: qml/Wizard/Pages/30-passwd-type.qml:102
538#: qml/Wizard/Pages/30-passwd-type.qml:102
537msgctxt "Label: Type of security method"
539msgctxt "Label: Type of security method"
@@ -639,8 +641,8 @@ msgid "Nice work!"
639msgstr "Ottimo lavoro!"
641msgstr "Ottimo lavoro!"
640
642
641#: qml/Wizard/Pages/80-finished.qml:46
643#: qml/Wizard/Pages/80-finished.qml:46
642−msgid "Your phone is now ready to use."
644+msgid "Your device is now ready to use."
643−msgstr "Il telefono è pronto per essere usato."
645+msgstr ""
644
646
645#: qml/Wizard/Pages/80-finished.qml:53
647#: qml/Wizard/Pages/80-finished.qml:53
646msgid "Finish"
648msgid "Finish"
@@ -777,6 +779,15 @@ msgstr "%1 〉"
777#~ msgid "Please re-enter"
779#~ msgid "Please re-enter"
778#~ msgstr "Inserire nuovamente"
780#~ msgstr "Inserire nuovamente"
779
781
782+#~ msgid "Welcome to your Ubuntu phone."
783+#~ msgstr "Benvenuti in Ubuntu Phone."
784+
785+#~ msgid "Please select how you’d like to unlock your phone."
786+#~ msgstr "Selezionare il metodo di sblocco del telefono."
787+
788+#~ msgid "Your phone is now ready to use."
789+#~ msgstr "Il telefono è pronto per essere usato."
790+
780#~ msgid "Swipe up again to close the settings screen"
791#~ msgid "Swipe up again to close the settings screen"
781#~ msgstr ""
792#~ msgstr ""
782#~ "Far scorrere nuovamente verso l'alto per chiudere la schermata delle "
793#~ "Far scorrere nuovamente verso l'alto per chiudere la schermata delle "
po/ja.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-10-05 10:05+0000\n"
11"PO-Revision-Date: 2015-10-05 10:05+0000\n"
12"Last-Translator: Kentaro Kazuhama <Unknown>\n"
12"Last-Translator: Kentaro Kazuhama <Unknown>\n"
13"Language-Team: Japanese <ja@li.org>\n"
13"Language-Team: Japanese <ja@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -193,15 +193,15 @@ msgstr "お気に入りから削除する"
193msgid "Add to Favorites"
193msgid "Add to Favorites"
194msgstr "お気に入りに追加する"
194msgstr "お気に入りに追加する"
195
195
196−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
196+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
197msgid "See less"
197msgid "See less"
198msgstr "隠す"
198msgstr "隠す"
199
199
200−#: qml/Dash/GenericScopeView.qml:576
200+#: qml/Dash/GenericScopeView.qml:587
201msgid "See all"
201msgid "See all"
202msgstr "すべて表示する"
202msgstr "すべて表示する"
203
203
204−#: qml/Dash/GenericScopeView.qml:638
204+#: qml/Dash/GenericScopeView.qml:649
205msgctxt "Label: Hint for dash search line edit"
205msgctxt "Label: Hint for dash search line edit"
206msgid "Search"
206msgid "Search"
207msgstr ""
207msgstr ""
@@ -255,19 +255,21 @@ msgstr ""
255msgid "Also installed"
255msgid "Also installed"
256msgstr ""
256msgstr ""
257
257
258−#: qml/DisabledScreenNotice.qml:42
258+#: qml/DisabledScreenNotice.qml:87
259+msgid ""
259−msgid "Your device is now connected to an external display."
260+"Your device is now connected to an external display. Use this screen as a "
261+"touch pad to interact with the mouse."
260msgstr ""
262msgstr ""
261
263
262#: qml/Greeter/CoverPage.qml:107
264#: qml/Greeter/CoverPage.qml:107
263msgid "Unlock"
265msgid "Unlock"
264msgstr "ロックの解除"
266msgstr "ロックの解除"
265
267
266−#: qml/Greeter/LoginList.qml:236
268+#: qml/Greeter/LoginList.qml:239
267msgid "Retry"
269msgid "Retry"
268msgstr ""
270msgstr ""
269
271
270−#: qml/Greeter/LoginList.qml:237
272+#: qml/Greeter/LoginList.qml:240
271msgid "Tap to unlock"
273msgid "Tap to unlock"
272msgstr ""
274msgstr ""
273
275
@@ -484,7 +486,7 @@ msgid "Hi!"
484msgstr ""
486msgstr ""
485
487
486#: qml/Wizard/Pages/10-welcome.qml:44
488#: qml/Wizard/Pages/10-welcome.qml:44
487−msgid "Welcome to your Ubuntu phone."
489+msgid "Welcome to your Ubuntu device."
488msgstr ""
490msgstr ""
489
491
490#: qml/Wizard/Pages/10-welcome.qml:52
492#: qml/Wizard/Pages/10-welcome.qml:52
@@ -515,7 +517,7 @@ msgid "Lock security"
515msgstr ""
517msgstr ""
516
518
517#: qml/Wizard/Pages/30-passwd-type.qml:79
519#: qml/Wizard/Pages/30-passwd-type.qml:79
518−msgid "Please select how you’d like to unlock your phone."
520+msgid "Please select how you’d like to unlock your device."
519msgstr ""
521msgstr ""
520
522
521#: qml/Wizard/Pages/30-passwd-type.qml:102
523#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -616,7 +618,7 @@ msgid "Nice work!"
616msgstr ""
618msgstr ""
617
619
618#: qml/Wizard/Pages/80-finished.qml:46
620#: qml/Wizard/Pages/80-finished.qml:46
619−msgid "Your phone is now ready to use."
621+msgid "Your device is now ready to use."
620msgstr ""
622msgstr ""
621
623
622#: qml/Wizard/Pages/80-finished.qml:53
624#: qml/Wizard/Pages/80-finished.qml:53
po/km.po+23−15
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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: Sophea Sok <sksophea@gmail.com>\n"
12"Last-Translator: Sophea Sok <sksophea@gmail.com>\n"
13"Language-Team: Khmer <km@li.org>\n"
13"Language-Team: Khmer <km@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "យក​ចេញពី​សំណព្វ"
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr "បន្ថែម​ទៅ​សណព្វ"
197msgstr "បន្ថែម​ទៅ​សណព្វ"
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr "មើល​តិច​ជាង"
201msgstr "មើល​តិច​ជាង"
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr "មើល​ទាំងអស់"
205msgstr "មើល​ទាំងអស់"
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr "ស្វែងរក"
210msgstr "ស្វែងរក"
@@ -258,19 +258,21 @@ msgstr "ផ្ទះ"
258msgid "Also installed"
258msgid "Also installed"
259msgstr ""
259msgstr ""
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263msgstr ""
265msgstr ""
264
266
265#: qml/Greeter/CoverPage.qml:107
267#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
268msgid "Unlock"
267msgstr "ដោះ​សោ"
269msgstr "ដោះ​សោ"
268
270
269−#: qml/Greeter/LoginList.qml:236
271+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
272msgid "Retry"
271msgstr "ព្យាយាម​ម្ដងទៀត"
273msgstr "ព្យាយាម​ម្ដងទៀត"
272
274
273−#: qml/Greeter/LoginList.qml:237
275+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
276msgid "Tap to unlock"
275msgstr ""
277msgstr ""
276
278
@@ -493,8 +495,8 @@ msgid "Hi!"
493msgstr "សួស្ដី!"
495msgstr "សួស្ដី!"
494
496
495#: qml/Wizard/Pages/10-welcome.qml:44
497#: qml/Wizard/Pages/10-welcome.qml:44
496−msgid "Welcome to your Ubuntu phone."
498+msgid "Welcome to your Ubuntu device."
497−msgstr "សូម​ស្វាគមន៍​មកកាន់​ទូរស័ព្ទ Ubuntu ។"
499+msgstr ""
498
500
499#: qml/Wizard/Pages/10-welcome.qml:52
501#: qml/Wizard/Pages/10-welcome.qml:52
500msgid "Let’s get started."
502msgid "Let’s get started."
@@ -524,7 +526,7 @@ msgid "Lock security"
524msgstr "ចាក់សោ​សុវត្ថិភាព"
526msgstr "ចាក់សោ​សុវត្ថិភាព"
525
527
526#: qml/Wizard/Pages/30-passwd-type.qml:79
528#: qml/Wizard/Pages/30-passwd-type.qml:79
527−msgid "Please select how you’d like to unlock your phone."
529+msgid "Please select how you’d like to unlock your device."
528msgstr ""
530msgstr ""
529
531
530#: qml/Wizard/Pages/30-passwd-type.qml:102
532#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -625,8 +627,8 @@ msgid "Nice work!"
625msgstr "ដំណើរការ​ល្អ!"
627msgstr "ដំណើរការ​ល្អ!"
626
628
627#: qml/Wizard/Pages/80-finished.qml:46
629#: qml/Wizard/Pages/80-finished.qml:46
628−msgid "Your phone is now ready to use."
630+msgid "Your device is now ready to use."
629−msgstr "ទូរស័ព្ទ​របស់​អ្នក​ឥឡូវ​អាច​ប្រើ​បាន។"
631+msgstr ""
630
632
631#: qml/Wizard/Pages/80-finished.qml:53
633#: qml/Wizard/Pages/80-finished.qml:53
632msgid "Finish"
634msgid "Finish"
@@ -758,3 +760,9 @@ msgstr "%1 〉"
758
760
759#~ msgid "Restart"
761#~ msgid "Restart"
760#~ msgstr "ចាប់​ផ្ដើម​ឡើង​វិញ"
762#~ msgstr "ចាប់​ផ្ដើម​ឡើង​វិញ"
763+
764+#~ msgid "Welcome to your Ubuntu phone."
765+#~ msgstr "សូម​ស្វាគមន៍​មកកាន់​ទូរស័ព្ទ Ubuntu ។"
766+
767+#~ msgid "Your phone is now ready to use."
768+#~ msgstr "ទូរស័ព្ទ​របស់​អ្នក​ឥឡូវ​អាច​ប្រើ​បាន។"
po/kn.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/ko.po+37−26
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -148,27 +148,27 @@ msgstr "확인"
148
148
149#: qml/Components/ModeSwitchWarningDialog.qml:32
149#: qml/Components/ModeSwitchWarningDialog.qml:32
150msgid "Apps may have unsaved data:"
150msgid "Apps may have unsaved data:"
151−msgstr ""
151+msgstr "프로그램에 저장하지 않은 데이터가 있을 때:"
152
152
153#: qml/Components/ModeSwitchWarningDialog.qml:57
153#: qml/Components/ModeSwitchWarningDialog.qml:57
154msgid "Re-dock, save your work and close these apps to continue."
154msgid "Re-dock, save your work and close these apps to continue."
155−msgstr ""
155+msgstr "다시 도킹해 작업을 저장하고 프로그램을 닫은 후 계속합니다."
156
156
157#: qml/Components/ModeSwitchWarningDialog.qml:63
157#: qml/Components/ModeSwitchWarningDialog.qml:63
158msgid "Or force close now (unsaved data will be lost)."
158msgid "Or force close now (unsaved data will be lost)."
159−msgstr ""
159+msgstr "강제로 지금 끝냅니다.(저장하지 않은 데이터를 잃게 됩니다.)"
160
160
161#: qml/Components/ModeSwitchWarningDialog.qml:75
161#: qml/Components/ModeSwitchWarningDialog.qml:75
162msgid "OK, I will reconnect"
162msgid "OK, I will reconnect"
163−msgstr ""
163+msgstr "다시 접속합니다."
164
164
165#: qml/Components/ModeSwitchWarningDialog.qml:76
165#: qml/Components/ModeSwitchWarningDialog.qml:76
166msgid "Reconnect now!"
166msgid "Reconnect now!"
167−msgstr ""
167+msgstr "지급 다시 접속!"
168
168
169#: qml/Components/ModeSwitchWarningDialog.qml:88
169#: qml/Components/ModeSwitchWarningDialog.qml:88
170msgid "Close all"
170msgid "Close all"
171−msgstr ""
171+msgstr "모두 닫기"
172
172
173#: qml/Dash/DashPageHeader.qml:266
173#: qml/Dash/DashPageHeader.qml:266
174msgctxt "Button: Open the Ubuntu Store"
174msgctxt "Button: Open the Ubuntu Store"
@@ -193,15 +193,15 @@ msgstr "즐겨찾기에서 제거"
193msgid "Add to Favorites"
193msgid "Add to Favorites"
194msgstr "즐겨찾기에 추가"
194msgstr "즐겨찾기에 추가"
195
195
196−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
196+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
197msgid "See less"
197msgid "See less"
198msgstr "간단히 표시"
198msgstr "간단히 표시"
199
199
200−#: qml/Dash/GenericScopeView.qml:576
200+#: qml/Dash/GenericScopeView.qml:587
201msgid "See all"
201msgid "See all"
202msgstr "모두 보기"
202msgstr "모두 보기"
203
203
204−#: qml/Dash/GenericScopeView.qml:638
204+#: qml/Dash/GenericScopeView.qml:649
205msgctxt "Label: Hint for dash search line edit"
205msgctxt "Label: Hint for dash search line edit"
206msgid "Search"
206msgid "Search"
207msgstr "검색"
207msgstr "검색"
@@ -229,7 +229,7 @@ msgstr "평가 추가"
229
229
230#: qml/Dash/Previews/PreviewSharing.qml:50
230#: qml/Dash/Previews/PreviewSharing.qml:50
231msgid "Preview Share Item"
231msgid "Preview Share Item"
232−msgstr ""
232+msgstr "공유 항목 미리 보기"
233
233
234#: qml/Dash/PullToRefreshScopeStyle.qml:55
234#: qml/Dash/PullToRefreshScopeStyle.qml:55
235msgid "Pull to refresh…"
235msgid "Pull to refresh…"
@@ -255,19 +255,21 @@ msgstr "홈"
255msgid "Also installed"
255msgid "Also installed"
256msgstr "설치함"
256msgstr "설치함"
257
257
258−#: qml/DisabledScreenNotice.qml:42
258+#: qml/DisabledScreenNotice.qml:87
259+msgid ""
259−msgid "Your device is now connected to an external display."
260+"Your device is now connected to an external display. Use this screen as a "
260−msgstr ""
261+"touch pad to interact with the mouse."
262+msgstr "장치를 외부 디스플레이와 연결햇습니다. 이 화면을 마우스와 상호작용 하는 터치 패드로 사용합니다."
261
263
262#: qml/Greeter/CoverPage.qml:107
264#: qml/Greeter/CoverPage.qml:107
263msgid "Unlock"
265msgid "Unlock"
264msgstr "잠금 해제"
266msgstr "잠금 해제"
265
267
266−#: qml/Greeter/LoginList.qml:236
268+#: qml/Greeter/LoginList.qml:239
267msgid "Retry"
269msgid "Retry"
268msgstr "다시 시도"
270msgstr "다시 시도"
269
271
270−#: qml/Greeter/LoginList.qml:237
272+#: qml/Greeter/LoginList.qml:240
271msgid "Tap to unlock"
273msgid "Tap to unlock"
272msgstr "두드려서 잠금 해제"
274msgstr "두드려서 잠금 해제"
273
275
@@ -398,7 +400,7 @@ msgstr "실패, 두드리면 다시 시도합니다."
398#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
400#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
399msgctxt "Button: Send a reply message"
401msgctxt "Button: Send a reply message"
400msgid "Send"
402msgid "Send"
401−msgstr ""
403+msgstr "보내기"
402
404
403#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
405#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
404msgctxt "Label: Hint in message indicator line edit"
406msgctxt "Label: Hint in message indicator line edit"
@@ -408,7 +410,7 @@ msgstr "답신"
408#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
410#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
409msgctxt "Button: Call back on phone"
411msgctxt "Button: Call back on phone"
410msgid "Call back"
412msgid "Call back"
411−msgstr ""
413+msgstr "부재중 번호로 전화"
412
414
413#: qml/Panel/Indicators/ModemInfoItem.qml:105
415#: qml/Panel/Indicators/ModemInfoItem.qml:105
414msgid "Unlock SIM"
416msgid "Unlock SIM"
@@ -481,8 +483,8 @@ msgid "Hi!"
481msgstr "안녕!"
483msgstr "안녕!"
482
484
483#: qml/Wizard/Pages/10-welcome.qml:44
485#: qml/Wizard/Pages/10-welcome.qml:44
484−msgid "Welcome to your Ubuntu phone."
486+msgid "Welcome to your Ubuntu device."
485−msgstr "우분투 폰을 사용해주셔서 감사합니다."
487+msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:52
489#: qml/Wizard/Pages/10-welcome.qml:52
488msgid "Let’s get started."
490msgid "Let’s get started."
@@ -512,8 +514,8 @@ msgid "Lock security"
512msgstr "보안 잠금"
514msgstr "보안 잠금"
513
515
514#: qml/Wizard/Pages/30-passwd-type.qml:79
516#: qml/Wizard/Pages/30-passwd-type.qml:79
515−msgid "Please select how you’d like to unlock your phone."
517+msgid "Please select how you’d like to unlock your device."
516−msgstr "전화의 잠긴 상태를 해제할 방법을 선택해주십시오."
518+msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:102
520#: qml/Wizard/Pages/30-passwd-type.qml:102
519msgctxt "Label: Type of security method"
521msgctxt "Label: Type of security method"
@@ -613,8 +615,8 @@ msgid "Nice work!"
613msgstr "잘 하셨습니다!"
615msgstr "잘 하셨습니다!"
614
616
615#: qml/Wizard/Pages/80-finished.qml:46
617#: qml/Wizard/Pages/80-finished.qml:46
616−msgid "Your phone is now ready to use."
618+msgid "Your device is now ready to use."
617−msgstr "이제 전화를 사용할 수 있습니다."
619+msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:53
621#: qml/Wizard/Pages/80-finished.qml:53
620msgid "Finish"
622msgid "Finish"
@@ -750,6 +752,15 @@ msgstr "%1 〉"
750#~ msgid "Please re-enter"
752#~ msgid "Please re-enter"
751#~ msgstr "다시 입력해주십시오."
753#~ msgstr "다시 입력해주십시오."
752
754
755+#~ msgid "Welcome to your Ubuntu phone."
756+#~ msgstr "우분투 폰을 사용해주셔서 감사합니다."
757+
758+#~ msgid "Please select how you’d like to unlock your phone."
759+#~ msgstr "전화의 잠긴 상태를 해제할 방법을 선택해주십시오."
760+
761+#~ msgid "Your phone is now ready to use."
762+#~ msgstr "이제 전화를 사용할 수 있습니다."
763+
753#~ msgid "%a %d %b %H:%M"
764#~ msgid "%a %d %b %H:%M"
754#~ msgstr "%d %b %H:%M (%a)"
765#~ msgstr "%d %b %H:%M (%a)"
755
766
po/ku.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Ji nav Bijareyan rake"
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr "Li Bijareyan zêde bike"
197msgstr "Li Bijareyan zêde bike"
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr "Hindiktir bibîne"
201msgstr "Hindiktir bibîne"
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr "Tevî bibîne"
205msgstr "Tevî bibîne"
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr ""
210msgstr ""
@@ -258,19 +258,21 @@ msgstr ""
258msgid "Also installed"
258msgid "Also installed"
259msgstr ""
259msgstr ""
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263msgstr ""
265msgstr ""
264
266
265#: qml/Greeter/CoverPage.qml:107
267#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
268msgid "Unlock"
267msgstr ""
269msgstr ""
268
270
269−#: qml/Greeter/LoginList.qml:236
271+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
272msgid "Retry"
271msgstr ""
273msgstr ""
272
274
273−#: qml/Greeter/LoginList.qml:237
275+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
276msgid "Tap to unlock"
275msgstr ""
277msgstr ""
276
278
@@ -491,7 +493,7 @@ msgid "Hi!"
491msgstr ""
493msgstr ""
492
494
493#: qml/Wizard/Pages/10-welcome.qml:44
495#: qml/Wizard/Pages/10-welcome.qml:44
494−msgid "Welcome to your Ubuntu phone."
496+msgid "Welcome to your Ubuntu device."
495msgstr ""
497msgstr ""
496
498
497#: qml/Wizard/Pages/10-welcome.qml:52
499#: qml/Wizard/Pages/10-welcome.qml:52
@@ -522,7 +524,7 @@ msgid "Lock security"
522msgstr ""
524msgstr ""
523
525
524#: qml/Wizard/Pages/30-passwd-type.qml:79
526#: qml/Wizard/Pages/30-passwd-type.qml:79
525−msgid "Please select how you’d like to unlock your phone."
527+msgid "Please select how you’d like to unlock your device."
526msgstr ""
528msgstr ""
527
529
528#: qml/Wizard/Pages/30-passwd-type.qml:102
530#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -623,7 +625,7 @@ msgid "Nice work!"
623msgstr ""
625msgstr ""
624
626
625#: qml/Wizard/Pages/80-finished.qml:46
627#: qml/Wizard/Pages/80-finished.qml:46
626−msgid "Your phone is now ready to use."
628+msgid "Your device is now ready to use."
627msgstr ""
629msgstr ""
628
630
629#: qml/Wizard/Pages/80-finished.qml:53
631#: qml/Wizard/Pages/80-finished.qml:53
po/ky.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/lo.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/lt.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"(n%100<10 || n%100>=20) ? 1 : 2;\n"
18"(n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -195,15 +195,15 @@ msgstr ""
195msgid "Add to Favorites"
195msgid "Add to Favorites"
196msgstr ""
196msgstr ""
197
197
198−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
198+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
199msgid "See less"
199msgid "See less"
200msgstr ""
200msgstr ""
201
201
202−#: qml/Dash/GenericScopeView.qml:576
202+#: qml/Dash/GenericScopeView.qml:587
203msgid "See all"
203msgid "See all"
204msgstr ""
204msgstr ""
205
205
206−#: qml/Dash/GenericScopeView.qml:638
206+#: qml/Dash/GenericScopeView.qml:649
207msgctxt "Label: Hint for dash search line edit"
207msgctxt "Label: Hint for dash search line edit"
208msgid "Search"
208msgid "Search"
209msgstr ""
209msgstr ""
@@ -257,19 +257,21 @@ msgstr ""
257msgid "Also installed"
257msgid "Also installed"
258msgstr ""
258msgstr ""
259
259
260−#: qml/DisabledScreenNotice.qml:42
260+#: qml/DisabledScreenNotice.qml:87
261+msgid ""
261−msgid "Your device is now connected to an external display."
262+"Your device is now connected to an external display. Use this screen as a "
263+"touch pad to interact with the mouse."
262msgstr ""
264msgstr ""
263
265
264#: qml/Greeter/CoverPage.qml:107
266#: qml/Greeter/CoverPage.qml:107
265msgid "Unlock"
267msgid "Unlock"
266msgstr ""
268msgstr ""
267
269
268−#: qml/Greeter/LoginList.qml:236
270+#: qml/Greeter/LoginList.qml:239
269msgid "Retry"
271msgid "Retry"
270msgstr ""
272msgstr ""
271
273
272−#: qml/Greeter/LoginList.qml:237
274+#: qml/Greeter/LoginList.qml:240
273msgid "Tap to unlock"
275msgid "Tap to unlock"
274msgstr ""
276msgstr ""
275
277
@@ -486,7 +488,7 @@ msgid "Hi!"
486msgstr ""
488msgstr ""
487
489
488#: qml/Wizard/Pages/10-welcome.qml:44
490#: qml/Wizard/Pages/10-welcome.qml:44
489−msgid "Welcome to your Ubuntu phone."
491+msgid "Welcome to your Ubuntu device."
490msgstr ""
492msgstr ""
491
493
492#: qml/Wizard/Pages/10-welcome.qml:52
494#: qml/Wizard/Pages/10-welcome.qml:52
@@ -517,7 +519,7 @@ msgid "Lock security"
517msgstr ""
519msgstr ""
518
520
519#: qml/Wizard/Pages/30-passwd-type.qml:79
521#: qml/Wizard/Pages/30-passwd-type.qml:79
520−msgid "Please select how you’d like to unlock your phone."
522+msgid "Please select how you’d like to unlock your device."
521msgstr ""
523msgstr ""
522
524
523#: qml/Wizard/Pages/30-passwd-type.qml:102
525#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -618,7 +620,7 @@ msgid "Nice work!"
618msgstr ""
620msgstr ""
619
621
620#: qml/Wizard/Pages/80-finished.qml:46
622#: qml/Wizard/Pages/80-finished.qml:46
621−msgid "Your phone is now ready to use."
623+msgid "Your device is now ready to use."
622msgstr ""
624msgstr ""
623
625
624#: qml/Wizard/Pages/80-finished.qml:53
626#: qml/Wizard/Pages/80-finished.qml:53
po/lv.po+28−17
@@ -8,7 +8,7 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity\n"
9"Project-Id-Version: unity\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: 2016-01-22 17:08+0000\n"
11+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
12"PO-Revision-Date: 2015-11-22 19:13+0000\n"
12"PO-Revision-Date: 2015-11-22 19:13+0000\n"
13"Last-Translator: Klavs Anson <anson.klavs@gmail.com>\n"
13"Last-Translator: Klavs Anson <anson.klavs@gmail.com>\n"
14"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
14"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
@@ -16,8 +16,8 @@ msgstr ""
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"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
18"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21"Language: lv\n"
21"Language: lv\n"
22
22
23#: plugins/IntegratedLightDM/Greeter.cpp:112
23#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -199,15 +199,15 @@ msgstr "Izņemt no izlases"
199msgid "Add to Favorites"
199msgid "Add to Favorites"
200msgstr "Pievienot izlasei"
200msgstr "Pievienot izlasei"
201
201
202−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
202+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
203msgid "See less"
203msgid "See less"
204msgstr "Skatīt mazāk"
204msgstr "Skatīt mazāk"
205
205
206−#: qml/Dash/GenericScopeView.qml:576
206+#: qml/Dash/GenericScopeView.qml:587
207msgid "See all"
207msgid "See all"
208msgstr "Skatīt visus"
208msgstr "Skatīt visus"
209
209
210−#: qml/Dash/GenericScopeView.qml:638
210+#: qml/Dash/GenericScopeView.qml:649
211msgctxt "Label: Hint for dash search line edit"
211msgctxt "Label: Hint for dash search line edit"
212msgid "Search"
212msgid "Search"
213msgstr "Meklēt"
213msgstr "Meklēt"
@@ -261,19 +261,21 @@ msgstr "Mājas"
261msgid "Also installed"
261msgid "Also installed"
262msgstr "Arī instalēja"
262msgstr "Arī instalēja"
263
263
264−#: qml/DisabledScreenNotice.qml:42
264+#: qml/DisabledScreenNotice.qml:87
265+msgid ""
265−msgid "Your device is now connected to an external display."
266+"Your device is now connected to an external display. Use this screen as a "
266−msgstr "Šī ierīce tagad ir savienota ar ārējo displeju."
267+"touch pad to interact with the mouse."
268+msgstr ""
267
269
268#: qml/Greeter/CoverPage.qml:107
270#: qml/Greeter/CoverPage.qml:107
269msgid "Unlock"
271msgid "Unlock"
270msgstr "Atbloķēt"
272msgstr "Atbloķēt"
271
273
272−#: qml/Greeter/LoginList.qml:236
274+#: qml/Greeter/LoginList.qml:239
273msgid "Retry"
275msgid "Retry"
274msgstr "Mēģināt vēlreiz"
276msgstr "Mēģināt vēlreiz"
275
277
276−#: qml/Greeter/LoginList.qml:237
278+#: qml/Greeter/LoginList.qml:240
277msgid "Tap to unlock"
279msgid "Tap to unlock"
278msgstr "Uzsitiet, lai atbloķētu"
280msgstr "Uzsitiet, lai atbloķētu"
279
281
@@ -497,8 +499,8 @@ msgid "Hi!"
497msgstr "Sveiki!"
499msgstr "Sveiki!"
498
500
499#: qml/Wizard/Pages/10-welcome.qml:44
501#: qml/Wizard/Pages/10-welcome.qml:44
500−msgid "Welcome to your Ubuntu phone."
502+msgid "Welcome to your Ubuntu device."
501−msgstr "Laipni lūdza Ubuntu viedtālrunī."
503+msgstr ""
502
504
503#: qml/Wizard/Pages/10-welcome.qml:52
505#: qml/Wizard/Pages/10-welcome.qml:52
504msgid "Let’s get started."
506msgid "Let’s get started."
@@ -528,8 +530,8 @@ msgid "Lock security"
528msgstr "Bloķēšanas drošība"
530msgstr "Bloķēšanas drošība"
529
531
530#: qml/Wizard/Pages/30-passwd-type.qml:79
532#: qml/Wizard/Pages/30-passwd-type.qml:79
531−msgid "Please select how you’d like to unlock your phone."
533+msgid "Please select how you’d like to unlock your device."
532−msgstr "Lūdzu, izvēlieties, kā vēlaties atbloķēt savu tālruni."
534+msgstr ""
533
535
534#: qml/Wizard/Pages/30-passwd-type.qml:102
536#: qml/Wizard/Pages/30-passwd-type.qml:102
535msgctxt "Label: Type of security method"
537msgctxt "Label: Type of security method"
@@ -635,8 +637,8 @@ msgid "Nice work!"
635msgstr "Lieliski!"
637msgstr "Lieliski!"
636
638
637#: qml/Wizard/Pages/80-finished.qml:46
639#: qml/Wizard/Pages/80-finished.qml:46
638−msgid "Your phone is now ready to use."
640+msgid "Your device is now ready to use."
639−msgstr "Jūsu tālrunis tagad ir gatavs lietošanai."
641+msgstr ""
640
642
641#: qml/Wizard/Pages/80-finished.qml:53
643#: qml/Wizard/Pages/80-finished.qml:53
642msgid "Finish"
644msgid "Finish"
@@ -756,3 +758,12 @@ msgstr "%1 〉"
756
758
757#~ msgid "Please re-enter"
759#~ msgid "Please re-enter"
758#~ msgstr "Lūdzu, ievadiet vēlreiz"
760#~ msgstr "Lūdzu, ievadiet vēlreiz"
761+
762+#~ msgid "Please select how you’d like to unlock your phone."
763+#~ msgstr "Lūdzu, izvēlieties, kā vēlaties atbloķēt savu tālruni."
764+
765+#~ msgid "Welcome to your Ubuntu phone."
766+#~ msgstr "Laipni lūdza Ubuntu viedtālrunī."
767+
768+#~ msgid "Your phone is now ready to use."
769+#~ msgstr "Jūsu tālrunis tagad ir gatavs lietošanai."
po/ml.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/mr.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "आवड पासून काढूण टाका"
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr "आवड मध्ये जोडा"
195msgstr "आवड मध्ये जोडा"
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr "शोध"
208msgstr "शोध"
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/ms.po+28−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Buang dari Kegemaran"
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr "Tambah ke Kegemaran"
197msgstr "Tambah ke Kegemaran"
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr "Lihat kurang"
201msgstr "Lihat kurang"
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr "Lihat semua"
205msgstr "Lihat semua"
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr "Gelintar"
210msgstr "Gelintar"
@@ -258,19 +258,21 @@ msgstr "Rumah"
258msgid "Also installed"
258msgid "Also installed"
259msgstr "Juga dipasang"
259msgstr "Juga dipasang"
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
263−msgstr "Peranti anda kini bersambung dengan paparan luar."
264+"touch pad to interact with the mouse."
265+msgstr ""
264
266
265#: qml/Greeter/CoverPage.qml:107
267#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
268msgid "Unlock"
267msgstr "Buka"
269msgstr "Buka"
268
270
269−#: qml/Greeter/LoginList.qml:236
271+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
272msgid "Retry"
271msgstr "Cuba Lagi"
273msgstr "Cuba Lagi"
272
274
273−#: qml/Greeter/LoginList.qml:237
275+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
276msgid "Tap to unlock"
275msgstr "Ketik untuk buka"
277msgstr "Ketik untuk buka"
276
278
@@ -491,8 +493,8 @@ msgid "Hi!"
491msgstr "Hai"
493msgstr "Hai"
492
494
493#: qml/Wizard/Pages/10-welcome.qml:44
495#: qml/Wizard/Pages/10-welcome.qml:44
494−msgid "Welcome to your Ubuntu phone."
496+msgid "Welcome to your Ubuntu device."
495−msgstr "Selamat datang ke telefon Ubuntu anda."
497+msgstr ""
496
498
497#: qml/Wizard/Pages/10-welcome.qml:52
499#: qml/Wizard/Pages/10-welcome.qml:52
498msgid "Let’s get started."
500msgid "Let’s get started."
@@ -523,8 +525,8 @@ msgid "Lock security"
523msgstr "Kunci keselamatan"
525msgstr "Kunci keselamatan"
524
526
525#: qml/Wizard/Pages/30-passwd-type.qml:79
527#: qml/Wizard/Pages/30-passwd-type.qml:79
526−msgid "Please select how you’d like to unlock your phone."
528+msgid "Please select how you’d like to unlock your device."
527−msgstr "Sila pilih bagaimana anda mahu membuka telefon anda."
529+msgstr ""
528
530
529#: qml/Wizard/Pages/30-passwd-type.qml:102
531#: qml/Wizard/Pages/30-passwd-type.qml:102
530msgctxt "Label: Type of security method"
532msgctxt "Label: Type of security method"
@@ -631,8 +633,8 @@ msgid "Nice work!"
631msgstr "Selesai!"
633msgstr "Selesai!"
632
634
633#: qml/Wizard/Pages/80-finished.qml:46
635#: qml/Wizard/Pages/80-finished.qml:46
634−msgid "Your phone is now ready to use."
636+msgid "Your device is now ready to use."
635−msgstr "Telefon anda kini boleh digunakan."
637+msgstr ""
636
638
637#: qml/Wizard/Pages/80-finished.qml:53
639#: qml/Wizard/Pages/80-finished.qml:53
638msgid "Finish"
640msgid "Finish"
@@ -769,6 +771,15 @@ msgstr "%1 〉"
769#~ "Anda kini telah memahami gerak isyarat pinggir dan boleh mula gunakan "
771#~ "Anda kini telah memahami gerak isyarat pinggir dan boleh mula gunakan "
770#~ "telefon<br><br>Ketuk pada skrin untuk mula"
772#~ "telefon<br><br>Ketuk pada skrin untuk mula"
771
773
774+#~ msgid "Welcome to your Ubuntu phone."
775+#~ msgstr "Selamat datang ke telefon Ubuntu anda."
776+
777+#~ msgid "Please select how you’d like to unlock your phone."
778+#~ msgstr "Sila pilih bagaimana anda mahu membuka telefon anda."
779+
780+#~ msgid "Your phone is now ready to use."
781+#~ msgstr "Telefon anda kini boleh digunakan."
782+
772#~ msgid "%a %H:%M"
783#~ msgid "%a %H:%M"
773#~ msgstr "%a %H:%M"
784#~ msgstr "%a %H:%M"
774
785
po/my.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "နှစ်သက်မှုအဖြစ်မှပယ်ဖျက်
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr "နှစ်သက်မှုအဖြစ်ထည့်ပါ"
195msgstr "နှစ်သက်မှုအဖြစ်ထည့်ပါ"
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr "ရှာဖွေရန်"
208msgstr "ရှာဖွေရန်"
@@ -256,19 +256,21 @@ msgstr "ပင်မ"
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr "ထပ်ကြိုးစားပါ"
271msgstr "ထပ်ကြိုးစားပါ"
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/nb.po+28−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-05 19:44+0000\n"
11"PO-Revision-Date: 2015-07-05 19:44+0000\n"
12"Last-Translator: Mathias Bynke <Unknown>\n"
12"Last-Translator: Mathias Bynke <Unknown>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -200,15 +200,15 @@ msgstr "Fjern fra favoritter"
200msgid "Add to Favorites"
200msgid "Add to Favorites"
201msgstr "Legg til i favoritter"
201msgstr "Legg til i favoritter"
202
202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204msgid "See less"
204msgid "See less"
205msgstr "Vis mindre"
205msgstr "Vis mindre"
206
206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208msgid "See all"
208msgid "See all"
209msgstr "Vis alt"
209msgstr "Vis alt"
210
210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212msgctxt "Label: Hint for dash search line edit"
212msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
213msgid "Search"
214msgstr "Søk"
214msgstr "Søk"
@@ -262,19 +262,21 @@ msgstr "Hjem"
262msgid "Also installed"
262msgid "Also installed"
263msgstr "Også installert"
263msgstr "Også installert"
264
264
265−#: qml/DisabledScreenNotice.qml:42
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
266−msgid "Your device is now connected to an external display."
267+"Your device is now connected to an external display. Use this screen as a "
267−msgstr "Enheten er nå koblet til en ekstern skjerm."
268+"touch pad to interact with the mouse."
269+msgstr ""
268
270
269#: qml/Greeter/CoverPage.qml:107
271#: qml/Greeter/CoverPage.qml:107
270msgid "Unlock"
272msgid "Unlock"
271msgstr "Lås opp"
273msgstr "Lås opp"
272
274
273−#: qml/Greeter/LoginList.qml:236
275+#: qml/Greeter/LoginList.qml:239
274msgid "Retry"
276msgid "Retry"
275msgstr "Prøv igjen"
277msgstr "Prøv igjen"
276
278
277−#: qml/Greeter/LoginList.qml:237
279+#: qml/Greeter/LoginList.qml:240
278msgid "Tap to unlock"
280msgid "Tap to unlock"
279msgstr "Trykk for å låse opp"
281msgstr "Trykk for å låse opp"
280
282
@@ -495,8 +497,8 @@ msgid "Hi!"
495msgstr "Hei!"
497msgstr "Hei!"
496
498
497#: qml/Wizard/Pages/10-welcome.qml:44
499#: qml/Wizard/Pages/10-welcome.qml:44
498−msgid "Welcome to your Ubuntu phone."
500+msgid "Welcome to your Ubuntu device."
499−msgstr "Velkommen til Ubuntu-telefonen."
501+msgstr ""
500
502
501#: qml/Wizard/Pages/10-welcome.qml:52
503#: qml/Wizard/Pages/10-welcome.qml:52
502msgid "Let’s get started."
504msgid "Let’s get started."
@@ -526,8 +528,8 @@ msgid "Lock security"
526msgstr "Låsesikkerhet"
528msgstr "Låsesikkerhet"
527
529
528#: qml/Wizard/Pages/30-passwd-type.qml:79
530#: qml/Wizard/Pages/30-passwd-type.qml:79
529−msgid "Please select how you’d like to unlock your phone."
531+msgid "Please select how you’d like to unlock your device."
530−msgstr "Velg hvordan du vil låse opp telefonen."
532+msgstr ""
531
533
532#: qml/Wizard/Pages/30-passwd-type.qml:102
534#: qml/Wizard/Pages/30-passwd-type.qml:102
533msgctxt "Label: Type of security method"
535msgctxt "Label: Type of security method"
@@ -633,8 +635,8 @@ msgid "Nice work!"
633msgstr "Godt jobba!"
635msgstr "Godt jobba!"
634
636
635#: qml/Wizard/Pages/80-finished.qml:46
637#: qml/Wizard/Pages/80-finished.qml:46
636−msgid "Your phone is now ready to use."
638+msgid "Your device is now ready to use."
637−msgstr "Telefonen er klar til bruk."
639+msgstr ""
638
640
639#: qml/Wizard/Pages/80-finished.qml:53
641#: qml/Wizard/Pages/80-finished.qml:53
640msgid "Finish"
642msgid "Finish"
@@ -771,6 +773,15 @@ msgstr "%1 〉"
771#~ msgid "Please re-enter"
773#~ msgid "Please re-enter"
772#~ msgstr "Skriv inn på nytt"
774#~ msgstr "Skriv inn på nytt"
773
775
776+#~ msgid "Welcome to your Ubuntu phone."
777+#~ msgstr "Velkommen til Ubuntu-telefonen."
778+
779+#~ msgid "Please select how you’d like to unlock your phone."
780+#~ msgstr "Velg hvordan du vil låse opp telefonen."
781+
782+#~ msgid "Your phone is now ready to use."
783+#~ msgstr "Telefonen er klar til bruk."
784+
774#~ msgid "%a %d %b %H:%M"
785#~ msgid "%a %d %b %H:%M"
775#~ msgstr "%a %b. %d %H:%M"
786#~ msgstr "%a %b. %d %H:%M"
776
787
po/ne.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-12-06 15:11+0000\n"
11"PO-Revision-Date: 2015-12-06 15:11+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Nepali <ne@li.org>\n"
13"Language-Team: Nepali <ne@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr "ताल्चा खोल्नुहोस्"
267msgstr "ताल्चा खोल्नुहोस्"
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr "पुन: प्रयास"
271msgstr "पुन: प्रयास"
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/nl.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-07 07:14+0000\n"
11"PO-Revision-Date: 2015-07-07 07:14+0000\n"
12"Last-Translator: Hannie Dumoleyn <Unknown>\n"
12"Last-Translator: Hannie Dumoleyn <Unknown>\n"
13"Language-Team: Dutch <nl@li.org>\n"
13"Language-Team: Dutch <nl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -200,15 +200,15 @@ msgstr "Verwijderen uit favorieten"
200msgid "Add to Favorites"
200msgid "Add to Favorites"
201msgstr "Toevoegen aan favorieten"
201msgstr "Toevoegen aan favorieten"
202
202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204msgid "See less"
204msgid "See less"
205msgstr "Minder zien"
205msgstr "Minder zien"
206
206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208msgid "See all"
208msgid "See all"
209msgstr "Alles zien"
209msgstr "Alles zien"
210
210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212msgctxt "Label: Hint for dash search line edit"
212msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
213msgid "Search"
214msgstr "Zoeken"
214msgstr "Zoeken"
@@ -262,19 +262,21 @@ msgstr "Thuis"
262msgid "Also installed"
262msgid "Also installed"
263msgstr "Ook geïnstalleerd"
263msgstr "Ook geïnstalleerd"
264
264
265−#: qml/DisabledScreenNotice.qml:42
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
266−msgid "Your device is now connected to an external display."
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
267msgstr ""
269msgstr ""
268
270
269#: qml/Greeter/CoverPage.qml:107
271#: qml/Greeter/CoverPage.qml:107
270msgid "Unlock"
272msgid "Unlock"
271msgstr "Ontgrendelen"
273msgstr "Ontgrendelen"
272
274
273−#: qml/Greeter/LoginList.qml:236
275+#: qml/Greeter/LoginList.qml:239
274msgid "Retry"
276msgid "Retry"
275msgstr "Opnieuw proberen"
277msgstr "Opnieuw proberen"
276
278
277−#: qml/Greeter/LoginList.qml:237
279+#: qml/Greeter/LoginList.qml:240
278msgid "Tap to unlock"
280msgid "Tap to unlock"
279msgstr "Tik om te ontgrendelen"
281msgstr "Tik om te ontgrendelen"
280
282
@@ -497,8 +499,8 @@ msgid "Hi!"
497msgstr "Hallo!"
499msgstr "Hallo!"
498
500
499#: qml/Wizard/Pages/10-welcome.qml:44
501#: qml/Wizard/Pages/10-welcome.qml:44
500−msgid "Welcome to your Ubuntu phone."
502+msgid "Welcome to your Ubuntu device."
501−msgstr "Welkom bij uw Ubuntutelefoon."
503+msgstr ""
502
504
503#: qml/Wizard/Pages/10-welcome.qml:52
505#: qml/Wizard/Pages/10-welcome.qml:52
504msgid "Let’s get started."
506msgid "Let’s get started."
@@ -528,8 +530,8 @@ msgid "Lock security"
528msgstr "Vergrendelbeveiliging"
530msgstr "Vergrendelbeveiliging"
529
531
530#: qml/Wizard/Pages/30-passwd-type.qml:79
532#: qml/Wizard/Pages/30-passwd-type.qml:79
531−msgid "Please select how you’d like to unlock your phone."
533+msgid "Please select how you’d like to unlock your device."
532−msgstr "Selecteer a.u.b. hoe u uw telefoon wilt ontgrendelen."
534+msgstr ""
533
535
534#: qml/Wizard/Pages/30-passwd-type.qml:102
536#: qml/Wizard/Pages/30-passwd-type.qml:102
535msgctxt "Label: Type of security method"
537msgctxt "Label: Type of security method"
@@ -636,8 +638,8 @@ msgid "Nice work!"
636msgstr "Mooi werk!"
638msgstr "Mooi werk!"
637
639
638#: qml/Wizard/Pages/80-finished.qml:46
640#: qml/Wizard/Pages/80-finished.qml:46
639−msgid "Your phone is now ready to use."
641+msgid "Your device is now ready to use."
640−msgstr "Uw telefoon is nu klaar voor gebruik."
642+msgstr ""
641
643
642#: qml/Wizard/Pages/80-finished.qml:53
644#: qml/Wizard/Pages/80-finished.qml:53
643msgid "Finish"
645msgid "Finish"
@@ -774,6 +776,15 @@ msgstr "%1 〉"
774#~ msgid "Please re-enter"
776#~ msgid "Please re-enter"
775#~ msgstr "Herhaal deze a.u.b."
777#~ msgstr "Herhaal deze a.u.b."
776
778
779+#~ msgid "Your phone is now ready to use."
780+#~ msgstr "Uw telefoon is nu klaar voor gebruik."
781+
782+#~ msgid "Welcome to your Ubuntu phone."
783+#~ msgstr "Welkom bij uw Ubuntutelefoon."
784+
785+#~ msgid "Please select how you’d like to unlock your phone."
786+#~ msgstr "Selecteer a.u.b. hoe u uw telefoon wilt ontgrendelen."
787+
777#~ msgid "%a %d %b %H:%M"
788#~ msgid "%a %d %b %H:%M"
778#~ msgstr "%a %d %b %H:%M"
789#~ msgstr "%a %d %b %H:%M"
779
790
po/nn.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-05-12 11:32+0000\n"
11"PO-Revision-Date: 2015-05-12 11:32+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Norwegian Nynorsk <nn@li.org>\n"
13"Language-Team: Norwegian Nynorsk <nn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/oc.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-02-05 20:35+0000\n"
11"PO-Revision-Date: 2015-02-05 20:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Occitan (post 1500) <oc@li.org>\n"
13"Language-Team: Occitan (post 1500) <oc@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/or.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-03-21 05:28+0000\n"
11"PO-Revision-Date: 2015-03-21 05:28+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Oriya <or@li.org>\n"
13"Language-Team: Oriya <or@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n!=1;\n"
17"Plural-Forms: nplurals=2; plural=n!=1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/pa.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-04-24 04:29+0000\n"
11"PO-Revision-Date: 2015-04-24 04:29+0000\n"
12"Last-Translator: Gursharnjit_Singh <ubuntuser13@gmail.com>\n"
12"Last-Translator: Gursharnjit_Singh <ubuntuser13@gmail.com>\n"
13"Language-Team: Punjabi <pa@li.org>\n"
13"Language-Team: Punjabi <pa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "ਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਓ"
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr "ਪਸੰਦ ਵਿੱਚ ਜੋੜੋ"
197msgstr "ਪਸੰਦ ਵਿੱਚ ਜੋੜੋ"
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr "ਘੱਟ ਵੇਖੋ"
201msgstr "ਘੱਟ ਵੇਖੋ"
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr "ਸਾਰਾ ਵੇਖੋ"
205msgstr "ਸਾਰਾ ਵੇਖੋ"
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr "ਖੋਜ"
210msgstr "ਖੋਜ"
@@ -258,19 +258,21 @@ msgstr "ਘਰ"
258msgid "Also installed"
258msgid "Also installed"
259msgstr "ਨਾਲ ਇੰਸਟਾਲ ਹੋਇਆ"
259msgstr "ਨਾਲ ਇੰਸਟਾਲ ਹੋਇਆ"
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263msgstr ""
265msgstr ""
264
266
265#: qml/Greeter/CoverPage.qml:107
267#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
268msgid "Unlock"
267msgstr "ਅਣ-ਲਾਕ"
269msgstr "ਅਣ-ਲਾਕ"
268
270
269−#: qml/Greeter/LoginList.qml:236
271+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
272msgid "Retry"
271msgstr "ਮੁੜ-ਕੋਸ਼ਿਸ਼"
273msgstr "ਮੁੜ-ਕੋਸ਼ਿਸ਼"
272
274
273−#: qml/Greeter/LoginList.qml:237
275+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
276msgid "Tap to unlock"
275msgstr "ਅਣਲਾਕ ਲਈ ਛੂਹੋ"
277msgstr "ਅਣਲਾਕ ਲਈ ਛੂਹੋ"
276
278
@@ -491,8 +493,8 @@ msgid "Hi!"
491msgstr "ਹੈਲੋ!"
493msgstr "ਹੈਲੋ!"
492
494
493#: qml/Wizard/Pages/10-welcome.qml:44
495#: qml/Wizard/Pages/10-welcome.qml:44
494−msgid "Welcome to your Ubuntu phone."
496+msgid "Welcome to your Ubuntu device."
495−msgstr "ਉਬੰਤੂ ਫ਼ੋਨ ਵਿੱਚ ਤੁਹਾਨੂੰ ਜੀ ਆਇਆ ਨੂੰ।"
497+msgstr ""
496
498
497#: qml/Wizard/Pages/10-welcome.qml:52
499#: qml/Wizard/Pages/10-welcome.qml:52
498msgid "Let’s get started."
500msgid "Let’s get started."
@@ -522,9 +524,8 @@ msgid "Lock security"
522msgstr "ਲਾਕ ਸੁਰੱਖਿਆ"
524msgstr "ਲਾਕ ਸੁਰੱਖਿਆ"
523
525
524#: qml/Wizard/Pages/30-passwd-type.qml:79
526#: qml/Wizard/Pages/30-passwd-type.qml:79
525−msgid "Please select how you’d like to unlock your phone."
527+msgid "Please select how you’d like to unlock your device."
526msgstr ""
528msgstr ""
527−"ਕਿਰਪਾ ਕਰਕੇ ਚੁਣੋ ਤੁਸੀਂ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਕਿਸ ਤਰ੍ਹਾਂ ਅਣ-ਲਾਕ ਕਰਨਾ ਪਸੰਦ ਕਰੋਗੇ।"
528
529
529#: qml/Wizard/Pages/30-passwd-type.qml:102
530#: qml/Wizard/Pages/30-passwd-type.qml:102
530msgctxt "Label: Type of security method"
531msgctxt "Label: Type of security method"
@@ -630,8 +631,8 @@ msgid "Nice work!"
630msgstr "ਚੰਗਾ ਕੰਮ!"
631msgstr "ਚੰਗਾ ਕੰਮ!"
631
632
632#: qml/Wizard/Pages/80-finished.qml:46
633#: qml/Wizard/Pages/80-finished.qml:46
633−msgid "Your phone is now ready to use."
634+msgid "Your device is now ready to use."
634−msgstr "ਤੁਹਾਡਾ ਫ਼ੋਨ ਹੁਣ ਵਰਤੋਂ ਲਈ ਤਿਆਰ ਹੈ।"
635+msgstr ""
635
636
636#: qml/Wizard/Pages/80-finished.qml:53
637#: qml/Wizard/Pages/80-finished.qml:53
637msgid "Finish"
638msgid "Finish"
@@ -712,3 +713,13 @@ msgstr "%1 〉"
712
713
713#~ msgid "Please re-enter"
714#~ msgid "Please re-enter"
714#~ msgstr "ਕਿਰਪਾ ਕਰਕੇ ਮੁੜ-ਦਰਜ ਕਰੋ"
715#~ msgstr "ਕਿਰਪਾ ਕਰਕੇ ਮੁੜ-ਦਰਜ ਕਰੋ"
716+
717+#~ msgid "Please select how you’d like to unlock your phone."
718+#~ msgstr ""
719+#~ "ਕਿਰਪਾ ਕਰਕੇ ਚੁਣੋ ਤੁਸੀਂ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਕਿਸ ਤਰ੍ਹਾਂ ਅਣ-ਲਾਕ ਕਰਨਾ ਪਸੰਦ ਕਰੋਗੇ।"
720+
721+#~ msgid "Welcome to your Ubuntu phone."
722+#~ msgstr "ਉਬੰਤੂ ਫ਼ੋਨ ਵਿੱਚ ਤੁਹਾਨੂੰ ਜੀ ਆਇਆ ਨੂੰ।"
723+
724+#~ msgid "Your phone is now ready to use."
725+#~ msgstr "ਤੁਹਾਡਾ ਫ਼ੋਨ ਹੁਣ ਵਰਤੋਂ ਲਈ ਤਿਆਰ ਹੈ।"
po/pl.po+30−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-12 09:46+0000\n"
11"PO-Revision-Date: 2015-07-12 09:46+0000\n"
12"Last-Translator: Seweryn Opyd <Unknown>\n"
12"Last-Translator: Seweryn Opyd <Unknown>\n"
13"Language-Team: Polish <pl@li.org>\n"
13"Language-Team: Polish <pl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
18"|| n%100>=20) ? 1 : 2;\n"
18"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -198,15 +198,15 @@ msgstr "Usuń z ulubionych"
198msgid "Add to Favorites"
198msgid "Add to Favorites"
199msgstr "Dodaj do ulubionych"
199msgstr "Dodaj do ulubionych"
200
200
201−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
201+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
202msgid "See less"
202msgid "See less"
203msgstr "Zobacz mniej"
203msgstr "Zobacz mniej"
204
204
205−#: qml/Dash/GenericScopeView.qml:576
205+#: qml/Dash/GenericScopeView.qml:587
206msgid "See all"
206msgid "See all"
207msgstr "Zobacz wszystko"
207msgstr "Zobacz wszystko"
208
208
209−#: qml/Dash/GenericScopeView.qml:638
209+#: qml/Dash/GenericScopeView.qml:649
210msgctxt "Label: Hint for dash search line edit"
210msgctxt "Label: Hint for dash search line edit"
211msgid "Search"
211msgid "Search"
212msgstr "Szukaj"
212msgstr "Szukaj"
@@ -260,19 +260,23 @@ msgstr "Pulpit"
260msgid "Also installed"
260msgid "Also installed"
261msgstr "Również zainstalowane"
261msgstr "Również zainstalowane"
262
262
263−#: qml/DisabledScreenNotice.qml:42
263+#: qml/DisabledScreenNotice.qml:87
264+msgid ""
264−msgid "Your device is now connected to an external display."
265+"Your device is now connected to an external display. Use this screen as a "
265−msgstr "Twoje urządzenie jest teraz połączone z zewnętrznym ekranem."
266+"touch pad to interact with the mouse."
267+msgstr ""
268+"Twoje urządzenie jest teraz podłączone do zewnętrznego wyświetlacza. Użyj "
269+"tego ekranu jako panelu dotykowego do interakcji z myszą."
266
270
267#: qml/Greeter/CoverPage.qml:107
271#: qml/Greeter/CoverPage.qml:107
268msgid "Unlock"
272msgid "Unlock"
269msgstr "Odblokuj"
273msgstr "Odblokuj"
270
274
271−#: qml/Greeter/LoginList.qml:236
275+#: qml/Greeter/LoginList.qml:239
272msgid "Retry"
276msgid "Retry"
273msgstr "Ponów"
277msgstr "Ponów"
274
278
275−#: qml/Greeter/LoginList.qml:237
279+#: qml/Greeter/LoginList.qml:240
276msgid "Tap to unlock"
280msgid "Tap to unlock"
277msgstr "Dotknij, by odblokować"
281msgstr "Dotknij, by odblokować"
278
282
@@ -496,8 +500,8 @@ msgid "Hi!"
496msgstr "Witaj!"
500msgstr "Witaj!"
497
501
498#: qml/Wizard/Pages/10-welcome.qml:44
502#: qml/Wizard/Pages/10-welcome.qml:44
499−msgid "Welcome to your Ubuntu phone."
503+msgid "Welcome to your Ubuntu device."
500−msgstr "Witamy w telefonie z systemem Ubuntu."
504+msgstr "Witaj w swoim urządzeniu Ubuntu."
501
505
502#: qml/Wizard/Pages/10-welcome.qml:52
506#: qml/Wizard/Pages/10-welcome.qml:52
503msgid "Let’s get started."
507msgid "Let’s get started."
@@ -528,8 +532,8 @@ msgid "Lock security"
528msgstr "Blokada"
532msgstr "Blokada"
529
533
530#: qml/Wizard/Pages/30-passwd-type.qml:79
534#: qml/Wizard/Pages/30-passwd-type.qml:79
531−msgid "Please select how you’d like to unlock your phone."
535+msgid "Please select how you’d like to unlock your device."
532−msgstr "Wybierz proszę jak ma być odblokowywane to urządzenie"
536+msgstr "Prosimy wybrać sposób, w jaki chcesz odblokować swoje urządzenie."
533
537
534#: qml/Wizard/Pages/30-passwd-type.qml:102
538#: qml/Wizard/Pages/30-passwd-type.qml:102
535msgctxt "Label: Type of security method"
539msgctxt "Label: Type of security method"
@@ -635,8 +639,8 @@ msgid "Nice work!"
635msgstr "Dobra robota!"
639msgstr "Dobra robota!"
636
640
637#: qml/Wizard/Pages/80-finished.qml:46
641#: qml/Wizard/Pages/80-finished.qml:46
638−msgid "Your phone is now ready to use."
642+msgid "Your device is now ready to use."
639−msgstr "Twoje urządzenie jest gotowe do pracy"
643+msgstr "Twoje urządzenie jest już gotowe do użytku."
640
644
641#: qml/Wizard/Pages/80-finished.qml:53
645#: qml/Wizard/Pages/80-finished.qml:53
642msgid "Finish"
646msgid "Finish"
@@ -763,6 +767,15 @@ msgstr "%1 〉"
763#~ msgid "Please re-enter"
767#~ msgid "Please re-enter"
764#~ msgstr "Proszę wprowadź ponownie"
768#~ msgstr "Proszę wprowadź ponownie"
765
769
770+#~ msgid "Welcome to your Ubuntu phone."
771+#~ msgstr "Witamy w telefonie z systemem Ubuntu."
772+
773+#~ msgid "Your phone is now ready to use."
774+#~ msgstr "Twoje urządzenie jest gotowe do pracy"
775+
776+#~ msgid "Please select how you’d like to unlock your phone."
777+#~ msgstr "Wybierz proszę jak ma być odblokowywane to urządzenie"
778+
766#~ msgid "%a %H:%M"
779#~ msgid "%a %H:%M"
767#~ msgstr "%a %H:%M"
780#~ msgstr "%a %H:%M"
768
781
po/pt.po+32−19
@@ -7,16 +7,16 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11−"PO-Revision-Date: 2015-12-20 09:20+0000\n"
11+"PO-Revision-Date: 2016-02-18 01:11+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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -143,7 +143,7 @@ msgstr "Reiniciar"
143
143
144#: qml/Components/Lockscreen.qml:245
144#: qml/Components/Lockscreen.qml:245
145msgid "Return to Call"
145msgid "Return to Call"
146−msgstr "Volte para chamada"
146+msgstr "Volte para a chamada"
147
147
148#: qml/Components/Lockscreen.qml:245
148#: qml/Components/Lockscreen.qml:245
149msgid "Emergency Call"
149msgid "Emergency Call"
@@ -200,15 +200,15 @@ msgstr "Remover dos favoritos"
200msgid "Add to Favorites"
200msgid "Add to Favorites"
201msgstr "Adicionar aos favoritos"
201msgstr "Adicionar aos favoritos"
202
202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204msgid "See less"
204msgid "See less"
205msgstr "Ver menos"
205msgstr "Ver menos"
206
206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208msgid "See all"
208msgid "See all"
209msgstr "Ver todos"
209msgstr "Ver todos"
210
210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212msgctxt "Label: Hint for dash search line edit"
212msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
213msgid "Search"
214msgstr "Procurar"
214msgstr "Procurar"
@@ -262,19 +262,23 @@ msgstr "Página inicial"
262msgid "Also installed"
262msgid "Also installed"
263msgstr "Também instalado"
263msgstr "Também instalado"
264
264
265−#: qml/DisabledScreenNotice.qml:42
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
266−msgid "Your device is now connected to an external display."
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
269+msgstr ""
267−msgstr "O seu dispositivo está agora ligado a um monitor externo"
270+"O dispositivo está ligado a um ecrã externo. Utilize o ecrã como touchpad "
271+"para manipular o ponteiro do rato."
268
272
269#: qml/Greeter/CoverPage.qml:107
273#: qml/Greeter/CoverPage.qml:107
270msgid "Unlock"
274msgid "Unlock"
271msgstr "Desbloquear"
275msgstr "Desbloquear"
272
276
273−#: qml/Greeter/LoginList.qml:236
277+#: qml/Greeter/LoginList.qml:239
274msgid "Retry"
278msgid "Retry"
275msgstr "Tentar novamente"
279msgstr "Tentar novamente"
276
280
277−#: qml/Greeter/LoginList.qml:237
281+#: qml/Greeter/LoginList.qml:240
278msgid "Tap to unlock"
282msgid "Tap to unlock"
279msgstr "Toque para desbloquear"
283msgstr "Toque para desbloquear"
280
284
@@ -343,7 +347,7 @@ msgstr "Mostrar palavra-passe"
343
347
344#: qml/Panel/ActiveCallHint.qml:79
348#: qml/Panel/ActiveCallHint.qml:79
345msgid "Tap to return to call..."
349msgid "Tap to return to call..."
346−msgstr "Toque para voltar a chamar..."
350+msgstr "Toque para voltar à chamada..."
347
351
348#: qml/Panel/ActiveCallHint.qml:92
352#: qml/Panel/ActiveCallHint.qml:92
349msgid "Conference"
353msgid "Conference"
@@ -495,8 +499,8 @@ msgid "Hi!"
495msgstr "Olá!"
499msgstr "Olá!"
496
500
497#: qml/Wizard/Pages/10-welcome.qml:44
501#: qml/Wizard/Pages/10-welcome.qml:44
498−msgid "Welcome to your Ubuntu phone."
502+msgid "Welcome to your Ubuntu device."
499−msgstr "Bem-vindo ao seu telemóvel Ubuntu."
503+msgstr "Bem-vindo ao seu dispositivo Ubuntu."
500
504
501#: qml/Wizard/Pages/10-welcome.qml:52
505#: qml/Wizard/Pages/10-welcome.qml:52
502msgid "Let’s get started."
506msgid "Let’s get started."
@@ -527,8 +531,8 @@ msgid "Lock security"
527msgstr "Bloqueio de segurança"
531msgstr "Bloqueio de segurança"
528
532
529#: qml/Wizard/Pages/30-passwd-type.qml:79
533#: qml/Wizard/Pages/30-passwd-type.qml:79
530−msgid "Please select how you’d like to unlock your phone."
534+msgid "Please select how you’d like to unlock your device."
531−msgstr "Por favor, escolha como pretende desbloquear o seu telemóvel."
535+msgstr "Escolha como quer desbloquear o seu dispositivo."
532
536
533#: qml/Wizard/Pages/30-passwd-type.qml:102
537#: qml/Wizard/Pages/30-passwd-type.qml:102
534msgctxt "Label: Type of security method"
538msgctxt "Label: Type of security method"
@@ -634,7 +638,7 @@ msgid "Nice work!"
634msgstr "Bom trabalho!"
638msgstr "Bom trabalho!"
635
639
636#: qml/Wizard/Pages/80-finished.qml:46
640#: qml/Wizard/Pages/80-finished.qml:46
637−msgid "Your phone is now ready to use."
641+msgid "Your device is now ready to use."
638msgstr "O seu dispositivo está pronto."
642msgstr "O seu dispositivo está pronto."
639
643
640#: qml/Wizard/Pages/80-finished.qml:53
644#: qml/Wizard/Pages/80-finished.qml:53
@@ -753,6 +757,12 @@ msgstr "%1 〉"
753#~ msgid "Try swiping from the right edge to unlock the phone"
757#~ msgid "Try swiping from the right edge to unlock the phone"
754#~ msgstr "Tente deslizar da margem direita para desbloquear o telemóvel"
758#~ msgstr "Tente deslizar da margem direita para desbloquear o telemóvel"
755
759
760+#~ msgid "Please select how you’d like to unlock your phone."
761+#~ msgstr "Por favor, escolha como pretende desbloquear o seu telemóvel."
762+
763+#~ msgid "Welcome to your Ubuntu phone."
764+#~ msgstr "Bem-vindo ao seu telemóvel Ubuntu."
765+
756#~ msgid "Store"
766#~ msgid "Store"
757#~ msgstr "Store"
767#~ msgstr "Store"
758
768
@@ -792,6 +802,9 @@ msgstr "%1 〉"
792#~ msgid "Call back"
802#~ msgid "Call back"
793#~ msgstr "Ligar de volta"
803#~ msgstr "Ligar de volta"
794
804
805+#~ msgid "Your phone is now ready to use."
806+#~ msgstr "O seu dispositivo está pronto."
807+
795#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
808#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
796#~ msgstr ""
809#~ msgstr ""
797#~ "Deslize da margem esquerda para mostrar o Launcher de acesso rápido às apps"
810#~ "Deslize da margem esquerda para mostrar o Launcher de acesso rápido às apps"
po/pt_BR.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-08-05 04:40+0000\n"
11"PO-Revision-Date: 2015-08-05 04:40+0000\n"
12"Last-Translator: Julio Alexander Sieg <julio.sieg@gmail.com>\n"
12"Last-Translator: Julio Alexander Sieg <julio.sieg@gmail.com>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -198,15 +198,15 @@ msgstr "Remover dos favoritos"
198msgid "Add to Favorites"
198msgid "Add to Favorites"
199msgstr "Adicionar aos favoritos"
199msgstr "Adicionar aos favoritos"
200
200
201−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
201+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
202msgid "See less"
202msgid "See less"
203msgstr "Ver menos"
203msgstr "Ver menos"
204
204
205−#: qml/Dash/GenericScopeView.qml:576
205+#: qml/Dash/GenericScopeView.qml:587
206msgid "See all"
206msgid "See all"
207msgstr "Ver todos"
207msgstr "Ver todos"
208
208
209−#: qml/Dash/GenericScopeView.qml:638
209+#: qml/Dash/GenericScopeView.qml:649
210msgctxt "Label: Hint for dash search line edit"
210msgctxt "Label: Hint for dash search line edit"
211msgid "Search"
211msgid "Search"
212msgstr "Pesquisar"
212msgstr "Pesquisar"
@@ -260,19 +260,21 @@ msgstr "Início"
260msgid "Also installed"
260msgid "Also installed"
261msgstr "Instalado também"
261msgstr "Instalado também"
262
262
263−#: qml/DisabledScreenNotice.qml:42
263+#: qml/DisabledScreenNotice.qml:87
264+msgid ""
264−msgid "Your device is now connected to an external display."
265+"Your device is now connected to an external display. Use this screen as a "
266+"touch pad to interact with the mouse."
265msgstr ""
267msgstr ""
266
268
267#: qml/Greeter/CoverPage.qml:107
269#: qml/Greeter/CoverPage.qml:107
268msgid "Unlock"
270msgid "Unlock"
269msgstr "Desbloquear"
271msgstr "Desbloquear"
270
272
271−#: qml/Greeter/LoginList.qml:236
273+#: qml/Greeter/LoginList.qml:239
272msgid "Retry"
274msgid "Retry"
273msgstr "Repetir"
275msgstr "Repetir"
274
276
275−#: qml/Greeter/LoginList.qml:237
277+#: qml/Greeter/LoginList.qml:240
276msgid "Tap to unlock"
278msgid "Tap to unlock"
277msgstr "Toque para desbloquear"
279msgstr "Toque para desbloquear"
278
280
@@ -493,8 +495,8 @@ msgid "Hi!"
493msgstr "Olá!"
495msgstr "Olá!"
494
496
495#: qml/Wizard/Pages/10-welcome.qml:44
497#: qml/Wizard/Pages/10-welcome.qml:44
496−msgid "Welcome to your Ubuntu phone."
498+msgid "Welcome to your Ubuntu device."
497−msgstr "Bem-vindo ao seu Ubuntu phone."
499+msgstr ""
498
500
499#: qml/Wizard/Pages/10-welcome.qml:52
501#: qml/Wizard/Pages/10-welcome.qml:52
500msgid "Let’s get started."
502msgid "Let’s get started."
@@ -525,8 +527,8 @@ msgid "Lock security"
525msgstr "Trava de segurança"
527msgstr "Trava de segurança"
526
528
527#: qml/Wizard/Pages/30-passwd-type.qml:79
529#: qml/Wizard/Pages/30-passwd-type.qml:79
528−msgid "Please select how you’d like to unlock your phone."
530+msgid "Please select how you’d like to unlock your device."
529−msgstr "Por favor, selecione como você gostaria de desbloquear seu telefone."
531+msgstr ""
530
532
531#: qml/Wizard/Pages/30-passwd-type.qml:102
533#: qml/Wizard/Pages/30-passwd-type.qml:102
532msgctxt "Label: Type of security method"
534msgctxt "Label: Type of security method"
@@ -634,8 +636,8 @@ msgid "Nice work!"
634msgstr "Bom trabalho!"
636msgstr "Bom trabalho!"
635
637
636#: qml/Wizard/Pages/80-finished.qml:46
638#: qml/Wizard/Pages/80-finished.qml:46
637−msgid "Your phone is now ready to use."
639+msgid "Your device is now ready to use."
638−msgstr "O seu telefone está pronto para uso."
640+msgstr ""
639
641
640#: qml/Wizard/Pages/80-finished.qml:53
642#: qml/Wizard/Pages/80-finished.qml:53
641msgid "Finish"
643msgid "Finish"
@@ -773,3 +775,12 @@ msgstr "%1 〉"
773
775
774#~ msgid "Please re-enter"
776#~ msgid "Please re-enter"
775#~ msgstr "Por favor, digite novamente"
777#~ msgstr "Por favor, digite novamente"
778+
779+#~ msgid "Welcome to your Ubuntu phone."
780+#~ msgstr "Bem-vindo ao seu Ubuntu phone."
781+
782+#~ msgid "Please select how you’d like to unlock your phone."
783+#~ msgstr "Por favor, selecione como você gostaria de desbloquear seu telefone."
784+
785+#~ msgid "Your phone is now ready to use."
786+#~ msgstr "O seu telefone está pronto para uso."
po/ro.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-06 17:47+0000\n"
11"PO-Revision-Date: 2015-07-06 17:47+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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
18"== 0) && (n != 0))) ? 2: 1));\n"
18"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -201,15 +201,15 @@ msgstr "Șterge din favorite"
201msgid "Add to Favorites"
201msgid "Add to Favorites"
202msgstr "Adaugă la favorite"
202msgstr "Adaugă la favorite"
203
203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205msgid "See less"
205msgid "See less"
206msgstr "Afișează mai puține"
206msgstr "Afișează mai puține"
207
207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209msgid "See all"
209msgid "See all"
210msgstr "Afișează tot"
210msgstr "Afișează tot"
211
211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213msgctxt "Label: Hint for dash search line edit"
213msgctxt "Label: Hint for dash search line edit"
214msgid "Search"
214msgid "Search"
215msgstr "Căutare"
215msgstr "Căutare"
@@ -263,19 +263,21 @@ msgstr "Acasă"
263msgid "Also installed"
263msgid "Also installed"
264msgstr "Alte programe instalate"
264msgstr "Alte programe instalate"
265
265
266−#: qml/DisabledScreenNotice.qml:42
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
267−msgid "Your device is now connected to an external display."
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
268msgstr ""
270msgstr ""
269
271
270#: qml/Greeter/CoverPage.qml:107
272#: qml/Greeter/CoverPage.qml:107
271msgid "Unlock"
273msgid "Unlock"
272msgstr "Deblocare"
274msgstr "Deblocare"
273
275
274−#: qml/Greeter/LoginList.qml:236
276+#: qml/Greeter/LoginList.qml:239
275msgid "Retry"
277msgid "Retry"
276msgstr "Reîncercați"
278msgstr "Reîncercați"
277
279
278−#: qml/Greeter/LoginList.qml:237
280+#: qml/Greeter/LoginList.qml:240
279msgid "Tap to unlock"
281msgid "Tap to unlock"
280msgstr "Apasă pentru deblocare"
282msgstr "Apasă pentru deblocare"
281
283
@@ -501,8 +503,8 @@ msgid "Hi!"
501msgstr "Salut!"
503msgstr "Salut!"
502
504
503#: qml/Wizard/Pages/10-welcome.qml:44
505#: qml/Wizard/Pages/10-welcome.qml:44
504−msgid "Welcome to your Ubuntu phone."
506+msgid "Welcome to your Ubuntu device."
505−msgstr "Bun venit! Acesta este telefonul dumneavoastră Ubuntu."
507+msgstr ""
506
508
507#: qml/Wizard/Pages/10-welcome.qml:52
509#: qml/Wizard/Pages/10-welcome.qml:52
508msgid "Let’s get started."
510msgid "Let’s get started."
@@ -533,8 +535,8 @@ msgid "Lock security"
533msgstr "Blocare de securitate"
535msgstr "Blocare de securitate"
534
536
535#: qml/Wizard/Pages/30-passwd-type.qml:79
537#: qml/Wizard/Pages/30-passwd-type.qml:79
536−msgid "Please select how you’d like to unlock your phone."
538+msgid "Please select how you’d like to unlock your device."
537−msgstr "Alegeți cum doriți să vă deblocați telefonul."
539+msgstr ""
538
540
539#: qml/Wizard/Pages/30-passwd-type.qml:102
541#: qml/Wizard/Pages/30-passwd-type.qml:102
540msgctxt "Label: Type of security method"
542msgctxt "Label: Type of security method"
@@ -644,8 +646,8 @@ msgid "Nice work!"
644msgstr "Bună treabă!"
646msgstr "Bună treabă!"
645
647
646#: qml/Wizard/Pages/80-finished.qml:46
648#: qml/Wizard/Pages/80-finished.qml:46
647−msgid "Your phone is now ready to use."
649+msgid "Your device is now ready to use."
648−msgstr "Telefonul dumneavoastră este gata de utilizare."
650+msgstr ""
649
651
650#: qml/Wizard/Pages/80-finished.qml:53
652#: qml/Wizard/Pages/80-finished.qml:53
651msgid "Finish"
653msgid "Finish"
@@ -785,6 +787,15 @@ msgstr "%1 〉"
785#~ msgid "Please re-enter"
787#~ msgid "Please re-enter"
786#~ msgstr "Introduceți din nou"
788#~ msgstr "Introduceți din nou"
787
789
790+#~ msgid "Welcome to your Ubuntu phone."
791+#~ msgstr "Bun venit! Acesta este telefonul dumneavoastră Ubuntu."
792+
793+#~ msgid "Please select how you’d like to unlock your phone."
794+#~ msgstr "Alegeți cum doriți să vă deblocați telefonul."
795+
796+#~ msgid "Your phone is now ready to use."
797+#~ msgstr "Telefonul dumneavoastră este gata de utilizare."
798+
788#~ msgid "%a %d %b %H:%M"
799#~ msgid "%a %d %b %H:%M"
789#~ msgstr "%a %d %b %H:%M"
800#~ msgstr "%a %d %b %H:%M"
790
801
po/ru.po+28−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-06 05:33+0000\n"
11"PO-Revision-Date: 2015-07-06 05:33+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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -202,15 +202,15 @@ msgstr "Удалить из избранного"
202msgid "Add to Favorites"
202msgid "Add to Favorites"
203msgstr "Добавить в избранное"
203msgstr "Добавить в избранное"
204
204
205−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
206msgid "See less"
206msgid "See less"
207msgstr "Вкратце"
207msgstr "Вкратце"
208
208
209−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
210msgid "See all"
210msgid "See all"
211msgstr "Показать всё"
211msgstr "Показать всё"
212
212
213−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
214msgctxt "Label: Hint for dash search line edit"
214msgctxt "Label: Hint for dash search line edit"
215msgid "Search"
215msgid "Search"
216msgstr "Поиск"
216msgstr "Поиск"
@@ -264,19 +264,21 @@ msgstr "Домой"
264msgid "Also installed"
264msgid "Also installed"
265msgstr "Также установлено"
265msgstr "Также установлено"
266
266
267−#: qml/DisabledScreenNotice.qml:42
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
268−msgid "Your device is now connected to an external display."
269+"Your device is now connected to an external display. Use this screen as a "
269−msgstr "Устройство подключено к внешнему дисплею."
270+"touch pad to interact with the mouse."
271+msgstr ""
270
272
271#: qml/Greeter/CoverPage.qml:107
273#: qml/Greeter/CoverPage.qml:107
272msgid "Unlock"
274msgid "Unlock"
273msgstr "Разблокировать"
275msgstr "Разблокировать"
274
276
275−#: qml/Greeter/LoginList.qml:236
277+#: qml/Greeter/LoginList.qml:239
276msgid "Retry"
278msgid "Retry"
277msgstr "Повторить"
279msgstr "Повторить"
278
280
279−#: qml/Greeter/LoginList.qml:237
281+#: qml/Greeter/LoginList.qml:240
280msgid "Tap to unlock"
282msgid "Tap to unlock"
281msgstr "Нажмите для разблокировки"
283msgstr "Нажмите для разблокировки"
282
284
@@ -500,8 +502,8 @@ msgid "Hi!"
500msgstr "Привет!"
502msgstr "Привет!"
501
503
502#: qml/Wizard/Pages/10-welcome.qml:44
504#: qml/Wizard/Pages/10-welcome.qml:44
503−msgid "Welcome to your Ubuntu phone."
505+msgid "Welcome to your Ubuntu device."
504−msgstr "Рады представить вам Ubuntu для телефона."
506+msgstr ""
505
507
506#: qml/Wizard/Pages/10-welcome.qml:52
508#: qml/Wizard/Pages/10-welcome.qml:52
507msgid "Let’s get started."
509msgid "Let’s get started."
@@ -532,8 +534,8 @@ msgid "Lock security"
532msgstr "Настройка блокировки"
534msgstr "Настройка блокировки"
533
535
534#: qml/Wizard/Pages/30-passwd-type.qml:79
536#: qml/Wizard/Pages/30-passwd-type.qml:79
535−msgid "Please select how you’d like to unlock your phone."
537+msgid "Please select how you’d like to unlock your device."
536−msgstr "Выберите способ разблокировки телефона."
538+msgstr ""
537
539
538#: qml/Wizard/Pages/30-passwd-type.qml:102
540#: qml/Wizard/Pages/30-passwd-type.qml:102
539msgctxt "Label: Type of security method"
541msgctxt "Label: Type of security method"
@@ -641,8 +643,8 @@ msgid "Nice work!"
641msgstr "Отличная работа!"
643msgstr "Отличная работа!"
642
644
643#: qml/Wizard/Pages/80-finished.qml:46
645#: qml/Wizard/Pages/80-finished.qml:46
644−msgid "Your phone is now ready to use."
646+msgid "Your device is now ready to use."
645−msgstr "Теперь телефон готов к использованию."
647+msgstr ""
646
648
647#: qml/Wizard/Pages/80-finished.qml:53
649#: qml/Wizard/Pages/80-finished.qml:53
648msgid "Finish"
650msgid "Finish"
@@ -784,6 +786,15 @@ msgstr "%1 〉"
784#~ msgid "Manage Scopes"
786#~ msgid "Manage Scopes"
785#~ msgstr "Настройки поиска"
787#~ msgstr "Настройки поиска"
786
788
789+#~ msgid "Welcome to your Ubuntu phone."
790+#~ msgstr "Рады представить вам Ubuntu для телефона."
791+
792+#~ msgid "Please select how you’d like to unlock your phone."
793+#~ msgstr "Выберите способ разблокировки телефона."
794+
795+#~ msgid "Your phone is now ready to use."
796+#~ msgstr "Теперь телефон готов к использованию."
797+
787#~ msgid "%a %d %b %H:%M"
798#~ msgid "%a %d %b %H:%M"
788#~ msgstr "%a %d %b %H:%M"
799#~ msgstr "%a %d %b %H:%M"
789
800
po/shn.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-11-10 12:09+0000\n"
11"PO-Revision-Date: 2015-11-10 12:09+0000\n"
12"Last-Translator: Rockworld <sumoisrock@gmail.com>\n"
12"Last-Translator: Rockworld <sumoisrock@gmail.com>\n"
13"Language-Team: Shan <shn@li.org>\n"
13"Language-Team: Shan <shn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n"
17"Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/si.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -196,15 +196,15 @@ msgstr ""
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr ""
197msgstr ""
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr ""
201msgstr ""
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr ""
205msgstr ""
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr ""
210msgstr ""
@@ -258,19 +258,21 @@ msgstr ""
258msgid "Also installed"
258msgid "Also installed"
259msgstr ""
259msgstr ""
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263msgstr ""
265msgstr ""
264
266
265#: qml/Greeter/CoverPage.qml:107
267#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
268msgid "Unlock"
267msgstr ""
269msgstr ""
268
270
269−#: qml/Greeter/LoginList.qml:236
271+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
272msgid "Retry"
271msgstr ""
273msgstr ""
272
274
273−#: qml/Greeter/LoginList.qml:237
275+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
276msgid "Tap to unlock"
275msgstr ""
277msgstr ""
276
278
@@ -487,7 +489,7 @@ msgid "Hi!"
487msgstr ""
489msgstr ""
488
490
489#: qml/Wizard/Pages/10-welcome.qml:44
491#: qml/Wizard/Pages/10-welcome.qml:44
490−msgid "Welcome to your Ubuntu phone."
492+msgid "Welcome to your Ubuntu device."
491msgstr ""
493msgstr ""
492
494
493#: qml/Wizard/Pages/10-welcome.qml:52
495#: qml/Wizard/Pages/10-welcome.qml:52
@@ -518,7 +520,7 @@ msgid "Lock security"
518msgstr ""
520msgstr ""
519
521
520#: qml/Wizard/Pages/30-passwd-type.qml:79
522#: qml/Wizard/Pages/30-passwd-type.qml:79
521−msgid "Please select how you’d like to unlock your phone."
523+msgid "Please select how you’d like to unlock your device."
522msgstr ""
524msgstr ""
523
525
524#: qml/Wizard/Pages/30-passwd-type.qml:102
526#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -619,7 +621,7 @@ msgid "Nice work!"
619msgstr ""
621msgstr ""
620
622
621#: qml/Wizard/Pages/80-finished.qml:46
623#: qml/Wizard/Pages/80-finished.qml:46
622−msgid "Your phone is now ready to use."
624+msgid "Your device is now ready to use."
623msgstr ""
625msgstr ""
624
626
625#: qml/Wizard/Pages/80-finished.qml:53
627#: qml/Wizard/Pages/80-finished.qml:53
po/sk.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-04-10 09:15+0000\n"
11"PO-Revision-Date: 2015-04-10 09:15+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Slovak <sk@li.org>\n"
13"Language-Team: Slovak <sk@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/sl.po+74−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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11−"PO-Revision-Date: 2015-07-06 21:10+0000\n"
11+"PO-Revision-Date: 2016-01-31 18:34+0000\n"
12−"Last-Translator: Sasa Batistic <Unknown>\n"
12+"Last-Translator: Bernard Banko <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"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
17"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
18"n%100==4 ? 3 : 0);\n"
18"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -30,7 +30,7 @@ msgstr "Pripni bližnjico"
30
30
31#: plugins/Unity/Launcher/launcheritem.cpp:52
31#: plugins/Unity/Launcher/launcheritem.cpp:52
32msgid "Quit"
32msgid "Quit"
33−msgstr ""
33+msgstr "Končaj"
34
34
35#: plugins/Unity/Launcher/launcheritem.cpp:106
35#: plugins/Unity/Launcher/launcheritem.cpp:106
36msgid "Unpin shortcut"
36msgid "Unpin shortcut"
@@ -150,31 +150,33 @@ msgstr "Klic v sili"
150
150
151#: qml/Components/Lockscreen.qml:277
151#: qml/Components/Lockscreen.qml:277
152msgid "OK"
152msgid "OK"
153−msgstr "V REDU"
153+msgstr "V redu"
154
154
155#: qml/Components/ModeSwitchWarningDialog.qml:32
155#: qml/Components/ModeSwitchWarningDialog.qml:32
156msgid "Apps may have unsaved data:"
156msgid "Apps may have unsaved data:"
157−msgstr ""
157+msgstr "Programi morda niso shranili podatkov:"
158
158
159#: qml/Components/ModeSwitchWarningDialog.qml:57
159#: qml/Components/ModeSwitchWarningDialog.qml:57
160msgid "Re-dock, save your work and close these apps to continue."
160msgid "Re-dock, save your work and close these apps to continue."
161msgstr ""
161msgstr ""
162+"Za nadaljevanje ponovno usidrajte, shranite svoje delo in zaprite te "
163+"programe."
162
164
163#: qml/Components/ModeSwitchWarningDialog.qml:63
165#: qml/Components/ModeSwitchWarningDialog.qml:63
164msgid "Or force close now (unsaved data will be lost)."
166msgid "Or force close now (unsaved data will be lost)."
165−msgstr ""
167+msgstr "Prisilno zapri sedaj (neshranjeni podatki bodo izgubljeni)."
166
168
167#: qml/Components/ModeSwitchWarningDialog.qml:75
169#: qml/Components/ModeSwitchWarningDialog.qml:75
168msgid "OK, I will reconnect"
170msgid "OK, I will reconnect"
169−msgstr ""
171+msgstr "V redu, bom ponovno priključil"
170
172
171#: qml/Components/ModeSwitchWarningDialog.qml:76
173#: qml/Components/ModeSwitchWarningDialog.qml:76
172msgid "Reconnect now!"
174msgid "Reconnect now!"
173−msgstr ""
175+msgstr "Ponovno priključi sedaj!"
174
176
175#: qml/Components/ModeSwitchWarningDialog.qml:88
177#: qml/Components/ModeSwitchWarningDialog.qml:88
176msgid "Close all"
178msgid "Close all"
177−msgstr ""
179+msgstr "Zapri vse"
178
180
179#: qml/Dash/DashPageHeader.qml:266
181#: qml/Dash/DashPageHeader.qml:266
180msgctxt "Button: Open the Ubuntu Store"
182msgctxt "Button: Open the Ubuntu Store"
@@ -199,15 +201,15 @@ msgstr "Odstrani iz priljubljenih"
199msgid "Add to Favorites"
201msgid "Add to Favorites"
200msgstr "Dodaj med priljubljene"
202msgstr "Dodaj med priljubljene"
201
203
202−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
203msgid "See less"
205msgid "See less"
204msgstr "Pokaži manj"
206msgstr "Pokaži manj"
205
207
206−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
207msgid "See all"
209msgid "See all"
208msgstr "Pokaži vse"
210msgstr "Pokaži vse"
209
211
210−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
211msgctxt "Label: Hint for dash search line edit"
213msgctxt "Label: Hint for dash search line edit"
212msgid "Search"
214msgid "Search"
213msgstr "Iskanje"
215msgstr "Iskanje"
@@ -235,7 +237,7 @@ msgstr "Dodaj oceno"
235
237
236#: qml/Dash/Previews/PreviewSharing.qml:50
238#: qml/Dash/Previews/PreviewSharing.qml:50
237msgid "Preview Share Item"
239msgid "Preview Share Item"
238−msgstr ""
240+msgstr "Preglej deljeno"
239
241
240#: qml/Dash/PullToRefreshScopeStyle.qml:55
242#: qml/Dash/PullToRefreshScopeStyle.qml:55
241msgid "Pull to refresh…"
243msgid "Pull to refresh…"
@@ -261,19 +263,23 @@ msgstr "Domov"
261msgid "Also installed"
263msgid "Also installed"
262msgstr "Tudi nameščeno"
264msgstr "Tudi nameščeno"
263
265
264−#: qml/DisabledScreenNotice.qml:42
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
265−msgid "Your device is now connected to an external display."
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
266msgstr ""
270msgstr ""
271+"Vaša naprava je sedaj priključena na zunanji zaslon. Ta zaslon pa lahko "
272+"uporabite kot sledilno ploščico za nadzor kazalke."
267
273
268#: qml/Greeter/CoverPage.qml:107
274#: qml/Greeter/CoverPage.qml:107
269msgid "Unlock"
275msgid "Unlock"
270msgstr "Odkleni"
276msgstr "Odkleni"
271
277
272−#: qml/Greeter/LoginList.qml:236
278+#: qml/Greeter/LoginList.qml:239
273msgid "Retry"
279msgid "Retry"
274msgstr "Poskusi znova"
280msgstr "Poskusi znova"
275
281
276−#: qml/Greeter/LoginList.qml:237
282+#: qml/Greeter/LoginList.qml:240
277msgid "Tap to unlock"
283msgid "Tap to unlock"
278msgstr "Tapnite za odklep"
284msgstr "Tapnite za odklep"
279
285
@@ -330,7 +336,7 @@ msgstr "Oprostite, napačno šifrirno reklo"
330#: qml/Greeter/NarrowView.qml:121
336#: qml/Greeter/NarrowView.qml:121
331msgctxt "passphrase"
337msgctxt "passphrase"
332msgid "Please re-enter"
338msgid "Please re-enter"
333−msgstr ""
339+msgstr "Ponovno vnesite"
334
340
335#: qml/Greeter/NarrowView.qml:122
341#: qml/Greeter/NarrowView.qml:122
336msgid "Sorry, incorrect passcode"
342msgid "Sorry, incorrect passcode"
@@ -417,7 +423,7 @@ msgstr "Spodletelo, tapnite za ponovni poskus"
417#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
423#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
418msgctxt "Button: Send a reply message"
424msgctxt "Button: Send a reply message"
419msgid "Send"
425msgid "Send"
420−msgstr ""
426+msgstr "Pošlji"
421
427
422#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
428#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
423msgctxt "Label: Hint in message indicator line edit"
429msgctxt "Label: Hint in message indicator line edit"
@@ -427,7 +433,7 @@ msgstr "Odgovor"
427#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
433#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
428msgctxt "Button: Call back on phone"
434msgctxt "Button: Call back on phone"
429msgid "Call back"
435msgid "Call back"
430−msgstr ""
436+msgstr "Pokliči nazaj"
431
437
432#: qml/Panel/Indicators/ModemInfoItem.qml:105
438#: qml/Panel/Indicators/ModemInfoItem.qml:105
433msgid "Unlock SIM"
439msgid "Unlock SIM"
@@ -500,8 +506,8 @@ msgid "Hi!"
500msgstr "Živjo!"
506msgstr "Živjo!"
501
507
502#: qml/Wizard/Pages/10-welcome.qml:44
508#: qml/Wizard/Pages/10-welcome.qml:44
503−msgid "Welcome to your Ubuntu phone."
509+msgid "Welcome to your Ubuntu device."
504−msgstr "Dobrodošli v svoj telefon Ubuntu."
510+msgstr ""
505
511
506#: qml/Wizard/Pages/10-welcome.qml:52
512#: qml/Wizard/Pages/10-welcome.qml:52
507msgid "Let’s get started."
513msgid "Let’s get started."
@@ -531,8 +537,8 @@ msgid "Lock security"
531msgstr "Varnost zaklepa"
537msgstr "Varnost zaklepa"
532
538
533#: qml/Wizard/Pages/30-passwd-type.qml:79
539#: qml/Wizard/Pages/30-passwd-type.qml:79
534−msgid "Please select how you’d like to unlock your phone."
540+msgid "Please select how you’d like to unlock your device."
535−msgstr "Izberite, kako želite odkleniti svoj telefon."
541+msgstr ""
536
542
537#: qml/Wizard/Pages/30-passwd-type.qml:102
543#: qml/Wizard/Pages/30-passwd-type.qml:102
538msgctxt "Label: Type of security method"
544msgctxt "Label: Type of security method"
@@ -640,8 +646,8 @@ msgid "Nice work!"
640msgstr "Odlično!"
646msgstr "Odlično!"
641
647
642#: qml/Wizard/Pages/80-finished.qml:46
648#: qml/Wizard/Pages/80-finished.qml:46
643−msgid "Your phone is now ready to use."
649+msgid "Your device is now ready to use."
644−msgstr "Vaš telefon je sedaj pripravljen za uporabo."
650+msgstr ""
645
651
646#: qml/Wizard/Pages/80-finished.qml:53
652#: qml/Wizard/Pages/80-finished.qml:53
647msgid "Finish"
653msgid "Finish"
@@ -776,3 +782,42 @@ msgstr "%1 〉"
776
782
777#~ msgid "Please re-enter"
783#~ msgid "Please re-enter"
778#~ msgstr "Ponovno vnesite"
784#~ msgstr "Ponovno vnesite"
785+
786+#~ msgid "Welcome to your Ubuntu phone."
787+#~ msgstr "Dobrodošli v svoj telefon Ubuntu."
788+
789+#~ msgid "Please select how you’d like to unlock your phone."
790+#~ msgstr "Izberite, kako želite odkleniti svoj telefon."
791+
792+#~ msgid "Your phone is now ready to use."
793+#~ msgstr "Vaš telefon je sedaj pripravljen za uporabo."
794+
795+#~ msgid "%a %H:%M"
796+#~ msgstr "%a %H:%M"
797+
798+#~ msgid "%a %l:%M %p"
799+#~ msgstr "%a %l:%M %p"
800+
801+#~ msgid "Tomorrow %l:%M %p"
802+#~ msgstr "Jutri %l:%M %p"
803+
804+#~ msgid "%l:%M %p"
805+#~ msgstr "%l:%M %p"
806+
807+#~ msgid "Yesterday %l:%M %p"
808+#~ msgstr "Včeraj %l:%M %p"
809+
810+#~ msgid "%H:%M"
811+#~ msgstr "%H:%M"
812+
813+#~ msgid "Yesterday %H:%M"
814+#~ msgstr "Včeraj %H:%M"
815+
816+#~ msgid "Tomorrow %H:%M"
817+#~ msgstr "Jutri %H:%M"
818+
819+#~ msgid "%a %d %b %H:%M"
820+#~ msgstr "%a %d %b %H:%M"
821+
822+#~ msgid "%a %d %b %l:%M %p"
823+#~ msgstr "%a %d %b %l:%M %p"
po/sq.po+28−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-11-30 21:05+0000\n"
11"PO-Revision-Date: 2015-11-30 21:05+0000\n"
12"Last-Translator: Indrit Bashkimi <indrit.bashkimi@gmail.com>\n"
12"Last-Translator: Indrit Bashkimi <indrit.bashkimi@gmail.com>\n"
13"Language-Team: Albanian <sq@li.org>\n"
13"Language-Team: Albanian <sq@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:03+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "Hiq nga të preferuarit"
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr "Shto në të preferuarit"
195msgstr "Shto në të preferuarit"
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr "Shfaq më pak"
199msgstr "Shfaq më pak"
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr "Shfaqe të tërin"
203msgstr "Shfaqe të tërin"
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr "Kërko"
208msgstr "Kërko"
@@ -256,19 +256,21 @@ msgstr "Shtëpia"
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
261−msgstr "Pajisja juaj është tashmë e lidhur me një ekran të jashtëm."
262+"touch pad to interact with the mouse."
263+msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr "Zhblloko"
267msgstr "Zhblloko"
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr "Riprovo"
271msgstr "Riprovo"
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr "Preke për ta zhbllokuar"
275msgstr "Preke për ta zhbllokuar"
274
276
@@ -485,8 +487,8 @@ msgid "Hi!"
485msgstr "Përshëndetje!"
487msgstr "Përshëndetje!"
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489−msgstr "Mirëseerdhët në telefonin tuaj Ubuntu."
491+msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
492msgid "Let’s get started."
494msgid "Let’s get started."
@@ -516,8 +518,8 @@ msgid "Lock security"
516msgstr "Siguria e bllokimit"
518msgstr "Siguria e bllokimit"
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520−msgstr "Zgjidhni mënyrën e zhbllokimit të telefonit."
522+msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
523msgctxt "Label: Type of security method"
525msgctxt "Label: Type of security method"
@@ -617,8 +619,8 @@ msgid "Nice work!"
617msgstr "Punë e paqme!"
619msgstr "Punë e paqme!"
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621−msgstr "Telefoni juaj tani është gati për përdorim."
623+msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
624msgid "Finish"
626msgid "Finish"
@@ -679,3 +681,12 @@ msgstr "%1 〉"
679
681
680#~ msgid "Right edge"
682#~ msgid "Right edge"
681#~ msgstr "Cepi djathtas"
683#~ msgstr "Cepi djathtas"
684+
685+#~ msgid "Welcome to your Ubuntu phone."
686+#~ msgstr "Mirëseerdhët në telefonin tuaj Ubuntu."
687+
688+#~ msgid "Your phone is now ready to use."
689+#~ msgstr "Telefoni juaj tani është gati për përdorim."
690+
691+#~ msgid "Please select how you’d like to unlock your phone."
692+#~ msgstr "Zgjidhni mënyrën e zhbllokimit të telefonit."
po/sr.po+31−18
@@ -8,8 +8,8 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity\n"
9"Project-Id-Version: unity\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: 2016-01-22 17:08+0000\n"
11+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
12−"PO-Revision-Date: 2015-12-09 20:16+0000\n"
12+"PO-Revision-Date: 2016-02-10 21:21+0000\n"
13"Last-Translator: Bojan Bogdanović <Unknown>\n"
13"Last-Translator: Bojan Bogdanović <Unknown>\n"
14"Language-Team: српски <xfce4@xfce4.org>\n"
14"Language-Team: српски <xfce4@xfce4.org>\n"
15"MIME-Version: 1.0\n"
15"MIME-Version: 1.0\n"
@@ -17,8 +17,8 @@ msgstr ""
17"Content-Transfer-Encoding: 8bit\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
19"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
20−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
21−"X-Generator: Launchpad (build 17902)\n"
21+"X-Generator: Launchpad (build 17925)\n"
22"Language: sr\n"
22"Language: sr\n"
23
23
24#: plugins/IntegratedLightDM/Greeter.cpp:112
24#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -201,15 +201,15 @@ msgstr "Уклони из омиљених"
201msgid "Add to Favorites"
201msgid "Add to Favorites"
202msgstr "Додај међу омиљене"
202msgstr "Додај међу омиљене"
203
203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205msgid "See less"
205msgid "See less"
206msgstr "Сажетије"
206msgstr "Сажетије"
207
207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209msgid "See all"
209msgid "See all"
210msgstr "Опширније"
210msgstr "Опширније"
211
211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213msgctxt "Label: Hint for dash search line edit"
213msgctxt "Label: Hint for dash search line edit"
214msgid "Search"
214msgid "Search"
215msgstr "Претрага"
215msgstr "Претрага"
@@ -263,19 +263,23 @@ msgstr "Почетна"
263msgid "Also installed"
263msgid "Also installed"
264msgstr "Такође инсталиран"
264msgstr "Такође инсталиран"
265
265
266−#: qml/DisabledScreenNotice.qml:42
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
267−msgid "Your device is now connected to an external display."
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
270+msgstr ""
268−msgstr "Ваш уређај је сада повезан на спљни монитор."
271+"Ваш уређај је сада повезан на спољњи монитор. Користите овај екран као "
272+"додирну плочу да остварите интеракцију са мишем."
269
273
270#: qml/Greeter/CoverPage.qml:107
274#: qml/Greeter/CoverPage.qml:107
271msgid "Unlock"
275msgid "Unlock"
272msgstr "Откључај"
276msgstr "Откључај"
273
277
274−#: qml/Greeter/LoginList.qml:236
278+#: qml/Greeter/LoginList.qml:239
275msgid "Retry"
279msgid "Retry"
276msgstr "Покушај поново"
280msgstr "Покушај поново"
277
281
278−#: qml/Greeter/LoginList.qml:237
282+#: qml/Greeter/LoginList.qml:240
279msgid "Tap to unlock"
283msgid "Tap to unlock"
280msgstr "Додирните да откључате"
284msgstr "Додирните да откључате"
281
285
@@ -499,8 +503,8 @@ msgid "Hi!"
499msgstr "Здраво!"
503msgstr "Здраво!"
500
504
501#: qml/Wizard/Pages/10-welcome.qml:44
505#: qml/Wizard/Pages/10-welcome.qml:44
502−msgid "Welcome to your Ubuntu phone."
506+msgid "Welcome to your Ubuntu device."
503−msgstr "Добродошли у свој Убунту телефон."
507+msgstr ""
504
508
505#: qml/Wizard/Pages/10-welcome.qml:52
509#: qml/Wizard/Pages/10-welcome.qml:52
506msgid "Let’s get started."
510msgid "Let’s get started."
@@ -530,8 +534,8 @@ msgid "Lock security"
530msgstr "Безбедносно закључавање"
534msgstr "Безбедносно закључавање"
531
535
532#: qml/Wizard/Pages/30-passwd-type.qml:79
536#: qml/Wizard/Pages/30-passwd-type.qml:79
533−msgid "Please select how you’d like to unlock your phone."
537+msgid "Please select how you’d like to unlock your device."
534−msgstr "Молим, изаберите како бисте желели да откључавате телефон."
538+msgstr ""
535
539
536#: qml/Wizard/Pages/30-passwd-type.qml:102
540#: qml/Wizard/Pages/30-passwd-type.qml:102
537msgctxt "Label: Type of security method"
541msgctxt "Label: Type of security method"
@@ -638,8 +642,8 @@ msgid "Nice work!"
638msgstr "Лепо одрађено!"
642msgstr "Лепо одрађено!"
639
643
640#: qml/Wizard/Pages/80-finished.qml:46
644#: qml/Wizard/Pages/80-finished.qml:46
641−msgid "Your phone is now ready to use."
645+msgid "Your device is now ready to use."
642−msgstr "Ваш телефон је спреман за употребу."
646+msgstr ""
643
647
644#: qml/Wizard/Pages/80-finished.qml:53
648#: qml/Wizard/Pages/80-finished.qml:53
645msgid "Finish"
649msgid "Finish"
@@ -773,6 +777,12 @@ msgstr "%1 〉"
773#~ msgid "Please re-enter"
777#~ msgid "Please re-enter"
774#~ msgstr "Молим, унесите поново"
778#~ msgstr "Молим, унесите поново"
775
779
780+#~ msgid "Please select how you’d like to unlock your phone."
781+#~ msgstr "Молим, изаберите како бисте желели да откључавате телефон."
782+
783+#~ msgid "Welcome to your Ubuntu phone."
784+#~ msgstr "Добродошли у свој Убунту телефон."
785+
776#~ msgid "%a %l:%M %p"
786#~ msgid "%a %l:%M %p"
777#~ msgstr "%a %l:%M %p"
787#~ msgstr "%a %l:%M %p"
778
788
@@ -803,5 +813,8 @@ msgstr "%1 〉"
803#~ msgid "Tomorrow %H:%M"
813#~ msgid "Tomorrow %H:%M"
804#~ msgstr "Сутра %H:%M"
814#~ msgstr "Сутра %H:%M"
805
815
816+#~ msgid "Your phone is now ready to use."
817+#~ msgstr "Ваш телефон је спреман за употребу."
818+
806#~ msgid "Call back"
819#~ msgid "Call back"
807#~ msgstr "Позови назад"
820#~ msgstr "Позови назад"
po/sv.po+38−24
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-12 22:17+0000\n"
11"PO-Revision-Date: 2015-07-12 22:17+0000\n"
12"Last-Translator: Josef Andersson <Unknown>\n"
12"Last-Translator: Josef Andersson <Unknown>\n"
13"Language-Team: Swedish\n"
13"Language-Team: Swedish\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20"Language: sv\n"
20"Language: sv\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -152,27 +152,28 @@ msgstr "OK"
152
152
153#: qml/Components/ModeSwitchWarningDialog.qml:32
153#: qml/Components/ModeSwitchWarningDialog.qml:32
154msgid "Apps may have unsaved data:"
154msgid "Apps may have unsaved data:"
155−msgstr ""
155+msgstr "Program kan ha osparad data:"
156
156
157#: qml/Components/ModeSwitchWarningDialog.qml:57
157#: qml/Components/ModeSwitchWarningDialog.qml:57
158msgid "Re-dock, save your work and close these apps to continue."
158msgid "Re-dock, save your work and close these apps to continue."
159msgstr ""
159msgstr ""
160+"Docka om, spara ditt arbete och stäng dessa program för att fortsätta."
160
161
161#: qml/Components/ModeSwitchWarningDialog.qml:63
162#: qml/Components/ModeSwitchWarningDialog.qml:63
162msgid "Or force close now (unsaved data will be lost)."
163msgid "Or force close now (unsaved data will be lost)."
163−msgstr ""
164+msgstr "Eller tvinga avstängning nu (osparad data kommer att gå förlorad)."
164
165
165#: qml/Components/ModeSwitchWarningDialog.qml:75
166#: qml/Components/ModeSwitchWarningDialog.qml:75
166msgid "OK, I will reconnect"
167msgid "OK, I will reconnect"
167−msgstr ""
168+msgstr "OK, jag kommer att återansluta"
168
169
169#: qml/Components/ModeSwitchWarningDialog.qml:76
170#: qml/Components/ModeSwitchWarningDialog.qml:76
170msgid "Reconnect now!"
171msgid "Reconnect now!"
171−msgstr ""
172+msgstr "Återanslut nu!"
172
173
173#: qml/Components/ModeSwitchWarningDialog.qml:88
174#: qml/Components/ModeSwitchWarningDialog.qml:88
174msgid "Close all"
175msgid "Close all"
175−msgstr ""
176+msgstr "Stäng alla"
176
177
177#: qml/Dash/DashPageHeader.qml:266
178#: qml/Dash/DashPageHeader.qml:266
178msgctxt "Button: Open the Ubuntu Store"
179msgctxt "Button: Open the Ubuntu Store"
@@ -197,15 +198,15 @@ msgstr "Ta bort från Favoriter"
197msgid "Add to Favorites"
198msgid "Add to Favorites"
198msgstr "Lägg till Favoriter"
199msgstr "Lägg till Favoriter"
199
200
200−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
201+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
201msgid "See less"
202msgid "See less"
202msgstr "Visa mindre"
203msgstr "Visa mindre"
203
204
204−#: qml/Dash/GenericScopeView.qml:576
205+#: qml/Dash/GenericScopeView.qml:587
205msgid "See all"
206msgid "See all"
206msgstr "Visa alla"
207msgstr "Visa alla"
207
208
208−#: qml/Dash/GenericScopeView.qml:638
209+#: qml/Dash/GenericScopeView.qml:649
209msgctxt "Label: Hint for dash search line edit"
210msgctxt "Label: Hint for dash search line edit"
210msgid "Search"
211msgid "Search"
211msgstr "Sök"
212msgstr "Sök"
@@ -233,7 +234,7 @@ msgstr "Lägg till en recension"
233
234
234#: qml/Dash/Previews/PreviewSharing.qml:50
235#: qml/Dash/Previews/PreviewSharing.qml:50
235msgid "Preview Share Item"
236msgid "Preview Share Item"
236−msgstr ""
237+msgstr "Premiärvisa objektet dela"
237
238
238#: qml/Dash/PullToRefreshScopeStyle.qml:55
239#: qml/Dash/PullToRefreshScopeStyle.qml:55
239msgid "Pull to refresh…"
240msgid "Pull to refresh…"
@@ -259,19 +260,23 @@ msgstr "Hem"
259msgid "Also installed"
260msgid "Also installed"
260msgstr "Även installerat"
261msgstr "Även installerat"
261
262
262−#: qml/DisabledScreenNotice.qml:42
263+#: qml/DisabledScreenNotice.qml:87
264+msgid ""
263−msgid "Your device is now connected to an external display."
265+"Your device is now connected to an external display. Use this screen as a "
266+"touch pad to interact with the mouse."
264msgstr ""
267msgstr ""
268+"Din enhet är nu ansluten till en extern display. Använd denna skärm som en "
269+"styrplatta för att interagera med musen."
265
270
266#: qml/Greeter/CoverPage.qml:107
271#: qml/Greeter/CoverPage.qml:107
267msgid "Unlock"
272msgid "Unlock"
268msgstr "Lås upp"
273msgstr "Lås upp"
269
274
270−#: qml/Greeter/LoginList.qml:236
275+#: qml/Greeter/LoginList.qml:239
271msgid "Retry"
276msgid "Retry"
272msgstr "Försök igen"
277msgstr "Försök igen"
273
278
274−#: qml/Greeter/LoginList.qml:237
279+#: qml/Greeter/LoginList.qml:240
275msgid "Tap to unlock"
280msgid "Tap to unlock"
276msgstr "Tryck för att låsa upp"
281msgstr "Tryck för att låsa upp"
277
282
@@ -409,7 +414,7 @@ msgstr "Misslyckades, tryck för att försöka igen"
409#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
414#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
410msgctxt "Button: Send a reply message"
415msgctxt "Button: Send a reply message"
411msgid "Send"
416msgid "Send"
412−msgstr ""
417+msgstr "Skicka"
413
418
414#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
419#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
415msgctxt "Label: Hint in message indicator line edit"
420msgctxt "Label: Hint in message indicator line edit"
@@ -419,7 +424,7 @@ msgstr "Svara"
419#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
424#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
420msgctxt "Button: Call back on phone"
425msgctxt "Button: Call back on phone"
421msgid "Call back"
426msgid "Call back"
422−msgstr ""
427+msgstr "Ring upp"
423
428
424#: qml/Panel/Indicators/ModemInfoItem.qml:105
429#: qml/Panel/Indicators/ModemInfoItem.qml:105
425msgid "Unlock SIM"
430msgid "Unlock SIM"
@@ -492,8 +497,8 @@ msgid "Hi!"
492msgstr "Hej!"
497msgstr "Hej!"
493
498
494#: qml/Wizard/Pages/10-welcome.qml:44
499#: qml/Wizard/Pages/10-welcome.qml:44
495−msgid "Welcome to your Ubuntu phone."
500+msgid "Welcome to your Ubuntu device."
496−msgstr "Välkommen till din Ubuntutelefon."
501+msgstr ""
497
502
498#: qml/Wizard/Pages/10-welcome.qml:52
503#: qml/Wizard/Pages/10-welcome.qml:52
499msgid "Let’s get started."
504msgid "Let’s get started."
@@ -524,8 +529,8 @@ msgid "Lock security"
524msgstr "Säkerhetslås"
529msgstr "Säkerhetslås"
525
530
526#: qml/Wizard/Pages/30-passwd-type.qml:79
531#: qml/Wizard/Pages/30-passwd-type.qml:79
527−msgid "Please select how you’d like to unlock your phone."
532+msgid "Please select how you’d like to unlock your device."
528−msgstr "Välj hur du vill låsa upp din telefon."
533+msgstr ""
529
534
530#: qml/Wizard/Pages/30-passwd-type.qml:102
535#: qml/Wizard/Pages/30-passwd-type.qml:102
531msgctxt "Label: Type of security method"
536msgctxt "Label: Type of security method"
@@ -632,8 +637,8 @@ msgid "Nice work!"
632msgstr "Bra jobbat!"
637msgstr "Bra jobbat!"
633
638
634#: qml/Wizard/Pages/80-finished.qml:46
639#: qml/Wizard/Pages/80-finished.qml:46
635−msgid "Your phone is now ready to use."
640+msgid "Your device is now ready to use."
636−msgstr "Din telefon är nu redo att användas."
641+msgstr ""
637
642
638#: qml/Wizard/Pages/80-finished.qml:53
643#: qml/Wizard/Pages/80-finished.qml:53
639msgid "Finish"
644msgid "Finish"
@@ -770,6 +775,15 @@ msgstr "%1 〉"
770#~ msgid "Please re-enter"
775#~ msgid "Please re-enter"
771#~ msgstr "Ange igen"
776#~ msgstr "Ange igen"
772
777
778+#~ msgid "Welcome to your Ubuntu phone."
779+#~ msgstr "Välkommen till din Ubuntutelefon."
780+
781+#~ msgid "Please select how you’d like to unlock your phone."
782+#~ msgstr "Välj hur du vill låsa upp din telefon."
783+
784+#~ msgid "Your phone is now ready to use."
785+#~ msgstr "Din telefon är nu redo att användas."
786+
773#~ msgid "%a %d %b %H:%M"
787#~ msgid "%a %d %b %H:%M"
774#~ msgstr "%a %d %b %H:%M"
788#~ msgstr "%a %d %b %H:%M"
775
789
po/sw.po+23−15
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-17 20:02+0000\n"
11"PO-Revision-Date: 2015-07-17 20:02+0000\n"
12"Last-Translator: Valentine <mwangi_valentino@yahoo.com>\n"
12"Last-Translator: Valentine <mwangi_valentino@yahoo.com>\n"
13"Language-Team: Swahili <sw@li.org>\n"
13"Language-Team: Swahili <sw@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Toa kutoka nilizopenda"
196msgid "Add to Favorites"
196msgid "Add to Favorites"
197msgstr "Ongeza kwenye nilizopenda"
197msgstr "Ongeza kwenye nilizopenda"
198
198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200msgid "See less"
200msgid "See less"
201msgstr "Onyesha kidogo"
201msgstr "Onyesha kidogo"
202
202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204msgid "See all"
204msgid "See all"
205msgstr "Onyesha zote"
205msgstr "Onyesha zote"
206
206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208msgctxt "Label: Hint for dash search line edit"
208msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
209msgid "Search"
210msgstr "Tafuta"
210msgstr "Tafuta"
@@ -258,19 +258,21 @@ msgstr "Nyumbani"
258msgid "Also installed"
258msgid "Also installed"
259msgstr ""
259msgstr ""
260
260
261−#: qml/DisabledScreenNotice.qml:42
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
262−msgid "Your device is now connected to an external display."
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263msgstr ""
265msgstr ""
264
266
265#: qml/Greeter/CoverPage.qml:107
267#: qml/Greeter/CoverPage.qml:107
266msgid "Unlock"
268msgid "Unlock"
267msgstr "Fungua"
269msgstr "Fungua"
268
270
269−#: qml/Greeter/LoginList.qml:236
271+#: qml/Greeter/LoginList.qml:239
270msgid "Retry"
272msgid "Retry"
271msgstr "Jaribu tena"
273msgstr "Jaribu tena"
272
274
273−#: qml/Greeter/LoginList.qml:237
275+#: qml/Greeter/LoginList.qml:240
274msgid "Tap to unlock"
276msgid "Tap to unlock"
275msgstr "Gusa ufungue"
277msgstr "Gusa ufungue"
276
278
@@ -491,8 +493,8 @@ msgid "Hi!"
491msgstr "Jambo!"
493msgstr "Jambo!"
492
494
493#: qml/Wizard/Pages/10-welcome.qml:44
495#: qml/Wizard/Pages/10-welcome.qml:44
494−msgid "Welcome to your Ubuntu phone."
496+msgid "Welcome to your Ubuntu device."
495−msgstr "Karibu kwenye simu yako ya Ubuntu."
497+msgstr ""
496
498
497#: qml/Wizard/Pages/10-welcome.qml:52
499#: qml/Wizard/Pages/10-welcome.qml:52
498msgid "Let’s get started."
500msgid "Let’s get started."
@@ -522,8 +524,8 @@ msgid "Lock security"
522msgstr "Funga usalama"
524msgstr "Funga usalama"
523
525
524#: qml/Wizard/Pages/30-passwd-type.qml:79
526#: qml/Wizard/Pages/30-passwd-type.qml:79
525−msgid "Please select how you’d like to unlock your phone."
527+msgid "Please select how you’d like to unlock your device."
526−msgstr "Tafadhali chagua vile ungependa kufunga simu."
528+msgstr ""
527
529
528#: qml/Wizard/Pages/30-passwd-type.qml:102
530#: qml/Wizard/Pages/30-passwd-type.qml:102
529msgctxt "Label: Type of security method"
531msgctxt "Label: Type of security method"
@@ -623,7 +625,7 @@ msgid "Nice work!"
623msgstr ""
625msgstr ""
624
626
625#: qml/Wizard/Pages/80-finished.qml:46
627#: qml/Wizard/Pages/80-finished.qml:46
626−msgid "Your phone is now ready to use."
628+msgid "Your device is now ready to use."
627msgstr ""
629msgstr ""
628
630
629#: qml/Wizard/Pages/80-finished.qml:53
631#: qml/Wizard/Pages/80-finished.qml:53
@@ -708,3 +710,9 @@ msgstr ""
708
710
709#~ msgid "Please re-enter"
711#~ msgid "Please re-enter"
710#~ msgstr "Tafadhali bonyeza tena"
712#~ msgstr "Tafadhali bonyeza tena"
713+
714+#~ msgid "Please select how you’d like to unlock your phone."
715+#~ msgstr "Tafadhali chagua vile ungependa kufunga simu."
716+
717+#~ msgid "Welcome to your Ubuntu phone."
718+#~ msgstr "Karibu kwenye simu yako ya Ubuntu."
po/ta.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20"Language: ta\n"
20"Language: ta\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -195,15 +195,15 @@ msgstr ""
195msgid "Add to Favorites"
195msgid "Add to Favorites"
196msgstr ""
196msgstr ""
197
197
198−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
198+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
199msgid "See less"
199msgid "See less"
200msgstr ""
200msgstr ""
201
201
202−#: qml/Dash/GenericScopeView.qml:576
202+#: qml/Dash/GenericScopeView.qml:587
203msgid "See all"
203msgid "See all"
204msgstr ""
204msgstr ""
205
205
206−#: qml/Dash/GenericScopeView.qml:638
206+#: qml/Dash/GenericScopeView.qml:649
207msgctxt "Label: Hint for dash search line edit"
207msgctxt "Label: Hint for dash search line edit"
208msgid "Search"
208msgid "Search"
209msgstr ""
209msgstr ""
@@ -257,19 +257,21 @@ msgstr ""
257msgid "Also installed"
257msgid "Also installed"
258msgstr ""
258msgstr ""
259
259
260−#: qml/DisabledScreenNotice.qml:42
260+#: qml/DisabledScreenNotice.qml:87
261+msgid ""
261−msgid "Your device is now connected to an external display."
262+"Your device is now connected to an external display. Use this screen as a "
263+"touch pad to interact with the mouse."
262msgstr ""
264msgstr ""
263
265
264#: qml/Greeter/CoverPage.qml:107
266#: qml/Greeter/CoverPage.qml:107
265msgid "Unlock"
267msgid "Unlock"
266msgstr ""
268msgstr ""
267
269
268−#: qml/Greeter/LoginList.qml:236
270+#: qml/Greeter/LoginList.qml:239
269msgid "Retry"
271msgid "Retry"
270msgstr ""
272msgstr ""
271
273
272−#: qml/Greeter/LoginList.qml:237
274+#: qml/Greeter/LoginList.qml:240
273msgid "Tap to unlock"
275msgid "Tap to unlock"
274msgstr ""
276msgstr ""
275
277
@@ -486,7 +488,7 @@ msgid "Hi!"
486msgstr ""
488msgstr ""
487
489
488#: qml/Wizard/Pages/10-welcome.qml:44
490#: qml/Wizard/Pages/10-welcome.qml:44
489−msgid "Welcome to your Ubuntu phone."
491+msgid "Welcome to your Ubuntu device."
490msgstr ""
492msgstr ""
491
493
492#: qml/Wizard/Pages/10-welcome.qml:52
494#: qml/Wizard/Pages/10-welcome.qml:52
@@ -517,7 +519,7 @@ msgid "Lock security"
517msgstr ""
519msgstr ""
518
520
519#: qml/Wizard/Pages/30-passwd-type.qml:79
521#: qml/Wizard/Pages/30-passwd-type.qml:79
520−msgid "Please select how you’d like to unlock your phone."
522+msgid "Please select how you’d like to unlock your device."
521msgstr ""
523msgstr ""
522
524
523#: qml/Wizard/Pages/30-passwd-type.qml:102
525#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -618,7 +620,7 @@ msgid "Nice work!"
618msgstr ""
620msgstr ""
619
621
620#: qml/Wizard/Pages/80-finished.qml:46
622#: qml/Wizard/Pages/80-finished.qml:46
621−msgid "Your phone is now ready to use."
623+msgid "Your device is now ready to use."
622msgstr ""
624msgstr ""
623
625
624#: qml/Wizard/Pages/80-finished.qml:53
626#: qml/Wizard/Pages/80-finished.qml:53
po/te.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/th.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2014-10-02 04:55+0000\n"
11"PO-Revision-Date: 2014-10-02 04:55+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Thai <th@li.org>\n"
13"Language-Team: Thai <th@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/tr.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-03-22 15:56+0000\n"
11"PO-Revision-Date: 2015-03-22 15:56+0000\n"
12"Last-Translator: Arda Ünlü <aarda.uunlu@gmail.com>\n"
12"Last-Translator: Arda Ünlü <aarda.uunlu@gmail.com>\n"
13"Language-Team: Turkish <tr@li.org>\n"
13"Language-Team: Turkish <tr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "Sık kullanılanlardan kaldır"
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr "Yer İmlerine Ekle"
195msgstr "Yer İmlerine Ekle"
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr "Daha azını gör"
199msgstr "Daha azını gör"
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr "Tümünü gör"
203msgstr "Tümünü gör"
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr "Ara"
208msgstr "Ara"
@@ -256,19 +256,21 @@ msgstr "Ev"
256msgid "Also installed"
256msgid "Also installed"
257msgstr "Ayrıca kurulan"
257msgstr "Ayrıca kurulan"
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr "Kilidi Aç"
267msgstr "Kilidi Aç"
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr "Tekrar Dene"
271msgstr "Tekrar Dene"
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr "Kilidi açmak için dokun"
275msgstr "Kilidi açmak için dokun"
274
276
@@ -489,8 +491,8 @@ msgid "Hi!"
489msgstr "Merhaba!"
491msgstr "Merhaba!"
490
492
491#: qml/Wizard/Pages/10-welcome.qml:44
493#: qml/Wizard/Pages/10-welcome.qml:44
492−msgid "Welcome to your Ubuntu phone."
494+msgid "Welcome to your Ubuntu device."
493−msgstr "Ubuntu telefonunuza hoş geldiniz."
495+msgstr ""
494
496
495#: qml/Wizard/Pages/10-welcome.qml:52
497#: qml/Wizard/Pages/10-welcome.qml:52
496msgid "Let’s get started."
498msgid "Let’s get started."
@@ -521,8 +523,8 @@ msgid "Lock security"
521msgstr "Kilitleme güvenliği"
523msgstr "Kilitleme güvenliği"
522
524
523#: qml/Wizard/Pages/30-passwd-type.qml:79
525#: qml/Wizard/Pages/30-passwd-type.qml:79
524−msgid "Please select how you’d like to unlock your phone."
526+msgid "Please select how you’d like to unlock your device."
525−msgstr "Lütfen telefonunuzun kilidini nasıl açmak istediğinizi seçin."
527+msgstr ""
526
528
527#: qml/Wizard/Pages/30-passwd-type.qml:102
529#: qml/Wizard/Pages/30-passwd-type.qml:102
528msgctxt "Label: Type of security method"
530msgctxt "Label: Type of security method"
@@ -631,8 +633,8 @@ msgid "Nice work!"
631msgstr "İyi iş!"
633msgstr "İyi iş!"
632
634
633#: qml/Wizard/Pages/80-finished.qml:46
635#: qml/Wizard/Pages/80-finished.qml:46
634−msgid "Your phone is now ready to use."
636+msgid "Your device is now ready to use."
635−msgstr "Telefonunuz artık kullanıma hazır."
637+msgstr ""
636
638
637#: qml/Wizard/Pages/80-finished.qml:53
639#: qml/Wizard/Pages/80-finished.qml:53
638msgid "Finish"
640msgid "Finish"
@@ -761,6 +763,15 @@ msgstr "%1 〉"
761#~ msgid "Please re-enter"
763#~ msgid "Please re-enter"
762#~ msgstr "Lütfen yeniden girin"
764#~ msgstr "Lütfen yeniden girin"
763
765
766+#~ msgid "Please select how you’d like to unlock your phone."
767+#~ msgstr "Lütfen telefonunuzun kilidini nasıl açmak istediğinizi seçin."
768+
769+#~ msgid "Welcome to your Ubuntu phone."
770+#~ msgstr "Ubuntu telefonunuza hoş geldiniz."
771+
772+#~ msgid "Your phone is now ready to use."
773+#~ msgstr "Telefonunuz artık kullanıma hazır."
774+
764#~ msgid "%a %H:%M"
775#~ msgid "%a %H:%M"
765#~ msgstr "%H:%M %a"
776#~ msgstr "%H:%M %a"
766
777
po/ug.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-12-01 07:37+0000\n"
11"PO-Revision-Date: 2015-12-01 07:37+0000\n"
12"Last-Translator: Eltikin <eltikinuyghur@hotmail.com>\n"
12"Last-Translator: Eltikin <eltikinuyghur@hotmail.com>\n"
13"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
13"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -195,15 +195,15 @@ msgstr "يىغقۇچتىن چىقىرىۋەت"
195msgid "Add to Favorites"
195msgid "Add to Favorites"
196msgstr "يىغقۇچقا قوش"
196msgstr "يىغقۇچقا قوش"
197
197
198−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
198+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
199msgid "See less"
199msgid "See less"
200msgstr "ئازراق كۆرۈش"
200msgstr "ئازراق كۆرۈش"
201
201
202−#: qml/Dash/GenericScopeView.qml:576
202+#: qml/Dash/GenericScopeView.qml:587
203msgid "See all"
203msgid "See all"
204msgstr "ھەممىنى كۆرۈش…"
204msgstr "ھەممىنى كۆرۈش…"
205
205
206−#: qml/Dash/GenericScopeView.qml:638
206+#: qml/Dash/GenericScopeView.qml:649
207msgctxt "Label: Hint for dash search line edit"
207msgctxt "Label: Hint for dash search line edit"
208msgid "Search"
208msgid "Search"
209msgstr "ئىزدە"
209msgstr "ئىزدە"
@@ -257,19 +257,21 @@ msgstr "ماكان"
257msgid "Also installed"
257msgid "Also installed"
258msgstr "قايتىدىن ئورنات"
258msgstr "قايتىدىن ئورنات"
259
259
260−#: qml/DisabledScreenNotice.qml:42
260+#: qml/DisabledScreenNotice.qml:87
261+msgid ""
261−msgid "Your device is now connected to an external display."
262+"Your device is now connected to an external display. Use this screen as a "
263+"touch pad to interact with the mouse."
262msgstr ""
264msgstr ""
263
265
264#: qml/Greeter/CoverPage.qml:107
266#: qml/Greeter/CoverPage.qml:107
265msgid "Unlock"
267msgid "Unlock"
266msgstr "قۇلۇپسىزلا"
268msgstr "قۇلۇپسىزلا"
267
269
268−#: qml/Greeter/LoginList.qml:236
270+#: qml/Greeter/LoginList.qml:239
269msgid "Retry"
271msgid "Retry"
270msgstr "قايتا سىنا"
272msgstr "قايتا سىنا"
271
273
272−#: qml/Greeter/LoginList.qml:237
274+#: qml/Greeter/LoginList.qml:240
273msgid "Tap to unlock"
275msgid "Tap to unlock"
274msgstr "قۇلۇپسىزلا"
276msgstr "قۇلۇپسىزلا"
275
277
@@ -487,8 +489,8 @@ msgid "Hi!"
487msgstr "سالام!"
489msgstr "سالام!"
488
490
489#: qml/Wizard/Pages/10-welcome.qml:44
491#: qml/Wizard/Pages/10-welcome.qml:44
490−msgid "Welcome to your Ubuntu phone."
492+msgid "Welcome to your Ubuntu device."
491−msgstr "ئۇبۇنتۇ تېلېفونىغا مەرھابا."
493+msgstr ""
492
494
493#: qml/Wizard/Pages/10-welcome.qml:52
495#: qml/Wizard/Pages/10-welcome.qml:52
494msgid "Let’s get started."
496msgid "Let’s get started."
@@ -518,8 +520,8 @@ msgid "Lock security"
518msgstr "قۇلۇپلاش بىخەتەرلىكى"
520msgstr "قۇلۇپلاش بىخەتەرلىكى"
519
521
520#: qml/Wizard/Pages/30-passwd-type.qml:79
522#: qml/Wizard/Pages/30-passwd-type.qml:79
521−msgid "Please select how you’d like to unlock your phone."
523+msgid "Please select how you’d like to unlock your device."
522−msgstr "تېلېفوننى قانداق قۇلۇپسىزلاشنى تاللاڭ."
524+msgstr ""
523
525
524#: qml/Wizard/Pages/30-passwd-type.qml:102
526#: qml/Wizard/Pages/30-passwd-type.qml:102
525msgctxt "Label: Type of security method"
527msgctxt "Label: Type of security method"
@@ -625,8 +627,8 @@ msgid "Nice work!"
625msgstr "جاپا چەكتىڭىز!"
627msgstr "جاپا چەكتىڭىز!"
626
628
627#: qml/Wizard/Pages/80-finished.qml:46
629#: qml/Wizard/Pages/80-finished.qml:46
628−msgid "Your phone is now ready to use."
630+msgid "Your device is now ready to use."
629−msgstr "تېلېفونىڭىز ئىشلىتىشكە ھازىرلاندى."
631+msgstr ""
630
632
631#: qml/Wizard/Pages/80-finished.qml:53
633#: qml/Wizard/Pages/80-finished.qml:53
632msgid "Finish"
634msgid "Finish"
@@ -769,6 +771,15 @@ msgstr "%1 〉"
769#~ msgid "Call back"
771#~ msgid "Call back"
770#~ msgstr "تىلفۇن ئۇرلىۋاتىدۇ"
772#~ msgstr "تىلفۇن ئۇرلىۋاتىدۇ"
771
773
774+#~ msgid "Please select how you’d like to unlock your phone."
775+#~ msgstr "تېلېفوننى قانداق قۇلۇپسىزلاشنى تاللاڭ."
776+
777+#~ msgid "Welcome to your Ubuntu phone."
778+#~ msgstr "ئۇبۇنتۇ تېلېفونىغا مەرھابا."
779+
780+#~ msgid "Your phone is now ready to use."
781+#~ msgstr "تېلېفونىڭىز ئىشلىتىشكە ھازىرلاندى."
782+
772#~ msgid "Tomorrow %H:%M"
783#~ msgid "Tomorrow %H:%M"
773#~ msgstr "ئەتە %H:%M"
784#~ msgstr "ئەتە %H:%M"
774
785
po/uk.po+30−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-04 05:53+0000\n"
11"PO-Revision-Date: 2015-07-04 05:53+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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
20−"X-Generator: Launchpad (build 17902)\n"
20+"X-Generator: Launchpad (build 17925)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -203,15 +203,15 @@ msgstr "Вилучити з вибраного"
203msgid "Add to Favorites"
203msgid "Add to Favorites"
204msgstr "Додати до вибраного"
204msgstr "Додати до вибраного"
205
205
206−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
206+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
207msgid "See less"
207msgid "See less"
208msgstr "Стисліше"
208msgstr "Стисліше"
209
209
210−#: qml/Dash/GenericScopeView.qml:576
210+#: qml/Dash/GenericScopeView.qml:587
211msgid "See all"
211msgid "See all"
212msgstr "Детальніше"
212msgstr "Детальніше"
213
213
214−#: qml/Dash/GenericScopeView.qml:638
214+#: qml/Dash/GenericScopeView.qml:649
215msgctxt "Label: Hint for dash search line edit"
215msgctxt "Label: Hint for dash search line edit"
216msgid "Search"
216msgid "Search"
217msgstr "Пошук"
217msgstr "Пошук"
@@ -265,19 +265,23 @@ msgstr "Домівка"
265msgid "Also installed"
265msgid "Also installed"
266msgstr "Також встановлено"
266msgstr "Також встановлено"
267
267
268−#: qml/DisabledScreenNotice.qml:42
268+#: qml/DisabledScreenNotice.qml:87
269+msgid ""
269−msgid "Your device is now connected to an external display."
270+"Your device is now connected to an external display. Use this screen as a "
271+"touch pad to interact with the mouse."
272+msgstr ""
270−msgstr "Ваш пристрій з’єднано із зовнішнім дисплеєм."
273+"Ваш пристрій з’єднано із зовнішнім дисплеєм. Скористайтеся його екраном як "
274+"сенсорною панеллю для імітації роботи із мишею."
271
275
272#: qml/Greeter/CoverPage.qml:107
276#: qml/Greeter/CoverPage.qml:107
273msgid "Unlock"
277msgid "Unlock"
274msgstr "Розблокувати"
278msgstr "Розблокувати"
275
279
276−#: qml/Greeter/LoginList.qml:236
280+#: qml/Greeter/LoginList.qml:239
277msgid "Retry"
281msgid "Retry"
278msgstr "Повторити"
282msgstr "Повторити"
279
283
280−#: qml/Greeter/LoginList.qml:237
284+#: qml/Greeter/LoginList.qml:240
281msgid "Tap to unlock"
285msgid "Tap to unlock"
282msgstr "Торкніться, щоб розблокувати"
286msgstr "Торкніться, щоб розблокувати"
283
287
@@ -501,8 +505,8 @@ msgid "Hi!"
501msgstr "Привіт!"
505msgstr "Привіт!"
502
506
503#: qml/Wizard/Pages/10-welcome.qml:44
507#: qml/Wizard/Pages/10-welcome.qml:44
504−msgid "Welcome to your Ubuntu phone."
508+msgid "Welcome to your Ubuntu device."
505−msgstr "Вітаємо вас у системі телефону Ubuntu."
509+msgstr "Вітаємо у вашому пристрої Ubuntu."
506
510
507#: qml/Wizard/Pages/10-welcome.qml:52
511#: qml/Wizard/Pages/10-welcome.qml:52
508msgid "Let’s get started."
512msgid "Let’s get started."
@@ -532,8 +536,8 @@ msgid "Lock security"
532msgstr "Захист блокування"
536msgstr "Захист блокування"
533
537
534#: qml/Wizard/Pages/30-passwd-type.qml:79
538#: qml/Wizard/Pages/30-passwd-type.qml:79
535−msgid "Please select how you’d like to unlock your phone."
539+msgid "Please select how you’d like to unlock your device."
536−msgstr "Будь ласка, виберіть спосіб розблокування вашого телефону."
540+msgstr "Будь ласка, виберіть спосіб розблокування вашого пристрою."
537
541
538#: qml/Wizard/Pages/30-passwd-type.qml:102
542#: qml/Wizard/Pages/30-passwd-type.qml:102
539msgctxt "Label: Type of security method"
543msgctxt "Label: Type of security method"
@@ -642,8 +646,8 @@ msgid "Nice work!"
642msgstr "Чудова робота!"
646msgstr "Чудова робота!"
643
647
644#: qml/Wizard/Pages/80-finished.qml:46
648#: qml/Wizard/Pages/80-finished.qml:46
645−msgid "Your phone is now ready to use."
649+msgid "Your device is now ready to use."
646−msgstr "Тепер вашим телефоном можна користуватися."
650+msgstr "Пристрій готовий до використання."
647
651
648#: qml/Wizard/Pages/80-finished.qml:53
652#: qml/Wizard/Pages/80-finished.qml:53
649msgid "Finish"
653msgid "Finish"
@@ -783,6 +787,15 @@ msgstr "%1 〉"
783#~ msgid "Please re-enter"
787#~ msgid "Please re-enter"
784#~ msgstr "Ввведіть ще раз"
788#~ msgstr "Ввведіть ще раз"
785
789
790+#~ msgid "Please select how you’d like to unlock your phone."
791+#~ msgstr "Будь ласка, виберіть спосіб розблокування вашого телефону."
792+
793+#~ msgid "Welcome to your Ubuntu phone."
794+#~ msgstr "Вітаємо вас у системі телефону Ubuntu."
795+
796+#~ msgid "Your phone is now ready to use."
797+#~ msgstr "Тепер вашим телефоном можна користуватися."
798+
786#~ msgid "%a %d %b %H:%M"
799#~ msgid "%a %d %b %H:%M"
787#~ msgstr "%a, %b %d %H:%M"
800#~ msgstr "%a, %b %d %H:%M"
788
801
po/unity8.pot+13−11
@@ -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: 2016-01-22 17:08+0000\n"
11+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/ur.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-05-05 03:12+0000\n"
11"PO-Revision-Date: 2015-05-05 03:12+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Urdu <ur@li.org>\n"
13"Language-Team: Urdu <ur@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/uz.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-04 16:03+0000\n"
11"PO-Revision-Date: 2015-07-04 16:03+0000\n"
12"Last-Translator: Learner <muzaffar.habibullayev@yandex.ru>\n"
12"Last-Translator: Learner <muzaffar.habibullayev@yandex.ru>\n"
13"Language-Team: Uzbek <uz@li.org>\n"
13"Language-Team: Uzbek <uz@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/vi.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/wo.po+27−16
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-10-29 11:16+0000\n"
11"PO-Revision-Date: 2015-10-29 11:16+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Wolof <wo@li.org>\n"
13"Language-Team: Wolof <wo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "Dindee ci Tànneef yi"
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr "Yokk ci Tànneef yi"
195msgstr "Yokk ci Tànneef yi"
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr "Gis lu néew"
199msgstr "Gis lu néew"
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr "Gis lépp"
203msgstr "Gis lépp"
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr "Seet"
208msgstr "Seet"
@@ -256,19 +256,21 @@ msgstr "Njëlbeen"
256msgid "Also installed"
256msgid "Also installed"
257msgstr "Yiñ samp tamit"
257msgstr "Yiñ samp tamit"
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr "Ubbi"
267msgstr "Ubbi"
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr "Jéemaat"
271msgstr "Jéemaat"
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr "Bësal ngir ubbi"
275msgstr "Bësal ngir ubbi"
274
276
@@ -489,8 +491,8 @@ msgid "Hi!"
489msgstr "Dila nuyu!"
491msgstr "Dila nuyu!"
490
492
491#: qml/Wizard/Pages/10-welcome.qml:44
493#: qml/Wizard/Pages/10-welcome.qml:44
492−msgid "Welcome to your Ubuntu phone."
494+msgid "Welcome to your Ubuntu device."
493−msgstr "Dala-jàmm ci sa wootekaay bu Ubuntu."
495+msgstr ""
494
496
495#: qml/Wizard/Pages/10-welcome.qml:52
497#: qml/Wizard/Pages/10-welcome.qml:52
496msgid "Let’s get started."
498msgid "Let’s get started."
@@ -520,8 +522,8 @@ msgid "Lock security"
520msgstr "Kaaraangeg tëj"
522msgstr "Kaaraangeg tëj"
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:79
524#: qml/Wizard/Pages/30-passwd-type.qml:79
523−msgid "Please select how you’d like to unlock your phone."
525+msgid "Please select how you’d like to unlock your device."
524−msgstr "Tànnal nan nga bëgg a tëjee sa wootekaay"
526+msgstr ""
525
527
526#: qml/Wizard/Pages/30-passwd-type.qml:102
528#: qml/Wizard/Pages/30-passwd-type.qml:102
527msgctxt "Label: Type of security method"
529msgctxt "Label: Type of security method"
@@ -628,8 +630,8 @@ msgid "Nice work!"
628msgstr "Liggéey bu rafet!"
630msgstr "Liggéey bu rafet!"
629
631
630#: qml/Wizard/Pages/80-finished.qml:46
632#: qml/Wizard/Pages/80-finished.qml:46
631−msgid "Your phone is now ready to use."
633+msgid "Your device is now ready to use."
632−msgstr "Leegi sa wootekaay noppi na ngir ñu man koo jëfandikoo."
634+msgstr ""
633
635
634#: qml/Wizard/Pages/80-finished.qml:53
636#: qml/Wizard/Pages/80-finished.qml:53
635msgid "Finish"
637msgid "Finish"
@@ -788,3 +790,12 @@ msgstr "%1 〉"
788
790
789#~ msgid "Call back"
791#~ msgid "Call back"
790#~ msgstr "wootewaat"
792#~ msgstr "wootewaat"
793+
794+#~ msgid "Welcome to your Ubuntu phone."
795+#~ msgstr "Dala-jàmm ci sa wootekaay bu Ubuntu."
796+
797+#~ msgid "Please select how you’d like to unlock your phone."
798+#~ msgstr "Tànnal nan nga bëgg a tëjee sa wootekaay"
799+
800+#~ msgid "Your phone is now ready to use."
801+#~ msgstr "Leegi sa wootekaay noppi na ngir ñu man koo jëfandikoo."
po/xh.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr ""
199msgstr ""
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr ""
203msgstr ""
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/zh_CN.po+28−17
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11"PO-Revision-Date: 2015-07-27 10:26+0000\n"
11"PO-Revision-Date: 2015-07-27 10:26+0000\n"
12"Last-Translator: Ian Li <Unknown>\n"
12"Last-Translator: Ian Li <Unknown>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -195,15 +195,15 @@ msgstr "从收藏夹中移除"
195msgid "Add to Favorites"
195msgid "Add to Favorites"
196msgstr "添加到收藏夹"
196msgstr "添加到收藏夹"
197
197
198−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
198+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
199msgid "See less"
199msgid "See less"
200msgstr "显示更少"
200msgstr "显示更少"
201
201
202−#: qml/Dash/GenericScopeView.qml:576
202+#: qml/Dash/GenericScopeView.qml:587
203msgid "See all"
203msgid "See all"
204msgstr "查看全部"
204msgstr "查看全部"
205
205
206−#: qml/Dash/GenericScopeView.qml:638
206+#: qml/Dash/GenericScopeView.qml:649
207msgctxt "Label: Hint for dash search line edit"
207msgctxt "Label: Hint for dash search line edit"
208msgid "Search"
208msgid "Search"
209msgstr "搜索"
209msgstr "搜索"
@@ -257,19 +257,21 @@ msgstr "首页"
257msgid "Also installed"
257msgid "Also installed"
258msgstr "已安装"
258msgstr "已安装"
259
259
260−#: qml/DisabledScreenNotice.qml:42
260+#: qml/DisabledScreenNotice.qml:87
261+msgid ""
261−msgid "Your device is now connected to an external display."
262+"Your device is now connected to an external display. Use this screen as a "
262−msgstr "您的设备目前已连接到了一台扩展显示装置。"
263+"touch pad to interact with the mouse."
264+msgstr "你的设备现已连接上了一个外接显示。将这个屏幕作为触控板使用,可与鼠标互动。"
263
265
264#: qml/Greeter/CoverPage.qml:107
266#: qml/Greeter/CoverPage.qml:107
265msgid "Unlock"
267msgid "Unlock"
266msgstr "解锁"
268msgstr "解锁"
267
269
268−#: qml/Greeter/LoginList.qml:236
270+#: qml/Greeter/LoginList.qml:239
269msgid "Retry"
271msgid "Retry"
270msgstr "重试"
272msgstr "重试"
271
273
272−#: qml/Greeter/LoginList.qml:237
274+#: qml/Greeter/LoginList.qml:240
273msgid "Tap to unlock"
275msgid "Tap to unlock"
274msgstr "点击解锁"
276msgstr "点击解锁"
275
277
@@ -483,8 +485,8 @@ msgid "Hi!"
483msgstr "您好!"
485msgstr "您好!"
484
486
485#: qml/Wizard/Pages/10-welcome.qml:44
487#: qml/Wizard/Pages/10-welcome.qml:44
486−msgid "Welcome to your Ubuntu phone."
488+msgid "Welcome to your Ubuntu device."
487−msgstr "欢迎使用您的 Ubuntu 手机。"
489+msgstr "欢迎使用您的Ubuntu设备。"
488
490
489#: qml/Wizard/Pages/10-welcome.qml:52
491#: qml/Wizard/Pages/10-welcome.qml:52
490msgid "Let’s get started."
492msgid "Let’s get started."
@@ -514,8 +516,8 @@ msgid "Lock security"
514msgstr "锁屏安全设定"
516msgstr "锁屏安全设定"
515
517
516#: qml/Wizard/Pages/30-passwd-type.qml:79
518#: qml/Wizard/Pages/30-passwd-type.qml:79
517−msgid "Please select how you’d like to unlock your phone."
519+msgid "Please select how you’d like to unlock your device."
518−msgstr "请选择您喜欢的手机解锁方式。"
520+msgstr "请选择你偏好的设备解锁方式。"
519
521
520#: qml/Wizard/Pages/30-passwd-type.qml:102
522#: qml/Wizard/Pages/30-passwd-type.qml:102
521msgctxt "Label: Type of security method"
523msgctxt "Label: Type of security method"
@@ -615,8 +617,8 @@ msgid "Nice work!"
615msgstr "干得好!"
617msgstr "干得好!"
616
618
617#: qml/Wizard/Pages/80-finished.qml:46
619#: qml/Wizard/Pages/80-finished.qml:46
618−msgid "Your phone is now ready to use."
620+msgid "Your device is now ready to use."
619−msgstr "您的手机现在可以使用了。"
621+msgstr "您的设备已就绪。"
620
622
621#: qml/Wizard/Pages/80-finished.qml:53
623#: qml/Wizard/Pages/80-finished.qml:53
622msgid "Finish"
624msgid "Finish"
@@ -730,6 +732,15 @@ msgstr "%1 〉"
730#~ msgid "Please re-enter"
732#~ msgid "Please re-enter"
731#~ msgstr "请重新输入"
733#~ msgstr "请重新输入"
732
734
735+#~ msgid "Welcome to your Ubuntu phone."
736+#~ msgstr "欢迎使用您的 Ubuntu 手机。"
737+
738+#~ msgid "Please select how you’d like to unlock your phone."
739+#~ msgstr "请选择您喜欢的手机解锁方式。"
740+
741+#~ msgid "Your phone is now ready to use."
742+#~ msgstr "您的手机现在可以使用了。"
743+
733#~ msgid "%H:%M"
744#~ msgid "%H:%M"
734#~ msgstr "%H:%M"
745#~ msgstr "%H:%M"
735
746
po/zh_HK.po+15−13
@@ -7,7 +7,7 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-23 06:04+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr ""
195msgstr ""
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr "縮減查看"
199msgstr "縮減查看"
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr "查看全部"
203msgstr "查看全部"
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr ""
208msgstr ""
@@ -256,19 +256,21 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261msgstr ""
263msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr ""
267msgstr ""
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr ""
271msgstr ""
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr ""
275msgstr ""
274
276
@@ -485,7 +487,7 @@ msgid "Hi!"
485msgstr ""
487msgstr ""
486
488
487#: qml/Wizard/Pages/10-welcome.qml:44
489#: qml/Wizard/Pages/10-welcome.qml:44
488−msgid "Welcome to your Ubuntu phone."
490+msgid "Welcome to your Ubuntu device."
489msgstr ""
491msgstr ""
490
492
491#: qml/Wizard/Pages/10-welcome.qml:52
493#: qml/Wizard/Pages/10-welcome.qml:52
@@ -516,7 +518,7 @@ msgid "Lock security"
516msgstr ""
518msgstr ""
517
519
518#: qml/Wizard/Pages/30-passwd-type.qml:79
520#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your phone."
521+msgid "Please select how you’d like to unlock your device."
520msgstr ""
522msgstr ""
521
523
522#: qml/Wizard/Pages/30-passwd-type.qml:102
524#: qml/Wizard/Pages/30-passwd-type.qml:102
@@ -617,7 +619,7 @@ msgid "Nice work!"
617msgstr ""
619msgstr ""
618
620
619#: qml/Wizard/Pages/80-finished.qml:46
621#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your phone is now ready to use."
622+msgid "Your device is now ready to use."
621msgstr ""
623msgstr ""
622
624
623#: qml/Wizard/Pages/80-finished.qml:53
625#: qml/Wizard/Pages/80-finished.qml:53
po/zh_TW.po+30−19
@@ -7,16 +7,16 @@ 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: 2016-01-22 17:08+0000\n"
10+"POT-Creation-Date: 2016-02-16 03:29+0000\n"
11−"PO-Revision-Date: 2015-07-31 09:29+0000\n"
11+"PO-Revision-Date: 2016-02-24 04:40+0000\n"
12"Last-Translator: Po-Hsu Lin <po-hsu.lin@canonical.com>\n"
12"Last-Translator: Po-Hsu Lin <po-hsu.lin@canonical.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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
18+"X-Launchpad-Export-Date: 2016-02-25 05:23+0000\n"
19−"X-Generator: Launchpad (build 17902)\n"
19+"X-Generator: Launchpad (build 17925)\n"
20"Language: zh_TW\n"
20"Language: zh_TW\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -194,15 +194,15 @@ msgstr "自「最愛」移除"
194msgid "Add to Favorites"
194msgid "Add to Favorites"
195msgstr "加入到「最愛」"
195msgstr "加入到「最愛」"
196
196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198msgid "See less"
198msgid "See less"
199msgstr "縮減查看"
199msgstr "縮減查看"
200
200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202msgid "See all"
202msgid "See all"
203msgstr "查看全部"
203msgstr "查看全部"
204
204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206msgctxt "Label: Hint for dash search line edit"
206msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
207msgid "Search"
208msgstr "搜尋"
208msgstr "搜尋"
@@ -256,19 +256,21 @@ msgstr "家屋"
256msgid "Also installed"
256msgid "Also installed"
257msgstr "也有安裝"
257msgstr "也有安裝"
258
258
259−#: qml/DisabledScreenNotice.qml:42
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
260−msgid "Your device is now connected to an external display."
261+"Your device is now connected to an external display. Use this screen as a "
261−msgstr "您的裝目前已經連線到外部的螢幕."
262+"touch pad to interact with the mouse."
263+msgstr ""
262
264
263#: qml/Greeter/CoverPage.qml:107
265#: qml/Greeter/CoverPage.qml:107
264msgid "Unlock"
266msgid "Unlock"
265msgstr "解鎖"
267msgstr "解鎖"
266
268
267−#: qml/Greeter/LoginList.qml:236
269+#: qml/Greeter/LoginList.qml:239
268msgid "Retry"
270msgid "Retry"
269msgstr "重試"
271msgstr "重試"
270
272
271−#: qml/Greeter/LoginList.qml:237
273+#: qml/Greeter/LoginList.qml:240
272msgid "Tap to unlock"
274msgid "Tap to unlock"
273msgstr "點按以解鎖"
275msgstr "點按以解鎖"
274
276
@@ -399,7 +401,7 @@ msgstr "失敗,點按可重試"
399#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
401#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
400msgctxt "Button: Send a reply message"
402msgctxt "Button: Send a reply message"
401msgid "Send"
403msgid "Send"
402−msgstr ""
404+msgstr "傳送"
403
405
404#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
406#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
405msgctxt "Label: Hint in message indicator line edit"
407msgctxt "Label: Hint in message indicator line edit"
@@ -482,8 +484,8 @@ msgid "Hi!"
482msgstr "您好!"
484msgstr "您好!"
483
485
484#: qml/Wizard/Pages/10-welcome.qml:44
486#: qml/Wizard/Pages/10-welcome.qml:44
485−msgid "Welcome to your Ubuntu phone."
487+msgid "Welcome to your Ubuntu device."
486−msgstr "歡迎使用您的 Ubuntu 手機。"
488+msgstr "歡迎使用您的 Ubuntu 裝置"
487
489
488#: qml/Wizard/Pages/10-welcome.qml:52
490#: qml/Wizard/Pages/10-welcome.qml:52
489msgid "Let’s get started."
491msgid "Let’s get started."
@@ -513,8 +515,8 @@ msgid "Lock security"
513msgstr "安全鎖"
515msgstr "安全鎖"
514
516
515#: qml/Wizard/Pages/30-passwd-type.qml:79
517#: qml/Wizard/Pages/30-passwd-type.qml:79
516−msgid "Please select how you’d like to unlock your phone."
518+msgid "Please select how you’d like to unlock your device."
517−msgstr "請選取您想要的手機解鎖方式。"
519+msgstr "請選擇您想要的裝置解鎖方式。"
518
520
519#: qml/Wizard/Pages/30-passwd-type.qml:102
521#: qml/Wizard/Pages/30-passwd-type.qml:102
520msgctxt "Label: Type of security method"
522msgctxt "Label: Type of security method"
@@ -614,8 +616,8 @@ msgid "Nice work!"
614msgstr "做得漂亮!"
616msgstr "做得漂亮!"
615
617
616#: qml/Wizard/Pages/80-finished.qml:46
618#: qml/Wizard/Pages/80-finished.qml:46
617−msgid "Your phone is now ready to use."
619+msgid "Your device is now ready to use."
618−msgstr "您的手機現在已準備好使用。"
620+msgstr "您的裝置已準備就緒。"
619
621
620#: qml/Wizard/Pages/80-finished.qml:53
622#: qml/Wizard/Pages/80-finished.qml:53
621msgid "Finish"
623msgid "Finish"
@@ -747,6 +749,15 @@ msgstr "%1 〉"
747#~ msgid "Please re-enter"
749#~ msgid "Please re-enter"
748#~ msgstr "請再輸入"
750#~ msgstr "請再輸入"
749
751
752+#~ msgid "Welcome to your Ubuntu phone."
753+#~ msgstr "歡迎使用您的 Ubuntu 手機。"
754+
755+#~ msgid "Please select how you’d like to unlock your phone."
756+#~ msgstr "請選取您想要的手機解鎖方式。"
757+
758+#~ msgid "Your phone is now ready to use."
759+#~ msgstr "您的手機現在已準備好使用。"
760+
750#~ msgid "Manage Scopes"
761#~ msgid "Manage Scopes"
751#~ msgstr "管理 Scopes"
762#~ msgstr "管理 Scopes"
752
763
qml/Components/EdgeBarrierController.qml+2
@@ -30,6 +30,8 @@ MouseArea {
30 // Should trigger the action associated with this edge
30 // Should trigger the action associated with this edge
31 signal passed()
31 signal passed()
32
32
33+ onPressed: mouse.accepted = false;
34+
33 function push(amount) {
35 function push(amount) {
34 if (!root._containsMouse) {
36 if (!root._containsMouse) {
35 return;
37 return;
qml/Components/InputMethod.qml+1−1
@@ -59,7 +59,7 @@ Item {
59 }
59 }
60
60
61 state: {
61 state: {
62− if (surfaceItem.surface && surfaceItem.surfaceState != Mir.MinimizedState) {
62+ if (surfaceItem.surface && surfaceItem.surfaceState != Mir.MinimizedState && root.enabled) {
63 return "shown";
63 return "shown";
64 } else {
64 } else {
65 return "hidden";
65 return "hidden";
qml/Components/PhysicalKeysMapper.qml+32−2
@@ -16,6 +16,7 @@
16
16
17import QtQuick 2.4
17import QtQuick 2.4
18import Powerd 0.1
18import Powerd 0.1
19+import Utils 0.1
19
20
20/*!
21/*!
21 \brief A mapper for the physical keys on the device
22 \brief A mapper for the physical keys on the device
@@ -59,9 +60,24 @@ Item {
59 property bool altTabPressed: false
60 property bool altTabPressed: false
60
61
61 property var powerButtonPressStart: 0
62 property var powerButtonPressStart: 0
63+
64+ // We need to eat ALT presses until we know what they're for (Alt+Tab or going to the app?)
65+ // Once we know if an ALT keypress is for the app, we need to re-inject the pressed event for it
66+ // but we must only do that once.
67+ property bool altPressInjected: false
68+ }
69+
70+ InputEventGenerator {
71+ id: inputEventGenerator
62 }
72 }
63
73
64 function onKeyPressed(event, currentEventTimestamp) {
74 function onKeyPressed(event, currentEventTimestamp) {
75+ if (d.altPressed && !d.altTabPressed && event.key !== Qt.Key_Tab && event.key !== Qt.Key_Alt && !d.altPressInjected) {
76+ // ALT is pressed and another key that is not Tab has been received. Re-inject the alt pressed event
77+ d.altPressInjected = true;
78+ inputEventGenerator.generateKeyEvent(Qt.Key_Alt, true, Qt.NoModifier, currentEventTimestamp - 1, 56);
79+ }
80+
65 if (event.key == Qt.Key_PowerDown || event.key == Qt.Key_PowerOff) {
81 if (event.key == Qt.Key_PowerDown || event.key == Qt.Key_PowerOff) {
66 if (event.isAutoRepeat) {
82 if (event.isAutoRepeat) {
67 if (d.powerButtonPressStart > 0
83 if (d.powerButtonPressStart > 0
@@ -97,7 +113,12 @@ Item {
97 d.volumeUpKeyPressed = true;
113 d.volumeUpKeyPressed = true;
98 }
114 }
99 } else if (event.key == Qt.Key_Alt || (root.controlInsteadOfAlt && event.key == Qt.Key_Control)) {
115 } else if (event.key == Qt.Key_Alt || (root.controlInsteadOfAlt && event.key == Qt.Key_Control)) {
116+ if (!d.altPressed || event.isAutoRepeat) {
117+ // Only eat it if it's the first time we receive alt pressed (or if it's the autorepeat of the first press)
100− d.altPressed = true;
118+ d.altPressed = true;
119+ event.accepted = true;
120+ d.altPressInjected = false;
121+ }
101 } else if (event.key == Qt.Key_Tab) {
122 } else if (event.key == Qt.Key_Tab) {
102 if (d.altPressed && !d.altTabPressed) {
123 if (d.altPressed && !d.altTabPressed) {
103 d.altTabPressed = true;
124 d.altTabPressed = true;
@@ -119,10 +140,19 @@ Item {
119 d.volumeUpKeyPressed = false;
140 d.volumeUpKeyPressed = false;
120 if (!d.volumeDownKeyPressed) d.ignoreVolumeEvents = false;
141 if (!d.volumeDownKeyPressed) d.ignoreVolumeEvents = false;
121 } else if (event.key == Qt.Key_Alt || (root.controlInsteadOfAlt && event.key == Qt.Key_Control)) {
142 } else if (event.key == Qt.Key_Alt || (root.controlInsteadOfAlt && event.key == Qt.Key_Control)) {
122− d.altPressed = false;
123 if (d.altTabPressed) {
143 if (d.altTabPressed) {
124 d.altTabPressed = false;
144 d.altTabPressed = false;
125 event.accepted = true;
145 event.accepted = true;
146+ } else if (d.altPressed && !d.altPressInjected) {
147+ // Alt was released but nothing else. Let's inject a pressed event and also forward the release.
148+ d.altPressInjected = true;
149+ inputEventGenerator.generateKeyEvent(Qt.Key_Alt, true, Qt.AltModifer, currentEventTimestamp, 56);
150+ d.altPressInjected = false;
151+ }
152+ d.altPressed = false;
153+ } else if (event.key == Qt.Key_Tab) {
154+ if (d.altTabPressed) {
155+ event.accepted = true;
126 }
156 }
127 }
157 }
128 }
158 }
qml/Components/ResponsiveGridView.qml+2−4
@@ -18,12 +18,10 @@ import QtQuick 2.4
18import Ubuntu.Components 1.3
18import Ubuntu.Components 1.3
19
19
20/*
20/*
21− Essentially a GridView where you can specify the maximum number of columns it can have.
21+ Essentially a GridView
22 */
22 */
23Item {
23Item {
24 property int minimumHorizontalSpacing: units.gu(0.5)
24 property int minimumHorizontalSpacing: units.gu(0.5)
25− // property int minimumNumberOfColumns: 2 // FIXME: not implemented
26− property int maximumNumberOfColumns: 6
27 readonly property int columns: gridView.columns
25 readonly property int columns: gridView.columns
28 property alias verticalSpacing: gridView.verticalSpacing
26 property alias verticalSpacing: gridView.verticalSpacing
29 readonly property alias margins: gridView.margin
27 readonly property alias margins: gridView.margin
@@ -81,7 +79,7 @@ Item {
81 }
79 }
82
80
83 property real allocatableHorizontalSpace: parent.width - columns * delegateWidth
81 property real allocatableHorizontalSpace: parent.width - columns * delegateWidth
84− property int columns: Math.min(columnsForSpacing(minimumHorizontalSpacing), maximumNumberOfColumns)
82+ property int columns: columnsForSpacing(minimumHorizontalSpacing)
85 property real horizontalSpacing: spacingForColumns(columns)
83 property real horizontalSpacing: spacingForColumns(columns)
86 property real verticalSpacing: horizontalSpacing
84 property real verticalSpacing: horizontalSpacing
87 property int margin: allocatableHorizontalSpace - columns * horizontalSpacing
85 property int margin: allocatableHorizontalSpace - columns * horizontalSpacing
qml/Components/VirtualTouchPad.qmlnew file+138
@@ -0,0 +1,138 @@
1+/*
2+ * Copyright (C) 2015 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+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+import UInput 0.1
20+
21+Item {
22+ property var uinput: UInput {
23+ Component.onCompleted: createMouse();
24+ Component.onDestruction: removeMouse();
25+ }
26+
27+ readonly property bool pressed: point1.pressed || point2.pressed
28+
29+ MultiPointTouchArea {
30+ objectName: "touchPadArea"
31+ anchors.fill: parent
32+
33+ // FIXME: Once we have Qt DPR support, this should be Qt.styleHints.startDragDistance
34+ readonly property int clickThreshold: units.gu(1.5)
35+ property bool isClick: false
36+ property bool isDoubleClick: false
37+ property bool isDrag: false
38+
39+ onPressed: {
40+ // If double-tapping *really* fast, it could happen that we end up having only point2 pressed
41+ // Make sure we check for both combos, only point1 or only point2
42+ if (((point1.pressed && !point2.pressed) || (!point1.pressed && point2.pressed))
43+ && clickTimer.running) {
44+ clickTimer.stop();
45+ uinput.pressMouse(UInput.ButtonLeft)
46+ isDoubleClick = true;
47+ }
48+ isClick = true;
49+ }
50+
51+ onUpdated: {
52+ switch (touchPoints.length) {
53+ case 1:
54+ moveMouse(touchPoints);
55+ return;
56+ case 2:
57+ scroll(touchPoints);
58+ return;
59+ }
60+ }
61+
62+ onReleased: {
63+ if (isDoubleClick || isDrag) {
64+ uinput.releaseMouse(UInput.ButtonLeft)
65+ isDoubleClick = false;
66+ }
67+ if (isClick) {
68+ clickTimer.scheduleClick(point1.pressed ? UInput.ButtonRight : UInput.ButtonLeft)
69+ }
70+ isClick = false;
71+ isDrag = false;
72+ }
73+
74+ Timer {
75+ id: clickTimer
76+ repeat: false
77+ interval: 200
78+ property int button: UInput.ButtonLeft
79+ onTriggered: {
80+ uinput.pressMouse(button);
81+ uinput.releaseMouse(button);
82+ }
83+ function scheduleClick(button) {
84+ clickTimer.button = button;
85+ clickTimer.start();
86+ }
87+ }
88+
89+ function moveMouse(touchPoints) {
90+ var tp = touchPoints[0];
91+ if (isClick &&
92+ (Math.abs(tp.x - tp.startX) > clickThreshold ||
93+ Math.abs(tp.y - tp.startY) > clickThreshold)) {
94+ isClick = false;
95+ isDrag = true;
96+ }
97+
98+ uinput.moveMouse(tp.x - tp.previousX, tp.y - tp.previousY);
99+ }
100+
101+ function scroll(touchPoints) {
102+ var dh = 0;
103+ var dv = 0;
104+ var tp = touchPoints[0];
105+ if (isClick &&
106+ (Math.abs(tp.x - tp.startX) > clickThreshold ||
107+ Math.abs(tp.y - tp.startY) > clickThreshold)) {
108+ isClick = false;
109+ }
110+ dh += tp.x - tp.previousX;
111+ dv += tp.y - tp.previousY;
112+
113+ tp = touchPoints[1];
114+ if (isClick &&
115+ (Math.abs(tp.x - tp.startX) > clickThreshold ||
116+ Math.abs(tp.y - tp.startY) > clickThreshold)) {
117+ isClick = false;
118+ }
119+ dh += tp.x - tp.previousX;
120+ dv += tp.y - tp.previousY;
121+
122+ // As we added up the movement of the two fingers, let's divide it again by 2
123+ dh /= 2;
124+ dv /= 2;
125+
126+ uinput.scrollMouse(dh, dv);
127+ }
128+
129+ touchPoints: [
130+ TouchPoint {
131+ id: point1
132+ },
133+ TouchPoint {
134+ id: point2
135+ }
136+ ]
137+ }
138+}
qml/Components/VolumeControl.qml+1−6
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013-2015 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 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
@@ -28,10 +28,6 @@ Item {
28 readonly property int stepDown: -1
28 readonly property int stepDown: -1
29
29
30 property var indicators // passed from Shell.qml
30 property var indicators // passed from Shell.qml
31− readonly property bool showNotification: indicators && indicators.fullyOpened && indicators.currentIndicator === "indicator-sound"
32− onShowNotificationChanged: { // disallow the volume notification when using the slider, lpbug#1484126
33− actionGroup.indicatorsAction.updateState(root.showNotification);
34− }
35
31
36 GlobalShortcut {
32 GlobalShortcut {
37 id: muteShortcut
33 id: muteShortcut
@@ -47,7 +43,6 @@ Item {
47
43
48 property variant actionObject: action("volume")
44 property variant actionObject: action("volume")
49 property variant muteActionObject: indicators.indicatorsModel.profile === "desktop" ? action("mute") : action("silent-mode")
45 property variant muteActionObject: indicators.indicatorsModel.profile === "desktop" ? action("mute") : action("silent-mode")
50− property variant indicatorsAction: action("indicator-shown")
51 }
46 }
52
47
53 function volumeUp() {
48 function volumeUp() {
qml/Components/ZoomableImage.qml+1−1
@@ -65,7 +65,7 @@ Item {
65 anchors.fill: parent
65 anchors.fill: parent
66 fillMode: Image.PreserveAspectFit
66 fillMode: Image.PreserveAspectFit
67
67
68− readonly property int sourceSizeMultiplier: 3
68+ readonly property int sourceSizeMultiplier: root.zoomable ? 3 : 1
69
69
70 sourceSize.width: root.width * sourceSizeMultiplier <= root.height * sourceSizeMultiplier ? root.width * sourceSizeMultiplier : 0
70 sourceSize.width: root.width * sourceSizeMultiplier <= root.height * sourceSizeMultiplier ? root.width * sourceSizeMultiplier : 0
71 sourceSize.height: root.height * sourceSizeMultiplier <= root.width * sourceSizeMultiplier ? root.height * sourceSizeMultiplier : 0
71 sourceSize.height: root.height * sourceSizeMultiplier <= root.width * sourceSizeMultiplier ? root.height * sourceSizeMultiplier : 0
qml/Dash/CardCarousel.qml−1
@@ -64,7 +64,6 @@ DashRenderer {
64 item.fixedHeaderHeight = Qt.binding(function() { return carousel.headerHeight; });
64 item.fixedHeaderHeight = Qt.binding(function() { return carousel.headerHeight; });
65 item.height = Qt.binding(function() { return cardTool.cardHeight; });
65 item.height = Qt.binding(function() { return cardTool.cardHeight; });
66 item.cardData = Qt.binding(function() { return model; });
66 item.cardData = Qt.binding(function() { return model; });
67− item.components = Qt.binding(function() { return cardTool.components; });
68 item.fontScale = Qt.binding(function() { return carousel.fontScale; });
67 item.fontScale = Qt.binding(function() { return carousel.fontScale; });
69 item.showHeader = Qt.binding(function() { return loader.explicitlyScaled; });
68 item.showHeader = Qt.binding(function() { return loader.explicitlyScaled; });
70 item.titleAlignment = Qt.binding(function() { return cardTool.titleAlignment; });
69 item.titleAlignment = Qt.binding(function() { return cardTool.titleAlignment; });
qml/Dash/CardGrid.qml+3−2
@@ -20,12 +20,14 @@ import "../Components"
20DashRenderer {
20DashRenderer {
21 id: root
21 id: root
22
22
23+ readonly property real defaultMinimumHorizontalSpacing: units.gu(1)
23 readonly property int collapsedRows: {
24 readonly property int collapsedRows: {
24 if (!cardTool || !cardTool.template || typeof cardTool.template["collapsed-rows"] != "number") return 2;
25 if (!cardTool || !cardTool.template || typeof cardTool.template["collapsed-rows"] != "number") return 2;
25 return cardTool.template["collapsed-rows"];
26 return cardTool.template["collapsed-rows"];
26 }
27 }
27 property string artShapeStyle: "inset";
28 property string artShapeStyle: "inset";
28 property string backgroundShapeStyle: "inset";
29 property string backgroundShapeStyle: "inset";
30+ property alias minimumHorizontalSpacing: grid.minimumHorizontalSpacing
29
31
30 expandedHeight: grid.totalContentHeight
32 expandedHeight: grid.totalContentHeight
31 collapsedHeight: Math.min(grid.contentHeightForRows(collapsedRows, grid.cellHeight), expandedHeight)
33 collapsedHeight: Math.min(grid.contentHeightForRows(collapsedRows, grid.cellHeight), expandedHeight)
@@ -45,7 +47,7 @@ DashRenderer {
45 ResponsiveGridView {
47 ResponsiveGridView {
46 id: grid
48 id: grid
47 anchors.fill: parent
49 anchors.fill: parent
48− minimumHorizontalSpacing: units.gu(1)
50+ minimumHorizontalSpacing: root.defaultMinimumHorizontalSpacing
49 delegateWidth: cardTool.cardWidth
51 delegateWidth: cardTool.cardWidth
50 delegateHeight: cardTool.cardHeight
52 delegateHeight: cardTool.cardHeight
51 verticalSpacing: units.gu(1)
53 verticalSpacing: units.gu(1)
@@ -68,7 +70,6 @@ DashRenderer {
68 item.fixedHeaderHeight = Qt.binding(function() { return cardTool.headerHeight; });
70 item.fixedHeaderHeight = Qt.binding(function() { return cardTool.headerHeight; });
69 item.fixedArtShapeSize = Qt.binding(function() { return cardTool.artShapeSize; });
71 item.fixedArtShapeSize = Qt.binding(function() { return cardTool.artShapeSize; });
70 item.cardData = Qt.binding(function() { return model; });
72 item.cardData = Qt.binding(function() { return model; });
71− item.components = Qt.binding(function() { return cardTool.components; });
72 item.titleAlignment = Qt.binding(function() { return cardTool.titleAlignment; });
73 item.titleAlignment = Qt.binding(function() { return cardTool.titleAlignment; });
73 item.scopeStyle = root.scopeStyle;
74 item.scopeStyle = root.scopeStyle;
74 item.artShapeStyle = root.artShapeStyle;
75 item.artShapeStyle = root.artShapeStyle;
qml/Dash/CardHorizontalList.qml−1
@@ -53,7 +53,6 @@ DashRenderer {
53 item.fixedArtShapeSize = Qt.binding(function() { return cardTool.artShapeSize; });
53 item.fixedArtShapeSize = Qt.binding(function() { return cardTool.artShapeSize; });
54 item.fixedHeaderHeight = Qt.binding(function() { return cardTool.headerHeight; });
54 item.fixedHeaderHeight = Qt.binding(function() { return cardTool.headerHeight; });
55 item.cardData = Qt.binding(function() { return model; });
55 item.cardData = Qt.binding(function() { return model; });
56− item.components = Qt.binding(function() { return cardTool.components; });
57 item.titleAlignment = Qt.binding(function() { return cardTool.titleAlignment; });
56 item.titleAlignment = Qt.binding(function() { return cardTool.titleAlignment; });
58 item.scopeStyle = root.scopeStyle;
57 item.scopeStyle = root.scopeStyle;
59 }
58 }
qml/Dash/CardTool.qml−1
@@ -220,7 +220,6 @@ Item {
220 onLoaded: {
220 onLoaded: {
221 item.objectName = "cardToolCard";
221 item.objectName = "cardToolCard";
222 item.asynchronous = false;
222 item.asynchronous = false;
223− item.components = Qt.binding(function() { return cardTool.components; });
224 item.width = Qt.binding(function() { return cardTool.cardWidth !== -1 ? cardTool.cardWidth : item.implicitWidth; });
223 item.width = Qt.binding(function() { return cardTool.cardWidth !== -1 ? cardTool.cardWidth : item.implicitWidth; });
225 item.height = Qt.binding(function() { return cardTool.cardHeight !== -1 ? cardTool.cardHeight : item.implicitHeight; });
224 item.height = Qt.binding(function() { return cardTool.cardHeight !== -1 ? cardTool.cardHeight : item.implicitHeight; });
226 }
225 }
qml/Dash/CardVerticalJournal.qml−1
@@ -72,7 +72,6 @@ DashRenderer {
72 item.fixedArtShapeSize = Qt.binding(function() { return cardTool.artShapeSize; });
72 item.fixedArtShapeSize = Qt.binding(function() { return cardTool.artShapeSize; });
73 item.fixedHeaderHeight = Qt.binding(function() { return cardTool.headerHeight; });
73 item.fixedHeaderHeight = Qt.binding(function() { return cardTool.headerHeight; });
74 item.cardData = Qt.binding(function() { return model; });
74 item.cardData = Qt.binding(function() { return model; });
75− item.components = Qt.binding(function() { return cardTool.components; });
76 item.titleAlignment = Qt.binding(function() { return cardTool.titleAlignment; });
75 item.titleAlignment = Qt.binding(function() { return cardTool.titleAlignment; });
77 item.scopeStyle = root.scopeStyle;
76 item.scopeStyle = root.scopeStyle;
78 }
77 }
qml/Dash/DashBackground.qml+6−2
@@ -15,12 +15,16 @@
15 */
15 */
16
16
17import QtQuick 2.4
17import QtQuick 2.4
18+import QtQuick.Window 2.2
19+import Ubuntu.Thumbnailer 0.1
18
20
19Image {
21Image {
20− source: anchors.fill.width > anchors.fill.height ? "graphics/paper_landscape.png" : "graphics/paper_portrait.png"
22+ source: "image://thumbnailer/" + Qt.resolvedUrl("graphics/paper.png")
21 fillMode: Image.PreserveAspectCrop
23 fillMode: Image.PreserveAspectCrop
22 horizontalAlignment: Image.AlignRight
24 horizontalAlignment: Image.AlignRight
23 verticalAlignment: Image.AlignTop
25 verticalAlignment: Image.AlignTop
26+ // avoid CPU scaling when window size changes
27+ readonly property int maxSize: Math.max(Screen.width, Screen.height)
24− sourceSize.width: anchors.fill.width
28+ sourceSize.width: maxSize
25 sourceSize.height: 0
29 sourceSize.height: 0
26}
30}
qml/Dash/GenericScopeView.qml+20−9
@@ -360,17 +360,10 @@ FocusScope {
360 baseItem.expand(shouldExpand, false /*animate*/);
360 baseItem.expand(shouldExpand, false /*animate*/);
361 }
361 }
362 updateRanges();
362 updateRanges();
363+ clickScopeSizingHacks();
363 if (scope && scope.id === "clickscope") {
364 if (scope && scope.id === "clickscope") {
364 if (categoryId === "predefined" || categoryId === "local") {
365 if (categoryId === "predefined" || categoryId === "local") {
365− // Yeah, hackish :/
366− if (scopeView.width > units.gu(45)) {
367− if (scopeView.width >= units.gu(70)) {
368− cardTool.cardWidth = units.gu(9);
369− } else {
370− cardTool.cardWidth = units.gu(10);
371− }
372− }
373− cardTool.artShapeSize = Qt.size(units.gu(8), units.gu(7.5));
366+ cardTool.artShapeSize = Qt.binding(function() { return Qt.size(units.gu(8), units.gu(7.5)) });
374 item.artShapeStyle = "icon";
367 item.artShapeStyle = "icon";
375 } else {
368 } else {
376 // Should be ubuntu store icon
369 // Should be ubuntu store icon
@@ -387,6 +380,23 @@ FocusScope {
387 }
380 }
388 }
381 }
389
382
383+ function clickScopeSizingHacks() {
384+ if (scope && scope.id === "clickscope" &&
385+ (categoryId === "predefined" || categoryId === "local")) {
386+ // Yeah, hackish :/
387+ if (scopeView.width > units.gu(45)) {
388+ if (scopeView.width >= units.gu(70)) {
389+ cardTool.cardWidth = units.gu(11);
390+ item.minimumHorizontalSpacing = units.gu(5);
391+ return;
392+ } else {
393+ cardTool.cardWidth = units.gu(10);
394+ }
395+ }
396+ item.minimumHorizontalSpacing = item.defaultMinimumHorizontalSpacing;
397+ }
398+ }
399+
390 Connections {
400 Connections {
391 target: rendererLoader.item
401 target: rendererLoader.item
392 onClicked: { // (int index, var result, var item, var itemModel)
402 onClicked: { // (int index, var result, var item, var itemModel)
@@ -416,6 +426,7 @@ FocusScope {
416 target: scopeView
426 target: scopeView
417 onIsCurrentChanged: rendererLoader.updateRanges();
427 onIsCurrentChanged: rendererLoader.updateRanges();
418 onVisibleToParentChanged: rendererLoader.updateRanges();
428 onVisibleToParentChanged: rendererLoader.updateRanges();
429+ onWidthChanged: rendererLoader.clickScopeSizingHacks();
419 }
430 }
420 Connections {
431 Connections {
421 target: holdingList
432 target: holdingList
qml/Dash/Previews/PreviewAudioPlayback.qml+6−1
@@ -71,6 +71,7 @@ PreviewWidget {
71 width: trackRow.column1Width
71 width: trackRow.column1Width
72 height: width
72 height: width
73 iconSource: DashAudioPlayer.playing && trackItem.isPlayingItem ? "image://theme/media-playback-pause" : "image://theme/media-playback-start"
73 iconSource: DashAudioPlayer.playing && trackItem.isPlayingItem ? "image://theme/media-playback-pause" : "image://theme/media-playback-start"
74+ activeFocusOnPress: false
74
75
75 // Can't be "transparent" or "#00xxxxxx" as the button optimizes away the surrounding shape
76 // Can't be "transparent" or "#00xxxxxx" as the button optimizes away the surrounding shape
76 // FIXME when this is resolved: https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1251685
77 // FIXME when this is resolved: https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1251685
@@ -84,7 +85,11 @@ PreviewWidget {
84 DashAudioPlayer.play();
85 DashAudioPlayer.play();
85 }
86 }
86 } else {
87 } else {
88+ var playlist = [];
89+ for (var i = 0; i < trackRepeater.count; ++i) {
90+ playlist.push(trackRepeater.itemAt(i).sourceUrl);
91+ }
87− DashAudioPlayer.playSource(sourceUrl);
92+ DashAudioPlayer.playSource(sourceUrl, playlist);
88 }
93 }
89 }
94 }
90 }
95 }
qml/Dash/Previews/PreviewHeader.qml+1−1
@@ -35,7 +35,7 @@ PreviewWidget {
35 Item {
35 Item {
36 id: headerRoot
36 id: headerRoot
37 objectName: "innerPreviewHeader"
37 objectName: "innerPreviewHeader"
38− readonly property url mascot: root.widgetData["mascot"] || ""
38+ readonly property url mascot: root.widgetData["mascot"] || fallback
39 readonly property url fallback: root.widgetData["fallback"] || ""
39 readonly property url fallback: root.widgetData["fallback"] || ""
40 readonly property string title: root.widgetData["title"] || ""
40 readonly property string title: root.widgetData["title"] || ""
41 readonly property string subtitle: root.widgetData["subtitle"] || ""
41 readonly property string subtitle: root.widgetData["subtitle"] || ""
qml/Dash/Previews/PreviewImageGallery.qml+2−2
@@ -59,7 +59,7 @@ PreviewWidget {
59 top: parent.top
59 top: parent.top
60 bottom: parent.bottom
60 bottom: parent.bottom
61 }
61 }
62− source: modelData ? modelData : ""
62+ source: modelData || root.widgetData["fallback"] || ""
63 scaleTo: "height"
63 scaleTo: "height"
64 initialWidth: units.gu(13)
64 initialWidth: units.gu(13)
65 pressed: mouseArea.pressed
65 pressed: mouseArea.pressed
@@ -128,7 +128,7 @@ PreviewWidget {
128 bottom: parent.bottom
128 bottom: parent.bottom
129 }
129 }
130 width: overlay.width
130 width: overlay.width
131− source: modelData ? modelData : ""
131+ source: modelData || root.widgetData["fallback"] || ""
132 fillMode: Image.PreserveAspectFit
132 fillMode: Image.PreserveAspectFit
133 sourceSize { width: screenshot.width; height: screenshot.height }
133 sourceSize { width: screenshot.width; height: screenshot.height }
134
134
qml/Dash/Previews/PreviewRatingEdit.qml+1
@@ -75,6 +75,7 @@ PreviewWidget {
75 reviewText: widgetData["review"]
75 reviewText: widgetData["review"]
76
76
77 onTriggered: root.triggered(widgetId, actionId, data);
77 onTriggered: root.triggered(widgetId, actionId, data);
78+ onMakeSureVisible: root.makeSureVisible(item);
78 }
79 }
79
80
80}
81}
qml/Dash/Previews/PreviewZoomableImage.qml+2−2
@@ -42,7 +42,7 @@ PreviewWidget {
42 right: parent.right
42 right: parent.right
43 }
43 }
44 scaleTo: "width"
44 scaleTo: "width"
45− source: widgetData["source"]
45+ source: widgetData["source"] || widgetData["fallback"] || ""
46 asynchronous: true
46 asynchronous: true
47 useUbuntuShape: false
47 useUbuntuShape: false
48 pressed: mouseArea.pressed
48 pressed: mouseArea.pressed
@@ -86,7 +86,7 @@ PreviewWidget {
86
86
87 delegate: ZoomableImage {
87 delegate: ZoomableImage {
88 anchors.fill: parent
88 anchors.fill: parent
89− source: widgetData["source"]
89+ source: widgetData["source"] || widgetData["fallback"] || ""
90 zoomable: widgetData["zoomable"] ? widgetData["zoomable"] : false
90 zoomable: widgetData["zoomable"] ? widgetData["zoomable"] : false
91 // If modelData would change after failing to load it would not be
91 // If modelData would change after failing to load it would not be
92 // reloaded since the source binding is destroyed by the source = fallback
92 // reloaded since the source binding is destroyed by the source = fallback
qml/Dash/graphics/paper.pngnew file

Binary file not shown.

qml/Dash/graphics/paper_landscape@27.pngdeleted

Binary file not shown.

qml/Dash/graphics/paper_portrait@27.pngdeleted

Binary file not shown.

qml/DisabledScreenNotice.qml+72−19
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2016 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
@@ -15,35 +15,88 @@
15 */
15 */
16
16
17import QtQuick 2.4
17import QtQuick 2.4
18+import QtQuick.Layouts 1.1
18import Ubuntu.Components 1.3
19import Ubuntu.Components 1.3
20+import QtQuick.Window 2.2
19import "Components"
21import "Components"
20
22
21−Image {
23+Item {
22 id: root
24 id: root
23
25
26+ property bool infoNoteDisplayed: true
27+
24 WallpaperResolver {
28 WallpaperResolver {
25 width: root.width
29 width: root.width
26 id: wallpaperResolver
30 id: wallpaperResolver
27 }
31 }
28
32
29− source: wallpaperResolver.background
33+ Item {
34+ id: contentContainer
35+ anchors.centerIn: parent
36+ height: rotation == 90 || rotation == 270 ? parent.width : parent.height
37+ width: rotation == 90 || rotation == 270 ? parent.height : parent.width
30
38
31− UbuntuShape {
39+ rotation: {
32− anchors.fill: text
40+ switch (Screen.orientation) {
33− anchors.margins: -units.gu(2)
41+ case Qt.PortraitOrientation:
34− backgroundColor: "black"
42+ return 0;
35− opacity: 0.4
43+ case Qt.LandscapeOrientation:
44+ return 270;
45+ case Qt.InvertedPortraitOrientation:
46+ return 180;
47+ case Qt.InvertedLandscapeOrientation:
48+ return 90;
36− }
49+ }
50+ }
51+ transformOrigin: Item.Center
37
52
53+ VirtualTouchPad {
54+ anchors.fill: parent
55+
56+ onPressedChanged: {
57+ if (pressed && infoNoteDisplayed) {
58+ infoNoteDisplayed = false;
59+ }
60+ }
61+ }
62+
63+ Image {
64+ anchors.fill: parent
65+ source: wallpaperResolver.background
66+ }
67+
68+ Item {
69+ objectName: "infoNoticeArea"
70+ anchors.fill: parent
71+ opacity: infoNoteDisplayed ? 1 : 0
72+ visible: opacity > 0
73+ Behavior on opacity {
74+ UbuntuNumberAnimation { }
75+ }
76+
77+ Rectangle {
78+ anchors.fill: parent
79+ color: "black"
80+ opacity: 0.4
81+ }
82+
38− Label {
83+ Label {
39− id: text
84+ id: text
40− anchors.centerIn: parent
85+ anchors.centerIn: parent
41− width: parent.width / 2
86+ width: parent.width - units.gu(8)
42− text: i18n.tr("Your device is now connected to an external display.")
87+ text: i18n.tr("Your device is now connected to an external display. Use this screen as a touch pad to interact with the mouse.")
43− color: "white"
88+ color: "white"
44− horizontalAlignment: Text.AlignHCenter
89+ horizontalAlignment: Text.AlignHCenter
45− verticalAlignment: Text.AlignVCenter
90+ verticalAlignment: Text.AlignVCenter
46− fontSize: "x-large"
91+ fontSize: "x-large"
47− wrapMode: Text.Wrap
92+ wrapMode: Text.Wrap
93+ }
94+ }
95+
96+ InputMethod {
97+ id: inputMethod
98+ objectName: "inputMethod"
99+ anchors.fill: parent
100+ }
48 }
101 }
49}
102}
qml/Greeter/LoginList.qml+3
@@ -22,6 +22,7 @@ Item {
22 id: root
22 id: root
23
23
24 property alias model: userList.model
24 property alias model: userList.model
25+ property bool alphanumeric: true
25 property int currentIndex
26 property int currentIndex
26 property bool locked
27 property bool locked
27
28
@@ -231,6 +232,8 @@ Item {
231 width: parent.width - anchors.margins * 2
232 width: parent.width - anchors.margins * 2
232 opacity: userList.movingInternally ? 0 : 1
233 opacity: userList.movingInternally ? 0 : 1
233
234
235+ inputMethodHints: root.alphanumeric ? Qt.ImhNone : Qt.ImhDigitsOnly
236+
234 property string promptText
237 property string promptText
235 placeholderText: root.wasPrompted ? promptText
238 placeholderText: root.wasPrompted ? promptText
236 : (root.locked ? i18n.tr("Retry")
239 : (root.locked ? i18n.tr("Retry")
qml/Greeter/WideView.qml+1−1
@@ -27,7 +27,7 @@ FocusScope {
27 property alias backgroundTopMargin: coverPage.backgroundTopMargin
27 property alias backgroundTopMargin: coverPage.backgroundTopMargin
28 property alias background: coverPage.background
28 property alias background: coverPage.background
29 property bool locked
29 property bool locked
30− property bool alphanumeric // unused
30+ property alias alphanumeric: loginList.alphanumeric
31 property alias userModel: loginList.model
31 property alias userModel: loginList.model
32 property alias infographicModel: coverPage.infographicModel
32 property alias infographicModel: coverPage.infographicModel
33 readonly property bool fullyShown: coverPage.showProgress === 1
33 readonly property bool fullyShown: coverPage.showProgress === 1
qml/Launcher/Launcher.qml+18−19
@@ -51,9 +51,9 @@ Item {
51
51
52 onStateChanged: {
52 onStateChanged: {
53 if (state == "") {
53 if (state == "") {
54− dismissTimer.stop()
54+ panel.dismissTimer.stop()
55 } else {
55 } else {
56− dismissTimer.restart()
56+ panel.dismissTimer.restart()
57 }
57 }
58 }
58 }
59
59
@@ -96,21 +96,6 @@ Item {
96 property string mode: "teasing"
96 property string mode: "teasing"
97 }
97 }
98
98
99− Timer {
100− id: dismissTimer
101− objectName: "dismissTimer"
102− interval: 500
103− onTriggered: {
104− if (root.autohideEnabled) {
105− if (!panel.preventHiding) {
106− root.state = ""
107− } else {
108− dismissTimer.restart()
109− }
110− }
111− }
112− }
113−
114 // Because the animation on x is disabled while dragging
99 // Because the animation on x is disabled while dragging
115 // switching state directly in the drag handlers would not animate
100 // switching state directly in the drag handlers would not animate
116 // the completion of the hide/reveal gesture. Lets update the state
101 // the completion of the hide/reveal gesture. Lets update the state
@@ -238,6 +223,20 @@ Item {
238 visible: root.x > 0 || x > -width || dragArea.pressed
223 visible: root.x > 0 || x > -width || dragArea.pressed
239 model: LauncherModel
224 model: LauncherModel
240
225
226+ property var dismissTimer: Timer { interval: 500 }
227+ Connections {
228+ target: panel.dismissTimer
229+ onTriggered: {
230+ if (root.autohideEnabled) {
231+ if (!panel.preventHiding) {
232+ root.state = ""
233+ } else {
234+ panel.dismissTimer.restart()
235+ }
236+ }
237+ }
238+ }
239+
241 property bool animate: true
240 property bool animate: true
242
241
243 onApplicationSelected: {
242 onApplicationSelected: {
@@ -250,8 +249,8 @@ Item {
250 }
249 }
251
250
252 onPreventHidingChanged: {
251 onPreventHidingChanged: {
253− if (dismissTimer.running) {
252+ if (panel.dismissTimer.running) {
254− dismissTimer.restart();
253+ panel.dismissTimer.restart();
255 }
254 }
256 }
255 }
257
256
qml/OrientedShell.qml+28−14
@@ -18,6 +18,7 @@ import QtQuick 2.4
18import QtQuick.Window 2.2
18import QtQuick.Window 2.2
19import Unity.InputInfo 0.1
19import Unity.InputInfo 0.1
20import Unity.Session 0.1
20import Unity.Session 0.1
21+import Unity.Screens 0.1
21import GSettings 1.0
22import GSettings 1.0
22import "Components"
23import "Components"
23import "Rotation"
24import "Rotation"
@@ -78,6 +79,15 @@ Rectangle {
78 deviceFilter: InputInfo.Keyboard
79 deviceFilter: InputInfo.Keyboard
79 }
80 }
80
81
82+ InputDeviceModel {
83+ id: touchScreensModel
84+ deviceFilter: InputInfo.TouchScreen
85+ }
86+
87+ Screens {
88+ id: screens
89+ }
90+
81 property int orientation
91 property int orientation
82 onPhysicalOrientationChanged: {
92 onPhysicalOrientationChanged: {
83 if (!orientationLocked) {
93 if (!orientationLocked) {
@@ -97,8 +107,7 @@ Rectangle {
97 }
107 }
98 // We need to manually update this on startup as the binding
108 // We need to manually update this on startup as the binding
99 // below doesn't seem to have any effect at that stage
109 // below doesn't seem to have any effect at that stage
100− oskSettings.stayHidden = keyboardsModel.count > 0
101− oskSettings.disableHeight = shell.usageScenario == "desktop"
110+ oskSettings.disableHeight = !shell.oskEnabled || shell.usageScenario == "desktop"
102 }
111 }
103
112
104 // we must rotate to a supported orientation regardless of shell's preference
113 // we must rotate to a supported orientation regardless of shell's preference
@@ -106,17 +115,10 @@ Rectangle {
106 (shell.orientation & supportedOrientations) === 0 ? true
115 (shell.orientation & supportedOrientations) === 0 ? true
107 : shell.orientationChangesEnabled
116 : shell.orientationChangesEnabled
108
117
109−
110− Binding {
111− target: oskSettings
112− property: "stayHidden"
113− value: keyboardsModel.count > 0
114− }
115−
116 Binding {
118 Binding {
117 target: oskSettings
119 target: oskSettings
118 property: "disableHeight"
120 property: "disableHeight"
119− value: shell.usageScenario == "desktop"
121+ value: !shell.oskEnabled || shell.usageScenario == "desktop"
120 }
122 }
121
123
122 readonly property int supportedOrientations: shell.supportedOrientations
124 readonly property int supportedOrientations: shell.supportedOrientations
@@ -189,6 +191,11 @@ Rectangle {
189 nativeHeight: root.height
191 nativeHeight: root.height
190 mode: applicationArguments.mode
192 mode: applicationArguments.mode
191 hasMouse: miceModel.count + touchPadModel.count > 0
193 hasMouse: miceModel.count + touchPadModel.count > 0
194+ // TODO: Factor in if the current screen is a touch screen and if the user wants to
195+ // have multiple keyboards around. For now we only enable one keyboard at a time
196+ // thus hiding it here if there is a physical one around or if we have a second
197+ // screen (the virtual touchpad & osk on the phone) attached.
198+ oskEnabled: keyboardsModel.count === 0 && screens.count === 1
192
199
193 // TODO: Factor in the connected input devices (eg: physical keyboard, mouse, touchscreen),
200 // TODO: Factor in the connected input devices (eg: physical keyboard, mouse, touchscreen),
194 // what's the output device (eg: big TV, desktop monitor, phone display), etc.
201 // what's the output device (eg: big TV, desktop monitor, phone display), etc.
@@ -202,11 +209,18 @@ Rectangle {
202 return "tablet";
209 return "tablet";
203 }
210 }
204 } else { // automatic
211 } else { // automatic
212+ var longEdgeWidth = Math.max(root.width, root.height)
213+ if (longEdgeWidth > units.gu(120)) {
205− if (miceModel.count + touchPadModel.count > 0) {
214+ if (keyboardsModel.count + miceModel.count + touchPadModel.count > 0) {
206− return "desktop";
215+ return "desktop";
207− } else {
216+ }
208− return deviceConfiguration.category;
217+ } else if (longEdgeWidth > units.gu(90)){
218+ if (miceModel.count + touchPadModel.count > 0) {
219+ return "desktop";
220+ }
209 }
221 }
222+
223+ return deviceConfiguration.category;
210 }
224 }
211 }
225 }
212
226
qml/Panel/IndicatorItem.qml+57−7
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013-2014 Canonical Ltd.
2+ * Copyright 2013-2016 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 Lesser General Public License as published by
5 * it under the terms of the GNU Lesser General Public License as published by
@@ -17,6 +17,7 @@
17import QtQuick 2.4
17import QtQuick 2.4
18import Ubuntu.Components 1.3
18import Ubuntu.Components 1.3
19import Ubuntu.Settings.Components 0.1
19import Ubuntu.Settings.Components 0.1
20+import QMenuModel 0.1
20import "Indicators"
21import "Indicators"
21
22
22IndicatorDelegate {
23IndicatorDelegate {
@@ -36,13 +37,24 @@ IndicatorDelegate {
36 return theme.palette.normal.backgroundText;
37 return theme.palette.normal.backgroundText;
37 }
38 }
38
39
39− signal clicked()
40−
41 implicitWidth: mainItems.width
40 implicitWidth: mainItems.width
42
41
43 MouseArea {
42 MouseArea {
43+ readonly property int stepUp: 1
44+ readonly property int stepDown: -1
45+
44 anchors.fill: parent
46 anchors.fill: parent
47+ acceptedButtons: Qt.MiddleButton
45− onClicked: parent.clicked()
48+ onClicked: {
49+ if ((!expanded || selected) && secondaryAction.valid) {
50+ secondaryAction.activate();
51+ }
52+ }
53+ onWheel: {
54+ if ((!expanded || selected) && scrollAction.valid) {
55+ scrollAction.activate(wheel.angleDelta.y > 0 ? stepUp : stepDown);
56+ }
57+ }
46 }
58 }
47
59
48 Item {
60 Item {
@@ -152,9 +164,6 @@ IndicatorDelegate {
152 }
164 }
153
165
154 StateGroup {
166 StateGroup {
155− id: d
156− property bool useFallbackIcon: false
157−
158 states: [
167 states: [
159 State {
168 State {
160 name: "minimised"
169 name: "minimised"
@@ -251,4 +260,45 @@ IndicatorDelegate {
251 rightLabel = rootActionState.rightLabel ? rootActionState.rightLabel : "";
260 rightLabel = rootActionState.rightLabel ? rootActionState.rightLabel : "";
252 icons = rootActionState.icons;
261 icons = rootActionState.icons;
253 }
262 }
263+
264+ QtObject {
265+ id: d
266+
267+ property bool useFallbackIcon: false
268+ property var shouldIndicatorBeShown: undefined
269+
270+ onShouldIndicatorBeShownChanged: {
271+ if (shouldIndicatorBeShown !== undefined) {
272+ submenuAction.changeState(shouldIndicatorBeShown);
273+ }
274+ }
275+ }
276+
277+ UnityMenuAction {
278+ id: secondaryAction
279+ model: menuModel
280+ index: 0
281+ name: rootActionState.secondaryAction
282+ }
283+
284+ UnityMenuAction {
285+ id: scrollAction
286+ model: menuModel
287+ index: 0
288+ name: rootActionState.scrollAction
289+ }
290+
291+ UnityMenuAction {
292+ id: submenuAction
293+ model: menuModel
294+ index: 0
295+ name: rootActionState.submenuAction
296+ }
297+
298+ Binding {
299+ target: d
300+ property: "shouldIndicatorBeShown"
301+ when: submenuAction.valid
302+ value: root.selected && root.expanded
303+ }
254}
304}
qml/Panel/graphics/Battery@18.pngdeleted

Binary file not shown.

qml/Panel/graphics/Bluetooth@18.pngdeleted

Binary file not shown.

qml/Panel/graphics/Clock@18.pngdeleted

Binary file not shown.

qml/Panel/graphics/Location@18.pngdeleted

Binary file not shown.

qml/Panel/graphics/Messages@18.pngdeleted

Binary file not shown.

qml/Panel/graphics/Network@18.pngdeleted

Binary file not shown.

qml/Panel/graphics/Sound@18.pngdeleted

Binary file not shown.

qml/Panel/graphics/Sync@18.pngdeleted

Binary file not shown.

qml/Panel/graphics/System@18.pngdeleted

Binary file not shown.

qml/Panel/graphics/Time@18.pngdeleted

Binary file not shown.

qml/Panel/graphics/VerticalDivider@18.pngdeleted

Binary file not shown.

qml/Panel/graphics/handle@12.pngdeleted

Binary file not shown.

qml/Panel/graphics/handle@12.scideleted−5
@@ -1,5 +0,0 @@
1−border.left: 0
2−border.top: 1
3−border.bottom: 0
4−border.right: 0
5−source: handle@12.png
qml/Panel/graphics/search@12.pngdeleted

Binary file not shown.

qml/Panel/graphics/time_and_date@18.pngdeleted

Binary file not shown.

qml/Shell.qml+15−6
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013-2015 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 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
@@ -56,7 +56,7 @@ Item {
56 property bool beingResized
56 property bool beingResized
57 property string usageScenario: "phone" // supported values: "phone", "tablet" or "desktop"
57 property string usageScenario: "phone" // supported values: "phone", "tablet" or "desktop"
58 property string mode: "full-greeter"
58 property string mode: "full-greeter"
59− property bool cursorVisible: false
59+ property alias oskEnabled: inputMethod.enabled
60 function updateFocusedAppOrientation() {
60 function updateFocusedAppOrientation() {
61 applicationsDisplayLoader.item.updateFocusedAppOrientation();
61 applicationsDisplayLoader.item.updateFocusedAppOrientation();
62 }
62 }
@@ -84,8 +84,8 @@ Item {
84 return Qt.PrimaryOrientation;
84 return Qt.PrimaryOrientation;
85 } else if (greeter && greeter.shown) {
85 } else if (greeter && greeter.shown) {
86 return Qt.PrimaryOrientation;
86 return Qt.PrimaryOrientation;
87− } else if (mainApp) {
87+ } else if (applicationsDisplayLoader.item) {
88− return shell.orientations.map(mainApp.supportedOrientations);
88+ return shell.orientations.map(applicationsDisplayLoader.item.supportedOrientations);
89 } else {
89 } else {
90 // we just don't care
90 // we just don't care
91 return Qt.PortraitOrientation
91 return Qt.PortraitOrientation
@@ -176,8 +176,15 @@ Item {
176 Keys.onReleased: physicalKeysMapper.onKeyReleased(event, currentEventTimestamp);
176 Keys.onReleased: physicalKeysMapper.onKeyReleased(event, currentEventTimestamp);
177 }
177 }
178
178
179− HomeKeyWatcher {
179+ WindowInputMonitor {
180− onActivated: { launcher.fadeOut(); shell.showHome(); }
180+ onHomeKeyActivated: { launcher.fadeOut(); shell.showHome(); }
181+ onTouchBegun: { cursor.opacity = 0; }
182+ onTouchEnded: {
183+ // move the (hidden) cursor to the last known touch position
184+ var mappedCoords = mapFromItem(null, pos.x, pos.y);
185+ cursor.x = mappedCoords.x;
186+ cursor.y = mappedCoords.y;
187+ }
181 }
188 }
182
189
183 Item {
190 Item {
@@ -676,6 +683,8 @@ Item {
676 applicationsDisplayLoader.item.pushRightEdge(amount);
683 applicationsDisplayLoader.item.pushRightEdge(amount);
677 }
684 }
678 }
685 }
686+
687+ onMouseMoved: { cursor.opacity = 1; }
679 }
688 }
680
689
681 Rectangle {
690 Rectangle {
qml/Stages/AbstractStage.qml+5−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 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
@@ -44,6 +44,10 @@ Rectangle {
44 property var mainApp: null
44 property var mainApp: null
45 property int mainAppWindowOrientationAngle
45 property int mainAppWindowOrientationAngle
46 property bool orientationChangesEnabled
46 property bool orientationChangesEnabled
47+ property int supportedOrientations: Qt.PortraitOrientation
48+ | Qt.LandscapeOrientation
49+ | Qt.InvertedPortraitOrientation
50+ | Qt.InvertedLandscapeOrientation
47
51
48 // Shared code for use in stage implementations
52 // Shared code for use in stage implementations
49 GSettings {
53 GSettings {
qml/Stages/ApplicationWindow.qml+14−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2014-2015 Canonical Ltd.
2+ * Copyright 2014-2016 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 Lesser General Public License as published by
5 * it under the terms of the GNU Lesser General Public License as published by
@@ -37,6 +37,13 @@ FocusScope {
37 property int requestedWidth: -1
37 property int requestedWidth: -1
38 property int requestedHeight: -1
38 property int requestedHeight: -1
39
39
40+ readonly property int minimumWidth: sessionContainer.surface ? sessionContainer.surface.minimumWidth : 0
41+ readonly property int minimumHeight: sessionContainer.surface ? sessionContainer.surface.minimumHeight : 0
42+ readonly property int maximumWidth: sessionContainer.surface ? sessionContainer.surface.maximumWidth : 0
43+ readonly property int maximumHeight: sessionContainer.surface ? sessionContainer.surface.maximumHeight : 0
44+ readonly property int widthIncrement: sessionContainer.surface ? sessionContainer.surface.widthIncrement : 0
45+ readonly property int heightIncrement: sessionContainer.surface ? sessionContainer.surface.heightIncrement : 0
46+
40 QtObject {
47 QtObject {
41 id: d
48 id: d
42
49
@@ -82,6 +89,12 @@ FocusScope {
82 property bool surfaceOldEnoughToBeResized: false
89 property bool surfaceOldEnoughToBeResized: false
83 }
90 }
84
91
92+ Binding {
93+ target: root.application
94+ property: "initialSurfaceSize"
95+ value: Qt.size(root.requestedWidth, root.requestedHeight)
96+ }
97+
85 Timer {
98 Timer {
86 id: surfaceInitTimer
99 id: surfaceInitTimer
87 interval: 100
100 interval: 100
qml/Stages/DecoratedWindow.qml+7
@@ -39,6 +39,13 @@ FocusScope {
39 property alias requestedWidth: applicationWindow.requestedWidth
39 property alias requestedWidth: applicationWindow.requestedWidth
40 property real requestedHeight
40 property real requestedHeight
41
41
42+ property alias minimumWidth: applicationWindow.minimumWidth
43+ readonly property int minimumHeight: (root.decorationShown ? decoration.height : 0) + applicationWindow.minimumHeight
44+ property alias maximumWidth: applicationWindow.maximumWidth
45+ readonly property int maximumHeight: (root.decorationShown ? decoration.height : 0) + applicationWindow.maximumHeight
46+ property alias widthIncrement: applicationWindow.widthIncrement
47+ property alias heightIncrement: applicationWindow.heightIncrement
48+
42 signal close()
49 signal close()
43 signal maximize()
50 signal maximize()
44 signal minimize()
51 signal minimize()
qml/Stages/DesktopStage.qml+12−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2014-2015 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 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
@@ -40,6 +40,11 @@ AbstractStage {
40 ? ApplicationManager.findApplication(ApplicationManager.focusedApplicationId)
40 ? ApplicationManager.findApplication(ApplicationManager.focusedApplicationId)
41 : null
41 : null
42
42
43+ // application windows never rotate independently
44+ mainAppWindowOrientationAngle: shellOrientationAngle
45+
46+ orientationChangesEnabled: true
47+
43 Connections {
48 Connections {
44 target: ApplicationManager
49 target: ApplicationManager
45 onApplicationAdded: {
50 onApplicationAdded: {
@@ -251,6 +256,12 @@ AbstractStage {
251 height: decoratedWindow.height
256 height: decoratedWindow.height
252 property alias requestedWidth: decoratedWindow.requestedWidth
257 property alias requestedWidth: decoratedWindow.requestedWidth
253 property alias requestedHeight: decoratedWindow.requestedHeight
258 property alias requestedHeight: decoratedWindow.requestedHeight
259+ property alias minimumWidth: decoratedWindow.minimumWidth
260+ property alias minimumHeight: decoratedWindow.minimumHeight
261+ property alias maximumWidth: decoratedWindow.maximumWidth
262+ property alias maximumHeight: decoratedWindow.maximumHeight
263+ property alias widthIncrement: decoratedWindow.widthIncrement
264+ property alias heightIncrement: decoratedWindow.heightIncrement
254
265
255 QtObject {
266 QtObject {
256 id: appDelegatePrivate
267 id: appDelegatePrivate
qml/Stages/PhoneStage.qml+5−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2014-2015 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 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
@@ -83,6 +83,10 @@ AbstractStage {
83 && !(priv.focusedAppDelegate && priv.focusedAppDelegate.xBehavior.running)
83 && !(priv.focusedAppDelegate && priv.focusedAppDelegate.xBehavior.running)
84 && spreadView.phase === 0
84 && spreadView.phase === 0
85
85
86+ supportedOrientations: mainApp ? mainApp.supportedOrientations
87+ : (Qt.PortraitOrientation | Qt.LandscapeOrientation
88+ | Qt.InvertedPortraitOrientation | Qt.InvertedLandscapeOrientation)
89+
86 // How far left the stage has been dragged
90 // How far left the stage has been dragged
87 readonly property real dragProgress: spreadRepeater.count > 0 ? -spreadRepeater.itemAt(0).xTranslate : 0
91 readonly property real dragProgress: spreadRepeater.count > 0 ? -spreadRepeater.itemAt(0).xTranslate : 0
88
92
qml/Stages/SessionContainer.qml+2
@@ -152,6 +152,8 @@ FocusScope {
152 popped.completed.connect(function() { root.session.release(); } );
152 popped.completed.connect(function() { root.session.release(); } );
153 popped.end();
153 popped.end();
154 d.animations = tmp;
154 d.animations = tmp;
155+ } else {
156+ root.session.release();
155 }
157 }
156 }
158 }
157
159
qml/Stages/Splash.qml+7−2
@@ -138,15 +138,20 @@ Item {
138 visible: d.showIcon
138 visible: d.showIcon
139 }
139 }
140
140
141+ Timer {
142+ interval: 2000
143+ onTriggered: spinner.running = true
144+ running: true
145+ }
146+
141 ActivityIndicator {
147 ActivityIndicator {
148+ id: spinner
142 anchors.centerIn: header.visible ? parent : undefined
149 anchors.centerIn: header.visible ? parent : undefined
143 anchors.verticalCenterOffset: header.visible ? header.height / 2 : 0
150 anchors.verticalCenterOffset: header.visible ? header.height / 2 : 0
144
151
145 anchors.horizontalCenter: header.visible ? undefined : parent.horizontalCenter
152 anchors.horizontalCenter: header.visible ? undefined : parent.horizontalCenter
146 anchors.bottom: header.visible ? undefined : parent.bottom
153 anchors.bottom: header.visible ? undefined : parent.bottom
147 anchors.bottomMargin: header.visible ? 0 : units.gu(12)
154 anchors.bottomMargin: header.visible ? 0 : units.gu(12)
148−
149− running: true
150 }
155 }
151
156
152 MouseArea {
157 MouseArea {
qml/Stages/TabletStage.qml+5−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2014-2015 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 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
@@ -72,6 +72,10 @@ AbstractStage {
72
72
73 orientationChangesEnabled: priv.mainAppOrientationChangesEnabled
73 orientationChangesEnabled: priv.mainAppOrientationChangesEnabled
74
74
75+ supportedOrientations: mainApp ? mainApp.supportedOrientations
76+ : (Qt.PortraitOrientation | Qt.LandscapeOrientation
77+ | Qt.InvertedPortraitOrientation | Qt.InvertedLandscapeOrientation)
78+
75 onWidthChanged: {
79 onWidthChanged: {
76 spreadView.selectedIndex = -1;
80 spreadView.selectedIndex = -1;
77 spreadView.phase = 0;
81 spreadView.phase = 0;
qml/Stages/WindowResizeArea.qml+95−16
@@ -72,8 +72,8 @@ MouseArea {
72 var windowGeometry = windowStateStorage.getGeometry(root.windowId,
72 var windowGeometry = windowStateStorage.getGeometry(root.windowId,
73 Qt.rect(target.x, target.y, defaultWidth, defaultHeight));
73 Qt.rect(target.x, target.y, defaultWidth, defaultHeight));
74
74
75− target.requestedWidth = Math.min(Math.max(windowGeometry.width, minWidth), screenWidth);
75+ target.requestedWidth = Math.min(Math.max(windowGeometry.width, d.minimumWidth), screenWidth);
76− target.requestedHeight = Math.min(Math.max(windowGeometry.height, minHeight), root.screenHeight - PanelState.panelHeight);
76+ target.requestedHeight = Math.min(Math.max(windowGeometry.height, d.minimumHeight), root.screenHeight - PanelState.panelHeight);
77 target.x = Math.max(Math.min(windowGeometry.x, root.screenWidth - target.requestedWidth), 0)
77 target.x = Math.max(Math.min(windowGeometry.x, root.screenWidth - target.requestedWidth), 0)
78 target.y = Math.max(Math.min(windowGeometry.y, root.screenHeight - target.requestedHeight), PanelState.panelHeight)
78 target.y = Math.max(Math.min(windowGeometry.y, root.screenHeight - target.requestedHeight), PanelState.panelHeight)
79
79
@@ -91,6 +91,65 @@ MouseArea {
91
91
92 QtObject {
92 QtObject {
93 id: d
93 id: d
94+
95+ readonly property int maxSafeInt: 2147483647
96+ readonly property int maxSizeIncrement: units.gu(40)
97+
98+ readonly property int minimumWidth: root.target ? Math.max(root.minWidth, root.target.minimumWidth) : root.minWidth
99+ onMinimumWidthChanged: {
100+ if (target.requestedWidth < minimumWidth) {
101+ target.requestedWidth = minimumWidth;
102+ }
103+ }
104+ readonly property int minimumHeight: root.target ? Math.max(root.minHeight, root.target.minimumHeight) : root.minHeight
105+ onMinimumHeightChanged: {
106+ if (target.requestedHeight < minimumHeight) {
107+ target.requestedHeight = minimumHeight;
108+ }
109+ }
110+ readonly property int maximumWidth: root.target && root.target.maximumWidth >= minimumWidth && root.target.maximumWidth > 0
111+ ? root.target.maximumWidth : maxSafeInt
112+ onMaximumWidthChanged: {
113+ if (target.requestedWidth > maximumWidth) {
114+ target.requestedWidth = maximumWidth;
115+ }
116+ }
117+ readonly property int maximumHeight: root.target && root.target.maximumHeight >= minimumHeight && root.target.maximumHeight > 0
118+ ? root.target.maximumHeight : maxSafeInt
119+ onMaximumHeightChanged: {
120+ if (target.requestedHeight > maximumHeight) {
121+ target.requestedHeight = maximumHeight;
122+ }
123+ }
124+ readonly property int widthIncrement: {
125+ if (!root.target) {
126+ return 1;
127+ }
128+ if (root.target.widthIncrement > 0) {
129+ if (root.target.widthIncrement < maxSizeIncrement) {
130+ return root.target.widthIncrement;
131+ } else {
132+ return maxSizeIncrement;
133+ }
134+ } else {
135+ return 1;
136+ }
137+ }
138+ readonly property int heightIncrement: {
139+ if (!root.target) {
140+ return 1;
141+ }
142+ if (root.target.heightIncrement > 0) {
143+ if (root.target.heightIncrement < maxSizeIncrement) {
144+ return root.target.heightIncrement;
145+ } else {
146+ return maxSizeIncrement;
147+ }
148+ } else {
149+ return 1;
150+ }
151+ }
152+
94 property bool leftBorder: false
153 property bool leftBorder: false
95 property bool rightBorder: false
154 property bool rightBorder: false
96 property bool topBorder: false
155 property bool topBorder: false
@@ -209,38 +268,58 @@ MouseArea {
209
268
210 var pos = mapToItem(target.parent, mouse.x, mouse.y);
269 var pos = mapToItem(target.parent, mouse.x, mouse.y);
211
270
212− var deltaX = pos.x - d.startMousePosX;
271+ var deltaX = Math.floor((pos.x - d.startMousePosX) / d.widthIncrement) * d.widthIncrement;
213− var deltaY = pos.y - d.startMousePosY;
272+ var deltaY = Math.floor((pos.y - d.startMousePosY) / d.heightIncrement) * d.heightIncrement;
214
273
215 if (d.leftBorder) {
274 if (d.leftBorder) {
216 var newTargetX = d.startX + deltaX;
275 var newTargetX = d.startX + deltaX;
217− if (target.x + target.width > newTargetX + minWidth) {
276+ var rightBorderX = target.x + target.width;
218− target.requestedWidth = target.x + target.width - newTargetX;
277+ if (rightBorderX > newTargetX + d.minimumWidth) {
278+ if (rightBorderX < newTargetX + d.maximumWidth) {
279+ target.requestedWidth = rightBorderX - newTargetX;
280+ } else {
281+ target.requestedWidth = d.maximumWidth;
282+ }
219 } else {
283 } else {
220− target.requestedWidth = minWidth;
284+ target.requestedWidth = d.minimumWidth;
221 }
285 }
222
286
223 } else if (d.rightBorder) {
287 } else if (d.rightBorder) {
224− if (d.startWidth + deltaX >= minWidth) {
288+ var newWidth = d.startWidth + deltaX;
289+ if (newWidth > d.minimumWidth) {
290+ if (newWidth < d.maximumWidth) {
225− target.requestedWidth = d.startWidth + deltaX;
291+ target.requestedWidth = newWidth;
292+ } else {
293+ target.requestedWidth = d.maximumWidth;
294+ }
226 } else {
295 } else {
227− target.requestedWidth = minWidth;
296+ target.requestedWidth = d.minimumWidth;
228 }
297 }
229 }
298 }
230
299
231 if (d.topBorder) {
300 if (d.topBorder) {
232 var newTargetY = d.startY + deltaY;
301 var newTargetY = d.startY + deltaY;
233− if (target.y + target.height > newTargetY + minHeight) {
302+ var bottomBorderY = target.y + target.height;
234− target.requestedHeight = target.y + target.height - newTargetY;
303+ if (bottomBorderY > newTargetY + d.minimumHeight) {
304+ if (bottomBorderY < newTargetY + d.maximumHeight) {
305+ target.requestedHeight = bottomBorderY - newTargetY;
306+ } else {
307+ target.requestedHeight = d.maximumHeight;
308+ }
235 } else {
309 } else {
236− target.requestedHeight = minHeight;
310+ target.requestedHeight = d.minimumHeight;
237 }
311 }
238
312
239 } else if (d.bottomBorder) {
313 } else if (d.bottomBorder) {
240− if (d.startHeight + deltaY >= minHeight) {
314+ var newHeight = d.startHeight + deltaY;
315+ if (newHeight > d.minimumHeight) {
316+ if (newHeight < d.maximumHeight) {
241− target.requestedHeight = d.startHeight + deltaY;
317+ target.requestedHeight = newHeight;
318+ } else {
319+ target.requestedHeight = d.maximumHeight;
320+ }
242 } else {
321 } else {
243− target.requestedHeight = minHeight;
322+ target.requestedHeight = d.minimumHeight;
244 }
323 }
245 }
324 }
246 }
325 }
qml/Wizard/Pages/10-welcome.qml+1−1
@@ -41,7 +41,7 @@ LocalComponents.Page {
41 anchors.left: parent.left
41 anchors.left: parent.left
42 anchors.right: parent.right
42 anchors.right: parent.right
43 wrapMode: Text.Wrap
43 wrapMode: Text.Wrap
44− text: i18n.tr("Welcome to your Ubuntu phone.")
44+ text: i18n.tr("Welcome to your Ubuntu device.")
45 }
45 }
46
46
47 Label {
47 Label {
qml/Wizard/Pages/30-passwd-type.qml+1−1
@@ -76,7 +76,7 @@ LocalComponents.Page {
76 anchors.left: parent.left
76 anchors.left: parent.left
77 anchors.right: parent.right
77 anchors.right: parent.right
78 wrapMode: Text.Wrap
78 wrapMode: Text.Wrap
79− text: i18n.tr("Please select how you’d like to unlock your phone.")
79+ text: i18n.tr("Please select how you’d like to unlock your device.")
80 }
80 }
81
81
82 ItemSelector {
82 ItemSelector {
qml/Wizard/Pages/80-finished.qml+1−1
@@ -43,7 +43,7 @@ LocalComponents.Page {
43 anchors.left: parent.left
43 anchors.left: parent.left
44 anchors.right: parent.right
44 anchors.right: parent.right
45 wrapMode: Text.Wrap
45 wrapMode: Text.Wrap
46− text: i18n.tr("Your phone is now ready to use.")
46+ text: i18n.tr("Your device is now ready to use.")
47 }
47 }
48 }
48 }
49
49
tests/mocks/CMakeLists.txt+1
@@ -43,6 +43,7 @@ add_subdirectory(Unity)
43add_subdirectory(QtMultimedia)
43add_subdirectory(QtMultimedia)
44add_subdirectory(Wizard)
44add_subdirectory(Wizard)
45add_subdirectory(Utils)
45add_subdirectory(Utils)
46+add_subdirectory(UInput)
46
47
47install(
48install(
48 DIRECTORY data
49 DIRECTORY data
tests/mocks/Cursor/Cursor.qml+1
@@ -19,4 +19,5 @@ import QtQuick 2.4
19Item {
19Item {
20 signal pushedLeftBoundary(real amount, int buttons)
20 signal pushedLeftBoundary(real amount, int buttons)
21 signal pushedRightBoundary(real amount, int buttons)
21 signal pushedRightBoundary(real amount, int buttons)
22+ signal mouseMoved()
22}
23}
tests/mocks/UInput/CMakeLists.txtnew file+7
@@ -0,0 +1,7 @@
1+add_library(FakeUInput-qml MODULE
2+ plugin.cpp
3+ mockuinput.cpp
4+)
5+
6+qt5_use_modules(FakeUInput-qml Qml)
7+add_unity8_mock(UInput 0.1 UInput TARGETS FakeUInput-qml)
tests/mocks/UInput/mockuinput.cppnew file+73
@@ -0,0 +1,73 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+
18+#include "mockuinput.h"
19+
20+#include <QFile>
21+#include <QDebug>
22+#include <QDateTime>
23+
24+#include <unistd.h>
25+
26+MockUInput::MockUInput(QObject *parent) :
27+ QObject(parent)
28+{
29+}
30+
31+MockUInput::~MockUInput()
32+{
33+}
34+
35+void MockUInput::createMouse()
36+{
37+ if (m_mouseCreated) {
38+ qDebug() << "Already have a virtual device. Not creating another one.";
39+ return;
40+ }
41+ m_mouseCreated = true;
42+ Q_EMIT mouseCreated();
43+}
44+
45+void MockUInput::removeMouse()
46+{
47+ if (!m_mouseCreated) {
48+ return;
49+ }
50+ qDebug() << "Virtual uinput mouse device removed.";
51+ m_mouseCreated = false;
52+ Q_EMIT mouseRemoved();
53+}
54+
55+void MockUInput::moveMouse(int dx, int dy)
56+{
57+ Q_EMIT mouseMoved(dx, dy);
58+}
59+
60+void MockUInput::pressMouse(Button button)
61+{
62+ Q_EMIT mousePressed(button);
63+}
64+
65+void MockUInput::releaseMouse(Button button)
66+{
67+ Q_EMIT mouseReleased(button);
68+}
69+
70+void MockUInput::scrollMouse(int dh, int dv)
71+{
72+ Q_EMIT mouseScrolled(dh, dv);
73+}
tests/mocks/UInput/mockuinput.hnew file+63
@@ -0,0 +1,63 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+
18+#ifndef MOCKUINPUT_H
19+#define MOCKUINPUT_H
20+
21+#include <QObject>
22+#include <QFile>
23+
24+#include <linux/uinput.h>
25+
26+
27+class MockUInput : public QObject
28+{
29+ Q_OBJECT
30+ Q_ENUMS(Button)
31+
32+public:
33+ enum Button {
34+ ButtonLeft,
35+ ButtonRight,
36+ ButtonMiddle
37+ };
38+
39+ explicit MockUInput(QObject *parent = nullptr);
40+ ~MockUInput();
41+
42+ Q_INVOKABLE void createMouse();
43+ Q_INVOKABLE void removeMouse();
44+
45+ Q_INVOKABLE void moveMouse(int dx, int dy);
46+ Q_INVOKABLE void pressMouse(Button button);
47+ Q_INVOKABLE void releaseMouse(Button button);
48+ Q_INVOKABLE void scrollMouse(int dh, int dv);
49+
50+Q_SIGNALS:
51+ // for testing
52+ void mouseCreated();
53+ void mouseRemoved();
54+ void mouseMoved(int dx, int dy);
55+ void mousePressed(Button button);
56+ void mouseReleased(Button button);
57+ void mouseScrolled(int dh, int dv);
58+
59+private:
60+ bool m_mouseCreated = false;
61+};
62+
63+#endif // MOCKUINPUT_H
tests/mocks/UInput/plugin.cppnew file+26
@@ -0,0 +1,26 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "plugin.h"
18+#include "mockuinput.h"
19+
20+#include <QtQml/qqml.h>
21+
22+void MockUInputPlugin::registerTypes(const char *uri)
23+{
24+ Q_ASSERT(uri == QLatin1String("UInput"));
25+ qmlRegisterType<MockUInput>(uri, 0, 1, "UInput");
26+}
tests/mocks/UInput/plugin.hnew file+32
@@ -0,0 +1,32 @@
1+/*
2+ * Copyright (C) 2015 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+#ifndef MOCKUINPUT_PLUGIN_H
18+#define MOCKUINPUT_PLUGIN_H
19+
20+#include <QtQml/QQmlEngine>
21+#include <QtQml/QQmlExtensionPlugin>
22+
23+class MockUInputPlugin : public QQmlExtensionPlugin
24+{
25+ Q_OBJECT
26+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
27+
28+public:
29+ void registerTypes(const char *uri) override;
30+};
31+
32+#endif
tests/mocks/UInput/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module UInput
2+plugin FakeUInput-qml
tests/mocks/Unity/Application/ApplicationInfo.cpp+14−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013-2015 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 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
@@ -278,3 +278,16 @@ void ApplicationInfo::setExemptFromLifecycle(bool exemptFromLifecycle)
278 Q_EMIT exemptFromLifecycleChanged(m_exemptFromLifecycle);
278 Q_EMIT exemptFromLifecycleChanged(m_exemptFromLifecycle);
279 }
279 }
280}
280}
281+
282+QSize ApplicationInfo::initialSurfaceSize() const
283+{
284+ return m_initialSurfaceSize;
285+}
286+
287+void ApplicationInfo::setInitialSurfaceSize(const QSize &size)
288+{
289+ if (size != m_initialSurfaceSize) {
290+ m_initialSurfaceSize = size;
291+ Q_EMIT initialSurfaceSizeChanged(m_initialSurfaceSize);
292+ }
293+}
tests/mocks/Unity/Application/ApplicationInfo.h+4−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013-2015 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 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
@@ -95,6 +95,8 @@ public:
95 bool exemptFromLifecycle() const override;
95 bool exemptFromLifecycle() const override;
96 void setExemptFromLifecycle(bool) override;
96 void setExemptFromLifecycle(bool) override;
97
97
98+ QSize initialSurfaceSize() const override;
99+ void setInitialSurfaceSize(const QSize &size) override;
98public:
100public:
99 void setSession(Session* session);
101 void setSession(Session* session);
100 Session* session() const { return m_session; }
102 Session* session() const { return m_session; }
@@ -129,6 +131,7 @@ private:
129 RequestedState m_requestedState;
131 RequestedState m_requestedState;
130 bool m_isTouchApp;
132 bool m_isTouchApp;
131 bool m_exemptFromLifecycle;
133 bool m_exemptFromLifecycle;
134+ QSize m_initialSurfaceSize;
132
135
133 bool m_manualSurfaceCreation;
136 bool m_manualSurfaceCreation;
134};
137};
tests/mocks/Unity/Application/ApplicationTestInterface.cpp+4−4
@@ -36,7 +36,7 @@ ApplicationTestInterface::ApplicationTestInterface(QObject* parent)
36 connection.registerObject("/com/canonical/Unity8/Mocks", parent);
36 connection.registerObject("/com/canonical/Unity8/Mocks", parent);
37}
37}
38
38
39−Session* ApplicationTestInterface::addChildSession(Session* existingSession, const QString& surfaceImage)
39+Session* ApplicationTestInterface::addChildSession(Session* existingSession, const QString& surfaceImage, bool addSurface)
40{
40{
41 if (!existingSession) return nullptr;
41 if (!existingSession) return nullptr;
42
42
@@ -49,7 +49,7 @@ Session* ApplicationTestInterface::addChildSession(Session* existingSession, con
49 .arg(existingSession->childSessions()->count()),
49 .arg(existingSession->childSessions()->count()),
50 screenshotUrl);
50 screenshotUrl);
51 existingSession->addChildSession(session);
51 existingSession->addChildSession(session);
52− session->createSurface();
52+ if (addSurface) session->createSurface();
53
53
54 return session;
54 return session;
55}
55}
@@ -70,7 +70,7 @@ void ApplicationTestInterface::removeSurface(MirSurface* existingSurface)
70 existingSurface->setLive(false);
70 existingSurface->setLive(false);
71}
71}
72
72
73−quint32 ApplicationTestInterface::addChildSession(const QString& appId, quint32 existingSessionId, const QString& surfaceImage)
73+quint32 ApplicationTestInterface::addChildSession(const QString& appId, quint32 existingSessionId, const QString& surfaceImage, bool addSurface)
74{
74{
75 qDebug() << "ApplicationTestInterface::addChildSession to " << appId;
75 qDebug() << "ApplicationTestInterface::addChildSession to " << appId;
76
76
@@ -100,7 +100,7 @@ quint32 ApplicationTestInterface::addChildSession(const QString& appId, quint32
100 .arg(parentSession->childSessions()->count()),
100 .arg(parentSession->childSessions()->count()),
101 screenshotUrl);
101 screenshotUrl);
102 parentSession->addChildSession(session);
102 parentSession->addChildSession(session);
103− session->createSurface();
103+ if (addSurface) { session->createSurface(); }
104 m_childSessions[sessionId] = session;
104 m_childSessions[sessionId] = session;
105
105
106 return sessionId;
106 return sessionId;
tests/mocks/Unity/Application/ApplicationTestInterface.h+2−2
@@ -30,12 +30,12 @@ class ApplicationTestInterface : public QDBusAbstractAdaptor
30public:
30public:
31 ApplicationTestInterface(QObject* parent = 0);
31 ApplicationTestInterface(QObject* parent = 0);
32
32
33− Q_INVOKABLE Session* addChildSession(Session* existingSession, const QString& surfaceImage);
33+ Q_INVOKABLE Session* addChildSession(Session* existingSession, const QString& surfaceImage, bool addSurface);
34 Q_INVOKABLE void removeSession(Session* existingSession);
34 Q_INVOKABLE void removeSession(Session* existingSession);
35 Q_INVOKABLE void removeSurface(MirSurface* existingSurface);
35 Q_INVOKABLE void removeSurface(MirSurface* existingSurface);
36
36
37public Q_SLOTS:
37public Q_SLOTS:
38− quint32 addChildSession(const QString& appId, quint32 existingSessionId, const QString& surfaceImage);
38+ quint32 addChildSession(const QString& appId, quint32 existingSessionId, const QString& surfaceImage, bool addSurface);
39 void removeSession(quint32 sessionId);
39 void removeSession(quint32 sessionId);
40
40
41private:
41private:
tests/mocks/Unity/Application/MirSurface.cpp+48
@@ -266,3 +266,51 @@ void MirSurface::setSlowToResize(bool value)
266 }
266 }
267 }
267 }
268}
268}
269+
270+void MirSurface::setMinimumWidth(int value)
271+{
272+ if (value != m_minimumWidth) {
273+ m_minimumWidth = value;
274+ Q_EMIT minimumWidthChanged(m_minimumWidth);
275+ }
276+}
277+
278+void MirSurface::setMaximumWidth(int value)
279+{
280+ if (value != m_maximumWidth) {
281+ m_maximumWidth = value;
282+ Q_EMIT maximumWidthChanged(m_maximumWidth);
283+ }
284+}
285+
286+void MirSurface::setMinimumHeight(int value)
287+{
288+ if (value != m_minimumHeight) {
289+ m_minimumHeight = value;
290+ Q_EMIT minimumHeightChanged(m_minimumHeight);
291+ }
292+}
293+
294+void MirSurface::setMaximumHeight(int value)
295+{
296+ if (value != m_maximumHeight) {
297+ m_maximumHeight = value;
298+ Q_EMIT maximumHeightChanged(m_maximumHeight);
299+ }
300+}
301+
302+void MirSurface::setWidthIncrement(int value)
303+{
304+ if (value != m_widthIncrement) {
305+ m_widthIncrement = value;
306+ Q_EMIT widthIncrementChanged(m_widthIncrement);
307+ }
308+}
309+
310+void MirSurface::setHeightIncrement(int value)
311+{
312+ if (value != m_heightIncrement) {
313+ m_heightIncrement = value;
314+ Q_EMIT heightIncrementChanged(m_heightIncrement);
315+ }
316+}
tests/mocks/Unity/Application/MirSurface.h+21
@@ -66,6 +66,13 @@ public:
66 Mir::OrientationAngle orientationAngle() const override;
66 Mir::OrientationAngle orientationAngle() const override;
67 void setOrientationAngle(Mir::OrientationAngle) override;
67 void setOrientationAngle(Mir::OrientationAngle) override;
68
68
69+ int minimumWidth() const override { return m_minimumWidth; }
70+ int minimumHeight() const override { return m_minimumHeight; }
71+ int maximumWidth() const override { return m_maximumWidth; }
72+ int maximumHeight() const override { return m_maximumHeight; }
73+ int widthIncrement() const override { return m_widthIncrement; }
74+ int heightIncrement() const override { return m_heightIncrement; }
75+
69 ////
76 ////
70 // API for tests
77 // API for tests
71
78
@@ -82,6 +89,13 @@ public:
82 bool isSlowToResize() const;
89 bool isSlowToResize() const;
83 void setSlowToResize(bool value);
90 void setSlowToResize(bool value);
84
91
92+ Q_INVOKABLE void setMinimumWidth(int);
93+ Q_INVOKABLE void setMaximumWidth(int);
94+ Q_INVOKABLE void setMinimumHeight(int);
95+ Q_INVOKABLE void setMaximumHeight(int);
96+ Q_INVOKABLE void setWidthIncrement(int);
97+ Q_INVOKABLE void setHeightIncrement(int);
98+
85 /////
99 /////
86 // internal mock stuff
100 // internal mock stuff
87
101
@@ -125,6 +139,13 @@ private:
125 int m_width;
139 int m_width;
126 int m_height;
140 int m_height;
127
141
142+ int m_minimumWidth{0};
143+ int m_minimumHeight{0};
144+ int m_maximumWidth{0};
145+ int m_maximumHeight{0};
146+ int m_widthIncrement{0};
147+ int m_heightIncrement{0};
148+
128 bool m_slowToResize;
149 bool m_slowToResize;
129 QTimer m_delayedResizeTimer;
150 QTimer m_delayedResizeTimer;
130 QSize m_delayedResize;
151 QSize m_delayedResize;
tests/mocks/Unity/Application/MirSurfaceItem.cpp+6
@@ -37,6 +37,8 @@ MirSurfaceItem::MirSurfaceItem(QQuickItem *parent)
37 , m_surfaceHeight(0)
37 , m_surfaceHeight(0)
38 , m_touchPressCount(0)
38 , m_touchPressCount(0)
39 , m_touchReleaseCount(0)
39 , m_touchReleaseCount(0)
40+ , m_mousePressCount(0)
41+ , m_mouseReleaseCount(0)
40{
42{
41// qDebug() << "MirSurfaceItem::MirSurfaceItem() " << (void*)(this) << name();
43// qDebug() << "MirSurfaceItem::MirSurfaceItem() " << (void*)(this) << name();
42 setAcceptedMouseButtons(Qt::LeftButton | Qt::MiddleButton | Qt::RightButton |
44 setAcceptedMouseButtons(Qt::LeftButton | Qt::MiddleButton | Qt::RightButton |
@@ -165,6 +167,8 @@ void MirSurfaceItem::touchEvent(QTouchEvent * event)
165
167
166void MirSurfaceItem::mousePressEvent(QMouseEvent * event)
168void MirSurfaceItem::mousePressEvent(QMouseEvent * event)
167{
169{
170+ m_mousePressCount++;
171+ Q_EMIT mousePressCountChanged(m_mousePressCount);
168 event->accept();
172 event->accept();
169}
173}
170
174
@@ -175,6 +179,8 @@ void MirSurfaceItem::mouseMoveEvent(QMouseEvent * event)
175
179
176void MirSurfaceItem::mouseReleaseEvent(QMouseEvent * event)
180void MirSurfaceItem::mouseReleaseEvent(QMouseEvent * event)
177{
181{
182+ m_mouseReleaseCount++;
183+ Q_EMIT mouseReleaseCountChanged(m_mouseReleaseCount);
178 event->accept();
184 event->accept();
179}
185}
180
186
tests/mocks/Unity/Application/MirSurfaceItem.h+14
@@ -36,6 +36,10 @@ class MirSurfaceItem : public unity::shell::application::MirSurfaceItemInterface
36 Q_PROPERTY(int touchReleaseCount READ touchReleaseCount WRITE setTouchReleaseCount
36 Q_PROPERTY(int touchReleaseCount READ touchReleaseCount WRITE setTouchReleaseCount
37 NOTIFY touchReleaseCountChanged DESIGNABLE false)
37 NOTIFY touchReleaseCountChanged DESIGNABLE false)
38
38
39+ Q_PROPERTY(int mousePressCount READ mousePressCount WRITE setMousePressCount
40+ NOTIFY mousePressCountChanged)
41+ Q_PROPERTY(int mouseReleaseCount READ mouseReleaseCount WRITE setMouseReleaseCount
42+ NOTIFY mouseReleaseCountChanged)
39public:
43public:
40 explicit MirSurfaceItem(QQuickItem *parent = 0);
44 explicit MirSurfaceItem(QQuickItem *parent = 0);
41 ~MirSurfaceItem();
45 ~MirSurfaceItem();
@@ -76,9 +80,17 @@ public:
76 int touchReleaseCount() const { return m_touchReleaseCount; }
80 int touchReleaseCount() const { return m_touchReleaseCount; }
77 void setTouchReleaseCount(int count) { m_touchReleaseCount = count; Q_EMIT touchReleaseCountChanged(count); }
81 void setTouchReleaseCount(int count) { m_touchReleaseCount = count; Q_EMIT touchReleaseCountChanged(count); }
78
82
83+ int mousePressCount() const { return m_mousePressCount; }
84+ void setMousePressCount(int count) { m_mousePressCount = count; Q_EMIT mousePressCountChanged(count); }
85+
86+ int mouseReleaseCount() const { return m_mouseReleaseCount; }
87+ void setMouseReleaseCount(int count) { m_mouseReleaseCount = count; Q_EMIT mouseReleaseCountChanged(count); }
88+
79Q_SIGNALS:
89Q_SIGNALS:
80 void touchPressCountChanged(int count);
90 void touchPressCountChanged(int count);
81 void touchReleaseCountChanged(int count);
91 void touchReleaseCountChanged(int count);
92+ void mousePressCountChanged(int count);
93+ void mouseReleaseCountChanged(int count);
82
94
83protected:
95protected:
84 void touchEvent(QTouchEvent * event) override;
96 void touchEvent(QTouchEvent * event) override;
@@ -109,6 +121,8 @@ private:
109
121
110 int m_touchPressCount;
122 int m_touchPressCount;
111 int m_touchReleaseCount;
123 int m_touchReleaseCount;
124+ int m_mousePressCount;
125+ int m_mouseReleaseCount;
112
126
113 FillMode m_fillMode{Stretch};
127 FillMode m_fillMode{Stretch};
114
128
tests/mocks/Unity/Application/SurfaceManager.cpp+56
@@ -46,6 +46,14 @@ MirSurface *SurfaceManager::createSurface(const QString& name,
46 MirSurface* surface = qobject_cast<MirSurface*>(obj);
46 MirSurface* surface = qobject_cast<MirSurface*>(obj);
47 Q_EMIT surfaceDestroyed(surface);
47 Q_EMIT surfaceDestroyed(surface);
48 });
48 });
49+
50+ surface->setMinimumWidth(m_newSurfaceMinimumWidth);
51+ surface->setMaximumWidth(m_newSurfaceMaximumWidth);
52+ surface->setMinimumHeight(m_newSurfaceMinimumHeight);
53+ surface->setMaximumHeight(m_newSurfaceMaximumHeight);
54+ surface->setWidthIncrement(m_newSurfaceWidthIncrement);
55+ surface->setHeightIncrement(m_newSurfaceHeightIncrement);
56+
49 Q_EMIT surfaceCreated(surface);
57 Q_EMIT surfaceCreated(surface);
50 return surface;
58 return surface;
51}
59}
@@ -62,3 +70,51 @@ MirSurface *SurfaceManager::inputMethodSurface()
62 }
70 }
63 return m_virtualKeyboard;
71 return m_virtualKeyboard;
64}
72}
73+
74+void SurfaceManager::setNewSurfaceMinimumWidth(int value)
75+{
76+ if (m_newSurfaceMinimumWidth != value) {
77+ m_newSurfaceMinimumWidth = value;
78+ Q_EMIT newSurfaceMinimumWidthChanged(m_newSurfaceMinimumWidth);
79+ }
80+}
81+
82+void SurfaceManager::setNewSurfaceMaximumWidth(int value)
83+{
84+ if (m_newSurfaceMaximumWidth != value) {
85+ m_newSurfaceMaximumWidth = value;
86+ Q_EMIT newSurfaceMaximumWidthChanged(m_newSurfaceMaximumWidth);
87+ }
88+}
89+
90+void SurfaceManager::setNewSurfaceMinimumHeight(int value)
91+{
92+ if (m_newSurfaceMinimumHeight != value) {
93+ m_newSurfaceMinimumHeight = value;
94+ Q_EMIT newSurfaceMinimumHeightChanged(m_newSurfaceMinimumHeight);
95+ }
96+}
97+
98+void SurfaceManager::setNewSurfaceMaximumHeight(int value)
99+{
100+ if (m_newSurfaceMaximumHeight != value) {
101+ m_newSurfaceMaximumHeight = value;
102+ Q_EMIT newSurfaceMaximumHeightChanged(m_newSurfaceMaximumHeight);
103+ }
104+}
105+
106+void SurfaceManager::setNewSurfaceWidthIncrement(int value)
107+{
108+ if (m_newSurfaceWidthIncrement != value) {
109+ m_newSurfaceWidthIncrement = value;
110+ Q_EMIT newSurfaceWidthIncrementChanged(m_newSurfaceWidthIncrement);
111+ }
112+}
113+
114+void SurfaceManager::setNewSurfaceHeightIncrement(int value)
115+{
116+ if (m_newSurfaceHeightIncrement != value) {
117+ m_newSurfaceHeightIncrement = value;
118+ Q_EMIT newSurfaceHeightIncrementChanged(m_newSurfaceHeightIncrement);
119+ }
120+}
tests/mocks/Unity/Application/SurfaceManager.h+40
@@ -25,6 +25,14 @@
25class SurfaceManager : public QObject
25class SurfaceManager : public QObject
26{
26{
27 Q_OBJECT
27 Q_OBJECT
28+
29+ Q_PROPERTY(int newSurfaceMinimumWidth READ newSurfaceMinimumWidth WRITE setNewSurfaceMinimumWidth NOTIFY newSurfaceMinimumWidthChanged)
30+ Q_PROPERTY(int newSurfaceMaximumWidth READ newSurfaceMaximumWidth WRITE setNewSurfaceMaximumWidth NOTIFY newSurfaceMaximumWidthChanged)
31+ Q_PROPERTY(int newSurfaceMinimumHeight READ newSurfaceMinimumHeight WRITE setNewSurfaceMinimumHeight NOTIFY newSurfaceMinimumHeightChanged)
32+ Q_PROPERTY(int newSurfaceMaximumHeight READ newSurfaceMaximumHeight WRITE setNewSurfaceMaximumHeight NOTIFY newSurfaceMaximumHeightChanged)
33+ Q_PROPERTY(int newSurfaceWidthIncrement READ newSurfaceWidthIncrement WRITE setNewSurfaceWidthIncrement NOTIFY newSurfaceWidthIncrementChanged)
34+ Q_PROPERTY(int newSurfaceHeightIncrement READ newSurfaceHeightIncrement WRITE setNewSurfaceHeightIncrement NOTIFY newSurfaceHeightIncrementChanged)
35+
28public:
36public:
29 explicit SurfaceManager(QObject *parent = 0);
37 explicit SurfaceManager(QObject *parent = 0);
30
38
@@ -38,14 +46,46 @@ public:
38 // To be used in the tests
46 // To be used in the tests
39 Q_INVOKABLE MirSurface* inputMethodSurface();
47 Q_INVOKABLE MirSurface* inputMethodSurface();
40
48
49+ int newSurfaceMinimumWidth() const { return m_newSurfaceMinimumWidth; }
50+ void setNewSurfaceMinimumWidth(int value);
51+
52+ int newSurfaceMaximumWidth() const { return m_newSurfaceMaximumWidth; }
53+ void setNewSurfaceMaximumWidth(int value);
54+
55+ int newSurfaceMinimumHeight() const { return m_newSurfaceMinimumHeight; }
56+ void setNewSurfaceMinimumHeight(int value);
57+
58+ int newSurfaceMaximumHeight() const { return m_newSurfaceMaximumHeight; }
59+ void setNewSurfaceMaximumHeight(int value);
60+
61+ int newSurfaceWidthIncrement() const { return m_newSurfaceWidthIncrement; }
62+ void setNewSurfaceWidthIncrement(int);
63+
64+ int newSurfaceHeightIncrement() const { return m_newSurfaceHeightIncrement; }
65+ void setNewSurfaceHeightIncrement(int);
66+
41Q_SIGNALS:
67Q_SIGNALS:
42 void countChanged();
68 void countChanged();
43 void surfaceCreated(MirSurface *surface);
69 void surfaceCreated(MirSurface *surface);
44 void surfaceDestroyed(MirSurface*surface);
70 void surfaceDestroyed(MirSurface*surface);
45
71
72+ void newSurfaceMinimumWidthChanged(int value);
73+ void newSurfaceMaximumWidthChanged(int value);
74+ void newSurfaceMinimumHeightChanged(int value);
75+ void newSurfaceMaximumHeightChanged(int value);
76+ void newSurfaceWidthIncrementChanged(int value);
77+ void newSurfaceHeightIncrementChanged(int value);
78+
46private:
79private:
47 static SurfaceManager *the_surface_manager;
80 static SurfaceManager *the_surface_manager;
48 VirtualKeyboard *m_virtualKeyboard;
81 VirtualKeyboard *m_virtualKeyboard;
82+
83+ int m_newSurfaceMinimumWidth{0};
84+ int m_newSurfaceMaximumWidth{0};
85+ int m_newSurfaceMinimumHeight{0};
86+ int m_newSurfaceMaximumHeight{0};
87+ int m_newSurfaceWidthIncrement{1};
88+ int m_newSurfaceHeightIncrement{1};
49};
89};
50
90
51#endif // SURFACEMANAGER_H
91#endif // SURFACEMANAGER_H
tests/mocks/Unity/CMakeLists.txt+1
@@ -5,6 +5,7 @@ add_subdirectory(InputInfo)
5add_subdirectory(Launcher)
5add_subdirectory(Launcher)
6add_subdirectory(Notifications)
6add_subdirectory(Notifications)
7add_subdirectory(DashCommunicator)
7add_subdirectory(DashCommunicator)
8+add_subdirectory(Screens)
8
9
9pkg_search_module(GOBJECT gobject-2.0 REQUIRED)
10pkg_search_module(GOBJECT gobject-2.0 REQUIRED)
10pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=9)
11pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=9)
tests/mocks/Unity/Indicators/ModelActionRootState.qml+11−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright 2013-2016 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 Lesser General Public License as published by
5 * it under the terms of the GNU Lesser General Public License as published by
@@ -30,10 +30,20 @@ Item {
30 property bool indicatorVisible: cachedState && cachedState.hasOwnProperty("visible") ? cachedState["visible"] : true
30 property bool indicatorVisible: cachedState && cachedState.hasOwnProperty("visible") ? cachedState["visible"] : true
31
31
32 property var cachedState: menu ? menu.get(0, "actionState") : undefined
32 property var cachedState: menu ? menu.get(0, "actionState") : undefined
33+ property string submenuAction: {
34+ if (!menu) return "";
35+ var ext = menu.get(0, "ext");
36+ var submenuVar = ext ? ext["submenu-action"] : undefined;
37+ return submenuVar ? submenuVar : ""
38+ }
33 Connections {
39 Connections {
34 target: menu
40 target: menu
35 onModelDataChanged: {
41 onModelDataChanged: {
36 cachedState = menu.get(0, "actionState");
42 cachedState = menu.get(0, "actionState");
43+
44+ var ext = menu.get(0, "ext");
45+ var submenuVar = ext ? ext["submenu-action"] : undefined;
46+ submenuAction = submenuVar ? submenuVar : ""
37 }
47 }
38 }
48 }
39
49
tests/mocks/Unity/Screens/CMakeLists.txtnew file+14
@@ -0,0 +1,14 @@
1+include_directories(
2+ ${CMAKE_CURRENT_SOURCE_DIR}
3+)
4+
5+set(MockScreens_SOURCES
6+ plugin.cpp
7+ screens.cpp
8+)
9+
10+add_library(MockScreensPlugin MODULE ${MockScreens_SOURCES})
11+
12+qt5_use_modules(MockScreensPlugin Gui Qml)
13+
14+add_unity8_mock(Unity.Screens 0.1 Unity/Screens TARGETS MockScreensPlugin)
tests/mocks/Unity/Screens/plugin.cppnew file+29
@@ -0,0 +1,29 @@
1+/*
2+ * Copyright (C) 2015 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 "plugin.h"
18+#include "screens.h"
19+
20+#include <QScreen>
21+
22+void UnityScreensPlugin::registerTypes(const char* uri)
23+{
24+ Q_ASSERT(QLatin1String(uri) == QLatin1String("Unity.Screens"));
25+
26+ qRegisterMetaType<QScreen*>("QScreen*");
27+
28+ qmlRegisterType<Screens>(uri, 0, 1, "Screens");
29+}
tests/mocks/Unity/Screens/plugin.hnew file+25
@@ -0,0 +1,25 @@
1+/*
2+ * Copyright (C) 2015 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 <QQmlExtensionPlugin>
18+#include <QtQml/qqml.h>
19+
20+class UnityScreensPlugin : public QQmlExtensionPlugin {
21+ Q_OBJECT
22+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
23+public:
24+ virtual void registerTypes(const char* uri);
25+};
tests/mocks/Unity/Screens/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module Unity.Screens
2+plugin MockScreensPlugin
tests/mocks/Unity/Screens/screens.cppnew file+71
@@ -0,0 +1,71 @@
1+/*
2+ * Copyright (C) 2015 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 "screens.h"
18+
19+// Qt
20+#include <QGuiApplication>
21+#include <QScreen>
22+#include <QDebug>
23+
24+Q_DECLARE_METATYPE(QScreen*)
25+
26+Screens::Screens(QObject *parent) :
27+ QAbstractListModel(parent)
28+{
29+ // start with one screen attached
30+ m_screenList.append(new Screen());
31+}
32+
33+Screens::~Screens()
34+{
35+ qDeleteAll(m_screenList);
36+ m_screenList.clear();
37+}
38+
39+QHash<int, QByteArray> Screens::roleNames() const
40+{
41+ QHash<int, QByteArray> roles;
42+ roles[ScreenRole] = "screen";
43+ roles[OutputTypeRole] = "outputType";
44+ return roles;
45+}
46+
47+QVariant Screens::data(const QModelIndex &index, int role) const
48+{
49+ if (!index.isValid() || index.row() >= m_screenList.size()) {
50+ return QVariant();
51+ }
52+
53+ switch(role) {
54+ case ScreenRole:
55+ return QVariant::fromValue(m_screenList.at(index.row())->qScreen);
56+ case OutputTypeRole:
57+ return m_screenList.at(index.row())->outputTypes;
58+ }
59+
60+ return QVariant();
61+}
62+
63+int Screens::rowCount(const QModelIndex &) const
64+{
65+ return count();
66+}
67+
68+int Screens::count() const
69+{
70+ return m_screenList.size();
71+}
tests/mocks/Unity/Screens/screens.hnew file+82
@@ -0,0 +1,82 @@
1+/*
2+ * Copyright (C) 2015 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 SCREENS_H
18+#define SCREENS_H
19+
20+#include <QAbstractListModel>
21+#include <QScreen>
22+
23+class Screen;
24+
25+class Screens : public QAbstractListModel
26+{
27+ Q_OBJECT
28+ Q_ENUMS(OutputTypes)
29+
30+ Q_PROPERTY(int count READ count NOTIFY countChanged)
31+
32+public:
33+ enum ItemRoles {
34+ ScreenRole = Qt::UserRole + 1,
35+ OutputTypeRole
36+ };
37+
38+ enum OutputTypes {
39+ Unknown,
40+ VGA,
41+ DVII,
42+ DVID,
43+ DVIA,
44+ Composite,
45+ SVideo,
46+ LVDS,
47+ Component,
48+ NinePinDIN,
49+ DisplayPort,
50+ HDMIA,
51+ HDMIB,
52+ TV,
53+ EDP
54+ };
55+
56+ explicit Screens(QObject *parent = 0);
57+ virtual ~Screens() noexcept;
58+
59+ /* QAbstractItemModel */
60+ QHash<int, QByteArray> roleNames() const override;
61+ QVariant data(const QModelIndex &index, int role = ScreenRole) const override;
62+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
63+
64+ int count() const;
65+
66+Q_SIGNALS:
67+ void countChanged();
68+ void screenAdded(QScreen *screen);
69+ void screenRemoved(QScreen *screen);
70+
71+private:
72+ QList<Screen *> m_screenList;
73+};
74+
75+class Screen
76+{
77+public:
78+ Screens::OutputTypes outputTypes = Screens::Unknown;
79+ QScreen *qScreen = nullptr;
80+};
81+
82+#endif // SCREENS_H
tests/mocks/Unity/fake_categories.cpp+1−1
@@ -141,7 +141,7 @@ ResultsModel* Categories::resultModel(int row) const
141 ResultsModel *result = m_resultsModels[row];
141 ResultsModel *result = m_resultsModels[row];
142 if (!result) {
142 if (!result) {
143 Categories *that = const_cast<Categories*>(this);
143 Categories *that = const_cast<Categories*>(this);
144− result = new ResultsModel(15, row, that);
144+ result = new ResultsModel(25, row, that);
145 m_resultsModels[row] = result;
145 m_resultsModels[row] = result;
146 }
146 }
147 return result;
147 return result;
tests/mocks/Utils/CMakeLists.txt+1−2
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
3include_directories(
1include_directories(
4 ${CMAKE_CURRENT_SOURCE_DIR}
2 ${CMAKE_CURRENT_SOURCE_DIR}
5 ${CMAKE_CURRENT_BINARY_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
@@ -19,6 +17,7 @@ set(QMLPLUGIN_SRC
19 ${CMAKE_SOURCE_DIR}/plugins/Utils/easingcurve.cpp
17 ${CMAKE_SOURCE_DIR}/plugins/Utils/easingcurve.cpp
20 ${CMAKE_SOURCE_DIR}/plugins/Utils/inputwatcher.cpp
18 ${CMAKE_SOURCE_DIR}/plugins/Utils/inputwatcher.cpp
21 ${CMAKE_SOURCE_DIR}/plugins/Utils/applicationsfiltermodel.cpp
19 ${CMAKE_SOURCE_DIR}/plugins/Utils/applicationsfiltermodel.cpp
20+ ${CMAKE_SOURCE_DIR}/plugins/Utils/inputeventgenerator.cpp
22 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
21 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
23 constants.cpp
22 constants.cpp
24 plugin.cpp
23 plugin.cpp
tests/mocks/Utils/HomeKeyWatcher.qml → tests/mocks/Utils/WindowInputMonitor.qmlrenamed+3−1
@@ -17,5 +17,7 @@
17import QtQuick 2.4
17import QtQuick 2.4
18
18
19QtObject {
19QtObject {
20− signal activated()
20+ signal homeKeyActivated()
21+ signal touchBegun()
22+ signal touchEnded(point pos)
21}
23}
tests/mocks/Utils/plugin.cpp+2
@@ -36,6 +36,7 @@
36#include <windowscreenshotprovider.h>
36#include <windowscreenshotprovider.h>
37#include <easingcurve.h>
37#include <easingcurve.h>
38#include <applicationsfiltermodel.h>
38#include <applicationsfiltermodel.h>
39+#include <inputeventgenerator.h>
39
40
40static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
41static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
41{
42{
@@ -65,6 +66,7 @@ void FakeUtilsPlugin::registerTypes(const char *uri)
65 qmlRegisterSingletonType<Constants>(uri, 0, 1, "Constants", createConstants);
66 qmlRegisterSingletonType<Constants>(uri, 0, 1, "Constants", createConstants);
66 qmlRegisterType<ActiveFocusLogger>(uri, 0, 1, "ActiveFocusLogger");
67 qmlRegisterType<ActiveFocusLogger>(uri, 0, 1, "ActiveFocusLogger");
67 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
68 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
69+ qmlRegisterType<InputEventGenerator>(uri, 0, 1, "InputEventGenerator");
68}
70}
69
71
70void FakeUtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
72void FakeUtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
tests/mocks/Utils/qmldir+1−1
@@ -2,5 +2,5 @@ module Utils
2plugin FakeUtils-qml
2plugin FakeUtils-qml
3typeinfo Utils.qmltypes
3typeinfo Utils.qmltypes
4Style 0.1 Style.js
4Style 0.1 Style.js
5−HomeKeyWatcher 0.1 HomeKeyWatcher.qml
5+WindowInputMonitor 0.1 WindowInputMonitor.qml
6singleton EdgeBarrierSettings 0.1 EdgeBarrierSettings.qml
6singleton EdgeBarrierSettings 0.1 EdgeBarrierSettings.qml
tests/mocks/indicator-service/CMakeLists.txt−1
@@ -1,5 +1,4 @@
1project(mock-indicator-service)
1project(mock-indicator-service)
2−pkg_search_module(GIO REQUIRED gio-2.0)
3
2
4set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
3set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
5
4
tests/plugins/Dash/cardcreator/1.res+6−7
@@ -1,6 +1,5 @@
1AbstractButton {
1AbstractButton {
2 id: root;
2 id: root;
3− property var components;
4 property var cardData;
3 property var cardData;
5 property string artShapeStyle: "inset";
4 property string artShapeStyle: "inset";
6 property string backgroundShapeStyle: "inset";
5 property string backgroundShapeStyle: "inset";
@@ -24,13 +23,13 @@ Item {
24 Loader {
23 Loader {
25 id: artShapeLoader;
24 id: artShapeLoader;
26 objectName: "artShapeLoader";
25 objectName: "artShapeLoader";
27− active: cardData && cardData["art"] || false;
26+ readonly property string cardArt: cardData && cardData["art"] || "";
27+ active: cardArt != "";
28 asynchronous: root.asynchronous;
28 asynchronous: root.asynchronous;
29 visible: status == Loader.Ready;
29 visible: status == Loader.Ready;
30 sourceComponent: Item {
30 sourceComponent: Item {
31 id: artShape;
31 id: artShape;
32 objectName: "artShape";
32 objectName: "artShape";
33− readonly property bool doShapeItem: components["art"]["conciergeMode"] !== true;
34 visible: image.status == Image.Ready;
33 visible: image.status == Image.Ready;
35 readonly property alias image: artImage;
34 readonly property alias image: artImage;
36 ShaderEffectSource {
35 ShaderEffectSource {
@@ -39,11 +38,11 @@ Item {
39 anchors.centerIn: parent;
38 anchors.centerIn: parent;
40 width: 1;
39 width: 1;
41 height: 1;
40 height: 1;
42− hideSource: doShapeItem;
41+ hideSource: true;
43 }
42 }
44 Loader {
43 Loader {
45 anchors.fill: parent;
44 anchors.fill: parent;
46− visible: artShape.doShapeItem;
45+ visible: true;
47 sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent;
46 sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent;
48 Component {
47 Component {
49 id: artShapeShapeComponent;
48 id: artShapeShapeComponent;
@@ -67,7 +66,7 @@ Item {
67 }
66 }
68 }
67 }
69 readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
68 readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
70− readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : components !== undefined ? components["art"]["aspect-ratio"] : 1;
69+ readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : 1.6;
71 Component.onCompleted: { updateWidthHeightBindings(); }
70 Component.onCompleted: { updateWidthHeightBindings(); }
72 Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); }
71 Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); }
73 function updateWidthHeightBindings() {
72 function updateWidthHeightBindings() {
@@ -82,7 +81,7 @@ Item {
82 CroppedImageMinimumSourceSize {
81 CroppedImageMinimumSourceSize {
83 id: artImage;
82 id: artImage;
84 objectName: "artImage";
83 objectName: "artImage";
85− source: cardData && cardData["art"] || "";
84+ source: artShapeLoader.cardArt;
86 asynchronous: root.asynchronous;
85 asynchronous: root.asynchronous;
87 width: root.width;
86 width: root.width;
88 height: width / artShape.aspect;
87 height: width / artShape.aspect;
tests/plugins/Dash/cardcreator/10.resnew file+141
@@ -0,0 +1,141 @@
1+AbstractButton {
2+ id: root;
3+ property var cardData;
4+ property string artShapeStyle: "inset";
5+ property string backgroundShapeStyle: "inset";
6+ property real fontScale: 1.0;
7+ property var scopeStyle: null;
8+ property int titleAlignment: Text.AlignLeft;
9+ property int fixedHeaderHeight: -1;
10+ property size fixedArtShapeSize: Qt.size(-1, -1);
11+ readonly property string title: cardData && cardData["title"] || "";
12+ property bool asynchronous: true;
13+ property bool showHeader: true;
14+ implicitWidth: childrenRect.width;
15+ enabled: true;
16+
17+Loader {
18+ id: backgroundLoader;
19+ objectName: "backgroundLoader";
20+ anchors.fill: parent;
21+ asynchronous: root.asynchronous;
22+ visible: status == Loader.Ready;
23+ sourceComponent: UbuntuShape {
24+ objectName: "background";
25+ radius: "medium";
26+ aspect: {
27+ switch (root.backgroundShapeStyle) {
28+ case "inset": return UbuntuShape.Inset;
29+ case "shadow": return UbuntuShape.DropShadow;
30+ default:
31+ case "flat": return UbuntuShape.Flat;
32+ }
33+ }
34+ backgroundColor: getColor(0) || "white";
35+ secondaryBackgroundColor: getColor(1) || backgroundColor;
36+ backgroundMode: UbuntuShape.VerticalGradient;
37+ anchors.fill: parent;
38+ source: backgroundImage.source ? backgroundImage : null;
39+ property real luminance: Style.luminance(backgroundColor);
40+ property Image backgroundImage: Image {
41+ objectName: "backgroundImage";
42+ source: {
43+ if (cardData && typeof cardData["background"] === "string") return cardData["background"];
44+ else return "";
45+ }
46+ }
47+ function getColor(index) {
48+ if (cardData && typeof cardData["background"] === "object"
49+ && (cardData["background"]["type"] === "color" || cardData["background"]["type"] === "gradient")) {
50+ return cardData["background"]["elements"][index];
51+ } else return index === 0 ? "" : "";
52+ }
53+ }
54+ }
55+readonly property size artShapeSize: Qt.size(-1, -1);
56+readonly property int headerHeight: row.height;
57+Row {
58+ id: row;
59+ objectName: "outerRow";
60+ property real margins: units.gu(1);
61+ spacing: margins;
62+ height: root.fixedHeaderHeight != -1 ? root.fixedHeaderHeight : implicitHeight;
63+ anchors { top: parent.top;
64+ topMargin: units.gu(1);
65+left: parent.left;
66+ }
67+ anchors.right: parent.right;
68+ anchors.margins: margins;
69+ anchors.rightMargin: 0;
70+ data: [
71+ CroppedImageMinimumSourceSize {
72+ id: mascotImage;
73+ objectName: "mascotImage";
74+ anchors { verticalCenter: parent.verticalCenter; }
75+ source: cardData && cardData["mascot"] || "";
76+ width: units.gu(6);
77+ height: units.gu(5.625);
78+ horizontalAlignment: Image.AlignHCenter;
79+ verticalAlignment: Image.AlignVCenter;
80+ visible: showHeader;
81+
82+ }
83+,Item {
84+ id: headerTitleContainer;
85+ anchors { verticalCenter: parent.verticalCenter; }
86+ width: parent.width - x;
87+ implicitHeight: titleLabel.height + subtitleLabel.height;
88+ data: [
89+ Label {
90+ id: titleLabel;
91+ objectName: "titleLabel";
92+ anchors { right: parent.right;
93+rightMargin: units.gu(1);
94+left: parent.left;
95+ top: parent.top; }
96+ elide: Text.ElideRight;
97+ fontSize: "small";
98+ wrapMode: Text.Wrap;
99+ maximumLineCount: 2;
100+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
101+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item && backgroundLoader.item.luminance > 0.7 ? theme.palette.normal.baseText : "white");
102+ visible: showHeader ;
103+ width: undefined;
104+ text: root.title;
105+ font.weight: cardData && cardData["subtitle"] ? Font.DemiBold : Font.Normal;
106+ horizontalAlignment: root.titleAlignment;
107+ }
108+,Label {
109+ id: subtitleLabel;
110+ objectName: "subtitleLabel";
111+ anchors { right: parent.right;
112+ left: parent.left;
113+rightMargin: units.gu(1);
114+top: titleLabel.bottom;
115+ }
116+ anchors.topMargin: units.dp(2);
117+ elide: Text.ElideRight;
118+ maximumLineCount: 1;
119+ fontSize: "x-small";
120+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
121+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item && backgroundLoader.item.luminance > 0.7 ? theme.palette.normal.baseText : "white");
122+ visible: titleLabel.visible && titleLabel.text;
123+ text: cardData && cardData["subtitle"] || "";
124+ font.weight: Font.Light;
125+ }
126+
127+ ]
128+ }
129+
130+ ]
131+ }
132+UbuntuShape {
133+ id: touchdown;
134+ objectName: "touchdown";
135+ anchors { fill: backgroundLoader }
136+ visible: root.artShapeStyle != "shadow" && root.artShapeStyle != "icon" && root.pressed;
137+ radius: "medium";
138+ borderSource: "radius_pressed.sci"
139+ }
140+implicitHeight: row.y + row.height + units.gu(1);
141+}
tests/plugins/Dash/cardcreator/10.tst+2−1
@@ -1,2 +1,3 @@
1−template: {"card-background":{"elements":["#E9E9E9"],"type":"color"},"card-layout":"vertical","card-size":"medium","category-layout":"grid","collapsed-rows":2, "card-background": { "type": "color", "elements": [ "\" : \"\";} Item { } function moo() { return true ? \"" ] } }
1+template: {"card-background":{"elements":["#E9E9E9"],"type":"color"},"card-layout":"vertical","card-size":"medium","category-layout":"grid","collapsed-rows":2, "card-background": { "type": "color", "elements": [ "\\", ": 3; } Item { } function moo () { \"" ] } }
2components: {"art":{"aspect-ratio":1},"background":{"field":"background"},"mascot":{"field":"icon"},"subtitle":{"field":"author"},"title":{"field":"title"},"attributes":{}}
2components: {"art":{"aspect-ratio":1},"background":{"field":"background"},"mascot":{"field":"icon"},"subtitle":{"field":"author"},"title":{"field":"title"},"attributes":{}}
3+result: 10.res
tests/plugins/Dash/cardcreator/11.resnew file+216
@@ -0,0 +1,216 @@
1+AbstractButton {
2+ id: root;
3+ property var cardData;
4+ property string artShapeStyle: "inset";
5+ property string backgroundShapeStyle: "inset";
6+ property real fontScale: 1.0;
7+ property var scopeStyle: null;
8+ property int titleAlignment: Text.AlignLeft;
9+ property int fixedHeaderHeight: -1;
10+ property size fixedArtShapeSize: Qt.size(-1, -1);
11+ readonly property string title: cardData && cardData["title"] || "";
12+ property bool asynchronous: true;
13+ property bool showHeader: true;
14+ implicitWidth: childrenRect.width;
15+ enabled: true;
16+
17+Loader {
18+ id: backgroundLoader;
19+ objectName: "backgroundLoader";
20+ anchors.fill: parent;
21+ asynchronous: root.asynchronous;
22+ visible: status == Loader.Ready;
23+ sourceComponent: UbuntuShape {
24+ objectName: "background";
25+ radius: "medium";
26+ aspect: {
27+ switch (root.backgroundShapeStyle) {
28+ case "inset": return UbuntuShape.Inset;
29+ case "shadow": return UbuntuShape.DropShadow;
30+ default:
31+ case "flat": return UbuntuShape.Flat;
32+ }
33+ }
34+ backgroundColor: getColor(0) || "white";
35+ secondaryBackgroundColor: getColor(1) || backgroundColor;
36+ backgroundMode: UbuntuShape.VerticalGradient;
37+ anchors.fill: parent;
38+ source: backgroundImage.source ? backgroundImage : null;
39+ property real luminance: Style.luminance(backgroundColor);
40+ property Image backgroundImage: Image {
41+ objectName: "backgroundImage";
42+ source: {
43+ if (cardData && typeof cardData["background"] === "string") return cardData["background"];
44+ else return "";
45+ }
46+ }
47+ function getColor(index) {
48+ if (cardData && typeof cardData["background"] === "object"
49+ && (cardData["background"]["type"] === "color" || cardData["background"]["type"] === "gradient")) {
50+ return cardData["background"]["elements"][index];
51+ } else return index === 0 ? "#E9E9E9" : undefined;
52+ }
53+ }
54+ }
55+readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);
56+Item {
57+ id: artShapeHolder;
58+ height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height;
59+ width: root.fixedArtShapeSize.width > 0 ? root.fixedArtShapeSize.width : artShapeLoader.width;
60+ anchors { horizontalCenter: parent.horizontalCenter; }
61+ Loader {
62+ id: artShapeLoader;
63+ objectName: "artShapeLoader";
64+ readonly property string cardArt: cardData && cardData["art"] || decodeURI("%5C");
65+ active: cardArt != "";
66+ asynchronous: root.asynchronous;
67+ visible: status == Loader.Ready;
68+ sourceComponent: Item {
69+ id: artShape;
70+ objectName: "artShape";
71+ visible: image.status == Image.Ready;
72+ readonly property alias image: artImage;
73+ ShaderEffectSource {
74+ id: artShapeSource;
75+ sourceItem: artImage;
76+ anchors.centerIn: parent;
77+ width: 1;
78+ height: 1;
79+ hideSource: true;
80+ }
81+ Loader {
82+ anchors.fill: parent;
83+ visible: true;
84+ sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent;
85+ Component {
86+ id: artShapeShapeComponent;
87+ UbuntuShape {
88+ source: artShapeSource;
89+ sourceFillMode: UbuntuShape.PreserveAspectCrop;
90+ radius: "medium";
91+ aspect: {
92+ switch (root.artShapeStyle) {
93+ case "inset": return UbuntuShape.Inset;
94+ case "shadow": return UbuntuShape.DropShadow;
95+ default:
96+ case "flat": return UbuntuShape.Flat;
97+ }
98+ }
99+ }
100+ }
101+ Component {
102+ id: artShapeIconComponent;
103+ ProportionalShape { source: artShapeSource; aspect: UbuntuShape.DropShadow; }
104+ }
105+ }
106+ readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
107+ readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : 1;
108+ Component.onCompleted: { updateWidthHeightBindings(); }
109+ Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); }
110+ function updateWidthHeightBindings() {
111+ if (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) {
112+ width = root.fixedArtShapeSize.width;
113+ height = root.fixedArtShapeSize.height;
114+ } else {
115+ width = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.width });
116+ height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height });
117+ }
118+ }
119+ CroppedImageMinimumSourceSize {
120+ id: artImage;
121+ objectName: "artImage";
122+ source: artShapeLoader.cardArt;
123+ asynchronous: root.asynchronous;
124+ width: root.width;
125+ height: width / artShape.aspect;
126+ onStatusChanged: if (status === Image.Error) source = decodeURI("%5C");
127+ }
128+ }
129+ }
130+ }
131+readonly property int headerHeight: row.height;
132+Row {
133+ id: row;
134+ objectName: "outerRow";
135+ property real margins: units.gu(1);
136+ spacing: margins;
137+ height: root.fixedHeaderHeight != -1 ? root.fixedHeaderHeight : implicitHeight;
138+ anchors { top: artShapeHolder.bottom;
139+ topMargin: units.gu(1);
140+left: parent.left;
141+ }
142+ anchors.right: parent.right;
143+ anchors.margins: margins;
144+ anchors.rightMargin: 0;
145+ data: [
146+ CroppedImageMinimumSourceSize {
147+ id: mascotImage;
148+ objectName: "mascotImage";
149+ anchors { verticalCenter: parent.verticalCenter; }
150+ source: cardData && cardData["mascot"] || decodeURI("%22");
151+ width: units.gu(6);
152+ height: units.gu(5.625);
153+ horizontalAlignment: Image.AlignHCenter;
154+ verticalAlignment: Image.AlignVCenter;
155+ visible: showHeader;
156+ onStatusChanged: if (status === Image.Error) source = decodeURI("%22");
157+ }
158+,Item {
159+ id: headerTitleContainer;
160+ anchors { verticalCenter: parent.verticalCenter; }
161+ width: parent.width - x;
162+ implicitHeight: titleLabel.height + subtitleLabel.height;
163+ data: [
164+ Label {
165+ id: titleLabel;
166+ objectName: "titleLabel";
167+ anchors { right: parent.right;
168+rightMargin: units.gu(1);
169+left: parent.left;
170+ top: parent.top; }
171+ elide: Text.ElideRight;
172+ fontSize: "small";
173+ wrapMode: Text.Wrap;
174+ maximumLineCount: 2;
175+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
176+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item && backgroundLoader.item.luminance > 0.7 ? theme.palette.normal.baseText : "white");
177+ visible: showHeader ;
178+ width: undefined;
179+ text: root.title;
180+ font.weight: cardData && cardData["subtitle"] ? Font.DemiBold : Font.Normal;
181+ horizontalAlignment: root.titleAlignment;
182+ }
183+,Label {
184+ id: subtitleLabel;
185+ objectName: "subtitleLabel";
186+ anchors { right: parent.right;
187+ left: parent.left;
188+rightMargin: units.gu(1);
189+top: titleLabel.bottom;
190+ }
191+ anchors.topMargin: units.dp(2);
192+ elide: Text.ElideRight;
193+ maximumLineCount: 1;
194+ fontSize: "x-small";
195+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
196+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item && backgroundLoader.item.luminance > 0.7 ? theme.palette.normal.baseText : "white");
197+ visible: titleLabel.visible && titleLabel.text;
198+ text: cardData && cardData["subtitle"] || "";
199+ font.weight: Font.Light;
200+ }
201+
202+ ]
203+ }
204+
205+ ]
206+ }
207+UbuntuShape {
208+ id: touchdown;
209+ objectName: "touchdown";
210+ anchors { fill: backgroundLoader }
211+ visible: root.artShapeStyle != "shadow" && root.artShapeStyle != "icon" && root.pressed;
212+ radius: "medium";
213+ borderSource: "radius_pressed.sci"
214+ }
215+implicitHeight: row.y + row.height + units.gu(1);
216+}
tests/plugins/Dash/cardcreator/11.tstnew file+3
@@ -0,0 +1,3 @@
1+template: {"card-background":{"elements":["#E9E9E9"],"type":"color"},"card-layout":"vertical","card-size":"medium","category-layout":"grid","collapsed-rows":2 }
2+components: {"art":{"aspect-ratio":1,"field":"art","fallback":"\\"},"background":{"field":"background"},"mascot":{"field":"icon","fallback":"\""},"subtitle":{"field":"author"},"title":{"field":"title"},"attributes":{}}
3+result: 11.res
tests/plugins/Dash/cardcreator/2.res−1
@@ -1,6 +1,5 @@
1AbstractButton {
1AbstractButton {
2 id: root;
2 id: root;
3− property var components;
4 property var cardData;
3 property var cardData;
5 property string artShapeStyle: "inset";
4 property string artShapeStyle: "inset";
6 property string backgroundShapeStyle: "inset";
5 property string backgroundShapeStyle: "inset";
tests/plugins/Dash/cardcreator/3.res+7−8
@@ -1,6 +1,5 @@
1AbstractButton {
1AbstractButton {
2 id: root;
2 id: root;
3− property var components;
4 property var cardData;
3 property var cardData;
5 property string artShapeStyle: "inset";
4 property string artShapeStyle: "inset";
6 property string backgroundShapeStyle: "inset";
5 property string backgroundShapeStyle: "inset";
@@ -24,13 +23,13 @@ Item {
24 Loader {
23 Loader {
25 id: artShapeLoader;
24 id: artShapeLoader;
26 objectName: "artShapeLoader";
25 objectName: "artShapeLoader";
27− active: cardData && cardData["art"] || false;
26+ readonly property string cardArt: cardData && cardData["art"] || decodeURI("IHAVE%5C%22ESCAPED%5C%22QUOTES%5C%22");
27+ active: cardArt != "";
28 asynchronous: root.asynchronous;
28 asynchronous: root.asynchronous;
29 visible: status == Loader.Ready;
29 visible: status == Loader.Ready;
30 sourceComponent: Item {
30 sourceComponent: Item {
31 id: artShape;
31 id: artShape;
32 objectName: "artShape";
32 objectName: "artShape";
33− readonly property bool doShapeItem: components["art"]["conciergeMode"] !== true;
34 visible: image.status == Image.Ready;
33 visible: image.status == Image.Ready;
35 readonly property alias image: artImage;
34 readonly property alias image: artImage;
36 ShaderEffectSource {
35 ShaderEffectSource {
@@ -39,11 +38,11 @@ Item {
39 anchors.centerIn: parent;
38 anchors.centerIn: parent;
40 width: 1;
39 width: 1;
41 height: 1;
40 height: 1;
42− hideSource: doShapeItem;
41+ hideSource: true;
43 }
42 }
44 Loader {
43 Loader {
45 anchors.fill: parent;
44 anchors.fill: parent;
46− visible: artShape.doShapeItem;
45+ visible: true;
47 sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent;
46 sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent;
48 Component {
47 Component {
49 id: artShapeShapeComponent;
48 id: artShapeShapeComponent;
@@ -67,7 +66,7 @@ Item {
67 }
66 }
68 }
67 }
69 readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
68 readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
70− readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : components !== undefined ? components["art"]["aspect-ratio"] : 1;
69+ readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : 0.75;
71 Component.onCompleted: { updateWidthHeightBindings(); }
70 Component.onCompleted: { updateWidthHeightBindings(); }
72 Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); }
71 Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); }
73 function updateWidthHeightBindings() {
72 function updateWidthHeightBindings() {
@@ -82,11 +81,11 @@ Item {
82 CroppedImageMinimumSourceSize {
81 CroppedImageMinimumSourceSize {
83 id: artImage;
82 id: artImage;
84 objectName: "artImage";
83 objectName: "artImage";
85− source: cardData && cardData["art"] || "";
84+ source: artShapeLoader.cardArt;
86 asynchronous: root.asynchronous;
85 asynchronous: root.asynchronous;
87 width: root.width;
86 width: root.width;
88 height: width / artShape.aspect;
87 height: width / artShape.aspect;
89− onStatusChanged: if (status === Image.Error) source = "IHAVE\"ESCAPED\"QUOTES\"";
88+ onStatusChanged: if (status === Image.Error) source = decodeURI("IHAVE%5C%22ESCAPED%5C%22QUOTES%5C%22");
90 }
89 }
91 }
90 }
92 }
91 }
tests/plugins/Dash/cardcreator/4.res−1
@@ -1,6 +1,5 @@
1AbstractButton {
1AbstractButton {
2 id: root;
2 id: root;
3− property var components;
4 property var cardData;
3 property var cardData;
5 property string artShapeStyle: "inset";
4 property string artShapeStyle: "inset";
6 property string backgroundShapeStyle: "inset";
5 property string backgroundShapeStyle: "inset";
tests/plugins/Dash/cardcreator/5.res+6−7
@@ -1,6 +1,5 @@
1AbstractButton {
1AbstractButton {
2 id: root;
2 id: root;
3− property var components;
4 property var cardData;
3 property var cardData;
5 property string artShapeStyle: "inset";
4 property string artShapeStyle: "inset";
6 property string backgroundShapeStyle: "inset";
5 property string backgroundShapeStyle: "inset";
@@ -24,13 +23,13 @@ Item {
24 Loader {
23 Loader {
25 id: artShapeLoader;
24 id: artShapeLoader;
26 objectName: "artShapeLoader";
25 objectName: "artShapeLoader";
27− active: cardData && cardData["art"] || false;
26+ readonly property string cardArt: cardData && cardData["art"] || "";
27+ active: cardArt != "";
28 asynchronous: root.asynchronous;
28 asynchronous: root.asynchronous;
29 visible: status == Loader.Ready;
29 visible: status == Loader.Ready;
30 sourceComponent: Item {
30 sourceComponent: Item {
31 id: artShape;
31 id: artShape;
32 objectName: "artShape";
32 objectName: "artShape";
33− readonly property bool doShapeItem: components["art"]["conciergeMode"] !== true;
34 visible: image.status == Image.Ready;
33 visible: image.status == Image.Ready;
35 readonly property alias image: artImage;
34 readonly property alias image: artImage;
36 ShaderEffectSource {
35 ShaderEffectSource {
@@ -39,11 +38,11 @@ Item {
39 anchors.centerIn: parent;
38 anchors.centerIn: parent;
40 width: 1;
39 width: 1;
41 height: 1;
40 height: 1;
42− hideSource: doShapeItem;
41+ hideSource: false;
43 }
42 }
44 Loader {
43 Loader {
45 anchors.fill: parent;
44 anchors.fill: parent;
46− visible: artShape.doShapeItem;
45+ visible: false;
47 sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent;
46 sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent;
48 Component {
47 Component {
49 id: artShapeShapeComponent;
48 id: artShapeShapeComponent;
@@ -67,7 +66,7 @@ Item {
67 }
66 }
68 }
67 }
69 readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
68 readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
70− readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : components !== undefined ? components["art"]["aspect-ratio"] : 1;
69+ readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : 1;
71 Component.onCompleted: { updateWidthHeightBindings(); }
70 Component.onCompleted: { updateWidthHeightBindings(); }
72 Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); }
71 Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); }
73 function updateWidthHeightBindings() {
72 function updateWidthHeightBindings() {
@@ -82,7 +81,7 @@ Item {
82 CroppedImageMinimumSourceSize {
81 CroppedImageMinimumSourceSize {
83 id: artImage;
82 id: artImage;
84 objectName: "artImage";
83 objectName: "artImage";
85− source: cardData && cardData["art"] || "";
84+ source: artShapeLoader.cardArt;
86 asynchronous: root.asynchronous;
85 asynchronous: root.asynchronous;
87 width: root.width;
86 width: root.width;
88 height: width / artShape.aspect;
87 height: width / artShape.aspect;
tests/plugins/Dash/cardcreator/5.tst+1−1
@@ -1,3 +1,3 @@
1template: {"non-interactive":true,"card-layout":"vertical","card-size":"medium","category-layout":"carousel","collapsed-rows":2,"overlay":true}
1template: {"non-interactive":true,"card-layout":"vertical","card-size":"medium","category-layout":"carousel","collapsed-rows":2,"overlay":true}
2−components: {"art":{"aspect-ratio":1,"field":"art"},"subtitle":{"field":"artist"},"title":{"field":"title"},"attributes":{}}
2+components: {"art":{"aspect-ratio":1,"field":"art","conciergeMode":true},"subtitle":{"field":"artist"},"title":{"field":"title"},"attributes":{}}
3result: 5.res
3result: 5.res
tests/plugins/Dash/cardcreator/6.res+1−2
@@ -1,6 +1,5 @@
1AbstractButton {
1AbstractButton {
2 id: root;
2 id: root;
3− property var components;
4 property var cardData;
3 property var cardData;
5 property string artShapeStyle: "inset";
4 property string artShapeStyle: "inset";
6 property string backgroundShapeStyle: "inset";
5 property string backgroundShapeStyle: "inset";
@@ -42,7 +41,7 @@ Loader {
42 objectName: "backgroundImage";
41 objectName: "backgroundImage";
43 source: {
42 source: {
44 if (cardData && typeof cardData["background"] === "string") return cardData["background"];
43 if (cardData && typeof cardData["background"] === "string") return cardData["background"];
45− else return "http://assets.ubuntu.com/sites/ubuntu/latest/u/img/logos/logo-ubuntu-grey.png";
44+ else return decodeURI("http://assets.ubuntu.com/sites/ubuntu/latest/u/img/logos/logo-ubuntu-grey.png");
46 }
45 }
47 }
46 }
48 function getColor(index) {
47 function getColor(index) {
tests/plugins/Dash/cardcreator/7.res−1
@@ -1,6 +1,5 @@
1AbstractButton {
1AbstractButton {
2 id: root;
2 id: root;
3− property var components;
4 property var cardData;
3 property var cardData;
5 property string artShapeStyle: "inset";
4 property string artShapeStyle: "inset";
6 property string backgroundShapeStyle: "inset";
5 property string backgroundShapeStyle: "inset";
tests/plugins/Dash/cardcreator/8.res+1−2
@@ -1,7 +1,6 @@
1AbstractButton {
1AbstractButton {
2 id: root;
2 id: root;
3− property var components;
3+ property var cardData;
4− property var cardData;
5 property string artShapeStyle: "inset";
4 property string artShapeStyle: "inset";
6 property string backgroundShapeStyle: "inset";
5 property string backgroundShapeStyle: "inset";
7 property real fontScale: 1.0;
6 property real fontScale: 1.0;
tests/plugins/Dash/cardcreator/9.res+12−4
@@ -1,9 +1,8 @@
1AbstractButton {
1AbstractButton {
2 id: root;
2 id: root;
3− property var components;
4 property var cardData;
3 property var cardData;
5 property string artShapeStyle: "inset";
4 property string artShapeStyle: "inset";
6− property string backgroundShapeStyle: "inset";
5+ property string backgroundShapeStyle: "inset";
7 property real fontScale: 1.0;
6 property real fontScale: 1.0;
8 property var scopeStyle: null;
7 property var scopeStyle: null;
9 property int titleAlignment: Text.AlignLeft;
8 property int titleAlignment: Text.AlignLeft;
@@ -80,11 +79,20 @@ CardAudioProgress {
80 visible: parent.pressed;
79 visible: parent.pressed;
81 radius: "medium";
80 radius: "medium";
82 }
81 }
82+ Rectangle {
83+ color: Qt.rgba(0, 0, 0, 0.5);
84+ anchors.centerIn: parent;
85+ width: parent.width * 0.5;
86+ height: width;
87+ radius: width / 2;
88+ }
83 Icon {
89 Icon {
84− anchors.fill: parent;
90+ anchors.centerIn: parent;
85− anchors.margins: parent.height > units.gu(5) ? units.gu(2) : 0;
91+ width: parent.width * 0.3;
92+ height: width;
86 opacity: 0.9;
93 opacity: 0.9;
87 name: DashAudioPlayer.playing && AudioUrlComparer.compare(parent.source, DashAudioPlayer.currentSource) ? "media-playback-pause" : "media-playback-start";
94 name: DashAudioPlayer.playing && AudioUrlComparer.compare(parent.source, DashAudioPlayer.currentSource) ? "media-playback-pause" : "media-playback-start";
95+ color: "white";
88 }
96 }
89 onClicked: {
97 onClicked: {
90 if (AudioUrlComparer.compare(source, DashAudioPlayer.currentSource)) {
98 if (AudioUrlComparer.compare(source, DashAudioPlayer.currentSource)) {
tests/plugins/Dash/cardcreatortest.cpp+21−22
@@ -63,6 +63,7 @@ private Q_SLOTS:
63
63
64 QVERIFY(lines[0].startsWith(templateString));
64 QVERIFY(lines[0].startsWith(templateString));
65 QVERIFY(lines[1].startsWith(componentsString));
65 QVERIFY(lines[1].startsWith(componentsString));
66+ QVERIFY(lines[2].startsWith(resultString));
66
67
67 const QString templateJSON = lines[0].mid(templateString.length());
68 const QString templateJSON = lines[0].mid(templateString.length());
68 const QString componentsJSON = lines[1].mid(componentsString.length());
69 const QString componentsJSON = lines[1].mid(componentsString.length());
@@ -71,32 +72,30 @@ private Q_SLOTS:
71 QVariant cardStringResult;
72 QVariant cardStringResult;
72 QMetaObject::invokeMethod(view->rootObject(), "cardString", Q_RETURN_ARG(QVariant, cardStringResult), Q_ARG(QVariant, templateJSON), Q_ARG(QVariant, componentsJSON));
73 QMetaObject::invokeMethod(view->rootObject(), "cardString", Q_RETURN_ARG(QVariant, cardStringResult), Q_ARG(QVariant, templateJSON), Q_ARG(QVariant, componentsJSON));
73
74
74− if (!resultFileName.isEmpty()) {
75− QFile testResultFile(testDirPath + resultFileName);
75+ QFile testResultFile(testDirPath + resultFileName);
76− QVERIFY(testResultFile.open(QIODevice::ReadOnly));
76+ QVERIFY(testResultFile.open(QIODevice::ReadOnly));
77− QTextStream ts2(&testResultFile);
77+ QTextStream ts2(&testResultFile);
78−
78+
79− // Record failed results to /tmp
79+ // Record failed results to /tmp
80− const QString executedResult = cardStringResult.toString();
80+ const QString executedResult = cardStringResult.toString();
81− QTemporaryFile tmpFile(QDir::tempPath() + QDir::separator() + "testCardCreatorFailedResultXXXXXX");
81+ QTemporaryFile tmpFile(QDir::tempPath() + QDir::separator() + "testCardCreatorFailedResultXXXXXX");
82− tmpFile.open();
82+ tmpFile.open();
83− tmpFile.setAutoRemove(false);
83+ tmpFile.setAutoRemove(false);
84− tmpFile.write(executedResult.toUtf8().constData());
84+ tmpFile.write(executedResult.toUtf8().constData());
85−
85+
86− // Line by line comparison
86+ // Line by line comparison
87− const QStringList expectedLines = ts2.readAll().trimmed().replace(QRegExp("\n\\s*\n"),"\n").split("\n");
87+ const QStringList expectedLines = ts2.readAll().trimmed().replace(QRegExp("\n\\s*\n"),"\n").split("\n");
88− const QStringList cardStringResultLines = cardStringResult.toString().trimmed().replace(QRegExp("\n\\s*\n"),"\n").split("\n");
88+ const QStringList cardStringResultLines = cardStringResult.toString().trimmed().replace(QRegExp("\n\\s*\n"),"\n").split("\n");
89− for (int i = 0; i < expectedLines.size(); ++i) {
89+ for (int i = 0; i < expectedLines.size(); ++i) {
90− QCOMPARE(cardStringResultLines[i].simplified(), expectedLines[i].simplified());
90+ QCOMPARE(cardStringResultLines[i].simplified(), expectedLines[i].simplified());
91− }
92−
93− // Remove the result if it passed
94− tmpFile.setAutoRemove(true);
95 }
91 }
96
92
93+ // Remove the result if it passed
94+ tmpFile.setAutoRemove(true);
95+
97 QVariant createCardComponentResult;
96 QVariant createCardComponentResult;
98 QMetaObject::invokeMethod(view->rootObject(), "createCardComponent", Q_RETURN_ARG(QVariant, createCardComponentResult), Q_ARG(QVariant, templateJSON), Q_ARG(QVariant, componentsJSON));
97 QMetaObject::invokeMethod(view->rootObject(), "createCardComponent", Q_RETURN_ARG(QVariant, createCardComponentResult), Q_ARG(QVariant, templateJSON), Q_ARG(QVariant, componentsJSON));
99− QCOMPARE(createCardComponentResult.toBool(), !resultFileName.isEmpty());
98+ QVERIFY(createCardComponentResult.toBool());
100 }
99 }
101 }
100 }
102
101
tests/plugins/Dash/listviewwithpageheadertest.cpp+23
@@ -1954,6 +1954,29 @@ private Q_SLOTS:
1954 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1954 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1955 }
1955 }
1956
1956
1957+ void testBug1540490()
1958+ {
1959+ lvwph->header()->setImplicitHeight(150);
1960+ verifyItem(0, 150., 150., false);
1961+
1962+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 3), Q_ARG(QVariant, 3));
1963+ model->setProperty(0, "size", 400);
1964+ model->setProperty(1, "size", 600);
1965+ model->setProperty(2, "size", 300);
1966+
1967+ scrollToBottom();
1968+ changeContentY(-200);
1969+
1970+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 1), Q_ARG(QVariant, 2));
1971+ model->setProperty(0, "size", 100);
1972+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 1));
1973+ lvwph->header()->setImplicitHeight(50);
1974+ QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 200));
1975+
1976+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 1);
1977+ verifyItem(0, 50., 200., false);
1978+ }
1979+
1957private:
1980private:
1958 QQuickView *view;
1981 QQuickView *view;
1959 ListViewWithPageHeader *lvwph;
1982 ListViewWithPageHeader *lvwph;
tests/plugins/Dash/listviewwithpageheadertest.qml−1
@@ -85,7 +85,6 @@ Rectangle {
85 pageHeader: Rectangle {
85 pageHeader: Rectangle {
86 color: "transparent"
86 color: "transparent"
87 width: parent.width
87 width: parent.width
88− height: 50
89 implicitHeight: 50
88 implicitHeight: 50
90 Text {
89 Text {
91 anchors.fill: parent
90 anchors.fill: parent
tests/plugins/Unity/Indicators/CMakeLists.txt−4
@@ -1,7 +1,3 @@
1−pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
2−pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
3−pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
4−
5set(INDICATORS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../plugins/Unity/Indicators)
1set(INDICATORS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../plugins/Unity/Indicators)
6set(TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
2set(TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
7
3
tests/plugins/Unity/Launcher/launchermodeltest.cpp+2
@@ -61,6 +61,8 @@ public:
61 bool isTouchApp() const override { return true; }
61 bool isTouchApp() const override { return true; }
62 bool exemptFromLifecycle() const override { return false; }
62 bool exemptFromLifecycle() const override { return false; }
63 void setExemptFromLifecycle(bool) override {}
63 void setExemptFromLifecycle(bool) override {}
64+ QSize initialSurfaceSize() const override { return QSize(); }
65+ void setInitialSurfaceSize(const QSize &) override {}
64
66
65 // Methods used for mocking (not in the interface)
67 // Methods used for mocking (not in the interface)
66 void setFocused(bool focused) { m_focused = focused; Q_EMIT focusedChanged(focused); }
68 void setFocused(bool focused) { m_focused = focused; Q_EMIT focusedChanged(focused); }
tests/plugins/Unity/Session/sessionbackendtest.cpp+1
@@ -149,6 +149,7 @@ private Q_SLOTS:
149 }
149 }
150
150
151 void testLogin1Capabilities() {
151 void testLogin1Capabilities() {
152+ QSKIP("This test talks to real logind backend, it will fail depending on how the machine is set up");
152 DBusUnitySessionService dbusUnitySessionService;
153 DBusUnitySessionService dbusUnitySessionService;
153 QDBusInterface login1face("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus());
154 QDBusInterface login1face("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus());
154 QCoreApplication::processEvents(); // to let the services register on DBus
155 QCoreApplication::processEvents(); // to let the services register on DBus
tests/plugins/Utils/CMakeLists.txt+1−1
@@ -7,7 +7,7 @@ include_directories(
7foreach(util_test
7foreach(util_test
8 QLimitProxyModel
8 QLimitProxyModel
9 UnitySortFilterProxyModel
9 UnitySortFilterProxyModel
10− HomeKeyWatcher
10+ WindowInputMonitor
11)
11)
12 add_executable(${util_test}TestExec ${util_test}Test.cpp ModelTest.cpp)
12 add_executable(${util_test}TestExec ${util_test}Test.cpp ModelTest.cpp)
13 qt5_use_modules(${util_test}TestExec Test Core Qml)
13 qt5_use_modules(${util_test}TestExec Test Core Qml)
tests/plugins/Utils/HomeKeyWatcherTest.cpp → tests/plugins/Utils/WindowInputMonitorTest.cpprenamed+14−14
@@ -14,7 +14,7 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−#include "HomeKeyWatcher.h"
17+#include "WindowInputMonitor.h"
18
18
19#include <QTest>
19#include <QTest>
20#include <QSignalSpy>
20#include <QSignalSpy>
@@ -71,7 +71,7 @@ public:
71
71
72using namespace UnityUtil;
72using namespace UnityUtil;
73
73
74−class HomeKeyWatcherTest : public QObject {
74+class WindowInputMonitorTest : public QObject {
75 Q_OBJECT
75 Q_OBJECT
76private Q_SLOTS:
76private Q_SLOTS:
77 void init(); // called right before each and every test function is executed
77 void init(); // called right before each and every test function is executed
@@ -88,25 +88,25 @@ private:
88 FakeTimerFactory *m_fakeTimerFactory;
88 FakeTimerFactory *m_fakeTimerFactory;
89};
89};
90
90
91−void HomeKeyWatcherTest::init()
91+void WindowInputMonitorTest::init()
92{
92{
93 m_fakeTimerFactory = new FakeTimerFactory;
93 m_fakeTimerFactory = new FakeTimerFactory;
94}
94}
95
95
96−void HomeKeyWatcherTest::cleanup()
96+void WindowInputMonitorTest::cleanup()
97{
97{
98 delete m_fakeTimerFactory;
98 delete m_fakeTimerFactory;
99 m_fakeTimerFactory = nullptr;
99 m_fakeTimerFactory = nullptr;
100}
100}
101
101
102
102
103−void HomeKeyWatcherTest::passTime(qint64 timeSpanMs)
103+void WindowInputMonitorTest::passTime(qint64 timeSpanMs)
104{
104{
105 qint64 finalTime = FakeElapsedTimer::msecsSinceEpoch + timeSpanMs;
105 qint64 finalTime = FakeElapsedTimer::msecsSinceEpoch + timeSpanMs;
106 m_fakeTimerFactory->updateTime(finalTime);
106 m_fakeTimerFactory->updateTime(finalTime);
107}
107}
108
108
109−void HomeKeyWatcherTest::touchTapTouch_data()
109+void WindowInputMonitorTest::touchTapTouch_data()
110{
110{
111 QTest::addColumn<int>("silenceBeforeTap");
111 QTest::addColumn<int>("silenceBeforeTap");
112 QTest::addColumn<int>("tapDuration");
112 QTest::addColumn<int>("tapDuration");
@@ -121,14 +121,14 @@ void HomeKeyWatcherTest::touchTapTouch_data()
121 QTest::newRow("isolated long press") << 1000 << 200 << 1000 << 0;
121 QTest::newRow("isolated long press") << 1000 << 200 << 1000 << 0;
122}
122}
123
123
124−void HomeKeyWatcherTest::touchTapTouch()
124+void WindowInputMonitorTest::touchTapTouch()
125{
125{
126 QFETCH(int, silenceBeforeTap);
126 QFETCH(int, silenceBeforeTap);
127 QFETCH(int, tapDuration);
127 QFETCH(int, tapDuration);
128 QFETCH(int, silenceAfterTap);
128 QFETCH(int, silenceAfterTap);
129 QFETCH(int, expectedActivatedCount);
129 QFETCH(int, expectedActivatedCount);
130− HomeKeyWatcher homeKeyWatcher(m_fakeTimerFactory->create(), new FakeElapsedTimer);
130+ WindowInputMonitor homeKeyWatcher(m_fakeTimerFactory->create(), new FakeElapsedTimer);
131− QSignalSpy activatedSpy(&homeKeyWatcher, &HomeKeyWatcher::activated);
131+ QSignalSpy activatedSpy(&homeKeyWatcher, &WindowInputMonitor::homeKeyActivated);
132 QVERIFY(activatedSpy.isValid());
132 QVERIFY(activatedSpy.isValid());
133
133
134 {
134 {
@@ -186,10 +186,10 @@ void HomeKeyWatcherTest::touchTapTouch()
186 QCOMPARE(activatedSpy.count(), expectedActivatedCount);
186 QCOMPARE(activatedSpy.count(), expectedActivatedCount);
187}
187}
188
188
189−void HomeKeyWatcherTest::tapWhileTouching()
189+void WindowInputMonitorTest::tapWhileTouching()
190{
190{
191− HomeKeyWatcher homeKeyWatcher(m_fakeTimerFactory->create(), new FakeElapsedTimer);
191+ WindowInputMonitor homeKeyWatcher(m_fakeTimerFactory->create(), new FakeElapsedTimer);
192− QSignalSpy activatedSpy(&homeKeyWatcher, &HomeKeyWatcher::activated);
192+ QSignalSpy activatedSpy(&homeKeyWatcher, &WindowInputMonitor::homeKeyActivated);
193 QVERIFY(activatedSpy.isValid());
193 QVERIFY(activatedSpy.isValid());
194
194
195 {
195 {
@@ -318,6 +318,6 @@ AbstractTimer *FakeTimerFactory::create(QObject *parent)
318 return fakeTimer;
318 return fakeTimer;
319}
319}
320
320
321−QTEST_GUILESS_MAIN(HomeKeyWatcherTest)
321+QTEST_GUILESS_MAIN(WindowInputMonitorTest)
322
322
323−#include "HomeKeyWatcherTest.moc"
323+#include "WindowInputMonitorTest.moc"
tests/qmltests/CMakeLists.txt+2−1
@@ -12,11 +12,12 @@ add_unity8_qmltest(Components DraggingArea)
12add_unity8_qmltest(Components LazyImage)
12add_unity8_qmltest(Components LazyImage)
13add_unity8_qmltest(Components Lockscreen)
13add_unity8_qmltest(Components Lockscreen)
14add_unity8_qmltest(Components ModeSwitchWarningDialog)
14add_unity8_qmltest(Components ModeSwitchWarningDialog)
15−add_unity8_qmlunittest(Components PhysicalKeysMapper)
15+add_unity8_qmltest(Components PhysicalKeysMapper)
16add_unity8_qmltest(Components Rating)
16add_unity8_qmltest(Components Rating)
17add_unity8_qmltest(Components ResponsiveGridView)
17add_unity8_qmltest(Components ResponsiveGridView)
18add_unity8_qmltest(Components ResponsiveVerticalJournal)
18add_unity8_qmltest(Components ResponsiveVerticalJournal)
19add_unity8_qmltest(Components Showable)
19add_unity8_qmltest(Components Showable)
20+add_unity8_qmltest(Components VirtualTouchPad)
20add_unity8_qmltest(Components WallpaperResolver)
21add_unity8_qmltest(Components WallpaperResolver)
21add_unity8_qmltest(Components ZoomableImage)
22add_unity8_qmltest(Components ZoomableImage)
22add_unity8_qmltest(Dash Dash)
23add_unity8_qmltest(Dash Dash)
tests/qmltests/Components/tst_LazyImage.qml+27−8
@@ -112,6 +112,11 @@ Rectangle {
112 }
112 }
113 }
113 }
114
114
115+ SignalSpy {
116+ id: signalSpy
117+ signalName: "runningChanged"
118+ }
119+
115 UT.UnityTestCase {
120 UT.UnityTestCase {
116 name: "LazyImage"
121 name: "LazyImage"
117 when: windowShown
122 when: windowShown
@@ -123,6 +128,18 @@ Rectangle {
123 tryCompare(lazy2, "height", units.gu(10));
128 tryCompare(lazy2, "height", units.gu(10));
124 controls3.blank();
129 controls3.blank();
125 tryCompare(lazy3, "width", units.gu(10));
130 tryCompare(lazy3, "width", units.gu(10));
131+
132+ tryCompare(lazy1, "state", "default");
133+ var transition = findChildIn(lazy1, "transitions", "genericTransition");
134+ tryCompare(transition, "running", false);
135+
136+ tryCompare(lazy2, "state", "default");
137+ transition = findChildIn(lazy2, "transitions", "genericTransition");
138+ tryCompare(transition, "running", false);
139+
140+ tryCompare(lazy3, "state", "default");
141+ transition = findChildIn(lazy3, "transitions", "genericTransition");
142+ tryCompare(transition, "running", false);
126 }
143 }
127
144
128 function test_lazyimage_data() {
145 function test_lazyimage_data() {
@@ -131,32 +148,34 @@ Rectangle {
131 {tag: "Unbound Wide", image: lazy1, func: controls1.wide, transition: "readyTransition", width: 160, height: 80, imageWidth: 160, imageHeight: 80, initialWidth: units.gu(10), initialHeight: units.gu(10)},
148 {tag: "Unbound Wide", image: lazy1, func: controls1.wide, transition: "readyTransition", width: 160, height: 80, imageWidth: 160, imageHeight: 80, initialWidth: units.gu(10), initialHeight: units.gu(10)},
132 {tag: "Unbound Square", image: lazy1, func: controls1.square, transition: "readyTransition", width: 160, height: 160, imageWidth: 160, imageHeight: 160, initialWidth: units.gu(10), initialHeight: units.gu(10)},
149 {tag: "Unbound Square", image: lazy1, func: controls1.square, transition: "readyTransition", width: 160, height: 160, imageWidth: 160, imageHeight: 160, initialWidth: units.gu(10), initialHeight: units.gu(10)},
133 {tag: "Unbound Portrait", image: lazy1, func: controls1.portrait, transition: "readyTransition", width: 80, height: 160, imageWidth: 80, imageHeight: 160, initialWidth: units.gu(10), initialHeight: units.gu(10)},
150 {tag: "Unbound Portrait", image: lazy1, func: controls1.portrait, transition: "readyTransition", width: 80, height: 160, imageWidth: 80, imageHeight: 160, initialWidth: units.gu(10), initialHeight: units.gu(10)},
134− {tag: "Unbound Bad path", image: lazy1, func: controls1.badpath, transition: "genericTransition", width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), initialWidth: units.gu(10), initialHeight: units.gu(10), placeholder: true, error: true},
151+ {tag: "Unbound Bad path", image: lazy1, func: controls1.badpath, transition: "genericTransition", state: "error", width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), initialWidth: units.gu(10), initialHeight: units.gu(10), placeholder: true, error: true},
135 {tag: "Width-bound Blank", image: lazy2, func: controls2.blank, width: units.gu(30), height: units.gu(10), imageWidth: units.gu(30), imageHeight: units.gu(10), initialWidth: units.gu(30), initialHeight: units.gu(10), placeholder: true},
152 {tag: "Width-bound Blank", image: lazy2, func: controls2.blank, width: units.gu(30), height: units.gu(10), imageWidth: units.gu(30), imageHeight: units.gu(10), initialWidth: units.gu(30), initialHeight: units.gu(10), placeholder: true},
136 {tag: "Width-bound Wide", image: lazy2, func: controls2.wide, transition: "readyTransition", width: units.gu(30), height: units.gu(15), imageWidth: units.gu(30), imageHeight: units.gu(15), initialWidth: units.gu(30), initialHeight: units.gu(10)},
153 {tag: "Width-bound Wide", image: lazy2, func: controls2.wide, transition: "readyTransition", width: units.gu(30), height: units.gu(15), imageWidth: units.gu(30), imageHeight: units.gu(15), initialWidth: units.gu(30), initialHeight: units.gu(10)},
137 {tag: "Width-bound Square", image: lazy2, func: controls2.square, transition: "readyTransition", width: units.gu(30), height: units.gu(30), imageWidth: units.gu(30), imageHeight: units.gu(30), initialWidth: units.gu(30), initialHeight: units.gu(10)},
154 {tag: "Width-bound Square", image: lazy2, func: controls2.square, transition: "readyTransition", width: units.gu(30), height: units.gu(30), imageWidth: units.gu(30), imageHeight: units.gu(30), initialWidth: units.gu(30), initialHeight: units.gu(10)},
138 {tag: "Width-bound Portrait", image: lazy2, func: controls2.portrait, transition: "readyTransition", width: units.gu(30), height: units.gu(60), imageWidth: units.gu(30), imageHeight: units.gu(60), initialWidth: units.gu(30), initialHeight: units.gu(10)},
155 {tag: "Width-bound Portrait", image: lazy2, func: controls2.portrait, transition: "readyTransition", width: units.gu(30), height: units.gu(60), imageWidth: units.gu(30), imageHeight: units.gu(60), initialWidth: units.gu(30), initialHeight: units.gu(10)},
139− {tag: "Width-bound Bad path", image: lazy2, func: controls2.badpath, transition: "genericTransition", width: units.gu(30), height: units.gu(10), imageWidth: units.gu(30), imageHeight: units.gu(10), initialWidth: units.gu(30), initialHeight: units.gu(10), placeholder: true, error: true},
156+ {tag: "Width-bound Bad path", image: lazy2, func: controls2.badpath, transition: "genericTransition", state: "error", width: units.gu(30), height: units.gu(10), imageWidth: units.gu(30), imageHeight: units.gu(10), initialWidth: units.gu(30), initialHeight: units.gu(10), placeholder: true, error: true},
140 {tag: "Height-bound Blank", image: lazy3, func: controls3.blank, width: units.gu(10), height: units.gu(12), imageWidth: units.gu(10), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12), placeholder: true},
157 {tag: "Height-bound Blank", image: lazy3, func: controls3.blank, width: units.gu(10), height: units.gu(12), imageWidth: units.gu(10), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12), placeholder: true},
141 {tag: "Height-bound Wide", image: lazy3, func: controls3.wide, transition: "readyTransition", width: units.gu(24), height: units.gu(12), imageWidth: units.gu(24), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12)},
158 {tag: "Height-bound Wide", image: lazy3, func: controls3.wide, transition: "readyTransition", width: units.gu(24), height: units.gu(12), imageWidth: units.gu(24), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12)},
142 {tag: "Height-bound Square", image: lazy3, func: controls3.square, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12)},
159 {tag: "Height-bound Square", image: lazy3, func: controls3.square, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12)},
143 {tag: "Height-bound Portrait", image: lazy3, func: controls3.portrait, transition: "readyTransition", width: units.gu(6), height: units.gu(12), imageWidth: units.gu(6), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12)},
160 {tag: "Height-bound Portrait", image: lazy3, func: controls3.portrait, transition: "readyTransition", width: units.gu(6), height: units.gu(12), imageWidth: units.gu(6), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12)},
144− {tag: "Height-bound Bad path", image: lazy3, func: controls3.badpath, transition: "genericTransition", width: units.gu(10), height: units.gu(12), imageWidth: units.gu(10), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12), placeholder: true, error: true},
161+ {tag: "Height-bound Bad path", image: lazy3, func: controls3.badpath, transition: "genericTransition", state: "error", width: units.gu(10), height: units.gu(12), imageWidth: units.gu(10), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12), placeholder: true, error: true},
145 {tag: "Fit Blank", image: lazy4, func: controls4.blank, width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12), placeholder: true},
162 {tag: "Fit Blank", image: lazy4, func: controls4.blank, width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12), placeholder: true},
146 {tag: "Fit Wide", image: lazy4, func: controls4.wide, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(6), initialWidth: units.gu(12), initialHeight: units.gu(12)},
163 {tag: "Fit Wide", image: lazy4, func: controls4.wide, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(6), initialWidth: units.gu(12), initialHeight: units.gu(12)},
147 {tag: "Fit Square", image: lazy4, func: controls4.square, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12)},
164 {tag: "Fit Square", image: lazy4, func: controls4.square, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12)},
148 {tag: "Fit Portrait", image: lazy4, func: controls4.portrait, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(6), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12)},
165 {tag: "Fit Portrait", image: lazy4, func: controls4.portrait, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(6), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12)},
149− {tag: "Fit Bad path", image: lazy4, func: controls4.badpath, transition: "genericTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12), placeholder: true, error: true},
166+ {tag: "Fit Bad path", image: lazy4, func: controls4.badpath, transition: "genericTransition", state: "error", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12), placeholder: true, error: true},
150 ]
167 ]
151 }
168 }
152
169
153 function test_lazyimage(data) {
170 function test_lazyimage(data) {
171+ var transition = findChildIn(data.image, "transitions", data.transition);
172+ signalSpy.target = transition;
173+ signalSpy.clear();
174+
154 data.func();
175 data.func();
155
176
156 if (data.transition) {
177 if (data.transition) {
157− // wait for the transition to complete
178+ tryCompare(data.image, "state", data.state ? data.state : "ready");
158− var transition = findChildIn(data.image, "transitions", data.transition);
159− tryCompare(transition, "running", true);
160 tryCompare(transition, "running", false);
179 tryCompare(transition, "running", false);
161 }
180 }
162
181
@@ -185,7 +204,7 @@ Rectangle {
185
204
186 // check the error image
205 // check the error image
187 var error = findChild(data.image, "errorImage");
206 var error = findChild(data.image, "errorImage");
188− compare(error.visible, data.error ? true : false);
207+ tryCompare(error, "visible", data.error ? true : false);
189 }
208 }
190 }
209 }
191}
210}
tests/qmltests/Components/tst_PhysicalKeysMapper.qml+136−62
@@ -18,12 +18,19 @@ import QtQuick 2.4
18import QtTest 1.0
18import QtTest 1.0
19import "../../../qml/Components"
19import "../../../qml/Components"
20import Powerd 0.1
20import Powerd 0.1
21+import Utils 0.1
21
22
22−TestCase {
23+Item {
23− name: "PhysicalKeysMapper"
24+ width: 100
25+ height: 100
24
26
25 property var physicalKeysMapper: loader.item
27 property var physicalKeysMapper: loader.item
26
28
29+ WindowKeysFilter {
30+ Keys.onPressed: physicalKeysMapper.onKeyPressed(event, currentEventTimestamp);
31+ Keys.onReleased: physicalKeysMapper.onKeyReleased(event, currentEventTimestamp);
32+ }
33+
27 Loader {
34 Loader {
28 // Using a Loader here to make sure mapper state is coherent
35 // Using a Loader here to make sure mapper state is coherent
29 // regardless of unmatched KeyPress and KeyRelease events
36 // regardless of unmatched KeyPress and KeyRelease events
@@ -32,6 +39,21 @@ TestCase {
32 sourceComponent: PhysicalKeysMapper { }
39 sourceComponent: PhysicalKeysMapper { }
33 }
40 }
34
41
42+ Item {
43+ id: inputCatcher
44+ focus: true
45+
46+ property var pressedKeys: []
47+ property var releasedKeys: []
48+
49+ Keys.onPressed: {
50+ inputCatcher.pressedKeys.push(event.key);
51+ }
52+ Keys.onReleased: {
53+ inputCatcher.releasedKeys.push(event.key);
54+ }
55+ }
56+
35 SignalSpy {
57 SignalSpy {
36 id: powerSpy
58 id: powerSpy
37 target: physicalKeysMapper
59 target: physicalKeysMapper
@@ -44,65 +66,117 @@ TestCase {
44 signalName: "screenshotTriggered"
66 signalName: "screenshotTriggered"
45 }
67 }
46
68
69+ TestCase {
70+ name: "PhysicalKeysMapper"
71+ when: windowShown
72+
47− function init() {
73+ function init() {
48− Powerd.setStatus(Powerd.On, Powerd.Unknown);
74+ Powerd.setStatus(Powerd.On, Powerd.Unknown);
49− loader.active = true;
75+ loader.active = true;
50− tryCompare(loader.status == Loader.Ready);
76+ tryCompare(loader.status == Loader.Ready);
77+ inputCatcher.pressedKeys = [];
78+ inputCatcher.releasedKeys = [];
51− }
79+ }
52−
80+
53− function cleanup() {
81+ function cleanup() {
54− loader.active = false;
82+ loader.active = false;
55− powerSpy.clear();
83+ powerSpy.clear();
56− screenshotSpy.clear();
84+ screenshotSpy.clear();
57− }
85+ }
58−
86+
59− function test_powerKeyLongPressed_data() {
87+ function test_powerKeyLongPressed_data() {
60− return [
88+ return [
61− { tag: "screenOn", status: Powerd.On },
89+ { tag: "screenOn", status: Powerd.On },
62− { tag: "screenOff", status: Powerd.Off },
90+ { tag: "screenOff", status: Powerd.Off },
63− ];
91+ ];
64− }
92+ }
65−
93+
66− function test_powerKeyLongPressed(data) {
94+ function test_powerKeyLongPressed(data) {
67− Powerd.setStatus(data.status, Powerd.Unknown);
95+ Powerd.setStatus(data.status, Powerd.Unknown);
68− physicalKeysMapper.powerKeyLongPressTime = 500;
96+ physicalKeysMapper.powerKeyLongPressTime = 500;
69−
97+
70− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: false }, 100);
98+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: false }, 100);
71−
99+
72− // After the first key press the screen is always on
100+ // After the first key press the screen is always on
73− // and the rest of keypresses are auto repeat
101+ // and the rest of keypresses are auto repeat
74− Powerd.setStatus(Powerd.On, Powerd.Unknown);
102+ Powerd.setStatus(Powerd.On, Powerd.Unknown);
75−
103+
76− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 300);
104+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 300);
77− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 400);
105+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 400);
78− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 500);
106+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 500);
79− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 599);
107+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 599);
80−
108+
81− // powerKeyLongPressed should not have been emitted yet.
109+ // powerKeyLongPressed should not have been emitted yet.
82− compare(powerSpy.count, 0);
110+ compare(powerSpy.count, 0);
83−
111+
84− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 600);
112+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 600);
85−
113+
86− compare(powerSpy.count, 1);
114+ compare(powerSpy.count, 1);
87−
115+
88− // Confirm we only emit once
116+ // Confirm we only emit once
89− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 601);
117+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 601);
90− compare(powerSpy.count, 1);
118+ compare(powerSpy.count, 1);
91− }
119+ }
92−
120+
93− function test_screenshotButtons_data() {
121+ function test_screenshotButtons_data() {
94− return [
122+ return [
95− { tag: "UpFirst", first: Qt.Key_VolumeUp, second: Qt.Key_VolumeDown },
123+ { tag: "UpFirst", first: Qt.Key_VolumeUp, second: Qt.Key_VolumeDown },
96− { tag: "DownFirst", first: Qt.Key_VolumeDown, second: Qt.Key_VolumeUp },
124+ { tag: "DownFirst", first: Qt.Key_VolumeDown, second: Qt.Key_VolumeUp },
97− ];
125+ ];
98− }
126+ }
99−
127+
100− function test_screenshotButtons(data) {
128+ function test_screenshotButtons(data) {
101− physicalKeysMapper.onKeyPressed({ key: data.first });
129+ physicalKeysMapper.onKeyPressed({ key: data.first });
102− physicalKeysMapper.onKeyPressed({ key: data.second });
130+ physicalKeysMapper.onKeyPressed({ key: data.second });
103− screenshotSpy.wait();
131+ screenshotSpy.wait();
104− physicalKeysMapper.onKeyReleased({ key: data.first });
132+ physicalKeysMapper.onKeyReleased({ key: data.first });
105− physicalKeysMapper.onKeyReleased({ key: data.second });
133+ physicalKeysMapper.onKeyReleased({ key: data.second });
106− compare(screenshotSpy.count, 1);
134+ compare(screenshotSpy.count, 1);
135+ }
136+
137+ function test_altIsDispatchedOnRelease() {
138+ // Press alt, make sure it does *not* end up in inputCatcher (aka, the focused app)
139+ keyPress(Qt.Key_Alt, Qt.NoModifier)
140+ compare(inputCatcher.pressedKeys.length, 0);
141+ // Now release alt. It should cause the previous Alt press to be dispatched along with the release
142+ keyRelease(Qt.Key_Alt, Qt.NoModifier);
143+ compare(inputCatcher.pressedKeys.length, 1);
144+ compare(inputCatcher.pressedKeys[0], Qt.Key_Alt);
145+ compare(inputCatcher.releasedKeys.length, 1);
146+ compare(inputCatcher.releasedKeys[0], Qt.Key_Alt);
147+ }
148+
149+ function test_altIsNotDispatchedOnAltTab() {
150+ // Press alt, make sure it does *not* end up in inputCatcher (aka, the focused app)
151+ inputCatcher.pressedKeys = [];
152+ keyPress(Qt.Key_Alt, Qt.NoModifier)
153+ compare(inputCatcher.pressedKeys.length, 0);
154+ // Now also press tab. As this should trigger the spread, neither of them should end up in the app
155+ keyPress(Qt.Key_Tab, Qt.NoModifier)
156+ compare(inputCatcher.pressedKeys.length, 0);
157+
158+ // Also the release events should not be dispatched to the app
159+ keyRelease(Qt.Key_Tab, Qt.NoModifier);
160+ keyRelease(Qt.Key_Alt, Qt.NoModifier);
161+ compare(inputCatcher.pressedKeys.length, 0);
162+ compare(inputCatcher.releasedKeys.length, 0);
163+ }
164+
165+ function test_altComboIsDispatched() {
166+ inputCatcher.pressedKeys = [];
167+ // Press alt, make sure it does *not* yet end up in inputCatcher (aka, the focused app)
168+ keyPress(Qt.Key_Alt, Qt.NoModifier)
169+ compare(inputCatcher.pressedKeys.length, 0);
170+ // Now press F in order to opening the File menu (Alt+F), now the app should get the full combo
171+ keyPress(Qt.Key_F, Qt.NoModifier)
172+ compare(inputCatcher.pressedKeys.length, 2);
173+ compare(inputCatcher.pressedKeys[0], Qt.Key_Alt);
174+ compare(inputCatcher.pressedKeys[1], Qt.Key_F);
175+
176+ // release them both, both are supposed to end up in the app
177+ keyRelease(Qt.Key_F, Qt.NoModifier);
178+ keyRelease(Qt.Key_Alt, Qt.NoModifier);
179+ compare(inputCatcher.releasedKeys.length, 2);
180+ }
107 }
181 }
108}
182}
tests/qmltests/Components/tst_ResponsiveGridView.qml−36
@@ -32,12 +32,6 @@ Item {
32 height: parent.height
32 height: parent.height
33 anchors.top: parent.top
33 anchors.top: parent.top
34 anchors.right: parent.right
34 anchors.right: parent.right
35− ListItem.ValueSelector {
36− id: maxColumnsSelector
37− text: "maximumNumberOfColumns"
38− values: [2,4,8,13,1000]
39− selectedIndex: 1
40− }
41 ListItem.ValueSelector {
35 ListItem.ValueSelector {
42 id: minHSpacingSelector
36 id: minHSpacingSelector
43 text: "minHorizontalSpacing"
37 text: "minHorizontalSpacing"
@@ -86,8 +80,6 @@ Item {
86 minimumHorizontalSpacing:
80 minimumHorizontalSpacing:
87 minHSpacingSelector.values[minHSpacingSelector.selectedIndex]
81 minHSpacingSelector.values[minHSpacingSelector.selectedIndex]
88 verticalSpacing: units.gu(2)
82 verticalSpacing: units.gu(2)
89− maximumNumberOfColumns:
90− maxColumnsSelector.values[maxColumnsSelector.selectedIndex]
91 delegateWidth: units.gu(6)
83 delegateWidth: units.gu(6)
92 delegateHeight: units.gu(6)
84 delegateHeight: units.gu(6)
93
85
@@ -123,31 +115,6 @@ Item {
123 name: "ResponsiveGridView"
115 name: "ResponsiveGridView"
124 when: windowShown
116 when: windowShown
125
117
126− function test_maximumNumberOfColumns_data() {
127− var data = new Array()
128−
129− data.push({selectedIndex: 0, maxColumnCount:2, columnCount: 2})
130− data.push({selectedIndex: 1, maxColumnCount:4, columnCount: 4})
131− data.push({selectedIndex: 2, maxColumnCount:8, columnCount: 8})
132− data.push({selectedIndex: 4, maxColumnCount:1000, columnCount: 13})
133−
134− return data
135− }
136−
137− /* Change ResponsiveGridView's maximumNumberOfColumns property and check
138− that the resulting number of columns matches expectations */
139− function test_maximumNumberOfColumns(data) {
140− minHSpacingSelector.selectedIndex = 0
141−
142− // sanity checks
143− compare(maxColumnsSelector.values[data.selectedIndex], data.maxColumnCount)
144− compare(minHSpacingSelector.values[0], 0)
145−
146− maxColumnsSelector.selectedIndex = data.selectedIndex
147− tryCompareFunction(countGridDelegatesOnFirstRow, data.columnCount);
148− compare(grid.columns, data.columnCount)
149− }
150−
151 function test_minimumHorizontalSpacing_data() {
118 function test_minimumHorizontalSpacing_data() {
152 var data = new Array()
119 var data = new Array()
153
120
@@ -162,10 +129,7 @@ Item {
162 /* Change ResponsiveGridView's minimumHorizontalSpacing property and check
129 /* Change ResponsiveGridView's minimumHorizontalSpacing property and check
163 that the resulting number of columns matches expectations */
130 that the resulting number of columns matches expectations */
164 function test_minimumHorizontalSpacing(data) {
131 function test_minimumHorizontalSpacing(data) {
165− maxColumnsSelector.selectedIndex = 4
166−
167 // sanity checks
132 // sanity checks
168− compare(maxColumnsSelector.values[4], 1000)
169 compare(minHSpacingSelector.values[data.selectedIndex], data.minHSpacing)
133 compare(minHSpacingSelector.values[data.selectedIndex], data.minHSpacing)
170
134
171 minHSpacingSelector.selectedIndex = data.selectedIndex
135 minHSpacingSelector.selectedIndex = data.selectedIndex
tests/qmltests/Components/tst_VirtualTouchPad.qmlnew file+143
@@ -0,0 +1,143 @@
1+/*
2+ * Copyright (C) 2015 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+import QtQuick 2.4
18+import QtTest 1.0
19+import Unity.Test 0.1
20+import UInput 0.1
21+import "../../../qml/Components"
22+
23+
24+Item {
25+ id: root
26+ width: units.gu(70)
27+ height: units.gu(70)
28+
29+ VirtualTouchPad {
30+ id: touchScreenPad
31+ anchors.fill: parent
32+ }
33+
34+ SignalSpy {
35+ id: mouseEventSpy1
36+ target: touchScreenPad.uinput
37+ }
38+ SignalSpy {
39+ id: mouseEventSpy2
40+ target: touchScreenPad.uinput
41+ }
42+
43+ UnityTestCase {
44+ id: testCase
45+ name: "VirtualTouchPad"
46+ when: windowShown
47+
48+ function init() {
49+ mouseEventSpy1.clear();
50+ mouseEventSpy2.clear();
51+ }
52+
53+ function test_click() {
54+ mouseEventSpy1.signalName = "mousePressed"
55+ mouseEventSpy2.signalName = "mouseReleased"
56+
57+ var touchPadArea = findChild(touchScreenPad, "touchPadArea");
58+
59+ tap(touchPadArea)
60+ tryCompare(mouseEventSpy1, "count", 1)
61+ tryCompare(mouseEventSpy2, "count", 1)
62+ }
63+
64+ function test_doubleClick() {
65+ mouseEventSpy1.signalName = "mousePressed"
66+ mouseEventSpy2.signalName = "mouseReleased"
67+
68+ var touchPadArea = findChild(touchScreenPad, "touchPadArea");
69+
70+ tap(touchPadArea)
71+ tap(touchPadArea)
72+
73+ tryCompare(mouseEventSpy1, "count", 2)
74+ tryCompare(mouseEventSpy2, "count", 2)
75+ }
76+
77+ function test_move() {
78+ mouseEventSpy1.signalName = "mouseMoved"
79+
80+ var touchPadArea = findChild(touchScreenPad, "touchPadArea");
81+
82+ var moveDiff = units.gu(2);
83+ var moveSteps = 5;
84+
85+ touchFlick(touchPadArea, units.gu(1), units.gu(1), units.gu(1) + moveDiff, units.gu(1) + moveDiff, true, true, 10, moveSteps)
86+
87+ tryCompare(mouseEventSpy1, "count", moveSteps)
88+ var movedX = 0;
89+ var movedY = 0
90+ for (var i = 0; i < 5; i++) {
91+ movedX += mouseEventSpy1.signalArguments[i][0]
92+ movedY += mouseEventSpy1.signalArguments[i][1]
93+ }
94+ compare(movedX, moveDiff)
95+ compare(movedY, moveDiff)
96+ }
97+
98+ function test_doubleTapAndHoldToDrag() {
99+ mouseEventSpy1.signalName = "mousePressed"
100+ mouseEventSpy2.signalName = "mouseReleased"
101+
102+ var touchPadArea = findChild(touchScreenPad, "touchPadArea");
103+
104+ mouseClick(touchPadArea)
105+ mousePress(touchPadArea)
106+ mouseMove(touchPadArea, touchPadArea.width / 4, touchPadArea.height / 4)
107+
108+ tryCompare(mouseEventSpy1, "count", 1)
109+ tryCompare(mouseEventSpy2, "count", 0)
110+ mouseRelease(touchPadArea)
111+ tryCompare(mouseEventSpy2, "count", 1)
112+ }
113+
114+ function test_twoFingerScroll() {
115+ var touchPadArea = findChild(touchScreenPad, "touchPadArea");
116+
117+ mouseEventSpy1.signalName = "mouseScrolled"
118+
119+ var startX = touchPadArea.width / 2;
120+ var startY = touchPadArea.height / 2;
121+
122+ var startX1 = startX - units.gu(1);
123+ var startX2 = startX + units.gu(1);
124+
125+ var event = touchEvent(touchPadArea)
126+ event.press(0, startX1, startY)
127+ event.press(1, startX2, startY);
128+ event.commit()
129+
130+ for (var i = 0; i < 10; i++) {
131+ event.move(0, startX1, startY + units.gu(i))
132+ event.move(1, startX2, startY + units.gu(i));
133+ event.commit();
134+
135+ tryCompare(mouseEventSpy1, "count", i + 1);
136+ }
137+
138+ event.release(0, startX1, startY + units.gu(11))
139+ event.release(1, startX2, startY + units.gu(11));
140+ event.commit();
141+ }
142+ }
143+}
tests/qmltests/Components/tst_ZoomableImage.qml+8−5
@@ -73,7 +73,10 @@ Rectangle {
73 tryCompareFunction(function() { return get_filename(imageRenderer.source.toString()) === get_filename(widgetData1["source"]); }, true);
73 tryCompareFunction(function() { return get_filename(imageRenderer.source.toString()) === get_filename(widgetData1["source"]); }, true);
74 waitForRendering(zoomableImage);
74 waitForRendering(zoomableImage);
75 tryCompare(zoomableImage, "imageStatus", Image.Ready);
75 tryCompare(zoomableImage, "imageStatus", Image.Ready);
76− compare (signalSpy.count, 1);
76+ compare(signalSpy.count, 1);
77+ compare(imageRenderer.sourceSize.width, root.width);
78+ zoomableImage.zoomable = true;
79+ compare(imageRenderer.sourceSize.width, root.width*3);
77 }
80 }
78
81
79 function get_filename(a) {
82 function get_filename(a) {
@@ -138,14 +141,14 @@ Rectangle {
138 var imageRenderer = findChild(zoomableImage, "imageRenderer");
141 var imageRenderer = findChild(zoomableImage, "imageRenderer");
139 var flickable = findChild(zoomableImage, "flickable");
142 var flickable = findChild(zoomableImage, "flickable");
140
143
141− signalSpy.signalName = "onScaleChanged";
142− signalSpy.target = image;
143− signalSpy.clear();
144−
145 zoomableImage.source = data.source;
144 zoomableImage.source = data.source;
146 zoomableImage.zoomable = data.zoomable;
145 zoomableImage.zoomable = data.zoomable;
147 waitForRendering(zoomableImage);
146 waitForRendering(zoomableImage);
148
147
148+ signalSpy.signalName = "onScaleChanged";
149+ signalSpy.target = image;
150+ signalSpy.clear();
151+
149 tryCompare(zoomableImage, "imageStatus", Image.Ready);
152 tryCompare(zoomableImage, "imageStatus", Image.Ready);
150 tryCompareFunction(function() { return get_filename(imageRenderer.source.toString()) === get_filename(data.source); }, true);
153 tryCompareFunction(function() { return get_filename(imageRenderer.source.toString()) === get_filename(data.source); }, true);
151 waitForRendering(image);
154 waitForRendering(image);
tests/qmltests/Dash/Previews/tst_Preview.qml+5−6
@@ -121,15 +121,14 @@ Rectangle {
121 var moreLessButton = findChild(widget, "moreLessButton");
121 var moreLessButton = findChild(widget, "moreLessButton");
122 mouseClick(moreLessButton);
122 mouseClick(moreLessButton);
123
123
124− // Make sure the combo is growing
125− tryCompareFunction(function () { return widget.height > 2 * initialWidgetHeight; }, true);
126−
127 // Wait for the combo to stop growing
124 // Wait for the combo to stop growing
128− tryCompareFunction(function () { var currentWidgetHeight = widget.height; wait(200); return currentWidgetHeight === widget.height;}, true);
125+ tryCompare(widget, "height", units.gu(15));
129
126
130 // Make sure the combo bottom is on the viewport
127 // Make sure the combo bottom is on the viewport
128+ tryCompareFunction(function () {
131− var bottomLeft = preview.mapFromItem(widget, 0, widget.height);
129+ var bottomLeft = preview.mapFromItem(widget, 0, widget.height);
132− verify(bottomLeft.y <= preview.height);
130+ return bottomLeft.y <= preview.height
131+ }, true);
133 }
132 }
134 }
133 }
135}
134}
tests/qmltests/Dash/Previews/tst_PreviewAudioPlayback.qml+12−3
@@ -100,13 +100,17 @@ Rectangle {
100 }
100 }
101 }
101 }
102
102
103− function checkPlayerSource(index) {
103+ function checkPlayerUrls(modelFilename, playerUrl) {
104− var modelFilename = previewAudioPlayback.widgetData["tracks"][index]["source"].replace(/^.*[\\\/]/, '');
104+ var modelFilename = modelFilename.replace(/^.*[\\\/]/, '');
105− var playerFilename = DashAudioPlayer.currentSource.toString().replace(/^.*[\\\/]/, '');
105+ var playerFilename = playerUrl.toString().replace(/^.*[\\\/]/, '');
106
106
107 compare(modelFilename, playerFilename, "Player source is not set correctly.");
107 compare(modelFilename, playerFilename, "Player source is not set correctly.");
108 }
108 }
109
109
110+ function checkPlayerSource(index) {
111+ checkPlayerUrls(previewAudioPlayback.widgetData["tracks"][index]["source"], DashAudioPlayer.currentSource);
112+ }
113+
110 function test_playback() {
114 function test_playback() {
111 previewAudioPlayback.widgetData = tracksModel2;
115 previewAudioPlayback.widgetData = tracksModel2;
112 waitForRendering(previewAudioPlayback);
116 waitForRendering(previewAudioPlayback);
@@ -157,6 +161,11 @@ Rectangle {
157 tryCompare(audio, "playbackState", Audio.PlayingState);
161 tryCompare(audio, "playbackState", Audio.PlayingState);
158 checkPlayerSource(1);
162 checkPlayerSource(1);
159
163
164+ // Check the playlist is song 0, 1, 2
165+ checkPlayerUrls(tracksModel2["tracks"][0].source, audio.playlist.itemSource(0));
166+ checkPlayerUrls(tracksModel2["tracks"][1].source, audio.playlist.itemSource(1));
167+ checkPlayerUrls(tracksModel2["tracks"][2].source, audio.playlist.itemSource(2));
168+
160 tryCompare(track0ProgressBar, "visible", false);
169 tryCompare(track0ProgressBar, "visible", false);
161 tryCompare(track1ProgressBar, "visible", true);
170 tryCompare(track1ProgressBar, "visible", true);
162 tryCompare(track2ProgressBar, "visible", false);
171 tryCompare(track2ProgressBar, "visible", false);
tests/qmltests/Dash/Previews/tst_PreviewHeader.qml+15
@@ -54,6 +54,14 @@ Rectangle {
54 "attributes": [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"}]
54 "attributes": [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"}]
55 }
55 }
56
56
57+ property var emptyfallbackheaderjson: {
58+ "title": "THE TITLE",
59+ "subtitle": "Something catchy",
60+ "mascot": "",
61+ "fallback": "../graphics/play_button.png",
62+ "attributes": [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"}]
63+ }
64+
57 PreviewHeader {
65 PreviewHeader {
58 id: previewHeader
66 id: previewHeader
59 widgetData: headerjson
67 widgetData: headerjson
@@ -150,6 +158,13 @@ Rectangle {
150 var mascot = findChild(previewHeader, "mascotShape");
158 var mascot = findChild(previewHeader, "mascotShape");
151 tryCompare(mascot, "visible", true);
159 tryCompare(mascot, "visible", true);
152 tryCompare(mascot.source, "status", Image.Ready);
160 tryCompare(mascot.source, "status", Image.Ready);
161+
162+ previewHeader.widgetData = {};
163+ previewHeader.widgetData = emptyfallbackheaderjson;
164+ tryCompareFunction(function() { return findChild(previewHeader, "mascotShape") != null }, true);
165+ var mascot = findChild(previewHeader, "mascotShape");
166+ tryCompare(mascot, "visible", true);
167+ tryCompare(mascot.source, "status", Image.Ready);
153 }
168 }
154 }
169 }
155}
170}
tests/qmltests/Dash/Previews/tst_PreviewImageGallery.qml+19
@@ -48,6 +48,16 @@ Rectangle {
48 , "fallback": "../../../tests/graphics/clock@18.png"
48 , "fallback": "../../../tests/graphics/clock@18.png"
49 }
49 }
50
50
51+ property var sourcesModelEmptyWithFallback: {
52+ "sources": [
53+ "../../graphics/phone_background.jpg",
54+ "../../graphics/tablet_background.jpg",
55+ "../../../tests/graphics/clock@18.png",
56+ ""
57+ ]
58+ , "fallback": "../../../tests/graphics/clock@18.png"
59+ }
60+
51 PreviewImageGallery {
61 PreviewImageGallery {
52 id: imageGallery
62 id: imageGallery
53 width: parent.width
63 width: parent.width
@@ -123,5 +133,14 @@ Rectangle {
123 image3 = findChild(imageGallery, "previewImage3");
133 image3 = findChild(imageGallery, "previewImage3");
124 tryCompare(image3, "state", "ready");
134 tryCompare(image3, "state", "ready");
125 }
135 }
136+
137+ function test_empty_fallback() {
138+ var image3 = findChild(imageGallery, "previewImage3");
139+ tryCompare(image3, "state", "error");
140+ imageGallery.widgetData = sourcesModel0;
141+ imageGallery.widgetData = sourcesModelEmptyWithFallback;
142+ image3 = findChild(imageGallery, "previewImage3");
143+ tryCompare(image3, "state", "ready");
144+ }
126 }
145 }
127}
146}
tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+12
@@ -39,6 +39,11 @@ Rectangle {
39 "fallback": "../../graphics/phone_background.jpg"
39 "fallback": "../../graphics/phone_background.jpg"
40 }
40 }
41
41
42+ property var widgetData3: {
43+ "source": "",
44+ "fallback": "../../graphics/phone_background.jpg"
45+ }
46+
42 Loader {
47 Loader {
43 id: loader
48 id: loader
44 width: parent.width
49 width: parent.width
@@ -100,5 +105,12 @@ Rectangle {
100 waitForRendering(lazyImage);
105 waitForRendering(lazyImage);
101 tryCompare(lazyImage, "state", "ready");
106 tryCompare(lazyImage, "state", "ready");
102 }
107 }
108+
109+ function test_emptyfallback() {
110+ zoomableImage.widgetData = widgetData3;
111+ waitForRendering(zoomableImage);
112+ waitForRendering(lazyImage);
113+ tryCompare(lazyImage, "state", "ready");
114+ }
103 }
115 }
104}
116}
tests/qmltests/Dash/tst_Card.qml+21−6
@@ -130,7 +130,6 @@ Rectangle {
130 sourceComponent: cardTool.cardComponent
130 sourceComponent: cardTool.cardComponent
131 clip: true
131 clip: true
132 onLoaded: {
132 onLoaded: {
133− item.components = Qt.binding(function() { return cardTool.components; });
134 item.cardData = Qt.binding(function() { return Helpers.mapData(dataArea.text, cardTool.components, dataError); });
133 item.cardData = Qt.binding(function() { return Helpers.mapData(dataArea.text, cardTool.components, dataError); });
135 item.width = Qt.binding(function() { return cardTool.cardWidth || item.implicitWidth; });
134 item.width = Qt.binding(function() { return cardTool.cardWidth || item.implicitWidth; });
136 item.height = Qt.binding(function() { return cardTool.cardHeight || item.implicitHeight; });
135 item.height = Qt.binding(function() { return cardTool.cardHeight || item.implicitHeight; });
@@ -307,8 +306,8 @@ Rectangle {
307 { tag: "Medium", width: units.gu(18), fill: Image.PreserveAspectCrop, index: 0 },
306 { tag: "Medium", width: units.gu(18), fill: Image.PreserveAspectCrop, index: 0 },
308 { tag: "Small", width: units.gu(12), index: 1 },
307 { tag: "Small", width: units.gu(12), index: 1 },
309 { tag: "Large", width: units.gu(38), index: 2 },
308 { tag: "Large", width: units.gu(38), index: 2 },
310− { tag: "Wide", height: units.gu(19), size: "large", index: 3 },
309+ { tag: "Wide", height: function() { return units.gu(19) }, size: "large", index: 3 },
311− { tag: "Tall", height: units.gu(38) / 0.7, size: "large", width: units.gu(38), index: 4 },
310+ { tag: "Tall", height: function() { return units.gu(38) / 0.7 }, size: "large", width: units.gu(38), index: 4 },
312 { tag: "VerticalWidth", width: function() { return headerRow.width + units.gu(1) }, index: 0 },
311 { tag: "VerticalWidth", width: function() { return headerRow.width + units.gu(1) }, index: 0 },
313 { tag: "HorizontalHeight", height: function() { return headerRow.height + units.gu(1) * 2 }, index: 5 },
312 { tag: "HorizontalHeight", height: function() { return headerRow.height + units.gu(1) * 2 }, index: 5 },
314 { tag: "HorizontalWidth", width: function() { return headerRow.x - units.gu(1) }, index: 5 },
313 { tag: "HorizontalWidth", width: function() { return headerRow.x - units.gu(1) }, index: 5 },
@@ -337,9 +336,7 @@ Rectangle {
337 }
336 }
338
337
339 if (data.hasOwnProperty("height")) {
338 if (data.hasOwnProperty("height")) {
340− if (typeof data.height === "function") {
341− tryCompareFunction(function() { return art.height === data.height() }, true);
339+ tryCompareFunction(function() { return art.height.toFixed(2) === data.height().toFixed(2) }, true);
342− } else tryCompare(art, "height", data.height);
343 }
340 }
344
341
345 if (data.hasOwnProperty("fill")) {
342 if (data.hasOwnProperty("fill")) {
@@ -478,6 +475,15 @@ Rectangle {
478 card.cardDataChanged();
475 card.cardDataChanged();
479 waitForRendering(card);
476 waitForRendering(card);
480 tryCompare(art, "visible", true);
477 tryCompare(art, "visible", true);
478+ compare(artImage.source, Qt.resolvedUrl("artwork/emblem.png"));
479+
480+ cardTool.components["art"]["fallback"] = Qt.resolvedUrl("artwork/checkers.png");
481+ cardTool.componentsChanged();
482+ card.cardData["art"] = "";
483+ card.cardDataChanged();
484+ waitForRendering(card);
485+ tryCompare(art, "visible", true);
486+ compare(artImage.source, Qt.resolvedUrl("artwork/checkers.png"));
481
487
482 card.cardData["mascot"] = "somethingbroken2";
488 card.cardData["mascot"] = "somethingbroken2";
483 card.cardDataChanged();
489 card.cardDataChanged();
@@ -489,6 +495,15 @@ Rectangle {
489 card.cardDataChanged();
495 card.cardDataChanged();
490 waitForRendering(card);
496 waitForRendering(card);
491 tryCompare(mascotImage, "status", Image.Ready);
497 tryCompare(mascotImage, "status", Image.Ready);
498+ compare(mascotImage.source, Qt.resolvedUrl("artwork/emblem.png"));
499+
500+ cardTool.components["mascot"] = {"fallback": Qt.resolvedUrl("artwork/checkers.png")};
501+ cardTool.componentsChanged();
502+ card.cardData["mascot"] = "";
503+ card.cardDataChanged();
504+ waitForRendering(card);
505+ tryCompare(mascotImage, "status", Image.Ready);
506+ compare(mascotImage.source, Qt.resolvedUrl("artwork/checkers.png"));
492 }
507 }
493
508
494 function test_font_weights_data() {
509 function test_font_weights_data() {
tests/qmltests/Dash/tst_CardBenchmark.qml−2
@@ -61,8 +61,6 @@ Rectangle {
61 item.width = Qt.binding(function() { return cardTool.cardWidth || implicitWidth; });
61 item.width = Qt.binding(function() { return cardTool.cardWidth || implicitWidth; });
62 item.height = Qt.binding(function() { return cardTool.cardHeight || implicitHeight; });
62 item.height = Qt.binding(function() { return cardTool.cardHeight || implicitHeight; });
63 item.cardData = Qt.binding(function() { return Helpers.mapData(root.cardData, cardTool.components); });
63 item.cardData = Qt.binding(function() { return Helpers.mapData(root.cardData, cardTool.components); });
64− item.template = Qt.binding(function() { return cardTool.template; });
65− item.components = Qt.binding(function() { return cardTool.components; });
66 }
64 }
67 }
65 }
68 }
66 }
tests/qmltests/Dash/tst_GenericScopeView.qml+30−9
@@ -107,11 +107,12 @@ Item {
107 {
107 {
108 var categoryListView = findChild(genericScopeView, "categoryListView");
108 var categoryListView = findChild(genericScopeView, "categoryListView");
109 waitForRendering(categoryListView);
109 waitForRendering(categoryListView);
110− while (!categoryListView.atYEnd) {
110+ tryCompareFunction(function() {
111− mouseFlick(genericScopeView, genericScopeView.width/2, genericScopeView.height - units.gu(8),
111+ mouseFlick(genericScopeView, genericScopeView.width/2, genericScopeView.height - units.gu(8),
112− genericScopeView.width/2, genericScopeView.y)
112+ genericScopeView.width/2, genericScopeView.y)
113− tryCompare(categoryListView, "moving", false);
113+ tryCompare(categoryListView, "moving", false);
114− }
114+ return categoryListView.atYEnd;
115+ }, true);
115 }
116 }
116
117
117 function test_isActive() {
118 function test_isActive() {
@@ -238,7 +239,7 @@ Item {
238
239
239 openPreview(4, 0);
240 openPreview(4, 0);
240
241
241− compare(testCase.subPageLoader.count, 12, "There should only be 12 items in preview.");
242+ compare(testCase.subPageLoader.count, 16, "There should only be 16 items in preview.");
242
243
243 closePreview();
244 closePreview();
244 }
245 }
@@ -413,7 +414,7 @@ Item {
413 var previewListViewList = findChild(subPageLoader.item, "listView");
414 var previewListViewList = findChild(subPageLoader.item, "listView");
414
415
415 // flick to the next previews
416 // flick to the next previews
416− tryCompare(testCase.subPageLoader, "count", 15);
417+ tryCompare(testCase.subPageLoader, "count", 25);
417 for (var i = 1; i < testCase.subPageLoader.count; ++i) {
418 for (var i = 1; i < testCase.subPageLoader.count; ++i) {
418 mouseFlick(testCase.subPageLoader.item, testCase.subPageLoader.width - units.gu(1),
419 mouseFlick(testCase.subPageLoader.item, testCase.subPageLoader.width - units.gu(1),
419 testCase.subPageLoader.height / 2,
420 testCase.subPageLoader.height / 2,
@@ -487,7 +488,7 @@ Item {
487 mockScope.setName("Mock Scope");
488 mockScope.setName("Mock Scope");
488 mockScope.categories.setCount(2);
489 mockScope.categories.setCount(2);
489 mockScope.categories.resultModel(0).setResultCount(50);
490 mockScope.categories.resultModel(0).setResultCount(50);
490− mockScope.categories.resultModel(1).setResultCount(15);
491+ mockScope.categories.resultModel(1).setResultCount(25);
491 mockScope.categories.setLayout(0, "grid");
492 mockScope.categories.setLayout(0, "grid");
492 mockScope.categories.setLayout(1, "grid");
493 mockScope.categories.setLayout(1, "grid");
493 mockScope.categories.setHeaderLink(0, "");
494 mockScope.categories.setHeaderLink(0, "");
@@ -529,7 +530,7 @@ Item {
529 mockScope.setId("mockScope");
530 mockScope.setId("mockScope");
530 mockScope.setName("Mock Scope");
531 mockScope.setName("Mock Scope");
531 mockScope.categories.setCount(2);
532 mockScope.categories.setCount(2);
532− mockScope.categories.resultModel(0).setResultCount(15);
533+ mockScope.categories.resultModel(0).setResultCount(25);
533 mockScope.categories.resultModel(1).setResultCount(50);
534 mockScope.categories.resultModel(1).setResultCount(50);
534 mockScope.categories.setLayout(0, "grid");
535 mockScope.categories.setLayout(0, "grid");
535 mockScope.categories.setLayout(1, "grid");
536 mockScope.categories.setLayout(1, "grid");
@@ -666,6 +667,26 @@ Item {
666 var shape = findChildsByType(artShapeLoader, "UCUbuntuShape");
667 var shape = findChildsByType(artShapeLoader, "UCUbuntuShape");
667 compare(shape.borderSource, undefined);
668 compare(shape.borderSource, undefined);
668 }
669 }
670+
671+ function test_clickScopeSizing() {
672+ genericScopeView.scope = scopes.getScopeFromAll("clickscope");
673+ waitForRendering(genericScopeView);
674+
675+ var categoryListView = findChild(genericScopeView, "categoryListView");
676+ waitForRendering(categoryListView);
677+
678+ var categorypredefined = findChild(categoryListView, "dashCategorypredefined");
679+ waitForRendering(categorypredefined);
680+
681+ var cardTool = findChild(categorypredefined, "cardTool");
682+
683+ compare(cardTool.cardWidth, units.gu(11));
684+ shell.width = units.gu(46);
685+ waitForRendering(genericScopeView);
686+ compare(cardTool.cardWidth, units.gu(10));
687+
688+ shell.width = units.gu(120)
689+ }
669 }
690 }
670 }
691 }
671}
692}
tests/qmltests/Greeter/tst_WideView.qml+11
@@ -522,5 +522,16 @@ Item {
522
522
523 tryCompare(loginList, "height", view.height);
523 tryCompare(loginList, "height", view.height);
524 }
524 }
525+
526+ function test_alphanumeric() {
527+ var passwordInput = findChild(view, "passwordInput");
528+
529+ verify(view.alphanumeric);
530+ compare(passwordInput.inputMethodHints, Qt.ImhNone);
531+ view.alphanumeric = false;
532+ compare(passwordInput.inputMethodHints, Qt.ImhDigitsOnly);
533+ view.alphanumeric = true;
534+ compare(passwordInput.inputMethodHints, Qt.ImhNone);
535+ }
525 }
536 }
526}
537}
tests/qmltests/Launcher/tst_Launcher.qml+26
@@ -159,6 +159,20 @@ Item {
159 target: LauncherModel
159 target: LauncherModel
160 }
160 }
161
161
162+ Item {
163+ id: fakeDismissTimer
164+ property bool running: false
165+ signal triggered
166+
167+ function stop() {
168+ running = false;
169+ }
170+
171+ function restart() {
172+ running = true;
173+ }
174+ }
175+
162 UnityTestCase {
176 UnityTestCase {
163 id: testCase
177 id: testCase
164 name: "Launcher"
178 name: "Launcher"
@@ -177,6 +191,11 @@ Item {
177 launcherLoader.active = true;
191 launcherLoader.active = true;
178 }
192 }
179 function init() {
193 function init() {
194+ var panel = findChild(launcher, "launcherPanel");
195+ verify(!!panel);
196+
197+ panel.dismissTimer = fakeDismissTimer;
198+
180 // Make sure we don't start the test with the mouse hovering the launcher
199 // Make sure we don't start the test with the mouse hovering the launcher
181 mouseMove(root, root.width, root.height / 2);
200 mouseMove(root, root.width, root.height / 2);
182
201
@@ -195,6 +214,8 @@ Item {
195
214
196 // Now do check that snapping is in fact enabled
215 // Now do check that snapping is in fact enabled
197 compare(listView.snapMode, ListView.SnapToItem, "Snapping is not enabled");
216 compare(listView.snapMode, ListView.SnapToItem, "Snapping is not enabled");
217+
218+ removeTimeConstraintsFromDirectionalDragAreas(root);
198 }
219 }
199
220
200 function dragLauncherIntoView() {
221 function dragLauncherIntoView() {
@@ -895,6 +916,11 @@ Item {
895 // Now move the mouse away and make sure it hides in less than a second
916 // Now move the mouse away and make sure it hides in less than a second
896 mouseMove(root, root.width, root.height / 2)
917 mouseMove(root, root.width, root.height / 2)
897
918
919+ // trigger the hide timer
920+ compare(fakeDismissTimer.running, true);
921+ fakeDismissTimer.triggered();
922+ tryCompare(panel, "x", 0);
923+
898 tryCompare(launcher, "state", "", 1000, "Launcher didn't hide after moving mouse away from it");
924 tryCompare(launcher, "state", "", 1000, "Launcher didn't hide after moving mouse away from it");
899 waitUntilLauncherDisappears();
925 waitUntilLauncherDisappears();
900 }
926 }
tests/qmltests/Stages/RecursingChildSessionControl.qml+3−3
@@ -88,7 +88,7 @@ ColumnLayout {
88
88
89 CheckBox {
89 CheckBox {
90 id: _surfaceCheckbox;
90 id: _surfaceCheckbox;
91− checked: false;
91+ checked: root.session.lastSurface ? true : false
92 activeFocusOnPress: false
92 activeFocusOnPress: false
93 enabled: root.session
93 enabled: root.session
94 onCheckedChanged: {
94 onCheckedChanged: {
@@ -101,7 +101,7 @@ ColumnLayout {
101
101
102 Connections {
102 Connections {
103 target: root.session ? root.session : null
103 target: root.session ? root.session : null
104− onSurfaceChanged: {
104+ onLastSurfaceChanged: {
105 surfaceCheckbox.checked = root.session.lastSurface !== null
105 surfaceCheckbox.checked = root.session.lastSurface !== null
106 }
106 }
107 }
107 }
@@ -137,7 +137,7 @@ ColumnLayout {
137 text: "Add Child"
137 text: "Add Child"
138 onClicked: {
138 onClicked: {
139 var screenshot = Math.round(Math.random()*100 % (screenshotIds.length-1));
139 var screenshot = Math.round(Math.random()*100 % (screenshotIds.length-1));
140− var session = ApplicationTest.addChildSession(root.session, root.screenshotIds[screenshot]);
140+ var session = ApplicationTest.addChildSession(root.session, root.screenshotIds[screenshot], true);
141 }
141 }
142 }
142 }
143 }
143 }
tests/qmltests/Stages/SizeHintField.qmlnew file+33
@@ -0,0 +1,33 @@
1+/*
2+ * Copyright 2015 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+import QtQuick 2.4
18+import QtQuick.Layouts 1.1
19+import Ubuntu.Components 1.3
20+
21+Row {
22+ property alias text: label.text
23+ property alias value: field.text
24+ spacing: units.gu(1)
25+ Label {
26+ id: label
27+ color: "black"; anchors.verticalCenter: parent.verticalCenter
28+ }
29+ TextField {
30+ id: field
31+ text: ""; width: units.gu(8); hasClearButton: false; maximumLength: 6; inputMask: "d00000"
32+ }
33+}
tests/qmltests/Stages/SurfaceManagerControls.qmlnew file+33
@@ -0,0 +1,33 @@
1+/*
2+ * Copyright (C) 2015 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+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+import Unity.Application 0.1
20+
21+Column {
22+ id: root
23+ property color textColor: "black"
24+
25+ Label {text: "Size hints for new surface:"; color: root.textColor; font.bold: true}
26+
27+ SurfaceManagerField { text: "min width"; propertyName: "newSurfaceMinimumWidth"; textColor: root.textColor }
28+ SurfaceManagerField { text: "max width"; propertyName: "newSurfaceMaximumWidth"; textColor: root.textColor }
29+ SurfaceManagerField { text: "min height"; propertyName: "newSurfaceMinimumHeight"; textColor: root.textColor }
30+ SurfaceManagerField { text: "max height"; propertyName: "newSurfaceMaximumHeight"; textColor: root.textColor }
31+ SurfaceManagerField { text: "width increment"; propertyName: "newSurfaceWidthIncrement"; textColor: root.textColor }
32+ SurfaceManagerField { text: "height increment"; propertyName: "newSurfaceHeightIncrement"; textColor: root.textColor }
33+}
tests/qmltests/Stages/SurfaceManagerField.qmlnew file+40
@@ -0,0 +1,40 @@
1+/*
2+ * Copyright (C) 2015 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+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+import Unity.Application 0.1
20+
21+Row {
22+ id: root
23+ property alias textColor: label.color
24+ property alias text: label.text
25+ property string propertyName
26+
27+ Label {id: label; anchors.verticalCenter: parent.verticalCenter}
28+ TextField {
29+ width: units.gu(10); hasClearButton: false; maximumLength: 6
30+ inputMask: "d00000"
31+ text: ""
32+ onTextChanged: {
33+ if (text.length > 0) {
34+ SurfaceManager[root.propertyName] = parseInt(text);
35+ } else {
36+ SurfaceManager[root.propertyName] = 0;
37+ }
38+ }
39+ }
40+}
tests/qmltests/Stages/tst_DesktopStage.qml+30−24
@@ -89,36 +89,42 @@ Item {
89 right: parent.right
89 right: parent.right
90 }
90 }
91
91
92− Column {
92+ Flickable {
93− anchors { left: parent.left; right: parent.right; top: parent.top; margins: units.gu(1) }
93+ anchors.fill: parent
94+ contentHeight: controlsColumn.height
95+ Column {
96+ id: controlsColumn
94− spacing: units.gu(1)
97+ spacing: units.gu(1)
95−
98+
96− Button {
99+ Button {
97− color: "white"
100+ color: "white"
98− text: "Make surface slow to resize"
101+ text: "Make surface slow to resize"
99− activeFocusOnPress: false
102+ activeFocusOnPress: false
100− onClicked: {
103+ onClicked: {
101− if (ApplicationManager.focusedApplicationId) {
104+ if (ApplicationManager.focusedApplicationId) {
102− var surface = ApplicationManager.findApplication(ApplicationManager.focusedApplicationId).session.lastSurface;
105+ var surface = ApplicationManager.findApplication(ApplicationManager.focusedApplicationId).session.lastSurface;
103− surface.slowToResize = true;
106+ surface.slowToResize = true;
107+ }
104 }
108 }
105 }
109 }
106− }
107
110
108− EdgeBarrierControls {
111+ EdgeBarrierControls {
109− id: edgeBarrierControls
112+ id: edgeBarrierControls
110− text: "Drag here to pull out spread"
113+ text: "Drag here to pull out spread"
111− backgroundColor: "blue"
114+ backgroundColor: "blue"
112− onDragged: { desktopStageLoader.item.pushRightEdge(amount); }
115+ onDragged: { desktopStageLoader.item.pushRightEdge(amount); }
113− }
116+ }
114
117
115− Divider {}
118+ Divider {}
116
119
117− Repeater {
120+ Repeater {
118− model: ApplicationManager.availableApplications
121+ model: ApplicationManager.availableApplications
119− ApplicationCheckBox {
122+ ApplicationCheckBox {
120− appId: modelData
123+ appId: modelData
124+ }
121 }
125 }
126+
127+ SurfaceManagerControls { textColor: "white" }
122 }
128 }
123 }
129 }
124 }
130 }
tests/qmltests/Stages/tst_SessionContainer.qml+27−5
@@ -155,7 +155,8 @@ Rectangle {
155 var sessions = [];
155 var sessions = [];
156 for (i = 0; i < data.count; i++) {
156 for (i = 0; i < data.count; i++) {
157 var session = ApplicationTest.addChildSession(sessionContainer.session,
157 var session = ApplicationTest.addChildSession(sessionContainer.session,
158− "gallery");
158+ "gallery",
159+ true);
159 session.createSurface();
160 session.createSurface();
160 sessionContainer.session.addChildSession(session);
161 sessionContainer.session.addChildSession(session);
161 compare(sessionContainer.childSessions.count(), i+1);
162 compare(sessionContainer.childSessions.count(), i+1);
@@ -180,7 +181,7 @@ Rectangle {
180 // 3 sessions should cover all edge cases
181 // 3 sessions should cover all edge cases
181 for(i = 0; i < 3; i++) {
182 for(i = 0; i < 3; i++) {
182 var a_session = ApplicationTest.addChildSession(
183 var a_session = ApplicationTest.addChildSession(
183− sessionContainer.session, "gallery"
184+ sessionContainer.session, "gallery", true
184 )
185 )
185
186
186 a_session.createSurface();
187 a_session.createSurface();
@@ -226,7 +227,8 @@ Rectangle {
226 var container = sessionContainer;
227 var container = sessionContainer;
227 for (i = 0; i < data.depth; i++) {
228 for (i = 0; i < data.depth; i++) {
228 var session = ApplicationTest.addChildSession(lastSession,
229 var session = ApplicationTest.addChildSession(lastSession,
229− "gallery");
230+ "gallery",
231+ true);
230 session.createSurface();
232 session.createSurface();
231 lastSession.addChildSession(session);
233 lastSession.addChildSession(session);
232 compare(container.childSessions.count(), 1);
234 compare(container.childSessions.count(), 1);
@@ -250,7 +252,8 @@ Rectangle {
250 var sessionContainer = sessionContainerLoader.item;
252 var sessionContainer = sessionContainerLoader.item;
251
253
252 var session = ApplicationTest.addChildSession(sessionContainer.session,
254 var session = ApplicationTest.addChildSession(sessionContainer.session,
253− "gallery");
255+ "gallery",
256+ true);
254 session.createSurface();
257 session.createSurface();
255 sessionContainer.session.addChildSession(session);
258 sessionContainer.session.addChildSession(session);
256
259
@@ -288,7 +291,8 @@ Rectangle {
288 var sessionContainer = sessionContainerLoader.item;
291 var sessionContainer = sessionContainerLoader.item;
289
292
290 var session = ApplicationTest.addChildSession(sessionContainer.session,
293 var session = ApplicationTest.addChildSession(sessionContainer.session,
291− "gallery");
294+ "gallery",
295+ true);
292
296
293 var delegate = findChild(sessionContainer, "childDelegate0");
297 var delegate = findChild(sessionContainer, "childDelegate0");
294 var childContainer = findChild(delegate, "sessionContainer");
298 var childContainer = findChild(delegate, "sessionContainer");
@@ -304,6 +308,24 @@ Rectangle {
304 tryCompareFunction(function() { return isContainerAnimating(childContainer); }, true);
308 tryCompareFunction(function() { return isContainerAnimating(childContainer); }, true);
305 // wait for animation to end
309 // wait for animation to end
306 tryCompareFunction(function() { return isContainerAnimating(childContainer); }, false);
310 tryCompareFunction(function() { return isContainerAnimating(childContainer); }, false);
311+
312+ tryCompareFunction(function() { return sessionContainer.childSessions.count() }, 0);
313+ }
314+
315+ function test_childSessionsRemovedOnStopWhenNotLive() {
316+ sessionCheckbox.checked = true;
317+ var sessionContainer = sessionContainerLoader.item;
318+
319+ var session = ApplicationTest.addChildSession(sessionContainer.session,
320+ "gallery",
321+ false);
322+
323+ var delegate = findChild(sessionContainer, "childDelegate0");
324+ var childContainer = findChild(delegate, "sessionContainer");
325+
326+ ApplicationTest.removeSession(session);
327+
328+ tryCompareFunction(function() { return sessionContainer.childSessions.count() }, 0);
307 }
329 }
308 }
330 }
309}
331}
tests/qmltests/Stages/tst_WindowResizeArea.qml+225−30
@@ -28,7 +28,7 @@ import Unity.Application 0.1
28Item {
28Item {
29 id: root
29 id: root
30 height: units.gu(60)
30 height: units.gu(60)
31− width: units.gu(60)
31+ width: units.gu(85)
32
32
33 Binding {
33 Binding {
34 target: PanelState
34 target: PanelState
@@ -41,14 +41,20 @@ Item {
41
41
42 Item {
42 Item {
43 id: fakeWindow
43 id: fakeWindow
44− property alias minWidth: windowResizeArea.minWidth
44+ property alias resizeAreaMinWidth: windowResizeArea.minWidth
45− property alias minHeight: windowResizeArea.minHeight
45+ property alias resizeAreaMinHeight: windowResizeArea.minHeight
46 x: units.gu(20)
46 x: units.gu(20)
47 y: units.gu(20)
47 y: units.gu(20)
48 width: requestedWidth
48 width: requestedWidth
49 height: requestedHeight
49 height: requestedHeight
50 property real requestedWidth
50 property real requestedWidth
51 property real requestedHeight
51 property real requestedHeight
52+ property real minimumWidth: 0
53+ property real minimumHeight: 0
54+ property real maximumWidth: 0
55+ property real maximumHeight: 0
56+ property real widthIncrement: 0
57+ property real heightIncrement: 0
52 state: "normal"
58 state: "normal"
53
59
54 function maximize() {
60 function maximize() {
@@ -80,6 +86,10 @@ Item {
80 anchors.fill: parent
86 anchors.fill: parent
81 hoverEnabled: true
87 hoverEnabled: true
82 }
88 }
89+ Text {
90+ text: parent.width + "x" + parent.height
91+ color: "white"
92+ }
83 }
93 }
84 }
94 }
85 }
95 }
@@ -90,27 +100,107 @@ Item {
90 active: windowLoaderCheckbox.checked
100 active: windowLoaderCheckbox.checked
91 }
101 }
92
102
103+ Rectangle {
104+ anchors.right: parent.right
105+ anchors.top: parent.top
106+ anchors.bottom: parent.bottom
107+ width: units.gu(25)
108+ color: "lightgrey"
93− Column {
109+ Column {
110+ width: parent.width
111+ spacing: units.gu(1)
94− MouseTouchEmulationCheckbox {
112+ MouseTouchEmulationCheckbox {
95− checked: false
113+ checked: false
96− color: "black"
114+ color: "black"
97− }
115+ }
98− RowLayout {
116+ RowLayout {
99− Layout.fillWidth: true
117+ Layout.fillWidth: true
100− CheckBox {
118+ CheckBox {
101− id: windowLoaderCheckbox
119+ id: windowLoaderCheckbox
102− checked: true
120+ checked: true
103− activeFocusOnPress: false
121+ activeFocusOnPress: false
122+ }
123+ Label {
124+ color: "black"
125+ text: "Window loader active"
126+ anchors.verticalCenter: parent.verticalCenter
127+ }
104 }
128 }
105 Label {
129 Label {
106− id: label
130+ color: "black"; font.bold: true
131+ text: "Size Hints:"
132+ }
133+ SizeHintField { id: minWidthText; text: "min width" }
134+ SizeHintField { id: maxWidthText; text: "max width" }
135+ SizeHintField { id: minHeightText; text: "min height" }
136+ SizeHintField { id: maxHeightText; text: "max height" }
137+ SizeHintField { id: widthIncrText; text: "width incr" }
138+ SizeHintField { id: heightIncrText; text: "height incr" }
139+ Button {
107 color: "black"
140 color: "black"
108− text: "Window loader active"
141+ anchors.horizontalCenter: parent.horizontalCenter
109− anchors.verticalCenter: parent.verticalCenter
142+ text: "Apply"
143+ onClicked: {
144+ var value = parseInt(minWidthText.value);
145+ if (isNaN(value)) {
146+ windowLoader.item.minimumWidth = 0;
147+ } else {
148+ windowLoader.item.resizeAreaMinWidth = 1; // get it out of the way
149+ windowLoader.item.minimumWidth = value;
150+ }
151+
152+ value = parseInt(maxWidthText.value);
153+ if (isNaN(value)) {
154+ windowLoader.item.maximumWidth = 0;
155+ } else {
156+ windowLoader.item.maximumWidth = value;
157+ }
158+
159+ value = parseInt(minHeightText.value);
160+ if (isNaN(value)) {
161+ windowLoader.item.minimumHeight = 0;
162+ } else {
163+ windowLoader.item.resizeAreaMinHeight = 1; // get it out of the way
164+ windowLoader.item.minimumHeight = value;
165+ }
166+
167+ value = parseInt(maxHeightText.value);
168+ if (isNaN(value)) {
169+ windowLoader.item.maximumHeight = 0;
170+ } else {
171+ windowLoader.item.maximumHeight = value;
172+ }
173+
174+ value = parseInt(widthIncrText.value);
175+ if (isNaN(value)) {
176+ windowLoader.item.widthIncrement = 0;
177+ } else {
178+ windowLoader.item.widthIncrement = value;
179+ }
180+
181+ value = parseInt(heightIncrText.value);
182+ if (isNaN(value)) {
183+ windowLoader.item.heightIncrement = 0;
184+ } else {
185+ windowLoader.item.heightIncrement = value;
186+ }
187+ }
110 }
188 }
111 }
189 }
112 }
190 }
113
191
192+ SignalSpy {
193+ id: windowRequestedWidthSpy
194+ target: windowLoader.item
195+ signalName: "onRequestedWidthChanged"
196+ }
197+
198+ SignalSpy {
199+ id: windowRequestedHeightSpy
200+ target: windowLoader.item
201+ signalName: "onRequestedHeightChanged"
202+ }
203+
114 UnityTestCase {
204 UnityTestCase {
115 name: "WindowResizeArea"
205 name: "WindowResizeArea"
116 when: windowShown
206 when: windowShown
@@ -122,6 +212,18 @@ Item {
122 fakeWindow.y = units.gu(20)
212 fakeWindow.y = units.gu(20)
123 fakeWindow.requestedWidth = units.gu(20)
213 fakeWindow.requestedWidth = units.gu(20)
124 fakeWindow.requestedHeight = units.gu(20)
214 fakeWindow.requestedHeight = units.gu(20)
215+ fakeWindow.resizeAreaMinWidth = units.gu(15);
216+ fakeWindow.resizeAreaMinHeight = units.gu(10);
217+ fakeWindow.minimumWidth = 0;
218+ fakeWindow.minimumHeight = 0;
219+ fakeWindow.maximumWidth = 0;
220+ fakeWindow.maximumHeight = 0;
221+ fakeWindow.widthIncrement = 0;
222+ fakeWindow.heightIncrement = 0;
223+
224+ // Our test window resizes instantly
225+ compare(fakeWindow.width, fakeWindow.requestedWidth);
226+ compare(fakeWindow.height, fakeWindow.requestedHeight);
125 }
227 }
126
228
127 function test_resizeWindowRightBottom_data() {
229 function test_resizeWindowRightBottom_data() {
@@ -143,8 +245,8 @@ Item {
143 var startDragY = initialWindowY + initialWindowHeight + 1
245 var startDragY = initialWindowY + initialWindowHeight + 1
144 mouseFlick(root, startDragX, startDragY, startDragX + data.dx, startDragY + data.dy, true, true, units.gu(.5), 10);
246 mouseFlick(root, startDragX, startDragY, startDragX + data.dx, startDragY + data.dy, true, true, units.gu(.5), 10);
145
247
146− tryCompare(fakeWindow, "width", Math.max(initialWindowWidth + data.dx, fakeWindow.minWidth));
248+ tryCompare(fakeWindow, "width", Math.max(initialWindowWidth + data.dx, fakeWindow.resizeAreaMinWidth));
147− tryCompare(fakeWindow, "height", Math.max(initialWindowHeight + data.dy, fakeWindow.minHeight));
249+ tryCompare(fakeWindow, "height", Math.max(initialWindowHeight + data.dy, fakeWindow.resizeAreaMinHeight));
148
250
149 compare(fakeWindow.x, initialWindowX);
251 compare(fakeWindow.x, initialWindowX);
150 compare(fakeWindow.y, initialWindowY);
252 compare(fakeWindow.y, initialWindowY);
@@ -169,11 +271,11 @@ Item {
169 var startDragY = initialWindowY - 1
271 var startDragY = initialWindowY - 1
170 mouseFlick(root, startDragX, startDragY, startDragX + data.dx, startDragY + data.dy, true, true, units.gu(.5), 10);
272 mouseFlick(root, startDragX, startDragY, startDragX + data.dx, startDragY + data.dy, true, true, units.gu(.5), 10);
171
273
172− tryCompare(fakeWindow, "width", Math.max(initialWindowWidth - data.dx, fakeWindow.minWidth));
274+ tryCompare(fakeWindow, "width", Math.max(initialWindowWidth - data.dx, fakeWindow.resizeAreaMinWidth));
173− tryCompare(fakeWindow, "height", Math.max(initialWindowHeight - data.dy, fakeWindow.minHeight));
275+ tryCompare(fakeWindow, "height", Math.max(initialWindowHeight - data.dy, fakeWindow.resizeAreaMinHeight));
174
276
175− var maxMoveX = initialWindowWidth - fakeWindow.minWidth;
277+ var maxMoveX = initialWindowWidth - fakeWindow.resizeAreaMinWidth;
176− var maxMoveY = initialWindowHeight - fakeWindow.minHeight;
278+ var maxMoveY = initialWindowHeight - fakeWindow.resizeAreaMinHeight;
177 compare(fakeWindow.x, Math.min(initialWindowX + data.dx, initialWindowX + maxMoveX));
279 compare(fakeWindow.x, Math.min(initialWindowX + data.dx, initialWindowX + maxMoveX));
178 compare(fakeWindow.y, Math.min(initialWindowY + data.dy, initialWindowY + maxMoveY));
280 compare(fakeWindow.y, Math.min(initialWindowY + data.dy, initialWindowY + maxMoveY));
179 }
281 }
@@ -189,8 +291,8 @@ Item {
189 var startDragY = initialWindowY + initialWindowHeight + 1
291 var startDragY = initialWindowY + initialWindowHeight + 1
190 mouseFlick(root, startDragX, startDragY, startDragX + resizeDelta, startDragY + resizeDelta, true, true, units.gu(.5), 10);
292 mouseFlick(root, startDragX, startDragY, startDragX + resizeDelta, startDragY + resizeDelta, true, true, units.gu(.5), 10);
191
293
192− tryCompare(fakeWindow, "width", Math.max(initialWindowWidth + resizeDelta, fakeWindow.minWidth));
294+ tryCompare(fakeWindow, "width", Math.max(initialWindowWidth + resizeDelta, fakeWindow.resizeAreaMinWidth));
193− tryCompare(fakeWindow, "height", Math.max(initialWindowHeight + resizeDelta, fakeWindow.minHeight));
295+ tryCompare(fakeWindow, "height", Math.max(initialWindowHeight + resizeDelta, fakeWindow.resizeAreaMinHeight));
194
296
195 // This will destroy the window and recreate it
297 // This will destroy the window and recreate it
196 windowLoader.active = false;
298 windowLoader.active = false;
@@ -198,8 +300,8 @@ Item {
198 windowLoader.active = true;
300 windowLoader.active = true;
199
301
200 // Make sure its size is again the same as before
302 // Make sure its size is again the same as before
201− tryCompare(fakeWindow, "width", Math.max(initialWindowWidth + resizeDelta, fakeWindow.minWidth));
303+ tryCompare(fakeWindow, "width", Math.max(initialWindowWidth + resizeDelta, fakeWindow.resizeAreaMinWidth));
202− tryCompare(fakeWindow, "height", Math.max(initialWindowHeight + resizeDelta, fakeWindow.minHeight));
304+ tryCompare(fakeWindow, "height", Math.max(initialWindowHeight + resizeDelta, fakeWindow.resizeAreaMinHeight));
203 }
305 }
204
306
205 // This tests if dragging smaller than minSize and then larger again, will keep the edge sticking
307 // This tests if dragging smaller than minSize and then larger again, will keep the edge sticking
@@ -220,8 +322,8 @@ Item {
220 var startDragX = initialWindowX + data.startX
322 var startDragX = initialWindowX + data.startX
221 var startDragY = initialWindowY + data.startY
323 var startDragY = initialWindowY + data.startY
222 mouseFlick(root, startDragX, startDragY, startDragX + data.dx, startDragY + data.dy, true, false, units.gu(.05), 10);
324 mouseFlick(root, startDragX, startDragY, startDragX + data.dx, startDragY + data.dy, true, false, units.gu(.05), 10);
223− tryCompare(fakeWindow, "width", Math.max(initialWindowWidth - Math.abs(data.dx), fakeWindow.minWidth));
325+ tryCompare(fakeWindow, "width", Math.max(initialWindowWidth - Math.abs(data.dx), fakeWindow.resizeAreaMinWidth));
224− tryCompare(fakeWindow, "height", Math.max(initialWindowHeight - Math.abs(data.dy), fakeWindow.minHeight));
326+ tryCompare(fakeWindow, "height", Math.max(initialWindowHeight - Math.abs(data.dy), fakeWindow.resizeAreaMinHeight));
225 mouseFlick(root, startDragX + data.dx, startDragY + data.dy, startDragX, startDragY, false, true, units.gu(.05), 10);
327 mouseFlick(root, startDragX + data.dx, startDragY + data.dy, startDragX, startDragY, false, true, units.gu(.05), 10);
226 tryCompare(fakeWindow, "width", initialWindowWidth);
328 tryCompare(fakeWindow, "width", initialWindowWidth);
227 tryCompare(fakeWindow, "height", initialWindowHeight);
329 tryCompare(fakeWindow, "height", initialWindowHeight);
@@ -257,7 +359,6 @@ Item {
257 fakeWindow.state = "normal"
359 fakeWindow.state = "normal"
258 }
360 }
259
361
260−
261 function test_restoreMovesIntoBounds_data() {
362 function test_restoreMovesIntoBounds_data() {
262 return [
363 return [
263 {tag: "left off", x: -units.gu(5), y: units.gu(5), w: units.gu(10), h: units.gu(10)},
364 {tag: "left off", x: -units.gu(5), y: units.gu(5), w: units.gu(10), h: units.gu(10)},
@@ -290,5 +391,99 @@ Item {
290
391
291 waitForRendering(root)
392 waitForRendering(root)
292 }
393 }
394+
395+ /*
396+ Tests that even though you dragged the window bottom right corner continously (ie,
397+ through multiple intermediate steps), its (requested) width and height changed only
398+ once. And, furthermore, its dimensions increased by a multiple of its size (width
399+ and height) increment value.
400+ */
401+ function test_sizeIncrement() {
402+ var initialWindowX = fakeWindow.x;
403+ var initialWindowY = fakeWindow.y;
404+ var initialWindowWidth = fakeWindow.width
405+ var initialWindowHeight = fakeWindow.height
406+
407+ fakeWindow.widthIncrement = 70;
408+ fakeWindow.heightIncrement = 70;
409+
410+ var startDragX = initialWindowX + initialWindowWidth + 1
411+ var startDragY = initialWindowY + initialWindowHeight + 1
412+ var deltaX = 100;
413+ var deltaY = 100;
414+
415+ windowRequestedWidthSpy.clear();
416+ verify(windowRequestedWidthSpy.valid);
417+
418+ windowRequestedHeightSpy.clear();
419+ verify(windowRequestedHeightSpy.valid);
420+
421+ mouseFlick(root, startDragX, startDragY, startDragX + deltaX, startDragY + deltaY, true, true, units.gu(.5), 10);
422+
423+ compare(windowRequestedWidthSpy.count, 1);
424+ compare(fakeWindow.width, initialWindowWidth + fakeWindow.widthIncrement);
425+ compare(windowRequestedHeightSpy.count, 1);
426+ compare(fakeWindow.height, initialWindowHeight + fakeWindow.heightIncrement);
427+ }
428+
429+ /*
430+ Tests that when dragging a window border you cannot make it bigger than its maximum size
431+ */
432+ function test_maximumSize() {
433+ fakeWindow.x = units.gu(1);
434+ fakeWindow.y = units.gu(1);
435+ fakeWindow.resizeAreaMinWidth = 1; // so it does not interfere with anything
436+ fakeWindow.resizeAreaMinHeight = 1; // so it does not interfere with anything
437+ fakeWindow.requestedWidth = units.gu(10);
438+ fakeWindow.requestedHeight = units.gu(10);
439+
440+ fakeWindow.maximumWidth = units.gu(20);
441+ fakeWindow.maximumHeight = units.gu(20);
442+
443+ // Our test window resizes instantly
444+ compare(fakeWindow.width, fakeWindow.requestedWidth);
445+ compare(fakeWindow.height, fakeWindow.requestedHeight);
446+
447+ var startDragX = fakeWindow.width + 1
448+ var startDragY = fakeWindow.height + 1
449+ var endDragX = (fakeWindow.maximumWidth * 2) + 1;
450+ var endDragY = (fakeWindow.maximumHeight * 2) + 1;
451+
452+ mouseFlick(fakeWindow, startDragX, startDragY, endDragX, endDragY,
453+ true/*pressMouse*/, true/*releaseMouse*/, units.gu(.5)/*speed*/, 20/*iterations*/);
454+
455+ compare(fakeWindow.requestedWidth, fakeWindow.maximumWidth);
456+ compare(fakeWindow.requestedHeight, fakeWindow.maximumHeight);
457+ }
458+
459+ /*
460+ Tests that when dragging a window border you cannot make it smaller than its minimum size
461+ */
462+ function test_minimumSize() {
463+ fakeWindow.x = units.gu(1);
464+ fakeWindow.y = units.gu(1);
465+ fakeWindow.resizeAreaMinWidth = 1; // so it does not interfere with anything
466+ fakeWindow.resizeAreaMinHeight = 1; // so it does not interfere with anything
467+ fakeWindow.requestedWidth = units.gu(20);
468+ fakeWindow.requestedHeight = units.gu(20);
469+
470+ fakeWindow.minimumWidth = units.gu(10);
471+ fakeWindow.minimumHeight = units.gu(10);
472+
473+ // Our test window resizes instantly
474+ compare(fakeWindow.width, fakeWindow.requestedWidth);
475+ compare(fakeWindow.height, fakeWindow.requestedHeight);
476+
477+ var startDragX = fakeWindow.width + 1
478+ var startDragY = fakeWindow.height + 1
479+ var endDragX = (fakeWindow.minimumWidth * 0.5) + 1;
480+ var endDragY = (fakeWindow.minimumHeight * 0.5) + 1;
481+
482+ mouseFlick(fakeWindow, startDragX, startDragY, endDragX, endDragY,
483+ true/*pressMouse*/, true/*releaseMouse*/, units.gu(.5)/*speed*/, 20/*iterations*/);
484+
485+ compare(fakeWindow.requestedWidth, fakeWindow.minimumWidth);
486+ compare(fakeWindow.requestedHeight, fakeWindow.minimumHeight);
487+ }
293 }
488 }
294}
489}
tests/qmltests/tst_DisabledScreenNotice.qml+10−2
@@ -19,13 +19,13 @@ import QtTest 1.0
19import Unity.Test 0.1
19import Unity.Test 0.1
20import "../../qml"
20import "../../qml"
21
21
22−
23Item {
22Item {
24 id: root
23 id: root
25− width: units.gu(70)
24+ width: units.gu(40)
26 height: units.gu(70)
25 height: units.gu(70)
27
26
28 DisabledScreenNotice {
27 DisabledScreenNotice {
28+ id: touchScreenPad
29 anchors.fill: parent
29 anchors.fill: parent
30 }
30 }
31
31
@@ -33,5 +33,13 @@ Item {
33 id: testCase
33 id: testCase
34 name: "DisabledScreenNotice"
34 name: "DisabledScreenNotice"
35 when: windowShown
35 when: windowShown
36+
37+ function test_mouseAreaHidesOnFirstTap() {
38+ var noticeArea = findChild(touchScreenPad, "infoNoticeArea")
39+ print("noticeArea", noticeArea.visible)
40+ compare(noticeArea.visible, true)
41+ tap(root)
42+ tryCompare(noticeArea, "visible", false)
43+ }
36 }
44 }
37}
45}
tests/qmltests/tst_OrientedShell.qml+106−22
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 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
@@ -292,6 +292,9 @@ Rectangle {
292 activeFocusOnPress: false
292 activeFocusOnPress: false
293 text: "Usage Mode"
293 text: "Usage Mode"
294 model: ["Staged", "Windowed", "Automatic"]
294 model: ["Staged", "Windowed", "Automatic"]
295+ function selectStaged() {selectedIndex = 0;}
296+ function selectWindowed() {selectedIndex = 1;}
297+ function selectAutomatic() {selectedIndex = 2;}
295 }
298 }
296 MouseTouchEmulationCheckbox {
299 MouseTouchEmulationCheckbox {
297 checked: true
300 checked: true
@@ -393,7 +396,7 @@ Rectangle {
393 activeFocusOnPress: false
396 activeFocusOnPress: false
394 property string prevDevName: "mako"
397 property string prevDevName: "mako"
395 onClicked: {
398 onClicked: {
396− usageModeSelector.selectedIndex = 2; // "Automatic"
399+ usageModeSelector.selectAutomatic();
397
400
398 if (applicationArguments.deviceName === "desktop") {
401 if (applicationArguments.deviceName === "desktop") {
399 applicationArguments.deviceName = prevDevName;
402 applicationArguments.deviceName = prevDevName;
@@ -457,6 +460,8 @@ Rectangle {
457 signalSpy.signalName = "";
460 signalSpy.signalName = "";
458
461
459 LightDM.Greeter.authenticate(""); // reset greeter
462 LightDM.Greeter.authenticate(""); // reset greeter
463+
464+ usageModeSelector.selectStaged();
460 }
465 }
461
466
462 function cleanup() {
467 function cleanup() {
@@ -996,37 +1001,58 @@ Rectangle {
996 tryCompare(shell, "transformRotationAngle", 0);
1001 tryCompare(shell, "transformRotationAngle", 0);
997 }
1002 }
998
1003
1004+ function test_attachRemoveInputDevices_data() {
1005+ return [
1006+ { tag: "small screen, no devices", screenWidth: units.gu(50), mouse: false, kbd: false, expectedMode: "phone", oskExpected: true },
1007+ { tag: "medium screen, no devices", screenWidth: units.gu(100), mouse: false, kbd: false, expectedMode: "phone", oskExpected: true },
1008+ { tag: "big screen, no devices", screenWidth: units.gu(200), mouse: false, kbd: false, expectedMode: "phone", oskExpected: true },
1009+ { tag: "small screen, mouse", screenWidth: units.gu(50), mouse: true, kbd: false, expectedMode: "phone", oskExpected: true },
1010+ { tag: "medium screen, mouse", screenWidth: units.gu(100), mouse: true, kbd: false, expectedMode: "desktop", oskExpected: true },
1011+ { tag: "big screen, mouse", screenWidth: units.gu(200), mouse: true, kbd: false, expectedMode: "desktop", oskExpected: true },
1012+ { tag: "small screen, kbd", screenWidth: units.gu(50), mouse: false, kbd: true, expectedMode: "phone", oskExpected: false },
1013+ { tag: "medium screen, kbd", screenWidth: units.gu(100), mouse: false, kbd: true, expectedMode: "phone", oskExpected: false },
1014+ { tag: "big screen, kbd", screenWidth: units.gu(200), mouse: false, kbd: true, expectedMode: "desktop", oskExpected: false },
1015+ { tag: "small screen, mouse & kbd", screenWidth: units.gu(50), mouse: true, kbd: true, expectedMode: "phone", oskExpected: false },
1016+ { tag: "medium screen, mouse & kbd", screenWidth: units.gu(100), mouse: true, kbd: true, expectedMode: "desktop", oskExpected: false },
1017+ { tag: "big screen, mouse & kbd", screenWidth: units.gu(200), mouse: true, kbd: true, expectedMode: "desktop", oskExpected: false },
1018+ ]
1019+ }
1020+
999− function test_attachRemoveInputDevices() {
1021+ function test_attachRemoveInputDevices(data) {
1000− usageModeSelector.selectedIndex = 2;
1022+ usageModeSelector.selectAutomatic();
1001 tryCompare(mockUnity8Settings, "usageMode", "Automatic")
1023 tryCompare(mockUnity8Settings, "usageMode", "Automatic")
1002
1024
1003 loadShell("mako")
1025 loadShell("mako")
1004 var shell = findChild(orientedShell, "shell");
1026 var shell = findChild(orientedShell, "shell");
1027+ var inputMethod = findChild(shell, "inputMethod");
1005
1028
1006− tryCompare(shell, "usageScenario", "phone");
1029+ var oldWidth = orientedShellLoader.width;
1007− tryCompare(mockOskSettings, "stayHidden", false);
1030+ orientedShellLoader.width = data.screenWidth;
1008
1031
1009− MockInputDeviceBackend.addMockDevice("/kbd0", InputInfo.Keyboard);
1010 tryCompare(shell, "usageScenario", "phone");
1032 tryCompare(shell, "usageScenario", "phone");
1011− tryCompare(mockOskSettings, "stayHidden", true);
1033+ tryCompare(inputMethod, "enabled", true);
1012−
1034+ tryCompare(mockOskSettings, "disableHeight", false);
1013− MockInputDeviceBackend.addMockDevice("/mouse0", InputInfo.Mouse);
1014− tryCompare(shell, "usageScenario", "desktop");
1015− tryCompare(mockOskSettings, "stayHidden", true);
1016
1035
1036+ if (data.kbd) {
1017− MockInputDeviceBackend.removeDevice("/kbd0");
1037+ MockInputDeviceBackend.addMockDevice("/kbd0", InputInfo.Keyboard);
1018− tryCompare(shell, "usageScenario", "desktop");
1038+ }
1019− tryCompare(mockOskSettings, "stayHidden", false);
1039+ if (data.mouse) {
1040+ MockInputDeviceBackend.addMockDevice("/mouse0", InputInfo.Mouse);
1041+ }
1020
1042
1021− MockInputDeviceBackend.removeDevice("/mouse0");
1022− tryCompare(shell, "usageScenario", "phone");
1043+ tryCompare(shell, "usageScenario", data.expectedMode);
1044+ tryCompare(inputMethod, "enabled", data.oskExpected);
1023− tryCompare(mockOskSettings, "stayHidden", false);
1045+ tryCompare(mockOskSettings, "disableHeight", data.expectedMode == "desktop" || data.kbd);
1024
1046
1047+ if (data.kbd) {
1025− MockInputDeviceBackend.addMockDevice("/touchpad0", InputInfo.TouchPad);
1048+ MockInputDeviceBackend.removeDevice("/kbd0");
1026− tryCompare(shell, "usageScenario", "desktop");
1049+ }
1050+ if (data.mouse) {
1051+ MockInputDeviceBackend.removeDevice("/mouse0");
1052+ }
1027
1053
1028− MockInputDeviceBackend.removeDevice("/touchpad0");
1054+ // Restore width
1029− tryCompare(shell, "usageScenario", "phone");
1055+ orientedShellLoader.width = oldWidth;
1030 }
1056 }
1031
1057
1032 /*
1058 /*
@@ -1140,6 +1166,61 @@ Rectangle {
1140 tryCompare(shell, "transformRotationAngle" , 0);
1166 tryCompare(shell, "transformRotationAngle" , 0);
1141 }
1167 }
1142
1168
1169+ /*
1170+ Regression test for https://launchpad.net/bugs/1515977
1171+
1172+ Preconditions:
1173+ UI in Desktop mode and landscape
1174+
1175+ Steps:
1176+ - Launch a portrait-only application
1177+
1178+ Expected outcome:
1179+ - Shell stays in landscape
1180+
1181+ Buggy outcome:
1182+ - Shell would rotate to portrait as the newly-focused app doesn't support landscape
1183+ */
1184+ function test_portraitOnlyAppInLandscapeDesktop_data() {
1185+ return [
1186+ {tag: "mako", deviceName: "mako"},
1187+ {tag: "manta", deviceName: "manta"},
1188+ {tag: "flo", deviceName: "flo"}
1189+ ];
1190+ }
1191+ function test_portraitOnlyAppInLandscapeDesktop(data) {
1192+ loadShell(data.deviceName);
1193+
1194+ ////
1195+ // setup preconditions (put shell in Desktop mode and landscape)
1196+
1197+ usageModeSelector.selectWindowed();
1198+
1199+ orientedShell.physicalOrientation = orientedShell.orientations.landscape;
1200+ waitUntilShellIsInOrientation(orientedShell.orientations.landscape);
1201+ waitForRotationAnimationsToFinish();
1202+
1203+ ////
1204+ // Launch a portrait-only application
1205+
1206+ var dialerApp = ApplicationManager.startApplication("dialer-app");
1207+ verify(dialerApp);
1208+
1209+ // ensure the mock dialer-app is as we expect
1210+ compare(dialerApp.rotatesWindowContents, false);
1211+ compare(dialerApp.supportedOrientations, Qt.PortraitOrientation | Qt.InvertedPortraitOrientation);
1212+
1213+ waitUntilAppSurfaceShowsUp("dialer-app");
1214+ waitUntilAppWindowCanRotate("dialer-app");
1215+ verify(isAppSurfaceFocused("dialer-app"));
1216+
1217+ ////
1218+ // check outcome (shell should stay in landscape)
1219+
1220+ waitForRotationAnimationsToFinish();
1221+ compare(shell.orientation, orientedShell.orientations.landscape);
1222+ }
1223+
1143 // angle - rotation angle in degrees clockwise, relative to the primary orientation.
1224 // angle - rotation angle in degrees clockwise, relative to the primary orientation.
1144 function rotateTo(angle) {
1225 function rotateTo(angle) {
1145 switch (angle) {
1226 switch (angle) {
@@ -1158,7 +1239,10 @@ Rectangle {
1158 default:
1239 default:
1159 verify(false);
1240 verify(false);
1160 }
1241 }
1242+ waitForRotationAnimationsToFinish();
1243+ }
1161
1244
1245+ function waitForRotationAnimationsToFinish() {
1162 var rotationStates = findInvisibleChild(orientedShell, "rotationStates");
1246 var rotationStates = findInvisibleChild(orientedShell, "rotationStates");
1163 verify(rotationStates.d);
1247 verify(rotationStates.d);
1164 verify(rotationStates.d.stateUpdateTimer);
1248 verify(rotationStates.d.stateUpdateTimer);
tests/qmltests/tst_Shell.qml+74−5
@@ -49,6 +49,11 @@ Rectangle {
49 shellLoader.active = true;
49 shellLoader.active = true;
50 }
50 }
51
51
52+ MouseArea {
53+ id: clickThroughCatcher
54+ anchors.fill: shellContainer
55+ }
56+
52 Item {
57 Item {
53 id: shellContainer
58 id: shellContainer
54 anchors.left: root.left
59 anchors.left: root.left
@@ -291,11 +296,31 @@ Rectangle {
291 signalName: "applicationRemoved"
296 signalName: "applicationRemoved"
292 }
297 }
293
298
299+ SignalSpy {
300+ id: clickThroughSpy
301+ target: clickThroughCatcher
302+ signalName: "clicked"
303+ }
304+
294 Telephony.CallEntry {
305 Telephony.CallEntry {
295 id: phoneCall
306 id: phoneCall
296 phoneNumber: "+447812221111"
307 phoneNumber: "+447812221111"
297 }
308 }
298
309
310+ Item {
311+ id: fakeDismissTimer
312+ property bool running: false
313+ signal triggered
314+
315+ function stop() {
316+ running = false;
317+ }
318+
319+ function restart() {
320+ running = true;
321+ }
322+ }
323+
299 UnityTestCase {
324 UnityTestCase {
300 id: testCase
325 id: testCase
301 name: "Shell"
326 name: "Shell"
@@ -333,6 +358,11 @@ Rectangle {
333 var launcher = findChild(shell, "launcher");
358 var launcher = findChild(shell, "launcher");
334 launcherShowDashHomeSpy.target = launcher;
359 launcherShowDashHomeSpy.target = launcher;
335
360
361+ var panel = findChild(launcher, "launcherPanel");
362+ verify(!!panel);
363+
364+ panel.dismissTimer = fakeDismissTimer;
365+
336 waitForGreeterToStabilize();
366 waitForGreeterToStabilize();
337 }
367 }
338
368
@@ -631,7 +661,6 @@ Rectangle {
631 // again before interacting with it otherwise any
661 // again before interacting with it otherwise any
632 // DirectionalDragAreas in there won't be easily fooled by
662 // DirectionalDragAreas in there won't be easily fooled by
633 // fake swipes.
663 // fake swipes.
634− removeTimeConstraintsFromDirectionalDragAreas(greeter);
635 swipeAwayGreeter();
664 swipeAwayGreeter();
636
665
637 compare(mainApp.requestedState, ApplicationInfoInterface.RequestedRunning);
666 compare(mainApp.requestedState, ApplicationInfoInterface.RequestedRunning);
@@ -641,6 +670,7 @@ Rectangle {
641 function swipeAwayGreeter() {
670 function swipeAwayGreeter() {
642 var greeter = findChild(shell, "greeter");
671 var greeter = findChild(shell, "greeter");
643 tryCompare(greeter, "fullyShown", true);
672 tryCompare(greeter, "fullyShown", true);
673+ removeTimeConstraintsFromDirectionalDragAreas(greeter);
644
674
645 var touchX = shell.width - (shell.edgeSize / 2);
675 var touchX = shell.width - (shell.edgeSize / 2);
646 var touchY = shell.height / 2;
676 var touchY = shell.height / 2;
@@ -1240,10 +1270,6 @@ Rectangle {
1240
1270
1241 var launcher = findChild(shell, "launcher");
1271 var launcher = findChild(shell, "launcher");
1242
1272
1243− // ensure the launcher dimissal timer never gets triggered during the test run
1244− var dismissTimer = findInvisibleChild(launcher, "dismissTimer");
1245− dismissTimer.interval = 60 * 60 * 1000;
1246−
1247 dragLauncherIntoView();
1273 dragLauncherIntoView();
1248
1274
1249 // Emulate a tap with a finger, where the touch position drifts during the tap.
1275 // Emulate a tap with a finger, where the touch position drifts during the tap.
@@ -1731,6 +1757,7 @@ Rectangle {
1731
1757
1732 revealLauncherByEdgePushWithMouse();
1758 revealLauncherByEdgePushWithMouse();
1733 tryCompare(launcher, "x", 0);
1759 tryCompare(launcher, "x", 0);
1760+ mouseMove(bfb, bfb.width / 2, bfb.height / 2)
1734 waitForRendering(shell)
1761 waitForRendering(shell)
1735
1762
1736 mouseClick(bfb, bfb.width / 2, bfb.height / 2)
1763 mouseClick(bfb, bfb.width / 2, bfb.height / 2)
@@ -1961,5 +1988,47 @@ Rectangle {
1961 compare(ApplicationManager.findApplication("libreoffice") === null, true);
1988 compare(ApplicationManager.findApplication("libreoffice") === null, true);
1962 }
1989 }
1963 }
1990 }
1991+
1992+ function test_inputEventsOnEdgesEndUpInAppSurface_data() {
1993+ return [
1994+ { tag: "phone", repeaterName: "spreadRepeater" },
1995+ { tag: "tablet", repeaterName: "spreadRepeater" },
1996+ { tag: "desktop", repeaterName: "appRepeater" },
1997+ ]
1998+ }
1999+
2000+ function test_inputEventsOnEdgesEndUpInAppSurface(data) {
2001+ loadShell(data.tag);
2002+ shell.usageScenario = data.tag;
2003+ waitForRendering(shell);
2004+ swipeAwayGreeter();
2005+
2006+ // Let's open a fullscreen app
2007+ var app = ApplicationManager.startApplication("camera-app");
2008+ waitUntilAppWindowIsFullyLoaded(app);
2009+
2010+ var appRepeater = findChild(shell, data.repeaterName);
2011+ var topmostAppDelegate = appRepeater.itemAt(0);
2012+ verify(topmostAppDelegate);
2013+
2014+ var topmostSurfaceItem = findChild(topmostAppDelegate, "surfaceItem");
2015+ verify(topmostSurfaceItem);
2016+
2017+ mouseClick(shell, 1, shell.height / 2);
2018+ compare(topmostSurfaceItem.mousePressCount, 1);
2019+ compare(topmostSurfaceItem.mouseReleaseCount, 1);
2020+
2021+ mouseClick(shell, shell.width - 1, shell.height / 2);
2022+ compare(topmostSurfaceItem.mousePressCount, 2);
2023+ compare(topmostSurfaceItem.mouseReleaseCount, 2);
2024+
2025+ tap(shell, 1, shell.height / 2);
2026+ compare(topmostSurfaceItem.touchPressCount, 1);
2027+ compare(topmostSurfaceItem.touchReleaseCount, 1);
2028+
2029+ tap(shell, shell.width - 1, shell.height / 2);
2030+ compare(topmostSurfaceItem.touchPressCount, 2);
2031+ compare(topmostSurfaceItem.touchReleaseCount, 2);
2032+ }
1964 }
2033 }
1965}
2034}
tests/qmltests/tst_ShellWithPin.qml+19−5
@@ -128,6 +128,20 @@ Item {
128 phoneNumber: "+447812221111"
128 phoneNumber: "+447812221111"
129 }
129 }
130
130
131+ Item {
132+ id: fakeDismissTimer
133+ property bool running: false
134+ signal triggered
135+
136+ function stop() {
137+ running = false;
138+ }
139+
140+ function restart() {
141+ running = true;
142+ }
143+ }
144+
131 UT.UnityTestCase {
145 UT.UnityTestCase {
132 id: testCase
146 id: testCase
133 name: "ShellWithPin"
147 name: "ShellWithPin"
@@ -143,6 +157,11 @@ Item {
143 waitForLockscreen()
157 waitForLockscreen()
144 greeter.failedLoginsDelayAttempts = -1;
158 greeter.failedLoginsDelayAttempts = -1;
145 greeter.maxFailedLogins = -1;
159 greeter.maxFailedLogins = -1;
160+
161+ var launcher = findChild(shell, "launcher");
162+ var panel = findChild(launcher, "launcherPanel");
163+ verify(!!panel);
164+ panel.dismissTimer = fakeDismissTimer;
146 }
165 }
147
166
148 function cleanup() {
167 function cleanup() {
@@ -565,11 +584,6 @@ Item {
565 tryCompare(coverPage, "showProgress", 1);
584 tryCompare(coverPage, "showProgress", 1);
566
585
567 var launcher = testCase.findChild(shell, "launcher")
586 var launcher = testCase.findChild(shell, "launcher")
568− {
569− var dismissTimer = testCase.findInvisibleChild(launcher, "dismissTimer");
570− // effectively disable the dismiss timer
571− dismissTimer.interval = 24 * 60 * 60 * 1000 // 24 hours
572− }
573 var launcherPanel = testCase.findChild(launcher, "launcherPanel");
587 var launcherPanel = testCase.findChild(launcher, "launcherPanel");
574
588
575 var toX = shell.width * 0.45;
589 var toX = shell.width * 0.45;