on xenial help sign in
[ Albert Astals Cid ]

* Clear fake item icon name as soon as it goes invisible (LP: #1531172) * Fix LVWPH test failing on Xenial (Qt 5.5) * Fix dragging so that test passes on Xenial * Fix focus on the dash page header text field with new SDK (LP: #1528178) * Make the card creator test pass again * Quit the dash communicator thread before destroying it (LP: #1508485) * Remove duplicated override_dh_auto_clean * SDK changed the name they give to the buttons, follow [ Andrea Cimitan ] * Fix a broken binding [ CI Train Bot ] * Resync trunk. * Update translation template [ Daniel d'Andrada ] * Have "make tryFoo" work with Qt 5.5 * Make DragHandle tests run again. [ Lukáš Tinkl ] * Fix dismissing the launcher when clicking/tapping outside (LP: #1531339, #1530940) * Fix panel drop shadow and click-to-focus of maximized apps (LP: #1531854) * Fix wifi access point indicator items signal strength icon on desktop [ Michael Terry ] * Guard against a couple odd timing scenarios for the too-many-failed- login-attempts lockout screen. * Skip the wizard's password screens if there is already a password set by other means. (LP: #1531268) * Stop the emergency dialer from accidentally exposing the mtp service. (LP: #1525981) [ Michael Zanetti ] * Make sure the triangle of the quicklist is in bounds (LP: #1531340) [ Pawel Stolowski ] * Changes 'shareData' and 'contentType' attributes to 'share-data' and 'content-type', to match existing naming schema. [ Albert Astals Cid ] * Introduce audio cards [ CI Train Bot ] * Update translation template [ Michael Zanetti ] * Introduce audio cards [ CI Train Bot ] * Resync trunk. * Update translation template [ Nick Dedekind ] * Use volume-sync action to resync the volume control. (LP: #1520548)

commitcd7d4f413d88e77d4c2ebdc93c6c58fee77e6dd5 authorJosh Arenson <joshua.arenson@canonical.com> dateFri 22 Jan 2016, 12:11 (11 years ago) parent8c9dfb5ddceb6e
161 files changed+2285−904
CMakeLists.txt+10 data/51-unity8-greeter.conf+3 data/CMakeLists.txt+1−1 data/unity8-greeter-init.conf+12 data/unity8-greeter-wrapper+98 data/unity8-greeter.desktop.in+2−1 debian/changelog+75 debian/control+9−4 debian/rules−4 debian/unity8-greeter.install+2 plugins/Dash/AudioProgressBar.qml+53 plugins/Dash/CMakeLists.txt+3 plugins/Dash/CardAudioProgress.qml+59 plugins/Dash/CardCreator.js+107−2 plugins/Dash/DashAudioPlayer.qml+96 plugins/Dash/graphics/music_progress_bg.png plugins/Dash/listviewwithpageheader.cpp+5−1 plugins/Dash/plugin.cpp+35 plugins/Dash/qmldir+3 plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+8−2 plugins/Unity/DashCommunicator/dashcommunicator.cpp+6 plugins/Unity/DashCommunicator/dashcommunicator.h+1−1 po/am.po+6−4 po/ar.po+7−7 po/ast.po+8−9 po/az.po+4−3 po/be.po+9−9 po/bg.po+6−5 po/bn.po+164−101 po/br.po+12−11 po/bs.po+6−5 po/ca.po+11−6 po/ca@valencia.po+9−8 po/ce.po+4−3 po/ckb.po+4−3 po/cs.po+8−10 po/cy.po+6−5 po/da.po+8−6 po/de.po+5−5 po/el.po+5−5 po/en_AU.po+4−3 po/en_GB.po+10−9 po/eo.po+44−43 po/es.po+10−7 po/eu.po+6−5 po/fa.po+10−13 po/fi.po+5−5 po/fo.po+4−3 po/fr.po+9−6 po/ga.po+4−3 po/gd.po+20−15 po/gl.po+8−6 po/gv.po+9−7 po/he.po+6−5 po/hi.po+4−3 po/hr.po+8−7 po/hu.po+6−5 po/hy.po+4−3 po/ia.po+6−5 po/id.po+4−3 po/is.po+8−7 po/it.po+4−3 po/ja.po+15−7 po/km.po+10−14 po/kn.po+4−3 po/ko.po+20−9 po/ku.po+6−4 po/ky.po+4−3 po/lo.po+4−3 po/lt.po+8−6 po/lv.po+4−4 po/ml.po+5−5 po/mr.po+4−3 po/ms.po+8−8 po/my.po+4−3 po/nb.po+4−3 po/ne.po+4−3 po/nl.po+8−6 po/nn.po+4−3 po/oc.po+4−3 po/or.po+4−3 po/pa.po+13−15 po/pl.po+8−7 po/pt.po+11−9 po/pt_BR.po+4−3 po/ro.po+6−7 po/ru.po+11−10 po/shn.po+18−18 po/si.po+4−3 po/sk.po+4−3 po/sl.po+6−5 po/sq.po+4−3 po/sr.po+6−6 po/sv.po+8−10 po/sw.po+4−3 po/ta.po+4−4 po/te.po+4−3 po/th.po+4−3 po/tr.po+4−3 po/ug.po+6−5 po/uk.po+10−8 po/unity8.pot+28−28 po/ur.po+4−3 po/uz.po+4−3 po/vi.po+4−3 po/wo.po+7−7 po/xh.po+4−3 po/zh_CN.po+12−7 po/zh_HK.po+4−3 po/zh_TW.po+13−11 qml/Dash/DashPageHeader.qml+1 qml/Dash/Previews/PreviewAudioPlayback.qml+16−76 qml/Dash/Previews/PreviewMediaToolbar.qml+2−1 qml/Dash/Previews/PreviewSharing.qml+3−4 qml/Dash/Previews/PreviewVideoPlayback.qml+1−1 qml/Dash/Previews/PreviewZoomableImage.qml+1−1 qml/Dash/Previews/graphics/music_progress_bg.png qml/Greeter/Greeter.qml+7−4 qml/Launcher/Launcher.qml+4−9 qml/Launcher/LauncherPanel.qml+6−3 qml/Panel/Indicators/MenuItemFactory.qml+24−2 qml/Stages/DesktopStage.qml+7−3 qml/Wizard/Pages/30-passwd-type.qml+5 src/CMakeLists.txt+13−7 src/Dash/CMakeLists.txt+8−8 src/Dash/main.cpp+9−5 src/MouseTouchAdaptor.cpp+180−21 src/MouseTouchAdaptor.h+10−3 src/ShellApplication.cpp+10−5 src/ShellApplication.h+12−4 src/UnityCommandLineParser.cpp+6 src/UnityCommandLineParser.h+8 tests/mocks/QtMultimedia/CMakeLists.txt+1 tests/mocks/QtMultimedia/audio.cpp+21−19 tests/mocks/QtMultimedia/audio.h+8−6 tests/mocks/QtMultimedia/declarativeplaylist.cpp+73 tests/mocks/QtMultimedia/declarativeplaylist.h+54 tests/mocks/QtMultimedia/plugin.cpp+2 tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/CMakeLists.txt+1−1 tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/MockSecurityPrivacy.cpp+8−1 tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/MockSecurityPrivacy.h+8 tests/mocks/Unity/CMakeLists.txt+1−1 tests/plugins/Dash/cardcreator/9.res+113 tests/plugins/Dash/cardcreator/9.tst+3 tests/qmltests/CMakeLists.txt+2−1 tests/qmltests/Components/CMakeLists.txt+1−1 tests/qmltests/Components/tst_DragHandle.qml+6−6 tests/qmltests/Components/tst_DragHandle/SimpleButton.qml+36 tests/qmltests/Dash/CardHelpers.js+1−1 tests/qmltests/Dash/Previews/tst_PreviewAudioPlayback.qml+5−9 tests/qmltests/Dash/Previews/tst_PreviewMediaToolbar.qml+69 tests/qmltests/Dash/Previews/tst_PreviewSharing.qml+1−13 tests/qmltests/Dash/tst_Card.qml+8−1 tests/qmltests/Dash/tst_DashContent.qml+1−1 tests/qmltests/Greeter/tst_Greeter.qml+39−3 tests/qmltests/Launcher/tst_Launcher.qml+16 tests/qmltests/Panel/tst_IndicatorsMenu.qml+3−3 tests/qmltests/Stages/tst_DesktopStage.qml+29 tests/qmltests/Wizard/tst_Wizard.qml+15 tests/utils/modules/Unity/Test/CMakeLists.txt+8−1 tests/utils/modules/Unity/Test/plugin.cpp+13−3
CMakeLists.txt+10
@@ -129,6 +129,16 @@ if(NOT QUIET_LOGGER)
129129 set(STDOUT_LOGGER "-o" "-,txt")
130130endif()
131131
132+execute_process(COMMAND arch OUTPUT_VARIABLE ARCH)
133+if (NOT ARCH MATCHES "arm*")
134+ set(ENABLE_TOUCH_EMULATION true)
135+ add_definitions(-DUNITY8_ENABLE_TOUCH_EMULATION)
136+ pkg_check_modules(MOUSETOUCHADAPTOR_LIBS REQUIRED x11 xcb xi)
137+else()
138+ set(ENABLE_TOUCH_EMULATION false)
139+ message(STATUS "Touch emulation support disabled.")
140+endif()
141+
132142# add subdirectories to build
133143add_subdirectory(include)
134144add_subdirectory(libs)
data/51-unity8-greeter.conf+3
@@ -1,2 +1,5 @@
11[Seat:*]
22greeter-session=unity8-greeter
3+
4+# When unity8 can be run under mir on the desktop, change this to unity.
5+type=xlocal
data/CMakeLists.txt+1−1
@@ -22,7 +22,7 @@ install(FILES
2222 DESTINATION ${CMAKE_INSTALL_DATADIR}/lightdm/lightdm.conf.d
2323 )
2424
25− # install dash icon
25+# install dash icon
2626install(FILES
2727 ${CMAKE_CURRENT_SOURCE_DIR}/${DASH_APP}.png
2828 DESTINATION ${SHELL_APP_DIR}/Dash/
data/unity8-greeter-init.confnew file+12
@@ -0,0 +1,12 @@
1+description "Unity 8 Greeter initialization"
2+author "Michael Terry <mterry@ubuntu.com>"
3+
4+start on unity8-greeter-started
5+task
6+emits indicator-services-start
7+
8+script
9+ start --no-wait ofono-setup || true
10+ initctl emit --no-wait indicator-services-start || true
11+ start --no-wait maliit-server || true
12+end script
data/unity8-greeter-wrappernew file+98
@@ -0,0 +1,98 @@
1+#!/bin/sh
2+# -*- Mode: sh; indent-tabs-mode: nil; tab-width: 4 -*-
3+#
4+# Copyright (C) 2011,2013 Canonical Ltd
5+# Author: Michael Terry <michael.terry@canonical.com>
6+#
7+# This program is free software: you can redistribute it and/or modify it under
8+# the terms of the GNU General Public License as published by the Free Software
9+# Foundation, version 3 of the License.
10+#
11+# See http://www.gnu.org/copyleft/gpl.html the full text of the license.
12+
13+# This wrapper merely ensures that init and friends live only as long as this
14+# script does. Otherwise, it's very easy for some processes to not notice that
15+# the session died. We could try to do this in-process, but we want to do this
16+# cleanup even if the greeter aborts.
17+
18+trap cleanup TERM EXIT
19+
20+cleanup()
21+{
22+ trap - TERM EXIT
23+ # Kill upstart and indicators
24+ if [ -n "$INIT_PID" ]; then
25+ kill "$INIT_PID"
26+ fi
27+ if [ -n "$CMD_PID" ]; then
28+ kill "$CMD_PID"
29+ fi
30+ exit 0
31+}
32+
33+set_greeter_var()
34+{
35+ export "$1=$2"
36+ gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.UpdateActivationEnvironment "{'$1': '$2'}"
37+ if [ -n "$INIT_PID" ]; then
38+ initctl set-env --global "$1=$2"
39+ fi
40+}
41+
42+SUB_SOCKET=$XDG_RUNTIME_DIR/mir_socket
43+rm -f $SUB_SOCKET # clear socket in case we were hard shut down
44+
45+# If touch session script (which sets up grid units and mir variables) is available, use it
46+TOUCH_WRAPPER=
47+if [ -x /usr/bin/ubuntu-touch-session ]; then
48+ TOUCH_WRAPPER=/usr/bin/ubuntu-touch-session
49+fi
50+
51+# Pretend that we're in an ubuntu-touch session, so that indicator-network
52+# will start.
53+export DESKTOP_SESSION=ubuntu-touch
54+
55+# We disable ofono using pulse. It causes problems with racing with the user's
56+# pulse. We need to come up with a better long-term fix for this, because we
57+# eventually need the greeter to play ringtones for users that aren't logged in.
58+set_greeter_var PA_DISABLED 1
59+
60+# Normal unity8 sessions are entirely driven by Upstart. But greeters
61+# are special. They need access to the file descriptors that lightdm
62+# creates for them and don't want to start all the services that a normal
63+# session would. So it's inconvenient to live within an upstart session.
64+# But... we still want to use Upstart for some services. So launch here.
65+USC_SOCKET=$MIR_SOCKET MIR_SOCKET=$SUB_SOCKET $TOUCH_WRAPPER /sbin/upstart --user --no-startup-event &
66+INIT_PID=$!
67+while [ ! -e "$XDG_RUNTIME_DIR/upstart/sessions/$INIT_PID.session" ]; do sleep 0.1; done
68+export UPSTART_SESSION=$(/sbin/initctl list-sessions | grep "^$INIT_PID " | cut -d' ' -f2)
69+
70+# Start any pre-greeter tasks if needed (like wizard)
71+/sbin/initctl emit unity8-greeter-starting
72+
73+# Define language here for phone if available. When phone user switches their
74+# language, they expect that to affect the greeter too. But the user doesn't
75+# have permission to switch system language, only their own. So we notice if
76+# the phablet user exists and use their language if so. TODO: talk to design
77+# about whether we should switch language on fly as users are selected (this
78+# is very hard to do technically).
79+#
80+# Do this after unity8-greeter-starting, in case a customization upstart job
81+# changes language.
82+if [ "$(id -u phablet 2>/dev/null)" = "32011" ]; then
83+ USER_LANG=$(gdbus call --system --dest org.freedesktop.Accounts --object-path /org/freedesktop/Accounts/User32011 --method org.freedesktop.DBus.Properties.Get org.freedesktop.Accounts.User Language | cut -d\' -f2)
84+ if [ -n "$USER_LANG" ]; then
85+ set_greeter_var LANGUAGE "$USER_LANG"
86+ fi
87+ USER_LOCALE=$(gdbus call --system --dest org.freedesktop.Accounts --object-path /org/freedesktop/Accounts/User32011 --method org.freedesktop.DBus.Properties.Get org.freedesktop.Accounts.User FormatsLocale | cut -d\' -f2)
88+ if [ -n "$USER_LOCALE" ]; then
89+ set_greeter_var LANG "$USER_LOCALE"
90+ set_greeter_var LC_ALL "$USER_LOCALE"
91+ fi
92+fi
93+
94+# And finally actually start the greeter
95+exec env QT_QPA_PLATFORM=ubuntumirclient MIR_SERVER_FILE=$SUB_SOCKET $TOUCH_WRAPPER $@ &
96+CMD_PID=$!
97+wait $CMD_PID
98+CMD_PID=
data/unity8-greeter.desktop.in+2−1
@@ -2,5 +2,6 @@
22Type=Application
33Name=Unity 8 Greeter
44Comment=The converged Unity shell's Greeter
5−Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8 --mode=greeter
5+Exec=/usr/bin/unity8-greeter-wrapper /usr/bin/unity8 --mode=greeter
6+X-LightDM-Session-Type=mir
67X-Ubuntu-Touch=true
debian/changelog+75
@@ -1,3 +1,78 @@
1+unity8 (8.11+16.04.20160111.1-0ubuntu1) xenial; urgency=medium
2+
3+ [ Albert Astals Cid ]
4+ * Clear fake item icon name as soon as it goes invisible (LP:
5+ #1531172)
6+ * Fix LVWPH test failing on Xenial (Qt 5.5)
7+ * Fix dragging so that test passes on Xenial
8+ * Fix focus on the dash page header text field with new SDK (LP:
9+ #1528178)
10+ * Make the card creator test pass again
11+ * Quit the dash communicator thread before destroying it (LP:
12+ #1508485)
13+ * Remove duplicated override_dh_auto_clean
14+ * SDK changed the name they give to the buttons, follow
15+
16+ [ Andrea Cimitan ]
17+ * Fix a broken binding
18+
19+ [ CI Train Bot ]
20+ * Resync trunk.
21+ * Update translation template
22+
23+ [ Daniel d'Andrada ]
24+ * Have "make tryFoo" work with Qt 5.5
25+ * Make DragHandle tests run again.
26+
27+ [ Lukáš Tinkl ]
28+ * Fix dismissing the launcher when clicking/tapping outside (LP:
29+ #1531339, #1530940)
30+ * Fix panel drop shadow and click-to-focus of maximized apps (LP:
31+ #1531854)
32+ * Fix wifi access point indicator items signal strength icon on
33+ desktop
34+
35+ [ Michael Terry ]
36+ * Guard against a couple odd timing scenarios for the too-many-failed-
37+ login-attempts lockout screen.
38+ * Skip the wizard's password screens if there is already a password
39+ set by other means. (LP: #1531268)
40+ * Stop the emergency dialer from accidentally exposing the mtp
41+ service. (LP: #1525981)
42+
43+ [ Michael Zanetti ]
44+ * Make sure the triangle of the quicklist is in bounds (LP: #1531340)
45+
46+ [ Pawel Stolowski ]
47+ * Changes 'shareData' and 'contentType' attributes to 'share-data' and
48+ 'content-type', to match existing naming schema.
49+
50+ -- Michał Sawicz <michal.sawicz@canonical.com> Mon, 11 Jan 2016 17:38:49 +0000
51+
52+unity8 (8.11+16.04.20160107-0ubuntu1) xenial; urgency=medium
53+
54+ [ Albert Astals Cid ]
55+ * Introduce audio cards
56+
57+ [ CI Train Bot ]
58+ * Update translation template
59+
60+ [ Michael Zanetti ]
61+ * Introduce audio cards
62+
63+ -- CI Train Bot <ci-train-bot@canonical.com> Thu, 07 Jan 2016 08:04:47 +0000
64+
65+unity8 (8.11+16.04.20160105.1-0ubuntu1) xenial; urgency=medium
66+
67+ [ CI Train Bot ]
68+ * Resync trunk.
69+ * Update translation template
70+
71+ [ Nick Dedekind ]
72+ * Use volume-sync action to resync the volume control. (LP: #1520548)
73+
74+ -- Xavi Garcia <xavi.garcia.mena@canonical.com> Tue, 05 Jan 2016 13:55:38 +0000
75+
176unity8 (8.11+16.04.20151208.1-0ubuntu1) xenial; urgency=medium
277
378 [ Albert Astals Cid ]
debian/control+9−4
@@ -30,9 +30,13 @@ Build-Depends: cmake,
3030 libqt5xmlpatterns5-dev,
3131 libsystemsettings-dev,
3232 libudev-dev,
33− libunity-api-dev (>= 7.104),
33+ libunity-api-dev (>= 7.105),
3434 libusermetricsoutput1-dev,
35− libxcb1-dev,
35+# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
36+ libx11-dev[!armhf],
37+ libxcb1-dev[!armhf],
38+ libxi-dev[!armhf],
39+# End of X11 libs
3640 pkg-config,
3741 python3-all:any,
3842 python3-setuptools,
@@ -49,7 +53,7 @@ Build-Depends: cmake,
4953 qtdeclarative5-dev (>= 5.4),
5054 qtdeclarative5-dev-tools,
5155 qtdeclarative5-private-dev (>= 5.4),
52− qtdeclarative5-qtmultimedia-plugin,
56+ qtdeclarative5-qtmultimedia-plugin (>= 5.4.1-1ubuntu19~overlay2),
5357 qtdeclarative5-ubuntu-content1,
5458 qtdeclarative5-ubuntu-settings-components (>= 0.6),
5559 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1676) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1676),
@@ -77,6 +81,7 @@ Description: Indicators client test application
7781Package: unity8-greeter
7882Architecture: any
7983Depends: unity8 (= ${binary:Version}),
84+ unity-system-compositor,
8085 ${misc:Depends},
8186 ${shlibs:Depends}
8287Recommends: lightdm
@@ -142,7 +147,7 @@ Depends: qml-module-qtquick-layouts,
142147 unity-application-impl-12,
143148 unity-notifications-impl-3,
144149 unity-plugin-scopes | unity-scopes-impl,
145− unity-scopes-impl-7,
150+ unity-scopes-impl-9,
146151 unity8-fake-env | unity-application-impl,
147152 ${misc:Depends},
148153Breaks: unity8 (<< 7.86),
debian/rules−4
@@ -11,10 +11,6 @@ export NO_PNG_PKG_MANGLE=1
1111%:
1212 dh $@ --parallel --fail-missing --with python3
1313
14−override_dh_auto_clean:
15− dh_auto_clean
16− rm -rf builddir
17−
1814override_dh_auto_configure:
1915 # Debian defines CMAKE_INSTALL_LOCALSTATEDIR as /usr/var, which is wrong.
2016 # So until Debian bug 719148 is fixed, do it ourselves.
debian/unity8-greeter.install+2
@@ -1,2 +1,4 @@
1+data/unity8-greeter-wrapper usr/bin/
2+data/unity8-greeter-init.conf usr/share/upstart/sessions/
13usr/share/lightdm/greeters/unity8-greeter.desktop
24usr/share/lightdm/lightdm.conf.d/51-unity8-greeter.conf
plugins/Dash/AudioProgressBar.qmlnew file+53
@@ -0,0 +1,53 @@
1+/*
2+ * Copyright 2015 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+import Dash 0.1
20+
21+Item {
22+ id: root
23+
24+ implicitHeight: progressBarImage.height
25+
26+ property url source
27+ readonly property double progress: AudioUrlComparer.compare(source, DashAudioPlayer.currentSource) ? DashAudioPlayer.progress : 0
28+
29+ Image {
30+ id: progressBarImage
31+ anchors { left: parent.left; right: parent.right }
32+ height: units.dp(6)
33+ source: "graphics/music_progress_bg.png"
34+ sourceSize.width: width
35+ sourceSize.height: height
36+ }
37+
38+ UbuntuShape {
39+ id: progressBarFill
40+ objectName: "progressBarFill"
41+
42+ readonly property int maxWidth: progressBarImage.width
43+
44+ anchors {
45+ left: progressBarImage.left
46+ right: progressBarImage.right
47+ verticalCenter: progressBarImage.verticalCenter
48+ rightMargin: maxWidth - (maxWidth * root.progress)
49+ }
50+ height: units.dp(2)
51+ backgroundColor: UbuntuColors.orange
52+ }
53+}
plugins/Dash/CMakeLists.txt+3
@@ -38,3 +38,6 @@ target_link_libraries(Dash-qml
3838qt5_use_modules(Dash-qml Qml Quick Concurrent)
3939
4040add_unity8_plugin(Dash 0.1 Dash TARGETS Dash-qml)
41+
42+install(FILES graphics/music_progress_bg.png DESTINATION ${SHELL_INSTALL_QML}/Dash/graphics/)
43+file(COPY graphics/music_progress_bg.png DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/graphics/)
plugins/Dash/CardAudioProgress.qmlnew file+59
@@ -0,0 +1,59 @@
1+/*
2+ * Copyright 2015 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+import Dash 0.1
20+
21+Item {
22+ id: root
23+
24+ implicitHeight: positionLabel.y + positionLabel.height
25+ visible: AudioUrlComparer.compare(source, DashAudioPlayer.currentSource)
26+
27+ property int duration: 0
28+ property alias source: progress.source
29+ property color color: theme.palette.normal.baseText
30+ readonly property int position: root.visible ? DashAudioPlayer.position / 1000 : 0
31+
32+ AudioProgressBar {
33+ id: progress
34+ anchors { left: parent.left; right: parent.right }
35+ }
36+
37+ Label {
38+ id: positionLabel
39+ anchors {
40+ left: parent.left
41+ top: progress.bottom
42+ }
43+ verticalAlignment: Text.AlignBottom
44+ fontSize: "x-small"
45+ text: DashAudioPlayer.lengthToString(root.position)
46+ color: root.color
47+ }
48+
49+ Label {
50+ anchors {
51+ right: parent.right
52+ top: progress.bottom
53+ }
54+ verticalAlignment: Text.AlignBottom
55+ fontSize: "x-small"
56+ text: DashAudioPlayer.lengthToString(duration)
57+ color: root.color
58+ }
59+}
plugins/Dash/CardCreator.js+107−2
@@ -136,6 +136,43 @@ var kArtShapeHolderCode = 'Item { \n\
136136 } \n\
137137 }\n';
138138
139+// %1 is anchors.fill
140+// %2 is width
141+// %3 is height
142+var kAudioButtonCode = 'AbstractButton { \n\
143+ id: audioButton; \n\
144+ anchors.fill: %1; \n\
145+ width: %2; \n\
146+ height: %3; \n\
147+ readonly property url source: (cardData["quickPreviewData"] && cardData["quickPreviewData"]["uri"]) || ""; \n\
148+ UbuntuShape { \n\
149+ anchors.fill: parent; \n\
150+ visible: parent.pressed; \n\
151+ radius: "medium"; \n\
152+ } \n\
153+ Icon { \n\
154+ anchors.fill: parent; \n\
155+ anchors.margins: parent.height > units.gu(5) ? units.gu(2) : 0; \n\
156+ opacity: 0.9; \n\
157+ name: DashAudioPlayer.playing && AudioUrlComparer.compare(parent.source, DashAudioPlayer.currentSource) ? "media-playback-pause" : "media-playback-start"; \n\
158+ } \n\
159+ onClicked: { \n\
160+ if (AudioUrlComparer.compare(source, DashAudioPlayer.currentSource)) { \n\
161+ if (DashAudioPlayer.playing) { \n\
162+ DashAudioPlayer.pause(); \n\
163+ } else { \n\
164+ DashAudioPlayer.play(); \n\
165+ } \n\
166+ } else { \n\
167+ var playlist = (cardData["quickPreviewData"] && cardData["quickPreviewData"]["playlist"]) || null; \n\
168+ DashAudioPlayer.playSource(source, playlist); \n\
169+ } \n\
170+ } \n\
171+ onPressAndHold: { \n\
172+ root.pressAndHold(); \n\
173+ } \n\
174+ }';
175+
139176var kOverlayLoaderCode = 'Loader { \n\
140177 id: overlayLoader; \n\
141178 readonly property real overlayHeight: (fixedHeaderHeight > 0 ? fixedHeaderHeight : headerHeight) + units.gu(2); \n\
@@ -316,6 +353,22 @@ var kSummaryLabelCode = 'Label { \n\
316353 color: %3; \n\
317354 }\n';
318355
356+// %1 is used as bottom anchor of audio progress bar
357+// %2 is used as left anchor of audio progress bar
358+// %3 is used as text color
359+var kAudioProgressBarCode = 'CardAudioProgress { \n\
360+ id: audioProgressBar; \n\
361+ duration: (cardData["quickPreviewData"] && cardData["quickPreviewData"]["duration"]) || 0; \n\
362+ source: (cardData["quickPreviewData"] && cardData["quickPreviewData"]["uri"]) || ""; \n\
363+ anchors { \n\
364+ bottom: %1; \n\
365+ left: %2; \n\
366+ right: parent.right; \n\
367+ margins: units.gu(1); \n\
368+ } \n\
369+ color: %3; \n\
370+ }';
371+
319372function cardString(template, components) {
320373 var code;
321374
@@ -351,7 +404,20 @@ function cardString(template, components) {
351404 var headerAsOverlay = hasArt && template && template["overlay"] === true && (hasTitle || hasMascot);
352405 var hasSubtitle = hasTitle && components["subtitle"] || false;
353406 var hasHeaderRow = hasMascot && hasTitle;
354− var hasAttributes = hasTitle && components["attributes"]["field"] || false;
407+ var hasAttributes = hasTitle && components["attributes"] && components["attributes"]["field"] || false;
408+ var isAudio = template["quick-preview-type"] === "audio";
409+
410+ if (isAudio) {
411+ // For now we only support audio cards with [optional] art, title, subtitle
412+ // in horizontal mode
413+ // Anything else makes it behave not like an audio card
414+ if (hasSummary) isAudio = false;
415+ if (!isHorizontal) isAudio = false;
416+ if (hasMascot) isAudio = false;
417+ if (hasEmblem) isAudio = false;
418+ if (headerAsOverlay) isAudio = false;
419+ if (hasAttributes) isAudio = false;
420+ }
355421
356422 if (hasBackground) {
357423 var templateCardBackground = (template && typeof template["card-background"] === "string") ? template["card-background"] : "";
@@ -421,17 +487,22 @@ function cardString(template, components) {
421487 topMargin: units.gu(1);\n';
422488 }
423489 }
490+
424491 var headerLeftAnchor;
425492 var headerLeftAnchorHasMargin = false;
426493 if (isHorizontal && hasArt) {
427494 headerLeftAnchor = 'left: artShapeHolder.right; \n\
428495 leftMargin: units.gu(1);\n';
429496 headerLeftAnchorHasMargin = true;
497+ } else if (isHorizontal && isAudio) {
498+ headerLeftAnchor = 'left: audioButton.right; \n\
499+ leftMargin: units.gu(1);\n';
500+ headerLeftAnchorHasMargin = true;
430501 } else {
431502 headerLeftAnchor = 'left: parent.left;\n';
432503 }
433504
434− var touchdownOnArtShape = !hasBackground && hasArt && !hasMascot && !hasSummary;
505+ var touchdownOnArtShape = !hasBackground && hasArt && !hasMascot && !hasSummary && !isAudio;
435506
436507 if (hasHeaderRow) {
437508 code += 'readonly property int headerHeight: row.height;\n'
@@ -445,6 +516,14 @@ function cardString(template, components) {
445516 } else {
446517 code += 'readonly property int headerHeight: attributesRow.height;\n'
447518 }
519+ } else if (isAudio) {
520+ if (hasSubtitle) {
521+ code += 'readonly property int headerHeight: titleLabel.height + subtitleLabel.height + subtitleLabel.anchors.topMargin + audioProgressBar.height + audioProgressBar.anchors.topMargin;\n'
522+ } else if (hasTitle) {
523+ code += 'readonly property int headerHeight: titleLabel.height + audioProgressBar.height + audioProgressBar.anchors.topMargin;\n'
524+ } else {
525+ code += 'readonly property int headerHeight: audioProgressBar.height;\n'
526+ }
448527 } else if (hasSubtitle) {
449528 code += 'readonly property int headerHeight: titleLabel.height + subtitleLabel.height + subtitleLabel.anchors.topMargin;\n'
450529 } else if (hasTitle) {
@@ -632,6 +711,30 @@ function cardString(template, components) {
632711 code += mascotShapeCode + mascotCode + titleSubtitleCode;
633712 }
634713
714+ if (isAudio) {
715+ var audioProgressBarLeftAnchor = 'audioButton.right';
716+ var audioProgressBarBottomAnchor = 'audioButton.bottom';
717+ var audioProgressBarTextColor = 'root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText';
718+
719+ code += kAudioProgressBarCode.arg(audioProgressBarBottomAnchor)
720+ .arg(audioProgressBarLeftAnchor)
721+ .arg(audioProgressBarTextColor);
722+
723+ var audioButtonAnchorsFill;
724+ var audioButtonWidth;
725+ var audioButtonHeight;
726+ if (hasArt) {
727+ audioButtonAnchorsFill = 'artShapeHolder';
728+ audioButtonWidth = 'undefined';
729+ audioButtonHeight = 'undefined';
730+ } else {
731+ audioButtonAnchorsFill = 'undefined';
732+ audioButtonWidth = 'height';
733+ audioButtonHeight = '(root.fixedHeaderHeight > 0 ? root.fixedHeaderHeight : headerHeight) + 2 * units.gu(1)';
734+ }
735+ code += kAudioButtonCode.arg(audioButtonAnchorsFill).arg(audioButtonWidth).arg(audioButtonHeight);
736+ }
737+
635738 if (hasSummary) {
636739 var summaryTopAnchor;
637740 if (isHorizontal && hasArt) summaryTopAnchor = 'artShapeHolder.bottom';
@@ -670,6 +773,8 @@ function cardString(template, components) {
670773 var implicitHeight = 'implicitHeight: ';
671774 if (hasSummary) {
672775 implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
776+ } else if (isAudio) {
777+ implicitHeight += 'audioButton.height;\n';
673778 } else if (headerAsOverlay) {
674779 implicitHeight += 'artShapeHolder.height;\n';
675780 } else if (hasHeaderRow) {
plugins/Dash/DashAudioPlayer.qmlnew file+96
@@ -0,0 +1,96 @@
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+pragma Singleton
18+import QtQuick 2.4
19+import QtMultimedia 5.6
20+import Dash 0.1
21+
22+QtObject {
23+ readonly property real progress: audio.position / audio.duration
24+ readonly property bool playing: audio.playbackState === Audio.PlayingState
25+ readonly property bool paused: audio.playbackState === Audio.PausedState
26+ readonly property bool stopped: audio.playbackState === Audio.StoppedState
27+ readonly property alias position: audio.position
28+ readonly property url currentSource: audio.playlist.currentItemSource
29+
30+ function playSource(newSource, newPlaylist) {
31+ stop();
32+ audio.playlist.clear();
33+ if (newPlaylist) {
34+ // Look for newSource in newPlaylist
35+ var sourceIndex = -1;
36+ for (var i in newPlaylist) {
37+ if (AudioUrlComparer.compare(newSource, newPlaylist[i])) {
38+ sourceIndex = i;
39+ break;
40+ }
41+ }
42+ var urls = [];
43+ if (sourceIndex === -1 && newSource != "") {
44+ // If the playing song is not in the playlist, add it
45+ urls.push(newSource);
46+ sourceIndex = 0;
47+ }
48+ for (var i in newPlaylist) {
49+ urls.push(newPlaylist[i]);
50+ }
51+ audio.playlist.addItems(urls);
52+ audio.playlist.currentIndex = sourceIndex;
53+ } else {
54+ audio.playlist.addItem(newSource);
55+ audio.playlist.currentIndex = 0;
56+ }
57+ play();
58+ }
59+
60+ function stop() {
61+ audio.stop();
62+ }
63+
64+ function play() {
65+ audio.play();
66+ }
67+
68+ function pause() {
69+ audio.pause();
70+ }
71+
72+ property QtObject audio: Audio {
73+ id: audio
74+ objectName: "audio"
75+ playlist: Playlist {
76+ objectName: "playlist"
77+ }
78+
79+ onErrorStringChanged: console.warn("Dash Audio player error:", errorString)
80+ }
81+
82+ function lengthToString(s) {
83+ if (typeof(s) !== "number" || s < 0) return "";
84+
85+ var sec = "" + s % 60;
86+ if (sec.length == 1) sec = "0" + sec;
87+ var hour = Math.floor(s / 3600);
88+ if (hour < 1) {
89+ return Math.floor(s / 60) + ":" + sec;
90+ } else {
91+ var min = "" + Math.floor(s / 60) % 60;
92+ if (min.length == 1) min = "0" + min;
93+ return hour + ":" + min + ":" + sec;
94+ }
95+ }
96+}
plugins/Dash/graphics/music_progress_bg.pngnew file

Binary file not shown.

plugins/Dash/listviewwithpageheader.cpp+5−1
@@ -1177,7 +1177,7 @@ void ListViewWithPageHeader::headerHeightChanged(qreal newHeaderHeight, qreal ol
11771177
11781178void ListViewWithPageHeader::adjustMinYExtent()
11791179{
1180− if (m_visibleItems.isEmpty()) {
1180+ if (m_visibleItems.isEmpty() || contentHeight() < height()) {
11811181 m_minYExtent = 0;
11821182 } else {
11831183 qreal nonCreatedHeight = 0;
@@ -1359,6 +1359,10 @@ void ListViewWithPageHeader::updatePolish()
13591359
13601360 m_contentHeightDirty = false;
13611361 adjustMinYExtent();
1362+ if (contentHeight < height()) {
1363+ // need this since in the previous call to adjustMinYExtent contentHeight is not set yet
1364+ m_minYExtent = 0;
1365+ }
13621366 m_inContentHeightKeepHeaderShown = m_headerItem && m_headerItem->y() == contentY();
13631367 setContentHeight(contentHeight);
13641368 m_inContentHeightKeepHeaderShown = false;
plugins/Dash/plugin.cpp+35
@@ -23,6 +23,38 @@
2323#include "verticaljournal.h"
2424
2525#include <QAbstractItemModel>
26+#include <QUrlQuery>
27+
28+static QUrl oauthCleanedUrl(QUrl u)
29+{
30+ QUrlQuery q(u);
31+ q.removeQueryItem("oauth_nonce");
32+ q.removeQueryItem("oauth_timestamp");
33+ q.removeQueryItem("oauth_consumer_key");
34+ q.removeQueryItem("oauth_signature_method");
35+ q.removeQueryItem("oauth_version");
36+ q.removeQueryItem("oauth_signature");
37+ u.setQuery(q);
38+ return u;
39+}
40+
41+class AudioComparer : public QObject
42+{
43+ Q_OBJECT
44+public:
45+ Q_INVOKABLE bool compare(const QUrl &url1, const QUrl &url2)
46+ {
47+ return oauthCleanedUrl(url1) == oauthCleanedUrl(url2);
48+ }
49+};
50+
51+static QObject *audio_comparer_singleton_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
52+{
53+ Q_UNUSED(engine)
54+ Q_UNUSED(scriptEngine)
55+
56+ return new AudioComparer();
57+}
2658
2759void DashPlugin::registerTypes(const char *uri)
2860{
@@ -32,4 +64,7 @@ void DashPlugin::registerTypes(const char *uri)
3264 qmlRegisterType<ListViewWithPageHeader>(uri, 0, 1, "ListViewWithPageHeader");
3365 qmlRegisterType<OrganicGrid>(uri, 0, 1, "OrganicGrid");
3466 qmlRegisterType<VerticalJournal>(uri, 0, 1, "VerticalJournal");
67+ qmlRegisterSingletonType<AudioComparer>(uri, 0, 1, "AudioUrlComparer", audio_comparer_singleton_provider);
3568}
69+
70+#include "plugin.moc"
plugins/Dash/qmldir+3
@@ -2,6 +2,9 @@ module Dash
22plugin Dash-qml
33typeinfo Dash.qmltypes
44singleton CardCreatorCache 0.1 CardCreatorCache.qml
5+singleton DashAudioPlayer 0.1 DashAudioPlayer.qml
56ScopeStyle 0.1 ScopeStyle.qml
67CardAttributes 0.1 CardAttributes.qml
78CroppedImageMinimumSourceSize 0.1 CroppedImageMinimumSourceSize.qml
9+AudioProgressBar 0.1 AudioProgressBar.qml
10+CardAudioProgress 0.1 CardAudioProgress.qml
plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+8−2
@@ -715,8 +715,14 @@ void DirectionalDragArea::itemChange(ItemChange change, const ItemChangeData &va
715715 value.window->installEventFilter(TouchRegistry::instance());
716716
717717 // TODO: Handle window->screen() changes (ie window changing screens)
718− qreal pixelsPerMm = value.window->screen()->physicalDotsPerInch() / 25.4;
719− d->setPixelsPerMm(pixelsPerMm);
718+
719+ qreal pixelsPerInch = value.window->screen()->physicalDotsPerInch();
720+ if (pixelsPerInch < 0) {
721+ // It can return garbage when run in a XVFB server (Virtual Framebuffer 'fake' X server)
722+ pixelsPerInch = 72;
723+ }
724+
725+ d->setPixelsPerMm(pixelsPerInch / 25.4);
720726 }
721727 }
722728}
plugins/Unity/DashCommunicator/dashcommunicator.cpp+6
@@ -27,6 +27,12 @@ DashCommunicator::DashCommunicator(QObject *parent):
2727 start();
2828}
2929
30+DashCommunicator::~DashCommunicator()
31+{
32+ quit();
33+ wait();
34+}
35+
3036void DashCommunicator::setCurrentScope(int index, bool animate, bool isSwipe)
3137{
3238 m_mutex.lock();
plugins/Unity/DashCommunicator/dashcommunicator.h+1−1
@@ -28,7 +28,7 @@ class DashCommunicator: public QThread
2828 Q_OBJECT
2929public:
3030 explicit DashCommunicator(QObject *parent = 0);
31− ~DashCommunicator() = default;
31+ ~DashCommunicator();
3232
3333public Q_SLOTS:
3434 void setCurrentScope(int index, bool animate, bool isSwipe);
po/am.po+6−4
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: am\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -752,7 +753,8 @@ msgstr "%1 〉"
752753#~ "You have now mastered the edge gestures and can start using the "
753754#~ "phone<br><br>Tap on the screen to start"
754755#~ msgstr ""
755−#~ "አሁን የ ጠርዝ እንቅስቃሴን አውቀዋል እና መጀመር ይችላሉ ስልኩን መጠቀም <br><br>መመልከቻውን መታ ያድርጉ ለመጀመር"
756+#~ "አሁን የ ጠርዝ እንቅስቃሴን አውቀዋል እና መጀመር ይችላሉ ስልኩን መጠቀም <br><br>መመልከቻውን መታ ያድርጉ "
757+#~ "ለመጀመር"
756758
757759#~ msgid "Restart"
758760#~ msgstr "እንደገና ማስጀመሪያ"
po/ar.po+7−7
@@ -6,18 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ar\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
1819"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
20+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
21+"X-Generator: Launchpad (build 17886)\n"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
@@ -530,8 +531,7 @@ msgstr "أدخِل شريحة SIM ثم أعِد تشغيل الجهاز"
530531
531532#: qml/Wizard/Pages/20-sim.qml:59
532533msgid "Without it, you won’t be able to make calls or use text messaging."
533−msgstr ""
534−"بدونها لن تتمكن من إجراء أي مكالمات هاتفية أو استخدام الرسائل النصية."
534+msgstr "بدونها لن تتمكن من إجراء أي مكالمات هاتفية أو استخدام الرسائل النصية."
535535
536536#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
537537msgid "Skip"
@@ -748,8 +748,8 @@ msgstr ""
748748#~ "You have now mastered the edge gestures and can start using the "
749749#~ "phone<br><br>Tap on the screen to start"
750750#~ msgstr ""
751−#~ "أنت الآن بارع في إيماءات الحواف ويمكنك البدء باستخدام هاتفك<br><br>انقر على "
752−#~ "الشاشة للبدء"
751+#~ "أنت الآن بارع في إيماءات الحواف ويمكنك البدء باستخدام هاتفك<br><br>انقر "
752+#~ "على الشاشة للبدء"
753753
754754#~ msgid "%a %l:%M %p"
755755#~ msgstr "%a %l:%M %p"
po/ast.po+8−9
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ast\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -45,8 +46,7 @@ msgstr "Quedasti bloquiáu polos escesivos intentos fallíos de fras de pasu."
4546
4647#: qml/Components/DelayedLockscreen.qml:65
4748msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr ""
49−"Quedasti bloquiáu polos escesivos intentos fallíos de códigu de pasu."
49+msgstr "Quedasti bloquiáu polos escesivos intentos fallíos de códigu de pasu."
5050
5151#: qml/Components/DelayedLockscreen.qml:74
5252#, qt-format
@@ -582,8 +582,7 @@ msgstr "Namái usando GPS (menos precisión)"
582582
583583#: qml/Wizard/Pages/50-location.qml:86
584584msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
585−msgstr ""
586−"Usando GPS, Wi-fi anónimes ya información de redes móviles (aconseyao)"
585+msgstr "Usando GPS, Wi-fi anónimes ya información de redes móviles (aconseyao)"
587586
588587#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
589588#: qml/Wizard/Pages/50-location.qml:103
@@ -701,8 +700,8 @@ msgstr "%1 〉"
701700
702701#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
703702#~ msgstr ""
704−#~ "Esliza'l deu dende la esquierda p'amosar el llanzador y acceder rápidamente "
705−#~ "a les aplicaciones"
703+#~ "Esliza'l deu dende la esquierda p'amosar el llanzador y acceder "
704+#~ "rápidamente a les aplicaciones"
706705
707706#~ msgid "Well done"
708707#~ msgstr "Bien fecho"
po/az.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: az\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/be.po+9−9
@@ -6,18 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: be\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
17−"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18−"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19−"X-Launchpad-Export-Date: 2015-12-14 05:32+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
18+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
19+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
21+"X-Generator: Launchpad (build 17886)\n"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
@@ -42,8 +43,7 @@ msgstr "Прылада заблакаваная"
4243
4344#: qml/Components/DelayedLockscreen.qml:64
4445msgid "You have been locked out due to too many failed passphrase attempts."
45−msgstr ""
46−"Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў."
46+msgstr "Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў."
4747
4848#: qml/Components/DelayedLockscreen.qml:65
4949msgid "You have been locked out due to too many failed passcode attempts."
@@ -735,8 +735,8 @@ msgstr "%1 〉"
735735
736736#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
737737#~ msgstr ""
738−#~ "Правядзіце пальцам ад левага краю, каб адкрыць панэль запуску для паскарэння "
739−#~ "доступу да праграм"
738+#~ "Правядзіце пальцам ад левага краю, каб адкрыць панэль запуску для "
739+#~ "паскарэння доступу да праграм"
740740
741741#~ msgid "Skip intro"
742742#~ msgstr "Прапусціць уводзіны"
po/bg.po+6−5
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: bg\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -710,8 +711,8 @@ msgstr ""
710711
711712#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
712713#~ msgstr ""
713−#~ "Приплъзнете пръста си от левия край към десния, за да отворите стартера за "
714−#~ "бърз достъп до приложенията"
714+#~ "Приплъзнете пръста си от левия край към десния, за да отворите стартера "
715+#~ "за бърз достъп до приложенията"
715716
716717#~ msgid "Try swiping from the right edge to unlock the phone"
717718#~ msgstr ""
po/bn.po+164−101
@@ -6,26 +6,27 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: bn\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
23−msgstr ""
24+msgstr "পাসওয়ার্ড: "
2425
2526#: plugins/Unity/Launcher/launcheritem.cpp:47
2627#: plugins/Unity/Launcher/launcheritem.cpp:106
2728msgid "Pin shortcut"
28−msgstr ""
29+msgstr "পিন"
2930
3031#: plugins/Unity/Launcher/launcheritem.cpp:52
3132msgid "Quit"
@@ -33,26 +34,26 @@ msgstr ""
3334
3435#: plugins/Unity/Launcher/launcheritem.cpp:106
3536msgid "Unpin shortcut"
36−msgstr ""
37+msgstr "আনপিন"
3738
3839#: qml/Components/DelayedLockscreen.qml:49
3940msgid "Device Locked"
40−msgstr ""
41+msgstr "ডিভাইসটি লক করা"
4142
4243#: qml/Components/DelayedLockscreen.qml:64
4344msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45+msgstr "অধিকবার পাসফ্রেজ ভুল দেওয়ার কারনে আপনার আইডি লক করা হয়েছে"
4546
4647#: qml/Components/DelayedLockscreen.qml:65
4748msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr ""
49+msgstr "অধিকবার পাসকোড ভুল করার কারনে আপনার আইডি লক করা হয়েছে"
4950
5051#: qml/Components/DelayedLockscreen.qml:74
5152#, qt-format
5253msgid "Please wait %1 minute and then try again…"
5354msgid_plural "Please wait %1 minutes and then try again…"
54−msgstr[0] ""
55−msgstr[1] ""
55+msgstr[0] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
56+msgstr[1] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
5657
5758#: qml/Components/Dialogs.qml:144
5859msgctxt "Title: Lock/Log out dialog"
@@ -61,12 +62,12 @@ msgstr ""
6162
6263#: qml/Components/Dialogs.qml:145
6364msgid "Are you sure you want to log out?"
64−msgstr ""
65+msgstr "আপনি কি লগ আউট করতে চান?"
6566
6667#: qml/Components/Dialogs.qml:147
6768msgctxt "Button: Lock the system"
6869msgid "Lock"
69−msgstr ""
70+msgstr "লক করুন"
7071
7172#: qml/Components/Dialogs.qml:154
7273msgctxt "Button: Log out from the system"
@@ -76,43 +77,43 @@ msgstr ""
7677#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
7778#: qml/Components/Dialogs.qml:253
7879msgid "Cancel"
79−msgstr ""
80+msgstr "বাতিল"
8081
8182#: qml/Components/Dialogs.qml:173
8283msgctxt "Title: Reboot/Shut down dialog"
8384msgid "Shut down"
84−msgstr ""
85+msgstr "বন্ধ করুন"
8586
8687#: qml/Components/Dialogs.qml:174
8788msgid "Are you sure you want to shut down?"
88−msgstr ""
89+msgstr "আপনি কি কম্পিউটার বন্ধ করতে চান?"
8990
9091#: qml/Components/Dialogs.qml:176
9192msgctxt "Button: Reboot the system"
9293msgid "Reboot"
93−msgstr ""
94+msgstr "পুনরায় চালু করুন"
9495
9596#: qml/Components/Dialogs.qml:185
9697msgctxt "Button: Shut down the system"
9798msgid "Shut down"
98−msgstr ""
99+msgstr "বন্ধ করুন"
99100
100101#: qml/Components/Dialogs.qml:207
101102msgctxt "Title: Reboot dialog"
102103msgid "Reboot"
103−msgstr ""
104+msgstr "পুনরায় চালু"
104105
105106#: qml/Components/Dialogs.qml:208
106107msgid "Are you sure you want to reboot?"
107−msgstr ""
108+msgstr "আপনি কি পুনরায় চালু করতে চান?"
108109
109110#: qml/Components/Dialogs.qml:210
110111msgid "No"
111−msgstr ""
112+msgstr "না"
112113
113114#: qml/Components/Dialogs.qml:217
114115msgid "Yes"
115−msgstr ""
116+msgstr "হ্যাঁ"
116117
117118#: qml/Components/Dialogs.qml:232
118119msgctxt "Title: Power off/Restart dialog"
@@ -124,28 +125,30 @@ msgid ""
124125"Are you sure you would like\n"
125126"to power off?"
126127msgstr ""
128+"আপনি নিশ্চিত যে আপনি\n"
129+"বন্ধ করতে চান?"
127130
128131#: qml/Components/Dialogs.qml:235
129132msgctxt "Button: Power off the system"
130133msgid "Power off"
131−msgstr ""
134+msgstr "বন্ধ করুন"
132135
133136#: qml/Components/Dialogs.qml:244
134137msgctxt "Button: Restart the system"
135138msgid "Restart"
136−msgstr ""
139+msgstr "পুনরায় চালু"
137140
138141#: qml/Components/Lockscreen.qml:245
139142msgid "Return to Call"
140−msgstr ""
143+msgstr "কল এ ফিরে যান"
141144
142145#: qml/Components/Lockscreen.qml:245
143146msgid "Emergency Call"
144−msgstr ""
147+msgstr "জরুরী কল"
145148
146149#: qml/Components/Lockscreen.qml:277
147150msgid "OK"
148−msgstr ""
151+msgstr "ঠিক আছে"
149152
150153#: qml/Components/ModeSwitchWarningDialog.qml:32
151154msgid "Apps may have unsaved data:"
@@ -174,59 +177,59 @@ msgstr ""
174177#: qml/Dash/DashPageHeader.qml:265
175178msgctxt "Button: Open the Ubuntu Store"
176179msgid "Store"
177−msgstr ""
180+msgstr "স্টোর"
178181
179182#: qml/Dash/DashPageHeader.qml:272
180183msgctxt "Button: Start a search in the current dash scope"
181184msgid "Search"
182−msgstr ""
185+msgstr "খুঁজুন"
183186
184187#: qml/Dash/DashPageHeader.qml:282
185188msgctxt "Button: Show the current dash scope settings"
186189msgid "Settings"
187−msgstr ""
190+msgstr "সেটিংস"
188191
189192#: qml/Dash/DashPageHeader.qml:289
190193msgid "Remove from Favorites"
191−msgstr ""
194+msgstr "পছন্দ থেকে মুছে ফেলুন"
192195
193196#: qml/Dash/DashPageHeader.qml:289
194197msgid "Add to Favorites"
195−msgstr ""
198+msgstr "পছন্দতে যোগ করুন"
196199
197200#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
198201msgid "See less"
199−msgstr ""
202+msgstr "কম দেখুন"
200203
201204#: qml/Dash/GenericScopeView.qml:576
202205msgid "See all"
203−msgstr ""
206+msgstr "সব দেখুন"
204207
205208#: qml/Dash/GenericScopeView.qml:638
206209msgctxt "Label: Hint for dash search line edit"
207210msgid "Search"
208−msgstr ""
211+msgstr "খুঁজুন"
209212
210213#: qml/Dash/Previews/PreviewActionCombo.qml:35
211214msgid "More..."
212−msgstr ""
215+msgstr "আরো..."
213216
214217#: qml/Dash/Previews/PreviewActionCombo.qml:35
215218msgid "Less..."
216−msgstr ""
219+msgstr "কম..."
217220
218221#: qml/Dash/Previews/PreviewCommentInput.qml:68
219222#: qml/Dash/Previews/PreviewRatingInput.qml:174
220223msgid "Send"
221−msgstr ""
224+msgstr "পাঠান"
222225
223226#: qml/Dash/Previews/PreviewRatingInput.qml:84
224227msgid "Rate this"
225−msgstr ""
228+msgstr "রেটিং দিন"
226229
227230#: qml/Dash/Previews/PreviewRatingInput.qml:129
228231msgid "Add a review"
229−msgstr ""
232+msgstr "আপনার মতামত দিন"
230233
231234#: qml/Dash/Previews/PreviewSharing.qml:51
232235msgid "Preview Share Item"
@@ -234,19 +237,19 @@ msgstr ""
234237
235238#: qml/Dash/PullToRefreshScopeStyle.qml:55
236239msgid "Pull to refresh…"
237−msgstr ""
240+msgstr "রিফ্রেশ করার জন্য টানুন"
238241
239242#: qml/Dash/PullToRefreshScopeStyle.qml:60
240243msgid "Release to refresh…"
241−msgstr ""
244+msgstr "রিফ্রেশ করার জন্য ছেড়ে দিন"
242245
243246#: qml/Dash/ScopeSettings/ScopeSettingBoolean.qml:43
244247msgid "Enable location data"
245−msgstr ""
248+msgstr "অবস্থান নির্ণয় চালু করুন"
246249
247250#: qml/Dash/ScopesList.qml:67
248251msgid "Manage"
249−msgstr ""
252+msgstr "ব্যবস্থাপনা"
250253
251254#: qml/Dash/ScopesList.qml:113
252255msgid "Home"
@@ -254,15 +257,15 @@ msgstr ""
254257
255258#: qml/Dash/ScopesList.qml:114
256259msgid "Also installed"
257−msgstr ""
260+msgstr "আরও ইন্সটল করা রয়েছে..."
258261
259262#: qml/DisabledScreenNotice.qml:42
260263msgid "Your device is now connected to an external display."
261−msgstr ""
264+msgstr "আপনার ডিভাইসটি এখন অতিরিক্ত ডিসপ্লের সাথে যুক্ত রয়েছে"
262265
263266#: qml/Greeter/CoverPage.qml:107
264267msgid "Unlock"
265−msgstr ""
268+msgstr "লক খুলুন"
266269
267270#: qml/Greeter/LoginList.qml:236
268271msgid "Retry"
@@ -270,133 +273,133 @@ msgstr ""
270273
271274#: qml/Greeter/LoginList.qml:237
272275msgid "Tap to unlock"
273−msgstr ""
276+msgstr "লক খোলার জন্য চাপ দিন"
274277
275278#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
276279msgid "Sorry, incorrect passphrase."
277−msgstr ""
280+msgstr "দুঃখিত, পাসওয়ার্ডটি ভুল হয়েছে।"
278281
279282#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
280283msgid "Sorry, incorrect passcode."
281−msgstr ""
284+msgstr "দুঃখিত, পাসকোডটি ভুল হয়েছে।"
282285
283286#: qml/Greeter/NarrowView.qml:56
284287msgid "This will be your last attempt."
285−msgstr ""
288+msgstr "এটিই আপনার সর্বশেষ সুযোগ।"
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."
291−msgstr ""
294+msgstr "ভুল পাসওয়ার্ড প্রদান করলে, আপনার ফোনটিতে থাকা সকল ব্যক্তিগত তথ্য মুছে যাবে।"
292295
293296#: qml/Greeter/NarrowView.qml:59
294297msgid ""
295298"If passcode is entered incorrectly, your phone will conduct a factory reset "
296299"and all personal data will be deleted."
297−msgstr ""
300+msgstr "ভুল পাসকোড প্রদান করলে, আপনার ফোনটির সকল ব্যক্তিগত তথ্য মুছে যাবে।"
298301
299302#: qml/Greeter/NarrowView.qml:116
300303#, qt-format
301304msgid "Enter %1"
302−msgstr ""
305+msgstr "%1 লিখুন"
303306
304307#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
305308msgid "Enter passphrase"
306−msgstr ""
309+msgstr "পাসওয়ার্ড লিখুন"
307310
308311#: qml/Greeter/NarrowView.qml:118
309312msgid "Enter passcode"
310−msgstr ""
313+msgstr "পাসকোড লিখুন"
311314
312315#: qml/Greeter/NarrowView.qml:119
313316#, qt-format
314317msgid "Sorry, incorrect %1"
315−msgstr ""
318+msgstr "দুঃখিত, %1 ভুল হয়েছে"
316319
317320#: qml/Greeter/NarrowView.qml:120
318321msgid "Sorry, incorrect passphrase"
319−msgstr ""
322+msgstr "দুঃখিত, পাসওয়ার্ড ভুল হয়েছে"
320323
321324#: qml/Greeter/NarrowView.qml:121
322325msgctxt "passphrase"
323326msgid "Please re-enter"
324−msgstr ""
327+msgstr "অনুগ্রহ করে আবার লিখুন"
325328
326329#: qml/Greeter/NarrowView.qml:122
327330msgid "Sorry, incorrect passcode"
328−msgstr ""
331+msgstr "দুঃখিত, পাসকোড ভুল হয়েছে"
329332
330333#: qml/Notifications/NotificationMenuItemFactory.qml:129
331334msgid "Show password"
332−msgstr ""
335+msgstr "পাসওয়ার্ড দেখান"
333336
334337#: qml/Panel/ActiveCallHint.qml:79
335338msgid "Tap to return to call..."
336−msgstr ""
339+msgstr "কলে ফিরে যেতে চাপ দিন..."
337340
338341#: qml/Panel/ActiveCallHint.qml:92
339342msgid "Conference"
340−msgstr ""
343+msgstr "কনফারেন্স"
341344
342345#: qml/Panel/Indicators/MenuItemFactory.qml:731
343346msgid "Nothing is playing"
344−msgstr ""
347+msgstr "কোন কিছু বাজছে না।"
345348
346349#: qml/Panel/Indicators/MenuItemFactory.qml:860
347350#, qt-format
348351msgid "%1 hour"
349352msgid_plural "%1 hours"
350−msgstr[0] ""
351−msgstr[1] ""
353+msgstr[0] "%1 ঘণ্টা"
354+msgstr[1] "%1 ঘণ্টা"
352355
353356#: qml/Panel/Indicators/MenuItemFactory.qml:864
354357#, qt-format
355358msgid "%1 minute"
356359msgid_plural "%1 minutes"
357−msgstr[0] ""
358−msgstr[1] ""
360+msgstr[0] "%1 মিনিট"
361+msgstr[1] "%1 মিনিট"
359362
360363#: qml/Panel/Indicators/MenuItemFactory.qml:869
361364#, qt-format
362365msgid "%1 second"
363366msgid_plural "%1 seconds"
364−msgstr[0] ""
365−msgstr[1] ""
367+msgstr[0] "%1 সেকেন্ড"
368+msgstr[1] "%1 সেকেন্ড"
366369
367370#: qml/Panel/Indicators/MenuItemFactory.qml:872
368371msgid "0 seconds"
369−msgstr ""
372+msgstr "0 সেকেন্ড"
370373
371374#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
372375#: qml/Panel/Indicators/MenuItemFactory.qml:874
373376#, qt-format
374377msgid "%1 remaining"
375−msgstr ""
378+msgstr "%1 বাকি"
376379
377380#: qml/Panel/Indicators/MenuItemFactory.qml:880
378381msgid "In queue…"
379−msgstr ""
382+msgstr "অপেক্ষায় রয়েছে..."
380383
381384#: qml/Panel/Indicators/MenuItemFactory.qml:884
382385msgid "Downloading"
383−msgstr ""
386+msgstr "ডাউনলোড হচ্ছে"
384387
385388#: qml/Panel/Indicators/MenuItemFactory.qml:886
386389msgid "Paused, tap to resume"
387−msgstr ""
390+msgstr "থামানো, শুরু করতে চাপ দিন"
388391
389392#: qml/Panel/Indicators/MenuItemFactory.qml:888
390393msgid "Canceled"
391−msgstr ""
394+msgstr "বাতিল হয়েছে"
392395
393396#: qml/Panel/Indicators/MenuItemFactory.qml:890
394397msgid "Finished"
395−msgstr ""
398+msgstr "শেষ"
396399
397400#: qml/Panel/Indicators/MenuItemFactory.qml:892
398401msgid "Failed, tap to retry"
399−msgstr ""
402+msgstr "ব্যার্থ হয়েছে, পুনরায় চেষ্টা করতে চাপ দিন"
400403
401404#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
402405#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
@@ -407,20 +410,20 @@ msgstr ""
407410#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
408411msgctxt "Label: Hint in message indicator line edit"
409412msgid "Reply"
410−msgstr ""
413+msgstr "উত্তর দিন"
411414
412415#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
413416msgctxt "Button: Call back on phone"
414417msgid "Call back"
415−msgstr ""
418+msgstr "কল ব্যাক"
416419
417420#: qml/Panel/Indicators/ModemInfoItem.qml:105
418421msgid "Unlock SIM"
419−msgstr ""
422+msgstr "সিম লক খুলুন করুন"
420423
421424#: qml/Panel/Indicators/RoamingIndication.qml:27
422425msgid "Roaming"
423−msgstr ""
426+msgstr "রোমিং"
424427
425428#: qml/Tutorial/TutorialBottom.qml:28
426429msgid "Open special menus"
@@ -428,11 +431,11 @@ msgstr ""
428431
429432#: qml/Tutorial/TutorialBottom.qml:29
430433msgid "Swipe up from the bottom edge."
431−msgstr ""
434+msgstr "নিচের প্রান্ত হতে উপরের দিকে সোয়াইপ করুন।"
432435
433436#: qml/Tutorial/TutorialBottomFinish.qml:24
434437msgid "This action does different things for different apps"
435−msgstr ""
438+msgstr "এই কাজটি বিভিন্ন অ্যাপের জন্য ভিন্ন ভিন্ন ভাবে কাজ করে।"
436439
437440#: qml/Tutorial/TutorialBottomFinish.qml:25
438441msgid "Tap here to finish."
@@ -441,11 +444,11 @@ msgstr ""
441444#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
442445#: qml/Tutorial/TutorialRight.qml:144
443446msgid "Tap here to continue."
444−msgstr ""
447+msgstr "অগ্রসর হওয়ার জন্য এখানে চাপ দিন।"
445448
446449#: qml/Tutorial/TutorialLeft.qml:26
447450msgid "Open the launcher"
448−msgstr ""
451+msgstr "লঞ্চার খুলুন"
449452
450453#: qml/Tutorial/TutorialLeft.qml:27
451454msgid "Short swipe from the left edge."
@@ -453,19 +456,19 @@ msgstr ""
453456
454457#: qml/Tutorial/TutorialLeftFinish.qml:24
455458msgid "These are the shortcuts to favorite apps"
456−msgstr ""
459+msgstr "এগুলো আপনার প্রিয় অ্যাপেরর শর্টকাট"
457460
458461#: qml/Tutorial/TutorialPage.qml:178
459462msgid "You almost got it!"
460−msgstr ""
463+msgstr "আপনি প্রায় পেরে গেছেন!"
461464
462465#: qml/Tutorial/TutorialPage.qml:195
463466msgid "Try again."
464−msgstr ""
467+msgstr "আবার চেষ্টা করুন"
465468
466469#: qml/Tutorial/TutorialRight.qml:31
467470msgid "To view open apps"
468−msgstr ""
471+msgstr "সচল অ্যাপগুলো দেখার জন্য"
469472
470473#: qml/Tutorial/TutorialRight.qml:32
471474msgid "Long swipe from the right edge."
@@ -486,38 +489,38 @@ msgstr ""
486489
487490#: qml/Wizard/Pages/10-welcome.qml:44
488491msgid "Welcome to your Ubuntu phone."
489−msgstr ""
492+msgstr "আপনার উবুন্টু ফোনে স্বাগতম।"
490493
491494#: qml/Wizard/Pages/10-welcome.qml:52
492495msgid "Let’s get started."
493−msgstr ""
496+msgstr "আসুন শুরু করা যাক।"
494497
495498#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:128
496499#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
497500#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
498501#: qml/Wizard/Pages/passwd-set.qml:90
499502msgid "Continue"
500−msgstr ""
503+msgstr "পরবর্তী"
501504
502505#: qml/Wizard/Pages/20-sim.qml:25
503506msgid "Add a SIM card and restart your device"
504−msgstr ""
507+msgstr "সিম কার্ড যোগ করুন এবং ফোন পুনরায় চালু করুন।"
505508
506509#: qml/Wizard/Pages/20-sim.qml:59
507510msgid "Without it, you won’t be able to make calls or use text messaging."
508−msgstr ""
511+msgstr "এটি ছাড়া, আপনি ফোন কল বা টেক্সট মেসেজ ব্যবহার করতে পারবেন না।"
509512
510513#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
511514msgid "Skip"
512−msgstr ""
515+msgstr "এড়িয়ে যান"
513516
514517#: qml/Wizard/Pages/30-passwd-type.qml:39
515518msgid "Lock security"
516−msgstr ""
519+msgstr "নিরাপত্তা লক"
517520
518521#: qml/Wizard/Pages/30-passwd-type.qml:74
519522msgid "Please select how you’d like to unlock your phone."
520−msgstr ""
523+msgstr "আপনি কিভাবে ফোনের লক খুলতে চান তা নির্ধারণ করুন।"
521524
522525#: qml/Wizard/Pages/30-passwd-type.qml:97
523526msgctxt "Label: Type of security method"
@@ -527,17 +530,17 @@ msgstr ""
527530#: qml/Wizard/Pages/30-passwd-type.qml:98
528531msgctxt "Label: Description of security method"
529532msgid "No security"
530−msgstr ""
533+msgstr "কোন নিরাপত্তা নেই"
531534
532535#: qml/Wizard/Pages/30-passwd-type.qml:100
533536msgctxt "Label: Type of security method"
534537msgid "Passcode"
535−msgstr ""
538+msgstr "পাসকোড"
536539
537540#: qml/Wizard/Pages/30-passwd-type.qml:101
538541msgctxt "Label: Description of security method"
539542msgid "4 digits only"
540−msgstr ""
543+msgstr "কেবল মাত্র ৪টি সংখ্যা"
541544
542545#: qml/Wizard/Pages/30-passwd-type.qml:103
543546msgctxt "Label: Type of security method"
@@ -660,3 +663,63 @@ msgstr ""
660663#, qt-format
661664msgid "%1 〉"
662665msgstr ""
666+
667+#~ msgid "Log out"
668+#~ msgstr "লগ অাউট"
669+
670+#~ msgid "Reboot"
671+#~ msgstr "পুনরায় চালু করুন"
672+
673+#~ msgid "Shut down"
674+#~ msgstr "বন্ধ করুন"
675+
676+#~ msgid "Power off"
677+#~ msgstr "বন্ধ করুন"
678+
679+#~ msgid "Restart"
680+#~ msgstr "পুনরায় চালু"
681+
682+#~ msgid "Top edge"
683+#~ msgstr "উপরের প্রান্ত"
684+
685+#~ msgid "Close"
686+#~ msgstr "বন্ধ"
687+
688+#~ msgid "Left edge"
689+#~ msgstr "বাম প্রান্ত"
690+
691+#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
692+#~ msgstr "অ্যাপসমূহে দ্রুত যাওয়ার লঞ্চার পেতে হলে বাম প্রান্ত থেকে সোয়াইপ করুন"
693+
694+#~ msgid "Well done"
695+#~ msgstr "অস্থির!"
696+
697+#~ msgid "Try swiping from the right edge to unlock the phone"
698+#~ msgstr "ফোনটির লক খুলতে ডান প্রান্ত থেকে সোয়াইপ করুন"
699+
700+#~ msgid "Right edge"
701+#~ msgstr "ডান প্রান্ত"
702+
703+#~ msgid "Settings"
704+#~ msgstr "সেটিংস"
705+
706+#~ msgid "Store"
707+#~ msgstr "স্টোর"
708+
709+#~ msgid "Search"
710+#~ msgstr "খুঁজুন"
711+
712+#~ msgid "Type or say a command"
713+#~ msgstr "কমান্ড লিখুন বা বলুন"
714+
715+#~ msgid "Loading. Please Wait..."
716+#~ msgstr "অপেক্ষা করুন..."
717+
718+#~ msgid "Speaking..."
719+#~ msgstr "বলা হচ্ছে..."
720+
721+#~ msgid "Speak Now..."
722+#~ msgstr "এখন বলুন..."
723+
724+#~ msgid "Please re-enter"
725+#~ msgstr "অনুগ্রহ করে আবার লিখুন"
po/br.po+12−11
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: br\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -527,8 +528,7 @@ msgstr "Surentez ar prennañ"
527528
528529#: qml/Wizard/Pages/30-passwd-type.qml:74
529530msgid "Please select how you’d like to unlock your phone."
530−msgstr ""
531−"Diuzit e peseurt mod e fell deoc'h dibrennañ ho pellgomzer, mar plij."
531+msgstr "Diuzit e peseurt mod e fell deoc'h dibrennañ ho pellgomzer, mar plij."
532532
533533#: qml/Wizard/Pages/30-passwd-type.qml:97
534534msgctxt "Label: Type of security method"
@@ -586,8 +586,7 @@ msgstr "Implijout ar GPS hepken (n'eo ket ken resis)"
586586
587587#: qml/Wizard/Pages/50-location.qml:86
588588msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
589−msgstr ""
590−"Implijout ar GPS, Wi-Fi dizanv pe titouroù ar rouedad kelligel (aliet)"
589+msgstr "Implijout ar GPS, Wi-Fi dizanv pe titouroù ar rouedad kelligel (aliet)"
591590
592591#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
593592#: qml/Wizard/Pages/50-location.qml:103
@@ -718,11 +717,13 @@ msgstr "%1 〉"
718717
719718#~ msgid "Try swiping from the top edge to access the indicators"
720719#~ msgstr ""
721−#~ "Lakait ho piz da riklañ adalek ar bord uhelañ da lakaat ar merkerioù war wel."
720+#~ "Lakait ho piz da riklañ adalek ar bord uhelañ da lakaat ar merkerioù war "
721+#~ "wel."
722722
723723#~ msgid "Swipe up again to close the settings screen"
724724#~ msgstr ""
725−#~ "Lakait ho piz da riklañ war-du ar bord uhelañ da serriñ skramm an arventennoù"
725+#~ "Lakait ho piz da riklañ war-du ar bord uhelañ da serriñ skramm an "
726+#~ "arventennoù"
726727
727728#~ msgid "Try swiping from the right edge to unlock the phone"
728729#~ msgstr ""
@@ -730,8 +731,8 @@ msgstr "%1 〉"
730731
731732#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
732733#~ msgstr ""
733−#~ "Lakait ho piz da riklañ adalek ar bord kleiz da ziskouez al lañser arloadoù "
734−#~ "prim."
734+#~ "Lakait ho piz da riklañ adalek ar bord kleiz da ziskouez al lañser "
735+#~ "arloadoù prim."
735736
736737#~ msgid "Well done"
737738#~ msgstr "Gourc'hemennoù !"
po/bs.po+6−5
@@ -6,18 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: bs\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
17−"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18−"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
18+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
19+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
20+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
21+"X-Generator: Launchpad (build 17886)\n"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
po/ca.po+11−6
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ca\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -714,7 +715,8 @@ msgstr "%1 〉"
714715
715716#~ msgid "Try swiping from the top edge to access the indicators"
716717#~ msgstr ""
717−#~ "Proveu de lliscar el dit des de la vora superior per accedir als indicadors"
718+#~ "Proveu de lliscar el dit des de la vora superior per accedir als "
719+#~ "indicadors"
718720
719721#~ msgid "Close"
720722#~ msgstr "Tanca"
@@ -726,8 +728,8 @@ msgstr "%1 〉"
726728
727729#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
728730#~ msgstr ""
729−#~ "Llisqueu el dit des de la vora esquerra per mostrar el llançador i accedir "
730−#~ "ràpidament a les aplicacions"
731+#~ "Llisqueu el dit des de la vora esquerra per mostrar el llançador i "
732+#~ "accedir ràpidament a les aplicacions"
731733
732734#~ msgid "Skip intro"
733735#~ msgstr "Omet la introducció"
@@ -811,3 +813,6 @@ msgstr "%1 〉"
811813
812814#~ msgid "%l:%M %p"
813815#~ msgstr "%l∶%M %p"
816+
817+#~ msgid "Call back"
818+#~ msgstr "Retorna la trucada"
po/ca@valencia.po+9−8
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ca\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -606,8 +607,7 @@ msgstr "No"
606607
607608#: qml/Wizard/Pages/50-location.qml:124
608609msgid "You can change your mind later in <b>System Settings</b>."
609−msgstr ""
610−"Podeu canviar-ho més avant a l'aplicació <b>Paràmetres del sistema</b>"
610+msgstr "Podeu canviar-ho més avant a l'aplicació <b>Paràmetres del sistema</b>"
611611
612612#: qml/Wizard/Pages/60-reporting.qml:26
613613msgid "Improving your experience"
@@ -715,7 +715,8 @@ msgstr "%1 〉"
715715
716716#~ msgid "Try swiping from the top edge to access the indicators"
717717#~ msgstr ""
718−#~ "Proveu de lliscar el dit des de la vora superior per accedir als indicadors"
718+#~ "Proveu de lliscar el dit des de la vora superior per accedir als "
719+#~ "indicadors"
719720
720721#~ msgid "Close"
721722#~ msgstr "Tanca"
@@ -730,8 +731,8 @@ msgstr "%1 〉"
730731
731732#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
732733#~ msgstr ""
733−#~ "Llisqueu el dit des de la vora esquerra per mostrar el llançador i accedir "
734−#~ "ràpidament a les aplicacions"
734+#~ "Llisqueu el dit des de la vora esquerra per mostrar el llançador i "
735+#~ "accedir ràpidament a les aplicacions"
735736
736737#~ msgid "Well done"
737738#~ msgstr "Enhorabona!"
po/ce.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ce\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/ckb.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: \n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/cs.po+8−10
@@ -6,18 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: cs\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
20−"Language: cs\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -42,13 +42,11 @@ msgstr "Zařízení uzamčeno"
4242
4343#: qml/Components/DelayedLockscreen.qml:64
4444msgid "You have been locked out due to too many failed passphrase attempts."
45−msgstr ""
46−"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
45+msgstr "Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
4746
4847#: qml/Components/DelayedLockscreen.qml:65
4948msgid "You have been locked out due to too many failed passcode attempts."
50−msgstr ""
51−"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
49+msgstr "Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
5250
5351#: qml/Components/DelayedLockscreen.qml:74
5452#, qt-format
@@ -625,8 +623,8 @@ msgid ""
625623"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
626624"Privacy</b>"
627625msgstr ""
628−"To může být vypnuto v <b>Nastavení systému</b> v <b>Zabezpečení a "
629−"soukromí</b>"
626+"To může být vypnuto v <b>Nastavení systému</b> v <b>Zabezpečení a soukromí</"
627+"b>"
630628
631629#: qml/Wizard/Pages/80-finished.qml:24
632630msgid "All done"
po/cy.po+6−5
@@ -6,18 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: cy\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
1819"2 : 3;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
20+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
21+"X-Generator: Launchpad (build 17886)\n"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
@@ -601,8 +602,8 @@ msgid ""
601602"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
602603"conditions</a>."
603604msgstr ""
604−"Drwy ddewis yr opsiwn yma rydych yn cytuno i <a href='#'>dermau ac "
605−"amodau</a> Nokia HERE."
605+"Drwy ddewis yr opsiwn yma rydych yn cytuno i <a href='#'>dermau ac amodau</"
606+"a> Nokia HERE."
606607
607608#: qml/Wizard/Pages/50-location.qml:112
608609msgid "Not at all"
po/da.po+8−6
@@ -7,17 +7,18 @@
77msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
10−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10+"Report-Msgid-Bugs-To: \n"
1111"POT-Creation-Date: 2015-12-08 15:42+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"
15+"Language: da\n"
1516"MIME-Version: 1.0\n"
1617"Content-Type: text/plain; charset=UTF-8\n"
1718"Content-Transfer-Encoding: 8bit\n"
1819"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
20+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
21+"X-Generator: Launchpad (build 17886)\n"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
@@ -715,7 +716,8 @@ msgstr "%1 〉"
715716#~ msgstr "Stryg op igen for at låse indstillingsskærmen"
716717
717718#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
718−#~ msgstr "Stryg fra venstre for at vise opstarteren med hurtig adgang til apps"
719+#~ msgstr ""
720+#~ "Stryg fra venstre for at vise opstarteren med hurtig adgang til apps"
719721
720722#~ msgid "Well done"
721723#~ msgstr "Godt gjort"
@@ -733,8 +735,8 @@ msgstr "%1 〉"
733735#~ "You have now mastered the edge gestures and can start using the "
734736#~ "phone<br><br>Tap on the screen to start"
735737#~ msgstr ""
736−#~ "Du mestrer nu kantbevægelserne og kan begynde at bruge telefonen<br><br>Tryk "
737−#~ "på skærmen for at starte"
738+#~ "Du mestrer nu kantbevægelserne og kan begynde at bruge "
739+#~ "telefonen<br><br>Tryk på skærmen for at starte"
738740
739741#~ msgid "Please re-enter"
740742#~ msgstr "Vær venlig at genindtaste"
po/de.po+5−5
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: de\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -444,8 +445,7 @@ msgstr "Wischen Sie von der unteren Bildschirmkante nach oben."
444445
445446#: qml/Tutorial/TutorialBottomFinish.qml:24
446447msgid "This action does different things for different apps"
447−msgstr ""
448−"Diese Aktion bewirkt verschiedene Dinge in verschiedenen Anwendungen."
448+msgstr "Diese Aktion bewirkt verschiedene Dinge in verschiedenen Anwendungen."
449449
450450#: qml/Tutorial/TutorialBottomFinish.qml:25
451451msgid "Tap here to finish."
po/el.po+5−5
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: el\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -446,8 +447,7 @@ msgstr "Σύρετε από την κάτω άκρη προς τα πάνω."
446447
447448#: qml/Tutorial/TutorialBottomFinish.qml:24
448449msgid "This action does different things for different apps"
449−msgstr ""
450−"Αυτή η ενέργεια κάνει διαφορετικά πράγματα για διαφορετικές εφαρμογές"
450+msgstr "Αυτή η ενέργεια κάνει διαφορετικά πράγματα για διαφορετικές εφαρμογές"
451451
452452#: qml/Tutorial/TutorialBottomFinish.qml:25
453453msgid "Tap here to finish."
po/en_AU.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: \n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/en_GB.po+10−9
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: \n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -151,27 +152,27 @@ msgstr "OK"
151152
152153#: qml/Components/ModeSwitchWarningDialog.qml:32
153154msgid "Apps may have unsaved data:"
154−msgstr ""
155+msgstr "Apps may have unsaved data:"
155156
156157#: qml/Components/ModeSwitchWarningDialog.qml:57
157158msgid "Re-dock, save your work and close these apps to continue."
158−msgstr ""
159+msgstr "Re-dock, save your work and close these apps to continue."
159160
160161#: qml/Components/ModeSwitchWarningDialog.qml:63
161162msgid "Or force close now (unsaved data will be lost)."
162−msgstr ""
163+msgstr "Or force close now (unsaved data will be lost)."
163164
164165#: qml/Components/ModeSwitchWarningDialog.qml:75
165166msgid "OK, I will reconnect"
166−msgstr ""
167+msgstr "OK, I will reconnect"
167168
168169#: qml/Components/ModeSwitchWarningDialog.qml:76
169170msgid "Reconnect now!"
170−msgstr ""
171+msgstr "Reconnect now!"
171172
172173#: qml/Components/ModeSwitchWarningDialog.qml:88
173174msgid "Close all"
174−msgstr ""
175+msgstr "Close all"
175176
176177#: qml/Dash/DashPageHeader.qml:265
177178msgctxt "Button: Open the Ubuntu Store"
po/eo.po+44−43
@@ -6,21 +6,22 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: eo\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
23−msgstr ""
24+msgstr "Pasvorto: "
2425
2526#: plugins/Unity/Launcher/launcheritem.cpp:47
2627#: plugins/Unity/Launcher/launcheritem.cpp:106
@@ -57,26 +58,26 @@ msgstr[1] ""
5758#: qml/Components/Dialogs.qml:144
5859msgctxt "Title: Lock/Log out dialog"
5960msgid "Log out"
60−msgstr ""
61+msgstr "Elsaluti"
6162
6263#: qml/Components/Dialogs.qml:145
6364msgid "Are you sure you want to log out?"
64−msgstr ""
65+msgstr "Ĉu vi certas, ke vi volas elsaluti?"
6566
6667#: qml/Components/Dialogs.qml:147
6768msgctxt "Button: Lock the system"
6869msgid "Lock"
69−msgstr ""
70+msgstr "Ŝlosi"
7071
7172#: qml/Components/Dialogs.qml:154
7273msgctxt "Button: Log out from the system"
7374msgid "Log Out"
74−msgstr ""
75+msgstr "Elsaluti"
7576
7677#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
7778#: qml/Components/Dialogs.qml:253
7879msgid "Cancel"
79−msgstr ""
80+msgstr "Nuligi"
8081
8182#: qml/Components/Dialogs.qml:173
8283msgctxt "Title: Reboot/Shut down dialog"
@@ -108,16 +109,16 @@ msgstr ""
108109
109110#: qml/Components/Dialogs.qml:210
110111msgid "No"
111−msgstr ""
112+msgstr "Ne"
112113
113114#: qml/Components/Dialogs.qml:217
114115msgid "Yes"
115−msgstr ""
116+msgstr "Jes"
116117
117118#: qml/Components/Dialogs.qml:232
118119msgctxt "Title: Power off/Restart dialog"
119120msgid "Power"
120−msgstr ""
121+msgstr "Energio"
121122
122123#: qml/Components/Dialogs.qml:233
123124msgid ""
@@ -145,7 +146,7 @@ msgstr ""
145146
146147#: qml/Components/Lockscreen.qml:277
147148msgid "OK"
148−msgstr ""
149+msgstr "Bone"
149150
150151#: qml/Components/ModeSwitchWarningDialog.qml:32
151152msgid "Apps may have unsaved data:"
@@ -179,12 +180,12 @@ msgstr ""
179180#: qml/Dash/DashPageHeader.qml:272
180181msgctxt "Button: Start a search in the current dash scope"
181182msgid "Search"
182−msgstr ""
183+msgstr "Serĉi"
183184
184185#: qml/Dash/DashPageHeader.qml:282
185186msgctxt "Button: Show the current dash scope settings"
186187msgid "Settings"
187−msgstr ""
188+msgstr "Agordoj"
188189
189190#: qml/Dash/DashPageHeader.qml:289
190191msgid "Remove from Favorites"
@@ -192,7 +193,7 @@ msgstr ""
192193
193194#: qml/Dash/DashPageHeader.qml:289
194195msgid "Add to Favorites"
195−msgstr ""
196+msgstr "Aldoni al favoritoj"
196197
197198#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
198199msgid "See less"
@@ -205,11 +206,11 @@ msgstr ""
205206#: qml/Dash/GenericScopeView.qml:638
206207msgctxt "Label: Hint for dash search line edit"
207208msgid "Search"
208−msgstr ""
209+msgstr "Serĉi"
209210
210211#: qml/Dash/Previews/PreviewActionCombo.qml:35
211212msgid "More..."
212−msgstr ""
213+msgstr "Pli…"
213214
214215#: qml/Dash/Previews/PreviewActionCombo.qml:35
215216msgid "Less..."
@@ -262,11 +263,11 @@ msgstr ""
262263
263264#: qml/Greeter/CoverPage.qml:107
264265msgid "Unlock"
265−msgstr ""
266+msgstr "Malŝlosi"
266267
267268#: qml/Greeter/LoginList.qml:236
268269msgid "Retry"
269−msgstr ""
270+msgstr "Reprovi"
270271
271272#: qml/Greeter/LoginList.qml:237
272273msgid "Tap to unlock"
@@ -347,32 +348,32 @@ msgstr ""
347348#, qt-format
348349msgid "%1 hour"
349350msgid_plural "%1 hours"
350−msgstr[0] ""
351−msgstr[1] ""
351+msgstr[0] "%1 horo"
352+msgstr[1] "%1 horoj"
352353
353354#: qml/Panel/Indicators/MenuItemFactory.qml:864
354355#, qt-format
355356msgid "%1 minute"
356357msgid_plural "%1 minutes"
357−msgstr[0] ""
358−msgstr[1] ""
358+msgstr[0] "%1 minuto"
359+msgstr[1] "%1 minutoj"
359360
360361#: qml/Panel/Indicators/MenuItemFactory.qml:869
361362#, qt-format
362363msgid "%1 second"
363364msgid_plural "%1 seconds"
364−msgstr[0] ""
365−msgstr[1] ""
365+msgstr[0] "%1 sekundo"
366+msgstr[1] "%1 sekundoj"
366367
367368#: qml/Panel/Indicators/MenuItemFactory.qml:872
368369msgid "0 seconds"
369−msgstr ""
370+msgstr "0 sekundoj"
370371
371372#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
372373#: qml/Panel/Indicators/MenuItemFactory.qml:874
373374#, qt-format
374375msgid "%1 remaining"
375−msgstr ""
376+msgstr "%1 restas"
376377
377378#: qml/Panel/Indicators/MenuItemFactory.qml:880
378379msgid "In queue…"
@@ -388,11 +389,11 @@ msgstr ""
388389
389390#: qml/Panel/Indicators/MenuItemFactory.qml:888
390391msgid "Canceled"
391−msgstr ""
392+msgstr "Nuligita"
392393
393394#: qml/Panel/Indicators/MenuItemFactory.qml:890
394395msgid "Finished"
395−msgstr ""
396+msgstr "Finita"
396397
397398#: qml/Panel/Indicators/MenuItemFactory.qml:892
398399msgid "Failed, tap to retry"
@@ -402,12 +403,12 @@ msgstr ""
402403#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
403404msgctxt "Button: Send a reply message"
404405msgid "Send"
405−msgstr ""
406+msgstr "Sendi"
406407
407408#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
408409msgctxt "Label: Hint in message indicator line edit"
409410msgid "Reply"
410−msgstr ""
411+msgstr "Respondi"
411412
412413#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
413414msgctxt "Button: Call back on phone"
@@ -420,7 +421,7 @@ msgstr ""
420421
421422#: qml/Panel/Indicators/RoamingIndication.qml:27
422423msgid "Roaming"
423−msgstr ""
424+msgstr "Retmigrado"
424425
425426#: qml/Tutorial/TutorialBottom.qml:28
426427msgid "Open special menus"
@@ -461,7 +462,7 @@ msgstr ""
461462
462463#: qml/Tutorial/TutorialPage.qml:195
463464msgid "Try again."
464−msgstr ""
465+msgstr "Reprovu."
465466
466467#: qml/Tutorial/TutorialRight.qml:31
467468msgid "To view open apps"
@@ -478,15 +479,15 @@ msgstr ""
478479#: qml/Wizard/Page.qml:89
479480msgctxt "Button: Go back one page in the Wizard"
480481msgid "Back"
481−msgstr ""
482+msgstr "Reen"
482483
483484#: qml/Wizard/Pages/10-welcome.qml:27
484485msgid "Hi!"
485−msgstr ""
486+msgstr "Saluton!"
486487
487488#: qml/Wizard/Pages/10-welcome.qml:44
488489msgid "Welcome to your Ubuntu phone."
489−msgstr ""
490+msgstr "Bonvenon al via Ubuntu-telefono."
490491
491492#: qml/Wizard/Pages/10-welcome.qml:52
492493msgid "Let’s get started."
@@ -497,7 +498,7 @@ msgstr ""
497498#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
498499#: qml/Wizard/Pages/passwd-set.qml:90
499500msgid "Continue"
500−msgstr ""
501+msgstr "Daŭrigi"
501502
502503#: qml/Wizard/Pages/20-sim.qml:25
503504msgid "Add a SIM card and restart your device"
@@ -551,7 +552,7 @@ msgstr ""
551552
552553#: qml/Wizard/Pages/40-wifi.qml:29
553554msgid "Connect to Wi‑Fi"
554−msgstr ""
555+msgstr "Konekti al sendrata reto"
555556
556557#: qml/Wizard/Pages/40-wifi.qml:168
557558msgid "Available networks…"
@@ -563,7 +564,7 @@ msgstr ""
563564
564565#: qml/Wizard/Pages/50-location.qml:27
565566msgid "Location"
566−msgstr ""
567+msgstr "Loko"
567568
568569#: qml/Wizard/Pages/50-location.qml:62
569570msgid "Let the phone detect your location:"
@@ -639,7 +640,7 @@ msgstr ""
639640#: qml/Wizard/Pages/passwd-confirm.qml:53
640641#: qml/Wizard/Pages/passwd-confirm.qml:54
641642msgid "Please try again."
642−msgstr ""
643+msgstr "Reprovu."
643644
644645#: qml/Wizard/Pages/passwd-set.qml:61
645646msgid "Choose your passcode"
@@ -653,10 +654,10 @@ msgstr ""
653654#: qml/Wizard/StackButton.qml:39
654655#, qt-format
655656msgid "〈 %1"
656−msgstr ""
657+msgstr "〈 %1"
657658
658659#. Translators: This is the arrow for "Forward" buttons
659660#: qml/Wizard/StackButton.qml:42
660661#, qt-format
661662msgid "%1 〉"
662−msgstr ""
663+msgstr "%1 〉"
po/es.po+10−7
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+0000\n"
11−"PO-Revision-Date: 2015-07-04 06:08+0000\n"
12−"Last-Translator: Paco Molinero <paco@byasl.com>\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"
14+"Language: es\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-16 05:38+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -160,6 +161,8 @@ msgstr "Las aplicaciones podrían tener datos sin guardar."
160161#: qml/Components/ModeSwitchWarningDialog.qml:57
161162msgid "Re-dock, save your work and close these apps to continue."
162163msgstr ""
164+"Re-acople el dispositivo, guarde el trabajo y cierre estas aplicaciones para "
165+"continuar."
163166
164167#: qml/Components/ModeSwitchWarningDialog.qml:63
165168msgid "Or force close now (unsaved data will be lost)."
@@ -732,8 +735,8 @@ msgstr "%1 〉"
732735#~ "You have now mastered the edge gestures and can start using the "
733736#~ "phone<br><br>Tap on the screen to start"
734737#~ msgstr ""
735−#~ "Ahora domina los gestos de los bordes y puede usar el teléfono<br><br>Toque "
736−#~ "la pantalla para comenzar"
738+#~ "Ahora domina los gestos de los bordes y puede usar el "
739+#~ "teléfono<br><br>Toque la pantalla para comenzar"
737740
738741#~ msgid "Power off"
739742#~ msgstr "Apagar"
po/eu.po+6−5
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: eu\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -761,8 +762,8 @@ msgstr "%1 〉"
761762
762763#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
763764#~ msgstr ""
764−#~ "Pasatu hatza ezkerretik abiarazlea erakutsi eta aplikazioak berehala eskura "
765−#~ "izateko"
765+#~ "Pasatu hatza ezkerretik abiarazlea erakutsi eta aplikazioak berehala "
766+#~ "eskura izateko"
766767
767768#~ msgid "Confirm"
768769#~ msgstr "Berretsi"
po/fa.po+10−13
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: fa\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -41,8 +42,7 @@ msgstr "دستگاه قفل شد"
4142
4243#: qml/Components/DelayedLockscreen.qml:64
4344msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−"شما به دلیل تلاش‌های بسیار زیاد شکست خورده برای عبارت‌عبور قفل شده‌اید."
45+msgstr "شما به دلیل تلاش‌های بسیار زیاد شکست خورده برای عبارت‌عبور قفل شده‌اید."
4646
4747#: qml/Components/DelayedLockscreen.qml:65
4848msgid "You have been locked out due to too many failed passcode attempts."
@@ -509,8 +509,7 @@ msgstr "سیم‌کارتی افزوده و دستگاهتان را شروع م
509509
510510#: qml/Wizard/Pages/20-sim.qml:59
511511msgid "Without it, you won’t be able to make calls or use text messaging."
512−msgstr ""
513−"بدون آن، نخواهید توانست تماس گرفته با از پیام‌رسانی متنی استفاده کنید."
512+msgstr "بدون آن، نخواهید توانست تماس گرفته با از پیام‌رسانی متنی استفاده کنید."
514513
515514#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
516515msgid "Skip"
@@ -580,8 +579,7 @@ msgstr "فقط با استفاده از جی‌پی‌اس (دقّت کم‌تر
580579
581580#: qml/Wizard/Pages/50-location.qml:86
582581msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
583−msgstr ""
584−"با استفاده از جی‌پی‌اس، بی‌سیم ناشناس و اطّلاعات شبکه‌ی سلّولی (پیشنهاد شده)"
582+msgstr "با استفاده از جی‌پی‌اس، بی‌سیم ناشناس و اطّلاعات شبکه‌ی سلّولی (پیشنهاد شده)"
585583
586584#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
587585#: qml/Wizard/Pages/50-location.qml:103
@@ -617,8 +615,7 @@ msgid ""
617615"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
618616"Privacy</b>"
619617msgstr ""
620−"این می‌تواند در <b>تنظیمات سامانه</b> ذیل <b>امنیت و محرمانگی</b> غیرفعَال "
621−"شود"
618+"این می‌تواند در <b>تنظیمات سامانه</b> ذیل <b>امنیت و محرمانگی</b> غیرفعَال شود"
622619
623620#: qml/Wizard/Pages/80-finished.qml:24
624621msgid "All done"
@@ -710,8 +707,8 @@ msgstr "%1 〉"
710707#~ "You have now mastered the edge gestures and can start using the "
711708#~ "phone<br><br>Tap on the screen to start"
712709#~ msgstr ""
713−#~ "هم اکنون در استفاده از ژست های حرکتی مهارت لازم را دارید و می‌توانید استفاده "
714−#~ "از تلفن را آغاز کنید<br><br>برای شروع صفحه را لمس کنید"
710+#~ "هم اکنون در استفاده از ژست های حرکتی مهارت لازم را دارید و می‌توانید "
711+#~ "استفاده از تلفن را آغاز کنید<br><br>برای شروع صفحه را لمس کنید"
715712
716713#~ msgid "Confirm"
717714#~ msgstr "تأیید"
po/fi.po+5−5
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: fi\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -46,8 +47,7 @@ msgstr ""
4647
4748#: qml/Components/DelayedLockscreen.qml:65
4849msgid "You have been locked out due to too many failed passcode attempts."
49−msgstr ""
50−"Laite on lukittu liian monen virheellisen suojakoodiyrityksen jälkeen."
50+msgstr "Laite on lukittu liian monen virheellisen suojakoodiyrityksen jälkeen."
5151
5252#: qml/Components/DelayedLockscreen.qml:74
5353#, qt-format
po/fo.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: fo\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/fr.po+9−6
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: fr\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -160,6 +161,8 @@ msgstr "Les applications peuvent avoir des données non enregistrées :"
160161#: qml/Components/ModeSwitchWarningDialog.qml:57
161162msgid "Re-dock, save your work and close these apps to continue."
162163msgstr ""
164+"Rebranchez-vous sur la station d'accueil, enregistrez votre travail et "
165+"fermez ces applications pour continuer."
163166
164167#: qml/Components/ModeSwitchWarningDialog.qml:63
165168msgid "Or force close now (unsaved data will be lost)."
@@ -169,7 +172,7 @@ msgstr ""
169172
170173#: qml/Components/ModeSwitchWarningDialog.qml:75
171174msgid "OK, I will reconnect"
172−msgstr ""
175+msgstr "OK, je vais me reconnecter"
173176
174177#: qml/Components/ModeSwitchWarningDialog.qml:76
175178msgid "Reconnect now!"
@@ -746,8 +749,8 @@ msgstr "%1 〉"
746749
747750#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
748751#~ msgstr ""
749−#~ "Faites glisser votre doigt à partir du bord gauche pour afficher le lanceur "
750−#~ "d'applications."
752+#~ "Faites glisser votre doigt à partir du bord gauche pour afficher le "
753+#~ "lanceur d'applications."
751754
752755#~ msgid "Power off"
753756#~ msgstr "Éteindre"
po/ga.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+0000\n"
1111"PO-Revision-Date: 2015-12-17 16:56+0000\n"
1212"Last-Translator: Joshua Kiley <Unknown>\n"
1313"Language-Team: Irish <ga@li.org>\n"
14+"Language: ga\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2015-12-18 05:51+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/gd.po+20−15
@@ -6,19 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: gd\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
1819"(n > 2 && n < 20) ? 2 : 3;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
21−"Language: gd\n"
20+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
21+"X-Generator: Launchpad (build 17886)\n"
2222
2323#: plugins/IntegratedLightDM/Greeter.cpp:112
2424msgid "Password: "
@@ -159,27 +159,29 @@ msgstr "Ceart ma-thà"
159159
160160#: qml/Components/ModeSwitchWarningDialog.qml:32
161161msgid "Apps may have unsaved data:"
162−msgstr ""
162+msgstr "Aplacaidean aig a bheil dàta gun sàbhaladh ma dh'fhaoidte:"
163163
164164#: qml/Components/ModeSwitchWarningDialog.qml:57
165165msgid "Re-dock, save your work and close these apps to continue."
166166msgstr ""
167+"Ath-dhocaich, sàbhail d' obair is dùin na h-aplacaidean sin gus leantainn "
168+"air adhart."
167169
168170#: qml/Components/ModeSwitchWarningDialog.qml:63
169171msgid "Or force close now (unsaved data will be lost)."
170−msgstr ""
172+msgstr "No sparr fàgail air an-dràsta (thèid dàta gun sàbhaladh air chall)."
171173
172174#: qml/Components/ModeSwitchWarningDialog.qml:75
173175msgid "OK, I will reconnect"
174−msgstr ""
176+msgstr "Ceart ma-thà, ceanglaidh mi a-rithist"
175177
176178#: qml/Components/ModeSwitchWarningDialog.qml:76
177179msgid "Reconnect now!"
178−msgstr ""
180+msgstr "Ath-cheangail an-dràsta!"
179181
180182#: qml/Components/ModeSwitchWarningDialog.qml:88
181183msgid "Close all"
182−msgstr ""
184+msgstr "Dùin na h-uile"
183185
184186#: qml/Dash/DashPageHeader.qml:265
185187msgctxt "Button: Open the Ubuntu Store"
@@ -269,6 +271,8 @@ msgstr "Air a stàladh cuideachd"
269271#: qml/DisabledScreenNotice.qml:42
270272msgid "Your device is now connected to an external display."
271273msgstr ""
274+"Tha an t-uidheam agad ceangailte ri uidheam-taisbeanaidh air an taobh a-"
275+"muigh a-nis."
272276
273277#: qml/Greeter/CoverPage.qml:107
274278msgid "Unlock"
@@ -424,7 +428,7 @@ msgstr "Dh'fhàillig leis, thoir gnogag gus feuchainn a-rithist"
424428#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
425429msgctxt "Button: Send a reply message"
426430msgid "Send"
427−msgstr ""
431+msgstr "Cuir"
428432
429433#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
430434msgctxt "Label: Hint in message indicator line edit"
@@ -434,7 +438,7 @@ msgstr "Freagairt"
434438#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
435439msgctxt "Button: Call back on phone"
436440msgid "Call back"
437−msgstr ""
441+msgstr "Fònaig air ais"
438442
439443#: qml/Panel/Indicators/ModemInfoItem.qml:105
440444msgid "Unlock SIM"
@@ -699,8 +703,8 @@ msgstr "%1 〉"
699703
700704#~ msgid "Try swiping from the right edge to unlock the phone"
701705#~ msgstr ""
702−#~ "Feuch is dèan grad-shlaighdeadh a-steach on oir dheas gus a' ghlas a thoirt "
703−#~ "far an fhòn"
706+#~ "Feuch is dèan grad-shlaighdeadh a-steach on oir dheas gus a' ghlas a "
707+#~ "thoirt far an fhòn"
704708
705709#~ msgid "Right edge"
706710#~ msgstr "An oir dheas"
@@ -752,8 +756,9 @@ msgstr "%1 〉"
752756#~ "You have now mastered the edge gestures and can start using the "
753757#~ "phone<br><br>Tap on the screen to start"
754758#~ msgstr ""
755−#~ "Fhuair thu air na gluasadan oire ceart a dhèanamh a-nis agus is urrainn dhut "
756−#~ "am fòn a chleachdadh<br><br>Thoir gnogag air an sgrìn airson tòiseachadh"
759+#~ "Fhuair thu air na gluasadan oire ceart a dhèanamh a-nis agus is urrainn "
760+#~ "dhut am fòn a chleachdadh<br><br>Thoir gnogag air an sgrìn airson "
761+#~ "tòiseachadh"
757762
758763#~ msgid "All"
759764#~ msgstr "Na h-uile"
po/gl.po+8−6
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+0000\n"
11−"PO-Revision-Date: 2015-12-04 17:06+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"
14+"Language: gl\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-16 05:38+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -154,6 +155,8 @@ msgstr "Aplicativos que poden ter datos sen gardar:"
154155#: qml/Components/ModeSwitchWarningDialog.qml:57
155156msgid "Re-dock, save your work and close these apps to continue."
156157msgstr ""
158+"Para continuar conecte de novo o dispositivo, garde o traballo e peche estes "
159+"aplicativos."
157160
158161#: qml/Components/ModeSwitchWarningDialog.qml:63
159162msgid "Or force close now (unsaved data will be lost)."
@@ -509,8 +512,7 @@ msgstr "Engada unha tarxeta SIM e reinicie o dispositivo"
509512
510513#: qml/Wizard/Pages/20-sim.qml:59
511514msgid "Without it, you won’t be able to make calls or use text messaging."
512−msgstr ""
513−"Sen ela, non poderá realizar chamadas nin usar a mensaxería de texto."
515+msgstr "Sen ela, non poderá realizar chamadas nin usar a mensaxería de texto."
514516
515517#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
516518msgid "Skip"
po/gv.po+9−7
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: gv\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : (n == 2 ? 1 : 2);\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -691,8 +692,8 @@ msgstr ""
691692
692693#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
693694#~ msgstr ""
694−#~ "Flip woish yn çheu hoshtal dy soilshaghey yn lunneyder son raad aashagh dys "
695−#~ "ny h-appyn"
695+#~ "Flip woish yn çheu hoshtal dy soilshaghey yn lunneyder son raad aashagh "
696+#~ "dys ny h-appyn"
696697
697698#~ msgid "Well done"
698699#~ msgstr "Jeant dy mie"
@@ -722,8 +723,9 @@ msgstr ""
722723#~ "You have now mastered the edge gestures and can start using the "
723724#~ "phone<br><br>Tap on the screen to start"
724725#~ msgstr ""
725−#~ "T'ou nish oayllagh er ny cowraghyn oirr as foddee oo cur toshiaght er jannoo "
726−#~ "ymmyd jeh'n çhellvane<br><br>Jean broddey yn scaailan dy ghoaill toshiaght"
726+#~ "T'ou nish oayllagh er ny cowraghyn oirr as foddee oo cur toshiaght er "
727+#~ "jannoo ymmyd jeh'n çhellvane<br><br>Jean broddey yn scaailan dy ghoaill "
728+#~ "toshiaght"
727729
728730#~ msgid "Store"
729731#~ msgstr "Shapp"
po/he.po+6−5
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: he\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -713,8 +714,8 @@ msgstr ""
713714#~ "You have now mastered the edge gestures and can start using the "
714715#~ "phone<br><br>Tap on the screen to start"
715716#~ msgstr ""
716−#~ "ברגעים אלו סיימת את התמחותך בשימוש במחוות קצה והטלפון פתוח לשימושך<br><br>נא "
717−#~ "לגעת במסך כדי להתחיל"
717+#~ "ברגעים אלו סיימת את התמחותך בשימוש במחוות קצה והטלפון פתוח "
718+#~ "לשימושך<br><br>נא לגעת במסך כדי להתחיל"
718719
719720#~ msgid "Power off"
720721#~ msgstr "כיבוי"
po/hi.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: hi\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/hr.po+8−7
@@ -6,18 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: hr\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
17−"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18−"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
18+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
19+"%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"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
@@ -595,8 +596,8 @@ msgid ""
595596"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
596597"conditions</a>."
597598msgstr ""
598−"Odabirom ove mogućnosti prihvaćate Nokia HERE <a href='#'>uvjete i "
599−"odredbe</a>."
599+"Odabirom ove mogućnosti prihvaćate Nokia HERE <a href='#'>uvjete i odredbe</"
600+"a>."
600601
601602#: qml/Wizard/Pages/50-location.qml:112
602603msgid "Not at all"
po/hu.po+6−5
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: hu\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-31 05:35+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -728,8 +729,8 @@ msgstr "%1 〉"
728729#~ "You have now mastered the edge gestures and can start using the "
729730#~ "phone<br><br>Tap on the screen to start"
730731#~ msgstr ""
731−#~ "Elsajátította a gesztusokat, és megkezdheti a telefon "
732−#~ "használatát.<br><br>Koppintson a képernyőre a kezdéshez."
732+#~ "Elsajátította a gesztusokat, és megkezdheti a telefon használatát."
733+#~ "<br><br>Koppintson a képernyőre a kezdéshez."
733734
734735#~ msgid "Try swiping from the top edge to access the indicators"
735736#~ msgstr "Az állapotmenük eléréséhez csúsztassa ujját a felső szélről"
po/hy.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: hy\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/ia.po+6−5
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ia\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -604,8 +605,8 @@ msgstr "No, del toto"
604605#: qml/Wizard/Pages/50-location.qml:124
605606msgid "You can change your mind later in <b>System Settings</b>."
606607msgstr ""
607−"Tu pote cambiar tu desiderata plus tarde in <b>Configurationes del "
608−"systema</b>."
608+"Tu pote cambiar tu desiderata plus tarde in <b>Configurationes del systema</"
609+"b>."
609610
610611#: qml/Wizard/Pages/60-reporting.qml:26
611612msgid "Improving your experience"
po/id.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: id\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/is.po+8−7
@@ -8,18 +8,18 @@
88msgid ""
99msgstr ""
1010"Project-Id-Version: po_unity8-is\n"
11−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11+"Report-Msgid-Bugs-To: \n"
1212"POT-Creation-Date: 2015-12-08 15:42+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"
16+"Language: is\n"
1617"MIME-Version: 1.0\n"
1718"Content-Type: text/plain; charset=UTF-8\n"
1819"Content-Transfer-Encoding: 8bit\n"
1920"Plural-Forms: nplurals=2; plural=n != 1;\n"
20−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
21−"X-Generator: Launchpad (build 17865)\n"
22−"Language: is\n"
21+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
22+"X-Generator: Launchpad (build 17886)\n"
2323
2424#: plugins/IntegratedLightDM/Greeter.cpp:112
2525msgid "Password: "
@@ -703,7 +703,8 @@ msgstr ""
703703
704704#~ msgid "Try swiping from the right edge to unlock the phone"
705705#~ msgstr ""
706−#~ "Prófaðu að strjúka fingrinum frá hægri brúninni til að aflæsa símanum þínum."
706+#~ "Prófaðu að strjúka fingrinum frá hægri brúninni til að aflæsa símanum "
707+#~ "þínum."
707708
708709#~ msgid "Try swiping from the top edge to access the indicators"
709710#~ msgstr "Reyndu að strjúka frá toppi til að fá aðgang að tilkynningum"
@@ -718,8 +719,8 @@ msgstr ""
718719#~ "You have now mastered the edge gestures and can start using the "
719720#~ "phone<br><br>Tap on the screen to start"
720721#~ msgstr ""
721−#~ "Þú ert núna með æfingu í að nota skjáhreyfingar og getur því farið að nota "
722−#~ "símann<br><br>Sláðu létt á skjáinn til að byrja"
722+#~ "Þú ert núna með æfingu í að nota skjáhreyfingar og getur því farið að "
723+#~ "nota símann<br><br>Sláðu létt á skjáinn til að byrja"
723724
724725#~ msgid "Type or say a command"
725726#~ msgstr "Skrifaðu eða segðu skipun"
po/it.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: it\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/ja.po+15−7
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ja\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -287,13 +288,17 @@ msgstr "これが最後のチャンスです。"
287288msgid ""
288289"If passphrase is entered incorrectly, your phone will conduct a factory "
289290"reset and all personal data will be deleted."
290−msgstr "パスフレーズが間違っている場合、ファクトリーリセットを実施し、すべての個人データは削除されます。"
291+msgstr ""
292+"パスフレーズが間違っている場合、ファクトリーリセットを実施し、すべての個人"
293+"データは削除されます。"
291294
292295#: qml/Greeter/NarrowView.qml:59
293296msgid ""
294297"If passcode is entered incorrectly, your phone will conduct a factory reset "
295298"and all personal data will be deleted."
296−msgstr "パスコードが間違っている場合、ファクトリーリセットを実施し、すべての個人データは削除されます。"
299+msgstr ""
300+"パスコードが間違っている場合、ファクトリーリセットを実施し、すべての個人デー"
301+"タは削除されます。"
297302
298303#: qml/Greeter/NarrowView.qml:116
299304#, qt-format
@@ -673,7 +678,9 @@ msgstr ""
673678#~ msgstr "左端"
674679
675680#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
676−#~ msgstr "アプリに素早くアクセスできるLauncherを表示するには左からスワイプしてください"
681+#~ msgstr ""
682+#~ "アプリに素早くアクセスできるLauncherを表示するには左からスワイプしてくださ"
683+#~ "い"
677684
678685#~ msgid "Swipe up again to close the settings screen"
679686#~ msgstr "設定画面を閉じるにはもう一度上にスワイプしてください"
@@ -709,7 +716,8 @@ msgstr ""
709716#~ "You have now mastered the edge gestures and can start using the "
710717#~ "phone<br><br>Tap on the screen to start"
711718#~ msgstr ""
712−#~ "これでスマートフォンの操作に必要な、画面端を用いたジェスチャーを習得できました。<br><br>利用を開始するなら画面をタップしてください"
719+#~ "これでスマートフォンの操作に必要な、画面端を用いたジェスチャーを習得できま"
720+#~ "した。<br><br>利用を開始するなら画面をタップしてください"
713721
714722#~ msgid "Power off"
715723#~ msgstr "電源を切る"
po/km.po+10−14
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: \n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -291,18 +292,16 @@ msgid ""
291292"If passphrase is entered incorrectly, your phone will conduct a factory "
292293"reset and all personal data will be deleted."
293294msgstr ""
294−"បើ​បញ្ចូល​ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ "
295−"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
296−"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
295+"បើ​បញ្ចូល​ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​"
296+"របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
297297
298298#: qml/Greeter/NarrowView.qml:59
299299msgid ""
300300"If passcode is entered incorrectly, your phone will conduct a factory reset "
301301"and all personal data will be deleted."
302302msgstr ""
303−"បើ​បញ្ចូល​កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ "
304−"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
305−"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
303+"បើ​បញ្ចូល​កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​"
304+"របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
306305
307306#: qml/Greeter/NarrowView.qml:116
308307#, qt-format
@@ -694,9 +693,7 @@ msgstr "%1 〉"
694693#~ msgstr "គែមឆ្វេង"
695694
696695#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
697−#~ msgstr ""
698−#~ "អូស​ពី​គែម​ឆ្វេង "
699−#~ "ដើម្បី​បង្ហាញ​កម្មវិធី​ចាប់ផ្ដើម​សម្រាប់​ចូល​ដំណើរ​ការ​កម្មវិធី​រហ័ស"
696+#~ msgstr "អូស​ពី​គែម​ឆ្វេង ដើម្បី​បង្ហាញ​កម្មវិធី​ចាប់ផ្ដើម​សម្រាប់​ចូល​ដំណើរ​ការ​កម្មវិធី​រហ័ស"
700697
701698#~ msgid "Well done"
702699#~ msgstr "ធ្វើ​បាន​ល្អ"
@@ -723,8 +720,7 @@ msgstr "%1 〉"
723720#~ "You have now mastered the edge gestures and can start using the "
724721#~ "phone<br><br>Tap on the screen to start"
725722#~ msgstr ""
726−#~ "ឥឡូវ​អ្នក​បាន​ពិនិត្យ​កាយវិការ​គែម​ "
727−#~ "និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ<br><br>ប៉ះ លើ​អេក្រង់​ដើម្បី​ចាប់ផ្ដើម"
723+#~ "ឥឡូវ​អ្នក​បាន​ពិនិត្យ​កាយវិការ​គែម​ និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ<br><br>ប៉ះ លើ​អេក្រង់​ដើម្បី​ចាប់ផ្ដើម"
728724
729725#~ msgid "All"
730726#~ msgstr "ទាំងអស់"
po/kn.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: kn\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/ko.po+20−9
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ko\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -287,13 +288,17 @@ msgstr "마지막 시도입니다."
287288msgid ""
288289"If passphrase is entered incorrectly, your phone will conduct a factory "
289290"reset and all personal data will be deleted."
290−msgstr "이번에도 올바르지 않은 암호문을 입력하면 휴대 전화를 공장 초기화하여 모든 개인 정보를 삭제합니다."
291+msgstr ""
292+"이번에도 올바르지 않은 암호문을 입력하면 휴대 전화를 공장 초기화하여 모든 개"
293+"인 정보를 삭제합니다."
291294
292295#: qml/Greeter/NarrowView.qml:59
293296msgid ""
294297"If passcode is entered incorrectly, your phone will conduct a factory reset "
295298"and all personal data will be deleted."
296−msgstr "이번에도 올바르지 않은 패스코드를 입력하면 휴대 전화를 공장 초기화하여 모든 개인 정보를 삭제합니다."
299+msgstr ""
300+"이번에도 올바르지 않은 패스코드를 입력하면 휴대 전화를 공장 초기화하여 모든 "
301+"개인 정보를 삭제합니다."
297302
298303#: qml/Greeter/NarrowView.qml:116
299304#, qt-format
@@ -578,7 +583,8 @@ msgstr "GPS와 익명 와이파이 통신사 네트워크를 사용(추천)"
578583msgid ""
579584"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
580585"conditions</a>."
581−msgstr "이 옵션을 선택하면 자동으로 <a href='%1'>노키아 HERE 사용 조건에 동의합니다."
586+msgstr ""
587+"이 옵션을 선택하면 자동으로 <a href='%1'>노키아 HERE 사용 조건에 동의합니다."
582588
583589#: qml/Wizard/Pages/50-location.qml:112
584590msgid "Not at all"
@@ -596,13 +602,17 @@ msgstr "사용자 경험 개선"
596602msgid ""
597603"Your phone is set up to automatically report errors to Canonical and its "
598604"partners, the makers of the operating system."
599−msgstr "사용자의 전화를 자동으로 오류 보고를 운영 체제를 만든 캐노니컬 사와 협력사로 보내도록 설정했습니다."
605+msgstr ""
606+"사용자의 전화를 자동으로 오류 보고를 운영 체제를 만든 캐노니컬 사와 협력사로 "
607+"보내도록 설정했습니다."
600608
601609#: qml/Wizard/Pages/60-reporting.qml:53
602610msgid ""
603611"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
604612"Privacy</b>"
605−msgstr "이 서비스는 <b>보안 &amp; 사생활 보호</b>에서 언제든 사용하지 않도록 설정할 수 있습니다."
613+msgstr ""
614+"이 서비스는 <b>보안 &amp; 사생활 보호</b>에서 언제든 사용하지 않도록 설정할 "
615+"수 있습니다."
606616
607617#: qml/Wizard/Pages/80-finished.qml:24
608618msgid "All done"
@@ -724,7 +734,8 @@ msgstr "%1 〉"
724734#~ "You have now mastered the edge gestures and can start using the "
725735#~ "phone<br><br>Tap on the screen to start"
726736#~ msgstr ""
727−#~ "여러분은 가장자리에서 끌어오기 제스쳐를 완벽히 익히셨고 휴대 전화를 사용할 수 있습니다. <br><br> 스크린을 터치해서 시작하세요."
737+#~ "여러분은 가장자리에서 끌어오기 제스쳐를 완벽히 익히셨고 휴대 전화를 사용"
738+#~ "할 수 있습니다. <br><br> 스크린을 터치해서 시작하세요."
728739
729740#~ msgid "Loading. Please Wait..."
730741#~ msgstr "불러오는 중 입니다. 짐시 기다려주십시오..."
po/ku.po+6−4
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ku\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -713,7 +714,8 @@ msgstr ""
713714#~ msgstr "Kêleka çepê"
714715
715716#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
716−#~ msgstr "Ji bo vekirina gihînera lezgîn ya bernamokan ji kêleka çepê kaş bike"
717+#~ msgstr ""
718+#~ "Ji bo vekirina gihînera lezgîn ya bernamokan ji kêleka çepê kaş bike"
717719
718720#~ msgid ""
719721#~ "You have now mastered the edge gestures and can start using the "
po/ky.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ky\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/lo.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: \n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/lt.po+8−6
@@ -6,18 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: lt\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
17−"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18−"(n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
18+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
19+"%100<10 || n%100>=20) ? 1 : 2;\n"
20+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
21+"X-Generator: Launchpad (build 17886)\n"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
@@ -690,7 +691,8 @@ msgstr ""
690691#~ msgstr "Praleisti įžangą"
691692
692693#~ msgid "Try swiping from the right edge to unlock the phone"
693−#~ msgstr "Pabandykite braukti nuo dešiniojo krašto, kad atrakintumėte telefoną"
694+#~ msgstr ""
695+#~ "Pabandykite braukti nuo dešiniojo krašto, kad atrakintumėte telefoną"
694696
695697#~ msgid "Right edge"
696698#~ msgstr "Dešinysis kraštas"
po/lv.po+4−4
@@ -7,18 +7,18 @@
77msgid ""
88msgstr ""
99"Project-Id-Version: unity\n"
10−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10+"Report-Msgid-Bugs-To: \n"
1111"POT-Creation-Date: 2015-12-08 15:42+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"
15+"Language: lv\n"
1516"MIME-Version: 1.0\n"
1617"Content-Type: text/plain; charset=UTF-8\n"
1718"Content-Transfer-Encoding: 8bit\n"
1819"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
21−"Language: lv\n"
20+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
21+"X-Generator: Launchpad (build 17886)\n"
2222
2323#: plugins/IntegratedLightDM/Greeter.cpp:112
2424msgid "Password: "
po/ml.po+5−5
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ml\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -687,8 +688,7 @@ msgstr ""
687688
688689#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
689690#~ msgstr ""
690−#~ "പ്രയോഗങ്ങള്‍ പെട്ടെന്ന് ലഭ്യമാക്കുന്ന വിക്ഷേപിക ലഭ്യമാക്കാന്‍ ഇടതു വശത്ത് "
691−#~ "നിന്നും സ്വൈപ് ചെയ്യുക"
691+#~ "പ്രയോഗങ്ങള്‍ പെട്ടെന്ന് ലഭ്യമാക്കുന്ന വിക്ഷേപിക ലഭ്യമാക്കാന്‍ ഇടതു വശത്ത് നിന്നും സ്വൈപ് ചെയ്യുക"
692692
693693#~ msgid "Well done"
694694#~ msgstr "നന്നായി ചെയ്തിരിക്കുന്നു"
po/mr.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: mr\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/ms.po+8−8
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ms\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -511,8 +512,7 @@ msgstr "Tambah kad SIM dan mulakan semula peranti anda"
511512
512513#: qml/Wizard/Pages/20-sim.qml:59
513514msgid "Without it, you won’t be able to make calls or use text messaging."
514−msgstr ""
515−"Tanpanya, anda tidak boleh membuat panggilan atau guna pemesejan teks."
515+msgstr "Tanpanya, anda tidak boleh membuat panggilan atau guna pemesejan teks."
516516
517517#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
518518msgid "Skip"
@@ -582,8 +582,7 @@ msgstr "Hanya gunakan GPS (kurang tepat)"
582582
583583#: qml/Wizard/Pages/50-location.qml:86
584584msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
585−msgstr ""
586−"Gunakan GPS, Wi-Fi awanama dan maklumat rangkaian selular (disarankan)"
585+msgstr "Gunakan GPS, Wi-Fi awanama dan maklumat rangkaian selular (disarankan)"
587586
588587#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
589588#: qml/Wizard/Pages/50-location.qml:103
@@ -691,7 +690,8 @@ msgstr "%1 〉"
691690#~ msgstr "Pinggir kiri"
692691
693692#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
694−#~ msgstr "Leret dari kiri untuk munculkan pelancar untuk capaian pantas ke apl"
693+#~ msgstr ""
694+#~ "Leret dari kiri untuk munculkan pelancar untuk capaian pantas ke apl"
695695
696696#~ msgid "Well done"
697697#~ msgstr "Bagus"
po/my.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: my\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/nb.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: nb\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/ne.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ne\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/nl.po+8−6
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: nl\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -717,7 +718,8 @@ msgstr "%1 〉"
717718#~ msgstr "Linkerrand"
718719
719720#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
720−#~ msgstr "Veeg vanaf links om de Starter te tonen voor snelle toegang tot apps"
721+#~ msgstr ""
722+#~ "Veeg vanaf links om de Starter te tonen voor snelle toegang tot apps"
721723
722724#~ msgid "Right edge"
723725#~ msgstr "Rechterrand"
@@ -726,8 +728,8 @@ msgstr "%1 〉"
726728#~ "You have now mastered the edge gestures and can start using the "
727729#~ "phone<br><br>Tap on the screen to start"
728730#~ msgstr ""
729−#~ "Nu u de bewegingen vanuit de randen onder de knie heeft, kunt u beginnen met "
730−#~ "het gebruiken van de telefoon<br><br>Tik op het scherm om te beginnen"
731+#~ "Nu u de bewegingen vanuit de randen onder de knie heeft, kunt u beginnen "
732+#~ "met het gebruiken van de telefoon<br><br>Tik op het scherm om te beginnen"
731733
732734#~ msgid "Try swiping from the top edge to access the indicators"
733735#~ msgstr "Veeg vanuit de bovenrand om de indicatoren te bekijken"
po/nn.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: nn\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/oc.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: \n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/or.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: or\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n!=1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/pa.po+13−15
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: pa\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -291,16 +292,16 @@ msgid ""
291292"If passphrase is entered incorrectly, your phone will conduct a factory "
292293"reset and all personal data will be deleted."
293294msgstr ""
294−"ਜੇਕਰ ਗਲਤ ਵਾਕ ਦਰਜ ਹੋਇਆ, ਤੁਹਾਡਾ ਫ਼ੋਨ ਇੱਕ ਫ਼ੋਨ ਇੱਕ ਫ਼ੈਕਟਰੀ ਰੀਸੈੱਟ ਚਾਲੂ ਕਰੇਗਾ ਅਤੇ "
295−"ਸਾਰਾ ਨਿੱਜੀ ਡਾਟਾ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।"
295+"ਜੇਕਰ ਗਲਤ ਵਾਕ ਦਰਜ ਹੋਇਆ, ਤੁਹਾਡਾ ਫ਼ੋਨ ਇੱਕ ਫ਼ੋਨ ਇੱਕ ਫ਼ੈਕਟਰੀ ਰੀਸੈੱਟ ਚਾਲੂ ਕਰੇਗਾ ਅਤੇ ਸਾਰਾ ਨਿੱਜੀ ਡਾਟਾ "
296+"ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।"
296297
297298#: qml/Greeter/NarrowView.qml:59
298299msgid ""
299300"If passcode is entered incorrectly, your phone will conduct a factory reset "
300301"and all personal data will be deleted."
301302msgstr ""
302−"ਜੇਕਰ ਗਲਤ ਪਾਸਕੋਡ ਦਰਜ ਹੋਇਆ, ਤੁਹਾਡਾ ਫ਼ੋਨ ਇੱਕ ਫ਼ੋਨ ਇੱਕ ਫ਼ੈਕਟਰੀ ਰੀਸੈੱਟ ਚਾਲੂ ਕਰੇਗਾ "
303−"ਅਤੇ ਸਾਰਾ ਨਿੱਜੀ ਡਾਟਾ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।"
303+"ਜੇਕਰ ਗਲਤ ਪਾਸਕੋਡ ਦਰਜ ਹੋਇਆ, ਤੁਹਾਡਾ ਫ਼ੋਨ ਇੱਕ ਫ਼ੋਨ ਇੱਕ ਫ਼ੈਕਟਰੀ ਰੀਸੈੱਟ ਚਾਲੂ ਕਰੇਗਾ ਅਤੇ ਸਾਰਾ ਨਿੱਜੀ "
304+"ਡਾਟਾ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।"
304305
305306#: qml/Greeter/NarrowView.qml:116
306307#, qt-format
@@ -523,8 +524,7 @@ msgstr "ਲਾਕ ਸੁਰੱਖਿਆ"
523524
524525#: qml/Wizard/Pages/30-passwd-type.qml:74
525526msgid "Please select how you’d like to unlock your phone."
526−msgstr ""
527−"ਕਿਰਪਾ ਕਰਕੇ ਚੁਣੋ ਤੁਸੀਂ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਕਿਸ ਤਰ੍ਹਾਂ ਅਣ-ਲਾਕ ਕਰਨਾ ਪਸੰਦ ਕਰੋਗੇ।"
527+msgstr "ਕਿਰਪਾ ਕਰਕੇ ਚੁਣੋ ਤੁਸੀਂ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਕਿਸ ਤਰ੍ਹਾਂ ਅਣ-ਲਾਕ ਕਰਨਾ ਪਸੰਦ ਕਰੋਗੇ।"
528528
529529#: qml/Wizard/Pages/30-passwd-type.qml:97
530530msgctxt "Label: Type of security method"
@@ -590,8 +590,7 @@ msgid ""
590590"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
591591"conditions</a>."
592592msgstr ""
593−"ਇਸ ਵਿਕਲਪ ਨੂੰ ਚੁਣਨ ਦੁਆਰਾ, ਤੁਸੀਂ ਨੋਕੀਆ HERE <a href='#'>ਨਿਯਮ ਅਤੇ ਸ਼ਰਤਾਂ</a>ਨੂੰ "
594−"ਪ੍ਰਵਾਨ ਕਰਦੇ ਹੋ।"
593+"ਇਸ ਵਿਕਲਪ ਨੂੰ ਚੁਣਨ ਦੁਆਰਾ, ਤੁਸੀਂ ਨੋਕੀਆ HERE <a href='#'>ਨਿਯਮ ਅਤੇ ਸ਼ਰਤਾਂ</a>ਨੂੰ ਪ੍ਰਵਾਨ ਕਰਦੇ ਹੋ।"
595594
596595#: qml/Wizard/Pages/50-location.qml:112
597596msgid "Not at all"
@@ -610,16 +609,15 @@ msgid ""
610609"Your phone is set up to automatically report errors to Canonical and its "
611610"partners, the makers of the operating system."
612611msgstr ""
613−"ਤੁਹਾਡੇ ਫ਼ੋਨ ਨੂੰ ਕੈਨੋਨੀਕਲ ਅਤੇ ਉਸਦੇ ਸਾਥੀਆਂ, ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੇ ਨਿਰਮਾਤਾਵਾਂ ਨੂੰ "
614−"ਆਪਣੇ ਆਪ ਖਾਮੀ ਸੂਚਨਾਵਾਂ ਭੇਜਣ ਲਈ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ।"
612+"ਤੁਹਾਡੇ ਫ਼ੋਨ ਨੂੰ ਕੈਨੋਨੀਕਲ ਅਤੇ ਉਸਦੇ ਸਾਥੀਆਂ, ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੇ ਨਿਰਮਾਤਾਵਾਂ ਨੂੰ ਆਪਣੇ ਆਪ ਖਾਮੀ ਸੂਚਨਾਵਾਂ "
613+"ਭੇਜਣ ਲਈ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ।"
615614
616615#: qml/Wizard/Pages/60-reporting.qml:53
617616msgid ""
618617"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
619618"Privacy</b>"
620619msgstr ""
621−"ਇਸ ਨੂੰ <b>ਸਿਸਟਮ ਸੈਟਿੰਗ</b> ਅਧੀਨ <b>ਸੁਰੱਖਿਆ &amp; ਪਰਦੇਦਾਰੀ</b>ਵਿੱਚ ਬੰਦ ਕੀਤਾ "
622−"ਜਾ ਸਕਦਾ"
620+"ਇਸ ਨੂੰ <b>ਸਿਸਟਮ ਸੈਟਿੰਗ</b> ਅਧੀਨ <b>ਸੁਰੱਖਿਆ &amp; ਪਰਦੇਦਾਰੀ</b>ਵਿੱਚ ਬੰਦ ਕੀਤਾ ਜਾ ਸਕਦਾ"
623621
624622#: qml/Wizard/Pages/80-finished.qml:24
625623msgid "All done"
po/pl.po+8−7
@@ -6,18 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: pl\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
1819"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
20+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
21+"X-Generator: Launchpad (build 17886)\n"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
@@ -715,8 +716,8 @@ msgstr "%1 〉"
715716
716717#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
717718#~ msgstr ""
718−#~ "Przeciągnięcie od lewej krawędzi, uruchamia aktywator szybkiego dostępu do "
719−#~ "aplikacji"
719+#~ "Przeciągnięcie od lewej krawędzi, uruchamia aktywator szybkiego dostępu "
720+#~ "do aplikacji"
720721
721722#~ msgid "Well done"
722723#~ msgstr "Udało się!"
@@ -731,8 +732,8 @@ msgstr "%1 〉"
731732#~ "You have now mastered the edge gestures and can start using the "
732733#~ "phone<br><br>Tap on the screen to start"
733734#~ msgstr ""
734−#~ "Wydawanie poleceń krawędzi zostało opanowane. Urządzenie gotowe do "
735−#~ "pracy.<br><br>Dotknij ekranu by rozpocząć"
735+#~ "Wydawanie poleceń krawędzi zostało opanowane. Urządzenie gotowe do pracy."
736+#~ "<br><br>Dotknij ekranu by rozpocząć"
736737
737738#~ msgid "Log out"
738739#~ msgstr "Wyloguj"
po/pt.po+11−9
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: pt\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-21 05:34+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -42,14 +43,14 @@ msgstr "Dispositivo bloqueado"
4243#: qml/Components/DelayedLockscreen.qml:64
4344msgid "You have been locked out due to too many failed passphrase attempts."
4445msgstr ""
45−"Está bloqueado devido a diversas tentativas falhadas na introdução da "
46−"palavra-passe."
46+"Está bloqueado por diversas tentativas falhadas na introdução da palavra-"
47+"passe."
4748
4849#: qml/Components/DelayedLockscreen.qml:65
4950msgid "You have been locked out due to too many failed passcode attempts."
5051msgstr ""
51−"Está bloqueado devido a diversas tentativas falhadas na introdução do código "
52−"de segurança."
52+"Está bloqueado por diversas tentativas falhadas na introdução do código de "
53+"segurança."
5354
5455#: qml/Components/DelayedLockscreen.qml:74
5556#, qt-format
@@ -159,7 +160,7 @@ msgstr "Apps podem ter informação não guardada:"
159160
160161#: qml/Components/ModeSwitchWarningDialog.qml:57
161162msgid "Re-dock, save your work and close these apps to continue."
162−msgstr ""
163+msgstr "Volte a ligar, guarda o seu trabalho e feche as apps para continuar."
163164
164165#: qml/Components/ModeSwitchWarningDialog.qml:63
165166msgid "Or force close now (unsaved data will be lost)."
@@ -794,7 +795,8 @@ msgstr "%1 〉"
794795
795796#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
796797#~ msgstr ""
797−#~ "Deslize da margem esquerda para mostrar o Launcher de acesso rápido às apps"
798+#~ "Deslize da margem esquerda para mostrar o Launcher de acesso rápido às "
799+#~ "apps"
798800
799801#~ msgid ""
800802#~ "You have now mastered the edge gestures and can start using the "
po/pt_BR.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: pt_BR\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/ro.po+6−7
@@ -6,18 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ro\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
1819"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
20+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
21+"X-Generator: Launchpad (build 17886)\n"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
@@ -521,8 +522,7 @@ msgstr "Adăugați un card SIM și reporniți dispozitivul dumneavoastră"
521522
522523#: qml/Wizard/Pages/20-sim.qml:59
523524msgid "Without it, you won’t be able to make calls or use text messaging."
524−msgstr ""
525−"Fără acesta, nu veți putea efectua apeluri sau utiliza mesajele text."
525+msgstr "Fără acesta, nu veți putea efectua apeluri sau utiliza mesajele text."
526526
527527#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
528528msgid "Skip"
@@ -611,8 +611,7 @@ msgstr "Deloc"
611611
612612#: qml/Wizard/Pages/50-location.qml:124
613613msgid "You can change your mind later in <b>System Settings</b>."
614−msgstr ""
615−"Puteți să modificați opțiunea utilizând <b>Configurări de sistem</b>."
614+msgstr "Puteți să modificați opțiunea utilizând <b>Configurări de sistem</b>."
616615
617616#: qml/Wizard/Pages/60-reporting.qml:26
618617msgid "Improving your experience"
po/ru.po+11−10
@@ -6,18 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ru\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
17−"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18−"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
18+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
19+"%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"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
@@ -609,8 +610,7 @@ msgstr "Нет (никогда)"
609610
610611#: qml/Wizard/Pages/50-location.qml:124
611612msgid "You can change your mind later in <b>System Settings</b>."
612−msgstr ""
613−"Изменить свой выбор можно позднее, перейдя в <b>Параметры системы</b>."
613+msgstr "Изменить свой выбор можно позднее, перейдя в <b>Параметры системы</b>."
614614
615615#: qml/Wizard/Pages/60-reporting.qml:26
616616msgid "Improving your experience"
@@ -716,7 +716,8 @@ msgstr "%1 〉"
716716
717717#~ msgid "Try swiping from the top edge to access the indicators"
718718#~ msgstr ""
719−#~ "Попробуйте переместить палец от верхнего края вниз для доступа к индикаторам"
719+#~ "Попробуйте переместить палец от верхнего края вниз для доступа к "
720+#~ "индикаторам"
720721
721722#~ msgid "Close"
722723#~ msgstr "Закрыть"
@@ -735,8 +736,8 @@ msgstr "%1 〉"
735736
736737#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
737738#~ msgstr ""
738−#~ "Переместите палец от левого края вправо для открытия лаунчера для быстрого "
739−#~ "доступа к приложениям"
739+#~ "Переместите палец от левого края вправо для открытия лаунчера для "
740+#~ "быстрого доступа к приложениям"
740741
741742#~ msgid ""
742743#~ "You have now mastered the edge gestures and can start using the "
po/shn.po+18−18
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: \n"
10−"POT-Creation-Date: 2015-11-20 14:45+0100\n"
10+"POT-Creation-Date: 2015-12-08 15:42+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"
@@ -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) ? 0 : 1;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -195,15 +195,15 @@ msgstr ""
195195msgid "Add to Favorites"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:569 qml/Dash/GenericScopeView.qml:727
198+#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199199msgid "See less"
200200msgstr ""
201201
202−#: qml/Dash/GenericScopeView.qml:569
202+#: qml/Dash/GenericScopeView.qml:576
203203msgid "See all"
204204msgstr ""
205205
206−#: qml/Dash/GenericScopeView.qml:631
206+#: qml/Dash/GenericScopeView.qml:638
207207msgctxt "Label: Hint for dash search line edit"
208208msgid "Search"
209209msgstr ""
@@ -423,14 +423,6 @@ msgstr ""
423423msgid "Roaming"
424424msgstr ""
425425
426−#: qml/Tutorial/TutorialBottomFinish.qml:24
427−msgid "This action does different things for different apps"
428−msgstr ""
429−
430−#: qml/Tutorial/TutorialBottomFinish.qml:25
431−msgid "Tap here to finish."
432−msgstr ""
433−
434426#: qml/Tutorial/TutorialBottom.qml:28
435427msgid "Open special menus"
436428msgstr ""
@@ -439,15 +431,19 @@ msgstr ""
439431msgid "Swipe up from the bottom edge."
440432msgstr ""
441433
434+#: qml/Tutorial/TutorialBottomFinish.qml:24
435+msgid "This action does different things for different apps"
436+msgstr ""
437+
438+#: qml/Tutorial/TutorialBottomFinish.qml:25
439+msgid "Tap here to finish."
440+msgstr ""
441+
442442#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
443443#: qml/Tutorial/TutorialRight.qml:144
444444msgid "Tap here to continue."
445445msgstr ""
446446
447−#: qml/Tutorial/TutorialLeftFinish.qml:24
448−msgid "These are the shortcuts to favorite apps"
449−msgstr ""
450−
451447#: qml/Tutorial/TutorialLeft.qml:26
452448msgid "Open the launcher"
453449msgstr ""
@@ -456,6 +452,10 @@ msgstr ""
456452msgid "Short swipe from the left edge."
457453msgstr ""
458454
455+#: qml/Tutorial/TutorialLeftFinish.qml:24
456+msgid "These are the shortcuts to favorite apps"
457+msgstr ""
458+
459459#: qml/Tutorial/TutorialPage.qml:178
460460msgid "You almost got it!"
461461msgstr ""
po/si.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: \n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/sk.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: sk\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/sl.po+6−5
@@ -6,18 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: sl\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
17−"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
18−"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
18+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
19+"%100==4 ? 3 : 0);\n"
20+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
21+"X-Generator: Launchpad (build 17886)\n"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
po/sq.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: sq\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:44+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/sr.po+6−6
@@ -7,19 +7,19 @@
77msgid ""
88msgstr ""
99"Project-Id-Version: unity\n"
10−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10+"Report-Msgid-Bugs-To: \n"
1111"POT-Creation-Date: 2015-12-08 15:42+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"
15+"Language: sr\n"
1516"MIME-Version: 1.0\n"
1617"Content-Type: text/plain; charset=UTF-8\n"
1718"Content-Transfer-Encoding: 8bit\n"
18−"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
19−"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
20−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
21−"X-Generator: Launchpad (build 17865)\n"
22−"Language: sr\n"
19+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
20+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
21+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
22+"X-Generator: Launchpad (build 17886)\n"
2323
2424#: plugins/IntegratedLightDM/Greeter.cpp:112
2525msgid "Password: "
po/sv.po+8−10
@@ -6,18 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: sv\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
20−"Language: sv\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -512,8 +512,7 @@ msgstr "Lägg till ett SIM-kort och starta om din enhet"
512512
513513#: qml/Wizard/Pages/20-sim.qml:59
514514msgid "Without it, you won’t be able to make calls or use text messaging."
515−msgstr ""
516−"Utan det kommer du inte att kunna ringa eller skicka textmeddelanden."
515+msgstr "Utan det kommer du inte att kunna ringa eller skicka textmeddelanden."
517516
518517#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
519518msgid "Skip"
@@ -583,8 +582,7 @@ msgstr "Använd endast GPS (sämre precision)"
583582
584583#: qml/Wizard/Pages/50-location.qml:86
585584msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
586−msgstr ""
587−"Använd GPS, anonymiserad Wi-Fi och mobil nätverksinfo (rekommenderas)"
585+msgstr "Använd GPS, anonymiserad Wi-Fi och mobil nätverksinfo (rekommenderas)"
588586
589587#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
590588#: qml/Wizard/Pages/50-location.qml:103
@@ -592,8 +590,8 @@ msgid ""
592590"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
593591"conditions</a>."
594592msgstr ""
595−"Genom att välja detta alternativ godkänner du <a "
596−"href='#'>användarvillkoren</a> för Nokia HERE."
593+"Genom att välja detta alternativ godkänner du <a href='#'>användarvillkoren</"
594+"a> för Nokia HERE."
597595
598596#: qml/Wizard/Pages/50-location.qml:112
599597msgid "Not at all"
po/sw.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: sw\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/ta.po+4−4
@@ -6,18 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ta\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
20−"Language: ta\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
po/te.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: te\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/th.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: th\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/tr.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: tr\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/ug.po+6−5
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: \n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -721,8 +722,8 @@ msgstr "%1 〉"
721722#~ "You have now mastered the edge gestures and can start using the "
722723#~ "phone<br><br>Tap on the screen to start"
723724#~ msgstr ""
724−#~ "ئېكراننى چېكىپ باشلاڭ<br><br>سىز ھازىر گىرۋەك بارماق ئىشارەتلىرىنى ئىگىلەپ "
725−#~ "بولدىڭىز،ئەمدى تېلېفوننى ئىشلىتىشنى باشلىسىڭىز بولىدۇ"
725+#~ "ئېكراننى چېكىپ باشلاڭ<br><br>سىز ھازىر گىرۋەك بارماق ئىشارەتلىرىنى "
726+#~ "ئىگىلەپ بولدىڭىز،ئەمدى تېلېفوننى ئىشلىتىشنى باشلىسىڭىز بولىدۇ"
726727
727728#~ msgid "Log out"
728729#~ msgstr "تىزىمدىن چىق"
po/uk.po+10−8
@@ -6,18 +6,19 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: uk\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
17−"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18−"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
20−"X-Generator: Launchpad (build 17865)\n"
18+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
19+"%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"
2122
2223#: plugins/IntegratedLightDM/Greeter.cpp:112
2324msgid "Password: "
@@ -732,7 +733,8 @@ msgstr "%1 〉"
732733#~ msgstr "Пропустити вступ"
733734
734735#~ msgid "Try swiping from the right edge to unlock the phone"
735−#~ msgstr "Спробуйте провести пальцем від правою краю, щоб розблокувати телефон"
736+#~ msgstr ""
737+#~ "Спробуйте провести пальцем від правою краю, щоб розблокувати телефон"
736738
737739#~ msgid "Right edge"
738740#~ msgstr "Правий край"
@@ -741,8 +743,8 @@ msgstr "%1 〉"
741743#~ "You have now mastered the edge gestures and can start using the "
742744#~ "phone<br><br>Tap on the screen to start"
743745#~ msgstr ""
744−#~ "Вами налаштовано дії у відповідь на дотики на краях екрана. Тепер телефоном "
745−#~ "можна користуватися.<br><br>Торкніться екрана, щоб розпочати."
746+#~ "Вами налаштовано дії у відповідь на дотики на краях екрана. Тепер "
747+#~ "телефоном можна користуватися.<br><br>Торкніться екрана, щоб розпочати."
746748
747749#~ msgid "All"
748750#~ msgstr "Все"
po/unity8.pot+28−28
@@ -1,6 +1,6 @@
11# SOME DESCRIPTIVE TITLE.
22# Copyright (C) YEAR Canonical Ltd.
3−# This file is distributed under the same license as the PACKAGE package.
3+# This file is distributed under the same license as the unity8 package.
44# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
55#
66#, fuzzy
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2015-12-08 15:42+0000\n"
11+"POT-Creation-Date: 2016-01-11 17:43+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"
@@ -171,26 +171,26 @@ msgstr ""
171171msgid "Close all"
172172msgstr ""
173173
174−#: qml/Dash/DashPageHeader.qml:265
174+#: qml/Dash/DashPageHeader.qml:266
175175msgctxt "Button: Open the Ubuntu Store"
176176msgid "Store"
177177msgstr ""
178178
179−#: qml/Dash/DashPageHeader.qml:272
179+#: qml/Dash/DashPageHeader.qml:273
180180msgctxt "Button: Start a search in the current dash scope"
181181msgid "Search"
182182msgstr ""
183183
184−#: qml/Dash/DashPageHeader.qml:282
184+#: qml/Dash/DashPageHeader.qml:283
185185msgctxt "Button: Show the current dash scope settings"
186186msgid "Settings"
187187msgstr ""
188188
189−#: qml/Dash/DashPageHeader.qml:289
189+#: qml/Dash/DashPageHeader.qml:290
190190msgid "Remove from Favorites"
191191msgstr ""
192192
193−#: qml/Dash/DashPageHeader.qml:289
193+#: qml/Dash/DashPageHeader.qml:290
194194msgid "Add to Favorites"
195195msgstr ""
196196
@@ -228,7 +228,7 @@ msgstr ""
228228msgid "Add a review"
229229msgstr ""
230230
231−#: qml/Dash/Previews/PreviewSharing.qml:51
231+#: qml/Dash/Previews/PreviewSharing.qml:50
232232msgid "Preview Share Item"
233233msgstr ""
234234
@@ -339,62 +339,62 @@ msgstr ""
339339msgid "Conference"
340340msgstr ""
341341
342−#: qml/Panel/Indicators/MenuItemFactory.qml:731
342+#: qml/Panel/Indicators/MenuItemFactory.qml:753
343343msgid "Nothing is playing"
344344msgstr ""
345345
346−#: qml/Panel/Indicators/MenuItemFactory.qml:860
346+#: qml/Panel/Indicators/MenuItemFactory.qml:882
347347#, qt-format
348348msgid "%1 hour"
349349msgid_plural "%1 hours"
350350msgstr[0] ""
351351msgstr[1] ""
352352
353−#: qml/Panel/Indicators/MenuItemFactory.qml:864
353+#: qml/Panel/Indicators/MenuItemFactory.qml:886
354354#, qt-format
355355msgid "%1 minute"
356356msgid_plural "%1 minutes"
357357msgstr[0] ""
358358msgstr[1] ""
359359
360−#: qml/Panel/Indicators/MenuItemFactory.qml:869
360+#: qml/Panel/Indicators/MenuItemFactory.qml:891
361361#, qt-format
362362msgid "%1 second"
363363msgid_plural "%1 seconds"
364364msgstr[0] ""
365365msgstr[1] ""
366366
367−#: qml/Panel/Indicators/MenuItemFactory.qml:872
367+#: qml/Panel/Indicators/MenuItemFactory.qml:894
368368msgid "0 seconds"
369369msgstr ""
370370
371371#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
372−#: qml/Panel/Indicators/MenuItemFactory.qml:874
372+#: qml/Panel/Indicators/MenuItemFactory.qml:896
373373#, qt-format
374374msgid "%1 remaining"
375375msgstr ""
376376
377−#: qml/Panel/Indicators/MenuItemFactory.qml:880
377+#: qml/Panel/Indicators/MenuItemFactory.qml:902
378378msgid "In queue…"
379379msgstr ""
380380
381−#: qml/Panel/Indicators/MenuItemFactory.qml:884
381+#: qml/Panel/Indicators/MenuItemFactory.qml:906
382382msgid "Downloading"
383383msgstr ""
384384
385−#: qml/Panel/Indicators/MenuItemFactory.qml:886
385+#: qml/Panel/Indicators/MenuItemFactory.qml:908
386386msgid "Paused, tap to resume"
387387msgstr ""
388388
389−#: qml/Panel/Indicators/MenuItemFactory.qml:888
389+#: qml/Panel/Indicators/MenuItemFactory.qml:910
390390msgid "Canceled"
391391msgstr ""
392392
393−#: qml/Panel/Indicators/MenuItemFactory.qml:890
393+#: qml/Panel/Indicators/MenuItemFactory.qml:912
394394msgid "Finished"
395395msgstr ""
396396
397−#: qml/Panel/Indicators/MenuItemFactory.qml:892
397+#: qml/Panel/Indicators/MenuItemFactory.qml:914
398398msgid "Failed, tap to retry"
399399msgstr ""
400400
@@ -492,7 +492,7 @@ msgstr ""
492492msgid "Let’s get started."
493493msgstr ""
494494
495−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:128
495+#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
496496#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
497497#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
498498#: qml/Wizard/Pages/passwd-set.qml:90
@@ -515,36 +515,36 @@ msgstr ""
515515msgid "Lock security"
516516msgstr ""
517517
518−#: qml/Wizard/Pages/30-passwd-type.qml:74
518+#: qml/Wizard/Pages/30-passwd-type.qml:79
519519msgid "Please select how you’d like to unlock your phone."
520520msgstr ""
521521
522−#: qml/Wizard/Pages/30-passwd-type.qml:97
522+#: qml/Wizard/Pages/30-passwd-type.qml:102
523523msgctxt "Label: Type of security method"
524524msgid "Swipe"
525525msgstr ""
526526
527−#: qml/Wizard/Pages/30-passwd-type.qml:98
527+#: qml/Wizard/Pages/30-passwd-type.qml:103
528528msgctxt "Label: Description of security method"
529529msgid "No security"
530530msgstr ""
531531
532−#: qml/Wizard/Pages/30-passwd-type.qml:100
532+#: qml/Wizard/Pages/30-passwd-type.qml:105
533533msgctxt "Label: Type of security method"
534534msgid "Passcode"
535535msgstr ""
536536
537−#: qml/Wizard/Pages/30-passwd-type.qml:101
537+#: qml/Wizard/Pages/30-passwd-type.qml:106
538538msgctxt "Label: Description of security method"
539539msgid "4 digits only"
540540msgstr ""
541541
542−#: qml/Wizard/Pages/30-passwd-type.qml:103
542+#: qml/Wizard/Pages/30-passwd-type.qml:108
543543msgctxt "Label: Type of security method"
544544msgid "Passphrase"
545545msgstr ""
546546
547−#: qml/Wizard/Pages/30-passwd-type.qml:104
547+#: qml/Wizard/Pages/30-passwd-type.qml:109
548548msgctxt "Label: Description of security method"
549549msgid "Numbers and letters"
550550msgstr ""
po/ur.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: ur\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/uz.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: uz\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/vi.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: vi\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/wo.po+7−7
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: wo\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -579,8 +580,7 @@ msgstr "Ci jëfandikoo GPS kepp (gën a ñawadi)"
579580
580581#: qml/Wizard/Pages/50-location.qml:86
581582msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
582−msgstr ""
583−"Jëfandikoo GPS, wi-fi buñ xamul ak xibaaru mbaalu wootekaay (digalees)"
583+msgstr "Jëfandikoo GPS, wi-fi buñ xamul ak xibaaru mbaalu wootekaay (digalees)"
584584
585585#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
586586#: qml/Wizard/Pages/50-location.qml:103
@@ -729,8 +729,8 @@ msgstr "%1 〉"
729729#~ "You have now mastered the edge gestures and can start using the "
730730#~ "phone<br><br>Tap on the screen to start"
731731#~ msgstr ""
732−#~ "Léegi nàng nga bu baax kon man nga tàmbali jëfandikoo wootekaay bi <br><br> "
733−#~ "Bësal ci xoolu bi ngir tàmbali"
732+#~ "Léegi nàng nga bu baax kon man nga tàmbali jëfandikoo wootekaay bi "
733+#~ "<br><br> Bësal ci xoolu bi ngir tàmbali"
734734
735735#~ msgid "Store"
736736#~ msgstr "Ja"
po/xh.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: xh\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/zh_CN.po+12−7
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: \n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
@@ -289,13 +290,15 @@ msgstr "这是您最后的尝试机会。"
289290msgid ""
290291"If passphrase is entered incorrectly, your phone will conduct a factory "
291292"reset and all personal data will be deleted."
292−msgstr "如果输入的密语不正确,您的手机将恢复到出厂设置并且所有的个人数据将被删除。"
293+msgstr ""
294+"如果输入的密语不正确,您的手机将恢复到出厂设置并且所有的个人数据将被删除。"
293295
294296#: qml/Greeter/NarrowView.qml:59
295297msgid ""
296298"If passcode is entered incorrectly, your phone will conduct a factory reset "
297299"and all personal data will be deleted."
298−msgstr "如果输入的密码不正确,您的手机将恢复到出厂设置并且所有的个人数据将被删除。"
300+msgstr ""
301+"如果输入的密码不正确,您的手机将恢复到出厂设置并且所有的个人数据将被删除。"
299302
300303#: qml/Greeter/NarrowView.qml:116
301304#, qt-format
@@ -598,7 +601,8 @@ msgstr "改善您的体验"
598601msgid ""
599602"Your phone is set up to automatically report errors to Canonical and its "
600603"partners, the makers of the operating system."
601−msgstr "您的手机设置为自动向操作系统的制造商Canonical 及其合作伙伴发送错误报告。"
604+msgstr ""
605+"您的手机设置为自动向操作系统的制造商Canonical 及其合作伙伴发送错误报告。"
602606
603607#: qml/Wizard/Pages/60-reporting.qml:53
604608msgid ""
@@ -710,7 +714,8 @@ msgstr "%1 〉"
710714#~ msgid ""
711715#~ "You have now mastered the edge gestures and can start using the "
712716#~ "phone<br><br>Tap on the screen to start"
713−#~ msgstr "您现在已经掌握了边缘滑动手势,可以开始使用手机了<br><br>请点击屏幕开始使用"
717+#~ msgstr ""
718+#~ "您现在已经掌握了边缘滑动手势,可以开始使用手机了<br><br>请点击屏幕开始使用"
714719
715720#~ msgid "All"
716721#~ msgstr "所有"
po/zh_HK.po+4−3
@@ -6,17 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: zh_HK\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2021
2122#: plugins/IntegratedLightDM/Greeter.cpp:112
2223msgid "Password: "
po/zh_TW.po+13−11
@@ -6,18 +6,18 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9+"Report-Msgid-Bugs-To: \n"
1010"POT-Creation-Date: 2015-12-08 15:42+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"
14+"Language: zh_TW\n"
1415"MIME-Version: 1.0\n"
1516"Content-Type: text/plain; charset=UTF-8\n"
1617"Content-Transfer-Encoding: 8bit\n"
1718"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2015-12-12 05:45+0000\n"
19−"X-Generator: Launchpad (build 17865)\n"
20−"Language: zh_TW\n"
19+"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
20+"X-Generator: Launchpad (build 17886)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -153,19 +153,19 @@ msgstr "可能未儲存資料的程式:"
153153
154154#: qml/Components/ModeSwitchWarningDialog.qml:57
155155msgid "Re-dock, save your work and close these apps to continue."
156−msgstr ""
156+msgstr "重新靠鎖,儲存您的工作項目及關閉相關應用程式後繼續."
157157
158158#: qml/Components/ModeSwitchWarningDialog.qml:63
159159msgid "Or force close now (unsaved data will be lost)."
160−msgstr ""
160+msgstr "或強制關閉 (未儲存的資料即將遺失)"
161161
162162#: qml/Components/ModeSwitchWarningDialog.qml:75
163163msgid "OK, I will reconnect"
164−msgstr ""
164+msgstr "好的,我將重新連線"
165165
166166#: qml/Components/ModeSwitchWarningDialog.qml:76
167167msgid "Reconnect now!"
168−msgstr ""
168+msgstr "即刻重新連線!"
169169
170170#: qml/Components/ModeSwitchWarningDialog.qml:88
171171msgid "Close all"
@@ -230,7 +230,7 @@ msgstr "新增評論"
230230
231231#: qml/Dash/Previews/PreviewSharing.qml:51
232232msgid "Preview Share Item"
233−msgstr ""
233+msgstr "預覽分享的項目"
234234
235235#: qml/Dash/PullToRefreshScopeStyle.qml:55
236236msgid "Pull to refresh…"
@@ -258,7 +258,7 @@ msgstr "也有安裝"
258258
259259#: qml/DisabledScreenNotice.qml:42
260260msgid "Your device is now connected to an external display."
261−msgstr ""
261+msgstr "您的裝目前已經連線到外部的螢幕."
262262
263263#: qml/Greeter/CoverPage.qml:107
264264msgid "Unlock"
@@ -597,7 +597,9 @@ msgstr "改善您的使用體驗"
597597msgid ""
598598"Your phone is set up to automatically report errors to Canonical and its "
599599"partners, the makers of the operating system."
600−msgstr "您的手機已設置為會自動向 Canonical 及其合作夥伴 (作業系統的製作者) 回報錯誤問題。"
600+msgstr ""
601+"您的手機已設置為會自動向 Canonical 及其合作夥伴 (作業系統的製作者) 回報錯誤問"
602+"題。"
601603
602604#: qml/Wizard/Pages/60-reporting.qml:53
603605msgid ""
qml/Dash/DashPageHeader.qml+1
@@ -102,6 +102,7 @@ Item {
102102 "edgeMargins": units.gu(1)
103103 }
104104 );
105+ searchTextField.forceActiveFocus();
105106 }
106107 }
107108
qml/Dash/Previews/PreviewAudioPlayback.qml+16−76
@@ -15,8 +15,8 @@
1515 */
1616
1717import QtQuick 2.4
18−import QtMultimedia 5.0
1918import Ubuntu.Components 1.3
19+import Dash 0.1
2020
2121/*! \brief Preview widget for audio tracks.
2222
@@ -36,38 +36,6 @@ PreviewWidget {
3636 id: root
3737 implicitHeight: childrenRect.height
3838
39− onIsCurrentPreviewChanged: if (!isCurrentPreview) audio.stop()
40−
41− Audio {
42− id: audio
43− objectName: "audio"
44−
45− property real progress: audio.position / audio.duration
46− property Item playingItem
47−
48− Component.onDestruction: {
49− // destroying the component doesn't automatically send stop to the media service, probably a bug in QtMultimedia
50− audio.stop();
51− }
52−
53− onErrorStringChanged: console.warn("Audio player error:", errorString)
54−
55− function lengthToString(s) {
56− if (typeof(s) !== "number" || s <= 0) return "";
57−
58− var sec = "" + s % 60;
59− if (sec.length == 1) sec = "0" + sec;
60− var hour = Math.floor(s / 3600);
61− if (hour < 1) {
62− return Math.floor(s / 60) + ":" + sec;
63− } else {
64− var min = "" + Math.floor(s / 60) % 60;
65− if (min.length == 1) min = "0" + min;
66− return hour + ":" + min + ":" + sec;
67− }
68− }
69− }
70−
7139 Column {
7240 anchors { left: parent.left; right: parent.right }
7341 visible: trackRepeater.count > 0
@@ -77,20 +45,12 @@ PreviewWidget {
7745 objectName: "trackRepeater"
7846 model: root.widgetData["tracks"]
7947
80− function play(item, source) {
81− audio.stop();
82− // Make sure we change the source, even if two items point to the same uri location
83− audio.source = "";
84− audio.source = source;
85− audio.playingItem = item;
86− audio.play();
87− }
88−
8948 delegate: Item {
9049 id: trackItem
9150 objectName: "trackItem" + index
9251
93− property bool isPlayingItem: audio.playingItem == trackItem
52+ readonly property url sourceUrl: modelData["source"]
53+ readonly property bool isPlayingItem: AudioUrlComparer.compare(sourceUrl, DashAudioPlayer.currentSource)
9454
9555 anchors { left: parent.left; right: parent.right }
9656 height: units.gu(5)
@@ -98,9 +58,9 @@ PreviewWidget {
9858 Row {
9959 id: trackRow
10060
101− property int column1Width: units.gu(3)
102− property int column2Width: width - (2 * spacing) - column1Width - column3Width
103− property int column3Width: units.gu(4)
61+ readonly property int column1Width: units.gu(3)
62+ readonly property int column2Width: width - (2 * spacing) - column1Width - column3Width
63+ readonly property int column3Width: units.gu(4)
10464
10565 anchors.verticalCenter: parent.verticalCenter
10666 width: parent.width
@@ -110,7 +70,7 @@ PreviewWidget {
11070 objectName: "playButton"
11171 width: trackRow.column1Width
11272 height: width
113− iconSource: audio.playbackState == Audio.PlayingState && trackItem.isPlayingItem ? "image://theme/media-playback-pause" : "image://theme/media-playback-start"
73+ iconSource: DashAudioPlayer.playing && trackItem.isPlayingItem ? "image://theme/media-playback-pause" : "image://theme/media-playback-start"
11474
11575 // Can't be "transparent" or "#00xxxxxx" as the button optimizes away the surrounding shape
11676 // FIXME when this is resolved: https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1251685
@@ -118,13 +78,13 @@ PreviewWidget {
11878
11979 onClicked: {
12080 if (trackItem.isPlayingItem) {
121− if (audio.playbackState == Audio.PlayingState) {
122− audio.pause();
123− } else if (audio.playbackState == Audio.PausedState) {
124− audio.play();
81+ if (DashAudioPlayer.playing) {
82+ DashAudioPlayer.pause();
83+ } else if (DashAudioPlayer.paused) {
84+ DashAudioPlayer.play();
12585 }
12686 } else {
127− trackRepeater.play(trackItem, modelData["source"]);
87+ DashAudioPlayer.playSource(sourceUrl);
12888 }
12989 }
13090 }
@@ -160,30 +120,10 @@ PreviewWidget {
160120 elide: Text.ElideRight
161121 }
162122
163− UbuntuShape {
164− id: progressBarFill
165− objectName: "progressBarFill"
166−
167− property int maxWidth: progressBarImage.width - units.dp(4)
168−
169− anchors {
170− left: progressBarImage.left
171− right: progressBarImage.right
172− verticalCenter: progressBarImage.verticalCenter
173− margins: units.dp(2)
174− rightMargin: maxWidth - (maxWidth * audio.progress) + units.dp(2)
175− }
176− height: units.dp(2)
177− visible: progressBarImage.visible
178− backgroundColor: UbuntuColors.orange
179− }
180−
181− Image {
182− id: progressBarImage
123+ AudioProgressBar {
183124 anchors { left: parent.left; top: parent.bottom; right: parent.right }
184− height: units.dp(6)
185− visible: audio.playbackState != Audio.StoppedState && trackItem.isPlayingItem && modelData["length"] > 0
186− source: "graphics/music_progress_bg.png"
125+ visible: !DashAudioPlayer.stopped && trackItem.isPlayingItem && modelData["length"] > 0
126+ source: sourceUrl
187127 }
188128 }
189129
@@ -196,7 +136,7 @@ PreviewWidget {
196136 color: scopeStyle ? scopeStyle.foreground : theme.palette.normal.baseText
197137 fontSize: "small"
198138 horizontalAlignment: Text.AlignRight
199− text: audio.lengthToString(modelData["length"])
139+ text: DashAudioPlayer.lengthToString(modelData["length"])
200140 }
201141 }
202142 }
qml/Dash/Previews/PreviewMediaToolbar.qml+2−1
@@ -23,10 +23,11 @@ Rectangle {
2323
2424 implicitHeight: units.gu(6)
2525 color: Qt.rgba(0, 0, 0, 0.8)
26− visible: sharingWidget.visible
26+ visible: sharingWidget.active
2727
2828 PreviewSharing {
2929 id: sharingWidget
30+ objectName: "sharingWidget"
3031 anchors {
3132 left: parent.left
3233 verticalCenter: parent.verticalCenter
qml/Dash/Previews/PreviewSharing.qml+3−4
@@ -24,13 +24,12 @@ Item {
2424 implicitWidth: button.width
2525
2626 property var shareData
27+ property alias active: peerPicker.active
2728 readonly property bool isUrlExternal: url && url.indexOf("file:///") != 0 && url.indexOf("/") != 0
28− readonly property string contentType: shareData ? shareData["contentType"] : ""
29+ readonly property string contentType: shareData ? shareData["content-type"] : ""
2930 readonly property var url: shareData ? shareData["uri"] : ""
3031 readonly property Item rootItem: QuickUtils.rootItem(root)
3132
32− visible: url != ""
33−
3433 AbstractButton {
3534 id: button
3635 height: units.gu(4)
@@ -98,7 +97,7 @@ Item {
9897 parent: rootItem
9998 anchors.fill: parent
10099 visible: false
101− active: root.visible
100+ active: root.url != ""
102101
103102 sourceComponent: contentPeerComponent
104103 }
qml/Dash/Previews/PreviewVideoPlayback.qml+1−1
@@ -81,7 +81,7 @@ PreviewWidget {
8181 right: parent.right
8282 bottom: parent.bottom
8383 }
84− shareData: widgetData["shareData"]
84+ shareData: widgetData["share-data"]
8585 }
8686 }
8787}
qml/Dash/Previews/PreviewZoomableImage.qml+1−1
@@ -72,7 +72,7 @@ PreviewWidget {
7272 right: parent.right
7373 bottom: parent.bottom
7474 }
75− shareData: widgetData["shareData"]
75+ shareData: widgetData["share-data"]
7676 }
7777 }
7878
qml/Dash/Previews/graphics/music_progress_bg.pngdeleted

Binary file not shown.

qml/Greeter/Greeter.qml+7−4
@@ -34,7 +34,7 @@ Showable {
3434 // How far to offset the top greeter layer during a launcher left-drag
3535 property real launcherOffset
3636
37− readonly property bool active: shown || hasLockedApp
37+ readonly property bool active: required || hasLockedApp
3838 readonly property bool fullyShown: loader.item ? loader.item.fullyShown : false
3939
4040 // True when the greeter is waiting for PAM or other setup process
@@ -226,14 +226,17 @@ Showable {
226226 }
227227
228228 function checkForForcedDelay() {
229+ if (greeterSettings.lockedOutTime === 0) {
230+ return;
231+ }
232+
229233 var now = new Date();
230− delayTarget = now;
231− delayTarget.setTime(greeterSettings.lockedOutTime + failedLoginsDelayMinutes * 60000);
234+ delayTarget = new Date(greeterSettings.lockedOutTime + failedLoginsDelayMinutes * 60000);
232235
233236 // If tooEarly is true, something went very wrong. Bug or NTP
234237 // misconfiguration maybe?
235238 var tooEarly = now.getTime() < greeterSettings.lockedOutTime;
236− var tooLate = now > delayTarget;
239+ var tooLate = now >= delayTarget;
237240
238241 // Compare stored time to system time. If a malicious actor is
239242 // able to manipulate time to avoid our lockout, they already have
qml/Launcher/Launcher.qml+4−9
@@ -184,18 +184,13 @@ Item {
184184 }
185185 }
186186
187− MultiPointTouchArea {
187+ InverseMouseArea {
188188 id: closeMouseArea
189− anchors {
190− left: launcherDragArea.right
191− top: parent.top
192− right: parent.right
193− bottom: parent.bottom
194− }
189+ anchors.fill: panel
195190 enabled: root.shadeBackground && root.state == "visible"
196− visible: enabled // otherwise it will get in the way of cursor selection for some reason
191+ visible: enabled
197192 onPressed: {
198− root.state = ""
193+ root.hide();
199194 }
200195 }
201196
qml/Launcher/LauncherPanel.qml+6−3
@@ -392,7 +392,6 @@ Rectangle {
392392 }
393393
394394 onClicked: {
395− Haptics.play();
396395 var index = Math.floor((mouseY + launcherListView.realContentY) / launcherListView.realItemHeight);
397396 var clickedItem = launcherListView.itemAt(mouseX, mouseY + launcherListView.realContentY)
398397
@@ -407,9 +406,11 @@ Rectangle {
407406 quickList.model = launcherListView.model.get(index).quickList;
408407 quickList.appId = launcherListView.model.get(index).appId;
409408 quickList.state = "open";
410− return
409+ return;
411410 }
412411
412+ Haptics.play();
413+
413414 // First/last item do the scrolling at more than 12 degrees
414415 if (index == 0 || index == launcherListView.count - 1) {
415416 if (clickedItem.angle > 12) {
@@ -594,6 +595,7 @@ Rectangle {
594595 width: itemWidth
595596 rotation: root.rotation
596597 itemOpacity: 0.9
598+ onVisibleChanged: if (!visible) iconName = "";
597599
598600 function flatten() {
599601 fakeDragItemAnimation.start();
@@ -636,6 +638,7 @@ Rectangle {
636638 rotation: 90
637639 }
638640 }
641+
639642 InverseMouseArea {
640643 anchors.fill: quickListShape
641644 enabled: quickList.state == "open" || pressed
@@ -692,7 +695,7 @@ Rectangle {
692695 property var item
693696
694697 // internal
695− property int itemCenter: item ? root.mapFromItem(quickList.item).y + (item.height / 2) : units.gu(1)
698+ property int itemCenter: item ? root.mapFromItem(quickList.item).y + (item.height / 2) + quickList.item.offset : units.gu(1)
696699 property int offset: itemCenter + (height/2) + units.gu(1) > parent.height ? -itemCenter - (height/2) - units.gu(1) + parent.height :
697700 itemCenter - (height/2) < units.gu(1) ? (height/2) - itemCenter + units.gu(1) : 0
698701
qml/Panel/Indicators/MenuItemFactory.qml+24−2
@@ -125,10 +125,12 @@ Item {
125125 menuModel.loadExtendedAttributes(menuIndex, {'min-value': 'double',
126126 'max-value': 'double',
127127 'min-icon': 'icon',
128− 'max-icon': 'icon'});
128+ 'max-icon': 'icon',
129+ 'x-canonical-sync-action': 'string'});
129130 }
130131
131132 ServerPropertySynchroniser {
133+ id: sliderPropertySync
132134 objectName: "sync"
133135 syncTimeout: Utils.Constants.indicatorValueTimeout
134136 bufferedSyncTimeout: true
@@ -141,6 +143,16 @@ Item {
141143
142144 onSyncTriggered: menuModel.changeState(menuIndex, value)
143145 }
146+
147+ UnityMenuAction {
148+ model: menuModel
149+ index: menuIndex
150+ name: getExtendedProperty(extendedData, "xCanonicalSyncAction", "")
151+ onStateChanged: {
152+ sliderPropertySync.reset();
153+ sliderPropertySync.updateUserValue();
154+ }
155+ }
144156 }
145157 }
146158
@@ -564,7 +576,17 @@ Item {
564576 active: serverChecked
565577 secure: getExtendedProperty(extendedData, "xCanonicalWifiApIsSecure", false)
566578 adHoc: getExtendedProperty(extendedData, "xCanonicalWifiApIsAdhoc", false)
567− signalStrength: strengthAction.valid ? strengthAction.state : 0
579+ signalStrength: {
580+ if (strengthAction.valid) {
581+ var state = strengthAction.state; // handle both int and uchar
582+ // FIXME remove the special casing when we switch to indicator-network completely
583+ if (typeof state == "string") {
584+ return state.charCodeAt();
585+ }
586+ return state;
587+ }
588+ return 0;
589+ }
568590 highlightWhenPressed: false
569591
570592 onMenuModelChanged: {
qml/Stages/DesktopStage.qml+7−3
@@ -124,16 +124,20 @@ AbstractStage {
124124 onFocusedAppDelegateChanged: updateForegroundMaximizedApp();
125125
126126 property int foregroundMaximizedAppZ: -1
127+ property int foregroundMaximizedAppIndex: -1 // for stuff like drop shadow and focusing maximized app by clicking panel
127128
128129 function updateForegroundMaximizedApp() {
129130 var tmp = -1;
131+ var tmpAppId = -1;
130132 for (var i = appRepeater.count - 1; i >= 0; i--) {
131133 var item = appRepeater.itemAt(i);
132134 if (item && item.visuallyMaximized) {
135+ tmpAppId = i;
133136 tmp = Math.max(tmp, item.normalZ);
134137 }
135138 }
136139 foregroundMaximizedAppZ = tmp;
140+ foregroundMaximizedAppIndex = tmpAppId;
137141 }
138142
139143 function indexOf(appId) {
@@ -176,8 +180,8 @@ AbstractStage {
176180 onMinimize: priv.focusedAppDelegate && priv.focusedAppDelegate.minimize();
177181 onMaximize: priv.focusedAppDelegate // don't restore minimized apps when double clicking the panel
178182 && priv.focusedAppDelegate.restoreFromMaximized();
179− onFocusMaximizedApp: if (priv.foregroundMaximizedAppIdIndex != -1) {
180− ApplicationManager.focusApplication(appRepeater.itemAt(priv.foregroundMaximizedAppIdIndex).appId);
183+ onFocusMaximizedApp: if (priv.foregroundMaximizedAppIndex != -1) {
184+ ApplicationManager.focusApplication(appRepeater.itemAt(priv.foregroundMaximizedAppIndex).appId);
181185 }
182186 }
183187
@@ -206,7 +210,7 @@ AbstractStage {
206210 Binding {
207211 target: PanelState
208212 property: "dropShadow"
209− value: priv.focusedAppDelegate && !priv.focusedAppDelegate.maximized && priv.foregroundMaximizedAppIdIndex !== -1
213+ value: priv.focusedAppDelegate && !priv.focusedAppDelegate.maximized && priv.foregroundMaximizedAppIndex !== -1
210214 }
211215
212216 Component.onDestruction: {
qml/Wizard/Pages/30-passwd-type.qml+5
@@ -39,6 +39,11 @@ LocalComponents.Page {
3939 title: i18n.tr("Lock security")
4040 forwardButtonSourceComponent: forwardButton
4141
42+ // If the user has set a password some other way (via ubuntu-device-flash
43+ // or this isn't the first time the wizard has been run, etc). We can't
44+ // properly set the password again, so let's not pretend we can.
45+ skip: securityPrivacy.securityType !== UbuntuSecurityPrivacyPanel.Swipe
46+
4247 function indexToMethod(index) {
4348 if (index === 0)
4449 return UbuntuSecurityPrivacyPanel.Swipe
src/CMakeLists.txt+13−7
@@ -16,10 +16,9 @@ file(GLOB_RECURSE QML_FILES
1616 ${CMAKE_SOURCE_DIR}/tests/*.svg
1717)
1818
19−add_executable(${SHELL_APP}
19+set(SOURCE_FILES
2020 ApplicationArguments.cpp
2121 main.cpp
22− MouseTouchAdaptor.cpp
2322 CachingNetworkManagerFactory.cpp
2423 SecondaryWindow.cpp
2524 ShellApplication.cpp
@@ -28,15 +27,22 @@ add_executable(${SHELL_APP}
2827 ${QML_FILES} # This is to make qml and image files appear in the IDE's project tree
2928)
3029
30+if (ENABLE_TOUCH_EMULATION)
31+ set(SOURCE_FILES ${SOURCE_FILES} MouseTouchAdaptor.cpp)
32+endif()
33+
34+pkg_check_modules(ANDROID_PROPERTIES REQUIRED libandroid-properties)
35+add_executable(${SHELL_APP} ${SOURCE_FILES})
3136qt5_use_modules(${SHELL_APP} Gui Qml Quick Test)
3237
33−pkg_check_modules(NEEDED_LIBS REQUIRED xcb libandroid-properties)
34−if (NOT "${NEEDED_LIBS_INCLUDE_DIRS}" STREQUAL "")
35− set_target_properties(${SHELL_APP} PROPERTIES INCLUDE_DIRECTORIES ${NEEDED_LIBS_INCLUDE_DIRS})
38+if (NOT "${ANDROID_PROPERTIES_INCLUDE_DIRS}" STREQUAL "")
39+ set_target_properties(${SHELL_APP} PROPERTIES INCLUDE_DIRECTORIES ${ANDROID_PROPERTIES_INCLUDE_DIRS})
3640endif()
37−target_link_libraries(${SHELL_APP} ${NEEDED_LIBS_LDFLAGS})
41+target_link_libraries(${SHELL_APP} ${ANDROID_PROPERTIES_LDFLAGS} UbuntuGestures connectivity-qt1)
3842
39−target_link_libraries(${SHELL_APP} UbuntuGestures connectivity-qt1)
43+if (ENABLE_TOUCH_EMULATION)
44+ target_link_libraries(${SHELL_APP} ${MOUSETOUCHADAPTOR_LIBS_LDFLAGS})
45+endif()
4046
4147# For it to find libUbuntuGestures.so
4248set_target_properties(${SHELL_APP} PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_PRIVATE_LIBDIR}")
src/Dash/CMakeLists.txt+8−8
@@ -1,25 +1,25 @@
11set(DASH_SRCS
22 main.cpp
3− ../ApplicationArguments.cpp
4− ../MouseTouchAdaptor.cpp
53 ../CachingNetworkManagerFactory.cpp
64)
75
6+if (ENABLE_TOUCH_EMULATION)
7+ set(DASH_SRCS ${DASH_SRCS} ../MouseTouchAdaptor.cpp)
8+endif()
9+
810add_executable(unity8-dash ${DASH_SRCS})
911
1012qt5_use_modules(unity8-dash Gui Qml Quick Test)
1113
12−pkg_check_modules(NEEDED_LIBS REQUIRED xcb libandroid-properties)
13−if (NOT "${NEEDED_LIBS_INCLUDE_DIRS}" STREQUAL "")
14− set_target_properties(unity8-dash PROPERTIES INCLUDE_DIRECTORIES ${NEEDED_LIBS_INCLUDE_DIRS})
15−endif()
16−target_link_libraries(unity8-dash ${NEEDED_LIBS_LDFLAGS})
17−
1814# For it to find libUbuntuGestures.so, needed by Ubuntu.Gestures QML module.
1915set_target_properties(unity8-dash PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_PRIVATE_LIBDIR}")
2016
2117target_link_libraries(unity8-dash UbuntuGestures connectivity-qt1)
2218
19+if (ENABLE_TOUCH_EMULATION)
20+ target_link_libraries(unity8-dash ${MOUSETOUCHADAPTOR_LIBS_LDFLAGS})
21+endif()
22+
2323set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
2424
2525# install binaries
src/Dash/main.cpp+9−5
@@ -27,8 +27,9 @@
2727#include <libintl.h>
2828
2929#include <paths.h>
30−#include "../MouseTouchAdaptor.h"
31−#include "../ApplicationArguments.h"
30+#ifdef UNITY8_ENABLE_TOUCH_EMULATION
31+ #include "../MouseTouchAdaptor.h"
32+#endif
3233#include "../CachingNetworkManagerFactory.h"
3334
3435int main(int argc, const char *argv[])
@@ -57,8 +58,6 @@ int main(int argc, const char *argv[])
5758 parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions);
5859 parser.process(*application);
5960
60− ApplicationArguments qmlArgs;
61−
6261 if (getenv("QT_LOAD_TESTABILITY")) {
6362 QLibrary testLib(QStringLiteral("qttestability"));
6463 if (testLib.load()) {
@@ -92,14 +91,15 @@ int main(int argc, const char *argv[])
9291 }
9392
9493 view->setTitle(QStringLiteral("Scopes"));
95− view->rootContext()->setContextProperty(QStringLiteral("applicationArguments"), &qmlArgs);
9694
95+ #ifdef UNITY8_ENABLE_TOUCH_EMULATION
9796 // You will need this if you want to interact with touch-only components using a mouse
9897 // Needed only when manually testing on a desktop.
9998 MouseTouchAdaptor *mouseTouchAdaptor = 0;
10099 if (parser.isSet(mousetouchOption)) {
101100 mouseTouchAdaptor = MouseTouchAdaptor::instance();
102101 }
102+ #endif
103103
104104 QUrl source(::qmlDirectory() + "/Dash/DashApplication.qml");
105105 prependImportPaths(view->engine(), ::overrideImportPaths());
@@ -114,7 +114,11 @@ int main(int argc, const char *argv[])
114114 int result = application->exec();
115115
116116 delete view;
117+
118+ #ifdef UNITY8_ENABLE_TOUCH_EMULATION
117119 delete mouseTouchAdaptor;
120+ #endif
121+
118122 delete application;
119123
120124 return result;
src/MouseTouchAdaptor.cpp+180−21
@@ -16,14 +16,56 @@
1616 * Authored by: Daniel d'Andrada <daniel.dandrada@canonical.com>
1717 */
1818
19+
20+/* Some parts of the code were copied from the XCB platform plugin of the Qt Toolkit,
21+ * which is under the following license:
22+ */
23+
24+/****************************************************************************
25+**
26+** Copyright (C) 2015 The Qt Company Ltd.
27+** Contact: http://www.qt.io/licensing/
28+**
29+** This file is part of the .
30+**
31+** $QT_BEGIN_LICENSE:LGPL21$
32+** Commercial License Usage
33+** Licensees holding valid commercial Qt licenses may use this file in
34+** accordance with the commercial license agreement provided with the
35+** Software or, alternatively, in accordance with the terms contained in
36+** a written agreement between you and The Qt Company. For licensing terms
37+** and conditions see http://www.qt.io/terms-conditions. For further
38+** information use the contact form at http://www.qt.io/contact-us.
39+**
40+** GNU Lesser General Public License Usage
41+** Alternatively, this file may be used under the terms of the GNU Lesser
42+** General Public License version 2.1 or version 3 as published by the Free
43+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
44+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
45+** following information to ensure the GNU Lesser General Public License
46+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
47+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
48+**
49+** As a special exception, The Qt Company gives you certain additional
50+** rights. These rights are described in The Qt Company LGPL Exception
51+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
52+**
53+** $QT_END_LICENSE$
54+**
55+****************************************************************************/
56+
1957#include "MouseTouchAdaptor.h"
2058
59+#include <qpa/qplatformnativeinterface.h>
2160#include <qpa/qwindowsysteminterface.h>
2261
2362#include <QCoreApplication>
2463#include <QMouseEvent>
2564#include <QTest>
2665
66+#include <X11/extensions/XInput2.h>
67+#include <X11/extensions/XI2proto.h>
68+
2769using QTest::QTouchEventSequence;
2870
2971namespace {
@@ -49,6 +91,8 @@ MouseTouchAdaptor::MouseTouchAdaptor()
4991 m_touchDevice = new QTouchDevice;
5092 m_touchDevice->setType(QTouchDevice::TouchScreen);
5193 QWindowSystemInterface::registerTouchDevice(m_touchDevice);
94+
95+ fetchXInput2Info();
5296}
5397
5498MouseTouchAdaptor::~MouseTouchAdaptor()
@@ -65,9 +109,114 @@ MouseTouchAdaptor* MouseTouchAdaptor::instance()
65109 return g_instance;
66110}
67111
112+void MouseTouchAdaptor::fetchXInput2Info()
113+{
114+ QPlatformNativeInterface *nativeInterface = qGuiApp->platformNativeInterface();
115+ Display *xDisplay = static_cast<Display*>(nativeInterface->nativeResourceForIntegration("Display"));
116+ if (xDisplay && XQueryExtension(xDisplay, "XInputExtension", &m_xiOpCode, &m_xiEventBase, &m_xiErrorBase)) {
117+ int xiMajor = 2;
118+ m_xi2Minor = 2; // try 2.2 first, needed for TouchBegin/Update/End
119+ if (XIQueryVersion(xDisplay, &xiMajor, &m_xi2Minor) == BadRequest) {
120+ m_xi2Minor = 1; // for smooth scrolling 2.1 is enough
121+ if (XIQueryVersion(xDisplay, &xiMajor, &m_xi2Minor) == BadRequest) {
122+ m_xi2Minor = 0; // for tablet support 2.0 is enough
123+ m_xi2Enabled = XIQueryVersion(xDisplay, &xiMajor, &m_xi2Minor) != BadRequest;
124+ } else
125+ m_xi2Enabled = true;
126+ } else {
127+ m_xi2Enabled = true;
128+ }
129+ }
130+}
131+
132+// Starting from the xcb version 1.9.3 struct xcb_ge_event_t has changed:
133+// - "pad0" became "extension"
134+// - "pad1" and "pad" became "pad0"
135+// New and old version of this struct share the following fields:
136+// NOTE: API might change again in the next release of xcb in which case this comment will
137+// need to be updated to reflect the reality.
138+typedef struct qt_xcb_ge_event_t {
139+ uint8_t response_type;
140+ uint8_t extension;
141+ uint16_t sequence;
142+ uint32_t length;
143+ uint16_t event_type;
144+} qt_xcb_ge_event_t;
145+
146+bool xi2PrepareXIGenericDeviceEvent(xcb_ge_event_t *ev, int opCode)
147+{
148+ qt_xcb_ge_event_t *event = (qt_xcb_ge_event_t *)ev;
149+ // xGenericEvent has "extension" on the second byte, the same is true for xcb_ge_event_t starting from
150+ // the xcb version 1.9.3, prior to that it was called "pad0".
151+ if (event->extension == opCode) {
152+ // xcb event structs contain stuff that wasn't on the wire, the full_sequence field
153+ // adds an extra 4 bytes and generic events cookie data is on the wire right after the standard 32 bytes.
154+ // Move this data back to have the same layout in memory as it was on the wire
155+ // and allow casting, overwriting the full_sequence field.
156+ memmove((char*) event + 32, (char*) event + 36, event->length * 4);
157+ return true;
158+ }
159+ return false;
160+}
161+
162+static inline qreal fixed1616ToReal(FP1616 val)
163+{
164+ return qreal(val) / 0x10000;
165+}
166+
167+bool MouseTouchAdaptor::xi2HandleEvent(xcb_ge_event_t *event)
168+{
169+ if (!xi2PrepareXIGenericDeviceEvent(event, m_xiOpCode)) {
170+ return false;
171+ }
172+
173+ xXIGenericDeviceEvent *xiEvent = reinterpret_cast<xXIGenericDeviceEvent *>(event);
174+ xXIDeviceEvent *xiDeviceEvent = 0;
175+
176+ switch (xiEvent->evtype) {
177+ case XI_ButtonPress:
178+ case XI_ButtonRelease:
179+ case XI_Motion:
180+ xiDeviceEvent = reinterpret_cast<xXIDeviceEvent *>(event);
181+ break;
182+ default:
183+ break;
184+ }
185+
186+ if (!xiDeviceEvent) {
187+ return false;
188+ }
189+
190+ switch (xiDeviceEvent->evtype) {
191+ case XI_ButtonPress:
192+ return handleButtonPress(
193+ static_cast<WId>(xiDeviceEvent->event),
194+ xiDeviceEvent->detail,
195+ fixed1616ToReal(xiDeviceEvent->event_x),
196+ fixed1616ToReal(xiDeviceEvent->event_y));
197+ case XI_ButtonRelease:
198+ return handleButtonRelease(
199+ static_cast<WId>(xiDeviceEvent->event),
200+ xiDeviceEvent->detail,
201+ fixed1616ToReal(xiDeviceEvent->event_x),
202+ fixed1616ToReal(xiDeviceEvent->event_y));
203+ case XI_Motion:
204+ return handleMotionNotify(
205+ static_cast<WId>(xiDeviceEvent->event),
206+ fixed1616ToReal(xiDeviceEvent->event_x),
207+ fixed1616ToReal(xiDeviceEvent->event_y));
208+ return true;
209+ default:
210+ return false;
211+ }
212+}
213+
214+
68215bool MouseTouchAdaptor::nativeEventFilter(const QByteArray & eventType,
69216 void * message, long * /*result*/)
70217{
218+ static int eventCount = 0;
219+ eventCount++;
71220 if (!m_enabled) {
72221 return false;
73222 }
@@ -81,32 +230,42 @@ bool MouseTouchAdaptor::nativeEventFilter(const QByteArray & eventType,
81230 xcb_generic_event_t *xcbEvent = static_cast<xcb_generic_event_t *>(message);
82231
83232 switch (xcbEvent->response_type & ~0x80) {
84− case XCB_BUTTON_PRESS:
85− return handleButtonPress(reinterpret_cast<xcb_button_press_event_t *>(xcbEvent));
86− break;
87− case XCB_BUTTON_RELEASE:
88− return handleButtonRelease(reinterpret_cast<xcb_button_release_event_t *>(xcbEvent));
89− break;
90− case XCB_MOTION_NOTIFY:
91− return handleMotionNotify(reinterpret_cast<xcb_motion_notify_event_t *>(xcbEvent));
92− break;
233+ case XCB_BUTTON_PRESS: {
234+ auto pressEvent = reinterpret_cast<xcb_button_press_event_t *>(xcbEvent);
235+ return handleButtonPress(static_cast<WId>(pressEvent->event), pressEvent->detail,
236+ pressEvent->event_x, pressEvent->event_y);
237+ }
238+ case XCB_BUTTON_RELEASE: {
239+ auto releaseEvent = reinterpret_cast<xcb_button_release_event_t *>(xcbEvent);
240+ return handleButtonRelease(static_cast<WId>(releaseEvent->event), releaseEvent->detail,
241+ releaseEvent->event_x, releaseEvent->event_y);
242+ }
243+ case XCB_MOTION_NOTIFY: {
244+ auto motionEvent = reinterpret_cast<xcb_motion_notify_event_t *>(xcbEvent);
245+ return handleMotionNotify(static_cast<WId>(motionEvent->event), motionEvent->event_x, motionEvent->event_y);
246+ }
247+ case XCB_GE_GENERIC:
248+ if (m_xi2Enabled) {
249+ return xi2HandleEvent(reinterpret_cast<xcb_ge_event_t *>(xcbEvent));
250+ } else {
251+ return false;
252+ }
93253 default:
94254 return false;
95− break;
96255 };
97256}
98257
99−bool MouseTouchAdaptor::handleButtonPress(xcb_button_press_event_t *pressEvent)
258+bool MouseTouchAdaptor::handleButtonPress(WId windowId, uint32_t detail, int x, int y)
100259{
101− Qt::MouseButton button = translateMouseButton(pressEvent->detail);
260+ Qt::MouseButton button = translateMouseButton(detail);
102261
103262 // Just eat the event if it wasn't a left mouse press
104263 if (button != Qt::LeftButton)
105264 return true;
106265
107− QWindow *targetWindow = findQWindowWithXWindowID(static_cast<WId>(pressEvent->event));
266+ QWindow *targetWindow = findQWindowWithXWindowID(windowId);
108267
109− QPoint windowPos(pressEvent->event_x / targetWindow->devicePixelRatio(), pressEvent->event_y / targetWindow->devicePixelRatio());
268+ QPoint windowPos(x / targetWindow->devicePixelRatio(), y / targetWindow->devicePixelRatio());
110269
111270 QTouchEventSequence touchEvent = QTest::touchEvent(targetWindow, m_touchDevice,
112271 false /* autoCommit */);
@@ -117,17 +276,17 @@ bool MouseTouchAdaptor::handleButtonPress(xcb_button_press_event_t *pressEvent)
117276 return true;
118277}
119278
120−bool MouseTouchAdaptor::handleButtonRelease(xcb_button_release_event_t *releaseEvent)
279+bool MouseTouchAdaptor::handleButtonRelease(WId windowId, uint32_t detail, int x, int y)
121280{
122− Qt::MouseButton button = translateMouseButton(releaseEvent->detail);
281+ Qt::MouseButton button = translateMouseButton(detail);
123282
124283 // Just eat the event if it wasn't a left mouse release
125284 if (button != Qt::LeftButton)
126285 return true;
127286
128− QWindow *targetWindow = findQWindowWithXWindowID(static_cast<WId>(releaseEvent->event));
287+ QWindow *targetWindow = findQWindowWithXWindowID(windowId);
129288
130− QPoint windowPos(releaseEvent->event_x / targetWindow->devicePixelRatio(), releaseEvent->event_y / targetWindow->devicePixelRatio());
289+ QPoint windowPos(x / targetWindow->devicePixelRatio(), y / targetWindow->devicePixelRatio());
131290
132291 QTouchEventSequence touchEvent = QTest::touchEvent(targetWindow, m_touchDevice,
133292 false /* autoCommit */);
@@ -138,15 +297,15 @@ bool MouseTouchAdaptor::handleButtonRelease(xcb_button_release_event_t *releaseE
138297 return true;
139298}
140299
141−bool MouseTouchAdaptor::handleMotionNotify(xcb_motion_notify_event_t *event)
300+bool MouseTouchAdaptor::handleMotionNotify(WId windowId, int x, int y)
142301{
143302 if (!m_leftButtonIsPressed) {
144303 return true;
145304 }
146305
147− QWindow *targetWindow = findQWindowWithXWindowID(static_cast<WId>(event->event));
306+ QWindow *targetWindow = findQWindowWithXWindowID(windowId);
148307
149− QPoint windowPos(event->event_x / targetWindow->devicePixelRatio(), event->event_y / targetWindow->devicePixelRatio());
308+ QPoint windowPos(x / targetWindow->devicePixelRatio(), y / targetWindow->devicePixelRatio());
150309
151310 QTouchEventSequence touchEvent = QTest::touchEvent(targetWindow, m_touchDevice,
152311 false /* autoCommit */);
src/MouseTouchAdaptor.h+10−3
@@ -21,6 +21,7 @@
2121
2222#include <QtCore/QAbstractNativeEventFilter>
2323#include <QWindow>
24+
2425#include <xcb/xcb.h>
2526
2627class QMouseEvent;
@@ -47,16 +48,22 @@ Q_SIGNALS:
4748
4849private:
4950 MouseTouchAdaptor();
51+ void fetchXInput2Info();
52+ bool xi2HandleEvent(xcb_ge_event_t *event);
5053
51− bool handleButtonPress(xcb_button_press_event_t *pressEvent);
52− bool handleButtonRelease(xcb_button_release_event_t *releaseEvent);
53− bool handleMotionNotify(xcb_motion_notify_event_t *event);
54+ bool handleButtonPress(WId windowId, uint32_t detail, int x, int y);
55+ bool handleButtonRelease(WId windowId, uint32_t detail, int x, int y);
56+ bool handleMotionNotify(WId windowId, int x, int y);
5457 QWindow *findQWindowWithXWindowID(WId windowId);
5558
5659 QTouchDevice *m_touchDevice;
5760 bool m_leftButtonIsPressed;
5861
5962 bool m_enabled;
63+
64+ bool m_xi2Enabled{false};
65+ int m_xi2Minor{-1};
66+ int m_xiOpCode, m_xiEventBase, m_xiErrorBase;
6067};
6168
6269#endif // MOUSE_TOUCH_ADAPTOR_H
src/ShellApplication.cpp+10−5
@@ -18,6 +18,7 @@
1818
1919// Qt
2020#include <QLibrary>
21+#include <QProcess>
2122#include <QScreen>
2223
2324#include <libintl.h>
@@ -28,15 +29,10 @@
2829// local
2930#include <paths.h>
3031#include "CachingNetworkManagerFactory.h"
31−#include "MouseTouchAdaptor.h"
3232#include "UnityCommandLineParser.h"
3333
3434ShellApplication::ShellApplication(int & argc, char ** argv, bool isMirServer)
3535 : QGuiApplication(argc, argv)
36− , m_shellView(nullptr)
37− , m_secondaryWindow(nullptr)
38− , m_mouseTouchAdaptor(nullptr)
39− , m_qmlEngine(nullptr)
4036{
4137
4238 setApplicationName(QStringLiteral("unity8"));
@@ -89,11 +85,14 @@ ShellApplication::ShellApplication(int & argc, char ** argv, bool isMirServer)
8985 m_shellView->setFlags(Qt::FramelessWindowHint);
9086 }
9187
88+
89+ #ifdef UNITY8_ENABLE_TOUCH_EMULATION
9290 // You will need this if you want to interact with touch-only components using a mouse
9391 // Needed only when manually testing on a desktop.
9492 if (parser.hasMouseToTouch()) {
9593 m_mouseTouchAdaptor = MouseTouchAdaptor::instance();
9694 }
95+ #endif
9796
9897
9998 // Some hard-coded policy for now.
@@ -117,6 +116,10 @@ ShellApplication::ShellApplication(int & argc, char ** argv, bool isMirServer)
117116 m_shellView->setHeight(primaryScreenSize.height());
118117 m_shellView->setWidth(primaryScreenSize.width());
119118 m_shellView->show();
119+ m_shellView->requestActivate();
120+ if (!QProcess::startDetached("/sbin/initctl emit --no-wait unity8-greeter-started")) {
121+ qDebug() << "Unable to send unity8-greeter-started event to Upstart";
122+ }
120123 } else if (isMirServer || parser.hasFullscreen()) {
121124 m_shellView->showFullScreen();
122125 } else {
@@ -139,8 +142,10 @@ void ShellApplication::destroyResources()
139142 delete m_secondaryWindow;
140143 m_secondaryWindow = nullptr;
141144
145+ #ifdef UNITY8_ENABLE_TOUCH_EMULATION
142146 delete m_mouseTouchAdaptor;
143147 m_mouseTouchAdaptor = nullptr;
148+ #endif
144149
145150 delete m_qmlEngine;
146151 m_qmlEngine = nullptr;
src/ShellApplication.h+12−4
@@ -23,7 +23,11 @@
2323#include <QScopedPointer>
2424
2525#include "ApplicationArguments.h"
26+
27+#ifdef UNITY8_ENABLE_TOUCH_EMULATION
2628#include "MouseTouchAdaptor.h"
29+#endif
30+
2731#include "SecondaryWindow.h"
2832#include "ShellView.h"
2933
@@ -46,10 +50,14 @@ private:
4650 void setupQmlEngine(bool isMirServer);
4751 QString m_deviceName;
4852 ApplicationArguments m_qmlArgs;
49− ShellView *m_shellView;
50− SecondaryWindow *m_secondaryWindow;
51− MouseTouchAdaptor *m_mouseTouchAdaptor;
52− QQmlEngine *m_qmlEngine;
53+ ShellView *m_shellView{nullptr};
54+ SecondaryWindow *m_secondaryWindow{nullptr};
55+
56+ #ifdef UNITY8_ENABLE_TOUCH_EMULATION
57+ MouseTouchAdaptor *m_mouseTouchAdaptor{nullptr};
58+ #endif
59+
60+ QQmlEngine *m_qmlEngine{nullptr};
5361};
5462
5563#endif // SHELLAPPLICATION_H
src/UnityCommandLineParser.cpp+6
@@ -37,9 +37,11 @@ UnityCommandLineParser::UnityCommandLineParser(const QCoreApplication &app)
3737 QStringLiteral("Run without window borders"));
3838 parser.addOption(framelessOption);
3939
40+ #ifdef UNITY8_ENABLE_TOUCH_EMULATION
4041 QCommandLineOption mousetouchOption(QStringLiteral("mousetouch"),
4142 QStringLiteral("Allow the mouse to provide touch input"));
4243 parser.addOption(mousetouchOption);
44+ #endif
4345
4446 QCommandLineOption windowGeometryOption(QStringList() << QStringLiteral("windowgeometry"),
4547 QStringLiteral("Specify the window geometry as [<width>x<height>]"), QStringLiteral("windowgeometry"), QStringLiteral("1"));
@@ -75,7 +77,11 @@ UnityCommandLineParser::UnityCommandLineParser(const QCoreApplication &app)
7577
7678 m_hasTestability = parser.isSet(testabilityOption);
7779 m_hasFrameless = parser.isSet(framelessOption);
80+
81+ #ifdef UNITY8_ENABLE_TOUCH_EMULATION
7882 m_hasMouseToTouch = parser.isSet(mousetouchOption);
83+ #endif
84+
7985 m_hasFullscreen = parser.isSet(fullscreenOption);
8086 m_deviceName = parser.value(devicenameOption);
8187 resolveMode(parser, modeOption);
src/UnityCommandLineParser.h+8
@@ -28,7 +28,11 @@ public:
2828 QSize windowGeometry() const { return m_windowGeometry; }
2929 bool hasTestability() const { return m_hasTestability; }
3030 bool hasFrameless() const { return m_hasFrameless; }
31+
32+ #ifdef UNITY8_ENABLE_TOUCH_EMULATION
3133 bool hasMouseToTouch() const { return m_hasMouseToTouch; }
34+ #endif
35+
3236 bool hasFullscreen() const { return m_hasFullscreen; }
3337 QString deviceName() const { return m_deviceName; }
3438 QString mode() const { return m_mode; }
@@ -43,7 +47,11 @@ private:
4347 QSize m_windowGeometry;
4448 bool m_hasTestability;
4549 bool m_hasFrameless;
50+
51+ #ifdef UNITY8_ENABLE_TOUCH_EMULATION
4652 bool m_hasMouseToTouch;
53+ #endif
54+
4755 bool m_hasFullscreen;
4856 QString m_deviceName;
4957 QString m_mode;
tests/mocks/QtMultimedia/CMakeLists.txt+1
@@ -1,6 +1,7 @@
11add_library(QtMultimedia-qml MODULE
22 plugin.cpp
33 audio.cpp
4+ declarativeplaylist.cpp
45 )
56
67qt5_use_modules(QtMultimedia-qml Qml)
tests/mocks/QtMultimedia/audio.cpp+21−19
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013, 2015 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
@@ -20,30 +20,18 @@
2020
2121Audio::Audio(QObject* parent):
2222 QObject(parent),
23− m_playbackState(StoppedState)
23+ m_playbackState(StoppedState),
24+ m_playlist(0)
2425{
2526 qsrand(time(nullptr));
2627 m_timer.setInterval(1000);
2728 connect(&m_timer, &QTimer::timeout, this, &Audio::timerEvent);
28−}
29−
30−QUrl Audio::source() const
31−{
32− return m_source;
33−}
3429
35−void Audio::setSource(const QUrl &source)
36−{
37− if (m_source != source) {
38− m_source = source;
39− Q_EMIT sourceChanged(source);
40−
41− m_position = 0;
42− Q_EMIT positionChanged(m_position);
30+ m_position = 0;
31+ Q_EMIT positionChanged(m_position);
4332
44− m_duration = (qrand() % 20000) + 10000;
45− Q_EMIT durationChanged(m_duration);
46− }
33+ m_duration = (qrand() % 20000) + 10000;
34+ Q_EMIT durationChanged(m_duration);
4735}
4836
4937Audio::PlaybackState Audio::playbackState() const
@@ -115,3 +103,17 @@ void Audio::setAudioRole(Audio::AudioRole audioRole)
115103{
116104 Q_UNUSED(audioRole);
117105}
106+
107+DeclarativePlaylist *Audio::playlist() const
108+{
109+ return m_playlist;
110+}
111+
112+void Audio::setPlaylist(DeclarativePlaylist *playlist)
113+{
114+ if (playlist == m_playlist)
115+ return;
116+
117+ m_playlist = playlist;
118+ Q_EMIT playlistChanged();
119+}
tests/mocks/QtMultimedia/audio.h+8−6
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2012,2013 Canonical, Ltd.
2+ * Copyright (C) 2012, 2013, 2015 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
@@ -13,7 +13,6 @@
1313 * You should have received a copy of the GNU General Public License
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 *
16− * Authors: Michael Zanetti <michael.zanetti@canonical.com>
1716 */
1817
1918#ifndef MOCK_AUDIO_H
@@ -23,17 +22,19 @@
2322#include <QUrl>
2423#include <QTimer>
2524
25+class DeclarativePlaylist;
26+
2627class Audio: public QObject
2728{
2829 Q_OBJECT
2930 Q_ENUMS(PlaybackState)
3031 Q_ENUMS(AudioRole)
31− Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged)
3232 Q_PROPERTY(PlaybackState playbackState READ playbackState NOTIFY playbackStateChanged)
3333 Q_PROPERTY(int position READ position NOTIFY positionChanged)
3434 Q_PROPERTY(int duration READ duration NOTIFY durationChanged)
3535 Q_PROPERTY(QString errorString READ errorString NOTIFY errorStringChanged)
3636 Q_PROPERTY(AudioRole audioRole READ audioRole WRITE setAudioRole)
37+ Q_PROPERTY(DeclarativePlaylist *playlist READ playlist WRITE setPlaylist NOTIFY playlistChanged)
3738public:
3839 enum PlaybackState {
3940 PlayingState,
@@ -50,8 +51,8 @@ public:
5051
5152 explicit Audio(QObject *parent = 0);
5253
53− QUrl source() const;
54− void setSource(const QUrl &source);
54+ DeclarativePlaylist *playlist() const;
55+ void setPlaylist(DeclarativePlaylist *playlist);
5556
5657 PlaybackState playbackState() const;
5758
@@ -70,6 +71,7 @@ public Q_SLOTS:
7071 void stop();
7172
7273Q_SIGNALS:
74+ void playlistChanged();
7375 void sourceChanged(const QUrl &source);
7476 void playbackStateChanged(PlaybackState playbackState);
7577 void positionChanged(int position);
@@ -80,11 +82,11 @@ private Q_SLOTS:
8082 void timerEvent();
8183
8284private:
83− QUrl m_source;
8485 PlaybackState m_playbackState;
8586 QTimer m_timer;
8687 int m_position;
8788 int m_duration;
89+ DeclarativePlaylist *m_playlist;
8890};
8991
9092#endif
tests/mocks/QtMultimedia/declarativeplaylist.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
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ */
17+
18+#include "declarativeplaylist.h"
19+
20+DeclarativePlaylist::DeclarativePlaylist(QObject *parent)
21+ : QObject(parent)
22+ , m_currentIndex(-1)
23+{
24+}
25+
26+QUrl DeclarativePlaylist::currentItemSource() const
27+{
28+ return itemSource(currentIndex());
29+}
30+
31+int DeclarativePlaylist::currentIndex() const
32+{
33+ return m_currentIndex;
34+}
35+
36+void DeclarativePlaylist::setCurrentIndex(int index)
37+{
38+ if (currentIndex() == index)
39+ return;
40+
41+ m_currentIndex = index;
42+ Q_EMIT currentIndexChanged();
43+ Q_EMIT currentItemSourceChanged();
44+}
45+
46+QUrl DeclarativePlaylist::itemSource(int index) const
47+{
48+ if (index < 0 || index >= m_medias.count())
49+ return QUrl();
50+ return m_medias[index];
51+}
52+
53+bool DeclarativePlaylist::addItem(const QUrl &source)
54+{
55+ m_medias << source;
56+ setCurrentIndex(0);
57+ return true;
58+}
59+
60+bool DeclarativePlaylist::addItems(const QList<QUrl> &sources)
61+{
62+ m_medias << sources;
63+ if (!sources.isEmpty())
64+ setCurrentIndex(0);
65+ return true;
66+}
67+
68+bool DeclarativePlaylist::clear()
69+{
70+ m_medias.clear();
71+ setCurrentIndex(-1);
72+ return true;
73+}
tests/mocks/QtMultimedia/declarativeplaylist.hnew file+54
@@ -0,0 +1,54 @@
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+
18+#ifndef DECLARATIVEPLAYLIST_H
19+#define DECLARATIVEPLAYLIST_H
20+
21+#include <QObject>
22+#include <QUrl>
23+
24+class DeclarativePlaylist : public QObject
25+{
26+ Q_OBJECT
27+ Q_PROPERTY(QUrl currentItemSource READ currentItemSource NOTIFY currentItemSourceChanged)
28+ Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged)
29+
30+public:
31+ DeclarativePlaylist(QObject *parent = 0);
32+
33+ QUrl currentItemSource() const;
34+ int currentIndex() const;
35+ void setCurrentIndex(int currentIndex);
36+
37+public Q_SLOTS:
38+ QUrl itemSource(int index) const;
39+ bool addItem(const QUrl &source);
40+ bool addItems(const QList<QUrl> &sources);
41+ bool clear();
42+
43+Q_SIGNALS:
44+ void currentItemSourceChanged();
45+ void currentIndexChanged();
46+
47+private:
48+ Q_DISABLE_COPY(DeclarativePlaylist)
49+
50+ int m_currentIndex;
51+ QList<QUrl> m_medias;
52+};
53+
54+#endif
tests/mocks/QtMultimedia/plugin.cpp+2
@@ -18,6 +18,7 @@
1818
1919#include "plugin.h"
2020#include "audio.h"
21+#include "declarativeplaylist.h"
2122
2223#include <QtQml/qqml.h>
2324
@@ -26,4 +27,5 @@ void MockQtMultimediaPlugin::registerTypes(const char *uri)
2627 Q_ASSERT(uri == QLatin1String("QtMultimedia"));
2728 qmlRegisterType<Audio>(uri, 5, 0, "Audio");
2829 qmlRegisterType<Audio>(uri, 5, 0, "MediaPlayer");
30+ qmlRegisterType<DeclarativePlaylist>(uri, 5, 6, "Playlist");
2931}
tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/CMakeLists.txt+1−1
@@ -7,4 +7,4 @@ add_library(MockSecurityPrivacy MODULE ${MOCK_SECURITYPRIVACY_SOURCES})
77
88qt5_use_modules(MockSecurityPrivacy Qml Quick Core)
99
10−add_unity8_mock(Ubuntu.SystemSettings.SecurityPrivacy 1.0 Ubuntu/SystemSettings/SecurityPrivacy TARGETS MockSecurityPrivacy)
10+add_unity8_mock(Ubuntu.SystemSettings.SecurityPrivacy 1.0 Ubuntu/SystemSettings/SecurityPrivacy PREFIX mocks TARGETS MockSecurityPrivacy)
tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/MockSecurityPrivacy.cpp+8−1
@@ -17,12 +17,19 @@
1717#include "MockSecurityPrivacy.h"
1818
1919MockSecurityPrivacy::MockSecurityPrivacy(QObject *parent)
20− : QObject(parent)
20+ : QObject(parent),
21+ m_type(SecurityType::Swipe)
2122{
2223}
2324
25+MockSecurityPrivacy::SecurityType MockSecurityPrivacy::getSecurityType()
26+{
27+ return m_type;
28+}
29+
2430QString MockSecurityPrivacy::setSecurity(const QString &oldPasswd, const QString &newPasswd, SecurityType newType)
2531{
32+ m_type = newType;
2633 Q_EMIT setSecurityCalled(oldPasswd, newPasswd, newType);
2734 return "";
2835}
tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/MockSecurityPrivacy.h+8
@@ -23,6 +23,9 @@ class MockSecurityPrivacy : public QObject
2323{
2424 Q_OBJECT
2525 Q_ENUMS(SecurityType)
26+ Q_PROPERTY (SecurityType securityType
27+ READ getSecurityType
28+ NOTIFY securityTypeChanged)
2629
2730public:
2831 enum SecurityType {
@@ -33,10 +36,15 @@ public:
3336
3437 MockSecurityPrivacy(QObject *parent = 0);
3538
39+ SecurityType getSecurityType();
3640 Q_INVOKABLE QString setSecurity(const QString &oldPasswd, const QString &newPasswd, SecurityType newType);
3741
3842Q_SIGNALS:
43+ void securityTypeChanged();
3944 void setSecurityCalled(const QString &oldPasswd, const QString &newPasswd, SecurityType newType); // only in mock
45+
46+private:
47+ SecurityType m_type;
4048};
4149
4250#endif // MOCK_SECURITYPRIVACY_H
tests/mocks/Unity/CMakeLists.txt+1−1
@@ -7,7 +7,7 @@ add_subdirectory(Notifications)
77add_subdirectory(DashCommunicator)
88
99pkg_search_module(GOBJECT gobject-2.0 REQUIRED)
10−pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=8)
10+pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=9)
1111
1212include_directories(
1313 ${CMAKE_CURRENT_BINARY_DIR}
tests/plugins/Dash/cardcreator/9.resnew file+113
@@ -0,0 +1,113 @@
1+AbstractButton {
2+ id: root;
3+ property var components;
4+ property var cardData;
5+ property string artShapeStyle: "inset";
6+ property string backgroundShapeStyle: "inset";
7+ property real fontScale: 1.0;
8+ property var scopeStyle: null;
9+ property int titleAlignment: Text.AlignLeft;
10+ property int fixedHeaderHeight: -1;
11+ property size fixedArtShapeSize: Qt.size(-1, -1);
12+ readonly property string title: cardData && cardData["title"] || "";
13+ property bool asynchronous: true;
14+ property bool showHeader: true;
15+ implicitWidth: childrenRect.width;
16+ enabled: true;
17+
18+readonly property size artShapeSize: Qt.size(-1, -1);
19+readonly property int headerHeight: titleLabel.height + subtitleLabel.height + subtitleLabel.anchors.topMargin + audioProgressBar.height + audioProgressBar.anchors.topMargin;
20+Label {
21+ id: titleLabel;
22+ objectName: "titleLabel";
23+ anchors { right: parent.right;
24+rightMargin: units.gu(1);
25+left: audioButton.right;
26+ leftMargin: units.gu(1);
27+top: parent.top;
28+ topMargin: units.gu(1);
29+ }
30+ elide: Text.ElideRight;
31+ fontSize: "small";
32+ wrapMode: Text.Wrap;
33+ maximumLineCount: 2;
34+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
35+ color: root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText;
36+ visible: showHeader ;
37+ width: undefined;
38+ text: root.title;
39+ font.weight: cardData && cardData["subtitle"] ? Font.DemiBold : Font.Normal;
40+ horizontalAlignment: root.titleAlignment;
41+ }
42+Label {
43+ id: subtitleLabel;
44+ objectName: "subtitleLabel";
45+ anchors { left: titleLabel.left;
46+ leftMargin: titleLabel.leftMargin;
47+rightMargin: units.gu(1);
48+right: titleLabel.right;
49+top: titleLabel.bottom;
50+ }
51+ anchors.topMargin: units.dp(2);
52+ elide: Text.ElideRight;
53+ maximumLineCount: 1;
54+ fontSize: "x-small";
55+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
56+ color: root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText;
57+ visible: titleLabel.visible && titleLabel.text;
58+ text: cardData && cardData["subtitle"] || "";
59+ font.weight: Font.Light;
60+ }
61+CardAudioProgress {
62+ id: audioProgressBar;
63+ duration: (cardData["quickPreviewData"] && cardData["quickPreviewData"]["duration"]) || 0;
64+ source: (cardData["quickPreviewData"] && cardData["quickPreviewData"]["uri"]) || "";
65+ anchors {
66+ bottom: audioButton.bottom;
67+ left: audioButton.right;
68+ right: parent.right;
69+ margins: units.gu(1);
70+ }
71+ color: root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText;
72+ }AbstractButton {
73+ id: audioButton;
74+ anchors.fill: undefined;
75+ width: height;
76+ height: (root.fixedHeaderHeight > 0 ? root.fixedHeaderHeight : headerHeight) + 2 * units.gu(1);
77+ readonly property url source: (cardData["quickPreviewData"] && cardData["quickPreviewData"]["uri"]) || "";
78+ UbuntuShape {
79+ anchors.fill: parent;
80+ visible: parent.pressed;
81+ radius: "medium";
82+ }
83+ Icon {
84+ anchors.fill: parent;
85+ anchors.margins: parent.height > units.gu(5) ? units.gu(2) : 0;
86+ opacity: 0.9;
87+ name: DashAudioPlayer.playing && AudioUrlComparer.compare(parent.source, DashAudioPlayer.currentSource) ? "media-playback-pause" : "media-playback-start";
88+ }
89+ onClicked: {
90+ if (AudioUrlComparer.compare(source, DashAudioPlayer.currentSource)) {
91+ if (DashAudioPlayer.playing) {
92+ DashAudioPlayer.pause();
93+ } else {
94+ DashAudioPlayer.play();
95+ }
96+ } else {
97+ var playlist = (cardData["quickPreviewData"] && cardData["quickPreviewData"]["playlist"]) || null;
98+ DashAudioPlayer.playSource(source, playlist);
99+ }
100+ }
101+ onPressAndHold: {
102+ root.pressAndHold();
103+ }
104+ }UbuntuShape {
105+ id: touchdown;
106+ objectName: "touchdown";
107+ anchors { fill: root }
108+ visible: root.artShapeStyle != "shadow" && root.artShapeStyle != "icon" && root.pressed;
109+ radius: "medium";
110+ borderSource: "radius_pressed.sci"
111+ }
112+implicitHeight: audioButton.height;
113+}
tests/plugins/Dash/cardcreator/9.tstnew file+3
@@ -0,0 +1,3 @@
1+template: {"card-layout":"horizontal","card-size":"medium","category-layout":"grid","collapsed-rows":2,"quick-preview-type": "audio"}
2+components: {"art":{"aspect-ratio":1},"subtitle":{"field":"author"},"title":{"field":"title"}, "quickPreviewData": "quickPreviewData"}
3+result: 9.res
tests/qmltests/CMakeLists.txt+2−1
@@ -38,6 +38,7 @@ add_unity8_qmltest(Dash/Previews PreviewExpandable)
3838add_unity8_qmltest(Dash/Previews PreviewHeader)
3939add_unity8_qmltest(Dash/Previews PreviewIconActions)
4040add_unity8_qmltest(Dash/Previews PreviewImageGallery)
41+add_unity8_qmltest(Dash/Previews PreviewMediaToolbar)
4142add_unity8_qmltest(Dash/Previews PreviewPayments)
4243add_unity8_qmltest(Dash/Previews PreviewProgress)
4344add_unity8_qmltest(Dash/Previews PreviewRatingDisplay)
@@ -87,4 +88,4 @@ add_unity8_qmltest(Stages WindowResizeArea)
8788add_unity8_qmltest(Stages Splash)
8889add_unity8_qmltest(Tutorial Tutorial LIGHTDM)
8990add_unity8_qmltest(Wizard Wizard ENVIRONMENT "OXIDE_NO_SANDBOX=1")
90−add_unity8_qmlunittest(utils/Unity/Test UnityTest)
91+add_unity8_qmltest(utils/Unity/Test UnityTest)
tests/qmltests/Components/CMakeLists.txt+1−1
@@ -15,7 +15,7 @@ qt5_use_modules(DragHandleTestExec Test Core Qml Gui Quick)
1515target_link_libraries(DragHandleTestExec UbuntuGesturesQml UbuntuGestures)
1616
1717add_unity8_uitest(DragHandle DragHandleTestExec ENVIRONMENT LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/plugins/Ubuntu/Gestures)
18−add_manual_qml_test(. DragHandle IMPORT_PATHS ${UNITY_PLUGINPATH})
18+add_manual_qml_test(. DragHandle IMPORT_PATHS ${UNITY_IMPORT_PATHS})
1919
2020########## tst_EdgeDragEvaluator
2121add_executable(EdgeDragEvaluatorTestExec tst_EdgeDragEvaluator.cpp)
tests/qmltests/Components/tst_DragHandle.qml+6−6
@@ -1,5 +1,5 @@
11/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright 2013,2015 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
@@ -51,7 +51,7 @@ Rectangle {
5151 objectName: "baseItem"
5252 anchors.fill: parent
5353
54− Button {
54+ SimpleButton {
5555 visible: root.bidirectional && bidirectionalShowable.fullyHidden
5656 text: "bidirectionalShowable.show()"
5757 anchors.centerIn: parent
@@ -169,12 +169,12 @@ Rectangle {
169169 anchors.margins: units.gu(1)
170170 spacing: units.gu(1)
171171
172− Button {
172+ SimpleButton {
173173 text: root.stretch ? "stretch" : "move"
174174 onClicked: { root.stretch = !root.stretch; }
175175 }
176176
177− Button {
177+ SimpleButton {
178178 text: root.hintDisplacement > 0 ? "hint" : "no hint"
179179 onClicked: {
180180 if (root.hintDisplacement > 0) {
@@ -185,7 +185,7 @@ Rectangle {
185185 }
186186 }
187187
188− Button {
188+ SimpleButton {
189189 text: "rotation: " + baseItem.rotation
190190 onClicked: {
191191 if (baseItem.rotation === 0.0) {
@@ -196,7 +196,7 @@ Rectangle {
196196 }
197197 }
198198
199− Button {
199+ SimpleButton {
200200 text: root.bidirectional ? "bidirectional" : "directional"
201201 onClicked: { root.bidirectional = !root.bidirectional; }
202202 }
tests/qmltests/Components/tst_DragHandle/SimpleButton.qmlnew file+36
@@ -0,0 +1,36 @@
1+/*
2+ * Copyright 2015 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+
20+
21+Rectangle {
22+ id: root
23+ property alias text: textItem.text
24+ signal clicked()
25+ width: textItem.width + units.gu(1.5)
26+ height: textItem.height + units.gu(1.5)
27+ Text {
28+ id: textItem
29+ anchors.centerIn: parent
30+ font.pixelSize: units.gu(1.5)
31+ }
32+ MouseArea {
33+ anchors.fill: parent
34+ onClicked: root.clicked()
35+ }
36+}
tests/qmltests/Dash/CardHelpers.js+1−1
@@ -16,7 +16,7 @@
1616
1717.pragma library
1818
19−var components = ["title", "art", "subtitle", "mascot", "emblem", "summary", "attributes", "overlayColor"]
19+var components = ["title", "art", "subtitle", "mascot", "emblem", "summary", "attributes", "overlayColor", "quickPreviewData"]
2020
2121var defaultLayout = ' \
2222{ \
tests/qmltests/Dash/Previews/tst_PreviewAudioPlayback.qml+5−9
@@ -18,6 +18,7 @@ import QtQuick 2.4
1818import QtTest 1.0
1919import Ubuntu.Components 1.3
2020import "../../../../qml/Dash/Previews"
21+import Dash 0.1
2122import Unity.Test 0.1 as UT
2223import QtMultimedia 5.0
2324
@@ -58,8 +59,8 @@ Rectangle {
5859 function test_time_formatter_data() {
5960 return [
6061 { tag: "NaN", value: "not a number", result: "" },
61− { tag: "0", value: 0, result: "" },
6262 { tag: "-1", value: -1, result: "" },
63+ { tag: "0", value: 0, result: "0:00" },
6364 { tag: "30", value: 30, result: "0:30" },
6465 { tag: "60", value: 60, result: "1:00" },
6566 { tag: "3600", value: 3600, result: "1:00:00" }
@@ -67,8 +68,7 @@ Rectangle {
6768 }
6869
6970 function test_time_formatter(data) {
70− var audio = findInvisibleChild(previewAudioPlayback, "audio");
71− compare(audio.lengthToString(data.value), data.result)
71+ compare(DashAudioPlayer.lengthToString(data.value), data.result)
7272 }
7373
7474 function test_tracks_data() {
@@ -102,7 +102,7 @@ Rectangle {
102102
103103 function checkPlayerSource(index) {
104104 var modelFilename = previewAudioPlayback.widgetData["tracks"][index]["source"].replace(/^.*[\\\/]/, '');
105− var playerFilename = findInvisibleChild(previewAudioPlayback, "audio").source.toString().replace(/^.*[\\\/]/, '');
105+ var playerFilename = DashAudioPlayer.currentSource.toString().replace(/^.*[\\\/]/, '');
106106
107107 compare(modelFilename, playerFilename, "Player source is not set correctly.");
108108 }
@@ -123,7 +123,7 @@ Rectangle {
123123 var track1PlayButton = findChild(track1Item, "playButton");
124124 var track2PlayButton = findChild(track2Item, "playButton");
125125
126− var audio = findInvisibleChild(previewAudioPlayback, "audio");
126+ var audio = DashAudioPlayer.audio;
127127
128128 // All progress bars must be hidden in the beginning
129129 compare(track0ProgressBar.visible, false);
@@ -170,10 +170,6 @@ Rectangle {
170170 tryCompare(track0ProgressBar, "visible", false);
171171 tryCompare(track1ProgressBar, "visible", false);
172172 tryCompare(track2ProgressBar, "visible", true);
173−
174− // Changing preview should make all players shut up!
175− previewAudioPlayback.isCurrentPreview = false
176− tryCompare(audio, "playbackState", Audio.StoppedState);
177173 }
178174 }
179175}
tests/qmltests/Dash/Previews/tst_PreviewMediaToolbar.qmlnew file+69
@@ -0,0 +1,69 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU 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 Ubuntu.Components 1.3
20+import "../../../../qml/Dash/Previews"
21+import Unity.Test 0.1 as UT
22+
23+Rectangle {
24+ id: root
25+ width: units.gu(40)
26+ height: units.gu(80)
27+ color: "black"
28+
29+ property var shareData: {
30+ "uri": [
31+ "Text here",
32+ "text here 2",
33+ "text here 3"
34+ ],
35+ "content-type": "text"
36+ }
37+
38+ property var shareDataNoUri: {
39+ "uri": "",
40+ "content-type": "text"
41+ }
42+
43+
44+ PreviewMediaToolbar {
45+ id: previewMediaToolbar
46+ anchors { left: parent.left; bottom: parent.bottom; }
47+ shareData: root.shareData
48+ }
49+
50+ UT.UnityTestCase {
51+ name: "PreviewMediaToolbarTest"
52+ when: windowShown
53+
54+ property Item sharingWidget: findChild(previewMediaToolbar, "sharingWidget")
55+
56+ function cleanup() {
57+ previewMediaToolbar.shareData = root.shareData;
58+ }
59+
60+ function test_visible() {
61+ previewMediaToolbar.shareData = shareDataNoUri;
62+ compare(previewMediaToolbar.visible, false);
63+ compare(sharingWidget.visible, false);
64+ previewMediaToolbar.shareData = shareData;
65+ compare(previewMediaToolbar.visible, true);
66+ compare(sharingWidget.visible, true);
67+ }
68+ }
69+}
tests/qmltests/Dash/Previews/tst_PreviewSharing.qml+1−13
@@ -32,12 +32,7 @@ Rectangle {
3232 "text here 2",
3333 "text here 3"
3434 ],
35− "contentType": "text"
36− }
37−
38− property var shareDataNoUri: {
39− "uri": "",
40− "contentType": "text"
35+ "content-type": "text"
4136 }
4237
4338 PreviewSharing {
@@ -54,13 +49,6 @@ Rectangle {
5449
5550 function cleanup() {
5651 peerPicker.visible = false;
57− previewSharing.shareData = root.shareData;
58− }
59−
60− function test_visible() {
61− compare(previewSharing.visible, true);
62− previewSharing.shareData = shareDataNoUri;
63− compare(previewSharing.visible, false);
6452 }
6553
6654 function test_open_picker() {
tests/qmltests/Dash/tst_Card.qml+8−1
@@ -35,7 +35,8 @@ Rectangle {
3535 "title": "foo",
3636 "subtitle": "bar",
3737 "summary": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
38− "attributes": [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"}]
38+ "attributes": [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"}],
39+ "quickPreviewData": {"uri": "/some/file", "duration": "14"}
3940 }'
4041
4142 property var cardsModel: [
@@ -106,6 +107,11 @@ Rectangle {
106107 "layout": { "template": { "card-layout": "horizontal" },
107108 "components": JSON.parse(Helpers.fullMapping) }
108109 },
110+ {
111+ "name": "Art, title, subtitle - Audio",
112+ "layout": { "template": { "card-layout": "horizontal", "quick-preview-type": "audio" },
113+ "components": { "art": "art", "title": "title", "subtitle": "subtitle", "quickPreviewData": "quickPreviewData" } }
114+ },
109115 ]
110116
111117 CardTool {
@@ -129,6 +135,7 @@ Rectangle {
129135 item.width = Qt.binding(function() { return cardTool.cardWidth || item.implicitWidth; });
130136 item.height = Qt.binding(function() { return cardTool.cardHeight || item.implicitHeight; });
131137 item.fixedHeaderHeight = Qt.binding(function() { return cardTool.headerHeight; });
138+ item.fixedArtShapeSize = Qt.binding(function() { return cardTool.artShapeSize; });
132139 }
133140 }
134141
tests/qmltests/Dash/tst_DashContent.qml+1−1
@@ -604,7 +604,7 @@ Item {
604604 {
605605 var dashContentList = findChild(dashContent, "dashContentList");
606606 var header = findChild(dashContentList.currentItem, "scopePageHeader")
607− var favoriteAction = findChild(header, "favorite_action_button");
607+ var favoriteAction = findChild(header, "favorite_button");
608608 compare(dashContentList.currentIndex, 0);
609609 compare(dashContentList.indexAt(dashContentList.width * 1.5, 0), 1);
610610 var nextScopeId = dashContentList.itemAt(dashContentList.width * 1.5, 0).item.scope.id;
tests/qmltests/Greeter/tst_Greeter.qml+39−3
@@ -71,9 +71,9 @@ Item {
7171 }
7272
7373 SignalSpy {
74− id: emergencyCallSpy
74+ id: activeChangedSpy
7575 target: loader.item
76− signalName: "emergencyCall"
76+ signalName: "activeChanged"
7777 }
7878
7979 GSettings {
@@ -142,7 +142,7 @@ Item {
142142 resetLoader();
143143 teaseSpy.clear();
144144 sessionStartedSpy.clear();
145− emergencyCallSpy.clear();
145+ activeChangedSpy.clear();
146146 viewShowMessageSpy.clear();
147147 viewShowPromptSpy.clear();
148148 viewShowLastChanceSpy.clear();
@@ -458,6 +458,20 @@ Item {
458458 compare(view.delayMinutes, greeter.failedLoginsDelayMinutes);
459459 }
460460
461+ function test_forcedDelayOnConstructionIgnoredIfInFuture() {
462+ greeterSettings.lockedOutTime = new Date().getTime() + greeter.failedLoginsDelayMinutes * 60000 + 1;
463+ resetLoader();
464+ view = findChild(greeter, "testView");
465+ compare(view.delayMinutes, 0);
466+ }
467+
468+ function test_forcedDelayOnConstructionIgnoredIfInPast() {
469+ greeterSettings.lockedOutTime = new Date().getTime() - greeter.failedLoginsDelayMinutes * 60000 - 1;
470+ resetLoader();
471+ view = findChild(greeter, "testView");
472+ compare(view.delayMinutes, 0);
473+ }
474+
461475 function test_forcedDelayRoundTrip() {
462476 greeter.failedLoginsDelayAttempts = 1;
463477 greeter.failedLoginsDelayMinutes = 0.001; // make delay very short
@@ -471,6 +485,28 @@ Item {
471485 tryCompare(view, "delayMinutes", 0);
472486 }
473487
488+ function test_activeIsConstantDuringLockedApp() {
489+ // Regression test for bug 1525981: if we flicker active state even
490+ // briefly, the mpt-server will allow access to the device's drive.
491+
492+ selectUser("has-password");
493+ verify(greeter.active);
494+
495+ // Test opening a locked app
496+ greeter.lockedApp = "test-app";
497+ greeter.notifyAppFocused("test-app");
498+ verify(greeter.hasLockedApp);
499+ verify(!greeter.shown);
500+
501+ // Test going back to greeter from that locked app
502+ LightDM.Greeter.showGreeter();
503+ verify(!greeter.hasLockedApp);
504+ verify(greeter.shown);
505+
506+ // Active state should never have changed
507+ compare(activeChangedSpy.count, 0);
508+ }
509+
474510 function test_dbusRequestAuthenticationUser() {
475511 selectUser("no-password");
476512 LightDM.Greeter.requestAuthenticationUser("has-password");
tests/qmltests/Launcher/tst_Launcher.qml+16
@@ -625,6 +625,7 @@ Item {
625625 if(data.mouse) {
626626 mouseClick(root)
627627 } else {
628+ touchRelease(draggedItem)
628629 tap(root)
629630 }
630631
@@ -739,6 +740,21 @@ Item {
739740 mouseRelease(draggedItem);
740741 }
741742
743+ function test_launcher_dismiss() {
744+ dragLauncherIntoView();
745+ verify(launcher.state == "visible");
746+ mouseClick(root);
747+ waitUntilLauncherDisappears();
748+ verify(launcher.state == "");
749+
750+ // and repeat, as a test for regression in lpbug#1531339
751+ dragLauncherIntoView();
752+ verify(launcher.state == "visible");
753+ mouseClick(root);
754+ waitUntilLauncherDisappears();
755+ verify(launcher.state == "");
756+ }
757+
742758 function test_quicklist_positioning_data() {
743759 return [
744760 {tag: "top", flickTo: "top", itemIndex: 0},
tests/qmltests/Panel/tst_IndicatorsMenu.qml+3−3
@@ -243,12 +243,12 @@ IndicatorTest {
243243
244244 // next time position will have moved.
245245 var nextItem = get_indicator_item(1);
246− var nextItemMappedPosition = root.mapFromItem(nextItem, nextItem.width/2, nextItem.height/2);
246+ var nextItemMappedPositionX = firstItemMappedPosition.x + firstItem.width;
247247
248248 // 1) Flick mouse down to bottom
249249 touchFlick(indicatorsMenu,
250250 firstItemMappedPosition.x, indicatorsMenu.minimizedPanelHeight * 2,
251− nextItemMappedPosition.x, indicatorsMenu.openedHeight / 3,
251+ nextItemMappedPositionX, indicatorsMenu.openedHeight / 3,
252252 false /* beginTouch */, false /* endTouch */,
253253 units.gu(50) /* speed */, 5 /* iterations */); // more samples needed for accurate velocity
254254
@@ -256,7 +256,7 @@ IndicatorTest {
256256 // after waiting in the same spot with touch down, it should update to the next item.
257257 tryCompare(indicatorItemRow, "currentItem", nextItem);
258258
259− touchRelease(indicatorsMenu, nextItemMappedPosition.x, indicatorsMenu.openedHeight / 3);
259+ touchRelease(indicatorsMenu, nextItemMappedPositionX, indicatorsMenu.openedHeight / 3);
260260 }
261261 }
262262}
tests/qmltests/Stages/tst_DesktopStage.qml+29
@@ -25,6 +25,7 @@ import Utils 0.1
2525import ".." // For EdgeBarrierControls
2626import "../../../qml/Stages"
2727import "../../../qml/Components"
28+import "../../../qml/Components/PanelState"
2829
2930Item {
3031 id: root
@@ -500,5 +501,33 @@ Item {
500501 tryCompare(dialerAppDelegate, "visible", true);
501502 tryCompare(facebookAppDelegate, "visible", false);
502503 }
504+
505+ function test_dropShadow() {
506+ killAllRunningApps();
507+
508+ // verify the drop shadow is not visible initially
509+ verify(PanelState.dropShadow == false);
510+
511+ // start an app, maximize it
512+ var facebookApp = startApplication("facebook-webapp");
513+ var facebookAppDelegate = findChild(desktopStage, "appDelegate_facebook-webapp");
514+ facebookAppDelegate.maximize();
515+
516+ // verify the drop shadow is still not visible
517+ verify(PanelState.dropShadow == false);
518+
519+ // start a foreground app, not maximized
520+ var dialerApp = startApplication("dialer-app");
521+ var dialerAppDelegate = findChild(desktopStage, "appDelegate_dialer-app");
522+
523+ // verify the drop shadow becomes visible
524+ verify(PanelState.dropShadow == true);
525+
526+ // close the maximized app
527+ ApplicationManager.stopApplication("facebook-webapp");
528+
529+ // verify the drop shadow is gone
530+ verify(PanelState.dropShadow == false);
531+ }
503532 }
504533}
tests/qmltests/Wizard/tst_Wizard.qml+15
@@ -129,6 +129,7 @@ Item {
129129
130130 var pages = findChild(wizard, "wizardPages");
131131 var security = findInvisibleChild(pages, "securityPrivacy");
132+ security.setSecurity("", "", UbuntuSecurityPrivacyPanel.Swipe);
132133 setSecuritySpy.target = security;
133134
134135 setup();
@@ -315,6 +316,20 @@ Item {
315316 }
316317 }
317318
319+ function test_passwdSkipIfSet() {
320+ var page = goToPage("simPage");
321+
322+ // Set password type to non-swipe
323+ var pages = findChild(wizard, "wizardPages");
324+ var security = findInvisibleChild(pages, "securityPrivacy");
325+ security.setSecurity("", "", UbuntuSecurityPrivacyPanel.Passphrase);
326+ compare(security.securityType, UbuntuSecurityPrivacyPanel.Passphrase);
327+
328+ // Make sure that moving from sim page lands on wifi page
329+ tap(findChild(page, "forwardButton"));
330+ waitForPage("wifiPage"); // thus skipping passwdPage
331+ }
332+
318333 function test_passwdPasscode() {
319334 var page = goToPage("passwdPage");
320335
tests/utils/modules/Unity/Test/CMakeLists.txt+8−1
@@ -13,12 +13,19 @@ set(UnityTestQML_SOURCES
1313 testutil.cpp
1414 plugin.cpp
1515 TouchEventSequenceWrapper.cpp
16− ${CMAKE_SOURCE_DIR}/src/MouseTouchAdaptor.cpp
1716)
1817
18+if (ENABLE_TOUCH_EMULATION)
19+ set(UnityTestQML_SOURCES ${UnityTestQML_SOURCES} ${CMAKE_SOURCE_DIR}/src/MouseTouchAdaptor.cpp)
20+endif()
21+
1922add_library(UnityTestQml MODULE ${UnityTestQML_SOURCES})
2023target_link_libraries(UnityTestQml UbuntuGestures)
2124
25+if (ENABLE_TOUCH_EMULATION)
26+ target_link_libraries(UnityTestQml ${MOUSETOUCHADAPTOR_LIBS_LDFLAGS})
27+endif()
28+
2229qt5_use_modules(UnityTestQml Core Quick Test)
2330
2431export_qmlfiles(Unity.Test Unity/Test)
tests/utils/modules/Unity/Test/plugin.cpp+13−3
@@ -17,7 +17,11 @@
1717
1818#include "plugin.h"
1919#include "testutil.h"
20+
21+#ifdef UNITY8_ENABLE_TOUCH_EMULATION
2022#include <MouseTouchAdaptor.h>
23+#endif
24+
2125#include "TouchEventSequenceWrapper.h"
2226
2327#include <qqml.h>
@@ -27,23 +31,29 @@ QObject *testutil_provider(QQmlEngine* /* engine */, QJSEngine* /* scriptEngine
2731{
2832 return new TestUtil();
2933}
34+
35+#ifdef UNITY8_ENABLE_TOUCH_EMULATION
3036QObject *getMouseTouchAdaptorQMLSingleton(QQmlEngine* /* engine */, QJSEngine* /* scriptEngine */)
3137{
3238 return MouseTouchAdaptor::instance();
3339}
40+#endif
41+
3442} // anonymous namespace
3543
3644void UnityTestPlugin::registerTypes(const char *uri)
3745{
3846 Q_ASSERT(QLatin1String(uri) == QLatin1String("Unity.Test"));
3947
40− // Ensure the instance gets created
41− MouseTouchAdaptor::instance();
42−
4348 // @uri Unity.Test
4449 qmlRegisterSingletonType<TestUtil>(uri, 0, 1, "Util", testutil_provider);
4550 qmlRegisterUncreatableType<TouchEventSequenceWrapper>(uri, 0, 1, "TouchEventSequence",
4651 "You cannot directly create a TouchEventSequence object.");
52+
53+ #ifdef UNITY8_ENABLE_TOUCH_EMULATION
54+ // Ensure the instance gets created
55+ MouseTouchAdaptor::instance();
4756 qmlRegisterSingletonType<MouseTouchAdaptor>(uri, 0, 1, "MouseTouchAdaptor",
4857 getMouseTouchAdaptorQMLSingleton);
58+ #endif
4959}