on xenial help sign in
merge lp:~mzanetti/unity8/inputmethod2
commit4f01f5d1a5ca965bb599de470046264f3719bfd6 authorLukáš Tinkl <lukas.tinkl@canonical.com> dateThu 28 Jan 2016, 19:25 (11 years ago) parent22050ffde040db
131 files changed+1824−514
debian/changelog+12 debian/unity8-private.install+1 plugins/CMakeLists.txt+1 plugins/Dash/CardCreator.js+28−4 plugins/UInput/CMakeLists.txt+7 plugins/UInput/UInput.qmltypes+44 plugins/UInput/plugin.cpp+26 plugins/UInput/plugin.h+32 plugins/UInput/qmldir+3 plugins/UInput/uinput.cpp+182 plugins/UInput/uinput.h+61 po/am.po+3−3 po/ar.po+3−3 po/ast.po+3−3 po/az.po+3−3 po/be.po+3−3 po/bg.po+3−3 po/bn.po+3−3 po/br.po+3−3 po/bs.po+3−3 po/ca.po+3−3 po/ca@valencia.po+3−3 po/ce.po+3−3 po/ckb.po+3−3 po/cs.po+3−3 po/cy.po+3−3 po/da.po+3−3 po/de.po+3−3 po/el.po+3−3 po/en_AU.po+3−3 po/en_GB.po+3−3 po/eo.po+3−3 po/es.po+6−6 po/eu.po+3−3 po/fa.po+3−3 po/fi.po+3−3 po/fo.po+3−3 po/fr.po+3−3 po/ga.po+137−120 po/gd.po+3−3 po/gl.po+5−5 po/gv.po+3−3 po/he.po+3−3 po/hi.po+3−3 po/hr.po+3−3 po/hu.po+3−3 po/hy.po+3−3 po/ia.po+14−13 po/id.po+3−3 po/is.po+3−3 po/it.po+14−12 po/ja.po+11−11 po/km.po+3−3 po/kn.po+3−3 po/ko.po+3−3 po/ku.po+3−3 po/ky.po+3−3 po/lo.po+3−3 po/lt.po+3−3 po/lv.po+3−3 po/ml.po+3−3 po/mr.po+3−3 po/ms.po+3−3 po/my.po+3−3 po/nb.po+16−14 po/ne.po+3−3 po/nl.po+3−3 po/nn.po+3−3 po/oc.po+3−3 po/or.po+3−3 po/pa.po+3−3 po/pl.po+5−3 po/pt.po+4−4 po/pt_BR.po+3−3 po/ro.po+3−3 po/ru.po+3−3 po/shn.po+3−3 po/si.po+3−3 po/sk.po+3−3 po/sl.po+3−3 po/sq.po+3−3 po/sr.po+3−3 po/sv.po+3−3 po/sw.po+3−3 po/ta.po+3−3 po/te.po+3−3 po/th.po+3−3 po/tr.po+3−3 po/ug.po+3−3 po/uk.po+3−3 po/unity8.pot+1−1 po/ur.po+3−3 po/uz.po+3−3 po/vi.po+3−3 po/wo.po+3−3 po/xh.po+3−3 po/zh_CN.po+3−3 po/zh_HK.po+3−3 po/zh_TW.po+3−3 qml/Components/InputMethod.qml+1−1 qml/Components/VirtualTouchPad.qml+138 qml/DisabledScreenNotice.qml+72−19 qml/OrientedShell.qml+28−14 qml/Shell.qml+4−3 qml/Stages/AbstractStage.qml+5−1 qml/Stages/DesktopStage.qml+6−1 qml/Stages/PhoneStage.qml+5−1 qml/Stages/TabletStage.qml+5−1 tests/mocks/CMakeLists.txt+1 tests/mocks/UInput/CMakeLists.txt+7 tests/mocks/UInput/mockuinput.cpp+73 tests/mocks/UInput/mockuinput.h+63 tests/mocks/UInput/plugin.cpp+26 tests/mocks/UInput/plugin.h+32 tests/mocks/UInput/qmldir+2 tests/mocks/Unity/CMakeLists.txt+1 tests/mocks/Unity/Screens/CMakeLists.txt+14 tests/mocks/Unity/Screens/plugin.cpp+29 tests/mocks/Unity/Screens/plugin.h+25 tests/mocks/Unity/Screens/qmldir+2 tests/mocks/Unity/Screens/screens.cpp+71 tests/mocks/Unity/Screens/screens.h+82 tests/plugins/Dash/cardcreator/10.tst+2 tests/plugins/Dash/cardcreator/3.res+1 tests/plugins/Dash/cardcreator/3.tst+1−1 tests/plugins/Dash/cardcreatortest.cpp+23−21 tests/qmltests/CMakeLists.txt+1 tests/qmltests/Components/tst_VirtualTouchPad.qml+143 tests/qmltests/Dash/tst_Card.qml+1 tests/qmltests/tst_DisabledScreenNotice.qml+10−2 tests/qmltests/tst_OrientedShell.qml+106−22
debian/changelog+12
@@ -1,3 +1,15 @@
1+unity8 (8.11+16.04.20160122-0ubuntu1) xenial; urgency=medium
2+
3+ [ Albert Astals Cid ]
4+ * Fix bug #1536296 added: tests/plugins/Dash/cardcreator/10.tst (LP:
5+ #1536296)
6+ * Fix card tests on the phone
7+
8+ [ CI Train Bot ]
9+ * Update translation template
10+
11+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 22 Jan 2016 16:56:04 +0000
12+
113unity8 (8.11+16.04.20160111.1-0ubuntu1) xenial; urgency=medium
214
315 [ Albert Astals Cid ]
debian/unity8-private.install+1
@@ -12,6 +12,7 @@ usr/lib/*/unity8/qml/ScreenGrabber
1212usr/lib/*/unity8/qml/SessionBroadcast
1313usr/lib/*/unity8/qml/Ubuntu
1414usr/lib/*/unity8/qml/Unity
15+usr/lib/*/unity8/qml/UInput
1516usr/lib/*/unity8/qml/Utils
1617usr/lib/*/unity8/qml/Wizard
1718usr/share/accountsservice/interfaces
plugins/CMakeLists.txt+1
@@ -22,6 +22,7 @@ add_subdirectory(Powerd)
2222add_subdirectory(SessionBroadcast)
2323add_subdirectory(ScreenGrabber)
2424add_subdirectory(Ubuntu)
25+add_subdirectory(UInput)
2526add_subdirectory(Unity)
2627add_subdirectory(Utils)
2728add_subdirectory(Wizard)
plugins/Dash/CardCreator.js+28−4
@@ -61,6 +61,7 @@ var kBackgroundLoaderCode = 'Loader {\n\
6161// %1 is used as anchors of artShapeHolder
6262// %2 is used as image width
6363// %3 is used as image height
64+// %4 is injected as code to artImage
6465var kArtShapeHolderCode = 'Item { \n\
6566 id: artShapeHolder; \n\
6667 height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height; \n\
@@ -131,6 +132,7 @@ var kArtShapeHolderCode = 'Item { \n\
131132 asynchronous: root.asynchronous; \n\
132133 width: %2; \n\
133134 height: %3; \n\
135+ %4 \n\
134136 } \n\
135137 } \n\
136138 } \n\
@@ -242,6 +244,7 @@ var kMascotShapeLoaderCode = 'Loader { \n\
242244
243245// %1 is used as anchors of mascotImage
244246// %2 is used as visible of mascotImage
247+// %3 is injected as code to mascotImage
245248var kMascotImageCode = 'CroppedImageMinimumSourceSize { \n\
246249 id: mascotImage; \n\
247250 objectName: "mascotImage"; \n\
@@ -252,6 +255,7 @@ var kMascotImageCode = 'CroppedImageMinimumSourceSize { \n\
252255 horizontalAlignment: Image.AlignHCenter; \n\
253256 verticalAlignment: Image.AlignVCenter; \n\
254257 visible: %2; \n\
258+ %3 \n\
255259 }\n';
256260
257261// %1 is used as anchors of titleLabel
@@ -369,9 +373,27 @@ var kAudioProgressBarCode = 'CardAudioProgress { \n\
369373 color: %3; \n\
370374 }';
371375
376+function evil_param(object) {
377+ for (var x in object) {
378+ if (typeof object[x] === "object" && evil_param(object[x]))
379+ return true;
380+
381+ if (typeof object[x] === "string" && object[x].match(/"(?:[^"\\]|\\.)*"/) != null)
382+ return true;
383+ }
384+
385+ return false;
386+}
387+
372388function cardString(template, components) {
373389 var code;
374390
391+ if (evil_param(template))
392+ return "";
393+
394+ if (evil_param(components))
395+ return "";
396+
375397 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
376398
377399 code = 'AbstractButton { \n\
@@ -456,11 +478,12 @@ function cardString(template, components) {
456478 heightCode = 'width / artShape.aspect';
457479 }
458480
459− code += kArtShapeHolderCode.arg(artAnchors).arg(widthCode).arg(heightCode);
460481 var fallback = components["art"] && components["art"]["fallback"] || "";
482+ var fallbackCode = "";
461483 if (fallback !== "") {
462− code += 'Connections { target: artShapeLoader.item ? artShapeLoader.item.image : null; onStatusChanged: if (artShapeLoader.item.image.status === Image.Error) artShapeLoader.item.image.source = "%1"; } \n'.arg(fallback);
484+ fallbackCode += 'onStatusChanged: if (status === Image.Error) source = "%1";'.arg(fallback);
463485 }
486+ code += kArtShapeHolderCode.arg(artAnchors).arg(widthCode).arg(heightCode).arg(fallbackCode);
464487 } else {
465488 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
466489 }
@@ -552,11 +575,12 @@ function cardString(template, components) {
552575 }
553576
554577 var mascotImageVisible = useMascotShape ? 'false' : 'showHeader';
555− mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible);
556578 var fallback = components["mascot"] && components["mascot"]["fallback"] || "";
579+ var fallbackCode = "";
557580 if (fallback !== "") {
558− code += 'Connections { target: mascotImage; onStatusChanged: if (mascotImage.status === Image.Error) mascotImage.source = "%1"; } \n'.arg(fallback);
581+ fallbackCode += 'onStatusChanged: if (status === Image.Error) source = "%1";'.arg(fallback);
559582 }
583+ mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible).arg(fallbackCode);
560584 }
561585
562586 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")';
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
po/am.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-11-19 19:27+0000\n"
1212"Last-Translator: samson <Unknown>\n"
1313"Language-Team: Amharic <am@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ar.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-29 09:41+0000\n"
1212"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
1313"Language-Team: Arabic <ar@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
1818"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/ast.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-10-06 12:07+0000\n"
1212"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
1313"Language-Team: Asturian <ast@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/az.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-09-03 16:39+0000\n"
1212"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
1313"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/be.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-12-13 13:12+0000\n"
1212"Last-Translator: Mikhail_SaTuRn <mikhail_saturn@tut.by>\n"
1313"Language-Team: Belarusian <be@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/bg.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-04-12 14:43+0000\n"
1212"Last-Translator: George Karavasilev <kokoto-java@ubuntu.com>\n"
1313"Language-Team: Bulgarian <bg@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/bn.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-11-27 19:38+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Bengali <bn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/br.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-10-05 06:47+0000\n"
1212"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
1313"Language-Team: Breton <br@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/bs.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-12-01 20:06+0000\n"
1212"Last-Translator: Kenan Gutić <Unknown>\n"
1313"Language-Team: Bosnian <bs@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/ca.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-04 09:48+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ca@valencia.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-02-22 15:22+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ce.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-02-15 04:01+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Chechen <ce@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ckb.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-01-21 11:05+0000\n"
1212"Last-Translator: Aras <aras.noori@gmail.com>\n"
1313"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/cs.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-07 10:44+0000\n"
1212"Last-Translator: Vojtěch Daněk <vdanek@outlook.com>\n"
1313"Language-Team: Czech <cs@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020"Language: cs\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
po/cy.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-31 13:21+0000\n"
1212"Last-Translator: Owen Llywelyn <owen.llywelyn@gmail.com>\n"
1313"Language-Team: Welsh <cy@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
1818"2 : 3;\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/da.po+3−3
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
11+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1212"PO-Revision-Date: 2015-07-06 12:05+0000\n"
1313"Last-Translator: Folmer Fredslund <Unknown>\n"
1414"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/de.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-24 18:03+0000\n"
1212"Last-Translator: Torsten Franz <Unknown>\n"
1313"Language-Team: German <de@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/el.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-12-04 09:38+0000\n"
1212"Last-Translator: Aggelos Arnaoutis <angelosarn@hotmail.com>\n"
1313"Language-Team: Greek <el@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/en_AU.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-12 07:17+0000\n"
1212"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
1313"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/en_GB.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-04-23 12:59+0000\n"
1212"Last-Translator: Andi Chandler <Unknown>\n"
1313"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/eo.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-06-06 23:37+0000\n"
1212"Last-Translator: Eliovir <Unknown>\n"
1313"Language-Team: Esperanto <eo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/es.po+6−6
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
11−"PO-Revision-Date: 2015-07-04 06:08+0000\n"
12−"Last-Translator: Paco Molinero <paco@byasl.com>\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
11+"PO-Revision-Date: 2016-01-15 14:48+0000\n"
12+"Last-Translator: Víctor R. Ruiz <Unknown>\n"
1313"Language-Team: Spanish <es@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -160,7 +160,7 @@ msgstr "Las aplicaciones podrían tener datos sin guardar."
160160#: qml/Components/ModeSwitchWarningDialog.qml:57
161161msgid "Re-dock, save your work and close these apps to continue."
162162msgstr ""
163−"Acople el dispositivo, guarde el trabajo y cierre estas aplicaciones para "
163+"Re-acople el dispositivo, guarde el trabajo y cierre estas aplicaciones para "
164164"continuar."
165165
166166#: qml/Components/ModeSwitchWarningDialog.qml:63
po/eu.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-13 23:29+0000\n"
1212"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
1313"Language-Team: Basque <eu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/fa.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-11 15:43+0000\n"
1212"Last-Translator: Danial Behzadi <dani.behzi@gmail.com>\n"
1313"Language-Team: Persian <fa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/fi.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-04 18:32+0000\n"
1212"Last-Translator: Jiri Grönroos <Unknown>\n"
1313"Language-Team: Finnish <fi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/fo.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-01-14 20:08+0000\n"
1212"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
1313"Language-Team: Faroese <fo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/fr.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-11-07 19:43+0000\n"
1212"Last-Translator: Jean-Marc <Unknown>\n"
1313"Language-Team: French <fr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ga.po+137−120
@@ -7,52 +7,53 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
11−"PO-Revision-Date: 2015-12-17 16:56+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
11+"PO-Revision-Date: 2016-01-25 11:33+0000\n"
1212"Last-Translator: Joshua Kiley <Unknown>\n"
1313"Language-Team: Irish <ga@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-26 05:33+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
23−msgstr "Focal Faire: "
23+msgstr "Pasfhocal "
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:47
2626#: plugins/Unity/Launcher/launcheritem.cpp:106
2727msgid "Pin shortcut"
28−msgstr ""
28+msgstr "Cruthaigh Aicearra Leis An Bharra"
2929
3030#: plugins/Unity/Launcher/launcheritem.cpp:52
3131msgid "Quit"
32−msgstr "Scoir"
32+msgstr "Éirigh as"
3333
3434#: plugins/Unity/Launcher/launcheritem.cpp:106
3535msgid "Unpin shortcut"
36−msgstr ""
36+msgstr "Bain Aicearra Den Bharra"
3737
3838#: qml/Components/DelayedLockscreen.qml:49
3939msgid "Device Locked"
40−msgstr ""
40+msgstr "Faoi Ghlas"
4141
4242#: qml/Components/DelayedLockscreen.qml:64
4343msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
44+msgstr "Tá tú dúnta amach ceal an iomarca drochiarrachtaí pasfhocail."
4545
4646#: qml/Components/DelayedLockscreen.qml:65
4747msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr ""
48+msgstr "Tá tú dúnta amach ceal an iomarca drochiarrachtaí cóid."
4949
5050#: qml/Components/DelayedLockscreen.qml:74
5151#, qt-format
5252msgid "Please wait %1 minute and then try again…"
5353msgid_plural "Please wait %1 minutes and then try again…"
54−msgstr[0] ""
55−msgstr[1] ""
54+msgstr[0] "Fan %1 nóiméad agus bain triail as arís, le do thoil."
55+msgstr[1] "Fan %1 nóiméad agus bain triail as arís, le do thoil."
56+msgstr[2] "Fan %1 nóiméad agus bain triail as arís, le do thoil."
5657
5758#: qml/Components/Dialogs.qml:144
5859msgctxt "Title: Lock/Log out dialog"
@@ -61,12 +62,12 @@ msgstr "Logáil Amach"
6162
6263#: qml/Components/Dialogs.qml:145
6364msgid "Are you sure you want to log out?"
64−msgstr ""
65+msgstr "An bhfuil tú cinnte gur mhaith leat lógáil amach?"
6566
6667#: qml/Components/Dialogs.qml:147
6768msgctxt "Button: Lock the system"
6869msgid "Lock"
69−msgstr "Glasáil"
70+msgstr "Cuir Faoi Ghlas"
7071
7172#: qml/Components/Dialogs.qml:154
7273msgctxt "Button: Log out from the system"
@@ -85,7 +86,7 @@ msgstr "Múch"
8586
8687#: qml/Components/Dialogs.qml:174
8788msgid "Are you sure you want to shut down?"
88−msgstr ""
89+msgstr "Cinnte gur mhaith leat an gléas a mhúchadh?"
8990
9091#: qml/Components/Dialogs.qml:176
9192msgctxt "Button: Reboot the system"
@@ -104,7 +105,7 @@ msgstr "Atosaigh"
104105
105106#: qml/Components/Dialogs.qml:208
106107msgid "Are you sure you want to reboot?"
107−msgstr ""
108+msgstr "Cinnte gur mhaith leat atosú?"
108109
109110#: qml/Components/Dialogs.qml:210
110111msgid "No"
@@ -112,18 +113,18 @@ msgstr "Níl"
112113
113114#: qml/Components/Dialogs.qml:217
114115msgid "Yes"
115−msgstr "Tá Go Maith"
116+msgstr "Tá"
116117
117118#: qml/Components/Dialogs.qml:232
118119msgctxt "Title: Power off/Restart dialog"
119120msgid "Power"
120−msgstr "Cumhacht"
121+msgstr "Múch an chumhacht"
121122
122123#: qml/Components/Dialogs.qml:233
123124msgid ""
124125"Are you sure you would like\n"
125126"to power off?"
126−msgstr ""
127+msgstr "Cinnte gur mhaith leat an chumhacht a mhúchadh?"
127128
128129#: qml/Components/Dialogs.qml:235
129130msgctxt "Button: Power off the system"
@@ -137,11 +138,11 @@ msgstr "Atosaigh"
137138
138139#: qml/Components/Lockscreen.qml:245
139140msgid "Return to Call"
140−msgstr ""
141+msgstr "Fill ar an Ghlaoch"
141142
142143#: qml/Components/Lockscreen.qml:245
143144msgid "Emergency Call"
144−msgstr ""
145+msgstr "Glaoch Éigeandála"
145146
146147#: qml/Components/Lockscreen.qml:277
147148msgid "OK"
@@ -149,11 +150,13 @@ msgstr "Tá Go Maith"
149150
150151#: qml/Components/ModeSwitchWarningDialog.qml:32
151152msgid "Apps may have unsaved data:"
152−msgstr ""
153+msgstr "Seans go mbeidh sonraí gan sábháil ag aipeanna:"
153154
154155#: qml/Components/ModeSwitchWarningDialog.qml:57
155156msgid "Re-dock, save your work and close these apps to continue."
156157msgstr ""
158+"Cuir sa leaba nasctha, sabhail do chuid oibre agus dún na haipeanna seo chun "
159+"leanúínt ar aghaidh."
157160
158161#: qml/Components/ModeSwitchWarningDialog.qml:63
159162msgid "Or force close now (unsaved data will be lost)."
@@ -161,11 +164,11 @@ msgstr ""
161164
162165#: qml/Components/ModeSwitchWarningDialog.qml:75
163166msgid "OK, I will reconnect"
164−msgstr ""
167+msgstr "Go maith, athcheanglóidh mé."
165168
166169#: qml/Components/ModeSwitchWarningDialog.qml:76
167170msgid "Reconnect now!"
168−msgstr ""
171+msgstr "Athnasc anois!"
169172
170173#: qml/Components/ModeSwitchWarningDialog.qml:88
171174msgid "Close all"
@@ -184,7 +187,7 @@ msgstr "Cuardach"
184187#: qml/Dash/DashPageHeader.qml:283
185188msgctxt "Button: Show the current dash scope settings"
186189msgid "Settings"
187−msgstr ""
190+msgstr "Socruithe"
188191
189192#: qml/Dash/DashPageHeader.qml:290
190193msgid "Remove from Favorites"
@@ -196,16 +199,16 @@ msgstr "Cuir le Ceanáin"
196199
197200#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
198201msgid "See less"
199−msgstr "Fheiceáil Níos Lú"
202+msgstr "Taispeáin níos lú"
200203
201204#: qml/Dash/GenericScopeView.qml:576
202205msgid "See all"
203−msgstr ""
206+msgstr "Taispeáin gach rud"
204207
205208#: qml/Dash/GenericScopeView.qml:638
206209msgctxt "Label: Hint for dash search line edit"
207210msgid "Search"
208−msgstr ""
211+msgstr "Cuardach"
209212
210213#: qml/Dash/Previews/PreviewActionCombo.qml:35
211214msgid "More..."
@@ -213,7 +216,7 @@ msgstr "Tuilleadh..."
213216
214217#: qml/Dash/Previews/PreviewActionCombo.qml:35
215218msgid "Less..."
216−msgstr ""
219+msgstr "Níos lú..."
217220
218221#: qml/Dash/Previews/PreviewCommentInput.qml:68
219222#: qml/Dash/Previews/PreviewRatingInput.qml:174
@@ -222,31 +225,31 @@ msgstr "Seol"
222225
223226#: qml/Dash/Previews/PreviewRatingInput.qml:84
224227msgid "Rate this"
225−msgstr ""
228+msgstr "Grádaigh é seo"
226229
227230#: qml/Dash/Previews/PreviewRatingInput.qml:129
228231msgid "Add a review"
229−msgstr ""
232+msgstr "Cuir léirmheas leis"
230233
231234#: qml/Dash/Previews/PreviewSharing.qml:50
232235msgid "Preview Share Item"
233−msgstr ""
236+msgstr "Réamhthaispeántas Rud Le Chéile"
234237
235238#: qml/Dash/PullToRefreshScopeStyle.qml:55
236239msgid "Pull to refresh…"
237−msgstr ""
240+msgstr "Tarraing le hathnuachan..."
238241
239242#: qml/Dash/PullToRefreshScopeStyle.qml:60
240243msgid "Release to refresh…"
241−msgstr ""
244+msgstr "Scaoil le hathnuachan..."
242245
243246#: qml/Dash/ScopeSettings/ScopeSettingBoolean.qml:43
244247msgid "Enable location data"
245−msgstr ""
248+msgstr "Ceadaigh logshonraí"
246249
247250#: qml/Dash/ScopesList.qml:67
248251msgid "Manage"
249−msgstr ""
252+msgstr "Bainistigh"
250253
251254#: qml/Dash/ScopesList.qml:113
252255msgid "Home"
@@ -258,115 +261,122 @@ msgstr ""
258261
259262#: qml/DisabledScreenNotice.qml:42
260263msgid "Your device is now connected to an external display."
261−msgstr ""
264+msgstr "Tá do uirlis ceangailte le taispeánt sheachtrach"
262265
263266#: qml/Greeter/CoverPage.qml:107
264267msgid "Unlock"
265−msgstr "Díghlasáil"
268+msgstr "Oscail"
266269
267270#: qml/Greeter/LoginList.qml:236
268271msgid "Retry"
269−msgstr ""
272+msgstr "Bain triail as arís"
270273
271274#: qml/Greeter/LoginList.qml:237
272275msgid "Tap to unlock"
273−msgstr ""
276+msgstr "Cnag le hoscail"
274277
275278#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
276279msgid "Sorry, incorrect passphrase."
277−msgstr ""
280+msgstr "Pasfhocal míchruinn"
278281
279282#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
280283msgid "Sorry, incorrect passcode."
281−msgstr ""
284+msgstr "Códfhocal míchruinn"
282285
283286#: qml/Greeter/NarrowView.qml:56
284287msgid "This will be your last attempt."
285−msgstr ""
288+msgstr "Iarracht dheireanach."
286289
287290#: qml/Greeter/NarrowView.qml:58
288291msgid ""
289292"If passphrase is entered incorrectly, your phone will conduct a factory "
290293"reset and all personal data will be deleted."
291294msgstr ""
295+"Más mbíonn pasfhocal mícheart agat arís, déanann do guthan monarchan "
296+"athshocrú agus beidh do shonraí pearsanta scriosadh."
292297
293298#: qml/Greeter/NarrowView.qml:59
294299msgid ""
295300"If passcode is entered incorrectly, your phone will conduct a factory reset "
296301"and all personal data will be deleted."
297302msgstr ""
303+"Más mbíonn paschód mícheart agat arís, déanann do guthan monarchan athshocrú "
304+"agus beidh do shonraí pearsanta scriosadh."
298305
299306#: qml/Greeter/NarrowView.qml:116
300307#, qt-format
301308msgid "Enter %1"
302−msgstr ""
309+msgstr "Cuir isteach %1"
303310
304311#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
305312msgid "Enter passphrase"
306−msgstr ""
313+msgstr "Cuir pasfhrása isteach"
307314
308315#: qml/Greeter/NarrowView.qml:118
309316msgid "Enter passcode"
310−msgstr ""
317+msgstr "Cuir paschód isteach"
311318
312319#: qml/Greeter/NarrowView.qml:119
313320#, qt-format
314321msgid "Sorry, incorrect %1"
315−msgstr ""
322+msgstr "Míchruinn, mo léan %1"
316323
317324#: qml/Greeter/NarrowView.qml:120
318325msgid "Sorry, incorrect passphrase"
319−msgstr ""
326+msgstr "Códfhrása míchruinn, mo léan."
320327
321328#: qml/Greeter/NarrowView.qml:121
322329msgctxt "passphrase"
323330msgid "Please re-enter"
324−msgstr ""
331+msgstr "Cuir isteach é arís, le do thoil"
325332
326333#: qml/Greeter/NarrowView.qml:122
327334msgid "Sorry, incorrect passcode"
328−msgstr ""
335+msgstr "Paschód míchruinn, mo léan"
329336
330337#: qml/Notifications/NotificationMenuItemFactory.qml:129
331338msgid "Show password"
332−msgstr ""
339+msgstr "Taispeáin pasfhocal"
333340
334341#: qml/Panel/ActiveCallHint.qml:79
335342msgid "Tap to return to call..."
336−msgstr ""
343+msgstr "Tapáil chun filleadh ar an nglaoch..."
337344
338345#: qml/Panel/ActiveCallHint.qml:92
339346msgid "Conference"
340−msgstr ""
347+msgstr "Glaoch comhdhála"
341348
342349#: qml/Panel/Indicators/MenuItemFactory.qml:753
343350msgid "Nothing is playing"
344−msgstr ""
351+msgstr "Tada á chasadh"
345352
346353#: qml/Panel/Indicators/MenuItemFactory.qml:882
347354#, qt-format
348355msgid "%1 hour"
349356msgid_plural "%1 hours"
350−msgstr[0] ""
351−msgstr[1] ""
357+msgstr[0] "%1 uair"
358+msgstr[1] "%1 uair"
359+msgstr[2] "%1 uair"
352360
353361#: qml/Panel/Indicators/MenuItemFactory.qml:886
354362#, qt-format
355363msgid "%1 minute"
356364msgid_plural "%1 minutes"
357−msgstr[0] ""
358−msgstr[1] ""
365+msgstr[0] "%1 nóiméad"
366+msgstr[1] "%1 nóiméad"
367+msgstr[2] "%1 nóiméad"
359368
360369#: qml/Panel/Indicators/MenuItemFactory.qml:891
361370#, qt-format
362371msgid "%1 second"
363372msgid_plural "%1 seconds"
364−msgstr[0] ""
365−msgstr[1] ""
373+msgstr[0] "%1 soicind"
374+msgstr[1] "%1 soicind"
375+msgstr[2] "%1 soicind"
366376
367377#: qml/Panel/Indicators/MenuItemFactory.qml:894
368378msgid "0 seconds"
369−msgstr ""
379+msgstr "%1 soicind"
370380
371381#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
372382#: qml/Panel/Indicators/MenuItemFactory.qml:896
@@ -376,206 +386,206 @@ msgstr ""
376386
377387#: qml/Panel/Indicators/MenuItemFactory.qml:902
378388msgid "In queue…"
379−msgstr ""
389+msgstr "Ag fanacht a scuaine..."
380390
381391#: qml/Panel/Indicators/MenuItemFactory.qml:906
382392msgid "Downloading"
383−msgstr ""
393+msgstr "Íoslódáil"
384394
385395#: qml/Panel/Indicators/MenuItemFactory.qml:908
386396msgid "Paused, tap to resume"
387−msgstr ""
397+msgstr "Sos, tapáill chun leanúint ar aghaidhdh"
388398
389399#: qml/Panel/Indicators/MenuItemFactory.qml:910
390400msgid "Canceled"
391−msgstr ""
401+msgstr "Curtha Ar Ceal"
392402
393403#: qml/Panel/Indicators/MenuItemFactory.qml:912
394404msgid "Finished"
395−msgstr ""
405+msgstr "Críochnaithe"
396406
397407#: qml/Panel/Indicators/MenuItemFactory.qml:914
398408msgid "Failed, tap to retry"
399−msgstr ""
409+msgstr "Tá teipthe ort, tapáil chun triail eile a bhaint as"
400410
401411#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
402412#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
403413msgctxt "Button: Send a reply message"
404414msgid "Send"
405−msgstr ""
415+msgstr "Seol"
406416
407417#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
408418msgctxt "Label: Hint in message indicator line edit"
409419msgid "Reply"
410−msgstr ""
420+msgstr "Freagra"
411421
412422#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
413423msgctxt "Button: Call back on phone"
414424msgid "Call back"
415−msgstr ""
425+msgstr "Glaoch Ar Ais"
416426
417427#: qml/Panel/Indicators/ModemInfoItem.qml:105
418428msgid "Unlock SIM"
419−msgstr ""
429+msgstr "Díghlasail an SIM"
420430
421431#: qml/Panel/Indicators/RoamingIndication.qml:27
422432msgid "Roaming"
423−msgstr ""
433+msgstr "Fánaíocht"
424434
425435#: qml/Tutorial/TutorialBottom.qml:28
426436msgid "Open special menus"
427−msgstr ""
437+msgstr "Oscail Roghchláir Speisialta"
428438
429439#: qml/Tutorial/TutorialBottom.qml:29
430440msgid "Swipe up from the bottom edge."
431−msgstr ""
441+msgstr "Cuimil anuas ón bhunlíne."
432442
433443#: qml/Tutorial/TutorialBottomFinish.qml:24
434444msgid "This action does different things for different apps"
435−msgstr ""
445+msgstr "Baineann feidhm ar leith leis seo i dtaca le haipeanna éagsúla"
436446
437447#: qml/Tutorial/TutorialBottomFinish.qml:25
438448msgid "Tap here to finish."
439−msgstr ""
449+msgstr "Tapáil anseo chun críochnú."
440450
441451#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
442452#: qml/Tutorial/TutorialRight.qml:144
443453msgid "Tap here to continue."
444−msgstr ""
454+msgstr "Tapáil anseo chun leanúint ar aghaidh."
445455
446456#: qml/Tutorial/TutorialLeft.qml:26
447457msgid "Open the launcher"
448−msgstr ""
458+msgstr "Oscail an lainseálaí"
449459
450460#: qml/Tutorial/TutorialLeft.qml:27
451461msgid "Short swipe from the left edge."
452−msgstr ""
462+msgstr "Cuimil ghearr ón taobh clé."
453463
454464#: qml/Tutorial/TutorialLeftFinish.qml:24
455465msgid "These are the shortcuts to favorite apps"
456−msgstr ""
466+msgstr "Is iad seo na haicearrái i gcomhair na n-aipeanna is fearr leat"
457467
458468#: qml/Tutorial/TutorialPage.qml:178
459469msgid "You almost got it!"
460−msgstr ""
470+msgstr "D'éirigh leat beagnach!"
461471
462472#: qml/Tutorial/TutorialPage.qml:195
463473msgid "Try again."
464−msgstr ""
474+msgstr "Bain triail as arís."
465475
466476#: qml/Tutorial/TutorialRight.qml:31
467477msgid "To view open apps"
468−msgstr ""
478+msgstr "Chun féachaint oscail aipeanna"
469479
470480#: qml/Tutorial/TutorialRight.qml:32
471481msgid "Long swipe from the right edge."
472−msgstr ""
482+msgstr "Cuimil fhada ó taobh clé."
473483
474484#: qml/Tutorial/TutorialRight.qml:122
475485msgid "View all your running tasks."
476−msgstr ""
486+msgstr "Féach ar do thascanna reatha."
477487
478488#: qml/Wizard/Page.qml:89
479489msgctxt "Button: Go back one page in the Wizard"
480490msgid "Back"
481−msgstr ""
491+msgstr "Ar ais"
482492
483493#: qml/Wizard/Pages/10-welcome.qml:27
484494msgid "Hi!"
485−msgstr ""
495+msgstr "Dia duit!"
486496
487497#: qml/Wizard/Pages/10-welcome.qml:44
488498msgid "Welcome to your Ubuntu phone."
489−msgstr ""
499+msgstr "Tá fáilte romhat chuig do fhón Ubuntu."
490500
491501#: qml/Wizard/Pages/10-welcome.qml:52
492502msgid "Let’s get started."
493−msgstr ""
503+msgstr "Tosaímis"
494504
495505#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
496506#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
497507#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
498508#: qml/Wizard/Pages/passwd-set.qml:90
499509msgid "Continue"
500−msgstr ""
510+msgstr "Ar aghaidh leat (go dtí an chéad lch eile)"
501511
502512#: qml/Wizard/Pages/20-sim.qml:25
503513msgid "Add a SIM card and restart your device"
504−msgstr ""
514+msgstr "Cuir cárta SIM isteach agus atosaigh an fearas"
505515
506516#: qml/Wizard/Pages/20-sim.qml:59
507517msgid "Without it, you won’t be able to make calls or use text messaging."
508−msgstr ""
518+msgstr "Gan é, ní bheifeá ábalta glaoch a dhéanamh nó téasc a sheoladh."
509519
510520#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
511521msgid "Skip"
512−msgstr ""
522+msgstr "Scipeáil"
513523
514524#: qml/Wizard/Pages/30-passwd-type.qml:39
515525msgid "Lock security"
516−msgstr ""
526+msgstr "Slándáil ghlasála"
517527
518528#: qml/Wizard/Pages/30-passwd-type.qml:79
519529msgid "Please select how you’d like to unlock your phone."
520−msgstr ""
530+msgstr "Roghnaigh conas ar mhaith leat do fhón a díghlasáil"
521531
522532#: qml/Wizard/Pages/30-passwd-type.qml:102
523533msgctxt "Label: Type of security method"
524534msgid "Swipe"
525−msgstr ""
535+msgstr "Cuimil"
526536
527537#: qml/Wizard/Pages/30-passwd-type.qml:103
528538msgctxt "Label: Description of security method"
529539msgid "No security"
530−msgstr ""
540+msgstr "Gan slándáil"
531541
532542#: qml/Wizard/Pages/30-passwd-type.qml:105
533543msgctxt "Label: Type of security method"
534544msgid "Passcode"
535−msgstr ""
545+msgstr "Paschód"
536546
537547#: qml/Wizard/Pages/30-passwd-type.qml:106
538548msgctxt "Label: Description of security method"
539549msgid "4 digits only"
540−msgstr ""
550+msgstr "Ceithre dhigit amháin"
541551
542552#: qml/Wizard/Pages/30-passwd-type.qml:108
543553msgctxt "Label: Type of security method"
544554msgid "Passphrase"
545−msgstr ""
555+msgstr "Pasfhrása"
546556
547557#: qml/Wizard/Pages/30-passwd-type.qml:109
548558msgctxt "Label: Description of security method"
549559msgid "Numbers and letters"
550−msgstr ""
560+msgstr "Litreacha agus uimhreacha"
551561
552562#: qml/Wizard/Pages/40-wifi.qml:29
553563msgid "Connect to Wi‑Fi"
554−msgstr ""
564+msgstr "Ceangail le Wi-Fi"
555565
556566#: qml/Wizard/Pages/40-wifi.qml:168
557567msgid "Available networks…"
558−msgstr ""
568+msgstr "Gréasáin ar fáil..."
559569
560570#: qml/Wizard/Pages/40-wifi.qml:169
561571msgid "No available networks."
562−msgstr ""
572+msgstr "Níl aon ghréasáin ar fáil."
563573
564574#: qml/Wizard/Pages/50-location.qml:27
565575msgid "Location"
566−msgstr ""
576+msgstr "Suíomh reatha"
567577
568578#: qml/Wizard/Pages/50-location.qml:62
569579msgid "Let the phone detect your location:"
570−msgstr ""
580+msgstr "Lig an fón do shuíomh reatha a aimsiú:"
571581
572582#: qml/Wizard/Pages/50-location.qml:69
573583msgid "Using GPS only (less accurate)"
574−msgstr ""
584+msgstr "Úsáid GPS amháín (easpa cruinnis)"
575585
576586#: qml/Wizard/Pages/50-location.qml:86
577587msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
578−msgstr ""
588+msgstr "Úsáid GPS, gan ainm WIFI agus líonra ceallach eolas (moltar)"
579589
580590#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
581591#: qml/Wizard/Pages/50-location.qml:103
@@ -583,67 +593,74 @@ msgid ""
583593"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
584594"conditions</a>."
585595msgstr ""
596+"Má ghlacann tú leis an rogha seo glacann tú leis na <a href='#'>téarmaí agus "
597+"coinníollacha</a> a bhaineann le Nokia HERE."
586598
587599#: qml/Wizard/Pages/50-location.qml:112
588600msgid "Not at all"
589−msgstr ""
601+msgstr "In aon chor"
590602
591603#: qml/Wizard/Pages/50-location.qml:124
592604msgid "You can change your mind later in <b>System Settings</b>."
593605msgstr ""
606+"Is féidir do chinneadh a athrú níos déanaí sna <b>Socruithe Córais</b>"
594607
595608#: qml/Wizard/Pages/60-reporting.qml:26
596609msgid "Improving your experience"
597−msgstr ""
610+msgstr "Ag cur le do thaitneamh agus leis an tairbhe"
598611
599612#: qml/Wizard/Pages/60-reporting.qml:46
600613msgid ""
601614"Your phone is set up to automatically report errors to Canonical and its "
602615"partners, the makers of the operating system."
603616msgstr ""
617+"Cuireann do fhón earráidí in iúl go huathoibríoch do Chanonical agus a "
618+"chomhpháirithe, lucht déanta an chórais oibre."
604619
605620#: qml/Wizard/Pages/60-reporting.qml:53
606621msgid ""
607622"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
608623"Privacy</b>"
609624msgstr ""
625+"Is féidir é seo a mhúchadh sna Socruithe Córais faoi Shlándáil agus "
626+"Príobháideachas"
610627
611628#: qml/Wizard/Pages/80-finished.qml:24
612629msgid "All done"
613−msgstr ""
630+msgstr "Déanta"
614631
615632#: qml/Wizard/Pages/80-finished.qml:39
616633msgid "Nice work!"
617−msgstr ""
634+msgstr "D'éirigh leat!"
618635
619636#: qml/Wizard/Pages/80-finished.qml:46
620637msgid "Your phone is now ready to use."
621−msgstr ""
638+msgstr "Tá do fhón reidh le húsáid anois."
622639
623640#: qml/Wizard/Pages/80-finished.qml:53
624641msgid "Finish"
625−msgstr ""
642+msgstr "Críoch"
626643
627644#: qml/Wizard/Pages/here-terms.qml:27
628645msgid "Terms & Conditions"
629−msgstr ""
646+msgstr "Téarmaí agus Coinníollacha"
630647
631648#: qml/Wizard/Pages/passwd-confirm.qml:49
632649msgid "Confirm passphrase"
633−msgstr ""
650+msgstr "Deimhnigh pasfhrása"
634651
635652#: qml/Wizard/Pages/passwd-confirm.qml:50
636653msgid "Confirm passcode"
637−msgstr ""
654+msgstr "Deimhnigh paschód"
638655
639656#: qml/Wizard/Pages/passwd-confirm.qml:53
640657#: qml/Wizard/Pages/passwd-confirm.qml:54
641658msgid "Please try again."
642−msgstr ""
659+msgstr "Bain trial as arís."
643660
644661#: qml/Wizard/Pages/passwd-set.qml:61
645662msgid "Choose your passcode"
646−msgstr ""
663+msgstr "Roghnaigh do phaschód"
647664
648665#: qml/Wizard/Pages/passwd-set.qml:68
649666msgid "Passphrase must be 4 characters long"
po/gd.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-16 10:56+0000\n"
1212"Last-Translator: GunChleoc <Unknown>\n"
1313"Language-Team: Fòram na Gàidhlig\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
1818"(n > 2 && n < 20) ? 2 : 3;\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121"Language: gd\n"
2222
2323#: plugins/IntegratedLightDM/Greeter.cpp:112
po/gl.po+5−5
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
11−"PO-Revision-Date: 2015-12-04 17:06+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
11+"PO-Revision-Date: 2016-01-15 14:56+0000\n"
1212"Last-Translator: Marcos Lans <Unknown>\n"
1313"Language-Team: Galician <gl@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -154,7 +154,7 @@ msgstr "Aplicativos que poden ter datos sen gardar:"
154154#: qml/Components/ModeSwitchWarningDialog.qml:57
155155msgid "Re-dock, save your work and close these apps to continue."
156156msgstr ""
157−"Para continuar acople o dispositivo, garde o traballo e peche estes "
157+"Para continuar conecte de novo o dispositivo, garde o traballo e peche estes "
158158"aplicativos."
159159
160160#: qml/Components/ModeSwitchWarningDialog.qml:63
po/gv.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-04-02 14:24+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Manx <gv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : (n == 2 ? 1 : 2);\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/he.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-12 08:47+0000\n"
1212"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
1313"Language-Team: Hebrew <he@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/hi.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-01-15 01:49+0000\n"
1212"Last-Translator: Siddhanathan Shanmugam <Unknown>\n"
1313"Language-Team: Hindi <hi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/hr.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2013-06-27 04:14+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Croatian <hr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/hu.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-12-30 09:49+0000\n"
1212"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
1313"Language-Team: Hungarian <hu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/hy.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-10-28 06:34+0000\n"
1212"Last-Translator: Vahan Harutyunyan <Unknown>\n"
1313"Language-Team: Armenian <hy@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ia.po+14−13
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-08-25 19:31+0000\n"
1212"Last-Translator: karm <melo@carmu.com>\n"
1313"Language-Team: Interlingua <ia@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -29,7 +29,7 @@ msgstr "Via-breve a pin"
2929
3030#: plugins/Unity/Launcher/launcheritem.cpp:52
3131msgid "Quit"
32−msgstr ""
32+msgstr "Quitar"
3333
3434#: plugins/Unity/Launcher/launcheritem.cpp:106
3535msgid "Unpin shortcut"
@@ -153,27 +153,28 @@ msgstr "OK"
153153
154154#: qml/Components/ModeSwitchWarningDialog.qml:32
155155msgid "Apps may have unsaved data:"
156−msgstr ""
156+msgstr "Le applicationes pote haber datos non salvate:"
157157
158158#: qml/Components/ModeSwitchWarningDialog.qml:57
159159msgid "Re-dock, save your work and close these apps to continue."
160160msgstr ""
161+"Re-connecte, salva tu labor e claude iste applicationes pro continuar."
161162
162163#: qml/Components/ModeSwitchWarningDialog.qml:63
163164msgid "Or force close now (unsaved data will be lost)."
164−msgstr ""
165+msgstr "O fortia clauder nunc (le datos non salveguardate essera perdite)."
165166
166167#: qml/Components/ModeSwitchWarningDialog.qml:75
167168msgid "OK, I will reconnect"
168−msgstr ""
169+msgstr "OK, io va reconnecter"
169170
170171#: qml/Components/ModeSwitchWarningDialog.qml:76
171172msgid "Reconnect now!"
172−msgstr ""
173+msgstr "Reconnecter nunc!"
173174
174175#: qml/Components/ModeSwitchWarningDialog.qml:88
175176msgid "Close all"
176−msgstr ""
177+msgstr "Clauder toto"
177178
178179#: qml/Dash/DashPageHeader.qml:266
179180msgctxt "Button: Open the Ubuntu Store"
@@ -234,7 +235,7 @@ msgstr "Adder un revision"
234235
235236#: qml/Dash/Previews/PreviewSharing.qml:50
236237msgid "Preview Share Item"
237−msgstr ""
238+msgstr "Elemento compartite de vista preliminar"
238239
239240#: qml/Dash/PullToRefreshScopeStyle.qml:55
240241msgid "Pull to refresh…"
@@ -262,7 +263,7 @@ msgstr "Ja installate"
262263
263264#: qml/DisabledScreenNotice.qml:42
264265msgid "Your device is now connected to an external display."
265−msgstr ""
266+msgstr "Tu dispositivo es nunc connexe a un schermo externe"
266267
267268#: qml/Greeter/CoverPage.qml:107
268269msgid "Unlock"
@@ -410,7 +411,7 @@ msgstr "Fallite, colpar pro re-provar"
410411#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
411412msgctxt "Button: Send a reply message"
412413msgid "Send"
413−msgstr ""
414+msgstr "Inviar"
414415
415416#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
416417msgctxt "Label: Hint in message indicator line edit"
@@ -420,7 +421,7 @@ msgstr "Responde"
420421#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
421422msgctxt "Button: Call back on phone"
422423msgid "Call back"
423−msgstr ""
424+msgstr "Appellar retro"
424425
425426#: qml/Panel/Indicators/ModemInfoItem.qml:105
426427msgid "Unlock SIM"
po/id.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2013-06-26 22:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Indonesian <id@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/is.po+3−3
@@ -9,7 +9,7 @@ msgid ""
99msgstr ""
1010"Project-Id-Version: po_unity8-is\n"
1111"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
12−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
12+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1313"PO-Revision-Date: 2014-11-13 09:32+0000\n"
1414"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
1515"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
@@ -17,8 +17,8 @@ msgstr ""
1717"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
1919"Plural-Forms: nplurals=2; plural=n != 1;\n"
20−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
21−"X-Generator: Launchpad (build 17886)\n"
20+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
21+"X-Generator: Launchpad (build 17902)\n"
2222"Language: is\n"
2323
2424#: plugins/IntegratedLightDM/Greeter.cpp:112
po/it.po+14−12
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-09-18 08:24+0000\n"
1212"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
1313"Language-Team: Italian <it@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -155,27 +155,29 @@ msgstr "OK"
155155
156156#: qml/Components/ModeSwitchWarningDialog.qml:32
157157msgid "Apps may have unsaved data:"
158−msgstr ""
158+msgstr "Le app potrebbero contenere dati non salvati:"
159159
160160#: qml/Components/ModeSwitchWarningDialog.qml:57
161161msgid "Re-dock, save your work and close these apps to continue."
162162msgstr ""
163+"Collegare nuovamente il dispositivo, salvare il lavoro e chiudere queste app "
164+"per continuare."
163165
164166#: qml/Components/ModeSwitchWarningDialog.qml:63
165167msgid "Or force close now (unsaved data will be lost)."
166−msgstr ""
168+msgstr "Oppure forzare la chiusura ora (i dati non salvati verranno persi)."
167169
168170#: qml/Components/ModeSwitchWarningDialog.qml:75
169171msgid "OK, I will reconnect"
170−msgstr ""
172+msgstr "Ok, collegherò il dispositivo"
171173
172174#: qml/Components/ModeSwitchWarningDialog.qml:76
173175msgid "Reconnect now!"
174−msgstr ""
176+msgstr "Collegare ora."
175177
176178#: qml/Components/ModeSwitchWarningDialog.qml:88
177179msgid "Close all"
178−msgstr ""
180+msgstr "Chiudi tutto"
179181
180182#: qml/Dash/DashPageHeader.qml:266
181183msgctxt "Button: Open the Ubuntu Store"
@@ -236,7 +238,7 @@ msgstr "Aggiungi una recensione"
236238
237239#: qml/Dash/Previews/PreviewSharing.qml:50
238240msgid "Preview Share Item"
239−msgstr ""
241+msgstr "Anteprima elementi da condividere"
240242
241243#: qml/Dash/PullToRefreshScopeStyle.qml:55
242244msgid "Pull to refresh…"
@@ -264,7 +266,7 @@ msgstr "Installato anche"
264266
265267#: qml/DisabledScreenNotice.qml:42
266268msgid "Your device is now connected to an external display."
267−msgstr ""
269+msgstr "Il dispositivo è ora collegato a un monitor esterno."
268270
269271#: qml/Greeter/CoverPage.qml:107
270272msgid "Unlock"
@@ -412,7 +414,7 @@ msgstr "Non riuscito. Tocca per riprovare"
412414#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
413415msgctxt "Button: Send a reply message"
414416msgid "Send"
415−msgstr ""
417+msgstr "Invia"
416418
417419#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
418420msgctxt "Label: Hint in message indicator line edit"
@@ -422,7 +424,7 @@ msgstr "Rispondi"
422424#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
423425msgctxt "Button: Call back on phone"
424426msgid "Call back"
425−msgstr ""
427+msgstr "Richiama"
426428
427429#: qml/Panel/Indicators/ModemInfoItem.qml:105
428430msgid "Unlock SIM"
po/ja.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-10-05 10:05+0000\n"
1212"Last-Translator: Kentaro Kazuhama <Unknown>\n"
1313"Language-Team: Japanese <ja@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -29,7 +29,7 @@ msgstr "ショートカットを追加する"
2929
3030#: plugins/Unity/Launcher/launcheritem.cpp:52
3131msgid "Quit"
32−msgstr ""
32+msgstr "終了"
3333
3434#: plugins/Unity/Launcher/launcheritem.cpp:106
3535msgid "Unpin shortcut"
@@ -56,7 +56,7 @@ msgstr[0] "%1 分待ってからやり直してください…"
5656#: qml/Components/Dialogs.qml:144
5757msgctxt "Title: Lock/Log out dialog"
5858msgid "Log out"
59−msgstr ""
59+msgstr "ログアウト"
6060
6161#: qml/Components/Dialogs.qml:145
6262msgid "Are you sure you want to log out?"
@@ -65,12 +65,12 @@ msgstr "本当にログアウトしますか?"
6565#: qml/Components/Dialogs.qml:147
6666msgctxt "Button: Lock the system"
6767msgid "Lock"
68−msgstr ""
68+msgstr "ロック"
6969
7070#: qml/Components/Dialogs.qml:154
7171msgctxt "Button: Log out from the system"
7272msgid "Log Out"
73−msgstr ""
73+msgstr "ログアウト"
7474
7575#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
7676#: qml/Components/Dialogs.qml:253
@@ -80,7 +80,7 @@ msgstr "キャンセル"
8080#: qml/Components/Dialogs.qml:173
8181msgctxt "Title: Reboot/Shut down dialog"
8282msgid "Shut down"
83−msgstr ""
83+msgstr "シャットダウン"
8484
8585#: qml/Components/Dialogs.qml:174
8686msgid "Are you sure you want to shut down?"
@@ -89,17 +89,17 @@ msgstr "本当にシャットダウンしますか?"
8989#: qml/Components/Dialogs.qml:176
9090msgctxt "Button: Reboot the system"
9191msgid "Reboot"
92−msgstr ""
92+msgstr "再起動"
9393
9494#: qml/Components/Dialogs.qml:185
9595msgctxt "Button: Shut down the system"
9696msgid "Shut down"
97−msgstr ""
97+msgstr "シャットダウン"
9898
9999#: qml/Components/Dialogs.qml:207
100100msgctxt "Title: Reboot dialog"
101101msgid "Reboot"
102−msgstr ""
102+msgstr "再起動"
103103
104104#: qml/Components/Dialogs.qml:208
105105msgid "Are you sure you want to reboot?"
po/km.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-08-20 02:48+0000\n"
1212"Last-Translator: Sophea Sok <sksophea@gmail.com>\n"
1313"Language-Team: Khmer <km@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/kn.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2013-06-27 05:43+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kannada <kn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ko.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-08-19 13:02+0000\n"
1212"Last-Translator: MinSik CHO <Unknown>\n"
1313"Language-Team: Korean <ko@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ku.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-09-10 13:14+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Kurdish <ku@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ky.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2013-06-27 06:17+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kirghiz <ky@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/lo.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2013-10-02 10:00+0000\n"
1212"Last-Translator: Anousak <anousak@gmail.com>\n"
1313"Language-Team: Lao <lo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/lt.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-05-19 17:15+0000\n"
1212"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
1313"Language-Team: Lithuanian <lt@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"(n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/lv.po+3−3
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
11+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1212"PO-Revision-Date: 2015-11-22 19:13+0000\n"
1313"Last-Translator: Klavs Anson <anson.klavs@gmail.com>\n"
1414"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121"Language: lv\n"
2222
2323#: plugins/IntegratedLightDM/Greeter.cpp:112
po/ml.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2013-11-23 11:44+0000\n"
1212"Last-Translator: ST Alfas <Unknown>\n"
1313"Language-Team: Malayalam <ml@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/mr.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-01-14 19:54+0000\n"
1212"Last-Translator: Rohan Deshmukh <Unknown>\n"
1313"Language-Team: Marathi <mr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ms.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-01-17 09:05+0000\n"
1212"Last-Translator: abuyop <Unknown>\n"
1313"Language-Team: Malay <ms@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/my.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2013-12-12 11:12+0000\n"
1212"Last-Translator: Pyae Sone <Unknown>\n"
1313"Language-Team: Burmese <my@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/nb.po+16−14
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-05 19:44+0000\n"
1212"Last-Translator: Mathias Bynke <Unknown>\n"
1313"Language-Team: Norwegian Bokmal <nb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -29,7 +29,7 @@ msgstr "Fest snarvei"
2929
3030#: plugins/Unity/Launcher/launcheritem.cpp:52
3131msgid "Quit"
32−msgstr ""
32+msgstr "Avslutt"
3333
3434#: plugins/Unity/Launcher/launcheritem.cpp:106
3535msgid "Unpin shortcut"
@@ -153,27 +153,29 @@ msgstr "OK"
153153
154154#: qml/Components/ModeSwitchWarningDialog.qml:32
155155msgid "Apps may have unsaved data:"
156−msgstr ""
156+msgstr "Programmer kan ha ulagrede data:"
157157
158158#: qml/Components/ModeSwitchWarningDialog.qml:57
159159msgid "Re-dock, save your work and close these apps to continue."
160160msgstr ""
161+"Koble enheten til en stasjon, lagre arbeidet ditt og lukk disse programmene "
162+"for å fortsette."
161163
162164#: qml/Components/ModeSwitchWarningDialog.qml:63
163165msgid "Or force close now (unsaved data will be lost)."
164−msgstr ""
166+msgstr "Eller tving avslutning nå (ulagrede data går tapt)."
165167
166168#: qml/Components/ModeSwitchWarningDialog.qml:75
167169msgid "OK, I will reconnect"
168−msgstr ""
170+msgstr "OK, jeg skal koble til"
169171
170172#: qml/Components/ModeSwitchWarningDialog.qml:76
171173msgid "Reconnect now!"
172−msgstr ""
174+msgstr "Koble til nå!"
173175
174176#: qml/Components/ModeSwitchWarningDialog.qml:88
175177msgid "Close all"
176−msgstr ""
178+msgstr "Lukk alle"
177179
178180#: qml/Dash/DashPageHeader.qml:266
179181msgctxt "Button: Open the Ubuntu Store"
@@ -234,7 +236,7 @@ msgstr "Skriv en anmeldelse"
234236
235237#: qml/Dash/Previews/PreviewSharing.qml:50
236238msgid "Preview Share Item"
237−msgstr ""
239+msgstr "Forhåndsvis delingselement"
238240
239241#: qml/Dash/PullToRefreshScopeStyle.qml:55
240242msgid "Pull to refresh…"
@@ -262,7 +264,7 @@ msgstr "Også installert"
262264
263265#: qml/DisabledScreenNotice.qml:42
264266msgid "Your device is now connected to an external display."
265−msgstr ""
267+msgstr "Enheten er nå koblet til en ekstern skjerm."
266268
267269#: qml/Greeter/CoverPage.qml:107
268270msgid "Unlock"
@@ -329,7 +331,7 @@ msgstr "Feil passordfrase"
329331#: qml/Greeter/NarrowView.qml:121
330332msgctxt "passphrase"
331333msgid "Please re-enter"
332−msgstr ""
334+msgstr "Skriv inn på nytt"
333335
334336#: qml/Greeter/NarrowView.qml:122
335337msgid "Sorry, incorrect passcode"
@@ -410,7 +412,7 @@ msgstr "Feilet. Trykk for å prøve på nytt"
410412#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
411413msgctxt "Button: Send a reply message"
412414msgid "Send"
413−msgstr ""
415+msgstr "Send"
414416
415417#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
416418msgctxt "Label: Hint in message indicator line edit"
@@ -420,7 +422,7 @@ msgstr "Svar"
420422#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
421423msgctxt "Button: Call back on phone"
422424msgid "Call back"
423−msgstr ""
425+msgstr "Ring tilbake"
424426
425427#: qml/Panel/Indicators/ModemInfoItem.qml:105
426428msgid "Unlock SIM"
po/ne.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-12-06 15:11+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Nepali <ne@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/nl.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-07 07:14+0000\n"
1212"Last-Translator: Hannie Dumoleyn <Unknown>\n"
1313"Language-Team: Dutch <nl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/nn.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-05-12 11:32+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Norwegian Nynorsk <nn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/oc.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-02-05 20:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Occitan (post 1500) <oc@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/or.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-03-21 05:28+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Oriya <or@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n!=1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/pa.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-04-24 04:29+0000\n"
1212"Last-Translator: Gursharnjit_Singh <ubuntuser13@gmail.com>\n"
1313"Language-Team: Punjabi <pa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/pl.po+5−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-12 09:46+0000\n"
1212"Last-Translator: Seweryn Opyd <Unknown>\n"
1313"Language-Team: Polish <pl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
1818"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -156,6 +156,8 @@ msgstr "Programy mogące mieć niezapisane dane:"
156156#: qml/Components/ModeSwitchWarningDialog.qml:57
157157msgid "Re-dock, save your work and close these apps to continue."
158158msgstr ""
159+"Aby kontynuować, dodaj ponownie do doku, zapisz swoją pracę i zamknij te "
160+"programy."
159161
160162#: qml/Components/ModeSwitchWarningDialog.qml:63
161163msgid "Or force close now (unsaved data will be lost)."
po/pt.po+4−4
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-12-20 09:20+0000\n"
1212"Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n"
1313"Language-Team: Portuguese <pt@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -175,7 +175,7 @@ msgstr "Volte a ligar agora!"
175175
176176#: qml/Components/ModeSwitchWarningDialog.qml:88
177177msgid "Close all"
178−msgstr ""
178+msgstr "Fechar tudo"
179179
180180#: qml/Dash/DashPageHeader.qml:266
181181msgctxt "Button: Open the Ubuntu Store"
po/pt_BR.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-08-05 04:40+0000\n"
1212"Last-Translator: Julio Alexander Sieg <julio.sieg@gmail.com>\n"
1313"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ro.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-06 17:47+0000\n"
1212"Last-Translator: Meriuță Cornel <meriutacornel@neacornel.eu>\n"
1313"Language-Team: Romanian <ro@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
1818"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/ru.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-06 05:33+0000\n"
1212"Last-Translator: ☠Jay ZDLin☠ <Unknown>\n"
1313"Language-Team: Russian <ru@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/shn.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-11-10 12:09+0000\n"
1212"Last-Translator: Rockworld <sumoisrock@gmail.com>\n"
1313"Language-Team: Shan <shn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/si.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2013-06-26 22:36+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Sinhalese <si@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/sk.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-04-10 09:15+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Slovak <sk@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/sl.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-06 21:10+0000\n"
1212"Last-Translator: Sasa Batistic <Unknown>\n"
1313"Language-Team: Slovenian <sl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
1818"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/sq.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-11-30 21:05+0000\n"
1212"Last-Translator: Indrit Bashkimi <indrit.bashkimi@gmail.com>\n"
1313"Language-Team: Albanian <sq@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/sr.po+3−3
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
11+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1212"PO-Revision-Date: 2015-12-09 20:16+0000\n"
1313"Last-Translator: Bojan Bogdanović <Unknown>\n"
1414"Language-Team: српски <xfce4@xfce4.org>\n"
@@ -17,8 +17,8 @@ msgstr ""
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1919"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
20−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
21−"X-Generator: Launchpad (build 17886)\n"
20+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
21+"X-Generator: Launchpad (build 17902)\n"
2222"Language: sr\n"
2323
2424#: plugins/IntegratedLightDM/Greeter.cpp:112
po/sv.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-12 22:17+0000\n"
1212"Last-Translator: Josef Andersson <Unknown>\n"
1313"Language-Team: Swedish\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020"Language: sv\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
po/sw.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-17 20:02+0000\n"
1212"Last-Translator: Valentine <mwangi_valentino@yahoo.com>\n"
1313"Language-Team: Swahili <sw@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ta.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2013-10-24 11:36+0000\n"
1212"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
1313"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020"Language: ta\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
po/te.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-07-19 10:04+0000\n"
1212"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
1313"Language-Team: Telugu <te@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/th.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-10-02 04:55+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Thai <th@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/tr.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-03-22 15:56+0000\n"
1212"Last-Translator: Arda Ünlü <aarda.uunlu@gmail.com>\n"
1313"Language-Team: Turkish <tr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/ug.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-12-01 07:37+0000\n"
1212"Last-Translator: Eltikin <eltikinuyghur@hotmail.com>\n"
1313"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/uk.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-04 05:53+0000\n"
1212"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
1313"Language-Team: Ukrainian <uk@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
20+"X-Generator: Launchpad (build 17902)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/unity8.pot+1−1
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
11+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414"Language-Team: LANGUAGE <LL@li.org>\n"
po/ur.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-05-05 03:12+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Urdu <ur@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/uz.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-04 16:03+0000\n"
1212"Last-Translator: Learner <muzaffar.habibullayev@yandex.ru>\n"
1313"Language-Team: Uzbek <uz@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/vi.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-01-15 01:19+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Vietnamese <vi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:31+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/wo.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-10-29 11:16+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Wolof <wo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/xh.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2013-09-28 13:20+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Xhosa <xh@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/zh_CN.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-27 10:26+0000\n"
1212"Last-Translator: Ian Li <Unknown>\n"
1313"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/zh_HK.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2014-08-10 11:45+0000\n"
1212"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
1313"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
po/zh_TW.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-22 17:08+0000\n"
1111"PO-Revision-Date: 2015-07-31 09:29+0000\n"
1212"Last-Translator: Po-Hsu Lin <po-hsu.lin@canonical.com>\n"
1313"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-01-24 05:32+0000\n"
19+"X-Generator: Launchpad (build 17902)\n"
2020"Language: zh_TW\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
qml/Components/InputMethod.qml+1−1
@@ -59,7 +59,7 @@ Item {
5959 }
6060
6161 state: {
62− if (surfaceItem.surface && surfaceItem.surfaceState != Mir.MinimizedState) {
62+ if (surfaceItem.surface && surfaceItem.surfaceState != Mir.MinimizedState && root.enabled) {
6363 return "shown";
6464 } else {
6565 return "hidden";
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/DisabledScreenNotice.qml+72−19
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -15,35 +15,88 @@
1515 */
1616
1717import QtQuick 2.4
18+import QtQuick.Layouts 1.1
1819import Ubuntu.Components 1.3
20+import QtQuick.Window 2.2
1921import "Components"
2022
21−Image {
23+Item {
2224 id: root
2325
26+ property bool infoNoteDisplayed: true
27+
2428 WallpaperResolver {
2529 width: root.width
2630 id: wallpaperResolver
2731 }
2832
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
3038
31− UbuntuShape {
32− anchors.fill: text
33− anchors.margins: -units.gu(2)
34− backgroundColor: "black"
35− opacity: 0.4
36− }
39+ rotation: {
40+ switch (Screen.orientation) {
41+ case Qt.PortraitOrientation:
42+ return 0;
43+ case Qt.LandscapeOrientation:
44+ return 270;
45+ case Qt.InvertedPortraitOrientation:
46+ return 180;
47+ case Qt.InvertedLandscapeOrientation:
48+ return 90;
49+ }
50+ }
51+ transformOrigin: Item.Center
3752
38− Label {
39− id: text
40− anchors.centerIn: parent
41− width: parent.width / 2
42− text: i18n.tr("Your device is now connected to an external display.")
43− color: "white"
44− horizontalAlignment: Text.AlignHCenter
45− verticalAlignment: Text.AlignVCenter
46− fontSize: "x-large"
47− wrapMode: Text.Wrap
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+
83+ Label {
84+ id: text
85+ anchors.centerIn: parent
86+ width: parent.width - units.gu(8)
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.")
88+ color: "white"
89+ horizontalAlignment: Text.AlignHCenter
90+ verticalAlignment: Text.AlignVCenter
91+ fontSize: "x-large"
92+ wrapMode: Text.Wrap
93+ }
94+ }
95+
96+ InputMethod {
97+ id: inputMethod
98+ objectName: "inputMethod"
99+ anchors.fill: parent
100+ }
48101 }
49102}
qml/OrientedShell.qml+28−14
@@ -18,6 +18,7 @@ import QtQuick 2.4
1818import QtQuick.Window 2.2
1919import Unity.InputInfo 0.1
2020import Unity.Session 0.1
21+import Unity.Screens 0.1
2122import GSettings 1.0
2223import "Components"
2324import "Rotation"
@@ -78,6 +79,15 @@ Rectangle {
7879 deviceFilter: InputInfo.Keyboard
7980 }
8081
82+ InputDeviceModel {
83+ id: touchScreensModel
84+ deviceFilter: InputInfo.TouchScreen
85+ }
86+
87+ Screens {
88+ id: screens
89+ }
90+
8191 property int orientation
8292 onPhysicalOrientationChanged: {
8393 if (!orientationLocked) {
@@ -97,8 +107,7 @@ Rectangle {
97107 }
98108 // We need to manually update this on startup as the binding
99109 // 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"
102111 }
103112
104113 // we must rotate to a supported orientation regardless of shell's preference
@@ -106,17 +115,10 @@ Rectangle {
106115 (shell.orientation & supportedOrientations) === 0 ? true
107116 : shell.orientationChangesEnabled
108117
109−
110− Binding {
111− target: oskSettings
112− property: "stayHidden"
113− value: keyboardsModel.count > 0
114− }
115−
116118 Binding {
117119 target: oskSettings
118120 property: "disableHeight"
119− value: shell.usageScenario == "desktop"
121+ value: !shell.oskEnabled || shell.usageScenario == "desktop"
120122 }
121123
122124 readonly property int supportedOrientations: shell.supportedOrientations
@@ -189,6 +191,11 @@ Rectangle {
189191 nativeHeight: root.height
190192 mode: applicationArguments.mode
191193 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
192199
193200 // TODO: Factor in the connected input devices (eg: physical keyboard, mouse, touchscreen),
194201 // what's the output device (eg: big TV, desktop monitor, phone display), etc.
@@ -202,11 +209,18 @@ Rectangle {
202209 return "tablet";
203210 }
204211 } else { // automatic
205− if (miceModel.count + touchPadModel.count > 0) {
206− return "desktop";
207− } else {
208− return deviceConfiguration.category;
212+ var longEdgeWidth = Math.max(root.width, root.height)
213+ if (longEdgeWidth > units.gu(120)) {
214+ if (keyboardsModel.count + miceModel.count + touchPadModel.count > 0) {
215+ return "desktop";
216+ }
217+ } else if (longEdgeWidth > units.gu(90)){
218+ if (miceModel.count + touchPadModel.count > 0) {
219+ return "desktop";
220+ }
209221 }
222+
223+ return deviceConfiguration.category;
210224 }
211225 }
212226
qml/Shell.qml+4−3
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013-2015 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -56,6 +56,7 @@ Item {
5656 property bool beingResized
5757 property string usageScenario: "phone" // supported values: "phone", "tablet" or "desktop"
5858 property string mode: "full-greeter"
59+ property alias oskEnabled: inputMethod.enabled
5960 function updateFocusedAppOrientation() {
6061 applicationsDisplayLoader.item.updateFocusedAppOrientation();
6162 }
@@ -83,8 +84,8 @@ Item {
8384 return Qt.PrimaryOrientation;
8485 } else if (greeter && greeter.shown) {
8586 return Qt.PrimaryOrientation;
86− } else if (mainApp) {
87− return shell.orientations.map(mainApp.supportedOrientations);
87+ } else if (applicationsDisplayLoader.item) {
88+ return shell.orientations.map(applicationsDisplayLoader.item.supportedOrientations);
8889 } else {
8990 // we just don't care
9091 return Qt.PortraitOrientation
qml/Stages/AbstractStage.qml+5−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -44,6 +44,10 @@ Rectangle {
4444 property var mainApp: null
4545 property int mainAppWindowOrientationAngle
4646 property bool orientationChangesEnabled
47+ property int supportedOrientations: Qt.PortraitOrientation
48+ | Qt.LandscapeOrientation
49+ | Qt.InvertedPortraitOrientation
50+ | Qt.InvertedLandscapeOrientation
4751
4852 // Shared code for use in stage implementations
4953 GSettings {
qml/Stages/DesktopStage.qml+6−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014-2015 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -40,6 +40,11 @@ AbstractStage {
4040 ? ApplicationManager.findApplication(ApplicationManager.focusedApplicationId)
4141 : null
4242
43+ // application windows never rotate independently
44+ mainAppWindowOrientationAngle: shellOrientationAngle
45+
46+ orientationChangesEnabled: true
47+
4348 Connections {
4449 target: ApplicationManager
4550 onApplicationAdded: {
qml/Stages/PhoneStage.qml+5−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014-2015 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -83,6 +83,10 @@ AbstractStage {
8383 && !(priv.focusedAppDelegate && priv.focusedAppDelegate.xBehavior.running)
8484 && spreadView.phase === 0
8585
86+ supportedOrientations: mainApp ? mainApp.supportedOrientations
87+ : (Qt.PortraitOrientation | Qt.LandscapeOrientation
88+ | Qt.InvertedPortraitOrientation | Qt.InvertedLandscapeOrientation)
89+
8690 // How far left the stage has been dragged
8791 readonly property real dragProgress: spreadRepeater.count > 0 ? -spreadRepeater.itemAt(0).xTranslate : 0
8892
qml/Stages/TabletStage.qml+5−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014-2015 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -72,6 +72,10 @@ AbstractStage {
7272
7373 orientationChangesEnabled: priv.mainAppOrientationChangesEnabled
7474
75+ supportedOrientations: mainApp ? mainApp.supportedOrientations
76+ : (Qt.PortraitOrientation | Qt.LandscapeOrientation
77+ | Qt.InvertedPortraitOrientation | Qt.InvertedLandscapeOrientation)
78+
7579 onWidthChanged: {
7680 spreadView.selectedIndex = -1;
7781 spreadView.phase = 0;
tests/mocks/CMakeLists.txt+1
@@ -43,6 +43,7 @@ add_subdirectory(Unity)
4343add_subdirectory(QtMultimedia)
4444add_subdirectory(Wizard)
4545add_subdirectory(Utils)
46+add_subdirectory(UInput)
4647
4748install(
4849 DIRECTORY data
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/CMakeLists.txt+1
@@ -5,6 +5,7 @@ add_subdirectory(InputInfo)
55add_subdirectory(Launcher)
66add_subdirectory(Notifications)
77add_subdirectory(DashCommunicator)
8+add_subdirectory(Screens)
89
910pkg_search_module(GOBJECT gobject-2.0 REQUIRED)
1011pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=9)
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/plugins/Dash/cardcreator/10.tstnew file+2
@@ -0,0 +1,2 @@
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 ? \"" ] } }
2+components: {"art":{"aspect-ratio":1},"background":{"field":"background"},"mascot":{"field":"icon"},"subtitle":{"field":"author"},"title":{"field":"title"},"attributes":{}}
tests/plugins/Dash/cardcreator/3.res+1
@@ -86,6 +86,7 @@ Item {
8686 asynchronous: root.asynchronous;
8787 width: root.width;
8888 height: width / artShape.aspect;
89+ onStatusChanged: if (status === Image.Error) source = "IHAVE\"ESCAPED\"QUOTES\"";
8990 }
9091 }
9192 }
tests/plugins/Dash/cardcreator/3.tst+1−1
@@ -1,3 +1,3 @@
11template: {"card-layout":"vertical","card-size":"small","category-layout":"grid","collapsed-rows":2}
2−components: {"art":{"aspect-ratio":0.75,"field":"art"},"subtitle":{"field":"price"},"title":{"field":"title"},"attributes":{}}
2+components: {"art":{"aspect-ratio":0.75,"field":"art","fallback":"IHAVE\\\"ESCAPED\\\"QUOTES\\\""},"subtitle":{"field":"price"},"title":{"field":"title"},"attributes":{}}
33result: 3.res
tests/plugins/Dash/cardcreatortest.cpp+23−21
@@ -63,7 +63,7 @@ private Q_SLOTS:
6363
6464 QVERIFY(lines[0].startsWith(templateString));
6565 QVERIFY(lines[1].startsWith(componentsString));
66− QVERIFY(lines[2].startsWith(resultString));
66+
6767 const QString templateJSON = lines[0].mid(templateString.length());
6868 const QString componentsJSON = lines[1].mid(componentsString.length());
6969 const QString resultFileName = lines[2].mid(resultString.length());
@@ -71,30 +71,32 @@ private Q_SLOTS:
7171 QVariant cardStringResult;
7272 QMetaObject::invokeMethod(view->rootObject(), "cardString", Q_RETURN_ARG(QVariant, cardStringResult), Q_ARG(QVariant, templateJSON), Q_ARG(QVariant, componentsJSON));
7373
74− QFile testResultFile(testDirPath + resultFileName);
75− QVERIFY(testResultFile.open(QIODevice::ReadOnly));
76− QTextStream ts2(&testResultFile);
77−
78− // Record failed results to /tmp
79− const QString executedResult = cardStringResult.toString();
80− QTemporaryFile tmpFile(QDir::tempPath() + QDir::separator() + "testCardCreatorFailedResultXXXXXX");
81− tmpFile.open();
82− tmpFile.setAutoRemove(false);
83− tmpFile.write(executedResult.toUtf8().constData());
84−
85− // Line by line comparison
86− const QStringList expectedLines = ts2.readAll().trimmed().replace(QRegExp("\n\\s*\n"),"\n").split("\n");
87− const QStringList cardStringResultLines = cardStringResult.toString().trimmed().replace(QRegExp("\n\\s*\n"),"\n").split("\n");
88− for (int i = 0; i < expectedLines.size(); ++i) {
89− QCOMPARE(cardStringResultLines[i].simplified(), expectedLines[i].simplified());
74+ if (!resultFileName.isEmpty()) {
75+ QFile testResultFile(testDirPath + resultFileName);
76+ QVERIFY(testResultFile.open(QIODevice::ReadOnly));
77+ QTextStream ts2(&testResultFile);
78+
79+ // Record failed results to /tmp
80+ const QString executedResult = cardStringResult.toString();
81+ QTemporaryFile tmpFile(QDir::tempPath() + QDir::separator() + "testCardCreatorFailedResultXXXXXX");
82+ tmpFile.open();
83+ tmpFile.setAutoRemove(false);
84+ tmpFile.write(executedResult.toUtf8().constData());
85+
86+ // Line by line comparison
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");
89+ for (int i = 0; i < expectedLines.size(); ++i) {
90+ QCOMPARE(cardStringResultLines[i].simplified(), expectedLines[i].simplified());
91+ }
92+
93+ // Remove the result if it passed
94+ tmpFile.setAutoRemove(true);
9095 }
9196
92− // Remove the result if it passed
93− tmpFile.setAutoRemove(true);
94−
9597 QVariant createCardComponentResult;
9698 QMetaObject::invokeMethod(view->rootObject(), "createCardComponent", Q_RETURN_ARG(QVariant, createCardComponentResult), Q_ARG(QVariant, templateJSON), Q_ARG(QVariant, componentsJSON));
97− QVERIFY(createCardComponentResult.toBool());
99+ QCOMPARE(createCardComponentResult.toBool(), !resultFileName.isEmpty());
98100 }
99101 }
100102
tests/qmltests/CMakeLists.txt+1
@@ -17,6 +17,7 @@ add_unity8_qmltest(Components Rating)
1717add_unity8_qmltest(Components ResponsiveGridView)
1818add_unity8_qmltest(Components ResponsiveVerticalJournal)
1919add_unity8_qmltest(Components Showable)
20+add_unity8_qmltest(Components VirtualTouchPad)
2021add_unity8_qmltest(Components WallpaperResolver)
2122add_unity8_qmltest(Components ZoomableImage)
2223add_unity8_qmltest(Dash Dash)
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/Dash/tst_Card.qml+1
@@ -232,6 +232,7 @@ Rectangle {
232232 function init() {
233233 cardTool.components = Qt.binding(function() { return Helpers.update(JSON.parse(Helpers.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['components']; });
234234 loader.visible = true;
235+ waitForRendering(card);
235236 }
236237
237238 function cleanup() {
tests/qmltests/tst_DisabledScreenNotice.qml+10−2
@@ -19,13 +19,13 @@ import QtTest 1.0
1919import Unity.Test 0.1
2020import "../../qml"
2121
22−
2322Item {
2423 id: root
25− width: units.gu(70)
24+ width: units.gu(40)
2625 height: units.gu(70)
2726
2827 DisabledScreenNotice {
28+ id: touchScreenPad
2929 anchors.fill: parent
3030 }
3131
@@ -33,5 +33,13 @@ Item {
3333 id: testCase
3434 name: "DisabledScreenNotice"
3535 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+ }
3644 }
3745}
tests/qmltests/tst_OrientedShell.qml+106−22
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -292,6 +292,9 @@ Rectangle {
292292 activeFocusOnPress: false
293293 text: "Usage Mode"
294294 model: ["Staged", "Windowed", "Automatic"]
295+ function selectStaged() {selectedIndex = 0;}
296+ function selectWindowed() {selectedIndex = 1;}
297+ function selectAutomatic() {selectedIndex = 2;}
295298 }
296299 MouseTouchEmulationCheckbox {
297300 checked: true
@@ -393,7 +396,7 @@ Rectangle {
393396 activeFocusOnPress: false
394397 property string prevDevName: "mako"
395398 onClicked: {
396− usageModeSelector.selectedIndex = 2; // "Automatic"
399+ usageModeSelector.selectAutomatic();
397400
398401 if (applicationArguments.deviceName === "desktop") {
399402 applicationArguments.deviceName = prevDevName;
@@ -457,6 +460,8 @@ Rectangle {
457460 signalSpy.signalName = "";
458461
459462 LightDM.Greeter.authenticate(""); // reset greeter
463+
464+ usageModeSelector.selectStaged();
460465 }
461466
462467 function cleanup() {
@@ -996,37 +1001,58 @@ Rectangle {
9961001 tryCompare(shell, "transformRotationAngle", 0);
9971002 }
9981003
999− function test_attachRemoveInputDevices() {
1000− usageModeSelector.selectedIndex = 2;
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+
1021+ function test_attachRemoveInputDevices(data) {
1022+ usageModeSelector.selectAutomatic();
10011023 tryCompare(mockUnity8Settings, "usageMode", "Automatic")
10021024
10031025 loadShell("mako")
10041026 var shell = findChild(orientedShell, "shell");
1027+ var inputMethod = findChild(shell, "inputMethod");
10051028
1006− tryCompare(shell, "usageScenario", "phone");
1007− tryCompare(mockOskSettings, "stayHidden", false);
1029+ var oldWidth = orientedShellLoader.width;
1030+ orientedShellLoader.width = data.screenWidth;
10081031
1009− MockInputDeviceBackend.addMockDevice("/kbd0", InputInfo.Keyboard);
10101032 tryCompare(shell, "usageScenario", "phone");
1011− tryCompare(mockOskSettings, "stayHidden", true);
1012−
1013− MockInputDeviceBackend.addMockDevice("/mouse0", InputInfo.Mouse);
1014− tryCompare(shell, "usageScenario", "desktop");
1015− tryCompare(mockOskSettings, "stayHidden", true);
1033+ tryCompare(inputMethod, "enabled", true);
1034+ tryCompare(mockOskSettings, "disableHeight", false);
10161035
1017− MockInputDeviceBackend.removeDevice("/kbd0");
1018− tryCompare(shell, "usageScenario", "desktop");
1019− tryCompare(mockOskSettings, "stayHidden", false);
1036+ if (data.kbd) {
1037+ MockInputDeviceBackend.addMockDevice("/kbd0", InputInfo.Keyboard);
1038+ }
1039+ if (data.mouse) {
1040+ MockInputDeviceBackend.addMockDevice("/mouse0", InputInfo.Mouse);
1041+ }
10201042
1021− MockInputDeviceBackend.removeDevice("/mouse0");
1022− tryCompare(shell, "usageScenario", "phone");
1023− tryCompare(mockOskSettings, "stayHidden", false);
1043+ tryCompare(shell, "usageScenario", data.expectedMode);
1044+ tryCompare(inputMethod, "enabled", data.oskExpected);
1045+ tryCompare(mockOskSettings, "disableHeight", data.expectedMode == "desktop" || data.kbd);
10241046
1025− MockInputDeviceBackend.addMockDevice("/touchpad0", InputInfo.TouchPad);
1026− tryCompare(shell, "usageScenario", "desktop");
1047+ if (data.kbd) {
1048+ MockInputDeviceBackend.removeDevice("/kbd0");
1049+ }
1050+ if (data.mouse) {
1051+ MockInputDeviceBackend.removeDevice("/mouse0");
1052+ }
10271053
1028− MockInputDeviceBackend.removeDevice("/touchpad0");
1029− tryCompare(shell, "usageScenario", "phone");
1054+ // Restore width
1055+ orientedShellLoader.width = oldWidth;
10301056 }
10311057
10321058 /*
@@ -1140,6 +1166,61 @@ Rectangle {
11401166 tryCompare(shell, "transformRotationAngle" , 0);
11411167 }
11421168
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+
11431224 // angle - rotation angle in degrees clockwise, relative to the primary orientation.
11441225 function rotateTo(angle) {
11451226 switch (angle) {
@@ -1158,7 +1239,10 @@ Rectangle {
11581239 default:
11591240 verify(false);
11601241 }
1242+ waitForRotationAnimationsToFinish();
1243+ }
11611244
1245+ function waitForRotationAnimationsToFinish() {
11621246 var rotationStates = findInvisibleChild(orientedShell, "rotationStates");
11631247 verify(rotationStates.d);
11641248 verify(rotationStates.d.stateUpdateTimer);