on xenial help sign in
Merging with lp:~3v1n0/unity8/fake-indicators-model
7b5207eMarco Trevisan (Treviño)
.crossbuilder/post_deploynew file+1
@@ -0,0 +1 @@
1+restart unity8
CMakeLists.txt+3−1
@@ -57,11 +57,12 @@ find_package(Qt5DBus 5.4 REQUIRED)
57find_package(Qt5Concurrent 5.4 REQUIRED)
57find_package(Qt5Concurrent 5.4 REQUIRED)
58find_package(Qt5Sql 5.4 REQUIRED)
58find_package(Qt5Sql 5.4 REQUIRED)
59
59
60−pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=17)
60+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=21)
61pkg_check_modules(GEONAMES REQUIRED geonames>=0.2)
61pkg_check_modules(GEONAMES REQUIRED geonames>=0.2)
62pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
62pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
63pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
63pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
64pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
64pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
65+pkg_check_modules(GD3 REQUIRED gnome-desktop-3.0)
65
66
66pkg_check_modules(UBUNTUGESTURES REQUIRED UbuntuGestures)
67pkg_check_modules(UBUNTUGESTURES REQUIRED UbuntuGestures)
67
68
@@ -128,6 +129,7 @@ set(SHELL_APP unity8)
128set(DASH_APP unity8-dash)
129set(DASH_APP unity8-dash)
129set(SCOPE_TOOL unity-scope-tool)
130set(SCOPE_TOOL unity-scope-tool)
130set(INDICATORS_CLIENT_APP indicators-client)
131set(INDICATORS_CLIENT_APP indicators-client)
132+set(GREETER_APP unity8-greeter)
131set(MOCK_INDICATOR_SERVICE_APP unity-mock-indicator-service)
133set(MOCK_INDICATOR_SERVICE_APP unity-mock-indicator-service)
132
134
133include_directories(
135include_directories(
CODING+20−59
@@ -15,23 +15,17 @@ download source
15 $ bzr branch lp:unity8 ~/unity8/trunk
15 $ bzr branch lp:unity8 ~/unity8/trunk
16 $ cd ~/unity8/trunk
16 $ cd ~/unity8/trunk
17
17
18−install dependencies
18+install dependencies and build Unity 8
19--------------------
19--------------------
20−If its your first time, install build dependencies
21
20
22$ cd ~/unity8/trunk
21$ cd ~/unity8/trunk
23−$ ./build.sh --setup
22+$ ./build.sh
24−
25− this will:
26− - install the required dependencies to build, as well as run on the desktop
27− - it should also install unity-scope-home and unity-lens-application which
28− are technically "recommends", not strict dependencies
29
23
30−build Unity 8
24+ If its your first time, this will install the required dependencies to build and
31−-------------
25+ build it.
32
26
33−$ cd ~/unity8/trunk
27+ You might want to also install unity-scope-home and unity-scope-click which
34−$ ./build.sh
28+ are technically "recommends", not strict dependencies
35
29
36You may also rebuild with the -c for clean, which just deletes the build
30You may also rebuild with the -c for clean, which just deletes the build
37directory.
31directory.
@@ -43,13 +37,15 @@ Running Unity 8 on your desktop
43run the Unity 8 shell
37run the Unity 8 shell
44---------------------
38---------------------
45$ cd ~/unity8/trunk
39$ cd ~/unity8/trunk
46−$ ./run.sh
40+$ cd builddir
47
41
48−Options can be passed to test the lock screen
42+Each component of unity8 can be ran independently for development and testing
49−$ ./run.sh -p OR -k
43+For example:
44+$ make tryShell
45+$ make tryLauncher
46+$ make tryLockscreen
50
47
51−-p is for pin lock, for which the default prompt answer is "1234"
48+Check out the tests/qmltests/ directory for a list of things that can be ran.
52−-k is for keylock passphrase, for which the default prompt answer is "password"
53
49
54Notes
50Notes
55-----
51-----
@@ -70,50 +66,15 @@ Notes
70
66
71Running Unity 8 on devices
67Running Unity 8 on devices
72==========================
68==========================
73−- Ubuntu Touch builds are currently only available in 14.04 flavour
74−- supported hardware should match one of those listed here
75− https://wiki.ubuntu.com/Touch/Devices#Running_fine
76−- follow the Ubuntu Touch install instructions for your chosen device
77− https://wiki.ubuntu.com/Touch/Install
78−- make sure your device is connected to a network
79−- also make sure you have your SSH key in ~/.ssh/id_rsa.pub (or install one
80− on the device yourself)
81−
82−$ cd ~/unity/trunk
83−$ ./run_on_device.sh --setup
84− this will:
85− - install your public SSH key on the device
86− - install the needed dependencies
87
69
88−$ ./run_on_device.sh
70+Running unity8 on a device should be done using crossbuilder.
89− this will:
71+Go to
90− - rsync the code to the device
72+* https://launchpad.net/crossbuilder and
91− - build on the device
73+* https://wiki.ubuntu.com/Touch/Crossbuilder
92− - replace the running shell
74+for more details on crossbuilder.
93−
94−Options can be passed to test the lock screen
95−$ ./run_on_device.sh -p OR -k
96−
97−-p is for pin lock, for which the default prompt answer is "1234"
98−-k is for keylock passphrase, for which the default prompt answer is "password"
99−
100−Notes
101−-----
102−- using adb over TCP has some advantages, Google will be of help here
103− - NOTE: this is not yet available for flipped images
104− - TL;DR: `adb tcpip 5555; adb connect $your_device_ip`
105− - you can persist the above via `adb shell setprop persist.adb.tcp.port 5555`
106− - it's unsafe - anyone can connect to your device
107− - with TCP the Nexus 10 doesn't drop the adb connection when locking
108− the screen
109−- exporting ANDROID_SERIAL=$your_device_serial or
110− ANDROID_SERIAL=$your_device_ip:5555 will make adb not complain about
111− multiple devices
112−- you can export TARGET_IP=$your_device_ip TARGET_SSH_PORT=22 for run_on_device.sh
113− to not use adb forwarding - useful if you use multiple devices
114−- using Ninja (package ninja-build - run_on_device.sh -s installs this now)
115− will improve build times (especially in the nothing-to-build case)
116
75
76+unity8 will automatically restart on the phone once deployment
77+has finished due to post-build-steps set up in this repository.
117
78
118Coding guidelines
79Coding guidelines
119=================
80=================
build.sh+6−37
@@ -9,7 +9,6 @@ usage() {
9 echo "usage: build [OPTIONS] [BUILD_TYPE]\n" >&2
9 echo "usage: build [OPTIONS] [BUILD_TYPE]\n" >&2
10 echo "Script to build the shell. If BUILD_TYPE is not specified, it defaults to \"debug\".\n" >&2
10 echo "Script to build the shell. If BUILD_TYPE is not specified, it defaults to \"debug\".\n" >&2
11 echo "OPTIONS:" >&2
11 echo "OPTIONS:" >&2
12− echo " -s, --setup Setup the build environment and branch Unity" >&2
13 echo " -c, --clean Clean the build tree before building" >&2
12 echo " -c, --clean Clean the build tree before building" >&2
14 echo >&2
13 echo >&2
15 exit 1
14 exit 1
@@ -22,7 +21,6 @@ eval set -- "$ARGS"
22while [ $# -gt 0 ]
21while [ $# -gt 0 ]
23do
22do
24 case "$1" in
23 case "$1" in
25− -s|--setup) SETUP=true;;
26 -c|--clean) CLEAN=true;;
24 -c|--clean) CLEAN=true;;
27 -h|--help) usage;;
25 -h|--help) usage;;
28 --) shift;break;;
26 --) shift;break;;
@@ -35,31 +33,6 @@ done
35BUILD_TYPE="debug"
33BUILD_TYPE="debug"
36[ $# -eq 1 ] && BUILD_TYPE="$1"
34[ $# -eq 1 ] && BUILD_TYPE="$1"
37
35
38−install_dependencies() {
39− sudo apt-get update || exit 4
40− echo "Installing Unity 8 dependencies.."
41− sudo apt-get install devscripts \
42− equivs \
43− gsettings-desktop-schemas \
44− gsettings-ubuntu-schemas \
45− pay-service \
46− qmenumodel-qml \
47− qml-module-qtquick-layouts \
48− qml-module-qtquick-xmllistmodel \
49− qtdeclarative5-gsettings1.0 \
50− qtdeclarative5-ubuntu-ui-toolkit-plugin \
51− qtdeclarative5-ubuntu-settings-components \
52− qtdeclarative5-ubuntu-telephony0.1 \
53− qtdeclarative5-ubuntu-thumbnailer0.1 \
54− qtdeclarative5-unity-notifications-plugin \
55− qml-module-ubuntu-connectivity \
56− ubuntu-mobile-icons \
57− ubuntu-system-settings \
58− unity-plugin-scopes \
59− xvfb \
60− || exit 5
61−}
62−
63mk_build_deps() {
36mk_build_deps() {
64 if [ ! -f control -o $CODE_DIR/debian/control -nt control ]; then
37 if [ ! -f control -o $CODE_DIR/debian/control -nt control ]; then
65 sed 's/\:native//g' $CODE_DIR/debian/control > control
38 sed 's/\:native//g' $CODE_DIR/debian/control > control
@@ -85,13 +58,9 @@ else
85 BUILD_COMMAND="make -j$NUM_JOBS"
58 BUILD_COMMAND="make -j$NUM_JOBS"
86fi
59fi
87
60
88−if $SETUP; then
89− install_dependencies
90−else
91− if $CLEAN; then rm -rf builddir; fi
61+if $CLEAN; then rm -rf builddir; fi
92− mkdir -p builddir
62+mkdir -p builddir
93− cd builddir
63+cd builddir
94− mk_build_deps
64+mk_build_deps
95− cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CODE_DIR ${GENERATOR} || exit 6
65+cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CODE_DIR ${GENERATOR} || exit 6
96− ${BUILD_COMMAND} || exit 7
66+${BUILD_COMMAND} || exit 7
97−fi
data/51-unity8-greeter.confnew file+2
@@ -0,0 +1,2 @@
1+[Seat:*]
2+greeter-session=unity8-greeter
data/CMakeLists.txt+11
@@ -2,6 +2,7 @@
2configure_file(${SHELL_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${SHELL_APP}.desktop @ONLY)
2configure_file(${SHELL_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${SHELL_APP}.desktop @ONLY)
3configure_file(${DASH_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${DASH_APP}.desktop @ONLY)
3configure_file(${DASH_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${DASH_APP}.desktop @ONLY)
4configure_file(${INDICATORS_CLIENT_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${INDICATORS_CLIENT_APP}.desktop @ONLY)
4configure_file(${INDICATORS_CLIENT_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${INDICATORS_CLIENT_APP}.desktop @ONLY)
5+configure_file(${GREETER_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${GREETER_APP}.desktop @ONLY)
5
6
6# install desktop files
7# install desktop files
7install(FILES
8install(FILES
@@ -11,6 +12,16 @@ install(FILES
11 DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
12 DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
12 )
13 )
13
14
15+install(FILES
16+ ${CMAKE_CURRENT_BINARY_DIR}/${GREETER_APP}.desktop
17+ DESTINATION ${CMAKE_INSTALL_DATADIR}/lightdm/greeters
18+ )
19+
20+install(FILES
21+ 51-unity8-greeter.conf
22+ DESTINATION ${CMAKE_INSTALL_DATADIR}/lightdm/lightdm.conf.d
23+ )
24+
14# install dash icon
25# install dash icon
15install(FILES
26install(FILES
16 ${CMAKE_CURRENT_SOURCE_DIR}/${DASH_APP}.png
27 ${CMAKE_CURRENT_SOURCE_DIR}/${DASH_APP}.png
data/unity8-dash.png

Binary file not shown.

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+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.innew file+7
@@ -0,0 +1,7 @@
1+[Desktop Entry]
2+Type=Application
3+Name=Unity 8 Greeter
4+Comment=The converged Unity shell's Greeter
5+Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8-greeter-wrapper @CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8 --mode=greeter
6+X-LightDM-Session-Type=mir
7+X-Ubuntu-Touch=true
data/unity8-greeter.pklanew file+44
@@ -0,0 +1,44 @@
1+# DO NOT EDIT THIS FILE, it will be overwritten on update
2+# Place your local configurations under /etc/polkit-1/localauthority/
3+
4+[Disable Controlling of Network Devices]
5+Identity=unix-user:lightdm
6+Action=org.freedesktop.NetworkManager.enable-disable-network;org.freedesktop.NetworkManager.enable-disable-wifi;org.freedesktop.NetworkManager.enable-disable-wwan;org.freedesktop.NetworkManager.enable-disable-wimax;
7+ResultActive=no
8+ResultInactive=no
9+ResultsAny=no
10+
11+[Disable Sleep and Wake]
12+Identity=unix-user:lightdm
13+Action=org.freedesktop.NetworkManager.sleep-wake
14+ResultActive=no
15+ResultInactive=no
16+ResultsAny=no
17+
18+[Disable WiFi Sharing]
19+Identity=unix-user:lightdm
20+Action=org.freedesktop.NetworkManager.wifi.share.protected;org.freedesktop.NetworkManager.wifi.share.open
21+ResultActive=no
22+ResultInactive=no
23+ResultsAny=no
24+
25+[Disable Settings Modifications]
26+Identity=unix-user:lightdm
27+Action=org.freedesktop.NetworkManager.settings.modify.own;org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.settings.modify.hostname
28+ResultActive=no
29+ResultInactive=no
30+ResultsAny=no
31+
32+[Disable User Connections]
33+Identity=unix-user:lightdm
34+Action=org.freedesktop.NetworkManager.use-user-connections
35+ResultActive=no
36+ResultInactive=no
37+ResultsAny=no
38+
39+[Enable Controlling of Network Connections]
40+Identity=unix-user:lightdm
41+Action=org.freedesktop.NetworkManager.network-control
42+ResultActive=yes
43+ResultInactive=no
44+ResultsAny=no
data/unity8.conf+25−2
@@ -3,7 +3,7 @@ author "Ricardo Mendoza <ricmm@ubuntu.com>"
3
3
4emits indicator-services-start
4emits indicator-services-start
5
5
6−start on ((xsession SESSION=ubuntu-touch) or (xsession SESSION=unity8-mir)) and started dbus
6+start on ((xsession SESSION=ubuntu-touch) or (xsession SESSION=unity8-mir) or (xsession SESSION=unity8)) and started dbus
7stop on desktop-end
7stop on desktop-end
8
8
9kill timeout 120
9kill timeout 120
@@ -50,11 +50,34 @@ pre-start script
50 # the lag seen in the indicator panel pull-down (LP: #1488327) and also
50 # the lag seen in the indicator panel pull-down (LP: #1488327) and also
51 # reduces lag seen in apps:
51 # reduces lag seen in apps:
52 initctl set-env --global QML_NO_TOUCH_COMPRESSION=1
52 initctl set-env --global QML_NO_TOUCH_COMPRESSION=1
53+
54+ if [ "$XDG_SESSION_DESKTOP" = "ubuntu-touch" ]; then
55+ # On Ubuntu Touch, we currently use a trick where we auto-login the
56+ # user without a LightDM greeter at all. In this case, we want to
57+ # start with the lockscreen visible. Once we switch to using a
58+ # proper greeter for the first login, we can remove this code path.
59+ initctl set-env MODE=full-greeter
60+ else
61+ initctl set-env MODE=full-shell
62+ fi
53end script
63end script
54
64
55−exec ${BINARY:-unity8} $ARGS
65+exec ${BINARY:-unity8} --mode=$MODE $ARGS
56
66
57post-start script
67post-start script
68+ # If no MIR_SOCKET was defined on launch, we try to set one here
69+ if [ -z "$(initctl get-env --global UNITY_MIR_SOCKET)" ]; then
70+ if [ -S "$XDG_RUNTIME_DIR/mir_socket" ]; then
71+ mir_socket=$XDG_RUNTIME_DIR/mir_socket
72+ elif [ -S "/tmp/mir_socket" ]; then
73+ mir_socket=/tmp/mir_socket
74+ fi
75+
76+ if [ -n "$mir_socket" ]; then
77+ initctl set-env --global MIR_SOCKET="$mir_socket"
78+ fi
79+ fi
80+
58 initctl emit --no-wait indicator-services-start
81 initctl emit --no-wait indicator-services-start
59end script
82end script
60
83
debian/changelog+323
@@ -1,3 +1,326 @@
1+unity8 (8.14+16.10.20160831.3-0ubuntu1) yakkety; urgency=medium
2+
3+ [ Daniel d'Andrada ]
4+ * Added implementation for MirSurfaceInterface::persistentId
5+
6+ -- Ken VanDine <ken.vandine@canonical.com> Wed, 31 Aug 2016 11:56:09 +0000
7+
8+unity8 (8.14+16.10.20160826-0ubuntu1) yakkety; urgency=medium
9+
10+ * Make sure we emit sounds when taking a screenshot even after media-
11+ hub (LP: #1544477)
12+
13+ -- Alfonso Sanchez-Beato <alfonso.sanchez-beato@canonical.com> Fri, 26 Aug 2016 08:14:14 +0000
14+
15+unity8 (8.14+16.10.20160819-0ubuntu1) yakkety; urgency=medium
16+
17+ [ Lukáš Tinkl ]
18+ * Reset topmostIsFullscreen to correctly rotate the shell when
19+ dismissing SIM PIN screen (LP: #1614070)
20+
21+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 19 Aug 2016 14:16:54 +0000
22+
23+unity8 (8.14+16.10.20160811.1-0ubuntu1) yakkety; urgency=medium
24+
25+ [ Albert Astals Cid ]
26+ * Take into account carousel selectedItemScaleFactor when setting card
27+ fixedArtShapeSize (LP: #1599238)
28+ * Remove unused LimitProxyModel
29+ * Do not calculate implicitHeight for Cards in a CardGrid
30+ * Small clazy fixes
31+
32+ [ Daniel d'Andrada ]
33+ * Remove stage property from Application
34+
35+ [ Larry Price ]
36+ * Allow libertine-scope to show empty search result hint unmodified.
37+ (LP: #1606693)
38+
39+ [ Lukáš Tinkl ]
40+ * Open the quicklist (context) menu also using the Menu key (LP:
41+ #1608265)
42+ * Fix incorrect SIM PIN dialog position when entering a wrong PIN (LP:
43+ #1596076)
44+ * Apply the correct keymap also on prompt surfaces (LP: #1610124)
45+ * Implement an optional system update feature during OOBE wizard (LP:
46+ #1580785)
47+ * Implement a page for choosing HW keyboard layout in OOBE wizard
48+
49+ [ Michael Zanetti ]
50+ * Clean up some build script legacy
51+ * Add a crossbuilder_post file to make crossbuilder restart unity8
52+ after deploying
53+ * fixes for the automatic switching between usage modes (LP: #1590944)
54+
55+ [ Omer Akram ]
56+ * Add object names for setup wizard
57+
58+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 11 Aug 2016 06:28:20 +0000
59+
60+unity8 (8.14+16.10.20160803-0ubuntu1) yakkety; urgency=medium
61+
62+ [ Albert Astals Cid ]
63+ * Fix DisabledScreenNotice::test_rotation
64+ * Make the delegate of DashNavigationList an async Loader
65+ * unity-scope-tool: Use parse instead of process
66+ * VerticalJournal improvements regarding model insertions and item
67+ height changes (LP: #1599754)
68+ * Add math.h includes for compilation in yakkety (LP: #1605502)
69+
70+ [ Andrea Cimitan ]
71+ * Unfocus the search text field in the dash page header when requested
72+ (LP: #1590820)
73+ * Use binding for filter popover contentWidth (LP: #1595116)
74+ * Add few sourceSize for Image we forgot (LP: #1595113)
75+ * Replace Flickable with an Item inside DashPageHeader for
76+ headerContainer (LP: #1599235)
77+
78+ [ Albert Astals Cid, Andrea Cimitan ]
79+ * Unbox the artshapeLoader
80+
81+ [ Daniel d'Andrada ]
82+ * Fix splashscreen orientation when app rotates own contents (LP:
83+ #1586050)
84+ * tst_PreviewIconActions: Make test name match filename
85+ * Cursor: make its size grid unit based (LP: #1604014)
86+ * TouchEventSequenceWrapper: item might get deleted when touch
87+ sequence is committed (LP: #1607686)
88+
89+ [ Lukáš Tinkl ]
90+ * Implement frontend support for running keyboard indicator
91+ * Provide window/surface close shortcuts across all the stages (LP:
92+ #1578392, #1606528)
93+ * Restart the location trust prompt service when exiting the wizard
94+ (LP: #1594430)
95+ * Implement clearing the search and closing the panel on pressing
96+ Escape key in the dash header
97+ * Fix log timestamps (LP: #1602196)
98+ * Don't display the mode switch warning dialog on tablets (LP:
99+ #1600290)
100+
101+ [ Michael Terry ]
102+ * Fix indicator profile bug that caused sound indicator to say Mute
103+ instead of Silent Mode. (LP: #1604205)
104+ * Fix lockscreen appearing right after unlocking a locked session on
105+ the desktop. (LP: #1604374)
106+
107+ [ Michał Sawicz ]
108+ * Add arm64 support, drop unnecessary B-D on web plugin
109+
110+ -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 03 Aug 2016 15:56:27 +0000
111+
112+unity8 (8.14+16.10.20160728-0ubuntu1) yakkety; urgency=medium
113+
114+ [ Zoltán Balogh ]
115+ * Bump the version to secure UITK compatibility
116+
117+ [ Albert Astals Cid ]
118+ * Pass the correct number of arguments to mapToItem (LP: #1606835)
119+
120+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 28 Jul 2016 08:17:13 +0000
121+
122+unity8 (8.13+16.10.20160714+fix1-0ubuntu2~1) yakkety; urgency=medium
123+
124+ * Rebuild against Qt 5.6.
125+ * Add https://code.launchpad.net/~aacid/unity8/floor_includes/+merge/300850
126+
127+ -- Timo Jyrinki <timo-jyrinki@ubuntu.com> Fri, 22 Jul 2016 09:03:54 +0300
128+
129+unity8 (8.13+16.10.20160714-0ubuntu1) yakkety; urgency=medium
130+
131+ [ Daniel d'Andrada ]
132+ * Make use of MirSurface::inputBounds and drop UbuntuKeyboardInfo hack
133+
134+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 14 Jul 2016 07:09:29 +0000
135+
136+unity8 (8.12+16.10.20160711-0ubuntu1) yakkety; urgency=medium
137+
138+ [ Josh Arenson ]
139+ * Add a SessionsModel to lightdm to support the greeter's session
140+ chooser
141+ * Add unity8-greeter package which contains a basic, but usable
142+ LightDM greeter. (LP: #1324602)
143+
144+ [ Michael Terry ]
145+ * Make sure indicators and launcher hide when power button is pressed
146+ on greeter. (LP: #1595569)
147+ * Fix tablet greeter focus to be always-on, no longer hiding the OSK
148+ or forcing a mouse click to type a password. (LP: #1435923)
149+
150+ -- Michael Terry <michael.terry@canonical.com> Mon, 11 Jul 2016 17:24:20 +0000
151+
152+unity8 (8.12+16.10.20160707-0ubuntu1) yakkety; urgency=medium
153+
154+ [ Michael Zanetti ]
155+ * emit the correct role changed signal on count visible changed (LP:
156+ #1599925)
157+
158+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 07 Jul 2016 16:49:32 +0000
159+
160+unity8 (8.12+16.10.20160705-0ubuntu1) yakkety; urgency=medium
161+
162+ [ Michael Zanetti ]
163+ * don't displace windows if the OSK is on another screen (LP:
164+ #1598917)
165+
166+ -- Michał Sawicz <michal.sawicz@canonical.com> Tue, 05 Jul 2016 10:00:57 +0000
167+
168+unity8 (8.12+16.10.20160627.5-0ubuntu1) yakkety; urgency=medium
169+
170+ [ Albert Astals Cid ]
171+ * Stop watching the old header item height once it's not our header
172+ anymore
173+ * LVWPH: cull the header item when not on view to save some painting
174+ * Adapt test to new mock behaviour
175+ * Don't let the mouse go outside the parentItem (LP: #1525350)
176+ * Use non deprecated package names
177+ * Mark system includes as such
178+ * Fix initialization order warning
179+ * Do not rely on deleteLater not crashing on null pointers
180+ * Add more headers of classes we use for automoc to be run
181+ * CardTool: Fix the fallback value to be a size and not an integer
182+ * CardTool: Include Ubuntu Components since we're using units.gu
183+ * Rework tst_PreviewRatingDisplayCreationRanges
184+
185+ [ Daniel d'Andrada ]
186+ * Cursor: Let AnimatedSprite run only on animated cursors and while
187+ the display is on (LP: #1588873, #1594358)
188+ * Fix missing screenshot when orientation changes while shell rotation
189+ ongoing (LP: #1587796)
190+
191+ [ Josh Arenson ]
192+ * Make PreviewRatingSingleDisplay visible again after editing a
193+ review. (LP: #1587097)
194+ * Correct errors in all png images to prevent libpng warnings.
195+
196+ [ Lukáš Tinkl ]
197+ * Fix some smaller issues with OOBE wizard password pages (LP:
198+ #1590467)
199+ * Prevent mouse wheel events from going through shell elements (LP:
200+ #1536268)
201+ * Do not let mouse and wheel events pass thru the titlebar (LP:
202+ #1588424)
203+ * Hide the maximize window button based on size restrictions (LP:
204+ #1541982)
205+
206+ [ Marco Trevisan (Treviño) ]
207+ * Unity8.conf: ensure MIR_SOCKET is set for future customers (such as
208+ the dash)
209+ * ClientIndicator: be more informative about loading failures for
210+ dynamically created objects
211+
212+ [ Michael Terry ]
213+ * Stop unity8 from getting in a "switch-to-greeter" loop when locking
214+ on a desktop. (LP: #1593718)
215+
216+ [ Michael Zanetti ]
217+ * set minimum window sizes on dash
218+ * displace application windows when the OSK would cover them
219+
220+ [ Nick Dedekind ]
221+ * Force dash to always stay in the main stage. (lp:#1592404) (LP:
222+ #1592404)
223+ * Save the last surface stage on stage drop. (LP: #1579003)
224+ * Default portrait only apps to the side stage. (LP: #1573153)
225+
226+ [ Albert Astals Cid, Andrea Cimitan, Michał Sawicz, Nick Dedekind ]
227+ * Added live video playback in dash previews
228+
229+ -- Michael Zanetti <michael.zanetti@canonical.com> Mon, 27 Jun 2016 18:48:59 +0000
230+
231+unity8 (8.12+16.10.20160620.3-0ubuntu1) yakkety; urgency=medium
232+
233+ [ Michael Terry, Michał Sawicz ]
234+ * Support unlocking via fingerprint, if one is registered.
235+
236+ -- Michael Terry <michael.terry@canonical.com> Mon, 20 Jun 2016 20:25:25 +0000
237+
238+unity8 (8.12+16.10.20160617-0ubuntu1) yakkety; urgency=medium
239+
240+ [ Michael Terry ]
241+ * Do not create Label/Icon if we don't need it
242+ * Fix Z-ordering of prompt surfaces (LP: #1586219)
243+ * Drop bottom edge tutorials completely and small fixes for other
244+ edges. (LP: #1565103)
245+ * Redo visuals for greeter prompt box. (LP: #1435923)
246+ * Make tutorial qmltests more robust. (LP: #1590810)
247+ * Stop showing an extra lockscreen in desktop unity8 sessions. (LP:
248+ #1582987)
249+
250+ [ Albert Astals Cid ]
251+ * Improve dash plugin mock
252+ * Stabilize PreviewExpandableTest::test_all_widgets_height
253+ * Workaround QTBUG-53460
254+ * Split artShape code for cardTool card and regular card
255+ * Simplify the code since fixedArtSize code is mandatory for regular
256+ cards
257+ * Desktop stage: Support rotatesWindowContents (LP: #1547481)
258+ * Turn if if else into if elseif else
259+ * Fix leaks in QInputDeviceManagerPrivate::addDevice
260+ * Do not call |= on uninitialized sigterm.sa_flags
261+ * initialize udevMonitor
262+ * Make notifier and notifierFd function local variables
263+ * Fix crash if a component that is not an Item is given to
264+ sectionDelegate
265+ * Tests: Do not use dynamic_cast if we're not going to test it anyway
266+ * Minor coverity fixes
267+ * Fix warning about anchors.fill in ProportionalShape (LP: #1590963)
268+ * Make wait in cleanup() wait for snapTo animation to have finished
269+
270+ [ Alexandros Frantzis ]
271+ * Improve the way notifications interact with power management (LP:
272+ #1570922)
273+
274+ [ Andrea Cimitan ]
275+ * Correctly refresh cardcreator cache on artshapestyle changes (LP:
276+ #1588335)
277+ * Same tweaks we have for click scope now for libertine
278+ * add a timer to pull to refresh to work on small windows (LP:
279+ #1589060)
280+
281+ [ Daniel d'Andrada ]
282+ * Clean up debug leftovers
283+ * Ensure mouse and window movement are pixel-aligned (LP: #1510382)
284+ * Fix SpreadDelegate rotation animations
285+ * No point in version-controlling files that are automatically
286+ generated
287+ * Center cursor on screen when it's first shown
288+ * Custom cursor name just have to start with "custom"
289+ * Work around AnimatedSprite infinite loop bug (LP: #1588929)
290+
291+ [ Josh Arenson ]
292+ * Disable showDash when it is already shown. (LP: #1506708)
293+ * Add a timestamp to the dash log (LP: #1580074)
294+ * Add timestamp to unity8 log (LP: #1498169)
295+
296+ [ Lukáš Tinkl ]
297+ * Implement keyboard shortcuts info panel
298+ * Implement window controls overlay activatable with 3 fingers tap
299+ (LP: #1489020)
300+ * Select correct Chinese input method for OSK in the wizard (LP:
301+ #1588633)
302+
303+ [ Michael Zanetti ]
304+ * Add support for the launcher surface pips displaying the correct
305+ number of surfaces
306+ * Add support for the persistent alert state. (LP: #1575147, #1584348,
307+ #1586621)
308+ * send a Alt-release event on alt+tab instead of delaying it
309+ completely and invoking it later (LP: #1565236)
310+
311+ [ Stephen M. Webb ]
312+ * added a new upstart $SESSION for unity8-desktop-session (LP:
313+ #1376715)
314+
315+ -- Michael Terry <michael.terry@canonical.com> Fri, 17 Jun 2016 01:22:57 +0000
316+
317+unity8 (8.12+16.10.20160601.1-0ubuntu1) yakkety; urgency=medium
318+
319+ [ Pawel Stolowski ]
320+ * Added apparmor profile for unity8-dash.
321+
322+ -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 01 Jun 2016 20:59:03 +0000
323+
1unity8 (8.12+16.10.20160527-0ubuntu1) yakkety; urgency=medium
324unity8 (8.12+16.10.20160527-0ubuntu1) yakkety; urgency=medium
2
325
3 [ Albert Astals Cid ]
326 [ Albert Astals Cid ]
debian/control+39−21
@@ -5,9 +5,10 @@ Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5Build-Depends: cmake,
5Build-Depends: cmake,
6 dbus-test-runner,
6 dbus-test-runner,
7 debhelper (>= 9),
7 debhelper (>= 9),
8+ dh-apparmor,
8 doxyqml,
9 doxyqml,
9# To allow cross-compiling to work, we also must append :native
10# To allow cross-compiling to work, we also must append :native
10−# to g++ so we don't try to run armhf g++
11+# to g++ so we don't try to run arm g++
11# on an x86 CPU for example, when cross-compiling.
12# on an x86 CPU for example, when cross-compiling.
12 g++:native,
13 g++:native,
13 libandroid-properties-dev,
14 libandroid-properties-dev,
@@ -16,12 +17,14 @@ Build-Depends: cmake,
16 libconnectivity-qt1-dev (>= 0.7.1),
17 libconnectivity-qt1-dev (>= 0.7.1),
17 libevdev-dev,
18 libevdev-dev,
18 libgeonames-dev (>= 0.2),
19 libgeonames-dev (>= 0.2),
20+ libgnome-desktop-3-dev,
19− libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
21+ libgl1-mesa-dev[!arm64 !armhf] | libgl-dev[!arm64 !armhf],
20 libgl1-mesa-dri,
22 libgl1-mesa-dri,
21− libgles2-mesa-dev[armhf],
23+ libgles2-mesa-dev[arm64 armhf],
22 libglib2.0-dev,
24 libglib2.0-dev,
23 libgsettings-qt-dev,
25 libgsettings-qt-dev,
24 libhardware-dev,
26 libhardware-dev,
27+ liblightdm-qt5-3-dev,
25 libpam0g-dev,
28 libpam0g-dev,
26 libpay2-dev,
29 libpay2-dev,
27 libpulse-dev,
30 libpulse-dev,
@@ -29,25 +32,28 @@ Build-Depends: cmake,
29 libqt5svg5-dev,
32 libqt5svg5-dev,
30 libqt5xmlpatterns5-dev,
33 libqt5xmlpatterns5-dev,
31 libsystemsettings-dev,
34 libsystemsettings-dev,
32− libubuntugestures5-dev,
35+ libubuntugestures5-dev (>= 1.3.2030),
33− libubuntugestures5-private-dev,
36+ libubuntugestures5-private-dev (>= 1.3.2030),
34 libudev-dev,
37 libudev-dev,
35− libunity-api-dev (>= 7.113),
38+ libunity-api-dev (>= 7.118),
36 libusermetricsoutput1-dev,
39 libusermetricsoutput1-dev,
37# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
40# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
38− libx11-dev[!armhf],
41+ libx11-dev[!arm64 !armhf],
39− libxcb1-dev[!armhf],
42+ libxcb1-dev[!arm64 !armhf],
40− libxi-dev[!armhf],
43+ libxi-dev[!arm64 !armhf],
41# End of X11 libs
44# End of X11 libs
42 pkg-config,
45 pkg-config,
43 python3-all:any,
46 python3-all:any,
44 python3-setuptools,
47 python3-setuptools,
45 qml-module-qt-labs-folderlistmodel,
48 qml-module-qt-labs-folderlistmodel,
49+ qml-module-qtmultimedia (>= 5.4.1-1ubuntu19~overlay2),
46 qml-module-qtquick-layouts,
50 qml-module-qtquick-layouts,
47 qml-module-qtquick-xmllistmodel,
51 qml-module-qtquick-xmllistmodel,
48 qml-module-qtquick2,
52 qml-module-qtquick2,
49 qml-module-qtsysteminfo,
53 qml-module-qtsysteminfo,
50 qml-module-qttest,
54 qml-module-qttest,
55+ qml-module-ubuntu-components (>= 1.3.2030) | qml-module-ubuntu-components-gles (>= 1.3.2030),
56+ qml-module-ubuntu-web,
51 qt5-default,
57 qt5-default,
52 qtbase5-dev (>= 5.4),
58 qtbase5-dev (>= 5.4),
53 qtbase5-dev-tools,
59 qtbase5-dev-tools,
@@ -55,11 +61,8 @@ Build-Depends: cmake,
55 qtdeclarative5-dev (>= 5.4),
61 qtdeclarative5-dev (>= 5.4),
56 qtdeclarative5-dev-tools,
62 qtdeclarative5-dev-tools,
57 qtdeclarative5-private-dev (>= 5.4),
63 qtdeclarative5-private-dev (>= 5.4),
58− qtdeclarative5-qtmultimedia-plugin (>= 5.4.1-1ubuntu19~overlay2),
59 qtdeclarative5-ubuntu-content1,
64 qtdeclarative5-ubuntu-content1,
60 qtdeclarative5-ubuntu-settings-components (>= 0.7),
65 qtdeclarative5-ubuntu-settings-components (>= 0.7),
61− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
62− qtdeclarative5-ubuntu-web-plugin,
63 ttf-ubuntu-font-family,
66 ttf-ubuntu-font-family,
64Standards-Version: 3.9.4
67Standards-Version: 3.9.4
65Homepage: http://launchpad.net/unity
68Homepage: http://launchpad.net/unity
@@ -72,15 +75,26 @@ XS-Testsuite: autopkgtest
72X-Ubuntu-Use-Langpack: yes
75X-Ubuntu-Use-Langpack: yes
73
76
74Package: indicators-client
77Package: indicators-client
75−Architecture: amd64 armhf i386
78+Architecture: any
76Depends: qmenumodel-qml (>= 0.2.9),
79Depends: qmenumodel-qml (>= 0.2.9),
77− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
80+ qml-module-ubuntu-components (>= 1.3.2030) | qml-module-ubuntu-components-gles (>= 1.3.2030),
78 unity8 (= ${binary:Version}),
81 unity8 (= ${binary:Version}),
79 ${misc:Depends},
82 ${misc:Depends},
80 ${shlibs:Depends},
83 ${shlibs:Depends},
81Description: Indicators client test application
84Description: Indicators client test application
82 This package contains the client application for indicators used by autopilot
85 This package contains the client application for indicators used by autopilot
83
86
87+Package: unity8-greeter
88+Architecture: any
89+Depends: unity8 (= ${binary:Version}),
90+ unity-system-compositor,
91+ ${misc:Depends},
92+ ${shlibs:Depends}
93+Recommends: lightdm
94+Provides: lightdm-greeter
95+Description: The Unity8 Greeter
96+ The Unity 8 greeter is the primary login greeter for Ubuntu devices.
97+
84Package: unity-scope-tool
98Package: unity-scope-tool
85Architecture: any
99Architecture: any
86Depends: unity8-common (= ${source:Version}),
100Depends: unity8-common (= ${source:Version}),
@@ -102,9 +116,11 @@ Depends: dmz-cursor-theme,
102 libcap2-bin,
116 libcap2-bin,
103 libglib2.0-bin,
117 libglib2.0-bin,
104 qmenumodel-qml (>= 0.2.9),
118 qmenumodel-qml (>= 0.2.9),
119+ qml-module-biometryd,
105 qml-module-qt-labs-folderlistmodel,
120 qml-module-qt-labs-folderlistmodel,
106 qml-module-qtquick-xmllistmodel,
121 qml-module-qtquick-xmllistmodel,
107 qml-module-qtsysteminfo,
122 qml-module-qtsysteminfo,
123+ qml-module-ubuntu-web,
108 qtdeclarative5-qtmir-plugin (>= 0.4.8),
124 qtdeclarative5-qtmir-plugin (>= 0.4.8),
109 qtdeclarative5-ubuntu-telephony0.1,
125 qtdeclarative5-ubuntu-telephony0.1,
110 qtdeclarative5-ubuntu-web-plugin,
126 qtdeclarative5-ubuntu-web-plugin,
@@ -115,12 +131,14 @@ Depends: dmz-cursor-theme,
115 unity8-private | unity-launcher-impl,
131 unity8-private | unity-launcher-impl,
116 ${misc:Depends},
132 ${misc:Depends},
117 ${shlibs:Depends},
133 ${shlibs:Depends},
118−Recommends: indicator-session,
134+Recommends: indicator-keyboard,
135+ indicator-session,
119 unity-scope-click,
136 unity-scope-click,
120 unity-scope-mediascanner2,
137 unity-scope-mediascanner2,
121Breaks: indicator-network (<< 0.5.1+14.10.20141014),
138Breaks: indicator-network (<< 0.5.1+14.10.20141014),
122 ubuntu-touch-session (<< 0.107),
139 ubuntu-touch-session (<< 0.107),
123 unity8-greeter (<< 7.89),
140 unity8-greeter (<< 7.89),
141+ ubuntu-keyboard (<< 0.100),
124Replaces: ubuntu-touch-session (<< 0.82~),
142Replaces: ubuntu-touch-session (<< 0.82~),
125 unity8-greeter (<< 7.89),
143 unity8-greeter (<< 7.89),
126Conflicts: ubuntu-system-settings-wizard,
144Conflicts: ubuntu-system-settings-wizard,
@@ -130,12 +148,12 @@ Description: Unity 8 shell
130Package: unity8-common
148Package: unity8-common
131Architecture: all
149Architecture: all
132Depends: qml-module-qtquick-layouts,
150Depends: qml-module-qtquick-layouts,
151+ qml-module-ubuntu-components (>= 1.3.2030) | qml-module-ubuntu-components-gles (>= 1.3.2030),
152+ qml-module-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
133 qtdeclarative5-ubuntu-settings-components (>= 0.7),
153 qtdeclarative5-ubuntu-settings-components (>= 0.7),
134− qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
135− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
136 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
154 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
137 ubuntu-thumbnailer-impl-0,
155 ubuntu-thumbnailer-impl-0,
138− unity-application-impl-17,
156+ unity-application-impl-21,
139 unity-notifications-impl-3,
157 unity-notifications-impl-3,
140 unity-plugin-scopes | unity-scopes-impl,
158 unity-plugin-scopes | unity-scopes-impl,
141 unity-scopes-impl-12,
159 unity-scopes-impl-12,
@@ -162,7 +180,7 @@ Depends: autopilot-qt5 (>= 1.4),
162 python3-fixtures,
180 python3-fixtures,
163 python3-gi,
181 python3-gi,
164 qttestability-autopilot (>= 1.4),
182 qttestability-autopilot (>= 1.4),
165− ubuntu-ui-toolkit-autopilot (>= 1.3.1845),
183+ ubuntu-ui-toolkit-autopilot (>= 1.3.2030),
166 unity-scope-click,
184 unity-scope-click,
167 unity8 (= ${source:Version}),
185 unity8 (= ${source:Version}),
168 unity8-fake-env (= ${source:Version}),
186 unity8-fake-env (= ${source:Version}),
@@ -181,7 +199,7 @@ Pre-Depends: ${misc:Pre-Depends},
181Depends: ${misc:Depends},
199Depends: ${misc:Depends},
182 ${shlibs:Depends},
200 ${shlibs:Depends},
183Provides: unity-application-impl,
201Provides: unity-application-impl,
184− unity-application-impl-16,
202+ unity-application-impl-21,
185Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
203Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
186Description: Fake environment for running Unity 8 shell
204Description: Fake environment for running Unity 8 shell
187 Provides fake implementations of some QML modules used by Unity 8 shell
205 Provides fake implementations of some QML modules used by Unity 8 shell
@@ -191,7 +209,7 @@ Package: unity8-private
191Architecture: any
209Architecture: any
192Multi-Arch: same
210Multi-Arch: same
193Pre-Depends: ${misc:Pre-Depends},
211Pre-Depends: ${misc:Pre-Depends},
194−Depends: accountsservice-ubuntu-schemas (>= 0.0.5),
212+Depends: accountsservice-ubuntu-schemas (>= 0.0.7),
195 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
213 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
196 libhardware2,
214 libhardware2,
197 pay-service,
215 pay-service,
debian/rules+5−1
@@ -29,10 +29,14 @@ override_dh_install:
29 cd $(CURDIR)
29 cd $(CURDIR)
30 dh_install -X'*.pyc' --fail-missing
30 dh_install -X'*.pyc' --fail-missing
31
31
32+override_dh_installdeb:
33+ dh_apparmor --profile-name=usr.bin.unity8-dash -punity8-dash
34+ dh_installdeb
35+
32# use private lib directories
36# use private lib directories
33override_dh_makeshlibs:
37override_dh_makeshlibs:
34 dh_makeshlibs -Nunity8-private -Nunity8-fake-env
38 dh_makeshlibs -Nunity8-private -Nunity8-fake-env
35
39
36−# libMockLightDM-qml.so links against liblightdm-qt5-2.so which doesn't exist
40+# libMockLightDM-qml.so links against liblightdm-qt5-3.so which doesn't exist
37override_dh_shlibdeps:
41override_dh_shlibdeps:
38 dh_shlibdeps -XlibMockLightDM-qml.so
42 dh_shlibdeps -XlibMockLightDM-qml.so
debian/unity8-greeter.installnew file+5
@@ -0,0 +1,5 @@
1+data/unity8-greeter-wrapper usr/bin/
2+data/unity8-greeter-init.conf usr/share/upstart/sessions/
3+data/unity8-greeter.pkla /var/lib/polkit-1/localauthority/10-vendor.d/
4+usr/share/lightdm/greeters/unity8-greeter.desktop
5+usr/share/lightdm/lightdm.conf.d/51-unity8-greeter.conf
debian/unity8-private.install+1−1
@@ -4,7 +4,7 @@ usr/lib/*/unity8/qml/Cursor
4usr/lib/*/unity8/qml/Dash
4usr/lib/*/unity8/qml/Dash
5usr/lib/*/unity8/qml/GlobalShortcut
5usr/lib/*/unity8/qml/GlobalShortcut
6usr/lib/*/unity8/qml/Greeter
6usr/lib/*/unity8/qml/Greeter
7−usr/lib/*/unity8/qml/IntegratedLightDM
7+usr/lib/*/unity8/qml/LightDM
8usr/lib/*/unity8/qml/Lights
8usr/lib/*/unity8/qml/Lights
9usr/lib/*/unity8/qml/Powerd
9usr/lib/*/unity8/qml/Powerd
10usr/lib/*/unity8/qml/ScreenshotDirectory
10usr/lib/*/unity8/qml/ScreenshotDirectory
debian/unity8.install+1
@@ -1,3 +1,4 @@
1+debian/usr.bin.unity8-dash etc/apparmor.d
1var/lib/unity8/version
2var/lib/unity8/version
2data/unity8-dash.conf usr/share/upstart/sessions/
3data/unity8-dash.conf usr/share/upstart/sessions/
3data/unity8-filewatcher.conf usr/share/upstart/sessions/
4data/unity8-filewatcher.conf usr/share/upstart/sessions/
debian/usr.bin.unity8-dashnew file+21
@@ -0,0 +1,21 @@
1+# vim:syntax=apparmor
2+
3+#include <tunables/global>
4+
5+# v2 compatible wildly permissive profile
6+profile unity8-dash /usr/bin/unity8-dash (attach_disconnected) {
7+ capability,
8+ network,
9+ / rwkl,
10+ /** rwlkm,
11+ /** pix,
12+
13+ mount,
14+ remount,
15+ umount,
16+ pivot_root,
17+ dbus,
18+ signal,
19+ ptrace,
20+ unix,
21+}
plugins/AccountsService/AccountsService.cpp+41−3
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013, 2015 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -36,8 +36,10 @@
36#define PROP_DEMO_EDGES QStringLiteral("demo-edges")
36#define PROP_DEMO_EDGES QStringLiteral("demo-edges")
37#define PROP_DEMO_EDGES_COMPLETED QStringLiteral("DemoEdgesCompleted")
37#define PROP_DEMO_EDGES_COMPLETED QStringLiteral("DemoEdgesCompleted")
38#define PROP_EMAIL QStringLiteral("Email")
38#define PROP_EMAIL QStringLiteral("Email")
39+#define PROP_ENABLE_FINGERPRINT_IDENTIFICATION QStringLiteral("EnableFingerprintIdentification")
39#define PROP_ENABLE_INDICATORS_WHILE_LOCKED QStringLiteral("EnableIndicatorsWhileLocked")
40#define PROP_ENABLE_INDICATORS_WHILE_LOCKED QStringLiteral("EnableIndicatorsWhileLocked")
40#define PROP_ENABLE_LAUNCHER_WHILE_LOCKED QStringLiteral("EnableLauncherWhileLocked")
41#define PROP_ENABLE_LAUNCHER_WHILE_LOCKED QStringLiteral("EnableLauncherWhileLocked")
42+#define PROP_FAILED_FINGERPRINT_LOGINS QStringLiteral("FailedFingerprintLogins")
41#define PROP_FAILED_LOGINS QStringLiteral("FailedLogins")
43#define PROP_FAILED_LOGINS QStringLiteral("FailedLogins")
42#define PROP_INPUT_SOURCES QStringLiteral("InputSources")
44#define PROP_INPUT_SOURCES QStringLiteral("InputSources")
43#define PROP_LICENSE_ACCEPTED QStringLiteral("LicenseAccepted")
45#define PROP_LICENSE_ACCEPTED QStringLiteral("LicenseAccepted")
@@ -66,9 +68,9 @@ Q_DECLARE_METATYPE(StringMapList)
66QVariant primaryButtonConverter(const QVariant &value)
68QVariant primaryButtonConverter(const QVariant &value)
67{
69{
68 QString stringValue = value.toString();
70 QString stringValue = value.toString();
69− if (stringValue == "left") {
71+ if (stringValue == QLatin1String("left")) {
70 return QVariant::fromValue(0);
72 return QVariant::fromValue(0);
71− } else if (stringValue == "right") {
73+ } else if (stringValue == QLatin1String("right")) {
72 return QVariant::fromValue(1); // Mir is less clear on this -- any non-zero value is the same
74 return QVariant::fromValue(1); // Mir is less clear on this -- any non-zero value is the same
73 } else {
75 } else {
74 return QVariant::fromValue(0); // default to left
76 return QVariant::fromValue(0); // default to left
@@ -93,12 +95,14 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
93 registerProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES, QStringLiteral("keymapsChanged"));
95 registerProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES, QStringLiteral("keymapsChanged"));
94 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED, QStringLiteral("hereEnabledChanged"));
96 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED, QStringLiteral("hereEnabledChanged"));
95 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH, QStringLiteral("hereLicensePathChanged"));
97 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH, QStringLiteral("hereLicensePathChanged"));
98+ registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_FINGERPRINT_IDENTIFICATION, QStringLiteral("enableFingerprintIdentificationChanged"));
96 registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED, QStringLiteral("enableLauncherWhileLockedChanged"));
99 registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED, QStringLiteral("enableLauncherWhileLockedChanged"));
97 registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_INDICATORS_WHILE_LOCKED, QStringLiteral("enableIndicatorsWhileLockedChanged"));
100 registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_INDICATORS_WHILE_LOCKED, QStringLiteral("enableIndicatorsWhileLockedChanged"));
98 registerProperty(IFACE_UBUNTU_SECURITY, PROP_PASSWORD_DISPLAY_HINT, QStringLiteral("passwordDisplayHintChanged"));
101 registerProperty(IFACE_UBUNTU_SECURITY, PROP_PASSWORD_DISPLAY_HINT, QStringLiteral("passwordDisplayHintChanged"));
99 registerProperty(IFACE_UBUNTU_SECURITY_OLD, PROP_STATS_WELCOME_SCREEN, QStringLiteral("statsWelcomeScreenChanged"));
102 registerProperty(IFACE_UBUNTU_SECURITY_OLD, PROP_STATS_WELCOME_SCREEN, QStringLiteral("statsWelcomeScreenChanged"));
100 registerProperty(IFACE_UNITY, PROP_DEMO_EDGES, QStringLiteral("demoEdgesChanged"));
103 registerProperty(IFACE_UNITY, PROP_DEMO_EDGES, QStringLiteral("demoEdgesChanged"));
101 registerProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, QStringLiteral("demoEdgesCompletedChanged"));
104 registerProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, QStringLiteral("demoEdgesCompletedChanged"));
105+ registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_FINGERPRINT_LOGINS, QStringLiteral("failedFingerprintLoginsChanged"));
102 registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS, QStringLiteral("failedLoginsChanged"));
106 registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS, QStringLiteral("failedLoginsChanged"));
103
107
104 registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_CURSOR_SPEED,
108 registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_CURSOR_SPEED,
@@ -176,6 +180,12 @@ void AccountsService::markDemoEdgeCompleted(const QString &edge)
176 }
180 }
177}
181}
178
182
183+bool AccountsService::enableFingerprintIdentification() const
184+{
185+ auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_FINGERPRINT_IDENTIFICATION);
186+ return value.toBool();
187+}
188+
179bool AccountsService::enableLauncherWhileLocked() const
189bool AccountsService::enableLauncherWhileLocked() const
180{
190{
181 auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED);
191 auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED);
@@ -274,6 +284,34 @@ QStringList AccountsService::keymaps() const
274 return {QStringLiteral("us")};
284 return {QStringLiteral("us")};
275}
285}
276
286
287+void AccountsService::setKeymaps(const QStringList &keymaps)
288+{
289+ if (keymaps.isEmpty()) {
290+ qWarning() << "Setting empty keymaps is not supported";
291+ return;
292+ }
293+
294+ StringMapList result;
295+ Q_FOREACH(const QString &keymap, keymaps) {
296+ StringMap map;
297+ map.insert(QStringLiteral("xkb"), keymap);
298+ result.append(map);
299+ }
300+
301+ setProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES, QVariant::fromValue(result));
302+ Q_EMIT keymapsChanged();
303+}
304+
305+uint AccountsService::failedFingerprintLogins() const
306+{
307+ return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_FINGERPRINT_LOGINS).toUInt();
308+}
309+
310+void AccountsService::setFailedFingerprintLogins(uint failedFingerprintLogins)
311+{
312+ setProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_FINGERPRINT_LOGINS, failedFingerprintLogins);
313+}
314+
277uint AccountsService::failedLogins() const
315uint AccountsService::failedLogins() const
278{
316{
279 return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS).toUInt();
317 return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS).toUInt();
plugins/AccountsService/AccountsService.h+15−4
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013, 2015 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -41,6 +41,9 @@ class AccountsService: public QObject
41 Q_PROPERTY (QStringList demoEdgesCompleted
41 Q_PROPERTY (QStringList demoEdgesCompleted
42 READ demoEdgesCompleted
42 READ demoEdgesCompleted
43 NOTIFY demoEdgesCompletedChanged)
43 NOTIFY demoEdgesCompletedChanged)
44+ Q_PROPERTY (bool enableFingerprintIdentification
45+ READ enableFingerprintIdentification
46+ NOTIFY enableFingerprintIdentificationChanged)
44 Q_PROPERTY (bool enableLauncherWhileLocked
47 Q_PROPERTY (bool enableLauncherWhileLocked
45 READ enableLauncherWhileLocked
48 READ enableLauncherWhileLocked
46 NOTIFY enableLauncherWhileLockedChanged)
49 NOTIFY enableLauncherWhileLockedChanged)
@@ -60,6 +63,10 @@ class AccountsService: public QObject
60 READ failedLogins
63 READ failedLogins
61 WRITE setFailedLogins
64 WRITE setFailedLogins
62 NOTIFY failedLoginsChanged)
65 NOTIFY failedLoginsChanged)
66+ Q_PROPERTY (uint failedFingerprintLogins
67+ READ failedFingerprintLogins
68+ WRITE setFailedFingerprintLogins
69+ NOTIFY failedFingerprintLoginsChanged)
63 Q_PROPERTY(bool hereEnabled
70 Q_PROPERTY(bool hereEnabled
64 READ hereEnabled
71 READ hereEnabled
65 WRITE setHereEnabled
72 WRITE setHereEnabled
@@ -72,9 +79,7 @@ class AccountsService: public QObject
72 NOTIFY hereLicensePathChanged)
79 NOTIFY hereLicensePathChanged)
73 Q_PROPERTY(QString realName READ realName WRITE setRealName NOTIFY realNameChanged)
80 Q_PROPERTY(QString realName READ realName WRITE setRealName NOTIFY realNameChanged)
74 Q_PROPERTY(QString email READ email WRITE setEmail NOTIFY emailChanged)
81 Q_PROPERTY(QString email READ email WRITE setEmail NOTIFY emailChanged)
75− Q_PROPERTY(QStringList keymaps
82+ Q_PROPERTY(QStringList keymaps READ keymaps WRITE setKeymaps NOTIFY keymapsChanged)
76− READ keymaps
77− NOTIFY keymapsChanged)
78
83
79public:
84public:
80 enum PasswordDisplayHint {
85 enum PasswordDisplayHint {
@@ -91,6 +96,7 @@ public:
91 void setDemoEdges(bool demoEdges);
96 void setDemoEdges(bool demoEdges);
92 QStringList demoEdgesCompleted() const;
97 QStringList demoEdgesCompleted() const;
93 Q_INVOKABLE void markDemoEdgeCompleted(const QString &edge);
98 Q_INVOKABLE void markDemoEdgeCompleted(const QString &edge);
99+ bool enableFingerprintIdentification() const;
94 bool enableLauncherWhileLocked() const;
100 bool enableLauncherWhileLocked() const;
95 bool enableIndicatorsWhileLocked() const;
101 bool enableIndicatorsWhileLocked() const;
96 QString backgroundFile() const;
102 QString backgroundFile() const;
@@ -98,6 +104,8 @@ public:
98 PasswordDisplayHint passwordDisplayHint() const;
104 PasswordDisplayHint passwordDisplayHint() const;
99 uint failedLogins() const;
105 uint failedLogins() const;
100 void setFailedLogins(uint failedLogins);
106 void setFailedLogins(uint failedLogins);
107+ uint failedFingerprintLogins() const;
108+ void setFailedFingerprintLogins(uint failedFingerprintLogins);
101 bool hereEnabled() const;
109 bool hereEnabled() const;
102 void setHereEnabled(bool enabled);
110 void setHereEnabled(bool enabled);
103 QString hereLicensePath() const;
111 QString hereLicensePath() const;
@@ -107,17 +115,20 @@ public:
107 QString email() const;
115 QString email() const;
108 void setEmail(const QString &email);
116 void setEmail(const QString &email);
109 QStringList keymaps() const;
117 QStringList keymaps() const;
118+ void setKeymaps(const QStringList &keymaps);
110
119
111Q_SIGNALS:
120Q_SIGNALS:
112 void userChanged();
121 void userChanged();
113 void demoEdgesChanged();
122 void demoEdgesChanged();
114 void demoEdgesCompletedChanged();
123 void demoEdgesCompletedChanged();
124+ void enableFingerprintIdentificationChanged();
115 void enableLauncherWhileLockedChanged();
125 void enableLauncherWhileLockedChanged();
116 void enableIndicatorsWhileLockedChanged();
126 void enableIndicatorsWhileLockedChanged();
117 void backgroundFileChanged();
127 void backgroundFileChanged();
118 void statsWelcomeScreenChanged();
128 void statsWelcomeScreenChanged();
119 void passwordDisplayHintChanged();
129 void passwordDisplayHintChanged();
120 void failedLoginsChanged();
130 void failedLoginsChanged();
131+ void failedFingerprintLoginsChanged();
121 void hereEnabledChanged();
132 void hereEnabledChanged();
122 void hereLicensePathChanged();
133 void hereLicensePathChanged();
123 void realNameChanged();
134 void realNameChanged();
plugins/AccountsService/AccountsService.qmltypesdeleted−41
@@ -1,41 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable AccountsService 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "AccountsService"
12− prototype: "QObject"
13− exports: ["AccountsService/AccountsService 0.1"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Enum {
18− name: "PasswordDisplayHint"
19− values: {
20− "Keyboard": 0,
21− "Numeric": 1
22− }
23− }
24− Property { name: "user"; type: "string" }
25− Property { name: "demoEdges"; type: "bool" }
26− Property { name: "demoEdgesCompleted"; type: "QStringList"; isReadonly: true }
27− Property { name: "enableLauncherWhileLocked"; type: "bool"; isReadonly: true }
28− Property { name: "enableIndicatorsWhileLocked"; type: "bool"; isReadonly: true }
29− Property { name: "backgroundFile"; type: "string"; isReadonly: true }
30− Property { name: "statsWelcomeScreen"; type: "bool"; isReadonly: true }
31− Property { name: "passwordDisplayHint"; type: "PasswordDisplayHint"; isReadonly: true }
32− Property { name: "failedLogins"; type: "uint" }
33− Property { name: "hereEnabled"; type: "bool" }
34− Property { name: "hereLicensePath"; type: "string"; isReadonly: true }
35− Property { name: "hereLicensePathValid"; type: "bool"; isReadonly: true }
36− Method {
37− name: "markDemoEdgeCompleted"
38− Parameter { name: "edge"; type: "string" }
39− }
40− }
41−}
plugins/AccountsService/com.canonical.unity.AccountsService.xml+4
@@ -47,5 +47,9 @@
47 <annotation name="org.freedesktop.Accounts.DefaultValue" value="0"/>
47 <annotation name="org.freedesktop.Accounts.DefaultValue" value="0"/>
48 </property>
48 </property>
49
49
50+ <property name="FailedFingerprintLogins" type="u" access="readwrite">
51+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="0"/>
52+ </property>
53+
50 </interface>
54 </interface>
51</node>
55</node>
plugins/CMakeLists.txt+1−1
@@ -15,7 +15,7 @@ add_subdirectory(AccountsService)
15add_subdirectory(Cursor)
15add_subdirectory(Cursor)
16add_subdirectory(GlobalShortcut)
16add_subdirectory(GlobalShortcut)
17add_subdirectory(Greeter)
17add_subdirectory(Greeter)
18−add_subdirectory(IntegratedLightDM)
18+add_subdirectory(LightDM)
19add_subdirectory(Lights)
19add_subdirectory(Lights)
20add_subdirectory(Dash)
20add_subdirectory(Dash)
21add_subdirectory(Powerd)
21add_subdirectory(Powerd)
plugins/Cursor/CMakeLists.txt+4
@@ -3,6 +3,10 @@ add_subdirectory(3rd_party)
3include_directories(
3include_directories(
4 ${CMAKE_CURRENT_SOURCE_DIR}
4 ${CMAKE_CURRENT_SOURCE_DIR}
5 ${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/xcursor
5 ${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/xcursor
6+)
7+
8+include_directories(
9+ SYSTEM
6 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
10 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
7)
11)
8
12
plugins/Cursor/Cursor.qml+29−11
@@ -16,6 +16,7 @@
16
16
17import QtQuick 2.4
17import QtQuick 2.4
18import Cursor 1.1
18import Cursor 1.1
19+import Powerd 0.1
19
20
20MousePointer {
21MousePointer {
21 id: mousePointer
22 id: mousePointer
@@ -24,21 +25,38 @@ MousePointer {
24 id: imageInfo
25 id: imageInfo
25 themeName: mousePointer.themeName
26 themeName: mousePointer.themeName
26 cursorName: mousePointer.cursorName
27 cursorName: mousePointer.cursorName
28+ cursorHeight: mousePointer.height
27 }
29 }
28
30
31+ Loader {
32+ active: mousePointer.visible && imageInfo.frameCount > 1
29− AnimatedSprite {
33+ sourceComponent: AnimatedSprite {
30− x: -imageInfo.hotspot.x
34+ x: -imageInfo.hotspot.x
31− y: -imageInfo.hotspot.y
35+ y: -imageInfo.hotspot.y
32− source: "image://cursor/" + mousePointer.themeName + "/" + mousePointer.cursorName
36+ source: imageInfo.imageSource
33
37
34− interpolate: false
38+ interpolate: false
35
39
36− width: imageInfo.frameWidth
40+ width: imageInfo.frameWidth
37− height: imageInfo.frameHeight
41+ height: imageInfo.frameHeight
38
42
39− frameCount: imageInfo.frameCount
43+ frameCount: imageInfo.frameCount
40− frameDuration: imageInfo.frameDuration
44+ frameDuration: imageInfo.frameDuration
41− frameWidth: imageInfo.frameWidth
45+ frameWidth: imageInfo.frameWidth
42− frameHeight: imageInfo.frameHeight
46+ frameHeight: imageInfo.frameHeight
47+
48+ running: Powerd.status === Powerd.On
49+ }
50+ }
51+
52+ Loader {
53+ active: mousePointer.visible && imageInfo.frameCount === 1
54+ sourceComponent: Image {
55+ x: -imageInfo.hotspot.x
56+ y: -imageInfo.hotspot.y
57+ source: imageInfo.imageSource
58+ width: sourceSize.width
59+ height: sourceSize.height
60+ }
43 }
61 }
44}
62}
plugins/Cursor/CursorImageInfo.cpp+23−13
@@ -19,17 +19,23 @@
19CursorImageInfo::CursorImageInfo(QObject *parent)
19CursorImageInfo::CursorImageInfo(QObject *parent)
20 : QObject(parent)
20 : QObject(parent)
21{
21{
22− m_updateTimer.setInterval(0);
23− m_updateTimer.setSingleShot(true);
24− connect(&m_updateTimer, &QTimer::timeout, this, &CursorImageInfo::update);
25}
22}
26
23
27void CursorImageInfo::setCursorName(const QString &cursorName)
24void CursorImageInfo::setCursorName(const QString &cursorName)
28{
25{
29 if (cursorName != m_cursorName) {
26 if (cursorName != m_cursorName) {
30 m_cursorName = cursorName;
27 m_cursorName = cursorName;
28+ update();
31 Q_EMIT cursorNameChanged();
29 Q_EMIT cursorNameChanged();
32− scheduleUpdate();
30+ }
31+
32+}
33+void CursorImageInfo::setCursorHeight(qreal cursorHeight)
34+{
35+ if (cursorHeight != m_cursorHeight) {
36+ m_cursorHeight = cursorHeight;
37+ update();
38+ Q_EMIT cursorHeightChanged();
33 }
39 }
34}
40}
35
41
@@ -37,27 +43,21 @@ void CursorImageInfo::setThemeName(const QString &themeName)
37{
43{
38 if (m_themeName != themeName) {
44 if (m_themeName != themeName) {
39 m_themeName = themeName;
45 m_themeName = themeName;
46+ update();
40 Q_EMIT themeNameChanged();
47 Q_EMIT themeNameChanged();
41− scheduleUpdate();
42− }
43−}
44−
45−void CursorImageInfo::scheduleUpdate()
46−{
47− if (!m_updateTimer.isActive()) {
48− m_updateTimer.start();
49 }
48 }
50}
49}
51
50
52void CursorImageInfo::update()
51void CursorImageInfo::update()
53{
52{
54− m_cursorImage = CursorImageProvider::instance()->fetchCursor(m_themeName, m_cursorName);
53+ m_cursorImage = CursorImageProvider::instance()->fetchCursor(m_themeName, m_cursorName, (int) m_cursorHeight);
55
54
56 Q_EMIT hotspotChanged();
55 Q_EMIT hotspotChanged();
57 Q_EMIT frameWidthChanged();
56 Q_EMIT frameWidthChanged();
58 Q_EMIT frameHeightChanged();
57 Q_EMIT frameHeightChanged();
59 Q_EMIT frameCountChanged();
58 Q_EMIT frameCountChanged();
60 Q_EMIT frameDurationChanged();
59 Q_EMIT frameDurationChanged();
60+ Q_EMIT imageSourceChanged();
61}
61}
62
62
63QPoint CursorImageInfo::hotspot() const
63QPoint CursorImageInfo::hotspot() const
@@ -104,3 +104,13 @@ int CursorImageInfo::frameDuration() const
104 return 0;
104 return 0;
105 }
105 }
106}
106}
107+
108+QUrl CursorImageInfo::imageSource() const
109+{
110+ auto urlString = QString("image://cursor/%1/%2/%3")
111+ .arg(m_themeName)
112+ .arg(m_cursorName)
113+ .arg(m_cursorHeight);
114+
115+ return QUrl(urlString);
116+}
plugins/Cursor/CursorImageInfo.h+10−4
@@ -21,7 +21,7 @@
21
21
22#include <QObject>
22#include <QObject>
23#include <QString>
23#include <QString>
24−#include <QTimer>
24+#include <QUrl>
25
25
26class CursorImageInfo : public QObject
26class CursorImageInfo : public QObject
27{
27{
@@ -29,12 +29,14 @@ class CursorImageInfo : public QObject
29
29
30 Q_PROPERTY(QString themeName READ themeName WRITE setThemeName NOTIFY themeNameChanged)
30 Q_PROPERTY(QString themeName READ themeName WRITE setThemeName NOTIFY themeNameChanged)
31 Q_PROPERTY(QString cursorName READ cursorName WRITE setCursorName NOTIFY cursorNameChanged)
31 Q_PROPERTY(QString cursorName READ cursorName WRITE setCursorName NOTIFY cursorNameChanged)
32+ Q_PROPERTY(qreal cursorHeight READ cursorHeight WRITE setCursorHeight NOTIFY cursorHeightChanged)
32
33
33 Q_PROPERTY(QPoint hotspot READ hotspot NOTIFY hotspotChanged)
34 Q_PROPERTY(QPoint hotspot READ hotspot NOTIFY hotspotChanged)
34 Q_PROPERTY(qreal frameWidth READ frameWidth NOTIFY frameWidthChanged)
35 Q_PROPERTY(qreal frameWidth READ frameWidth NOTIFY frameWidthChanged)
35 Q_PROPERTY(qreal frameHeight READ frameHeight NOTIFY frameHeightChanged)
36 Q_PROPERTY(qreal frameHeight READ frameHeight NOTIFY frameHeightChanged)
36 Q_PROPERTY(int frameCount READ frameCount NOTIFY frameCountChanged)
37 Q_PROPERTY(int frameCount READ frameCount NOTIFY frameCountChanged)
37 Q_PROPERTY(int frameDuration READ frameDuration NOTIFY frameDurationChanged)
38 Q_PROPERTY(int frameDuration READ frameDuration NOTIFY frameDurationChanged)
39+ Q_PROPERTY(QUrl imageSource READ imageSource NOTIFY imageSourceChanged)
38
40
39public:
41public:
40 CursorImageInfo(QObject *parent = nullptr);
42 CursorImageInfo(QObject *parent = nullptr);
@@ -45,30 +47,34 @@ public:
45 QString cursorName() const { return m_cursorName; }
47 QString cursorName() const { return m_cursorName; }
46 void setCursorName(const QString &);
48 void setCursorName(const QString &);
47
49
50+ qreal cursorHeight() const { return m_cursorHeight; }
51+ void setCursorHeight(qreal);
52+
48 QPoint hotspot() const;
53 QPoint hotspot() const;
49 qreal frameWidth() const;
54 qreal frameWidth() const;
50 qreal frameHeight() const;
55 qreal frameHeight() const;
51 int frameCount() const;
56 int frameCount() const;
52 int frameDuration() const;
57 int frameDuration() const;
58+ QUrl imageSource() const;
53
59
54Q_SIGNALS:
60Q_SIGNALS:
55 void themeNameChanged();
61 void themeNameChanged();
56 void cursorNameChanged();
62 void cursorNameChanged();
63+ void cursorHeightChanged();
57 void hotspotChanged();
64 void hotspotChanged();
58 void frameWidthChanged();
65 void frameWidthChanged();
59 void frameHeightChanged();
66 void frameHeightChanged();
60 void frameCountChanged();
67 void frameCountChanged();
61 void frameDurationChanged();
68 void frameDurationChanged();
69+ void imageSourceChanged();
62
70
63private Q_SLOTS:
71private Q_SLOTS:
64 void update();
72 void update();
65
73
66private:
74private:
67− void scheduleUpdate();
68− QTimer m_updateTimer;
69−
70 QString m_themeName;
75 QString m_themeName;
71 QString m_cursorName;
76 QString m_cursorName;
77+ qreal m_cursorHeight{0};
72
78
73 CursorImage *m_cursorImage{nullptr};
79 CursorImage *m_cursorImage{nullptr};
74};
80};
plugins/Cursor/CursorImageProvider.cpp+34−22
@@ -27,7 +27,7 @@ CursorImageProvider *CursorImageProvider::m_instance = nullptr;
27/////
27/////
28// BuiltInCursorImage
28// BuiltInCursorImage
29
29
30−BuiltInCursorImage::BuiltInCursorImage()
30+BuiltInCursorImage::BuiltInCursorImage(int cursorHeight)
31{
31{
32 const char *svgString =
32 const char *svgString =
33 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>"
33 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>"
@@ -42,12 +42,14 @@ BuiltInCursorImage::BuiltInCursorImage()
42 " d=\"M 20.504,50.94931 460.42533,518.14486 266.47603,515.61948 366.48114,719.16522 274.05218,770.68296 172.53185,559.56112 20.504,716.13476 Z\" />"
42 " d=\"M 20.504,50.94931 460.42533,518.14486 266.47603,515.61948 366.48114,719.16522 274.05218,770.68296 172.53185,559.56112 20.504,716.13476 Z\" />"
43 "</svg>";
43 "</svg>";
44
44
45+ // NB: Original image dimension is 20x32. Ensure aspect ratio is kept
45− qimage = QImage(20, 32, QImage::Format_ARGB32);
46+ qimage = QImage((20./32.)*cursorHeight, cursorHeight, QImage::Format_ARGB32);
46 qimage.fill(Qt::transparent);
47 qimage.fill(Qt::transparent);
47 QPainter imagePainter(&qimage);
48 QPainter imagePainter(&qimage);
48
49
49 frameWidth = qimage.width();
50 frameWidth = qimage.width();
50 frameHeight = qimage.height();
51 frameHeight = qimage.height();
52+ requestedHeight = cursorHeight;
51
53
52 QSvgRenderer *svgRenderer = new QSvgRenderer(QByteArray(svgString));
54 QSvgRenderer *svgRenderer = new QSvgRenderer(QByteArray(svgString));
53 svgRenderer->render(&imagePainter);
55 svgRenderer->render(&imagePainter);
@@ -81,11 +83,9 @@ CustomCursorImage::CustomCursorImage(const QCursor &cursor)
81/////
83/////
82// XCursorImage
84// XCursorImage
83
85
84−XCursorImage::XCursorImage(const QString &theme, const QString &file)
86+XCursorImage::XCursorImage(const QString &theme, const QString &file, int preferredCursorHeightPx)
85{
87{
86− // TODO: Consider grid unit value
87− // Hardcoding to a medium size for now
88− int preferredCursorHeightPx = 32;
88+ requestedHeight = preferredCursorHeightPx;
89
89
90 XcursorImages *xcursorImages = XcursorLibraryLoadImages(QFile::encodeName(file), QFile::encodeName(theme),
90 XcursorImages *xcursorImages = XcursorLibraryLoadImages(QFile::encodeName(file), QFile::encodeName(theme),
91 preferredCursorHeightPx);
91 preferredCursorHeightPx);
@@ -96,7 +96,7 @@ XCursorImage::XCursorImage(const QString &theme, const QString &file)
96 frameCount = xcursorImages->nimage;
96 frameCount = xcursorImages->nimage;
97
97
98 for (int i = 0; i < xcursorImages->nimage; ++i) {
98 for (int i = 0; i < xcursorImages->nimage; ++i) {
99− XcursorImage *xcursorImage = xcursorImages->images[0];
99+ XcursorImage *xcursorImage = xcursorImages->images[i];
100 if (frameWidth < (int)xcursorImage->width) {
100 if (frameWidth < (int)xcursorImage->width) {
101 frameWidth = xcursorImage->width;
101 frameWidth = xcursorImage->width;
102 }
102 }
@@ -235,34 +235,43 @@ CursorImageProvider::~CursorImageProvider()
235 m_instance = nullptr;
235 m_instance = nullptr;
236}
236}
237
237
238−QImage CursorImageProvider::requestImage(const QString &cursorThemeAndName, QSize *size, const QSize & /*requestedSize*/)
238+QImage CursorImageProvider::requestImage(const QString &cursorThemeAndNameAndHeight, QSize *size, const QSize & /*requestedSize*/)
239{
239{
240− CursorImage *cursorImage = fetchCursor(cursorThemeAndName);
240+ CursorImage *cursorImage = fetchCursor(cursorThemeAndNameAndHeight);
241 size->setWidth(cursorImage->qimage.width());
241 size->setWidth(cursorImage->qimage.width());
242 size->setHeight(cursorImage->qimage.height());
242 size->setHeight(cursorImage->qimage.height());
243
243
244 return cursorImage->qimage;
244 return cursorImage->qimage;
245}
245}
246
246
247−CursorImage *CursorImageProvider::fetchCursor(const QString &cursorThemeAndName)
247+CursorImage *CursorImageProvider::fetchCursor(const QString &cursorThemeAndNameAndHeight)
248{
248{
249 QString themeName;
249 QString themeName;
250 QString cursorName;
250 QString cursorName;
251+ int cursorHeight;
251 {
252 {
252− QStringList themeAndNameList = cursorThemeAndName.split('/');
253+ QStringList themeAndNameList = cursorThemeAndNameAndHeight.split('/');
253− if (themeAndNameList.size() != 2) {
254+ if (themeAndNameList.size() != 3) {
254 return nullptr;
255 return nullptr;
255 }
256 }
256 themeName = themeAndNameList[0];
257 themeName = themeAndNameList[0];
257 cursorName = themeAndNameList[1];
258 cursorName = themeAndNameList[1];
259+
260+ bool ok;
261+ cursorHeight = themeAndNameList[2].toInt(&ok);
262+ if (!ok) {
263+ cursorHeight = 32;
264+ qWarning().nospace() << "CursorImageProvider: invalid cursor height ("<<themeAndNameList[2]<<")."
265+ " Falling back to "<<cursorHeight<<" pixels";
266+ }
258 }
267 }
259
268
260− return fetchCursor(themeName, cursorName);
269+ return fetchCursor(themeName, cursorName, cursorHeight);
261}
270}
262
271
263−CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QString &cursorName)
272+CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QString &cursorName, int cursorHeight)
264{
273{
265− CursorImage *cursorImage = fetchCursorHelper(themeName, cursorName);
274+ CursorImage *cursorImage = fetchCursorHelper(themeName, cursorName, cursorHeight);
266
275
267 // Try some fallbacks
276 // Try some fallbacks
268 if (cursorImage->qimage.isNull()) {
277 if (cursorImage->qimage.isNull()) {
@@ -271,7 +280,7 @@ CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QS
271 int i = 0;
280 int i = 0;
272 while (cursorImage->qimage.isNull() && i < fallbackNames.count()) {
281 while (cursorImage->qimage.isNull() && i < fallbackNames.count()) {
273 qDebug().nospace() << "CursorImageProvider: "<< cursorName <<" not found, trying " << fallbackNames.at(i);
282 qDebug().nospace() << "CursorImageProvider: "<< cursorName <<" not found, trying " << fallbackNames.at(i);
274− cursorImage = fetchCursorHelper(themeName, fallbackNames.at(i));
283+ cursorImage = fetchCursorHelper(themeName, fallbackNames.at(i), cursorHeight);
275 ++i;
284 ++i;
276 }
285 }
277 }
286 }
@@ -281,14 +290,14 @@ CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QS
281 if (cursorImage->qimage.isNull() && cursorName != QLatin1String("left_ptr")) {
290 if (cursorImage->qimage.isNull() && cursorName != QLatin1String("left_ptr")) {
282 qDebug() << "CursorImageProvider:" << cursorName
291 qDebug() << "CursorImageProvider:" << cursorName
283 << "not found (nor its fallbacks, if any). Going for \"left_ptr\" as a last resort.";
292 << "not found (nor its fallbacks, if any). Going for \"left_ptr\" as a last resort.";
284− cursorImage = fetchCursorHelper(themeName, QStringLiteral("left_ptr"));
293+ cursorImage = fetchCursorHelper(themeName, QStringLiteral("left_ptr"), cursorHeight);
285 }
294 }
286
295
287 if (cursorImage->qimage.isNull()) {
296 if (cursorImage->qimage.isNull()) {
288 // finally, go for the built-in cursor
297 // finally, go for the built-in cursor
289 qWarning() << "CursorImageProvider: couldn't find any cursors. Using the built-in one";
298 qWarning() << "CursorImageProvider: couldn't find any cursors. Using the built-in one";
290− if (!m_builtInCursorImage) {
299+ if (!m_builtInCursorImage || m_builtInCursorImage->requestedHeight != cursorHeight) {
291− m_builtInCursorImage.reset(new BuiltInCursorImage);
300+ m_builtInCursorImage.reset(new BuiltInCursorImage(cursorHeight));
292 }
301 }
293 cursorImage = m_builtInCursorImage.data();
302 cursorImage = m_builtInCursorImage.data();
294 }
303 }
@@ -296,17 +305,20 @@ CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QS
296 return cursorImage;
305 return cursorImage;
297}
306}
298
307
299−CursorImage *CursorImageProvider::fetchCursorHelper(const QString &themeName, const QString &cursorName)
308+CursorImage *CursorImageProvider::fetchCursorHelper(const QString &themeName, const QString &cursorName, int cursorHeight)
300{
309{
301 if (cursorName == QLatin1String("blank")) {
310 if (cursorName == QLatin1String("blank")) {
302 return &m_blankCursorImage;
311 return &m_blankCursorImage;
303− } else if (cursorName == QLatin1String("custom")) {
312+ } else if (cursorName.startsWith(QLatin1String("custom"))) {
304 return m_customCursorImage.data();
313 return m_customCursorImage.data();
305 } else {
314 } else {
306 QMap<QString, CursorImage*> &themeCursors = m_cursors[themeName];
315 QMap<QString, CursorImage*> &themeCursors = m_cursors[themeName];
307
316
308 if (!themeCursors.contains(cursorName)) {
317 if (!themeCursors.contains(cursorName)) {
309− themeCursors[cursorName] = new XCursorImage(themeName, cursorName);
318+ themeCursors[cursorName] = new XCursorImage(themeName, cursorName, cursorHeight);
319+ } else if (themeCursors[cursorName]->requestedHeight != cursorHeight) {
320+ delete themeCursors.take(cursorName);
321+ themeCursors[cursorName] = new XCursorImage(themeName, cursorName, cursorHeight);
310 }
322 }
311
323
312 return themeCursors[cursorName];
324 return themeCursors[cursorName];
plugins/Cursor/CursorImageProvider.h+9−6
@@ -42,17 +42,20 @@ public:
42 int frameHeight{0};
42 int frameHeight{0};
43 int frameCount{1};
43 int frameCount{1};
44 int frameDuration{40};
44 int frameDuration{40};
45+
46+ // Requested height when creating this cursor.
47+ int requestedHeight{0};
45};
48};
46
49
47class XCursorImage : public CursorImage {
50class XCursorImage : public CursorImage {
48public:
51public:
49− XCursorImage(const QString &theme, const QString &file);
52+ XCursorImage(const QString &theme, const QString &file, int preferredCursorHeightPx);
50 virtual ~XCursorImage();
53 virtual ~XCursorImage();
51};
54};
52
55
53class BuiltInCursorImage : public CursorImage {
56class BuiltInCursorImage : public CursorImage {
54public:
57public:
55− BuiltInCursorImage();
58+ BuiltInCursorImage(int cursorHeight);
56};
59};
57
60
58class BlankCursorImage : public CursorImage {
61class BlankCursorImage : public CursorImage {
@@ -74,15 +77,15 @@ public:
74 static CursorImageProvider *instance() { return m_instance; }
77 static CursorImageProvider *instance() { return m_instance; }
75
78
76
79
77− QImage requestImage(const QString &cursorName, QSize *size, const QSize &requestedSize) override;
80+ QImage requestImage(const QString &cursorThemeAndNameAndHeight, QSize *size, const QSize &requestedSize) override;
78
81
79− CursorImage *fetchCursor(const QString &themeName, const QString &cursorName);
82+ CursorImage *fetchCursor(const QString &themeName, const QString &cursorName, int cursorHeight);
80
83
81 void setCustomCursor(const QCursor &customCursor);
84 void setCustomCursor(const QCursor &customCursor);
82
85
83private:
86private:
84− CursorImage *fetchCursor(const QString &cursorThemeAndName);
87+ CursorImage *fetchCursor(const QString &cursorThemeAndNameAndHeight);
85− CursorImage *fetchCursorHelper(const QString &themeName, const QString &cursorName);
88+ CursorImage *fetchCursorHelper(const QString &themeName, const QString &cursorName, int cursorHeight);
86
89
87 // themeName -> (cursorName -> cursorImage)
90 // themeName -> (cursorName -> cursorImage)
88 // TODO: discard old, unused, cursors
91 // TODO: discard old, unused, cursors
plugins/Cursor/MousePointer.cpp+13−8
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software: you can redistribute it and/or modify it under
4 * This program is free software: you can redistribute it and/or modify it under
5 * the terms of the GNU Lesser General Public License version 3, as published by
5 * the terms of the GNU Lesser General Public License version 3, as published by
@@ -43,21 +43,26 @@ void MousePointer::handleMouseEvent(ulong timestamp, QPointF movement, Qt::Mouse
43 Q_EMIT mouseMoved();
43 Q_EMIT mouseMoved();
44 }
44 }
45
45
46+ m_accumulatedMovement += movement;
47+ // don't apply the fractional part
48+ QPointF appliedMovement(int(m_accumulatedMovement.x()), int(m_accumulatedMovement.y()));
49+ m_accumulatedMovement -= appliedMovement;
50+
46− qreal newX = x() + movement.x();
51+ qreal newX = x() + appliedMovement.x();
47 if (newX < 0) {
52 if (newX < 0) {
48 Q_EMIT pushedLeftBoundary(qAbs(newX), buttons);
53 Q_EMIT pushedLeftBoundary(qAbs(newX), buttons);
49 newX = 0;
54 newX = 0;
50− } else if (newX > parentItem()->width()) {
55+ } else if (newX >= parentItem()->width()) {
51− Q_EMIT pushedRightBoundary(newX - parentItem()->width(), buttons);
56+ Q_EMIT pushedRightBoundary(newX - (parentItem()->width() - 1), buttons);
52− newX = parentItem()->width();
57+ newX = parentItem()->width() - 1;
53 }
58 }
54 setX(newX);
59 setX(newX);
55
60
56− qreal newY = y() + movement.y();
61+ qreal newY = y() + appliedMovement.y();
57 if (newY < 0) {
62 if (newY < 0) {
58 newY = 0;
63 newY = 0;
59− } else if (newY > parentItem()->height()) {
64+ } else if (newY >= parentItem()->height()) {
60− newY = parentItem()->height();
65+ newY = parentItem()->height() - 1;
61 }
66 }
62 setY(newY);
67 setY(newY);
63
68
plugins/Cursor/MousePointer.h+4−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software: you can redistribute it and/or modify it under
4 * This program is free software: you can redistribute it and/or modify it under
5 * the terms of the GNU Lesser General Public License version 3, as published by
5 * the terms of the GNU Lesser General Public License version 3, as published by
@@ -61,6 +61,9 @@ private:
61 QPointer<QScreen> m_registeredScreen;
61 QPointer<QScreen> m_registeredScreen;
62 QString m_cursorName;
62 QString m_cursorName;
63 QString m_themeName;
63 QString m_themeName;
64+
65+ // Accumulated, unapplied, mouse movement.
66+ QPointF m_accumulatedMovement;
64};
67};
65
68
66#endif // MOUSEPOINTER_H
69#endif // MOUSEPOINTER_H
plugins/Dash/CMakeLists.txt+4
@@ -10,6 +10,10 @@ endif()
10include_directories(
10include_directories(
11 ${CMAKE_CURRENT_SOURCE_DIR}
11 ${CMAKE_CURRENT_SOURCE_DIR}
12 ${CMAKE_CURRENT_BINARY_DIR}
12 ${CMAKE_CURRENT_BINARY_DIR}
13+)
14+
15+include_directories(
16+ SYSTEM
13 ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
17 ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
14 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
18 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
15 ${Qt5V8_PRIVATE_INCLUDE_DIR}
19 ${Qt5V8_PRIVATE_INCLUDE_DIR}
plugins/Dash/CardCreator.js+146−115
@@ -25,7 +25,7 @@ var kBackgroundLoaderCode = 'Loader {\n\
25 objectName: "backgroundLoader"; \n\
25 objectName: "backgroundLoader"; \n\
26 anchors.fill: parent; \n\
26 anchors.fill: parent; \n\
27 asynchronous: %3; \n\
27 asynchronous: %3; \n\
28− visible: status == Loader.Ready; \n\
28+ visible: status === Loader.Ready; \n\
29 sourceComponent: UbuntuShape { \n\
29 sourceComponent: UbuntuShape { \n\
30 objectName: "background"; \n\
30 objectName: "background"; \n\
31 radius: "medium"; \n\
31 radius: "medium"; \n\
@@ -69,62 +69,86 @@ var kArtUbuntuShapeCode = 'UbuntuShape { \n\
69 }';
69 }';
70
70
71var kArtProportionalShapeCode = 'ProportionalShape { \n\
71var kArtProportionalShapeCode = 'ProportionalShape { \n\
72− anchors.fill: parent; \n\
72+ anchors.left: parent.left; \n\
73+ anchors.right: parent.right; \n\
73 source: artImage; \n\
74 source: artImage; \n\
74 aspect: UbuntuShape.DropShadow; \n\
75 aspect: UbuntuShape.DropShadow; \n\
75 }';
76 }';
76
77
77−// %1 is used as anchors of artShapeHolder
78+// %1 is used as anchors of artShapeLoader
78// %2 is used as image width
79// %2 is used as image width
79// %3 is used as image height
80// %3 is used as image height
80// %4 is whether the image should be visible
81// %4 is whether the image should be visible
81−// %5 is used as aspect ratio fallback
82−// %6 is whether the loader should be asynchronous or not
82+// %5 is whether the loader should be asynchronous or not
83−// %7 is the shape code we want to use
83+// %6 is the shape code we want to use
84−// %8 is injected as code to artImage
84+// %7 is injected as code to artImage
85−// %9 is used as image fallback
85+// %8 is used as image fallback
86−var kArtShapeHolderCode = 'Item { \n\
86+var kArtShapeHolderCode = 'Loader { \n\
87− id: artShapeHolder; \n\
87+ id: artShapeLoader; \n\
88− height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height; \n\
88+ height: root.fixedArtShapeSize.height; \n\
89− width: root.fixedArtShapeSize.width > 0 ? root.fixedArtShapeSize.width : artShapeLoader.width; \n\
89+ width: root.fixedArtShapeSize.width; \n\
90 anchors { %1 } \n\
90 anchors { %1 } \n\
91− Loader { \n\
91+ objectName: "artShapeLoader"; \n\
92+ readonly property string cardArt: cardData && cardData["art"] || %8; \n\
93+ onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
94+ active: cardArt != ""; \n\
95+ asynchronous: %5; \n\
96+ visible: status === Loader.Ready; \n\
97+ sourceComponent: Item { \n\
98+ id: artShape; \n\
99+ objectName: "artShape"; \n\
100+ visible: image.status === Image.Ready; \n\
101+ readonly property alias image: artImage; \n\
102+ %6 \n\
103+ width: root.fixedArtShapeSize.width; \n\
104+ height: root.fixedArtShapeSize.height; \n\
105+ CroppedImageMinimumSourceSize { \n\
106+ id: artImage; \n\
107+ objectName: "artImage"; \n\
108+ source: artShapeLoader.cardArt; \n\
109+ asynchronous: %5; \n\
110+ visible: %4; \n\
111+ width: %2; \n\
112+ height: %3; \n\
113+ %7 \n\
114+ } \n\
115+ } \n\
116+ }\n';
117+
118+// %1 is used as anchors of artShapeLoader
119+// %2 is used as image width
120+// %3 is used as image height
121+// %4 is whether the image should be visible
122+// %5 is whether the loader should be asynchronous or not
123+// %6 is the shape code we want to use
124+// %7 is injected as code to artImage
125+// %8 is used as image fallback
126+var kArtShapeHolderCodeCardToolCard = 'Loader { \n\
92− id: artShapeLoader; \n\
127+ id: artShapeLoader; \n\
128+ anchors { %1 } \n\
93− objectName: "artShapeLoader"; \n\
129+ objectName: "artShapeLoader"; \n\
94− readonly property string cardArt: cardData && cardData["art"] || %9; \n\
130+ readonly property string cardArt: cardData && cardData["art"] || %8; \n\
95− onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
131+ onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
96− active: cardArt != ""; \n\
132+ active: cardArt != ""; \n\
97− asynchronous: %6; \n\
133+ asynchronous: %5; \n\
98− visible: status == Loader.Ready; \n\
134+ visible: status === Loader.Ready; \n\
99− sourceComponent: Item { \n\
135+ sourceComponent: Item { \n\
100− id: artShape; \n\
136+ id: artShape; \n\
101− objectName: "artShape"; \n\
137+ objectName: "artShape"; \n\
102− visible: image.status == Image.Ready; \n\
138+ visible: image.status === Image.Ready; \n\
103− readonly property alias image: artImage; \n\
139+ readonly property alias image: artImage; \n\
140+ %6 \n\
141+ width: image.status !== Image.Ready ? 0 : image.width; \n\
142+ height: image.status !== Image.Ready ? 0 : image.height; \n\
143+ CroppedImageMinimumSourceSize { \n\
144+ id: artImage; \n\
145+ objectName: "artImage"; \n\
146+ source: artShapeLoader.cardArt; \n\
147+ asynchronous: %5; \n\
148+ visible: %4; \n\
149+ width: %2; \n\
150+ height: %3; \n\
104 %7 \n\
151 %7 \n\
105− readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1; \n\
106− readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : %5; \n\
107− Component.onCompleted: { updateWidthHeightBindings(); } \n\
108− Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); } \n\
109− function updateWidthHeightBindings() { \n\
110− if (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) { \n\
111− width = root.fixedArtShapeSize.width; \n\
112− height = root.fixedArtShapeSize.height; \n\
113− } else { \n\
114− width = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.width }); \n\
115− height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height }); \n\
116− } \n\
117− } \n\
118− CroppedImageMinimumSourceSize { \n\
119− id: artImage; \n\
120− objectName: "artImage"; \n\
121− source: artShapeLoader.cardArt; \n\
122− asynchronous: %6; \n\
123− visible: %4; \n\
124− width: %2; \n\
125− height: %3; \n\
126− %8 \n\
127− } \n\
128 } \n\
152 } \n\
129 } \n\
153 } \n\
130 }\n';
154 }\n';
@@ -182,10 +206,10 @@ var kAudioButtonCode = 'AbstractButton { \n\
182var kOverlayLoaderCode = 'Loader { \n\
206var kOverlayLoaderCode = 'Loader { \n\
183 id: overlayLoader; \n\
207 id: overlayLoader; \n\
184 readonly property real overlayHeight: %2 + units.gu(2); \n\
208 readonly property real overlayHeight: %2 + units.gu(2); \n\
185− anchors.fill: artShapeHolder; \n\
209+ anchors.fill: artShapeLoader; \n\
186 active: artShapeLoader.active && artShapeLoader.item && artShapeLoader.item.image.status === Image.Ready || false; \n\
210 active: artShapeLoader.active && artShapeLoader.item && artShapeLoader.item.image.status === Image.Ready || false; \n\
187 asynchronous: %1; \n\
211 asynchronous: %1; \n\
188− visible: showHeader && status == Loader.Ready; \n\
212+ visible: showHeader && status === Loader.Ready; \n\
189 sourceComponent: UbuntuShapeOverlay { \n\
213 sourceComponent: UbuntuShapeOverlay { \n\
190 id: overlay; \n\
214 id: overlay; \n\
191 property real luminance: Style.luminance(overlayColor); \n\
215 property real luminance: Style.luminance(overlayColor); \n\
@@ -242,7 +266,7 @@ var kMascotShapeLoaderCode = 'Loader { \n\
242 objectName: "mascotShapeLoader"; \n\
266 objectName: "mascotShapeLoader"; \n\
243 asynchronous: %2; \n\
267 asynchronous: %2; \n\
244 active: mascotImage.status === Image.Ready; \n\
268 active: mascotImage.status === Image.Ready; \n\
245− visible: showHeader && active && status == Loader.Ready; \n\
269+ visible: showHeader && active && status === Loader.Ready; \n\
246 width: units.gu(6); \n\
270 width: units.gu(6); \n\
247 height: units.gu(5.625); \n\
271 height: units.gu(5.625); \n\
248 sourceComponent: UbuntuShape { image: mascotImage } \n\
272 sourceComponent: UbuntuShape { image: mascotImage } \n\
@@ -405,7 +429,7 @@ function sanitizeColor(colorString) {
405 return colorString;
429 return colorString;
406}
430}
407
431
408−function cardString(template, components, isCardTool, artShapeStyle) {
432+function cardString(template, components, isCardTool, artShapeStyle, categoryLayout) {
409 var code;
433 var code;
410
434
411 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
435 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
@@ -416,15 +440,16 @@ function cardString(template, components, isCardTool, artShapeStyle) {
416 property string backgroundShapeStyle: "inset"; \n\
440 property string backgroundShapeStyle: "inset"; \n\
417 property real fontScale: 1.0; \n\
441 property real fontScale: 1.0; \n\
418 property var scopeStyle: null; \n\
442 property var scopeStyle: null; \n\
419− %2\
420− property size fixedArtShapeSize: Qt.size(-1, -1); \n\
421 readonly property string title: cardData && cardData["title"] || ""; \n\
443 readonly property string title: cardData && cardData["title"] || ""; \n\
422 property bool showHeader: true; \n\
444 property bool showHeader: true; \n\
423 implicitWidth: childrenRect.width; \n\
445 implicitWidth: childrenRect.width; \n\
424 enabled: %1; \n\
446 enabled: %1; \n\
425 \n'.arg(templateInteractive);
447 \n'.arg(templateInteractive);
426
448
449+ if (!isCardTool) {
427− code = code.arg(isCardTool ? "" : "property int fixedHeaderHeight: -1; \n");
450+ code += "property int fixedHeaderHeight: -1; \n\
451+ property size fixedArtShapeSize: Qt.size(-1, -1); \n";
452+ }
428
453
429 var hasArt = components["art"] && components["art"]["field"] || false;
454 var hasArt = components["art"] && components["art"]["field"] || false;
430 var hasSummary = components["summary"] || false;
455 var hasSummary = components["summary"] || false;
@@ -483,37 +508,43 @@ function cardString(template, components, isCardTool, artShapeStyle) {
483 if (hasArt) {
508 if (hasArt) {
484 code += 'readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);\n';
509 code += 'readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);\n';
485
510
511+ var artShapeAspect;
512+ if (isCardTool) {
513+ var artShapeAspect = components["art"] && components["art"]["aspect-ratio"] || 1;
514+ if (isNaN(artShapeAspect)) {
515+ artShapeAspect = 1;
516+ }
517+ } else {
518+ artShapeAspect = "(root.fixedArtShapeSize.width / root.fixedArtShapeSize.height)";
519+ }
520+
486 var widthCode, heightCode;
521 var widthCode, heightCode;
487 var artAnchors;
522 var artAnchors;
488 if (isHorizontal) {
523 if (isHorizontal) {
489 artAnchors = 'left: parent.left';
524 artAnchors = 'left: parent.left';
490 if (hasMascot || hasTitle) {
525 if (hasMascot || hasTitle) {
491− widthCode = 'height * artShape.aspect'
526+ widthCode = 'height * ' + artShapeAspect;
492 heightCode = 'headerHeight + 2 * units.gu(1)';
527 heightCode = 'headerHeight + 2 * units.gu(1)';
493 } else {
528 } else {
494 // This side of the else is a bit silly, who wants an horizontal layout without mascot and title?
529 // This side of the else is a bit silly, who wants an horizontal layout without mascot and title?
495 // So we define a "random" height of the image height + 2 gu for the margins
530 // So we define a "random" height of the image height + 2 gu for the margins
496− widthCode = 'height * artShape.aspect'
531+ widthCode = 'height * ' + artShapeAspect
497 heightCode = 'units.gu(7.625)';
532 heightCode = 'units.gu(7.625)';
498 }
533 }
499 } else {
534 } else {
500 artAnchors = 'horizontalCenter: parent.horizontalCenter;';
535 artAnchors = 'horizontalCenter: parent.horizontalCenter;';
501 widthCode = 'root.width'
536 widthCode = 'root.width'
502− heightCode = 'width / artShape.aspect';
537+ heightCode = 'width / ' + artShapeAspect;
503 }
538 }
504
539
505− var aspectRatio = components["art"] && components["art"]["aspect-ratio"] || 1;
506− if (isNaN(aspectRatio)) {
507− aspectRatio = 1;
508− }
509 var fallback = !isCardTool && components["art"] && components["art"]["fallback"] || "";
540 var fallback = !isCardTool && components["art"] && components["art"]["fallback"] || "";
510 fallback = encodeURI(fallback);
541 fallback = encodeURI(fallback);
511 var fallbackStatusCode = "";
542 var fallbackStatusCode = "";
512 var fallbackURICode = '""';
543 var fallbackURICode = '""';
513 if (fallback !== "") {
544 if (fallback !== "") {
514− // fallbackStatusCode has %9 in it because we want to substitute it for fallbackURICode
545+ // fallbackStatusCode has %8 in it because we want to substitute it for fallbackURICode
515− // which in kArtShapeHolderCode is %9
546+ // which in kArtShapeHolderCode is %8
516− fallbackStatusCode += 'onStatusChanged: if (status === Image.Error) source = %9;';
547+ fallbackStatusCode += 'onStatusChanged: if (status === Image.Error) source = %8;';
517 fallbackURICode = 'decodeURI("%1")'.arg(fallback);
548 fallbackURICode = 'decodeURI("%1")'.arg(fallback);
518 }
549 }
519 var artShapeHolderShapeCode;
550 var artShapeHolderShapeCode;
@@ -533,15 +564,15 @@ function cardString(template, components, isCardTool, artShapeStyle) {
533 } else {
564 } else {
534 artShapeHolderShapeCode = "";
565 artShapeHolderShapeCode = "";
535 }
566 }
567+ var artShapeHolderCode = isCardTool ? kArtShapeHolderCodeCardToolCard : kArtShapeHolderCode;
536− code += kArtShapeHolderCode.arg(artAnchors)
568+ code += artShapeHolderCode.arg(artAnchors)
537− .arg(widthCode)
569+ .arg(widthCode)
538− .arg(heightCode)
570+ .arg(heightCode)
539− .arg(isConciergeMode ? "true" : "false")
571+ .arg(isConciergeMode ? "true" : "false")
540− .arg(aspectRatio)
541− .arg(asynchronous)
572+ .arg(asynchronous)
542− .arg(artShapeHolderShapeCode)
573+ .arg(artShapeHolderShapeCode)
543− .arg(fallbackStatusCode)
574+ .arg(fallbackStatusCode)
544− .arg(fallbackURICode);
575+ .arg(fallbackURICode);
545 } else {
576 } else {
546 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
577 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
547 }
578 }
@@ -553,15 +584,15 @@ function cardString(template, components, isCardTool, artShapeStyle) {
553
584
554 var headerVerticalAnchors;
585 var headerVerticalAnchors;
555 if (headerAsOverlay) {
586 if (headerAsOverlay) {
556− headerVerticalAnchors = 'bottom: artShapeHolder.bottom; \n\
587+ headerVerticalAnchors = 'bottom: artShapeLoader.bottom; \n\
557 bottomMargin: units.gu(1);\n';
588 bottomMargin: units.gu(1);\n';
558 } else {
589 } else {
559 if (hasArt) {
590 if (hasArt) {
560 if (isHorizontal) {
591 if (isHorizontal) {
561− headerVerticalAnchors = 'top: artShapeHolder.top; \n\
592+ headerVerticalAnchors = 'top: artShapeLoader.top; \n\
562 topMargin: units.gu(1);\n';
593 topMargin: units.gu(1);\n';
563 } else {
594 } else {
564− headerVerticalAnchors = 'top: artShapeHolder.bottom; \n\
595+ headerVerticalAnchors = 'top: artShapeLoader.bottom; \n\
565 topMargin: units.gu(1);\n';
596 topMargin: units.gu(1);\n';
566 }
597 }
567 } else {
598 } else {
@@ -573,7 +604,7 @@ function cardString(template, components, isCardTool, artShapeStyle) {
573 var headerLeftAnchor;
604 var headerLeftAnchor;
574 var headerLeftAnchorHasMargin = false;
605 var headerLeftAnchorHasMargin = false;
575 if (isHorizontal && hasArt) {
606 if (isHorizontal && hasArt) {
576− headerLeftAnchor = 'left: artShapeHolder.right; \n\
607+ headerLeftAnchor = 'left: artShapeLoader.right; \n\
577 leftMargin: units.gu(1);\n';
608 leftMargin: units.gu(1);\n';
578 headerLeftAnchorHasMargin = true;
609 headerLeftAnchorHasMargin = true;
579 } else if (isHorizontal && isAudio) {
610 } else if (isHorizontal && isAudio) {
@@ -827,7 +858,7 @@ function cardString(template, components, isCardTool, artShapeStyle) {
827 var audioButtonWidth;
858 var audioButtonWidth;
828 var audioButtonHeight;
859 var audioButtonHeight;
829 if (hasArt) {
860 if (hasArt) {
830− audioButtonAnchorsFill = 'artShapeHolder';
861+ audioButtonAnchorsFill = 'artShapeLoader';
831 audioButtonWidth = 'undefined';
862 audioButtonWidth = 'undefined';
832 audioButtonHeight = 'undefined';
863 audioButtonHeight = 'undefined';
833 } else {
864 } else {
@@ -841,15 +872,15 @@ function cardString(template, components, isCardTool, artShapeStyle) {
841
872
842 if (hasSummary) {
873 if (hasSummary) {
843 var summaryTopAnchor;
874 var summaryTopAnchor;
844− if (isHorizontal && hasArt) summaryTopAnchor = 'artShapeHolder.bottom';
875+ if (isHorizontal && hasArt) summaryTopAnchor = 'artShapeLoader.bottom';
845− else if (headerAsOverlay && hasArt) summaryTopAnchor = 'artShapeHolder.bottom';
876+ else if (headerAsOverlay && hasArt) summaryTopAnchor = 'artShapeLoader.bottom';
846 else if (hasHeaderRow) summaryTopAnchor = 'row.bottom';
877 else if (hasHeaderRow) summaryTopAnchor = 'row.bottom';
847 else if (hasTitleContainer) summaryTopAnchor = 'headerTitleContainer.bottom';
878 else if (hasTitleContainer) summaryTopAnchor = 'headerTitleContainer.bottom';
848 else if (hasMascot) summaryTopAnchor = 'mascotImage.bottom';
879 else if (hasMascot) summaryTopAnchor = 'mascotImage.bottom';
849 else if (hasAttributes) summaryTopAnchor = 'attributesRow.bottom';
880 else if (hasAttributes) summaryTopAnchor = 'attributesRow.bottom';
850 else if (hasSubtitle) summaryTopAnchor = 'subtitleLabel.bottom';
881 else if (hasSubtitle) summaryTopAnchor = 'subtitleLabel.bottom';
851 else if (hasTitle) summaryTopAnchor = 'titleLabel.bottom';
882 else if (hasTitle) summaryTopAnchor = 'titleLabel.bottom';
852− else if (hasArt) summaryTopAnchor = 'artShapeHolder.bottom';
883+ else if (hasArt) summaryTopAnchor = 'artShapeLoader.bottom';
853 else summaryTopAnchor = 'parent.top';
884 else summaryTopAnchor = 'parent.top';
854
885
855 var summaryColor;
886 var summaryColor;
@@ -864,24 +895,20 @@ function cardString(template, components, isCardTool, artShapeStyle) {
864 code += kSummaryLabelCode.arg(summaryTopAnchor).arg(summaryTopMargin).arg(summaryColor);
895 code += kSummaryLabelCode.arg(summaryTopAnchor).arg(summaryTopMargin).arg(summaryColor);
865 }
896 }
866
897
867−// <<<<<<< TREE
868−// if (artShapeStyle != "shadow" && artShapeStyle != "icon") {
869−// var touchdownAnchors;
870−// =======
871 if (hasSocialActions) {
898 if (hasSocialActions) {
872 var socialAnchors;
899 var socialAnchors;
873 var socialTopAnchor;
900 var socialTopAnchor;
874
901
875 if (hasSummary) socialTopAnchor = 'summary.bottom;';
902 if (hasSummary) socialTopAnchor = 'summary.bottom;';
876− else if (isHorizontal && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
903+ else if (isHorizontal && hasArt) socialTopAnchor = 'artShapeLoader.bottom;';
877− else if (headerAsOverlay && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
904+ else if (headerAsOverlay && hasArt) socialTopAnchor = 'artShapeLoader.bottom;';
878 else if (hasHeaderRow) socialTopAnchor = 'row.bottom;';
905 else if (hasHeaderRow) socialTopAnchor = 'row.bottom;';
879 else if (hasTitleContainer) socialTopAnchor = 'headerTitleContainer.bottom;';
906 else if (hasTitleContainer) socialTopAnchor = 'headerTitleContainer.bottom;';
880 else if (hasMascot) socialTopAnchor = 'mascotImage.bottom;';
907 else if (hasMascot) socialTopAnchor = 'mascotImage.bottom;';
881 else if (hasAttributes) socialTopAnchor = 'attributesRow.bottom;';
908 else if (hasAttributes) socialTopAnchor = 'attributesRow.bottom;';
882 else if (hasSubtitle) socialTopAnchor = 'subtitleLabel.bottom;';
909 else if (hasSubtitle) socialTopAnchor = 'subtitleLabel.bottom;';
883 else if (hasTitle) socialTopAnchor = 'titleLabel.bottom;';
910 else if (hasTitle) socialTopAnchor = 'titleLabel.bottom;';
884− else if (hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
911+ else if (hasArt) socialTopAnchor = 'artShapeLoader.bottom;';
885 else socialTopAnchor = 'parent.top';
912 else socialTopAnchor = 'parent.top';
886
913
887 socialAnchors = 'top: ' + socialTopAnchor + ' left: parent.left; right: parent.right; topMargin: units.gu(1);'
914 socialAnchors = 'top: ' + socialTopAnchor + ' left: parent.left; right: parent.right; topMargin: units.gu(1);'
@@ -901,36 +928,40 @@ function cardString(template, components, isCardTool, artShapeStyle) {
901 if (hasBackground) {
928 if (hasBackground) {
902 touchdownAnchors = 'fill: backgroundLoader';
929 touchdownAnchors = 'fill: backgroundLoader';
903 } else if (touchdownOnArtShape) {
930 } else if (touchdownOnArtShape) {
904− touchdownAnchors = 'fill: artShapeHolder';
931+ touchdownAnchors = 'fill: artShapeLoader';
905 } else {
932 } else {
906 touchdownAnchors = 'fill: root'
933 touchdownAnchors = 'fill: root'
907 }
934 }
908 code += kTouchdownCode.arg(touchdownAnchors);
935 code += kTouchdownCode.arg(touchdownAnchors);
909 }
936 }
910
937
938+ if (isCardTool || categoryLayout !== "grid") {
911− var implicitHeight = 'implicitHeight: ';
939+ var implicitHeight = 'implicitHeight: ';
912− if (hasSocialActions) {
940+ if (hasSocialActions) {
913− implicitHeight += 'socialActionsRow.y + socialActionsRow.height + units.gu(1);\n';
941+ implicitHeight += 'socialActionsRow.y + socialActionsRow.height + units.gu(1);\n';
914− } else if (hasSummary) {
942+ } else if (hasSummary) {
915− implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
943+ implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
916− } else if (isAudio) {
944+ } else if (isAudio) {
917− implicitHeight += 'audioButton.height;\n';
945+ implicitHeight += 'audioButton.height;\n';
918− } else if (headerAsOverlay) {
946+ } else if (headerAsOverlay) {
919− implicitHeight += 'artShapeHolder.height;\n';
947+ implicitHeight += 'artShapeLoader.height;\n';
920− } else if (hasHeaderRow) {
948+ } else if (hasHeaderRow) {
921− implicitHeight += 'row.y + row.height + units.gu(1);\n';
949+ implicitHeight += 'row.y + row.height + units.gu(1);\n';
922− } else if (hasMascot) {
950+ } else if (hasMascot) {
923− implicitHeight += 'mascotImage.y + mascotImage.height;\n';
951+ implicitHeight += 'mascotImage.y + mascotImage.height;\n';
924− } else if (hasTitleContainer) {
952+ } else if (hasTitleContainer) {
925− implicitHeight += 'headerTitleContainer.y + headerTitleContainer.height + units.gu(1);\n';
953+ implicitHeight += 'headerTitleContainer.y + headerTitleContainer.height + units.gu(1);\n';
926− } else if (hasAttributes) {
954+ } else if (hasAttributes) {
927− implicitHeight += 'attributesRow.y + attributesRow.height + units.gu(1);\n';
955+ implicitHeight += 'attributesRow.y + attributesRow.height + units.gu(1);\n';
928− } else if (hasSubtitle) {
956+ } else if (hasSubtitle) {
929− implicitHeight += 'subtitleLabel.y + subtitleLabel.height + units.gu(1);\n';
957+ implicitHeight += 'subtitleLabel.y + subtitleLabel.height + units.gu(1);\n';
930− } else if (hasTitle) {
958+ } else if (hasTitle) {
931− implicitHeight += 'titleLabel.y + titleLabel.height + units.gu(1);\n';
959+ implicitHeight += 'titleLabel.y + titleLabel.height + units.gu(1);\n';
932− } else if (hasArt) {
960+ } else if (hasArt) {
933− implicitHeight += 'artShapeHolder.height;\n';
961+ implicitHeight += 'artShapeLoader.height;\n';
962+ } else {
963+ implicitHeight = '';
964+ }
934 } else {
965 } else {
935 implicitHeight = '';
966 implicitHeight = '';
936 }
967 }
@@ -941,13 +972,13 @@ function cardString(template, components, isCardTool, artShapeStyle) {
941 return code;
972 return code;
942}
973}
943
974
944−function createCardComponent(parent, template, components, isCardTool, artShapeStyle, identifier) {
975+function createCardComponent(parent, template, components, isCardTool, artShapeStyle, categoryLayout, identifier) {
945 var imports = 'import QtQuick 2.4; \n\
976 var imports = 'import QtQuick 2.4; \n\
946 import Ubuntu.Components 1.3; \n\
977 import Ubuntu.Components 1.3; \n\
947 import Ubuntu.Settings.Components 0.1; \n\
978 import Ubuntu.Settings.Components 0.1; \n\
948 import Dash 0.1;\n\
979 import Dash 0.1;\n\
949 import Utils 0.1;\n';
980 import Utils 0.1;\n';
950− var card = cardString(template, components, isCardTool, artShapeStyle);
981+ var card = cardString(template, components, isCardTool, artShapeStyle, categoryLayout);
951 var code = imports + 'Component {\n' + card + '}\n';
982 var code = imports + 'Component {\n' + card + '}\n';
952
983
953 try {
984 try {
plugins/Dash/CardCreatorCache.qml+3−3
@@ -23,16 +23,16 @@ QtObject {
23
23
24 property var cache: new Object();
24 property var cache: new Object();
25
25
26− function getCardComponent(template, components, isCardTool, artShapeStyle) {
26+ function getCardComponent(template, components, isCardTool, artShapeStyle, categoryLayout) {
27 if (template === undefined || components === undefined)
27 if (template === undefined || components === undefined)
28 return undefined;
28 return undefined;
29
29
30 var tString = JSON.stringify(template);
30 var tString = JSON.stringify(template);
31 var cString = JSON.stringify(components);
31 var cString = JSON.stringify(components);
32− var allString = tString + cString + isCardTool;
32+ var allString = tString + cString + isCardTool + artShapeStyle + categoryLayout;
33 var component = cache[allString];
33 var component = cache[allString];
34 if (component === undefined) {
34 if (component === undefined) {
35− component = CardCreator.createCardComponent(root, template, components, isCardTool, artShapeStyle, allString);
35+ component = CardCreator.createCardComponent(root, template, components, isCardTool, artShapeStyle, categoryLayout, allString);
36 cache[allString] = component;
36 cache[allString] = component;
37 }
37 }
38 return component;
38 return component;
plugins/Dash/Dash.qmltypesdeleted−100
@@ -1,100 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Dash 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "AbstractDashView"
12− defaultProperty: "data"
13− prototype: "QQuickItem"
14− Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
15− Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
16− Property { name: "columnSpacing"; type: "double" }
17− Property { name: "rowSpacing"; type: "double" }
18− Property { name: "cacheBuffer"; type: "int" }
19− Property { name: "displayMarginBeginning"; type: "double" }
20− Property { name: "displayMarginEnd"; type: "double" }
21− }
22− Component {
23− name: "HorizontalJournal"
24− defaultProperty: "data"
25− prototype: "AbstractDashView"
26− exports: ["Dash/HorizontalJournal 0.1"]
27− exportMetaObjectRevisions: [0]
28− Property { name: "rowHeight"; type: "double" }
29− }
30− Component {
31− name: "ListViewWithPageHeader"
32− defaultProperty: "flickableData"
33− prototype: "QQuickFlickable"
34− exports: ["Dash/ListViewWithPageHeader 0.1"]
35− exportMetaObjectRevisions: [0]
36− Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
37− Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
38− Property { name: "pageHeader"; type: "QQuickItem"; isPointer: true }
39− Property { name: "sectionDelegate"; type: "QQmlComponent"; isPointer: true }
40− Property { name: "sectionProperty"; type: "string" }
41− Property { name: "forceNoClip"; type: "bool" }
42− Property { name: "stickyHeaderHeight"; type: "int"; isReadonly: true }
43− Property { name: "headerItemShownHeight"; type: "double"; isReadonly: true }
44− Property { name: "cacheBuffer"; type: "int" }
45− Signal { name: "headerChanged" }
46− Method { name: "positionAtBeginning" }
47− Method { name: "showHeader" }
48− Method { name: "firstCreatedIndex"; type: "int" }
49− Method { name: "createdItemCount"; type: "int" }
50− Method {
51− name: "item"
52− type: "QQuickItem*"
53− Parameter { name: "modelIndex"; type: "int" }
54− }
55− Method {
56− name: "maximizeVisibleArea"
57− type: "bool"
58− Parameter { name: "modelIndex"; type: "int" }
59− }
60− Method {
61− name: "maximizeVisibleArea"
62− type: "bool"
63− Parameter { name: "modelIndex"; type: "int" }
64− Parameter { name: "itemHeight"; type: "int" }
65− }
66− }
67− Component {
68− name: "OrganicGrid"
69− defaultProperty: "data"
70− prototype: "AbstractDashView"
71− exports: ["Dash/OrganicGrid 0.1"]
72− exportMetaObjectRevisions: [0]
73− Property { name: "smallDelegateSize"; type: "QSizeF" }
74− Property { name: "bigDelegateSize"; type: "QSizeF" }
75− }
76− Component {
77− name: "VerticalJournal"
78− defaultProperty: "data"
79− prototype: "AbstractDashView"
80− exports: ["Dash/VerticalJournal 0.1"]
81− exportMetaObjectRevisions: [0]
82− Property { name: "columnWidth"; type: "double" }
83− }
84− Component {
85− prototype: "QObject"
86− name: "CardCreatorCache"
87− exports: ["CardCreatorCache -1.-1"]
88− exportMetaObjectRevisions: [-1]
89− isComposite: true
90− isCreatable: false
91− isSingleton: true
92− Property { name: "cache"; type: "QVariant" }
93− Method {
94− name: "getCardComponent"
95− type: "QVariant"
96− Parameter { name: "template"; type: "QVariant" }
97− Parameter { name: "components"; type: "QVariant" }
98− }
99− }
100−}
plugins/Dash/DashAudioPlayer.qml+45−21
@@ -20,16 +20,22 @@ import QtMultimedia 5.6
20import Dash 0.1
20import Dash 0.1
21
21
22QtObject {
22QtObject {
23+ id: root
23− readonly property real progress: audio.position / audio.duration
24+ readonly property real progress: priv.audio ? priv.audio.position / priv.audio.duration : 0.0
24− readonly property bool playing: audio.playbackState === Audio.PlayingState
25+ readonly property bool playing: priv.audio ? priv.audio.playbackState === Audio.PlayingState : false
25− readonly property bool paused: audio.playbackState === Audio.PausedState
26+ readonly property bool paused: priv.audio ? priv.audio.playbackState === Audio.PausedState : false
26− readonly property bool stopped: audio.playbackState === Audio.StoppedState
27+ readonly property bool stopped: priv.audio ? priv.audio.playbackState === Audio.StoppedState : true
27− readonly property alias position: audio.position
28+ readonly property int position: priv.audio ? priv.audio.position : 0
28− readonly property url currentSource: audio.playlist.currentItemSource
29+ readonly property url currentSource: priv.audio ? priv.audio.playlist.currentItemSource : ""
30+ readonly property Playlist playlist: priv.audio ? priv.audio.playlist : null
29
31
30 function playSource(newSource, newPlaylist) {
32 function playSource(newSource, newPlaylist) {
33+ if (!priv.audio) {
34+ console.info("DashAudioPlayer: creating player");
35+ priv.audio = priv.audioComponent.createObject(root);
36+ }
31 stop();
37 stop();
32− audio.playlist.clear();
38+ priv.audio.playlist.clear();
33 if (newPlaylist) {
39 if (newPlaylist) {
34 // Look for newSource in newPlaylist
40 // Look for newSource in newPlaylist
35 var sourceIndex = -1;
41 var sourceIndex = -1;
@@ -48,35 +54,53 @@ QtObject {
48 for (var i in newPlaylist) {
54 for (var i in newPlaylist) {
49 urls.push(newPlaylist[i]);
55 urls.push(newPlaylist[i]);
50 }
56 }
51− audio.playlist.addItems(urls);
57+ priv.audio.playlist.addItems(urls);
52− audio.playlist.currentIndex = sourceIndex;
58+ priv.audio.playlist.currentIndex = sourceIndex;
53 } else {
59 } else {
54− audio.playlist.addItem(newSource);
60+ priv.audio.playlist.addItem(newSource);
55− audio.playlist.currentIndex = 0;
61+ priv.audio.playlist.currentIndex = 0;
56 }
62 }
57 play();
63 play();
58 }
64 }
59
65
60 function stop() {
66 function stop() {
67+ if (priv.audio) {
61− audio.stop();
68+ priv.audio.stop();
69+ }
62 }
70 }
63
71
64 function play() {
72 function play() {
73+ if (priv.audio) {
65− audio.play();
74+ priv.audio.play();
75+ }
66 }
76 }
67
77
68 function pause() {
78 function pause() {
79+ if (priv.audio) {
69− audio.pause();
80+ priv.audio.pause();
81+ }
70 }
82 }
71
83
72− property QtObject audio: Audio {
84+ property QtObject priv: QtObject {
73− id: audio
85+ id: priv
74− objectName: "audio"
86+ property Audio audio: null
87+ property Component audioComponent: Component {
88+ Audio {
75− playlist: Playlist {
89+ playlist: Playlist {
76− objectName: "playlist"
90+ objectName: "playlist"
91+ }
92+ /* Remove player in case of error so it gets recreated next time
93+ * we need it. Happens if backend media player restarted, for
94+ * instance. qtmultimedia should probably handle this
95+ * transparently (LP: #1616425).
96+ */
97+ onError: {
98+ console.warn("DashAudioPlayer: error event (" +
99+ priv.audio.errorString + "), destroying");
100+ priv.audio.destroy();
101+ }
102+ }
77 }
103 }
78−
79− onErrorStringChanged: console.warn("Dash Audio player error:", errorString)
80 }
104 }
81
105
82 function lengthToString(s) {
106 function lengthToString(s) {
plugins/Dash/abstractdashview.cpp+13
@@ -16,6 +16,8 @@
16
16
17#include "abstractdashview.h"
17#include "abstractdashview.h"
18
18
19+#include <private/qquickitem_p.h>
20+
19AbstractDashView::AbstractDashView()
21AbstractDashView::AbstractDashView()
20 : m_delegateModel(nullptr)
22 : m_delegateModel(nullptr)
21 , m_asyncRequestedIndex(-1)
23 , m_asyncRequestedIndex(-1)
@@ -249,6 +251,7 @@ QQuickItem *AbstractDashView::createItem(int modelIndex, bool asynchronous)
249 }
251 }
250 return nullptr;
252 return nullptr;
251 } else {
253 } else {
254+ QQuickItemPrivate::get(item)->addItemChangeListener(this, QQuickItemPrivate::Geometry);
252 addItemToView(modelIndex, item);
255 addItemToView(modelIndex, item);
253 return item;
256 return item;
254 }
257 }
@@ -256,6 +259,7 @@ QQuickItem *AbstractDashView::createItem(int modelIndex, bool asynchronous)
256
259
257void AbstractDashView::releaseItem(QQuickItem *item)
260void AbstractDashView::releaseItem(QQuickItem *item)
258{
261{
262+ QQuickItemPrivate::get(item)->removeItemChangeListener(this, QQuickItemPrivate::Geometry);
259 QQmlDelegateModel::ReleaseFlags flags = m_delegateModel->release(item);
263 QQmlDelegateModel::ReleaseFlags flags = m_delegateModel->release(item);
260 if (flags & QQmlDelegateModel::Destroyed) {
264 if (flags & QQmlDelegateModel::Destroyed) {
261 item->setParentItem(nullptr);
265 item->setParentItem(nullptr);
@@ -294,6 +298,15 @@ void AbstractDashView::onModelUpdated(const QQmlChangeSet &changeSet, bool reset
294 cleanupExistingItems();
298 cleanupExistingItems();
295 } else {
299 } else {
296 processModelRemoves(changeSet.removes());
300 processModelRemoves(changeSet.removes());
301+
302+ // The current AbstractDashViews do not support insertions that are not at the end
303+ // so reset if that happens
304+ Q_FOREACH(const QQmlChangeSet::Change insert, changeSet.inserts()) {
305+ if (insert.index < m_delegateModel->count() - 1) {
306+ cleanupExistingItems();
307+ break;
308+ }
309+ }
297 }
310 }
298 polish();
311 polish();
299}
312}
plugins/Dash/abstractdashview.h+3−4
@@ -21,13 +21,12 @@
21
21
22class QAbstractItemModel;
22class QAbstractItemModel;
23class QQmlComponent;
23class QQmlComponent;
24−#pragma GCC diagnostic push
24+
25−#pragma GCC diagnostic ignored "-pedantic"
26#include <private/qqmldelegatemodel_p.h>
25#include <private/qqmldelegatemodel_p.h>
26+#include <private/qquickitemchangelistener_p.h>
27#include <qqmlinfo.h>
27#include <qqmlinfo.h>
28−#pragma GCC diagnostic pop
29
28
30−class AbstractDashView : public QQuickItem
29+class AbstractDashView : public QQuickItem, public QQuickItemChangeListener
31{
30{
32 Q_OBJECT
31 Q_OBJECT
33
32
plugins/Dash/graphics/music_progress_bg.png

Binary file not shown.

plugins/Dash/horizontaljournal.cpp+1−4
@@ -26,12 +26,9 @@
26#include "horizontaljournal.h"
26#include "horizontaljournal.h"
27
27
28#include <qqmlengine.h>
28#include <qqmlengine.h>
29−#pragma GCC diagnostic push
30−#pragma GCC diagnostic ignored "-pedantic"
31−#include <private/qqmldelegatemodel_p.h>
32#include <qqmlinfo.h>
29#include <qqmlinfo.h>
30+#include <private/qqmldelegatemodel_p.h>
33#include <private/qquickitem_p.h>
31#include <private/qquickitem_p.h>
34−#pragma GCC diagnostic pop
35
32
36HorizontalJournal::HorizontalJournal()
33HorizontalJournal::HorizontalJournal()
37 : m_firstVisibleIndex(-1)
34 : m_firstVisibleIndex(-1)
plugins/Dash/listviewwithpageheader.cpp+14−8
@@ -95,14 +95,11 @@
95#include <QDebug>
95#include <QDebug>
96#include <qqmlinfo.h>
96#include <qqmlinfo.h>
97#include <qqmlengine.h>
97#include <qqmlengine.h>
98−#pragma GCC diagnostic push
99−#pragma GCC diagnostic ignored "-pedantic"
100#include <private/qqmlcontext_p.h>
98#include <private/qqmlcontext_p.h>
101#include <private/qqmldelegatemodel_p.h>
99#include <private/qqmldelegatemodel_p.h>
102#include <private/qqmlglobal_p.h>
100#include <private/qqmlglobal_p.h>
103#include <private/qquickitem_p.h>
101#include <private/qquickitem_p.h>
104#include <private/qquickanimation_p.h>
102#include <private/qquickanimation_p.h>
105−#pragma GCC diagnostic pop
106// #include <private/qquickrectangle_p.h>
103// #include <private/qquickrectangle_p.h>
107
104
108qreal ListViewWithPageHeader::ListItem::height() const
105qreal ListViewWithPageHeader::ListItem::height() const
@@ -256,6 +253,7 @@ void ListViewWithPageHeader::setHeader(QQuickItem *headerItem)
256 oldHeaderHeight = m_headerItem->height();
253 oldHeaderHeight = m_headerItem->height();
257 oldHeaderY = m_headerItem->y();
254 oldHeaderY = m_headerItem->y();
258 m_headerItem->setParentItem(nullptr);
255 m_headerItem->setParentItem(nullptr);
256+ QQuickItemPrivate::get(m_headerItem)->removeItemChangeListener(this, QQuickItemPrivate::ImplicitHeight);
259 }
257 }
260 m_headerItem = headerItem;
258 m_headerItem = headerItem;
261 if (m_headerItem) {
259 if (m_headerItem) {
@@ -287,9 +285,11 @@ void ListViewWithPageHeader::setSectionDelegate(QQmlComponent *delegate)
287 m_sectionDelegate = delegate;
285 m_sectionDelegate = delegate;
288
286
289 m_topSectionItem = getSectionItem(QString(), false /*watchGeometry*/);
287 m_topSectionItem = getSectionItem(QString(), false /*watchGeometry*/);
288+ if (m_topSectionItem) {
290− m_topSectionItem->setZ(3);
289+ m_topSectionItem->setZ(3);
291− QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
290+ QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
292− connect(m_topSectionItem, &QQuickItem::heightChanged, this, &ListViewWithPageHeader::stickyHeaderHeightChanged);
291+ connect(m_topSectionItem, &QQuickItem::heightChanged, this, &ListViewWithPageHeader::stickyHeaderHeightChanged);
292+ }
293
293
294 // TODO create sections for existing items
294 // TODO create sections for existing items
295
295
@@ -700,7 +700,9 @@ void ListViewWithPageHeader::reallyReleaseItem(ListItem *listItem)
700 if (flags & QQmlDelegateModel::Destroyed) {
700 if (flags & QQmlDelegateModel::Destroyed) {
701 item->setParentItem(nullptr);
701 item->setParentItem(nullptr);
702 }
702 }
703+ if (listItem->sectionItem()) {
703− listItem->sectionItem()->deleteLater();
704+ listItem->sectionItem()->deleteLater();
705+ }
704 delete listItem;
706 delete listItem;
705}
707}
706
708
@@ -776,7 +778,7 @@ QQuickItem *ListViewWithPageHeader::getSectionItem(const QString &sectionText, b
776 }
778 }
777 m_sectionDelegate->completeCreate();
779 m_sectionDelegate->completeCreate();
778
780
779− if (watchGeometry) {
781+ if (watchGeometry && sectionItem) {
780 QQuickItemPrivate::get(sectionItem)->addItemChangeListener(this, QQuickItemPrivate::Geometry);
782 QQuickItemPrivate::get(sectionItem)->addItemChangeListener(this, QQuickItemPrivate::Geometry);
781 }
783 }
782
784
@@ -1332,6 +1334,10 @@ void ListViewWithPageHeader::layout()
1332 }
1334 }
1333 }
1335 }
1334 }
1336 }
1337+ if (m_headerItem) {
1338+ const bool cullHeader = m_headerItem->y() + m_headerItem->height() < contentY();
1339+ QQuickItemPrivate::get(m_headerItem)->setCulled(cullHeader);
1340+ }
1335 m_inLayout = false;
1341 m_inLayout = false;
1336}
1342}
1337
1343
plugins/Dash/organicgrid.cpp+3−4
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014, 2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -16,10 +16,9 @@
16
16
17#include "organicgrid.h"
17#include "organicgrid.h"
18
18
19−#pragma GCC diagnostic push
19+#include <math.h>
20−#pragma GCC diagnostic ignored "-pedantic"
20+
21#include <private/qquickitem_p.h>
21#include <private/qquickitem_p.h>
22−#pragma GCC diagnostic pop
23
22
24OrganicGrid::OrganicGrid()
23OrganicGrid::OrganicGrid()
25 : m_firstVisibleIndex(-1)
24 : m_firstVisibleIndex(-1)
plugins/Dash/verticaljournal.cpp+12−5
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013, 2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -27,10 +27,9 @@
27 */
27 */
28#include "verticaljournal.h"
28#include "verticaljournal.h"
29
29
30−#pragma GCC diagnostic push
30+#include <math.h>
31−#pragma GCC diagnostic ignored "-pedantic"
31+
32#include <private/qquickitem_p.h>
32#include <private/qquickitem_p.h>
33−#pragma GCC diagnostic pop
34
33
35VerticalJournal::VerticalJournal()
34VerticalJournal::VerticalJournal()
36 : m_columnWidth(0)
35 : m_columnWidth(0)
@@ -97,7 +96,7 @@ void VerticalJournal::findTopModelIndexToAdd(int *modelIndex, qreal *yPos)
97
96
98 if (*modelIndex > 0) {
97 if (*modelIndex > 0) {
99 Q_ASSERT(m_indexColumnMap.contains(*modelIndex));
98 Q_ASSERT(m_indexColumnMap.contains(*modelIndex));
100− while (m_indexColumnMap[*modelIndex] != columnToAddTo) {
99+ while (*modelIndex > 0 && m_indexColumnMap[*modelIndex] != columnToAddTo) {
101 // We found out that we have to add to columnToAddTo
100 // We found out that we have to add to columnToAddTo
102 // and thought that we had to add *modelIndex, but history tells
101 // and thought that we had to add *modelIndex, but history tells
103 // it is not correct, so find up from *modelIndex until we found the index
102 // it is not correct, so find up from *modelIndex until we found the index
@@ -271,3 +270,11 @@ void VerticalJournal::processModelRemoves(const QVector<QQmlChangeSet::Change> &
271 }
270 }
272 }
271 }
273}
272}
273+
274+void VerticalJournal::itemGeometryChanged(QQuickItem * /*item*/, const QRectF &newGeometry, const QRectF &oldGeometry)
275+{
276+ const qreal heightDiff = newGeometry.height() - oldGeometry.height();
277+ if (heightDiff != 0) {
278+ relayout();
279+ }
280+}
plugins/Dash/verticaljournal.h+3
@@ -65,6 +65,9 @@ public:
65 qreal columnWidth() const;
65 qreal columnWidth() const;
66 void setColumnWidth(qreal columnWidth);
66 void setColumnWidth(qreal columnWidth);
67
67
68+protected:
69+ void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override;
70+
68Q_SIGNALS:
71Q_SIGNALS:
69 void columnWidthChanged();
72 void columnWidthChanged();
70
73
plugins/GlobalShortcut/GlobalShortcut.qmltypesdeleted−31
@@ -1,31 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable GlobalShortcut 1.0 plugins'
8−
9−Module {
10− Component {
11− name: "GlobalShortcut"
12− defaultProperty: "data"
13− prototype: "QQuickItem"
14− exports: ["GlobalShortcut/GlobalShortcut 1.0"]
15− exportMetaObjectRevisions: [0]
16− Property { name: "shortcut"; type: "QVariant" }
17− Property { name: "active"; type: "bool" }
18− Signal {
19− name: "shortcutChanged"
20− Parameter { name: "shortcut"; type: "QVariant" }
21− }
22− Signal {
23− name: "triggered"
24− Parameter { name: "shortcut"; type: "string" }
25− }
26− Signal {
27− name: "activeChanged"
28− Parameter { name: "active"; type: "bool" }
29− }
30− }
31−}
plugins/Greeter/Unity/Launcher/CMakeLists.txt+1−1
@@ -1,4 +1,4 @@
1−pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=7)
1+pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=9)
2pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
2pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
3
3
4add_definitions(-DSM_BUSNAME=systemBus)
4add_definitions(-DSM_BUSNAME=systemBus)
plugins/Greeter/Unity/Launcher/Launcher.qmltypesdeleted−182
@@ -1,182 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Unity.Launcher 0.1 plugins/Greeter'
8−
9−Module {
10− Component {
11− name: "LauncherItem"
12− prototype: "unity::shell::launcher::LauncherItemInterface"
13− exports: ["Unity.Launcher/LauncherItem 0.1"]
14− isCreatable: false
15− exportMetaObjectRevisions: [0]
16− }
17− Component {
18− name: "LauncherModel"
19− prototype: "unity::shell::launcher::LauncherModelInterface"
20− exports: ["Unity.Launcher/LauncherModel 0.1"]
21− isCreatable: false
22− isSingleton: true
23− exportMetaObjectRevisions: [0]
24− Method {
25− name: "requestRemove"
26− Parameter { name: "appId"; type: "string" }
27− }
28− Method { name: "refresh" }
29− Method {
30− name: "get"
31− type: "unity::shell::launcher::LauncherItemInterface*"
32− Parameter { name: "index"; type: "int" }
33− }
34− Method {
35− name: "move"
36− Parameter { name: "oldIndex"; type: "int" }
37− Parameter { name: "newIndex"; type: "int" }
38− }
39− Method {
40− name: "pin"
41− Parameter { name: "appId"; type: "string" }
42− Parameter { name: "index"; type: "int" }
43− }
44− Method {
45− name: "pin"
46− Parameter { name: "appId"; type: "string" }
47− }
48− Method {
49− name: "quickListActionInvoked"
50− Parameter { name: "appId"; type: "string" }
51− Parameter { name: "actionIndex"; type: "int" }
52− }
53− Method {
54− name: "setUser"
55− Parameter { name: "username"; type: "string" }
56− }
57− Method {
58− name: "getUrlForAppId"
59− type: "string"
60− Parameter { name: "appId"; type: "string" }
61− }
62− }
63− Component {
64− name: "QuickListModel"
65− prototype: "unity::shell::launcher::QuickListModelInterface"
66− exports: ["Unity.Launcher/QuickListModel 0.1"]
67− isCreatable: false
68− exportMetaObjectRevisions: [0]
69− }
70− Component {
71− name: "unity::shell::launcher::LauncherItemInterface"
72− prototype: "QObject"
73− exports: ["Unity.Launcher/LauncherItemInterface 0.1"]
74− isCreatable: false
75− exportMetaObjectRevisions: [0]
76− Property { name: "appId"; type: "string"; isReadonly: true }
77− Property { name: "name"; type: "string"; isReadonly: true }
78− Property { name: "icon"; type: "string"; isReadonly: true }
79− Property { name: "pinned"; type: "bool"; isReadonly: true }
80− Property { name: "running"; type: "bool"; isReadonly: true }
81− Property { name: "recent"; type: "bool"; isReadonly: true }
82− Property { name: "progress"; type: "int"; isReadonly: true }
83− Property { name: "count"; type: "int"; isReadonly: true }
84− Property { name: "countVisible"; type: "bool"; isReadonly: true }
85− Property { name: "focused"; type: "bool"; isReadonly: true }
86− Property {
87− name: "quickList"
88− type: "unity::shell::launcher::QuickListModelInterface"
89− isReadonly: true
90− isPointer: true
91− }
92− Signal {
93− name: "nameChanged"
94− Parameter { name: "name"; type: "string" }
95− }
96− Signal {
97− name: "iconChanged"
98− Parameter { name: "icon"; type: "string" }
99− }
100− Signal {
101− name: "pinnedChanged"
102− Parameter { name: "pinned"; type: "bool" }
103− }
104− Signal {
105− name: "runningChanged"
106− Parameter { name: "running"; type: "bool" }
107− }
108− Signal {
109− name: "recentChanged"
110− Parameter { name: "running"; type: "bool" }
111− }
112− Signal {
113− name: "progressChanged"
114− Parameter { name: "progress"; type: "int" }
115− }
116− Signal {
117− name: "countChanged"
118− Parameter { name: "count"; type: "int" }
119− }
120− Signal {
121− name: "countVisibleChanged"
122− Parameter { name: "countVisible"; type: "bool" }
123− }
124− Signal {
125− name: "focusedChanged"
126− Parameter { name: "focused"; type: "bool" }
127− }
128− }
129− Component {
130− name: "unity::shell::launcher::LauncherModelInterface"
131− prototype: "QAbstractListModel"
132− exports: ["Unity.Launcher/LauncherModelInterface 0.1"]
133− isCreatable: false
134− exportMetaObjectRevisions: [0]
135− Property {
136− name: "applicationManager"
137− type: "unity::shell::application::ApplicationManagerInterface"
138− isPointer: true
139− }
140− Property { name: "onlyPinned"; type: "bool" }
141− Signal { name: "hint" }
142− Method {
143− name: "move"
144− Parameter { name: "oldIndex"; type: "int" }
145− Parameter { name: "newIndex"; type: "int" }
146− }
147− Method {
148− name: "get"
149− type: "unity::shell::launcher::LauncherItemInterface*"
150− Parameter { name: "index"; type: "int" }
151− }
152− Method {
153− name: "pin"
154− Parameter { name: "appId"; type: "string" }
155− Parameter { name: "index"; type: "int" }
156− }
157− Method {
158− name: "pin"
159− Parameter { name: "appId"; type: "string" }
160− }
161− Method {
162− name: "requestRemove"
163− Parameter { name: "appId"; type: "string" }
164− }
165− Method {
166− name: "quickListActionInvoked"
167− Parameter { name: "appId"; type: "string" }
168− Parameter { name: "actionIndex"; type: "int" }
169− }
170− Method {
171− name: "setUser"
172− Parameter { name: "username"; type: "string" }
173− }
174− }
175− Component {
176− name: "unity::shell::launcher::QuickListModelInterface"
177− prototype: "QAbstractListModel"
178− exports: ["Unity.Launcher/QuickListInterface 0.1"]
179− isCreatable: false
180− exportMetaObjectRevisions: [0]
181− }
182−}
plugins/Greeter/Unity/Launcher/launcheritem.cpp+14
@@ -32,6 +32,7 @@ LauncherItem::LauncherItem(const QString &appId, const QString &name, const QStr
32 m_countVisible(false),
32 m_countVisible(false),
33 m_focused(false),
33 m_focused(false),
34 m_alerting(false),
34 m_alerting(false),
35+ m_surfaceCount(0),
35 m_quickList(new QuickListModel(this))
36 m_quickList(new QuickListModel(this))
36{
37{
37 QuickListEntry nameAction;
38 QuickListEntry nameAction;
@@ -179,6 +180,19 @@ void LauncherItem::setAlerting(bool alerting)
179 }
180 }
180}
181}
181
182
183+int LauncherItem::surfaceCount() const
184+{
185+ return m_surfaceCount;
186+}
187+
188+void LauncherItem::setSurfaceCount(int surfaceCount)
189+{
190+ if (m_surfaceCount != surfaceCount) {
191+ m_surfaceCount = surfaceCount;
192+ Q_EMIT surfaceCountChanged(surfaceCount);
193+ }
194+}
195+
182unity::shell::launcher::QuickListModelInterface *LauncherItem::quickList() const
196unity::shell::launcher::QuickListModelInterface *LauncherItem::quickList() const
183{
197{
184 return m_quickList;
198 return m_quickList;
plugins/Greeter/Unity/Launcher/launcheritem.h+3−1
@@ -42,6 +42,7 @@ public:
42 bool countVisible() const override;
42 bool countVisible() const override;
43 bool focused() const override;
43 bool focused() const override;
44 bool alerting() const override;
44 bool alerting() const override;
45+ int surfaceCount() const override;
45
46
46 unity::shell::launcher::QuickListModelInterface *quickList() const override;
47 unity::shell::launcher::QuickListModelInterface *quickList() const override;
47
48
@@ -56,7 +57,7 @@ private:
56 void setCountVisible(bool countVisible);
57 void setCountVisible(bool countVisible);
57 void setFocused(bool focused);
58 void setFocused(bool focused);
58 void setAlerting(bool alerting);
59 void setAlerting(bool alerting);
59−
60+ void setSurfaceCount(int surfaceCount);
60
61
61private:
62private:
62 QString m_appId;
63 QString m_appId;
@@ -70,6 +71,7 @@ private:
70 bool m_countVisible;
71 bool m_countVisible;
71 bool m_focused;
72 bool m_focused;
72 bool m_alerting;
73 bool m_alerting;
74+ int m_surfaceCount;
73 QuickListModel *m_quickList;
75 QuickListModel *m_quickList;
74
76
75 friend class LauncherModel;
77 friend class LauncherModel;
plugins/Greeter/Unity/Launcher/launchermodelas.cpp+2−7
@@ -69,18 +69,13 @@ QVariant LauncherModel::data(const QModelIndex &index, int role) const
69 return item->focused();
69 return item->focused();
70 case RoleRunning:
70 case RoleRunning:
71 return item->running();
71 return item->running();
72+ case RoleSurfaceCount:
73+ return item->surfaceCount();
72 }
74 }
73
75
74 return QVariant();
76 return QVariant();
75}
77}
76
78
77−void LauncherModel::setAlerting(const QString &appId, bool alerting)
78−{
79− Q_UNUSED(appId)
80− Q_UNUSED(alerting)
81− qWarning() << "This is a read only implementation. Cannot set alert-state of items.";
82−}
83−
84unity::shell::launcher::LauncherItemInterface *LauncherModel::get(int index) const
79unity::shell::launcher::LauncherItemInterface *LauncherModel::get(int index) const
85{
80{
86 if (index < 0 || index >= m_list.count()) {
81 if (index < 0 || index >= m_list.count()) {
plugins/Greeter/Unity/Launcher/launchermodelas.h−1
@@ -41,7 +41,6 @@ public:
41
41
42 QVariant data(const QModelIndex &index, int role) const override;
42 QVariant data(const QModelIndex &index, int role) const override;
43
43
44− Q_INVOKABLE void setAlerting(const QString &appId, bool alerting) override;
45 Q_INVOKABLE unity::shell::launcher::LauncherItemInterface* get(int index) const override;
44 Q_INVOKABLE unity::shell::launcher::LauncherItemInterface* get(int index) const override;
46 Q_INVOKABLE void move(int oldIndex, int newIndex) override;
45 Q_INVOKABLE void move(int oldIndex, int newIndex) override;
47 Q_INVOKABLE void pin(const QString &appId, int index = -1) override;
46 Q_INVOKABLE void pin(const QString &appId, int index = -1) override;
plugins/IntegratedLightDM/CMakeLists.txtdeleted−40
@@ -1,40 +0,0 @@
1−pkg_check_modules(LIBUSERMETRICSOUTPUT REQUIRED libusermetricsoutput-1)
2−# TODO: Once we split out a separate greeter process, uncomment these lines
3−#pkg_check_modules(LIBLIGHTDM REQUIRED liblightdm-qt5-2)
4−
5−add_subdirectory(liblightdm)
6−
7−include_directories(
8− ${CMAKE_CURRENT_SOURCE_DIR}
9− ${CMAKE_CURRENT_BINARY_DIR}
10− ${CMAKE_SOURCE_DIR}/plugins/Utils
11− ${CMAKE_SOURCE_DIR}/tests/mocks/IntegratedLightDM
12− #${LIBLIGHTDM_INCLUDE_DIRS}
13− ${libunity8-private_SOURCE_DIR}
14− ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
15−)
16−
17−set(QMLPLUGIN_SRC
18− ../Utils/unitysortfilterproxymodelqml.cpp # FIXME evaluate a more generic approach for using other plugins
19− DBusGreeter.cpp
20− DBusGreeterList.cpp
21− Greeter.cpp
22− plugin.cpp
23− UsersModel.cpp
24− )
25−
26−add_library(IntegratedLightDM-qml MODULE
27− ${QMLPLUGIN_SRC}
28− )
29−
30−target_link_libraries(IntegratedLightDM-qml
31− integratedLightDM
32− unity8-private
33−# TODO: Once we split out a separate greeter process, uncomment these lines
34−# ${LIBLIGHTDM_LDFLAGS}
35− ${LIBUSERMETRICSOUTPUT_LDFLAGS}
36− )
37−
38−qt5_use_modules(IntegratedLightDM-qml DBus Gui Qml)
39−
40−add_unity8_plugin(IntegratedLightDM 0.1 IntegratedLightDM TARGETS IntegratedLightDM-qml)
plugins/LightDM/CMakeLists.txtnew file+26
@@ -0,0 +1,26 @@
1+pkg_check_modules(LIBUSERMETRICSOUTPUT REQUIRED libusermetricsoutput-1)
2+
3+find_package(Qt5Core REQUIRED)
4+find_package(Qt5Quick REQUIRED)
5+
6+include_directories(
7+ ${CMAKE_CURRENT_SOURCE_DIR}
8+ ${CMAKE_CURRENT_BINARY_DIR}
9+ ${CMAKE_SOURCE_DIR}/plugins/Utils
10+ ${CMAKE_BINARY_DIR}/tests/mocks/LightDM/IntegratedLightDM
11+ ${libunity8-private_SOURCE_DIR}
12+ ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
13+)
14+
15+set(QMLPLUGIN_SRC
16+ ../Utils/unitysortfilterproxymodelqml.cpp
17+ DBusGreeter.cpp
18+ DBusGreeterList.cpp
19+ Greeter.cpp
20+ plugin.cpp
21+ SessionsModel.cpp
22+ UsersModel.cpp
23+ )
24+
25+add_subdirectory(FullLightDM)
26+add_subdirectory(IntegratedLightDM)
plugins/IntegratedLightDM/DBusGreeter.cpp → plugins/LightDM/DBusGreeter.cpprenamed+5−4
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014, 2015 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -24,7 +24,8 @@ DBusGreeter::DBusGreeter(Greeter *greeter, const QString &path)
24 : UnityDBusObject(path, QStringLiteral("com.canonical.UnityGreeter"), true, greeter),
24 : UnityDBusObject(path, QStringLiteral("com.canonical.UnityGreeter"), true, greeter),
25 m_greeter(greeter)
25 m_greeter(greeter)
26{
26{
27− connect(m_greeter, &Greeter::isActiveChanged, this, &DBusGreeter::isActiveChangedHandler);
27+ connect(m_greeter, &Greeter::isActiveChanged,
28+ this, &DBusGreeter::isActiveChangedHandler);
28}
29}
29
30
30bool DBusGreeter::isActive() const
31bool DBusGreeter::isActive() const
@@ -34,12 +35,12 @@ bool DBusGreeter::isActive() const
34
35
35void DBusGreeter::ShowGreeter()
36void DBusGreeter::ShowGreeter()
36{
37{
37− return Q_EMIT m_greeter->showGreeter();
38+ Q_EMIT m_greeter->showGreeter();
38}
39}
39
40
40void DBusGreeter::HideGreeter()
41void DBusGreeter::HideGreeter()
41{
42{
42− return Q_EMIT m_greeter->hideGreeter();
43+ Q_EMIT m_greeter->hideGreeter();
43}
44}
44
45
45void DBusGreeter::isActiveChangedHandler()
46void DBusGreeter::isActiveChangedHandler()
plugins/IntegratedLightDM/DBusGreeter.h → plugins/LightDM/DBusGreeter.hrenamed

The content is the same.

plugins/IntegratedLightDM/DBusGreeterList.cpp → plugins/LightDM/DBusGreeterList.cpprenamed

The content is the same.

plugins/IntegratedLightDM/DBusGreeterList.h → plugins/LightDM/DBusGreeterList.hrenamed

The content is the same.

plugins/LightDM/FullLightDM/CMakeLists.txtnew file+28
@@ -0,0 +1,28 @@
1+pkg_check_modules(LIBLIGHTDM REQUIRED liblightdm-qt5-3)
2+
3+set(PLUGIN_CLASSNAME "FullLightDM")
4+
5+add_definitions(-DFULL_LIGHTDM)
6+
7+include_directories(
8+ ../
9+ ${LIBLIGHTDM_INCLUDE_DIRS}
10+ ${CMAKE_CURRENT_BINARY_DIR}
11+ )
12+
13+foreach(source_file ${QMLPLUGIN_SRC})
14+ list(APPEND RELATIVE_QMLPLUGIN_SRC ../${source_file})
15+endforeach()
16+
17+add_library(FullLightDM-qml MODULE
18+ ${RELATIVE_QMLPLUGIN_SRC}
19+ )
20+
21+target_link_libraries(FullLightDM-qml
22+ unity8-private
23+ ${LIBLIGHTDM_LDFLAGS}
24+ ${LIBUSERMETRICSOUTPUT_LDFLAGS}
25+ )
26+
27+qt5_use_modules(FullLightDM-qml DBus Gui Qml)
28+add_unity8_plugin(FullLightDM 0.1 LightDM/FullLightDM TARGETS FullLightDM-qml)
plugins/LightDM/FullLightDM/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module LightDM.FullLightDM
2+plugin FullLightDM-qml
3+typeinfo FullLightDM.qmltypes
plugins/IntegratedLightDM/Greeter.cpp → plugins/LightDM/Greeter.cpprenamed+13−2
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013, 2015 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -13,7 +13,6 @@
13 * You should have received a copy of the GNU General Public License
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/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
15 *
16− * Author: Michael Terry <michael.terry@canonical.com>
17 */
16 */
18
17
19#include "Greeter.h"
18#include "Greeter.h"
@@ -72,12 +71,24 @@ QString Greeter::authenticationUser() const
72 return d->m_greeter->authenticationUser();
71 return d->m_greeter->authenticationUser();
73}
72}
74
73
74+QString Greeter::defaultSessionHint() const
75+{
76+ Q_D(const Greeter);
77+ return d->m_greeter->defaultSessionHint();
78+}
79+
75bool Greeter::promptless() const
80bool Greeter::promptless() const
76{
81{
77 Q_D(const Greeter);
82 Q_D(const Greeter);
78 return d->promptless;
83 return d->promptless;
79}
84}
80
85
86+QString Greeter::selectUser() const
87+{
88+ Q_D(const Greeter);
89+ return d->m_greeter->selectUserHint();
90+}
91+
81void Greeter::authenticate(const QString &username)
92void Greeter::authenticate(const QString &username)
82{
93{
83 Q_D(Greeter);
94 Q_D(Greeter);
plugins/IntegratedLightDM/Greeter.h → plugins/LightDM/Greeter.hrenamed+5−2
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2012,2013 Canonical, Ltd.
2+ * Copyright (C) 2012,2013,2015 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -13,7 +13,6 @@
13 * You should have received a copy of the GNU General Public License
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/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
15 *
16− * Authors: Michael Terry <michael.terry@canonical.com>
17 */
16 */
18
17
19/* This class is a really tiny filter around QLightDM::Greeter. There are some
18/* This class is a really tiny filter around QLightDM::Greeter. There are some
@@ -37,7 +36,9 @@ class Greeter : public QObject
37 Q_PROPERTY(bool active READ isActive WRITE setIsActive NOTIFY isActiveChanged)
36 Q_PROPERTY(bool active READ isActive WRITE setIsActive NOTIFY isActiveChanged)
38 Q_PROPERTY(bool authenticated READ isAuthenticated NOTIFY isAuthenticatedChanged)
37 Q_PROPERTY(bool authenticated READ isAuthenticated NOTIFY isAuthenticatedChanged)
39 Q_PROPERTY(QString authenticationUser READ authenticationUser NOTIFY authenticationUserChanged)
38 Q_PROPERTY(QString authenticationUser READ authenticationUser NOTIFY authenticationUserChanged)
39+ Q_PROPERTY(QString defaultSession READ defaultSessionHint CONSTANT)
40 Q_PROPERTY(bool promptless READ promptless NOTIFY promptlessChanged)
40 Q_PROPERTY(bool promptless READ promptless NOTIFY promptlessChanged)
41+ Q_PROPERTY(QString selectUser READ selectUser CONSTANT)
41
42
42public:
43public:
43 explicit Greeter(QObject* parent=0);
44 explicit Greeter(QObject* parent=0);
@@ -45,7 +46,9 @@ public:
45 bool isActive() const;
46 bool isActive() const;
46 bool isAuthenticated() const;
47 bool isAuthenticated() const;
47 QString authenticationUser() const;
48 QString authenticationUser() const;
49+ QString defaultSessionHint() const;
48 bool promptless() const;
50 bool promptless() const;
51+ QString selectUser() const;
49
52
50public Q_SLOTS:
53public Q_SLOTS:
51 void authenticate(const QString &username=QString());
54 void authenticate(const QString &username=QString());
plugins/IntegratedLightDM/GreeterPrivate.h → plugins/LightDM/GreeterPrivate.hrenamed

The content is the same.

plugins/IntegratedLightDM/IntegratedLightDM.qmltypes → plugins/LightDM/IntegratedLightDM.qmltypesrenamed

The content is the same.

plugins/LightDM/IntegratedLightDM/CMakeLists.txtnew file+33
@@ -0,0 +1,33 @@
1+set(PLUGIN_CLASSNAME "IntegratedLightDM")
2+
3+add_definitions(-DINTEGRATED_LIGHTDM)
4+
5+foreach(include_directory ${QMLPLUGIN_INCLUDES})
6+ list(APPEND RELATIVE_QMLPLUGIN_INCLUDES ../${include_directory})
7+endforeach()
8+
9+include_directories(
10+ . #QLightDM
11+ ${QMLPLUGIN_INCLUDES}
12+ ${libunity8-private_SOURCE_DIR}
13+ ${CMAKE_CURRENT_BINARY_DIR}
14+)
15+
16+foreach(source_file ${QMLPLUGIN_SRC})
17+ list(APPEND RELATIVE_QMLPLUGIN_SRC ../${source_file})
18+endforeach()
19+
20+add_library(IntegratedLightDM-qml MODULE
21+ ${RELATIVE_QMLPLUGIN_SRC}
22+ )
23+
24+target_link_libraries(IntegratedLightDM-qml
25+ integratedLightDM
26+ unity8-private
27+ ${LIBUSERMETRICSOUTPUT_LDFLAGS}
28+ )
29+
30+qt5_use_modules(IntegratedLightDM-qml DBus Gui Qml)
31+add_unity8_plugin(IntegratedLightDM 0.1 LightDM/IntegratedLightDM TARGETS IntegratedLightDM-qml)
32+
33+add_subdirectory(liblightdm)
plugins/LightDM/IntegratedLightDM/QLightDM/Greeternew file+17
@@ -0,0 +1,17 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "../liblightdm/Greeter.h"
plugins/LightDM/IntegratedLightDM/QLightDM/SessionsModelnew file+17
@@ -0,0 +1,17 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "../liblightdm/SessionsModel.h"
plugins/LightDM/IntegratedLightDM/QLightDM/UsersModelnew file+17
@@ -0,0 +1,17 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "../liblightdm/UsersModel.h"
plugins/IntegratedLightDM/liblightdm/CMakeLists.txt → plugins/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txtrenamed+4−2
@@ -2,8 +2,10 @@ pkg_check_modules(LIBUSERMETRICSOUTPUT REQUIRED libusermetricsoutput-1)
2
2
3set(LibLightDM_SOURCES
3set(LibLightDM_SOURCES
4 Greeter.cpp
4 Greeter.cpp
5+ SessionsModel.cpp
5 UsersModel.cpp
6 UsersModel.cpp
6 GreeterPrivate.cpp
7 GreeterPrivate.cpp
8+ SessionsModelPrivate.cpp
7 UsersModelPrivate.cpp
9 UsersModelPrivate.cpp
8 ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
10 ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
9 ${CMAKE_SOURCE_DIR}/plugins/Utils/qvariantlistmodel.cpp
11 ${CMAKE_SOURCE_DIR}/plugins/Utils/qvariantlistmodel.cpp
@@ -46,8 +48,8 @@ set_target_properties(integratedLightDMSession PROPERTIES
46 COMPILE_FLAGS "-DSM_BUSNAME=sessionBus -fPIC")
48 COMPILE_FLAGS "-DSM_BUSNAME=sessionBus -fPIC")
47set_target_properties(MockLightDM-demo-shared PROPERTIES
49set_target_properties(MockLightDM-demo-shared PROPERTIES
48 COMPILE_FLAGS "-DSM_BUSNAME=systemBus"
50 COMPILE_FLAGS "-DSM_BUSNAME=systemBus"
49− OUTPUT_NAME lightdm-qt5-2)
51+ OUTPUT_NAME lightdm-qt5-3)
50
52
51install(TARGETS MockLightDM-demo-shared
53install(TARGETS MockLightDM-demo-shared
52− DESTINATION ${SHELL_INSTALL_QML}/mocks/IntegratedLightDM/demo
54+ DESTINATION ${SHELL_INSTALL_QML}/mocks/LightDM/IntegratedLightDM/demo
53 )
55 )
plugins/IntegratedLightDM/liblightdm/Greeter.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/Greeter.cpprenamed

The content is the same.

plugins/IntegratedLightDM/liblightdm/Greeter.h → plugins/LightDM/IntegratedLightDM/liblightdm/Greeter.hrenamed

The content is the same.

plugins/IntegratedLightDM/liblightdm/GreeterPrivate.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpprenamed+1−2
@@ -50,8 +50,7 @@ public:
50 {
50 {
51 qRegisterMetaType<QLightDM::GreeterImpl::ResponseFuture>("QLightDM::GreeterImpl::ResponseFuture");
51 qRegisterMetaType<QLightDM::GreeterImpl::ResponseFuture>("QLightDM::GreeterImpl::ResponseFuture");
52
52
53− connect(&futureWatcher, &QFutureWatcher<int>::finished,
53+ connect(&futureWatcher, &QFutureWatcher<int>::finished, this, &GreeterImpl::finishPam);
54− this, &GreeterImpl::finishPam);
55 connect(this, SIGNAL(showMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)),
54 connect(this, SIGNAL(showMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)),
56 this, SLOT(handleMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)));
55 this, SLOT(handleMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)));
57 // This next connect is how we pass ResponseFutures between threads
56 // This next connect is how we pass ResponseFutures between threads
plugins/IntegratedLightDM/liblightdm/GreeterPrivate.h → plugins/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.hrenamed

The content is the same.

plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cppnew file+88
@@ -0,0 +1,88 @@
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+
19+/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
20+ * CHANGES MADE HERE MUST BE REFLECTED ON THE MOCK LIB
21+ * COUNTERPART IN tests/mocks/LightDM/IntegratedLightDM/liblightdm
22+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
23+
24+// LightDM currently is Qt4 compatible, and so doesn't define setRoleNames.
25+// To use the same method of setting role name that it does, we
26+// set our compatibility to Qt4 here too.
27+#define QT_DISABLE_DEPRECATED_BEFORE QT_VERSION_CHECK(4, 0, 0)
28+
29+#include "SessionsModel.h"
30+#include "SessionsModelPrivate.h"
31+#include <QtCore/QDir>
32+#include <QtCore/QString>
33+
34+namespace QLightDM
35+{
36+
37+SessionsModel::SessionsModel(QObject* parent) :
38+ QAbstractListModel(parent),
39+ d_ptr(new SessionsModelPrivate(this))
40+{
41+ Q_D(SessionsModel);
42+ m_roleNames = QAbstractListModel::roleNames();
43+ m_roleNames[KeyRole] = "key";
44+ m_roleNames[TypeRole] = "type";
45+}
46+
47+SessionsModel::~SessionsModel()
48+{
49+ delete d_ptr;
50+}
51+
52+QVariant SessionsModel::data(const QModelIndex& index, int role) const
53+{
54+ Q_D(const SessionsModel);
55+
56+ if(!index.isValid()) {
57+ return QVariant();
58+ }
59+
60+ int row = index.row();
61+
62+ switch (role) {
63+ case QLightDM::SessionsModel::KeyRole:
64+ return d->sessionItems[row].key;
65+ case Qt::DisplayRole:
66+ return d->sessionItems[row].name;
67+ default:
68+ return QVariant();
69+ }
70+}
71+
72+QHash<int, QByteArray> SessionsModel::roleNames() const
73+{
74+ return m_roleNames;
75+}
76+
77+int SessionsModel::rowCount(const QModelIndex& parent) const
78+{
79+ Q_D(const SessionsModel);
80+
81+ if (parent.isValid()) {
82+ return 0;
83+ } else { // parent is root
84+ return d->sessionItems.size();
85+ }
86+}
87+
88+} // namespace QLightDM
plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.hnew file+72
@@ -0,0 +1,72 @@
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 UNITY_INTEGRATED_SESSIONSMODEL_H
19+#define UNITY_INTEGRATED_SESSIONSMODEL_H
20+
21+#include <QtCore/QAbstractListModel>
22+#include <QtCore/QString>
23+
24+/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25+ * CHANGES MADE HERE MUST BE REFLECTED ON THE MOCK LIB
26+ * COUNTERPART IN tests/mocks/LightDM/IntegratedLightDM/liblightdm
27+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
28+
29+// This is taken from liblightdm and modified to confirm to our syle conventions
30+namespace QLightDM
31+{
32+class SessionsModelPrivate;
33+
34+class Q_DECL_EXPORT SessionsModel : public QAbstractListModel
35+ {
36+ Q_OBJECT
37+
38+ Q_ENUMS(SessionModelRoles SessionType)
39+
40+ public:
41+
42+ enum SessionModelRoles {
43+ //name is exposed as Qt::DisplayRole
44+ //comment is exposed as Qt::TooltipRole
45+ KeyRole = Qt::UserRole,
46+ IdRole = KeyRole, /** Deprecated */
47+ TypeRole
48+ };
49+
50+ enum SessionType {
51+ LocalSessions,
52+ RemoteSessions
53+ };
54+
55+ explicit SessionsModel(QObject* parent=0); /** Deprecated. Loads local sessions*/
56+ explicit SessionsModel(SessionsModel::SessionType, QObject* parent=0);
57+ virtual ~SessionsModel();
58+
59+ QHash<int, QByteArray> roleNames() const override;
60+ int rowCount(const QModelIndex& parent) const override;
61+ QVariant data(const QModelIndex& index, int role) const override;
62+
63+ protected:
64+ SessionsModelPrivate* const d_ptr;
65+
66+ private:
67+ QHash<int, QByteArray> m_roleNames;
68+ Q_DECLARE_PRIVATE(SessionsModel)
69+ };
70+}
71+
72+#endif // UNITY_INTEGRATED_SESSIONSMODEL_H
plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cppnew file+36
@@ -0,0 +1,36 @@
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 "SessionsModelPrivate.h"
19+
20+#include <QDir>
21+#include <QSettings>
22+#include <QStringList>
23+
24+namespace QLightDM
25+{
26+
27+SessionsModelPrivate::SessionsModelPrivate(SessionsModel* parent)
28+ : q_ptr(parent)
29+{
30+ // Since this model is never visible, as there is only 1 session,
31+ // just use the session name as the key
32+ QString sessionName = qgetenv("XDG_SESSION_DESKTOP");
33+ sessionItems.append({sessionName, "", sessionName, ""});
34+}
35+
36+} // namespace QLightDM
plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.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 UNITY_INTEGRATED_SESSIONSMODEL_PRIVATE_H
19+#define UNITY_INTEGRATED_SESSIONSMODEL_PRIVATE_H
20+
21+#include <QtCore/QList>
22+#include <QtCore/QString>
23+
24+namespace QLightDM
25+{
26+class SessionsModel;
27+
28+class SessionItem
29+{
30+public:
31+ QString key;
32+ QString type; // unused
33+ QString name;
34+ QString comment; // unused
35+};
36+
37+class SessionsModelPrivate
38+{
39+public:
40+ explicit SessionsModelPrivate(SessionsModel* parent=0);
41+ virtual ~SessionsModelPrivate() = default;
42+
43+ QList<SessionItem> sessionItems;
44+
45+protected:
46+ SessionsModel* const q_ptr;
47+
48+private:
49+ Q_DECLARE_PUBLIC(SessionsModel)
50+};
51+
52+} // namespace QLightDM
53+
54+#endif // UNITY_INTEGRATED_SESSIONSMODEL_PRIVATE_H
plugins/IntegratedLightDM/liblightdm/UsersModel.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModel.cpprenamed+4−3
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -40,8 +40,6 @@ UsersModel::UsersModel(QObject *parent) :
40 QAbstractListModel(parent),
40 QAbstractListModel(parent),
41 d_ptr(new UsersModelPrivate(this))
41 d_ptr(new UsersModelPrivate(this))
42{
42{
43− Q_D(UsersModel);
44−
45 // Extend roleNames (we want to keep the "display" role)
43 // Extend roleNames (we want to keep the "display" role)
46 QHash<int, QByteArray> roles = roleNames();
44 QHash<int, QByteArray> roles = roleNames();
47 roles[NameRole] = "name";
45 roles[NameRole] = "name";
@@ -52,6 +50,7 @@ UsersModel::UsersModel(QObject *parent) :
52 roles[SessionRole] = "session";
50 roles[SessionRole] = "session";
53 roles[HasMessagesRole] = "hasMessages";
51 roles[HasMessagesRole] = "hasMessages";
54 roles[ImagePathRole] = "imagePath";
52 roles[ImagePathRole] = "imagePath";
53+ roles[UidRole] = "uid";
55 setRoleNames(roles);
54 setRoleNames(roles);
56
55
57 connect(d_ptr, &UsersModelPrivate::dataChanged, this, [this](int i) {
56 connect(d_ptr, &UsersModelPrivate::dataChanged, this, [this](int i) {
@@ -101,6 +100,8 @@ QVariant UsersModel::data(const QModelIndex &index, int role) const
101 return d->entries[row].has_messages;
100 return d->entries[row].has_messages;
102 case UsersModel::ImagePathRole:
101 case UsersModel::ImagePathRole:
103 return "";
102 return "";
103+ case UsersModel::UidRole:
104+ return d->entries[row].uid;
104 default:
105 default:
105 return QVariant();
106 return QVariant();
106 }
107 }
plugins/IntegratedLightDM/liblightdm/UsersModel.h → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModel.hrenamed+2−1
@@ -50,7 +50,8 @@ public:
50 SessionRole,
50 SessionRole,
51 HasMessagesRole,
51 HasMessagesRole,
52 ImagePathRole,
52 ImagePathRole,
53− BackgroundPathRole
53+ BackgroundPathRole,
54+ UidRole
54 };
55 };
55
56
56 int rowCount(const QModelIndex &parent) const override;
57 int rowCount(const QModelIndex &parent) const override;
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpprenamed+5−3
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -26,6 +26,7 @@
26#include <QDir>
26#include <QDir>
27#include <QSettings>
27#include <QSettings>
28#include <QStringList>
28#include <QStringList>
29+#include <unistd.h>
29
30
30namespace QLightDM
31namespace QLightDM
31{
32{
@@ -37,6 +38,7 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
37{
38{
38 QFileInfo demoFile(QDir::homePath() + "/.unity8-greeter-demo");
39 QFileInfo demoFile(QDir::homePath() + "/.unity8-greeter-demo");
39 QString currentUser = g_get_user_name();
40 QString currentUser = g_get_user_name();
41+ uid_t currentUid = getuid();
40
42
41 if (demoFile.exists()) {
43 if (demoFile.exists()) {
42 QSettings settings(demoFile.filePath(), QSettings::NativeFormat);
44 QSettings settings(demoFile.filePath(), QSettings::NativeFormat);
@@ -46,10 +48,10 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
46 Q_FOREACH(const QString &user, users)
48 Q_FOREACH(const QString &user, users)
47 {
49 {
48 QString name = settings.value(user + "/name", user).toString();
50 QString name = settings.value(user + "/name", user).toString();
49− entries.append({user, name, 0, 0, false, false, 0, 0});
51+ entries.append({user, name, 0, 0, false, false, 0, 0, currentUid++});
50 }
52 }
51 } else {
53 } else {
52− entries.append({currentUser, 0, 0, 0, false, false, 0, 0});
54+ entries.append({currentUser, 0, 0, 0, false, false, 0, 0, currentUid});
53
55
54 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged,
56 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged,
55 this, [this](const QString &user) {
57 this, [this](const QString &user) {
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.h → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.hrenamed+2−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -40,6 +40,7 @@ public:
40 bool has_messages;
40 bool has_messages;
41 QString session;
41 QString session;
42 QString infographic;
42 QString infographic;
43+ uid_t uid;
43};
44};
44
45
45class UsersModelPrivate : public QObject
46class UsersModelPrivate : public QObject
plugins/LightDM/IntegratedLightDM/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module LightDM.IntegratedLightDM
2+plugin IntegratedLightDM-qml
3+typeinfo IntegratedLightDM.qmltypes
plugins/LightDM/SessionsModel.cppnew file+122
@@ -0,0 +1,122 @@
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 "SessionsModel.h"
19+#include <QtCore/QFile>
20+#include <QtCore/QSortFilterProxyModel>
21+
22+QHash<int, QByteArray> SessionsModel::roleNames() const
23+{
24+ return m_roleNames;
25+}
26+
27+int SessionsModel::rowCount(const QModelIndex& parent) const
28+{
29+ return m_model->rowCount(parent);
30+}
31+
32+QList<QUrl> SessionsModel::iconSearchDirectories() const
33+{
34+ return m_iconSearchDirectories;
35+}
36+
37+void SessionsModel::setIconSearchDirectories(const QList<QUrl> searchDirectories)
38+{
39+ // QML gives us a url with file:// prepended which breaks QFile::exists()
40+ // so convert the url to a local file
41+ QList<QUrl> localList = {};
42+ Q_FOREACH(const QUrl& searchDirectory, searchDirectories)
43+ {
44+ localList.append(searchDirectory.toLocalFile());
45+ }
46+ m_iconSearchDirectories = localList;
47+ Q_EMIT iconSearchDirectoriesChanged();
48+}
49+
50+QUrl SessionsModel::iconUrl(const QString sessionName) const
51+{
52+ Q_FOREACH(const QUrl& searchDirectory, m_iconSearchDirectories)
53+ {
54+ // This is an established icon naming convention
55+ QString customIconUrl = searchDirectory.toString(QUrl::StripTrailingSlash) +
56+ "/custom_" + sessionName + "_badge.png";
57+ QString iconUrl = searchDirectory.toString(QUrl::StripTrailingSlash) +
58+ "/" + sessionName + "_badge.png";
59+
60+ QFile customIconFile(customIconUrl);
61+ QFile iconFile(iconUrl);
62+ if (customIconFile.exists()) {
63+ return QUrl(customIconUrl);
64+ } else if (iconFile.exists()) {
65+ return QUrl(iconUrl);
66+ } else{
67+ // Search the legacy way
68+ QString path = searchDirectory.toString(QUrl::StripTrailingSlash) + "/";
69+ if (sessionName == "ubuntu" || sessionName == "ubuntu-2d") {
70+ path += "ubuntu_badge.png";
71+ } else if(
72+ sessionName == "gnome-classic" ||
73+ sessionName == "gnome-flashback-compiz" ||
74+ sessionName == "gnome-flashback-metacity" ||
75+ sessionName == "gnome-shell" ||
76+ sessionName == "gnome-wayland" ||
77+ sessionName == "gnome"
78+ ){
79+ path += "gnome_badge.png";
80+ } else if (sessionName == "plasma") {
81+ path += "kde_badge.png";
82+ } else if (sessionName == "xterm") {
83+ path += "recovery_console_badge.png";
84+ } else if (sessionName == "remote-login") {
85+ path += "remote_login_help.png";
86+ }
87+
88+ if (QFile(path).exists()) {
89+ return path;
90+ }
91+ }
92+ }
93+
94+ // FIXME make this smarter
95+ return QUrl("./graphics/session_icons/unknown_badge.png");
96+}
97+
98+QVariant SessionsModel::data(const QModelIndex& index, int role) const
99+{
100+ switch (role) {
101+ case SessionsModel::IconRole:
102+ return iconUrl(m_model->data(index, Qt::DisplayRole).toString());
103+ default:
104+ return m_model->data(index, role);
105+ }
106+}
107+
108+SessionsModel::SessionsModel(QObject* parent)
109+ : UnitySortFilterProxyModelQML(parent)
110+{
111+ // Add a custom IconRole that isn't in either of the lightdm implementations
112+ m_model = new QLightDM::SessionsModel(this);
113+ m_roleNames = m_model->roleNames();
114+ m_roleNames[IconRole] = "icon_url";
115+
116+ setModel(m_model);
117+ setSourceModel(m_model);
118+ setSortCaseSensitivity(Qt::CaseInsensitive);
119+ setSortLocaleAware(true);
120+ setSortRole(Qt::DisplayRole);
121+ sort(0);
122+}
plugins/LightDM/SessionsModel.hnew file+68
@@ -0,0 +1,68 @@
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 UNITY_SESSIONSMODEL_H
19+#define UNITY_SESSIONSMODEL_H
20+
21+#include <unitysortfilterproxymodelqml.h>
22+#include <QLightDM/SessionsModel>
23+#include <QtCore/QHash>
24+#include <QtCore/QObject>
25+#include <QtCore/QUrl>
26+
27+class SessionsModel : public UnitySortFilterProxyModelQML
28+{
29+ Q_OBJECT
30+
31+ Q_ENUMS(SessionModelRoles)
32+
33+ Q_PROPERTY(QList<QUrl> iconSearchDirectories READ iconSearchDirectories
34+ WRITE setIconSearchDirectories NOTIFY iconSearchDirectoriesChanged)
35+Q_SIGNALS:
36+ void iconSearchDirectoriesChanged();
37+
38+public:
39+ enum SessionModelRoles {
40+ /* This is tricky / ugly. Since we are ultimately chaining 3 enums together,
41+ * the _first_ value of this enum MUST be the _last_ value of
42+ * QLightDM::SessionsModel::SessionModelRoles and consquently, this must
43+ * also match the last value in the corresponding enum of the integrated lib
44+ */
45+ TypeRole = QLightDM::SessionsModel::SessionModelRoles::TypeRole,
46+ IconRole
47+ };
48+
49+ explicit SessionsModel(QObject* parent=nullptr);
50+
51+ QHash<int, QByteArray> roleNames() const override;
52+ int rowCount(const QModelIndex& parent) const override;
53+ QVariant data(const QModelIndex& index, int role) const override;
54+ QList<QUrl> iconSearchDirectories() const;
55+ Q_INVOKABLE QUrl iconUrl(const QString sessionName) const;
56+
57+ void setIconSearchDirectories(const QList<QUrl> searchDirectories);
58+private:
59+ QLightDM::SessionsModel* m_model;
60+ QHash<int, QByteArray> m_roleNames;
61+ QList<QUrl> m_iconSearchDirectories{
62+ QUrl("/usr/share/unity8/Greeter/graphics/session_icons"),
63+ QUrl("/usr/local/share/unity-greeter"),
64+ QUrl("/usr/share/unity-greeter/")};
65+
66+};
67+
68+#endif // UNITY_SESSIONSMODEL_H
plugins/IntegratedLightDM/UsersModel.cpp → plugins/LightDM/UsersModel.cpprenamed

The content is the same.

plugins/IntegratedLightDM/UsersModel.h → plugins/LightDM/UsersModel.hrenamed

The content is the same.

plugins/IntegratedLightDM/plugin.cpp → plugins/LightDM/plugin.cpprenamed+26−4
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2012,2013, 2015 Canonical, Ltd.
2+ * Copyright (C) 2012,2013,2015 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -19,9 +19,11 @@
19#include "DBusGreeter.h"
19#include "DBusGreeter.h"
20#include "DBusGreeterList.h"
20#include "DBusGreeterList.h"
21#include "Greeter.h"
21#include "Greeter.h"
22+#include "SessionsModel.h"
22#include "UsersModel.h"
23#include "UsersModel.h"
23#include <libusermetricsoutput/ColorTheme.h>
24#include <libusermetricsoutput/ColorTheme.h>
24#include <libusermetricsoutput/UserMetrics.h>
25#include <libusermetricsoutput/UserMetrics.h>
26+#include <QLightDM/SessionsModel>
25#include <QLightDM/UsersModel>
27#include <QLightDM/UsersModel>
26
28
27#include <QAbstractItemModel>
29#include <QAbstractItemModel>
@@ -40,6 +42,13 @@ static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
40 return greeter;
42 return greeter;
41}
43}
42
44
45+static QObject *sessions_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
46+{
47+ Q_UNUSED(engine)
48+ Q_UNUSED(scriptEngine)
49+ return new SessionsModel();
50+}
51+
43static QObject *users_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
52static QObject *users_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
44{
53{
45 Q_UNUSED(engine)
54 Q_UNUSED(engine)
@@ -54,16 +63,29 @@ static QObject *infographic_provider(QQmlEngine *engine, QJSEngine *scriptEngine
54 return UserMetricsOutput::UserMetrics::getInstance();
63 return UserMetricsOutput::UserMetrics::getInstance();
55}
64}
56
65
57−void IntegratedLightDMPlugin::registerTypes(const char *uri)
66+void PLUGIN_CLASSNAME::registerTypes(const char *uri)
58{
67{
59 qmlRegisterType<QAbstractItemModel>();
68 qmlRegisterType<QAbstractItemModel>();
60 qmlRegisterType<UserMetricsOutput::ColorTheme>();
69 qmlRegisterType<UserMetricsOutput::ColorTheme>();
61
70
71+#if defined INTEGRATED_LIGHTDM
62− Q_ASSERT(uri == QLatin1String("IntegratedLightDM"));
72+ Q_ASSERT(uri == QLatin1String("LightDM.IntegratedLightDM"));
73+ qmlRegisterSingletonType<Greeter>(uri, 0, 1, "Greeter", greeter_provider);
74+#elif defined FULL_LIGHTDM
75+ Q_ASSERT(uri == QLatin1String("LightDM.FullLightDM"));
76+ qmlRegisterSingletonType<QLightDM::Greeter>(uri, 0, 1, "Greeter", greeter_provider);
77+#else
78+ #error No library defined in LightDM plugin
79+#endif
80+
63 qRegisterMetaType<QLightDM::Greeter::MessageType>("QLightDM::Greeter::MessageType");
81 qRegisterMetaType<QLightDM::Greeter::MessageType>("QLightDM::Greeter::MessageType");
64 qRegisterMetaType<QLightDM::Greeter::PromptType>("QLightDM::Greeter::PromptType");
82 qRegisterMetaType<QLightDM::Greeter::PromptType>("QLightDM::Greeter::PromptType");
65− qmlRegisterSingletonType<Greeter>(uri, 0, 1, "Greeter", greeter_provider);
83+
84+ qmlRegisterSingletonType<SessionsModel>(uri, 0, 1, "Sessions", sessions_provider);
85+ qmlRegisterUncreatableType<SessionsModel>(uri, 0, 1, "SessionRoles", QStringLiteral("Type is not instantiable"));
86+
66 qmlRegisterSingletonType<UsersModel>(uri, 0, 1, "Users", users_provider);
87 qmlRegisterSingletonType<UsersModel>(uri, 0, 1, "Users", users_provider);
67 qmlRegisterUncreatableType<QLightDM::UsersModel>(uri, 0, 1, "UserRoles", QStringLiteral("Type is not instantiable"));
88 qmlRegisterUncreatableType<QLightDM::UsersModel>(uri, 0, 1, "UserRoles", QStringLiteral("Type is not instantiable"));
89+
68 qmlRegisterSingletonType<UserMetricsOutput::UserMetrics>(uri, 0, 1, "Infographic", infographic_provider);
90 qmlRegisterSingletonType<UserMetricsOutput::UserMetrics>(uri, 0, 1, "Infographic", infographic_provider);
69}
91}
plugins/IntegratedLightDM/plugin.h → plugins/LightDM/plugin.hrenamed+5−5
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2012,2013, 2015 Canonical, Ltd.
2+ * Copyright (C) 2012,2013,2015 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -15,13 +15,13 @@
15 *
15 *
16 */
16 */
17
17
18−#ifndef INTEGRATED_LIGHTDM_PLUGIN_H
18+#ifndef LIGHTDM_PLUGIN_H
19−#define INTEGRATED_LIGHTDM_PLUGIN_H
19+#define LIGHTDM_PLUGIN_H
20
20
21#include <QtQml/QQmlEngine>
21#include <QtQml/QQmlEngine>
22#include <QtQml/QQmlExtensionPlugin>
22#include <QtQml/QQmlExtensionPlugin>
23
23
24−class IntegratedLightDMPlugin : public QQmlExtensionPlugin
24+class PLUGIN_CLASSNAME : public QQmlExtensionPlugin
25{
25{
26 Q_OBJECT
26 Q_OBJECT
27 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
27 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
@@ -30,4 +30,4 @@ public:
30 void registerTypes(const char *uri) override;
30 void registerTypes(const char *uri) override;
31};
31};
32
32
33−#endif /* INTEGRATED_LIGHTDM_PLUGIN_H */
33+#endif /* LIGHTDM_PLUGIN_H */
plugins/IntegratedLightDM/qmldir → plugins/LightDM/qmldirrenamed

The content is the same.

plugins/Lights/CMakeLists.txt+1
@@ -2,6 +2,7 @@ pkg_check_modules(ANDROID_HEADERS REQUIRED android-headers)
2pkg_check_modules(ANDROID_HARDWARE REQUIRED libhardware)
2pkg_check_modules(ANDROID_HARDWARE REQUIRED libhardware)
3
3
4include_directories(
4include_directories(
5+ SYSTEM
5 ${ANDROID_HEADERS_INCLUDE_DIRS}
6 ${ANDROID_HEADERS_INCLUDE_DIRS}
6)
7)
7
8
plugins/Lights/Lights.qmltypesdeleted−45
@@ -1,45 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Lights 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "Lights"
12− prototype: "QObject"
13− exports: ["Lights/Lights 0.1"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Enum {
18− name: "State"
19− values: {
20− "Off": 0,
21− "On": 1
22− }
23− }
24− Property { name: "state"; type: "State" }
25− Property { name: "color"; type: "QColor" }
26− Property { name: "onMillisec"; type: "int" }
27− Property { name: "offMillisec"; type: "int" }
28− Signal {
29− name: "stateChanged"
30− Parameter { name: "newState"; type: "State" }
31− }
32− Signal {
33− name: "colorChanged"
34− Parameter { name: "color"; type: "QColor" }
35− }
36− Signal {
37− name: "onMillisecChanged"
38− Parameter { name: "onMs"; type: "int" }
39− }
40− Signal {
41− name: "offMillisecChanged"
42− Parameter { name: "offMs"; type: "int" }
43− }
44− }
45−}
plugins/Lights/android-hardware.h−4
@@ -15,9 +15,5 @@
15 *
15 *
16 */
16 */
17
17
18−// The purpose of this header wrapper is just to avoid having warnings being reported on
19−// code from external header files, as we can't do anything about them.
20−#pragma GCC system_header
21−
22#include <hardware/hardware.h>
18#include <hardware/hardware.h>
23#include <hardware/lights.h>
19#include <hardware/lights.h>
plugins/Powerd/Powerd.qmltypesdeleted−39
@@ -1,39 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Powerd 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "Powerd"
12− prototype: "QObject"
13− exports: ["Powerd/Powerd 0.1"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Enum {
18− name: "DisplayStateChangeReason"
19− values: {
20− "Unknown": 0,
21− "Inactivity": 1,
22− "PowerKey": 2,
23− "Proximity": 3
24− }
25− }
26− Enum {
27− name: "Status"
28− values: {
29− "Off": 0,
30− "On": 1
31− }
32− }
33− Property { name: "status"; type: "Status"; isReadonly: true }
34− Signal {
35− name: "statusChanged"
36− Parameter { name: "reason"; type: "DisplayStateChangeReason" }
37− }
38− }
39−}
plugins/SessionBroadcast/SessionBroadcast.qmltypesdeleted−19
@@ -1,19 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable SessionBroadcast 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "SessionBroadcast"
12− prototype: "QObject"
13− exports: ["SessionBroadcast/SessionBroadcast 0.1"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Signal { name: "showHome" }
18− }
19−}
plugins/UInput/UInput.qmltypesdeleted−44
@@ -1,44 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable UInput 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "UInput"
12− prototype: "QObject"
13− exports: ["UInput/UInput 0.1"]
14− exportMetaObjectRevisions: [0]
15− Enum {
16− name: "Button"
17− values: {
18− "ButtonLeft": 0,
19− "ButtonRight": 1,
20− "ButtonMiddle": 2
21− }
22− }
23− Method { name: "createMouse" }
24− Method { name: "removeMouse" }
25− Method {
26− name: "moveMouse"
27− Parameter { name: "dx"; type: "int" }
28− Parameter { name: "dy"; type: "int" }
29− }
30− Method {
31− name: "pressMouse"
32− Parameter { name: "button"; type: "Button" }
33− }
34− Method {
35− name: "releaseMouse"
36− Parameter { name: "button"; type: "Button" }
37− }
38− Method {
39− name: "scrollMouse"
40− Parameter { name: "dh"; type: "int" }
41− Parameter { name: "dv"; type: "int" }
42− }
43− }
44−}
plugins/Ubuntu/DownloadDaemonListener/CMakeLists.txt−1
@@ -1,7 +1,6 @@
1include_directories(
1include_directories(
2 ${CMAKE_CURRENT_SOURCE_DIR}
2 ${CMAKE_CURRENT_SOURCE_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
4− ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
5)
4)
6
5
7set(DOWNLOADDAEMONLISTENER_SOURCES
6set(DOWNLOADDAEMONLISTENER_SOURCES
plugins/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypesdeleted−60
@@ -1,60 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Ubuntu.DownloadDaemonListener 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "DownloadTracker"
12− prototype: "QObject"
13− exports: ["Ubuntu.DownloadDaemonListener/DownloadTracker 0.1"]
14− exportMetaObjectRevisions: [0]
15− Property { name: "service"; type: "string" }
16− Property { name: "dbusPath"; type: "string" }
17− Property { name: "serviceReady"; type: "bool"; isReadonly: true }
18− Signal {
19− name: "serviceChanged"
20− Parameter { name: "service"; type: "string" }
21− }
22− Signal {
23− name: "dbusPathChanged"
24− Parameter { name: "dbusPath"; type: "string" }
25− }
26− Signal {
27− name: "serviceReadyChanged"
28− Parameter { name: "serviceReady"; type: "bool" }
29− }
30− Signal {
31− name: "canceled"
32− Parameter { name: "success"; type: "bool" }
33− }
34− Signal {
35− name: "error"
36− Parameter { name: "error"; type: "string" }
37− }
38− Signal {
39− name: "finished"
40− Parameter { name: "path"; type: "string" }
41− }
42− Signal {
43− name: "paused"
44− Parameter { name: "success"; type: "bool" }
45− }
46− Signal {
47− name: "progress"
48− Parameter { name: "received"; type: "qulonglong" }
49− Parameter { name: "total"; type: "qulonglong" }
50− }
51− Signal {
52− name: "resumed"
53− Parameter { name: "success"; type: "bool" }
54− }
55− Signal {
56− name: "started"
57− Parameter { name: "success"; type: "bool" }
58− }
59− }
60−}
plugins/Ubuntu/Gestures/AxisVelocityCalculator.cpp+1−1
@@ -21,7 +21,7 @@
21#include "AxisVelocityCalculator.h"
21#include "AxisVelocityCalculator.h"
22#include <QtCore/QElapsedTimer>
22#include <QtCore/QElapsedTimer>
23
23
24−using namespace UbuntuGestures;
24+UG_USE_NAMESPACE
25
25
26AxisVelocityCalculator::AxisVelocityCalculator(QObject *parent)
26AxisVelocityCalculator::AxisVelocityCalculator(QObject *parent)
27 : AxisVelocityCalculator(SharedTimeSource(new RealTimeSource), parent)
27 : AxisVelocityCalculator(SharedTimeSource(new RealTimeSource), parent)
plugins/Ubuntu/Gestures/AxisVelocityCalculator.h+4−4
@@ -24,7 +24,7 @@
24#include "UbuntuGesturesQmlGlobal.h"
24#include "UbuntuGesturesQmlGlobal.h"
25#include <stdint.h>
25#include <stdint.h>
26#include <QtCore/QObject>
26#include <QtCore/QObject>
27−#include <TimeSource>
27+#include <UbuntuGestures/private/timesource_p.h>
28
28
29/*
29/*
30 Estimates the current velocity of a finger based on recent movement along an axis
30 Estimates the current velocity of a finger based on recent movement along an axis
@@ -68,7 +68,7 @@ public:
68 /*
68 /*
69 Constructor that takes a TimeSource
69 Constructor that takes a TimeSource
70 */
70 */
71− AxisVelocityCalculator(const UbuntuGestures::SharedTimeSource &timeSource, QObject *parent = 0);
71+ AxisVelocityCalculator(const UG_PREPEND_NAMESPACE(SharedTimeSource) &timeSource, QObject *parent = 0);
72
72
73 virtual ~AxisVelocityCalculator();
73 virtual ~AxisVelocityCalculator();
74
74
@@ -90,7 +90,7 @@ public:
90 /*
90 /*
91 Replaces the TimeSource with the given one. Useful for testing purposes.
91 Replaces the TimeSource with the given one. Useful for testing purposes.
92 */
92 */
93− void setTimeSource(const UbuntuGestures::SharedTimeSource &timeSource);
93+ void setTimeSource(const UG_PREPEND_NAMESPACE(SharedTimeSource) &timeSource);
94
94
95 /*
95 /*
96 The minimum amount of samples needed for a velocity calculation.
96 The minimum amount of samples needed for a velocity calculation.
@@ -138,7 +138,7 @@ private:
138 int m_samplesRead; /* index of the oldest sample available. -1 if buffer is empty */
138 int m_samplesRead; /* index of the oldest sample available. -1 if buffer is empty */
139 int m_samplesWrite; /* index where the next sample will be written */
139 int m_samplesWrite; /* index where the next sample will be written */
140
140
141− UbuntuGestures::SharedTimeSource m_timeSource;
141+ UG_PREPEND_NAMESPACE(SharedTimeSource) m_timeSource;
142
142
143 qreal m_trackedPosition;
143 qreal m_trackedPosition;
144};
144};
plugins/Ubuntu/Gestures/CMakeLists.txt+6−1
@@ -24,7 +24,11 @@ qt5_use_modules(UbuntuGesturesQml Core Quick)
24# So that Foo.cpp can #include "Foo.moc"
24# So that Foo.cpp can #include "Foo.moc"
25include_directories(${CMAKE_CURRENT_BINARY_DIR})
25include_directories(${CMAKE_CURRENT_BINARY_DIR})
26
26
27+include_directories(
28+ SYSTEM
27−include_directories(${UBUNTUGESTURES_INCLUDE_DIRS})
29+ ${UBUNTUGESTURES_INCLUDE_DIRS}
30+ ${UBUNTUGESTURES_INCLUDEDIR}/UbuntuGestures/${UBUNTUGESTURES_VERSION}
31+)
28
32
29# There's no cmake var for v8 include path :-/ so create one
33# There's no cmake var for v8 include path :-/ so create one
30LIST(GET Qt5Core_INCLUDE_DIRS 0 QtCoreDir0)
34LIST(GET Qt5Core_INCLUDE_DIRS 0 QtCoreDir0)
@@ -32,6 +36,7 @@ SET(Qt5V8_PRIVATE_INCLUDE_DIR ${QtCoreDir0}/QtV8/${Qt5Core_VERSION_STRING}/QtV8)
32
36
33# DANGER! DANGER! Using Qt's private API!
37# DANGER! DANGER! Using Qt's private API!
34include_directories(
38include_directories(
39+ SYSTEM
35 ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
40 ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
36 ${Qt5Quick_INCLUDE_DIRS}
41 ${Qt5Quick_INCLUDE_DIRS}
37 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
42 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
plugins/Ubuntu/Gestures/Gestures.qmltypesdeleted−77
@@ -1,77 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Ubuntu.Gestures 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "AxisVelocityCalculator"
12− prototype: "QObject"
13− exports: ["Ubuntu.Gestures/AxisVelocityCalculator 0.1"]
14− exportMetaObjectRevisions: [0]
15− Property { name: "trackedPosition"; type: "double" }
16− Signal {
17− name: "trackedPositionChanged"
18− Parameter { name: "value"; type: "double" }
19− }
20− Method { name: "calculate"; type: "double" }
21− Method { name: "reset" }
22− }
23− Component {
24− name: "Direction"
25− prototype: "QObject"
26− exports: ["Ubuntu.Gestures/Direction 0.1"]
27− isCreatable: false
28− isSingleton: true
29− exportMetaObjectRevisions: [0]
30− Enum {
31− name: "Type"
32− values: {
33− "Rightwards": 0,
34− "Leftwards": 1,
35− "Downwards": 2,
36− "Upwards": 3,
37− "Horizontal": 4,
38− "Vertical": 5
39− }
40− }
41− Method {
42− name: "isHorizontal"
43− type: "bool"
44− Parameter { name: "type"; type: "Direction::Type" }
45− }
46− Method {
47− name: "isVertical"
48− type: "bool"
49− Parameter { name: "type"; type: "Direction::Type" }
50− }
51− Method {
52− name: "isPositive"
53− type: "bool"
54− Parameter { name: "type"; type: "Direction::Type" }
55− }
56− }
57− Component {
58− name: "PressedOutsideNotifier"
59− defaultProperty: "data"
60− prototype: "QQuickItem"
61− exports: ["Ubuntu.Gestures/PressedOutsideNotifier 0.1"]
62− exportMetaObjectRevisions: [0]
63− Signal { name: "pressedOutside" }
64− }
65− Component {
66− name: "TouchGate"
67− defaultProperty: "data"
68− prototype: "QQuickItem"
69− exports: ["Ubuntu.Gestures/TouchGate 0.1"]
70− exportMetaObjectRevisions: [0]
71− Property { name: "targetItem"; type: "QQuickItem"; isPointer: true }
72− Signal {
73− name: "targetItemChanged"
74− Parameter { name: "item"; type: "QQuickItem"; isPointer: true }
75− }
76− }
77−}
plugins/Ubuntu/Gestures/TouchDispatcher.cpp+1−5
@@ -19,11 +19,7 @@
19#include <QGuiApplication>
19#include <QGuiApplication>
20#include <QScopedPointer>
20#include <QScopedPointer>
21#include <QStyleHints>
21#include <QStyleHints>
22−
23−#pragma GCC diagnostic push
24−#pragma GCC diagnostic ignored "-pedantic"
25#include <private/qquickitem_p.h>
22#include <private/qquickitem_p.h>
26−#pragma GCC diagnostic pop
27
23
28#define TOUCHDISPATCHER_DEBUG 0
24#define TOUCHDISPATCHER_DEBUG 0
29
25
@@ -225,7 +221,7 @@ void TouchDispatcher::dispatchAsMouse(
225 QEvent::Type eventType;
221 QEvent::Type eventType;
226 if (touchMouse->state() == Qt::TouchPointPressed) {
222 if (touchMouse->state() == Qt::TouchPointPressed) {
227 eventType = QEvent::MouseButtonPress;
223 eventType = QEvent::MouseButtonPress;
228− } if (touchMouse->state() == Qt::TouchPointReleased) {
224+ } else if (touchMouse->state() == Qt::TouchPointReleased) {
229 eventType = QEvent::MouseButtonRelease;
225 eventType = QEvent::MouseButtonRelease;
230 m_touchMouseId = -1;
226 m_touchMouseId = -1;
231 } else {
227 } else {
plugins/Ubuntu/Gestures/TouchGate.cpp+6−4
@@ -20,16 +20,18 @@
20#include <QDebug>
20#include <QDebug>
21#include <QQuickWindow>
21#include <QQuickWindow>
22
22
23−#include <TouchOwnershipEvent>
23+#include <UbuntuGestures/private/touchownershipevent_p.h>
24−#include <TouchRegistry>
24+#include <UbuntuGestures/private/touchregistry_p.h>
25
25
26#if TOUCHGATE_DEBUG
26#if TOUCHGATE_DEBUG
27#define ugDebug(params) qDebug().nospace() << "[TouchGate(" << (void*)this << ")] " << params
27#define ugDebug(params) qDebug().nospace() << "[TouchGate(" << (void*)this << ")] " << params
28−#include <DebugHelpers.h>
28+#include <UbuntuGestures/private/debughelpers_p.h>
29#else // TOUCHGATE_DEBUG
29#else // TOUCHGATE_DEBUG
30#define ugDebug(params) ((void)0)
30#define ugDebug(params) ((void)0)
31#endif // TOUCHGATE_DEBUG
31#endif // TOUCHGATE_DEBUG
32
32
33+UG_USE_NAMESPACE
34+
33TouchGate::TouchGate(QQuickItem *parent)
35TouchGate::TouchGate(QQuickItem *parent)
34 : QQuickItem(parent)
36 : QQuickItem(parent)
35{
37{
@@ -40,7 +42,7 @@ TouchGate::TouchGate(QQuickItem *parent)
40bool TouchGate::event(QEvent *e)
42bool TouchGate::event(QEvent *e)
41{
43{
42 if (e->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
44 if (e->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
43− touchOwnershipEvent(static_cast<TouchOwnershipEvent *>(e));
45+ touchOwnershipEvent(static_cast<TouchOwnershipEvent*>(e));
44 return true;
46 return true;
45 } else {
47 } else {
46 return QQuickItem::event(e);
48 return QQuickItem::event(e);
plugins/Ubuntu/Gestures/TouchGate.h+3−2
@@ -19,6 +19,7 @@
19
19
20#include "UbuntuGesturesQmlGlobal.h"
20#include "UbuntuGesturesQmlGlobal.h"
21#include "TouchDispatcher.h"
21#include "TouchDispatcher.h"
22+#include <UbuntuGestures/ubuntugesturesglobal.h>
22
23
23#include <QQuickItem>
24#include <QQuickItem>
24#include <QList>
25#include <QList>
@@ -26,7 +27,7 @@
26
27
27#define TOUCHGATE_DEBUG 0
28#define TOUCHGATE_DEBUG 0
28
29
29−class TouchOwnershipEvent;
30+UG_FORWARD_DECLARE_CLASS(TouchOwnershipEvent)
30
31
31/*
32/*
32 Blocks the passage of events until ownership over the related touch points is granted.
33 Blocks the passage of events until ownership over the related touch points is granted.
@@ -82,7 +83,7 @@ private:
82 ulong timestamp;
83 ulong timestamp;
83 };
84 };
84
85
85− void touchOwnershipEvent(TouchOwnershipEvent *event);
86+ void touchOwnershipEvent(UG_PREPEND_NAMESPACE(TouchOwnershipEvent) *event);
86 bool isTouchPointOwned(int touchId) const;
87 bool isTouchPointOwned(int touchId) const;
87 void storeTouchEvent(QTouchDevice *device,
88 void storeTouchEvent(QTouchDevice *device,
88 Qt::KeyboardModifiers modifiers,
89 Qt::KeyboardModifiers modifiers,
plugins/Ubuntu/Gestures/TouchGestureArea.cpp+16−16
@@ -16,9 +16,9 @@
16
16
17#include "TouchGestureArea.h"
17#include "TouchGestureArea.h"
18
18
19−#include <UbuntuGestures/TouchOwnershipEvent>
19+#include <UbuntuGestures/private/touchownershipevent_p.h>
20−#include <UbuntuGestures/TouchRegistry>
20+#include <UbuntuGestures/private/touchregistry_p.h>
21−#include <UbuntuGestures/UnownedTouchEvent>
21+#include <UbuntuGestures/private/unownedtouchevent_p.h>
22// #include "TouchRegistry.h"
22// #include "TouchRegistry.h"
23// #include "UnownedTouchEvent.h"
23// #include "UnownedTouchEvent.h"
24
24
@@ -26,6 +26,8 @@
26#include <QStyleHints>
26#include <QStyleHints>
27#include <private/qquickwindow_p.h>
27#include <private/qquickwindow_p.h>
28
28
29+UG_USE_NAMESPACE
30+
29#define TOUCHGESTUREAREA_DEBUG 0
31#define TOUCHGESTUREAREA_DEBUG 0
30
32
31// TODO - understand more about why we lose touch event releases.
33// TODO - understand more about why we lose touch event releases.
@@ -135,7 +137,7 @@ TouchGestureArea::TouchGestureArea(QQuickItem* parent)
135 , m_recognitionPeriod(50)
137 , m_recognitionPeriod(50)
136 , m_releaseRejectPeriod(100)
138 , m_releaseRejectPeriod(100)
137{
139{
138− setRecognitionTimer(new UbuntuGestures::Timer(this));
140+ setRecognitionTimer(new Timer(this));
139 m_recognitionTimer->setInterval(m_recognitionPeriod);
141 m_recognitionTimer->setInterval(m_recognitionPeriod);
140 m_recognitionTimer->setSingleShot(true);
142 m_recognitionTimer->setSingleShot(true);
141}
143}
@@ -153,10 +155,10 @@ bool TouchGestureArea::event(QEvent *event)
153{
155{
154 // Process unowned touch events (handles update/release for incomplete gestures)
156 // Process unowned touch events (handles update/release for incomplete gestures)
155 if (event->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
157 if (event->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
156− touchOwnershipEvent(static_cast<TouchOwnershipEvent *>(event));
158+ touchOwnershipEvent(static_cast<TouchOwnershipEvent*>(event));
157 return true;
159 return true;
158 } else if (event->type() == UnownedTouchEvent::unownedTouchEventType()) {
160 } else if (event->type() == UnownedTouchEvent::unownedTouchEventType()) {
159− unownedTouchEvent(static_cast<UnownedTouchEvent *>(event)->touchEvent());
161+ unownedTouchEvent(static_cast<UnownedTouchEvent*>(event)->touchEvent());
160 return true;
162 return true;
161 }
163 }
162
164
@@ -375,7 +377,7 @@ void TouchGestureArea::unownedTouchEvent_waitingForMoreTouches(QTouchEvent *even
375 }
377 }
376 }
378 }
377
379
378− if (m_candidateTouches.count() == 0) {
380+ if (m_candidateTouches.isEmpty()) {
379 setInternalStatus(InternalStatus::WaitingForTouch);
381 setInternalStatus(InternalStatus::WaitingForTouch);
380 }
382 }
381}
383}
@@ -439,7 +441,7 @@ void TouchGestureArea::unownedTouchEvent_rejected(QTouchEvent *event)
439 }
441 }
440 }
442 }
441
443
442− if (m_watchedTouches.count() == 0) {
444+ if (m_watchedTouches.isEmpty()) {
443 setInternalStatus(InternalStatus::WaitingForTouch);
445 setInternalStatus(InternalStatus::WaitingForTouch);
444 }
446 }
445}
447}
@@ -527,7 +529,7 @@ void TouchGestureArea::updateTouchPoints(QTouchEvent *touchEvent)
527 if (updateable) {
529 if (updateable) {
528 if (!dragging() && m_status == InternalStatus::Recognized) {
530 if (!dragging() && m_status == InternalStatus::Recognized) {
529 bool allWantDrag = !m_liveTouchPoints.isEmpty();
531 bool allWantDrag = !m_liveTouchPoints.isEmpty();
530− Q_FOREACH(auto point, m_liveTouchPoints) {
532+ Q_FOREACH(const auto &point, m_liveTouchPoints) {
531 allWantDrag &= point->dragging();
533 allWantDrag &= point->dragging();
532 }
534 }
533 // only dragging if all points are dragging.
535 // only dragging if all points are dragging.
@@ -608,7 +610,7 @@ void TouchGestureArea::setInternalStatus(uint newStatus)
608 }
610 }
609}
611}
610
612
611−void TouchGestureArea::setRecognitionTimer(UbuntuGestures::AbstractTimer *timer)
613+void TouchGestureArea::setRecognitionTimer(AbstractTimer *timer)
612{
614{
613 int interval = 0;
615 int interval = 0;
614 bool timerWasRunning = false;
616 bool timerWasRunning = false;
@@ -646,11 +648,9 @@ bool TouchGestureArea::dragging() const
646QQmlListProperty<GestureTouchPoint> TouchGestureArea::touchPoints()
648QQmlListProperty<GestureTouchPoint> TouchGestureArea::touchPoints()
647{
649{
648 return QQmlListProperty<GestureTouchPoint>(this,
650 return QQmlListProperty<GestureTouchPoint>(this,
649− 0,
650− nullptr,
651+ nullptr,
651− TouchGestureArea::touchPoint_count,
652+ TouchGestureArea::touchPoint_count,
652− TouchGestureArea::touchPoint_at,
653+ TouchGestureArea::touchPoint_at);
653− 0);
654}
654}
655
655
656int TouchGestureArea::minimumTouchPoints() const
656int TouchGestureArea::minimumTouchPoints() const
@@ -721,7 +721,7 @@ void TouchGestureArea::rejectGesture()
721 }
721 }
722 m_candidateTouches.clear();
722 m_candidateTouches.clear();
723
723
724− if (m_watchedTouches.count() == 0) {
724+ if (m_watchedTouches.isEmpty()) {
725 setInternalStatus(InternalStatus::WaitingForTouch);
725 setInternalStatus(InternalStatus::WaitingForTouch);
726 } else {
726 } else {
727 setInternalStatus(InternalStatus::Rejected);
727 setInternalStatus(InternalStatus::Rejected);
plugins/Ubuntu/Gestures/TouchGestureArea.h+14−13
@@ -21,10 +21,11 @@
21
21
22#include <QQuickItem>
22#include <QQuickItem>
23
23
24−#include <UbuntuGestures/Timer>
24+#include <UbuntuGestures/ubuntugesturesglobal.h>
25+#include <UbuntuGestures/private/timer_p.h>
25
26
26−class TouchOwnershipEvent;
27+UG_FORWARD_DECLARE_CLASS(TouchOwnershipEvent)
27−class UnownedTouchEvent;
28+UG_FORWARD_DECLARE_CLASS(UnownedTouchEvent)
28
29
29class GestureTouchPoint : public QObject
30class GestureTouchPoint : public QObject
30{
31{
@@ -105,8 +106,8 @@ private:
105/*
106/*
106 An area that detects multi-finger gestures.
107 An area that detects multi-finger gestures.
107
108
108− We can use this to detect gestures contstrained by a minimim and/or maximum number of touch points.
109+ We can use this to detect gestures constrained by a minimum and/or maximum number of touch points.
109− This components uses the touch registry to apply for ownership of touch points.
110+ This component uses the touch registry to apply for ownership of touch points.
110 This way we can use the component in conjuntion with the directional drag area to compete for ownwership
111 This way we can use the component in conjuntion with the directional drag area to compete for ownwership
111 or gestures; unlike the MultiPointTouchArea.
112 or gestures; unlike the MultiPointTouchArea.
112 */
113 */
@@ -136,12 +137,12 @@ public:
136 Recognized,
137 Recognized,
137 Rejected
138 Rejected
138 };
139 };
139− TouchGestureArea(QQuickItem* parent = NULL);
140+ TouchGestureArea(QQuickItem* parent = nullptr);
140 ~TouchGestureArea();
141 ~TouchGestureArea();
141
142
142 bool event(QEvent *e) override;
143 bool event(QEvent *e) override;
143
144
144− void setRecognitionTimer(UbuntuGestures::AbstractTimer *timer);
145+ void setRecognitionTimer(UG_PREPEND_NAMESPACE(AbstractTimer) *timer);
145
146
146 int status() const;
147 int status() const;
147 bool dragging() const;
148 bool dragging() const;
@@ -164,10 +165,10 @@ Q_SIGNALS:
164
165
165 void touchPointsUpdated();
166 void touchPointsUpdated();
166 void draggingChanged(bool dragging);
167 void draggingChanged(bool dragging);
167− void minimumTouchPointsChanged(bool value);
168+ void minimumTouchPointsChanged(int value);
168− void maximumTouchPointsChanged(bool value);
169+ void maximumTouchPointsChanged(int value);
169− void recognitionPeriodChanged(bool value);
170+ void recognitionPeriodChanged(int value);
170− void releaseRejectPeriodChanged(bool value);
171+ void releaseRejectPeriodChanged(int value);
171
172
172 void pressed(const QList<QObject*>& points);
173 void pressed(const QList<QObject*>& points);
173 void released(const QList<QObject*>& points);
174 void released(const QList<QObject*>& points);
@@ -194,7 +195,7 @@ private:
194 void unownedTouchEvent_recognised(QTouchEvent *unownedTouchEvent);
195 void unownedTouchEvent_recognised(QTouchEvent *unownedTouchEvent);
195 void unownedTouchEvent_rejected(QTouchEvent *unownedTouchEvent);
196 void unownedTouchEvent_rejected(QTouchEvent *unownedTouchEvent);
196
197
197− void touchOwnershipEvent(TouchOwnershipEvent *event);
198+ void touchOwnershipEvent(UG_PREPEND_NAMESPACE(TouchOwnershipEvent) *event);
198 void updateTouchPoints(QTouchEvent *event);
199 void updateTouchPoints(QTouchEvent *event);
199
200
200 GestureTouchPoint* addTouchPoint(const QTouchEvent::TouchPoint *tp);
201 GestureTouchPoint* addTouchPoint(const QTouchEvent::TouchPoint *tp);
@@ -209,7 +210,7 @@ private:
209 uint m_status;
210 uint m_status;
210 QSet<int> m_candidateTouches;
211 QSet<int> m_candidateTouches;
211 QSet<int> m_watchedTouches;
212 QSet<int> m_watchedTouches;
212− UbuntuGestures::AbstractTimer *m_recognitionTimer;
213+ UG_PREPEND_NAMESPACE(AbstractTimer) *m_recognitionTimer;
213
214
214 bool m_dragging;
215 bool m_dragging;
215 QHash<int, GestureTouchPoint*> m_liveTouchPoints;
216 QHash<int, GestureTouchPoint*> m_liveTouchPoints;
plugins/Ubuntu/Payments/Payments.qmltypesdeleted−43
@@ -1,43 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Ubuntu.Payments 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "Payments"
12− prototype: "QObject"
13− exports: ["Ubuntu.Payments/Payments 0.1"]
14− exportMetaObjectRevisions: [0]
15− Property { name: "currency"; type: "string" }
16− Property { name: "price"; type: "double" }
17− Property { name: "storeItemId"; type: "string" }
18− Property { name: "formattedPrice"; type: "string"; isReadonly: true }
19− Signal {
20− name: "currencyChanged"
21− Parameter { name: "currency"; type: "string" }
22− }
23− Signal {
24− name: "priceChanged"
25− Parameter { name: "price"; type: "double" }
26− }
27− Signal {
28− name: "storeItemIdChanged"
29− Parameter { name: "store_item_id"; type: "string" }
30− }
31− Signal {
32− name: "formattedPriceChanged"
33− Parameter { name: "formatted_price"; type: "string" }
34− }
35− Signal {
36− name: "purchaseError"
37− Parameter { name: "error"; type: "string" }
38− }
39− Signal { name: "purchaseCompleted" }
40− Signal { name: "purchaseCancelled" }
41− Method { name: "start" }
42− }
43−}
plugins/Ubuntu/SystemImage/CMakeLists.txt+5
@@ -1,3 +1,7 @@
1+include_directories(
2+ ${GLIB_INCLUDE_DIRS}
3+)
4+
1set(SYSTEMIMAGE_SOURCES
5set(SYSTEMIMAGE_SOURCES
2 plugin.cpp
6 plugin.cpp
3 SystemImage.cpp
7 SystemImage.cpp
@@ -6,5 +10,6 @@ set(SYSTEMIMAGE_SOURCES
6add_library(SystemImage MODULE ${SYSTEMIMAGE_SOURCES})
10add_library(SystemImage MODULE ${SYSTEMIMAGE_SOURCES})
7
11
8qt5_use_modules(SystemImage Qml DBus Core)
12qt5_use_modules(SystemImage Qml DBus Core)
13+target_link_libraries(SystemImage ${GLIB_LIBRARIES})
9
14
10add_unity8_plugin(Ubuntu.SystemImage 0.1 Ubuntu/SystemImage TARGETS SystemImage)
15add_unity8_plugin(Ubuntu.SystemImage 0.1 Ubuntu/SystemImage TARGETS SystemImage)
plugins/Ubuntu/SystemImage/SystemImage.cpp+127−5
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -14,20 +14,142 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−#include "SystemImage.h"
18#include <QDBusConnection>
17#include <QDBusConnection>
19#include <QDBusPendingCall>
18#include <QDBusPendingCall>
19+#include <QDBusReply>
20+#include <QDebug>
21+
22+#include <glib.h>
23+
24+#include "SystemImage.h"
25+
26+#define SYSTEMIMAGE_SERVICE QStringLiteral("com.canonical.SystemImage")
27+#define SYSTEMIMAGE_PATH QStringLiteral("/Service")
28+#define SYSTEMIMAGE_IFACE QStringLiteral("com.canonical.SystemImage")
29+
30+Q_LOGGING_CATEGORY(SYSTEMIMAGEPLUGIN, "unity8.systemimage", QtWarningMsg)
31+
32+#define DEBUG_MSG qCDebug(SYSTEMIMAGEPLUGIN).nospace().noquote() << Q_FUNC_INFO
33+#define WARNING_MSG qCWarning(SYSTEMIMAGEPLUGIN).nospace().noquote() << Q_FUNC_INFO
20
34
21SystemImage::SystemImage(QObject *parent)
35SystemImage::SystemImage(QObject *parent)
22 : QObject(parent)
36 : QObject(parent)
23{
37{
38+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("UpdateAvailableStatus"),
39+ this, SLOT(onUpdateAvailableStatus(bool,bool,QString,int,QString,QString)));
40+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("UpdateDownloaded"),
41+ this, SLOT(onUpdateDownloaded()));
42+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("UpdateFailed"),
43+ this, SLOT(onUpdateFailed(int,QString)));
44+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("Applied"),
45+ this, SLOT(onUpdateApplied(bool)));
46+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("Rebooting"),
47+ this, SLOT(onRebooting(bool)));
48+}
49+
50+void SystemImage::checkForUpdate()
51+{
52+ DEBUG_MSG << "Checking for update";
53+ const QDBusMessage msg = QDBusMessage::createMethodCall(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE,
54+ QStringLiteral("CheckForUpdate"));
55+ QDBusConnection::systemBus().asyncCall(msg);
56+}
57+
58+void SystemImage::applyUpdate()
59+{
60+ DEBUG_MSG << "Applying update";
61+ setUpdateApplying(true);
62+
63+ const QDBusMessage msg = QDBusMessage::createMethodCall(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE,
64+ QStringLiteral("ApplyUpdate"));
65+ QDBusConnection::systemBus().asyncCall(msg);
24}
66}
25
67
26void SystemImage::factoryReset()
68void SystemImage::factoryReset()
27{
69{
28− const QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("com.canonical.SystemImage"),
70+ const QDBusMessage msg = QDBusMessage::createMethodCall(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE,
29− QStringLiteral("/Service"),
30− QStringLiteral("com.canonical.SystemImage"),
31 QStringLiteral("FactoryReset"));
71 QStringLiteral("FactoryReset"));
32 QDBusConnection::systemBus().asyncCall(msg);
72 QDBusConnection::systemBus().asyncCall(msg);
33}
73}
74+
75+void SystemImage::onUpdateAvailableStatus(bool is_available, bool downloading, const QString &available_version, int update_size,
76+ const QString &last_update_date, const QString &error_reason)
77+{
78+ DEBUG_MSG << "A new update is " << (is_available ? "" : "NOT") << "available";
79+
80+ if (is_available == m_updateAvailable) {
81+ return;
82+ }
83+
84+ m_updateAvailable = is_available;
85+ m_downloading = downloading;
86+ m_availableVersion = available_version;
87+ m_updateSize = formatSize(update_size);
88+ m_lastUpdateDate = last_update_date;
89+ m_errorReason = error_reason;
90+ Q_EMIT updateAvailableStatus();
91+
92+ DEBUG_MSG << "Downloading: " << downloading << ", version: " << available_version << ", last update: " << last_update_date <<
93+ ", size: " << m_updateSize;
94+}
95+
96+void SystemImage::onUpdateDownloaded()
97+{
98+ DEBUG_MSG << "Update downloaded";
99+
100+ m_downloaded = true;
101+ Q_EMIT updateDownloadedChanged();
102+}
103+
104+void SystemImage::onUpdateFailed(int /*consecutive_failure_count*/, const QString &last_reason)
105+{
106+ WARNING_MSG << "System Update failed: " << last_reason;
107+ setUpdateApplying(false);
108+}
109+
110+void SystemImage::onUpdateApplied(bool applied)
111+{
112+ DEBUG_MSG << "System Update applied with status: " << applied;
113+ setUpdateApplying(false);
114+ if (applied) {
115+ resetUpdateStatus();
116+ Q_EMIT updateAvailableStatus();
117+ }
118+}
119+
120+void SystemImage::onRebooting(bool status)
121+{
122+ setUpdateApplying(false);
123+ DEBUG_MSG << "Rebooting: " << status;
124+}
125+
126+void SystemImage::setUpdateApplying(bool status)
127+{
128+ if (status != m_updateApplying) {
129+ m_updateApplying = status;
130+ Q_EMIT updateApplyingChanged();
131+ }
132+}
133+
134+void SystemImage::resetUpdateStatus()
135+{
136+ m_updateAvailable = false;
137+ m_updateApplying = false;
138+ m_downloading = false;
139+ m_downloaded = false;
140+ m_availableVersion.clear();
141+ m_updateSize.clear();
142+ m_lastUpdateDate.clear();
143+ m_errorReason.clear();
144+}
145+
146+QString SystemImage::formatSize(quint64 size) const
147+{
148+ guint64 g_size = size;
149+
150+ gchar * formatted_size = g_format_size(g_size);
151+ QString q_formatted_size = QString::fromLocal8Bit(formatted_size);
152+ g_free(formatted_size);
153+
154+ return q_formatted_size;
155+}
plugins/Ubuntu/SystemImage/SystemImage.h+52−2
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -18,17 +18,67 @@
18#define SYSTEMIMAGE_H
18#define SYSTEMIMAGE_H
19
19
20#include <QObject>
20#include <QObject>
21+#include <QLoggingCategory>
22+
23+Q_DECLARE_LOGGING_CATEGORY(SYSTEMIMAGEPLUGIN)
21
24
22class SystemImage : public QObject
25class SystemImage : public QObject
23{
26{
24 Q_OBJECT
27 Q_OBJECT
25 Q_DISABLE_COPY(SystemImage)
28 Q_DISABLE_COPY(SystemImage)
26
29
30+ Q_PROPERTY(bool updateAvailable READ updateAvailable NOTIFY updateAvailableStatus)
31+ Q_PROPERTY(bool updateDownloading READ updateDownloading NOTIFY updateAvailableStatus)
32+ Q_PROPERTY(QString availableVersion READ availableVersion NOTIFY updateAvailableStatus)
33+ Q_PROPERTY(QString updateSize READ updateSize NOTIFY updateAvailableStatus)
34+ Q_PROPERTY(bool updateApplying READ updateApplying NOTIFY updateApplyingChanged)
35+ Q_PROPERTY(bool updateDownloaded READ updateDownloaded NOTIFY updateDownloadedChanged)
36+
27public:
37public:
28− explicit SystemImage(QObject *parent = 0);
38+ explicit SystemImage(QObject *parent = nullptr);
29 ~SystemImage() = default;
39 ~SystemImage() = default;
30
40
41+ bool updateAvailable() const { return m_updateAvailable; }
42+ bool updateDownloading() const { return m_downloading; }
43+ QString availableVersion() const { return m_availableVersion; }
44+ QString updateSize() const { return m_updateSize; }
45+ bool updateApplying() const { return m_updateApplying; }
46+ bool updateDownloaded() const { return m_downloaded; }
47+
48+public Q_SLOTS:
49+ Q_INVOKABLE void checkForUpdate();
50+ Q_INVOKABLE void applyUpdate();
31 Q_INVOKABLE void factoryReset();
51 Q_INVOKABLE void factoryReset();
52+
53+private Q_SLOTS:
54+ void onUpdateAvailableStatus(bool is_available, bool updateDownloading, const QString &available_version,
55+ int update_size, const QString &last_update_date, const QString &error_reason);
56+ void onUpdateDownloaded();
57+ void onUpdateFailed(int consecutive_failure_count, const QString & last_reason);
58+ void onUpdateApplied(bool applied);
59+ void onRebooting(bool status);
60+
61+Q_SIGNALS:
62+ void updateAvailableStatus();
63+ void updateDownloadedChanged();
64+ void updateApplyingChanged();
65+
66+private Q_SLOTS:
67+ void setUpdateApplying(bool status);
68+
69+private:
70+ void resetUpdateStatus();
71+ QString formatSize(quint64 size) const;
72+
73+private:
74+ bool m_updateAvailable = false;
75+ bool m_updateApplying = false;
76+ bool m_downloading = false;
77+ bool m_downloaded = false;
78+ QString m_availableVersion;
79+ QString m_updateSize;
80+ QString m_lastUpdateDate;
81+ QString m_errorReason;
32};
82};
33
83
34#endif // SYSTEMIMAGE_H
84#endif // SYSTEMIMAGE_H
plugins/Ubuntu/SystemImage/SystemImage.qmltypesdeleted−19
@@ -1,19 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Ubuntu.SystemImage 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "SystemImage"
12− prototype: "QObject"
13− exports: ["Ubuntu.SystemImage/SystemImage 0.1"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Method { name: "factoryReset" }
18− }
19−}
plugins/Ubuntu/SystemImage/plugin.cpp+3−9
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -19,16 +19,10 @@
19
19
20#include <QtQml>
20#include <QtQml>
21
21
22−static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
23−{
24− Q_UNUSED(engine)
25− Q_UNUSED(scriptEngine)
26− return new SystemImage();
27−}
28−
29void BackendPlugin::registerTypes(const char *uri)
22void BackendPlugin::registerTypes(const char *uri)
30{
23{
31 Q_ASSERT(uri == QLatin1String("Ubuntu.SystemImage"));
24 Q_ASSERT(uri == QLatin1String("Ubuntu.SystemImage"));
32
25
33− qmlRegisterSingletonType<SystemImage>(uri, 0, 1, "SystemImage", service_provider);
26+ qmlRegisterSingletonType<SystemImage>(uri, 0, 1, "SystemImage",
27+ [](QQmlEngine*, QJSEngine*) -> QObject* { return new SystemImage; });
34}
28}
plugins/Ubuntu/SystemImage/plugin.h+1−1
@@ -22,7 +22,7 @@
22class BackendPlugin : public QQmlExtensionPlugin
22class BackendPlugin : public QQmlExtensionPlugin
23{
23{
24 Q_OBJECT
24 Q_OBJECT
25− Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
25+ Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
26
26
27public:
27public:
28 void registerTypes(const char *uri) override;
28 void registerTypes(const char *uri) override;
plugins/Unity/Connectivity/Connectivity.qmltypesdeleted−19
@@ -1,19 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Unity.Connectivity 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "Connectivity"
12− prototype: "QObject"
13− exports: ["Unity.Connectivity/Connectivity 0.1"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Method { name: "unlockAllModems" }
18− }
19−}
plugins/Unity/DashCommunicator/DashCommunicator.qmltypesdeleted−47
@@ -1,47 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Unity.DashCommunicator 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "DashCommunicator"
12− prototype: "QThread"
13− exports: ["Unity.DashCommunicator/DashCommunicator 0.1"]
14− exportMetaObjectRevisions: [0]
15− Method {
16− name: "setCurrentScope"
17− Parameter { name: "index"; type: "int" }
18− Parameter { name: "animate"; type: "bool" }
19− Parameter { name: "isSwipe"; type: "bool" }
20− }
21− }
22− Component {
23− name: "DashCommunicatorService"
24− prototype: "QObject"
25− exports: ["Unity.DashCommunicator/DashCommunicatorService 0.1"]
26− exportMetaObjectRevisions: [0]
27− Signal {
28− name: "setCurrentScopeRequested"
29− Parameter { name: "index"; type: "int" }
30− Parameter { name: "animate"; type: "bool" }
31− Parameter { name: "isSwipe"; type: "bool" }
32− }
33− }
34− Component {
35− name: "QThread"
36− prototype: "QObject"
37− Signal { name: "started" }
38− Signal { name: "finished" }
39− Method {
40− name: "start"
41− Parameter { type: "Priority" }
42− }
43− Method { name: "start" }
44− Method { name: "terminate" }
45− Method { name: "quit" }
46− }
47−}
plugins/Unity/Indicators/CMakeLists.txt+4
@@ -6,6 +6,10 @@ find_package(Qt5Quick REQUIRED)
6include_directories(
6include_directories(
7 ${CMAKE_CURRENT_SOURCE_DIR}
7 ${CMAKE_CURRENT_SOURCE_DIR}
8 ${CMAKE_CURRENT_BINARY_DIR}
8 ${CMAKE_CURRENT_BINARY_DIR}
9+)
10+
11+include_directories(
12+ SYSTEM
9 ${GLIB_INCLUDE_DIRS}
13 ${GLIB_INCLUDE_DIRS}
10 ${GIO_INCLUDE_DIRS}
14 ${GIO_INCLUDE_DIRS}
11 ${QMENUMODEL_INCLUDE_DIRS}
15 ${QMENUMODEL_INCLUDE_DIRS}
plugins/Unity/Indicators/Indicators.qmltypesdeleted−264
@@ -1,264 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Unity.Indicators 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "ActionRootState"
12− prototype: "RootStateObject"
13− exports: ["Unity.Indicators/ActionRootState 0.1"]
14− exportMetaObjectRevisions: [0]
15− Property { name: "actionGroup"; type: "QDBusActionGroup"; isPointer: true }
16− Property { name: "actionName"; type: "string" }
17− }
18− Component {
19− name: "ActionState"
20− prototype: "QObject"
21− exports: ["Unity.Indicators/ActionState 0.1"]
22− isCreatable: false
23− exportMetaObjectRevisions: [0]
24− Enum {
25− name: "ActionStates"
26− values: {
27− "Label": 0,
28− "IconSource": 1,
29− "AccessableName": 2,
30− "Visible": 3
31− }
32− }
33− }
34− Component {
35− name: "FlatMenuProxyModelRole"
36− prototype: "QObject"
37− exports: ["Unity.Indicators/FlatMenuProxyModelRole 0.1"]
38− isCreatable: false
39− exportMetaObjectRevisions: [0]
40− Enum {
41− name: "Roles"
42− values: {
43− "Action": 1,
44− "Label": 2,
45− "Extra": 3,
46− "Depth": 4,
47− "hasSection": 5,
48− "hasSubMenu": 6
49− }
50− }
51− }
52− Component {
53− name: "IndicatorsManager"
54− prototype: "QObject"
55− exports: ["Unity.Indicators/IndicatorsManager 0.1"]
56− exportMetaObjectRevisions: [0]
57− Property { name: "loaded"; type: "bool"; isReadonly: true }
58− Property { name: "profile"; type: "string" }
59− Signal {
60− name: "loadedChanged"
61− Parameter { type: "bool" }
62− }
63− Signal {
64− name: "profileChanged"
65− Parameter { type: "string" }
66− }
67− Signal {
68− name: "indicatorLoaded"
69− Parameter { name: "indicator_name"; type: "string" }
70− }
71− Signal {
72− name: "indicatorAboutToBeUnloaded"
73− Parameter { name: "indicator_name"; type: "string" }
74− }
75− Method { name: "load" }
76− Method { name: "unload" }
77− }
78− Component {
79− name: "IndicatorsModel"
80− prototype: "QAbstractListModel"
81− exports: ["Unity.Indicators/IndicatorsModel 0.1"]
82− exportMetaObjectRevisions: [0]
83− Property { name: "count"; type: "int"; isReadonly: true }
84− Property { name: "profile"; type: "string" }
85− Signal {
86− name: "indicatorDataChanged"
87− Parameter { name: "data"; type: "QVariant" }
88− }
89− Method { name: "load" }
90− Method { name: "unload" }
91− Method {
92− name: "data"
93− type: "QVariant"
94− Parameter { name: "row"; type: "int" }
95− Parameter { name: "role"; type: "int" }
96− }
97− }
98− Component {
99− name: "IndicatorsModelRole"
100− prototype: "QObject"
101− exports: ["Unity.Indicators/IndicatorsModelRole 0.1"]
102− isCreatable: false
103− exportMetaObjectRevisions: [0]
104− Enum {
105− name: "Roles"
106− values: {
107− "Identifier": 0,
108− "Position": 1,
109− "IndicatorProperties": 2
110− }
111− }
112− }
113− Component {
114− name: "MenuContentActivator"
115− prototype: "QObject"
116− exports: ["Unity.Indicators/MenuContentActivator 0.1"]
117− exportMetaObjectRevisions: [0]
118− Property { name: "baseIndex"; type: "int" }
119− Property { name: "running"; type: "bool" }
120− Property { name: "count"; type: "int" }
121− Property { name: "content"; type: "MenuContentState"; isList: true; isReadonly: true }
122− Signal {
123− name: "baseIndexChanged"
124− Parameter { name: "baseIndex"; type: "int" }
125− }
126− Signal {
127− name: "deltaChanged"
128− Parameter { name: "delta"; type: "int" }
129− }
130− Signal {
131− name: "runningChanged"
132− Parameter { name: "running"; type: "bool" }
133− }
134− Signal {
135− name: "countChanged"
136− Parameter { name: "count"; type: "int" }
137− }
138− Method { name: "restart" }
139− Method { name: "stop" }
140− Method { name: "clear" }
141− Method {
142− name: "isMenuContentActive"
143− type: "bool"
144− Parameter { name: "index"; type: "int" }
145− }
146− }
147− Component {
148− name: "MenuContentState"
149− prototype: "QObject"
150− exports: ["Unity.Indicators/MenuContentState 0.1"]
151− isCreatable: false
152− exportMetaObjectRevisions: [0]
153− Property { name: "active"; type: "bool"; isReadonly: true }
154− }
155− Component {
156− name: "ModelActionRootState"
157− prototype: "RootStateObject"
158− exports: ["Unity.Indicators/ModelActionRootState 0.1"]
159− exportMetaObjectRevisions: [0]
160− Property { name: "menu"; type: "UnityMenuModel"; isPointer: true }
161− Signal { name: "indexChanged" }
162− }
163− Component {
164− name: "ModelPrinter"
165− prototype: "QObject"
166− exports: ["Unity.Indicators/ModelPrinter 0.1"]
167− exportMetaObjectRevisions: [0]
168− Property { name: "model"; type: "UnityMenuModel"; isPointer: true }
169− Property { name: "text"; type: "string"; isReadonly: true }
170− Method { name: "text"; type: "string" }
171− }
172− Component {
173− name: "NetworkActionState"
174− prototype: "QObject"
175− exports: ["Unity.Indicators/NetworkActionState 0.1"]
176− isCreatable: false
177− exportMetaObjectRevisions: [0]
178− Enum {
179− name: "NetworkActionStates"
180− values: {
181− "Connection": 1,
182− "SignalStrength": 2
183− }
184− }
185− }
186− Component {
187− name: "NetworkConnection"
188− prototype: "QObject"
189− exports: ["Unity.Indicators/NetworkConnection 0.1"]
190− isCreatable: false
191− exportMetaObjectRevisions: [0]
192− Enum {
193− name: "NetworkConnectionStates"
194− values: {
195− "Initial": 0,
196− "Activating": 1,
197− "Activated": 2,
198− "Deactivating": 3
199− }
200− }
201− }
202− Component {
203− name: "RootStateObject"
204− prototype: "QObject"
205− Property { name: "valid"; type: "bool"; isReadonly: true }
206− Property { name: "title"; type: "string"; isReadonly: true }
207− Property { name: "leftLabel"; type: "string"; isReadonly: true }
208− Property { name: "rightLabel"; type: "string"; isReadonly: true }
209− Property { name: "icons"; type: "QStringList"; isReadonly: true }
210− Property { name: "accessibleName"; type: "string"; isReadonly: true }
211− Property { name: "indicatorVisible"; type: "bool"; isReadonly: true }
212− Signal { name: "updated" }
213− }
214− Component {
215− name: "SharedUnityMenuModel"
216− prototype: "QObject"
217− exports: ["Unity.Indicators/SharedUnityMenuModel 0.1"]
218− exportMetaObjectRevisions: [0]
219− Property { name: "busName"; type: "QByteArray" }
220− Property { name: "menuObjectPath"; type: "QByteArray" }
221− Property { name: "actions"; type: "QVariantMap" }
222− Property { name: "model"; type: "UnityMenuModel"; isReadonly: true; isPointer: true }
223− }
224− Component {
225− name: "UnityMenuModelCache"
226− prototype: "QObject"
227− exports: ["Unity.Indicators/UnityMenuModelCache 0.1"]
228− isCreatable: false
229− isSingleton: true
230− exportMetaObjectRevisions: [0]
231− Method {
232− name: "contains"
233− type: "bool"
234− Parameter { name: "path"; type: "QByteArray" }
235− }
236− }
237− Component {
238− name: "UnityMenuModelStack"
239− prototype: "QObject"
240− exports: ["Unity.Indicators/UnityMenuModelStack 0.1"]
241− exportMetaObjectRevisions: [0]
242− Property { name: "head"; type: "UnityMenuModel"; isPointer: true }
243− Property { name: "tail"; type: "UnityMenuModel"; isReadonly: true; isPointer: true }
244− Property { name: "count"; type: "int"; isReadonly: true }
245− Signal {
246− name: "headChanged"
247− Parameter { name: "head"; type: "UnityMenuModel"; isPointer: true }
248− }
249− Signal {
250− name: "tailChanged"
251− Parameter { name: "tail"; type: "UnityMenuModel"; isPointer: true }
252− }
253− Signal {
254− name: "countChanged"
255− Parameter { name: "count"; type: "int" }
256− }
257− Method {
258− name: "push"
259− Parameter { name: "model"; type: "UnityMenuModel"; isPointer: true }
260− Parameter { name: "menuIndex"; type: "int" }
261− }
262− Method { name: "pop"; type: "UnityMenuModel*" }
263− }
264−}
plugins/Unity/Indicators/actionrootstate.cpp+1−1
@@ -44,7 +44,7 @@ void ActionRootState::setActionGroup(QDBusActionGroup *actionGroup)
44 connect(m_actionGroup, &QDBusActionGroup::statusChanged, this, [&](bool) { updateActionState(); });
44 connect(m_actionGroup, &QDBusActionGroup::statusChanged, this, [&](bool) { updateActionState(); });
45 connect(m_actionGroup, &QDBusActionGroup::actionAppear, this, [&](const QString&) { updateActionState(); });
45 connect(m_actionGroup, &QDBusActionGroup::actionAppear, this, [&](const QString&) { updateActionState(); });
46 connect(m_actionGroup, &QDBusActionGroup::actionVanish, this, [&](const QString&) { updateActionState(); });
46 connect(m_actionGroup, &QDBusActionGroup::actionVanish, this, [&](const QString&) { updateActionState(); });
47− connect(m_actionGroup, &QDBusActionGroup::actionStateChanged, this, [&](QVariant) { updateActionState(); });
47+ connect(m_actionGroup, &QDBusActionGroup::actionStateChanged, this, [&](const QVariant&) { updateActionState(); });
48
48
49 connect(m_actionGroup, &QObject::destroyed, this, [&](QObject*) { updateActionState(); });
49 connect(m_actionGroup, &QObject::destroyed, this, [&](QObject*) { updateActionState(); });
50 }
50 }
plugins/Unity/Indicators/indicatorsmanager.cpp+4−6
@@ -114,10 +114,6 @@ void IndicatorsManager::loadFile(const QFileInfo& file_info)
114 QSettings indicator_settings(file_info.absoluteFilePath(), QSettings::IniFormat, this);
114 QSettings indicator_settings(file_info.absoluteFilePath(), QSettings::IniFormat, this);
115 const QString name = indicator_settings.value(QStringLiteral("Indicator Service/Name")).toString();
115 const QString name = indicator_settings.value(QStringLiteral("Indicator Service/Name")).toString();
116
116
117− if (m_platform.isPC() && name == QLatin1String("indicator-keyboard")) {
118− return; // convergence: skip this indicator until it works in Mir
119− }
120−
121 auto iter = m_indicatorsData.constFind(name);
117 auto iter = m_indicatorsData.constFind(name);
122 if (iter != m_indicatorsData.constEnd())
118 if (iter != m_indicatorsData.constEnd())
123 {
119 {
@@ -285,13 +281,15 @@ Indicator::Ptr IndicatorsManager::indicator(const QString& indicator_name)
285
281
286 // convergence:
282 // convergence:
287 // 1) enable session indicator
283 // 1) enable session indicator
284+ // 2) enable keyboard indicator
288− // 2) on a PC, switch the battery/power indicator to desktop mode,
285+ // 3) on a PC, switch the battery/power indicator to desktop mode,
289 // can't control brightness for now and phone-on-desktop broken (FIXME)
286 // can't control brightness for now and phone-on-desktop broken (FIXME)
290 //
287 //
291 // The rest of the indicators respect their default profile (which is "phone", even on desktop PCs)
288 // The rest of the indicators respect their default profile (which is "phone", even on desktop PCs)
292 if ((new_indicator->identifier() == QStringLiteral("indicator-session"))
289 if ((new_indicator->identifier() == QStringLiteral("indicator-session"))
290+ || new_indicator->identifier() == QStringLiteral("indicator-keyboard")
293 || (new_indicator->identifier() == QStringLiteral("indicator-power") && m_platform.isPC())) {
291 || (new_indicator->identifier() == QStringLiteral("indicator-power") && m_platform.isPC())) {
294− new_indicator->setProfile(QStringLiteral("desktop"));
292+ new_indicator->setProfile(QString(m_profile).replace(QStringLiteral("phone"), QStringLiteral("desktop")));
295 } else {
293 } else {
296 new_indicator->setProfile(m_profile);
294 new_indicator->setProfile(m_profile);
297 }
295 }
plugins/Unity/InputInfo/InputInfo.qmltypesdeleted−71
@@ -1,71 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Unity.InputInfo 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "QDeclarativeInputDeviceModel"
12− prototype: "QAbstractListModel"
13− exports: ["Unity.InputInfo/InputDeviceModel 0.1"]
14− exportMetaObjectRevisions: [0]
15− Property { name: "deviceFilter"; type: "QInputDevice::InputType" }
16− Property { name: "count"; type: "int"; isReadonly: true }
17− Signal {
18− name: "deviceAdded"
19− Parameter { name: "devicePath"; type: "string" }
20− }
21− Signal {
22− name: "deviceRemoved"
23− Parameter { name: "devicePath"; type: "string" }
24− }
25− Signal {
26− name: "deviceFilterChanged"
27− Parameter { name: "filter"; type: "QInputDevice::InputType" }
28− }
29− Method { name: "updateDeviceList" }
30− Method {
31− name: "indexOf"
32− type: "int"
33− Parameter { name: "devicePath"; type: "string" }
34− }
35− Method {
36− name: "get"
37− type: "QInputDevice*"
38− Parameter { name: "index"; type: "int" }
39− }
40− }
41− Component {
42− name: "QInputDevice"
43− prototype: "QObject"
44− exports: ["Unity.InputInfo/InputInfo 0.1"]
45− exportMetaObjectRevisions: [0]
46− Enum {
47− name: "InputType"
48− values: {
49− "Unknown": 0,
50− "Button": 1,
51− "Mouse": 2,
52− "TouchPad": 4,
53− "TouchScreen": 8,
54− "Keyboard": 16,
55− "Switch": 32
56− }
57− }
58− Enum {
59− name: "InputTypeFlags"
60− values: {
61− "Unknown": 0,
62− "Button": 1,
63− "Mouse": 2,
64− "TouchPad": 4,
65− "TouchScreen": 8,
66− "Keyboard": 16,
67− "Switch": 32
68− }
69− }
70− }
71−}
plugins/Unity/InputInfo/linux/qinputdeviceinfo_linux.cpp+7−2
@@ -44,6 +44,7 @@
44#include <libudev.h>
44#include <libudev.h>
45#include <libevdev/libevdev.h>
45#include <libevdev/libevdev.h>
46#include <fcntl.h>
46#include <fcntl.h>
47+#include <unistd.h>
47#include <QDebug>
48#include <QDebug>
48#include <QSocketNotifier>
49#include <QSocketNotifier>
49#include <QTimer>
50#include <QTimer>
@@ -52,6 +53,7 @@
52QInputDeviceManagerPrivate::QInputDeviceManagerPrivate(QObject *parent) :
53QInputDeviceManagerPrivate::QInputDeviceManagerPrivate(QObject *parent) :
53 QObject(parent),
54 QObject(parent),
54 currentFilter(QInputDevice::Unknown),
55 currentFilter(QInputDevice::Unknown),
56+ udevMonitor(0),
55 udevice(0)
57 udevice(0)
56{
58{
57 QTimer::singleShot(250,this,SLOT(init()));
59 QTimer::singleShot(250,this,SLOT(init()));
@@ -83,9 +85,9 @@ void QInputDeviceManagerPrivate::init()
83 udev_enumerate_add_match_subsystem(enumerate, subsystem.toLatin1());
85 udev_enumerate_add_match_subsystem(enumerate, subsystem.toLatin1());
84
86
85 udev_monitor_enable_receiving(udevMonitor);
87 udev_monitor_enable_receiving(udevMonitor);
86− notifierFd = udev_monitor_get_fd(udevMonitor);
88+ int notifierFd = udev_monitor_get_fd(udevMonitor);
87
89
88− notifier = new QSocketNotifier(notifierFd, QSocketNotifier::Read, this);
90+ QSocketNotifier *notifier = new QSocketNotifier(notifierFd, QSocketNotifier::Read, this);
89 connect(notifier, SIGNAL(activated(int)), this, SLOT(onUDevChanges()));
91 connect(notifier, SIGNAL(activated(int)), this, SLOT(onUDevChanges()));
90
92
91 udev_enumerate_scan_devices(enumerate);
93 udev_enumerate_scan_devices(enumerate);
@@ -168,6 +170,7 @@ QInputDevice *QInputDeviceManagerPrivate::addDevice(struct udev_device *udev)
168 rc = libevdev_new_from_fd(fd, &dev);
170 rc = libevdev_new_from_fd(fd, &dev);
169 if (rc < 0) {
171 if (rc < 0) {
170 qWarning() << "Failed to init libevdev ("<< strerror(-rc) << ")";
172 qWarning() << "Failed to init libevdev ("<< strerror(-rc) << ")";
173+ close(fd);
171 return Q_NULLPTR;
174 return Q_NULLPTR;
172 }
175 }
173
176
@@ -195,6 +198,8 @@ QInputDevice *QInputDeviceManagerPrivate::addDevice(struct udev_device *udev)
195 }
198 }
196 }
199 }
197
200
201+ libevdev_free(dev);
202+ close(fd);
198 return inputDevice;
203 return inputDevice;
199}
204}
200
205
plugins/Unity/InputInfo/linux/qinputdeviceinfo_linux_p.h−2
@@ -83,8 +83,6 @@ private:
83
83
84 QInputDevice *addDevice(const QString &path);
84 QInputDevice *addDevice(const QString &path);
85 void removeDevice(const QString &path);
85 void removeDevice(const QString &path);
86− QSocketNotifier *notifier;
87− int notifierFd;
88 struct udev_monitor *udevMonitor;
86 struct udev_monitor *udevMonitor;
89 QInputDevice::InputTypeFlags getInputTypeFlags(struct udev_device *);
87 QInputDevice::InputTypeFlags getInputTypeFlags(struct udev_device *);
90 struct udev *udevice;
88 struct udev *udevice;
plugins/Unity/Launcher/CMakeLists.txt+3−1
@@ -1,4 +1,4 @@
1−pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=7)
1+pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=9)
2pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
2pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
3
3
4add_definitions(-DSM_BUSNAME=systemBus)
4add_definitions(-DSM_BUSNAME=systemBus)
@@ -23,6 +23,8 @@ set(QMLLAUNCHERPLUGIN_SRC
23 asadapter.cpp
23 asadapter.cpp
24 ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
24 ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
25 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
25 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
26+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
27+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceListInterface.h
26 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h
28 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h
27 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h
29 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h
28 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h
30 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h
plugins/Unity/Launcher/Launcher.qmltypesdeleted−182
@@ -1,182 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Unity.Launcher 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "LauncherItem"
12− prototype: "unity::shell::launcher::LauncherItemInterface"
13− exports: ["Unity.Launcher/LauncherItem 0.1"]
14− isCreatable: false
15− exportMetaObjectRevisions: [0]
16− }
17− Component {
18− name: "LauncherModel"
19− prototype: "unity::shell::launcher::LauncherModelInterface"
20− exports: ["Unity.Launcher/LauncherModel 0.1"]
21− isCreatable: false
22− isSingleton: true
23− exportMetaObjectRevisions: [0]
24− Method {
25− name: "requestRemove"
26− Parameter { name: "appId"; type: "string" }
27− }
28− Method { name: "refresh" }
29− Method {
30− name: "get"
31− type: "unity::shell::launcher::LauncherItemInterface*"
32− Parameter { name: "index"; type: "int" }
33− }
34− Method {
35− name: "move"
36− Parameter { name: "oldIndex"; type: "int" }
37− Parameter { name: "newIndex"; type: "int" }
38− }
39− Method {
40− name: "pin"
41− Parameter { name: "appId"; type: "string" }
42− Parameter { name: "index"; type: "int" }
43− }
44− Method {
45− name: "pin"
46− Parameter { name: "appId"; type: "string" }
47− }
48− Method {
49− name: "quickListActionInvoked"
50− Parameter { name: "appId"; type: "string" }
51− Parameter { name: "actionIndex"; type: "int" }
52− }
53− Method {
54− name: "setUser"
55− Parameter { name: "username"; type: "string" }
56− }
57− Method {
58− name: "getUrlForAppId"
59− type: "string"
60− Parameter { name: "appId"; type: "string" }
61− }
62− }
63− Component {
64− name: "QuickListModel"
65− prototype: "unity::shell::launcher::QuickListModelInterface"
66− exports: ["Unity.Launcher/QuickListModel 0.1"]
67− isCreatable: false
68− exportMetaObjectRevisions: [0]
69− }
70− Component {
71− name: "unity::shell::launcher::LauncherItemInterface"
72− prototype: "QObject"
73− exports: ["Unity.Launcher/LauncherItemInterface 0.1"]
74− isCreatable: false
75− exportMetaObjectRevisions: [0]
76− Property { name: "appId"; type: "string"; isReadonly: true }
77− Property { name: "name"; type: "string"; isReadonly: true }
78− Property { name: "icon"; type: "string"; isReadonly: true }
79− Property { name: "pinned"; type: "bool"; isReadonly: true }
80− Property { name: "running"; type: "bool"; isReadonly: true }
81− Property { name: "recent"; type: "bool"; isReadonly: true }
82− Property { name: "progress"; type: "int"; isReadonly: true }
83− Property { name: "count"; type: "int"; isReadonly: true }
84− Property { name: "countVisible"; type: "bool"; isReadonly: true }
85− Property { name: "focused"; type: "bool"; isReadonly: true }
86− Property {
87− name: "quickList"
88− type: "unity::shell::launcher::QuickListModelInterface"
89− isReadonly: true
90− isPointer: true
91− }
92− Signal {
93− name: "nameChanged"
94− Parameter { name: "name"; type: "string" }
95− }
96− Signal {
97− name: "iconChanged"
98− Parameter { name: "icon"; type: "string" }
99− }
100− Signal {
101− name: "pinnedChanged"
102− Parameter { name: "pinned"; type: "bool" }
103− }
104− Signal {
105− name: "runningChanged"
106− Parameter { name: "running"; type: "bool" }
107− }
108− Signal {
109− name: "recentChanged"
110− Parameter { name: "running"; type: "bool" }
111− }
112− Signal {
113− name: "progressChanged"
114− Parameter { name: "progress"; type: "int" }
115− }
116− Signal {
117− name: "countChanged"
118− Parameter { name: "count"; type: "int" }
119− }
120− Signal {
121− name: "countVisibleChanged"
122− Parameter { name: "countVisible"; type: "bool" }
123− }
124− Signal {
125− name: "focusedChanged"
126− Parameter { name: "focused"; type: "bool" }
127− }
128− }
129− Component {
130− name: "unity::shell::launcher::LauncherModelInterface"
131− prototype: "QAbstractListModel"
132− exports: ["Unity.Launcher/LauncherModelInterface 0.1"]
133− isCreatable: false
134− exportMetaObjectRevisions: [0]
135− Property {
136− name: "applicationManager"
137− type: "unity::shell::application::ApplicationManagerInterface"
138− isPointer: true
139− }
140− Property { name: "onlyPinned"; type: "bool" }
141− Signal { name: "hint" }
142− Method {
143− name: "move"
144− Parameter { name: "oldIndex"; type: "int" }
145− Parameter { name: "newIndex"; type: "int" }
146− }
147− Method {
148− name: "get"
149− type: "unity::shell::launcher::LauncherItemInterface*"
150− Parameter { name: "index"; type: "int" }
151− }
152− Method {
153− name: "pin"
154− Parameter { name: "appId"; type: "string" }
155− Parameter { name: "index"; type: "int" }
156− }
157− Method {
158− name: "pin"
159− Parameter { name: "appId"; type: "string" }
160− }
161− Method {
162− name: "requestRemove"
163− Parameter { name: "appId"; type: "string" }
164− }
165− Method {
166− name: "quickListActionInvoked"
167− Parameter { name: "appId"; type: "string" }
168− Parameter { name: "actionIndex"; type: "int" }
169− }
170− Method {
171− name: "setUser"
172− Parameter { name: "username"; type: "string" }
173− }
174− }
175− Component {
176− name: "unity::shell::launcher::QuickListModelInterface"
177− prototype: "QAbstractListModel"
178− exports: ["Unity.Launcher/QuickListInterface 0.1"]
179− isCreatable: false
180− exportMetaObjectRevisions: [0]
181− }
182−}
plugins/Unity/Launcher/launcheritem.cpp+14−9
@@ -35,6 +35,7 @@ LauncherItem::LauncherItem(const QString &appId, const QString &name, const QStr
35 m_countVisible(false),
35 m_countVisible(false),
36 m_focused(false),
36 m_focused(false),
37 m_alerting(false),
37 m_alerting(false),
38+ m_surfaceCount(0),
38 m_quickList(new QuickListModel(this))
39 m_quickList(new QuickListModel(this))
39{
40{
40 Q_ASSERT(parent != nullptr);
41 Q_ASSERT(parent != nullptr);
@@ -162,9 +163,6 @@ void LauncherItem::setCount(int count)
162 if (m_count != count) {
163 if (m_count != count) {
163 m_count = count;
164 m_count = count;
164 Q_EMIT countChanged(count);
165 Q_EMIT countChanged(count);
165− if (m_countVisible) {
166− setAlerting(true);
167− }
168 }
166 }
169}
167}
170
168
@@ -178,9 +176,6 @@ void LauncherItem::setCountVisible(bool countVisible)
178 if (m_countVisible != countVisible) {
176 if (m_countVisible != countVisible) {
179 m_countVisible = countVisible;
177 m_countVisible = countVisible;
180 Q_EMIT countVisibleChanged(countVisible);
178 Q_EMIT countVisibleChanged(countVisible);
181− if (countVisible) {
182− setAlerting(true);
183− }
184 }
179 }
185}
180}
186
181
@@ -193,9 +188,6 @@ void LauncherItem::setFocused(bool focused)
193{
188{
194 if (m_focused != focused) {
189 if (m_focused != focused) {
195 m_focused = focused;
190 m_focused = focused;
196− if (focused) {
197− setAlerting(false);
198− }
199 Q_EMIT focusedChanged(focused);
191 Q_EMIT focusedChanged(focused);
200 }
192 }
201}
193}
@@ -213,6 +205,19 @@ void LauncherItem::setAlerting(bool alerting)
213 }
205 }
214}
206}
215
207
208+int LauncherItem::surfaceCount() const
209+{
210+ return m_surfaceCount;
211+}
212+
213+void LauncherItem::setSurfaceCount(int surfaceCount)
214+{
215+ if (m_surfaceCount != surfaceCount) {
216+ m_surfaceCount = surfaceCount;
217+ Q_EMIT surfaceCountChanged(surfaceCount);
218+ }
219+}
220+
216unity::shell::launcher::QuickListModelInterface *LauncherItem::quickList() const
221unity::shell::launcher::QuickListModelInterface *LauncherItem::quickList() const
217{
222{
218 return m_quickList;
223 return m_quickList;
plugins/Unity/Launcher/launcheritem.h+3
@@ -45,6 +45,7 @@ public:
45 bool countVisible() const override;
45 bool countVisible() const override;
46 bool focused() const override;
46 bool focused() const override;
47 bool alerting() const override;
47 bool alerting() const override;
48+ int surfaceCount() const override;
48
49
49 unity::shell::launcher::QuickListModelInterface *quickList() const override;
50 unity::shell::launcher::QuickListModelInterface *quickList() const override;
50
51
@@ -59,6 +60,7 @@ private:
59 void setCountVisible(bool countVisible);
60 void setCountVisible(bool countVisible);
60 void setFocused(bool focused);
61 void setFocused(bool focused);
61 void setAlerting(bool alerting);
62 void setAlerting(bool alerting);
63+ void setSurfaceCount(int surfaceCount);
62
64
63private:
65private:
64 QString m_appId;
66 QString m_appId;
@@ -72,6 +74,7 @@ private:
72 bool m_countVisible;
74 bool m_countVisible;
73 bool m_focused;
75 bool m_focused;
74 bool m_alerting;
76 bool m_alerting;
77+ int m_surfaceCount;
75 QuickListModel *m_quickList;
78 QuickListModel *m_quickList;
76 QuickListEntry m_quitAction;
79 QuickListEntry m_quitAction;
77
80
plugins/Unity/Launcher/launchermodel.cpp+58−26
@@ -25,6 +25,7 @@
25#include "asadapter.h"
25#include "asadapter.h"
26
26
27#include <unity/shell/application/ApplicationInfoInterface.h>
27#include <unity/shell/application/ApplicationInfoInterface.h>
28+#include <unity/shell/application/MirSurfaceListInterface.h>
28
29
29#include <QDesktopServices>
30#include <QDesktopServices>
30#include <QDebug>
31#include <QDebug>
@@ -88,6 +89,8 @@ QVariant LauncherModel::data(const QModelIndex &index, int role) const
88 return item->alerting();
89 return item->alerting();
89 case RoleRunning:
90 case RoleRunning:
90 return item->running();
91 return item->running();
92+ case RoleSurfaceCount:
93+ return item->surfaceCount();
91 default:
94 default:
92 qWarning() << Q_FUNC_INFO << "missing role, implement me";
95 qWarning() << Q_FUNC_INFO << "missing role, implement me";
93 return QVariant();
96 return QVariant();
@@ -96,18 +99,6 @@ QVariant LauncherModel::data(const QModelIndex &index, int role) const
96 return QVariant();
99 return QVariant();
97}
100}
98
101
99−void LauncherModel::setAlerting(const QString &appId, bool alerting) {
100− int index = findApplication(appId);
101− if (index >= 0) {
102− QModelIndex modelIndex = this->index(index);
103− LauncherItem *item = m_list.at(index);
104− if (!item->focused()) {
105− item->setAlerting(alerting);
106− Q_EMIT dataChanged(modelIndex, modelIndex, {RoleAlerting});
107− }
108− }
109−}
110−
111unity::shell::launcher::LauncherItemInterface *LauncherModel::get(int index) const
102unity::shell::launcher::LauncherItemInterface *LauncherModel::get(int index) const
112{
103{
113 if (index < 0 || index >= m_list.count()) {
104 if (index < 0 || index >= m_list.count()) {
@@ -358,11 +349,13 @@ void LauncherModel::countChanged(const QString &appId, int count)
358 if (idx >= 0) {
349 if (idx >= 0) {
359 LauncherItem *item = m_list.at(idx);
350 LauncherItem *item = m_list.at(idx);
360 item->setCount(count);
351 item->setCount(count);
352+ QVector<int> changedRoles = {RoleCount};
361− if (item->countVisible()) {
353+ if (item->countVisible() && !item->alerting() && !item->focused()) {
354+ changedRoles << RoleAlerting;
362− setAlerting(item->appId(), true);
355+ item->setAlerting(true);
363 }
356 }
364 m_asAdapter->syncItems(m_list);
357 m_asAdapter->syncItems(m_list);
365− Q_EMIT dataChanged(index(idx), index(idx), {RoleCount});
358+ Q_EMIT dataChanged(index(idx), index(idx), changedRoles);
366 }
359 }
367}
360}
368
361
@@ -372,10 +365,12 @@ void LauncherModel::countVisibleChanged(const QString &appId, bool countVisible)
372 if (idx >= 0) {
365 if (idx >= 0) {
373 LauncherItem *item = m_list.at(idx);
366 LauncherItem *item = m_list.at(idx);
374 item->setCountVisible(countVisible);
367 item->setCountVisible(countVisible);
368+ QVector<int> changedRoles = {RoleCountVisible};
375− if (countVisible) {
369+ if (countVisible && !item->alerting() && !item->focused()) {
370+ changedRoles << RoleAlerting;
376− setAlerting(item->appId(), true);
371+ item->setAlerting(true);
377 }
372 }
378− Q_EMIT dataChanged(index(idx), index(idx), {RoleCountVisible});
373+ Q_EMIT dataChanged(index(idx), index(idx), changedRoles);
379
374
380 // If countVisible goes to false, and the item is neither pinned nor recent we can drop it
375 // If countVisible goes to false, and the item is neither pinned nor recent we can drop it
381 if (!countVisible && !item->pinned() && !item->recent()) {
376 if (!countVisible && !item->pinned() && !item->recent()) {
@@ -498,8 +493,10 @@ void LauncherModel::alert(const QString &appId)
498 int idx = findApplication(appId);
493 int idx = findApplication(appId);
499 if (idx >= 0) {
494 if (idx >= 0) {
500 LauncherItem *item = m_list.at(idx);
495 LauncherItem *item = m_list.at(idx);
496+ if (!item->focused() && !item->alerting()) {
501− setAlerting(item->appId(), true);
497+ item->setAlerting(true);
502− Q_EMIT dataChanged(index(idx), index(idx), {RoleAlerting});
498+ Q_EMIT dataChanged(index(idx), index(idx), {RoleAlerting});
499+ }
503 }
500 }
504}
501}
505
502
@@ -525,28 +522,50 @@ void LauncherModel::applicationAdded(const QModelIndex &parent, int row)
525 item->setRecent(true);
522 item->setRecent(true);
526 Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleRecent});
523 Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleRecent});
527 }
524 }
525+ if (item->surfaceCount() != app->surfaceCount()) {
526+ item->setSurfaceCount(app->surfaceCount());
527+ Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleSurfaceCount});
528+ }
529+
528 item->setRunning(true);
530 item->setRunning(true);
529 } else {
531 } else {
530 LauncherItem *item = new LauncherItem(app->appId(), app->name(), app->icon().toString(), this);
532 LauncherItem *item = new LauncherItem(app->appId(), app->name(), app->icon().toString(), this);
531 item->setRecent(true);
533 item->setRecent(true);
532 item->setRunning(true);
534 item->setRunning(true);
533 item->setFocused(app->focused());
535 item->setFocused(app->focused());
534−
536+ item->setSurfaceCount(app->surfaceCount());
535 beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
537 beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
536 m_list.append(item);
538 m_list.append(item);
537 endInsertRows();
539 endInsertRows();
538 }
540 }
541+ connect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::applicationSurfaceCountChanged);
539 m_asAdapter->syncItems(m_list);
542 m_asAdapter->syncItems(m_list);
540 Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleRunning});
543 Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleRunning});
541}
544}
542
545
546+void LauncherModel::applicationSurfaceCountChanged(int count)
547+{
548+ ApplicationInfoInterface *app = static_cast<ApplicationInfoInterface*>(sender());
549+ int idx = findApplication(app->appId());
550+ if (idx < 0) {
551+ qWarning() << "Received a surface count changed event from an app that's not in the Launcher model";
552+ return;
553+ }
554+ LauncherItem *item = m_list.at(idx);
555+ if (item->surfaceCount() != count) {
556+ item->setSurfaceCount(count);
557+ Q_EMIT dataChanged(index(idx), index(idx), {RoleSurfaceCount});
558+ }
559+}
560+
543void LauncherModel::applicationRemoved(const QModelIndex &parent, int row)
561void LauncherModel::applicationRemoved(const QModelIndex &parent, int row)
544{
562{
545 Q_UNUSED(parent)
563 Q_UNUSED(parent)
546
564
565+ ApplicationInfoInterface *app = m_appManager->get(row);
547 int appIndex = -1;
566 int appIndex = -1;
548 for (int i = 0; i < m_list.count(); ++i) {
567 for (int i = 0; i < m_list.count(); ++i) {
549− if (m_list.at(i)->appId() == m_appManager->get(row)->appId()) {
568+ if (m_list.at(i)->appId() == app->appId()) {
550 appIndex = i;
569 appIndex = i;
551 break;
570 break;
552 }
571 }
@@ -557,17 +576,24 @@ void LauncherModel::applicationRemoved(const QModelIndex &parent, int row)
557 return;
576 return;
558 }
577 }
559
578
579+ disconnect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::applicationSurfaceCountChanged);
580+
560 LauncherItem * item = m_list.at(appIndex);
581 LauncherItem * item = m_list.at(appIndex);
561− item->setRunning(false);
562
582
563 if (!item->pinned()) {
583 if (!item->pinned()) {
564 beginRemoveRows(QModelIndex(), appIndex, appIndex);
584 beginRemoveRows(QModelIndex(), appIndex, appIndex);
565 m_list.takeAt(appIndex)->deleteLater();
585 m_list.takeAt(appIndex)->deleteLater();
566 endRemoveRows();
586 endRemoveRows();
567 m_asAdapter->syncItems(m_list);
587 m_asAdapter->syncItems(m_list);
588+ } else {
589+ QVector<int> changedRoles = {RoleRunning};
590+ item->setRunning(false);
591+ if (item->focused()) {
592+ changedRoles << RoleFocused;
593+ item->setFocused(false);
594+ }
568− Q_EMIT dataChanged(index(appIndex), index(appIndex), {RolePinned});
595+ Q_EMIT dataChanged(index(appIndex), index(appIndex), changedRoles);
569 }
596 }
570− Q_EMIT dataChanged(index(appIndex), index(appIndex), {RoleRunning});
571}
597}
572
598
573void LauncherModel::focusedAppIdChanged()
599void LauncherModel::focusedAppIdChanged()
@@ -576,8 +602,14 @@ void LauncherModel::focusedAppIdChanged()
576 for (int i = 0; i < m_list.count(); ++i) {
602 for (int i = 0; i < m_list.count(); ++i) {
577 LauncherItem *item = m_list.at(i);
603 LauncherItem *item = m_list.at(i);
578 if (!item->focused() && item->appId() == appId) {
604 if (!item->focused() && item->appId() == appId) {
605+ QVector<int> changedRoles;
606+ changedRoles << RoleFocused;
579 item->setFocused(true);
607 item->setFocused(true);
580− Q_EMIT dataChanged(index(i), index(i), {RoleFocused});
608+ if (item->alerting()) {
609+ changedRoles << RoleAlerting;
610+ item->setAlerting(false);
611+ }
612+ Q_EMIT dataChanged(index(i), index(i), changedRoles);
581 } else if (item->focused() && item->appId() != appId) {
613 } else if (item->focused() && item->appId() != appId) {
582 item->setFocused(false);
614 item->setFocused(false);
583 Q_EMIT dataChanged(index(i), index(i), {RoleFocused});
615 Q_EMIT dataChanged(index(i), index(i), {RoleFocused});
plugins/Unity/Launcher/launchermodel.h+1−1
@@ -45,7 +45,6 @@ public:
45
45
46 QVariant data(const QModelIndex &index, int role) const override;
46 QVariant data(const QModelIndex &index, int role) const override;
47
47
48− Q_INVOKABLE void setAlerting(const QString &appId, bool alerting) override;
49 Q_INVOKABLE unity::shell::launcher::LauncherItemInterface* get(int index) const override;
48 Q_INVOKABLE unity::shell::launcher::LauncherItemInterface* get(int index) const override;
50 Q_INVOKABLE void move(int oldIndex, int newIndex) override;
49 Q_INVOKABLE void move(int oldIndex, int newIndex) override;
51 Q_INVOKABLE void pin(const QString &appId, int index = -1) override;
50 Q_INVOKABLE void pin(const QString &appId, int index = -1) override;
@@ -79,6 +78,7 @@ private Q_SLOTS:
79 void applicationAdded(const QModelIndex &parent, int row);
78 void applicationAdded(const QModelIndex &parent, int row);
80 void applicationRemoved(const QModelIndex &parent, int row);
79 void applicationRemoved(const QModelIndex &parent, int row);
81 void focusedAppIdChanged();
80 void focusedAppIdChanged();
81+ void applicationSurfaceCountChanged(int);
82
82
83private:
83private:
84 QList<LauncherItem*> m_list;
84 QList<LauncherItem*> m_list;
plugins/Unity/Platform/Platform.qmltypesdeleted−20
@@ -1,20 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Unity.Platform 1.0 plugins'
8−
9−Module {
10− Component {
11− name: "Platform"
12− prototype: "QObject"
13− exports: ["Unity.Platform/Platform 1.0"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Property { name: "chassis"; type: "string"; isReadonly: true }
18− Property { name: "isPC"; type: "bool"; isReadonly: true }
19− }
20−}
plugins/Unity/Session/CMakeLists.txt+2
@@ -6,6 +6,8 @@ include_directories(
6 ${libunity8-private_SOURCE_DIR}
6 ${libunity8-private_SOURCE_DIR}
7)
7)
8
8
9+add_definitions(-DSM_BUSNAME=systemBus)
10+
9set(QMLSESSIONPLUGIN_SRC
11set(QMLSESSIONPLUGIN_SRC
10 plugin.cpp
12 plugin.cpp
11 dbusunitysessionservice.cpp
13 dbusunitysessionservice.cpp
plugins/Unity/Session/Session.qmltypesdeleted−85
@@ -1,85 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Unity.Session 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "DBusUnitySessionService"
12− prototype: "UnityDBusObject"
13− exports: ["Unity.Session/DBusUnitySessionService 0.1"]
14− isCreatable: false
15− isSingleton: true
16− exportMetaObjectRevisions: [0]
17− Signal {
18− name: "LogoutRequested"
19− Parameter { name: "have_inhibitors"; type: "bool" }
20− }
21− Signal {
22− name: "logoutRequested"
23− Parameter { name: "have_inhibitors"; type: "bool" }
24− }
25− Signal {
26− name: "RebootRequested"
27− Parameter { name: "have_inhibitors"; type: "bool" }
28− }
29− Signal {
30− name: "rebootRequested"
31− Parameter { name: "have_inhibitors"; type: "bool" }
32− }
33− Signal {
34− name: "ShutdownRequested"
35− Parameter { name: "have_inhibitors"; type: "bool" }
36− }
37− Signal {
38− name: "shutdownRequested"
39− Parameter { name: "have_inhibitors"; type: "bool" }
40− }
41− Signal { name: "LogoutReady" }
42− Signal { name: "logoutReady" }
43− Signal { name: "LockRequested" }
44− Signal { name: "lockRequested" }
45− Signal { name: "Locked" }
46− Signal { name: "Unlocked" }
47− Method { name: "Logout" }
48− Method { name: "Reboot" }
49− Method { name: "Shutdown" }
50− Method { name: "Suspend" }
51− Method { name: "Hibernate" }
52− Method { name: "HybridSleep" }
53− Method { name: "RequestLogout" }
54− Method { name: "RequestReboot" }
55− Method { name: "RequestShutdown" }
56− Method { name: "EndSession" }
57− Method { name: "CanHibernate"; type: "bool" }
58− Method { name: "CanSuspend"; type: "bool" }
59− Method { name: "CanHybridSleep"; type: "bool" }
60− Method { name: "CanReboot"; type: "bool" }
61− Method { name: "CanShutdown"; type: "bool" }
62− Method { name: "CanLock"; type: "bool" }
63− Method { name: "UserName"; type: "string" }
64− Method { name: "RealName"; type: "string" }
65− Method { name: "HostName"; type: "string" }
66− Method { name: "PromptLock" }
67− Method { name: "Lock" }
68− Method { name: "IsLocked"; type: "bool" }
69− Method { name: "logout" }
70− Method { name: "reboot" }
71− Method { name: "shutdown" }
72− Method { name: "endSession" }
73− }
74− Component {
75− name: "OrientationLock"
76− prototype: "QObject"
77− exports: ["Unity.Session/OrientationLock 0.1"]
78− isCreatable: false
79− isSingleton: true
80− exportMetaObjectRevisions: [0]
81− Property { name: "enabled"; type: "bool"; isReadonly: true }
82− Property { name: "savedOrientation"; type: "Qt::ScreenOrientation" }
83− }
84− Component { name: "UnityDBusObject"; prototype: "QObject" }
85−}
plugins/Unity/Session/dbusunitysessionservice.cpp+50−18
@@ -64,19 +64,19 @@ public:
64 QStringLiteral("GetSessionByPID"));
64 QStringLiteral("GetSessionByPID"));
65 msg << (quint32) getpid();
65 msg << (quint32) getpid();
66
66
67− QDBusReply<QDBusObjectPath> reply = QDBusConnection::systemBus().call(msg);
67+ QDBusReply<QDBusObjectPath> reply = QDBusConnection::SM_BUSNAME().call(msg);
68 if (reply.isValid()) {
68 if (reply.isValid()) {
69 logindSessionPath = reply.value().path();
69 logindSessionPath = reply.value().path();
70
70
71 // start watching the Active property
71 // start watching the Active property
72− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, logindSessionPath, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("PropertiesChanged"),
72+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, logindSessionPath, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("PropertiesChanged"),
73− this, SLOT(onPropertiesChanged(QString,QVariantMap,QStringList)));
73+ this, SLOT(onPropertiesChanged(QString,QVariantMap,QStringList)));
74
74
75 setupSystemdInhibition();
75 setupSystemdInhibition();
76
76
77 // re-enable the inhibition upon resume from sleep
77 // re-enable the inhibition upon resume from sleep
78− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_IFACE, QStringLiteral("PrepareForSleep"),
78+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_IFACE, QStringLiteral("PrepareForSleep"),
79− this, SLOT(onResuming(bool)));
79+ this, SLOT(onResuming(bool)));
80 } else {
80 } else {
81 qWarning() << "Failed to get logind session path" << reply.error().message();
81 qWarning() << "Failed to get logind session path" << reply.error().message();
82 }
82 }
@@ -96,7 +96,7 @@ public:
96 msg << "Unity8 handles power events"; // why
96 msg << "Unity8 handles power events"; // why
97 msg << "block"; // mode
97 msg << "block"; // mode
98
98
99− QDBusPendingCall pendingCall = QDBusConnection::systemBus().asyncCall(msg);
99+ QDBusPendingCall pendingCall = QDBusConnection::SM_BUSNAME().asyncCall(msg);
100 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
100 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
101 connect(watcher, &QDBusPendingCallWatcher::finished,
101 connect(watcher, &QDBusPendingCallWatcher::finished,
102 this, [this](QDBusPendingCallWatcher* watcher) {
102 this, [this](QDBusPendingCallWatcher* watcher) {
@@ -114,7 +114,7 @@ public:
114 bool checkLogin1Call(const QString &method) const
114 bool checkLogin1Call(const QString &method) const
115 {
115 {
116 QDBusMessage msg = QDBusMessage::createMethodCall(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_IFACE, method);
116 QDBusMessage msg = QDBusMessage::createMethodCall(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_IFACE, method);
117− QDBusReply<QString> reply = QDBusConnection::systemBus().call(msg);
117+ QDBusReply<QString> reply = QDBusConnection::SM_BUSNAME().call(msg);
118 return reply.isValid() && (reply == QStringLiteral("yes") || reply == QStringLiteral("challenge"));
118 return reply.isValid() && (reply == QStringLiteral("yes") || reply == QStringLiteral("challenge"));
119 }
119 }
120
120
@@ -125,7 +125,7 @@ public:
125 LOGIN1_IFACE,
125 LOGIN1_IFACE,
126 method);
126 method);
127 msg.setArguments(args);
127 msg.setArguments(args);
128− QDBusConnection::systemBus().asyncCall(msg);
128+ QDBusConnection::SM_BUSNAME().asyncCall(msg);
129 }
129 }
130
130
131 void setActive(bool active)
131 void setActive(bool active)
@@ -157,7 +157,7 @@ public:
157 msg << LOGIN1_SESSION_IFACE;
157 msg << LOGIN1_SESSION_IFACE;
158 msg << ACTIVE_KEY;
158 msg << ACTIVE_KEY;
159
159
160− QDBusPendingCall pendingCall = QDBusConnection::systemBus().asyncCall(msg);
160+ QDBusPendingCall pendingCall = QDBusConnection::SM_BUSNAME().asyncCall(msg);
161 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
161 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
162 connect(watcher, &QDBusPendingCallWatcher::finished,
162 connect(watcher, &QDBusPendingCallWatcher::finished,
163 this, [this](QDBusPendingCallWatcher* watcher) {
163 this, [this](QDBusPendingCallWatcher* watcher) {
@@ -191,7 +191,7 @@ public:
191 msg << LOGIN1_SESSION_IFACE;
191 msg << LOGIN1_SESSION_IFACE;
192 msg << IDLE_SINCE_KEY;
192 msg << IDLE_SINCE_KEY;
193
193
194− QDBusReply<QVariant> reply = QDBusConnection::systemBus().call(msg);
194+ QDBusReply<QVariant> reply = QDBusConnection::SM_BUSNAME().call(msg);
195 if (reply.isValid()) {
195 if (reply.isValid()) {
196 return reply.value().value<quint64>();
196 return reply.value().value<quint64>();
197 } else {
197 } else {
@@ -208,7 +208,7 @@ public:
208 LOGIN1_SESSION_IFACE,
208 LOGIN1_SESSION_IFACE,
209 QStringLiteral("SetIdleHint"));
209 QStringLiteral("SetIdleHint"));
210 msg << idle;
210 msg << idle;
211− QDBusConnection::systemBus().asyncCall(msg);
211+ QDBusConnection::SM_BUSNAME().asyncCall(msg);
212 }
212 }
213
213
214private Q_SLOTS:
214private Q_SLOTS:
@@ -243,11 +243,11 @@ DBusUnitySessionService::DBusUnitySessionService()
243 : UnityDBusObject(QStringLiteral("/com/canonical/Unity/Session"), QStringLiteral("com.canonical.Unity"))
243 : UnityDBusObject(QStringLiteral("/com/canonical/Unity/Session"), QStringLiteral("com.canonical.Unity"))
244{
244{
245 if (!d->logindSessionPath.isEmpty()) {
245 if (!d->logindSessionPath.isEmpty()) {
246− // connect our Lock() slot to the logind's session Lock() signal
246+ // connect our PromptLock() slot to the logind's session Lock() signal
247− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Lock"), this, SLOT(Lock()));
247+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Lock"), this, SLOT(PromptLock()));
248 // ... and our Unlocked() signal to the logind's session Unlock() signal
248 // ... and our Unlocked() signal to the logind's session Unlock() signal
249 // (lightdm handles the unlocking by calling logind's Unlock method which in turn emits this signal we connect to)
249 // (lightdm handles the unlocking by calling logind's Unlock method which in turn emits this signal we connect to)
250− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Unlock"), this, SIGNAL(Unlocked()));
250+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Unlock"), this, SLOT(doUnlock()));
251 connect(d, &DBusUnitySessionServicePrivate::prepareForSleep, this, &DBusUnitySessionService::PromptLock);
251 connect(d, &DBusUnitySessionServicePrivate::prepareForSleep, this, &DBusUnitySessionService::PromptLock);
252 } else {
252 } else {
253 qWarning() << "Failed to connect to logind's session Lock/Unlock signals";
253 qWarning() << "Failed to connect to logind's session Lock/Unlock signals";
@@ -332,15 +332,41 @@ QString DBusUnitySessionService::HostName() const
332
332
333void DBusUnitySessionService::PromptLock()
333void DBusUnitySessionService::PromptLock()
334{
334{
335+ // Prompt as in quick. No locking animation needed. Usually used by
336+ // indicator-session in combination with a switch to greeter or other
337+ // user session.
335 Q_EMIT LockRequested();
338 Q_EMIT LockRequested();
336 Q_EMIT lockRequested();
339 Q_EMIT lockRequested();
337}
340}
338
341
339void DBusUnitySessionService::Lock()
342void DBusUnitySessionService::Lock()
340{
343{
341− // signal u8 to show the lockscreen/greeter
344+ // Normal lock (with animation, as compared to PromptLock above). Usually
345+ // used by indicator-session to lock the session in place.
346+ //
347+ // FIXME: We also -- as a bit of a hack around indicator-session not fully
348+ // supporting a phone profile -- switch to greeter here. The unity7 flow is
349+ // that the user chooses "Lock/Switch" from the indicator, and then can go
350+ // to greeter by selecting "Switch" again from the indicator, which is now
351+ // exposed by the desktop_lockscreen profile. But since in unity8, we try
352+ // to expose most things all the time, we don't use the separate lockscreen
353+ // profile. Instead, we just go directly to the greeter the first time
354+ // a user presses "Lock/Switch". This isn't what this DBus call is
355+ // supposed to do, but we can live with it for now.
356+ //
357+ // Here's a bug about indicator-session growing a converged Touch profile:
358+ // https://launchpad.net/bugs/1557716
359+ //
360+ // We only do this here in the animated-lock call because that's the only
361+ // time the indicator locks without also asking the display manager to
362+ // switch sessions on us. And since we are switching screens, we also
363+ // don't bother respecting the animate request, simply doing a PromptLock.
342 PromptLock();
364 PromptLock();
365+ switchToGreeter();
366+}
343
367
368+void DBusUnitySessionService::switchToGreeter()
369+{
344 // lock the session using the org.freedesktop.DisplayManager system DBUS service
370 // lock the session using the org.freedesktop.DisplayManager system DBUS service
345 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
371 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
346 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
372 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
@@ -348,7 +374,7 @@ void DBusUnitySessionService::Lock()
348 QStringLiteral("org.freedesktop.DisplayManager.Session"),
374 QStringLiteral("org.freedesktop.DisplayManager.Session"),
349 QStringLiteral("Lock"));
375 QStringLiteral("Lock"));
350
376
351− QDBusPendingCall pendingCall = QDBusConnection::systemBus().asyncCall(msg);
377+ QDBusPendingCall pendingCall = QDBusConnection::SM_BUSNAME().asyncCall(msg);
352 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
378 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
353 connect(watcher, &QDBusPendingCallWatcher::finished,
379 connect(watcher, &QDBusPendingCallWatcher::finished,
354 this, [this](QDBusPendingCallWatcher* watcher) {
380 this, [this](QDBusPendingCallWatcher* watcher) {
@@ -365,6 +391,12 @@ void DBusUnitySessionService::Lock()
365 });
391 });
366}
392}
367
393
394+void DBusUnitySessionService::doUnlock()
395+{
396+ Q_EMIT Unlocked();
397+ Q_EMIT unlocked();
398+}
399+
368bool DBusUnitySessionService::IsLocked() const
400bool DBusUnitySessionService::IsLocked() const
369{
401{
370 return !d->isSessionActive;
402 return !d->isSessionActive;
@@ -486,7 +518,7 @@ void DBusGnomeScreensaverWrapper::SetActive(bool lock)
486
518
487void DBusGnomeScreensaverWrapper::Lock()
519void DBusGnomeScreensaverWrapper::Lock()
488{
520{
489− performAsyncUnityCall(QStringLiteral("Lock"));
521+ performAsyncUnityCall(QStringLiteral("PromptLock"));
490}
522}
491
523
492quint32 DBusGnomeScreensaverWrapper::GetActiveTime() const
524quint32 DBusGnomeScreensaverWrapper::GetActiveTime() const
@@ -523,7 +555,7 @@ bool DBusScreensaverWrapper::SetActive(bool lock)
523
555
524void DBusScreensaverWrapper::Lock()
556void DBusScreensaverWrapper::Lock()
525{
557{
526− performAsyncUnityCall(QStringLiteral("Lock"));
558+ performAsyncUnityCall(QStringLiteral("PromptLock"));
527}
559}
528
560
529quint32 DBusScreensaverWrapper::GetActiveTime() const
561quint32 DBusScreensaverWrapper::GetActiveTime() const
plugins/Unity/Session/dbusunitysessionservice.h+7
@@ -106,6 +106,7 @@ Q_SIGNALS:
106 * Emitted after the session has been unlocked.
106 * Emitted after the session has been unlocked.
107 */
107 */
108 Q_SCRIPTABLE void Unlocked();
108 Q_SCRIPTABLE void Unlocked();
109+ void unlocked();
109
110
110public Q_SLOTS:
111public Q_SLOTS:
111 /**
112 /**
@@ -258,6 +259,12 @@ public Q_SLOTS:
258 * @return whether the session is currently locked
259 * @return whether the session is currently locked
259 */
260 */
260 Q_SCRIPTABLE bool IsLocked() const;
261 Q_SCRIPTABLE bool IsLocked() const;
262+
263+private Q_SLOTS:
264+ void doUnlock();
265+
266+private:
267+ void switchToGreeter();
261};
268};
262
269
263class DBusGnomeSessionManagerWrapper : public UnityDBusObject
270class DBusGnomeSessionManagerWrapper : public UnityDBusObject
plugins/Utils/CMakeLists.txt+5
@@ -1,6 +1,10 @@
1include_directories(
1include_directories(
2 ${CMAKE_CURRENT_SOURCE_DIR}
2 ${CMAKE_CURRENT_SOURCE_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
4+)
5+
6+include_directories(
7+ SYSTEM
4 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
8 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
5 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
9 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
6 ${GIO_INCLUDE_DIRS}
10 ${GIO_INCLUDE_DIRS}
@@ -9,6 +13,7 @@ include_directories(
9set(QMLPLUGIN_SRC
13set(QMLPLUGIN_SRC
10 activefocuslogger.cpp
14 activefocuslogger.cpp
11 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
15 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
16+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
12 applicationsfiltermodel.cpp
17 applicationsfiltermodel.cpp
13 constants.cpp
18 constants.cpp
14 WindowInputMonitor.cpp
19 WindowInputMonitor.cpp
plugins/Utils/Utils.qmltypesdeleted−175
@@ -1,175 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Utils 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "EasingCurve"
12− prototype: "QObject"
13− exports: ["Utils/EasingCurve 0.1"]
14− exportMetaObjectRevisions: [0]
15− Property { name: "type"; type: "QEasingCurve::Type" }
16− Property { name: "period"; type: "double" }
17− Property { name: "progress"; type: "double" }
18− Property { name: "value"; type: "double"; isReadonly: true }
19− }
20− Component {
21− name: "QAbstractProxyModel"
22− prototype: "QAbstractItemModel"
23− Property { name: "sourceModel"; type: "QAbstractItemModel"; isPointer: true }
24− }
25− Component { name: "QIdentityProxyModel"; prototype: "QAbstractProxyModel" }
26− Component {
27− name: "QLimitProxyModelQML"
28− prototype: "QIdentityProxyModel"
29− exports: ["Utils/LimitProxyModel 0.1"]
30− exportMetaObjectRevisions: [0]
31− Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
32− Property { name: "limit"; type: "int" }
33− Property { name: "count"; type: "int"; isReadonly: true }
34− Signal { name: "totalCountChanged" }
35− }
36− Component {
37− name: "QSortFilterProxyModel"
38− prototype: "QAbstractProxyModel"
39− Property { name: "filterRegExp"; type: "QRegExp" }
40− Property { name: "filterKeyColumn"; type: "int" }
41− Property { name: "dynamicSortFilter"; type: "bool" }
42− Property { name: "filterCaseSensitivity"; type: "Qt::CaseSensitivity" }
43− Property { name: "sortCaseSensitivity"; type: "Qt::CaseSensitivity" }
44− Property { name: "isSortLocaleAware"; type: "bool" }
45− Property { name: "sortRole"; type: "int" }
46− Property { name: "filterRole"; type: "int" }
47− Method {
48− name: "setFilterRegExp"
49− Parameter { name: "pattern"; type: "string" }
50− }
51− Method {
52− name: "setFilterWildcard"
53− Parameter { name: "pattern"; type: "string" }
54− }
55− Method {
56− name: "setFilterFixedString"
57− Parameter { name: "pattern"; type: "string" }
58− }
59− Method { name: "clear" }
60− Method { name: "invalidate" }
61− }
62− Component {
63− name: "RelativeTimeFormatter"
64− prototype: "TimeFormatter"
65− exports: ["Utils/RelativeTimeFormatter 0.1"]
66− exportMetaObjectRevisions: [0]
67− }
68− Component {
69− name: "TimeFormatter"
70− prototype: "QObject"
71− exports: ["Utils/GDateTimeFormatter 0.1", "Utils/TimeFormatter 0.1"]
72− exportMetaObjectRevisions: [0, 0]
73− Property { name: "format"; type: "string" }
74− Property { name: "timeString"; type: "string"; isReadonly: true }
75− Property { name: "time"; type: "qlonglong" }
76− Signal {
77− name: "formatChanged"
78− Parameter { name: "format"; type: "string" }
79− }
80− Signal {
81− name: "timeStringChanged"
82− Parameter { name: "timeString"; type: "string" }
83− }
84− Signal {
85− name: "timeChanged"
86− Parameter { name: "time"; type: "qlonglong" }
87− }
88− }
89− Component {
90− name: "UnityMenuModelPaths"
91− prototype: "QObject"
92− exports: ["Utils/UnityMenuModelPaths 0.1"]
93− exportMetaObjectRevisions: [0]
94− Property { name: "source"; type: "QVariant" }
95− Property { name: "busName"; type: "QByteArray"; isReadonly: true }
96− Property { name: "actions"; type: "QVariantMap"; isReadonly: true }
97− Property { name: "menuObjectPath"; type: "QByteArray"; isReadonly: true }
98− Property { name: "busNameHint"; type: "QByteArray" }
99− Property { name: "actionsHint"; type: "QByteArray" }
100− Property { name: "menuObjectPathHint"; type: "QByteArray" }
101− }
102− Component {
103− name: "UnitySortFilterProxyModelQML"
104− prototype: "QSortFilterProxyModel"
105− exports: ["Utils/UnitySortFilterProxyModel 0.1"]
106− exportMetaObjectRevisions: [0]
107− Property { name: "model"; type: "QAbstractItemModel"; isPointer: true }
108− Property { name: "totalCount"; type: "int"; isReadonly: true }
109− Property { name: "count"; type: "int"; isReadonly: true }
110− Property { name: "invertMatch"; type: "bool" }
111− Signal {
112− name: "invertMatchChanged"
113− Parameter { type: "bool" }
114− }
115− Method {
116− name: "get"
117− type: "QVariantMap"
118− Parameter { name: "row"; type: "int" }
119− }
120− Method {
121− name: "data"
122− type: "QVariant"
123− Parameter { name: "row"; type: "int" }
124− Parameter { name: "role"; type: "int" }
125− }
126− Method { name: "count"; type: "int" }
127− Method {
128− name: "findFirst"
129− type: "int"
130− Parameter { name: "role"; type: "int" }
131− Parameter { name: "value"; type: "QVariant" }
132− }
133− Method {
134− name: "mapRowToSource"
135− type: "int"
136− Parameter { name: "row"; type: "int" }
137− }
138− Method {
139− name: "mapFromSource"
140− type: "int"
141− Parameter { name: "row"; type: "int" }
142− }
143− Method {
144− name: "mapToSource"
145− type: "int"
146− Parameter { name: "row"; type: "int" }
147− }
148− }
149− Component {
150− name: "WindowInputFilter"
151− defaultProperty: "data"
152− prototype: "QQuickItem"
153− exports: ["Utils/WindowInputFilter 0.1"]
154− exportMetaObjectRevisions: [0]
155− }
156− Component {
157− name: "WindowStateStorage"
158− prototype: "QObject"
159− exports: ["Utils/WindowStateStorage 0.1"]
160− isCreatable: false
161− isSingleton: true
162− exportMetaObjectRevisions: [0]
163− Method {
164− name: "saveGeometry"
165− Parameter { name: "windowId"; type: "string" }
166− Parameter { name: "rect"; type: "QRect" }
167− }
168− Method {
169− name: "getGeometry"
170− type: "QRect"
171− Parameter { name: "windowId"; type: "string" }
172− Parameter { name: "defaultValue"; type: "QRect" }
173− }
174− }
175−}
plugins/Utils/deviceconfigparser.cpp+1−1
@@ -26,7 +26,7 @@ DeviceConfigParser::DeviceConfigParser(QObject *parent): QObject(parent)
26 // Local files have highest priority
26 // Local files have highest priority
27 QString path;
27 QString path;
28 Q_FOREACH (const QString &standardPath, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) {
28 Q_FOREACH (const QString &standardPath, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) {
29− if (QFileInfo(standardPath + "/devices.conf").exists()) {
29+ if (QFileInfo::exists(standardPath + "/devices.conf")) {
30 path = standardPath + "/devices.conf";
30 path = standardPath + "/devices.conf";
31 break;
31 break;
32 }
32 }
plugins/Utils/globalfunctions.cpp+1−4
@@ -16,11 +16,8 @@
16
16
17#include "globalfunctions.h"
17#include "globalfunctions.h"
18
18
19−#pragma GCC diagnostic push
20−#pragma GCC diagnostic ignored "-pedantic"
21−#include <private/qquickitem_p.h>
22−#pragma GCC diagnostic pop
23#include <QQmlEngine>
19#include <QQmlEngine>
20+#include <private/qquickitem_p.h>
24
21
25GlobalFunctions::GlobalFunctions(QObject *parent)
22GlobalFunctions::GlobalFunctions(QObject *parent)
26 : QObject(parent)
23 : QObject(parent)
plugins/Utils/timezoneFormatter.cpp+1−1
@@ -39,7 +39,7 @@ QString TimezoneFormatter::currentTimeInTimezoneWithAbbrev(const QVariant &tzId)
39 QTimeZone tz(tzId.toByteArray());
39 QTimeZone tz(tzId.toByteArray());
40 if (tz.isValid()) {
40 if (tz.isValid()) {
41 const QDateTime now = QDateTime::currentDateTime().toTimeZone(tz);
41 const QDateTime now = QDateTime::currentDateTime().toTimeZone(tz);
42− return QStringLiteral("%1 %2").arg(now.time().toString(QStringLiteral("h:mm"))).arg(tz.abbreviation(now));
42+ return QStringLiteral("%1 %2").arg(now.time().toString(QStringLiteral("h:mm")), tz.abbreviation(now));
43 }
43 }
44 return QString();
44 return QString();
45}
45}
plugins/Utils/windowstatestorage.cpp+5−3
@@ -28,7 +28,9 @@
28QMutex WindowStateStorage::s_mutex;
28QMutex WindowStateStorage::s_mutex;
29
29
30inline QString sanitiseString(QString string) {
30inline QString sanitiseString(QString string) {
31− return string.remove("\"").remove("'").remove("\\");
31+ return string.remove(QLatin1Char('\"'))
32+ .remove(QLatin1Char('\''))
33+ .remove(QLatin1Char('\\'));
32}
34}
33
35
34WindowStateStorage::WindowStateStorage(QObject *parent):
36WindowStateStorage::WindowStateStorage(QObject *parent):
@@ -95,7 +97,7 @@ void WindowStateStorage::saveStage(const QString &appId, int stage)
95 saveValue(queryString);
97 saveValue(queryString);
96}
98}
97
99
98−int WindowStateStorage::getStage(const QString &appId) const
100+int WindowStateStorage::getStage(const QString &appId, int defaultValue) const
99{
101{
100 const QString queryString = QStringLiteral("SELECT * FROM stage WHERE appId = '%1';")
102 const QString queryString = QStringLiteral("SELECT * FROM stage WHERE appId = '%1';")
101 .arg(sanitiseString(appId));
103 .arg(sanitiseString(appId));
@@ -103,7 +105,7 @@ int WindowStateStorage::getStage(const QString &appId) const
103 QSqlQuery query = getValue(queryString);
105 QSqlQuery query = getValue(queryString);
104
106
105 if (!query.first()) {
107 if (!query.first()) {
106− return unity::shell::application::ApplicationInfoInterface::MainStage;
108+ return defaultValue;
107 }
109 }
108 return query.value("stage").toInt();
110 return query.value("stage").toInt();
109}
111}
plugins/Utils/windowstatestorage.h+1−1
@@ -49,7 +49,7 @@ public:
49 Q_INVOKABLE QRect getGeometry(const QString &windowId, const QRect defaultValue) const;
49 Q_INVOKABLE QRect getGeometry(const QString &windowId, const QRect defaultValue) const;
50
50
51 Q_INVOKABLE void saveStage(const QString &appId, int stage);
51 Q_INVOKABLE void saveStage(const QString &appId, int stage);
52− Q_INVOKABLE int getStage(const QString &appId) const;
52+ Q_INVOKABLE int getStage(const QString &appId, int defaultValue) const;
53
53
54private:
54private:
55 void initdb();
55 void initdb();
plugins/WindowManager/CMakeLists.txt+1
@@ -4,6 +4,7 @@ set(WINDOWMANAGER_SRC
4 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
4 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
5 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h
5 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h
6 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h
6 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h
7+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceListInterface.h
7 )
8 )
8
9
9add_library(windowmanager-qml SHARED ${WINDOWMANAGER_SRC})
10add_library(windowmanager-qml SHARED ${WINDOWMANAGER_SRC})
plugins/Wizard/CMakeLists.txt+6−3
@@ -1,4 +1,6 @@
1+pkg_search_module(GD3 REQUIRED gnome-desktop-3.0)
2+
1−include_directories(${GLIB_INCLUDE_DIRS} ${GEONAMES_INCLUDE_DIRS})
3+include_directories(SYSTEM ${GD3_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS} ${GEONAMES_INCLUDE_DIRS})
2
4
3add_library(Wizard-qml MODULE
5add_library(Wizard-qml MODULE
4 plugin.cpp
6 plugin.cpp
@@ -7,10 +9,11 @@ add_library(Wizard-qml MODULE
7 LocalePlugin.cpp
9 LocalePlugin.cpp
8 timezonemodel.cpp
10 timezonemodel.cpp
9 Status.cpp
11 Status.cpp
12+ keyboardLayoutsModel.cpp
10)
13)
11
14
12−qt5_use_modules(Wizard-qml DBus Qml Concurrent)
15+qt5_use_modules(Wizard-qml DBus Qml)
13−target_link_libraries(Wizard-qml ${GLIB_LDFLAGS} ${GEONAMES_LDFLAGS})
16+target_link_libraries(Wizard-qml ${GD3_LDFLAGS} ${GLIB_LDFLAGS} ${GEONAMES_LDFLAGS})
14add_unity8_plugin(Wizard 0.1 Wizard TARGETS Wizard-qml)
17add_unity8_plugin(Wizard 0.1 Wizard TARGETS Wizard-qml)
15
18
16set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
19set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
plugins/Wizard/PageList.cpp+16−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2014 Canonical Ltd.
2+ * Copyright (C) 2014-2016 Canonical Ltd.
3 *
3 *
4 * This program is free software: you can redistribute it and/or modify it
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License version 3, as published
5 * under the terms of the GNU General Public License version 3, as published
@@ -34,6 +34,7 @@
34#include <QDir>
34#include <QDir>
35#include <QSet>
35#include <QSet>
36#include <QStandardPaths>
36#include <QStandardPaths>
37+#include <QSettings>
37
38
38PageList::PageList(QObject *parent)
39PageList::PageList(QObject *parent)
39 : QObject(parent),
40 : QObject(parent),
@@ -66,6 +67,20 @@ PageList::PageList(QObject *parent)
66 Q_FOREACH(const QString &page, disabledPages) {
67 Q_FOREACH(const QString &page, disabledPages) {
67 m_pages.remove(page);
68 m_pages.remove(page);
68 }
69 }
70+
71+ // If there was a system update installed, skip until the last page to just greet the user
72+ QSettings settings;
73+ if (settings.value(QStringLiteral("Wizard/SkipUntilFinishedPage")).toBool()) {
74+ const QString lastPage = m_pages.lastKey();
75+ Q_FOREACH(const QString &page, m_pages.keys()) {
76+ if (Q_UNLIKELY(page != lastPage)) {
77+ m_pages.remove(page);
78+ }
79+ }
80+
81+ // ... and reset it again for the next run
82+ settings.remove(QStringLiteral("Wizard/SkipUntilFinishedPage"));
83+ }
69}
84}
70
85
71QStringList PageList::entries() const
86QStringList PageList::entries() const
plugins/Wizard/System.cpp+10−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2014-2015 Canonical Ltd.
2+ * Copyright (C) 2014-2016 Canonical Ltd.
3 *
3 *
4 * This program is free software: you can redistribute it and/or modify it
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License version 3, as published
5 * under the terms of the GNU General Public License version 3, as published
@@ -26,6 +26,7 @@
26#include <QMap>
26#include <QMap>
27#include <QProcess>
27#include <QProcess>
28#include <QDebug>
28#include <QDebug>
29+#include <QSettings>
29
30
30System::System()
31System::System()
31 : QObject()
32 : QObject()
@@ -105,7 +106,15 @@ void System::updateSessionLocale(const QString &locale)
105 initctl stop scope-registry; \
106 initctl stop scope-registry; \
106 initctl stop smart-scopes-proxy; \
107 initctl stop smart-scopes-proxy; \
107 initctl emit --no-wait indicator-services-start; \
108 initctl emit --no-wait indicator-services-start; \
109+ initctl restart --no-wait ubuntu-location-service-trust-stored; \
108 initctl restart --no-wait maliit-server; \
110 initctl restart --no-wait maliit-server; \
109 initctl restart --no-wait indicator-messages; \
111 initctl restart --no-wait indicator-messages; \
110 initctl restart --no-wait unity8-dash\""));
112 initctl restart --no-wait unity8-dash\""));
111}
113}
114+
115+void System::skipUntilFinishedPage()
116+{
117+ QSettings settings;
118+ settings.setValue(QStringLiteral("Wizard/SkipUntilFinishedPage"), true);
119+ settings.sync();
120+}
plugins/Wizard/System.h+5−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2014-2015 Canonical Ltd.
2+ * Copyright (C) 2014-2016 Canonical Ltd.
3 *
3 *
4 * This program is free software: you can redistribute it and/or modify it
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License version 3, as published
5 * under the terms of the GNU General Public License version 3, as published
@@ -35,6 +35,10 @@ public:
35
35
36public Q_SLOTS:
36public Q_SLOTS:
37 void updateSessionLocale(const QString &locale);
37 void updateSessionLocale(const QString &locale);
38+ /**
39+ * Mark the wizard to skip all the pages and just show the last (welcome to ubuntu) page
40+ */
41+ void skipUntilFinishedPage();
38
42
39Q_SIGNALS:
43Q_SIGNALS:
40 void wizardEnabledChanged();
44 void wizardEnabledChanged();
plugins/Wizard/Wizard.qmltypesdeleted−33
@@ -1,33 +0,0 @@
1−import QtQuick.tooling 1.1
2−
3−// This file describes the plugin-supplied types contained in the library.
4−// It is used for QML tooling purposes only.
5−//
6−// This file was auto-generated by:
7−// 'qmlplugindump -notrelocatable Wizard 0.1 plugins'
8−
9−Module {
10− Component {
11− name: "PageList"
12− prototype: "QObject"
13− exports: ["Wizard/PageList 0.1"]
14− exportMetaObjectRevisions: [0]
15− Property { name: "index"; type: "int"; isReadonly: true }
16− Property { name: "numPages"; type: "int"; isReadonly: true }
17− Method { name: "prev"; type: "string" }
18− Method { name: "next"; type: "string" }
19− }
20− Component {
21− name: "System"
22− prototype: "QObject"
23− exports: ["Wizard/System 0.1"]
24− isCreatable: false
25− isSingleton: true
26− exportMetaObjectRevisions: [0]
27− Property { name: "wizardEnabled"; type: "bool" }
28− Method {
29− name: "updateSessionLanguage"
30− Parameter { name: "locale"; type: "string" }
31− }
32− }
33−}
plugins/Wizard/keyboardLayoutsModel.cppnew file+163
@@ -0,0 +1,163 @@
1+/*
2+ * Copyright (C) 2016 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include <QDBusMetaType>
18+#include <QDebug>
19+
20+#define GNOME_DESKTOP_USE_UNSTABLE_API
21+#include <libgnome-desktop/gnome-xkb-info.h>
22+
23+#include "keyboardLayoutsModel.h"
24+
25+typedef QList<QMap<QString, QString>> StringMapList;
26+Q_DECLARE_METATYPE(StringMapList)
27+
28+KeyboardLayoutsModel::KeyboardLayoutsModel(QObject *parent)
29+ : QAbstractListModel(parent)
30+{
31+ m_roleNames = {
32+ {LayoutIdRole, "layoutId"},
33+ {DisplayNameRole, "displayName"},
34+ {LanguageRole, "language"}
35+ };
36+
37+ qDBusRegisterMetaType<StringMapList>();
38+
39+ buildModel();
40+ connect(this, &KeyboardLayoutsModel::languageChanged, this, &KeyboardLayoutsModel::updateModel);
41+}
42+
43+QString KeyboardLayoutsModel::language() const
44+{
45+ return m_language;
46+}
47+
48+void KeyboardLayoutsModel::setLanguage(const QString &language)
49+{
50+ if (m_language == language)
51+ return;
52+
53+ m_language = language;
54+ Q_EMIT languageChanged(language);
55+}
56+
57+static bool compareLayouts(const KeyboardLayoutInfo &layout0, const KeyboardLayoutInfo &layout1)
58+{
59+ QString name0(layout0.id);
60+ QString name1(layout1.id);
61+
62+ if (name0 == name1) {
63+ name0 = layout0.displayName;
64+ name1 = layout1.displayName;
65+
66+ if (name0 == name1) {
67+ name0 = layout0.language;
68+ name1 = layout1.language;
69+ }
70+ }
71+
72+ return QString::localeAwareCompare(name0, name1) < 0;
73+}
74+
75+void KeyboardLayoutsModel::buildModel()
76+{
77+ GList *sources, *tmp;
78+ const gchar *display_name;
79+ const gchar *short_name;
80+ const gchar *xkb_layout;
81+ const gchar *xkb_variant;
82+
83+ GnomeXkbInfo * xkbInfo(gnome_xkb_info_new());
84+
85+ sources = gnome_xkb_info_get_all_layouts(xkbInfo);
86+
87+ for (tmp = sources; tmp != NULL; tmp = tmp->next) {
88+ gboolean result = gnome_xkb_info_get_layout_info(xkbInfo, (const gchar *)tmp->data,
89+ &display_name, &short_name, &xkb_layout, &xkb_variant);
90+ if (!result) {
91+ qWarning() << "Skipping invalid layout";
92+ continue;
93+ }
94+
95+ KeyboardLayoutInfo layout;
96+ layout.id = QString::fromUtf8((const gchar *)tmp->data);
97+ layout.language = QString::fromUtf8(short_name);
98+ layout.displayName = QString::fromUtf8(display_name);
99+
100+ m_db.append(layout);
101+ }
102+ g_list_free(sources);
103+ g_object_unref(xkbInfo);
104+
105+ std::sort(m_db.begin(), m_db.end(), compareLayouts);
106+}
107+
108+void KeyboardLayoutsModel::updateModel()
109+{
110+ beginResetModel();
111+ m_layouts.clear();
112+
113+ const QString lang = m_language.section("_", 0, 0);
114+ const QString country = m_language.section("_", 1, 1).toLower();
115+
116+ Q_FOREACH(const KeyboardLayoutInfo & info, m_db) {
117+ const QString kbdCountry = info.id.section("+", 0, 0);
118+ if (info.language == lang && // filter by language
119+ (kbdCountry.startsWith(country) || kbdCountry.length() > 2)) { // and by known country, also insert anything that doesn't match the country
120+ m_layouts.append(info);
121+ }
122+ }
123+
124+ std::sort(m_layouts.begin(), m_layouts.end(), compareLayouts);
125+ endResetModel();
126+}
127+
128+int KeyboardLayoutsModel::rowCount(const QModelIndex &parent) const
129+{
130+ Q_UNUSED(parent)
131+ return m_layouts.count();
132+}
133+
134+QVariant KeyboardLayoutsModel::data(const QModelIndex &index, int role) const
135+{
136+ const int row = index.row();
137+
138+ if (row >= m_layouts.count()) {
139+ qWarning() << Q_FUNC_INFO << "index out of bounds";
140+ return QVariant();
141+ }
142+
143+ const KeyboardLayoutInfo &layout = m_layouts.at(row);
144+
145+ switch (role) {
146+ case Qt::DisplayRole:
147+ case DisplayNameRole:
148+ return layout.displayName;
149+ case LayoutIdRole:
150+ return layout.id;
151+ case LanguageRole:
152+ return layout.language;
153+ default: {
154+ qWarning() << Q_FUNC_INFO << "unsupported data role";
155+ return QVariant();
156+ }
157+ }
158+}
159+
160+QHash<int, QByteArray> KeyboardLayoutsModel::roleNames() const
161+{
162+ return m_roleNames;
163+}
plugins/Wizard/keyboardLayoutsModel.hnew file+66
@@ -0,0 +1,66 @@
1+/*
2+ * Copyright (C) 2016 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef KEYBOARDLAYOUTSMODEL_H
18+#define KEYBOARDLAYOUTSMODEL_H
19+
20+#include <QAbstractListModel>
21+
22+struct KeyboardLayoutInfo {
23+ QString id;
24+ QString displayName;
25+ QString language;
26+};
27+
28+class KeyboardLayoutsModel: public QAbstractListModel
29+{
30+ Q_OBJECT
31+
32+ Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
33+
34+public:
35+ explicit KeyboardLayoutsModel(QObject * parent = nullptr);
36+ ~KeyboardLayoutsModel() = default;
37+
38+ enum Roles {
39+ LayoutIdRole = Qt::UserRole + 1,
40+ DisplayNameRole,
41+ LanguageRole
42+ };
43+
44+ QString language() const;
45+ void setLanguage(const QString &language);
46+
47+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
48+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
49+ QHash<int, QByteArray> roleNames() const override;
50+
51+Q_SIGNALS:
52+ void languageChanged(const QString &language);
53+
54+private Q_SLOTS:
55+ void updateModel();
56+
57+private:
58+ void buildModel();
59+
60+ QString m_language;
61+ QHash<int, QByteArray> m_roleNames;
62+ QVector<KeyboardLayoutInfo> m_layouts;
63+ QVector<KeyboardLayoutInfo> m_db;
64+};
65+
66+#endif
plugins/Wizard/plugin.cpp+2
@@ -20,6 +20,7 @@
20#include "timezonemodel.h"
20#include "timezonemodel.h"
21#include "LocalePlugin.h"
21#include "LocalePlugin.h"
22#include "Status.h"
22#include "Status.h"
23+#include "keyboardLayoutsModel.h"
23
24
24#include <QtQml/qqml.h>
25#include <QtQml/qqml.h>
25
26
@@ -30,5 +31,6 @@ void WizardPlugin::registerTypes(const char *uri)
30 qmlRegisterSingletonType<System>(uri, 0, 1, "System", [](QQmlEngine*, QJSEngine*) -> QObject* { return new System; });
31 qmlRegisterSingletonType<System>(uri, 0, 1, "System", [](QQmlEngine*, QJSEngine*) -> QObject* { return new System; });
31 qmlRegisterSingletonType<Status>(uri, 0, 1, "Status", [](QQmlEngine*, QJSEngine*) -> QObject* { return new Status; });
32 qmlRegisterSingletonType<Status>(uri, 0, 1, "Status", [](QQmlEngine*, QJSEngine*) -> QObject* { return new Status; });
32 qmlRegisterType<TimeZoneLocationModel>(uri, 0, 1, "TimeZoneModel");
33 qmlRegisterType<TimeZoneLocationModel>(uri, 0, 1, "TimeZoneModel");
34+ qmlRegisterType<KeyboardLayoutsModel>(uri, 0, 1, "KeyboardLayoutsModel");
33 qmlRegisterType<LocalePlugin>(uri, 0, 1, "LocalePlugin");
35 qmlRegisterType<LocalePlugin>(uri, 0, 1, "LocalePlugin");
34}
36}
plugins/Wizard/qmldir−1
@@ -1,3 +1,2 @@
1module Wizard
1module Wizard
2plugin Wizard-qml
2plugin Wizard-qml
3−typeinfo Wizard.qmltypes
plugins/Wizard/timezonemodel.cpp+5−5
@@ -60,12 +60,12 @@ QVariant TimeZoneLocationModel::data(const QModelIndex &index, int role) const
60
60
61 switch (role) {
61 switch (role) {
62 case Qt::DisplayRole:
62 case Qt::DisplayRole:
63− return QStringLiteral("%1, %2, %3").arg(geonames_city_get_name(city))
63+ return QStringLiteral("%1, %2, %3").arg(geonames_city_get_name(city),
64− .arg(geonames_city_get_state(city))
64+ geonames_city_get_state(city),
65− .arg(geonames_city_get_country(city));
65+ geonames_city_get_country(city));
66 case SimpleRole:
66 case SimpleRole:
67− return QStringLiteral("%1, %2").arg(geonames_city_get_name(city))
67+ return QStringLiteral("%1, %2").arg(geonames_city_get_name(city),
68− .arg(geonames_city_get_country(city));
68+ geonames_city_get_country(city));
69 case TimeZoneRole:
69 case TimeZoneRole:
70 return geonames_city_get_timezone(city);
70 return geonames_city_get_timezone(city);
71 case CountryRole:
71 case CountryRole:
po/aa.po+296−93
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2016-02-12 10:18+0000\n"
11"PO-Revision-Date: 2016-02-12 10:18+0000\n"
12"Last-Translator: Charif AYFARAH <ayfarah@ymail.com>\n"
12"Last-Translator: Charif AYFARAH <ayfarah@ymail.com>\n"
13"Language-Team: Afar <aa@li.org>\n"
13"Language-Team: Afar <aa@li.org>\n"
@@ -15,120 +15,290 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Cuumita "
23msgstr "Cuumita "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr ""
28msgstr ""
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr "Kat"
32msgstr "Kat"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr ""
36msgstr ""
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr ""
40msgstr ""
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr ""
44msgstr ""
45
45
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
47msgid "You have been locked out due to too many failed passcode attempts."
47msgid "You have been locked out due to too many failed passcode attempts."
48msgstr ""
48msgstr ""
49
49
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
51#, qt-format
51#, qt-format
52msgid "Please wait %1 minute and then try again…"
52msgid "Please wait %1 minute and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
54msgstr[0] "Maganak %1 minit qambaalaay, kaadu gabbat"
54msgstr[0] "Maganak %1 minit qambaalaay, kaadu gabbat"
55msgstr[1] "Maganak %1 minit qambaalaay, kaadu gabbat"
55msgstr[1] "Maganak %1 minit qambaalaay, kaadu gabbat"
56
56
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
58msgctxt "Title: Lock/Log out dialog"
58msgctxt "Title: Lock/Log out dialog"
59msgid "Log out"
59msgid "Log out"
60msgstr "Eweq"
60msgstr "Eweq"
61
61
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
63msgid "Are you sure you want to log out?"
63msgid "Are you sure you want to log out?"
64msgstr ""
64msgstr ""
65
65
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
67msgctxt "Button: Lock the system"
67msgctxt "Button: Lock the system"
68msgid "Lock"
68msgid "Lock"
69msgstr "Koflis"
69msgstr "Koflis"
70
70
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
72msgctxt "Button: Log out from the system"
72msgctxt "Button: Log out from the system"
73msgid "Log Out"
73msgid "Log Out"
74msgstr "Eweq"
74msgstr "Eweq"
75
75
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
79msgid "Cancel"
79msgid "Cancel"
80msgstr "Bayis"
80msgstr "Bayis"
81
81
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
83msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
84msgid "Reboot"
84msgid "Reboot"
85msgstr "Wadir-ugus"
85msgstr "Wadir-ugus"
86
86
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
88msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
89msgstr "Wadir-ugussuh digga maay litoo?"
89msgstr "Wadir-ugussuh digga maay litoo?"
90
90
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
92msgid "No"
92msgid "No"
93msgstr "Maleey"
93msgstr "Maleey"
94
94
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
96msgid "Yes"
96msgid "Yes"
97msgstr "Yeey"
97msgstr "Yeey"
98
98
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
101msgid "Power"
101msgid "Power"
102msgstr "Cayla"
102msgstr "Cayla"
103
103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105msgid ""
105msgid ""
106"Are you sure you would like\n"
106"Are you sure you would like\n"
107"to power off?"
107"to power off?"
108msgstr "Timmi haytuh digga maay litoo?"
108msgstr "Timmi haytuh digga maay litoo?"
109
109
110−#: qml/Components/Dialogs.qml:200
110+#: qml/Components/Dialogs.qml:202
111msgctxt "Button: Power off the system"
111msgctxt "Button: Power off the system"
112msgid "Power off"
112msgid "Power off"
113msgstr "Timmi hayis"
113msgstr "Timmi hayis"
114
114
115−#: qml/Components/Dialogs.qml:209
115+#: qml/Components/Dialogs.qml:211
116msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
117msgid "Restart"
117msgid "Restart"
118msgstr "Wadir-qimbis"
118msgstr "Wadir-qimbis"
119
119
120+#: qml/Components/KeyboardShortcutsOverlay.qml:41
121+msgid "Keyboard Shortcuts"
122+msgstr ""
123+
124+#: qml/Components/KeyboardShortcutsOverlay.qml:55
125+msgid "Unity 8"
126+msgstr ""
127+
128+#: qml/Components/KeyboardShortcutsOverlay.qml:62
129+msgid "PrtScr"
130+msgstr ""
131+
132+#: qml/Components/KeyboardShortcutsOverlay.qml:67
133+msgid "Takes a screenshot."
134+msgstr ""
135+
136+#: qml/Components/KeyboardShortcutsOverlay.qml:75
137+msgid "Alt + PrtScr"
138+msgstr ""
139+
140+#: qml/Components/KeyboardShortcutsOverlay.qml:80
141+msgid "Takes a screenshot of a window."
142+msgstr ""
143+
144+#: qml/Components/KeyboardShortcutsOverlay.qml:88
145+msgid "Super + Space"
146+msgstr ""
147+
148+#: qml/Components/KeyboardShortcutsOverlay.qml:93
149+msgid "Switches to next keyboard layout."
150+msgstr ""
151+
152+#: qml/Components/KeyboardShortcutsOverlay.qml:101
153+msgid "Super + Shift + Space"
154+msgstr ""
155+
156+#: qml/Components/KeyboardShortcutsOverlay.qml:106
157+msgid "Switches to previous keyboard layout."
158+msgstr ""
159+
160+#: qml/Components/KeyboardShortcutsOverlay.qml:118
161+msgid "Launcher"
162+msgstr ""
163+
164+#: qml/Components/KeyboardShortcutsOverlay.qml:125
165+msgid "Super (Hold)"
166+msgstr ""
167+
168+#: qml/Components/KeyboardShortcutsOverlay.qml:130
169+msgid "Opens the launcher, displays shortcuts."
170+msgstr ""
171+
172+#: qml/Components/KeyboardShortcutsOverlay.qml:138
173+msgid "Alt + F1"
174+msgstr ""
175+
176+#: qml/Components/KeyboardShortcutsOverlay.qml:143
177+msgid "Opens launcher keyboard navigation mode."
178+msgstr ""
179+
180+#: qml/Components/KeyboardShortcutsOverlay.qml:151
181+msgid "Super + Tab"
182+msgstr ""
183+
184+#: qml/Components/KeyboardShortcutsOverlay.qml:156
185+msgid "Switches applications via the launcher."
186+msgstr ""
187+
188+#: qml/Components/KeyboardShortcutsOverlay.qml:164
189+msgid "Super + 0 to 9"
190+msgstr ""
191+
192+#: qml/Components/KeyboardShortcutsOverlay.qml:169
193+msgid "Same as clicking on a launcher icon."
194+msgstr ""
195+
196+#: qml/Components/KeyboardShortcutsOverlay.qml:181
197+msgid "Scopes"
198+msgstr ""
199+
200+#: qml/Components/KeyboardShortcutsOverlay.qml:188
201+msgid "Super (Tap)"
202+msgstr ""
203+
204+#: qml/Components/KeyboardShortcutsOverlay.qml:193
205+msgid "Opens the Scopes home."
206+msgstr ""
207+
208+#: qml/Components/KeyboardShortcutsOverlay.qml:209
209+msgid "Switching"
210+msgstr ""
211+
212+#: qml/Components/KeyboardShortcutsOverlay.qml:216
213+msgid "Alt + Tab"
214+msgstr ""
215+
216+#: qml/Components/KeyboardShortcutsOverlay.qml:221
217+msgid "Switches between applications."
218+msgstr ""
219+
220+#: qml/Components/KeyboardShortcutsOverlay.qml:229
221+msgid "Super + W"
222+msgstr ""
223+
224+#: qml/Components/KeyboardShortcutsOverlay.qml:234
225+msgid "Opens the desktop spread."
226+msgstr ""
227+
228+#: qml/Components/KeyboardShortcutsOverlay.qml:242
229+msgid "Cursor Left or Right"
230+msgstr ""
231+
232+#: qml/Components/KeyboardShortcutsOverlay.qml:247
233+msgid "Moves the focus."
234+msgstr ""
235+
236+#: qml/Components/KeyboardShortcutsOverlay.qml:259
237+msgid "Windows"
238+msgstr ""
239+
240+#: qml/Components/KeyboardShortcutsOverlay.qml:266
241+msgid "Ctrl + Super + D"
242+msgstr ""
243+
244+#: qml/Components/KeyboardShortcutsOverlay.qml:271
245+msgid "Minimizes all windows."
246+msgstr ""
247+
248+#: qml/Components/KeyboardShortcutsOverlay.qml:279
249+msgid "Ctrl + Super + Up"
250+msgstr ""
251+
252+#: qml/Components/KeyboardShortcutsOverlay.qml:284
253+msgid "Maximizes the current window."
254+msgstr ""
255+
256+#: qml/Components/KeyboardShortcutsOverlay.qml:292
257+msgid "Ctrl + Super + Down"
258+msgstr ""
259+
260+#: qml/Components/KeyboardShortcutsOverlay.qml:297
261+msgid "Minimizes or restores the current window."
262+msgstr ""
263+
264+#: qml/Components/KeyboardShortcutsOverlay.qml:305
265+msgid "Ctrl + Super + Left or Right"
266+msgstr ""
267+
268+#: qml/Components/KeyboardShortcutsOverlay.qml:310
269+msgid "Semi-maximizes the current window."
270+msgstr ""
271+
272+#: qml/Components/KeyboardShortcutsOverlay.qml:318
273+msgid "Alt + F4"
274+msgstr ""
275+
276+#: qml/Components/KeyboardShortcutsOverlay.qml:323
277+msgid "Closes the current window."
278+msgstr ""
279+
120−#: qml/Components/Lockscreen.qml:231
280+#: qml/Components/Lockscreen.qml:239
121msgid "Return to Call"
281msgid "Return to Call"
122msgstr "Seecol gacis"
282msgstr "Seecol gacis"
123
283
124−#: qml/Components/Lockscreen.qml:231
284+#: qml/Components/Lockscreen.qml:239
125msgid "Emergency Call"
285msgid "Emergency Call"
126msgstr ""
286msgstr ""
127
287
128−#: qml/Components/Lockscreen.qml:263
288+#: qml/Components/Lockscreen.qml:271
129msgid "OK"
289msgid "OK"
130msgstr "Hayya"
290msgstr "Hayya"
131
291
292+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
293+#, qt-format
294+msgid "%1:%2:%3"
295+msgstr ""
296+
297+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
298+#, qt-format
299+msgid "%1:%2"
300+msgstr ""
301+
132#: qml/Components/ModeSwitchWarningDialog.qml:32
302#: qml/Components/ModeSwitchWarningDialog.qml:32
133msgid "Apps may have unsaved data:"
303msgid "Apps may have unsaved data:"
134msgstr ""
304msgstr ""
@@ -155,6 +325,10 @@ msgstr ""
155msgid "Close all"
325msgid "Close all"
156msgstr "Inkih alif"
326msgstr "Inkih alif"
157
327
328+#: qml/Components/SharingPicker.qml:54
329+msgid "Preview Share Item"
330+msgstr ""
331+
158#: qml/Dash/DashPageHeader.qml:333
332#: qml/Dash/DashPageHeader.qml:333
159msgctxt "Button: Open the Ubuntu Store"
333msgctxt "Button: Open the Ubuntu Store"
160msgid "Store"
334msgid "Store"
@@ -186,15 +360,15 @@ msgstr ""
186msgid "Reset"
360msgid "Reset"
187msgstr ""
361msgstr ""
188
362
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
363+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190msgid "Show less"
364msgid "Show less"
191msgstr ""
365msgstr ""
192
366
193−#: qml/Dash/GenericScopeView.qml:579
367+#: qml/Dash/GenericScopeView.qml:580
194msgid "Show all"
368msgid "Show all"
195msgstr ""
369msgstr ""
196
370
197−#: qml/Dash/GenericScopeView.qml:636
371+#: qml/Dash/GenericScopeView.qml:637
198msgctxt "Label: Hint for dash search line edit"
372msgctxt "Label: Hint for dash search line edit"
199msgid "Search"
373msgid "Search"
200msgstr "Goranto"
374msgstr "Goranto"
@@ -228,10 +402,6 @@ msgstr ""
228msgid "Add a review"
402msgid "Add a review"
229msgstr ""
403msgstr ""
230
404
231−#: qml/Dash/Previews/PreviewSharing.qml:66
232−msgid "Preview Share Item"
233−msgstr ""
234−
235#: qml/Dash/PullToRefreshScopeStyle.qml:55
405#: qml/Dash/PullToRefreshScopeStyle.qml:55
236msgid "Pull to refresh…"
406msgid "Pull to refresh…"
237msgstr ""
407msgstr ""
@@ -248,11 +418,11 @@ msgstr ""
248msgid "Manage"
418msgid "Manage"
249msgstr ""
419msgstr ""
250
420
251−#: qml/Dash/ScopesList.qml:101
421+#: qml/Dash/ScopesList.qml:102
252msgid "Home"
422msgid "Home"
253msgstr "Dabqi"
423msgstr "Dabqi"
254
424
255−#: qml/Dash/ScopesList.qml:102
425+#: qml/Dash/ScopesList.qml:103
256msgid "Also installed"
426msgid "Also installed"
257msgstr ""
427msgstr ""
258
428
@@ -262,16 +432,28 @@ msgid ""
262"touch pad to interact with the pointer."
432"touch pad to interact with the pointer."
263msgstr ""
433msgstr ""
264
434
265−#: qml/Greeter/CoverPage.qml:118
435+#: qml/Greeter/CoverPage.qml:127
266msgid "Unlock"
436msgid "Unlock"
267msgstr ""
437msgstr ""
268
438
439+#: qml/Greeter/Greeter.qml:539
440+msgid "Try again"
441+msgstr ""
442+
269−#: qml/Greeter/LoginList.qml:239
443+#: qml/Greeter/LoginList.qml:63
444+msgid "Passphrase"
445+msgstr ""
446+
447+#: qml/Greeter/LoginList.qml:64
448+msgid "Passcode"
449+msgstr ""
450+
451+#: qml/Greeter/LoginList.qml:259
270msgid "Retry"
452msgid "Retry"
271msgstr "Qagis"
453msgstr "Qagis"
272
454
273−#: qml/Greeter/LoginList.qml:240
455+#: qml/Greeter/LoginList.qml:260
274−msgid "Tap to unlock"
456+msgid "Log In"
275msgstr ""
457msgstr ""
276
458
277#: qml/Greeter/NarrowView.qml:54
459#: qml/Greeter/NarrowView.qml:54
@@ -298,34 +480,34 @@ msgid ""
298"and all personal data will be deleted."
480"and all personal data will be deleted."
299msgstr ""
481msgstr ""
300
482
301−#: qml/Greeter/NarrowView.qml:116
483+#: qml/Greeter/NarrowView.qml:129
302#, qt-format
484#, qt-format
303msgid "Enter %1"
485msgid "Enter %1"
304msgstr "%1 culus"
486msgstr "%1 culus"
305
487
306−#: qml/Greeter/NarrowView.qml:117
488+#: qml/Greeter/NarrowView.qml:130
307msgid "Enter passphrase"
489msgid "Enter passphrase"
308msgstr "Tatur-maxco culus"
490msgstr "Tatur-maxco culus"
309
491
310−#: qml/Greeter/NarrowView.qml:118
492+#: qml/Greeter/NarrowView.qml:131
311msgid "Enter passcode"
493msgid "Enter passcode"
312msgstr "Tatur-mudenta culus"
494msgstr "Tatur-mudenta culus"
313
495
314−#: qml/Greeter/NarrowView.qml:119
496+#: qml/Greeter/NarrowView.qml:135
315#, qt-format
497#, qt-format
316msgid "Sorry, incorrect %1"
498msgid "Sorry, incorrect %1"
317msgstr ""
499msgstr ""
318
500
319−#: qml/Greeter/NarrowView.qml:120
501+#: qml/Greeter/NarrowView.qml:136
320msgid "Sorry, incorrect passphrase"
502msgid "Sorry, incorrect passphrase"
321msgstr ""
503msgstr ""
322
504
323−#: qml/Greeter/NarrowView.qml:121
505+#: qml/Greeter/NarrowView.qml:137
324msgctxt "passphrase"
506msgctxt "passphrase"
325msgid "Please re-enter"
507msgid "Please re-enter"
326msgstr ""
508msgstr ""
327
509
328−#: qml/Greeter/NarrowView.qml:122
510+#: qml/Greeter/NarrowView.qml:138
329msgid "Sorry, incorrect passcode"
511msgid "Sorry, incorrect passcode"
330msgstr ""
512msgstr ""
331
513
@@ -420,32 +602,12 @@ msgstr ""
420msgid "Drag using 3 fingers any application from one window to the other"
602msgid "Drag using 3 fingers any application from one window to the other"
421msgstr ""
603msgstr ""
422
604
423−#: qml/Tutorial/TutorialBottom.qml:78
424−msgid "Swipe up to add a contact"
425−msgstr ""
426−
427−#: qml/Tutorial/TutorialBottom.qml:80
428−msgid "Swipe up for favorite calculations"
429−msgstr ""
430−
431−#: qml/Tutorial/TutorialBottom.qml:82
432−msgid "Swipe up for recent calls"
433−msgstr ""
434−
435−#: qml/Tutorial/TutorialBottom.qml:84
436−msgid "Swipe up to create a message"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:85
440−msgid "Swipe up to manage the app"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialLeftLong.qml:47
605+#: qml/Tutorial/TutorialLeftLong.qml:49
444msgid "Long swipe from the left edge to open the Today scope"
606msgid "Long swipe from the left edge to open the Today scope"
445msgstr ""
607msgstr ""
446
608
447#: qml/Tutorial/TutorialLeft.qml:47
609#: qml/Tutorial/TutorialLeft.qml:47
448−msgid "Swipe from the left edge to open the launcher"
610+msgid "Short swipe from the left edge to open the launcher"
449msgstr ""
611msgstr ""
450
612
451#: qml/Tutorial/TutorialRight.qml:55
613#: qml/Tutorial/TutorialRight.qml:55
@@ -453,15 +615,11 @@ msgid "Push your mouse against the right edge to view your open apps"
453msgstr ""
615msgstr ""
454
616
455#: qml/Tutorial/TutorialRight.qml:56
617#: qml/Tutorial/TutorialRight.qml:56
456−msgid "Short or long swipe from the right edge to view your open apps"
618+msgid "Swipe from the right edge to view your open apps"
457msgstr ""
619msgstr ""
458
620
459#: qml/Tutorial/TutorialTop.qml:53
621#: qml/Tutorial/TutorialTop.qml:53
460−msgid "Swipe from the top right edge to open the notification bar"
622+msgid "Swipe from the top edge to access notifications and quick settings"
461−msgstr ""
462−
463−#: qml/Tutorial/TutorialTop.qml:54
464−msgid "Swipe from the top edge to open the notification bar"
465msgstr ""
623msgstr ""
466
624
467#: qml/Wizard/Page.qml:54
625#: qml/Wizard/Page.qml:54
@@ -473,15 +631,32 @@ msgstr "Derre"
473msgid "Language"
631msgid "Language"
474msgstr ""
632msgstr ""
475
633
476−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
634+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
477#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
635#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
478#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
636#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479#: qml/Wizard/Pages/75-report-check.qml:84
637#: qml/Wizard/Pages/75-report-check.qml:84
480−#: qml/Wizard/Pages/passcode-desktop.qml:124
638+#: qml/Wizard/Pages/passcode-desktop.qml:141
481#: qml/Wizard/Pages/password-set.qml:141
639#: qml/Wizard/Pages/password-set.qml:141
482msgid "Next"
640msgid "Next"
483msgstr ""
641msgstr ""
484
642
643+#: qml/Wizard/Pages/20-keyboard.qml:30
644+msgid "Select Keyboard"
645+msgstr ""
646+
647+#: qml/Wizard/Pages/20-keyboard.qml:70
648+msgid "Keyboard language"
649+msgstr ""
650+
651+#: qml/Wizard/Pages/20-keyboard.qml:92
652+msgid "Keyboard layout"
653+msgstr ""
654+
655+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
656+#: qml/Wizard/Pages/sim.qml:101
657+msgid "Skip"
658+msgstr "Kaqit"
659+
485#: qml/Wizard/Pages/30-wifi.qml:29
660#: qml/Wizard/Pages/30-wifi.qml:29
486msgid "Connect to Wi‑Fi"
661msgid "Connect to Wi‑Fi"
487msgstr ""
662msgstr ""
@@ -498,11 +673,6 @@ msgstr ""
498msgid "No available Wi-Fi networks"
673msgid "No available Wi-Fi networks"
499msgstr ""
674msgstr ""
500
675
501−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502−#: qml/Wizard/Pages/sim.qml:101
503−msgid "Skip"
504−msgstr "Kaqit"
505−
506#: qml/Wizard/Pages/40-location.qml:27
676#: qml/Wizard/Pages/40-location.qml:27
507msgid "Location Services"
677msgid "Location Services"
508msgstr ""
678msgstr ""
@@ -586,6 +756,35 @@ msgstr ""
586msgid "Privacy policy"
756msgid "Privacy policy"
587msgstr ""
757msgstr ""
588
758
759+#: qml/Wizard/Pages/77-system-update.qml:28
760+msgid "Update Device"
761+msgstr ""
762+
763+#: qml/Wizard/Pages/77-system-update.qml:55
764+msgid ""
765+"There is a system update available and ready to install. Afterwards, the "
766+"device will automatically restart."
767+msgstr ""
768+
769+#: qml/Wizard/Pages/77-system-update.qml:76
770+msgctxt "string identifying name of the update"
771+msgid "Ubuntu system"
772+msgstr ""
773+
774+#: qml/Wizard/Pages/77-system-update.qml:83
775+#, qt-format
776+msgctxt "version of the system update"
777+msgid "Version %1"
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:102
781+msgid "This could take a few minutes..."
782+msgstr ""
783+
784+#: qml/Wizard/Pages/77-system-update.qml:116
785+msgid "Install and restart now"
786+msgstr ""
787+
589#: qml/Wizard/Pages/80-finished.qml:89
788#: qml/Wizard/Pages/80-finished.qml:89
590msgid "Welcome to Ubuntu"
789msgid "Welcome to Ubuntu"
591msgstr ""
790msgstr ""
@@ -629,7 +828,7 @@ msgid "Service Terms"
629msgstr ""
828msgstr ""
630
829
631#: qml/Wizard/Pages/passcode-confirm.qml:43
830#: qml/Wizard/Pages/passcode-confirm.qml:43
632−#: qml/Wizard/Pages/passcode-desktop.qml:80
831+#: qml/Wizard/Pages/passcode-desktop.qml:96
633msgid "Confirm passcode"
832msgid "Confirm passcode"
634msgstr ""
833msgstr ""
635
834
@@ -646,24 +845,24 @@ msgstr ""
646msgid "Lock Screen Passcode"
845msgid "Lock Screen Passcode"
647msgstr ""
846msgstr ""
648
847
649−#: qml/Wizard/Pages/passcode-desktop.qml:56
848+#: qml/Wizard/Pages/passcode-desktop.qml:60
650msgid "Enter 4 numbers to setup your passcode"
849msgid "Enter 4 numbers to setup your passcode"
651msgstr ""
850msgstr ""
652
851
653−#: qml/Wizard/Pages/passcode-desktop.qml:65
852+#: qml/Wizard/Pages/passcode-desktop.qml:76
654#: qml/Wizard/Pages/passcode-set.qml:54
853#: qml/Wizard/Pages/passcode-set.qml:54
655msgid "Choose passcode"
854msgid "Choose passcode"
656msgstr ""
855msgstr ""
657
856
658−#: qml/Wizard/Pages/passcode-desktop.qml:105
857+#: qml/Wizard/Pages/passcode-desktop.qml:126
659msgid "Passcode too short"
858msgid "Passcode too short"
660msgstr ""
859msgstr ""
661
860
662−#: qml/Wizard/Pages/passcode-desktop.qml:107
861+#: qml/Wizard/Pages/passcode-desktop.qml:128
663msgid "Passcodes match"
862msgid "Passcodes match"
664msgstr ""
863msgstr ""
665
864
666−#: qml/Wizard/Pages/passcode-desktop.qml:109
865+#: qml/Wizard/Pages/passcode-desktop.qml:130
667msgid "Passcodes do not match"
866msgid "Passcodes do not match"
668msgstr ""
867msgstr ""
669
868
@@ -712,26 +911,30 @@ msgid "To proceed with no SIM tap Skip."
712msgstr ""
911msgstr ""
713
912
714#: qml/Wizard/PasswordMeter.qml:87
913#: qml/Wizard/PasswordMeter.qml:87
715−msgid "Passwords match"
914+msgid "Password too short"
716msgstr ""
915msgstr ""
717
916
718#: qml/Wizard/PasswordMeter.qml:89
917#: qml/Wizard/PasswordMeter.qml:89
918+msgid "Passwords match"
919+msgstr ""
920+
921+#: qml/Wizard/PasswordMeter.qml:91
719msgid "Passwords do not match"
922msgid "Passwords do not match"
720msgstr ""
923msgstr ""
721
924
722−#: qml/Wizard/PasswordMeter.qml:93
925+#: qml/Wizard/PasswordMeter.qml:95
723msgid "Strong password"
926msgid "Strong password"
724msgstr ""
927msgstr ""
725
928
726−#: qml/Wizard/PasswordMeter.qml:95
929+#: qml/Wizard/PasswordMeter.qml:97
727msgid "Fair password"
930msgid "Fair password"
728msgstr ""
931msgstr ""
729
932
730−#: qml/Wizard/PasswordMeter.qml:97
933+#: qml/Wizard/PasswordMeter.qml:99
731msgid "Weak password"
934msgid "Weak password"
732msgstr ""
935msgstr ""
733
936
734−#: qml/Wizard/PasswordMeter.qml:99
937+#: qml/Wizard/PasswordMeter.qml:101
735msgid "Very weak password"
938msgid "Very weak password"
736msgstr ""
939msgstr ""
737
940
po/am.po+334−101
@@ -7,101 +7,101 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11−"PO-Revision-Date: 2016-03-24 19:07+0000\n"
11+"PO-Revision-Date: 2016-08-13 14:45+0000\n"
12"Last-Translator: samson <Unknown>\n"
12"Last-Translator: samson <Unknown>\n"
13"Language-Team: Amharic <am@li.org>\n"
13"Language-Team: Amharic <am@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "የ መግቢያ ቃል: "
23msgstr "የ መግቢያ ቃል: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "አቋራጭ ማጣበቂያ"
28msgstr "አቋራጭ ማጣበቂያ"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr "ማጥፊያ"
32msgstr "ማጥፊያ"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "አቋራጭ መለያያ"
36msgstr "አቋራጭ መለያያ"
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr "አካሉ ተቆልፏል"
40msgstr "አካሉ ተቆልፏል"
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ሀረግ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
44msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ሀረግ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
45
45
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
47msgid "You have been locked out due to too many failed passcode attempts."
47msgid "You have been locked out due to too many failed passcode attempts."
48msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ኮድ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
48msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ኮድ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
49
49
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
51#, qt-format
51#, qt-format
52msgid "Please wait %1 minute and then try again…"
52msgid "Please wait %1 minute and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
54msgstr[0] "እባክዎን ይቆዩ %1 ደቂቃ እና ከዛ እንደ ገና ይምክሩ…"
54msgstr[0] "እባክዎን ይቆዩ %1 ደቂቃ እና ከዛ እንደ ገና ይምክሩ…"
55msgstr[1] "እባክዎን ይቆዩ %1 ደቂቃዎች እና ከዛ እንደ ገና ይምክሩ…"
55msgstr[1] "እባክዎን ይቆዩ %1 ደቂቃዎች እና ከዛ እንደ ገና ይምክሩ…"
56
56
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
58msgctxt "Title: Lock/Log out dialog"
58msgctxt "Title: Lock/Log out dialog"
59msgid "Log out"
59msgid "Log out"
60msgstr "መውጫ"
60msgstr "መውጫ"
61
61
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
63msgid "Are you sure you want to log out?"
63msgid "Are you sure you want to log out?"
64msgstr "በእርግጥ መውጣት ይፈልጋሉ?"
64msgstr "በእርግጥ መውጣት ይፈልጋሉ?"
65
65
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
67msgctxt "Button: Lock the system"
67msgctxt "Button: Lock the system"
68msgid "Lock"
68msgid "Lock"
69msgstr "መቆለፊያ"
69msgstr "መቆለፊያ"
70
70
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
72msgctxt "Button: Log out from the system"
72msgctxt "Button: Log out from the system"
73msgid "Log Out"
73msgid "Log Out"
74msgstr "መውጫ"
74msgstr "መውጫ"
75
75
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
79msgid "Cancel"
79msgid "Cancel"
80msgstr "መሰረዣ"
80msgstr "መሰረዣ"
81
81
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
83msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
84msgid "Reboot"
84msgid "Reboot"
85msgstr "እንደገና ማስነሻ"
85msgstr "እንደገና ማስነሻ"
86
86
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
88msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
89msgstr "በእርግጥ እንደገና ማስነሳት ይፈልጋሉ?"
89msgstr "በእርግጥ እንደገና ማስነሳት ይፈልጋሉ?"
90
90
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
92msgid "No"
92msgid "No"
93msgstr "አይ"
93msgstr "አይ"
94
94
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
96msgid "Yes"
96msgid "Yes"
97msgstr "አዎ"
97msgstr "አዎ"
98
98
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
101msgid "Power"
101msgid "Power"
102msgstr "ሐይል"
102msgstr "ሐይል"
103
103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105msgid ""
105msgid ""
106"Are you sure you would like\n"
106"Are you sure you would like\n"
107"to power off?"
107"to power off?"
@@ -109,28 +109,198 @@ msgstr ""
109"በእርግጥ ሐይሉን ማጥፋት\n"
109"በእርግጥ ሐይሉን ማጥፋት\n"
110"ይፈልጋሉ?"
110"ይፈልጋሉ?"
111
111
112−#: qml/Components/Dialogs.qml:200
112+#: qml/Components/Dialogs.qml:202
113msgctxt "Button: Power off the system"
113msgctxt "Button: Power off the system"
114msgid "Power off"
114msgid "Power off"
115msgstr "ሐይል ማጥፊያ"
115msgstr "ሐይል ማጥፊያ"
116
116
117−#: qml/Components/Dialogs.qml:209
117+#: qml/Components/Dialogs.qml:211
118msgctxt "Button: Restart the system"
118msgctxt "Button: Restart the system"
119msgid "Restart"
119msgid "Restart"
120msgstr "እንደገና ማስጀመሪያ"
120msgstr "እንደገና ማስጀመሪያ"
121
121
122+#: qml/Components/KeyboardShortcutsOverlay.qml:41
123+msgid "Keyboard Shortcuts"
124+msgstr "የ ፊደል ገበታ አቋራጮች"
125+
126+#: qml/Components/KeyboardShortcutsOverlay.qml:55
127+msgid "Unity 8"
128+msgstr "Unity 8"
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:62
131+msgid "PrtScr"
132+msgstr "PrtScr"
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:67
135+msgid "Takes a screenshot."
136+msgstr "መመልከቻ ፎቶ ማንሻ"
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:75
139+msgid "Alt + PrtScr"
140+msgstr "Alt + PrtScr"
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:80
143+msgid "Takes a screenshot of a window."
144+msgstr "የ መስኮት መመልከቻ ፎቶ ማንሻ"
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:88
147+msgid "Super + Space"
148+msgstr "Super + Space"
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:93
151+msgid "Switches to next keyboard layout."
152+msgstr "የሚቀጥለው የ ፊደል ገበታ እቅድ መቀየሪያ"
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:101
155+msgid "Super + Shift + Space"
156+msgstr "Super + Shift + Space"
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:106
159+msgid "Switches to previous keyboard layout."
160+msgstr "ወዳለፈው የ ፊደል ገበታ እቅድ መቀየሪያ"
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:118
163+msgid "Launcher"
164+msgstr "ማስነሻ"
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:125
167+msgid "Super (Hold)"
168+msgstr "Super (ይጫኑ)"
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:130
171+msgid "Opens the launcher, displays shortcuts."
172+msgstr "ማስነሻውን መክፈቻ እና አቋራጮች ማሳያ"
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:138
175+msgid "Alt + F1"
176+msgstr "Alt + F1"
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:143
179+msgid "Opens launcher keyboard navigation mode."
180+msgstr "መክፈቻ በ ፊደል ገበታ መቃኛ ዘዴ ማስነሻ"
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:151
183+msgid "Super + Tab"
184+msgstr "Super + Tab"
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:156
187+msgid "Switches applications via the launcher."
188+msgstr "መተግበሪያዎችን በ ማስጀመሪያ መቀየሪያ"
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:164
191+msgid "Super + 0 to 9"
192+msgstr "Super + 0 እስከ 9"
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:169
195+msgid "Same as clicking on a launcher icon."
196+msgstr "ተመሳሳይ በ ማስጀመሪያ ምልክት ላይ እንደ መጫን"
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:181
199+msgid "Scopes"
200+msgstr "ክልል"
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:188
203+msgid "Super (Tap)"
204+msgstr "Super (Tap)"
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:193
207+msgid "Opens the Scopes home."
208+msgstr "የ ክልል ቤት መክፈቻ"
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:209
211+msgid "Switching"
212+msgstr "በ መቀየር ላይ"
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:216
215+msgid "Alt + Tab"
216+msgstr "Alt + Tab"
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:221
219+msgid "Switches between applications."
220+msgstr "በ መተግበሪያዎች መካከል መቀያየሪያ"
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:229
223+msgid "Super + W"
224+msgstr "Super + W"
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:234
227+msgid "Opens the desktop spread."
228+msgstr "የ ዴስክቶፕ ማስፊያ መክፈቻ"
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:242
231+msgid "Cursor Left or Right"
232+msgstr "መጠቆሚያ የ ግራ ወይንም የ ቀኝ"
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:247
235+msgid "Moves the focus."
236+msgstr "ትኩረት ማንቀሳቀሻ"
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:259
239+msgid "Windows"
240+msgstr "መስኮቶች"
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:266
243+msgid "Ctrl + Super + D"
244+msgstr "Ctrl + Super + D"
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:271
247+msgid "Minimizes all windows."
248+msgstr "ሁሉንም መስኮቶች ማሳነሻ"
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:279
251+msgid "Ctrl + Super + Up"
252+msgstr "Ctrl + Super + Up"
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:284
255+msgid "Maximizes the current window."
256+msgstr "የ አሁኑን መስኮት ማሳደጊያ"
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:292
259+msgid "Ctrl + Super + Down"
260+msgstr "Ctrl + Super + Down"
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:297
263+msgid "Minimizes or restores the current window."
264+msgstr "የ አሁኑን መስኮትማሳነሻ ወይንም እንደ ነበር መመለሻ"
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:305
267+msgid "Ctrl + Super + Left or Right"
268+msgstr "Ctrl + Super + Left or Right"
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:310
271+msgid "Semi-maximizes the current window."
272+msgstr "የ አሁኑን መስኮት በ ንዑስ-ማሳደጊያ"
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:318
275+msgid "Alt + F4"
276+msgstr "Alt + F4"
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:323
279+msgid "Closes the current window."
280+msgstr "የ አሁኑን መስኮት መዝጊያ"
281+
122−#: qml/Components/Lockscreen.qml:231
282+#: qml/Components/Lockscreen.qml:239
123msgid "Return to Call"
283msgid "Return to Call"
124msgstr "ወደ ጥሪ መመለሻ"
284msgstr "ወደ ጥሪ መመለሻ"
125
285
126−#: qml/Components/Lockscreen.qml:231
286+#: qml/Components/Lockscreen.qml:239
127msgid "Emergency Call"
287msgid "Emergency Call"
128msgstr "የ ድንገተኛ ጥሪ"
288msgstr "የ ድንገተኛ ጥሪ"
129
289
130−#: qml/Components/Lockscreen.qml:263
290+#: qml/Components/Lockscreen.qml:271
131msgid "OK"
291msgid "OK"
132msgstr "እሺ"
292msgstr "እሺ"
133
293
294+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
295+#, qt-format
296+msgid "%1:%2:%3"
297+msgstr "%1:%2:%3"
298+
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
300+#, qt-format
301+msgid "%1:%2"
302+msgstr "%1:%2"
303+
134#: qml/Components/ModeSwitchWarningDialog.qml:32
304#: qml/Components/ModeSwitchWarningDialog.qml:32
135msgid "Apps may have unsaved data:"
305msgid "Apps may have unsaved data:"
136msgstr "መተግበሪያው ያልተቀመጠ ዳታ ይዟል:"
306msgstr "መተግበሪያው ያልተቀመጠ ዳታ ይዟል:"
@@ -157,6 +327,10 @@ msgstr "አሁን እንደገና መገናኛ!"
157msgid "Close all"
327msgid "Close all"
158msgstr "ሁሉንም መዝጊያ"
328msgstr "ሁሉንም መዝጊያ"
159
329
330+#: qml/Components/SharingPicker.qml:54
331+msgid "Preview Share Item"
332+msgstr "የሚካፈሉትን እቃ ቅድመ እይታ"
333+
160#: qml/Dash/DashPageHeader.qml:333
334#: qml/Dash/DashPageHeader.qml:333
161msgctxt "Button: Open the Ubuntu Store"
335msgctxt "Button: Open the Ubuntu Store"
162msgid "Store"
336msgid "Store"
@@ -188,15 +362,15 @@ msgstr "የ እርስዎን ውጤቶች እንደገና ማጣሪያ"
188msgid "Reset"
362msgid "Reset"
189msgstr "እንደ ነበረ መመለሻ"
363msgstr "እንደ ነበረ መመለሻ"
190
364
191−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
365+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
192msgid "Show less"
366msgid "Show less"
193−msgstr ""
367+msgstr "ትንሽ ማሳያ"
194
368
195−#: qml/Dash/GenericScopeView.qml:579
369+#: qml/Dash/GenericScopeView.qml:580
196msgid "Show all"
370msgid "Show all"
197−msgstr ""
371+msgstr "ሁሉንም ማሳያ"
198
372
199−#: qml/Dash/GenericScopeView.qml:636
373+#: qml/Dash/GenericScopeView.qml:637
200msgctxt "Label: Hint for dash search line edit"
374msgctxt "Label: Hint for dash search line edit"
201msgid "Search"
375msgid "Search"
202msgstr "መፈለጊያ"
376msgstr "መፈለጊያ"
@@ -230,10 +404,6 @@ msgstr "ለዚህ ደረጃ ይስጡ"
230msgid "Add a review"
404msgid "Add a review"
231msgstr "ግምገማ መጨመሪያ"
405msgstr "ግምገማ መጨመሪያ"
232
406
233−#: qml/Dash/Previews/PreviewSharing.qml:66
234−msgid "Preview Share Item"
235−msgstr "የሚካፈሉትን እቃ ቅድመ እይታ"
236−
237#: qml/Dash/PullToRefreshScopeStyle.qml:55
407#: qml/Dash/PullToRefreshScopeStyle.qml:55
238msgid "Pull to refresh…"
408msgid "Pull to refresh…"
239msgstr "ይሳቡ ለማነቃቃት…"
409msgstr "ይሳቡ ለማነቃቃት…"
@@ -250,11 +420,11 @@ msgstr "የአካባቢ ዳታ ማስቻያ"
250msgid "Manage"
420msgid "Manage"
251msgstr "አስተዳዳሪ"
421msgstr "አስተዳዳሪ"
252
422
253−#: qml/Dash/ScopesList.qml:101
423+#: qml/Dash/ScopesList.qml:102
254msgid "Home"
424msgid "Home"
255msgstr "ቤት"
425msgstr "ቤት"
256
426
257−#: qml/Dash/ScopesList.qml:102
427+#: qml/Dash/ScopesList.qml:103
258msgid "Also installed"
428msgid "Also installed"
259msgstr "እንዲሁም የተገጠሙ"
429msgstr "እንዲሁም የተገጠሙ"
260
430
@@ -264,17 +434,29 @@ msgid ""
264"touch pad to interact with the pointer."
434"touch pad to interact with the pointer."
265msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ መጠቀሚያ"
435msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ መጠቀሚያ"
266
436
267−#: qml/Greeter/CoverPage.qml:118
437+#: qml/Greeter/CoverPage.qml:127
268msgid "Unlock"
438msgid "Unlock"
269msgstr "መክፈቻ"
439msgstr "መክፈቻ"
270
440
441+#: qml/Greeter/Greeter.qml:539
442+msgid "Try again"
443+msgstr "እንደገና ይሞክሩ"
444+
445+#: qml/Greeter/LoginList.qml:63
446+msgid "Passphrase"
447+msgstr "የማለፊያ ሐረግ"
448+
449+#: qml/Greeter/LoginList.qml:64
450+msgid "Passcode"
451+msgstr "ማለፊያ ኮድ"
452+
271−#: qml/Greeter/LoginList.qml:239
453+#: qml/Greeter/LoginList.qml:259
272msgid "Retry"
454msgid "Retry"
273msgstr "እንደገና ይሞክሩ"
455msgstr "እንደገና ይሞክሩ"
274
456
275−#: qml/Greeter/LoginList.qml:240
457+#: qml/Greeter/LoginList.qml:260
276−msgid "Tap to unlock"
458+msgid "Log In"
277−msgstr "ለመክፈት መታ ያድርጉ"
459+msgstr "መግቢያ"
278
460
279#: qml/Greeter/NarrowView.qml:54
461#: qml/Greeter/NarrowView.qml:54
280msgid "Sorry, incorrect passphrase."
462msgid "Sorry, incorrect passphrase."
@@ -304,34 +486,34 @@ msgstr ""
304"የተሳሳተ የማለፊያ ኮድ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
486"የተሳሳተ የማለፊያ ኮድ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
305"ይጠፋል"
487"ይጠፋል"
306
488
307−#: qml/Greeter/NarrowView.qml:116
489+#: qml/Greeter/NarrowView.qml:129
308#, qt-format
490#, qt-format
309msgid "Enter %1"
491msgid "Enter %1"
310msgstr "ማስገቢያ %1"
492msgstr "ማስገቢያ %1"
311
493
312−#: qml/Greeter/NarrowView.qml:117
494+#: qml/Greeter/NarrowView.qml:130
313msgid "Enter passphrase"
495msgid "Enter passphrase"
314msgstr "የ ማለፊያ ሀረግ ያስገቡ"
496msgstr "የ ማለፊያ ሀረግ ያስገቡ"
315
497
316−#: qml/Greeter/NarrowView.qml:118
498+#: qml/Greeter/NarrowView.qml:131
317msgid "Enter passcode"
499msgid "Enter passcode"
318msgstr "የ ማለፊያ ኮድ ያስገቡ"
500msgstr "የ ማለፊያ ኮድ ያስገቡ"
319
501
320−#: qml/Greeter/NarrowView.qml:119
502+#: qml/Greeter/NarrowView.qml:135
321#, qt-format
503#, qt-format
322msgid "Sorry, incorrect %1"
504msgid "Sorry, incorrect %1"
323msgstr "አዝናለሁ: የተሳሳተ%1"
505msgstr "አዝናለሁ: የተሳሳተ%1"
324
506
325−#: qml/Greeter/NarrowView.qml:120
507+#: qml/Greeter/NarrowView.qml:136
326msgid "Sorry, incorrect passphrase"
508msgid "Sorry, incorrect passphrase"
327msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
509msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
328
510
329−#: qml/Greeter/NarrowView.qml:121
511+#: qml/Greeter/NarrowView.qml:137
330msgctxt "passphrase"
512msgctxt "passphrase"
331msgid "Please re-enter"
513msgid "Please re-enter"
332msgstr "እባክዎን እንደገና-ያስገቡ"
514msgstr "እባክዎን እንደገና-ያስገቡ"
333
515
334−#: qml/Greeter/NarrowView.qml:122
516+#: qml/Greeter/NarrowView.qml:138
335msgid "Sorry, incorrect passcode"
517msgid "Sorry, incorrect passcode"
336msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
518msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
337
519
@@ -426,49 +608,25 @@ msgstr "መልሶ መደወያ"
426msgid "Drag using 3 fingers any application from one window to the other"
608msgid "Drag using 3 fingers any application from one window to the other"
427msgstr "መጎተቻ 3 ጣቶች በ መጠቀም ማንኛውንም መተግበሪያ ከ አንድ መስኮት ወደ ሌላ"
609msgstr "መጎተቻ 3 ጣቶች በ መጠቀም ማንኛውንም መተግበሪያ ከ አንድ መስኮት ወደ ሌላ"
428
610
429−#: qml/Tutorial/TutorialBottom.qml:78
430−msgid "Swipe up to add a contact"
431−msgstr "ወደ ላይ ይጥረጉ ግንኙነት ለ መጨመር"
432−
433−#: qml/Tutorial/TutorialBottom.qml:80
434−msgid "Swipe up for favorite calculations"
435−msgstr "ወደ ላይ ይጥረጉ የሚወዱትን ለማስላት"
436−
437−#: qml/Tutorial/TutorialBottom.qml:82
438−msgid "Swipe up for recent calls"
439−msgstr "ወደ ላይ ይጥረጉ ለ ቅርብ ጊዜ ጥሪዎች"
440−
441−#: qml/Tutorial/TutorialBottom.qml:84
442−msgid "Swipe up to create a message"
443−msgstr "ወደ ላይ ይጥረጉ መልእክት ለ መፍጠር"
444−
445−#: qml/Tutorial/TutorialBottom.qml:85
446−msgid "Swipe up to manage the app"
447−msgstr "ወደ ላይ ይጥረጉ መተግበሪያ ለማስተዳደር"
448−
449−#: qml/Tutorial/TutorialLeftLong.qml:47
611+#: qml/Tutorial/TutorialLeftLong.qml:49
450msgid "Long swipe from the left edge to open the Today scope"
612msgid "Long swipe from the left edge to open the Today scope"
451msgstr "በ ረጅሙ ከ ግራ ጠርዝ በኩል ይጥረጉ የ ዛሬን ክልል ለ መክፈት"
613msgstr "በ ረጅሙ ከ ግራ ጠርዝ በኩል ይጥረጉ የ ዛሬን ክልል ለ መክፈት"
452
614
453#: qml/Tutorial/TutorialLeft.qml:47
615#: qml/Tutorial/TutorialLeft.qml:47
454−msgid "Swipe from the left edge to open the launcher"
616+msgid "Short swipe from the left edge to open the launcher"
455−msgstr "ከ ግራ ጠርዝ በኩል ይጥረጉ ማስጀመሪያውን ለ መክፈት"
617+msgstr "በ አጭሩ ይጥረጉ ከ ግራ ጠርዝ በኩል ማስጀመሪያውን ለ መክፈት"
456
618
457#: qml/Tutorial/TutorialRight.qml:55
619#: qml/Tutorial/TutorialRight.qml:55
458msgid "Push your mouse against the right edge to view your open apps"
620msgid "Push your mouse against the right edge to view your open apps"
459−msgstr ""
621+msgstr "የ እርስዎን አይጥ መጠቆሚያ ወደ ቀኝ ጠርዝ በኩል ያስጠጉ የ ተከፈቱ መተግበሪያዎችን ለ መመልከት"
460
622
461#: qml/Tutorial/TutorialRight.qml:56
623#: qml/Tutorial/TutorialRight.qml:56
462−msgid "Short or long swipe from the right edge to view your open apps"
624+msgid "Swipe from the right edge to view your open apps"
463−msgstr "በ አጭሩ ወይንም በ ረጅሙ ይጥረጉ ከ ቀኝ ጠረዝ በኩል የ ተከፈቱ መተግበሪያዎችን ለማየት"
625+msgstr "ከ ቀኝ በኩል ይጥረጉ የ ተከፈቱ መተግበሪያዎችን ለ መመልከት"
464
626
465#: qml/Tutorial/TutorialTop.qml:53
627#: qml/Tutorial/TutorialTop.qml:53
466−msgid "Swipe from the top right edge to open the notification bar"
628+msgid "Swipe from the top edge to access notifications and quick settings"
467−msgstr "ከ ላይ ቀኝ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
629+msgstr "ከ ላይ ጠረዝ በኩል ይጥረጉ ማስታወቂያዎች እና በፍጥነት ማሰናጃዎች ጋር ለ መድረስ"
468−
469−#: qml/Tutorial/TutorialTop.qml:54
470−msgid "Swipe from the top edge to open the notification bar"
471−msgstr "ከ ላይ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
472
630
473#: qml/Wizard/Page.qml:54
631#: qml/Wizard/Page.qml:54
474msgctxt "Button: Go back one page in the Wizard"
632msgctxt "Button: Go back one page in the Wizard"
@@ -479,15 +637,32 @@ msgstr "ወደ ኋላ"
479msgid "Language"
637msgid "Language"
480msgstr "ቋንቋ"
638msgstr "ቋንቋ"
481
639
482−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
640+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
483#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
641#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
484#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
642#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
485#: qml/Wizard/Pages/75-report-check.qml:84
643#: qml/Wizard/Pages/75-report-check.qml:84
486−#: qml/Wizard/Pages/passcode-desktop.qml:124
644+#: qml/Wizard/Pages/passcode-desktop.qml:141
487#: qml/Wizard/Pages/password-set.qml:141
645#: qml/Wizard/Pages/password-set.qml:141
488msgid "Next"
646msgid "Next"
489msgstr "ይቀጥሉ"
647msgstr "ይቀጥሉ"
490
648
649+#: qml/Wizard/Pages/20-keyboard.qml:30
650+msgid "Select Keyboard"
651+msgstr ""
652+
653+#: qml/Wizard/Pages/20-keyboard.qml:70
654+msgid "Keyboard language"
655+msgstr ""
656+
657+#: qml/Wizard/Pages/20-keyboard.qml:92
658+msgid "Keyboard layout"
659+msgstr ""
660+
661+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
662+#: qml/Wizard/Pages/sim.qml:101
663+msgid "Skip"
664+msgstr "መዝለያ"
665+
491#: qml/Wizard/Pages/30-wifi.qml:29
666#: qml/Wizard/Pages/30-wifi.qml:29
492msgid "Connect to Wi‑Fi"
667msgid "Connect to Wi‑Fi"
493msgstr "ወደ ዋይ‑ፋይ መገናኛ"
668msgstr "ወደ ዋይ‑ፋይ መገናኛ"
@@ -504,11 +679,6 @@ msgstr "ዝግጁ የ ዋይ-ፋይ ኔትዎርኮች"
504msgid "No available Wi-Fi networks"
679msgid "No available Wi-Fi networks"
505msgstr "ምንም ዝግጁ ዋይ-ፋይ ኔትዎርኮች አልተገኙም"
680msgstr "ምንም ዝግጁ ዋይ-ፋይ ኔትዎርኮች አልተገኙም"
506
681
507−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
508−#: qml/Wizard/Pages/sim.qml:101
509−msgid "Skip"
510−msgstr "መዝለያ"
511−
512#: qml/Wizard/Pages/40-location.qml:27
682#: qml/Wizard/Pages/40-location.qml:27
513msgid "Location Services"
683msgid "Location Services"
514msgstr "የ አካባቢ ግልጋሎት"
684msgstr "የ አካባቢ ግልጋሎት"
@@ -592,6 +762,35 @@ msgstr "የ ስርአቱን አፈጻጸም ለማሻሻል የ ግጭት እና
592msgid "Privacy policy"
762msgid "Privacy policy"
593msgstr "የ ግላዊነት መመሪያ"
763msgstr "የ ግላዊነት መመሪያ"
594
764
765+#: qml/Wizard/Pages/77-system-update.qml:28
766+msgid "Update Device"
767+msgstr ""
768+
769+#: qml/Wizard/Pages/77-system-update.qml:55
770+msgid ""
771+"There is a system update available and ready to install. Afterwards, the "
772+"device will automatically restart."
773+msgstr ""
774+
775+#: qml/Wizard/Pages/77-system-update.qml:76
776+msgctxt "string identifying name of the update"
777+msgid "Ubuntu system"
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:83
781+#, qt-format
782+msgctxt "version of the system update"
783+msgid "Version %1"
784+msgstr ""
785+
786+#: qml/Wizard/Pages/77-system-update.qml:102
787+msgid "This could take a few minutes..."
788+msgstr ""
789+
790+#: qml/Wizard/Pages/77-system-update.qml:116
791+msgid "Install and restart now"
792+msgstr ""
793+
595#: qml/Wizard/Pages/80-finished.qml:89
794#: qml/Wizard/Pages/80-finished.qml:89
596msgid "Welcome to Ubuntu"
795msgid "Welcome to Ubuntu"
597msgstr "እንኳን ደህና መጡ ወደ ኡቡንቱ"
796msgstr "እንኳን ደህና መጡ ወደ ኡቡንቱ"
@@ -637,7 +836,7 @@ msgid "Service Terms"
637msgstr "የ ግልጋሎት ስምምነቶች"
836msgstr "የ ግልጋሎት ስምምነቶች"
638
837
639#: qml/Wizard/Pages/passcode-confirm.qml:43
838#: qml/Wizard/Pages/passcode-confirm.qml:43
640−#: qml/Wizard/Pages/passcode-desktop.qml:80
839+#: qml/Wizard/Pages/passcode-desktop.qml:96
641msgid "Confirm passcode"
840msgid "Confirm passcode"
642msgstr "የማለፊያ ኮድ ማረጋገጫ"
841msgstr "የማለፊያ ኮድ ማረጋገጫ"
643
842
@@ -654,24 +853,24 @@ msgstr "እባክዎን እንደገና-ያስገቡ"
654msgid "Lock Screen Passcode"
853msgid "Lock Screen Passcode"
655msgstr "የ መመልከቻው መቆለፊያ የ ማለፊያ ኮድ"
854msgstr "የ መመልከቻው መቆለፊያ የ ማለፊያ ኮድ"
656
855
657−#: qml/Wizard/Pages/passcode-desktop.qml:56
856+#: qml/Wizard/Pages/passcode-desktop.qml:60
658msgid "Enter 4 numbers to setup your passcode"
857msgid "Enter 4 numbers to setup your passcode"
659msgstr "ያስገቡ 4 ቁጥሮች የ እርስዎን የ ማለፊያ ኮድ ለማሰናዳት"
858msgstr "ያስገቡ 4 ቁጥሮች የ እርስዎን የ ማለፊያ ኮድ ለማሰናዳት"
660
859
661−#: qml/Wizard/Pages/passcode-desktop.qml:65
860+#: qml/Wizard/Pages/passcode-desktop.qml:76
662#: qml/Wizard/Pages/passcode-set.qml:54
861#: qml/Wizard/Pages/passcode-set.qml:54
663msgid "Choose passcode"
862msgid "Choose passcode"
664msgstr "የ ማለፊያ ኮድ ይምረጡ"
863msgstr "የ ማለፊያ ኮድ ይምረጡ"
665
864
666−#: qml/Wizard/Pages/passcode-desktop.qml:105
865+#: qml/Wizard/Pages/passcode-desktop.qml:126
667msgid "Passcode too short"
866msgid "Passcode too short"
668msgstr "የ ማለፊያ ኮዱ በጣም አጭር ነው"
867msgstr "የ ማለፊያ ኮዱ በጣም አጭር ነው"
669
868
670−#: qml/Wizard/Pages/passcode-desktop.qml:107
869+#: qml/Wizard/Pages/passcode-desktop.qml:128
671msgid "Passcodes match"
870msgid "Passcodes match"
672msgstr "የ ማለፊያ ኮዶቹ ተመሳሳይ ናቸው"
871msgstr "የ ማለፊያ ኮዶቹ ተመሳሳይ ናቸው"
673
872
674−#: qml/Wizard/Pages/passcode-desktop.qml:109
873+#: qml/Wizard/Pages/passcode-desktop.qml:130
675msgid "Passcodes do not match"
874msgid "Passcodes do not match"
676msgstr "የ ማለፊያ ኮዶቹ አይመሳሰሉም"
875msgstr "የ ማለፊያ ኮዶቹ አይመሳሰሉም"
677
876
@@ -720,26 +919,30 @@ msgid "To proceed with no SIM tap Skip."
720msgstr "ያለ ሲም ለ መቀጠል መዝለያውን መታ ያድርጉ"
919msgstr "ያለ ሲም ለ መቀጠል መዝለያውን መታ ያድርጉ"
721
920
722#: qml/Wizard/PasswordMeter.qml:87
921#: qml/Wizard/PasswordMeter.qml:87
922+msgid "Password too short"
923+msgstr "የ መግቢያ ቃል በጣም አጭር ነው"
924+
925+#: qml/Wizard/PasswordMeter.qml:89
723msgid "Passwords match"
926msgid "Passwords match"
724msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ ናቸው"
927msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ ናቸው"
725
928
726−#: qml/Wizard/PasswordMeter.qml:89
929+#: qml/Wizard/PasswordMeter.qml:91
727msgid "Passwords do not match"
930msgid "Passwords do not match"
728msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ አይደሉም"
931msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ አይደሉም"
729
932
730−#: qml/Wizard/PasswordMeter.qml:93
933+#: qml/Wizard/PasswordMeter.qml:95
731msgid "Strong password"
934msgid "Strong password"
732msgstr "ጠንካራ የ መግቢያ ቃል"
935msgstr "ጠንካራ የ መግቢያ ቃል"
733
936
734−#: qml/Wizard/PasswordMeter.qml:95
937+#: qml/Wizard/PasswordMeter.qml:97
735msgid "Fair password"
938msgid "Fair password"
736msgstr "ደህና የ መግቢያ ቃል"
939msgstr "ደህና የ መግቢያ ቃል"
737
940
738−#: qml/Wizard/PasswordMeter.qml:97
941+#: qml/Wizard/PasswordMeter.qml:99
739msgid "Weak password"
942msgid "Weak password"
740msgstr "ደካማ የ መግቢያ ቃል"
943msgstr "ደካማ የ መግቢያ ቃል"
741
944
742−#: qml/Wizard/PasswordMeter.qml:99
945+#: qml/Wizard/PasswordMeter.qml:101
743msgid "Very weak password"
946msgid "Very weak password"
744msgstr "በጣም ደካማ የ መግቢያ ቃል"
947msgstr "በጣም ደካማ የ መግቢያ ቃል"
745
948
@@ -988,6 +1191,9 @@ msgstr "በጣም ደካማ የ መግቢያ ቃል"
988#~ msgid "View all your running tasks."
1191#~ msgid "View all your running tasks."
989#~ msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
1192#~ msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
990
1193
1194+#~ msgid "Tap to unlock"
1195+#~ msgstr "ለመክፈት መታ ያድርጉ"
1196+
991#~ msgctxt "Button: Shut down the system"
1197#~ msgctxt "Button: Shut down the system"
992#~ msgid "Shut down"
1198#~ msgid "Shut down"
993#~ msgstr "ማጥፊያ"
1199#~ msgstr "ማጥፊያ"
@@ -1057,5 +1263,32 @@ msgstr "በጣም ደካማ የ መግቢያ ቃል"
1057#~ msgid "Call back"
1263#~ msgid "Call back"
1058#~ msgstr "መልሶ መደወያ"
1264#~ msgstr "መልሶ መደወያ"
1059
1265
1266+#~ msgid "Swipe up for recent calls"
1267+#~ msgstr "ወደ ላይ ይጥረጉ ለ ቅርብ ጊዜ ጥሪዎች"
1268+
1269+#~ msgid "Swipe up for favorite calculations"
1270+#~ msgstr "ወደ ላይ ይጥረጉ የሚወዱትን ለማስላት"
1271+
1272+#~ msgid "Swipe up to manage the app"
1273+#~ msgstr "ወደ ላይ ይጥረጉ መተግበሪያ ለማስተዳደር"
1274+
1275+#~ msgid "Swipe up to create a message"
1276+#~ msgstr "ወደ ላይ ይጥረጉ መልእክት ለ መፍጠር"
1277+
1278+#~ msgid "Swipe up to add a contact"
1279+#~ msgstr "ወደ ላይ ይጥረጉ ግንኙነት ለ መጨመር"
1280+
1281+#~ msgid "Swipe from the top right edge to open the notification bar"
1282+#~ msgstr "ከ ላይ ቀኝ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
1283+
1284+#~ msgid "Swipe from the top edge to open the notification bar"
1285+#~ msgstr "ከ ላይ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
1286+
1287+#~ msgid "Short or long swipe from the right edge to view your open apps"
1288+#~ msgstr "በ አጭሩ ወይንም በ ረጅሙ ይጥረጉ ከ ቀኝ ጠረዝ በኩል የ ተከፈቱ መተግበሪያዎችን ለማየት"
1289+
1290+#~ msgid "Swipe from the left edge to open the launcher"
1291+#~ msgstr "ከ ግራ ጠርዝ በኩል ይጥረጉ ማስጀመሪያውን ለ መክፈት"
1292+
1060#~ msgid "Hover your mouse on the right edge to view your open apps"
1293#~ msgid "Hover your mouse on the right edge to view your open apps"
1061#~ msgstr "የ እርስዎን አይጥ ወደ ቀኝ ጠርዝ በኩል ሲያደርጉ የ ተከፈቱ መተግበሪያዎች መመልከቻ"
1294#~ msgstr "የ እርስዎን አይጥ ወደ ቀኝ ጠርዝ በኩል ሲያደርጉ የ ተከፈቱ መተግበሪያዎች መመልከቻ"
po/ar.po+300−94
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2015-07-29 09:41+0000\n"
11"PO-Revision-Date: 2015-07-29 09:41+0000\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
13"Language-Team: Arabic <ar@li.org>\n"
13"Language-Team: Arabic <ar@li.org>\n"
@@ -16,41 +16,41 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
20+"X-Generator: Launchpad (build 18179)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
24msgstr "كلمة السر: "
24msgstr "كلمة السر: "
25
25
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
28msgid "Pin shortcut"
28msgid "Pin shortcut"
29msgstr "تثبيت الاختصار"
29msgstr "تثبيت الاختصار"
30
30
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
32msgid "Quit"
32msgid "Quit"
33msgstr "خروج"
33msgstr "خروج"
34
34
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
36msgid "Unpin shortcut"
36msgid "Unpin shortcut"
37msgstr "إزالة تثبيت الاختصار"
37msgstr "إزالة تثبيت الاختصار"
38
38
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
40msgid "Device Locked"
40msgid "Device Locked"
41msgstr "الجهاز موصد"
41msgstr "الجهاز موصد"
42
42
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
44msgid "You have been locked out due to too many failed passphrase attempts."
44msgid "You have been locked out due to too many failed passphrase attempts."
45msgstr ""
45msgstr ""
46"لقد تم تأمين الجهاز ضد الفتح بسبب المحاولات العديدة الفاشلة للعبارة السرّية."
46"لقد تم تأمين الجهاز ضد الفتح بسبب المحاولات العديدة الفاشلة للعبارة السرّية."
47
47
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
49msgid "You have been locked out due to too many failed passcode attempts."
49msgid "You have been locked out due to too many failed passcode attempts."
50msgstr ""
50msgstr ""
51"لقد تم تأمين الجهاز ضد الفتح بسبب المحاولات العديدة الفاشلة للرمز السرّي."
51"لقد تم تأمين الجهاز ضد الفتح بسبب المحاولات العديدة الفاشلة للرمز السرّي."
52
52
53−#: qml/Components/DelayedLockscreen.qml:74
53+#: qml/Components/DelayedLockscreen.qml:75
54#, qt-format
54#, qt-format
55msgid "Please wait %1 minute and then try again…"
55msgid "Please wait %1 minute and then try again…"
56msgid_plural "Please wait %1 minutes and then try again…"
56msgid_plural "Please wait %1 minutes and then try again…"
@@ -61,54 +61,54 @@ msgstr[3] "برجاء الانتظار %1 دقائق ثم المحاولة مج
61msgstr[4] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
61msgstr[4] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
62msgstr[5] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
62msgstr[5] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
63
63
64−#: qml/Components/Dialogs.qml:144
64+#: qml/Components/Dialogs.qml:146
65msgctxt "Title: Lock/Log out dialog"
65msgctxt "Title: Lock/Log out dialog"
66msgid "Log out"
66msgid "Log out"
67msgstr "خروج"
67msgstr "خروج"
68
68
69−#: qml/Components/Dialogs.qml:145
69+#: qml/Components/Dialogs.qml:147
70msgid "Are you sure you want to log out?"
70msgid "Are you sure you want to log out?"
71msgstr "هل أنت متأكد من رغبتك في تسجيل الخروج؟"
71msgstr "هل أنت متأكد من رغبتك في تسجيل الخروج؟"
72
72
73−#: qml/Components/Dialogs.qml:147
73+#: qml/Components/Dialogs.qml:149
74msgctxt "Button: Lock the system"
74msgctxt "Button: Lock the system"
75msgid "Lock"
75msgid "Lock"
76msgstr "أوصِد"
76msgstr "أوصِد"
77
77
78−#: qml/Components/Dialogs.qml:154
78+#: qml/Components/Dialogs.qml:156
79msgctxt "Button: Log out from the system"
79msgctxt "Button: Log out from the system"
80msgid "Log Out"
80msgid "Log Out"
81msgstr "خروج"
81msgstr "خروج"
82
82
83−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
83+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
84#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
84#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
85#: qml/Wizard/Pages/passcode-set.qml:32
85#: qml/Wizard/Pages/passcode-set.qml:32
86msgid "Cancel"
86msgid "Cancel"
87msgstr "إلغاء"
87msgstr "إلغاء"
88
88
89−#: qml/Components/Dialogs.qml:173
89+#: qml/Components/Dialogs.qml:175
90msgctxt "Title: Reboot dialog"
90msgctxt "Title: Reboot dialog"
91msgid "Reboot"
91msgid "Reboot"
92msgstr "إعادة التشغيل"
92msgstr "إعادة التشغيل"
93
93
94−#: qml/Components/Dialogs.qml:174
94+#: qml/Components/Dialogs.qml:176
95msgid "Are you sure you want to reboot?"
95msgid "Are you sure you want to reboot?"
96msgstr "هل أنت متأكد من رغبتك في إعادة تشغيل الجهاز؟"
96msgstr "هل أنت متأكد من رغبتك في إعادة تشغيل الجهاز؟"
97
97
98−#: qml/Components/Dialogs.qml:176
98+#: qml/Components/Dialogs.qml:178
99msgid "No"
99msgid "No"
100msgstr "لا"
100msgstr "لا"
101
101
102−#: qml/Components/Dialogs.qml:182
102+#: qml/Components/Dialogs.qml:184
103msgid "Yes"
103msgid "Yes"
104msgstr "نعم"
104msgstr "نعم"
105
105
106−#: qml/Components/Dialogs.qml:197
106+#: qml/Components/Dialogs.qml:199
107msgctxt "Title: Power off/Restart dialog"
107msgctxt "Title: Power off/Restart dialog"
108msgid "Power"
108msgid "Power"
109msgstr "الطاقة"
109msgstr "الطاقة"
110
110
111−#: qml/Components/Dialogs.qml:198
111+#: qml/Components/Dialogs.qml:200
112msgid ""
112msgid ""
113"Are you sure you would like\n"
113"Are you sure you would like\n"
114"to power off?"
114"to power off?"
@@ -116,28 +116,198 @@ msgstr ""
116"هل أنت متأكد من رغبتك\n"
116"هل أنت متأكد من رغبتك\n"
117"في إيقاف التشغيل؟"
117"في إيقاف التشغيل؟"
118
118
119−#: qml/Components/Dialogs.qml:200
119+#: qml/Components/Dialogs.qml:202
120msgctxt "Button: Power off the system"
120msgctxt "Button: Power off the system"
121msgid "Power off"
121msgid "Power off"
122msgstr "إيقاف التشغيل"
122msgstr "إيقاف التشغيل"
123
123
124−#: qml/Components/Dialogs.qml:209
124+#: qml/Components/Dialogs.qml:211
125msgctxt "Button: Restart the system"
125msgctxt "Button: Restart the system"
126msgid "Restart"
126msgid "Restart"
127msgstr "إعادة التشغيل"
127msgstr "إعادة التشغيل"
128
128
129+#: qml/Components/KeyboardShortcutsOverlay.qml:41
130+msgid "Keyboard Shortcuts"
131+msgstr ""
132+
133+#: qml/Components/KeyboardShortcutsOverlay.qml:55
134+msgid "Unity 8"
135+msgstr ""
136+
137+#: qml/Components/KeyboardShortcutsOverlay.qml:62
138+msgid "PrtScr"
139+msgstr ""
140+
141+#: qml/Components/KeyboardShortcutsOverlay.qml:67
142+msgid "Takes a screenshot."
143+msgstr ""
144+
145+#: qml/Components/KeyboardShortcutsOverlay.qml:75
146+msgid "Alt + PrtScr"
147+msgstr ""
148+
149+#: qml/Components/KeyboardShortcutsOverlay.qml:80
150+msgid "Takes a screenshot of a window."
151+msgstr ""
152+
153+#: qml/Components/KeyboardShortcutsOverlay.qml:88
154+msgid "Super + Space"
155+msgstr ""
156+
157+#: qml/Components/KeyboardShortcutsOverlay.qml:93
158+msgid "Switches to next keyboard layout."
159+msgstr ""
160+
161+#: qml/Components/KeyboardShortcutsOverlay.qml:101
162+msgid "Super + Shift + Space"
163+msgstr ""
164+
165+#: qml/Components/KeyboardShortcutsOverlay.qml:106
166+msgid "Switches to previous keyboard layout."
167+msgstr ""
168+
169+#: qml/Components/KeyboardShortcutsOverlay.qml:118
170+msgid "Launcher"
171+msgstr ""
172+
173+#: qml/Components/KeyboardShortcutsOverlay.qml:125
174+msgid "Super (Hold)"
175+msgstr ""
176+
177+#: qml/Components/KeyboardShortcutsOverlay.qml:130
178+msgid "Opens the launcher, displays shortcuts."
179+msgstr ""
180+
181+#: qml/Components/KeyboardShortcutsOverlay.qml:138
182+msgid "Alt + F1"
183+msgstr ""
184+
185+#: qml/Components/KeyboardShortcutsOverlay.qml:143
186+msgid "Opens launcher keyboard navigation mode."
187+msgstr ""
188+
189+#: qml/Components/KeyboardShortcutsOverlay.qml:151
190+msgid "Super + Tab"
191+msgstr ""
192+
193+#: qml/Components/KeyboardShortcutsOverlay.qml:156
194+msgid "Switches applications via the launcher."
195+msgstr ""
196+
197+#: qml/Components/KeyboardShortcutsOverlay.qml:164
198+msgid "Super + 0 to 9"
199+msgstr ""
200+
201+#: qml/Components/KeyboardShortcutsOverlay.qml:169
202+msgid "Same as clicking on a launcher icon."
203+msgstr ""
204+
205+#: qml/Components/KeyboardShortcutsOverlay.qml:181
206+msgid "Scopes"
207+msgstr ""
208+
209+#: qml/Components/KeyboardShortcutsOverlay.qml:188
210+msgid "Super (Tap)"
211+msgstr ""
212+
213+#: qml/Components/KeyboardShortcutsOverlay.qml:193
214+msgid "Opens the Scopes home."
215+msgstr ""
216+
217+#: qml/Components/KeyboardShortcutsOverlay.qml:209
218+msgid "Switching"
219+msgstr ""
220+
221+#: qml/Components/KeyboardShortcutsOverlay.qml:216
222+msgid "Alt + Tab"
223+msgstr ""
224+
225+#: qml/Components/KeyboardShortcutsOverlay.qml:221
226+msgid "Switches between applications."
227+msgstr ""
228+
229+#: qml/Components/KeyboardShortcutsOverlay.qml:229
230+msgid "Super + W"
231+msgstr ""
232+
233+#: qml/Components/KeyboardShortcutsOverlay.qml:234
234+msgid "Opens the desktop spread."
235+msgstr ""
236+
237+#: qml/Components/KeyboardShortcutsOverlay.qml:242
238+msgid "Cursor Left or Right"
239+msgstr ""
240+
241+#: qml/Components/KeyboardShortcutsOverlay.qml:247
242+msgid "Moves the focus."
243+msgstr ""
244+
245+#: qml/Components/KeyboardShortcutsOverlay.qml:259
246+msgid "Windows"
247+msgstr ""
248+
249+#: qml/Components/KeyboardShortcutsOverlay.qml:266
250+msgid "Ctrl + Super + D"
251+msgstr ""
252+
253+#: qml/Components/KeyboardShortcutsOverlay.qml:271
254+msgid "Minimizes all windows."
255+msgstr ""
256+
257+#: qml/Components/KeyboardShortcutsOverlay.qml:279
258+msgid "Ctrl + Super + Up"
259+msgstr ""
260+
261+#: qml/Components/KeyboardShortcutsOverlay.qml:284
262+msgid "Maximizes the current window."
263+msgstr ""
264+
265+#: qml/Components/KeyboardShortcutsOverlay.qml:292
266+msgid "Ctrl + Super + Down"
267+msgstr ""
268+
269+#: qml/Components/KeyboardShortcutsOverlay.qml:297
270+msgid "Minimizes or restores the current window."
271+msgstr ""
272+
273+#: qml/Components/KeyboardShortcutsOverlay.qml:305
274+msgid "Ctrl + Super + Left or Right"
275+msgstr ""
276+
277+#: qml/Components/KeyboardShortcutsOverlay.qml:310
278+msgid "Semi-maximizes the current window."
279+msgstr ""
280+
281+#: qml/Components/KeyboardShortcutsOverlay.qml:318
282+msgid "Alt + F4"
283+msgstr ""
284+
285+#: qml/Components/KeyboardShortcutsOverlay.qml:323
286+msgid "Closes the current window."
287+msgstr ""
288+
129−#: qml/Components/Lockscreen.qml:231
289+#: qml/Components/Lockscreen.qml:239
130msgid "Return to Call"
290msgid "Return to Call"
131msgstr "العودة إلى المكالمة"
291msgstr "العودة إلى المكالمة"
132
292
133−#: qml/Components/Lockscreen.qml:231
293+#: qml/Components/Lockscreen.qml:239
134msgid "Emergency Call"
294msgid "Emergency Call"
135msgstr "مكالمة طوارئ"
295msgstr "مكالمة طوارئ"
136
296
137−#: qml/Components/Lockscreen.qml:263
297+#: qml/Components/Lockscreen.qml:271
138msgid "OK"
298msgid "OK"
139msgstr "موافق"
299msgstr "موافق"
140
300
301+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
302+#, qt-format
303+msgid "%1:%2:%3"
304+msgstr ""
305+
306+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
307+#, qt-format
308+msgid "%1:%2"
309+msgstr ""
310+
141#: qml/Components/ModeSwitchWarningDialog.qml:32
311#: qml/Components/ModeSwitchWarningDialog.qml:32
142msgid "Apps may have unsaved data:"
312msgid "Apps may have unsaved data:"
143msgstr ""
313msgstr ""
@@ -164,6 +334,10 @@ msgstr ""
164msgid "Close all"
334msgid "Close all"
165msgstr ""
335msgstr ""
166
336
337+#: qml/Components/SharingPicker.qml:54
338+msgid "Preview Share Item"
339+msgstr ""
340+
167#: qml/Dash/DashPageHeader.qml:333
341#: qml/Dash/DashPageHeader.qml:333
168msgctxt "Button: Open the Ubuntu Store"
342msgctxt "Button: Open the Ubuntu Store"
169msgid "Store"
343msgid "Store"
@@ -195,15 +369,15 @@ msgstr ""
195msgid "Reset"
369msgid "Reset"
196msgstr ""
370msgstr ""
197
371
198−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
372+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
199msgid "Show less"
373msgid "Show less"
200msgstr ""
374msgstr ""
201
375
202−#: qml/Dash/GenericScopeView.qml:579
376+#: qml/Dash/GenericScopeView.qml:580
203msgid "Show all"
377msgid "Show all"
204msgstr ""
378msgstr ""
205
379
206−#: qml/Dash/GenericScopeView.qml:636
380+#: qml/Dash/GenericScopeView.qml:637
207msgctxt "Label: Hint for dash search line edit"
381msgctxt "Label: Hint for dash search line edit"
208msgid "Search"
382msgid "Search"
209msgstr "بحث"
383msgstr "بحث"
@@ -237,10 +411,6 @@ msgstr "قيّم ذلك"
237msgid "Add a review"
411msgid "Add a review"
238msgstr "أضف تعليق"
412msgstr "أضف تعليق"
239
413
240−#: qml/Dash/Previews/PreviewSharing.qml:66
241−msgid "Preview Share Item"
242−msgstr ""
243−
244#: qml/Dash/PullToRefreshScopeStyle.qml:55
414#: qml/Dash/PullToRefreshScopeStyle.qml:55
245msgid "Pull to refresh…"
415msgid "Pull to refresh…"
246msgstr "اسحب للتحديث..."
416msgstr "اسحب للتحديث..."
@@ -257,11 +427,11 @@ msgstr "تفعيل بيانات الموقع"
257msgid "Manage"
427msgid "Manage"
258msgstr "إدارة"
428msgstr "إدارة"
259
429
260−#: qml/Dash/ScopesList.qml:101
430+#: qml/Dash/ScopesList.qml:102
261msgid "Home"
431msgid "Home"
262msgstr "الرئيسية"
432msgstr "الرئيسية"
263
433
264−#: qml/Dash/ScopesList.qml:102
434+#: qml/Dash/ScopesList.qml:103
265msgid "Also installed"
435msgid "Also installed"
266msgstr "أيضا تم تثبيت"
436msgstr "أيضا تم تثبيت"
267
437
@@ -271,17 +441,29 @@ msgid ""
271"touch pad to interact with the pointer."
441"touch pad to interact with the pointer."
272msgstr ""
442msgstr ""
273
443
274−#: qml/Greeter/CoverPage.qml:118
444+#: qml/Greeter/CoverPage.qml:127
275msgid "Unlock"
445msgid "Unlock"
276msgstr "فك القفل"
446msgstr "فك القفل"
277
447
448+#: qml/Greeter/Greeter.qml:539
449+msgid "Try again"
450+msgstr ""
451+
278−#: qml/Greeter/LoginList.qml:239
452+#: qml/Greeter/LoginList.qml:63
453+msgid "Passphrase"
454+msgstr ""
455+
456+#: qml/Greeter/LoginList.qml:64
457+msgid "Passcode"
458+msgstr ""
459+
460+#: qml/Greeter/LoginList.qml:259
279msgid "Retry"
461msgid "Retry"
280msgstr "إعادة المحاولة"
462msgstr "إعادة المحاولة"
281
463
282−#: qml/Greeter/LoginList.qml:240
464+#: qml/Greeter/LoginList.qml:260
283−msgid "Tap to unlock"
465+msgid "Log In"
284−msgstr "انقر لفك القفل"
466+msgstr ""
285
467
286#: qml/Greeter/NarrowView.qml:54
468#: qml/Greeter/NarrowView.qml:54
287msgid "Sorry, incorrect passphrase."
469msgid "Sorry, incorrect passphrase."
@@ -311,34 +493,34 @@ msgstr ""
311"إذا تم إدخال العبارة السرية بشكل خاطئ، فسوف يتم إعادة الهاتف لحالة ضبط "
493"إذا تم إدخال العبارة السرية بشكل خاطئ، فسوف يتم إعادة الهاتف لحالة ضبط "
312"المصنع وسيتم حذف كافة البيانات الشخصية."
494"المصنع وسيتم حذف كافة البيانات الشخصية."
313
495
314−#: qml/Greeter/NarrowView.qml:116
496+#: qml/Greeter/NarrowView.qml:129
315#, qt-format
497#, qt-format
316msgid "Enter %1"
498msgid "Enter %1"
317msgstr "أدخِل %1"
499msgstr "أدخِل %1"
318
500
319−#: qml/Greeter/NarrowView.qml:117
501+#: qml/Greeter/NarrowView.qml:130
320msgid "Enter passphrase"
502msgid "Enter passphrase"
321msgstr "أدخِل العبارة السرية"
503msgstr "أدخِل العبارة السرية"
322
504
323−#: qml/Greeter/NarrowView.qml:118
505+#: qml/Greeter/NarrowView.qml:131
324msgid "Enter passcode"
506msgid "Enter passcode"
325msgstr "أدخِل الرمز السرّي"
507msgstr "أدخِل الرمز السرّي"
326
508
327−#: qml/Greeter/NarrowView.qml:119
509+#: qml/Greeter/NarrowView.qml:135
328#, qt-format
510#, qt-format
329msgid "Sorry, incorrect %1"
511msgid "Sorry, incorrect %1"
330msgstr "نأسف، %1 غير صحيحية"
512msgstr "نأسف، %1 غير صحيحية"
331
513
332−#: qml/Greeter/NarrowView.qml:120
514+#: qml/Greeter/NarrowView.qml:136
333msgid "Sorry, incorrect passphrase"
515msgid "Sorry, incorrect passphrase"
334msgstr "نأسف، عبارة السّر غير صحيحية"
516msgstr "نأسف، عبارة السّر غير صحيحية"
335
517
336−#: qml/Greeter/NarrowView.qml:121
518+#: qml/Greeter/NarrowView.qml:137
337msgctxt "passphrase"
519msgctxt "passphrase"
338msgid "Please re-enter"
520msgid "Please re-enter"
339msgstr "برجاء إعادة إدخالها"
521msgstr "برجاء إعادة إدخالها"
340
522
341−#: qml/Greeter/NarrowView.qml:122
523+#: qml/Greeter/NarrowView.qml:138
342msgid "Sorry, incorrect passcode"
524msgid "Sorry, incorrect passcode"
343msgstr "نأسف، الرمز السري غير صحيح"
525msgstr "نأسف، الرمز السري غير صحيح"
344
526
@@ -445,32 +627,12 @@ msgstr ""
445msgid "Drag using 3 fingers any application from one window to the other"
627msgid "Drag using 3 fingers any application from one window to the other"
446msgstr ""
628msgstr ""
447
629
448−#: qml/Tutorial/TutorialBottom.qml:78
449−msgid "Swipe up to add a contact"
450−msgstr ""
451−
452−#: qml/Tutorial/TutorialBottom.qml:80
453−msgid "Swipe up for favorite calculations"
454−msgstr ""
455−
456−#: qml/Tutorial/TutorialBottom.qml:82
457−msgid "Swipe up for recent calls"
458−msgstr ""
459−
460−#: qml/Tutorial/TutorialBottom.qml:84
461−msgid "Swipe up to create a message"
462−msgstr ""
463−
464−#: qml/Tutorial/TutorialBottom.qml:85
465−msgid "Swipe up to manage the app"
466−msgstr ""
467−
468−#: qml/Tutorial/TutorialLeftLong.qml:47
630+#: qml/Tutorial/TutorialLeftLong.qml:49
469msgid "Long swipe from the left edge to open the Today scope"
631msgid "Long swipe from the left edge to open the Today scope"
470msgstr ""
632msgstr ""
471
633
472#: qml/Tutorial/TutorialLeft.qml:47
634#: qml/Tutorial/TutorialLeft.qml:47
473−msgid "Swipe from the left edge to open the launcher"
635+msgid "Short swipe from the left edge to open the launcher"
474msgstr ""
636msgstr ""
475
637
476#: qml/Tutorial/TutorialRight.qml:55
638#: qml/Tutorial/TutorialRight.qml:55
@@ -478,15 +640,11 @@ msgid "Push your mouse against the right edge to view your open apps"
478msgstr ""
640msgstr ""
479
641
480#: qml/Tutorial/TutorialRight.qml:56
642#: qml/Tutorial/TutorialRight.qml:56
481−msgid "Short or long swipe from the right edge to view your open apps"
643+msgid "Swipe from the right edge to view your open apps"
482msgstr ""
644msgstr ""
483
645
484#: qml/Tutorial/TutorialTop.qml:53
646#: qml/Tutorial/TutorialTop.qml:53
485−msgid "Swipe from the top right edge to open the notification bar"
647+msgid "Swipe from the top edge to access notifications and quick settings"
486−msgstr ""
487−
488−#: qml/Tutorial/TutorialTop.qml:54
489−msgid "Swipe from the top edge to open the notification bar"
490msgstr ""
648msgstr ""
491
649
492#: qml/Wizard/Page.qml:54
650#: qml/Wizard/Page.qml:54
@@ -498,15 +656,32 @@ msgstr "عودة"
498msgid "Language"
656msgid "Language"
499msgstr ""
657msgstr ""
500
658
501−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
659+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
502#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
660#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
503#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
661#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
504#: qml/Wizard/Pages/75-report-check.qml:84
662#: qml/Wizard/Pages/75-report-check.qml:84
505−#: qml/Wizard/Pages/passcode-desktop.qml:124
663+#: qml/Wizard/Pages/passcode-desktop.qml:141
506#: qml/Wizard/Pages/password-set.qml:141
664#: qml/Wizard/Pages/password-set.qml:141
507msgid "Next"
665msgid "Next"
508msgstr ""
666msgstr ""
509
667
668+#: qml/Wizard/Pages/20-keyboard.qml:30
669+msgid "Select Keyboard"
670+msgstr ""
671+
672+#: qml/Wizard/Pages/20-keyboard.qml:70
673+msgid "Keyboard language"
674+msgstr ""
675+
676+#: qml/Wizard/Pages/20-keyboard.qml:92
677+msgid "Keyboard layout"
678+msgstr ""
679+
680+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
681+#: qml/Wizard/Pages/sim.qml:101
682+msgid "Skip"
683+msgstr "تخطي"
684+
510#: qml/Wizard/Pages/30-wifi.qml:29
685#: qml/Wizard/Pages/30-wifi.qml:29
511msgid "Connect to Wi‑Fi"
686msgid "Connect to Wi‑Fi"
512msgstr "اتصل بالواي فاي"
687msgstr "اتصل بالواي فاي"
@@ -523,11 +698,6 @@ msgstr ""
523msgid "No available Wi-Fi networks"
698msgid "No available Wi-Fi networks"
524msgstr ""
699msgstr ""
525
700
526−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
527−#: qml/Wizard/Pages/sim.qml:101
528−msgid "Skip"
529−msgstr "تخطي"
530−
531#: qml/Wizard/Pages/40-location.qml:27
701#: qml/Wizard/Pages/40-location.qml:27
532msgid "Location Services"
702msgid "Location Services"
533msgstr ""
703msgstr ""
@@ -611,6 +781,35 @@ msgstr ""
611msgid "Privacy policy"
781msgid "Privacy policy"
612msgstr ""
782msgstr ""
613
783
784+#: qml/Wizard/Pages/77-system-update.qml:28
785+msgid "Update Device"
786+msgstr ""
787+
788+#: qml/Wizard/Pages/77-system-update.qml:55
789+msgid ""
790+"There is a system update available and ready to install. Afterwards, the "
791+"device will automatically restart."
792+msgstr ""
793+
794+#: qml/Wizard/Pages/77-system-update.qml:76
795+msgctxt "string identifying name of the update"
796+msgid "Ubuntu system"
797+msgstr ""
798+
799+#: qml/Wizard/Pages/77-system-update.qml:83
800+#, qt-format
801+msgctxt "version of the system update"
802+msgid "Version %1"
803+msgstr ""
804+
805+#: qml/Wizard/Pages/77-system-update.qml:102
806+msgid "This could take a few minutes..."
807+msgstr ""
808+
809+#: qml/Wizard/Pages/77-system-update.qml:116
810+msgid "Install and restart now"
811+msgstr ""
812+
614#: qml/Wizard/Pages/80-finished.qml:89
813#: qml/Wizard/Pages/80-finished.qml:89
615msgid "Welcome to Ubuntu"
814msgid "Welcome to Ubuntu"
616msgstr ""
815msgstr ""
@@ -654,7 +853,7 @@ msgid "Service Terms"
654msgstr ""
853msgstr ""
655
854
656#: qml/Wizard/Pages/passcode-confirm.qml:43
855#: qml/Wizard/Pages/passcode-confirm.qml:43
657−#: qml/Wizard/Pages/passcode-desktop.qml:80
856+#: qml/Wizard/Pages/passcode-desktop.qml:96
658msgid "Confirm passcode"
857msgid "Confirm passcode"
659msgstr "تأكيد الرمز السري"
858msgstr "تأكيد الرمز السري"
660
859
@@ -671,24 +870,24 @@ msgstr ""
671msgid "Lock Screen Passcode"
870msgid "Lock Screen Passcode"
672msgstr ""
871msgstr ""
673
872
674−#: qml/Wizard/Pages/passcode-desktop.qml:56
873+#: qml/Wizard/Pages/passcode-desktop.qml:60
675msgid "Enter 4 numbers to setup your passcode"
874msgid "Enter 4 numbers to setup your passcode"
676msgstr ""
875msgstr ""
677
876
678−#: qml/Wizard/Pages/passcode-desktop.qml:65
877+#: qml/Wizard/Pages/passcode-desktop.qml:76
679#: qml/Wizard/Pages/passcode-set.qml:54
878#: qml/Wizard/Pages/passcode-set.qml:54
680msgid "Choose passcode"
879msgid "Choose passcode"
681msgstr ""
880msgstr ""
682
881
683−#: qml/Wizard/Pages/passcode-desktop.qml:105
882+#: qml/Wizard/Pages/passcode-desktop.qml:126
684msgid "Passcode too short"
883msgid "Passcode too short"
685msgstr ""
884msgstr ""
686
885
687−#: qml/Wizard/Pages/passcode-desktop.qml:107
886+#: qml/Wizard/Pages/passcode-desktop.qml:128
688msgid "Passcodes match"
887msgid "Passcodes match"
689msgstr ""
888msgstr ""
690
889
691−#: qml/Wizard/Pages/passcode-desktop.qml:109
890+#: qml/Wizard/Pages/passcode-desktop.qml:130
692msgid "Passcodes do not match"
891msgid "Passcodes do not match"
693msgstr ""
892msgstr ""
694
893
@@ -737,26 +936,30 @@ msgid "To proceed with no SIM tap Skip."
737msgstr ""
936msgstr ""
738
937
739#: qml/Wizard/PasswordMeter.qml:87
938#: qml/Wizard/PasswordMeter.qml:87
740−msgid "Passwords match"
939+msgid "Password too short"
741msgstr ""
940msgstr ""
742
941
743#: qml/Wizard/PasswordMeter.qml:89
942#: qml/Wizard/PasswordMeter.qml:89
943+msgid "Passwords match"
944+msgstr ""
945+
946+#: qml/Wizard/PasswordMeter.qml:91
744msgid "Passwords do not match"
947msgid "Passwords do not match"
745msgstr ""
948msgstr ""
746
949
747−#: qml/Wizard/PasswordMeter.qml:93
950+#: qml/Wizard/PasswordMeter.qml:95
748msgid "Strong password"
951msgid "Strong password"
749msgstr ""
952msgstr ""
750
953
751−#: qml/Wizard/PasswordMeter.qml:95
954+#: qml/Wizard/PasswordMeter.qml:97
752msgid "Fair password"
955msgid "Fair password"
753msgstr ""
956msgstr ""
754
957
755−#: qml/Wizard/PasswordMeter.qml:97
958+#: qml/Wizard/PasswordMeter.qml:99
756msgid "Weak password"
959msgid "Weak password"
757msgstr ""
960msgstr ""
758
961
759−#: qml/Wizard/PasswordMeter.qml:99
962+#: qml/Wizard/PasswordMeter.qml:101
760msgid "Very weak password"
963msgid "Very weak password"
761msgstr ""
964msgstr ""
762
965
@@ -867,6 +1070,9 @@ msgstr ""
867#~ msgid "See all"
1070#~ msgid "See all"
868#~ msgstr "عرض الكل"
1071#~ msgstr "عرض الكل"
869
1072
1073+#~ msgid "Tap to unlock"
1074+#~ msgstr "انقر لفك القفل"
1075+
870#~ msgid "Please re-enter"
1076#~ msgid "Please re-enter"
871#~ msgstr "برجاء إعادة إدخالها"
1077#~ msgstr "برجاء إعادة إدخالها"
872
1078
po/ast.po+330−97
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2016-05-16 14:07+0000\n"
11"PO-Revision-Date: 2016-05-16 14:07+0000\n"
12"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
12"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
13"Language-Team: Asturian <ast@li.org>\n"
13"Language-Team: Asturian <ast@li.org>\n"
@@ -15,94 +15,94 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Contraseña: "
23msgstr "Contraseña: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Anclar atayu"
28msgstr "Anclar atayu"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr "Colar"
32msgstr "Colar"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Desanclar atayu"
36msgstr "Desanclar atayu"
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr "Preséu bloquiáu"
40msgstr "Preséu bloquiáu"
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr "Quedasti bloquiáu polos escesivos intentos fallíos de fras de pasu."
44msgstr "Quedasti bloquiáu polos escesivos intentos fallíos de fras de pasu."
45
45
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
47msgid "You have been locked out due to too many failed passcode attempts."
47msgid "You have been locked out due to too many failed passcode attempts."
48msgstr ""
48msgstr ""
49"Quedasti bloquiáu polos escesivos intentos fallíos de códigu de pasu."
49"Quedasti bloquiáu polos escesivos intentos fallíos de códigu de pasu."
50
50
51−#: qml/Components/DelayedLockscreen.qml:74
51+#: qml/Components/DelayedLockscreen.qml:75
52#, qt-format
52#, qt-format
53msgid "Please wait %1 minute and then try again…"
53msgid "Please wait %1 minute and then try again…"
54msgid_plural "Please wait %1 minutes and then try again…"
54msgid_plural "Please wait %1 minutes and then try again…"
55msgstr[0] "Por favor, espera %1 minutu y vuelvi a intentalo…"
55msgstr[0] "Por favor, espera %1 minutu y vuelvi a intentalo…"
56msgstr[1] "Por favor, espera %1 minutos y vuelvi a intentalo…"
56msgstr[1] "Por favor, espera %1 minutos y vuelvi a intentalo…"
57
57
58−#: qml/Components/Dialogs.qml:144
58+#: qml/Components/Dialogs.qml:146
59msgctxt "Title: Lock/Log out dialog"
59msgctxt "Title: Lock/Log out dialog"
60msgid "Log out"
60msgid "Log out"
61msgstr "Zarrar sesión"
61msgstr "Zarrar sesión"
62
62
63−#: qml/Components/Dialogs.qml:145
63+#: qml/Components/Dialogs.qml:147
64msgid "Are you sure you want to log out?"
64msgid "Are you sure you want to log out?"
65msgstr "¿De xuru que quies zarrar la sesión?"
65msgstr "¿De xuru que quies zarrar la sesión?"
66
66
67−#: qml/Components/Dialogs.qml:147
67+#: qml/Components/Dialogs.qml:149
68msgctxt "Button: Lock the system"
68msgctxt "Button: Lock the system"
69msgid "Lock"
69msgid "Lock"
70msgstr "Bloquiar"
70msgstr "Bloquiar"
71
71
72−#: qml/Components/Dialogs.qml:154
72+#: qml/Components/Dialogs.qml:156
73msgctxt "Button: Log out from the system"
73msgctxt "Button: Log out from the system"
74msgid "Log Out"
74msgid "Log Out"
75msgstr "Zarrar sesión"
75msgstr "Zarrar sesión"
76
76
77−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
78#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
78#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
79#: qml/Wizard/Pages/passcode-set.qml:32
79#: qml/Wizard/Pages/passcode-set.qml:32
80msgid "Cancel"
80msgid "Cancel"
81msgstr "Encaboxar"
81msgstr "Encaboxar"
82
82
83−#: qml/Components/Dialogs.qml:173
83+#: qml/Components/Dialogs.qml:175
84msgctxt "Title: Reboot dialog"
84msgctxt "Title: Reboot dialog"
85msgid "Reboot"
85msgid "Reboot"
86msgstr "Reaniciu"
86msgstr "Reaniciu"
87
87
88−#: qml/Components/Dialogs.qml:174
88+#: qml/Components/Dialogs.qml:176
89msgid "Are you sure you want to reboot?"
89msgid "Are you sure you want to reboot?"
90msgstr "¿De xuru que quies reaniciar?"
90msgstr "¿De xuru que quies reaniciar?"
91
91
92−#: qml/Components/Dialogs.qml:176
92+#: qml/Components/Dialogs.qml:178
93msgid "No"
93msgid "No"
94msgstr "Non"
94msgstr "Non"
95
95
96−#: qml/Components/Dialogs.qml:182
96+#: qml/Components/Dialogs.qml:184
97msgid "Yes"
97msgid "Yes"
98msgstr "Sí"
98msgstr "Sí"
99
99
100−#: qml/Components/Dialogs.qml:197
100+#: qml/Components/Dialogs.qml:199
101msgctxt "Title: Power off/Restart dialog"
101msgctxt "Title: Power off/Restart dialog"
102msgid "Power"
102msgid "Power"
103msgstr "Apagáu"
103msgstr "Apagáu"
104
104
105−#: qml/Components/Dialogs.qml:198
105+#: qml/Components/Dialogs.qml:200
106msgid ""
106msgid ""
107"Are you sure you would like\n"
107"Are you sure you would like\n"
108"to power off?"
108"to power off?"
@@ -110,28 +110,198 @@ msgstr ""
110"¿De xuru que te prestaría\n"
110"¿De xuru que te prestaría\n"
111"apagar?"
111"apagar?"
112
112
113−#: qml/Components/Dialogs.qml:200
113+#: qml/Components/Dialogs.qml:202
114msgctxt "Button: Power off the system"
114msgctxt "Button: Power off the system"
115msgid "Power off"
115msgid "Power off"
116msgstr "Apagar"
116msgstr "Apagar"
117
117
118−#: qml/Components/Dialogs.qml:209
118+#: qml/Components/Dialogs.qml:211
119msgctxt "Button: Restart the system"
119msgctxt "Button: Restart the system"
120msgid "Restart"
120msgid "Restart"
121msgstr "Reaniciar"
121msgstr "Reaniciar"
122
122
123+#: qml/Components/KeyboardShortcutsOverlay.qml:41
124+msgid "Keyboard Shortcuts"
125+msgstr ""
126+
127+#: qml/Components/KeyboardShortcutsOverlay.qml:55
128+msgid "Unity 8"
129+msgstr ""
130+
131+#: qml/Components/KeyboardShortcutsOverlay.qml:62
132+msgid "PrtScr"
133+msgstr ""
134+
135+#: qml/Components/KeyboardShortcutsOverlay.qml:67
136+msgid "Takes a screenshot."
137+msgstr ""
138+
139+#: qml/Components/KeyboardShortcutsOverlay.qml:75
140+msgid "Alt + PrtScr"
141+msgstr ""
142+
143+#: qml/Components/KeyboardShortcutsOverlay.qml:80
144+msgid "Takes a screenshot of a window."
145+msgstr ""
146+
147+#: qml/Components/KeyboardShortcutsOverlay.qml:88
148+msgid "Super + Space"
149+msgstr ""
150+
151+#: qml/Components/KeyboardShortcutsOverlay.qml:93
152+msgid "Switches to next keyboard layout."
153+msgstr ""
154+
155+#: qml/Components/KeyboardShortcutsOverlay.qml:101
156+msgid "Super + Shift + Space"
157+msgstr ""
158+
159+#: qml/Components/KeyboardShortcutsOverlay.qml:106
160+msgid "Switches to previous keyboard layout."
161+msgstr ""
162+
163+#: qml/Components/KeyboardShortcutsOverlay.qml:118
164+msgid "Launcher"
165+msgstr ""
166+
167+#: qml/Components/KeyboardShortcutsOverlay.qml:125
168+msgid "Super (Hold)"
169+msgstr ""
170+
171+#: qml/Components/KeyboardShortcutsOverlay.qml:130
172+msgid "Opens the launcher, displays shortcuts."
173+msgstr ""
174+
175+#: qml/Components/KeyboardShortcutsOverlay.qml:138
176+msgid "Alt + F1"
177+msgstr ""
178+
179+#: qml/Components/KeyboardShortcutsOverlay.qml:143
180+msgid "Opens launcher keyboard navigation mode."
181+msgstr ""
182+
183+#: qml/Components/KeyboardShortcutsOverlay.qml:151
184+msgid "Super + Tab"
185+msgstr ""
186+
187+#: qml/Components/KeyboardShortcutsOverlay.qml:156
188+msgid "Switches applications via the launcher."
189+msgstr ""
190+
191+#: qml/Components/KeyboardShortcutsOverlay.qml:164
192+msgid "Super + 0 to 9"
193+msgstr ""
194+
195+#: qml/Components/KeyboardShortcutsOverlay.qml:169
196+msgid "Same as clicking on a launcher icon."
197+msgstr ""
198+
199+#: qml/Components/KeyboardShortcutsOverlay.qml:181
200+msgid "Scopes"
201+msgstr ""
202+
203+#: qml/Components/KeyboardShortcutsOverlay.qml:188
204+msgid "Super (Tap)"
205+msgstr ""
206+
207+#: qml/Components/KeyboardShortcutsOverlay.qml:193
208+msgid "Opens the Scopes home."
209+msgstr ""
210+
211+#: qml/Components/KeyboardShortcutsOverlay.qml:209
212+msgid "Switching"
213+msgstr ""
214+
215+#: qml/Components/KeyboardShortcutsOverlay.qml:216
216+msgid "Alt + Tab"
217+msgstr ""
218+
219+#: qml/Components/KeyboardShortcutsOverlay.qml:221
220+msgid "Switches between applications."
221+msgstr ""
222+
223+#: qml/Components/KeyboardShortcutsOverlay.qml:229
224+msgid "Super + W"
225+msgstr ""
226+
227+#: qml/Components/KeyboardShortcutsOverlay.qml:234
228+msgid "Opens the desktop spread."
229+msgstr ""
230+
231+#: qml/Components/KeyboardShortcutsOverlay.qml:242
232+msgid "Cursor Left or Right"
233+msgstr ""
234+
235+#: qml/Components/KeyboardShortcutsOverlay.qml:247
236+msgid "Moves the focus."
237+msgstr ""
238+
239+#: qml/Components/KeyboardShortcutsOverlay.qml:259
240+msgid "Windows"
241+msgstr ""
242+
243+#: qml/Components/KeyboardShortcutsOverlay.qml:266
244+msgid "Ctrl + Super + D"
245+msgstr ""
246+
247+#: qml/Components/KeyboardShortcutsOverlay.qml:271
248+msgid "Minimizes all windows."
249+msgstr ""
250+
251+#: qml/Components/KeyboardShortcutsOverlay.qml:279
252+msgid "Ctrl + Super + Up"
253+msgstr ""
254+
255+#: qml/Components/KeyboardShortcutsOverlay.qml:284
256+msgid "Maximizes the current window."
257+msgstr ""
258+
259+#: qml/Components/KeyboardShortcutsOverlay.qml:292
260+msgid "Ctrl + Super + Down"
261+msgstr ""
262+
263+#: qml/Components/KeyboardShortcutsOverlay.qml:297
264+msgid "Minimizes or restores the current window."
265+msgstr ""
266+
267+#: qml/Components/KeyboardShortcutsOverlay.qml:305
268+msgid "Ctrl + Super + Left or Right"
269+msgstr ""
270+
271+#: qml/Components/KeyboardShortcutsOverlay.qml:310
272+msgid "Semi-maximizes the current window."
273+msgstr ""
274+
275+#: qml/Components/KeyboardShortcutsOverlay.qml:318
276+msgid "Alt + F4"
277+msgstr ""
278+
279+#: qml/Components/KeyboardShortcutsOverlay.qml:323
280+msgid "Closes the current window."
281+msgstr ""
282+
123−#: qml/Components/Lockscreen.qml:231
283+#: qml/Components/Lockscreen.qml:239
124msgid "Return to Call"
284msgid "Return to Call"
125msgstr "Tornar a la llamada"
285msgstr "Tornar a la llamada"
126
286
127−#: qml/Components/Lockscreen.qml:231
287+#: qml/Components/Lockscreen.qml:239
128msgid "Emergency Call"
288msgid "Emergency Call"
129msgstr "Llamada d'emerxencia"
289msgstr "Llamada d'emerxencia"
130
290
131−#: qml/Components/Lockscreen.qml:263
291+#: qml/Components/Lockscreen.qml:271
132msgid "OK"
292msgid "OK"
133msgstr "Aceutar"
293msgstr "Aceutar"
134
294
295+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
296+#, qt-format
297+msgid "%1:%2:%3"
298+msgstr ""
299+
300+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
301+#, qt-format
302+msgid "%1:%2"
303+msgstr ""
304+
135#: qml/Components/ModeSwitchWarningDialog.qml:32
305#: qml/Components/ModeSwitchWarningDialog.qml:32
136msgid "Apps may have unsaved data:"
306msgid "Apps may have unsaved data:"
137msgstr "Apps que pueden tener datos sin guardar:"
307msgstr "Apps que pueden tener datos sin guardar:"
@@ -158,6 +328,10 @@ msgstr "Reconeutar agora."
158msgid "Close all"
328msgid "Close all"
159msgstr "Zarrar too"
329msgstr "Zarrar too"
160
330
331+#: qml/Components/SharingPicker.qml:54
332+msgid "Preview Share Item"
333+msgstr "Entever l'elementu compartíu"
334+
161#: qml/Dash/DashPageHeader.qml:333
335#: qml/Dash/DashPageHeader.qml:333
162msgctxt "Button: Open the Ubuntu Store"
336msgctxt "Button: Open the Ubuntu Store"
163msgid "Store"
337msgid "Store"
@@ -189,15 +363,15 @@ msgstr "Refina los resultaos"
189msgid "Reset"
363msgid "Reset"
190msgstr "Reafitar"
364msgstr "Reafitar"
191
365
192−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
366+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
193msgid "Show less"
367msgid "Show less"
194msgstr "Ver menos"
368msgstr "Ver menos"
195
369
196−#: qml/Dash/GenericScopeView.qml:579
370+#: qml/Dash/GenericScopeView.qml:580
197msgid "Show all"
371msgid "Show all"
198msgstr "Ver too"
372msgstr "Ver too"
199
373
200−#: qml/Dash/GenericScopeView.qml:636
374+#: qml/Dash/GenericScopeView.qml:637
201msgctxt "Label: Hint for dash search line edit"
375msgctxt "Label: Hint for dash search line edit"
202msgid "Search"
376msgid "Search"
203msgstr "Guetar"
377msgstr "Guetar"
@@ -231,10 +405,6 @@ msgstr "Valorar esto"
231msgid "Add a review"
405msgid "Add a review"
232msgstr "Amestar una reseña"
406msgstr "Amestar una reseña"
233
407
234−#: qml/Dash/Previews/PreviewSharing.qml:66
235−msgid "Preview Share Item"
236−msgstr "Entever l'elementu compartíu"
237−
238#: qml/Dash/PullToRefreshScopeStyle.qml:55
408#: qml/Dash/PullToRefreshScopeStyle.qml:55
239msgid "Pull to refresh…"
409msgid "Pull to refresh…"
240msgstr "Tira p'anovar..."
410msgstr "Tira p'anovar..."
@@ -251,11 +421,11 @@ msgstr "Habilitar datos d'allugamientu"
251msgid "Manage"
421msgid "Manage"
252msgstr "Xestionar"
422msgstr "Xestionar"
253
423
254−#: qml/Dash/ScopesList.qml:101
424+#: qml/Dash/ScopesList.qml:102
255msgid "Home"
425msgid "Home"
256msgstr "Aniciu"
426msgstr "Aniciu"
257
427
258−#: qml/Dash/ScopesList.qml:102
428+#: qml/Dash/ScopesList.qml:103
259msgid "Also installed"
429msgid "Also installed"
260msgstr "Tamién instalaos"
430msgstr "Tamién instalaos"
261
431
@@ -267,17 +437,29 @@ msgstr ""
267"El preséu agora ta coneutáu con una pantalla esterna. Usa esta pantalla como "
437"El preséu agora ta coneutáu con una pantalla esterna. Usa esta pantalla como "
268"touch pad pa interactuar col punteru."
438"touch pad pa interactuar col punteru."
269
439
270−#: qml/Greeter/CoverPage.qml:118
440+#: qml/Greeter/CoverPage.qml:127
271msgid "Unlock"
441msgid "Unlock"
272msgstr "Desbloquiar"
442msgstr "Desbloquiar"
273
443
444+#: qml/Greeter/Greeter.qml:539
445+msgid "Try again"
446+msgstr ""
447+
274−#: qml/Greeter/LoginList.qml:239
448+#: qml/Greeter/LoginList.qml:63
449+msgid "Passphrase"
450+msgstr ""
451+
452+#: qml/Greeter/LoginList.qml:64
453+msgid "Passcode"
454+msgstr ""
455+
456+#: qml/Greeter/LoginList.qml:259
275msgid "Retry"
457msgid "Retry"
276msgstr "Reintentar"
458msgstr "Reintentar"
277
459
278−#: qml/Greeter/LoginList.qml:240
460+#: qml/Greeter/LoginList.qml:260
279−msgid "Tap to unlock"
461+msgid "Log In"
280−msgstr "Calca pa desbloquiar"
462+msgstr ""
281
463
282#: qml/Greeter/NarrowView.qml:54
464#: qml/Greeter/NarrowView.qml:54
283msgid "Sorry, incorrect passphrase."
465msgid "Sorry, incorrect passphrase."
@@ -307,34 +489,34 @@ msgstr ""
307"Si s'inxerta'l códigu de pasu incorreutamente, el to teléfonu va reafitase y "
489"Si s'inxerta'l códigu de pasu incorreutamente, el to teléfonu va reafitase y "
308"van desaniciase tolos datos personales."
490"van desaniciase tolos datos personales."
309
491
310−#: qml/Greeter/NarrowView.qml:116
492+#: qml/Greeter/NarrowView.qml:129
311#, qt-format
493#, qt-format
312msgid "Enter %1"
494msgid "Enter %1"
313msgstr "Introduz %1"
495msgstr "Introduz %1"
314
496
315−#: qml/Greeter/NarrowView.qml:117
497+#: qml/Greeter/NarrowView.qml:130
316msgid "Enter passphrase"
498msgid "Enter passphrase"
317msgstr "Introduz la fras de pasu"
499msgstr "Introduz la fras de pasu"
318
500
319−#: qml/Greeter/NarrowView.qml:118
501+#: qml/Greeter/NarrowView.qml:131
320msgid "Enter passcode"
502msgid "Enter passcode"
321msgstr "Introduz el códigu de pasu"
503msgstr "Introduz el códigu de pasu"
322
504
323−#: qml/Greeter/NarrowView.qml:119
505+#: qml/Greeter/NarrowView.qml:135
324#, qt-format
506#, qt-format
325msgid "Sorry, incorrect %1"
507msgid "Sorry, incorrect %1"
326msgstr "Sentímoslo, %1 incorreutu"
508msgstr "Sentímoslo, %1 incorreutu"
327
509
328−#: qml/Greeter/NarrowView.qml:120
510+#: qml/Greeter/NarrowView.qml:136
329msgid "Sorry, incorrect passphrase"
511msgid "Sorry, incorrect passphrase"
330msgstr "Sentímoslo, contraseña incorreuta"
512msgstr "Sentímoslo, contraseña incorreuta"
331
513
332−#: qml/Greeter/NarrowView.qml:121
514+#: qml/Greeter/NarrowView.qml:137
333msgctxt "passphrase"
515msgctxt "passphrase"
334msgid "Please re-enter"
516msgid "Please re-enter"
335msgstr "Vuelve a escribila"
517msgstr "Vuelve a escribila"
336
518
337−#: qml/Greeter/NarrowView.qml:122
519+#: qml/Greeter/NarrowView.qml:138
338msgid "Sorry, incorrect passcode"
520msgid "Sorry, incorrect passcode"
339msgstr "Sentímoslo, códigu de pasu incorreutu"
521msgstr "Sentímoslo, códigu de pasu incorreutu"
340
522
@@ -429,51 +611,25 @@ msgstr "Devolver llamada"
429msgid "Drag using 3 fingers any application from one window to the other"
611msgid "Drag using 3 fingers any application from one window to the other"
430msgstr "Abasnar cualquier aplicación d'una ventana a otra usando 3 deos"
612msgstr "Abasnar cualquier aplicación d'una ventana a otra usando 3 deos"
431
613
432−#: qml/Tutorial/TutorialBottom.qml:78
433−msgid "Swipe up to add a contact"
434−msgstr "Eslizar p'amestar un contactu"
435−
436−#: qml/Tutorial/TutorialBottom.qml:80
437−msgid "Swipe up for favorite calculations"
438−msgstr "Eslizar pa los cálculos favoritos"
439−
440−#: qml/Tutorial/TutorialBottom.qml:82
441−msgid "Swipe up for recent calls"
442−msgstr "Eslizar pa llamaes recién"
443−
444−#: qml/Tutorial/TutorialBottom.qml:84
445−msgid "Swipe up to create a message"
446−msgstr "Eslizar pa crear un mensaxe"
447−
448−#: qml/Tutorial/TutorialBottom.qml:85
449−msgid "Swipe up to manage the app"
450−msgstr "Eslizar p'alministrar la app"
451−
452−#: qml/Tutorial/TutorialLeftLong.qml:47
614+#: qml/Tutorial/TutorialLeftLong.qml:49
453msgid "Long swipe from the left edge to open the Today scope"
615msgid "Long swipe from the left edge to open the Today scope"
454msgstr "Eslizamientu llargu dende'l berbesu izquierdu pa ver el scope Güei"
616msgstr "Eslizamientu llargu dende'l berbesu izquierdu pa ver el scope Güei"
455
617
456#: qml/Tutorial/TutorialLeft.qml:47
618#: qml/Tutorial/TutorialLeft.qml:47
457−msgid "Swipe from the left edge to open the launcher"
619+msgid "Short swipe from the left edge to open the launcher"
458−msgstr "Eslizar dende'l berbesu izquierdu p'abrir el llanzador"
620+msgstr ""
459
621
460#: qml/Tutorial/TutorialRight.qml:55
622#: qml/Tutorial/TutorialRight.qml:55
461msgid "Push your mouse against the right edge to view your open apps"
623msgid "Push your mouse against the right edge to view your open apps"
462msgstr "Emburria'l mur escontra'l berbesu drechu pa ver les apps abiertes"
624msgstr "Emburria'l mur escontra'l berbesu drechu pa ver les apps abiertes"
463
625
464#: qml/Tutorial/TutorialRight.qml:56
626#: qml/Tutorial/TutorialRight.qml:56
465−msgid "Short or long swipe from the right edge to view your open apps"
627+msgid "Swipe from the right edge to view your open apps"
466msgstr ""
628msgstr ""
467−"Eslizamientu curtiu o llargu dende'l berbesu drechu pa ver les apps abiertes"
468
629
469#: qml/Tutorial/TutorialTop.qml:53
630#: qml/Tutorial/TutorialTop.qml:53
470−msgid "Swipe from the top right edge to open the notification bar"
631+msgid "Swipe from the top edge to access notifications and quick settings"
471msgstr ""
632msgstr ""
472−"Esliza dende'l berbesu superior drechu p'abrir la barra de notificaciones"
473−
474−#: qml/Tutorial/TutorialTop.qml:54
475−msgid "Swipe from the top edge to open the notification bar"
476−msgstr "Esliza dende'l berbesu superior p'abrir la barra de notificaciones"
477
633
478#: qml/Wizard/Page.qml:54
634#: qml/Wizard/Page.qml:54
479msgctxt "Button: Go back one page in the Wizard"
635msgctxt "Button: Go back one page in the Wizard"
@@ -484,15 +640,32 @@ msgstr "Atrás"
484msgid "Language"
640msgid "Language"
485msgstr "Llingua"
641msgstr "Llingua"
486
642
487−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
643+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
488#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
644#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
489#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
645#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
490#: qml/Wizard/Pages/75-report-check.qml:84
646#: qml/Wizard/Pages/75-report-check.qml:84
491−#: qml/Wizard/Pages/passcode-desktop.qml:124
647+#: qml/Wizard/Pages/passcode-desktop.qml:141
492#: qml/Wizard/Pages/password-set.qml:141
648#: qml/Wizard/Pages/password-set.qml:141
493msgid "Next"
649msgid "Next"
494msgstr "Siguiente"
650msgstr "Siguiente"
495
651
652+#: qml/Wizard/Pages/20-keyboard.qml:30
653+msgid "Select Keyboard"
654+msgstr ""
655+
656+#: qml/Wizard/Pages/20-keyboard.qml:70
657+msgid "Keyboard language"
658+msgstr ""
659+
660+#: qml/Wizard/Pages/20-keyboard.qml:92
661+msgid "Keyboard layout"
662+msgstr ""
663+
664+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
665+#: qml/Wizard/Pages/sim.qml:101
666+msgid "Skip"
667+msgstr "Saltar"
668+
496#: qml/Wizard/Pages/30-wifi.qml:29
669#: qml/Wizard/Pages/30-wifi.qml:29
497msgid "Connect to Wi‑Fi"
670msgid "Connect to Wi‑Fi"
498msgstr "Coneutase al WiFi"
671msgstr "Coneutase al WiFi"
@@ -509,11 +682,6 @@ msgstr "Redes Wi-Fi disponibles"
509msgid "No available Wi-Fi networks"
682msgid "No available Wi-Fi networks"
510msgstr "Nun hai redes Wi-Fi disponibles"
683msgstr "Nun hai redes Wi-Fi disponibles"
511
684
512−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
513−#: qml/Wizard/Pages/sim.qml:101
514−msgid "Skip"
515−msgstr "Saltar"
516−
517#: qml/Wizard/Pages/40-location.qml:27
685#: qml/Wizard/Pages/40-location.qml:27
518msgid "Location Services"
686msgid "Location Services"
519msgstr "Servicios d'allugamientu"
687msgstr "Servicios d'allugamientu"
@@ -601,6 +769,35 @@ msgstr ""
601msgid "Privacy policy"
769msgid "Privacy policy"
602msgstr "Política d'intimidá"
770msgstr "Política d'intimidá"
603
771
772+#: qml/Wizard/Pages/77-system-update.qml:28
773+msgid "Update Device"
774+msgstr ""
775+
776+#: qml/Wizard/Pages/77-system-update.qml:55
777+msgid ""
778+"There is a system update available and ready to install. Afterwards, the "
779+"device will automatically restart."
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:76
783+msgctxt "string identifying name of the update"
784+msgid "Ubuntu system"
785+msgstr ""
786+
787+#: qml/Wizard/Pages/77-system-update.qml:83
788+#, qt-format
789+msgctxt "version of the system update"
790+msgid "Version %1"
791+msgstr ""
792+
793+#: qml/Wizard/Pages/77-system-update.qml:102
794+msgid "This could take a few minutes..."
795+msgstr ""
796+
797+#: qml/Wizard/Pages/77-system-update.qml:116
798+msgid "Install and restart now"
799+msgstr ""
800+
604#: qml/Wizard/Pages/80-finished.qml:89
801#: qml/Wizard/Pages/80-finished.qml:89
605msgid "Welcome to Ubuntu"
802msgid "Welcome to Ubuntu"
606msgstr "Bienveníu/a a Ubuntu"
803msgstr "Bienveníu/a a Ubuntu"
@@ -644,7 +841,7 @@ msgid "Service Terms"
644msgstr ""
841msgstr ""
645
842
646#: qml/Wizard/Pages/passcode-confirm.qml:43
843#: qml/Wizard/Pages/passcode-confirm.qml:43
647−#: qml/Wizard/Pages/passcode-desktop.qml:80
844+#: qml/Wizard/Pages/passcode-desktop.qml:96
648msgid "Confirm passcode"
845msgid "Confirm passcode"
649msgstr "Confirmar códigu de pasu"
846msgstr "Confirmar códigu de pasu"
650
847
@@ -661,24 +858,24 @@ msgstr ""
661msgid "Lock Screen Passcode"
858msgid "Lock Screen Passcode"
662msgstr ""
859msgstr ""
663
860
664−#: qml/Wizard/Pages/passcode-desktop.qml:56
861+#: qml/Wizard/Pages/passcode-desktop.qml:60
665msgid "Enter 4 numbers to setup your passcode"
862msgid "Enter 4 numbers to setup your passcode"
666msgstr ""
863msgstr ""
667
864
668−#: qml/Wizard/Pages/passcode-desktop.qml:65
865+#: qml/Wizard/Pages/passcode-desktop.qml:76
669#: qml/Wizard/Pages/passcode-set.qml:54
866#: qml/Wizard/Pages/passcode-set.qml:54
670msgid "Choose passcode"
867msgid "Choose passcode"
671msgstr ""
868msgstr ""
672
869
673−#: qml/Wizard/Pages/passcode-desktop.qml:105
870+#: qml/Wizard/Pages/passcode-desktop.qml:126
674msgid "Passcode too short"
871msgid "Passcode too short"
675msgstr ""
872msgstr ""
676
873
677−#: qml/Wizard/Pages/passcode-desktop.qml:107
874+#: qml/Wizard/Pages/passcode-desktop.qml:128
678msgid "Passcodes match"
875msgid "Passcodes match"
679msgstr ""
876msgstr ""
680
877
681−#: qml/Wizard/Pages/passcode-desktop.qml:109
878+#: qml/Wizard/Pages/passcode-desktop.qml:130
682msgid "Passcodes do not match"
879msgid "Passcodes do not match"
683msgstr ""
880msgstr ""
684
881
@@ -727,26 +924,30 @@ msgid "To proceed with no SIM tap Skip."
727msgstr ""
924msgstr ""
728
925
729#: qml/Wizard/PasswordMeter.qml:87
926#: qml/Wizard/PasswordMeter.qml:87
730−msgid "Passwords match"
927+msgid "Password too short"
731msgstr ""
928msgstr ""
732
929
733#: qml/Wizard/PasswordMeter.qml:89
930#: qml/Wizard/PasswordMeter.qml:89
931+msgid "Passwords match"
932+msgstr ""
933+
934+#: qml/Wizard/PasswordMeter.qml:91
734msgid "Passwords do not match"
935msgid "Passwords do not match"
735msgstr ""
936msgstr ""
736
937
737−#: qml/Wizard/PasswordMeter.qml:93
938+#: qml/Wizard/PasswordMeter.qml:95
738msgid "Strong password"
939msgid "Strong password"
739msgstr "Contraseña fuerte"
940msgstr "Contraseña fuerte"
740
941
741−#: qml/Wizard/PasswordMeter.qml:95
942+#: qml/Wizard/PasswordMeter.qml:97
742msgid "Fair password"
943msgid "Fair password"
743msgstr "Contraseña aceutable"
944msgstr "Contraseña aceutable"
744
945
745−#: qml/Wizard/PasswordMeter.qml:97
946+#: qml/Wizard/PasswordMeter.qml:99
746msgid "Weak password"
947msgid "Weak password"
747msgstr "Contraseña feble"
948msgstr "Contraseña feble"
748
949
749−#: qml/Wizard/PasswordMeter.qml:99
950+#: qml/Wizard/PasswordMeter.qml:101
750msgid "Very weak password"
951msgid "Very weak password"
751msgstr "Contraseña feble enforma"
952msgstr "Contraseña feble enforma"
752
953
@@ -914,6 +1115,9 @@ msgstr "Contraseña feble enforma"
914#~ msgid "Reboot"
1115#~ msgid "Reboot"
915#~ msgstr "Reaniciar"
1116#~ msgstr "Reaniciar"
916
1117
1118+#~ msgid "Tap to unlock"
1119+#~ msgstr "Calca pa desbloquiar"
1120+
917#~ msgid "These are the shortcuts to favorite apps"
1121#~ msgid "These are the shortcuts to favorite apps"
918#~ msgstr "Estos son los atayos a les aplicaciones favorites"
1122#~ msgstr "Estos son los atayos a les aplicaciones favorites"
919
1123
@@ -1070,3 +1274,32 @@ msgstr "Contraseña feble enforma"
1070
1274
1071#~ msgid "Call back"
1275#~ msgid "Call back"
1072#~ msgstr "Devolver llamada"
1276#~ msgstr "Devolver llamada"
1277+
1278+#~ msgid "Swipe up for recent calls"
1279+#~ msgstr "Eslizar pa llamaes recién"
1280+
1281+#~ msgid "Swipe up for favorite calculations"
1282+#~ msgstr "Eslizar pa los cálculos favoritos"
1283+
1284+#~ msgid "Swipe up to add a contact"
1285+#~ msgstr "Eslizar p'amestar un contactu"
1286+
1287+#~ msgid "Swipe from the left edge to open the launcher"
1288+#~ msgstr "Eslizar dende'l berbesu izquierdu p'abrir el llanzador"
1289+
1290+#~ msgid "Swipe from the top right edge to open the notification bar"
1291+#~ msgstr ""
1292+#~ "Esliza dende'l berbesu superior drechu p'abrir la barra de notificaciones"
1293+
1294+#~ msgid "Swipe from the top edge to open the notification bar"
1295+#~ msgstr "Esliza dende'l berbesu superior p'abrir la barra de notificaciones"
1296+
1297+#~ msgid "Short or long swipe from the right edge to view your open apps"
1298+#~ msgstr ""
1299+#~ "Eslizamientu curtiu o llargu dende'l berbesu drechu pa ver les apps abiertes"
1300+
1301+#~ msgid "Swipe up to manage the app"
1302+#~ msgstr "Eslizar p'alministrar la app"
1303+
1304+#~ msgid "Swipe up to create a message"
1305+#~ msgstr "Eslizar pa crear un mensaxe"
po/az.po+296−93
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2014-09-03 16:39+0000\n"
11"PO-Revision-Date: 2014-09-03 16:39+0000\n"
12"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
12"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,120 +15,290 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Şifrә: "
23msgstr "Şifrә: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Pin qısayolu"
28msgstr "Pin qısayolu"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Açma qısayolu"
36msgstr "Açma qısayolu"
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr ""
40msgstr ""
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr ""
44msgstr ""
45
45
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
47msgid "You have been locked out due to too many failed passcode attempts."
47msgid "You have been locked out due to too many failed passcode attempts."
48msgstr ""
48msgstr ""
49
49
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
51#, qt-format
51#, qt-format
52msgid "Please wait %1 minute and then try again…"
52msgid "Please wait %1 minute and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
54msgstr[0] ""
54msgstr[0] ""
55msgstr[1] ""
55msgstr[1] ""
56
56
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
58msgctxt "Title: Lock/Log out dialog"
58msgctxt "Title: Lock/Log out dialog"
59msgid "Log out"
59msgid "Log out"
60msgstr ""
60msgstr ""
61
61
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
63msgid "Are you sure you want to log out?"
63msgid "Are you sure you want to log out?"
64msgstr "Çıxmaq istәdiyinizdәn әminsiniz?"
64msgstr "Çıxmaq istәdiyinizdәn әminsiniz?"
65
65
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
67msgctxt "Button: Lock the system"
67msgctxt "Button: Lock the system"
68msgid "Lock"
68msgid "Lock"
69msgstr ""
69msgstr ""
70
70
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
72msgctxt "Button: Log out from the system"
72msgctxt "Button: Log out from the system"
73msgid "Log Out"
73msgid "Log Out"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
79msgid "Cancel"
79msgid "Cancel"
80msgstr "İmtina"
80msgstr "İmtina"
81
81
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
83msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
84msgid "Reboot"
84msgid "Reboot"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
88msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
89msgstr "Yenidәn başlatmaq istәdiyinizә әminsiniz?"
89msgstr "Yenidәn başlatmaq istәdiyinizә әminsiniz?"
90
90
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
92msgid "No"
92msgid "No"
93msgstr "Yox"
93msgstr "Yox"
94
94
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
96msgid "Yes"
96msgid "Yes"
97msgstr "Hə"
97msgstr "Hə"
98
98
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
101msgid "Power"
101msgid "Power"
102msgstr ""
102msgstr ""
103
103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105msgid ""
105msgid ""
106"Are you sure you would like\n"
106"Are you sure you would like\n"
107"to power off?"
107"to power off?"
108msgstr ""
108msgstr ""
109
109
110−#: qml/Components/Dialogs.qml:200
110+#: qml/Components/Dialogs.qml:202
111msgctxt "Button: Power off the system"
111msgctxt "Button: Power off the system"
112msgid "Power off"
112msgid "Power off"
113msgstr ""
113msgstr ""
114
114
115−#: qml/Components/Dialogs.qml:209
115+#: qml/Components/Dialogs.qml:211
116msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
117msgid "Restart"
117msgid "Restart"
118msgstr ""
118msgstr ""
119
119
120+#: qml/Components/KeyboardShortcutsOverlay.qml:41
121+msgid "Keyboard Shortcuts"
122+msgstr ""
123+
124+#: qml/Components/KeyboardShortcutsOverlay.qml:55
125+msgid "Unity 8"
126+msgstr ""
127+
128+#: qml/Components/KeyboardShortcutsOverlay.qml:62
129+msgid "PrtScr"
130+msgstr ""
131+
132+#: qml/Components/KeyboardShortcutsOverlay.qml:67
133+msgid "Takes a screenshot."
134+msgstr ""
135+
136+#: qml/Components/KeyboardShortcutsOverlay.qml:75
137+msgid "Alt + PrtScr"
138+msgstr ""
139+
140+#: qml/Components/KeyboardShortcutsOverlay.qml:80
141+msgid "Takes a screenshot of a window."
142+msgstr ""
143+
144+#: qml/Components/KeyboardShortcutsOverlay.qml:88
145+msgid "Super + Space"
146+msgstr ""
147+
148+#: qml/Components/KeyboardShortcutsOverlay.qml:93
149+msgid "Switches to next keyboard layout."
150+msgstr ""
151+
152+#: qml/Components/KeyboardShortcutsOverlay.qml:101
153+msgid "Super + Shift + Space"
154+msgstr ""
155+
156+#: qml/Components/KeyboardShortcutsOverlay.qml:106
157+msgid "Switches to previous keyboard layout."
158+msgstr ""
159+
160+#: qml/Components/KeyboardShortcutsOverlay.qml:118
161+msgid "Launcher"
162+msgstr ""
163+
164+#: qml/Components/KeyboardShortcutsOverlay.qml:125
165+msgid "Super (Hold)"
166+msgstr ""
167+
168+#: qml/Components/KeyboardShortcutsOverlay.qml:130
169+msgid "Opens the launcher, displays shortcuts."
170+msgstr ""
171+
172+#: qml/Components/KeyboardShortcutsOverlay.qml:138
173+msgid "Alt + F1"
174+msgstr ""
175+
176+#: qml/Components/KeyboardShortcutsOverlay.qml:143
177+msgid "Opens launcher keyboard navigation mode."
178+msgstr ""
179+
180+#: qml/Components/KeyboardShortcutsOverlay.qml:151
181+msgid "Super + Tab"
182+msgstr ""
183+
184+#: qml/Components/KeyboardShortcutsOverlay.qml:156
185+msgid "Switches applications via the launcher."
186+msgstr ""
187+
188+#: qml/Components/KeyboardShortcutsOverlay.qml:164
189+msgid "Super + 0 to 9"
190+msgstr ""
191+
192+#: qml/Components/KeyboardShortcutsOverlay.qml:169
193+msgid "Same as clicking on a launcher icon."
194+msgstr ""
195+
196+#: qml/Components/KeyboardShortcutsOverlay.qml:181
197+msgid "Scopes"
198+msgstr ""
199+
200+#: qml/Components/KeyboardShortcutsOverlay.qml:188
201+msgid "Super (Tap)"
202+msgstr ""
203+
204+#: qml/Components/KeyboardShortcutsOverlay.qml:193
205+msgid "Opens the Scopes home."
206+msgstr ""
207+
208+#: qml/Components/KeyboardShortcutsOverlay.qml:209
209+msgid "Switching"
210+msgstr ""
211+
212+#: qml/Components/KeyboardShortcutsOverlay.qml:216
213+msgid "Alt + Tab"
214+msgstr ""
215+
216+#: qml/Components/KeyboardShortcutsOverlay.qml:221
217+msgid "Switches between applications."
218+msgstr ""
219+
220+#: qml/Components/KeyboardShortcutsOverlay.qml:229
221+msgid "Super + W"
222+msgstr ""
223+
224+#: qml/Components/KeyboardShortcutsOverlay.qml:234
225+msgid "Opens the desktop spread."
226+msgstr ""
227+
228+#: qml/Components/KeyboardShortcutsOverlay.qml:242
229+msgid "Cursor Left or Right"
230+msgstr ""
231+
232+#: qml/Components/KeyboardShortcutsOverlay.qml:247
233+msgid "Moves the focus."
234+msgstr ""
235+
236+#: qml/Components/KeyboardShortcutsOverlay.qml:259
237+msgid "Windows"
238+msgstr ""
239+
240+#: qml/Components/KeyboardShortcutsOverlay.qml:266
241+msgid "Ctrl + Super + D"
242+msgstr ""
243+
244+#: qml/Components/KeyboardShortcutsOverlay.qml:271
245+msgid "Minimizes all windows."
246+msgstr ""
247+
248+#: qml/Components/KeyboardShortcutsOverlay.qml:279
249+msgid "Ctrl + Super + Up"
250+msgstr ""
251+
252+#: qml/Components/KeyboardShortcutsOverlay.qml:284
253+msgid "Maximizes the current window."
254+msgstr ""
255+
256+#: qml/Components/KeyboardShortcutsOverlay.qml:292
257+msgid "Ctrl + Super + Down"
258+msgstr ""
259+
260+#: qml/Components/KeyboardShortcutsOverlay.qml:297
261+msgid "Minimizes or restores the current window."
262+msgstr ""
263+
264+#: qml/Components/KeyboardShortcutsOverlay.qml:305
265+msgid "Ctrl + Super + Left or Right"
266+msgstr ""
267+
268+#: qml/Components/KeyboardShortcutsOverlay.qml:310
269+msgid "Semi-maximizes the current window."
270+msgstr ""
271+
272+#: qml/Components/KeyboardShortcutsOverlay.qml:318
273+msgid "Alt + F4"
274+msgstr ""
275+
276+#: qml/Components/KeyboardShortcutsOverlay.qml:323
277+msgid "Closes the current window."
278+msgstr ""
279+
120−#: qml/Components/Lockscreen.qml:231
280+#: qml/Components/Lockscreen.qml:239
121msgid "Return to Call"
281msgid "Return to Call"
122msgstr ""
282msgstr ""
123
283
124−#: qml/Components/Lockscreen.qml:231
284+#: qml/Components/Lockscreen.qml:239
125msgid "Emergency Call"
285msgid "Emergency Call"
126msgstr "Zərurət zəngi"
286msgstr "Zərurət zəngi"
127
287
128−#: qml/Components/Lockscreen.qml:263
288+#: qml/Components/Lockscreen.qml:271
129msgid "OK"
289msgid "OK"
130msgstr "Oldu"
290msgstr "Oldu"
131
291
292+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
293+#, qt-format
294+msgid "%1:%2:%3"
295+msgstr ""
296+
297+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
298+#, qt-format
299+msgid "%1:%2"
300+msgstr ""
301+
132#: qml/Components/ModeSwitchWarningDialog.qml:32
302#: qml/Components/ModeSwitchWarningDialog.qml:32
133msgid "Apps may have unsaved data:"
303msgid "Apps may have unsaved data:"
134msgstr ""
304msgstr ""
@@ -155,6 +325,10 @@ msgstr ""
155msgid "Close all"
325msgid "Close all"
156msgstr ""
326msgstr ""
157
327
328+#: qml/Components/SharingPicker.qml:54
329+msgid "Preview Share Item"
330+msgstr ""
331+
158#: qml/Dash/DashPageHeader.qml:333
332#: qml/Dash/DashPageHeader.qml:333
159msgctxt "Button: Open the Ubuntu Store"
333msgctxt "Button: Open the Ubuntu Store"
160msgid "Store"
334msgid "Store"
@@ -186,15 +360,15 @@ msgstr ""
186msgid "Reset"
360msgid "Reset"
187msgstr ""
361msgstr ""
188
362
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
363+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190msgid "Show less"
364msgid "Show less"
191msgstr ""
365msgstr ""
192
366
193−#: qml/Dash/GenericScopeView.qml:579
367+#: qml/Dash/GenericScopeView.qml:580
194msgid "Show all"
368msgid "Show all"
195msgstr ""
369msgstr ""
196
370
197−#: qml/Dash/GenericScopeView.qml:636
371+#: qml/Dash/GenericScopeView.qml:637
198msgctxt "Label: Hint for dash search line edit"
372msgctxt "Label: Hint for dash search line edit"
199msgid "Search"
373msgid "Search"
200msgstr ""
374msgstr ""
@@ -228,10 +402,6 @@ msgstr "Qiymәtlәndir"
228msgid "Add a review"
402msgid "Add a review"
229msgstr "Rəy yaz"
403msgstr "Rəy yaz"
230
404
231−#: qml/Dash/Previews/PreviewSharing.qml:66
232−msgid "Preview Share Item"
233−msgstr ""
234−
235#: qml/Dash/PullToRefreshScopeStyle.qml:55
405#: qml/Dash/PullToRefreshScopeStyle.qml:55
236msgid "Pull to refresh…"
406msgid "Pull to refresh…"
237msgstr ""
407msgstr ""
@@ -248,11 +418,11 @@ msgstr ""
248msgid "Manage"
418msgid "Manage"
249msgstr ""
419msgstr ""
250
420
251−#: qml/Dash/ScopesList.qml:101
421+#: qml/Dash/ScopesList.qml:102
252msgid "Home"
422msgid "Home"
253msgstr ""
423msgstr ""
254
424
255−#: qml/Dash/ScopesList.qml:102
425+#: qml/Dash/ScopesList.qml:103
256msgid "Also installed"
426msgid "Also installed"
257msgstr ""
427msgstr ""
258
428
@@ -262,16 +432,28 @@ msgid ""
262"touch pad to interact with the pointer."
432"touch pad to interact with the pointer."
263msgstr ""
433msgstr ""
264
434
265−#: qml/Greeter/CoverPage.qml:118
435+#: qml/Greeter/CoverPage.qml:127
266msgid "Unlock"
436msgid "Unlock"
267msgstr ""
437msgstr ""
268
438
439+#: qml/Greeter/Greeter.qml:539
440+msgid "Try again"
441+msgstr ""
442+
269−#: qml/Greeter/LoginList.qml:239
443+#: qml/Greeter/LoginList.qml:63
444+msgid "Passphrase"
445+msgstr ""
446+
447+#: qml/Greeter/LoginList.qml:64
448+msgid "Passcode"
449+msgstr ""
450+
451+#: qml/Greeter/LoginList.qml:259
270msgid "Retry"
452msgid "Retry"
271msgstr ""
453msgstr ""
272
454
273−#: qml/Greeter/LoginList.qml:240
455+#: qml/Greeter/LoginList.qml:260
274−msgid "Tap to unlock"
456+msgid "Log In"
275msgstr ""
457msgstr ""
276
458
277#: qml/Greeter/NarrowView.qml:54
459#: qml/Greeter/NarrowView.qml:54
@@ -302,34 +484,34 @@ msgstr ""
302"Əgər açar kod yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
484"Əgər açar kod yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
303"geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
485"geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
304
486
305−#: qml/Greeter/NarrowView.qml:116
487+#: qml/Greeter/NarrowView.qml:129
306#, qt-format
488#, qt-format
307msgid "Enter %1"
489msgid "Enter %1"
308msgstr ""
490msgstr ""
309
491
310−#: qml/Greeter/NarrowView.qml:117
492+#: qml/Greeter/NarrowView.qml:130
311msgid "Enter passphrase"
493msgid "Enter passphrase"
312msgstr ""
494msgstr ""
313
495
314−#: qml/Greeter/NarrowView.qml:118
496+#: qml/Greeter/NarrowView.qml:131
315msgid "Enter passcode"
497msgid "Enter passcode"
316msgstr ""
498msgstr ""
317
499
318−#: qml/Greeter/NarrowView.qml:119
500+#: qml/Greeter/NarrowView.qml:135
319#, qt-format
501#, qt-format
320msgid "Sorry, incorrect %1"
502msgid "Sorry, incorrect %1"
321msgstr "Bağışlayın, %1 yanlışdır"
503msgstr "Bağışlayın, %1 yanlışdır"
322
504
323−#: qml/Greeter/NarrowView.qml:120
505+#: qml/Greeter/NarrowView.qml:136
324msgid "Sorry, incorrect passphrase"
506msgid "Sorry, incorrect passphrase"
325msgstr "Bağışlayın, açar söz yanlışdır"
507msgstr "Bağışlayın, açar söz yanlışdır"
326
508
327−#: qml/Greeter/NarrowView.qml:121
509+#: qml/Greeter/NarrowView.qml:137
328msgctxt "passphrase"
510msgctxt "passphrase"
329msgid "Please re-enter"
511msgid "Please re-enter"
330msgstr ""
512msgstr ""
331
513
332−#: qml/Greeter/NarrowView.qml:122
514+#: qml/Greeter/NarrowView.qml:138
333msgid "Sorry, incorrect passcode"
515msgid "Sorry, incorrect passcode"
334msgstr ""
516msgstr ""
335
517
@@ -424,32 +606,12 @@ msgstr ""
424msgid "Drag using 3 fingers any application from one window to the other"
606msgid "Drag using 3 fingers any application from one window to the other"
425msgstr ""
607msgstr ""
426
608
427−#: qml/Tutorial/TutorialBottom.qml:78
428−msgid "Swipe up to add a contact"
429−msgstr ""
430−
431−#: qml/Tutorial/TutorialBottom.qml:80
432−msgid "Swipe up for favorite calculations"
433−msgstr ""
434−
435−#: qml/Tutorial/TutorialBottom.qml:82
436−msgid "Swipe up for recent calls"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:84
440−msgid "Swipe up to create a message"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialBottom.qml:85
444−msgid "Swipe up to manage the app"
445−msgstr ""
446−
447−#: qml/Tutorial/TutorialLeftLong.qml:47
609+#: qml/Tutorial/TutorialLeftLong.qml:49
448msgid "Long swipe from the left edge to open the Today scope"
610msgid "Long swipe from the left edge to open the Today scope"
449msgstr ""
611msgstr ""
450
612
451#: qml/Tutorial/TutorialLeft.qml:47
613#: qml/Tutorial/TutorialLeft.qml:47
452−msgid "Swipe from the left edge to open the launcher"
614+msgid "Short swipe from the left edge to open the launcher"
453msgstr ""
615msgstr ""
454
616
455#: qml/Tutorial/TutorialRight.qml:55
617#: qml/Tutorial/TutorialRight.qml:55
@@ -457,15 +619,11 @@ msgid "Push your mouse against the right edge to view your open apps"
457msgstr ""
619msgstr ""
458
620
459#: qml/Tutorial/TutorialRight.qml:56
621#: qml/Tutorial/TutorialRight.qml:56
460−msgid "Short or long swipe from the right edge to view your open apps"
622+msgid "Swipe from the right edge to view your open apps"
461msgstr ""
623msgstr ""
462
624
463#: qml/Tutorial/TutorialTop.qml:53
625#: qml/Tutorial/TutorialTop.qml:53
464−msgid "Swipe from the top right edge to open the notification bar"
626+msgid "Swipe from the top edge to access notifications and quick settings"
465−msgstr ""
466−
467−#: qml/Tutorial/TutorialTop.qml:54
468−msgid "Swipe from the top edge to open the notification bar"
469msgstr ""
627msgstr ""
470
628
471#: qml/Wizard/Page.qml:54
629#: qml/Wizard/Page.qml:54
@@ -477,15 +635,32 @@ msgstr ""
477msgid "Language"
635msgid "Language"
478msgstr ""
636msgstr ""
479
637
480−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
638+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
481#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
639#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
482#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
640#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
483#: qml/Wizard/Pages/75-report-check.qml:84
641#: qml/Wizard/Pages/75-report-check.qml:84
484−#: qml/Wizard/Pages/passcode-desktop.qml:124
642+#: qml/Wizard/Pages/passcode-desktop.qml:141
485#: qml/Wizard/Pages/password-set.qml:141
643#: qml/Wizard/Pages/password-set.qml:141
486msgid "Next"
644msgid "Next"
487msgstr ""
645msgstr ""
488
646
647+#: qml/Wizard/Pages/20-keyboard.qml:30
648+msgid "Select Keyboard"
649+msgstr ""
650+
651+#: qml/Wizard/Pages/20-keyboard.qml:70
652+msgid "Keyboard language"
653+msgstr ""
654+
655+#: qml/Wizard/Pages/20-keyboard.qml:92
656+msgid "Keyboard layout"
657+msgstr ""
658+
659+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
660+#: qml/Wizard/Pages/sim.qml:101
661+msgid "Skip"
662+msgstr ""
663+
489#: qml/Wizard/Pages/30-wifi.qml:29
664#: qml/Wizard/Pages/30-wifi.qml:29
490msgid "Connect to Wi‑Fi"
665msgid "Connect to Wi‑Fi"
491msgstr ""
666msgstr ""
@@ -502,11 +677,6 @@ msgstr ""
502msgid "No available Wi-Fi networks"
677msgid "No available Wi-Fi networks"
503msgstr ""
678msgstr ""
504
679
505−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
506−#: qml/Wizard/Pages/sim.qml:101
507−msgid "Skip"
508−msgstr ""
509−
510#: qml/Wizard/Pages/40-location.qml:27
680#: qml/Wizard/Pages/40-location.qml:27
511msgid "Location Services"
681msgid "Location Services"
512msgstr ""
682msgstr ""
@@ -590,6 +760,35 @@ msgstr ""
590msgid "Privacy policy"
760msgid "Privacy policy"
591msgstr ""
761msgstr ""
592
762
763+#: qml/Wizard/Pages/77-system-update.qml:28
764+msgid "Update Device"
765+msgstr ""
766+
767+#: qml/Wizard/Pages/77-system-update.qml:55
768+msgid ""
769+"There is a system update available and ready to install. Afterwards, the "
770+"device will automatically restart."
771+msgstr ""
772+
773+#: qml/Wizard/Pages/77-system-update.qml:76
774+msgctxt "string identifying name of the update"
775+msgid "Ubuntu system"
776+msgstr ""
777+
778+#: qml/Wizard/Pages/77-system-update.qml:83
779+#, qt-format
780+msgctxt "version of the system update"
781+msgid "Version %1"
782+msgstr ""
783+
784+#: qml/Wizard/Pages/77-system-update.qml:102
785+msgid "This could take a few minutes..."
786+msgstr ""
787+
788+#: qml/Wizard/Pages/77-system-update.qml:116
789+msgid "Install and restart now"
790+msgstr ""
791+
593#: qml/Wizard/Pages/80-finished.qml:89
792#: qml/Wizard/Pages/80-finished.qml:89
594msgid "Welcome to Ubuntu"
793msgid "Welcome to Ubuntu"
595msgstr ""
794msgstr ""
@@ -633,7 +832,7 @@ msgid "Service Terms"
633msgstr ""
832msgstr ""
634
833
635#: qml/Wizard/Pages/passcode-confirm.qml:43
834#: qml/Wizard/Pages/passcode-confirm.qml:43
636−#: qml/Wizard/Pages/passcode-desktop.qml:80
835+#: qml/Wizard/Pages/passcode-desktop.qml:96
637msgid "Confirm passcode"
836msgid "Confirm passcode"
638msgstr ""
837msgstr ""
639
838
@@ -650,24 +849,24 @@ msgstr ""
650msgid "Lock Screen Passcode"
849msgid "Lock Screen Passcode"
651msgstr ""
850msgstr ""
652
851
653−#: qml/Wizard/Pages/passcode-desktop.qml:56
852+#: qml/Wizard/Pages/passcode-desktop.qml:60
654msgid "Enter 4 numbers to setup your passcode"
853msgid "Enter 4 numbers to setup your passcode"
655msgstr ""
854msgstr ""
656
855
657−#: qml/Wizard/Pages/passcode-desktop.qml:65
856+#: qml/Wizard/Pages/passcode-desktop.qml:76
658#: qml/Wizard/Pages/passcode-set.qml:54
857#: qml/Wizard/Pages/passcode-set.qml:54
659msgid "Choose passcode"
858msgid "Choose passcode"
660msgstr ""
859msgstr ""
661
860
662−#: qml/Wizard/Pages/passcode-desktop.qml:105
861+#: qml/Wizard/Pages/passcode-desktop.qml:126
663msgid "Passcode too short"
862msgid "Passcode too short"
664msgstr ""
863msgstr ""
665
864
666−#: qml/Wizard/Pages/passcode-desktop.qml:107
865+#: qml/Wizard/Pages/passcode-desktop.qml:128
667msgid "Passcodes match"
866msgid "Passcodes match"
668msgstr ""
867msgstr ""
669
868
670−#: qml/Wizard/Pages/passcode-desktop.qml:109
869+#: qml/Wizard/Pages/passcode-desktop.qml:130
671msgid "Passcodes do not match"
870msgid "Passcodes do not match"
672msgstr ""
871msgstr ""
673
872
@@ -716,26 +915,30 @@ msgid "To proceed with no SIM tap Skip."
716msgstr ""
915msgstr ""
717
916
718#: qml/Wizard/PasswordMeter.qml:87
917#: qml/Wizard/PasswordMeter.qml:87
719−msgid "Passwords match"
918+msgid "Password too short"
720msgstr ""
919msgstr ""
721
920
722#: qml/Wizard/PasswordMeter.qml:89
921#: qml/Wizard/PasswordMeter.qml:89
922+msgid "Passwords match"
923+msgstr ""
924+
925+#: qml/Wizard/PasswordMeter.qml:91
723msgid "Passwords do not match"
926msgid "Passwords do not match"
724msgstr ""
927msgstr ""
725
928
726−#: qml/Wizard/PasswordMeter.qml:93
929+#: qml/Wizard/PasswordMeter.qml:95
727msgid "Strong password"
930msgid "Strong password"
728msgstr ""
931msgstr ""
729
932
730−#: qml/Wizard/PasswordMeter.qml:95
933+#: qml/Wizard/PasswordMeter.qml:97
731msgid "Fair password"
934msgid "Fair password"
732msgstr ""
935msgstr ""
733
936
734−#: qml/Wizard/PasswordMeter.qml:97
937+#: qml/Wizard/PasswordMeter.qml:99
735msgid "Weak password"
938msgid "Weak password"
736msgstr ""
939msgstr ""
737
940
738−#: qml/Wizard/PasswordMeter.qml:99
941+#: qml/Wizard/PasswordMeter.qml:101
739msgid "Very weak password"
942msgid "Very weak password"
740msgstr ""
943msgstr ""
741
944
po/be.po+300−94
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2015-12-13 13:12+0000\n"
11"PO-Revision-Date: 2015-12-13 13:12+0000\n"
12"Last-Translator: Mikhail_SaTuRn <mikhail_saturn@tut.by>\n"
12"Last-Translator: Mikhail_SaTuRn <mikhail_saturn@tut.by>\n"
13"Language-Team: Belarusian <be@li.org>\n"
13"Language-Team: Belarusian <be@li.org>\n"
@@ -16,42 +16,42 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19+"X-Launchpad-Export-Date: 2016-09-03 06:53+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
20+"X-Generator: Launchpad (build 18179)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
24msgstr "Пароль: "
24msgstr "Пароль: "
25
25
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
28msgid "Pin shortcut"
28msgid "Pin shortcut"
29msgstr "Замацаваць кнопку"
29msgstr "Замацаваць кнопку"
30
30
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
32msgid "Quit"
32msgid "Quit"
33msgstr "Выйсці"
33msgstr "Выйсці"
34
34
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
36msgid "Unpin shortcut"
36msgid "Unpin shortcut"
37msgstr "Адмацаваць кнопку"
37msgstr "Адмацаваць кнопку"
38
38
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
40msgid "Device Locked"
40msgid "Device Locked"
41msgstr "Прылада заблакаваная"
41msgstr "Прылада заблакаваная"
42
42
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
44msgid "You have been locked out due to too many failed passphrase attempts."
44msgid "You have been locked out due to too many failed passphrase attempts."
45msgstr ""
45msgstr ""
46"Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў."
46"Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў."
47
47
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
49msgid "You have been locked out due to too many failed passcode attempts."
49msgid "You have been locked out due to too many failed passcode attempts."
50msgstr ""
50msgstr ""
51"Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў уводу "
51"Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў уводу "
52"кода доступу."
52"кода доступу."
53
53
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
55#, qt-format
55#, qt-format
56msgid "Please wait %1 minute and then try again…"
56msgid "Please wait %1 minute and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
@@ -59,54 +59,54 @@ msgstr[0] "Пачакайце %1 хвіліну і паўтарыце спроб
59msgstr[1] "Пачакайце %1 хвіліны і паўтарыце спробу…"
59msgstr[1] "Пачакайце %1 хвіліны і паўтарыце спробу…"
60msgstr[2] "Пачакайце %1 хвілін і паўтарыце спробу…"
60msgstr[2] "Пачакайце %1 хвілін і паўтарыце спробу…"
61
61
62−#: qml/Components/Dialogs.qml:144
62+#: qml/Components/Dialogs.qml:146
63msgctxt "Title: Lock/Log out dialog"
63msgctxt "Title: Lock/Log out dialog"
64msgid "Log out"
64msgid "Log out"
65msgstr "Выйсці"
65msgstr "Выйсці"
66
66
67−#: qml/Components/Dialogs.qml:145
67+#: qml/Components/Dialogs.qml:147
68msgid "Are you sure you want to log out?"
68msgid "Are you sure you want to log out?"
69msgstr "Вы ўпэўненыя, што хочаце выйсці?"
69msgstr "Вы ўпэўненыя, што хочаце выйсці?"
70
70
71−#: qml/Components/Dialogs.qml:147
71+#: qml/Components/Dialogs.qml:149
72msgctxt "Button: Lock the system"
72msgctxt "Button: Lock the system"
73msgid "Lock"
73msgid "Lock"
74msgstr "Заблакаваць"
74msgstr "Заблакаваць"
75
75
76−#: qml/Components/Dialogs.qml:154
76+#: qml/Components/Dialogs.qml:156
77msgctxt "Button: Log out from the system"
77msgctxt "Button: Log out from the system"
78msgid "Log Out"
78msgid "Log Out"
79msgstr "Выйсці"
79msgstr "Выйсці"
80
80
81−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
81+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
82#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
82#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
83#: qml/Wizard/Pages/passcode-set.qml:32
83#: qml/Wizard/Pages/passcode-set.qml:32
84msgid "Cancel"
84msgid "Cancel"
85msgstr "Скасаваць"
85msgstr "Скасаваць"
86
86
87−#: qml/Components/Dialogs.qml:173
87+#: qml/Components/Dialogs.qml:175
88msgctxt "Title: Reboot dialog"
88msgctxt "Title: Reboot dialog"
89msgid "Reboot"
89msgid "Reboot"
90msgstr "Перазагрузіць"
90msgstr "Перазагрузіць"
91
91
92−#: qml/Components/Dialogs.qml:174
92+#: qml/Components/Dialogs.qml:176
93msgid "Are you sure you want to reboot?"
93msgid "Are you sure you want to reboot?"
94msgstr "Вы ўпэўнены, што жадаеце перазагрузіць?"
94msgstr "Вы ўпэўнены, што жадаеце перазагрузіць?"
95
95
96−#: qml/Components/Dialogs.qml:176
96+#: qml/Components/Dialogs.qml:178
97msgid "No"
97msgid "No"
98msgstr "Не"
98msgstr "Не"
99
99
100−#: qml/Components/Dialogs.qml:182
100+#: qml/Components/Dialogs.qml:184
101msgid "Yes"
101msgid "Yes"
102msgstr "Так"
102msgstr "Так"
103
103
104−#: qml/Components/Dialogs.qml:197
104+#: qml/Components/Dialogs.qml:199
105msgctxt "Title: Power off/Restart dialog"
105msgctxt "Title: Power off/Restart dialog"
106msgid "Power"
106msgid "Power"
107msgstr "Сілкаванне"
107msgstr "Сілкаванне"
108
108
109−#: qml/Components/Dialogs.qml:198
109+#: qml/Components/Dialogs.qml:200
110msgid ""
110msgid ""
111"Are you sure you would like\n"
111"Are you sure you would like\n"
112"to power off?"
112"to power off?"
@@ -114,28 +114,198 @@ msgstr ""
114"Вы ўпэўнены, што хочаце\n"
114"Вы ўпэўнены, што хочаце\n"
115"выключыць камп'ютэр?"
115"выключыць камп'ютэр?"
116
116
117−#: qml/Components/Dialogs.qml:200
117+#: qml/Components/Dialogs.qml:202
118msgctxt "Button: Power off the system"
118msgctxt "Button: Power off the system"
119msgid "Power off"
119msgid "Power off"
120msgstr "Выключыць"
120msgstr "Выключыць"
121
121
122−#: qml/Components/Dialogs.qml:209
122+#: qml/Components/Dialogs.qml:211
123msgctxt "Button: Restart the system"
123msgctxt "Button: Restart the system"
124msgid "Restart"
124msgid "Restart"
125msgstr "Перазапуск"
125msgstr "Перазапуск"
126
126
127+#: qml/Components/KeyboardShortcutsOverlay.qml:41
128+msgid "Keyboard Shortcuts"
129+msgstr ""
130+
131+#: qml/Components/KeyboardShortcutsOverlay.qml:55
132+msgid "Unity 8"
133+msgstr ""
134+
135+#: qml/Components/KeyboardShortcutsOverlay.qml:62
136+msgid "PrtScr"
137+msgstr ""
138+
139+#: qml/Components/KeyboardShortcutsOverlay.qml:67
140+msgid "Takes a screenshot."
141+msgstr ""
142+
143+#: qml/Components/KeyboardShortcutsOverlay.qml:75
144+msgid "Alt + PrtScr"
145+msgstr ""
146+
147+#: qml/Components/KeyboardShortcutsOverlay.qml:80
148+msgid "Takes a screenshot of a window."
149+msgstr ""
150+
151+#: qml/Components/KeyboardShortcutsOverlay.qml:88
152+msgid "Super + Space"
153+msgstr ""
154+
155+#: qml/Components/KeyboardShortcutsOverlay.qml:93
156+msgid "Switches to next keyboard layout."
157+msgstr ""
158+
159+#: qml/Components/KeyboardShortcutsOverlay.qml:101
160+msgid "Super + Shift + Space"
161+msgstr ""
162+
163+#: qml/Components/KeyboardShortcutsOverlay.qml:106
164+msgid "Switches to previous keyboard layout."
165+msgstr ""
166+
167+#: qml/Components/KeyboardShortcutsOverlay.qml:118
168+msgid "Launcher"
169+msgstr ""
170+
171+#: qml/Components/KeyboardShortcutsOverlay.qml:125
172+msgid "Super (Hold)"
173+msgstr ""
174+
175+#: qml/Components/KeyboardShortcutsOverlay.qml:130
176+msgid "Opens the launcher, displays shortcuts."
177+msgstr ""
178+
179+#: qml/Components/KeyboardShortcutsOverlay.qml:138
180+msgid "Alt + F1"
181+msgstr ""
182+
183+#: qml/Components/KeyboardShortcutsOverlay.qml:143
184+msgid "Opens launcher keyboard navigation mode."
185+msgstr ""
186+
187+#: qml/Components/KeyboardShortcutsOverlay.qml:151
188+msgid "Super + Tab"
189+msgstr ""
190+
191+#: qml/Components/KeyboardShortcutsOverlay.qml:156
192+msgid "Switches applications via the launcher."
193+msgstr ""
194+
195+#: qml/Components/KeyboardShortcutsOverlay.qml:164
196+msgid "Super + 0 to 9"
197+msgstr ""
198+
199+#: qml/Components/KeyboardShortcutsOverlay.qml:169
200+msgid "Same as clicking on a launcher icon."
201+msgstr ""
202+
203+#: qml/Components/KeyboardShortcutsOverlay.qml:181
204+msgid "Scopes"
205+msgstr ""
206+
207+#: qml/Components/KeyboardShortcutsOverlay.qml:188
208+msgid "Super (Tap)"
209+msgstr ""
210+
211+#: qml/Components/KeyboardShortcutsOverlay.qml:193
212+msgid "Opens the Scopes home."
213+msgstr ""
214+
215+#: qml/Components/KeyboardShortcutsOverlay.qml:209
216+msgid "Switching"
217+msgstr ""
218+
219+#: qml/Components/KeyboardShortcutsOverlay.qml:216
220+msgid "Alt + Tab"
221+msgstr ""
222+
223+#: qml/Components/KeyboardShortcutsOverlay.qml:221
224+msgid "Switches between applications."
225+msgstr ""
226+
227+#: qml/Components/KeyboardShortcutsOverlay.qml:229
228+msgid "Super + W"
229+msgstr ""
230+
231+#: qml/Components/KeyboardShortcutsOverlay.qml:234
232+msgid "Opens the desktop spread."
233+msgstr ""
234+
235+#: qml/Components/KeyboardShortcutsOverlay.qml:242
236+msgid "Cursor Left or Right"
237+msgstr ""
238+
239+#: qml/Components/KeyboardShortcutsOverlay.qml:247
240+msgid "Moves the focus."
241+msgstr ""
242+
243+#: qml/Components/KeyboardShortcutsOverlay.qml:259
244+msgid "Windows"
245+msgstr ""
246+
247+#: qml/Components/KeyboardShortcutsOverlay.qml:266
248+msgid "Ctrl + Super + D"
249+msgstr ""
250+
251+#: qml/Components/KeyboardShortcutsOverlay.qml:271
252+msgid "Minimizes all windows."
253+msgstr ""
254+
255+#: qml/Components/KeyboardShortcutsOverlay.qml:279
256+msgid "Ctrl + Super + Up"
257+msgstr ""
258+
259+#: qml/Components/KeyboardShortcutsOverlay.qml:284
260+msgid "Maximizes the current window."
261+msgstr ""
262+
263+#: qml/Components/KeyboardShortcutsOverlay.qml:292
264+msgid "Ctrl + Super + Down"
265+msgstr ""
266+
267+#: qml/Components/KeyboardShortcutsOverlay.qml:297
268+msgid "Minimizes or restores the current window."
269+msgstr ""
270+
271+#: qml/Components/KeyboardShortcutsOverlay.qml:305
272+msgid "Ctrl + Super + Left or Right"
273+msgstr ""
274+
275+#: qml/Components/KeyboardShortcutsOverlay.qml:310
276+msgid "Semi-maximizes the current window."
277+msgstr ""
278+
279+#: qml/Components/KeyboardShortcutsOverlay.qml:318
280+msgid "Alt + F4"
281+msgstr ""
282+
283+#: qml/Components/KeyboardShortcutsOverlay.qml:323
284+msgid "Closes the current window."
285+msgstr ""
286+
127−#: qml/Components/Lockscreen.qml:231
287+#: qml/Components/Lockscreen.qml:239
128msgid "Return to Call"
288msgid "Return to Call"
129msgstr "Вярнуцца да выкліку"
289msgstr "Вярнуцца да выкліку"
130
290
131−#: qml/Components/Lockscreen.qml:231
291+#: qml/Components/Lockscreen.qml:239
132msgid "Emergency Call"
292msgid "Emergency Call"
133msgstr "Терміновы выклік"
293msgstr "Терміновы выклік"
134
294
135−#: qml/Components/Lockscreen.qml:263
295+#: qml/Components/Lockscreen.qml:271
136msgid "OK"
296msgid "OK"
137msgstr "Добра"
297msgstr "Добра"
138
298
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
300+#, qt-format
301+msgid "%1:%2:%3"
302+msgstr ""
303+
304+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
305+#, qt-format
306+msgid "%1:%2"
307+msgstr ""
308+
139#: qml/Components/ModeSwitchWarningDialog.qml:32
309#: qml/Components/ModeSwitchWarningDialog.qml:32
140msgid "Apps may have unsaved data:"
310msgid "Apps may have unsaved data:"
141msgstr "Прылады могуць мець незахованыя дадзеныя:"
311msgstr "Прылады могуць мець незахованыя дадзеныя:"
@@ -162,6 +332,10 @@ msgstr "Перападлучыцца зараз!"
162msgid "Close all"
332msgid "Close all"
163msgstr "Зачыніць усё"
333msgstr "Зачыніць усё"
164
334
335+#: qml/Components/SharingPicker.qml:54
336+msgid "Preview Share Item"
337+msgstr "Праглядзець элемент"
338+
165#: qml/Dash/DashPageHeader.qml:333
339#: qml/Dash/DashPageHeader.qml:333
166msgctxt "Button: Open the Ubuntu Store"
340msgctxt "Button: Open the Ubuntu Store"
167msgid "Store"
341msgid "Store"
@@ -193,15 +367,15 @@ msgstr ""
193msgid "Reset"
367msgid "Reset"
194msgstr ""
368msgstr ""
195
369
196−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
370+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
197msgid "Show less"
371msgid "Show less"
198msgstr ""
372msgstr ""
199
373
200−#: qml/Dash/GenericScopeView.qml:579
374+#: qml/Dash/GenericScopeView.qml:580
201msgid "Show all"
375msgid "Show all"
202msgstr ""
376msgstr ""
203
377
204−#: qml/Dash/GenericScopeView.qml:636
378+#: qml/Dash/GenericScopeView.qml:637
205msgctxt "Label: Hint for dash search line edit"
379msgctxt "Label: Hint for dash search line edit"
206msgid "Search"
380msgid "Search"
207msgstr "Пошук"
381msgstr "Пошук"
@@ -235,10 +409,6 @@ msgstr "Ацаніць"
235msgid "Add a review"
409msgid "Add a review"
236msgstr "Дадаць рэцэнзію"
410msgstr "Дадаць рэцэнзію"
237
411
238−#: qml/Dash/Previews/PreviewSharing.qml:66
239−msgid "Preview Share Item"
240−msgstr "Праглядзець элемент"
241−
242#: qml/Dash/PullToRefreshScopeStyle.qml:55
412#: qml/Dash/PullToRefreshScopeStyle.qml:55
243msgid "Pull to refresh…"
413msgid "Pull to refresh…"
244msgstr "Пацягніце для абнаўлення..."
414msgstr "Пацягніце для абнаўлення..."
@@ -255,11 +425,11 @@ msgstr "Уключыць дадзеныя аб месцазнаходжанні"
255msgid "Manage"
425msgid "Manage"
256msgstr "Кіраванне"
426msgstr "Кіраванне"
257
427
258−#: qml/Dash/ScopesList.qml:101
428+#: qml/Dash/ScopesList.qml:102
259msgid "Home"
429msgid "Home"
260msgstr "Хатняя папка"
430msgstr "Хатняя папка"
261
431
262−#: qml/Dash/ScopesList.qml:102
432+#: qml/Dash/ScopesList.qml:103
263msgid "Also installed"
433msgid "Also installed"
264msgstr "Таксама ўсталявана"
434msgstr "Таксама ўсталявана"
265
435
@@ -269,17 +439,29 @@ msgid ""
269"touch pad to interact with the pointer."
439"touch pad to interact with the pointer."
270msgstr ""
440msgstr ""
271
441
272−#: qml/Greeter/CoverPage.qml:118
442+#: qml/Greeter/CoverPage.qml:127
273msgid "Unlock"
443msgid "Unlock"
274msgstr "Разблакаваць"
444msgstr "Разблакаваць"
275
445
446+#: qml/Greeter/Greeter.qml:539
447+msgid "Try again"
448+msgstr ""
449+
276−#: qml/Greeter/LoginList.qml:239
450+#: qml/Greeter/LoginList.qml:63
451+msgid "Passphrase"
452+msgstr ""
453+
454+#: qml/Greeter/LoginList.qml:64
455+msgid "Passcode"
456+msgstr ""
457+
458+#: qml/Greeter/LoginList.qml:259
277msgid "Retry"
459msgid "Retry"
278msgstr "Паспрабаваць зноў"
460msgstr "Паспрабаваць зноў"
279
461
280−#: qml/Greeter/LoginList.qml:240
462+#: qml/Greeter/LoginList.qml:260
281−msgid "Tap to unlock"
463+msgid "Log In"
282−msgstr "Націсніце, каб разблакаваць"
464+msgstr ""
283
465
284#: qml/Greeter/NarrowView.qml:54
466#: qml/Greeter/NarrowView.qml:54
285msgid "Sorry, incorrect passphrase."
467msgid "Sorry, incorrect passphrase."
@@ -309,34 +491,34 @@ msgstr ""
309"Калі ўведзены код неправільны, Ваш тэлефон зробіць агульны скід налад і ўсе "
491"Калі ўведзены код неправільны, Ваш тэлефон зробіць агульны скід налад і ўсе "
310"асабістыя дадзеныя будуць выдалены."
492"асабістыя дадзеныя будуць выдалены."
311
493
312−#: qml/Greeter/NarrowView.qml:116
494+#: qml/Greeter/NarrowView.qml:129
313#, qt-format
495#, qt-format
314msgid "Enter %1"
496msgid "Enter %1"
315msgstr "Увядзіце %1"
497msgstr "Увядзіце %1"
316
498
317−#: qml/Greeter/NarrowView.qml:117
499+#: qml/Greeter/NarrowView.qml:130
318msgid "Enter passphrase"
500msgid "Enter passphrase"
319msgstr "Увядзіце пароль"
501msgstr "Увядзіце пароль"
320
502
321−#: qml/Greeter/NarrowView.qml:118
503+#: qml/Greeter/NarrowView.qml:131
322msgid "Enter passcode"
504msgid "Enter passcode"
323msgstr "Увядзіце код"
505msgstr "Увядзіце код"
324
506
325−#: qml/Greeter/NarrowView.qml:119
507+#: qml/Greeter/NarrowView.qml:135
326#, qt-format
508#, qt-format
327msgid "Sorry, incorrect %1"
509msgid "Sorry, incorrect %1"
328msgstr "Даруйце, некарэктны %1"
510msgstr "Даруйце, некарэктны %1"
329
511
330−#: qml/Greeter/NarrowView.qml:120
512+#: qml/Greeter/NarrowView.qml:136
331msgid "Sorry, incorrect passphrase"
513msgid "Sorry, incorrect passphrase"
332msgstr "Даруйце, някарэктны пароль"
514msgstr "Даруйце, някарэктны пароль"
333
515
334−#: qml/Greeter/NarrowView.qml:121
516+#: qml/Greeter/NarrowView.qml:137
335msgctxt "passphrase"
517msgctxt "passphrase"
336msgid "Please re-enter"
518msgid "Please re-enter"
337msgstr "Калі ласка, паўтарыце ўвод"
519msgstr "Калі ласка, паўтарыце ўвод"
338
520
339−#: qml/Greeter/NarrowView.qml:122
521+#: qml/Greeter/NarrowView.qml:138
340msgid "Sorry, incorrect passcode"
522msgid "Sorry, incorrect passcode"
341msgstr "Даруйце, некарэктны код"
523msgstr "Даруйце, некарэктны код"
342
524
@@ -434,32 +616,12 @@ msgstr "Патэлефанаваць"
434msgid "Drag using 3 fingers any application from one window to the other"
616msgid "Drag using 3 fingers any application from one window to the other"
435msgstr ""
617msgstr ""
436
618
437−#: qml/Tutorial/TutorialBottom.qml:78
438−msgid "Swipe up to add a contact"
439−msgstr ""
440−
441−#: qml/Tutorial/TutorialBottom.qml:80
442−msgid "Swipe up for favorite calculations"
443−msgstr ""
444−
445−#: qml/Tutorial/TutorialBottom.qml:82
446−msgid "Swipe up for recent calls"
447−msgstr ""
448−
449−#: qml/Tutorial/TutorialBottom.qml:84
450−msgid "Swipe up to create a message"
451−msgstr ""
452−
453−#: qml/Tutorial/TutorialBottom.qml:85
454−msgid "Swipe up to manage the app"
455−msgstr ""
456−
457−#: qml/Tutorial/TutorialLeftLong.qml:47
619+#: qml/Tutorial/TutorialLeftLong.qml:49
458msgid "Long swipe from the left edge to open the Today scope"
620msgid "Long swipe from the left edge to open the Today scope"
459msgstr ""
621msgstr ""
460
622
461#: qml/Tutorial/TutorialLeft.qml:47
623#: qml/Tutorial/TutorialLeft.qml:47
462−msgid "Swipe from the left edge to open the launcher"
624+msgid "Short swipe from the left edge to open the launcher"
463msgstr ""
625msgstr ""
464
626
465#: qml/Tutorial/TutorialRight.qml:55
627#: qml/Tutorial/TutorialRight.qml:55
@@ -467,15 +629,11 @@ msgid "Push your mouse against the right edge to view your open apps"
467msgstr ""
629msgstr ""
468
630
469#: qml/Tutorial/TutorialRight.qml:56
631#: qml/Tutorial/TutorialRight.qml:56
470−msgid "Short or long swipe from the right edge to view your open apps"
632+msgid "Swipe from the right edge to view your open apps"
471msgstr ""
633msgstr ""
472
634
473#: qml/Tutorial/TutorialTop.qml:53
635#: qml/Tutorial/TutorialTop.qml:53
474−msgid "Swipe from the top right edge to open the notification bar"
636+msgid "Swipe from the top edge to access notifications and quick settings"
475−msgstr ""
476−
477−#: qml/Tutorial/TutorialTop.qml:54
478−msgid "Swipe from the top edge to open the notification bar"
479msgstr ""
637msgstr ""
480
638
481#: qml/Wizard/Page.qml:54
639#: qml/Wizard/Page.qml:54
@@ -487,15 +645,32 @@ msgstr "Вярнуцца"
487msgid "Language"
645msgid "Language"
488msgstr ""
646msgstr ""
489
647
490−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
648+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
491#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
649#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
492#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
650#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
493#: qml/Wizard/Pages/75-report-check.qml:84
651#: qml/Wizard/Pages/75-report-check.qml:84
494−#: qml/Wizard/Pages/passcode-desktop.qml:124
652+#: qml/Wizard/Pages/passcode-desktop.qml:141
495#: qml/Wizard/Pages/password-set.qml:141
653#: qml/Wizard/Pages/password-set.qml:141
496msgid "Next"
654msgid "Next"
497msgstr ""
655msgstr ""
498
656
657+#: qml/Wizard/Pages/20-keyboard.qml:30
658+msgid "Select Keyboard"
659+msgstr ""
660+
661+#: qml/Wizard/Pages/20-keyboard.qml:70
662+msgid "Keyboard language"
663+msgstr ""
664+
665+#: qml/Wizard/Pages/20-keyboard.qml:92
666+msgid "Keyboard layout"
667+msgstr ""
668+
669+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
670+#: qml/Wizard/Pages/sim.qml:101
671+msgid "Skip"
672+msgstr "Прапусціць"
673+
499#: qml/Wizard/Pages/30-wifi.qml:29
674#: qml/Wizard/Pages/30-wifi.qml:29
500msgid "Connect to Wi‑Fi"
675msgid "Connect to Wi‑Fi"
501msgstr "Злучыцца з Wi-Fi"
676msgstr "Злучыцца з Wi-Fi"
@@ -512,11 +687,6 @@ msgstr ""
512msgid "No available Wi-Fi networks"
687msgid "No available Wi-Fi networks"
513msgstr ""
688msgstr ""
514
689
515−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
516−#: qml/Wizard/Pages/sim.qml:101
517−msgid "Skip"
518−msgstr "Прапусціць"
519−
520#: qml/Wizard/Pages/40-location.qml:27
690#: qml/Wizard/Pages/40-location.qml:27
521msgid "Location Services"
691msgid "Location Services"
522msgstr ""
692msgstr ""
@@ -600,6 +770,35 @@ msgstr ""
600msgid "Privacy policy"
770msgid "Privacy policy"
601msgstr ""
771msgstr ""
602
772
773+#: qml/Wizard/Pages/77-system-update.qml:28
774+msgid "Update Device"
775+msgstr ""
776+
777+#: qml/Wizard/Pages/77-system-update.qml:55
778+msgid ""
779+"There is a system update available and ready to install. Afterwards, the "
780+"device will automatically restart."
781+msgstr ""
782+
783+#: qml/Wizard/Pages/77-system-update.qml:76
784+msgctxt "string identifying name of the update"
785+msgid "Ubuntu system"
786+msgstr ""
787+
788+#: qml/Wizard/Pages/77-system-update.qml:83
789+#, qt-format
790+msgctxt "version of the system update"
791+msgid "Version %1"
792+msgstr ""
793+
794+#: qml/Wizard/Pages/77-system-update.qml:102
795+msgid "This could take a few minutes..."
796+msgstr ""
797+
798+#: qml/Wizard/Pages/77-system-update.qml:116
799+msgid "Install and restart now"
800+msgstr ""
801+
603#: qml/Wizard/Pages/80-finished.qml:89
802#: qml/Wizard/Pages/80-finished.qml:89
604msgid "Welcome to Ubuntu"
803msgid "Welcome to Ubuntu"
605msgstr ""
804msgstr ""
@@ -643,7 +842,7 @@ msgid "Service Terms"
643msgstr ""
842msgstr ""
644
843
645#: qml/Wizard/Pages/passcode-confirm.qml:43
844#: qml/Wizard/Pages/passcode-confirm.qml:43
646−#: qml/Wizard/Pages/passcode-desktop.qml:80
845+#: qml/Wizard/Pages/passcode-desktop.qml:96
647msgid "Confirm passcode"
846msgid "Confirm passcode"
648msgstr "Пацвердзіце код-пароль"
847msgstr "Пацвердзіце код-пароль"
649
848
@@ -660,24 +859,24 @@ msgstr ""
660msgid "Lock Screen Passcode"
859msgid "Lock Screen Passcode"
661msgstr ""
860msgstr ""
662
861
663−#: qml/Wizard/Pages/passcode-desktop.qml:56
862+#: qml/Wizard/Pages/passcode-desktop.qml:60
664msgid "Enter 4 numbers to setup your passcode"
863msgid "Enter 4 numbers to setup your passcode"
665msgstr ""
864msgstr ""
666
865
667−#: qml/Wizard/Pages/passcode-desktop.qml:65
866+#: qml/Wizard/Pages/passcode-desktop.qml:76
668#: qml/Wizard/Pages/passcode-set.qml:54
867#: qml/Wizard/Pages/passcode-set.qml:54
669msgid "Choose passcode"
868msgid "Choose passcode"
670msgstr ""
869msgstr ""
671
870
672−#: qml/Wizard/Pages/passcode-desktop.qml:105
871+#: qml/Wizard/Pages/passcode-desktop.qml:126
673msgid "Passcode too short"
872msgid "Passcode too short"
674msgstr ""
873msgstr ""
675
874
676−#: qml/Wizard/Pages/passcode-desktop.qml:107
875+#: qml/Wizard/Pages/passcode-desktop.qml:128
677msgid "Passcodes match"
876msgid "Passcodes match"
678msgstr ""
877msgstr ""
679
878
680−#: qml/Wizard/Pages/passcode-desktop.qml:109
879+#: qml/Wizard/Pages/passcode-desktop.qml:130
681msgid "Passcodes do not match"
880msgid "Passcodes do not match"
682msgstr ""
881msgstr ""
683
882
@@ -726,26 +925,30 @@ msgid "To proceed with no SIM tap Skip."
726msgstr ""
925msgstr ""
727
926
728#: qml/Wizard/PasswordMeter.qml:87
927#: qml/Wizard/PasswordMeter.qml:87
729−msgid "Passwords match"
928+msgid "Password too short"
730msgstr ""
929msgstr ""
731
930
732#: qml/Wizard/PasswordMeter.qml:89
931#: qml/Wizard/PasswordMeter.qml:89
932+msgid "Passwords match"
933+msgstr ""
934+
935+#: qml/Wizard/PasswordMeter.qml:91
733msgid "Passwords do not match"
936msgid "Passwords do not match"
734msgstr ""
937msgstr ""
735
938
736−#: qml/Wizard/PasswordMeter.qml:93
939+#: qml/Wizard/PasswordMeter.qml:95
737msgid "Strong password"
940msgid "Strong password"
738msgstr ""
941msgstr ""
739
942
740−#: qml/Wizard/PasswordMeter.qml:95
943+#: qml/Wizard/PasswordMeter.qml:97
741msgid "Fair password"
944msgid "Fair password"
742msgstr ""
945msgstr ""
743
946
744−#: qml/Wizard/PasswordMeter.qml:97
947+#: qml/Wizard/PasswordMeter.qml:99
745msgid "Weak password"
948msgid "Weak password"
746msgstr ""
949msgstr ""
747
950
748−#: qml/Wizard/PasswordMeter.qml:99
951+#: qml/Wizard/PasswordMeter.qml:101
749msgid "Very weak password"
952msgid "Very weak password"
750msgstr ""
953msgstr ""
751
954
@@ -957,6 +1160,9 @@ msgstr ""
957#~ msgid "Reboot"
1160#~ msgid "Reboot"
958#~ msgstr "Перазагрузіць"
1161#~ msgstr "Перазагрузіць"
959
1162
1163+#~ msgid "Tap to unlock"
1164+#~ msgstr "Націсніце, каб разблакаваць"
1165+
960#~ msgid "Swipe up from the bottom edge."
1166#~ msgid "Swipe up from the bottom edge."
961#~ msgstr "Правесці уверх ад ніжняга краю."
1167#~ msgstr "Правесці уверх ад ніжняга краю."
962
1168
po/bg.po+296−93
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2015-04-12 14:43+0000\n"
11"PO-Revision-Date: 2015-04-12 14:43+0000\n"
12"Last-Translator: George Karavasilev <kokoto-java@ubuntu.com>\n"
12"Last-Translator: George Karavasilev <kokoto-java@ubuntu.com>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
@@ -15,93 +15,93 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr ""
23msgstr ""
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr ""
28msgstr ""
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr ""
36msgstr ""
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr ""
40msgstr ""
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr ""
44msgstr ""
45
45
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
47msgid "You have been locked out due to too many failed passcode attempts."
47msgid "You have been locked out due to too many failed passcode attempts."
48msgstr ""
48msgstr ""
49
49
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
51#, qt-format
51#, qt-format
52msgid "Please wait %1 minute and then try again…"
52msgid "Please wait %1 minute and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
54msgstr[0] ""
54msgstr[0] ""
55msgstr[1] ""
55msgstr[1] ""
56
56
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
58msgctxt "Title: Lock/Log out dialog"
58msgctxt "Title: Lock/Log out dialog"
59msgid "Log out"
59msgid "Log out"
60msgstr ""
60msgstr ""
61
61
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
63msgid "Are you sure you want to log out?"
63msgid "Are you sure you want to log out?"
64msgstr ""
64msgstr ""
65
65
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
67msgctxt "Button: Lock the system"
67msgctxt "Button: Lock the system"
68msgid "Lock"
68msgid "Lock"
69msgstr ""
69msgstr ""
70
70
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
72msgctxt "Button: Log out from the system"
72msgctxt "Button: Log out from the system"
73msgid "Log Out"
73msgid "Log Out"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
79msgid "Cancel"
79msgid "Cancel"
80msgstr ""
80msgstr ""
81
81
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
83msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
84msgid "Reboot"
84msgid "Reboot"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
88msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
89msgstr ""
89msgstr ""
90
90
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
92msgid "No"
92msgid "No"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
96msgid "Yes"
96msgid "Yes"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
101msgid "Power"
101msgid "Power"
102msgstr ""
102msgstr ""
103
103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105msgid ""
105msgid ""
106"Are you sure you would like\n"
106"Are you sure you would like\n"
107"to power off?"
107"to power off?"
@@ -109,28 +109,198 @@ msgstr ""
109"Искате ли да \n"
109"Искате ли да \n"
110"изключите захранването на устройството?"
110"изключите захранването на устройството?"
111
111
112−#: qml/Components/Dialogs.qml:200
112+#: qml/Components/Dialogs.qml:202
113msgctxt "Button: Power off the system"
113msgctxt "Button: Power off the system"
114msgid "Power off"
114msgid "Power off"
115msgstr ""
115msgstr ""
116
116
117−#: qml/Components/Dialogs.qml:209
117+#: qml/Components/Dialogs.qml:211
118msgctxt "Button: Restart the system"
118msgctxt "Button: Restart the system"
119msgid "Restart"
119msgid "Restart"
120msgstr ""
120msgstr ""
121
121
122+#: qml/Components/KeyboardShortcutsOverlay.qml:41
123+msgid "Keyboard Shortcuts"
124+msgstr ""
125+
126+#: qml/Components/KeyboardShortcutsOverlay.qml:55
127+msgid "Unity 8"
128+msgstr ""
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:62
131+msgid "PrtScr"
132+msgstr ""
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:67
135+msgid "Takes a screenshot."
136+msgstr ""
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:75
139+msgid "Alt + PrtScr"
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:80
143+msgid "Takes a screenshot of a window."
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:88
147+msgid "Super + Space"
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:93
151+msgid "Switches to next keyboard layout."
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:101
155+msgid "Super + Shift + Space"
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:106
159+msgid "Switches to previous keyboard layout."
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:118
163+msgid "Launcher"
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:125
167+msgid "Super (Hold)"
168+msgstr ""
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:130
171+msgid "Opens the launcher, displays shortcuts."
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:138
175+msgid "Alt + F1"
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:143
179+msgid "Opens launcher keyboard navigation mode."
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:151
183+msgid "Super + Tab"
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:156
187+msgid "Switches applications via the launcher."
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:164
191+msgid "Super + 0 to 9"
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:169
195+msgid "Same as clicking on a launcher icon."
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:181
199+msgid "Scopes"
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:188
203+msgid "Super (Tap)"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:193
207+msgid "Opens the Scopes home."
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:209
211+msgid "Switching"
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:216
215+msgid "Alt + Tab"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:221
219+msgid "Switches between applications."
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:229
223+msgid "Super + W"
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:234
227+msgid "Opens the desktop spread."
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:242
231+msgid "Cursor Left or Right"
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:247
235+msgid "Moves the focus."
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:259
239+msgid "Windows"
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:266
243+msgid "Ctrl + Super + D"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:271
247+msgid "Minimizes all windows."
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:279
251+msgid "Ctrl + Super + Up"
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:284
255+msgid "Maximizes the current window."
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:292
259+msgid "Ctrl + Super + Down"
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:297
263+msgid "Minimizes or restores the current window."
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:305
267+msgid "Ctrl + Super + Left or Right"
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:310
271+msgid "Semi-maximizes the current window."
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:318
275+msgid "Alt + F4"
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:323
279+msgid "Closes the current window."
280+msgstr ""
281+
122−#: qml/Components/Lockscreen.qml:231
282+#: qml/Components/Lockscreen.qml:239
123msgid "Return to Call"
283msgid "Return to Call"
124msgstr ""
284msgstr ""
125
285
126−#: qml/Components/Lockscreen.qml:231
286+#: qml/Components/Lockscreen.qml:239
127msgid "Emergency Call"
287msgid "Emergency Call"
128msgstr "Спешно повикване"
288msgstr "Спешно повикване"
129
289
130−#: qml/Components/Lockscreen.qml:263
290+#: qml/Components/Lockscreen.qml:271
131msgid "OK"
291msgid "OK"
132msgstr ""
292msgstr ""
133
293
294+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
295+#, qt-format
296+msgid "%1:%2:%3"
297+msgstr ""
298+
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
300+#, qt-format
301+msgid "%1:%2"
302+msgstr ""
303+
134#: qml/Components/ModeSwitchWarningDialog.qml:32
304#: qml/Components/ModeSwitchWarningDialog.qml:32
135msgid "Apps may have unsaved data:"
305msgid "Apps may have unsaved data:"
136msgstr ""
306msgstr ""
@@ -157,6 +327,10 @@ msgstr ""
157msgid "Close all"
327msgid "Close all"
158msgstr ""
328msgstr ""
159
329
330+#: qml/Components/SharingPicker.qml:54
331+msgid "Preview Share Item"
332+msgstr ""
333+
160#: qml/Dash/DashPageHeader.qml:333
334#: qml/Dash/DashPageHeader.qml:333
161msgctxt "Button: Open the Ubuntu Store"
335msgctxt "Button: Open the Ubuntu Store"
162msgid "Store"
336msgid "Store"
@@ -188,15 +362,15 @@ msgstr ""
188msgid "Reset"
362msgid "Reset"
189msgstr ""
363msgstr ""
190
364
191−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
365+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
192msgid "Show less"
366msgid "Show less"
193msgstr ""
367msgstr ""
194
368
195−#: qml/Dash/GenericScopeView.qml:579
369+#: qml/Dash/GenericScopeView.qml:580
196msgid "Show all"
370msgid "Show all"
197msgstr ""
371msgstr ""
198
372
199−#: qml/Dash/GenericScopeView.qml:636
373+#: qml/Dash/GenericScopeView.qml:637
200msgctxt "Label: Hint for dash search line edit"
374msgctxt "Label: Hint for dash search line edit"
201msgid "Search"
375msgid "Search"
202msgstr ""
376msgstr ""
@@ -230,10 +404,6 @@ msgstr "Оценете това"
230msgid "Add a review"
404msgid "Add a review"
231msgstr "Добави отзив"
405msgstr "Добави отзив"
232
406
233−#: qml/Dash/Previews/PreviewSharing.qml:66
234−msgid "Preview Share Item"
235−msgstr ""
236−
237#: qml/Dash/PullToRefreshScopeStyle.qml:55
407#: qml/Dash/PullToRefreshScopeStyle.qml:55
238msgid "Pull to refresh…"
408msgid "Pull to refresh…"
239msgstr ""
409msgstr ""
@@ -250,11 +420,11 @@ msgstr ""
250msgid "Manage"
420msgid "Manage"
251msgstr ""
421msgstr ""
252
422
253−#: qml/Dash/ScopesList.qml:101
423+#: qml/Dash/ScopesList.qml:102
254msgid "Home"
424msgid "Home"
255msgstr ""
425msgstr ""
256
426
257−#: qml/Dash/ScopesList.qml:102
427+#: qml/Dash/ScopesList.qml:103
258msgid "Also installed"
428msgid "Also installed"
259msgstr ""
429msgstr ""
260
430
@@ -264,16 +434,28 @@ msgid ""
264"touch pad to interact with the pointer."
434"touch pad to interact with the pointer."
265msgstr ""
435msgstr ""
266
436
267−#: qml/Greeter/CoverPage.qml:118
437+#: qml/Greeter/CoverPage.qml:127
268msgid "Unlock"
438msgid "Unlock"
269msgstr ""
439msgstr ""
270
440
441+#: qml/Greeter/Greeter.qml:539
442+msgid "Try again"
443+msgstr ""
444+
271−#: qml/Greeter/LoginList.qml:239
445+#: qml/Greeter/LoginList.qml:63
446+msgid "Passphrase"
447+msgstr ""
448+
449+#: qml/Greeter/LoginList.qml:64
450+msgid "Passcode"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:259
272msgid "Retry"
454msgid "Retry"
273msgstr ""
455msgstr ""
274
456
275−#: qml/Greeter/LoginList.qml:240
457+#: qml/Greeter/LoginList.qml:260
276−msgid "Tap to unlock"
458+msgid "Log In"
277msgstr ""
459msgstr ""
278
460
279#: qml/Greeter/NarrowView.qml:54
461#: qml/Greeter/NarrowView.qml:54
@@ -300,34 +482,34 @@ msgid ""
300"and all personal data will be deleted."
482"and all personal data will be deleted."
301msgstr ""
483msgstr ""
302
484
303−#: qml/Greeter/NarrowView.qml:116
485+#: qml/Greeter/NarrowView.qml:129
304#, qt-format
486#, qt-format
305msgid "Enter %1"
487msgid "Enter %1"
306msgstr ""
488msgstr ""
307
489
308−#: qml/Greeter/NarrowView.qml:117
490+#: qml/Greeter/NarrowView.qml:130
309msgid "Enter passphrase"
491msgid "Enter passphrase"
310msgstr ""
492msgstr ""
311
493
312−#: qml/Greeter/NarrowView.qml:118
494+#: qml/Greeter/NarrowView.qml:131
313msgid "Enter passcode"
495msgid "Enter passcode"
314msgstr ""
496msgstr ""
315
497
316−#: qml/Greeter/NarrowView.qml:119
498+#: qml/Greeter/NarrowView.qml:135
317#, qt-format
499#, qt-format
318msgid "Sorry, incorrect %1"
500msgid "Sorry, incorrect %1"
319msgstr ""
501msgstr ""
320
502
321−#: qml/Greeter/NarrowView.qml:120
503+#: qml/Greeter/NarrowView.qml:136
322msgid "Sorry, incorrect passphrase"
504msgid "Sorry, incorrect passphrase"
323msgstr ""
505msgstr ""
324
506
325−#: qml/Greeter/NarrowView.qml:121
507+#: qml/Greeter/NarrowView.qml:137
326msgctxt "passphrase"
508msgctxt "passphrase"
327msgid "Please re-enter"
509msgid "Please re-enter"
328msgstr ""
510msgstr ""
329
511
330−#: qml/Greeter/NarrowView.qml:122
512+#: qml/Greeter/NarrowView.qml:138
331msgid "Sorry, incorrect passcode"
513msgid "Sorry, incorrect passcode"
332msgstr ""
514msgstr ""
333
515
@@ -422,32 +604,12 @@ msgstr ""
422msgid "Drag using 3 fingers any application from one window to the other"
604msgid "Drag using 3 fingers any application from one window to the other"
423msgstr ""
605msgstr ""
424
606
425−#: qml/Tutorial/TutorialBottom.qml:78
426−msgid "Swipe up to add a contact"
427−msgstr ""
428−
429−#: qml/Tutorial/TutorialBottom.qml:80
430−msgid "Swipe up for favorite calculations"
431−msgstr ""
432−
433−#: qml/Tutorial/TutorialBottom.qml:82
434−msgid "Swipe up for recent calls"
435−msgstr ""
436−
437−#: qml/Tutorial/TutorialBottom.qml:84
438−msgid "Swipe up to create a message"
439−msgstr ""
440−
441−#: qml/Tutorial/TutorialBottom.qml:85
442−msgid "Swipe up to manage the app"
443−msgstr ""
444−
445−#: qml/Tutorial/TutorialLeftLong.qml:47
607+#: qml/Tutorial/TutorialLeftLong.qml:49
446msgid "Long swipe from the left edge to open the Today scope"
608msgid "Long swipe from the left edge to open the Today scope"
447msgstr ""
609msgstr ""
448
610
449#: qml/Tutorial/TutorialLeft.qml:47
611#: qml/Tutorial/TutorialLeft.qml:47
450−msgid "Swipe from the left edge to open the launcher"
612+msgid "Short swipe from the left edge to open the launcher"
451msgstr ""
613msgstr ""
452
614
453#: qml/Tutorial/TutorialRight.qml:55
615#: qml/Tutorial/TutorialRight.qml:55
@@ -455,15 +617,11 @@ msgid "Push your mouse against the right edge to view your open apps"
455msgstr ""
617msgstr ""
456
618
457#: qml/Tutorial/TutorialRight.qml:56
619#: qml/Tutorial/TutorialRight.qml:56
458−msgid "Short or long swipe from the right edge to view your open apps"
620+msgid "Swipe from the right edge to view your open apps"
459msgstr ""
621msgstr ""
460
622
461#: qml/Tutorial/TutorialTop.qml:53
623#: qml/Tutorial/TutorialTop.qml:53
462−msgid "Swipe from the top right edge to open the notification bar"
624+msgid "Swipe from the top edge to access notifications and quick settings"
463−msgstr ""
464−
465−#: qml/Tutorial/TutorialTop.qml:54
466−msgid "Swipe from the top edge to open the notification bar"
467msgstr ""
625msgstr ""
468
626
469#: qml/Wizard/Page.qml:54
627#: qml/Wizard/Page.qml:54
@@ -475,15 +633,32 @@ msgstr ""
475msgid "Language"
633msgid "Language"
476msgstr ""
634msgstr ""
477
635
478−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
636+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
479#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
637#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
480#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
638#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
481#: qml/Wizard/Pages/75-report-check.qml:84
639#: qml/Wizard/Pages/75-report-check.qml:84
482−#: qml/Wizard/Pages/passcode-desktop.qml:124
640+#: qml/Wizard/Pages/passcode-desktop.qml:141
483#: qml/Wizard/Pages/password-set.qml:141
641#: qml/Wizard/Pages/password-set.qml:141
484msgid "Next"
642msgid "Next"
485msgstr ""
643msgstr ""
486
644
645+#: qml/Wizard/Pages/20-keyboard.qml:30
646+msgid "Select Keyboard"
647+msgstr ""
648+
649+#: qml/Wizard/Pages/20-keyboard.qml:70
650+msgid "Keyboard language"
651+msgstr ""
652+
653+#: qml/Wizard/Pages/20-keyboard.qml:92
654+msgid "Keyboard layout"
655+msgstr ""
656+
657+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
658+#: qml/Wizard/Pages/sim.qml:101
659+msgid "Skip"
660+msgstr ""
661+
487#: qml/Wizard/Pages/30-wifi.qml:29
662#: qml/Wizard/Pages/30-wifi.qml:29
488msgid "Connect to Wi‑Fi"
663msgid "Connect to Wi‑Fi"
489msgstr ""
664msgstr ""
@@ -500,11 +675,6 @@ msgstr ""
500msgid "No available Wi-Fi networks"
675msgid "No available Wi-Fi networks"
501msgstr ""
676msgstr ""
502
677
503−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
504−#: qml/Wizard/Pages/sim.qml:101
505−msgid "Skip"
506−msgstr ""
507−
508#: qml/Wizard/Pages/40-location.qml:27
678#: qml/Wizard/Pages/40-location.qml:27
509msgid "Location Services"
679msgid "Location Services"
510msgstr ""
680msgstr ""
@@ -588,6 +758,35 @@ msgstr ""
588msgid "Privacy policy"
758msgid "Privacy policy"
589msgstr ""
759msgstr ""
590
760
761+#: qml/Wizard/Pages/77-system-update.qml:28
762+msgid "Update Device"
763+msgstr ""
764+
765+#: qml/Wizard/Pages/77-system-update.qml:55
766+msgid ""
767+"There is a system update available and ready to install. Afterwards, the "
768+"device will automatically restart."
769+msgstr ""
770+
771+#: qml/Wizard/Pages/77-system-update.qml:76
772+msgctxt "string identifying name of the update"
773+msgid "Ubuntu system"
774+msgstr ""
775+
776+#: qml/Wizard/Pages/77-system-update.qml:83
777+#, qt-format
778+msgctxt "version of the system update"
779+msgid "Version %1"
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:102
783+msgid "This could take a few minutes..."
784+msgstr ""
785+
786+#: qml/Wizard/Pages/77-system-update.qml:116
787+msgid "Install and restart now"
788+msgstr ""
789+
591#: qml/Wizard/Pages/80-finished.qml:89
790#: qml/Wizard/Pages/80-finished.qml:89
592msgid "Welcome to Ubuntu"
791msgid "Welcome to Ubuntu"
593msgstr ""
792msgstr ""
@@ -631,7 +830,7 @@ msgid "Service Terms"
631msgstr ""
830msgstr ""
632
831
633#: qml/Wizard/Pages/passcode-confirm.qml:43
832#: qml/Wizard/Pages/passcode-confirm.qml:43
634−#: qml/Wizard/Pages/passcode-desktop.qml:80
833+#: qml/Wizard/Pages/passcode-desktop.qml:96
635msgid "Confirm passcode"
834msgid "Confirm passcode"
636msgstr ""
835msgstr ""
637
836
@@ -648,24 +847,24 @@ msgstr ""
648msgid "Lock Screen Passcode"
847msgid "Lock Screen Passcode"
649msgstr ""
848msgstr ""
650
849
651−#: qml/Wizard/Pages/passcode-desktop.qml:56
850+#: qml/Wizard/Pages/passcode-desktop.qml:60
652msgid "Enter 4 numbers to setup your passcode"
851msgid "Enter 4 numbers to setup your passcode"
653msgstr ""
852msgstr ""
654
853
655−#: qml/Wizard/Pages/passcode-desktop.qml:65
854+#: qml/Wizard/Pages/passcode-desktop.qml:76
656#: qml/Wizard/Pages/passcode-set.qml:54
855#: qml/Wizard/Pages/passcode-set.qml:54
657msgid "Choose passcode"
856msgid "Choose passcode"
658msgstr ""
857msgstr ""
659
858
660−#: qml/Wizard/Pages/passcode-desktop.qml:105
859+#: qml/Wizard/Pages/passcode-desktop.qml:126
661msgid "Passcode too short"
860msgid "Passcode too short"
662msgstr ""
861msgstr ""
663
862
664−#: qml/Wizard/Pages/passcode-desktop.qml:107
863+#: qml/Wizard/Pages/passcode-desktop.qml:128
665msgid "Passcodes match"
864msgid "Passcodes match"
666msgstr ""
865msgstr ""
667
866
668−#: qml/Wizard/Pages/passcode-desktop.qml:109
867+#: qml/Wizard/Pages/passcode-desktop.qml:130
669msgid "Passcodes do not match"
868msgid "Passcodes do not match"
670msgstr ""
869msgstr ""
671
870
@@ -714,26 +913,30 @@ msgid "To proceed with no SIM tap Skip."
714msgstr ""
913msgstr ""
715
914
716#: qml/Wizard/PasswordMeter.qml:87
915#: qml/Wizard/PasswordMeter.qml:87
717−msgid "Passwords match"
916+msgid "Password too short"
718msgstr ""
917msgstr ""
719
918
720#: qml/Wizard/PasswordMeter.qml:89
919#: qml/Wizard/PasswordMeter.qml:89
920+msgid "Passwords match"
921+msgstr ""
922+
923+#: qml/Wizard/PasswordMeter.qml:91
721msgid "Passwords do not match"
924msgid "Passwords do not match"
722msgstr ""
925msgstr ""
723
926
724−#: qml/Wizard/PasswordMeter.qml:93
927+#: qml/Wizard/PasswordMeter.qml:95
725msgid "Strong password"
928msgid "Strong password"
726msgstr ""
929msgstr ""
727
930
728−#: qml/Wizard/PasswordMeter.qml:95
931+#: qml/Wizard/PasswordMeter.qml:97
729msgid "Fair password"
932msgid "Fair password"
730msgstr ""
933msgstr ""
731
934
732−#: qml/Wizard/PasswordMeter.qml:97
935+#: qml/Wizard/PasswordMeter.qml:99
733msgid "Weak password"
936msgid "Weak password"
734msgstr ""
937msgstr ""
735
938
736−#: qml/Wizard/PasswordMeter.qml:99
939+#: qml/Wizard/PasswordMeter.qml:101
737msgid "Very weak password"
940msgid "Very weak password"
738msgstr ""
941msgstr ""
739
942
po/bn.po+300−94
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2015-11-27 19:38+0000\n"
11"PO-Revision-Date: 2015-11-27 19:38+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Bengali <bn@li.org>\n"
13"Language-Team: Bengali <bn@li.org>\n"
@@ -15,93 +15,93 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "পাসওয়ার্ড: "
23msgstr "পাসওয়ার্ড: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "পিন"
28msgstr "পিন"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "আনপিন"
36msgstr "আনপিন"
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr "ডিভাইসটি লক করা"
40msgstr "ডিভাইসটি লক করা"
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr "অধিকবার পাসফ্রেজ ভুল দেওয়ার কারনে আপনার আইডি লক করা হয়েছে"
44msgstr "অধিকবার পাসফ্রেজ ভুল দেওয়ার কারনে আপনার আইডি লক করা হয়েছে"
45
45
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
47msgid "You have been locked out due to too many failed passcode attempts."
47msgid "You have been locked out due to too many failed passcode attempts."
48msgstr "অধিকবার পাসকোড ভুল করার কারনে আপনার আইডি লক করা হয়েছে"
48msgstr "অধিকবার পাসকোড ভুল করার কারনে আপনার আইডি লক করা হয়েছে"
49
49
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
51#, qt-format
51#, qt-format
52msgid "Please wait %1 minute and then try again…"
52msgid "Please wait %1 minute and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
54msgstr[0] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
54msgstr[0] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
55msgstr[1] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
55msgstr[1] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
56
56
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
58msgctxt "Title: Lock/Log out dialog"
58msgctxt "Title: Lock/Log out dialog"
59msgid "Log out"
59msgid "Log out"
60msgstr ""
60msgstr ""
61
61
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
63msgid "Are you sure you want to log out?"
63msgid "Are you sure you want to log out?"
64msgstr "আপনি কি লগ আউট করতে চান?"
64msgstr "আপনি কি লগ আউট করতে চান?"
65
65
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
67msgctxt "Button: Lock the system"
67msgctxt "Button: Lock the system"
68msgid "Lock"
68msgid "Lock"
69msgstr "লক করুন"
69msgstr "লক করুন"
70
70
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
72msgctxt "Button: Log out from the system"
72msgctxt "Button: Log out from the system"
73msgid "Log Out"
73msgid "Log Out"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
79msgid "Cancel"
79msgid "Cancel"
80msgstr "বাতিল"
80msgstr "বাতিল"
81
81
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
83msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
84msgid "Reboot"
84msgid "Reboot"
85msgstr "পুনরায় চালু"
85msgstr "পুনরায় চালু"
86
86
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
88msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
89msgstr "আপনি কি পুনরায় চালু করতে চান?"
89msgstr "আপনি কি পুনরায় চালু করতে চান?"
90
90
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
92msgid "No"
92msgid "No"
93msgstr "না"
93msgstr "না"
94
94
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
96msgid "Yes"
96msgid "Yes"
97msgstr "হ্যাঁ"
97msgstr "হ্যাঁ"
98
98
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
101msgid "Power"
101msgid "Power"
102msgstr ""
102msgstr ""
103
103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105msgid ""
105msgid ""
106"Are you sure you would like\n"
106"Are you sure you would like\n"
107"to power off?"
107"to power off?"
@@ -109,28 +109,198 @@ msgstr ""
109"আপনি নিশ্চিত যে আপনি\n"
109"আপনি নিশ্চিত যে আপনি\n"
110"বন্ধ করতে চান?"
110"বন্ধ করতে চান?"
111
111
112−#: qml/Components/Dialogs.qml:200
112+#: qml/Components/Dialogs.qml:202
113msgctxt "Button: Power off the system"
113msgctxt "Button: Power off the system"
114msgid "Power off"
114msgid "Power off"
115msgstr "বন্ধ করুন"
115msgstr "বন্ধ করুন"
116
116
117−#: qml/Components/Dialogs.qml:209
117+#: qml/Components/Dialogs.qml:211
118msgctxt "Button: Restart the system"
118msgctxt "Button: Restart the system"
119msgid "Restart"
119msgid "Restart"
120msgstr "পুনরায় চালু"
120msgstr "পুনরায় চালু"
121
121
122+#: qml/Components/KeyboardShortcutsOverlay.qml:41
123+msgid "Keyboard Shortcuts"
124+msgstr ""
125+
126+#: qml/Components/KeyboardShortcutsOverlay.qml:55
127+msgid "Unity 8"
128+msgstr ""
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:62
131+msgid "PrtScr"
132+msgstr ""
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:67
135+msgid "Takes a screenshot."
136+msgstr ""
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:75
139+msgid "Alt + PrtScr"
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:80
143+msgid "Takes a screenshot of a window."
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:88
147+msgid "Super + Space"
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:93
151+msgid "Switches to next keyboard layout."
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:101
155+msgid "Super + Shift + Space"
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:106
159+msgid "Switches to previous keyboard layout."
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:118
163+msgid "Launcher"
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:125
167+msgid "Super (Hold)"
168+msgstr ""
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:130
171+msgid "Opens the launcher, displays shortcuts."
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:138
175+msgid "Alt + F1"
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:143
179+msgid "Opens launcher keyboard navigation mode."
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:151
183+msgid "Super + Tab"
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:156
187+msgid "Switches applications via the launcher."
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:164
191+msgid "Super + 0 to 9"
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:169
195+msgid "Same as clicking on a launcher icon."
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:181
199+msgid "Scopes"
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:188
203+msgid "Super (Tap)"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:193
207+msgid "Opens the Scopes home."
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:209
211+msgid "Switching"
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:216
215+msgid "Alt + Tab"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:221
219+msgid "Switches between applications."
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:229
223+msgid "Super + W"
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:234
227+msgid "Opens the desktop spread."
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:242
231+msgid "Cursor Left or Right"
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:247
235+msgid "Moves the focus."
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:259
239+msgid "Windows"
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:266
243+msgid "Ctrl + Super + D"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:271
247+msgid "Minimizes all windows."
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:279
251+msgid "Ctrl + Super + Up"
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:284
255+msgid "Maximizes the current window."
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:292
259+msgid "Ctrl + Super + Down"
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:297
263+msgid "Minimizes or restores the current window."
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:305
267+msgid "Ctrl + Super + Left or Right"
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:310
271+msgid "Semi-maximizes the current window."
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:318
275+msgid "Alt + F4"
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:323
279+msgid "Closes the current window."
280+msgstr ""
281+
122−#: qml/Components/Lockscreen.qml:231
282+#: qml/Components/Lockscreen.qml:239
123msgid "Return to Call"
283msgid "Return to Call"
124msgstr "কল এ ফিরে যান"
284msgstr "কল এ ফিরে যান"
125
285
126−#: qml/Components/Lockscreen.qml:231
286+#: qml/Components/Lockscreen.qml:239
127msgid "Emergency Call"
287msgid "Emergency Call"
128msgstr "জরুরী কল"
288msgstr "জরুরী কল"
129
289
130−#: qml/Components/Lockscreen.qml:263
290+#: qml/Components/Lockscreen.qml:271
131msgid "OK"
291msgid "OK"
132msgstr "ঠিক আছে"
292msgstr "ঠিক আছে"
133
293
294+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
295+#, qt-format
296+msgid "%1:%2:%3"
297+msgstr ""
298+
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
300+#, qt-format
301+msgid "%1:%2"
302+msgstr ""
303+
134#: qml/Components/ModeSwitchWarningDialog.qml:32
304#: qml/Components/ModeSwitchWarningDialog.qml:32
135msgid "Apps may have unsaved data:"
305msgid "Apps may have unsaved data:"
136msgstr ""
306msgstr ""
@@ -157,6 +327,10 @@ msgstr ""
157msgid "Close all"
327msgid "Close all"
158msgstr ""
328msgstr ""
159
329
330+#: qml/Components/SharingPicker.qml:54
331+msgid "Preview Share Item"
332+msgstr ""
333+
160#: qml/Dash/DashPageHeader.qml:333
334#: qml/Dash/DashPageHeader.qml:333
161msgctxt "Button: Open the Ubuntu Store"
335msgctxt "Button: Open the Ubuntu Store"
162msgid "Store"
336msgid "Store"
@@ -188,15 +362,15 @@ msgstr ""
188msgid "Reset"
362msgid "Reset"
189msgstr ""
363msgstr ""
190
364
191−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
365+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
192msgid "Show less"
366msgid "Show less"
193msgstr ""
367msgstr ""
194
368
195−#: qml/Dash/GenericScopeView.qml:579
369+#: qml/Dash/GenericScopeView.qml:580
196msgid "Show all"
370msgid "Show all"
197msgstr ""
371msgstr ""
198
372
199−#: qml/Dash/GenericScopeView.qml:636
373+#: qml/Dash/GenericScopeView.qml:637
200msgctxt "Label: Hint for dash search line edit"
374msgctxt "Label: Hint for dash search line edit"
201msgid "Search"
375msgid "Search"
202msgstr "খুঁজুন"
376msgstr "খুঁজুন"
@@ -230,10 +404,6 @@ msgstr "রেটিং দিন"
230msgid "Add a review"
404msgid "Add a review"
231msgstr "আপনার মতামত দিন"
405msgstr "আপনার মতামত দিন"
232
406
233−#: qml/Dash/Previews/PreviewSharing.qml:66
234−msgid "Preview Share Item"
235−msgstr ""
236−
237#: qml/Dash/PullToRefreshScopeStyle.qml:55
407#: qml/Dash/PullToRefreshScopeStyle.qml:55
238msgid "Pull to refresh…"
408msgid "Pull to refresh…"
239msgstr "রিফ্রেশ করার জন্য টানুন"
409msgstr "রিফ্রেশ করার জন্য টানুন"
@@ -250,11 +420,11 @@ msgstr "অবস্থান নির্ণয় চালু করুন"
250msgid "Manage"
420msgid "Manage"
251msgstr "ব্যবস্থাপনা"
421msgstr "ব্যবস্থাপনা"
252
422
253−#: qml/Dash/ScopesList.qml:101
423+#: qml/Dash/ScopesList.qml:102
254msgid "Home"
424msgid "Home"
255msgstr ""
425msgstr ""
256
426
257−#: qml/Dash/ScopesList.qml:102
427+#: qml/Dash/ScopesList.qml:103
258msgid "Also installed"
428msgid "Also installed"
259msgstr "আরও ইন্সটল করা রয়েছে..."
429msgstr "আরও ইন্সটল করা রয়েছে..."
260
430
@@ -264,17 +434,29 @@ msgid ""
264"touch pad to interact with the pointer."
434"touch pad to interact with the pointer."
265msgstr ""
435msgstr ""
266
436
267−#: qml/Greeter/CoverPage.qml:118
437+#: qml/Greeter/CoverPage.qml:127
268msgid "Unlock"
438msgid "Unlock"
269msgstr "লক খুলুন"
439msgstr "লক খুলুন"
270
440
441+#: qml/Greeter/Greeter.qml:539
442+msgid "Try again"
443+msgstr ""
444+
271−#: qml/Greeter/LoginList.qml:239
445+#: qml/Greeter/LoginList.qml:63
446+msgid "Passphrase"
447+msgstr ""
448+
449+#: qml/Greeter/LoginList.qml:64
450+msgid "Passcode"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:259
272msgid "Retry"
454msgid "Retry"
273msgstr ""
455msgstr ""
274
456
275−#: qml/Greeter/LoginList.qml:240
457+#: qml/Greeter/LoginList.qml:260
276−msgid "Tap to unlock"
458+msgid "Log In"
277−msgstr "লক খোলার জন্য চাপ দিন"
459+msgstr ""
278
460
279#: qml/Greeter/NarrowView.qml:54
461#: qml/Greeter/NarrowView.qml:54
280msgid "Sorry, incorrect passphrase."
462msgid "Sorry, incorrect passphrase."
@@ -301,34 +483,34 @@ msgid ""
301"and all personal data will be deleted."
483"and all personal data will be deleted."
302msgstr "ভুল পাসকোড প্রদান করলে, আপনার ফোনটির সকল ব্যক্তিগত তথ্য মুছে যাবে।"
484msgstr "ভুল পাসকোড প্রদান করলে, আপনার ফোনটির সকল ব্যক্তিগত তথ্য মুছে যাবে।"
303
485
304−#: qml/Greeter/NarrowView.qml:116
486+#: qml/Greeter/NarrowView.qml:129
305#, qt-format
487#, qt-format
306msgid "Enter %1"
488msgid "Enter %1"
307msgstr "%1 লিখুন"
489msgstr "%1 লিখুন"
308
490
309−#: qml/Greeter/NarrowView.qml:117
491+#: qml/Greeter/NarrowView.qml:130
310msgid "Enter passphrase"
492msgid "Enter passphrase"
311msgstr "পাসওয়ার্ড লিখুন"
493msgstr "পাসওয়ার্ড লিখুন"
312
494
313−#: qml/Greeter/NarrowView.qml:118
495+#: qml/Greeter/NarrowView.qml:131
314msgid "Enter passcode"
496msgid "Enter passcode"
315msgstr "পাসকোড লিখুন"
497msgstr "পাসকোড লিখুন"
316
498
317−#: qml/Greeter/NarrowView.qml:119
499+#: qml/Greeter/NarrowView.qml:135
318#, qt-format
500#, qt-format
319msgid "Sorry, incorrect %1"
501msgid "Sorry, incorrect %1"
320msgstr "দুঃখিত, %1 ভুল হয়েছে"
502msgstr "দুঃখিত, %1 ভুল হয়েছে"
321
503
322−#: qml/Greeter/NarrowView.qml:120
504+#: qml/Greeter/NarrowView.qml:136
323msgid "Sorry, incorrect passphrase"
505msgid "Sorry, incorrect passphrase"
324msgstr "দুঃখিত, পাসওয়ার্ড ভুল হয়েছে"
506msgstr "দুঃখিত, পাসওয়ার্ড ভুল হয়েছে"
325
507
326−#: qml/Greeter/NarrowView.qml:121
508+#: qml/Greeter/NarrowView.qml:137
327msgctxt "passphrase"
509msgctxt "passphrase"
328msgid "Please re-enter"
510msgid "Please re-enter"
329msgstr "অনুগ্রহ করে আবার লিখুন"
511msgstr "অনুগ্রহ করে আবার লিখুন"
330
512
331−#: qml/Greeter/NarrowView.qml:122
513+#: qml/Greeter/NarrowView.qml:138
332msgid "Sorry, incorrect passcode"
514msgid "Sorry, incorrect passcode"
333msgstr "দুঃখিত, পাসকোড ভুল হয়েছে"
515msgstr "দুঃখিত, পাসকোড ভুল হয়েছে"
334
516
@@ -423,32 +605,12 @@ msgstr "কল ব্যাক"
423msgid "Drag using 3 fingers any application from one window to the other"
605msgid "Drag using 3 fingers any application from one window to the other"
424msgstr ""
606msgstr ""
425
607
426−#: qml/Tutorial/TutorialBottom.qml:78
427−msgid "Swipe up to add a contact"
428−msgstr ""
429−
430−#: qml/Tutorial/TutorialBottom.qml:80
431−msgid "Swipe up for favorite calculations"
432−msgstr ""
433−
434−#: qml/Tutorial/TutorialBottom.qml:82
435−msgid "Swipe up for recent calls"
436−msgstr ""
437−
438−#: qml/Tutorial/TutorialBottom.qml:84
439−msgid "Swipe up to create a message"
440−msgstr ""
441−
442−#: qml/Tutorial/TutorialBottom.qml:85
443−msgid "Swipe up to manage the app"
444−msgstr ""
445−
446−#: qml/Tutorial/TutorialLeftLong.qml:47
608+#: qml/Tutorial/TutorialLeftLong.qml:49
447msgid "Long swipe from the left edge to open the Today scope"
609msgid "Long swipe from the left edge to open the Today scope"
448msgstr ""
610msgstr ""
449
611
450#: qml/Tutorial/TutorialLeft.qml:47
612#: qml/Tutorial/TutorialLeft.qml:47
451−msgid "Swipe from the left edge to open the launcher"
613+msgid "Short swipe from the left edge to open the launcher"
452msgstr ""
614msgstr ""
453
615
454#: qml/Tutorial/TutorialRight.qml:55
616#: qml/Tutorial/TutorialRight.qml:55
@@ -456,15 +618,11 @@ msgid "Push your mouse against the right edge to view your open apps"
456msgstr ""
618msgstr ""
457
619
458#: qml/Tutorial/TutorialRight.qml:56
620#: qml/Tutorial/TutorialRight.qml:56
459−msgid "Short or long swipe from the right edge to view your open apps"
621+msgid "Swipe from the right edge to view your open apps"
460msgstr ""
622msgstr ""
461
623
462#: qml/Tutorial/TutorialTop.qml:53
624#: qml/Tutorial/TutorialTop.qml:53
463−msgid "Swipe from the top right edge to open the notification bar"
625+msgid "Swipe from the top edge to access notifications and quick settings"
464−msgstr ""
465−
466−#: qml/Tutorial/TutorialTop.qml:54
467−msgid "Swipe from the top edge to open the notification bar"
468msgstr ""
626msgstr ""
469
627
470#: qml/Wizard/Page.qml:54
628#: qml/Wizard/Page.qml:54
@@ -476,15 +634,32 @@ msgstr ""
476msgid "Language"
634msgid "Language"
477msgstr ""
635msgstr ""
478
636
479−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
637+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
480#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
638#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
481#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
639#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
482#: qml/Wizard/Pages/75-report-check.qml:84
640#: qml/Wizard/Pages/75-report-check.qml:84
483−#: qml/Wizard/Pages/passcode-desktop.qml:124
641+#: qml/Wizard/Pages/passcode-desktop.qml:141
484#: qml/Wizard/Pages/password-set.qml:141
642#: qml/Wizard/Pages/password-set.qml:141
485msgid "Next"
643msgid "Next"
486msgstr ""
644msgstr ""
487
645
646+#: qml/Wizard/Pages/20-keyboard.qml:30
647+msgid "Select Keyboard"
648+msgstr ""
649+
650+#: qml/Wizard/Pages/20-keyboard.qml:70
651+msgid "Keyboard language"
652+msgstr ""
653+
654+#: qml/Wizard/Pages/20-keyboard.qml:92
655+msgid "Keyboard layout"
656+msgstr ""
657+
658+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
659+#: qml/Wizard/Pages/sim.qml:101
660+msgid "Skip"
661+msgstr "এড়িয়ে যান"
662+
488#: qml/Wizard/Pages/30-wifi.qml:29
663#: qml/Wizard/Pages/30-wifi.qml:29
489msgid "Connect to Wi‑Fi"
664msgid "Connect to Wi‑Fi"
490msgstr ""
665msgstr ""
@@ -501,11 +676,6 @@ msgstr ""
501msgid "No available Wi-Fi networks"
676msgid "No available Wi-Fi networks"
502msgstr ""
677msgstr ""
503
678
504−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
505−#: qml/Wizard/Pages/sim.qml:101
506−msgid "Skip"
507−msgstr "এড়িয়ে যান"
508−
509#: qml/Wizard/Pages/40-location.qml:27
679#: qml/Wizard/Pages/40-location.qml:27
510msgid "Location Services"
680msgid "Location Services"
511msgstr ""
681msgstr ""
@@ -589,6 +759,35 @@ msgstr ""
589msgid "Privacy policy"
759msgid "Privacy policy"
590msgstr ""
760msgstr ""
591
761
762+#: qml/Wizard/Pages/77-system-update.qml:28
763+msgid "Update Device"
764+msgstr ""
765+
766+#: qml/Wizard/Pages/77-system-update.qml:55
767+msgid ""
768+"There is a system update available and ready to install. Afterwards, the "
769+"device will automatically restart."
770+msgstr ""
771+
772+#: qml/Wizard/Pages/77-system-update.qml:76
773+msgctxt "string identifying name of the update"
774+msgid "Ubuntu system"
775+msgstr ""
776+
777+#: qml/Wizard/Pages/77-system-update.qml:83
778+#, qt-format
779+msgctxt "version of the system update"
780+msgid "Version %1"
781+msgstr ""
782+
783+#: qml/Wizard/Pages/77-system-update.qml:102
784+msgid "This could take a few minutes..."
785+msgstr ""
786+
787+#: qml/Wizard/Pages/77-system-update.qml:116
788+msgid "Install and restart now"
789+msgstr ""
790+
592#: qml/Wizard/Pages/80-finished.qml:89
791#: qml/Wizard/Pages/80-finished.qml:89
593msgid "Welcome to Ubuntu"
792msgid "Welcome to Ubuntu"
594msgstr ""
793msgstr ""
@@ -632,7 +831,7 @@ msgid "Service Terms"
632msgstr ""
831msgstr ""
633
832
634#: qml/Wizard/Pages/passcode-confirm.qml:43
833#: qml/Wizard/Pages/passcode-confirm.qml:43
635−#: qml/Wizard/Pages/passcode-desktop.qml:80
834+#: qml/Wizard/Pages/passcode-desktop.qml:96
636msgid "Confirm passcode"
835msgid "Confirm passcode"
637msgstr ""
836msgstr ""
638
837
@@ -649,24 +848,24 @@ msgstr ""
649msgid "Lock Screen Passcode"
848msgid "Lock Screen Passcode"
650msgstr ""
849msgstr ""
651
850
652−#: qml/Wizard/Pages/passcode-desktop.qml:56
851+#: qml/Wizard/Pages/passcode-desktop.qml:60
653msgid "Enter 4 numbers to setup your passcode"
852msgid "Enter 4 numbers to setup your passcode"
654msgstr ""
853msgstr ""
655
854
656−#: qml/Wizard/Pages/passcode-desktop.qml:65
855+#: qml/Wizard/Pages/passcode-desktop.qml:76
657#: qml/Wizard/Pages/passcode-set.qml:54
856#: qml/Wizard/Pages/passcode-set.qml:54
658msgid "Choose passcode"
857msgid "Choose passcode"
659msgstr ""
858msgstr ""
660
859
661−#: qml/Wizard/Pages/passcode-desktop.qml:105
860+#: qml/Wizard/Pages/passcode-desktop.qml:126
662msgid "Passcode too short"
861msgid "Passcode too short"
663msgstr ""
862msgstr ""
664
863
665−#: qml/Wizard/Pages/passcode-desktop.qml:107
864+#: qml/Wizard/Pages/passcode-desktop.qml:128
666msgid "Passcodes match"
865msgid "Passcodes match"
667msgstr ""
866msgstr ""
668
867
669−#: qml/Wizard/Pages/passcode-desktop.qml:109
868+#: qml/Wizard/Pages/passcode-desktop.qml:130
670msgid "Passcodes do not match"
869msgid "Passcodes do not match"
671msgstr ""
870msgstr ""
672
871
@@ -715,26 +914,30 @@ msgid "To proceed with no SIM tap Skip."
715msgstr ""
914msgstr ""
716
915
717#: qml/Wizard/PasswordMeter.qml:87
916#: qml/Wizard/PasswordMeter.qml:87
718−msgid "Passwords match"
917+msgid "Password too short"
719msgstr ""
918msgstr ""
720
919
721#: qml/Wizard/PasswordMeter.qml:89
920#: qml/Wizard/PasswordMeter.qml:89
921+msgid "Passwords match"
922+msgstr ""
923+
924+#: qml/Wizard/PasswordMeter.qml:91
722msgid "Passwords do not match"
925msgid "Passwords do not match"
723msgstr ""
926msgstr ""
724
927
725−#: qml/Wizard/PasswordMeter.qml:93
928+#: qml/Wizard/PasswordMeter.qml:95
726msgid "Strong password"
929msgid "Strong password"
727msgstr ""
930msgstr ""
728
931
729−#: qml/Wizard/PasswordMeter.qml:95
932+#: qml/Wizard/PasswordMeter.qml:97
730msgid "Fair password"
933msgid "Fair password"
731msgstr ""
934msgstr ""
732
935
733−#: qml/Wizard/PasswordMeter.qml:97
936+#: qml/Wizard/PasswordMeter.qml:99
734msgid "Weak password"
937msgid "Weak password"
735msgstr ""
938msgstr ""
736
939
737−#: qml/Wizard/PasswordMeter.qml:99
940+#: qml/Wizard/PasswordMeter.qml:101
738msgid "Very weak password"
941msgid "Very weak password"
739msgstr ""
942msgstr ""
740
943
@@ -860,6 +1063,9 @@ msgstr ""
860#~ msgid "Shut down"
1063#~ msgid "Shut down"
861#~ msgstr "বন্ধ করুন"
1064#~ msgstr "বন্ধ করুন"
862
1065
1066+#~ msgid "Tap to unlock"
1067+#~ msgstr "লক খোলার জন্য চাপ দিন"
1068+
863#~ msgid "Let’s get started."
1069#~ msgid "Let’s get started."
864#~ msgstr "আসুন শুরু করা যাক।"
1070#~ msgstr "আসুন শুরু করা যাক।"
865
1071
po/br.po+312−100
@@ -7,105 +7,105 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11−"PO-Revision-Date: 2016-04-27 12:20+0000\n"
11+"PO-Revision-Date: 2016-08-29 11:37+0000\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
13"Language-Team: Breton <br@li.org>\n"
13"Language-Team: Breton <br@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Ger-tremen : "
23msgstr "Ger-tremen : "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Spilhennañ ar verradenn"
28msgstr "Spilhennañ ar verradenn"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr "Mont kuit"
32msgstr "Mont kuit"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Dispilhennañ ar verradenn"
36msgstr "Dispilhennañ ar verradenn"
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr "Benveg prennet"
40msgstr "Benveg prennet"
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr ""
44msgstr ""
45"Prennet eo bet ho penveg abalamour da re a daolioù-esae c'hwitet evit merkañ "
45"Prennet eo bet ho penveg abalamour da re a daolioù-esae c'hwitet evit merkañ "
46"ho frazenn-dremen."
46"ho frazenn-dremen."
47
47
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
49msgid "You have been locked out due to too many failed passcode attempts."
49msgid "You have been locked out due to too many failed passcode attempts."
50msgstr ""
50msgstr ""
51"Prennet eo bet ho penveg abalamour da re a daolioù-esae evit merkañ ho kod-"
51"Prennet eo bet ho penveg abalamour da re a daolioù-esae evit merkañ ho kod-"
52"tremen."
52"tremen."
53
53
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
55#, qt-format
55#, qt-format
56msgid "Please wait %1 minute and then try again…"
56msgid "Please wait %1 minute and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
58msgstr[0] "Gortozit %1 vunutenn, mar plij, hag esaeit en-dro..."
58msgstr[0] "Gortozit %1 vunutenn, mar plij, hag esaeit en-dro..."
59msgstr[1] "Gortozit %1 a vunutoù, mar plij, hag esaeit en-dro..."
59msgstr[1] "Gortozit %1 a vunutoù, mar plij, hag esaeit en-dro..."
60
60
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
62msgctxt "Title: Lock/Log out dialog"
62msgctxt "Title: Lock/Log out dialog"
63msgid "Log out"
63msgid "Log out"
64msgstr "Digevreañ"
64msgstr "Digevreañ"
65
65
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
67msgid "Are you sure you want to log out?"
67msgid "Are you sure you want to log out?"
68msgstr "Ha sur oc'h e fell deoc'h digevreañ ?"
68msgstr "Ha sur oc'h e fell deoc'h digevreañ ?"
69
69
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
71msgctxt "Button: Lock the system"
71msgctxt "Button: Lock the system"
72msgid "Lock"
72msgid "Lock"
73msgstr "Prennañ"
73msgstr "Prennañ"
74
74
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
76msgctxt "Button: Log out from the system"
76msgctxt "Button: Log out from the system"
77msgid "Log Out"
77msgid "Log Out"
78msgstr "Digevreañ"
78msgstr "Digevreañ"
79
79
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
83msgid "Cancel"
83msgid "Cancel"
84msgstr "Nullañ"
84msgstr "Nullañ"
85
85
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
87msgctxt "Title: Reboot dialog"
87msgctxt "Title: Reboot dialog"
88msgid "Reboot"
88msgid "Reboot"
89msgstr "Adloc'hañ"
89msgstr "Adloc'hañ"
90
90
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
92msgid "Are you sure you want to reboot?"
92msgid "Are you sure you want to reboot?"
93msgstr "Ha sur oc'h e fell deoc'h adloc'hañ ?"
93msgstr "Ha sur oc'h e fell deoc'h adloc'hañ ?"
94
94
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
96msgid "No"
96msgid "No"
97msgstr "N'on ket"
97msgstr "N'on ket"
98
98
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100msgid "Yes"
100msgid "Yes"
101msgstr "Ya"
101msgstr "Ya"
102
102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104msgctxt "Title: Power off/Restart dialog"
104msgctxt "Title: Power off/Restart dialog"
105msgid "Power"
105msgid "Power"
106msgstr "Enaouiñ"
106msgstr "Enaouiñ"
107
107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109msgid ""
109msgid ""
110"Are you sure you would like\n"
110"Are you sure you would like\n"
111"to power off?"
111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113"Ha sur oc'h e fell deoc'h\n"
113"Ha sur oc'h e fell deoc'h\n"
114"troc'hañ an tredan ?"
114"troc'hañ an tredan ?"
115
115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117msgctxt "Button: Power off the system"
117msgctxt "Button: Power off the system"
118msgid "Power off"
118msgid "Power off"
119msgstr "Lazhañ"
119msgstr "Lazhañ"
120
120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
123msgid "Restart"
123msgid "Restart"
124msgstr "Adloc'hañ"
124msgstr "Adloc'hañ"
125
125
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr "Berradennoù klavier"
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr "Unity 8"
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr "Moulsk"
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr "Tapout ur skeudenn eus ar skramm"
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr "Tapout ur skeudenn eus ur prenestr"
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr "Lañser"
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr "Kefluskerioù enklask"
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr "Digeriñ pajenn degemer ar c'hefluskerioù enklask."
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr "Bihanaat an holl brenestroù."
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr ""
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr ""
285+
126−#: qml/Components/Lockscreen.qml:231
286+#: qml/Components/Lockscreen.qml:239
127msgid "Return to Call"
287msgid "Return to Call"
128msgstr "Distreiñ d'ar bellgomzadenn"
288msgstr "Distreiñ d'ar bellgomzadenn"
129
289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131msgid "Emergency Call"
291msgid "Emergency Call"
132msgstr "Pellgomzadenn vallus"
292msgstr "Pellgomzadenn vallus"
133
293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135msgid "OK"
295msgid "OK"
136msgstr "Mat eo"
296msgstr "Mat eo"
137
297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr "%1:%2:%3"
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr "%1:%2"
307+
138#: qml/Components/ModeSwitchWarningDialog.qml:32
308#: qml/Components/ModeSwitchWarningDialog.qml:32
139msgid "Apps may have unsaved data:"
309msgid "Apps may have unsaved data:"
140msgstr "Roadennoù ha n'int ket enrollet a c'hall bezañ gant an arloadoù :"
310msgstr "Roadennoù ha n'int ket enrollet a c'hall bezañ gant an arloadoù :"
@@ -164,6 +334,10 @@ msgstr "Adkevreañ bremañ !"
164msgid "Close all"
334msgid "Close all"
165msgstr "Serriñ pep tra"
335msgstr "Serriñ pep tra"
166
336
337+#: qml/Components/SharingPicker.qml:54
338+msgid "Preview Share Item"
339+msgstr "Rakwelet an elfenn lodet"
340+
167#: qml/Dash/DashPageHeader.qml:333
341#: qml/Dash/DashPageHeader.qml:333
168msgctxt "Button: Open the Ubuntu Store"
342msgctxt "Button: Open the Ubuntu Store"
169msgid "Store"
343msgid "Store"
@@ -195,15 +369,15 @@ msgstr "Purañ ho tisoc'hoù"
195msgid "Reset"
369msgid "Reset"
196msgstr "Adderaouekaat"
370msgstr "Adderaouekaat"
197
371
198−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
372+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
199msgid "Show less"
373msgid "Show less"
200−msgstr ""
374+msgstr "Diskouez nebeutoc'h"
201
375
202−#: qml/Dash/GenericScopeView.qml:579
376+#: qml/Dash/GenericScopeView.qml:580
203msgid "Show all"
377msgid "Show all"
204−msgstr ""
378+msgstr "Diskouez pep tra"
205
379
206−#: qml/Dash/GenericScopeView.qml:636
380+#: qml/Dash/GenericScopeView.qml:637
207msgctxt "Label: Hint for dash search line edit"
381msgctxt "Label: Hint for dash search line edit"
208msgid "Search"
382msgid "Search"
209msgstr "Klask"
383msgstr "Klask"
@@ -237,10 +411,6 @@ msgstr "Priziit an dra-mañ"
237msgid "Add a review"
411msgid "Add a review"
238msgstr "Ouzhpennañ un ali"
412msgstr "Ouzhpennañ un ali"
239
413
240−#: qml/Dash/Previews/PreviewSharing.qml:66
241−msgid "Preview Share Item"
242−msgstr "Rakwelet an elfenn lodet"
243−
244#: qml/Dash/PullToRefreshScopeStyle.qml:55
414#: qml/Dash/PullToRefreshScopeStyle.qml:55
245msgid "Pull to refresh…"
415msgid "Pull to refresh…"
246msgstr "Tennañ evit freskaat..."
416msgstr "Tennañ evit freskaat..."
@@ -257,11 +427,11 @@ msgstr "Gweredekaat ar roadennoù lec'hiañ"
257msgid "Manage"
427msgid "Manage"
258msgstr "Merañ"
428msgstr "Merañ"
259
429
260−#: qml/Dash/ScopesList.qml:101
430+#: qml/Dash/ScopesList.qml:102
261msgid "Home"
431msgid "Home"
262msgstr "Er gêr"
432msgstr "Er gêr"
263
433
264−#: qml/Dash/ScopesList.qml:102
434+#: qml/Dash/ScopesList.qml:103
265msgid "Also installed"
435msgid "Also installed"
266msgstr "Staliet ivez"
436msgstr "Staliet ivez"
267
437
@@ -271,17 +441,29 @@ msgid ""
271"touch pad to interact with the pointer."
441"touch pad to interact with the pointer."
272msgstr ""
442msgstr ""
273
443
274−#: qml/Greeter/CoverPage.qml:118
444+#: qml/Greeter/CoverPage.qml:127
275msgid "Unlock"
445msgid "Unlock"
276msgstr "Dibrennañ"
446msgstr "Dibrennañ"
277
447
448+#: qml/Greeter/Greeter.qml:539
449+msgid "Try again"
450+msgstr "Esaeañ adarre"
451+
278−#: qml/Greeter/LoginList.qml:239
452+#: qml/Greeter/LoginList.qml:63
453+msgid "Passphrase"
454+msgstr ""
455+
456+#: qml/Greeter/LoginList.qml:64
457+msgid "Passcode"
458+msgstr "Kod-tremen"
459+
460+#: qml/Greeter/LoginList.qml:259
279msgid "Retry"
461msgid "Retry"
280msgstr "Esaeañ en-dro"
462msgstr "Esaeañ en-dro"
281
463
282−#: qml/Greeter/LoginList.qml:240
464+#: qml/Greeter/LoginList.qml:260
283−msgid "Tap to unlock"
465+msgid "Log In"
284−msgstr "Pouezañ evit dibrennañ"
466+msgstr "Kevreañ"
285
467
286#: qml/Greeter/NarrowView.qml:54
468#: qml/Greeter/NarrowView.qml:54
287msgid "Sorry, incorrect passphrase."
469msgid "Sorry, incorrect passphrase."
@@ -311,34 +493,34 @@ msgstr ""
311"Ma vez ebarzhet ur c'hod-tremen direizh, e vo adderaouekaet ho pellgomzer "
493"Ma vez ebarzhet ur c'hod-tremen direizh, e vo adderaouekaet ho pellgomzer "
312"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel."
494"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel."
313
495
314−#: qml/Greeter/NarrowView.qml:116
496+#: qml/Greeter/NarrowView.qml:129
315#, qt-format
497#, qt-format
316msgid "Enter %1"
498msgid "Enter %1"
317msgstr "Merkañ %1"
499msgstr "Merkañ %1"
318
500
319−#: qml/Greeter/NarrowView.qml:117
501+#: qml/Greeter/NarrowView.qml:130
320msgid "Enter passphrase"
502msgid "Enter passphrase"
321msgstr "Merkañ ar frazenn-dremen"
503msgstr "Merkañ ar frazenn-dremen"
322
504
323−#: qml/Greeter/NarrowView.qml:118
505+#: qml/Greeter/NarrowView.qml:131
324msgid "Enter passcode"
506msgid "Enter passcode"
325msgstr "Merkañ ar c'hod-tremen"
507msgstr "Merkañ ar c'hod-tremen"
326
508
327−#: qml/Greeter/NarrowView.qml:119
509+#: qml/Greeter/NarrowView.qml:135
328#, qt-format
510#, qt-format
329msgid "Sorry, incorrect %1"
511msgid "Sorry, incorrect %1"
330msgstr "Siwazh, %1 direizh"
512msgstr "Siwazh, %1 direizh"
331
513
332−#: qml/Greeter/NarrowView.qml:120
514+#: qml/Greeter/NarrowView.qml:136
333msgid "Sorry, incorrect passphrase"
515msgid "Sorry, incorrect passphrase"
334msgstr "Siwazh, frazenn-dremen direizh"
516msgstr "Siwazh, frazenn-dremen direizh"
335
517
336−#: qml/Greeter/NarrowView.qml:121
518+#: qml/Greeter/NarrowView.qml:137
337msgctxt "passphrase"
519msgctxt "passphrase"
338msgid "Please re-enter"
520msgid "Please re-enter"
339msgstr "Adverkañ, mar plij"
521msgstr "Adverkañ, mar plij"
340
522
341−#: qml/Greeter/NarrowView.qml:122
523+#: qml/Greeter/NarrowView.qml:138
342msgid "Sorry, incorrect passcode"
524msgid "Sorry, incorrect passcode"
343msgstr "Digarezit, kod-tremen direizh"
525msgstr "Digarezit, kod-tremen direizh"
344
526
@@ -433,32 +615,12 @@ msgstr "Gervel en-dro"
433msgid "Drag using 3 fingers any application from one window to the other"
615msgid "Drag using 3 fingers any application from one window to the other"
434msgstr ""
616msgstr ""
435
617
436−#: qml/Tutorial/TutorialBottom.qml:78
437−msgid "Swipe up to add a contact"
438−msgstr "Riklit d'an nec'h evit ouzhpennañ un darempred"
439−
440−#: qml/Tutorial/TutorialBottom.qml:80
441−msgid "Swipe up for favorite calculations"
442−msgstr ""
443−
444−#: qml/Tutorial/TutorialBottom.qml:82
445−msgid "Swipe up for recent calls"
446−msgstr ""
447−
448−#: qml/Tutorial/TutorialBottom.qml:84
449−msgid "Swipe up to create a message"
450−msgstr "Riklit d'an nec'h evit krouiñ ur gemennadenn"
451−
452−#: qml/Tutorial/TutorialBottom.qml:85
453−msgid "Swipe up to manage the app"
454−msgstr ""
455−
456−#: qml/Tutorial/TutorialLeftLong.qml:47
618+#: qml/Tutorial/TutorialLeftLong.qml:49
457msgid "Long swipe from the left edge to open the Today scope"
619msgid "Long swipe from the left edge to open the Today scope"
458msgstr ""
620msgstr ""
459
621
460#: qml/Tutorial/TutorialLeft.qml:47
622#: qml/Tutorial/TutorialLeft.qml:47
461−msgid "Swipe from the left edge to open the launcher"
623+msgid "Short swipe from the left edge to open the launcher"
462msgstr ""
624msgstr ""
463
625
464#: qml/Tutorial/TutorialRight.qml:55
626#: qml/Tutorial/TutorialRight.qml:55
@@ -466,15 +628,11 @@ msgid "Push your mouse against the right edge to view your open apps"
466msgstr ""
628msgstr ""
467
629
468#: qml/Tutorial/TutorialRight.qml:56
630#: qml/Tutorial/TutorialRight.qml:56
469−msgid "Short or long swipe from the right edge to view your open apps"
631+msgid "Swipe from the right edge to view your open apps"
470msgstr ""
632msgstr ""
471
633
472#: qml/Tutorial/TutorialTop.qml:53
634#: qml/Tutorial/TutorialTop.qml:53
473−msgid "Swipe from the top right edge to open the notification bar"
635+msgid "Swipe from the top edge to access notifications and quick settings"
474−msgstr ""
475−
476−#: qml/Tutorial/TutorialTop.qml:54
477−msgid "Swipe from the top edge to open the notification bar"
478msgstr ""
636msgstr ""
479
637
480#: qml/Wizard/Page.qml:54
638#: qml/Wizard/Page.qml:54
@@ -486,15 +644,32 @@ msgstr "Distreiñ"
486msgid "Language"
644msgid "Language"
487msgstr "Yezh"
645msgstr "Yezh"
488
646
489−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
647+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
490#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
648#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
491#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
649#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492#: qml/Wizard/Pages/75-report-check.qml:84
650#: qml/Wizard/Pages/75-report-check.qml:84
493−#: qml/Wizard/Pages/passcode-desktop.qml:124
651+#: qml/Wizard/Pages/passcode-desktop.qml:141
494#: qml/Wizard/Pages/password-set.qml:141
652#: qml/Wizard/Pages/password-set.qml:141
495msgid "Next"
653msgid "Next"
496msgstr "War-lerc'h"
654msgstr "War-lerc'h"
497
655
656+#: qml/Wizard/Pages/20-keyboard.qml:30
657+msgid "Select Keyboard"
658+msgstr "Diuzañ ar c'hlavier"
659+
660+#: qml/Wizard/Pages/20-keyboard.qml:70
661+msgid "Keyboard language"
662+msgstr "Yezh ar c'hlavier"
663+
664+#: qml/Wizard/Pages/20-keyboard.qml:92
665+msgid "Keyboard layout"
666+msgstr "Aozadur ar c'hlavier"
667+
668+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
669+#: qml/Wizard/Pages/sim.qml:101
670+msgid "Skip"
671+msgstr "Tremen hebiou"
672+
498#: qml/Wizard/Pages/30-wifi.qml:29
673#: qml/Wizard/Pages/30-wifi.qml:29
499msgid "Connect to Wi‑Fi"
674msgid "Connect to Wi‑Fi"
500msgstr "Kevreañ ouzh ar Wi-Fi"
675msgstr "Kevreañ ouzh ar Wi-Fi"
@@ -511,11 +686,6 @@ msgstr "Rouedadoù Wi-Fi da gaout"
511msgid "No available Wi-Fi networks"
686msgid "No available Wi-Fi networks"
512msgstr "N'eus ket rouedadoù Wi-Fi da gaout"
687msgstr "N'eus ket rouedadoù Wi-Fi da gaout"
513
688
514−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515−#: qml/Wizard/Pages/sim.qml:101
516−msgid "Skip"
517−msgstr "Tremen hebiou"
518−
519#: qml/Wizard/Pages/40-location.qml:27
689#: qml/Wizard/Pages/40-location.qml:27
520msgid "Location Services"
690msgid "Location Services"
521msgstr "Servijoù lec'hiañ"
691msgstr "Servijoù lec'hiañ"
@@ -546,7 +716,7 @@ msgstr "Arabat implijout ma lec'h"
546
716
547#: qml/Wizard/Pages/40-location.qml:260
717#: qml/Wizard/Pages/40-location.qml:260
548msgid "You can change it later in System Settings."
718msgid "You can change it later in System Settings."
549−msgstr ""
719+msgstr "Gallout a rit cheñch se diwezhatoc'h en arventennoù ar reizhiad."
550
720
551#: qml/Wizard/Pages/50-timezone.qml:29
721#: qml/Wizard/Pages/50-timezone.qml:29
552msgid "Time Zone"
722msgid "Time Zone"
@@ -599,6 +769,35 @@ msgstr ""
599msgid "Privacy policy"
769msgid "Privacy policy"
600msgstr "Reolennoù buhez prevez"
770msgstr "Reolennoù buhez prevez"
601
771
772+#: qml/Wizard/Pages/77-system-update.qml:28
773+msgid "Update Device"
774+msgstr "Hizivaat ar benveg"
775+
776+#: qml/Wizard/Pages/77-system-update.qml:55
777+msgid ""
778+"There is a system update available and ready to install. Afterwards, the "
779+"device will automatically restart."
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:76
783+msgctxt "string identifying name of the update"
784+msgid "Ubuntu system"
785+msgstr "Reizhiad Ubuntu"
786+
787+#: qml/Wizard/Pages/77-system-update.qml:83
788+#, qt-format
789+msgctxt "version of the system update"
790+msgid "Version %1"
791+msgstr "Stumm %1"
792+
793+#: qml/Wizard/Pages/77-system-update.qml:102
794+msgid "This could take a few minutes..."
795+msgstr "Gallout a ra padout un nebeud munutennoù..."
796+
797+#: qml/Wizard/Pages/77-system-update.qml:116
798+msgid "Install and restart now"
799+msgstr "Staliañ hag adloc'hañ bremañ"
800+
602#: qml/Wizard/Pages/80-finished.qml:89
801#: qml/Wizard/Pages/80-finished.qml:89
603msgid "Welcome to Ubuntu"
802msgid "Welcome to Ubuntu"
604msgstr "Donemat en Ubuntu"
803msgstr "Donemat en Ubuntu"
@@ -642,7 +841,7 @@ msgid "Service Terms"
642msgstr "Divizoù servij"
841msgstr "Divizoù servij"
643
842
644#: qml/Wizard/Pages/passcode-confirm.qml:43
843#: qml/Wizard/Pages/passcode-confirm.qml:43
645−#: qml/Wizard/Pages/passcode-desktop.qml:80
844+#: qml/Wizard/Pages/passcode-desktop.qml:96
646msgid "Confirm passcode"
845msgid "Confirm passcode"
647msgstr "Kadarnaat ar c'hod-tremen"
846msgstr "Kadarnaat ar c'hod-tremen"
648
847
@@ -659,24 +858,24 @@ msgstr "Skrivit adarre, mar plij."
659msgid "Lock Screen Passcode"
858msgid "Lock Screen Passcode"
660msgstr "Kod da brennañ ar skramm"
859msgstr "Kod da brennañ ar skramm"
661
860
662−#: qml/Wizard/Pages/passcode-desktop.qml:56
861+#: qml/Wizard/Pages/passcode-desktop.qml:60
663msgid "Enter 4 numbers to setup your passcode"
862msgid "Enter 4 numbers to setup your passcode"
664msgstr "Skrivit 4 sifr evit lakaat ho kod"
863msgstr "Skrivit 4 sifr evit lakaat ho kod"
665
864
666−#: qml/Wizard/Pages/passcode-desktop.qml:65
865+#: qml/Wizard/Pages/passcode-desktop.qml:76
667#: qml/Wizard/Pages/passcode-set.qml:54
866#: qml/Wizard/Pages/passcode-set.qml:54
668msgid "Choose passcode"
867msgid "Choose passcode"
669msgstr "Choaz ur c'hod"
868msgstr "Choaz ur c'hod"
670
869
671−#: qml/Wizard/Pages/passcode-desktop.qml:105
870+#: qml/Wizard/Pages/passcode-desktop.qml:126
672msgid "Passcode too short"
871msgid "Passcode too short"
673msgstr "Kod re verr"
872msgstr "Kod re verr"
674
873
675−#: qml/Wizard/Pages/passcode-desktop.qml:107
874+#: qml/Wizard/Pages/passcode-desktop.qml:128
676msgid "Passcodes match"
875msgid "Passcodes match"
677msgstr "klotañ a ra ar c'hodoù an eil gant egile"
876msgstr "klotañ a ra ar c'hodoù an eil gant egile"
678
877
679−#: qml/Wizard/Pages/passcode-desktop.qml:109
878+#: qml/Wizard/Pages/passcode-desktop.qml:130
680msgid "Passcodes do not match"
879msgid "Passcodes do not match"
681msgstr "Ne glot ket ar c'hodoù an eil gant egile"
880msgstr "Ne glot ket ar c'hodoù an eil gant egile"
682
881
@@ -710,7 +909,7 @@ msgstr "Lakaet ez eus bet ur gartenn SIM"
710
909
711#: qml/Wizard/Pages/sim.qml:55
910#: qml/Wizard/Pages/sim.qml:55
712msgid "You must restart the device to access the mobile network."
911msgid "You must restart the device to access the mobile network."
713−msgstr ""
912+msgstr "Ret eo deoc'h adloc'hañ ar benveg evit mont d'ar rouedad hezoug."
714
913
715#: qml/Wizard/Pages/sim.qml:59
914#: qml/Wizard/Pages/sim.qml:59
716msgid "Restart"
915msgid "Restart"
@@ -718,33 +917,37 @@ msgstr "Adloc'hañ"
718
917
719#: qml/Wizard/Pages/sim.qml:78
918#: qml/Wizard/Pages/sim.qml:78
720msgid "You won’t be able to make calls or use text messaging without a SIM."
919msgid "You won’t be able to make calls or use text messaging without a SIM."
721−msgstr ""
920+msgstr "Ne c'halloc'h ket pellgomz na kas kemennadennoù hep kartenn SIM."
722
921
723#: qml/Wizard/Pages/sim.qml:90
922#: qml/Wizard/Pages/sim.qml:90
724msgid "To proceed with no SIM tap Skip."
923msgid "To proceed with no SIM tap Skip."
725msgstr ""
924msgstr ""
726
925
727#: qml/Wizard/PasswordMeter.qml:87
926#: qml/Wizard/PasswordMeter.qml:87
927+msgid "Password too short"
928+msgstr "Re verr eo ar ger-tremen"
929+
930+#: qml/Wizard/PasswordMeter.qml:89
728msgid "Passwords match"
931msgid "Passwords match"
729msgstr "Klotañ a ra ar gerioù-tremen an eil gant egile"
932msgstr "Klotañ a ra ar gerioù-tremen an eil gant egile"
730
933
731−#: qml/Wizard/PasswordMeter.qml:89
934+#: qml/Wizard/PasswordMeter.qml:91
732msgid "Passwords do not match"
935msgid "Passwords do not match"
733msgstr "Ne glot ket ar gerioù-tremen"
936msgstr "Ne glot ket ar gerioù-tremen"
734
937
735−#: qml/Wizard/PasswordMeter.qml:93
938+#: qml/Wizard/PasswordMeter.qml:95
736msgid "Strong password"
939msgid "Strong password"
737msgstr "Ger-tremen sur"
940msgstr "Ger-tremen sur"
738
941
739−#: qml/Wizard/PasswordMeter.qml:95
942+#: qml/Wizard/PasswordMeter.qml:97
740msgid "Fair password"
943msgid "Fair password"
741msgstr "Ger-tremen reizh"
944msgstr "Ger-tremen reizh"
742
945
743−#: qml/Wizard/PasswordMeter.qml:97
946+#: qml/Wizard/PasswordMeter.qml:99
744msgid "Weak password"
947msgid "Weak password"
745msgstr "Ger-tremen diasur"
948msgstr "Ger-tremen diasur"
746
949
747−#: qml/Wizard/PasswordMeter.qml:99
950+#: qml/Wizard/PasswordMeter.qml:101
748msgid "Very weak password"
951msgid "Very weak password"
749msgstr "Ger-tremen diasur-kenañ"
952msgstr "Ger-tremen diasur-kenañ"
750
953
@@ -965,6 +1168,9 @@ msgstr "Ger-tremen diasur-kenañ"
965#~ msgid "%1 〉"
1168#~ msgid "%1 〉"
966#~ msgstr "%1 〉"
1169#~ msgstr "%1 〉"
967
1170
1171+#~ msgid "Tap to unlock"
1172+#~ msgstr "Pouezañ evit dibrennañ"
1173+
968#~ msgid "This action does different things for different apps"
1174#~ msgid "This action does different things for different apps"
969#~ msgstr "An ober-mañ a ra meur a dra evit meur a arload"
1175#~ msgstr "An ober-mañ a ra meur a dra evit meur a arload"
970
1176
@@ -1072,3 +1278,9 @@ msgstr "Ger-tremen diasur-kenañ"
1072
1278
1073#~ msgid "Call back"
1279#~ msgid "Call back"
1074#~ msgstr "Gervel en-dro"
1280#~ msgstr "Gervel en-dro"
1281+
1282+#~ msgid "Swipe up to add a contact"
1283+#~ msgstr "Riklit d'an nec'h evit ouzhpennañ un darempred"
1284+
1285+#~ msgid "Swipe up to create a message"
1286+#~ msgstr "Riklit d'an nec'h evit krouiñ ur gemennadenn"
po/bs.po+300−94
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2015-12-01 20:06+0000\n"
11"PO-Revision-Date: 2015-12-01 20:06+0000\n"
12"Last-Translator: Kenan Gutić <Unknown>\n"
12"Last-Translator: Kenan Gutić <Unknown>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
@@ -16,39 +16,39 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
20+"X-Generator: Launchpad (build 18179)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
24msgstr "Šifra: "
24msgstr "Šifra: "
25
25
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
28msgid "Pin shortcut"
28msgid "Pin shortcut"
29msgstr "Prikačite prečicu"
29msgstr "Prikačite prečicu"
30
30
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
32msgid "Quit"
32msgid "Quit"
33msgstr "Napusti"
33msgstr "Napusti"
34
34
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
36msgid "Unpin shortcut"
36msgid "Unpin shortcut"
37msgstr "Otkačite prečicu"
37msgstr "Otkačite prečicu"
38
38
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
40msgid "Device Locked"
40msgid "Device Locked"
41msgstr "Uređaj zaključan"
41msgstr "Uređaj zaključan"
42
42
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
44msgid "You have been locked out due to too many failed passphrase attempts."
44msgid "You have been locked out due to too many failed passphrase attempts."
45msgstr "Izbačeni ste zbog previše neuspjelih pokušaja unosa pristupne fraze."
45msgstr "Izbačeni ste zbog previše neuspjelih pokušaja unosa pristupne fraze."
46
46
47−#: qml/Components/DelayedLockscreen.qml:65
47+#: qml/Components/DelayedLockscreen.qml:66
48msgid "You have been locked out due to too many failed passcode attempts."
48msgid "You have been locked out due to too many failed passcode attempts."
49msgstr "Izbačeni ste zbog previše neuspjelih pokušaja unosa pristupnog koda."
49msgstr "Izbačeni ste zbog previše neuspjelih pokušaja unosa pristupnog koda."
50
50
51−#: qml/Components/DelayedLockscreen.qml:74
51+#: qml/Components/DelayedLockscreen.qml:75
52#, qt-format
52#, qt-format
53msgid "Please wait %1 minute and then try again…"
53msgid "Please wait %1 minute and then try again…"
54msgid_plural "Please wait %1 minutes and then try again…"
54msgid_plural "Please wait %1 minutes and then try again…"
@@ -56,54 +56,54 @@ msgstr[0] "Molim pričekajte %1 minutu i onda pokušajte ponovo..."
56msgstr[1] "Molim pričekajte %1 minute i onda pokušajte ponovo..."
56msgstr[1] "Molim pričekajte %1 minute i onda pokušajte ponovo..."
57msgstr[2] "Molim pričekajte %1 minuta i onda pokušajte ponovo"
57msgstr[2] "Molim pričekajte %1 minuta i onda pokušajte ponovo"
58
58
59−#: qml/Components/Dialogs.qml:144
59+#: qml/Components/Dialogs.qml:146
60msgctxt "Title: Lock/Log out dialog"
60msgctxt "Title: Lock/Log out dialog"
61msgid "Log out"
61msgid "Log out"
62msgstr "Odjavite se"
62msgstr "Odjavite se"
63
63
64−#: qml/Components/Dialogs.qml:145
64+#: qml/Components/Dialogs.qml:147
65msgid "Are you sure you want to log out?"
65msgid "Are you sure you want to log out?"
66msgstr "Da li ste sigurni da se želite odjaviti?"
66msgstr "Da li ste sigurni da se želite odjaviti?"
67
67
68−#: qml/Components/Dialogs.qml:147
68+#: qml/Components/Dialogs.qml:149
69msgctxt "Button: Lock the system"
69msgctxt "Button: Lock the system"
70msgid "Lock"
70msgid "Lock"
71msgstr "Zaključaj"
71msgstr "Zaključaj"
72
72
73−#: qml/Components/Dialogs.qml:154
73+#: qml/Components/Dialogs.qml:156
74msgctxt "Button: Log out from the system"
74msgctxt "Button: Log out from the system"
75msgid "Log Out"
75msgid "Log Out"
76msgstr "Odjavi se"
76msgstr "Odjavi se"
77
77
78−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
78+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
79#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
79#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
80#: qml/Wizard/Pages/passcode-set.qml:32
80#: qml/Wizard/Pages/passcode-set.qml:32
81msgid "Cancel"
81msgid "Cancel"
82msgstr "Otkaži"
82msgstr "Otkaži"
83
83
84−#: qml/Components/Dialogs.qml:173
84+#: qml/Components/Dialogs.qml:175
85msgctxt "Title: Reboot dialog"
85msgctxt "Title: Reboot dialog"
86msgid "Reboot"
86msgid "Reboot"
87msgstr "Ponovo pokreni"
87msgstr "Ponovo pokreni"
88
88
89−#: qml/Components/Dialogs.qml:174
89+#: qml/Components/Dialogs.qml:176
90msgid "Are you sure you want to reboot?"
90msgid "Are you sure you want to reboot?"
91msgstr "Da li ste sigurni da želite ponovo pokrenuti?"
91msgstr "Da li ste sigurni da želite ponovo pokrenuti?"
92
92
93−#: qml/Components/Dialogs.qml:176
93+#: qml/Components/Dialogs.qml:178
94msgid "No"
94msgid "No"
95msgstr "Ne"
95msgstr "Ne"
96
96
97−#: qml/Components/Dialogs.qml:182
97+#: qml/Components/Dialogs.qml:184
98msgid "Yes"
98msgid "Yes"
99msgstr "Da"
99msgstr "Da"
100
100
101−#: qml/Components/Dialogs.qml:197
101+#: qml/Components/Dialogs.qml:199
102msgctxt "Title: Power off/Restart dialog"
102msgctxt "Title: Power off/Restart dialog"
103msgid "Power"
103msgid "Power"
104msgstr "Napajanje"
104msgstr "Napajanje"
105
105
106−#: qml/Components/Dialogs.qml:198
106+#: qml/Components/Dialogs.qml:200
107msgid ""
107msgid ""
108"Are you sure you would like\n"
108"Are you sure you would like\n"
109"to power off?"
109"to power off?"
@@ -111,28 +111,198 @@ msgstr ""
111"Da li ste sigurni da želite\n"
111"Da li ste sigurni da želite\n"
112"isključiti?"
112"isključiti?"
113
113
114−#: qml/Components/Dialogs.qml:200
114+#: qml/Components/Dialogs.qml:202
115msgctxt "Button: Power off the system"
115msgctxt "Button: Power off the system"
116msgid "Power off"
116msgid "Power off"
117msgstr "Isključi"
117msgstr "Isključi"
118
118
119−#: qml/Components/Dialogs.qml:209
119+#: qml/Components/Dialogs.qml:211
120msgctxt "Button: Restart the system"
120msgctxt "Button: Restart the system"
121msgid "Restart"
121msgid "Restart"
122msgstr "Restartuj"
122msgstr "Restartuj"
123
123
124+#: qml/Components/KeyboardShortcutsOverlay.qml:41
125+msgid "Keyboard Shortcuts"
126+msgstr ""
127+
128+#: qml/Components/KeyboardShortcutsOverlay.qml:55
129+msgid "Unity 8"
130+msgstr ""
131+
132+#: qml/Components/KeyboardShortcutsOverlay.qml:62
133+msgid "PrtScr"
134+msgstr ""
135+
136+#: qml/Components/KeyboardShortcutsOverlay.qml:67
137+msgid "Takes a screenshot."
138+msgstr ""
139+
140+#: qml/Components/KeyboardShortcutsOverlay.qml:75
141+msgid "Alt + PrtScr"
142+msgstr ""
143+
144+#: qml/Components/KeyboardShortcutsOverlay.qml:80
145+msgid "Takes a screenshot of a window."
146+msgstr ""
147+
148+#: qml/Components/KeyboardShortcutsOverlay.qml:88
149+msgid "Super + Space"
150+msgstr ""
151+
152+#: qml/Components/KeyboardShortcutsOverlay.qml:93
153+msgid "Switches to next keyboard layout."
154+msgstr ""
155+
156+#: qml/Components/KeyboardShortcutsOverlay.qml:101
157+msgid "Super + Shift + Space"
158+msgstr ""
159+
160+#: qml/Components/KeyboardShortcutsOverlay.qml:106
161+msgid "Switches to previous keyboard layout."
162+msgstr ""
163+
164+#: qml/Components/KeyboardShortcutsOverlay.qml:118
165+msgid "Launcher"
166+msgstr ""
167+
168+#: qml/Components/KeyboardShortcutsOverlay.qml:125
169+msgid "Super (Hold)"
170+msgstr ""
171+
172+#: qml/Components/KeyboardShortcutsOverlay.qml:130
173+msgid "Opens the launcher, displays shortcuts."
174+msgstr ""
175+
176+#: qml/Components/KeyboardShortcutsOverlay.qml:138
177+msgid "Alt + F1"
178+msgstr ""
179+
180+#: qml/Components/KeyboardShortcutsOverlay.qml:143
181+msgid "Opens launcher keyboard navigation mode."
182+msgstr ""
183+
184+#: qml/Components/KeyboardShortcutsOverlay.qml:151
185+msgid "Super + Tab"
186+msgstr ""
187+
188+#: qml/Components/KeyboardShortcutsOverlay.qml:156
189+msgid "Switches applications via the launcher."
190+msgstr ""
191+
192+#: qml/Components/KeyboardShortcutsOverlay.qml:164
193+msgid "Super + 0 to 9"
194+msgstr ""
195+
196+#: qml/Components/KeyboardShortcutsOverlay.qml:169
197+msgid "Same as clicking on a launcher icon."
198+msgstr ""
199+
200+#: qml/Components/KeyboardShortcutsOverlay.qml:181
201+msgid "Scopes"
202+msgstr ""
203+
204+#: qml/Components/KeyboardShortcutsOverlay.qml:188
205+msgid "Super (Tap)"
206+msgstr ""
207+
208+#: qml/Components/KeyboardShortcutsOverlay.qml:193
209+msgid "Opens the Scopes home."
210+msgstr ""
211+
212+#: qml/Components/KeyboardShortcutsOverlay.qml:209
213+msgid "Switching"
214+msgstr ""
215+
216+#: qml/Components/KeyboardShortcutsOverlay.qml:216
217+msgid "Alt + Tab"
218+msgstr ""
219+
220+#: qml/Components/KeyboardShortcutsOverlay.qml:221
221+msgid "Switches between applications."
222+msgstr ""
223+
224+#: qml/Components/KeyboardShortcutsOverlay.qml:229
225+msgid "Super + W"
226+msgstr ""
227+
228+#: qml/Components/KeyboardShortcutsOverlay.qml:234
229+msgid "Opens the desktop spread."
230+msgstr ""
231+
232+#: qml/Components/KeyboardShortcutsOverlay.qml:242
233+msgid "Cursor Left or Right"
234+msgstr ""
235+
236+#: qml/Components/KeyboardShortcutsOverlay.qml:247
237+msgid "Moves the focus."
238+msgstr ""
239+
240+#: qml/Components/KeyboardShortcutsOverlay.qml:259
241+msgid "Windows"
242+msgstr ""
243+
244+#: qml/Components/KeyboardShortcutsOverlay.qml:266
245+msgid "Ctrl + Super + D"
246+msgstr ""
247+
248+#: qml/Components/KeyboardShortcutsOverlay.qml:271
249+msgid "Minimizes all windows."
250+msgstr ""
251+
252+#: qml/Components/KeyboardShortcutsOverlay.qml:279
253+msgid "Ctrl + Super + Up"
254+msgstr ""
255+
256+#: qml/Components/KeyboardShortcutsOverlay.qml:284
257+msgid "Maximizes the current window."
258+msgstr ""
259+
260+#: qml/Components/KeyboardShortcutsOverlay.qml:292
261+msgid "Ctrl + Super + Down"
262+msgstr ""
263+
264+#: qml/Components/KeyboardShortcutsOverlay.qml:297
265+msgid "Minimizes or restores the current window."
266+msgstr ""
267+
268+#: qml/Components/KeyboardShortcutsOverlay.qml:305
269+msgid "Ctrl + Super + Left or Right"
270+msgstr ""
271+
272+#: qml/Components/KeyboardShortcutsOverlay.qml:310
273+msgid "Semi-maximizes the current window."
274+msgstr ""
275+
276+#: qml/Components/KeyboardShortcutsOverlay.qml:318
277+msgid "Alt + F4"
278+msgstr ""
279+
280+#: qml/Components/KeyboardShortcutsOverlay.qml:323
281+msgid "Closes the current window."
282+msgstr ""
283+
124−#: qml/Components/Lockscreen.qml:231
284+#: qml/Components/Lockscreen.qml:239
125msgid "Return to Call"
285msgid "Return to Call"
126msgstr "Povratak na Poziv"
286msgstr "Povratak na Poziv"
127
287
128−#: qml/Components/Lockscreen.qml:231
288+#: qml/Components/Lockscreen.qml:239
129msgid "Emergency Call"
289msgid "Emergency Call"
130msgstr "Hitan Poziv"
290msgstr "Hitan Poziv"
131
291
132−#: qml/Components/Lockscreen.qml:263
292+#: qml/Components/Lockscreen.qml:271
133msgid "OK"
293msgid "OK"
134msgstr "U redu"
294msgstr "U redu"
135
295
296+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
297+#, qt-format
298+msgid "%1:%2:%3"
299+msgstr ""
300+
301+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
302+#, qt-format
303+msgid "%1:%2"
304+msgstr ""
305+
136#: qml/Components/ModeSwitchWarningDialog.qml:32
306#: qml/Components/ModeSwitchWarningDialog.qml:32
137msgid "Apps may have unsaved data:"
307msgid "Apps may have unsaved data:"
138msgstr "Aplikacije možda imaju podataka koji nisu sačuvani:"
308msgstr "Aplikacije možda imaju podataka koji nisu sačuvani:"
@@ -161,6 +331,10 @@ msgstr "Ponovo poveži sada"
161msgid "Close all"
331msgid "Close all"
162msgstr "Zatvori sve"
332msgstr "Zatvori sve"
163
333
334+#: qml/Components/SharingPicker.qml:54
335+msgid "Preview Share Item"
336+msgstr "Pogledaj stavku koja se dijeli"
337+
164#: qml/Dash/DashPageHeader.qml:333
338#: qml/Dash/DashPageHeader.qml:333
165msgctxt "Button: Open the Ubuntu Store"
339msgctxt "Button: Open the Ubuntu Store"
166msgid "Store"
340msgid "Store"
@@ -192,15 +366,15 @@ msgstr ""
192msgid "Reset"
366msgid "Reset"
193msgstr ""
367msgstr ""
194
368
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
369+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196msgid "Show less"
370msgid "Show less"
197msgstr ""
371msgstr ""
198
372
199−#: qml/Dash/GenericScopeView.qml:579
373+#: qml/Dash/GenericScopeView.qml:580
200msgid "Show all"
374msgid "Show all"
201msgstr ""
375msgstr ""
202
376
203−#: qml/Dash/GenericScopeView.qml:636
377+#: qml/Dash/GenericScopeView.qml:637
204msgctxt "Label: Hint for dash search line edit"
378msgctxt "Label: Hint for dash search line edit"
205msgid "Search"
379msgid "Search"
206msgstr "Pretraži"
380msgstr "Pretraži"
@@ -234,10 +408,6 @@ msgstr "Ocijeni ovo"
234msgid "Add a review"
408msgid "Add a review"
235msgstr "Dodaj recenziju"
409msgstr "Dodaj recenziju"
236
410
237−#: qml/Dash/Previews/PreviewSharing.qml:66
238−msgid "Preview Share Item"
239−msgstr "Pogledaj stavku koja se dijeli"
240−
241#: qml/Dash/PullToRefreshScopeStyle.qml:55
411#: qml/Dash/PullToRefreshScopeStyle.qml:55
242msgid "Pull to refresh…"
412msgid "Pull to refresh…"
243msgstr "Povući za osvježavanje..."
413msgstr "Povući za osvježavanje..."
@@ -254,11 +424,11 @@ msgstr "Omogućiti podatke o lokaciji"
254msgid "Manage"
424msgid "Manage"
255msgstr "Upravljanje"
425msgstr "Upravljanje"
256
426
257−#: qml/Dash/ScopesList.qml:101
427+#: qml/Dash/ScopesList.qml:102
258msgid "Home"
428msgid "Home"
259msgstr "Početna"
429msgstr "Početna"
260
430
261−#: qml/Dash/ScopesList.qml:102
431+#: qml/Dash/ScopesList.qml:103
262msgid "Also installed"
432msgid "Also installed"
263msgstr "Također instalirano"
433msgstr "Također instalirano"
264
434
@@ -268,17 +438,29 @@ msgid ""
268"touch pad to interact with the pointer."
438"touch pad to interact with the pointer."
269msgstr ""
439msgstr ""
270
440
271−#: qml/Greeter/CoverPage.qml:118
441+#: qml/Greeter/CoverPage.qml:127
272msgid "Unlock"
442msgid "Unlock"
273msgstr "Otključaj"
443msgstr "Otključaj"
274
444
445+#: qml/Greeter/Greeter.qml:539
446+msgid "Try again"
447+msgstr ""
448+
275−#: qml/Greeter/LoginList.qml:239
449+#: qml/Greeter/LoginList.qml:63
450+msgid "Passphrase"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:64
454+msgid "Passcode"
455+msgstr ""
456+
457+#: qml/Greeter/LoginList.qml:259
276msgid "Retry"
458msgid "Retry"
277msgstr "Ponovi"
459msgstr "Ponovi"
278
460
279−#: qml/Greeter/LoginList.qml:240
461+#: qml/Greeter/LoginList.qml:260
280−msgid "Tap to unlock"
462+msgid "Log In"
281−msgstr "Kucnite za otključavanje"
463+msgstr ""
282
464
283#: qml/Greeter/NarrowView.qml:54
465#: qml/Greeter/NarrowView.qml:54
284msgid "Sorry, incorrect passphrase."
466msgid "Sorry, incorrect passphrase."
@@ -308,34 +490,34 @@ msgstr ""
308"Ako je pristupni kod unesen netačno, vaš telefon će sprovesti reset na "
490"Ako je pristupni kod unesen netačno, vaš telefon će sprovesti reset na "
309"fabričke postavke i svi osobni podaci će biti izbrisani."
491"fabričke postavke i svi osobni podaci će biti izbrisani."
310
492
311−#: qml/Greeter/NarrowView.qml:116
493+#: qml/Greeter/NarrowView.qml:129
312#, qt-format
494#, qt-format
313msgid "Enter %1"
495msgid "Enter %1"
314msgstr "Unesite %1"
496msgstr "Unesite %1"
315
497
316−#: qml/Greeter/NarrowView.qml:117
498+#: qml/Greeter/NarrowView.qml:130
317msgid "Enter passphrase"
499msgid "Enter passphrase"
318msgstr "Unesite propusnu frazu"
500msgstr "Unesite propusnu frazu"
319
501
320−#: qml/Greeter/NarrowView.qml:118
502+#: qml/Greeter/NarrowView.qml:131
321msgid "Enter passcode"
503msgid "Enter passcode"
322msgstr "Unesite pristupni kod"
504msgstr "Unesite pristupni kod"
323
505
324−#: qml/Greeter/NarrowView.qml:119
506+#: qml/Greeter/NarrowView.qml:135
325#, qt-format
507#, qt-format
326msgid "Sorry, incorrect %1"
508msgid "Sorry, incorrect %1"
327msgstr "Izvinite, netačno %1"
509msgstr "Izvinite, netačno %1"
328
510
329−#: qml/Greeter/NarrowView.qml:120
511+#: qml/Greeter/NarrowView.qml:136
330msgid "Sorry, incorrect passphrase"
512msgid "Sorry, incorrect passphrase"
331msgstr "Izvinite, netačna propusna fraza"
513msgstr "Izvinite, netačna propusna fraza"
332
514
333−#: qml/Greeter/NarrowView.qml:121
515+#: qml/Greeter/NarrowView.qml:137
334msgctxt "passphrase"
516msgctxt "passphrase"
335msgid "Please re-enter"
517msgid "Please re-enter"
336msgstr "Molim ponovo unesite"
518msgstr "Molim ponovo unesite"
337
519
338−#: qml/Greeter/NarrowView.qml:122
520+#: qml/Greeter/NarrowView.qml:138
339msgid "Sorry, incorrect passcode"
521msgid "Sorry, incorrect passcode"
340msgstr "Izvinite, netačan pristupni kod"
522msgstr "Izvinite, netačan pristupni kod"
341
523
@@ -433,32 +615,12 @@ msgstr "Uzvrati poziv"
433msgid "Drag using 3 fingers any application from one window to the other"
615msgid "Drag using 3 fingers any application from one window to the other"
434msgstr ""
616msgstr ""
435
617
436−#: qml/Tutorial/TutorialBottom.qml:78
437−msgid "Swipe up to add a contact"
438−msgstr ""
439−
440−#: qml/Tutorial/TutorialBottom.qml:80
441−msgid "Swipe up for favorite calculations"
442−msgstr ""
443−
444−#: qml/Tutorial/TutorialBottom.qml:82
445−msgid "Swipe up for recent calls"
446−msgstr ""
447−
448−#: qml/Tutorial/TutorialBottom.qml:84
449−msgid "Swipe up to create a message"
450−msgstr ""
451−
452−#: qml/Tutorial/TutorialBottom.qml:85
453−msgid "Swipe up to manage the app"
454−msgstr ""
455−
456−#: qml/Tutorial/TutorialLeftLong.qml:47
618+#: qml/Tutorial/TutorialLeftLong.qml:49
457msgid "Long swipe from the left edge to open the Today scope"
619msgid "Long swipe from the left edge to open the Today scope"
458msgstr ""
620msgstr ""
459
621
460#: qml/Tutorial/TutorialLeft.qml:47
622#: qml/Tutorial/TutorialLeft.qml:47
461−msgid "Swipe from the left edge to open the launcher"
623+msgid "Short swipe from the left edge to open the launcher"
462msgstr ""
624msgstr ""
463
625
464#: qml/Tutorial/TutorialRight.qml:55
626#: qml/Tutorial/TutorialRight.qml:55
@@ -466,15 +628,11 @@ msgid "Push your mouse against the right edge to view your open apps"
466msgstr ""
628msgstr ""
467
629
468#: qml/Tutorial/TutorialRight.qml:56
630#: qml/Tutorial/TutorialRight.qml:56
469−msgid "Short or long swipe from the right edge to view your open apps"
631+msgid "Swipe from the right edge to view your open apps"
470msgstr ""
632msgstr ""
471
633
472#: qml/Tutorial/TutorialTop.qml:53
634#: qml/Tutorial/TutorialTop.qml:53
473−msgid "Swipe from the top right edge to open the notification bar"
635+msgid "Swipe from the top edge to access notifications and quick settings"
474−msgstr ""
475−
476−#: qml/Tutorial/TutorialTop.qml:54
477−msgid "Swipe from the top edge to open the notification bar"
478msgstr ""
636msgstr ""
479
637
480#: qml/Wizard/Page.qml:54
638#: qml/Wizard/Page.qml:54
@@ -486,15 +644,32 @@ msgstr "Nazad"
486msgid "Language"
644msgid "Language"
487msgstr ""
645msgstr ""
488
646
489−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
647+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
490#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
648#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
491#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
649#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492#: qml/Wizard/Pages/75-report-check.qml:84
650#: qml/Wizard/Pages/75-report-check.qml:84
493−#: qml/Wizard/Pages/passcode-desktop.qml:124
651+#: qml/Wizard/Pages/passcode-desktop.qml:141
494#: qml/Wizard/Pages/password-set.qml:141
652#: qml/Wizard/Pages/password-set.qml:141
495msgid "Next"
653msgid "Next"
496msgstr ""
654msgstr ""
497
655
656+#: qml/Wizard/Pages/20-keyboard.qml:30
657+msgid "Select Keyboard"
658+msgstr ""
659+
660+#: qml/Wizard/Pages/20-keyboard.qml:70
661+msgid "Keyboard language"
662+msgstr ""
663+
664+#: qml/Wizard/Pages/20-keyboard.qml:92
665+msgid "Keyboard layout"
666+msgstr ""
667+
668+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
669+#: qml/Wizard/Pages/sim.qml:101
670+msgid "Skip"
671+msgstr "Preskočite"
672+
498#: qml/Wizard/Pages/30-wifi.qml:29
673#: qml/Wizard/Pages/30-wifi.qml:29
499msgid "Connect to Wi‑Fi"
674msgid "Connect to Wi‑Fi"
500msgstr "Povezati na Wi-Fi"
675msgstr "Povezati na Wi-Fi"
@@ -511,11 +686,6 @@ msgstr ""
511msgid "No available Wi-Fi networks"
686msgid "No available Wi-Fi networks"
512msgstr ""
687msgstr ""
513
688
514−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515−#: qml/Wizard/Pages/sim.qml:101
516−msgid "Skip"
517−msgstr "Preskočite"
518−
519#: qml/Wizard/Pages/40-location.qml:27
689#: qml/Wizard/Pages/40-location.qml:27
520msgid "Location Services"
690msgid "Location Services"
521msgstr ""
691msgstr ""
@@ -599,6 +769,35 @@ msgstr ""
599msgid "Privacy policy"
769msgid "Privacy policy"
600msgstr ""
770msgstr ""
601
771
772+#: qml/Wizard/Pages/77-system-update.qml:28
773+msgid "Update Device"
774+msgstr ""
775+
776+#: qml/Wizard/Pages/77-system-update.qml:55
777+msgid ""
778+"There is a system update available and ready to install. Afterwards, the "
779+"device will automatically restart."
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:76
783+msgctxt "string identifying name of the update"
784+msgid "Ubuntu system"
785+msgstr ""
786+
787+#: qml/Wizard/Pages/77-system-update.qml:83
788+#, qt-format
789+msgctxt "version of the system update"
790+msgid "Version %1"
791+msgstr ""
792+
793+#: qml/Wizard/Pages/77-system-update.qml:102
794+msgid "This could take a few minutes..."
795+msgstr ""
796+
797+#: qml/Wizard/Pages/77-system-update.qml:116
798+msgid "Install and restart now"
799+msgstr ""
800+
602#: qml/Wizard/Pages/80-finished.qml:89
801#: qml/Wizard/Pages/80-finished.qml:89
603msgid "Welcome to Ubuntu"
802msgid "Welcome to Ubuntu"
604msgstr ""
803msgstr ""
@@ -642,7 +841,7 @@ msgid "Service Terms"
642msgstr ""
841msgstr ""
643
842
644#: qml/Wizard/Pages/passcode-confirm.qml:43
843#: qml/Wizard/Pages/passcode-confirm.qml:43
645−#: qml/Wizard/Pages/passcode-desktop.qml:80
844+#: qml/Wizard/Pages/passcode-desktop.qml:96
646msgid "Confirm passcode"
845msgid "Confirm passcode"
647msgstr "Potvrdi pristupni kod"
846msgstr "Potvrdi pristupni kod"
648
847
@@ -659,24 +858,24 @@ msgstr ""
659msgid "Lock Screen Passcode"
858msgid "Lock Screen Passcode"
660msgstr ""
859msgstr ""
661
860
662−#: qml/Wizard/Pages/passcode-desktop.qml:56
861+#: qml/Wizard/Pages/passcode-desktop.qml:60
663msgid "Enter 4 numbers to setup your passcode"
862msgid "Enter 4 numbers to setup your passcode"
664msgstr ""
863msgstr ""
665
864
666−#: qml/Wizard/Pages/passcode-desktop.qml:65
865+#: qml/Wizard/Pages/passcode-desktop.qml:76
667#: qml/Wizard/Pages/passcode-set.qml:54
866#: qml/Wizard/Pages/passcode-set.qml:54
668msgid "Choose passcode"
867msgid "Choose passcode"
669msgstr ""
868msgstr ""
670
869
671−#: qml/Wizard/Pages/passcode-desktop.qml:105
870+#: qml/Wizard/Pages/passcode-desktop.qml:126
672msgid "Passcode too short"
871msgid "Passcode too short"
673msgstr ""
872msgstr ""
674
873
675−#: qml/Wizard/Pages/passcode-desktop.qml:107
874+#: qml/Wizard/Pages/passcode-desktop.qml:128
676msgid "Passcodes match"
875msgid "Passcodes match"
677msgstr ""
876msgstr ""
678
877
679−#: qml/Wizard/Pages/passcode-desktop.qml:109
878+#: qml/Wizard/Pages/passcode-desktop.qml:130
680msgid "Passcodes do not match"
879msgid "Passcodes do not match"
681msgstr ""
880msgstr ""
682
881
@@ -725,26 +924,30 @@ msgid "To proceed with no SIM tap Skip."
725msgstr ""
924msgstr ""
726
925
727#: qml/Wizard/PasswordMeter.qml:87
926#: qml/Wizard/PasswordMeter.qml:87
728−msgid "Passwords match"
927+msgid "Password too short"
729msgstr ""
928msgstr ""
730
929
731#: qml/Wizard/PasswordMeter.qml:89
930#: qml/Wizard/PasswordMeter.qml:89
931+msgid "Passwords match"
932+msgstr ""
933+
934+#: qml/Wizard/PasswordMeter.qml:91
732msgid "Passwords do not match"
935msgid "Passwords do not match"
733msgstr ""
936msgstr ""
734
937
735−#: qml/Wizard/PasswordMeter.qml:93
938+#: qml/Wizard/PasswordMeter.qml:95
736msgid "Strong password"
939msgid "Strong password"
737msgstr ""
940msgstr ""
738
941
739−#: qml/Wizard/PasswordMeter.qml:95
942+#: qml/Wizard/PasswordMeter.qml:97
740msgid "Fair password"
943msgid "Fair password"
741msgstr ""
944msgstr ""
742
945
743−#: qml/Wizard/PasswordMeter.qml:97
946+#: qml/Wizard/PasswordMeter.qml:99
744msgid "Weak password"
947msgid "Weak password"
745msgstr ""
948msgstr ""
746
949
747−#: qml/Wizard/PasswordMeter.qml:99
950+#: qml/Wizard/PasswordMeter.qml:101
748msgid "Very weak password"
951msgid "Very weak password"
749msgstr ""
952msgstr ""
750
953
@@ -773,6 +976,9 @@ msgstr ""
773#~ msgid "See less"
976#~ msgid "See less"
774#~ msgstr "Pogledati manje"
977#~ msgstr "Pogledati manje"
775
978
979+#~ msgid "Tap to unlock"
980+#~ msgstr "Kucnite za otključavanje"
981+
776#~ msgid "Please re-enter"
982#~ msgid "Please re-enter"
777#~ msgstr "Molimo ponovo unesite"
983#~ msgstr "Molimo ponovo unesite"
778
984
po/ca.po+400−145
@@ -7,105 +7,105 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11−"PO-Revision-Date: 2015-07-04 09:48+0000\n"
11+"PO-Revision-Date: 2016-09-02 14:00+0000\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Contrasenya: "
23msgstr "Contrasenya: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Enganxa la drecera"
28msgstr "Enganxa la drecera"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr "Surt"
32msgstr "Surt"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Desenganxa la drecera"
36msgstr "Desenganxa la drecera"
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr "Dispositiu bloquejat"
40msgstr "Dispositiu bloquejat"
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr ""
44msgstr ""
45"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
45"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
46"d'intents d'introducció de la contrasenya."
46"d'intents d'introducció de la contrasenya."
47
47
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
49msgid "You have been locked out due to too many failed passcode attempts."
49msgid "You have been locked out due to too many failed passcode attempts."
50msgstr ""
50msgstr ""
51"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
51"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
52"d'intents d'introducció del codi d'accés."
52"d'intents d'introducció del codi d'accés."
53
53
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
55#, qt-format
55#, qt-format
56msgid "Please wait %1 minute and then try again…"
56msgid "Please wait %1 minute and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
58msgstr[0] "Espereu %1 minut i torneu-ho a intentar..."
58msgstr[0] "Espereu %1 minut i torneu-ho a intentar..."
59msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
59msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
60
60
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
62msgctxt "Title: Lock/Log out dialog"
62msgctxt "Title: Lock/Log out dialog"
63msgid "Log out"
63msgid "Log out"
64msgstr "Surt"
64msgstr "Surt"
65
65
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
67msgid "Are you sure you want to log out?"
67msgid "Are you sure you want to log out?"
68msgstr "Segur que voleu sortir?"
68msgstr "Segur que voleu sortir?"
69
69
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
71msgctxt "Button: Lock the system"
71msgctxt "Button: Lock the system"
72msgid "Lock"
72msgid "Lock"
73msgstr "Bloca"
73msgstr "Bloca"
74
74
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
76msgctxt "Button: Log out from the system"
76msgctxt "Button: Log out from the system"
77msgid "Log Out"
77msgid "Log Out"
78msgstr "Surt"
78msgstr "Surt"
79
79
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
83msgid "Cancel"
83msgid "Cancel"
84msgstr "Cancel·la"
84msgstr "Cancel·la"
85
85
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
87msgctxt "Title: Reboot dialog"
87msgctxt "Title: Reboot dialog"
88msgid "Reboot"
88msgid "Reboot"
89msgstr "Reinicia"
89msgstr "Reinicia"
90
90
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
92msgid "Are you sure you want to reboot?"
92msgid "Are you sure you want to reboot?"
93msgstr "Segur que voleu reiniciar?"
93msgstr "Segur que voleu reiniciar?"
94
94
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
96msgid "No"
96msgid "No"
97msgstr "No"
97msgstr "No"
98
98
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100msgid "Yes"
100msgid "Yes"
101msgstr "Sí"
101msgstr "Sí"
102
102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104msgctxt "Title: Power off/Restart dialog"
104msgctxt "Title: Power off/Restart dialog"
105msgid "Power"
105msgid "Power"
106msgstr "Energia"
106msgstr "Energia"
107
107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109msgid ""
109msgid ""
110"Are you sure you would like\n"
110"Are you sure you would like\n"
111"to power off?"
111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113"Segur que voleu\n"
113"Segur que voleu\n"
114"apagar?"
114"apagar?"
115
115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117msgctxt "Button: Power off the system"
117msgctxt "Button: Power off the system"
118msgid "Power off"
118msgid "Power off"
119msgstr "Apaga"
119msgstr "Apaga"
120
120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
123msgid "Restart"
123msgid "Restart"
124msgstr "Reinicia"
124msgstr "Reinicia"
125
125
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr "Dreceres de teclat"
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr "Unity 8"
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr "ImprPant"
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr "Llançador"
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr "Commuta entre aplicacions."
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr "Cursor dreta o esquerra"
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr "Mou el focus"
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr "Finestres"
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr ""
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr ""
285+
126−#: qml/Components/Lockscreen.qml:231
286+#: qml/Components/Lockscreen.qml:239
127msgid "Return to Call"
287msgid "Return to Call"
128msgstr "Torna a la trucada"
288msgstr "Torna a la trucada"
129
289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131msgid "Emergency Call"
291msgid "Emergency Call"
132msgstr "Trucada d'emergència"
292msgstr "Trucada d'emergència"
133
293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135msgid "OK"
295msgid "OK"
136msgstr "D'acord"
296msgstr "D'acord"
137
297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr ""
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr ""
307+
138#: qml/Components/ModeSwitchWarningDialog.qml:32
308#: qml/Components/ModeSwitchWarningDialog.qml:32
139msgid "Apps may have unsaved data:"
309msgid "Apps may have unsaved data:"
140msgstr "Pot ser que aquestes aplicacions no hagin desat les dades:"
310msgstr "Pot ser que aquestes aplicacions no hagin desat les dades:"
@@ -144,6 +314,8 @@ msgctxt ""
144"Re-dock means connect the device again to an external screen/mouse/keyboard"
314"Re-dock means connect the device again to an external screen/mouse/keyboard"
145msgid "Re-dock, save your work and close these apps to continue."
315msgid "Re-dock, save your work and close these apps to continue."
146msgstr ""
316msgstr ""
317+"Torneu a acoblar, deseu la vostra feina i tanqueu aquestes aplicacions abans "
318+"de continuar."
147
319
148#: qml/Components/ModeSwitchWarningDialog.qml:63
320#: qml/Components/ModeSwitchWarningDialog.qml:63
149msgid "Or force close now (unsaved data will be lost)."
321msgid "Or force close now (unsaved data will be lost)."
@@ -161,6 +333,10 @@ msgstr "Torna a connectar"
161msgid "Close all"
333msgid "Close all"
162msgstr "Tanca-ho tot"
334msgstr "Tanca-ho tot"
163
335
336+#: qml/Components/SharingPicker.qml:54
337+msgid "Preview Share Item"
338+msgstr "Previsualitzeu l'element a compartir"
339+
164#: qml/Dash/DashPageHeader.qml:333
340#: qml/Dash/DashPageHeader.qml:333
165msgctxt "Button: Open the Ubuntu Store"
341msgctxt "Button: Open the Ubuntu Store"
166msgid "Store"
342msgid "Store"
@@ -186,21 +362,21 @@ msgstr "Afegeix als preferits"
186
362
187#: qml/Dash/FiltersPopover.qml:60
363#: qml/Dash/FiltersPopover.qml:60
188msgid "Refine your results"
364msgid "Refine your results"
189−msgstr ""
365+msgstr "Refineu els resultats"
190
366
191#: qml/Dash/FiltersPopover.qml:69
367#: qml/Dash/FiltersPopover.qml:69
192msgid "Reset"
368msgid "Reset"
193−msgstr ""
369+msgstr "Restableix"
194
370
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
371+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196msgid "Show less"
372msgid "Show less"
197msgstr ""
373msgstr ""
198
374
199−#: qml/Dash/GenericScopeView.qml:579
375+#: qml/Dash/GenericScopeView.qml:580
200msgid "Show all"
376msgid "Show all"
201msgstr ""
377msgstr ""
202
378
203−#: qml/Dash/GenericScopeView.qml:636
379+#: qml/Dash/GenericScopeView.qml:637
204msgctxt "Label: Hint for dash search line edit"
380msgctxt "Label: Hint for dash search line edit"
205msgid "Search"
381msgid "Search"
206msgstr "Cerca"
382msgstr "Cerca"
@@ -234,10 +410,6 @@ msgstr "Puntueu-ho"
234msgid "Add a review"
410msgid "Add a review"
235msgstr "Afegiu una ressenya"
411msgstr "Afegiu una ressenya"
236
412
237−#: qml/Dash/Previews/PreviewSharing.qml:66
238−msgid "Preview Share Item"
239−msgstr ""
240−
241#: qml/Dash/PullToRefreshScopeStyle.qml:55
413#: qml/Dash/PullToRefreshScopeStyle.qml:55
242msgid "Pull to refresh…"
414msgid "Pull to refresh…"
243msgstr "Estireu per actualitzar..."
415msgstr "Estireu per actualitzar..."
@@ -254,11 +426,11 @@ msgstr "Habilita les dades d'ubicació"
254msgid "Manage"
426msgid "Manage"
255msgstr "Gestiona"
427msgstr "Gestiona"
256
428
257−#: qml/Dash/ScopesList.qml:101
429+#: qml/Dash/ScopesList.qml:102
258msgid "Home"
430msgid "Home"
259msgstr "Inici"
431msgstr "Inici"
260
432
261−#: qml/Dash/ScopesList.qml:102
433+#: qml/Dash/ScopesList.qml:103
262msgid "Also installed"
434msgid "Also installed"
263msgstr "També instal·lat"
435msgstr "També instal·lat"
264
436
@@ -267,18 +439,32 @@ msgid ""
267"Your device is now connected to an external display. Use this screen as a "
439"Your device is now connected to an external display. Use this screen as a "
268"touch pad to interact with the pointer."
440"touch pad to interact with the pointer."
269msgstr ""
441msgstr ""
442+"El vostre dispositiu està ara connectat a un monitor extern. Useu aquesta "
443+"pantalla com a ratolí tàctil per interaccionar amb el cursor."
270
444
271−#: qml/Greeter/CoverPage.qml:118
445+#: qml/Greeter/CoverPage.qml:127
272msgid "Unlock"
446msgid "Unlock"
273msgstr "Desbloca"
447msgstr "Desbloca"
274
448
449+#: qml/Greeter/Greeter.qml:539
450+msgid "Try again"
451+msgstr ""
452+
275−#: qml/Greeter/LoginList.qml:239
453+#: qml/Greeter/LoginList.qml:63
454+msgid "Passphrase"
455+msgstr ""
456+
457+#: qml/Greeter/LoginList.qml:64
458+msgid "Passcode"
459+msgstr ""
460+
461+#: qml/Greeter/LoginList.qml:259
276msgid "Retry"
462msgid "Retry"
277msgstr "Torna-ho a provar"
463msgstr "Torna-ho a provar"
278
464
279−#: qml/Greeter/LoginList.qml:240
465+#: qml/Greeter/LoginList.qml:260
280−msgid "Tap to unlock"
466+msgid "Log In"
281−msgstr "Feu un toc per desblocar"
467+msgstr ""
282
468
283#: qml/Greeter/NarrowView.qml:54
469#: qml/Greeter/NarrowView.qml:54
284msgid "Sorry, incorrect passphrase."
470msgid "Sorry, incorrect passphrase."
@@ -310,34 +496,34 @@ msgstr ""
310"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
496"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
311"personals."
497"personals."
312
498
313−#: qml/Greeter/NarrowView.qml:116
499+#: qml/Greeter/NarrowView.qml:129
314#, qt-format
500#, qt-format
315msgid "Enter %1"
501msgid "Enter %1"
316msgstr "Introduïu: %1"
502msgstr "Introduïu: %1"
317
503
318−#: qml/Greeter/NarrowView.qml:117
504+#: qml/Greeter/NarrowView.qml:130
319msgid "Enter passphrase"
505msgid "Enter passphrase"
320msgstr "Introduïu la contrasenya"
506msgstr "Introduïu la contrasenya"
321
507
322−#: qml/Greeter/NarrowView.qml:118
508+#: qml/Greeter/NarrowView.qml:131
323msgid "Enter passcode"
509msgid "Enter passcode"
324msgstr "Introduïu el codi d'accés"
510msgstr "Introduïu el codi d'accés"
325
511
326−#: qml/Greeter/NarrowView.qml:119
512+#: qml/Greeter/NarrowView.qml:135
327#, qt-format
513#, qt-format
328msgid "Sorry, incorrect %1"
514msgid "Sorry, incorrect %1"
329msgstr "Incorrecte (%1)"
515msgstr "Incorrecte (%1)"
330
516
331−#: qml/Greeter/NarrowView.qml:120
517+#: qml/Greeter/NarrowView.qml:136
332msgid "Sorry, incorrect passphrase"
518msgid "Sorry, incorrect passphrase"
333msgstr "La contrasenya no és correcta"
519msgstr "La contrasenya no és correcta"
334
520
335−#: qml/Greeter/NarrowView.qml:121
521+#: qml/Greeter/NarrowView.qml:137
336msgctxt "passphrase"
522msgctxt "passphrase"
337msgid "Please re-enter"
523msgid "Please re-enter"
338msgstr "Torneu-ho a introduir"
524msgstr "Torneu-ho a introduir"
339
525
340−#: qml/Greeter/NarrowView.qml:122
526+#: qml/Greeter/NarrowView.qml:138
341msgid "Sorry, incorrect passcode"
527msgid "Sorry, incorrect passcode"
342msgstr "El codi d'accés no és correcte"
528msgstr "El codi d'accés no és correcte"
343
529
@@ -431,33 +617,15 @@ msgstr "Retorna la trucada"
431#: qml/Stages/SideStage.qml:76
617#: qml/Stages/SideStage.qml:76
432msgid "Drag using 3 fingers any application from one window to the other"
618msgid "Drag using 3 fingers any application from one window to the other"
433msgstr ""
619msgstr ""
620+"Arrossegueu usant 3 dits qualsevol aplicació d'una finestra a una altra"
434
621
435−#: qml/Tutorial/TutorialBottom.qml:78
436−msgid "Swipe up to add a contact"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:80
440−msgid "Swipe up for favorite calculations"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialBottom.qml:82
444−msgid "Swipe up for recent calls"
445−msgstr ""
446−
447−#: qml/Tutorial/TutorialBottom.qml:84
448−msgid "Swipe up to create a message"
449−msgstr ""
450−
451−#: qml/Tutorial/TutorialBottom.qml:85
452−msgid "Swipe up to manage the app"
453−msgstr ""
454−
455−#: qml/Tutorial/TutorialLeftLong.qml:47
622+#: qml/Tutorial/TutorialLeftLong.qml:49
456msgid "Long swipe from the left edge to open the Today scope"
623msgid "Long swipe from the left edge to open the Today scope"
457msgstr ""
624msgstr ""
625+"Feu una lliscada llarga des de la vora esquerra per obrir l'àmbit Avui"
458
626
459#: qml/Tutorial/TutorialLeft.qml:47
627#: qml/Tutorial/TutorialLeft.qml:47
460−msgid "Swipe from the left edge to open the launcher"
628+msgid "Short swipe from the left edge to open the launcher"
461msgstr ""
629msgstr ""
462
630
463#: qml/Tutorial/TutorialRight.qml:55
631#: qml/Tutorial/TutorialRight.qml:55
@@ -465,15 +633,11 @@ msgid "Push your mouse against the right edge to view your open apps"
465msgstr ""
633msgstr ""
466
634
467#: qml/Tutorial/TutorialRight.qml:56
635#: qml/Tutorial/TutorialRight.qml:56
468−msgid "Short or long swipe from the right edge to view your open apps"
636+msgid "Swipe from the right edge to view your open apps"
469msgstr ""
637msgstr ""
470
638
471#: qml/Tutorial/TutorialTop.qml:53
639#: qml/Tutorial/TutorialTop.qml:53
472−msgid "Swipe from the top right edge to open the notification bar"
640+msgid "Swipe from the top edge to access notifications and quick settings"
473−msgstr ""
474−
475−#: qml/Tutorial/TutorialTop.qml:54
476−msgid "Swipe from the top edge to open the notification bar"
477msgstr ""
641msgstr ""
478
642
479#: qml/Wizard/Page.qml:54
643#: qml/Wizard/Page.qml:54
@@ -483,132 +647,176 @@ msgstr "Enrere"
483
647
484#: qml/Wizard/Pages/10-welcome.qml:27
648#: qml/Wizard/Pages/10-welcome.qml:27
485msgid "Language"
649msgid "Language"
486−msgstr ""
650+msgstr "Llengua"
487
651
488−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
652+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
489#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
653#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
490#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
654#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
491#: qml/Wizard/Pages/75-report-check.qml:84
655#: qml/Wizard/Pages/75-report-check.qml:84
492−#: qml/Wizard/Pages/passcode-desktop.qml:124
656+#: qml/Wizard/Pages/passcode-desktop.qml:141
493#: qml/Wizard/Pages/password-set.qml:141
657#: qml/Wizard/Pages/password-set.qml:141
494msgid "Next"
658msgid "Next"
659+msgstr "Següent"
660+
661+#: qml/Wizard/Pages/20-keyboard.qml:30
662+msgid "Select Keyboard"
663+msgstr ""
664+
665+#: qml/Wizard/Pages/20-keyboard.qml:70
666+msgid "Keyboard language"
667+msgstr ""
668+
669+#: qml/Wizard/Pages/20-keyboard.qml:92
670+msgid "Keyboard layout"
495msgstr ""
671msgstr ""
496
672
673+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
674+#: qml/Wizard/Pages/sim.qml:101
675+msgid "Skip"
676+msgstr "Omet"
677+
497#: qml/Wizard/Pages/30-wifi.qml:29
678#: qml/Wizard/Pages/30-wifi.qml:29
498msgid "Connect to Wi‑Fi"
679msgid "Connect to Wi‑Fi"
499msgstr "Connecta't a la Wi-Fi"
680msgstr "Connecta't a la Wi-Fi"
500
681
501#: qml/Wizard/Pages/30-wifi.qml:130
682#: qml/Wizard/Pages/30-wifi.qml:130
502msgid "Connected"
683msgid "Connected"
503−msgstr ""
684+msgstr "Connectat"
504
685
505#: qml/Wizard/Pages/30-wifi.qml:163
686#: qml/Wizard/Pages/30-wifi.qml:163
506msgid "Available Wi-Fi networks"
687msgid "Available Wi-Fi networks"
507−msgstr ""
688+msgstr "Xarxes Wi-Fi disponibles"
508
689
509#: qml/Wizard/Pages/30-wifi.qml:164
690#: qml/Wizard/Pages/30-wifi.qml:164
510msgid "No available Wi-Fi networks"
691msgid "No available Wi-Fi networks"
511−msgstr ""
692+msgstr "No hi ha xarxes Wi-Fi disponibles"
512−
513−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
514−#: qml/Wizard/Pages/sim.qml:101
515−msgid "Skip"
516−msgstr "Omet"
517
693
518#: qml/Wizard/Pages/40-location.qml:27
694#: qml/Wizard/Pages/40-location.qml:27
519msgid "Location Services"
695msgid "Location Services"
520−msgstr ""
696+msgstr "Serveis d'ubicació"
521
697
522#: qml/Wizard/Pages/40-location.qml:83
698#: qml/Wizard/Pages/40-location.qml:83
523msgid ""
699msgid ""
524"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
700"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
525"(recommended)"
701"(recommended)"
526msgstr ""
702msgstr ""
703+"Usa anònimament el GPS, punts d'accés Wi-Fi i la xarxa mòbil per detectar la "
704+"ubicació (recomanat)"
527
705
528#: qml/Wizard/Pages/40-location.qml:105
706#: qml/Wizard/Pages/40-location.qml:105
529#, qt-format
707#, qt-format
530msgid "By selecting this option you agree to the Nokia HERE %1."
708msgid "By selecting this option you agree to the Nokia HERE %1."
531−msgstr ""
709+msgstr "Seleccionant aquesta opció esteu d'acord amb el Nokia HERE %1."
532
710
533#: qml/Wizard/Pages/40-location.qml:106
711#: qml/Wizard/Pages/40-location.qml:106
534msgctxt "part of: Nokia HERE terms and conditions"
712msgctxt "part of: Nokia HERE terms and conditions"
535msgid "terms and conditions"
713msgid "terms and conditions"
536−msgstr ""
714+msgstr "termes i condicions"
537
715
538#: qml/Wizard/Pages/40-location.qml:160
716#: qml/Wizard/Pages/40-location.qml:160
539msgid "GPS only"
717msgid "GPS only"
540−msgstr ""
718+msgstr "Sols GPS"
541
719
542#: qml/Wizard/Pages/40-location.qml:214
720#: qml/Wizard/Pages/40-location.qml:214
543msgid "Don't use my location"
721msgid "Don't use my location"
544−msgstr ""
722+msgstr "No usis la meva ubicació"
545
723
546#: qml/Wizard/Pages/40-location.qml:260
724#: qml/Wizard/Pages/40-location.qml:260
547msgid "You can change it later in System Settings."
725msgid "You can change it later in System Settings."
548−msgstr ""
726+msgstr "Podeu canviar-ho més tard a Paràmetres del sistema."
549
727
550#: qml/Wizard/Pages/50-timezone.qml:29
728#: qml/Wizard/Pages/50-timezone.qml:29
551msgid "Time Zone"
729msgid "Time Zone"
552−msgstr ""
730+msgstr "Fus horari"
553
731
554#: qml/Wizard/Pages/50-timezone.qml:181
732#: qml/Wizard/Pages/50-timezone.qml:181
555msgid "Enter your city"
733msgid "Enter your city"
556−msgstr ""
734+msgstr "Entreu la vostra ciutat"
557
735
558#: qml/Wizard/Pages/60-account.qml:24
736#: qml/Wizard/Pages/60-account.qml:24
559msgid "Personalize Your Device"
737msgid "Personalize Your Device"
560−msgstr ""
738+msgstr "Personalitzeu el vostre dispositiu"
561
739
562#: qml/Wizard/Pages/60-account.qml:48
740#: qml/Wizard/Pages/60-account.qml:48
563msgid "Preferred Name"
741msgid "Preferred Name"
564−msgstr ""
742+msgstr "Nom preferit"
565
743
566#: qml/Wizard/Pages/70-passwd-type.qml:39
744#: qml/Wizard/Pages/70-passwd-type.qml:39
567msgid "Lock Screen"
745msgid "Lock Screen"
568−msgstr ""
746+msgstr "Bloca la pantalla"
569
747
570#: qml/Wizard/Pages/70-passwd-type.qml:101
748#: qml/Wizard/Pages/70-passwd-type.qml:101
571msgctxt "Label: Type of security method"
749msgctxt "Label: Type of security method"
572msgid "Create new password"
750msgid "Create new password"
573−msgstr ""
751+msgstr "Crea una contrasenya nova"
574
752
575#: qml/Wizard/Pages/70-passwd-type.qml:103
753#: qml/Wizard/Pages/70-passwd-type.qml:103
576msgctxt "Label: Type of security method"
754msgctxt "Label: Type of security method"
577msgid "Create passcode (numbers only)"
755msgid "Create passcode (numbers only)"
578−msgstr ""
756+msgstr "Creeu un codi d'accés (sols números)"
579
757
580#: qml/Wizard/Pages/70-passwd-type.qml:105
758#: qml/Wizard/Pages/70-passwd-type.qml:105
581msgctxt "Label: Type of security method"
759msgctxt "Label: Type of security method"
582msgid "No lock code"
760msgid "No lock code"
583−msgstr ""
761+msgstr "No hi ha codi de bloqueig"
584
762
585#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
763#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
586msgid "Privacy Policy"
764msgid "Privacy Policy"
587−msgstr ""
765+msgstr "Política de privacitat"
588
766
589#: qml/Wizard/Pages/75-report-check.qml:26
767#: qml/Wizard/Pages/75-report-check.qml:26
590msgid "Help Us Improve"
768msgid "Help Us Improve"
591−msgstr ""
769+msgstr "Ajudeu-nos a millorar"
592
770
593#: qml/Wizard/Pages/75-report-check.qml:59
771#: qml/Wizard/Pages/75-report-check.qml:59
594msgid "Improve system performance by sending us crashes and error reports."
772msgid "Improve system performance by sending us crashes and error reports."
595msgstr ""
773msgstr ""
774+"Milloreu el rendiment del sistema enviant-nos informes de fallades i errors."
596
775
597#: qml/Wizard/Pages/75-report-check.qml:60
776#: qml/Wizard/Pages/75-report-check.qml:60
598msgid "Privacy policy"
777msgid "Privacy policy"
778+msgstr "Política de privacitat"
779+
780+#: qml/Wizard/Pages/77-system-update.qml:28
781+msgid "Update Device"
782+msgstr ""
783+
784+#: qml/Wizard/Pages/77-system-update.qml:55
785+msgid ""
786+"There is a system update available and ready to install. Afterwards, the "
787+"device will automatically restart."
788+msgstr ""
789+
790+#: qml/Wizard/Pages/77-system-update.qml:76
791+msgctxt "string identifying name of the update"
792+msgid "Ubuntu system"
793+msgstr ""
794+
795+#: qml/Wizard/Pages/77-system-update.qml:83
796+#, qt-format
797+msgctxt "version of the system update"
798+msgid "Version %1"
799+msgstr ""
800+
801+#: qml/Wizard/Pages/77-system-update.qml:102
802+msgid "This could take a few minutes..."
803+msgstr ""
804+
805+#: qml/Wizard/Pages/77-system-update.qml:116
806+msgid "Install and restart now"
599msgstr ""
807msgstr ""
600
808
601#: qml/Wizard/Pages/80-finished.qml:89
809#: qml/Wizard/Pages/80-finished.qml:89
602msgid "Welcome to Ubuntu"
810msgid "Welcome to Ubuntu"
603−msgstr ""
811+msgstr "Us donem la benvinguda a l'Ubuntu"
604
812
605#: qml/Wizard/Pages/80-finished.qml:104
813#: qml/Wizard/Pages/80-finished.qml:104
606msgid "You are ready to use your device now"
814msgid "You are ready to use your device now"
607−msgstr ""
815+msgstr "Ara ja esteu a punt per usar el vostre dispositiu"
608
816
609#: qml/Wizard/Pages/80-finished.qml:124
817#: qml/Wizard/Pages/80-finished.qml:124
610msgid "Get Started"
818msgid "Get Started"
611−msgstr ""
819+msgstr "Introducció"
612
820
613#: qml/Wizard/Pages/here-terms.qml:25
821#: qml/Wizard/Pages/here-terms.qml:25
614msgid "Terms & Conditions"
822msgid "Terms & Conditions"
@@ -617,6 +825,7 @@ msgstr "Condicions generals"
617#: qml/Wizard/Pages/here-terms.qml:69
825#: qml/Wizard/Pages/here-terms.qml:69
618msgid "Your device uses positioning technologies provided by HERE."
826msgid "Your device uses positioning technologies provided by HERE."
619msgstr ""
827msgstr ""
828+"El vostre dispositiu usa tecnologies de posicionament proveïdes per HERE."
620
829
621#: qml/Wizard/Pages/here-terms.qml:81
830#: qml/Wizard/Pages/here-terms.qml:81
622msgid ""
831msgid ""
@@ -624,92 +833,98 @@ msgid ""
624"collects information about nearby cell towers and Wi-Fi hotspots around your "
833"collects information about nearby cell towers and Wi-Fi hotspots around your "
625"current location whenever your position is being found."
834"current location whenever your position is being found."
626msgstr ""
835msgstr ""
836+"Per proveir-vos de serveis de posicionament i per millorar la seva qualitat, "
837+"HERE recull informació sobre torres de telefonia mòbil i punts d'accés Wi-Fi "
838+"al voltant de la vostra ubicació actual sempre que s'està buscant la vostra "
839+"posició."
627
840
628#: qml/Wizard/Pages/here-terms.qml:93
841#: qml/Wizard/Pages/here-terms.qml:93
629msgid ""
842msgid ""
630"The information collected is used to analyze the service and to improve the "
843"The information collected is used to analyze the service and to improve the "
631"use of service, but not to identify you personally."
844"use of service, but not to identify you personally."
632msgstr ""
845msgstr ""
846+"La informació recollida s'usa per analitzar el servei i per millorar l'ús "
847+"del servei, però no per identificar-vos personalment."
633
848
634#: qml/Wizard/Pages/here-terms.qml:106
849#: qml/Wizard/Pages/here-terms.qml:106
635#, qt-format
850#, qt-format
636msgid "By continuing, you agree to the HERE platform %1 and %2."
851msgid "By continuing, you agree to the HERE platform %1 and %2."
637−msgstr ""
852+msgstr "En continuar, esteu d'acord amb la plataforma HERE %1 i %2."
638
853
639#: qml/Wizard/Pages/here-terms.qml:107
854#: qml/Wizard/Pages/here-terms.qml:107
640msgid "Service Terms"
855msgid "Service Terms"
641−msgstr ""
856+msgstr "Termes del servei"
642
857
643#: qml/Wizard/Pages/passcode-confirm.qml:43
858#: qml/Wizard/Pages/passcode-confirm.qml:43
644−#: qml/Wizard/Pages/passcode-desktop.qml:80
859+#: qml/Wizard/Pages/passcode-desktop.qml:96
645msgid "Confirm passcode"
860msgid "Confirm passcode"
646msgstr "Confirmeu el codi d'accés"
861msgstr "Confirmeu el codi d'accés"
647
862
648#: qml/Wizard/Pages/passcode-confirm.qml:45
863#: qml/Wizard/Pages/passcode-confirm.qml:45
649msgid "Incorrect passcode."
864msgid "Incorrect passcode."
650−msgstr ""
865+msgstr "Codi d'accés incorrecte."
651
866
652#: qml/Wizard/Pages/passcode-confirm.qml:45
867#: qml/Wizard/Pages/passcode-confirm.qml:45
653msgctxt "Enter the passcode again"
868msgctxt "Enter the passcode again"
654msgid "Please re-enter."
869msgid "Please re-enter."
655−msgstr ""
870+msgstr "Si us plau torneu a introduir-lo."
656
871
657#: qml/Wizard/Pages/passcode-desktop.qml:30
872#: qml/Wizard/Pages/passcode-desktop.qml:30
658msgid "Lock Screen Passcode"
873msgid "Lock Screen Passcode"
659−msgstr ""
874+msgstr "Codi d'accés al bloqueig de pantalla"
660
875
661−#: qml/Wizard/Pages/passcode-desktop.qml:56
876+#: qml/Wizard/Pages/passcode-desktop.qml:60
662msgid "Enter 4 numbers to setup your passcode"
877msgid "Enter 4 numbers to setup your passcode"
663−msgstr ""
878+msgstr "Entreu 4 números per establir el codi d'accés"
664
879
665−#: qml/Wizard/Pages/passcode-desktop.qml:65
880+#: qml/Wizard/Pages/passcode-desktop.qml:76
666#: qml/Wizard/Pages/passcode-set.qml:54
881#: qml/Wizard/Pages/passcode-set.qml:54
667msgid "Choose passcode"
882msgid "Choose passcode"
668−msgstr ""
883+msgstr "Trieu el codi d'accés"
669
884
670−#: qml/Wizard/Pages/passcode-desktop.qml:105
885+#: qml/Wizard/Pages/passcode-desktop.qml:126
671msgid "Passcode too short"
886msgid "Passcode too short"
672−msgstr ""
887+msgstr "El codi d'accés és massa curt"
673
888
674−#: qml/Wizard/Pages/passcode-desktop.qml:107
889+#: qml/Wizard/Pages/passcode-desktop.qml:128
675msgid "Passcodes match"
890msgid "Passcodes match"
676−msgstr ""
891+msgstr "Els codis d'accés concorden"
677
892
678−#: qml/Wizard/Pages/passcode-desktop.qml:109
893+#: qml/Wizard/Pages/passcode-desktop.qml:130
679msgid "Passcodes do not match"
894msgid "Passcodes do not match"
680−msgstr ""
895+msgstr "Els codis d'accés no concorden"
681
896
682#: qml/Wizard/Pages/passcode-set.qml:62
897#: qml/Wizard/Pages/passcode-set.qml:62
683msgid "Passcode must be 4 characters long"
898msgid "Passcode must be 4 characters long"
684−msgstr ""
899+msgstr "El codi d'accés ha de tenir una longitud de 4 caràcters"
685
900
686#: qml/Wizard/Pages/password-set.qml:30
901#: qml/Wizard/Pages/password-set.qml:30
687msgid "Lock Screen Password"
902msgid "Lock Screen Password"
688−msgstr ""
903+msgstr "Contrasenya de bloqueig de pantalla"
689
904
690#: qml/Wizard/Pages/password-set.qml:61
905#: qml/Wizard/Pages/password-set.qml:61
691msgid "Enter at least 8 characters"
906msgid "Enter at least 8 characters"
692−msgstr ""
907+msgstr "Entreu almenys 8 caràcters"
693
908
694#: qml/Wizard/Pages/password-set.qml:73
909#: qml/Wizard/Pages/password-set.qml:73
695msgid "Choose password"
910msgid "Choose password"
696−msgstr ""
911+msgstr "Escolliu la contrasenya"
697
912
698#: qml/Wizard/Pages/password-set.qml:103
913#: qml/Wizard/Pages/password-set.qml:103
699msgid "Confirm password"
914msgid "Confirm password"
700−msgstr ""
915+msgstr "Confirmeu la contrasenya"
701
916
702#: qml/Wizard/Pages/sim.qml:27
917#: qml/Wizard/Pages/sim.qml:27
703msgid "No SIM card installed"
918msgid "No SIM card installed"
704−msgstr ""
919+msgstr "No hi cap SIM instal·lada"
705
920
706#: qml/Wizard/Pages/sim.qml:54
921#: qml/Wizard/Pages/sim.qml:54
707msgid "SIM card added"
922msgid "SIM card added"
708−msgstr ""
923+msgstr "S'ha afegit una targeta SIM"
709
924
710#: qml/Wizard/Pages/sim.qml:55
925#: qml/Wizard/Pages/sim.qml:55
711msgid "You must restart the device to access the mobile network."
926msgid "You must restart the device to access the mobile network."
712−msgstr ""
927+msgstr "Heu de reiniciar el dispositiu per accedir a la xarxa mòbil."
713
928
714#: qml/Wizard/Pages/sim.qml:59
929#: qml/Wizard/Pages/sim.qml:59
715msgid "Restart"
930msgid "Restart"
@@ -717,35 +932,39 @@ msgstr "Reinicia"
717
932
718#: qml/Wizard/Pages/sim.qml:78
933#: qml/Wizard/Pages/sim.qml:78
719msgid "You won’t be able to make calls or use text messaging without a SIM."
934msgid "You won’t be able to make calls or use text messaging without a SIM."
720−msgstr ""
935+msgstr "No podreu fer trucades o usar la missatgeria de text sense una SIM."
721
936
722#: qml/Wizard/Pages/sim.qml:90
937#: qml/Wizard/Pages/sim.qml:90
723msgid "To proceed with no SIM tap Skip."
938msgid "To proceed with no SIM tap Skip."
724−msgstr ""
939+msgstr "Per procedir sense cap SIM toqueu Omet."
725
940
726#: qml/Wizard/PasswordMeter.qml:87
941#: qml/Wizard/PasswordMeter.qml:87
727−msgid "Passwords match"
942+msgid "Password too short"
728msgstr ""
943msgstr ""
729
944
730#: qml/Wizard/PasswordMeter.qml:89
945#: qml/Wizard/PasswordMeter.qml:89
946+msgid "Passwords match"
947+msgstr "Les contrasenyes coincideixen"
948+
949+#: qml/Wizard/PasswordMeter.qml:91
731msgid "Passwords do not match"
950msgid "Passwords do not match"
732−msgstr ""
951+msgstr "Les contrasenyes no coincideixen"
733
952
734−#: qml/Wizard/PasswordMeter.qml:93
953+#: qml/Wizard/PasswordMeter.qml:95
735msgid "Strong password"
954msgid "Strong password"
736−msgstr ""
955+msgstr "La contrasenya és forta"
737
956
738−#: qml/Wizard/PasswordMeter.qml:95
957+#: qml/Wizard/PasswordMeter.qml:97
739msgid "Fair password"
958msgid "Fair password"
740−msgstr ""
959+msgstr "La contrasenya és acceptable"
741
960
742−#: qml/Wizard/PasswordMeter.qml:97
961+#: qml/Wizard/PasswordMeter.qml:99
743msgid "Weak password"
962msgid "Weak password"
744−msgstr ""
963+msgstr "La contrasenya és dèbil"
745
964
746−#: qml/Wizard/PasswordMeter.qml:99
965+#: qml/Wizard/PasswordMeter.qml:101
747msgid "Very weak password"
966msgid "Very weak password"
748−msgstr ""
967+msgstr "La contrasenya és molt dèbil"
749
968
750#~ msgid "Confirm"
969#~ msgid "Confirm"
751#~ msgstr "Confirma"
970#~ msgstr "Confirma"
@@ -978,6 +1197,9 @@ msgstr ""
978#~ msgid "Open special menus"
1197#~ msgid "Open special menus"
979#~ msgstr "Obre els menús especials"
1198#~ msgstr "Obre els menús especials"
980
1199
1200+#~ msgid "Tap to unlock"
1201+#~ msgstr "Feu un toc per desblocar"
1202+
981#~ msgid "To view open apps"
1203#~ msgid "To view open apps"
982#~ msgstr "Per veure les aplicacions obertes"
1204#~ msgstr "Per veure les aplicacions obertes"
983
1205
@@ -1073,3 +1295,36 @@ msgstr ""
1073
1295
1074#~ msgid "Call back"
1296#~ msgid "Call back"
1075#~ msgstr "Retorna la trucada"
1297#~ msgstr "Retorna la trucada"
1298+
1299+#~ msgid "Swipe up for recent calls"
1300+#~ msgstr "Llisqueu cap amunt per a trucades recents"
1301+
1302+#~ msgid "Swipe up for favorite calculations"
1303+#~ msgstr "Llisqueu cap amunt per als càlculs favorits"
1304+
1305+#~ msgid "Swipe up to create a message"
1306+#~ msgstr "Llisqueu cap amunt per crear un missatge"
1307+
1308+#~ msgid "Swipe from the left edge to open the launcher"
1309+#~ msgstr "Llisqueu des de la vora esquerra per obrir el llançador"
1310+
1311+#~ msgid "Swipe from the top right edge to open the notification bar"
1312+#~ msgstr ""
1313+#~ "Llisqueu des de la vora superior dreta per obrir la barra de notificacions"
1314+
1315+#~ msgid "Swipe from the top edge to open the notification bar"
1316+#~ msgstr "Llisqueu des de la vora superior per obrir la barra de notificacions"
1317+
1318+#~ msgid "Hover your mouse on the right edge to view your open apps"
1319+#~ msgstr "Passeu el ratolí a la vora dreta per veure les aplicacions obertes"
1320+
1321+#~ msgid "Short or long swipe from the right edge to view your open apps"
1322+#~ msgstr ""
1323+#~ "Feu una lliscada llarga o curta des de la vora dreta per veure les "
1324+#~ "aplicacions obertes"
1325+
1326+#~ msgid "Swipe up to manage the app"
1327+#~ msgstr "Llisqueu cap amunt per gestionar l'aplicació"
1328+
1329+#~ msgid "Swipe up to add a contact"
1330+#~ msgstr "Llisqueu per afegir un contacte"
po/ca@valencia.po+296−93
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2015-02-22 15:22+0000\n"
11"PO-Revision-Date: 2015-02-22 15:22+0000\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
@@ -15,97 +15,97 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:21+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:56+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Contrasenya: "
23msgstr "Contrasenya: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Apega la drecera"
28msgstr "Apega la drecera"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Desenganxa la drecera"
36msgstr "Desenganxa la drecera"
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr "Dispositiu bloquejat"
40msgstr "Dispositiu bloquejat"
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr ""
44msgstr ""
45"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
45"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
46"d'intents d'introducció de la contrasenya."
46"d'intents d'introducció de la contrasenya."
47
47
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
49msgid "You have been locked out due to too many failed passcode attempts."
49msgid "You have been locked out due to too many failed passcode attempts."
50msgstr ""
50msgstr ""
51"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
51"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
52"d'intents d'introducció del codi d'accés."
52"d'intents d'introducció del codi d'accés."
53
53
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
55#, qt-format
55#, qt-format
56msgid "Please wait %1 minute and then try again…"
56msgid "Please wait %1 minute and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
58msgstr[0] "Espereu %1 minut i torneu-ho a intentar..."
58msgstr[0] "Espereu %1 minut i torneu-ho a intentar..."
59msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
59msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
60
60
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
62msgctxt "Title: Lock/Log out dialog"
62msgctxt "Title: Lock/Log out dialog"
63msgid "Log out"
63msgid "Log out"
64msgstr ""
64msgstr ""
65
65
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
67msgid "Are you sure you want to log out?"
67msgid "Are you sure you want to log out?"
68msgstr "Segur que voleu eixir?"
68msgstr "Segur que voleu eixir?"
69
69
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
71msgctxt "Button: Lock the system"
71msgctxt "Button: Lock the system"
72msgid "Lock"
72msgid "Lock"
73msgstr ""
73msgstr ""
74
74
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
76msgctxt "Button: Log out from the system"
76msgctxt "Button: Log out from the system"
77msgid "Log Out"
77msgid "Log Out"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
83msgid "Cancel"
83msgid "Cancel"
84msgstr "Cancel·la"
84msgstr "Cancel·la"
85
85
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
87msgctxt "Title: Reboot dialog"
87msgctxt "Title: Reboot dialog"
88msgid "Reboot"
88msgid "Reboot"
89msgstr ""
89msgstr ""
90
90
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
92msgid "Are you sure you want to reboot?"
92msgid "Are you sure you want to reboot?"
93msgstr "Segur que voleu reiniciar?"
93msgstr "Segur que voleu reiniciar?"
94
94
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
96msgid "No"
96msgid "No"
97msgstr "No"
97msgstr "No"
98
98
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100msgid "Yes"
100msgid "Yes"
101msgstr "Sí"
101msgstr "Sí"
102
102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104msgctxt "Title: Power off/Restart dialog"
104msgctxt "Title: Power off/Restart dialog"
105msgid "Power"
105msgid "Power"
106msgstr ""
106msgstr ""
107
107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109msgid ""
109msgid ""
110"Are you sure you would like\n"
110"Are you sure you would like\n"
111"to power off?"
111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113"Segur que voleu\n"
113"Segur que voleu\n"
114"apagar?"
114"apagar?"
115
115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117msgctxt "Button: Power off the system"
117msgctxt "Button: Power off the system"
118msgid "Power off"
118msgid "Power off"
119msgstr ""
119msgstr ""
120
120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
123msgid "Restart"
123msgid "Restart"
124msgstr ""
124msgstr ""
125
125
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr ""
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr ""
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr ""
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr ""
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr ""
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr ""
285+
126−#: qml/Components/Lockscreen.qml:231
286+#: qml/Components/Lockscreen.qml:239
127msgid "Return to Call"
287msgid "Return to Call"
128msgstr "Torna a la cridada"
288msgstr "Torna a la cridada"
129
289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131msgid "Emergency Call"
291msgid "Emergency Call"
132msgstr "Cridada d'emergència"
292msgstr "Cridada d'emergència"
133
293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135msgid "OK"
295msgid "OK"
136msgstr "D'acord"
296msgstr "D'acord"
137
297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr ""
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr ""
307+
138#: qml/Components/ModeSwitchWarningDialog.qml:32
308#: qml/Components/ModeSwitchWarningDialog.qml:32
139msgid "Apps may have unsaved data:"
309msgid "Apps may have unsaved data:"
140msgstr ""
310msgstr ""
@@ -161,6 +331,10 @@ msgstr ""
161msgid "Close all"
331msgid "Close all"
162msgstr ""
332msgstr ""
163
333
334+#: qml/Components/SharingPicker.qml:54
335+msgid "Preview Share Item"
336+msgstr ""
337+
164#: qml/Dash/DashPageHeader.qml:333
338#: qml/Dash/DashPageHeader.qml:333
165msgctxt "Button: Open the Ubuntu Store"
339msgctxt "Button: Open the Ubuntu Store"
166msgid "Store"
340msgid "Store"
@@ -192,15 +366,15 @@ msgstr ""
192msgid "Reset"
366msgid "Reset"
193msgstr ""
367msgstr ""
194
368
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
369+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196msgid "Show less"
370msgid "Show less"
197msgstr ""
371msgstr ""
198
372
199−#: qml/Dash/GenericScopeView.qml:579
373+#: qml/Dash/GenericScopeView.qml:580
200msgid "Show all"
374msgid "Show all"
201msgstr ""
375msgstr ""
202
376
203−#: qml/Dash/GenericScopeView.qml:636
377+#: qml/Dash/GenericScopeView.qml:637
204msgctxt "Label: Hint for dash search line edit"
378msgctxt "Label: Hint for dash search line edit"
205msgid "Search"
379msgid "Search"
206msgstr ""
380msgstr ""
@@ -234,10 +408,6 @@ msgstr "Puntueu-ho"
234msgid "Add a review"
408msgid "Add a review"
235msgstr "Afegiu una ressenya"
409msgstr "Afegiu una ressenya"
236
410
237−#: qml/Dash/Previews/PreviewSharing.qml:66
238−msgid "Preview Share Item"
239−msgstr ""
240−
241#: qml/Dash/PullToRefreshScopeStyle.qml:55
411#: qml/Dash/PullToRefreshScopeStyle.qml:55
242msgid "Pull to refresh…"
412msgid "Pull to refresh…"
243msgstr "Estireu per actualitzar..."
413msgstr "Estireu per actualitzar..."
@@ -254,11 +424,11 @@ msgstr "Habilita les dades d'ubicació"
254msgid "Manage"
424msgid "Manage"
255msgstr "Gestiona"
425msgstr "Gestiona"
256
426
257−#: qml/Dash/ScopesList.qml:101
427+#: qml/Dash/ScopesList.qml:102
258msgid "Home"
428msgid "Home"
259msgstr "Inici"
429msgstr "Inici"
260
430
261−#: qml/Dash/ScopesList.qml:102
431+#: qml/Dash/ScopesList.qml:103
262msgid "Also installed"
432msgid "Also installed"
263msgstr "També instal·lat"
433msgstr "També instal·lat"
264
434
@@ -268,16 +438,28 @@ msgid ""
268"touch pad to interact with the pointer."
438"touch pad to interact with the pointer."
269msgstr ""
439msgstr ""
270
440
271−#: qml/Greeter/CoverPage.qml:118
441+#: qml/Greeter/CoverPage.qml:127
272msgid "Unlock"
442msgid "Unlock"
273msgstr "Desbloca"
443msgstr "Desbloca"
274
444
445+#: qml/Greeter/Greeter.qml:539
446+msgid "Try again"
447+msgstr ""
448+
275−#: qml/Greeter/LoginList.qml:239
449+#: qml/Greeter/LoginList.qml:63
450+msgid "Passphrase"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:64
454+msgid "Passcode"
455+msgstr ""
456+
457+#: qml/Greeter/LoginList.qml:259
276msgid "Retry"
458msgid "Retry"
277msgstr ""
459msgstr ""
278
460
279−#: qml/Greeter/LoginList.qml:240
461+#: qml/Greeter/LoginList.qml:260
280−msgid "Tap to unlock"
462+msgid "Log In"
281msgstr ""
463msgstr ""
282
464
283#: qml/Greeter/NarrowView.qml:54
465#: qml/Greeter/NarrowView.qml:54
@@ -310,34 +492,34 @@ msgstr ""
310"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
492"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
311"personals."
493"personals."
312
494
313−#: qml/Greeter/NarrowView.qml:116
495+#: qml/Greeter/NarrowView.qml:129
314#, qt-format
496#, qt-format
315msgid "Enter %1"
497msgid "Enter %1"
316msgstr "Introduïu: %1"
498msgstr "Introduïu: %1"
317
499
318−#: qml/Greeter/NarrowView.qml:117
500+#: qml/Greeter/NarrowView.qml:130
319msgid "Enter passphrase"
501msgid "Enter passphrase"
320msgstr "Introduïu la contrasenya"
502msgstr "Introduïu la contrasenya"
321
503
322−#: qml/Greeter/NarrowView.qml:118
504+#: qml/Greeter/NarrowView.qml:131
323msgid "Enter passcode"
505msgid "Enter passcode"
324msgstr "Introduïu el codi d'accés"
506msgstr "Introduïu el codi d'accés"
325
507
326−#: qml/Greeter/NarrowView.qml:119
508+#: qml/Greeter/NarrowView.qml:135
327#, qt-format
509#, qt-format
328msgid "Sorry, incorrect %1"
510msgid "Sorry, incorrect %1"
329msgstr "Incorrecte (%1)"
511msgstr "Incorrecte (%1)"
330
512
331−#: qml/Greeter/NarrowView.qml:120
513+#: qml/Greeter/NarrowView.qml:136
332msgid "Sorry, incorrect passphrase"
514msgid "Sorry, incorrect passphrase"
333msgstr "La contrasenya no és correcta"
515msgstr "La contrasenya no és correcta"
334
516
335−#: qml/Greeter/NarrowView.qml:121
517+#: qml/Greeter/NarrowView.qml:137
336msgctxt "passphrase"
518msgctxt "passphrase"
337msgid "Please re-enter"
519msgid "Please re-enter"
338msgstr ""
520msgstr ""
339
521
340−#: qml/Greeter/NarrowView.qml:122
522+#: qml/Greeter/NarrowView.qml:138
341msgid "Sorry, incorrect passcode"
523msgid "Sorry, incorrect passcode"
342msgstr "El codi d'accés no és correcte"
524msgstr "El codi d'accés no és correcte"
343
525
@@ -432,32 +614,12 @@ msgstr ""
432msgid "Drag using 3 fingers any application from one window to the other"
614msgid "Drag using 3 fingers any application from one window to the other"
433msgstr ""
615msgstr ""
434
616
435−#: qml/Tutorial/TutorialBottom.qml:78
436−msgid "Swipe up to add a contact"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:80
440−msgid "Swipe up for favorite calculations"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialBottom.qml:82
444−msgid "Swipe up for recent calls"
445−msgstr ""
446−
447−#: qml/Tutorial/TutorialBottom.qml:84
448−msgid "Swipe up to create a message"
449−msgstr ""
450−
451−#: qml/Tutorial/TutorialBottom.qml:85
452−msgid "Swipe up to manage the app"
453−msgstr ""
454−
455−#: qml/Tutorial/TutorialLeftLong.qml:47
617+#: qml/Tutorial/TutorialLeftLong.qml:49
456msgid "Long swipe from the left edge to open the Today scope"
618msgid "Long swipe from the left edge to open the Today scope"
457msgstr ""
619msgstr ""
458
620
459#: qml/Tutorial/TutorialLeft.qml:47
621#: qml/Tutorial/TutorialLeft.qml:47
460−msgid "Swipe from the left edge to open the launcher"
622+msgid "Short swipe from the left edge to open the launcher"
461msgstr ""
623msgstr ""
462
624
463#: qml/Tutorial/TutorialRight.qml:55
625#: qml/Tutorial/TutorialRight.qml:55
@@ -465,15 +627,11 @@ msgid "Push your mouse against the right edge to view your open apps"
465msgstr ""
627msgstr ""
466
628
467#: qml/Tutorial/TutorialRight.qml:56
629#: qml/Tutorial/TutorialRight.qml:56
468−msgid "Short or long swipe from the right edge to view your open apps"
630+msgid "Swipe from the right edge to view your open apps"
469msgstr ""
631msgstr ""
470
632
471#: qml/Tutorial/TutorialTop.qml:53
633#: qml/Tutorial/TutorialTop.qml:53
472−msgid "Swipe from the top right edge to open the notification bar"
634+msgid "Swipe from the top edge to access notifications and quick settings"
473−msgstr ""
474−
475−#: qml/Tutorial/TutorialTop.qml:54
476−msgid "Swipe from the top edge to open the notification bar"
477msgstr ""
635msgstr ""
478
636
479#: qml/Wizard/Page.qml:54
637#: qml/Wizard/Page.qml:54
@@ -485,15 +643,32 @@ msgstr ""
485msgid "Language"
643msgid "Language"
486msgstr ""
644msgstr ""
487
645
488−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
646+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
489#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
647#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
490#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
648#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
491#: qml/Wizard/Pages/75-report-check.qml:84
649#: qml/Wizard/Pages/75-report-check.qml:84
492−#: qml/Wizard/Pages/passcode-desktop.qml:124
650+#: qml/Wizard/Pages/passcode-desktop.qml:141
493#: qml/Wizard/Pages/password-set.qml:141
651#: qml/Wizard/Pages/password-set.qml:141
494msgid "Next"
652msgid "Next"
495msgstr ""
653msgstr ""
496
654
655+#: qml/Wizard/Pages/20-keyboard.qml:30
656+msgid "Select Keyboard"
657+msgstr ""
658+
659+#: qml/Wizard/Pages/20-keyboard.qml:70
660+msgid "Keyboard language"
661+msgstr ""
662+
663+#: qml/Wizard/Pages/20-keyboard.qml:92
664+msgid "Keyboard layout"
665+msgstr ""
666+
667+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
668+#: qml/Wizard/Pages/sim.qml:101
669+msgid "Skip"
670+msgstr "Omet"
671+
497#: qml/Wizard/Pages/30-wifi.qml:29
672#: qml/Wizard/Pages/30-wifi.qml:29
498msgid "Connect to Wi‑Fi"
673msgid "Connect to Wi‑Fi"
499msgstr "Connecta't a la Wi-Fi"
674msgstr "Connecta't a la Wi-Fi"
@@ -510,11 +685,6 @@ msgstr ""
510msgid "No available Wi-Fi networks"
685msgid "No available Wi-Fi networks"
511msgstr ""
686msgstr ""
512
687
513−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
514−#: qml/Wizard/Pages/sim.qml:101
515−msgid "Skip"
516−msgstr "Omet"
517−
518#: qml/Wizard/Pages/40-location.qml:27
688#: qml/Wizard/Pages/40-location.qml:27
519msgid "Location Services"
689msgid "Location Services"
520msgstr ""
690msgstr ""
@@ -598,6 +768,35 @@ msgstr ""
598msgid "Privacy policy"
768msgid "Privacy policy"
599msgstr ""
769msgstr ""
600
770
771+#: qml/Wizard/Pages/77-system-update.qml:28
772+msgid "Update Device"
773+msgstr ""
774+
775+#: qml/Wizard/Pages/77-system-update.qml:55
776+msgid ""
777+"There is a system update available and ready to install. Afterwards, the "
778+"device will automatically restart."
779+msgstr ""
780+
781+#: qml/Wizard/Pages/77-system-update.qml:76
782+msgctxt "string identifying name of the update"
783+msgid "Ubuntu system"
784+msgstr ""
785+
786+#: qml/Wizard/Pages/77-system-update.qml:83
787+#, qt-format
788+msgctxt "version of the system update"
789+msgid "Version %1"
790+msgstr ""
791+
792+#: qml/Wizard/Pages/77-system-update.qml:102
793+msgid "This could take a few minutes..."
794+msgstr ""
795+
796+#: qml/Wizard/Pages/77-system-update.qml:116
797+msgid "Install and restart now"
798+msgstr ""
799+
601#: qml/Wizard/Pages/80-finished.qml:89
800#: qml/Wizard/Pages/80-finished.qml:89
602msgid "Welcome to Ubuntu"
801msgid "Welcome to Ubuntu"
603msgstr ""
802msgstr ""
@@ -641,7 +840,7 @@ msgid "Service Terms"
641msgstr ""
840msgstr ""
642
841
643#: qml/Wizard/Pages/passcode-confirm.qml:43
842#: qml/Wizard/Pages/passcode-confirm.qml:43
644−#: qml/Wizard/Pages/passcode-desktop.qml:80
843+#: qml/Wizard/Pages/passcode-desktop.qml:96
645msgid "Confirm passcode"
844msgid "Confirm passcode"
646msgstr "Confirmeu el codi d'accés"
845msgstr "Confirmeu el codi d'accés"
647
846
@@ -658,24 +857,24 @@ msgstr ""
658msgid "Lock Screen Passcode"
857msgid "Lock Screen Passcode"
659msgstr ""
858msgstr ""
660
859
661−#: qml/Wizard/Pages/passcode-desktop.qml:56
860+#: qml/Wizard/Pages/passcode-desktop.qml:60
662msgid "Enter 4 numbers to setup your passcode"
861msgid "Enter 4 numbers to setup your passcode"
663msgstr ""
862msgstr ""
664
863
665−#: qml/Wizard/Pages/passcode-desktop.qml:65
864+#: qml/Wizard/Pages/passcode-desktop.qml:76
666#: qml/Wizard/Pages/passcode-set.qml:54
865#: qml/Wizard/Pages/passcode-set.qml:54
667msgid "Choose passcode"
866msgid "Choose passcode"
668msgstr ""
867msgstr ""
669
868
670−#: qml/Wizard/Pages/passcode-desktop.qml:105
869+#: qml/Wizard/Pages/passcode-desktop.qml:126
671msgid "Passcode too short"
870msgid "Passcode too short"
672msgstr ""
871msgstr ""
673
872
674−#: qml/Wizard/Pages/passcode-desktop.qml:107
873+#: qml/Wizard/Pages/passcode-desktop.qml:128
675msgid "Passcodes match"
874msgid "Passcodes match"
676msgstr ""
875msgstr ""
677
876
678−#: qml/Wizard/Pages/passcode-desktop.qml:109
877+#: qml/Wizard/Pages/passcode-desktop.qml:130
679msgid "Passcodes do not match"
878msgid "Passcodes do not match"
680msgstr ""
879msgstr ""
681
880
@@ -724,26 +923,30 @@ msgid "To proceed with no SIM tap Skip."
724msgstr ""
923msgstr ""
725
924
726#: qml/Wizard/PasswordMeter.qml:87
925#: qml/Wizard/PasswordMeter.qml:87
727−msgid "Passwords match"
926+msgid "Password too short"
728msgstr ""
927msgstr ""
729
928
730#: qml/Wizard/PasswordMeter.qml:89
929#: qml/Wizard/PasswordMeter.qml:89
930+msgid "Passwords match"
931+msgstr ""
932+
933+#: qml/Wizard/PasswordMeter.qml:91
731msgid "Passwords do not match"
934msgid "Passwords do not match"
732msgstr ""
935msgstr ""
733
936
734−#: qml/Wizard/PasswordMeter.qml:93
937+#: qml/Wizard/PasswordMeter.qml:95
735msgid "Strong password"
938msgid "Strong password"
736msgstr ""
939msgstr ""
737
940
738−#: qml/Wizard/PasswordMeter.qml:95
941+#: qml/Wizard/PasswordMeter.qml:97
739msgid "Fair password"
942msgid "Fair password"
740msgstr ""
943msgstr ""
741
944
742−#: qml/Wizard/PasswordMeter.qml:97
945+#: qml/Wizard/PasswordMeter.qml:99
743msgid "Weak password"
946msgid "Weak password"
744msgstr ""
947msgstr ""
745
948
746−#: qml/Wizard/PasswordMeter.qml:99
949+#: qml/Wizard/PasswordMeter.qml:101
747msgid "Very weak password"
950msgid "Very weak password"
748msgstr ""
951msgstr ""
749
952
po/ce.po+296−93
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2015-02-15 04:01+0000\n"
11"PO-Revision-Date: 2015-02-15 04:01+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Chechen <ce@li.org>\n"
13"Language-Team: Chechen <ce@li.org>\n"
@@ -15,120 +15,290 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr ""
23msgstr ""
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr ""
28msgstr ""
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr ""
36msgstr ""
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr ""
40msgstr ""
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr ""
44msgstr ""
45
45
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
47msgid "You have been locked out due to too many failed passcode attempts."
47msgid "You have been locked out due to too many failed passcode attempts."
48msgstr ""
48msgstr ""
49
49
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
51#, qt-format
51#, qt-format
52msgid "Please wait %1 minute and then try again…"
52msgid "Please wait %1 minute and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
54msgstr[0] ""
54msgstr[0] ""
55msgstr[1] ""
55msgstr[1] ""
56
56
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
58msgctxt "Title: Lock/Log out dialog"
58msgctxt "Title: Lock/Log out dialog"
59msgid "Log out"
59msgid "Log out"
60msgstr ""
60msgstr ""
61
61
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
63msgid "Are you sure you want to log out?"
63msgid "Are you sure you want to log out?"
64msgstr ""
64msgstr ""
65
65
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
67msgctxt "Button: Lock the system"
67msgctxt "Button: Lock the system"
68msgid "Lock"
68msgid "Lock"
69msgstr ""
69msgstr ""
70
70
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
72msgctxt "Button: Log out from the system"
72msgctxt "Button: Log out from the system"
73msgid "Log Out"
73msgid "Log Out"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
79msgid "Cancel"
79msgid "Cancel"
80msgstr ""
80msgstr ""
81
81
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
83msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
84msgid "Reboot"
84msgid "Reboot"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
88msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
89msgstr ""
89msgstr ""
90
90
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
92msgid "No"
92msgid "No"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
96msgid "Yes"
96msgid "Yes"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
101msgid "Power"
101msgid "Power"
102msgstr ""
102msgstr ""
103
103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105msgid ""
105msgid ""
106"Are you sure you would like\n"
106"Are you sure you would like\n"
107"to power off?"
107"to power off?"
108msgstr ""
108msgstr ""
109
109
110−#: qml/Components/Dialogs.qml:200
110+#: qml/Components/Dialogs.qml:202
111msgctxt "Button: Power off the system"
111msgctxt "Button: Power off the system"
112msgid "Power off"
112msgid "Power off"
113msgstr ""
113msgstr ""
114
114
115−#: qml/Components/Dialogs.qml:209
115+#: qml/Components/Dialogs.qml:211
116msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
117msgid "Restart"
117msgid "Restart"
118msgstr ""
118msgstr ""
119
119
120+#: qml/Components/KeyboardShortcutsOverlay.qml:41
121+msgid "Keyboard Shortcuts"
122+msgstr ""
123+
124+#: qml/Components/KeyboardShortcutsOverlay.qml:55
125+msgid "Unity 8"
126+msgstr ""
127+
128+#: qml/Components/KeyboardShortcutsOverlay.qml:62
129+msgid "PrtScr"
130+msgstr ""
131+
132+#: qml/Components/KeyboardShortcutsOverlay.qml:67
133+msgid "Takes a screenshot."
134+msgstr ""
135+
136+#: qml/Components/KeyboardShortcutsOverlay.qml:75
137+msgid "Alt + PrtScr"
138+msgstr ""
139+
140+#: qml/Components/KeyboardShortcutsOverlay.qml:80
141+msgid "Takes a screenshot of a window."
142+msgstr ""
143+
144+#: qml/Components/KeyboardShortcutsOverlay.qml:88
145+msgid "Super + Space"
146+msgstr ""
147+
148+#: qml/Components/KeyboardShortcutsOverlay.qml:93
149+msgid "Switches to next keyboard layout."
150+msgstr ""
151+
152+#: qml/Components/KeyboardShortcutsOverlay.qml:101
153+msgid "Super + Shift + Space"
154+msgstr ""
155+
156+#: qml/Components/KeyboardShortcutsOverlay.qml:106
157+msgid "Switches to previous keyboard layout."
158+msgstr ""
159+
160+#: qml/Components/KeyboardShortcutsOverlay.qml:118
161+msgid "Launcher"
162+msgstr ""
163+
164+#: qml/Components/KeyboardShortcutsOverlay.qml:125
165+msgid "Super (Hold)"
166+msgstr ""
167+
168+#: qml/Components/KeyboardShortcutsOverlay.qml:130
169+msgid "Opens the launcher, displays shortcuts."
170+msgstr ""
171+
172+#: qml/Components/KeyboardShortcutsOverlay.qml:138
173+msgid "Alt + F1"
174+msgstr ""
175+
176+#: qml/Components/KeyboardShortcutsOverlay.qml:143
177+msgid "Opens launcher keyboard navigation mode."
178+msgstr ""
179+
180+#: qml/Components/KeyboardShortcutsOverlay.qml:151
181+msgid "Super + Tab"
182+msgstr ""
183+
184+#: qml/Components/KeyboardShortcutsOverlay.qml:156
185+msgid "Switches applications via the launcher."
186+msgstr ""
187+
188+#: qml/Components/KeyboardShortcutsOverlay.qml:164
189+msgid "Super + 0 to 9"
190+msgstr ""
191+
192+#: qml/Components/KeyboardShortcutsOverlay.qml:169
193+msgid "Same as clicking on a launcher icon."
194+msgstr ""
195+
196+#: qml/Components/KeyboardShortcutsOverlay.qml:181
197+msgid "Scopes"
198+msgstr ""
199+
200+#: qml/Components/KeyboardShortcutsOverlay.qml:188
201+msgid "Super (Tap)"
202+msgstr ""
203+
204+#: qml/Components/KeyboardShortcutsOverlay.qml:193
205+msgid "Opens the Scopes home."
206+msgstr ""
207+
208+#: qml/Components/KeyboardShortcutsOverlay.qml:209
209+msgid "Switching"
210+msgstr ""
211+
212+#: qml/Components/KeyboardShortcutsOverlay.qml:216
213+msgid "Alt + Tab"
214+msgstr ""
215+
216+#: qml/Components/KeyboardShortcutsOverlay.qml:221
217+msgid "Switches between applications."
218+msgstr ""
219+
220+#: qml/Components/KeyboardShortcutsOverlay.qml:229
221+msgid "Super + W"
222+msgstr ""
223+
224+#: qml/Components/KeyboardShortcutsOverlay.qml:234
225+msgid "Opens the desktop spread."
226+msgstr ""
227+
228+#: qml/Components/KeyboardShortcutsOverlay.qml:242
229+msgid "Cursor Left or Right"
230+msgstr ""
231+
232+#: qml/Components/KeyboardShortcutsOverlay.qml:247
233+msgid "Moves the focus."
234+msgstr ""
235+
236+#: qml/Components/KeyboardShortcutsOverlay.qml:259
237+msgid "Windows"
238+msgstr ""
239+
240+#: qml/Components/KeyboardShortcutsOverlay.qml:266
241+msgid "Ctrl + Super + D"
242+msgstr ""
243+
244+#: qml/Components/KeyboardShortcutsOverlay.qml:271
245+msgid "Minimizes all windows."
246+msgstr ""
247+
248+#: qml/Components/KeyboardShortcutsOverlay.qml:279
249+msgid "Ctrl + Super + Up"
250+msgstr ""
251+
252+#: qml/Components/KeyboardShortcutsOverlay.qml:284
253+msgid "Maximizes the current window."
254+msgstr ""
255+
256+#: qml/Components/KeyboardShortcutsOverlay.qml:292
257+msgid "Ctrl + Super + Down"
258+msgstr ""
259+
260+#: qml/Components/KeyboardShortcutsOverlay.qml:297
261+msgid "Minimizes or restores the current window."
262+msgstr ""
263+
264+#: qml/Components/KeyboardShortcutsOverlay.qml:305
265+msgid "Ctrl + Super + Left or Right"
266+msgstr ""
267+
268+#: qml/Components/KeyboardShortcutsOverlay.qml:310
269+msgid "Semi-maximizes the current window."
270+msgstr ""
271+
272+#: qml/Components/KeyboardShortcutsOverlay.qml:318
273+msgid "Alt + F4"
274+msgstr ""
275+
276+#: qml/Components/KeyboardShortcutsOverlay.qml:323
277+msgid "Closes the current window."
278+msgstr ""
279+
120−#: qml/Components/Lockscreen.qml:231
280+#: qml/Components/Lockscreen.qml:239
121msgid "Return to Call"
281msgid "Return to Call"
122msgstr ""
282msgstr ""
123
283
124−#: qml/Components/Lockscreen.qml:231
284+#: qml/Components/Lockscreen.qml:239
125msgid "Emergency Call"
285msgid "Emergency Call"
126msgstr ""
286msgstr ""
127
287
128−#: qml/Components/Lockscreen.qml:263
288+#: qml/Components/Lockscreen.qml:271
129msgid "OK"
289msgid "OK"
130msgstr ""
290msgstr ""
131
291
292+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
293+#, qt-format
294+msgid "%1:%2:%3"
295+msgstr ""
296+
297+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
298+#, qt-format
299+msgid "%1:%2"
300+msgstr ""
301+
132#: qml/Components/ModeSwitchWarningDialog.qml:32
302#: qml/Components/ModeSwitchWarningDialog.qml:32
133msgid "Apps may have unsaved data:"
303msgid "Apps may have unsaved data:"
134msgstr ""
304msgstr ""
@@ -155,6 +325,10 @@ msgstr ""
155msgid "Close all"
325msgid "Close all"
156msgstr ""
326msgstr ""
157
327
328+#: qml/Components/SharingPicker.qml:54
329+msgid "Preview Share Item"
330+msgstr ""
331+
158#: qml/Dash/DashPageHeader.qml:333
332#: qml/Dash/DashPageHeader.qml:333
159msgctxt "Button: Open the Ubuntu Store"
333msgctxt "Button: Open the Ubuntu Store"
160msgid "Store"
334msgid "Store"
@@ -186,15 +360,15 @@ msgstr ""
186msgid "Reset"
360msgid "Reset"
187msgstr ""
361msgstr ""
188
362
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
363+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190msgid "Show less"
364msgid "Show less"
191msgstr ""
365msgstr ""
192
366
193−#: qml/Dash/GenericScopeView.qml:579
367+#: qml/Dash/GenericScopeView.qml:580
194msgid "Show all"
368msgid "Show all"
195msgstr ""
369msgstr ""
196
370
197−#: qml/Dash/GenericScopeView.qml:636
371+#: qml/Dash/GenericScopeView.qml:637
198msgctxt "Label: Hint for dash search line edit"
372msgctxt "Label: Hint for dash search line edit"
199msgid "Search"
373msgid "Search"
200msgstr ""
374msgstr ""
@@ -228,10 +402,6 @@ msgstr ""
228msgid "Add a review"
402msgid "Add a review"
229msgstr ""
403msgstr ""
230
404
231−#: qml/Dash/Previews/PreviewSharing.qml:66
232−msgid "Preview Share Item"
233−msgstr ""
234−
235#: qml/Dash/PullToRefreshScopeStyle.qml:55
405#: qml/Dash/PullToRefreshScopeStyle.qml:55
236msgid "Pull to refresh…"
406msgid "Pull to refresh…"
237msgstr ""
407msgstr ""
@@ -248,11 +418,11 @@ msgstr ""
248msgid "Manage"
418msgid "Manage"
249msgstr ""
419msgstr ""
250
420
251−#: qml/Dash/ScopesList.qml:101
421+#: qml/Dash/ScopesList.qml:102
252msgid "Home"
422msgid "Home"
253msgstr ""
423msgstr ""
254
424
255−#: qml/Dash/ScopesList.qml:102
425+#: qml/Dash/ScopesList.qml:103
256msgid "Also installed"
426msgid "Also installed"
257msgstr ""
427msgstr ""
258
428
@@ -262,16 +432,28 @@ msgid ""
262"touch pad to interact with the pointer."
432"touch pad to interact with the pointer."
263msgstr ""
433msgstr ""
264
434
265−#: qml/Greeter/CoverPage.qml:118
435+#: qml/Greeter/CoverPage.qml:127
266msgid "Unlock"
436msgid "Unlock"
267msgstr ""
437msgstr ""
268
438
439+#: qml/Greeter/Greeter.qml:539
440+msgid "Try again"
441+msgstr ""
442+
269−#: qml/Greeter/LoginList.qml:239
443+#: qml/Greeter/LoginList.qml:63
444+msgid "Passphrase"
445+msgstr ""
446+
447+#: qml/Greeter/LoginList.qml:64
448+msgid "Passcode"
449+msgstr ""
450+
451+#: qml/Greeter/LoginList.qml:259
270msgid "Retry"
452msgid "Retry"
271msgstr ""
453msgstr ""
272
454
273−#: qml/Greeter/LoginList.qml:240
455+#: qml/Greeter/LoginList.qml:260
274−msgid "Tap to unlock"
456+msgid "Log In"
275msgstr ""
457msgstr ""
276
458
277#: qml/Greeter/NarrowView.qml:54
459#: qml/Greeter/NarrowView.qml:54
@@ -298,34 +480,34 @@ msgid ""
298"and all personal data will be deleted."
480"and all personal data will be deleted."
299msgstr ""
481msgstr ""
300
482
301−#: qml/Greeter/NarrowView.qml:116
483+#: qml/Greeter/NarrowView.qml:129
302#, qt-format
484#, qt-format
303msgid "Enter %1"
485msgid "Enter %1"
304msgstr ""
486msgstr ""
305
487
306−#: qml/Greeter/NarrowView.qml:117
488+#: qml/Greeter/NarrowView.qml:130
307msgid "Enter passphrase"
489msgid "Enter passphrase"
308msgstr ""
490msgstr ""
309
491
310−#: qml/Greeter/NarrowView.qml:118
492+#: qml/Greeter/NarrowView.qml:131
311msgid "Enter passcode"
493msgid "Enter passcode"
312msgstr ""
494msgstr ""
313
495
314−#: qml/Greeter/NarrowView.qml:119
496+#: qml/Greeter/NarrowView.qml:135
315#, qt-format
497#, qt-format
316msgid "Sorry, incorrect %1"
498msgid "Sorry, incorrect %1"
317msgstr ""
499msgstr ""
318
500
319−#: qml/Greeter/NarrowView.qml:120
501+#: qml/Greeter/NarrowView.qml:136
320msgid "Sorry, incorrect passphrase"
502msgid "Sorry, incorrect passphrase"
321msgstr ""
503msgstr ""
322
504
323−#: qml/Greeter/NarrowView.qml:121
505+#: qml/Greeter/NarrowView.qml:137
324msgctxt "passphrase"
506msgctxt "passphrase"
325msgid "Please re-enter"
507msgid "Please re-enter"
326msgstr ""
508msgstr ""
327
509
328−#: qml/Greeter/NarrowView.qml:122
510+#: qml/Greeter/NarrowView.qml:138
329msgid "Sorry, incorrect passcode"
511msgid "Sorry, incorrect passcode"
330msgstr ""
512msgstr ""
331
513
@@ -420,32 +602,12 @@ msgstr ""
420msgid "Drag using 3 fingers any application from one window to the other"
602msgid "Drag using 3 fingers any application from one window to the other"
421msgstr ""
603msgstr ""
422
604
423−#: qml/Tutorial/TutorialBottom.qml:78
424−msgid "Swipe up to add a contact"
425−msgstr ""
426−
427−#: qml/Tutorial/TutorialBottom.qml:80
428−msgid "Swipe up for favorite calculations"
429−msgstr ""
430−
431−#: qml/Tutorial/TutorialBottom.qml:82
432−msgid "Swipe up for recent calls"
433−msgstr ""
434−
435−#: qml/Tutorial/TutorialBottom.qml:84
436−msgid "Swipe up to create a message"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:85
440−msgid "Swipe up to manage the app"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialLeftLong.qml:47
605+#: qml/Tutorial/TutorialLeftLong.qml:49
444msgid "Long swipe from the left edge to open the Today scope"
606msgid "Long swipe from the left edge to open the Today scope"
445msgstr ""
607msgstr ""
446
608
447#: qml/Tutorial/TutorialLeft.qml:47
609#: qml/Tutorial/TutorialLeft.qml:47
448−msgid "Swipe from the left edge to open the launcher"
610+msgid "Short swipe from the left edge to open the launcher"
449msgstr ""
611msgstr ""
450
612
451#: qml/Tutorial/TutorialRight.qml:55
613#: qml/Tutorial/TutorialRight.qml:55
@@ -453,15 +615,11 @@ msgid "Push your mouse against the right edge to view your open apps"
453msgstr ""
615msgstr ""
454
616
455#: qml/Tutorial/TutorialRight.qml:56
617#: qml/Tutorial/TutorialRight.qml:56
456−msgid "Short or long swipe from the right edge to view your open apps"
618+msgid "Swipe from the right edge to view your open apps"
457msgstr ""
619msgstr ""
458
620
459#: qml/Tutorial/TutorialTop.qml:53
621#: qml/Tutorial/TutorialTop.qml:53
460−msgid "Swipe from the top right edge to open the notification bar"
622+msgid "Swipe from the top edge to access notifications and quick settings"
461−msgstr ""
462−
463−#: qml/Tutorial/TutorialTop.qml:54
464−msgid "Swipe from the top edge to open the notification bar"
465msgstr ""
623msgstr ""
466
624
467#: qml/Wizard/Page.qml:54
625#: qml/Wizard/Page.qml:54
@@ -473,15 +631,32 @@ msgstr ""
473msgid "Language"
631msgid "Language"
474msgstr ""
632msgstr ""
475
633
476−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
634+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
477#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
635#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
478#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
636#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479#: qml/Wizard/Pages/75-report-check.qml:84
637#: qml/Wizard/Pages/75-report-check.qml:84
480−#: qml/Wizard/Pages/passcode-desktop.qml:124
638+#: qml/Wizard/Pages/passcode-desktop.qml:141
481#: qml/Wizard/Pages/password-set.qml:141
639#: qml/Wizard/Pages/password-set.qml:141
482msgid "Next"
640msgid "Next"
483msgstr ""
641msgstr ""
484
642
643+#: qml/Wizard/Pages/20-keyboard.qml:30
644+msgid "Select Keyboard"
645+msgstr ""
646+
647+#: qml/Wizard/Pages/20-keyboard.qml:70
648+msgid "Keyboard language"
649+msgstr ""
650+
651+#: qml/Wizard/Pages/20-keyboard.qml:92
652+msgid "Keyboard layout"
653+msgstr ""
654+
655+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
656+#: qml/Wizard/Pages/sim.qml:101
657+msgid "Skip"
658+msgstr ""
659+
485#: qml/Wizard/Pages/30-wifi.qml:29
660#: qml/Wizard/Pages/30-wifi.qml:29
486msgid "Connect to Wi‑Fi"
661msgid "Connect to Wi‑Fi"
487msgstr ""
662msgstr ""
@@ -498,11 +673,6 @@ msgstr ""
498msgid "No available Wi-Fi networks"
673msgid "No available Wi-Fi networks"
499msgstr ""
674msgstr ""
500
675
501−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502−#: qml/Wizard/Pages/sim.qml:101
503−msgid "Skip"
504−msgstr ""
505−
506#: qml/Wizard/Pages/40-location.qml:27
676#: qml/Wizard/Pages/40-location.qml:27
507msgid "Location Services"
677msgid "Location Services"
508msgstr ""
678msgstr ""
@@ -586,6 +756,35 @@ msgstr ""
586msgid "Privacy policy"
756msgid "Privacy policy"
587msgstr ""
757msgstr ""
588
758
759+#: qml/Wizard/Pages/77-system-update.qml:28
760+msgid "Update Device"
761+msgstr ""
762+
763+#: qml/Wizard/Pages/77-system-update.qml:55
764+msgid ""
765+"There is a system update available and ready to install. Afterwards, the "
766+"device will automatically restart."
767+msgstr ""
768+
769+#: qml/Wizard/Pages/77-system-update.qml:76
770+msgctxt "string identifying name of the update"
771+msgid "Ubuntu system"
772+msgstr ""
773+
774+#: qml/Wizard/Pages/77-system-update.qml:83
775+#, qt-format
776+msgctxt "version of the system update"
777+msgid "Version %1"
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:102
781+msgid "This could take a few minutes..."
782+msgstr ""
783+
784+#: qml/Wizard/Pages/77-system-update.qml:116
785+msgid "Install and restart now"
786+msgstr ""
787+
589#: qml/Wizard/Pages/80-finished.qml:89
788#: qml/Wizard/Pages/80-finished.qml:89
590msgid "Welcome to Ubuntu"
789msgid "Welcome to Ubuntu"
591msgstr ""
790msgstr ""
@@ -629,7 +828,7 @@ msgid "Service Terms"
629msgstr ""
828msgstr ""
630
829
631#: qml/Wizard/Pages/passcode-confirm.qml:43
830#: qml/Wizard/Pages/passcode-confirm.qml:43
632−#: qml/Wizard/Pages/passcode-desktop.qml:80
831+#: qml/Wizard/Pages/passcode-desktop.qml:96
633msgid "Confirm passcode"
832msgid "Confirm passcode"
634msgstr ""
833msgstr ""
635
834
@@ -646,24 +845,24 @@ msgstr ""
646msgid "Lock Screen Passcode"
845msgid "Lock Screen Passcode"
647msgstr ""
846msgstr ""
648
847
649−#: qml/Wizard/Pages/passcode-desktop.qml:56
848+#: qml/Wizard/Pages/passcode-desktop.qml:60
650msgid "Enter 4 numbers to setup your passcode"
849msgid "Enter 4 numbers to setup your passcode"
651msgstr ""
850msgstr ""
652
851
653−#: qml/Wizard/Pages/passcode-desktop.qml:65
852+#: qml/Wizard/Pages/passcode-desktop.qml:76
654#: qml/Wizard/Pages/passcode-set.qml:54
853#: qml/Wizard/Pages/passcode-set.qml:54
655msgid "Choose passcode"
854msgid "Choose passcode"
656msgstr ""
855msgstr ""
657
856
658−#: qml/Wizard/Pages/passcode-desktop.qml:105
857+#: qml/Wizard/Pages/passcode-desktop.qml:126
659msgid "Passcode too short"
858msgid "Passcode too short"
660msgstr ""
859msgstr ""
661
860
662−#: qml/Wizard/Pages/passcode-desktop.qml:107
861+#: qml/Wizard/Pages/passcode-desktop.qml:128
663msgid "Passcodes match"
862msgid "Passcodes match"
664msgstr ""
863msgstr ""
665
864
666−#: qml/Wizard/Pages/passcode-desktop.qml:109
865+#: qml/Wizard/Pages/passcode-desktop.qml:130
667msgid "Passcodes do not match"
866msgid "Passcodes do not match"
668msgstr ""
867msgstr ""
669
868
@@ -712,25 +911,29 @@ msgid "To proceed with no SIM tap Skip."
712msgstr ""
911msgstr ""
713
912
714#: qml/Wizard/PasswordMeter.qml:87
913#: qml/Wizard/PasswordMeter.qml:87
715−msgid "Passwords match"
914+msgid "Password too short"
716msgstr ""
915msgstr ""
717
916
718#: qml/Wizard/PasswordMeter.qml:89
917#: qml/Wizard/PasswordMeter.qml:89
918+msgid "Passwords match"
919+msgstr ""
920+
921+#: qml/Wizard/PasswordMeter.qml:91
719msgid "Passwords do not match"
922msgid "Passwords do not match"
720msgstr ""
923msgstr ""
721
924
722−#: qml/Wizard/PasswordMeter.qml:93
925+#: qml/Wizard/PasswordMeter.qml:95
723msgid "Strong password"
926msgid "Strong password"
724msgstr ""
927msgstr ""
725
928
726−#: qml/Wizard/PasswordMeter.qml:95
929+#: qml/Wizard/PasswordMeter.qml:97
727msgid "Fair password"
930msgid "Fair password"
728msgstr ""
931msgstr ""
729
932
730−#: qml/Wizard/PasswordMeter.qml:97
933+#: qml/Wizard/PasswordMeter.qml:99
731msgid "Weak password"
934msgid "Weak password"
732msgstr ""
935msgstr ""
733
936
734−#: qml/Wizard/PasswordMeter.qml:99
937+#: qml/Wizard/PasswordMeter.qml:101
735msgid "Very weak password"
938msgid "Very weak password"
736msgstr ""
939msgstr ""
po/ckb.po+296−93
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
@@ -15,120 +15,290 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:21+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:56+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr ""
23msgstr ""
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr ""
28msgstr ""
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr ""
36msgstr ""
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr ""
40msgstr ""
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr ""
44msgstr ""
45
45
46−#: qml/Components/DelayedLockscreen.qml:65
46+#: qml/Components/DelayedLockscreen.qml:66
47msgid "You have been locked out due to too many failed passcode attempts."
47msgid "You have been locked out due to too many failed passcode attempts."
48msgstr ""
48msgstr ""
49
49
50−#: qml/Components/DelayedLockscreen.qml:74
50+#: qml/Components/DelayedLockscreen.qml:75
51#, qt-format
51#, qt-format
52msgid "Please wait %1 minute and then try again…"
52msgid "Please wait %1 minute and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
53msgid_plural "Please wait %1 minutes and then try again…"
54msgstr[0] ""
54msgstr[0] ""
55msgstr[1] ""
55msgstr[1] ""
56
56
57−#: qml/Components/Dialogs.qml:144
57+#: qml/Components/Dialogs.qml:146
58msgctxt "Title: Lock/Log out dialog"
58msgctxt "Title: Lock/Log out dialog"
59msgid "Log out"
59msgid "Log out"
60msgstr ""
60msgstr ""
61
61
62−#: qml/Components/Dialogs.qml:145
62+#: qml/Components/Dialogs.qml:147
63msgid "Are you sure you want to log out?"
63msgid "Are you sure you want to log out?"
64msgstr ""
64msgstr ""
65
65
66−#: qml/Components/Dialogs.qml:147
66+#: qml/Components/Dialogs.qml:149
67msgctxt "Button: Lock the system"
67msgctxt "Button: Lock the system"
68msgid "Lock"
68msgid "Lock"
69msgstr ""
69msgstr ""
70
70
71−#: qml/Components/Dialogs.qml:154
71+#: qml/Components/Dialogs.qml:156
72msgctxt "Button: Log out from the system"
72msgctxt "Button: Log out from the system"
73msgid "Log Out"
73msgid "Log Out"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
76+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
77#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
78#: qml/Wizard/Pages/passcode-set.qml:32
79msgid "Cancel"
79msgid "Cancel"
80msgstr ""
80msgstr ""
81
81
82−#: qml/Components/Dialogs.qml:173
82+#: qml/Components/Dialogs.qml:175
83msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
84msgid "Reboot"
84msgid "Reboot"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/Dialogs.qml:174
87+#: qml/Components/Dialogs.qml:176
88msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
89msgstr ""
89msgstr ""
90
90
91−#: qml/Components/Dialogs.qml:176
91+#: qml/Components/Dialogs.qml:178
92msgid "No"
92msgid "No"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Dialogs.qml:182
95+#: qml/Components/Dialogs.qml:184
96msgid "Yes"
96msgid "Yes"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Dialogs.qml:197
99+#: qml/Components/Dialogs.qml:199
100msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
101msgid "Power"
101msgid "Power"
102msgstr ""
102msgstr ""
103
103
104−#: qml/Components/Dialogs.qml:198
104+#: qml/Components/Dialogs.qml:200
105msgid ""
105msgid ""
106"Are you sure you would like\n"
106"Are you sure you would like\n"
107"to power off?"
107"to power off?"
108msgstr ""
108msgstr ""
109
109
110−#: qml/Components/Dialogs.qml:200
110+#: qml/Components/Dialogs.qml:202
111msgctxt "Button: Power off the system"
111msgctxt "Button: Power off the system"
112msgid "Power off"
112msgid "Power off"
113msgstr ""
113msgstr ""
114
114
115−#: qml/Components/Dialogs.qml:209
115+#: qml/Components/Dialogs.qml:211
116msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
117msgid "Restart"
117msgid "Restart"
118msgstr ""
118msgstr ""
119
119
120+#: qml/Components/KeyboardShortcutsOverlay.qml:41
121+msgid "Keyboard Shortcuts"
122+msgstr ""
123+
124+#: qml/Components/KeyboardShortcutsOverlay.qml:55
125+msgid "Unity 8"
126+msgstr ""
127+
128+#: qml/Components/KeyboardShortcutsOverlay.qml:62
129+msgid "PrtScr"
130+msgstr ""
131+
132+#: qml/Components/KeyboardShortcutsOverlay.qml:67
133+msgid "Takes a screenshot."
134+msgstr ""
135+
136+#: qml/Components/KeyboardShortcutsOverlay.qml:75
137+msgid "Alt + PrtScr"
138+msgstr ""
139+
140+#: qml/Components/KeyboardShortcutsOverlay.qml:80
141+msgid "Takes a screenshot of a window."
142+msgstr ""
143+
144+#: qml/Components/KeyboardShortcutsOverlay.qml:88
145+msgid "Super + Space"
146+msgstr ""
147+
148+#: qml/Components/KeyboardShortcutsOverlay.qml:93
149+msgid "Switches to next keyboard layout."
150+msgstr ""
151+
152+#: qml/Components/KeyboardShortcutsOverlay.qml:101
153+msgid "Super + Shift + Space"
154+msgstr ""
155+
156+#: qml/Components/KeyboardShortcutsOverlay.qml:106
157+msgid "Switches to previous keyboard layout."
158+msgstr ""
159+
160+#: qml/Components/KeyboardShortcutsOverlay.qml:118
161+msgid "Launcher"
162+msgstr ""
163+
164+#: qml/Components/KeyboardShortcutsOverlay.qml:125
165+msgid "Super (Hold)"
166+msgstr ""
167+
168+#: qml/Components/KeyboardShortcutsOverlay.qml:130
169+msgid "Opens the launcher, displays shortcuts."
170+msgstr ""
171+
172+#: qml/Components/KeyboardShortcutsOverlay.qml:138
173+msgid "Alt + F1"
174+msgstr ""
175+
176+#: qml/Components/KeyboardShortcutsOverlay.qml:143
177+msgid "Opens launcher keyboard navigation mode."
178+msgstr ""
179+
180+#: qml/Components/KeyboardShortcutsOverlay.qml:151
181+msgid "Super + Tab"
182+msgstr ""
183+
184+#: qml/Components/KeyboardShortcutsOverlay.qml:156
185+msgid "Switches applications via the launcher."
186+msgstr ""
187+
188+#: qml/Components/KeyboardShortcutsOverlay.qml:164
189+msgid "Super + 0 to 9"
190+msgstr ""
191+
192+#: qml/Components/KeyboardShortcutsOverlay.qml:169
193+msgid "Same as clicking on a launcher icon."
194+msgstr ""
195+
196+#: qml/Components/KeyboardShortcutsOverlay.qml:181
197+msgid "Scopes"
198+msgstr ""
199+
200+#: qml/Components/KeyboardShortcutsOverlay.qml:188
201+msgid "Super (Tap)"
202+msgstr ""
203+
204+#: qml/Components/KeyboardShortcutsOverlay.qml:193
205+msgid "Opens the Scopes home."
206+msgstr ""
207+
208+#: qml/Components/KeyboardShortcutsOverlay.qml:209
209+msgid "Switching"
210+msgstr ""
211+
212+#: qml/Components/KeyboardShortcutsOverlay.qml:216
213+msgid "Alt + Tab"
214+msgstr ""
215+
216+#: qml/Components/KeyboardShortcutsOverlay.qml:221
217+msgid "Switches between applications."
218+msgstr ""
219+
220+#: qml/Components/KeyboardShortcutsOverlay.qml:229
221+msgid "Super + W"
222+msgstr ""
223+
224+#: qml/Components/KeyboardShortcutsOverlay.qml:234
225+msgid "Opens the desktop spread."
226+msgstr ""
227+
228+#: qml/Components/KeyboardShortcutsOverlay.qml:242
229+msgid "Cursor Left or Right"
230+msgstr ""
231+
232+#: qml/Components/KeyboardShortcutsOverlay.qml:247
233+msgid "Moves the focus."
234+msgstr ""
235+
236+#: qml/Components/KeyboardShortcutsOverlay.qml:259
237+msgid "Windows"
238+msgstr ""
239+
240+#: qml/Components/KeyboardShortcutsOverlay.qml:266
241+msgid "Ctrl + Super + D"
242+msgstr ""
243+
244+#: qml/Components/KeyboardShortcutsOverlay.qml:271
245+msgid "Minimizes all windows."
246+msgstr ""
247+
248+#: qml/Components/KeyboardShortcutsOverlay.qml:279
249+msgid "Ctrl + Super + Up"
250+msgstr ""
251+
252+#: qml/Components/KeyboardShortcutsOverlay.qml:284
253+msgid "Maximizes the current window."
254+msgstr ""
255+
256+#: qml/Components/KeyboardShortcutsOverlay.qml:292
257+msgid "Ctrl + Super + Down"
258+msgstr ""
259+
260+#: qml/Components/KeyboardShortcutsOverlay.qml:297
261+msgid "Minimizes or restores the current window."
262+msgstr ""
263+
264+#: qml/Components/KeyboardShortcutsOverlay.qml:305
265+msgid "Ctrl + Super + Left or Right"
266+msgstr ""
267+
268+#: qml/Components/KeyboardShortcutsOverlay.qml:310
269+msgid "Semi-maximizes the current window."
270+msgstr ""
271+
272+#: qml/Components/KeyboardShortcutsOverlay.qml:318
273+msgid "Alt + F4"
274+msgstr ""
275+
276+#: qml/Components/KeyboardShortcutsOverlay.qml:323
277+msgid "Closes the current window."
278+msgstr ""
279+
120−#: qml/Components/Lockscreen.qml:231
280+#: qml/Components/Lockscreen.qml:239
121msgid "Return to Call"
281msgid "Return to Call"
122msgstr ""
282msgstr ""
123
283
124−#: qml/Components/Lockscreen.qml:231
284+#: qml/Components/Lockscreen.qml:239
125msgid "Emergency Call"
285msgid "Emergency Call"
126msgstr "هێڵی فریاگوزاری"
286msgstr "هێڵی فریاگوزاری"
127
287
128−#: qml/Components/Lockscreen.qml:263
288+#: qml/Components/Lockscreen.qml:271
129msgid "OK"
289msgid "OK"
130msgstr ""
290msgstr ""
131
291
292+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
293+#, qt-format
294+msgid "%1:%2:%3"
295+msgstr ""
296+
297+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
298+#, qt-format
299+msgid "%1:%2"
300+msgstr ""
301+
132#: qml/Components/ModeSwitchWarningDialog.qml:32
302#: qml/Components/ModeSwitchWarningDialog.qml:32
133msgid "Apps may have unsaved data:"
303msgid "Apps may have unsaved data:"
134msgstr ""
304msgstr ""
@@ -155,6 +325,10 @@ msgstr ""
155msgid "Close all"
325msgid "Close all"
156msgstr ""
326msgstr ""
157
327
328+#: qml/Components/SharingPicker.qml:54
329+msgid "Preview Share Item"
330+msgstr ""
331+
158#: qml/Dash/DashPageHeader.qml:333
332#: qml/Dash/DashPageHeader.qml:333
159msgctxt "Button: Open the Ubuntu Store"
333msgctxt "Button: Open the Ubuntu Store"
160msgid "Store"
334msgid "Store"
@@ -186,15 +360,15 @@ msgstr ""
186msgid "Reset"
360msgid "Reset"
187msgstr ""
361msgstr ""
188
362
189−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
363+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
190msgid "Show less"
364msgid "Show less"
191msgstr ""
365msgstr ""
192
366
193−#: qml/Dash/GenericScopeView.qml:579
367+#: qml/Dash/GenericScopeView.qml:580
194msgid "Show all"
368msgid "Show all"
195msgstr ""
369msgstr ""
196
370
197−#: qml/Dash/GenericScopeView.qml:636
371+#: qml/Dash/GenericScopeView.qml:637
198msgctxt "Label: Hint for dash search line edit"
372msgctxt "Label: Hint for dash search line edit"
199msgid "Search"
373msgid "Search"
200msgstr ""
374msgstr ""
@@ -228,10 +402,6 @@ msgstr "پلە دابنی بۆی"
228msgid "Add a review"
402msgid "Add a review"
229msgstr "پێداچوونەوە زۆر بکە"
403msgstr "پێداچوونەوە زۆر بکە"
230
404
231−#: qml/Dash/Previews/PreviewSharing.qml:66
232−msgid "Preview Share Item"
233−msgstr ""
234−
235#: qml/Dash/PullToRefreshScopeStyle.qml:55
405#: qml/Dash/PullToRefreshScopeStyle.qml:55
236msgid "Pull to refresh…"
406msgid "Pull to refresh…"
237msgstr ""
407msgstr ""
@@ -248,11 +418,11 @@ msgstr ""
248msgid "Manage"
418msgid "Manage"
249msgstr ""
419msgstr ""
250
420
251−#: qml/Dash/ScopesList.qml:101
421+#: qml/Dash/ScopesList.qml:102
252msgid "Home"
422msgid "Home"
253msgstr ""
423msgstr ""
254
424
255−#: qml/Dash/ScopesList.qml:102
425+#: qml/Dash/ScopesList.qml:103
256msgid "Also installed"
426msgid "Also installed"
257msgstr ""
427msgstr ""
258
428
@@ -262,16 +432,28 @@ msgid ""
262"touch pad to interact with the pointer."
432"touch pad to interact with the pointer."
263msgstr ""
433msgstr ""
264
434
265−#: qml/Greeter/CoverPage.qml:118
435+#: qml/Greeter/CoverPage.qml:127
266msgid "Unlock"
436msgid "Unlock"
267msgstr ""
437msgstr ""
268
438
269−#: qml/Greeter/LoginList.qml:239
439+#: qml/Greeter/Greeter.qml:539
440+msgid "Try again"
441+msgstr ""
442+
443+#: qml/Greeter/LoginList.qml:63
444+msgid "Passphrase"
445+msgstr ""
446+
447+#: qml/Greeter/LoginList.qml:64
448+msgid "Passcode"
449+msgstr ""
450+
451+#: qml/Greeter/LoginList.qml:259
270msgid "Retry"
452msgid "Retry"
271msgstr ""
453msgstr ""
272
454
273−#: qml/Greeter/LoginList.qml:240
455+#: qml/Greeter/LoginList.qml:260
274−msgid "Tap to unlock"
456+msgid "Log In"
275msgstr ""
457msgstr ""
276
458
277#: qml/Greeter/NarrowView.qml:54
459#: qml/Greeter/NarrowView.qml:54
@@ -298,34 +480,34 @@ msgid ""
298"and all personal data will be deleted."
480"and all personal data will be deleted."
299msgstr ""
481msgstr ""
300
482
301−#: qml/Greeter/NarrowView.qml:116
483+#: qml/Greeter/NarrowView.qml:129
302#, qt-format
484#, qt-format
303msgid "Enter %1"
485msgid "Enter %1"
304msgstr ""
486msgstr ""
305
487
306−#: qml/Greeter/NarrowView.qml:117
488+#: qml/Greeter/NarrowView.qml:130
307msgid "Enter passphrase"
489msgid "Enter passphrase"
308msgstr ""
490msgstr ""
309
491
310−#: qml/Greeter/NarrowView.qml:118
492+#: qml/Greeter/NarrowView.qml:131
311msgid "Enter passcode"
493msgid "Enter passcode"
312msgstr ""
494msgstr ""
313
495
314−#: qml/Greeter/NarrowView.qml:119
496+#: qml/Greeter/NarrowView.qml:135
315#, qt-format
497#, qt-format
316msgid "Sorry, incorrect %1"
498msgid "Sorry, incorrect %1"
317msgstr ""
499msgstr ""
318
500
319−#: qml/Greeter/NarrowView.qml:120
501+#: qml/Greeter/NarrowView.qml:136
320msgid "Sorry, incorrect passphrase"
502msgid "Sorry, incorrect passphrase"
321msgstr ""
503msgstr ""
322
504
323−#: qml/Greeter/NarrowView.qml:121
505+#: qml/Greeter/NarrowView.qml:137
324msgctxt "passphrase"
506msgctxt "passphrase"
325msgid "Please re-enter"
507msgid "Please re-enter"
326msgstr ""
508msgstr ""
327
509
328−#: qml/Greeter/NarrowView.qml:122
510+#: qml/Greeter/NarrowView.qml:138
329msgid "Sorry, incorrect passcode"
511msgid "Sorry, incorrect passcode"
330msgstr ""
512msgstr ""
331
513
@@ -420,32 +602,12 @@ msgstr ""
420msgid "Drag using 3 fingers any application from one window to the other"
602msgid "Drag using 3 fingers any application from one window to the other"
421msgstr ""
603msgstr ""
422
604
423−#: qml/Tutorial/TutorialBottom.qml:78
605+#: qml/Tutorial/TutorialLeftLong.qml:49
424−msgid "Swipe up to add a contact"
425−msgstr ""
426−
427−#: qml/Tutorial/TutorialBottom.qml:80
428−msgid "Swipe up for favorite calculations"
429−msgstr ""
430−
431−#: qml/Tutorial/TutorialBottom.qml:82
432−msgid "Swipe up for recent calls"
433−msgstr ""
434−
435−#: qml/Tutorial/TutorialBottom.qml:84
436−msgid "Swipe up to create a message"
437−msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:85
440−msgid "Swipe up to manage the app"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialLeftLong.qml:47
444msgid "Long swipe from the left edge to open the Today scope"
606msgid "Long swipe from the left edge to open the Today scope"
445msgstr ""
607msgstr ""
446
608
447#: qml/Tutorial/TutorialLeft.qml:47
609#: qml/Tutorial/TutorialLeft.qml:47
448−msgid "Swipe from the left edge to open the launcher"
610+msgid "Short swipe from the left edge to open the launcher"
449msgstr ""
611msgstr ""
450
612
451#: qml/Tutorial/TutorialRight.qml:55
613#: qml/Tutorial/TutorialRight.qml:55
@@ -453,15 +615,11 @@ msgid "Push your mouse against the right edge to view your open apps"
453msgstr ""
615msgstr ""
454
616
455#: qml/Tutorial/TutorialRight.qml:56
617#: qml/Tutorial/TutorialRight.qml:56
456−msgid "Short or long swipe from the right edge to view your open apps"
618+msgid "Swipe from the right edge to view your open apps"
457msgstr ""
619msgstr ""
458
620
459#: qml/Tutorial/TutorialTop.qml:53
621#: qml/Tutorial/TutorialTop.qml:53
460−msgid "Swipe from the top right edge to open the notification bar"
622+msgid "Swipe from the top edge to access notifications and quick settings"
461−msgstr ""
462−
463−#: qml/Tutorial/TutorialTop.qml:54
464−msgid "Swipe from the top edge to open the notification bar"
465msgstr ""
623msgstr ""
466
624
467#: qml/Wizard/Page.qml:54
625#: qml/Wizard/Page.qml:54
@@ -473,15 +631,32 @@ msgstr ""
473msgid "Language"
631msgid "Language"
474msgstr ""
632msgstr ""
475
633
476−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
634+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
477#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
635#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
478#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
636#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479#: qml/Wizard/Pages/75-report-check.qml:84
637#: qml/Wizard/Pages/75-report-check.qml:84
480−#: qml/Wizard/Pages/passcode-desktop.qml:124
638+#: qml/Wizard/Pages/passcode-desktop.qml:141
481#: qml/Wizard/Pages/password-set.qml:141
639#: qml/Wizard/Pages/password-set.qml:141
482msgid "Next"
640msgid "Next"
483msgstr ""
641msgstr ""
484
642
643+#: qml/Wizard/Pages/20-keyboard.qml:30
644+msgid "Select Keyboard"
645+msgstr ""
646+
647+#: qml/Wizard/Pages/20-keyboard.qml:70
648+msgid "Keyboard language"
649+msgstr ""
650+
651+#: qml/Wizard/Pages/20-keyboard.qml:92
652+msgid "Keyboard layout"
653+msgstr ""
654+
655+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
656+#: qml/Wizard/Pages/sim.qml:101
657+msgid "Skip"
658+msgstr ""
659+
485#: qml/Wizard/Pages/30-wifi.qml:29
660#: qml/Wizard/Pages/30-wifi.qml:29
486msgid "Connect to Wi‑Fi"
661msgid "Connect to Wi‑Fi"
487msgstr ""
662msgstr ""
@@ -498,11 +673,6 @@ msgstr ""
498msgid "No available Wi-Fi networks"
673msgid "No available Wi-Fi networks"
499msgstr ""
674msgstr ""
500
675
501−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502−#: qml/Wizard/Pages/sim.qml:101
503−msgid "Skip"
504−msgstr ""
505−
506#: qml/Wizard/Pages/40-location.qml:27
676#: qml/Wizard/Pages/40-location.qml:27
507msgid "Location Services"
677msgid "Location Services"
508msgstr ""
678msgstr ""
@@ -586,6 +756,35 @@ msgstr ""
586msgid "Privacy policy"
756msgid "Privacy policy"
587msgstr ""
757msgstr ""
588
758
759+#: qml/Wizard/Pages/77-system-update.qml:28
760+msgid "Update Device"
761+msgstr ""
762+
763+#: qml/Wizard/Pages/77-system-update.qml:55
764+msgid ""
765+"There is a system update available and ready to install. Afterwards, the "
766+"device will automatically restart."
767+msgstr ""
768+
769+#: qml/Wizard/Pages/77-system-update.qml:76
770+msgctxt "string identifying name of the update"
771+msgid "Ubuntu system"
772+msgstr ""
773+
774+#: qml/Wizard/Pages/77-system-update.qml:83
775+#, qt-format
776+msgctxt "version of the system update"
777+msgid "Version %1"
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:102
781+msgid "This could take a few minutes..."
782+msgstr ""
783+
784+#: qml/Wizard/Pages/77-system-update.qml:116
785+msgid "Install and restart now"
786+msgstr ""
787+
589#: qml/Wizard/Pages/80-finished.qml:89
788#: qml/Wizard/Pages/80-finished.qml:89
590msgid "Welcome to Ubuntu"
789msgid "Welcome to Ubuntu"
591msgstr ""
790msgstr ""
@@ -629,7 +828,7 @@ msgid "Service Terms"
629msgstr ""
828msgstr ""
630
829
631#: qml/Wizard/Pages/passcode-confirm.qml:43
830#: qml/Wizard/Pages/passcode-confirm.qml:43
632−#: qml/Wizard/Pages/passcode-desktop.qml:80
831+#: qml/Wizard/Pages/passcode-desktop.qml:96
633msgid "Confirm passcode"
832msgid "Confirm passcode"
634msgstr ""
833msgstr ""
635
834
@@ -646,24 +845,24 @@ msgstr ""
646msgid "Lock Screen Passcode"
845msgid "Lock Screen Passcode"
647msgstr ""
846msgstr ""
648
847
649−#: qml/Wizard/Pages/passcode-desktop.qml:56
848+#: qml/Wizard/Pages/passcode-desktop.qml:60
650msgid "Enter 4 numbers to setup your passcode"
849msgid "Enter 4 numbers to setup your passcode"
651msgstr ""
850msgstr ""
652
851
653−#: qml/Wizard/Pages/passcode-desktop.qml:65
852+#: qml/Wizard/Pages/passcode-desktop.qml:76
654#: qml/Wizard/Pages/passcode-set.qml:54
853#: qml/Wizard/Pages/passcode-set.qml:54
655msgid "Choose passcode"
854msgid "Choose passcode"
656msgstr ""
855msgstr ""
657
856
658−#: qml/Wizard/Pages/passcode-desktop.qml:105
857+#: qml/Wizard/Pages/passcode-desktop.qml:126
659msgid "Passcode too short"
858msgid "Passcode too short"
660msgstr ""
859msgstr ""
661
860
662−#: qml/Wizard/Pages/passcode-desktop.qml:107
861+#: qml/Wizard/Pages/passcode-desktop.qml:128
663msgid "Passcodes match"
862msgid "Passcodes match"
664msgstr ""
863msgstr ""
665
864
666−#: qml/Wizard/Pages/passcode-desktop.qml:109
865+#: qml/Wizard/Pages/passcode-desktop.qml:130
667msgid "Passcodes do not match"
866msgid "Passcodes do not match"
668msgstr ""
867msgstr ""
669
868
@@ -712,26 +911,30 @@ msgid "To proceed with no SIM tap Skip."
712msgstr ""
911msgstr ""
713
912
714#: qml/Wizard/PasswordMeter.qml:87
913#: qml/Wizard/PasswordMeter.qml:87
715−msgid "Passwords match"
914+msgid "Password too short"
716msgstr ""
915msgstr ""
717
916
718#: qml/Wizard/PasswordMeter.qml:89
917#: qml/Wizard/PasswordMeter.qml:89
918+msgid "Passwords match"
919+msgstr ""
920+
921+#: qml/Wizard/PasswordMeter.qml:91
719msgid "Passwords do not match"
922msgid "Passwords do not match"
720msgstr ""
923msgstr ""
721
924
722−#: qml/Wizard/PasswordMeter.qml:93
925+#: qml/Wizard/PasswordMeter.qml:95
723msgid "Strong password"
926msgid "Strong password"
724msgstr ""
927msgstr ""
725
928
726−#: qml/Wizard/PasswordMeter.qml:95
929+#: qml/Wizard/PasswordMeter.qml:97
727msgid "Fair password"
930msgid "Fair password"
728msgstr ""
931msgstr ""
729
932
730−#: qml/Wizard/PasswordMeter.qml:97
933+#: qml/Wizard/PasswordMeter.qml:99
731msgid "Weak password"
934msgid "Weak password"
732msgstr ""
935msgstr ""
733
936
734−#: qml/Wizard/PasswordMeter.qml:99
937+#: qml/Wizard/PasswordMeter.qml:101
735msgid "Very weak password"
938msgid "Very weak password"
736msgstr ""
939msgstr ""
737
940
po/co.po+341−100
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2016-05-24 10:40+0000\n"
11"PO-Revision-Date: 2016-05-24 10:40+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Corsican <co@li.org>\n"
13"Language-Team: Corsican <co@li.org>\n"
@@ -15,97 +15,97 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Parolla d'ordine: "
23msgstr "Parolla d'ordine: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Fissà l'accurtatoghju"
28msgstr "Fissà l'accurtatoghju"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr "Abbandunà"
32msgstr "Abbandunà"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Toglie l'accurtatoghju"
36msgstr "Toglie l'accurtatoghju"
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr "Dispusitivu bluccatu"
40msgstr "Dispusitivu bluccatu"
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr ""
44msgstr ""
45"Site stati bluccati per troppi tentativi fallati d'inserimentu di a frasa "
45"Site stati bluccati per troppi tentativi fallati d'inserimentu di a frasa "
46"d'ordine."
46"d'ordine."
47
47
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
49msgid "You have been locked out due to too many failed passcode attempts."
49msgid "You have been locked out due to too many failed passcode attempts."
50msgstr ""
50msgstr ""
51"Site stati bluccati per troppi tentativi fallati d'inserimentu di u codice "
51"Site stati bluccati per troppi tentativi fallati d'inserimentu di u codice "
52"d'accessu."
52"d'accessu."
53
53
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
55#, qt-format
55#, qt-format
56msgid "Please wait %1 minute and then try again…"
56msgid "Please wait %1 minute and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
58msgstr[0] "Aspettà %1 minutu è po turnà à pruvà…"
58msgstr[0] "Aspettà %1 minutu è po turnà à pruvà…"
59msgstr[1] "Aspettà %1 minuti è po turnà à pruvà…"
59msgstr[1] "Aspettà %1 minuti è po turnà à pruvà…"
60
60
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
62msgctxt "Title: Lock/Log out dialog"
62msgctxt "Title: Lock/Log out dialog"
63msgid "Log out"
63msgid "Log out"
64msgstr "Escì"
64msgstr "Escì"
65
65
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
67msgid "Are you sure you want to log out?"
67msgid "Are you sure you want to log out?"
68msgstr "Site sicuri di vulè escì?"
68msgstr "Site sicuri di vulè escì?"
69
69
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
71msgctxt "Button: Lock the system"
71msgctxt "Button: Lock the system"
72msgid "Lock"
72msgid "Lock"
73msgstr "Bluccà"
73msgstr "Bluccà"
74
74
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
76msgctxt "Button: Log out from the system"
76msgctxt "Button: Log out from the system"
77msgid "Log Out"
77msgid "Log Out"
78msgstr "Escì"
78msgstr "Escì"
79
79
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
83msgid "Cancel"
83msgid "Cancel"
84msgstr "Annullà"
84msgstr "Annullà"
85
85
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
87msgctxt "Title: Reboot dialog"
87msgctxt "Title: Reboot dialog"
88msgid "Reboot"
88msgid "Reboot"
89msgstr "Turnà ad avvià"
89msgstr "Turnà ad avvià"
90
90
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
92msgid "Are you sure you want to reboot?"
92msgid "Are you sure you want to reboot?"
93msgstr "Site sicuri di vulè turnà ad avvià?"
93msgstr "Site sicuri di vulè turnà ad avvià?"
94
94
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
96msgid "No"
96msgid "No"
97msgstr "Nò"
97msgstr "Nò"
98
98
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100msgid "Yes"
100msgid "Yes"
101msgstr "Iè"
101msgstr "Iè"
102
102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104msgctxt "Title: Power off/Restart dialog"
104msgctxt "Title: Power off/Restart dialog"
105msgid "Power"
105msgid "Power"
106msgstr "Alimentazione"
106msgstr "Alimentazione"
107
107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109msgid ""
109msgid ""
110"Are you sure you would like\n"
110"Are you sure you would like\n"
111"to power off?"
111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113"Site sicuri di vulè\n"
113"Site sicuri di vulè\n"
114"spenghje?"
114"spenghje?"
115
115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117msgctxt "Button: Power off the system"
117msgctxt "Button: Power off the system"
118msgid "Power off"
118msgid "Power off"
119msgstr "Spenghje"
119msgstr "Spenghje"
120
120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
123msgid "Restart"
123msgid "Restart"
124msgstr "Turnà ad avvià"
124msgstr "Turnà ad avvià"
125
125
126−#: qml/Components/Lockscreen.qml:231
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr ""
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr ""
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr ""
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr ""
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr ""
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr ""
285+
286+#: qml/Components/Lockscreen.qml:239
127msgid "Return to Call"
287msgid "Return to Call"
128msgstr "Turnà à a Chjamata"
288msgstr "Turnà à a Chjamata"
129
289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131msgid "Emergency Call"
291msgid "Emergency Call"
132msgstr "Chjamata d'emergenza"
292msgstr "Chjamata d'emergenza"
133
293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135msgid "OK"
295msgid "OK"
136msgstr "OK"
296msgstr "OK"
137
297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr ""
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr ""
307+
138#: qml/Components/ModeSwitchWarningDialog.qml:32
308#: qml/Components/ModeSwitchWarningDialog.qml:32
139msgid "Apps may have unsaved data:"
309msgid "Apps may have unsaved data:"
140msgstr "E app puderebbenu avè dati micca salvati:"
310msgstr "E app puderebbenu avè dati micca salvati:"
@@ -163,6 +333,10 @@ msgstr "Turnà à cunnettesi avà!"
163msgid "Close all"
333msgid "Close all"
164msgstr "Chjode tuttu"
334msgstr "Chjode tuttu"
165
335
336+#: qml/Components/SharingPicker.qml:54
337+msgid "Preview Share Item"
338+msgstr "Anteprima elementi da sparte"
339+
166#: qml/Dash/DashPageHeader.qml:333
340#: qml/Dash/DashPageHeader.qml:333
167msgctxt "Button: Open the Ubuntu Store"
341msgctxt "Button: Open the Ubuntu Store"
168msgid "Store"
342msgid "Store"
@@ -194,15 +368,15 @@ msgstr "Raffinà i risultati"
194msgid "Reset"
368msgid "Reset"
195msgstr "Re-inizializzà"
369msgstr "Re-inizializzà"
196
370
197−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
371+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
198msgid "Show less"
372msgid "Show less"
199msgstr ""
373msgstr ""
200
374
201−#: qml/Dash/GenericScopeView.qml:579
375+#: qml/Dash/GenericScopeView.qml:580
202msgid "Show all"
376msgid "Show all"
203msgstr ""
377msgstr ""
204
378
205−#: qml/Dash/GenericScopeView.qml:636
379+#: qml/Dash/GenericScopeView.qml:637
206msgctxt "Label: Hint for dash search line edit"
380msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
381msgid "Search"
208msgstr "Circà"
382msgstr "Circà"
@@ -236,10 +410,6 @@ msgstr "Ghjudicà questu"
236msgid "Add a review"
410msgid "Add a review"
237msgstr "Aghjustà una recensione"
411msgstr "Aghjustà una recensione"
238
412
239−#: qml/Dash/Previews/PreviewSharing.qml:66
240−msgid "Preview Share Item"
241−msgstr ""
242−
243#: qml/Dash/PullToRefreshScopeStyle.qml:55
413#: qml/Dash/PullToRefreshScopeStyle.qml:55
244msgid "Pull to refresh…"
414msgid "Pull to refresh…"
245msgstr "Tirà per rinnuvà..."
415msgstr "Tirà per rinnuvà..."
@@ -256,11 +426,11 @@ msgstr "Abilità i dati nant'à u locu"
256msgid "Manage"
426msgid "Manage"
257msgstr "Gestì"
427msgstr "Gestì"
258
428
259−#: qml/Dash/ScopesList.qml:101
429+#: qml/Dash/ScopesList.qml:102
260msgid "Home"
430msgid "Home"
261msgstr "Accolta"
431msgstr "Accolta"
262
432
263−#: qml/Dash/ScopesList.qml:102
433+#: qml/Dash/ScopesList.qml:103
264msgid "Also installed"
434msgid "Also installed"
265msgstr "Anu dinù installatu..."
435msgstr "Anu dinù installatu..."
266
436
@@ -272,17 +442,29 @@ msgstr ""
272"U vostru dispusitivu avà hè cunnessu à unu screnu esternu. Usà u screnu di "
442"U vostru dispusitivu avà hè cunnessu à unu screnu esternu. Usà u screnu di "
273"ssu dispusitivu cum'è un tappettu tattile per guvernà u puntatore."
443"ssu dispusitivu cum'è un tappettu tattile per guvernà u puntatore."
274
444
275−#: qml/Greeter/CoverPage.qml:118
445+#: qml/Greeter/CoverPage.qml:127
276msgid "Unlock"
446msgid "Unlock"
277msgstr "Sbluccà"
447msgstr "Sbluccà"
278
448
279−#: qml/Greeter/LoginList.qml:239
449+#: qml/Greeter/Greeter.qml:539
450+msgid "Try again"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:63
454+msgid "Passphrase"
455+msgstr ""
456+
457+#: qml/Greeter/LoginList.qml:64
458+msgid "Passcode"
459+msgstr ""
460+
461+#: qml/Greeter/LoginList.qml:259
280msgid "Retry"
462msgid "Retry"
281msgstr "Turnà à pruvà"
463msgstr "Turnà à pruvà"
282
464
283−#: qml/Greeter/LoginList.qml:240
465+#: qml/Greeter/LoginList.qml:260
284−msgid "Tap to unlock"
466+msgid "Log In"
285−msgstr "Tuccà per sbluccà"
467+msgstr ""
286
468
287#: qml/Greeter/NarrowView.qml:54
469#: qml/Greeter/NarrowView.qml:54
288msgid "Sorry, incorrect passphrase."
470msgid "Sorry, incorrect passphrase."
@@ -312,34 +494,34 @@ msgstr ""
312"Si u codice d'accessu hè erratu, u telefunu serà reinizializatu, è tutti i "
494"Si u codice d'accessu hè erratu, u telefunu serà reinizializatu, è tutti i "
313"dati persunali serannu perduti."
495"dati persunali serannu perduti."
314
496
315−#: qml/Greeter/NarrowView.qml:116
497+#: qml/Greeter/NarrowView.qml:129
316#, qt-format
498#, qt-format
317msgid "Enter %1"
499msgid "Enter %1"
318msgstr "Inserì %1"
500msgstr "Inserì %1"
319
501
320−#: qml/Greeter/NarrowView.qml:117
502+#: qml/Greeter/NarrowView.qml:130
321msgid "Enter passphrase"
503msgid "Enter passphrase"
322msgstr "Inserì a frasa d'ordine"
504msgstr "Inserì a frasa d'ordine"
323
505
324−#: qml/Greeter/NarrowView.qml:118
506+#: qml/Greeter/NarrowView.qml:131
325msgid "Enter passcode"
507msgid "Enter passcode"
326msgstr "Inserì u codice d'accessu"
508msgstr "Inserì u codice d'accessu"
327
509
328−#: qml/Greeter/NarrowView.qml:119
510+#: qml/Greeter/NarrowView.qml:135
329#, qt-format
511#, qt-format
330msgid "Sorry, incorrect %1"
512msgid "Sorry, incorrect %1"
331msgstr "Spiacenti, %1 micca currettu"
513msgstr "Spiacenti, %1 micca currettu"
332
514
333−#: qml/Greeter/NarrowView.qml:120
515+#: qml/Greeter/NarrowView.qml:136
334msgid "Sorry, incorrect passphrase"
516msgid "Sorry, incorrect passphrase"
335msgstr "Spiacenti, frasa d'ordine micca curretta"
517msgstr "Spiacenti, frasa d'ordine micca curretta"
336
518
337−#: qml/Greeter/NarrowView.qml:121
519+#: qml/Greeter/NarrowView.qml:137
338msgctxt "passphrase"
520msgctxt "passphrase"
339msgid "Please re-enter"
521msgid "Please re-enter"
340msgstr "Ripete l'inserimentu"
522msgstr "Ripete l'inserimentu"
341
523
342−#: qml/Greeter/NarrowView.qml:122
524+#: qml/Greeter/NarrowView.qml:138
343msgid "Sorry, incorrect passcode"
525msgid "Sorry, incorrect passcode"
344msgstr "Spiacenti, codice d'accessu micca currettu"
526msgstr "Spiacenti, codice d'accessu micca currettu"
345
527
@@ -435,50 +617,25 @@ msgid "Drag using 3 fingers any application from one window to the other"
435msgstr ""
617msgstr ""
436"Trascinà cù 3 dite qualichissia applicazione da una finestra à un'antra"
618"Trascinà cù 3 dite qualichissia applicazione da una finestra à un'antra"
437
619
438−#: qml/Tutorial/TutorialBottom.qml:78
620+#: qml/Tutorial/TutorialLeftLong.qml:49
439−msgid "Swipe up to add a contact"
440−msgstr "Scorre versu l'altu per aghjustà un cuntattu"
441−
442−#: qml/Tutorial/TutorialBottom.qml:80
443−msgid "Swipe up for favorite calculations"
444−msgstr "Scorre versu l'altu pè mustrà i calculi favuriti"
445−
446−#: qml/Tutorial/TutorialBottom.qml:82
447−msgid "Swipe up for recent calls"
448−msgstr "Scorre versu l'altu pè e chjamate recenti"
449−
450−#: qml/Tutorial/TutorialBottom.qml:84
451−msgid "Swipe up to create a message"
452−msgstr "Scorre versu l'altu per creà un messaggiu"
453−
454−#: qml/Tutorial/TutorialBottom.qml:85
455−msgid "Swipe up to manage the app"
456−msgstr "Scorre versu l'altu per gestì l'app"
457−
458−#: qml/Tutorial/TutorialLeftLong.qml:47
459msgid "Long swipe from the left edge to open the Today scope"
621msgid "Long swipe from the left edge to open the Today scope"
460msgstr "Scorre longu da mancina versu diritta per aprì u pannellu Oghje"
622msgstr "Scorre longu da mancina versu diritta per aprì u pannellu Oghje"
461
623
462#: qml/Tutorial/TutorialLeft.qml:47
624#: qml/Tutorial/TutorialLeft.qml:47
463−msgid "Swipe from the left edge to open the launcher"
625+msgid "Short swipe from the left edge to open the launcher"
464−msgstr "Scorre da mancina versu diritta per aprì u launcher"
626+msgstr ""
465
627
466#: qml/Tutorial/TutorialRight.qml:55
628#: qml/Tutorial/TutorialRight.qml:55
467msgid "Push your mouse against the right edge to view your open apps"
629msgid "Push your mouse against the right edge to view your open apps"
468msgstr ""
630msgstr ""
469
631
470#: qml/Tutorial/TutorialRight.qml:56
632#: qml/Tutorial/TutorialRight.qml:56
471−msgid "Short or long swipe from the right edge to view your open apps"
633+msgid "Swipe from the right edge to view your open apps"
472msgstr ""
634msgstr ""
473−"Scorre cortu o longu da diritta versu mancina per vede e applicazioni aperte"
474
635
475#: qml/Tutorial/TutorialTop.qml:53
636#: qml/Tutorial/TutorialTop.qml:53
476−msgid "Swipe from the top right edge to open the notification bar"
637+msgid "Swipe from the top edge to access notifications and quick settings"
477−msgstr "Scorre da l'altu à diritta per aprì a barra di e nutificazione"
638+msgstr ""
478−
479−#: qml/Tutorial/TutorialTop.qml:54
480−msgid "Swipe from the top edge to open the notification bar"
481−msgstr "Scorre da l'altu per aprì a barra di e nutificazione"
482
639
483#: qml/Wizard/Page.qml:54
640#: qml/Wizard/Page.qml:54
484msgctxt "Button: Go back one page in the Wizard"
641msgctxt "Button: Go back one page in the Wizard"
@@ -489,15 +646,32 @@ msgstr "Riturnà"
489msgid "Language"
646msgid "Language"
490msgstr "Lingua"
647msgstr "Lingua"
491
648
492−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
649+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
493#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
650#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
494#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
651#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
495#: qml/Wizard/Pages/75-report-check.qml:84
652#: qml/Wizard/Pages/75-report-check.qml:84
496−#: qml/Wizard/Pages/passcode-desktop.qml:124
653+#: qml/Wizard/Pages/passcode-desktop.qml:141
497#: qml/Wizard/Pages/password-set.qml:141
654#: qml/Wizard/Pages/password-set.qml:141
498msgid "Next"
655msgid "Next"
499msgstr "Prossimu"
656msgstr "Prossimu"
500
657
658+#: qml/Wizard/Pages/20-keyboard.qml:30
659+msgid "Select Keyboard"
660+msgstr ""
661+
662+#: qml/Wizard/Pages/20-keyboard.qml:70
663+msgid "Keyboard language"
664+msgstr ""
665+
666+#: qml/Wizard/Pages/20-keyboard.qml:92
667+msgid "Keyboard layout"
668+msgstr ""
669+
670+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
671+#: qml/Wizard/Pages/sim.qml:101
672+msgid "Skip"
673+msgstr "Ignurà"
674+
501#: qml/Wizard/Pages/30-wifi.qml:29
675#: qml/Wizard/Pages/30-wifi.qml:29
502msgid "Connect to Wi‑Fi"
676msgid "Connect to Wi‑Fi"
503msgstr "Cunnettesi à u Wi-Fi"
677msgstr "Cunnettesi à u Wi-Fi"
@@ -514,11 +688,6 @@ msgstr "Rete Wi-Fi dispunibili"
514msgid "No available Wi-Fi networks"
688msgid "No available Wi-Fi networks"
515msgstr "Nisuna reta Wi-Fi hè dispunibile"
689msgstr "Nisuna reta Wi-Fi hè dispunibile"
516
690
517−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
518−#: qml/Wizard/Pages/sim.qml:101
519−msgid "Skip"
520−msgstr "Ignurà"
521−
522#: qml/Wizard/Pages/40-location.qml:27
691#: qml/Wizard/Pages/40-location.qml:27
523msgid "Location Services"
692msgid "Location Services"
524msgstr "Servizi di lucalizazione"
693msgstr "Servizi di lucalizazione"
@@ -528,11 +697,13 @@ msgid ""
528"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
697"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
529"(recommended)"
698"(recommended)"
530msgstr ""
699msgstr ""
700+"Usà di manera anonima u GPS, i punti d'accessu Wi-Fi, e reti mobili, per "
701+"stabilisce à pusizione (segeritu)"
531
702
532#: qml/Wizard/Pages/40-location.qml:105
703#: qml/Wizard/Pages/40-location.qml:105
533#, qt-format
704#, qt-format
534msgid "By selecting this option you agree to the Nokia HERE %1."
705msgid "By selecting this option you agree to the Nokia HERE %1."
535−msgstr ""
706+msgstr "Selezziunendu issa ozzione s'accettanu i %1 di Nokia HERE."
536
707
537#: qml/Wizard/Pages/40-location.qml:106
708#: qml/Wizard/Pages/40-location.qml:106
538msgctxt "part of: Nokia HERE terms and conditions"
709msgctxt "part of: Nokia HERE terms and conditions"
@@ -597,11 +768,42 @@ msgstr "Aiutaci à migliurà"
597#: qml/Wizard/Pages/75-report-check.qml:59
768#: qml/Wizard/Pages/75-report-check.qml:59
598msgid "Improve system performance by sending us crashes and error reports."
769msgid "Improve system performance by sending us crashes and error reports."
599msgstr ""
770msgstr ""
771+"Migliurà l'efficienza di u sistema mandenduci nutificazioni d'errori è "
772+"blocchi impurtanti."
600
773
601#: qml/Wizard/Pages/75-report-check.qml:60
774#: qml/Wizard/Pages/75-report-check.qml:60
602msgid "Privacy policy"
775msgid "Privacy policy"
603msgstr "Pulitica di Riservatezza"
776msgstr "Pulitica di Riservatezza"
604
777
778+#: qml/Wizard/Pages/77-system-update.qml:28
779+msgid "Update Device"
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:55
783+msgid ""
784+"There is a system update available and ready to install. Afterwards, the "
785+"device will automatically restart."
786+msgstr ""
787+
788+#: qml/Wizard/Pages/77-system-update.qml:76
789+msgctxt "string identifying name of the update"
790+msgid "Ubuntu system"
791+msgstr ""
792+
793+#: qml/Wizard/Pages/77-system-update.qml:83
794+#, qt-format
795+msgctxt "version of the system update"
796+msgid "Version %1"
797+msgstr ""
798+
799+#: qml/Wizard/Pages/77-system-update.qml:102
800+msgid "This could take a few minutes..."
801+msgstr ""
802+
803+#: qml/Wizard/Pages/77-system-update.qml:116
804+msgid "Install and restart now"
805+msgstr ""
806+
605#: qml/Wizard/Pages/80-finished.qml:89
807#: qml/Wizard/Pages/80-finished.qml:89
606msgid "Welcome to Ubuntu"
808msgid "Welcome to Ubuntu"
607msgstr "Benvenuti in Ubuntu"
809msgstr "Benvenuti in Ubuntu"
@@ -620,7 +822,7 @@ msgstr "Termini & Cundizioni"
620
822
621#: qml/Wizard/Pages/here-terms.qml:69
823#: qml/Wizard/Pages/here-terms.qml:69
622msgid "Your device uses positioning technologies provided by HERE."
824msgid "Your device uses positioning technologies provided by HERE."
623−msgstr ""
825+msgstr "U dispusitivu utliza tecnulugie di pusiziunamentu furnite da HERE."
624
826
625#: qml/Wizard/Pages/here-terms.qml:81
827#: qml/Wizard/Pages/here-terms.qml:81
626msgid ""
828msgid ""
@@ -628,6 +830,9 @@ msgid ""
628"collects information about nearby cell towers and Wi-Fi hotspots around your "
830"collects information about nearby cell towers and Wi-Fi hotspots around your "
629"current location whenever your position is being found."
831"current location whenever your position is being found."
630msgstr ""
832msgstr ""
833+"Per furnì servizii di pusiziunamentu è migliuranne a qualità, ogni volta chì "
834+"a pusizione hè truvata, HERE culleziona e infurmazione nant'à i punti "
835+"d'accessu Wi-Fi è i repetitori di telefunia mobile ind'u circondu."
631
836
632#: qml/Wizard/Pages/here-terms.qml:93
837#: qml/Wizard/Pages/here-terms.qml:93
633msgid ""
838msgid ""
@@ -647,7 +852,7 @@ msgid "Service Terms"
647msgstr "Termini di u serviziu"
852msgstr "Termini di u serviziu"
648
853
649#: qml/Wizard/Pages/passcode-confirm.qml:43
854#: qml/Wizard/Pages/passcode-confirm.qml:43
650−#: qml/Wizard/Pages/passcode-desktop.qml:80
855+#: qml/Wizard/Pages/passcode-desktop.qml:96
651msgid "Confirm passcode"
856msgid "Confirm passcode"
652msgstr "Cunfirmà u codice d'accessu"
857msgstr "Cunfirmà u codice d'accessu"
653
858
@@ -664,24 +869,24 @@ msgstr "Ripete l'inserimentu."
664msgid "Lock Screen Passcode"
869msgid "Lock Screen Passcode"
665msgstr "Codice bloccu screnu"
870msgstr "Codice bloccu screnu"
666
871
667−#: qml/Wizard/Pages/passcode-desktop.qml:56
872+#: qml/Wizard/Pages/passcode-desktop.qml:60
668msgid "Enter 4 numbers to setup your passcode"
873msgid "Enter 4 numbers to setup your passcode"
669msgstr "Inserì 4 numeri per creà u vostru codice d'accessu"
874msgstr "Inserì 4 numeri per creà u vostru codice d'accessu"
670
875
671−#: qml/Wizard/Pages/passcode-desktop.qml:65
876+#: qml/Wizard/Pages/passcode-desktop.qml:76
672#: qml/Wizard/Pages/passcode-set.qml:54
877#: qml/Wizard/Pages/passcode-set.qml:54
673msgid "Choose passcode"
878msgid "Choose passcode"
674msgstr "Sceglie u codice d'accessu"
879msgstr "Sceglie u codice d'accessu"
675
880
676−#: qml/Wizard/Pages/passcode-desktop.qml:105
881+#: qml/Wizard/Pages/passcode-desktop.qml:126
677msgid "Passcode too short"
882msgid "Passcode too short"
678msgstr "Codice d'accessu troppu cortu"
883msgstr "Codice d'accessu troppu cortu"
679
884
680−#: qml/Wizard/Pages/passcode-desktop.qml:107
885+#: qml/Wizard/Pages/passcode-desktop.qml:128
681msgid "Passcodes match"
886msgid "Passcodes match"
682msgstr "I codici currispondenu."
887msgstr "I codici currispondenu."
683
888
684−#: qml/Wizard/Pages/passcode-desktop.qml:109
889+#: qml/Wizard/Pages/passcode-desktop.qml:130
685msgid "Passcodes do not match"
890msgid "Passcodes do not match"
686msgstr "I codici ùn currispondenu micca."
891msgstr "I codici ùn currispondenu micca."
687
892
@@ -724,41 +929,77 @@ msgstr "Turnà ad avvià"
724#: qml/Wizard/Pages/sim.qml:78
929#: qml/Wizard/Pages/sim.qml:78
725msgid "You won’t be able to make calls or use text messaging without a SIM."
930msgid "You won’t be able to make calls or use text messaging without a SIM."
726msgstr ""
931msgstr ""
932+"Senza una carta SIM ùn hè micca pussibile di chjamà o mandà messaggi SMS."
727
933
728#: qml/Wizard/Pages/sim.qml:90
934#: qml/Wizard/Pages/sim.qml:90
729msgid "To proceed with no SIM tap Skip."
935msgid "To proceed with no SIM tap Skip."
730−msgstr ""
936+msgstr "Per prucede senza una carta SIM tuccà Saltà"
731
937
732#: qml/Wizard/PasswordMeter.qml:87
938#: qml/Wizard/PasswordMeter.qml:87
733−msgid "Passwords match"
939+msgid "Password too short"
734msgstr ""
940msgstr ""
735
941
736#: qml/Wizard/PasswordMeter.qml:89
942#: qml/Wizard/PasswordMeter.qml:89
943+msgid "Passwords match"
944+msgstr "E parolle d'ordine sò l'istesse"
945+
946+#: qml/Wizard/PasswordMeter.qml:91
737msgid "Passwords do not match"
947msgid "Passwords do not match"
738msgstr "E parolle d'ordine ùn coincidunu micca"
948msgstr "E parolle d'ordine ùn coincidunu micca"
739
949
740−#: qml/Wizard/PasswordMeter.qml:93
950+#: qml/Wizard/PasswordMeter.qml:95
741msgid "Strong password"
951msgid "Strong password"
742msgstr "Parolla d'ordine forte"
952msgstr "Parolla d'ordine forte"
743
953
744−#: qml/Wizard/PasswordMeter.qml:95
954+#: qml/Wizard/PasswordMeter.qml:97
745msgid "Fair password"
955msgid "Fair password"
746msgstr "Parolla d'ordine media"
956msgstr "Parolla d'ordine media"
747
957
748−#: qml/Wizard/PasswordMeter.qml:97
958+#: qml/Wizard/PasswordMeter.qml:99
749msgid "Weak password"
959msgid "Weak password"
750msgstr "Parolla d'ordine debule"
960msgstr "Parolla d'ordine debule"
751
961
752−#: qml/Wizard/PasswordMeter.qml:99
962+#: qml/Wizard/PasswordMeter.qml:101
753msgid "Very weak password"
963msgid "Very weak password"
754msgstr "Parolla d'ordine moltu debule"
964msgstr "Parolla d'ordine moltu debule"
755
965
756#~ msgid "See all"
966#~ msgid "See all"
757#~ msgstr "Vede tutti"
967#~ msgstr "Vede tutti"
758
968
969+#~ msgid "Tap to unlock"
970+#~ msgstr "Tuccà per sbluccà"
971+
759#~ msgid "See less"
972#~ msgid "See less"
760#~ msgstr "Vede menu"
973#~ msgstr "Vede menu"
761
974
975+#~ msgid "Swipe from the left edge to open the launcher"
976+#~ msgstr "Scorre da mancina versu diritta per aprì u launcher"
977+
978+#~ msgid "Swipe up to add a contact"
979+#~ msgstr "Scorre versu l'altu per aghjustà un cuntattu"
980+
981+#~ msgid "Swipe up for recent calls"
982+#~ msgstr "Scorre versu l'altu pè e chjamate recenti"
983+
984+#~ msgid "Swipe up for favorite calculations"
985+#~ msgstr "Scorre versu l'altu pè mustrà i calculi favuriti"
986+
987+#~ msgid "Swipe up to manage the app"
988+#~ msgstr "Scorre versu l'altu per gestì l'app"
989+
990+#~ msgid "Swipe up to create a message"
991+#~ msgstr "Scorre versu l'altu per creà un messaggiu"
992+
993+#~ msgid "Short or long swipe from the right edge to view your open apps"
994+#~ msgstr ""
995+#~ "Scorre cortu o longu da diritta versu mancina per vede e applicazioni aperte"
996+
997+#~ msgid "Swipe from the top right edge to open the notification bar"
998+#~ msgstr "Scorre da l'altu à diritta per aprì a barra di e nutificazione"
999+
1000+#~ msgid "Swipe from the top edge to open the notification bar"
1001+#~ msgstr "Scorre da l'altu per aprì a barra di e nutificazione"
1002+
762#~ msgid "Hover your mouse on the right edge to view your open apps"
1003#~ msgid "Hover your mouse on the right edge to view your open apps"
763#~ msgstr ""
1004#~ msgstr ""
764#~ "Passà u puntatore di u topu nant'à u bordu destru per vede e app aperte"
1005#~ "Passà u puntatore di u topu nant'à u bordu destru per vede e app aperte"
po/cs.po+300−94
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2015-07-07 10:44+0000\n"
11"PO-Revision-Date: 2015-07-07 10:44+0000\n"
12"Last-Translator: Vojtěch Daněk <vdanek@outlook.com>\n"
12"Last-Translator: Vojtěch Daněk <vdanek@outlook.com>\n"
13"Language-Team: Czech <cs@li.org>\n"
13"Language-Team: Czech <cs@li.org>\n"
@@ -15,42 +15,42 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20"Language: cs\n"
20"Language: cs\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
24msgstr "Heslo: "
24msgstr "Heslo: "
25
25
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
28msgid "Pin shortcut"
28msgid "Pin shortcut"
29msgstr "Připíchnout zkratku"
29msgstr "Připíchnout zkratku"
30
30
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
32msgid "Quit"
32msgid "Quit"
33msgstr ""
33msgstr ""
34
34
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
36msgid "Unpin shortcut"
36msgid "Unpin shortcut"
37msgstr "Odpíchnout zkratku"
37msgstr "Odpíchnout zkratku"
38
38
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
40msgid "Device Locked"
40msgid "Device Locked"
41msgstr "Zařízení uzamčeno"
41msgstr "Zařízení uzamčeno"
42
42
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
44msgid "You have been locked out due to too many failed passphrase attempts."
44msgid "You have been locked out due to too many failed passphrase attempts."
45msgstr ""
45msgstr ""
46"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
46"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
47
47
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
49msgid "You have been locked out due to too many failed passcode attempts."
49msgid "You have been locked out due to too many failed passcode attempts."
50msgstr ""
50msgstr ""
51"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
51"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
52
52
53−#: qml/Components/DelayedLockscreen.qml:74
53+#: qml/Components/DelayedLockscreen.qml:75
54#, qt-format
54#, qt-format
55msgid "Please wait %1 minute and then try again…"
55msgid "Please wait %1 minute and then try again…"
56msgid_plural "Please wait %1 minutes and then try again…"
56msgid_plural "Please wait %1 minutes and then try again…"
@@ -58,54 +58,54 @@ msgstr[0] "Počkejte, prosím, %1 minut a poté to zkuste znovu..."
58msgstr[1] "Počkejte, prosím, %1 minuty a poté to zkuste znovu..."
58msgstr[1] "Počkejte, prosím, %1 minuty a poté to zkuste znovu..."
59msgstr[2] "Počkejte, prosím, %1 minut a poté to zkuste znovu..."
59msgstr[2] "Počkejte, prosím, %1 minut a poté to zkuste znovu..."
60
60
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
62msgctxt "Title: Lock/Log out dialog"
62msgctxt "Title: Lock/Log out dialog"
63msgid "Log out"
63msgid "Log out"
64msgstr "Odhlásit se"
64msgstr "Odhlásit se"
65
65
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
67msgid "Are you sure you want to log out?"
67msgid "Are you sure you want to log out?"
68msgstr "Jste si jistí, že se chcete odhlásit?"
68msgstr "Jste si jistí, že se chcete odhlásit?"
69
69
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
71msgctxt "Button: Lock the system"
71msgctxt "Button: Lock the system"
72msgid "Lock"
72msgid "Lock"
73msgstr "Uzamknout"
73msgstr "Uzamknout"
74
74
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
76msgctxt "Button: Log out from the system"
76msgctxt "Button: Log out from the system"
77msgid "Log Out"
77msgid "Log Out"
78msgstr "Odhlásit"
78msgstr "Odhlásit"
79
79
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
83msgid "Cancel"
83msgid "Cancel"
84msgstr "Zrušit"
84msgstr "Zrušit"
85
85
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
87msgctxt "Title: Reboot dialog"
87msgctxt "Title: Reboot dialog"
88msgid "Reboot"
88msgid "Reboot"
89msgstr "Restartovat"
89msgstr "Restartovat"
90
90
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
92msgid "Are you sure you want to reboot?"
92msgid "Are you sure you want to reboot?"
93msgstr "Jste si jistí, že chcete zařízení restartovat?"
93msgstr "Jste si jistí, že chcete zařízení restartovat?"
94
94
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
96msgid "No"
96msgid "No"
97msgstr "Ne"
97msgstr "Ne"
98
98
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100msgid "Yes"
100msgid "Yes"
101msgstr "Ano"
101msgstr "Ano"
102
102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104msgctxt "Title: Power off/Restart dialog"
104msgctxt "Title: Power off/Restart dialog"
105msgid "Power"
105msgid "Power"
106msgstr "Vypnutí"
106msgstr "Vypnutí"
107
107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109msgid ""
109msgid ""
110"Are you sure you would like\n"
110"Are you sure you would like\n"
111"to power off?"
111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113"Jste si jistí, že chcete\n"
113"Jste si jistí, že chcete\n"
114"telefon vypnout?"
114"telefon vypnout?"
115
115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117msgctxt "Button: Power off the system"
117msgctxt "Button: Power off the system"
118msgid "Power off"
118msgid "Power off"
119msgstr "Vypnutí"
119msgstr "Vypnutí"
120
120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
123msgid "Restart"
123msgid "Restart"
124msgstr "Reboot"
124msgstr "Reboot"
125
125
126−#: qml/Components/Lockscreen.qml:231
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr ""
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr ""
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr ""
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr ""
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr ""
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr ""
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr ""
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr ""
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr ""
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr ""
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr ""
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr ""
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr ""
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr ""
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr ""
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr ""
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr ""
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr ""
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr ""
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr ""
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr ""
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr ""
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr ""
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr ""
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr ""
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr ""
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr ""
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr ""
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr ""
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr ""
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr ""
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr ""
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr ""
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr ""
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr ""
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr ""
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr ""
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr ""
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr ""
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr ""
285+
286+#: qml/Components/Lockscreen.qml:239
127msgid "Return to Call"
287msgid "Return to Call"
128msgstr "Vrátit se k hovoru"
288msgstr "Vrátit se k hovoru"
129
289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131msgid "Emergency Call"
291msgid "Emergency Call"
132msgstr "Tísňové volání"
292msgstr "Tísňové volání"
133
293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135msgid "OK"
295msgid "OK"
136msgstr "OK"
296msgstr "OK"
137
297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr ""
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr ""
307+
138#: qml/Components/ModeSwitchWarningDialog.qml:32
308#: qml/Components/ModeSwitchWarningDialog.qml:32
139msgid "Apps may have unsaved data:"
309msgid "Apps may have unsaved data:"
140msgstr ""
310msgstr ""
@@ -161,6 +331,10 @@ msgstr ""
161msgid "Close all"
331msgid "Close all"
162msgstr ""
332msgstr ""
163
333
334+#: qml/Components/SharingPicker.qml:54
335+msgid "Preview Share Item"
336+msgstr ""
337+
164#: qml/Dash/DashPageHeader.qml:333
338#: qml/Dash/DashPageHeader.qml:333
165msgctxt "Button: Open the Ubuntu Store"
339msgctxt "Button: Open the Ubuntu Store"
166msgid "Store"
340msgid "Store"
@@ -192,15 +366,15 @@ msgstr ""
192msgid "Reset"
366msgid "Reset"
193msgstr ""
367msgstr ""
194
368
195−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
369+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
196msgid "Show less"
370msgid "Show less"
197msgstr ""
371msgstr ""
198
372
199−#: qml/Dash/GenericScopeView.qml:579
373+#: qml/Dash/GenericScopeView.qml:580
200msgid "Show all"
374msgid "Show all"
201msgstr ""
375msgstr ""
202
376
203−#: qml/Dash/GenericScopeView.qml:636
377+#: qml/Dash/GenericScopeView.qml:637
204msgctxt "Label: Hint for dash search line edit"
378msgctxt "Label: Hint for dash search line edit"
205msgid "Search"
379msgid "Search"
206msgstr "Hledat"
380msgstr "Hledat"
@@ -234,10 +408,6 @@ msgstr "Ohodnoťte to"
234msgid "Add a review"
408msgid "Add a review"
235msgstr "Přidat recenzi"
409msgstr "Přidat recenzi"
236
410
237−#: qml/Dash/Previews/PreviewSharing.qml:66
238−msgid "Preview Share Item"
239−msgstr ""
240−
241#: qml/Dash/PullToRefreshScopeStyle.qml:55
411#: qml/Dash/PullToRefreshScopeStyle.qml:55
242msgid "Pull to refresh…"
412msgid "Pull to refresh…"
243msgstr "Vytáhněte pro obnovení..."
413msgstr "Vytáhněte pro obnovení..."
@@ -254,11 +424,11 @@ msgstr "Povolit údaje umístění"
254msgid "Manage"
424msgid "Manage"
255msgstr "Spravovat"
425msgstr "Spravovat"
256
426
257−#: qml/Dash/ScopesList.qml:101
427+#: qml/Dash/ScopesList.qml:102
258msgid "Home"
428msgid "Home"
259msgstr "Domů"
429msgstr "Domů"
260
430
261−#: qml/Dash/ScopesList.qml:102
431+#: qml/Dash/ScopesList.qml:103
262msgid "Also installed"
432msgid "Also installed"
263msgstr "Také nainstalováno"
433msgstr "Také nainstalováno"
264
434
@@ -268,17 +438,29 @@ msgid ""
268"touch pad to interact with the pointer."
438"touch pad to interact with the pointer."
269msgstr ""
439msgstr ""
270
440
271−#: qml/Greeter/CoverPage.qml:118
441+#: qml/Greeter/CoverPage.qml:127
272msgid "Unlock"
442msgid "Unlock"
273msgstr "Odemknout"
443msgstr "Odemknout"
274
444
275−#: qml/Greeter/LoginList.qml:239
445+#: qml/Greeter/Greeter.qml:539
446+msgid "Try again"
447+msgstr ""
448+
449+#: qml/Greeter/LoginList.qml:63
450+msgid "Passphrase"
451+msgstr ""
452+
453+#: qml/Greeter/LoginList.qml:64
454+msgid "Passcode"
455+msgstr ""
456+
457+#: qml/Greeter/LoginList.qml:259
276msgid "Retry"
458msgid "Retry"
277msgstr "Znovu"
459msgstr "Znovu"
278
460
279−#: qml/Greeter/LoginList.qml:240
461+#: qml/Greeter/LoginList.qml:260
280−msgid "Tap to unlock"
462+msgid "Log In"
281−msgstr "Klepnout pro odemčení"
463+msgstr ""
282
464
283#: qml/Greeter/NarrowView.qml:54
465#: qml/Greeter/NarrowView.qml:54
284msgid "Sorry, incorrect passphrase."
466msgid "Sorry, incorrect passphrase."
@@ -308,34 +490,34 @@ msgstr ""
308"Pokud bude heslo zadáno nesprávně, bude telefon obnoven do továrního "
490"Pokud bude heslo zadáno nesprávně, bude telefon obnoven do továrního "
309"nastavení a všechna osobní data budou smazána."
491"nastavení a všechna osobní data budou smazána."
310
492
311−#: qml/Greeter/NarrowView.qml:116
493+#: qml/Greeter/NarrowView.qml:129
312#, qt-format
494#, qt-format
313msgid "Enter %1"
495msgid "Enter %1"
314msgstr "Vložte %1"
496msgstr "Vložte %1"
315
497
316−#: qml/Greeter/NarrowView.qml:117
498+#: qml/Greeter/NarrowView.qml:130
317msgid "Enter passphrase"
499msgid "Enter passphrase"
318msgstr "Vložte heslo"
500msgstr "Vložte heslo"
319
501
320−#: qml/Greeter/NarrowView.qml:118
502+#: qml/Greeter/NarrowView.qml:131
321msgid "Enter passcode"
503msgid "Enter passcode"
322msgstr "Vložte heslo"
504msgstr "Vložte heslo"
323
505
324−#: qml/Greeter/NarrowView.qml:119
506+#: qml/Greeter/NarrowView.qml:135
325#, qt-format
507#, qt-format
326msgid "Sorry, incorrect %1"
508msgid "Sorry, incorrect %1"
327msgstr "Špatné %1"
509msgstr "Špatné %1"
328
510
329−#: qml/Greeter/NarrowView.qml:120
511+#: qml/Greeter/NarrowView.qml:136
330msgid "Sorry, incorrect passphrase"
512msgid "Sorry, incorrect passphrase"
331msgstr "Špatné heslo"
513msgstr "Špatné heslo"
332
514
333−#: qml/Greeter/NarrowView.qml:121
515+#: qml/Greeter/NarrowView.qml:137
334msgctxt "passphrase"
516msgctxt "passphrase"
335msgid "Please re-enter"
517msgid "Please re-enter"
336msgstr ""
518msgstr ""
337
519
338−#: qml/Greeter/NarrowView.qml:122
520+#: qml/Greeter/NarrowView.qml:138
339msgid "Sorry, incorrect passcode"
521msgid "Sorry, incorrect passcode"
340msgstr "Špatné heslo"
522msgstr "Špatné heslo"
341
523
@@ -433,32 +615,12 @@ msgstr ""
433msgid "Drag using 3 fingers any application from one window to the other"
615msgid "Drag using 3 fingers any application from one window to the other"
434msgstr ""
616msgstr ""
435
617
436−#: qml/Tutorial/TutorialBottom.qml:78
618+#: qml/Tutorial/TutorialLeftLong.qml:49
437−msgid "Swipe up to add a contact"
438−msgstr ""
439−
440−#: qml/Tutorial/TutorialBottom.qml:80
441−msgid "Swipe up for favorite calculations"
442−msgstr ""
443−
444−#: qml/Tutorial/TutorialBottom.qml:82
445−msgid "Swipe up for recent calls"
446−msgstr ""
447−
448−#: qml/Tutorial/TutorialBottom.qml:84
449−msgid "Swipe up to create a message"
450−msgstr ""
451−
452−#: qml/Tutorial/TutorialBottom.qml:85
453−msgid "Swipe up to manage the app"
454−msgstr ""
455−
456−#: qml/Tutorial/TutorialLeftLong.qml:47
457msgid "Long swipe from the left edge to open the Today scope"
619msgid "Long swipe from the left edge to open the Today scope"
458msgstr ""
620msgstr ""
459
621
460#: qml/Tutorial/TutorialLeft.qml:47
622#: qml/Tutorial/TutorialLeft.qml:47
461−msgid "Swipe from the left edge to open the launcher"
623+msgid "Short swipe from the left edge to open the launcher"
462msgstr ""
624msgstr ""
463
625
464#: qml/Tutorial/TutorialRight.qml:55
626#: qml/Tutorial/TutorialRight.qml:55
@@ -466,15 +628,11 @@ msgid "Push your mouse against the right edge to view your open apps"
466msgstr ""
628msgstr ""
467
629
468#: qml/Tutorial/TutorialRight.qml:56
630#: qml/Tutorial/TutorialRight.qml:56
469−msgid "Short or long swipe from the right edge to view your open apps"
631+msgid "Swipe from the right edge to view your open apps"
470msgstr ""
632msgstr ""
471
633
472#: qml/Tutorial/TutorialTop.qml:53
634#: qml/Tutorial/TutorialTop.qml:53
473−msgid "Swipe from the top right edge to open the notification bar"
635+msgid "Swipe from the top edge to access notifications and quick settings"
474−msgstr ""
475−
476−#: qml/Tutorial/TutorialTop.qml:54
477−msgid "Swipe from the top edge to open the notification bar"
478msgstr ""
636msgstr ""
479
637
480#: qml/Wizard/Page.qml:54
638#: qml/Wizard/Page.qml:54
@@ -486,15 +644,32 @@ msgstr "Zpět"
486msgid "Language"
644msgid "Language"
487msgstr ""
645msgstr ""
488
646
489−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
647+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
490#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
648#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
491#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
649#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492#: qml/Wizard/Pages/75-report-check.qml:84
650#: qml/Wizard/Pages/75-report-check.qml:84
493−#: qml/Wizard/Pages/passcode-desktop.qml:124
651+#: qml/Wizard/Pages/passcode-desktop.qml:141
494#: qml/Wizard/Pages/password-set.qml:141
652#: qml/Wizard/Pages/password-set.qml:141
495msgid "Next"
653msgid "Next"
496msgstr ""
654msgstr ""
497
655
656+#: qml/Wizard/Pages/20-keyboard.qml:30
657+msgid "Select Keyboard"
658+msgstr ""
659+
660+#: qml/Wizard/Pages/20-keyboard.qml:70
661+msgid "Keyboard language"
662+msgstr ""
663+
664+#: qml/Wizard/Pages/20-keyboard.qml:92
665+msgid "Keyboard layout"
666+msgstr ""
667+
668+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
669+#: qml/Wizard/Pages/sim.qml:101
670+msgid "Skip"
671+msgstr "Přeskočit"
672+
498#: qml/Wizard/Pages/30-wifi.qml:29
673#: qml/Wizard/Pages/30-wifi.qml:29
499msgid "Connect to Wi‑Fi"
674msgid "Connect to Wi‑Fi"
500msgstr "Připojte se k Wi-Fi"
675msgstr "Připojte se k Wi-Fi"
@@ -511,11 +686,6 @@ msgstr ""
511msgid "No available Wi-Fi networks"
686msgid "No available Wi-Fi networks"
512msgstr ""
687msgstr ""
513
688
514−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515−#: qml/Wizard/Pages/sim.qml:101
516−msgid "Skip"
517−msgstr "Přeskočit"
518−
519#: qml/Wizard/Pages/40-location.qml:27
689#: qml/Wizard/Pages/40-location.qml:27
520msgid "Location Services"
690msgid "Location Services"
521msgstr ""
691msgstr ""
@@ -599,6 +769,35 @@ msgstr ""
599msgid "Privacy policy"
769msgid "Privacy policy"
600msgstr ""
770msgstr ""
601
771
772+#: qml/Wizard/Pages/77-system-update.qml:28
773+msgid "Update Device"
774+msgstr ""
775+
776+#: qml/Wizard/Pages/77-system-update.qml:55
777+msgid ""
778+"There is a system update available and ready to install. Afterwards, the "
779+"device will automatically restart."
780+msgstr ""
781+
782+#: qml/Wizard/Pages/77-system-update.qml:76
783+msgctxt "string identifying name of the update"
784+msgid "Ubuntu system"
785+msgstr ""
786+
787+#: qml/Wizard/Pages/77-system-update.qml:83
788+#, qt-format
789+msgctxt "version of the system update"
790+msgid "Version %1"
791+msgstr ""
792+
793+#: qml/Wizard/Pages/77-system-update.qml:102
794+msgid "This could take a few minutes..."
795+msgstr ""
796+
797+#: qml/Wizard/Pages/77-system-update.qml:116
798+msgid "Install and restart now"
799+msgstr ""
800+
602#: qml/Wizard/Pages/80-finished.qml:89
801#: qml/Wizard/Pages/80-finished.qml:89
603msgid "Welcome to Ubuntu"
802msgid "Welcome to Ubuntu"
604msgstr ""
803msgstr ""
@@ -642,7 +841,7 @@ msgid "Service Terms"
642msgstr ""
841msgstr ""
643
842
644#: qml/Wizard/Pages/passcode-confirm.qml:43
843#: qml/Wizard/Pages/passcode-confirm.qml:43
645−#: qml/Wizard/Pages/passcode-desktop.qml:80
844+#: qml/Wizard/Pages/passcode-desktop.qml:96
646msgid "Confirm passcode"
845msgid "Confirm passcode"
647msgstr "Potvrdit číselné heslo"
846msgstr "Potvrdit číselné heslo"
648
847
@@ -659,24 +858,24 @@ msgstr ""
659msgid "Lock Screen Passcode"
858msgid "Lock Screen Passcode"
660msgstr ""
859msgstr ""
661
860
662−#: qml/Wizard/Pages/passcode-desktop.qml:56
861+#: qml/Wizard/Pages/passcode-desktop.qml:60
663msgid "Enter 4 numbers to setup your passcode"
862msgid "Enter 4 numbers to setup your passcode"
664msgstr ""
863msgstr ""
665
864
666−#: qml/Wizard/Pages/passcode-desktop.qml:65
865+#: qml/Wizard/Pages/passcode-desktop.qml:76
667#: qml/Wizard/Pages/passcode-set.qml:54
866#: qml/Wizard/Pages/passcode-set.qml:54
668msgid "Choose passcode"
867msgid "Choose passcode"
669msgstr ""
868msgstr ""
670
869
671−#: qml/Wizard/Pages/passcode-desktop.qml:105
870+#: qml/Wizard/Pages/passcode-desktop.qml:126
672msgid "Passcode too short"
871msgid "Passcode too short"
673msgstr ""
872msgstr ""
674
873
675−#: qml/Wizard/Pages/passcode-desktop.qml:107
874+#: qml/Wizard/Pages/passcode-desktop.qml:128
676msgid "Passcodes match"
875msgid "Passcodes match"
677msgstr ""
876msgstr ""
678
877
679−#: qml/Wizard/Pages/passcode-desktop.qml:109
878+#: qml/Wizard/Pages/passcode-desktop.qml:130
680msgid "Passcodes do not match"
879msgid "Passcodes do not match"
681msgstr ""
880msgstr ""
682
881
@@ -725,26 +924,30 @@ msgid "To proceed with no SIM tap Skip."
725msgstr ""
924msgstr ""
726
925
727#: qml/Wizard/PasswordMeter.qml:87
926#: qml/Wizard/PasswordMeter.qml:87
728−msgid "Passwords match"
927+msgid "Password too short"
729msgstr ""
928msgstr ""
730
929
731#: qml/Wizard/PasswordMeter.qml:89
930#: qml/Wizard/PasswordMeter.qml:89
931+msgid "Passwords match"
932+msgstr ""
933+
934+#: qml/Wizard/PasswordMeter.qml:91
732msgid "Passwords do not match"
935msgid "Passwords do not match"
733msgstr ""
936msgstr ""
734
937
735−#: qml/Wizard/PasswordMeter.qml:93
938+#: qml/Wizard/PasswordMeter.qml:95
736msgid "Strong password"
939msgid "Strong password"
737msgstr ""
940msgstr ""
738
941
739−#: qml/Wizard/PasswordMeter.qml:95
942+#: qml/Wizard/PasswordMeter.qml:97
740msgid "Fair password"
943msgid "Fair password"
741msgstr ""
944msgstr ""
742
945
743−#: qml/Wizard/PasswordMeter.qml:97
946+#: qml/Wizard/PasswordMeter.qml:99
744msgid "Weak password"
947msgid "Weak password"
745msgstr ""
948msgstr ""
746
949
747−#: qml/Wizard/PasswordMeter.qml:99
950+#: qml/Wizard/PasswordMeter.qml:101
748msgid "Very weak password"
951msgid "Very weak password"
749msgstr ""
952msgstr ""
750
953
@@ -820,6 +1023,9 @@ msgstr ""
820#~ msgid "Shut down"
1023#~ msgid "Shut down"
821#~ msgstr "Vypnout"
1024#~ msgstr "Vypnout"
822
1025
1026+#~ msgid "Tap to unlock"
1027+#~ msgstr "Klepnout pro odemčení"
1028+
823#~ msgid "Please re-enter"
1029#~ msgid "Please re-enter"
824#~ msgstr "Vložte znovu"
1030#~ msgstr "Vložte znovu"
825
1031
po/cy.po+300−94
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11"PO-Revision-Date: 2015-07-31 13:21+0000\n"
11"PO-Revision-Date: 2015-07-31 13:21+0000\n"
12"Last-Translator: Owen Llywelyn <owen.llywelyn@gmail.com>\n"
12"Last-Translator: Owen Llywelyn <owen.llywelyn@gmail.com>\n"
13"Language-Team: Welsh <cy@li.org>\n"
13"Language-Team: Welsh <cy@li.org>\n"
@@ -16,41 +16,41 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
17"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
18"2 : 3;\n"
18"2 : 3;\n"
19−"X-Launchpad-Export-Date: 2016-06-02 06:21+0000\n"
19+"X-Launchpad-Export-Date: 2016-09-03 06:55+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
20+"X-Generator: Launchpad (build 18179)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
24msgstr "Cyfrinair: "
24msgstr "Cyfrinair: "
25
25
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
28msgid "Pin shortcut"
28msgid "Pin shortcut"
29msgstr "Pinio llwybr byr"
29msgstr "Pinio llwybr byr"
30
30
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
32msgid "Quit"
32msgid "Quit"
33msgstr ""
33msgstr ""
34
34
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
36msgid "Unpin shortcut"
36msgid "Unpin shortcut"
37msgstr "Dadbinio llwybr byr"
37msgstr "Dadbinio llwybr byr"
38
38
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
40msgid "Device Locked"
40msgid "Device Locked"
41msgstr "Dyfais ar glo"
41msgstr "Dyfais ar glo"
42
42
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
44msgid "You have been locked out due to too many failed passphrase attempts."
44msgid "You have been locked out due to too many failed passphrase attempts."
45msgstr ""
45msgstr ""
46"Cawsoch eich cloi allan am gyflwyno cyfrinair anghywir ormod o weithiau."
46"Cawsoch eich cloi allan am gyflwyno cyfrinair anghywir ormod o weithiau."
47
47
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
49msgid "You have been locked out due to too many failed passcode attempts."
49msgid "You have been locked out due to too many failed passcode attempts."
50msgstr ""
50msgstr ""
51"Cawsoch eich cloi allan am gyflwyno côd mynediad anghywir ormod o weithiau."
51"Cawsoch eich cloi allan am gyflwyno côd mynediad anghywir ormod o weithiau."
52
52
53−#: qml/Components/DelayedLockscreen.qml:74
53+#: qml/Components/DelayedLockscreen.qml:75
54#, qt-format
54#, qt-format
55msgid "Please wait %1 minute and then try again…"
55msgid "Please wait %1 minute and then try again…"
56msgid_plural "Please wait %1 minutes and then try again…"
56msgid_plural "Please wait %1 minutes and then try again…"
@@ -59,54 +59,54 @@ msgstr[1] "Arhoswch am %1 munud cyn cynnig eto..."
59msgstr[2] "Arhoswch am %1 munud cyn cynnig eto..."
59msgstr[2] "Arhoswch am %1 munud cyn cynnig eto..."
60msgstr[3] "Arhoswch am %1 munud cyn cynnig eto..."
60msgstr[3] "Arhoswch am %1 munud cyn cynnig eto..."
61
61
62−#: qml/Components/Dialogs.qml:144
62+#: qml/Components/Dialogs.qml:146
63msgctxt "Title: Lock/Log out dialog"
63msgctxt "Title: Lock/Log out dialog"
64msgid "Log out"
64msgid "Log out"
65msgstr "Allgofnodi"
65msgstr "Allgofnodi"
66
66
67−#: qml/Components/Dialogs.qml:145
67+#: qml/Components/Dialogs.qml:147
68msgid "Are you sure you want to log out?"
68msgid "Are you sure you want to log out?"
69msgstr "Ydych chi'n sicr eich bod am allgofnodi?"
69msgstr "Ydych chi'n sicr eich bod am allgofnodi?"
70
70
71−#: qml/Components/Dialogs.qml:147
71+#: qml/Components/Dialogs.qml:149
72msgctxt "Button: Lock the system"
72msgctxt "Button: Lock the system"
73msgid "Lock"
73msgid "Lock"
74msgstr "Cloi"
74msgstr "Cloi"
75
75
76−#: qml/Components/Dialogs.qml:154
76+#: qml/Components/Dialogs.qml:156
77msgctxt "Button: Log out from the system"
77msgctxt "Button: Log out from the system"
78msgid "Log Out"
78msgid "Log Out"
79msgstr "Allgofnodi"
79msgstr "Allgofnodi"
80
80
81−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
81+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
82#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
82#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
83#: qml/Wizard/Pages/passcode-set.qml:32
83#: qml/Wizard/Pages/passcode-set.qml:32
84msgid "Cancel"
84msgid "Cancel"
85msgstr "Diddymu"
85msgstr "Diddymu"
86
86
87−#: qml/Components/Dialogs.qml:173
87+#: qml/Components/Dialogs.qml:175
88msgctxt "Title: Reboot dialog"
88msgctxt "Title: Reboot dialog"
89msgid "Reboot"
89msgid "Reboot"
90msgstr "Ailgychwyn"
90msgstr "Ailgychwyn"
91
91
92−#: qml/Components/Dialogs.qml:174
92+#: qml/Components/Dialogs.qml:176
93msgid "Are you sure you want to reboot?"
93msgid "Are you sure you want to reboot?"
94msgstr "Ydych chi'n sicr eich bod am ailgychwyn?"
94msgstr "Ydych chi'n sicr eich bod am ailgychwyn?"
95
95
96−#: qml/Components/Dialogs.qml:176
96+#: qml/Components/Dialogs.qml:178
97msgid "No"
97msgid "No"
98msgstr "Na"
98msgstr "Na"
99
99
100−#: qml/Components/Dialogs.qml:182
100+#: qml/Components/Dialogs.qml:184
101msgid "Yes"
101msgid "Yes"
102msgstr "Ydw"
102msgstr "Ydw"
103
103
104−#: qml/Components/Dialogs.qml:197
104+#: qml/Components/Dialogs.qml:199
105msgctxt "Title: Power off/Restart dialog"
105msgctxt "Title: Power off/Restart dialog"
106msgid "Power"
106msgid "Power"
107msgstr "Pŵer"
107msgstr "Pŵer"
108
108
109−#: qml/Components/Dialogs.qml:198
109+#: qml/Components/Dialogs.qml:200
110msgid ""
110msgid ""
111"Are you sure you would like\n"
111"Are you sure you would like\n"
112"to power off?"
112"to power off?"
@@ -114,28 +114,198 @@ msgstr ""
114"Ydych chi'n sicr eich bod am\n"
114"Ydych chi'n sicr eich bod am\n"
115"ddiffodd y pŵer?"
115"ddiffodd y pŵer?"
116
116
117−#: qml/Components/Dialogs.qml:200
117+#: qml/Components/Dialogs.qml:202
118msgctxt "Button: Power off the system"
118msgctxt "Button: Power off the system"
119msgid "Power off"
119msgid "Power off"
120msgstr "Diffodd y pŵer"
120msgstr "Diffodd y pŵer"
121
121
122−#: qml/Components/Dialogs.qml:209
122+#: qml/Components/Dialogs.qml:211
123msgctxt "Button: Restart the system"
123msgctxt "Button: Restart the system"
124msgid "Restart"
124msgid "Restart"
125msgstr "Ailgychwyn"
125msgstr "Ailgychwyn"
126
126
127−#: qml/Components/Lockscreen.qml:231
127+#: qml/Components/KeyboardShortcutsOverlay.qml:41
128+msgid "Keyboard Shortcuts"
129+msgstr ""
130+
131+#: qml/Components/KeyboardShortcutsOverlay.qml:55
132+msgid "Unity 8"
133+msgstr ""
134+
135+#: qml/Components/KeyboardShortcutsOverlay.qml:62
136+msgid "PrtScr"
137+msgstr ""
138+
139+#: qml/Components/KeyboardShortcutsOverlay.qml:67
140+msgid "Takes a screenshot."
141+msgstr ""
142+
143+#: qml/Components/KeyboardShortcutsOverlay.qml:75
144+msgid "Alt + PrtScr"
145+msgstr ""
146+
147+#: qml/Components/KeyboardShortcutsOverlay.qml:80
148+msgid "Takes a screenshot of a window."
149+msgstr ""
150+
151+#: qml/Components/KeyboardShortcutsOverlay.qml:88
152+msgid "Super + Space"
153+msgstr ""
154+
155+#: qml/Components/KeyboardShortcutsOverlay.qml:93
156+msgid "Switches to next keyboard layout."
157+msgstr ""
158+
159+#: qml/Components/KeyboardShortcutsOverlay.qml:101
160+msgid "Super + Shift + Space"
161+msgstr ""
162+
163+#: qml/Components/KeyboardShortcutsOverlay.qml:106
164+msgid "Switches to previous keyboard layout."
165+msgstr ""
166+
167+#: qml/Components/KeyboardShortcutsOverlay.qml:118
168+msgid "Launcher"
169+msgstr ""
170+
171+#: qml/Components/KeyboardShortcutsOverlay.qml:125
172+msgid "Super (Hold)"
173+msgstr ""
174+
175+#: qml/Components/KeyboardShortcutsOverlay.qml:130
176+msgid "Opens the launcher, displays shortcuts."
177+msgstr ""
178+
179+#: qml/Components/KeyboardShortcutsOverlay.qml:138
180+msgid "Alt + F1"
181+msgstr ""
182+
183+#: qml/Components/KeyboardShortcutsOverlay.qml:143
184+msgid "Opens launcher keyboard navigation mode."
185+msgstr ""
186+
187+#: qml/Components/KeyboardShortcutsOverlay.qml:151
188+msgid "Super + Tab"
189+msgstr ""
190+
191+#: qml/Components/KeyboardShortcutsOverlay.qml:156
192+msgid "Switches applications via the launcher."
193+msgstr ""
194+
195+#: qml/Components/KeyboardShortcutsOverlay.qml:164
196+msgid "Super + 0 to 9"
197+msgstr ""
198+
199+#: qml/Components/KeyboardShortcutsOverlay.qml:169
200+msgid "Same as clicking on a launcher icon."
201+msgstr ""
202+
203+#: qml/Components/KeyboardShortcutsOverlay.qml:181
204+msgid "Scopes"
205+msgstr ""
206+
207+#: qml/Components/KeyboardShortcutsOverlay.qml:188
208+msgid "Super (Tap)"
209+msgstr ""
210+
211+#: qml/Components/KeyboardShortcutsOverlay.qml:193
212+msgid "Opens the Scopes home."
213+msgstr ""
214+
215+#: qml/Components/KeyboardShortcutsOverlay.qml:209
216+msgid "Switching"
217+msgstr ""
218+
219+#: qml/Components/KeyboardShortcutsOverlay.qml:216
220+msgid "Alt + Tab"
221+msgstr ""
222+
223+#: qml/Components/KeyboardShortcutsOverlay.qml:221
224+msgid "Switches between applications."
225+msgstr ""
226+
227+#: qml/Components/KeyboardShortcutsOverlay.qml:229
228+msgid "Super + W"
229+msgstr ""
230+
231+#: qml/Components/KeyboardShortcutsOverlay.qml:234
232+msgid "Opens the desktop spread."
233+msgstr ""
234+
235+#: qml/Components/KeyboardShortcutsOverlay.qml:242
236+msgid "Cursor Left or Right"
237+msgstr ""
238+
239+#: qml/Components/KeyboardShortcutsOverlay.qml:247
240+msgid "Moves the focus."
241+msgstr ""
242+
243+#: qml/Components/KeyboardShortcutsOverlay.qml:259
244+msgid "Windows"
245+msgstr ""
246+
247+#: qml/Components/KeyboardShortcutsOverlay.qml:266
248+msgid "Ctrl + Super + D"
249+msgstr ""
250+
251+#: qml/Components/KeyboardShortcutsOverlay.qml:271
252+msgid "Minimizes all windows."
253+msgstr ""
254+
255+#: qml/Components/KeyboardShortcutsOverlay.qml:279
256+msgid "Ctrl + Super + Up"
257+msgstr ""
258+
259+#: qml/Components/KeyboardShortcutsOverlay.qml:284
260+msgid "Maximizes the current window."
261+msgstr ""
262+
263+#: qml/Components/KeyboardShortcutsOverlay.qml:292
264+msgid "Ctrl + Super + Down"
265+msgstr ""
266+
267+#: qml/Components/KeyboardShortcutsOverlay.qml:297
268+msgid "Minimizes or restores the current window."
269+msgstr ""
270+
271+#: qml/Components/KeyboardShortcutsOverlay.qml:305
272+msgid "Ctrl + Super + Left or Right"
273+msgstr ""
274+
275+#: qml/Components/KeyboardShortcutsOverlay.qml:310
276+msgid "Semi-maximizes the current window."
277+msgstr ""
278+
279+#: qml/Components/KeyboardShortcutsOverlay.qml:318
280+msgid "Alt + F4"
281+msgstr ""
282+
283+#: qml/Components/KeyboardShortcutsOverlay.qml:323
284+msgid "Closes the current window."
285+msgstr ""
286+
287+#: qml/Components/Lockscreen.qml:239
128msgid "Return to Call"
288msgid "Return to Call"
129msgstr "Nôl i'r alwad"
289msgstr "Nôl i'r alwad"
130
290
131−#: qml/Components/Lockscreen.qml:231
291+#: qml/Components/Lockscreen.qml:239
132msgid "Emergency Call"
292msgid "Emergency Call"
133msgstr "Galwad Frys"
293msgstr "Galwad Frys"
134
294
135−#: qml/Components/Lockscreen.qml:263
295+#: qml/Components/Lockscreen.qml:271
136msgid "OK"
296msgid "OK"
137msgstr "Iawn"
297msgstr "Iawn"
138
298
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
300+#, qt-format
301+msgid "%1:%2:%3"
302+msgstr ""
303+
304+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
305+#, qt-format
306+msgid "%1:%2"
307+msgstr ""
308+
139#: qml/Components/ModeSwitchWarningDialog.qml:32
309#: qml/Components/ModeSwitchWarningDialog.qml:32
140msgid "Apps may have unsaved data:"
310msgid "Apps may have unsaved data:"
141msgstr ""
311msgstr ""
@@ -162,6 +332,10 @@ msgstr ""
162msgid "Close all"
332msgid "Close all"
163msgstr ""
333msgstr ""
164
334
335+#: qml/Components/SharingPicker.qml:54
336+msgid "Preview Share Item"
337+msgstr ""
338+
165#: qml/Dash/DashPageHeader.qml:333
339#: qml/Dash/DashPageHeader.qml:333
166msgctxt "Button: Open the Ubuntu Store"
340msgctxt "Button: Open the Ubuntu Store"
167msgid "Store"
341msgid "Store"
@@ -193,15 +367,15 @@ msgstr ""
193msgid "Reset"
367msgid "Reset"
194msgstr ""
368msgstr ""
195
369
196−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
370+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
197msgid "Show less"
371msgid "Show less"
198msgstr ""
372msgstr ""
199
373
200−#: qml/Dash/GenericScopeView.qml:579
374+#: qml/Dash/GenericScopeView.qml:580
201msgid "Show all"
375msgid "Show all"
202msgstr ""
376msgstr ""
203
377
204−#: qml/Dash/GenericScopeView.qml:636
378+#: qml/Dash/GenericScopeView.qml:637
205msgctxt "Label: Hint for dash search line edit"
379msgctxt "Label: Hint for dash search line edit"
206msgid "Search"
380msgid "Search"
207msgstr "Chwilio"
381msgstr "Chwilio"
@@ -235,10 +409,6 @@ msgstr "Graddio hwn"
235msgid "Add a review"
409msgid "Add a review"
236msgstr "Ychwanegu adolygiad"
410msgstr "Ychwanegu adolygiad"
237
411
238−#: qml/Dash/Previews/PreviewSharing.qml:66
239−msgid "Preview Share Item"
240−msgstr ""
241−
242#: qml/Dash/PullToRefreshScopeStyle.qml:55
412#: qml/Dash/PullToRefreshScopeStyle.qml:55
243msgid "Pull to refresh…"
413msgid "Pull to refresh…"
244msgstr "Tynnwch i adnewyddu..."
414msgstr "Tynnwch i adnewyddu..."
@@ -255,11 +425,11 @@ msgstr "Galluogi data lleoliad"
255msgid "Manage"
425msgid "Manage"
256msgstr "Rheoli"
426msgstr "Rheoli"
257
427
258−#: qml/Dash/ScopesList.qml:101
428+#: qml/Dash/ScopesList.qml:102
259msgid "Home"
429msgid "Home"
260msgstr "Cartref"
430msgstr "Cartref"
261
431
262−#: qml/Dash/ScopesList.qml:102
432+#: qml/Dash/ScopesList.qml:103
263msgid "Also installed"
433msgid "Also installed"
264msgstr "Hefyd wedi gosod"
434msgstr "Hefyd wedi gosod"
265
435
@@ -269,17 +439,29 @@ msgid ""
269"touch pad to interact with the pointer."
439"touch pad to interact with the pointer."
270msgstr ""
440msgstr ""
271
441
272−#: qml/Greeter/CoverPage.qml:118
442+#: qml/Greeter/CoverPage.qml:127
273msgid "Unlock"
443msgid "Unlock"
274msgstr "Datgloi"
444msgstr "Datgloi"
275
445
276−#: qml/Greeter/LoginList.qml:239
446+#: qml/Greeter/Greeter.qml:539
447+msgid "Try again"
448+msgstr ""
449+
450+#: qml/Greeter/LoginList.qml:63
451+msgid "Passphrase"
452+msgstr ""
453+
454+#: qml/Greeter/LoginList.qml:64
455+msgid "Passcode"
456+msgstr ""
457+
458+#: qml/Greeter/LoginList.qml:259
277msgid "Retry"
459msgid "Retry"
278msgstr "Ailgynnig"
460msgstr "Ailgynnig"
279
461
280−#: qml/Greeter/LoginList.qml:240
462+#: qml/Greeter/LoginList.qml:260
281−msgid "Tap to unlock"
463+msgid "Log In"
282−msgstr "Tapiwch i ddatgloi"
464+msgstr ""
283
465
284#: qml/Greeter/NarrowView.qml:54
466#: qml/Greeter/NarrowView.qml:54
285msgid "Sorry, incorrect passphrase."
467msgid "Sorry, incorrect passphrase."
@@ -309,34 +491,34 @@ msgstr ""
309"Os fydd y cod cyfrinachol yn anghywir bydd eich ffôn yn cael ei ailosod i "
491"Os fydd y cod cyfrinachol yn anghywir bydd eich ffôn yn cael ei ailosod i "
310"gyflwr ffatri a bydd data personol yn cael ei ddileu."
492"gyflwr ffatri a bydd data personol yn cael ei ddileu."
311
493
312−#: qml/Greeter/NarrowView.qml:116
494+#: qml/Greeter/NarrowView.qml:129
313#, qt-format
495#, qt-format
314msgid "Enter %1"
496msgid "Enter %1"
315msgstr "Rhowch %1"
497msgstr "Rhowch %1"
316
498
317−#: qml/Greeter/NarrowView.qml:117
499+#: qml/Greeter/NarrowView.qml:130
318msgid "Enter passphrase"
500msgid "Enter passphrase"
319msgstr "Rhowch gyfrinair"
501msgstr "Rhowch gyfrinair"
320
502
321−#: qml/Greeter/NarrowView.qml:118
503+#: qml/Greeter/NarrowView.qml:131
322msgid "Enter passcode"
504msgid "Enter passcode"
323msgstr "Rhowch god cyfrinachol"
505msgstr "Rhowch god cyfrinachol"
324
506
325−#: qml/Greeter/NarrowView.qml:119
507+#: qml/Greeter/NarrowView.qml:135
326#, qt-format
508#, qt-format
327msgid "Sorry, incorrect %1"
509msgid "Sorry, incorrect %1"
328msgstr "%1 anghywir"
510msgstr "%1 anghywir"
329
511
330−#: qml/Greeter/NarrowView.qml:120
512+#: qml/Greeter/NarrowView.qml:136
331msgid "Sorry, incorrect passphrase"
513msgid "Sorry, incorrect passphrase"
332msgstr "Cyfrinair anghywir"
514msgstr "Cyfrinair anghywir"
333
515
334−#: qml/Greeter/NarrowView.qml:121
516+#: qml/Greeter/NarrowView.qml:137
335msgctxt "passphrase"
517msgctxt "passphrase"
336msgid "Please re-enter"
518msgid "Please re-enter"
337msgstr "Ceisiwch eto"
519msgstr "Ceisiwch eto"
338
520
339−#: qml/Greeter/NarrowView.qml:122
521+#: qml/Greeter/NarrowView.qml:138
340msgid "Sorry, incorrect passcode"
522msgid "Sorry, incorrect passcode"
341msgstr "Cod cyfrinachol anghywir"
523msgstr "Cod cyfrinachol anghywir"
342
524
@@ -437,32 +619,12 @@ msgstr ""
437msgid "Drag using 3 fingers any application from one window to the other"
619msgid "Drag using 3 fingers any application from one window to the other"
438msgstr ""
620msgstr ""
439
621
440−#: qml/Tutorial/TutorialBottom.qml:78
622+#: qml/Tutorial/TutorialLeftLong.qml:49
441−msgid "Swipe up to add a contact"
442−msgstr ""
443−
444−#: qml/Tutorial/TutorialBottom.qml:80
445−msgid "Swipe up for favorite calculations"
446−msgstr ""
447−
448−#: qml/Tutorial/TutorialBottom.qml:82
449−msgid "Swipe up for recent calls"
450−msgstr ""
451−
452−#: qml/Tutorial/TutorialBottom.qml:84
453−msgid "Swipe up to create a message"
454−msgstr ""
455−
456−#: qml/Tutorial/TutorialBottom.qml:85
457−msgid "Swipe up to manage the app"
458−msgstr ""
459−
460−#: qml/Tutorial/TutorialLeftLong.qml:47
461msgid "Long swipe from the left edge to open the Today scope"
623msgid "Long swipe from the left edge to open the Today scope"
462msgstr ""
624msgstr ""
463
625
464#: qml/Tutorial/TutorialLeft.qml:47
626#: qml/Tutorial/TutorialLeft.qml:47
465−msgid "Swipe from the left edge to open the launcher"
627+msgid "Short swipe from the left edge to open the launcher"
466msgstr ""
628msgstr ""
467
629
468#: qml/Tutorial/TutorialRight.qml:55
630#: qml/Tutorial/TutorialRight.qml:55
@@ -470,15 +632,11 @@ msgid "Push your mouse against the right edge to view your open apps"
470msgstr ""
632msgstr ""
471
633
472#: qml/Tutorial/TutorialRight.qml:56
634#: qml/Tutorial/TutorialRight.qml:56
473−msgid "Short or long swipe from the right edge to view your open apps"
635+msgid "Swipe from the right edge to view your open apps"
474msgstr ""
636msgstr ""
475
637
476#: qml/Tutorial/TutorialTop.qml:53
638#: qml/Tutorial/TutorialTop.qml:53
477−msgid "Swipe from the top right edge to open the notification bar"
639+msgid "Swipe from the top edge to access notifications and quick settings"
478−msgstr ""
479−
480−#: qml/Tutorial/TutorialTop.qml:54
481−msgid "Swipe from the top edge to open the notification bar"
482msgstr ""
640msgstr ""
483
641
484#: qml/Wizard/Page.qml:54
642#: qml/Wizard/Page.qml:54
@@ -490,15 +648,32 @@ msgstr "Nôl"
490msgid "Language"
648msgid "Language"
491msgstr ""
649msgstr ""
492
650
493−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
651+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
494#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
652#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
495#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
653#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
496#: qml/Wizard/Pages/75-report-check.qml:84
654#: qml/Wizard/Pages/75-report-check.qml:84
497−#: qml/Wizard/Pages/passcode-desktop.qml:124
655+#: qml/Wizard/Pages/passcode-desktop.qml:141
498#: qml/Wizard/Pages/password-set.qml:141
656#: qml/Wizard/Pages/password-set.qml:141
499msgid "Next"
657msgid "Next"
500msgstr ""
658msgstr ""
501
659
660+#: qml/Wizard/Pages/20-keyboard.qml:30
661+msgid "Select Keyboard"
662+msgstr ""
663+
664+#: qml/Wizard/Pages/20-keyboard.qml:70
665+msgid "Keyboard language"
666+msgstr ""
667+
668+#: qml/Wizard/Pages/20-keyboard.qml:92
669+msgid "Keyboard layout"
670+msgstr ""
671+
672+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
673+#: qml/Wizard/Pages/sim.qml:101
674+msgid "Skip"
675+msgstr "Neidio"
676+
502#: qml/Wizard/Pages/30-wifi.qml:29
677#: qml/Wizard/Pages/30-wifi.qml:29
503msgid "Connect to Wi‑Fi"
678msgid "Connect to Wi‑Fi"
504msgstr "Cysylltu â diwifr"
679msgstr "Cysylltu â diwifr"
@@ -515,11 +690,6 @@ msgstr ""
515msgid "No available Wi-Fi networks"
690msgid "No available Wi-Fi networks"
516msgstr ""
691msgstr ""
517
692
518−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
519−#: qml/Wizard/Pages/sim.qml:101
520−msgid "Skip"
521−msgstr "Neidio"
522−
523#: qml/Wizard/Pages/40-location.qml:27
693#: qml/Wizard/Pages/40-location.qml:27
524msgid "Location Services"
694msgid "Location Services"
525msgstr ""
695msgstr ""
@@ -603,6 +773,35 @@ msgstr ""
603msgid "Privacy policy"
773msgid "Privacy policy"
604msgstr ""
774msgstr ""
605
775
776+#: qml/Wizard/Pages/77-system-update.qml:28
777+msgid "Update Device"
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:55
781+msgid ""
782+"There is a system update available and ready to install. Afterwards, the "
783+"device will automatically restart."
784+msgstr ""
785+
786+#: qml/Wizard/Pages/77-system-update.qml:76
787+msgctxt "string identifying name of the update"
788+msgid "Ubuntu system"
789+msgstr ""
790+
791+#: qml/Wizard/Pages/77-system-update.qml:83
792+#, qt-format
793+msgctxt "version of the system update"
794+msgid "Version %1"
795+msgstr ""
796+
797+#: qml/Wizard/Pages/77-system-update.qml:102
798+msgid "This could take a few minutes..."
799+msgstr ""
800+
801+#: qml/Wizard/Pages/77-system-update.qml:116
802+msgid "Install and restart now"
803+msgstr ""
804+
606#: qml/Wizard/Pages/80-finished.qml:89
805#: qml/Wizard/Pages/80-finished.qml:89
607msgid "Welcome to Ubuntu"
806msgid "Welcome to Ubuntu"
608msgstr ""
807msgstr ""
@@ -646,7 +845,7 @@ msgid "Service Terms"
646msgstr ""
845msgstr ""
647
846
648#: qml/Wizard/Pages/passcode-confirm.qml:43
847#: qml/Wizard/Pages/passcode-confirm.qml:43
649−#: qml/Wizard/Pages/passcode-desktop.qml:80
848+#: qml/Wizard/Pages/passcode-desktop.qml:96
650msgid "Confirm passcode"
849msgid "Confirm passcode"
651msgstr "Cadarnhau cod cyfrinachol"
850msgstr "Cadarnhau cod cyfrinachol"
652
851
@@ -663,24 +862,24 @@ msgstr ""
663msgid "Lock Screen Passcode"
862msgid "Lock Screen Passcode"
664msgstr ""
863msgstr ""
665
864
666−#: qml/Wizard/Pages/passcode-desktop.qml:56
865+#: qml/Wizard/Pages/passcode-desktop.qml:60
667msgid "Enter 4 numbers to setup your passcode"
866msgid "Enter 4 numbers to setup your passcode"
668msgstr ""
867msgstr ""
669
868
670−#: qml/Wizard/Pages/passcode-desktop.qml:65
869+#: qml/Wizard/Pages/passcode-desktop.qml:76
671#: qml/Wizard/Pages/passcode-set.qml:54
870#: qml/Wizard/Pages/passcode-set.qml:54
672msgid "Choose passcode"
871msgid "Choose passcode"
673msgstr ""
872msgstr ""
674
873
675−#: qml/Wizard/Pages/passcode-desktop.qml:105
874+#: qml/Wizard/Pages/passcode-desktop.qml:126
676msgid "Passcode too short"
875msgid "Passcode too short"
677msgstr ""
876msgstr ""
678
877
679−#: qml/Wizard/Pages/passcode-desktop.qml:107
878+#: qml/Wizard/Pages/passcode-desktop.qml:128
680msgid "Passcodes match"
879msgid "Passcodes match"
681msgstr ""
880msgstr ""
682
881
683−#: qml/Wizard/Pages/passcode-desktop.qml:109
882+#: qml/Wizard/Pages/passcode-desktop.qml:130
684msgid "Passcodes do not match"
883msgid "Passcodes do not match"
685msgstr ""
884msgstr ""
686
885
@@ -729,26 +928,30 @@ msgid "To proceed with no SIM tap Skip."
729msgstr ""
928msgstr ""
730
929
731#: qml/Wizard/PasswordMeter.qml:87
930#: qml/Wizard/PasswordMeter.qml:87
732−msgid "Passwords match"
931+msgid "Password too short"
733msgstr ""
932msgstr ""
734
933
735#: qml/Wizard/PasswordMeter.qml:89
934#: qml/Wizard/PasswordMeter.qml:89
935+msgid "Passwords match"
936+msgstr ""
937+
938+#: qml/Wizard/PasswordMeter.qml:91
736msgid "Passwords do not match"
939msgid "Passwords do not match"
737msgstr ""
940msgstr ""
738
941
739−#: qml/Wizard/PasswordMeter.qml:93
942+#: qml/Wizard/PasswordMeter.qml:95
740msgid "Strong password"
943msgid "Strong password"
741msgstr ""
944msgstr ""
742
945
743−#: qml/Wizard/PasswordMeter.qml:95
946+#: qml/Wizard/PasswordMeter.qml:97
744msgid "Fair password"
947msgid "Fair password"
745msgstr ""
948msgstr ""
746
949
747−#: qml/Wizard/PasswordMeter.qml:97
950+#: qml/Wizard/PasswordMeter.qml:99
748msgid "Weak password"
951msgid "Weak password"
749msgstr ""
952msgstr ""
750
953
751−#: qml/Wizard/PasswordMeter.qml:99
954+#: qml/Wizard/PasswordMeter.qml:101
752msgid "Very weak password"
955msgid "Very weak password"
753msgstr ""
956msgstr ""
754
957
@@ -803,6 +1006,9 @@ msgstr ""
803#~ msgid "See less"
1006#~ msgid "See less"
804#~ msgstr "Gweld llai"
1007#~ msgstr "Gweld llai"
805
1008
1009+#~ msgid "Tap to unlock"
1010+#~ msgstr "Tapiwch i ddatgloi"
1011+
806#~ msgid "This action does different things for different apps"
1012#~ msgid "This action does different things for different apps"
807#~ msgstr "Mae'r weithred hon yn gwneud pethau gwahanol mewn apiau gwahanol"
1013#~ msgstr "Mae'r weithred hon yn gwneud pethau gwahanol mewn apiau gwahanol"
808
1014
po/da.po+300−94
@@ -8,7 +8,7 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
11+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
12"PO-Revision-Date: 2015-07-06 12:05+0000\n"
12"PO-Revision-Date: 2015-07-06 12:05+0000\n"
13"Last-Translator: Folmer Fredslund <Unknown>\n"
13"Last-Translator: Folmer Fredslund <Unknown>\n"
14"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
14"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -16,97 +16,97 @@ msgstr ""
16"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
19+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
20−"X-Generator: Launchpad (build 18053)\n"
20+"X-Generator: Launchpad (build 18179)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
24msgstr "Adgangskode: "
24msgstr "Adgangskode: "
25
25
26−#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:49
27−#: plugins/Unity/Launcher/launcheritem.cpp:107
27+#: plugins/Unity/Launcher/launcheritem.cpp:108
28msgid "Pin shortcut"
28msgid "Pin shortcut"
29msgstr "Fastgør genvej"
29msgstr "Fastgør genvej"
30
30
31−#: plugins/Unity/Launcher/launcheritem.cpp:53
31+#: plugins/Unity/Launcher/launcheritem.cpp:54
32msgid "Quit"
32msgid "Quit"
33msgstr ""
33msgstr ""
34
34
35−#: plugins/Unity/Launcher/launcheritem.cpp:107
35+#: plugins/Unity/Launcher/launcheritem.cpp:108
36msgid "Unpin shortcut"
36msgid "Unpin shortcut"
37msgstr "Gør genvej flytbar"
37msgstr "Gør genvej flytbar"
38
38
39−#: qml/Components/DelayedLockscreen.qml:49
39+#: qml/Components/DelayedLockscreen.qml:50
40msgid "Device Locked"
40msgid "Device Locked"
41msgstr "Enheden er låst"
41msgstr "Enheden er låst"
42
42
43−#: qml/Components/DelayedLockscreen.qml:64
43+#: qml/Components/DelayedLockscreen.qml:65
44msgid "You have been locked out due to too many failed passphrase attempts."
44msgid "You have been locked out due to too many failed passphrase attempts."
45msgstr ""
45msgstr ""
46"Du er blevet låst ude på grund af for mange fejlslagne forsøg på at angive "
46"Du er blevet låst ude på grund af for mange fejlslagne forsøg på at angive "
47"adgangskode."
47"adgangskode."
48
48
49−#: qml/Components/DelayedLockscreen.qml:65
49+#: qml/Components/DelayedLockscreen.qml:66
50msgid "You have been locked out due to too many failed passcode attempts."
50msgid "You have been locked out due to too many failed passcode attempts."
51msgstr ""
51msgstr ""
52"Du er blevet låst ude på grund af for mange fejlslagne forsøg på at angive "
52"Du er blevet låst ude på grund af for mange fejlslagne forsøg på at angive "
53"adgangskode."
53"adgangskode."
54
54
55−#: qml/Components/DelayedLockscreen.qml:74
55+#: qml/Components/DelayedLockscreen.qml:75
56#, qt-format
56#, qt-format
57msgid "Please wait %1 minute and then try again…"
57msgid "Please wait %1 minute and then try again…"
58msgid_plural "Please wait %1 minutes and then try again…"
58msgid_plural "Please wait %1 minutes and then try again…"
59msgstr[0] "Vent venligst %1 minut og prøv igen..."
59msgstr[0] "Vent venligst %1 minut og prøv igen..."
60msgstr[1] "Vent venligst %1 minutter og prøv igen..."
60msgstr[1] "Vent venligst %1 minutter og prøv igen..."
61
61
62−#: qml/Components/Dialogs.qml:144
62+#: qml/Components/Dialogs.qml:146
63msgctxt "Title: Lock/Log out dialog"
63msgctxt "Title: Lock/Log out dialog"
64msgid "Log out"
64msgid "Log out"
65msgstr "Log af"
65msgstr "Log af"
66
66
67−#: qml/Components/Dialogs.qml:145
67+#: qml/Components/Dialogs.qml:147
68msgid "Are you sure you want to log out?"
68msgid "Are you sure you want to log out?"
69msgstr "Vil du logge ud?"
69msgstr "Vil du logge ud?"
70
70
71−#: qml/Components/Dialogs.qml:147
71+#: qml/Components/Dialogs.qml:149
72msgctxt "Button: Lock the system"
72msgctxt "Button: Lock the system"
73msgid "Lock"
73msgid "Lock"
74msgstr "Lås"
74msgstr "Lås"
75
75
76−#: qml/Components/Dialogs.qml:154
76+#: qml/Components/Dialogs.qml:156
77msgctxt "Button: Log out from the system"
77msgctxt "Button: Log out from the system"
78msgid "Log Out"
78msgid "Log Out"
79msgstr "Log af"
79msgstr "Log af"
80
80
81−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
81+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
82#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
82#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
83#: qml/Wizard/Pages/passcode-set.qml:32
83#: qml/Wizard/Pages/passcode-set.qml:32
84msgid "Cancel"
84msgid "Cancel"
85msgstr "Annullér"
85msgstr "Annullér"
86
86
87−#: qml/Components/Dialogs.qml:173
87+#: qml/Components/Dialogs.qml:175
88msgctxt "Title: Reboot dialog"
88msgctxt "Title: Reboot dialog"
89msgid "Reboot"
89msgid "Reboot"
90msgstr "Genstart"
90msgstr "Genstart"
91
91
92−#: qml/Components/Dialogs.qml:174
92+#: qml/Components/Dialogs.qml:176
93msgid "Are you sure you want to reboot?"
93msgid "Are you sure you want to reboot?"
94msgstr "Er du sikker på du vil genstarte?"
94msgstr "Er du sikker på du vil genstarte?"
95
95
96−#: qml/Components/Dialogs.qml:176
96+#: qml/Components/Dialogs.qml:178
97msgid "No"
97msgid "No"
98msgstr "Nej"
98msgstr "Nej"
99
99
100−#: qml/Components/Dialogs.qml:182
100+#: qml/Components/Dialogs.qml:184
101msgid "Yes"
101msgid "Yes"
102msgstr "Ja"
102msgstr "Ja"
103
103
104−#: qml/Components/Dialogs.qml:197
104+#: qml/Components/Dialogs.qml:199
105msgctxt "Title: Power off/Restart dialog"
105msgctxt "Title: Power off/Restart dialog"
106msgid "Power"
106msgid "Power"
107msgstr "Sluk/genstart"
107msgstr "Sluk/genstart"
108
108
109−#: qml/Components/Dialogs.qml:198
109+#: qml/Components/Dialogs.qml:200
110msgid ""
110msgid ""
111"Are you sure you would like\n"
111"Are you sure you would like\n"
112"to power off?"
112"to power off?"
@@ -114,28 +114,198 @@ msgstr ""
114"Er du sikker på at du vil\n"
114"Er du sikker på at du vil\n"
115"slukke enheden?"
115"slukke enheden?"
116
116
117−#: qml/Components/Dialogs.qml:200
117+#: qml/Components/Dialogs.qml:202
118msgctxt "Button: Power off the system"
118msgctxt "Button: Power off the system"
119msgid "Power off"
119msgid "Power off"
120msgstr "Luk ned"
120msgstr "Luk ned"
121
121
122−#: qml/Components/Dialogs.qml:209
122+#: qml/Components/Dialogs.qml:211
123msgctxt "Button: Restart the system"
123msgctxt "Button: Restart the system"
124msgid "Restart"
124msgid "Restart"
125msgstr "Genstart"
125msgstr "Genstart"
126
126
127−#: qml/Components/Lockscreen.qml:231
127+#: qml/Components/KeyboardShortcutsOverlay.qml:41
128+msgid "Keyboard Shortcuts"
129+msgstr ""
130+
131+#: qml/Components/KeyboardShortcutsOverlay.qml:55
132+msgid "Unity 8"
133+msgstr ""
134+
135+#: qml/Components/KeyboardShortcutsOverlay.qml:62
136+msgid "PrtScr"
137+msgstr ""
138+
139+#: qml/Components/KeyboardShortcutsOverlay.qml:67
140+msgid "Takes a screenshot."
141+msgstr ""
142+
143+#: qml/Components/KeyboardShortcutsOverlay.qml:75
144+msgid "Alt + PrtScr"
145+msgstr ""
146+
147+#: qml/Components/KeyboardShortcutsOverlay.qml:80
148+msgid "Takes a screenshot of a window."
149+msgstr ""
150+
151+#: qml/Components/KeyboardShortcutsOverlay.qml:88
152+msgid "Super + Space"
153+msgstr ""
154+
155+#: qml/Components/KeyboardShortcutsOverlay.qml:93
156+msgid "Switches to next keyboard layout."
157+msgstr ""
158+
159+#: qml/Components/KeyboardShortcutsOverlay.qml:101
160+msgid "Super + Shift + Space"
161+msgstr ""
162+
163+#: qml/Components/KeyboardShortcutsOverlay.qml:106
164+msgid "Switches to previous keyboard layout."
165+msgstr ""
166+
167+#: qml/Components/KeyboardShortcutsOverlay.qml:118
168+msgid "Launcher"
169+msgstr ""
170+
171+#: qml/Components/KeyboardShortcutsOverlay.qml:125
172+msgid "Super (Hold)"
173+msgstr ""
174+
175+#: qml/Components/KeyboardShortcutsOverlay.qml:130
176+msgid "Opens the launcher, displays shortcuts."
177+msgstr ""
178+
179+#: qml/Components/KeyboardShortcutsOverlay.qml:138
180+msgid "Alt + F1"
181+msgstr ""
182+
183+#: qml/Components/KeyboardShortcutsOverlay.qml:143
184+msgid "Opens launcher keyboard navigation mode."
185+msgstr ""
186+
187+#: qml/Components/KeyboardShortcutsOverlay.qml:151
188+msgid "Super + Tab"
189+msgstr ""
190+
191+#: qml/Components/KeyboardShortcutsOverlay.qml:156
192+msgid "Switches applications via the launcher."
193+msgstr ""
194+
195+#: qml/Components/KeyboardShortcutsOverlay.qml:164
196+msgid "Super + 0 to 9"
197+msgstr ""
198+
199+#: qml/Components/KeyboardShortcutsOverlay.qml:169
200+msgid "Same as clicking on a launcher icon."
201+msgstr ""
202+
203+#: qml/Components/KeyboardShortcutsOverlay.qml:181
204+msgid "Scopes"
205+msgstr ""
206+
207+#: qml/Components/KeyboardShortcutsOverlay.qml:188
208+msgid "Super (Tap)"
209+msgstr ""
210+
211+#: qml/Components/KeyboardShortcutsOverlay.qml:193
212+msgid "Opens the Scopes home."
213+msgstr ""
214+
215+#: qml/Components/KeyboardShortcutsOverlay.qml:209
216+msgid "Switching"
217+msgstr ""
218+
219+#: qml/Components/KeyboardShortcutsOverlay.qml:216
220+msgid "Alt + Tab"
221+msgstr ""
222+
223+#: qml/Components/KeyboardShortcutsOverlay.qml:221
224+msgid "Switches between applications."
225+msgstr ""
226+
227+#: qml/Components/KeyboardShortcutsOverlay.qml:229
228+msgid "Super + W"
229+msgstr ""
230+
231+#: qml/Components/KeyboardShortcutsOverlay.qml:234
232+msgid "Opens the desktop spread."
233+msgstr ""
234+
235+#: qml/Components/KeyboardShortcutsOverlay.qml:242
236+msgid "Cursor Left or Right"
237+msgstr ""
238+
239+#: qml/Components/KeyboardShortcutsOverlay.qml:247
240+msgid "Moves the focus."
241+msgstr ""
242+
243+#: qml/Components/KeyboardShortcutsOverlay.qml:259
244+msgid "Windows"
245+msgstr ""
246+
247+#: qml/Components/KeyboardShortcutsOverlay.qml:266
248+msgid "Ctrl + Super + D"
249+msgstr ""
250+
251+#: qml/Components/KeyboardShortcutsOverlay.qml:271
252+msgid "Minimizes all windows."
253+msgstr ""
254+
255+#: qml/Components/KeyboardShortcutsOverlay.qml:279
256+msgid "Ctrl + Super + Up"
257+msgstr ""
258+
259+#: qml/Components/KeyboardShortcutsOverlay.qml:284
260+msgid "Maximizes the current window."
261+msgstr ""
262+
263+#: qml/Components/KeyboardShortcutsOverlay.qml:292
264+msgid "Ctrl + Super + Down"
265+msgstr ""
266+
267+#: qml/Components/KeyboardShortcutsOverlay.qml:297
268+msgid "Minimizes or restores the current window."
269+msgstr ""
270+
271+#: qml/Components/KeyboardShortcutsOverlay.qml:305
272+msgid "Ctrl + Super + Left or Right"
273+msgstr ""
274+
275+#: qml/Components/KeyboardShortcutsOverlay.qml:310
276+msgid "Semi-maximizes the current window."
277+msgstr ""
278+
279+#: qml/Components/KeyboardShortcutsOverlay.qml:318
280+msgid "Alt + F4"
281+msgstr ""
282+
283+#: qml/Components/KeyboardShortcutsOverlay.qml:323
284+msgid "Closes the current window."
285+msgstr ""
286+
287+#: qml/Components/Lockscreen.qml:239
128msgid "Return to Call"
288msgid "Return to Call"
129msgstr "Vend tilbage til opkald"
289msgstr "Vend tilbage til opkald"
130
290
131−#: qml/Components/Lockscreen.qml:231
291+#: qml/Components/Lockscreen.qml:239
132msgid "Emergency Call"
292msgid "Emergency Call"
133msgstr "Nødopkald"
293msgstr "Nødopkald"
134
294
135−#: qml/Components/Lockscreen.qml:263
295+#: qml/Components/Lockscreen.qml:271
136msgid "OK"
296msgid "OK"
137msgstr "Ok"
297msgstr "Ok"
138
298
299+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
300+#, qt-format
301+msgid "%1:%2:%3"
302+msgstr ""
303+
304+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
305+#, qt-format
306+msgid "%1:%2"
307+msgstr ""
308+
139#: qml/Components/ModeSwitchWarningDialog.qml:32
309#: qml/Components/ModeSwitchWarningDialog.qml:32
140msgid "Apps may have unsaved data:"
310msgid "Apps may have unsaved data:"
141msgstr ""
311msgstr ""
@@ -162,6 +332,10 @@ msgstr ""
162msgid "Close all"
332msgid "Close all"
163msgstr ""
333msgstr ""
164
334
335+#: qml/Components/SharingPicker.qml:54
336+msgid "Preview Share Item"
337+msgstr ""
338+
165#: qml/Dash/DashPageHeader.qml:333
339#: qml/Dash/DashPageHeader.qml:333
166msgctxt "Button: Open the Ubuntu Store"
340msgctxt "Button: Open the Ubuntu Store"
167msgid "Store"
341msgid "Store"
@@ -193,15 +367,15 @@ msgstr ""
193msgid "Reset"
367msgid "Reset"
194msgstr ""
368msgstr ""
195
369
196−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
370+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
197msgid "Show less"
371msgid "Show less"
198msgstr ""
372msgstr ""
199
373
200−#: qml/Dash/GenericScopeView.qml:579
374+#: qml/Dash/GenericScopeView.qml:580
201msgid "Show all"
375msgid "Show all"
202msgstr ""
376msgstr ""
203
377
204−#: qml/Dash/GenericScopeView.qml:636
378+#: qml/Dash/GenericScopeView.qml:637
205msgctxt "Label: Hint for dash search line edit"
379msgctxt "Label: Hint for dash search line edit"
206msgid "Search"
380msgid "Search"
207msgstr "Søg"
381msgstr "Søg"
@@ -235,10 +409,6 @@ msgstr "Bedøm dette"
235msgid "Add a review"
409msgid "Add a review"
236msgstr "Tilføj en anmeldelse"
410msgstr "Tilføj en anmeldelse"
237
411
238−#: qml/Dash/Previews/PreviewSharing.qml:66
239−msgid "Preview Share Item"
240−msgstr ""
241−
242#: qml/Dash/PullToRefreshScopeStyle.qml:55
412#: qml/Dash/PullToRefreshScopeStyle.qml:55
243msgid "Pull to refresh…"
413msgid "Pull to refresh…"
244msgstr "Træk ned for at genindlæse..."
414msgstr "Træk ned for at genindlæse..."
@@ -255,11 +425,11 @@ msgstr "Aktivér lokationsdata"
255msgid "Manage"
425msgid "Manage"
256msgstr "Administrér"
426msgstr "Administrér"
257
427
258−#: qml/Dash/ScopesList.qml:101
428+#: qml/Dash/ScopesList.qml:102
259msgid "Home"
429msgid "Home"
260msgstr "Hjem"
430msgstr "Hjem"
261
431
262−#: qml/Dash/ScopesList.qml:102
432+#: qml/Dash/ScopesList.qml:103
263msgid "Also installed"
433msgid "Also installed"
264msgstr "Også installeret"
434msgstr "Også installeret"
265
435
@@ -269,17 +439,29 @@ msgid ""
269"touch pad to interact with the pointer."
439"touch pad to interact with the pointer."
270msgstr ""
440msgstr ""
271
441
272−#: qml/Greeter/CoverPage.qml:118
442+#: qml/Greeter/CoverPage.qml:127
273msgid "Unlock"
443msgid "Unlock"
274msgstr "Lås op"
444msgstr "Lås op"
275
445
276−#: qml/Greeter/LoginList.qml:239
446+#: qml/Greeter/Greeter.qml:539
447+msgid "Try again"
448+msgstr ""
449+
450+#: qml/Greeter/LoginList.qml:63
451+msgid "Passphrase"
452+msgstr ""
453+
454+#: qml/Greeter/LoginList.qml:64
455+msgid "Passcode"
456+msgstr ""
457+
458+#: qml/Greeter/LoginList.qml:259
277msgid "Retry"
459msgid "Retry"
278msgstr "Forsøg igen"
460msgstr "Forsøg igen"
279
461
280−#: qml/Greeter/LoginList.qml:240
462+#: qml/Greeter/LoginList.qml:260
281−msgid "Tap to unlock"
463+msgid "Log In"
282−msgstr "Tap for at låse op"
464+msgstr ""
283
465
284#: qml/Greeter/NarrowView.qml:54
466#: qml/Greeter/NarrowView.qml:54
285msgid "Sorry, incorrect passphrase."
467msgid "Sorry, incorrect passphrase."
@@ -309,34 +491,34 @@ msgstr ""
309"Hvis adgangskoden er forkert, vil telefonen blive gendannet til "
491"Hvis adgangskoden er forkert, vil telefonen blive gendannet til "
310"fabriksindstillinger og al personlig data vil blive slettet."
492"fabriksindstillinger og al personlig data vil blive slettet."
311
493
312−#: qml/Greeter/NarrowView.qml:116
494+#: qml/Greeter/NarrowView.qml:129
313#, qt-format
495#, qt-format
314msgid "Enter %1"
496msgid "Enter %1"
315msgstr "Indtast %1"
497msgstr "Indtast %1"
316
498
317−#: qml/Greeter/NarrowView.qml:117
499+#: qml/Greeter/NarrowView.qml:130
318msgid "Enter passphrase"
500msgid "Enter passphrase"
319msgstr "Angiv adgangsfrase"
501msgstr "Angiv adgangsfrase"
320
502
321−#: qml/Greeter/NarrowView.qml:118
503+#: qml/Greeter/NarrowView.qml:131
322msgid "Enter passcode"
504msgid "Enter passcode"
323msgstr "Indtast adgangskode"
505msgstr "Indtast adgangskode"
324
506
325−#: qml/Greeter/NarrowView.qml:119
507+#: qml/Greeter/NarrowView.qml:135
326#, qt-format
508#, qt-format
327msgid "Sorry, incorrect %1"
509msgid "Sorry, incorrect %1"
328msgstr "Beklager, forkert %1"
510msgstr "Beklager, forkert %1"
329
511
330−#: qml/Greeter/NarrowView.qml:120
512+#: qml/Greeter/NarrowView.qml:136
331msgid "Sorry, incorrect passphrase"
513msgid "Sorry, incorrect passphrase"
332msgstr "Beklager, forkert adgangsfrase"
514msgstr "Beklager, forkert adgangsfrase"
333
515
334−#: qml/Greeter/NarrowView.qml:121
516+#: qml/Greeter/NarrowView.qml:137
335msgctxt "passphrase"
517msgctxt "passphrase"
336msgid "Please re-enter"
518msgid "Please re-enter"
337msgstr ""
519msgstr ""
338
520
339−#: qml/Greeter/NarrowView.qml:122
521+#: qml/Greeter/NarrowView.qml:138
340msgid "Sorry, incorrect passcode"
522msgid "Sorry, incorrect passcode"
341msgstr "Beklager, forkert adgangskode"
523msgstr "Beklager, forkert adgangskode"
342
524
@@ -431,32 +613,12 @@ msgstr ""
431msgid "Drag using 3 fingers any application from one window to the other"
613msgid "Drag using 3 fingers any application from one window to the other"
432msgstr ""
614msgstr ""
433
615
434−#: qml/Tutorial/TutorialBottom.qml:78
616+#: qml/Tutorial/TutorialLeftLong.qml:49
435−msgid "Swipe up to add a contact"
436−msgstr ""
437−
438−#: qml/Tutorial/TutorialBottom.qml:80
439−msgid "Swipe up for favorite calculations"
440−msgstr ""
441−
442−#: qml/Tutorial/TutorialBottom.qml:82
443−msgid "Swipe up for recent calls"
444−msgstr ""
445−
446−#: qml/Tutorial/TutorialBottom.qml:84
447−msgid "Swipe up to create a message"
448−msgstr ""
449−
450−#: qml/Tutorial/TutorialBottom.qml:85
451−msgid "Swipe up to manage the app"
452−msgstr ""
453−
454−#: qml/Tutorial/TutorialLeftLong.qml:47
455msgid "Long swipe from the left edge to open the Today scope"
617msgid "Long swipe from the left edge to open the Today scope"
456msgstr ""
618msgstr ""
457
619
458#: qml/Tutorial/TutorialLeft.qml:47
620#: qml/Tutorial/TutorialLeft.qml:47
459−msgid "Swipe from the left edge to open the launcher"
621+msgid "Short swipe from the left edge to open the launcher"
460msgstr ""
622msgstr ""
461
623
462#: qml/Tutorial/TutorialRight.qml:55
624#: qml/Tutorial/TutorialRight.qml:55
@@ -464,15 +626,11 @@ msgid "Push your mouse against the right edge to view your open apps"
464msgstr ""
626msgstr ""
465
627
466#: qml/Tutorial/TutorialRight.qml:56
628#: qml/Tutorial/TutorialRight.qml:56
467−msgid "Short or long swipe from the right edge to view your open apps"
629+msgid "Swipe from the right edge to view your open apps"
468msgstr ""
630msgstr ""
469
631
470#: qml/Tutorial/TutorialTop.qml:53
632#: qml/Tutorial/TutorialTop.qml:53
471−msgid "Swipe from the top right edge to open the notification bar"
633+msgid "Swipe from the top edge to access notifications and quick settings"
472−msgstr ""
473−
474−#: qml/Tutorial/TutorialTop.qml:54
475−msgid "Swipe from the top edge to open the notification bar"
476msgstr ""
634msgstr ""
477
635
478#: qml/Wizard/Page.qml:54
636#: qml/Wizard/Page.qml:54
@@ -484,15 +642,32 @@ msgstr "Tilbage"
484msgid "Language"
642msgid "Language"
485msgstr ""
643msgstr ""
486
644
487−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
645+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
488#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
646#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
489#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
647#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
490#: qml/Wizard/Pages/75-report-check.qml:84
648#: qml/Wizard/Pages/75-report-check.qml:84
491−#: qml/Wizard/Pages/passcode-desktop.qml:124
649+#: qml/Wizard/Pages/passcode-desktop.qml:141
492#: qml/Wizard/Pages/password-set.qml:141
650#: qml/Wizard/Pages/password-set.qml:141
493msgid "Next"
651msgid "Next"
494msgstr ""
652msgstr ""
495
653
654+#: qml/Wizard/Pages/20-keyboard.qml:30
655+msgid "Select Keyboard"
656+msgstr ""
657+
658+#: qml/Wizard/Pages/20-keyboard.qml:70
659+msgid "Keyboard language"
660+msgstr ""
661+
662+#: qml/Wizard/Pages/20-keyboard.qml:92
663+msgid "Keyboard layout"
664+msgstr ""
665+
666+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
667+#: qml/Wizard/Pages/sim.qml:101
668+msgid "Skip"
669+msgstr "Spring over"
670+
496#: qml/Wizard/Pages/30-wifi.qml:29
671#: qml/Wizard/Pages/30-wifi.qml:29
497msgid "Connect to Wi‑Fi"
672msgid "Connect to Wi‑Fi"
498msgstr "Tilslut til Wi-Fi"
673msgstr "Tilslut til Wi-Fi"
@@ -509,11 +684,6 @@ msgstr ""
509msgid "No available Wi-Fi networks"
684msgid "No available Wi-Fi networks"
510msgstr ""
685msgstr ""
511
686
512−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
513−#: qml/Wizard/Pages/sim.qml:101
514−msgid "Skip"
515−msgstr "Spring over"
516−
517#: qml/Wizard/Pages/40-location.qml:27
687#: qml/Wizard/Pages/40-location.qml:27
518msgid "Location Services"
688msgid "Location Services"
519msgstr ""
689msgstr ""
@@ -597,6 +767,35 @@ msgstr ""
597msgid "Privacy policy"
767msgid "Privacy policy"
598msgstr ""
768msgstr ""
599
769
770+#: qml/Wizard/Pages/77-system-update.qml:28
771+msgid "Update Device"
772+msgstr ""
773+
774+#: qml/Wizard/Pages/77-system-update.qml:55
775+msgid ""
776+"There is a system update available and ready to install. Afterwards, the "
777+"device will automatically restart."
778+msgstr ""
779+
780+#: qml/Wizard/Pages/77-system-update.qml:76
781+msgctxt "string identifying name of the update"
782+msgid "Ubuntu system"
783+msgstr ""
784+
785+#: qml/Wizard/Pages/77-system-update.qml:83
786+#, qt-format
787+msgctxt "version of the system update"
788+msgid "Version %1"
789+msgstr ""
790+
791+#: qml/Wizard/Pages/77-system-update.qml:102
792+msgid "This could take a few minutes..."
793+msgstr ""
794+
795+#: qml/Wizard/Pages/77-system-update.qml:116
796+msgid "Install and restart now"
797+msgstr ""
798+
600#: qml/Wizard/Pages/80-finished.qml:89
799#: qml/Wizard/Pages/80-finished.qml:89
601msgid "Welcome to Ubuntu"
800msgid "Welcome to Ubuntu"
602msgstr ""
801msgstr ""
@@ -640,7 +839,7 @@ msgid "Service Terms"
640msgstr ""
839msgstr ""
641
840
642#: qml/Wizard/Pages/passcode-confirm.qml:43
841#: qml/Wizard/Pages/passcode-confirm.qml:43
643−#: qml/Wizard/Pages/passcode-desktop.qml:80
842+#: qml/Wizard/Pages/passcode-desktop.qml:96
644msgid "Confirm passcode"
843msgid "Confirm passcode"
645msgstr "Bekræft adgangskode"
844msgstr "Bekræft adgangskode"
646
845
@@ -657,24 +856,24 @@ msgstr ""
657msgid "Lock Screen Passcode"
856msgid "Lock Screen Passcode"
658msgstr ""
857msgstr ""
659
858
660−#: qml/Wizard/Pages/passcode-desktop.qml:56
859+#: qml/Wizard/Pages/passcode-desktop.qml:60
661msgid "Enter 4 numbers to setup your passcode"
860msgid "Enter 4 numbers to setup your passcode"
662msgstr ""
861msgstr ""
663
862
664−#: qml/Wizard/Pages/passcode-desktop.qml:65
863+#: qml/Wizard/Pages/passcode-desktop.qml:76
665#: qml/Wizard/Pages/passcode-set.qml:54
864#: qml/Wizard/Pages/passcode-set.qml:54
666msgid "Choose passcode"
865msgid "Choose passcode"
667msgstr ""
866msgstr ""
668
867
669−#: qml/Wizard/Pages/passcode-desktop.qml:105
868+#: qml/Wizard/Pages/passcode-desktop.qml:126
670msgid "Passcode too short"
869msgid "Passcode too short"
671msgstr ""
870msgstr ""
672
871
673−#: qml/Wizard/Pages/passcode-desktop.qml:107
872+#: qml/Wizard/Pages/passcode-desktop.qml:128
674msgid "Passcodes match"
873msgid "Passcodes match"
675msgstr ""
874msgstr ""
676
875
677−#: qml/Wizard/Pages/passcode-desktop.qml:109
876+#: qml/Wizard/Pages/passcode-desktop.qml:130
678msgid "Passcodes do not match"
877msgid "Passcodes do not match"
679msgstr ""
878msgstr ""
680
879
@@ -723,26 +922,30 @@ msgid "To proceed with no SIM tap Skip."
723msgstr ""
922msgstr ""
724
923
725#: qml/Wizard/PasswordMeter.qml:87
924#: qml/Wizard/PasswordMeter.qml:87
726−msgid "Passwords match"
925+msgid "Password too short"
727msgstr ""
926msgstr ""
728
927
729#: qml/Wizard/PasswordMeter.qml:89
928#: qml/Wizard/PasswordMeter.qml:89
929+msgid "Passwords match"
930+msgstr ""
931+
932+#: qml/Wizard/PasswordMeter.qml:91
730msgid "Passwords do not match"
933msgid "Passwords do not match"
731msgstr ""
934msgstr ""
732
935
733−#: qml/Wizard/PasswordMeter.qml:93
936+#: qml/Wizard/PasswordMeter.qml:95
734msgid "Strong password"
937msgid "Strong password"
735msgstr ""
938msgstr ""
736
939
737−#: qml/Wizard/PasswordMeter.qml:95
940+#: qml/Wizard/PasswordMeter.qml:97
738msgid "Fair password"
941msgid "Fair password"
739msgstr ""
942msgstr ""
740
943
741−#: qml/Wizard/PasswordMeter.qml:97
944+#: qml/Wizard/PasswordMeter.qml:99
742msgid "Weak password"
945msgid "Weak password"
743msgstr ""
946msgstr ""
744
947
745−#: qml/Wizard/PasswordMeter.qml:99
948+#: qml/Wizard/PasswordMeter.qml:101
746msgid "Very weak password"
949msgid "Very weak password"
747msgstr ""
950msgstr ""
748
951
@@ -942,6 +1145,9 @@ msgstr ""
942#~ msgid "Reboot"
1145#~ msgid "Reboot"
943#~ msgstr "Genstart"
1146#~ msgstr "Genstart"
944
1147
1148+#~ msgid "Tap to unlock"
1149+#~ msgstr "Tap for at låse op"
1150+
945#~ msgid "Roaming"
1151#~ msgid "Roaming"
946#~ msgstr "Roaming"
1152#~ msgstr "Roaming"
947
1153
po/de.po+338−101
@@ -7,105 +7,105 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-05-27 13:54+0000\n"
10+"POT-Creation-Date: 2016-08-31 11:56+0000\n"
11−"PO-Revision-Date: 2016-05-10 19:23+0000\n"
11+"PO-Revision-Date: 2016-08-28 08:35+0000\n"
12"Last-Translator: Torsten Franz <Unknown>\n"
12"Last-Translator: Torsten Franz <Unknown>\n"
13"Language-Team: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-02 06:20+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-03 06:54+0000\n"
19−"X-Generator: Launchpad (build 18053)\n"
19+"X-Generator: Launchpad (build 18179)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Passwort: "
23msgstr "Passwort: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:48
25+#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:107
26+#: plugins/Unity/Launcher/launcheritem.cpp:108
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Verknüpfung anheften"
28msgstr "Verknüpfung anheften"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:53
30+#: plugins/Unity/Launcher/launcheritem.cpp:54
31msgid "Quit"
31msgid "Quit"
32msgstr "Beenden"
32msgstr "Beenden"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:107
34+#: plugins/Unity/Launcher/launcheritem.cpp:108
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Verknüpfung entfernen"
36msgstr "Verknüpfung entfernen"
37
37
38−#: qml/Components/DelayedLockscreen.qml:49
38+#: qml/Components/DelayedLockscreen.qml:50
39msgid "Device Locked"
39msgid "Device Locked"
40msgstr "Gerät gesperrt"
40msgstr "Gerät gesperrt"
41
41
42−#: qml/Components/DelayedLockscreen.qml:64
42+#: qml/Components/DelayedLockscreen.qml:65
43msgid "You have been locked out due to too many failed passphrase attempts."
43msgid "You have been locked out due to too many failed passphrase attempts."
44msgstr ""
44msgstr ""
45"Das Gerät wurde aufgrund zu vieler falscher Passworteingaben für längere "
45"Das Gerät wurde aufgrund zu vieler falscher Passworteingaben für längere "
46"Zeit gesperrt."
46"Zeit gesperrt."
47
47
48−#: qml/Components/DelayedLockscreen.qml:65
48+#: qml/Components/DelayedLockscreen.qml:66
49msgid "You have been locked out due to too many failed passcode attempts."
49msgid "You have been locked out due to too many failed passcode attempts."
50msgstr ""
50msgstr ""
51"Das Gerät wurde aufgrund zu vieler falscher PIN-Eingaben für längere Zeit "
51"Das Gerät wurde aufgrund zu vieler falscher PIN-Eingaben für längere Zeit "
52"gesperrt."
52"gesperrt."
53
53
54−#: qml/Components/DelayedLockscreen.qml:74
54+#: qml/Components/DelayedLockscreen.qml:75
55#, qt-format
55#, qt-format
56msgid "Please wait %1 minute and then try again…"
56msgid "Please wait %1 minute and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
57msgid_plural "Please wait %1 minutes and then try again…"
58msgstr[0] "Bitte %1 Minute warten und es dann erneut versuchen …"
58msgstr[0] "Bitte %1 Minute warten und es dann erneut versuchen …"
59msgstr[1] "Bitte %1 Minuten warten und es dann erneut versuchen …"
59msgstr[1] "Bitte %1 Minuten warten und es dann erneut versuchen …"
60
60
61−#: qml/Components/Dialogs.qml:144
61+#: qml/Components/Dialogs.qml:146
62msgctxt "Title: Lock/Log out dialog"
62msgctxt "Title: Lock/Log out dialog"
63msgid "Log out"
63msgid "Log out"
64msgstr "Abmelden"
64msgstr "Abmelden"
65
65
66−#: qml/Components/Dialogs.qml:145
66+#: qml/Components/Dialogs.qml:147
67msgid "Are you sure you want to log out?"
67msgid "Are you sure you want to log out?"
68msgstr "Sind Sie sicher, dass Sie sich abmelden wollen?"
68msgstr "Sind Sie sicher, dass Sie sich abmelden wollen?"
69
69
70−#: qml/Components/Dialogs.qml:147
70+#: qml/Components/Dialogs.qml:149
71msgctxt "Button: Lock the system"
71msgctxt "Button: Lock the system"
72msgid "Lock"
72msgid "Lock"
73msgstr "Sperren"
73msgstr "Sperren"
74
74
75−#: qml/Components/Dialogs.qml:154
75+#: qml/Components/Dialogs.qml:156
76msgctxt "Button: Log out from the system"
76msgctxt "Button: Log out from the system"
77msgid "Log Out"
77msgid "Log Out"
78msgstr "Abmelden"
78msgstr "Abmelden"
79
79
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
80+#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
81#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
82#: qml/Wizard/Pages/passcode-set.qml:32
83msgid "Cancel"
83msgid "Cancel"
84msgstr "Abbrechen"
84msgstr "Abbrechen"
85
85
86−#: qml/Components/Dialogs.qml:173
86+#: qml/Components/Dialogs.qml:175
87msgctxt "Title: Reboot dialog"
87msgctxt "Title: Reboot dialog"
88msgid "Reboot"
88msgid "Reboot"
89msgstr "Neustarten"
89msgstr "Neustarten"
90
90
91−#: qml/Components/Dialogs.qml:174
91+#: qml/Components/Dialogs.qml:176
92msgid "Are you sure you want to reboot?"
92msgid "Are you sure you want to reboot?"
93msgstr "Sind Sie sicher, dass Sie neu starten wollen?"
93msgstr "Sind Sie sicher, dass Sie neu starten wollen?"
94
94
95−#: qml/Components/Dialogs.qml:176
95+#: qml/Components/Dialogs.qml:178
96msgid "No"
96msgid "No"
97msgstr "Nein"
97msgstr "Nein"
98
98
99−#: qml/Components/Dialogs.qml:182
99+#: qml/Components/Dialogs.qml:184
100msgid "Yes"
100msgid "Yes"
101msgstr "Ja"
101msgstr "Ja"
102
102
103−#: qml/Components/Dialogs.qml:197
103+#: qml/Components/Dialogs.qml:199
104msgctxt "Title: Power off/Restart dialog"
104msgctxt "Title: Power off/Restart dialog"
105msgid "Power"
105msgid "Power"
106msgstr "Ausschalten"
106msgstr "Ausschalten"
107
107
108−#: qml/Components/Dialogs.qml:198
108+#: qml/Components/Dialogs.qml:200
109msgid ""
109msgid ""
110"Are you sure you would like\n"
110"Are you sure you would like\n"
111"to power off?"
111"to power off?"
@@ -113,28 +113,198 @@ msgstr ""
113"Sind Sie sicher, dass Sie das\n"
113"Sind Sie sicher, dass Sie das\n"
114"Gerät ausschalten wollen?"
114"Gerät ausschalten wollen?"
115
115
116−#: qml/Components/Dialogs.qml:200
116+#: qml/Components/Dialogs.qml:202
117msgctxt "Button: Power off the system"
117msgctxt "Button: Power off the system"
118msgid "Power off"
118msgid "Power off"
119msgstr "Ausschalten"
119msgstr "Ausschalten"
120
120
121−#: qml/Components/Dialogs.qml:209
121+#: qml/Components/Dialogs.qml:211
122msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
123msgid "Restart"
123msgid "Restart"
124msgstr "Neustarten"
124msgstr "Neustarten"
125
125
126−#: qml/Components/Lockscreen.qml:231
126+#: qml/Components/KeyboardShortcutsOverlay.qml:41
127+msgid "Keyboard Shortcuts"
128+msgstr "Tastaturkürzel"
129+
130+#: qml/Components/KeyboardShortcutsOverlay.qml:55
131+msgid "Unity 8"
132+msgstr "Unity 8"
133+
134+#: qml/Components/KeyboardShortcutsOverlay.qml:62
135+msgid "PrtScr"
136+msgstr "Druck"
137+
138+#: qml/Components/KeyboardShortcutsOverlay.qml:67
139+msgid "Takes a screenshot."
140+msgstr "Bildschirmfoto aufnehmen."
141+
142+#: qml/Components/KeyboardShortcutsOverlay.qml:75
143+msgid "Alt + PrtScr"
144+msgstr "Alt + Druck"
145+
146+#: qml/Components/KeyboardShortcutsOverlay.qml:80
147+msgid "Takes a screenshot of a window."
148+msgstr "Macht ein Bildschirmfoto eines Fensters."
149+
150+#: qml/Components/KeyboardShortcutsOverlay.qml:88
151+msgid "Super + Space"
152+msgstr "Super + Leertaste"
153+
154+#: qml/Components/KeyboardShortcutsOverlay.qml:93
155+msgid "Switches to next keyboard layout."
156+msgstr "Zum nächsten Tastaturlayout umschalten"
157+
158+#: qml/Components/KeyboardShortcutsOverlay.qml:101
159+msgid "Super + Shift + Space"
160+msgstr "Super + Hochstell + Leertaste"
161+
162+#: qml/Components/KeyboardShortcutsOverlay.qml:106
163+msgid "Switches to previous keyboard layout."
164+msgstr "Zum vorherigen Tastaturlayout umschalten"
165+
166+#: qml/Components/KeyboardShortcutsOverlay.qml:118
167+msgid "Launcher"
168+msgstr "Starter"
169+
170+#: qml/Components/KeyboardShortcutsOverlay.qml:125
171+msgid "Super (Hold)"
172+msgstr "Super (gedrückt halten)"
173+
174+#: qml/Components/KeyboardShortcutsOverlay.qml:130
175+msgid "Opens the launcher, displays shortcuts."
176+msgstr "Öffnet den Starter, zeigt Tastaturkürzel."
177+
178+#: qml/Components/KeyboardShortcutsOverlay.qml:138
179+msgid "Alt + F1"
180+msgstr "Alt + F1"
181+
182+#: qml/Components/KeyboardShortcutsOverlay.qml:143
183+msgid "Opens launcher keyboard navigation mode."
184+msgstr "Öffnet Tastaturnavigation des Starters"
185+
186+#: qml/Components/KeyboardShortcutsOverlay.qml:151
187+msgid "Super + Tab"
188+msgstr "Super + Tabulatur"
189+
190+#: qml/Components/KeyboardShortcutsOverlay.qml:156
191+msgid "Switches applications via the launcher."
192+msgstr "Schaltet über den Starter zwischen Anwendungen um"
193+
194+#: qml/Components/KeyboardShortcutsOverlay.qml:164
195+msgid "Super + 0 to 9"
196+msgstr "Super + 0 bis 9"
197+
198+#: qml/Components/KeyboardShortcutsOverlay.qml:169
199+msgid "Same as clicking on a launcher icon."
200+msgstr "Entspricht dem Anklicken eines Startersymbols."
201+
202+#: qml/Components/KeyboardShortcutsOverlay.qml:181
203+msgid "Scopes"
204+msgstr "Scopes"
205+
206+#: qml/Components/KeyboardShortcutsOverlay.qml:188
207+msgid "Super (Tap)"
208+msgstr "Super (antippen)"
209+
210+#: qml/Components/KeyboardShortcutsOverlay.qml:193
211+msgid "Opens the Scopes home."
212+msgstr "Öffnet die Scopeübersicht"
213+
214+#: qml/Components/KeyboardShortcutsOverlay.qml:209
215+msgid "Switching"
216+msgstr "Wechseln"
217+
218+#: qml/Components/KeyboardShortcutsOverlay.qml:216
219+msgid "Alt + Tab"
220+msgstr "Alt + Tabulator"
221+
222+#: qml/Components/KeyboardShortcutsOverlay.qml:221
223+msgid "Switches between applications."
224+msgstr "Zwischen Anwendungen wechseln."
225+
226+#: qml/Components/KeyboardShortcutsOverlay.qml:229
227+msgid "Super + W"
228+msgstr "Super + W"
229+
230+#: qml/Components/KeyboardShortcutsOverlay.qml:234
231+msgid "Opens the desktop spread."
232+msgstr "Zeigt alle geöffneten Fenster nebeneinander."
233+
234+#: qml/Components/KeyboardShortcutsOverlay.qml:242
235+msgid "Cursor Left or Right"
236+msgstr "Pfeiltasten"
237+
238+#: qml/Components/KeyboardShortcutsOverlay.qml:247
239+msgid "Moves the focus."
240+msgstr "Bewegt den Fokus."
241+
242+#: qml/Components/KeyboardShortcutsOverlay.qml:259
243+msgid "Windows"
244+msgstr "Fenster"
245+
246+#: qml/Components/KeyboardShortcutsOverlay.qml:266
247+msgid "Ctrl + Super + D"
248+msgstr "Strg + Super + D"
249+
250+#: qml/Components/KeyboardShortcutsOverlay.qml:271
251+msgid "Minimizes all windows."
252+msgstr "Minimiert alle Fenster."
253+
254+#: qml/Components/KeyboardShortcutsOverlay.qml:279
255+msgid "Ctrl + Super + Up"
256+msgstr "Strg + Super + hoch"
257+
258+#: qml/Components/KeyboardShortcutsOverlay.qml:284
259+msgid "Maximizes the current window."
260+msgstr "Maximiert das aktuelle Fenster."
261+
262+#: qml/Components/KeyboardShortcutsOverlay.qml:292
263+msgid "Ctrl + Super + Down"
264+msgstr "Strg + Super + runter"
265+
266+#: qml/Components/KeyboardShortcutsOverlay.qml:297
267+msgid "Minimizes or restores the current window."
268+msgstr "Minmiert oder stellt das aktuelle Fenster wieder her."
269+
270+#: qml/Components/KeyboardShortcutsOverlay.qml:305
271+msgid "Ctrl + Super + Left or Right"
272+msgstr "Strg + Super + links oder rechts"
273+
274+#: qml/Components/KeyboardShortcutsOverlay.qml:310
275+msgid "Semi-maximizes the current window."
276+msgstr "Maximiert das aktuelle Fenster auf eine Bildschirmhälfte."
277+
278+#: qml/Components/KeyboardShortcutsOverlay.qml:318
279+msgid "Alt + F4"
280+msgstr "Alt + F4"
281+
282+#: qml/Components/KeyboardShortcutsOverlay.qml:323
283+msgid "Closes the current window."
284+msgstr "Schließt das aktive Fenster."
285+
286+#: qml/Components/Lockscreen.qml:239
127msgid "Return to Call"
287msgid "Return to Call"
128msgstr "Zu Anruf zurückkehren"
288msgstr "Zu Anruf zurückkehren"
129
289
130−#: qml/Components/Lockscreen.qml:231
290+#: qml/Components/Lockscreen.qml:239
131msgid "Emergency Call"
291msgid "Emergency Call"
132msgstr "Notruf"
292msgstr "Notruf"
133
293
134−#: qml/Components/Lockscreen.qml:263
294+#: qml/Components/Lockscreen.qml:271
135msgid "OK"
295msgid "OK"
136msgstr "OK"
296msgstr "OK"
137
297
298+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
299+#, qt-format
300+msgid "%1:%2:%3"
301+msgstr "%1:%2:%3"
302+
303+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
304+#, qt-format
305+msgid "%1:%2"
306+msgstr "%1:%2"
307+
138#: qml/Components/ModeSwitchWarningDialog.qml:32
308#: qml/Components/ModeSwitchWarningDialog.qml:32
139msgid "Apps may have unsaved data:"
309msgid "Apps may have unsaved data:"
140msgstr "Anwendungen könnten ungespeicherte Daten haben:"
310msgstr "Anwendungen könnten ungespeicherte Daten haben:"
@@ -163,6 +333,10 @@ msgstr "Jetzt verbinden!"
163msgid "Close all"
333msgid "Close all"
164msgstr "Alle schließen"
334msgstr "Alle schließen"
165
335
336+#: qml/Components/SharingPicker.qml:54
337+msgid "Preview Share Item"
338+msgstr "Vorschau für zu teilendes Element"
339+
166#: qml/Dash/DashPageHeader.qml:333
340#: qml/Dash/DashPageHeader.qml:333
167msgctxt "Button: Open the Ubuntu Store"
341msgctxt "Button: Open the Ubuntu Store"
168msgid "Store"
342msgid "Store"
@@ -194,15 +368,15 @@ msgstr "Ergebnisse verfeinern"
194msgid "Reset"
368msgid "Reset"
195msgstr "Zurücksetzen"
369msgstr "Zurücksetzen"
196
370
197−#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:774
371+#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
198msgid "Show less"
372msgid "Show less"
199msgstr "Weniger anzeigen"
373msgstr "Weniger anzeigen"
200
374
201−#: qml/Dash/GenericScopeView.qml:579
375+#: qml/Dash/GenericScopeView.qml:580
202msgid "Show all"
376msgid "Show all"
203msgstr "Alle anzeigen"
377msgstr "Alle anzeigen"
204
378
205−#: qml/Dash/GenericScopeView.qml:636
379+#: qml/Dash/GenericScopeView.qml:637
206msgctxt "Label: Hint for dash search line edit"
380msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
381msgid "Search"
208msgstr "Suchen"
382msgstr "Suchen"
@@ -236,10 +410,6 @@ msgstr "Bewerten"
236msgid "Add a review"
410msgid "Add a review"
237msgstr "Bewertung hinzufügen"
411msgstr "Bewertung hinzufügen"
238
412
239−#: qml/Dash/Previews/PreviewSharing.qml:66
240−msgid "Preview Share Item"
241−msgstr "Vorschau für zu teilendes Element"
242−
243#: qml/Dash/PullToRefreshScopeStyle.qml:55
413#: qml/Dash/PullToRefreshScopeStyle.qml:55
244msgid "Pull to refresh…"
414msgid "Pull to refresh…"
245msgstr "Zum Aktualisieren ziehen …"
415msgstr "Zum Aktualisieren ziehen …"
@@ -256,11 +426,11 @@ msgstr "Standortdaten aktivieren"
256msgid "Manage"
426msgid "Manage"
257msgstr "Verwalten"
427msgstr "Verwalten"
258
428
259−#: qml/Dash/ScopesList.qml:101
429+#: qml/Dash/ScopesList.qml:102
260msgid "Home"
430msgid "Home"
261msgstr "Startseite"
431msgstr "Startseite"
262
432
263−#: qml/Dash/ScopesList.qml:102
433+#: qml/Dash/ScopesList.qml:103
264msgid "Also installed"
434msgid "Also installed"
265msgstr "Ebenfalls installiert"
435msgstr "Ebenfalls installiert"
266
436
@@ -272,17 +442,29 @@ msgstr ""
272"Ihr Gerät ist nun mit einem externen Bildschirm verbunden. Verwenden Sie das "
442"Ihr Gerät ist nun mit einem externen Bildschirm verbunden. Verwenden Sie das "
273"Gerätedisplay als Touchpad, um den Mauszeiger zu steuern."
443"Gerätedisplay als Touchpad, um den Mauszeiger zu steuern."
274
444
275−#: qml/Greeter/CoverPage.qml:118
445+#: qml/Greeter/CoverPage.qml:127
276msgid "Unlock"
446msgid "Unlock"
277msgstr "Entsperren"
447msgstr "Entsperren"
278
448
279−#: qml/Greeter/LoginList.qml:239
449+#: qml/Greeter/Greeter.qml:539
450+msgid "Try again"
451+msgstr "Erneut versuchen"
452+
453+#: qml/Greeter/LoginList.qml:63
454+msgid "Passphrase"
455+msgstr "Passwort"
456+
457+#: qml/Greeter/LoginList.qml:64
458+msgid "Passcode"
459+msgstr "PIN"
460+
461+#: qml/Greeter/LoginList.qml:259
280msgid "Retry"
462msgid "Retry"
281msgstr "Erneut versuchen"
463msgstr "Erneut versuchen"
282
464
283−#: qml/Greeter/LoginList.qml:240
465+#: qml/Greeter/LoginList.qml:260
284−msgid "Tap to unlock"
466+msgid "Log In"
285−msgstr "Zum Entsperren tippen"
467+msgstr "Anmelden"
286
468
287#: qml/Greeter/NarrowView.qml:54
469#: qml/Greeter/NarrowView.qml:54
288msgid "Sorry, incorrect passphrase."
470msgid "Sorry, incorrect passphrase."
@@ -312,34 +494,34 @@ msgstr ""
312"Wird die PIN falsch eingegeben, wird das Telefon auf den Werkszustand "
494"Wird die PIN falsch eingegeben, wird das Telefon auf den Werkszustand "
313"zurückgesetzt und alle Daten werden gelöscht."
495"zurückgesetzt und alle Daten werden gelöscht."
314
496
315−#: qml/Greeter/NarrowView.qml:116
497+#: qml/Greeter/NarrowView.qml:129
316#, qt-format
498#, qt-format
317msgid "Enter %1"
499msgid "Enter %1"
318msgstr "%1 eingeben"
500msgstr "%1 eingeben"
319
501
320−#: qml/Greeter/NarrowView.qml:117
502+#: qml/Greeter/NarrowView.qml:130
321msgid "Enter passphrase"
503msgid "Enter passphrase"
322msgstr "Passphrase eingeben"
504msgstr "Passphrase eingeben"
323
505
324−#: qml/Greeter/NarrowView.qml:118
506+#: qml/Greeter/NarrowView.qml:131
325msgid "Enter passcode"
507msgid "Enter passcode"
326msgstr "PIN eingeben"
508msgstr "PIN eingeben"
327
509
328−#: qml/Greeter/NarrowView.qml:119
510+#: qml/Greeter/NarrowView.qml:135
329#, qt-format
511#, qt-format
330msgid "Sorry, incorrect %1"
512msgid "Sorry, incorrect %1"
331msgstr "%1 falsch"
513msgstr "%1 falsch"
332
514
333−#: qml/Greeter/NarrowView.qml:120
515+#: qml/Greeter/NarrowView.qml:136
334msgid "Sorry, incorrect passphrase"
516msgid "Sorry, incorrect passphrase"
335msgstr "Das Passwort ist nicht korrekt"
517msgstr "Das Passwort ist nicht korrekt"
336
518
337−#: qml/Greeter/NarrowView.qml:121
519+#: qml/Greeter/NarrowView.qml:137
338msgctxt "passphrase"
520msgctxt "passphrase"
339msgid "Please re-enter"
521msgid "Please re-enter"
340msgstr "Bitte erneut eingeben"
522msgstr "Bitte erneut eingeben"
341
523
342−#: qml/Greeter/NarrowView.qml:122
524+#: qml/Greeter/NarrowView.qml:138
343msgid "Sorry, incorrect passcode"
525msgid "Sorry, incorrect passcode"
344msgstr "Falsches Passwort"
526msgstr "Falsches Passwort"
345
527
@@ -434,34 +616,14 @@ msgstr "Zurückrufen"
434msgid "Drag using 3 fingers any application from one window to the other"
616msgid "Drag using 3 fingers any application from one window to the other"
435msgstr "Eine Anwendung mit 3 Fingern von einem Fenster zum anderen ziehen"
617msgstr "Eine Anwendung mit 3 Fingern von einem Fenster zum anderen ziehen"
436
618
437−#: qml/Tutorial/TutorialBottom.qml:78
619+#: qml/Tutorial/TutorialLeftLong.qml:49
438−msgid "Swipe up to add a contact"
439−msgstr "Aufwärts wischen, um einen Kontakt hinzuzufügen"
440−
441−#: qml/Tutorial/TutorialBottom.qml:80
442−msgid "Swipe up for favorite calculations"
443−msgstr "Aufwärts wischen, um die Favoriten-Rechnungen anzuzeigen"
444−
445−#: qml/Tutorial/TutorialBottom.qml:82
446−msgid "Swipe up for recent calls"
447−msgstr "Aufwärts wischen, um die letzten Anrufe anzuzeigen"
448−
449−#: qml/Tutorial/TutorialBottom.qml:84
450−msgid "Swipe up to create a message"
451−msgstr "Aufwärts wischen, um eine Nachricht zu erstellen"
452−
453−#: qml/Tutorial/TutorialBottom.qml:85
454−msgid "Swipe up to manage the app"
455−msgstr "Aufwärts wischen, um die Anwendung zu verwalten"
456−
457−#: qml/Tutorial/TutorialLeftLong.qml:47
458msgid "Long swipe from the left edge to open the Today scope"
620msgid "Long swipe from the left edge to open the Today scope"
459msgstr ""
621msgstr ""
460"Langgezogene Wischgeste von der linken Kante, um den Heute-Scope zu öffnen"
622"Langgezogene Wischgeste von der linken Kante, um den Heute-Scope zu öffnen"
461
623
462#: qml/Tutorial/TutorialLeft.qml:47
624#: qml/Tutorial/TutorialLeft.qml:47
463−msgid "Swipe from the left edge to open the launcher"
625+msgid "Short swipe from the left edge to open the launcher"
464−msgstr "Von der linken Kante wischen, um den Starter zu öffnen"
626+msgstr "Kurzes Wischen von der linken Kante öffnet den Starter"
465
627
466#: qml/Tutorial/TutorialRight.qml:55
628#: qml/Tutorial/TutorialRight.qml:55
467msgid "Push your mouse against the right edge to view your open apps"
629msgid "Push your mouse against the right edge to view your open apps"
@@ -470,20 +632,14 @@ msgstr ""
470"Anwendungen zu sehen"
632"Anwendungen zu sehen"
471
633
472#: qml/Tutorial/TutorialRight.qml:56
634#: qml/Tutorial/TutorialRight.qml:56
473−msgid "Short or long swipe from the right edge to view your open apps"
635+msgid "Swipe from the right edge to view your open apps"
474−msgstr ""
636+msgstr "Wischen von der rechten Kante zeigt die geöffneten Anwendungen"
475−"Kurze oder langgezogene Wischgeste von der rechten Kante, um die offenen "
476−"Anwendungen zu sehen"
477
637
478#: qml/Tutorial/TutorialTop.qml:53
638#: qml/Tutorial/TutorialTop.qml:53
479−msgid "Swipe from the top right edge to open the notification bar"
639+msgid "Swipe from the top edge to access notifications and quick settings"
480msgstr ""
640msgstr ""
481−"Vom rechten oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
641+"Wischen von der oberen Kante zeigt Benachrichtigungen und "
482−
642+"Schnelleinstellungen"
483−#: qml/Tutorial/TutorialTop.qml:54
484−msgid "Swipe from the top edge to open the notification bar"
485−msgstr ""
486−"Vom oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
487
643
488#: qml/Wizard/Page.qml:54
644#: qml/Wizard/Page.qml:54
489msgctxt "Button: Go back one page in the Wizard"
645msgctxt "Button: Go back one page in the Wizard"
@@ -494,15 +650,32 @@ msgstr "Zurück"
494msgid "Language"
650msgid "Language"
495msgstr "Sprache"
651msgstr "Sprache"
496
652
497−#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
653+#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
498#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
654#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
499#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
655#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
500#: qml/Wizard/Pages/75-report-check.qml:84
656#: qml/Wizard/Pages/75-report-check.qml:84
501−#: qml/Wizard/Pages/passcode-desktop.qml:124
657+#: qml/Wizard/Pages/passcode-desktop.qml:141
502#: qml/Wizard/Pages/password-set.qml:141
658#: qml/Wizard/Pages/password-set.qml:141
503msgid "Next"
659msgid "Next"
504msgstr "Weiter"
660msgstr "Weiter"
505
661
662+#: qml/Wizard/Pages/20-keyboard.qml:30
663+msgid "Select Keyboard"
664+msgstr "Tastatur wählen"
665+
666+#: qml/Wizard/Pages/20-keyboard.qml:70
667+msgid "Keyboard language"
668+msgstr "Tastatursprache"
669+
670+#: qml/Wizard/Pages/20-keyboard.qml:92
671+msgid "Keyboard layout"
672+msgstr "Tastaturlayout"
673+
674+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
675+#: qml/Wizard/Pages/sim.qml:101
676+msgid "Skip"
677+msgstr "Überspringen"
678+
506#: qml/Wizard/Pages/30-wifi.qml:29
679#: qml/Wizard/Pages/30-wifi.qml:29
507msgid "Connect to Wi‑Fi"
680msgid "Connect to Wi‑Fi"
508msgstr "Mit WLAN verbinden"
681msgstr "Mit WLAN verbinden"
@@ -519,11 +692,6 @@ msgstr "Verfügbare Funknetzwerke"
519msgid "No available Wi-Fi networks"
692msgid "No available Wi-Fi networks"
520msgstr "Keine Funknetzwerke verfügbar"
693msgstr "Keine Funknetzwerke verfügbar"
521
694
522−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
523−#: qml/Wizard/Pages/sim.qml:101
524−msgid "Skip"
525−msgstr "Überspringen"
526−
527#: qml/Wizard/Pages/40-location.qml:27
695#: qml/Wizard/Pages/40-location.qml:27
528msgid "Location Services"
696msgid "Location Services"
529msgstr "Standortdienste"
697msgstr "Standortdienste"
@@ -611,6 +779,37 @@ msgstr ""
611msgid "Privacy policy"
779msgid "Privacy policy"
612msgstr "Datenschutzerklärung"
780msgstr "Datenschutzerklärung"
613
781
782+#: qml/Wizard/Pages/77-system-update.qml:28
783+msgid "Update Device"
784+msgstr "Gerät aktualisieren"
785+
786+#: qml/Wizard/Pages/77-system-update.qml:55
787+msgid ""
788+"There is a system update available and ready to install. Afterwards, the "
789+"device will automatically restart."
790+msgstr ""
791+"Es ist eine Systemaktualisierung verfügbar und bereit zur Installation. "
792+"Danach wird das Gerät automatisch neu starten."
793+
794+#: qml/Wizard/Pages/77-system-update.qml:76
795+msgctxt "string identifying name of the update"
796+msgid "Ubuntu system"
797+msgstr "Ubuntu System"
798+
799+#: qml/Wizard/Pages/77-system-update.qml:83
800+#, qt-format
801+msgctxt "version of the system update"
802+msgid "Version %1"
803+msgstr "Version %1"
804+
805+#: qml/Wizard/Pages/77-system-update.qml:102
806+msgid "This could take a few minutes..."
807+msgstr "Dies kann ein paar Minuten dauern …"
808+
809+#: qml/Wizard/Pages/77-system-update.qml:116
810+msgid "Install and restart now"
811+msgstr "Jetzt installieren und neu starten"
812+
614#: qml/Wizard/Pages/80-finished.qml:89
813#: qml/Wizard/Pages/80-finished.qml:89
615msgid "Welcome to Ubuntu"
814msgid "Welcome to Ubuntu"
616msgstr "Willkommen bei Ubuntu"
815msgstr "Willkommen bei Ubuntu"
@@ -661,7 +860,7 @@ msgid "Service Terms"
661msgstr "Bedingungen des Dienstes"
860msgstr "Bedingungen des Dienstes"
662
861
663#: qml/Wizard/Pages/passcode-confirm.qml:43
862#: qml/Wizard/Pages/passcode-confirm.qml:43
664−#: qml/Wizard/Pages/passcode-desktop.qml:80
863+#: qml/Wizard/Pages/passcode-desktop.qml:96
665msgid "Confirm passcode"
864msgid "Confirm passcode"
666msgstr "PIN bestätigen"
865msgstr "PIN bestätigen"
667
866
@@ -678,24 +877,24 @@ msgstr "Bitte erneut eingeben."
678msgid "Lock Screen Passcode"
877msgid "Lock Screen Passcode"
679msgstr "Sperrbildschirm-PIN"
878msgstr "Sperrbildschirm-PIN"
680
879
681−#: qml/Wizard/Pages/passcode-desktop.qml:56
880+#: qml/Wizard/Pages/passcode-desktop.qml:60
682msgid "Enter 4 numbers to setup your passcode"
881msgid "Enter 4 numbers to setup your passcode"
683msgstr "Geben Sie 4 Ziffern ein, um Ihre PIN einzurichten"
882msgstr "Geben Sie 4 Ziffern ein, um Ihre PIN einzurichten"
684
883
685−#: qml/Wizard/Pages/passcode-desktop.qml:65
884+#: qml/Wizard/Pages/passcode-desktop.qml:76
686#: qml/Wizard/Pages/passcode-set.qml:54
885#: qml/Wizard/Pages/passcode-set.qml:54
687msgid "Choose passcode"
886msgid "Choose passcode"
688msgstr "PIN wählen"
887msgstr "PIN wählen"
689
888
690−#: qml/Wizard/Pages/passcode-desktop.qml:105
889+#: qml/Wizard/Pages/passcode-desktop.qml:126
691msgid "Passcode too short"
890msgid "Passcode too short"
692msgstr "PIN zu kurz"
891msgstr "PIN zu kurz"
693
892
694−#: qml/Wizard/Pages/passcode-desktop.qml:107
893+#: qml/Wizard/Pages/passcode-desktop.qml:128
695msgid "Passcodes match"
894msgid "Passcodes match"
696msgstr "PINs stimmen überein"
895msgstr "PINs stimmen überein"
697
896
698−#: qml/Wizard/Pages/passcode-desktop.qml:109
897+#: qml/Wizard/Pages/passcode-desktop.qml:130
699msgid "Passcodes do not match"
898msgid "Passcodes do not match"
700msgstr "PINs stimmen nicht überein"
899msgstr "PINs stimmen nicht überein"
701
900
@@ -745,26 +944,30 @@ msgid "To proceed with no SIM tap Skip."
745msgstr "Um ohne SIM-Karte fortzufahren, Überspringen drücken."
944msgstr "Um ohne SIM-Karte fortzufahren, Überspringen drücken."
746
945
747#: qml/Wizard/PasswordMeter.qml:87
946#: qml/Wizard/PasswordMeter.qml:87
947+msgid "Password too short"
948+msgstr "Passwort zu kurz"
949+
950+#: qml/Wizard/PasswordMeter.qml:89
748msgid "Passwords match"
951msgid "Passwords match"
749msgstr "Passwörter stimmen überein"
952msgstr "Passwörter stimmen überein"
750
953
751−#: qml/Wizard/PasswordMeter.qml:89
954+#: qml/Wizard/PasswordMeter.qml:91
752msgid "Passwords do not match"
955msgid "Passwords do not match"
753msgstr "Passwörter stimmen nicht überein"
956msgstr "Passwörter stimmen nicht überein"
754
957
755−#: qml/Wizard/PasswordMeter.qml:93
958+#: qml/Wizard/PasswordMeter.qml:95
756msgid "Strong password"
959msgid "Strong password"
757msgstr "Starkes Passwort"
960msgstr "Starkes Passwort"
758
961
759−#: qml/Wizard/PasswordMeter.qml:95
962+#: qml/Wizard/PasswordMeter.qml:97
760msgid "Fair password"
963msgid "Fair password"
761msgstr "Ausreichendes Passwort"
964msgstr "Ausreichendes Passwort"
762
965
763−#: qml/Wizard/PasswordMeter.qml:97
966+#: qml/Wizard/PasswordMeter.qml:99
764msgid "Weak password"
967msgid "Weak password"
765msgstr "Schwaches Passwort"
968msgstr "Schwaches Passwort"
766
969
767−#: qml/Wizard/PasswordMeter.qml:99
970+#: qml/Wizard/PasswordMeter.qml:101
768msgid "Very weak password"
971msgid "Very weak password"
769msgstr "Sehr schwaches Passwort"
972msgstr "Sehr schwaches Passwort"
770
973
@@ -1023,6 +1226,9 @@ msgstr "Sehr schwaches Passwort"
1023#~ msgid "Swipe up from the bottom edge."
1226#~ msgid "Swipe up from the bottom edge."
1024#~ msgstr "Wischen Sie von der unteren Bildschirmkante nach oben."
1227#~ msgstr "Wischen Sie von der unteren Bildschirmkante nach oben."
1025
1228
1229+#~ msgid "Tap to unlock"
1230+#~ msgstr "Zum Entsperren tippen"
1231+
1026#~ msgctxt "Button: Shut down the system"
1232#~ msgctxt "Button: Shut down the system"
1027#~ msgid "Shut down"
1233#~ msgid "Shut down"
1028#~ msgstr "Ausschalten"
1234#~ msgstr "Ausschalten"
@@ -1092,6 +1298,37 @@ msgstr "Sehr schwaches Passwort"
1092#~ msgid "Call back"
1298#~ msgid "Call back"
1093#~ msgstr "Zurückrufen"
1299#~ msgstr "Zurückrufen"
1094
1300
1301+#~ msgid "Short or long swipe from the right edge to view your open apps"
1302+#~ msgstr ""
1303+#~ "Kurze oder langgezogene Wischgeste von der rechten Kante, um die offenen "
1304+#~ "Anwendungen zu sehen"
1305+
1306+#~ msgid "Swipe up for recent calls"
1307+#~ msgstr "Aufwärts wischen, um die letzten Anrufe anzuzeigen"
1308+
1309+#~ msgid "Swipe up for favorite calculations"
1310+#~ msgstr "Aufwärts wischen, um die Favoriten-Rechnungen anzuzeigen"
1311+
1312+#~ msgid "Swipe up to manage the app"
1313+#~ msgstr "Aufwärts wischen, um die Anwendung zu verwalten"
1314+
1315+#~ msgid "Swipe up to create a message"
1316+#~ msgstr "Aufwärts wischen, um eine Nachricht zu erstellen"
1317+
1318+#~ msgid "Swipe up to add a contact"
1319+#~ msgstr "Aufwärts wischen, um einen Kontakt hinzuzufügen"
1320+
1321+#~ msgid "Swipe from the left edge to open the launcher"
1322+#~ msgstr "Von der linken Kante wischen, um den Starter zu öffnen"
1323+
1095#~ msgid "Hover your mouse on the right edge to view your open apps"
1324#~ msgid "Hover your mouse on the right edge to view your open apps"
1096#~ msgstr ""
1325#~ msgstr ""
1097#~ "Die Maus auf den rechten Rand bewegen, um die offenen Anwendungen zu sehen"
1326#~ "Die Maus auf den rechten Rand bewegen, um die offenen Anwendungen zu sehen"
1327+
1328+#~ msgid "Swipe from the top right edge to open the notification bar"
1329+#~ msgstr ""
1330+#~ "Vom rechten oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
1331+
1332+#~ msgid "Swipe from the top edge to open the notification bar"
1333+#~ msgstr ""
1334+#~ "Vom oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
po/el.po+300−94

This diff is too big to show here.

po/en_AU.po+330−97

This diff is too big to show here.

po/en_GB.po+331−98

This diff is too big to show here.

po/eo.po+296−93

This diff is too big to show here.

po/es.po+336−99

This diff is too big to show here.

po/eu.po+300−94

This diff is too big to show here.

po/fa.po+335−101

This diff is too big to show here.

po/fi.po+334−99

This diff is too big to show here.

po/fo.po+378−171

This diff is too big to show here.

po/fr.po+342−104

This diff is too big to show here.

po/ga.po+300−94

This diff is too big to show here.

po/gd.po+340−100

This diff is too big to show here.

po/gl.po+334−97

This diff is too big to show here.

po/gv.po+296−93

This diff is too big to show here.

po/he.po+300−94

This diff is too big to show here.

po/hi.po+296−93

This diff is too big to show here.

po/hr.po+331−98

This diff is too big to show here.

po/hu.po+335−99

This diff is too big to show here.

po/hy.po+296−93

This diff is too big to show here.

po/ia.po+335−98

This diff is too big to show here.

po/id.po+296−93

This diff is too big to show here.

po/is.po+296−93

This diff is too big to show here.

po/it.po+331−98

This diff is too big to show here.

po/ja.po+296−93

This diff is too big to show here.

po/km.po+296−93

This diff is too big to show here.

po/kn.po+296−93

This diff is too big to show here.

po/ko.po+300−94

This diff is too big to show here.

po/ku.po+296−93

This diff is too big to show here.

po/ky.po+296−93

This diff is too big to show here.

po/lo.po+296−93

This diff is too big to show here.

po/lt.po+296−93

This diff is too big to show here.

po/lv.po+300−94

This diff is too big to show here.

po/ml.po+296−93

This diff is too big to show here.

po/mr.po+296−93

This diff is too big to show here.

po/ms.po+336−98

This diff is too big to show here.

po/my.po+296−93

This diff is too big to show here.

po/nb.po+333−100

This diff is too big to show here.

po/ne.po+296−93

This diff is too big to show here.

po/nl.po+326−96

This diff is too big to show here.

po/nn.po+296−93

This diff is too big to show here.

po/oc.po+309−94

This diff is too big to show here.

po/or.po+296−93

This diff is too big to show here.

po/pa.po+300−94

This diff is too big to show here.

po/pl.po+339−102

This diff is too big to show here.

po/pt.po+336−99

This diff is too big to show here.

po/pt_BR.po+300−94

This diff is too big to show here.

po/ro.po+300−94

This diff is too big to show here.

po/ru.po+323−102

This diff is too big to show here.

po/shn.po+296−93

This diff is too big to show here.

po/si.po+296−93

This diff is too big to show here.

po/sk.po+336−101

This diff is too big to show here.

po/sl.po+330−97

This diff is too big to show here.

po/sq.po+300−94

This diff is too big to show here.

po/sr.po+335−99

This diff is too big to show here.

po/sv.po+336−102

This diff is too big to show here.

po/sw.po+300−94

This diff is too big to show here.

po/ta.po+296−93

This diff is too big to show here.

po/te.po+296−93

This diff is too big to show here.

po/th.po+296−93

This diff is too big to show here.

po/tr.po+300−94

This diff is too big to show here.

po/ug.po+319−113

This diff is too big to show here.

po/uk.po+331−98

This diff is too big to show here.

po/unity8.pot+314−109

This diff is too big to show here.

po/ur.po+296−93

This diff is too big to show here.

po/uz.po+296−93

This diff is too big to show here.

po/vi.po+296−93

This diff is too big to show here.

po/wo.po+300−94

This diff is too big to show here.

po/xh.po+296−93

This diff is too big to show here.

po/zh_CN.po+339−106

This diff is too big to show here.

po/zh_HK.po+296−93

This diff is too big to show here.

po/zh_TW.po+312−106

This diff is too big to show here.

qml/Components/DelayedLockscreen.qml+1

This diff is too big to show here.

qml/Components/Dialogs.qml+13−8

This diff is too big to show here.

qml/Components/FadingLabel.qmlnew file+42

This diff is too big to show here.

qml/Components/InputMethod.qml+8−44

This diff is too big to show here.

qml/Components/KeyboardShortcutsOverlay.qmlnew file+334

This diff is too big to show here.

qml/Components/KeymapSwitcher.qml+27−1

This diff is too big to show here.

qml/Components/LazyImage.qml+3−1

This diff is too big to show here.

qml/Components/ListItems/graphics/ListItemDividerHorizontal@18.png

Binary file not shown.

qml/Components/Lockscreen.qml+8

This diff is too big to show here.

qml/Components/MediaServices/MediaServices.qmlnew file+386

This diff is too big to show here.

qml/Components/MediaServices/MediaServicesControls.qmlnew file+192

This diff is too big to show here.

qml/Components/MediaServices/MediaServicesHeader.qmlnew file+71

This diff is too big to show here.

qml/Components/MediaServices/VideoPlayer.qmlnew file+155

This diff is too big to show here.

qml/Components/MediaServices/VideoPlayerControls.qmlnew file+158

This diff is too big to show here.

qml/Components/NotificationAudio.qml+20−3

This diff is too big to show here.

qml/Components/PanelState/PanelState.qml+1

This diff is too big to show here.

qml/Components/PassphraseLockscreen.qml+4

This diff is too big to show here.

qml/Components/PhysicalKeysMapper.qml+2−22

This diff is too big to show here.

qml/Components/PinLockscreen.qml+4

This diff is too big to show here.

qml/Dash/Previews/PreviewSharing.qml → qml/Components/SharingPicker.qmlrenamed+2−14

This diff is too big to show here.

qml/Components/WindowControlButtons.qml+23−27

This diff is too big to show here.

qml/Components/graphics/close@20.png

Binary file not shown.

qml/Components/graphics/icon_star_empty@20.png

Binary file not shown.

qml/Components/graphics/icon_star_full@20.png

Binary file not shown.

qml/Components/graphics/icon_star_half@20.png

Binary file not shown.

qml/Components/graphics/icon_star_off@20.png

Binary file not shown.

qml/Components/graphics/icon_star_on@20.png

Binary file not shown.

qml/Components/graphics/non-selected@18.png

Binary file not shown.

qml/Components/graphics/window-close.svg+164−14

This diff is too big to show here.

qml/Components/graphics/window-maximize.svg+164−12

This diff is too big to show here.

qml/Components/graphics/window-minimize.svg+164−13

This diff is too big to show here.

qml/Components/graphics/window-window.svgnew file+41

This diff is too big to show here.

qml/Dash/CardCarousel.qml+1

This diff is too big to show here.

qml/Dash/CardTool.qml+4−3

This diff is too big to show here.

qml/Dash/DashApplication.qml+16−5

This diff is too big to show here.

qml/Dash/DashNavigationList.qml+48−45

This diff is too big to show here.

qml/Dash/DashPageHeader.qml+49−22

This diff is too big to show here.

qml/Dash/Filters/FilterExpandableWidget.qml+1

This diff is too big to show here.

qml/Dash/Filters/FilterOptionSelector.qml+2

This diff is too big to show here.

qml/Dash/GenericScopeView.qml+12−10

This diff is too big to show here.

qml/Dash/Previews/Preview.qml+17

This diff is too big to show here.

qml/Dash/Previews/PreviewImageGallery.qml+3

This diff is too big to show here.

qml/Dash/Previews/PreviewInlineVideo.qmlnew file+65

This diff is too big to show here.

qml/Dash/Previews/PreviewMediaToolbar.qml+25−5

This diff is too big to show here.

qml/Dash/Previews/PreviewRatingEdit.qml+4−1

This diff is too big to show here.

qml/Dash/Previews/PreviewWidget.qml+3

This diff is too big to show here.

qml/Dash/Previews/PreviewWidgetFactory.qml+11−1

This diff is too big to show here.

qml/Dash/Previews/PreviewZoomableImage.qml+1

This diff is too big to show here.

qml/Dash/ScopesList.qml+1

This diff is too big to show here.

qml/Dash/graphics/dash_divider_top_darkgrad@27.png

Binary file not shown.

qml/Dash/graphics/dash_divider_top_lightgrad@27.png

Binary file not shown.

qml/Dash/graphics/header_handlearrow2@27.png

Binary file not shown.

qml/Dash/graphics/header_handlearrow@27.png

Binary file not shown.

qml/Dash/graphics/icon_clear@20.png

Binary file not shown.

qml/Dash/graphics/icon_search_active@20.png

Binary file not shown.

qml/Dash/graphics/icon_search_inactive@20.png

Binary file not shown.

qml/Dash/graphics/navigation_shadow@18.png

Binary file not shown.

qml/Dash/graphics/navigation_shadow_light@18.png

Binary file not shown.

qml/Dash/graphics/overview_hint@27.png

Binary file not shown.

qml/Dash/graphics/pagination_dot_off@30.png

Binary file not shown.

qml/Dash/graphics/pagination_dot_on@30.png

Binary file not shown.

qml/Dash/graphics/paper.png

Binary file not shown.

qml/Dash/graphics/pixel.png

Binary file not shown.

qml/Dash/graphics/play_button@18.png

Binary file not shown.

qml/Dash/graphics/play_button_active@18.png

Binary file not shown.

qml/Dash/graphics/play_button_active_big@20.png

Binary file not shown.

qml/Dash/graphics/play_button_big@20.png

Binary file not shown.

qml/Dash/graphics/tabbarchevron@27.png

Binary file not shown.

qml/Dash/graphics/tablet/icon_close_preview@20.png

Binary file not shown.

qml/Dash/graphics/tooltip_arrow@27.png

Binary file not shown.

qml/Greeter/CoverPage.qml+23−1

This diff is too big to show here.

qml/Greeter/FullLightDMImpl.qmlnew file+28

This diff is too big to show here.

qml/Greeter/Greeter.qml+192−70

This diff is too big to show here.

qml/Greeter/GreeterPrompt.qmlnew file+197

This diff is too big to show here.

qml/Greeter/IntegratedLightDMImpl.qml+1−1

This diff is too big to show here.

qml/Greeter/LightDM.qml → qml/Greeter/LightDMService.qmlrenamed+14−3

This diff is too big to show here.

qml/Greeter/LoginList.qml+77−81

This diff is too big to show here.

qml/Greeter/NarrowView.qml+20−3

This diff is too big to show here.

qml/Greeter/WideView.qml+11−4

This diff is too big to show here.

qml/Greeter/graphics/dot_empty.png

Binary file not shown.

qml/Greeter/graphics/dot_filled.png

Binary file not shown.

qml/Greeter/graphics/dot_pointer.png

Binary file not shown.

qml/Greeter/graphics/icon_arrow.png

Binary file not shown.

qml/Greeter/graphics/infographic_circle_back.png

Binary file not shown.

qml/Greeter/qmldirnew file+1

This diff is too big to show here.

qml/Launcher/Launcher.qml+2

This diff is too big to show here.

qml/Launcher/LauncherDelegate.qml+4−8

This diff is too big to show here.

qml/Launcher/LauncherPanel.qml+6−2

This diff is too big to show here.

qml/Launcher/graphics/divider-line.png

Binary file not shown.

qml/Launcher/graphics/focused_app_arrow@30.png

Binary file not shown.

qml/Launcher/graphics/home@18.png

Binary file not shown.

qml/Launcher/graphics/quicklist_tooltip@30.png

Binary file not shown.

qml/Notifications/Notification.qml+29−29

This diff is too big to show here.

qml/Notifications/NotificationMenuItemFactory.qml−3

This diff is too big to show here.

qml/Notifications/Notifications.qml+14−24

This diff is too big to show here.

qml/OrientedShell.qml+10−3

This diff is too big to show here.

qml/Panel/IndicatorItemRow.qml+13−2

This diff is too big to show here.

qml/Panel/Indicators/MenuItemFactory.qml+65

This diff is too big to show here.

qml/Panel/IndicatorsMenu.qml+3−1

This diff is too big to show here.

qml/Panel/Panel.qml+5−2

This diff is too big to show here.

qml/Panel/graphics/rectangular_dropshadow@30.png

Binary file not shown.

qml/Rotation/HalfLoopRotationAnimation.qml+1−1

This diff is too big to show here.

qml/Rotation/ImmediateRotationAction.qml+1−1

This diff is too big to show here.

qml/Rotation/NinetyRotationAnimation.qml+1−1

This diff is too big to show here.

qml/Rotation/UpdateShellTransformations.qml+4−4

This diff is too big to show here.

qml/Shell.qml+78−21

This diff is too big to show here.

qml/Stages/AbstractStage.qml+10

This diff is too big to show here.

qml/Stages/ApplicationWindow.qml+32−9

This diff is too big to show here.

qml/Stages/DecoratedWindow.qml+41−13

This diff is too big to show here.

qml/Stages/DesktopSpread.qml+2

This diff is too big to show here.

qml/Stages/DesktopStage.qml+90−23

This diff is too big to show here.

qml/Stages/OrientationChangeAnimation.qml+30−6

This diff is too big to show here.

qml/Stages/PhoneStage.qml+9−3

This diff is too big to show here.

qml/Stages/ShimStage.qml → qml/Stages/ResizeGrip.qmlrenamed+22−19

This diff is too big to show here.

qml/Stages/SpreadDelegate.qml+79−92

This diff is too big to show here.

qml/Stages/TabletSideStageTouchGesture.qml+3

This diff is too big to show here.

qml/Stages/TabletStage.qml+27−14

This diff is too big to show here.

qml/Stages/WindowControlsOverlay.qmlnew file+219

This diff is too big to show here.

qml/Stages/WindowDecoration.qml+28−6

This diff is too big to show here.

qml/Stages/WindowResizeArea.qml+15−15

This diff is too big to show here.

qml/Stages/graphics/PageHeaderBaseDividerBottom@18.png

Binary file not shown.

qml/Stages/graphics/PageHeaderBaseDividerLight@18.png

Binary file not shown.

qml/Stages/graphics/arrows-centre.pngnew file

Binary file not shown.

qml/Stages/graphics/arrows.pngnew file

Binary file not shown.

qml/Stages/graphics/dropshadow2gu@30.png

Binary file not shown.

qml/Stages/graphics/sidestage_handle@20.png

Binary file not shown.

qml/Tutorial/InactivityTimer.qml+26−10

This diff is too big to show here.

qml/Tutorial/Tutorial.qml+7−6

This diff is too big to show here.

qml/Tutorial/TutorialBottom.qmldeleted−124

This diff is too big to show here.

qml/Tutorial/TutorialContent.qml+51−134

This diff is too big to show here.

qml/Tutorial/TutorialLeft.qml+2−2

This diff is too big to show here.

qml/Tutorial/TutorialLeftLong.qml+3−1

This diff is too big to show here.

qml/Tutorial/TutorialPage.qml+2−2

This diff is too big to show here.

qml/Tutorial/TutorialRight.qml+2−2

This diff is too big to show here.

qml/Tutorial/TutorialTop.qml+2−3

This diff is too big to show here.

qml/Tutorial/graphics/background1.png

Binary file not shown.

qml/Tutorial/graphics/background2.png

Binary file not shown.

qml/Wizard/Page.qml+1−1

This diff is too big to show here.

qml/Wizard/Pages/10-welcome.qml+19−5

This diff is too big to show here.

qml/Wizard/Pages/20-keyboard.qmlnew file+160

This diff is too big to show here.

qml/Wizard/Pages/30-wifi.qml+10−5

This diff is too big to show here.

qml/Wizard/Pages/77-system-update.qmlnew file+156

This diff is too big to show here.

qml/Wizard/Pages/data/Desktop_header_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Desktop_splash_screen_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Phone_header_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Phone_splash_screen_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Tick@30.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/map.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/pin.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-1.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-10.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-11.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-2.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-3.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-3.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-4.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-4.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-6.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-7.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-8.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-9.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-9.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_0.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_1.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_10.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_10.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_11.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_12.75.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_12.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_13.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_2.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_3.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_3.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_4.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_4.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.75.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_6.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_6.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_7.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_8.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_8.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_9.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_9.png

Binary file not shown.

qml/Wizard/Pages/passcode-desktop.qml+27−10

This diff is too big to show here.

qml/Wizard/PasswordMeter.qml+3−1

This diff is too big to show here.

qml/Wizard/Wizard.qml+6−2

This diff is too big to show here.

qml/Wizard/WizardItemSelector.qmlnew file+128

This diff is too big to show here.

qml/graphics/dropshadow_left@20.png

Binary file not shown.

qml/graphics/dropshadow_right@20.png

Binary file not shown.

run.shdeleted−70

This diff is too big to show here.

run_on_device.shdeleted−164

This diff is too big to show here.

src/CMakeLists.txt+1

This diff is too big to show here.

src/Dash/main.cpp+23−21

This diff is too big to show here.

src/SecondaryWindow.cpp+1−1

This diff is too big to show here.

src/ShellApplication.cpp+11−1

This diff is too big to show here.

src/UnixSignalHandler.cpp+3−5

This diff is too big to show here.

src/main.cpp+2

This diff is too big to show here.

tests/CMakeLists.txt+7−1

This diff is too big to show here.

tests/autopilot/unity8/fixture_setup.py+1−1

This diff is too big to show here.

tests/autopilot/unity8/greeter/tests/test_args.py−5

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/__init__.py+1−1

This diff is too big to show here.

tests/data/unity/backgrounds/blue.png

Binary file not shown.

tests/data/unity/backgrounds/red.png

Binary file not shown.

tests/graphics/applicationIcons/browser@18.png

Binary file not shown.

tests/graphics/applicationIcons/calendar@18.png

Binary file not shown.

tests/graphics/applicationIcons/camera@18.png

Binary file not shown.

tests/graphics/applicationIcons/contacts-app@18.png

Binary file not shown.

tests/graphics/applicationIcons/dash.png

Binary file not shown.

tests/graphics/applicationIcons/dialer-app@18.png

Binary file not shown.

tests/graphics/applicationIcons/evernote@18.png

Binary file not shown.

tests/graphics/applicationIcons/facebook@18.png

Binary file not shown.

tests/graphics/applicationIcons/gallery@18.png

Binary file not shown.

tests/graphics/applicationIcons/gmail@18.png

Binary file not shown.

tests/graphics/applicationIcons/libreoffice@18.png

Binary file not shown.

tests/graphics/applicationIcons/map@18.png

Binary file not shown.

tests/graphics/applicationIcons/messages-app@18.png

Binary file not shown.

tests/graphics/applicationIcons/notepad@18.png

Binary file not shown.

tests/graphics/applicationIcons/pinterest@18.png

Binary file not shown.

tests/graphics/applicationIcons/soundcloud@18.png

Binary file not shown.

tests/graphics/applicationIcons/system-settings@18.png

Binary file not shown.

tests/graphics/applicationIcons/twitter@18.png

Binary file not shown.

tests/graphics/applicationIcons/weather@18.png

Binary file not shown.

tests/graphics/applicationIcons/wikipedia@18.png

Binary file not shown.

tests/graphics/applicationIcons/youtube@18.png

Binary file not shown.

tests/graphics/avatars/amanda@12.png

Binary file not shown.

tests/graphics/avatars/anna_olsson@12.png

Binary file not shown.

tests/graphics/avatars/funky@12.png

Binary file not shown.

tests/graphics/clock@18.png

Binary file not shown.

tests/mocks/AccountsService/AccountsService.cpp+24

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.h+17−1

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.qmltypesdeleted−41

This diff is too big to show here.

tests/mocks/Biometryd/CMakeLists.txtnew file+14

This diff is too big to show here.

tests/mocks/Biometryd/MockBiometryd.cppnew file+43

This diff is too big to show here.

tests/mocks/Biometryd/MockBiometryd.hnew file+50

This diff is too big to show here.

tests/mocks/Biometryd/MockDevice.cppnew file+29

This diff is too big to show here.

tests/mocks/Biometryd/MockDevice.hnew file+40

This diff is too big to show here.

tests/mocks/Biometryd/MockIdentifier.cppnew file+28

This diff is too big to show here.

tests/mocks/Biometryd/MockIdentifier.hnew file+36

This diff is too big to show here.

tests/mocks/Biometryd/MockObserver.cppnew file+22

This diff is too big to show here.

tests/mocks/Biometryd/MockObserver.hnew file+37

This diff is too big to show here.

tests/mocks/Biometryd/MockOperation.cppnew file+56

This diff is too big to show here.

tests/mocks/Biometryd/MockOperation.hnew file+48

This diff is too big to show here.

tests/mocks/Biometryd/plugin.cppnew file+41

This diff is too big to show here.

tests/mocks/Biometryd/plugin.hnew file+31

This diff is too big to show here.

tests/mocks/Biometryd/qmldirnew file+3

This diff is too big to show here.

tests/mocks/CMakeLists.txt+2−1

This diff is too big to show here.

tests/mocks/GSettings.1.0/GSettings.qmltypesdeleted−42

This diff is too big to show here.

tests/mocks/GSettings.1.0/fake_gsettings.cpp+1−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/qmldirdeleted−3

This diff is too big to show here.

tests/mocks/LightDM/CMakeLists.txtnew file+1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/IntegratedLightDM.qmltypes → tests/mocks/LightDM/IntegratedLightDM.qmltypesrenamed

The content is the same.

tests/mocks/IntegratedLightDM/CMakeLists.txt → tests/mocks/LightDM/IntegratedLightDM/CMakeLists.txtrenamed+9−7

This diff is too big to show here.

tests/mocks/IntegratedLightDM/MockGreeter.cpp → tests/mocks/LightDM/IntegratedLightDM/MockGreeter.cpprenamed+16

This diff is too big to show here.

tests/mocks/IntegratedLightDM/MockGreeter.h → tests/mocks/LightDM/IntegratedLightDM/MockGreeter.hrenamed+5

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.cppnew file+37

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.hnew file+34

This diff is too big to show here.

tests/mocks/IntegratedLightDM/MockUsersModel.cpp → tests/mocks/LightDM/IntegratedLightDM/MockUsersModel.cpprenamed

The content is the same.

tests/mocks/IntegratedLightDM/MockUsersModel.h → tests/mocks/LightDM/IntegratedLightDM/MockUsersModel.hrenamed

The content is the same.

tests/mocks/IntegratedLightDM/QLightDM/Greeter → tests/mocks/LightDM/IntegratedLightDM/QLightDM/Greeterrenamed

The content is the same.

tests/mocks/LightDM/IntegratedLightDM/QLightDM/SessionsModelnew file+17

This diff is too big to show here.

tests/mocks/IntegratedLightDM/QLightDM/UsersModel → tests/mocks/LightDM/IntegratedLightDM/QLightDM/UsersModelrenamed

The content is the same.

tests/mocks/IntegratedLightDM/liblightdm/CMakeLists.txt → tests/mocks/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txtrenamed+4−2

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/Greeter.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.cpprenamed+9−2

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/Greeter.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.hrenamed+1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpprenamed

The content is the same.

tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.hrenamed+1

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cppnew file+99

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.hnew file+72

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cppnew file+73

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.hnew file+59

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModel.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModel.cpprenamed+4−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModel.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModel.hrenamed+2−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpprenamed+29−23

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.hrenamed+2−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/plugin.cpp → tests/mocks/LightDM/IntegratedLightDM/plugin.cpprenamed+15−4

This diff is too big to show here.

tests/mocks/IntegratedLightDM/plugin.h → tests/mocks/LightDM/IntegratedLightDM/plugin.hrenamed+1−1

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/qmldirnew file+2

This diff is too big to show here.

tests/mocks/Lights/Lights.qmltypesdeleted−45

This diff is too big to show here.

tests/mocks/MeeGo/QOfono/QOfono.qmltypesdeleted−30

This diff is too big to show here.

tests/mocks/Powerd/Powerd.qmltypesdeleted−39

This diff is too big to show here.

tests/mocks/QMenuModel/QMenuModel.qmltypesdeleted−111

This diff is too big to show here.

tests/mocks/QtMultimedia/CMakeLists.txt+8−2

This diff is too big to show here.

tests/mocks/QtMultimedia/QtMultimedia.qmltypesdeleted−62

This diff is too big to show here.

tests/mocks/QtMultimedia/VideoSurface.qmlnew file+111

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.cppdeleted−132

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.hdeleted−103

This diff is too big to show here.

tests/mocks/QtMultimedia/mediaplayer.cppnew file+318

This diff is too big to show here.

tests/mocks/QtMultimedia/mediaplayer.hnew file+223

This diff is too big to show here.

tests/mocks/QtMultimedia/plugin.cpp+7−3

This diff is too big to show here.

tests/mocks/QtMultimedia/videooutput.cppnew file+127

This diff is too big to show here.

tests/mocks/QtMultimedia/videooutput.hnew file+52

This diff is too big to show here.

tests/mocks/Ubuntu/DownloadDaemonListener/DownloadDaemonListener.qmltypesdeleted−60

This diff is too big to show here.

tests/mocks/Ubuntu/Payments/Payments.qmltypesdeleted−44

This diff is too big to show here.

tests/mocks/Ubuntu/SystemImage/MockSystemImage.cpp+24−1

This diff is too big to show here.

tests/mocks/Ubuntu/SystemImage/MockSystemImage.h+22−2

This diff is too big to show here.

tests/mocks/Ubuntu/SystemImage/SystemImage.qmltypesdeleted−20

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/LanguagePlugin.qmltypesdeleted−10

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/MockLanguagePlugin.qml+3−2

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/SecurityPrivacy.qmltypesdeleted−39

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/Telephony.qmltypesdeleted−58

This diff is too big to show here.

tests/mocks/Ubuntu/Thumbnailer/Thumbnailer.qmltypesdeleted−17

This diff is too big to show here.

tests/mocks/Unity/Application/Application.qmltypesdeleted−517

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationInfo.cpp+29−35

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationInfo.h+5−8

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationManager.cpp+18−11

This diff is too big to show here.

tests/mocks/Unity/Application/CMakeLists.txt−1

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurface.cpp+26

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurface.h+10

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.cpp+37−10

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.h+2

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceListModel.cpp+13−3

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceListModel.h+1

This diff is too big to show here.

tests/mocks/Unity/Application/UbuntuKeyboardInfo.cppdeleted−58

This diff is too big to show here.

tests/mocks/Unity/Application/UbuntuKeyboardInfo.hdeleted−57

This diff is too big to show here.

tests/mocks/Unity/Application/VirtualKeyboard.cpp+20−1

This diff is too big to show here.

tests/mocks/Unity/Application/VirtualKeyboard.h+4−1

This diff is too big to show here.

tests/mocks/Unity/Application/plugin.cpp−8

This diff is too big to show here.

tests/mocks/Unity/Application/resources/VirtualKeyboard.qml+1−6

This diff is too big to show here.

tests/mocks/Unity/Application/resources/screenshots/browser@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/camera@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/dialer@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/facebook@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/gallery@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/libreoffice@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/map@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/music@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/twitter@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/unity8-dash@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/vkb_portrait.png

Binary file not shown.

tests/mocks/Unity/Application/resources/vkb_portrait.png

Binary file not shown.

tests/mocks/Unity/Connectivity/Connectivity.qmltypesdeleted−20

This diff is too big to show here.

tests/mocks/Unity/DashCommunicator/DashCommunicator.qmltypesdeleted−46

This diff is too big to show here.

tests/mocks/Unity/Indicators/CMakeLists.txt−2

This diff is too big to show here.

tests/mocks/Unity/Indicators/Indicators.qmltypesdeleted−232

This diff is too big to show here.

tests/mocks/Unity/Indicators/IndicatorsModel.qml+31−5

This diff is too big to show here.

tests/mocks/Unity/Indicators/fakeindicatorsmodeldata.js+1−1

This diff is too big to show here.

tests/mocks/Unity/Launcher/CMakeLists.txt+1−1

This diff is too big to show here.

tests/mocks/Unity/Launcher/Launcher.qmltypesdeleted−187

This diff is too big to show here.

tests/mocks/Unity/Launcher/MockLauncherItem.cpp+14

This diff is too big to show here.

tests/mocks/Unity/Launcher/MockLauncherItem.h+3

This diff is too big to show here.

tests/mocks/Unity/Launcher/MockLauncherModel.cpp+8

This diff is too big to show here.

tests/mocks/Unity/Launcher/MockLauncherModel.h+1−1

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotification.cpp+15

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotification.h+5

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotificationModel.cpp+4−6

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotificationModel.h+2−4

This diff is too big to show here.

tests/mocks/Unity/Notifications/Notifications.qmltypesdeleted−149

This diff is too big to show here.

tests/mocks/Unity/Unity.qmltypesdeleted−469

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectorfilter.cpp+5

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectorfilter.h+2

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectoroptions.cpp+13

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectoroptions.h+2

This diff is too big to show here.

tests/mocks/Unity/fake_previewmodel.cpp+1−1

This diff is too big to show here.

tests/mocks/Unity/fake_scope.cpp+11−2

This diff is too big to show here.

tests/mocks/Unity/fake_scope.h+1

This diff is too big to show here.

tests/mocks/Unity/fake_scopes.cpp+1

This diff is too big to show here.

tests/mocks/Unity/fake_scopesoverview.cpp+1−1

This diff is too big to show here.

tests/mocks/Utils/CMakeLists.txt+5−1

This diff is too big to show here.

tests/mocks/Utils/Utils.qmltypesdeleted−178

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.cpp+2−2

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.h+1−1

This diff is too big to show here.

tests/mocks/Wizard/CMakeLists.txt+6−3

This diff is too big to show here.

tests/mocks/Wizard/MockSystem.cpp+8

This diff is too big to show here.

tests/mocks/Wizard/MockSystem.h+4

This diff is too big to show here.

tests/mocks/Wizard/Wizard.qmltypesdeleted−37

This diff is too big to show here.

tests/mocks/Wizard/mockplugin.cpp+2

This diff is too big to show here.

tests/mocks/libusermetrics/libusermetricsoutput/ColorTheme.hdeleted−1

This diff is too big to show here.

tests/mocks/libusermetrics/libusermetricsoutput/UserMetrics.hdeleted−1

This diff is too big to show here.

tests/plugins/AccountsService/CMakeLists.txt−5

This diff is too big to show here.

tests/plugins/CMakeLists.txt+1−1

This diff is too big to show here.

tests/plugins/Cursor/tst_Cursor.qml+8−1

This diff is too big to show here.

tests/plugins/Dash/CMakeLists.txt+4

This diff is too big to show here.

tests/plugins/Dash/cardcreator/1.res+15−29

This diff is too big to show here.

tests/plugins/Dash/cardcreator/1.res.cardcreator+9−26

This diff is too big to show here.

tests/plugins/Dash/cardcreator/10.res+5−5

This diff is too big to show here.

tests/plugins/Dash/cardcreator/10.res.cardcreator+1−2

This diff is too big to show here.

tests/plugins/Dash/cardcreator/11.res+17−31

This diff is too big to show here.

tests/plugins/Dash/cardcreator/11.res.cardcreator+9−26

This diff is too big to show here.

tests/plugins/Dash/cardcreator/12.res+15−29

This diff is too big to show here.

tests/plugins/Dash/cardcreator/12.res.cardcreator+9−26

This diff is too big to show here.

tests/plugins/Dash/cardcreator/2.res+5−5

This diff is too big to show here.

tests/plugins/Dash/cardcreator/2.res.cardcreator+1−2

This diff is too big to show here.

tests/plugins/Dash/cardcreator/3.res+16−29

This diff is too big to show here.

tests/plugins/Dash/cardcreator/3.res.cardcreator+11−27

This diff is too big to show here.

tests/plugins/Dash/cardcreator/4.res+5−5

This diff is too big to show here.

tests/plugins/Dash/cardcreator/4.res.cardcreator+1−2

This diff is too big to show here.

tests/plugins/Dash/cardcreator/5.res+16−30

This diff is too big to show here.

tests/plugins/Dash/cardcreator/5.res.cardcreator+10−27

This diff is too big to show here.

tests/plugins/Dash/cardcreator/6.res+3−3

This diff is too big to show here.

tests/plugins/Dash/cardcreator/6.res.cardcreator+1−2

This diff is too big to show here.

tests/plugins/Dash/cardcreator/7.res+5−5

This diff is too big to show here.

tests/plugins/Dash/cardcreator/7.res.cardcreator+1−2

This diff is too big to show here.

tests/plugins/Dash/cardcreator/8.res+5−5

This diff is too big to show here.

tests/plugins/Dash/cardcreator/8.res.cardcreator+1−2

This diff is too big to show here.

tests/plugins/Dash/cardcreator/9.res+4−4

This diff is too big to show here.

tests/plugins/Dash/cardcreator/9.res.cardcreator−1

This diff is too big to show here.

tests/plugins/Dash/horizontaljournaltest.cpp+1−4

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadersectionexternalmodeltest.cpp+1−4

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadersectiontest.cpp+7−4

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertest.cpp+1−4

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertestsection.qml+12−1

This diff is too big to show here.

tests/plugins/Dash/organicgridtest.cpp+1−4

This diff is too big to show here.

tests/plugins/Dash/verticaljournaltest.cpp+63−4

This diff is too big to show here.

tests/plugins/LightDM/CMakeLists.txtnew file+1

This diff is too big to show here.

tests/plugins/IntegratedLightDM/CMakeLists.txt → tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txtrenamed+36−13

This diff is too big to show here.

tests/plugins/IntegratedLightDM/dbus.cpp → tests/plugins/LightDM/IntegratedLightDM/dbus.cpprenamed

The content is the same.

tests/plugins/IntegratedLightDM/greeter.qml → tests/plugins/LightDM/IntegratedLightDM/greeter.qmlrenamed+1−1

This diff is too big to show here.

tests/plugins/IntegratedLightDM/integrated.cpp → tests/plugins/LightDM/IntegratedLightDM/integrated.cpprenamed

The content is the same.

tests/plugins/IntegratedLightDM/pam.cpp → tests/plugins/LightDM/IntegratedLightDM/pam.cpprenamed

The content is the same.

tests/plugins/LightDM/IntegratedLightDM/sessionsmodel.cppnew file+96

This diff is too big to show here.

tests/plugins/IntegratedLightDM/usersmodel.cpp → tests/plugins/LightDM/IntegratedLightDM/usersmodel.cpprenamed

The content is the same.

tests/plugins/Ubuntu/Gestures/CMakeLists.txt+4−2

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/GestureTest.cpp+3−3

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/GestureTest.h+4−5

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_AxisVelocityCalculator.cpp+1−1

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_FloatingFlickable.cpp+1−1

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_TouchGate.cpp+3−1

This diff is too big to show here.

tests/plugins/Unity/Launcher/CMakeLists.txt+1−1

This diff is too big to show here.

tests/plugins/Unity/Launcher/launchermodeltest.cpp+43−4

This diff is too big to show here.

tests/plugins/Unity/Session/CMakeLists.txt+29−1

This diff is too big to show here.

tests/plugins/Unity/Session/LightDMServer.cppnew file+29

This diff is too big to show here.

tests/plugins/Unity/Session/LightDMServer.hnew file+38

This diff is too big to show here.

tests/plugins/Unity/Session/LogindServer.cppnew file+33

This diff is too big to show here.

tests/plugins/Unity/Session/LogindServer.hnew file+43

This diff is too big to show here.

tests/plugins/Unity/Session/interfaces.xmlnew file+17

This diff is too big to show here.

tests/plugins/Unity/Session/server.cppnew file+50

This diff is too big to show here.

tests/plugins/Unity/Session/sessionbackendtest.cpp+15−1

This diff is too big to show here.

tests/plugins/Wizard/tst_pagelist.cpp+30−1

This diff is too big to show here.

tests/qmltests/CMakeLists.txt+3−1

This diff is too big to show here.

tests/qmltests/Components/CMakeLists.txt+5−1

This diff is too big to show here.

tests/qmltests/Components/tst_DragHandle.cpp+2−2

This diff is too big to show here.

tests/qmltests/Components/tst_EdgeDragEvaluator.cpp+2−2

This diff is too big to show here.

tests/qmltests/Components/tst_LazyImage/portrait.png

Binary file not shown.

tests/qmltests/Components/tst_LazyImage/square.png

Binary file not shown.

tests/qmltests/Components/tst_LazyImage/wide.png

Binary file not shown.

tests/qmltests/Components/tst_Lockscreen.qml+20−1

This diff is too big to show here.

tests/qmltests/Components/tst_MediaServices.qmlnew file+230

This diff is too big to show here.

tests/qmltests/Components/tst_PhysicalKeysMapper.qml+12−21

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewSharing.qml → tests/qmltests/Components/tst_SharingPicker.qmlrenamed+8−8

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewAudioPlayback.qml+8−10

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewExpandable.qml+23−4

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewIconActions.qml+1−1

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewInlineVideo.qmlnew file+114

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewMediaToolbar.qml+3−3

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewRatingDisplayCreationRanges.qml+51−15

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewRatingEdit.qml+3

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+17−16

This diff is too big to show here.

tests/qmltests/Dash/artwork/avatar@12.png

Binary file not shown.

tests/qmltests/Dash/artwork/background.png

Binary file not shown.

tests/qmltests/Dash/artwork/checkers.png

Binary file not shown.

tests/qmltests/Dash/artwork/emblem.png

Binary file not shown.

tests/qmltests/Dash/artwork/music-player-design.png

Binary file not shown.

tests/qmltests/Dash/tst_Card.qml+1−1

This diff is too big to show here.

tests/qmltests/Dash/tst_CardCarousel.qml+24

This diff is too big to show here.

tests/qmltests/Dash/tst_Dash.qml+84−73

This diff is too big to show here.

tests/qmltests/Dash/tst_DashContent.qml+50−7

This diff is too big to show here.

tests/qmltests/Dash/tst_DashPageHeader.qml+44−3

This diff is too big to show here.

tests/qmltests/Dash/tst_DashShell.qml+7−1

This diff is too big to show here.

tests/qmltests/Dash/tst_GenericScopeView.qml+35

This diff is too big to show here.

tests/qmltests/Greeter/TestView.qml+10−3

This diff is too big to show here.

tests/qmltests/Greeter/tst_Greeter.qml+202−23

This diff is too big to show here.

tests/qmltests/Greeter/tst_Infographics.qml+1−1

This diff is too big to show here.

tests/qmltests/Greeter/tst_NarrowView.qml+23−2

This diff is too big to show here.

tests/qmltests/Greeter/tst_WideView.qml+107−34

This diff is too big to show here.

tests/qmltests/Launcher/tst_Launcher.qml+72−14

This diff is too big to show here.

tests/qmltests/Notifications/Notification.qml+1

This diff is too big to show here.

tests/qmltests/Notifications/tst_Notifications.qml+79−29

This diff is too big to show here.

tests/qmltests/Notifications/tst_OptionToggle.qml+1−16

This diff is too big to show here.

tests/qmltests/Notifications/tst_SwipeToAct.qml+4−18

This diff is too big to show here.

tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+7−23

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorItemRow.qml+26−1

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorsBar.qml+3−3

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorsMenu.qml+33−4

This diff is too big to show here.

tests/qmltests/Stages/ApplicationCheckBox.qml+1−1

This diff is too big to show here.

tests/qmltests/Stages/SurfaceManagerControls.qml+1−1

This diff is too big to show here.

tests/qmltests/Stages/tst_ApplicationWindow.qml+39−11

This diff is too big to show here.

tests/qmltests/Stages/tst_DesktopStage.qml+160

This diff is too big to show here.

tests/qmltests/Stages/tst_PhoneStage.qml+3−3

This diff is too big to show here.

tests/qmltests/Stages/tst_SpreadDelegate.qml+115−12

This diff is too big to show here.

tests/qmltests/Stages/tst_TabletStage.qml+168−38

This diff is too big to show here.

tests/qmltests/Stages/tst_WindowResizeArea.qml+36−34

This diff is too big to show here.

tests/qmltests/Tutorial/tst_Tutorial.qml+176−210

This diff is too big to show here.

tests/qmltests/UnityLogo.png

Binary file not shown.

tests/qmltests/Wizard/tst_Wizard.qml+47−2

This diff is too big to show here.

tests/qmltests/tst_DisabledScreenNotice.qml+1−1

This diff is too big to show here.

tests/qmltests/tst_OrientedShell.qml+99−52

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+149−42

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qml+8−6

This diff is too big to show here.

tests/qmltests/utils/Unity/Test/tst_UnityTest.qml+31

This diff is too big to show here.

tests/utils/modules/Unity/Test/CMakeLists.txt+6−1

This diff is too big to show here.

tests/utils/modules/Unity/Test/Test.qmltypesdeleted−60

This diff is too big to show here.

tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.cpp+8−3

This diff is too big to show here.

tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.h+4−2

This diff is too big to show here.

tests/utils/modules/Unity/Test/testutil.cpp+32−4

This diff is too big to show here.

tests/utils/modules/Unity/Test/testutil.h+1

This diff is too big to show here.

tools/registry-tracker.cpp+2−2

This diff is too big to show here.

tools/scopetool.cpp+6−2

This diff is too big to show here.