on xenial help sign in
Merge
1307e23Albert Astals Cid
CMakeLists.txt+2−1
@@ -57,7 +57,8 @@ 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=13)
60+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=15)
61+pkg_check_modules(GEONAMES REQUIRED geonames>=0.2)
61pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
62pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
62pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
63pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
63pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
64pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
CODING+2
@@ -54,6 +54,8 @@ $ ./run.sh -p OR -k
54Notes
54Notes
55-----
55-----
56- to navigate, utilize the mouse left button as you would your finger
56- to navigate, utilize the mouse left button as you would your finger
57+- a three point drag (for side stage operations) can be performed by using
58+ the Shift+Control+Alt (all together) keyboard modifiers while using the mouse.
57- to get the translations work, currently you have to do make install to
59- to get the translations work, currently you have to do make install to
58 put the *.mo files into correct structure. We'll look for a better solution
60 put the *.mo files into correct structure. We'll look for a better solution
59 later.
61 later.
data/com.canonical.Unity8.gschema.xml+5
@@ -27,6 +27,11 @@
27 <summary>Maximum push needed to overcome edge barrier</summary>
27 <summary>Maximum push needed to overcome edge barrier</summary>
28 <description>How much you have to push (in grid units) the mouse against an edge barrier when sensibility is 1.</description>
28 <description>How much you have to push (in grid units) the mouse against an edge barrier when sensibility is 1.</description>
29 </key>
29 </key>
30+ <key type="u" name="edge-drag-width">
31+ <default>2</default>
32+ <summary>The width of the edge drag areas</summary>
33+ <description>How big (in grid units) the edge-drag sensitive area should be.</description>
34+ </key>
30 <key type="b" name="autohide-launcher">
35 <key type="b" name="autohide-launcher">
31 <default>true</default>
36 <default>true</default>
32 <summary>Autohide the launcher</summary>
37 <summary>Autohide the launcher</summary>
data/devices.confnew file+30
@@ -0,0 +1,30 @@
1+# This file can hold multiple device configs. Devices are separated by sections.
2+#
3+# SupportedOrientations holds a list of all enabled orientations. A standard
4+# phone will usually have Portrait,Landcape,InvertedLandscape in order to
5+# disable upside down usage.
6+#
7+# PrimaryOrientation gives the orientation the device will start up with
8+# when there is no orientations sensor input available (yet) or lock to
9+# when an application specifies to be locked to PrimaryOrientation.
10+#
11+# The other Orientation settings can be used to re-map the orientations.
12+# A device might be used with different orientations than how the screen
13+# is physically mounted on the hardware.
14+#
15+# Category can be phone, tablet, or desktop. This option determines
16+# whether the side stage is shown (tablet) or not (phone). Using
17+# desktop will load the shell in windowed mode. Note that the user
18+# can override/change this by connecting input hardware or change
19+# user settings.
20+#
21+# Any options not listed will default to the values of the example below.
22+
23+# [devicename]
24+# SupportedOrientations=Portrait,InvertedPortrait,Landscape,InvertedLandscape
25+# PrimaryOrientation=PrimaryOrienation
26+# PortraitOrientation=Portrait
27+# InvertedPortraitOrientation=InvertedPortrait
28+# LandscapeOrientation=Landscape
29+# InvertedLandscapeOrientation=InvertedLandscape
30+# Category=phone
data/unity8-dash.desktop.in−1
@@ -7,4 +7,3 @@ Terminal=false
7Icon=@CMAKE_INSTALL_PREFIX@/@SHELL_APP_DIR@/Dash/unity8-dash.png
7Icon=@CMAKE_INSTALL_PREFIX@/@SHELL_APP_DIR@/Dash/unity8-dash.png
8NoDisplay=true
8NoDisplay=true
9X-Ubuntu-Touch=true
9X-Ubuntu-Touch=true
10−X-Ubuntu-Supported-Orientations=primary
data/unity8.conf+6−10
@@ -44,22 +44,18 @@ pre-start script
44 fi
44 fi
45
45
46 initctl set-env --global MIR_SERVER_PROMPT_FILE=1
46 initctl set-env --global MIR_SERVER_PROMPT_FILE=1
47+
48+ # Disable Qt's stuttering 'touch compression' to fix scrolling smoothness
49+ # issues (LP: #1486341, LP: #1556763). As a bonus, this eliminates most of
50+ # the lag seen in the indicator panel pull-down (LP: #1488327) and also
51+ # reduces lag seen in apps:
52+ initctl set-env --global QML_NO_TOUCH_COMPRESSION=1
47end script
53end script
48
54
49exec ${BINARY:-unity8} $ARGS
55exec ${BINARY:-unity8} $ARGS
50
56
51post-start script
57post-start script
52 initctl emit --no-wait indicator-services-start
58 initctl emit --no-wait indicator-services-start
53−
54− # Disable Qt's stuttering 'touch compression' to fix scrolling smoothness
55− # issues (LP: #1486341). As a bonus, this eliminates most of the
56− # lag seen in the indicator panel pull-down (LP: #1488327) and also
57− # reduces lag seen in apps:
58− initctl set-env --global QML_NO_TOUCH_COMPRESSION=1
59−
60− # For twice the fun and half the latency, try this (Warning: not all
61− # devices are fast enough to keep up smoothly yet)...
62− # initctl set-env MIR_SERVER_NBUFFERS=2
63end script
59end script
64
60
65post-stop script
61post-stop script
debian/bileto_pre_release_hooknew file+5
@@ -0,0 +1,5 @@
1+#!/bin/sh
2+
3+set -eux
4+
5+sh ./po/update-unity-pot
debian/changelog+221
@@ -1,3 +1,224 @@
1+unity8 (8.12+16.04.20160504.2-0ubuntu1) xenial; urgency=medium
2+
3+ [ Albert Astals Cid ]
4+ * Expandable Filter Widget
5+ * Pass the category correctly
6+
7+ [ Albert Astals Cid, CI Train Bot ]
8+ * Make the previewActions react to the actions model changing (LP:
9+ #1485887)
10+ * Reload Preview Zoomable Image source if it gets updated
11+ * Update the icon also to the original one if that's what the scope
12+ wants
13+
14+ [ Andrea Cimitan ]
15+ * Add social actions to cards
16+
17+ [ CI Train Bot ]
18+ * Resync trunk.
19+
20+ -- Pawel Stolowski <ci-train-bot@canonical.com> Wed, 04 May 2016 18:09:33 +0000
21+
22+unity8 (8.12+16.04.20160429.2-0ubuntu1) xenial; urgency=medium
23+
24+ [ CI Train Bot ]
25+ * Resync trunk.
26+
27+ [ Daniel d'Andrada ]
28+ * Ensure shell transformations use bindings as OrientedShell can get
29+ resized
30+ * Make shell rotation animation work on multimonitor scenarios.
31+ * Refactor screenshotting code and make it work in multimonitor
32+ scenarios
33+
34+ [ Gerry Boland, Nick Dedekind ]
35+ * Indicators: set menu height binding while fully open/closed, fixes
36+ dynamic grid unit bug.
37+
38+ [ Michael Zanetti ]
39+ * Call the dash sizing hack when units.gu changes
40+ * Temporary means to override GUs on the internal screen
41+ * reduce some paint layers.
42+
43+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 29 Apr 2016 20:07:37 +0000
44+
45+unity8 (8.12+16.04.20160427.3-0ubuntu1) xenial; urgency=medium
46+
47+ [ Albert Astals Cid ]
48+ * Add env var to enable js debugging/profiling even if not built on
49+ debug mode
50+ * Better error message if the item does not exist
51+ * CardCreator: Remove ShaderEffectSource (LP: #1544875)
52+ * Compile with Qt 5.6 (LP: #1565632)
53+ * LVWPH: Account for contentHeight not really being "all" of the
54+ content height (LP: #1569976)
55+ * NotificationAudio: We don't need weird "ifdef" for multimedia 5.6 vs
56+ 5.0 roles anymore
57+ * See all/less -> Show all/less (LP: #1349471)
58+ * Stabilize test_superTabToCycleLauncher
59+ * Take into account that sectionItem height can change
60+ * Turn verify intro tryCompareFunction
61+ * forceLayout before calling positionViewAtIndex (LP: #1553475)
62+ * rootObject can be null for a small moment after setSource is called
63+ (LP: #1560501)
64+
65+ [ CI Train Bot ]
66+ * Resync trunk.
67+
68+ [ Daniel van Vugt ]
69+ * Reinstate the touch performance/smoothness fix (LP: #1486341, LP:
70+ #1556763). (LP: #1556763, #1486341)
71+
72+ [ Josh Arenson ]
73+ * Change the color of the activity pulse to blue (LP: #1568082)
74+ * Make scope filter settings button the same color as other foreground
75+ elements (LP: #1563357)
76+
77+ [ Lukáš Tinkl ]
78+ * Drop OOBE wizard autopilot tests
79+ * Fix labels in desktop spread
80+ * Fix upcoming event ETAs falling out of sync (LP: #1557571)
81+ * Hide the close button for dash (LP: #1550056, #1564347)
82+ * Notifications visual update, close button on mouse hover (LP:
83+ #1564343)
84+ * Shell visual update
85+ * Stabilize wizard tests
86+ * Unity8 windows now cascade instead of opening all in the top left
87+ corner (LP: #1513813)
88+
89+ [ Michael Terry ]
90+ * Fix some unreliable test code.
91+ * Ignore Home Key presses when the greeter is up. (LP: #1565818)
92+
93+ [ Michael Zanetti ]
94+ * Drop the rotation lock for the dash (LP: #1465331, #1574165)
95+ * improve the pin lockscreen
96+ * install devices.conf by default
97+
98+ [ Ted Gould ]
99+ * Switch to using uid/pwdent for getting username
100+
101+ -- Michael Terry <michael.terry@canonical.com> Wed, 27 Apr 2016 15:01:28 +0000
102+
103+unity8 (8.12+16.04.20160421.1-0ubuntu1) xenial; urgency=medium
104+
105+ [ Daniel d'Andrada ]
106+ * Refactor keymap switching code
107+ * Surface-based window management
108+ * Use Item.grabToImage() instead of qtmir's ApplicationScreenshot
109+ provider
110+
111+ [ Michael Zanetti ]
112+ * Fixes for programmatically closing Applications
113+
114+ [ Robert Bruce Park ]
115+ * Use new bileto_pre_release_hook
116+
117+ -- Gerry Boland <ci-train-bot@canonical.com> Thu, 21 Apr 2016 13:48:02 +0000
118+
119+unity8 (8.12+16.04.20160414.1-0ubuntu1) xenial; urgency=medium
120+
121+ [ Michael Terry ]
122+ * Make sure that usageMode is set on startup, fixing a problem with
123+ the tutorial not noticing that it is running on a desktop. (LP:
124+ #1564351)
125+
126+ [ Michael Zanetti ]
127+ * make the edge drag area width configurable (LP: #1559512)
128+
129+ -- Michael Zanetti <michael.zanetti@canonical.com> Thu, 14 Apr 2016 21:20:28 +0000
130+
131+unity8 (8.12+16.04.20160401-0ubuntu1) xenial; urgency=medium
132+
133+ * Add missing Testsuite header
134+ * Skip the failing test until we have a working solution for bug
135+ #1564571 (LP: #1564571)
136+
137+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 01 Apr 2016 08:32:16 +0000
138+
139+unity8 (8.12+16.04.20160330-0ubuntu1) xenial; urgency=medium
140+
141+ [ Albert Astals Cid ]
142+ * Use tutorialLeftLoader instead of tutorialLeft
143+
144+ [ CI Train Bot ]
145+ * Update translation template
146+
147+ [ Lukáš Tinkl ]
148+ * Fix the last chance popup colors/theme
149+
150+ [ Michael Terry ]
151+ * Adjust text for desktop right edge tutorial to be accurate. (LP:
152+ #1563103)
153+ * Fix OOBE wizard not setting your name. (LP: #1562872)
154+ * Fix showing "Retry" in password prompt when turning on screen in
155+ tablet mode.
156+
157+ -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 30 Mar 2016 07:46:51 +0000
158+
159+unity8 (8.12+16.04.20160323.2-0ubuntu1) xenial; urgency=medium
160+
161+ [ Michael Terry ]
162+ *
163+ * Fix setting OSK layout in OOBE wizard
164+ * Stop the left edge tutorial from being shown when the bottom edge
165+ tutorial wants to be shown after receiving a call.
166+
167+ [ Albert Astals Cid ]
168+ * Filter implementation with Option Selector filter as the only filter
169+ * Get the engine from the parent context
170+ * Implement the API changes due to filters
171+ * Match design visuals for the new dash navigation/page header popup
172+ * New Dash Navigation UX
173+ * Range Input filter
174+ * Value slider filter
175+ * Workaround SDK ListItem bug
176+
177+ [ Albert Astals Cid, Lukáš Tinkl ]
178+ * Fix various tests
179+
180+ [ CI Train Bot ]
181+ * Resync trunk.
182+ * Update translation template
183+
184+ [ Lukáš Tinkl, Michael Terry ]
185+ * New first-run wizard for the phone (part of the OOBE effort) (LP:
186+ #1536688, #1536617, #1543790, #1555222)
187+
188+ [ Lukáš Tinkl, Michał Sawicz ]
189+ * Keymap switching support (LP: #1524400, #1412492, #1491340)
190+
191+ [ Michael Terry, Michael Zanetti ]
192+ * Redesign the first-boot edge tutorial
193+
194+ [ Michael Zanetti ]
195+ * disabling some tests that are flaky in adt but can't be made fail on
196+ our machines
197+
198+ [ Michael Zanetti, Michał Sawicz ]
199+ * Change the behavior alond with the switch in indicator-display (LP:
200+ #1538591)
201+
202+ [ Michael Zanetti, Michał Sawicz, Nick Dedekind ]
203+ * Add support for low shell chrome. (LP: #1535397)
204+ * Sidestage load/unload redesign (LP: #1544479)
205+
206+ -- Michael Zanetti <michael.zanetti@canonical.com> Wed, 23 Mar 2016 09:53:17 +0000
207+
208+unity8 (8.11+16.04.20160318.1-0ubuntu1) xenial; urgency=medium
209+
210+ [ CI Train Bot ]
211+ * Update translation template
212+
213+ [ Lukáš Tinkl ]
214+ * Fix notifications with the new UITK color schemes (LP: #1554616,
215+ #1556523)
216+
217+ [ Lukáš Tinkl, Michael Zanetti, Nick Dedekind ]
218+ * more fixes for the new theme palette (LP: #1554616, #1557534)
219+
220+ -- Michael Zanetti <michael.zanetti@canonical.com> Fri, 18 Mar 2016 17:12:53 +0000
221+
1unity8 (8.11+16.04.20160310.4-0ubuntu1) xenial; urgency=medium
222unity8 (8.11+16.04.20160310.4-0ubuntu1) xenial; urgency=medium
2
223
3 [ Albert Astals Cid ]
224 [ Albert Astals Cid ]
debian/control+10−7
@@ -8,13 +8,14 @@ Build-Depends: cmake,
8 doxyqml,
8 doxyqml,
9# To allow cross-compiling to work, we also must append :native
9# To allow cross-compiling to work, we also must append :native
10# to g++ so we don't try to run armhf g++
10# to g++ so we don't try to run armhf g++
11−# on an x86 CPU for eaxmple, when cross-compiling.
11+# on an x86 CPU for example, when cross-compiling.
12 g++:native,
12 g++:native,
13 libandroid-properties-dev,
13 libandroid-properties-dev,
14 graphviz,
14 graphviz,
15 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
15 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
16 libconnectivity-qt1-dev (>= 0.7.1),
16 libconnectivity-qt1-dev (>= 0.7.1),
17 libevdev-dev,
17 libevdev-dev,
18+ libgeonames-dev (>= 0.2),
18 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
19 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
19 libgl1-mesa-dri,
20 libgl1-mesa-dri,
20 libgles2-mesa-dev[armhf],
21 libgles2-mesa-dev[armhf],
@@ -29,7 +30,7 @@ Build-Depends: cmake,
29 libqt5xmlpatterns5-dev,
30 libqt5xmlpatterns5-dev,
30 libsystemsettings-dev,
31 libsystemsettings-dev,
31 libudev-dev,
32 libudev-dev,
32− libunity-api-dev (>= 7.107),
33+ libunity-api-dev (>= 7.111),
33 libusermetricsoutput1-dev,
34 libusermetricsoutput1-dev,
34# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
35# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
35 libx11-dev[!armhf],
36 libx11-dev[!armhf],
@@ -65,6 +66,7 @@ Homepage: http://launchpad.net/unity
65# and sync up the code again.
66# and sync up the code again.
66Vcs-Bzr: https://code.launchpad.net/unity8
67Vcs-Bzr: https://code.launchpad.net/unity8
67Vcs-Browser: https://bazaar.launchpad.net/~unity-team/unity8/trunk
68Vcs-Browser: https://bazaar.launchpad.net/~unity-team/unity8/trunk
69+XS-Testsuite: autopkgtest
68X-Ubuntu-Use-Langpack: yes
70X-Ubuntu-Use-Langpack: yes
69
71
70Package: indicators-client
72Package: indicators-client
@@ -101,7 +103,7 @@ Depends: dmz-cursor-theme,
101 qml-module-qt-labs-folderlistmodel,
103 qml-module-qt-labs-folderlistmodel,
102 qml-module-qtquick-xmllistmodel,
104 qml-module-qtquick-xmllistmodel,
103 qml-module-qtsysteminfo,
105 qml-module-qtsysteminfo,
104− qtdeclarative5-qtmir-plugin (>= 0.4.5),
106+ qtdeclarative5-qtmir-plugin (>= 0.4.8),
105 qtdeclarative5-ubuntu-telephony0.1,
107 qtdeclarative5-ubuntu-telephony0.1,
106 qtdeclarative5-ubuntu-web-plugin,
108 qtdeclarative5-ubuntu-web-plugin,
107 ubuntu-system-settings,
109 ubuntu-system-settings,
@@ -111,7 +113,8 @@ Depends: dmz-cursor-theme,
111 unity8-private | unity-launcher-impl,
113 unity8-private | unity-launcher-impl,
112 ${misc:Depends},
114 ${misc:Depends},
113 ${shlibs:Depends},
115 ${shlibs:Depends},
116+Recommends: indicator-session,
114−Recommends: unity-scope-click,
117+ unity-scope-click,
115 unity-scope-mediascanner2,
118 unity-scope-mediascanner2,
116Breaks: indicator-network (<< 0.5.1+14.10.20141014),
119Breaks: indicator-network (<< 0.5.1+14.10.20141014),
117 ubuntu-touch-session (<< 0.107),
120 ubuntu-touch-session (<< 0.107),
@@ -130,10 +133,10 @@ Depends: qml-module-qtquick-layouts,
130 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
133 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
131 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
134 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
132 ubuntu-thumbnailer-impl-0,
135 ubuntu-thumbnailer-impl-0,
133− unity-application-impl-13,
136+ unity-application-impl-15,
134 unity-notifications-impl-3,
137 unity-notifications-impl-3,
135 unity-plugin-scopes | unity-scopes-impl,
138 unity-plugin-scopes | unity-scopes-impl,
136− unity-scopes-impl-10,
139+ unity-scopes-impl-12,
137 unity8-fake-env | unity-application-impl,
140 unity8-fake-env | unity-application-impl,
138 ${misc:Depends},
141 ${misc:Depends},
139Breaks: unity8 (<< 7.86),
142Breaks: unity8 (<< 7.86),
@@ -176,7 +179,7 @@ Pre-Depends: ${misc:Pre-Depends},
176Depends: ${misc:Depends},
179Depends: ${misc:Depends},
177 ${shlibs:Depends},
180 ${shlibs:Depends},
178Provides: unity-application-impl,
181Provides: unity-application-impl,
179− unity-application-impl-13,
182+ unity-application-impl-15,
180Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
183Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
181Description: Fake environment for running Unity 8 shell
184Description: Fake environment for running Unity 8 shell
182 Provides fake implementations of some QML modules used by Unity 8 shell
185 Provides fake implementations of some QML modules used by Unity 8 shell
debian/rules−8
@@ -36,11 +36,3 @@ override_dh_makeshlibs:
36# libMockLightDM-qml.so links against liblightdm-qt5-2.so which doesn't exist
36# libMockLightDM-qml.so links against liblightdm-qt5-2.so which doesn't exist
37override_dh_shlibdeps:
37override_dh_shlibdeps:
38 dh_shlibdeps -XlibMockLightDM-qml.so
38 dh_shlibdeps -XlibMockLightDM-qml.so
39−
40−override_dh_auto_clean:
41− dh_auto_clean
42− # only run under "CI Train"
43− if [ -n "$(SILONAME)" -a -x /usr/bin/bzr ]; then \
44− ./po/update-unity-pot; \
45− bzr commit --message "Update translation template" po/unity8.pot; \
46− fi
debian/unity8-private.install+2−1
@@ -8,12 +8,13 @@ usr/lib/*/unity8/qml/Greeter
8usr/lib/*/unity8/qml/IntegratedLightDM
8usr/lib/*/unity8/qml/IntegratedLightDM
9usr/lib/*/unity8/qml/Lights
9usr/lib/*/unity8/qml/Lights
10usr/lib/*/unity8/qml/Powerd
10usr/lib/*/unity8/qml/Powerd
11−usr/lib/*/unity8/qml/ScreenGrabber
11+usr/lib/*/unity8/qml/ScreenshotDirectory
12usr/lib/*/unity8/qml/SessionBroadcast
12usr/lib/*/unity8/qml/SessionBroadcast
13usr/lib/*/unity8/qml/Ubuntu
13usr/lib/*/unity8/qml/Ubuntu
14usr/lib/*/unity8/qml/Unity
14usr/lib/*/unity8/qml/Unity
15usr/lib/*/unity8/qml/UInput
15usr/lib/*/unity8/qml/UInput
16usr/lib/*/unity8/qml/Utils
16usr/lib/*/unity8/qml/Utils
17+usr/lib/*/unity8/qml/WindowManager
17usr/lib/*/unity8/qml/Wizard
18usr/lib/*/unity8/qml/Wizard
18usr/share/accountsservice/interfaces
19usr/share/accountsservice/interfaces
19usr/share/dbus-1/interfaces
20usr/share/dbus-1/interfaces
debian/unity8.install+1
@@ -2,6 +2,7 @@ var/lib/unity8/version
2data/unity8-dash.conf usr/share/upstart/sessions/
2data/unity8-dash.conf usr/share/upstart/sessions/
3data/unity8-filewatcher.conf usr/share/upstart/sessions/
3data/unity8-filewatcher.conf usr/share/upstart/sessions/
4data/unity8.conf usr/share/upstart/sessions/
4data/unity8.conf usr/share/upstart/sessions/
5+data/devices.conf etc/ubuntu/
5usr/bin/unity8
6usr/bin/unity8
6usr/bin/unity8-dash
7usr/bin/unity8-dash
7usr/share/applications/unity8-dash.desktop
8usr/share/applications/unity8-dash.desktop
doc/devices.conf+15
@@ -28,3 +28,18 @@ InvertedPortraitOrientation=InvertedPortrait
28LandscapeOrientation=Landscape
28LandscapeOrientation=Landscape
29InvertedLandscapeOrientation=InvertedLandscape
29InvertedLandscapeOrientation=InvertedLandscape
30Category=phone
30Category=phone
31+
32+# Example for the Nexus 7
33+# This device has the screen mounted in portrait, but we run it as a landscape
34+# device and we want the side stage on it.
35+[flo]
36+PrimaryOrientation=LandscapeOrienation
37+Category=tablet
38+
39+# Example for the Nexus 4
40+# The screen is already mounted the way we want it, so no special config
41+# required. However, we don't want the phone to rotate upside down, so lets
42+# restrict that.
43+[mako]
44+SupportedOrientations=Portrait,Landscape,InvertedLandscape
45+Category=phone
libs/UbuntuGestures/Timer.h+5
@@ -35,6 +35,11 @@ public:
35 virtual int interval() const = 0;
35 virtual int interval() const = 0;
36 virtual void setInterval(int msecs) = 0;
36 virtual void setInterval(int msecs) = 0;
37 virtual void start() { m_isRunning = true; }
37 virtual void start() { m_isRunning = true; }
38+ virtual void start(int msecs)
39+ {
40+ setInterval(msecs);
41+ start();
42+ }
38 virtual void stop() { m_isRunning = false; }
43 virtual void stop() { m_isRunning = false; }
39 bool isRunning() const { return m_isRunning; }
44 bool isRunning() const { return m_isRunning; }
40 virtual bool isSingleShot() const = 0;
45 virtual bool isSingleShot() const = 0;
libs/UbuntuGestures/TouchRegistry.cpp+15−10
@@ -359,10 +359,6 @@ void TouchRegistry::removeCandidateOwnerForTouchByIndex(Pool<TouchRegistry::Touc
359
359
360void TouchRegistry::requestTouchOwnership(int id, QQuickItem *candidate)
360void TouchRegistry::requestTouchOwnership(int id, QQuickItem *candidate)
361{
361{
362− #if TOUCHREGISTRY_DEBUG
363− UG_DEBUG << "requestTouchOwnership id " << id << "candidate" << candidate;
364− #endif
365−
366 Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(id);
362 Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(id);
367 if (!touchInfo) { qFatal("TouchRegistry: Failed to find TouchInfo"); }
363 if (!touchInfo) { qFatal("TouchRegistry: Failed to find TouchInfo"); }
368
364
@@ -379,6 +375,9 @@ void TouchRegistry::requestTouchOwnership(int id, QQuickItem *candidate)
379 break;
375 break;
380 }
376 }
381 }
377 }
378+ #if TOUCHREGISTRY_DEBUG
379+ UG_DEBUG << "requestTouchOwnership id " << id << "candidate" << candidate << "index: " << candidateIndex;
380+ #endif
382
381
383 // add it as a candidate if not present yet
382 // add it as a candidate if not present yet
384 if (candidateIndex < 0) {
383 if (candidateIndex < 0) {
@@ -533,16 +532,22 @@ void TouchRegistry::TouchInfo::notifyCandidatesOfOwnershipResolution()
533 << " gained) to candidate" << candidates[0].item;
532 << " gained) to candidate" << candidates[0].item;
534 #endif
533 #endif
535
534
536− TouchOwnershipEvent gainedOwnershipEvent(id, true /*gained*/);
535+ // need to take a copy of the item list in case
537− QCoreApplication::sendEvent(candidates[0].item, &gainedOwnershipEvent);
536+ // we call back in to remove candidate during the lost ownership event.
537+ QList<QPointer<QQuickItem>> items;
538+ Q_FOREACH(const CandidateInfo& info, candidates) {
539+ items << info.item;
540+ }
538
541
542+ TouchOwnershipEvent gainedOwnershipEvent(id, true /*gained*/);
543+ QCoreApplication::sendEvent(items[0], &gainedOwnershipEvent);
539
544
540 TouchOwnershipEvent lostOwnershipEvent(id, false /*gained*/);
545 TouchOwnershipEvent lostOwnershipEvent(id, false /*gained*/);
541− for (int i = 1; i < candidates.count(); ++i) {
546+ for (int i = 1; i < items.count(); ++i) {
542 #if TOUCHREGISTRY_DEBUG
547 #if TOUCHREGISTRY_DEBUG
543− UG_DEBUG << "sending TouchWonershipEvent(id =" << id << " lost) to candidate"
548+ UG_DEBUG << "sending TouchOwnershipEvent(id =" << id << " lost) to candidate"
544− << candidates[i].item;
549+ << items[i];
545 #endif
550 #endif
546− QCoreApplication::sendEvent(candidates[i].item, &lostOwnershipEvent);
551+ QCoreApplication::sendEvent(items[i], &lostOwnershipEvent);
547 }
552 }
548}
553}
plugins/AccountsService/AccountsService.cpp+72−4
@@ -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
@@ -12,8 +12,6 @@
12 *
12 *
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− *
16− * Author: Michael Terry <michael.terry@canonical.com>
17 */
15 */
18
16
19#include "AccountsService.h"
17#include "AccountsService.h"
@@ -24,6 +22,8 @@
24#include <QStringList>
22#include <QStringList>
25#include <QDebug>
23#include <QDebug>
26
24
25+#include <glib.h>
26+
27#define IFACE_ACCOUNTS_USER QStringLiteral("org.freedesktop.Accounts.User")
27#define IFACE_ACCOUNTS_USER QStringLiteral("org.freedesktop.Accounts.User")
28#define IFACE_LOCATION_HERE QStringLiteral("com.ubuntu.location.providers.here.AccountsService")
28#define IFACE_LOCATION_HERE QStringLiteral("com.ubuntu.location.providers.here.AccountsService")
29#define IFACE_UBUNTU_INPUT QStringLiteral("com.ubuntu.AccountsService.Input")
29#define IFACE_UBUNTU_INPUT QStringLiteral("com.ubuntu.AccountsService.Input")
@@ -34,9 +34,12 @@
34
34
35#define PROP_BACKGROUND_FILE QStringLiteral("BackgroundFile")
35#define PROP_BACKGROUND_FILE QStringLiteral("BackgroundFile")
36#define PROP_DEMO_EDGES QStringLiteral("demo-edges")
36#define PROP_DEMO_EDGES QStringLiteral("demo-edges")
37+#define PROP_DEMO_EDGES_COMPLETED QStringLiteral("DemoEdgesCompleted")
38+#define PROP_EMAIL QStringLiteral("Email")
37#define PROP_ENABLE_INDICATORS_WHILE_LOCKED QStringLiteral("EnableIndicatorsWhileLocked")
39#define PROP_ENABLE_INDICATORS_WHILE_LOCKED QStringLiteral("EnableIndicatorsWhileLocked")
38#define PROP_ENABLE_LAUNCHER_WHILE_LOCKED QStringLiteral("EnableLauncherWhileLocked")
40#define PROP_ENABLE_LAUNCHER_WHILE_LOCKED QStringLiteral("EnableLauncherWhileLocked")
39#define PROP_FAILED_LOGINS QStringLiteral("FailedLogins")
41#define PROP_FAILED_LOGINS QStringLiteral("FailedLogins")
42+#define PROP_INPUT_SOURCES QStringLiteral("InputSources")
40#define PROP_LICENSE_ACCEPTED QStringLiteral("LicenseAccepted")
43#define PROP_LICENSE_ACCEPTED QStringLiteral("LicenseAccepted")
41#define PROP_LICENSE_BASE_PATH QStringLiteral("LicenseBasePath")
44#define PROP_LICENSE_BASE_PATH QStringLiteral("LicenseBasePath")
42#define PROP_MOUSE_CURSOR_SPEED QStringLiteral("MouseCursorSpeed")
45#define PROP_MOUSE_CURSOR_SPEED QStringLiteral("MouseCursorSpeed")
@@ -44,6 +47,7 @@
44#define PROP_MOUSE_PRIMARY_BUTTON QStringLiteral("MousePrimaryButton")
47#define PROP_MOUSE_PRIMARY_BUTTON QStringLiteral("MousePrimaryButton")
45#define PROP_MOUSE_SCROLL_SPEED QStringLiteral("MouseScrollSpeed")
48#define PROP_MOUSE_SCROLL_SPEED QStringLiteral("MouseScrollSpeed")
46#define PROP_PASSWORD_DISPLAY_HINT QStringLiteral("PasswordDisplayHint")
49#define PROP_PASSWORD_DISPLAY_HINT QStringLiteral("PasswordDisplayHint")
50+#define PROP_REAL_NAME QStringLiteral("RealName")
47#define PROP_STATS_WELCOME_SCREEN QStringLiteral("StatsWelcomeScreen")
51#define PROP_STATS_WELCOME_SCREEN QStringLiteral("StatsWelcomeScreen")
48#define PROP_TOUCHPAD_CURSOR_SPEED QStringLiteral("TouchpadCursorSpeed")
52#define PROP_TOUCHPAD_CURSOR_SPEED QStringLiteral("TouchpadCursorSpeed")
49#define PROP_TOUCHPAD_DISABLE_WHILE_TYPING QStringLiteral("TouchpadDisableWhileTyping")
53#define PROP_TOUCHPAD_DISABLE_WHILE_TYPING QStringLiteral("TouchpadDisableWhileTyping")
@@ -54,6 +58,10 @@
54#define PROP_TOUCHPAD_TAP_TO_CLICK QStringLiteral("TouchpadTapToClick")
58#define PROP_TOUCHPAD_TAP_TO_CLICK QStringLiteral("TouchpadTapToClick")
55#define PROP_TOUCHPAD_TWO_FINGER_SCROLL QStringLiteral("TouchpadTwoFingerScroll")
59#define PROP_TOUCHPAD_TWO_FINGER_SCROLL QStringLiteral("TouchpadTwoFingerScroll")
56
60
61+using StringMap = QMap<QString,QString>;
62+using StringMapList = QList<StringMap>;
63+Q_DECLARE_METATYPE(StringMapList)
64+
57
65
58QVariant primaryButtonConverter(const QVariant &value)
66QVariant primaryButtonConverter(const QVariant &value)
59{
67{
@@ -80,6 +88,9 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
80 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged, this, &AccountsService::onMaybeChanged);
88 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged, this, &AccountsService::onMaybeChanged);
81
89
82 registerProperty(IFACE_ACCOUNTS_USER, PROP_BACKGROUND_FILE, QStringLiteral("backgroundFileChanged"));
90 registerProperty(IFACE_ACCOUNTS_USER, PROP_BACKGROUND_FILE, QStringLiteral("backgroundFileChanged"));
91+ registerProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL, QStringLiteral("emailChanged"));
92+ registerProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME, QStringLiteral("realNameChanged"));
93+ registerProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES, QStringLiteral("keymapsChanged"));
83 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED, QStringLiteral("hereEnabledChanged"));
94 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED, QStringLiteral("hereEnabledChanged"));
84 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH, QStringLiteral("hereLicensePathChanged"));
95 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH, QStringLiteral("hereLicensePathChanged"));
85 registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED, QStringLiteral("enableLauncherWhileLockedChanged"));
96 registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED, QStringLiteral("enableLauncherWhileLockedChanged"));
@@ -87,6 +98,7 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
87 registerProperty(IFACE_UBUNTU_SECURITY, PROP_PASSWORD_DISPLAY_HINT, QStringLiteral("passwordDisplayHintChanged"));
98 registerProperty(IFACE_UBUNTU_SECURITY, PROP_PASSWORD_DISPLAY_HINT, QStringLiteral("passwordDisplayHintChanged"));
88 registerProperty(IFACE_UBUNTU_SECURITY_OLD, PROP_STATS_WELCOME_SCREEN, QStringLiteral("statsWelcomeScreenChanged"));
99 registerProperty(IFACE_UBUNTU_SECURITY_OLD, PROP_STATS_WELCOME_SCREEN, QStringLiteral("statsWelcomeScreenChanged"));
89 registerProperty(IFACE_UNITY, PROP_DEMO_EDGES, QStringLiteral("demoEdgesChanged"));
100 registerProperty(IFACE_UNITY, PROP_DEMO_EDGES, QStringLiteral("demoEdgesChanged"));
101+ registerProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, QStringLiteral("demoEdgesCompletedChanged"));
90 registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS, QStringLiteral("failedLoginsChanged"));
102 registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS, QStringLiteral("failedLoginsChanged"));
91
103
92 registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_CURSOR_SPEED,
104 registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_CURSOR_SPEED,
@@ -116,7 +128,7 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
116 registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_TWO_FINGER_SCROLL,
128 registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_TWO_FINGER_SCROLL,
117 m_unityInput, QStringLiteral("setTouchpadTwoFingerScroll"));
129 m_unityInput, QStringLiteral("setTouchpadTwoFingerScroll"));
118
130
119− setUser(!user.isEmpty() ? user : QString::fromUtf8(qgetenv("USER")));
131+ setUser(!user.isEmpty() ? user : QString::fromUtf8(g_get_user_name()));
120}
132}
121
133
122QString AccountsService::user() const
134QString AccountsService::user() const
@@ -150,6 +162,20 @@ void AccountsService::setDemoEdges(bool demoEdges)
150 setProperty(IFACE_UNITY, PROP_DEMO_EDGES, demoEdges);
162 setProperty(IFACE_UNITY, PROP_DEMO_EDGES, demoEdges);
151}
163}
152
164
165+QStringList AccountsService::demoEdgesCompleted() const
166+{
167+ auto value = getProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED);
168+ return value.toStringList();
169+}
170+
171+void AccountsService::markDemoEdgeCompleted(const QString &edge)
172+{
173+ auto currentList = demoEdgesCompleted();
174+ if (!currentList.contains(edge)) {
175+ setProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, currentList << edge);
176+ }
177+}
178+
153bool AccountsService::enableLauncherWhileLocked() const
179bool AccountsService::enableLauncherWhileLocked() const
154{
180{
155 auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED);
181 auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED);
@@ -206,6 +232,48 @@ bool AccountsService::hereLicensePathValid() const
206 return !value.toString().isNull();
232 return !value.toString().isNull();
207}
233}
208
234
235+QString AccountsService::realName() const
236+{
237+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME);
238+ return value.toString();
239+}
240+
241+void AccountsService::setRealName(const QString &realName)
242+{
243+ setProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME, realName);
244+}
245+
246+QString AccountsService::email() const
247+{
248+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL);
249+ return value.toString();
250+}
251+
252+void AccountsService::setEmail(const QString &email)
253+{
254+ setProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL, email);
255+}
256+
257+QStringList AccountsService::keymaps() const
258+{
259+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES);
260+ QDBusArgument arg = value.value<QDBusArgument>();
261+ StringMapList maps = qdbus_cast<StringMapList>(arg);
262+ QStringList simplifiedMaps;
263+
264+ Q_FOREACH(const StringMap &map, maps) {
265+ Q_FOREACH(const QString &entry, map) {
266+ simplifiedMaps.append(entry);
267+ }
268+ }
269+
270+ if (!simplifiedMaps.isEmpty()) {
271+ return simplifiedMaps;
272+ }
273+
274+ return {QStringLiteral("us")};
275+}
276+
209uint AccountsService::failedLogins() const
277uint AccountsService::failedLogins() const
210{
278{
211 return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS).toUInt();
279 return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS).toUInt();
plugins/AccountsService/AccountsService.h+21−3
@@ -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
@@ -12,8 +12,6 @@
12 *
12 *
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− *
16− * Authors: Michael Terry <michael.terry@canonical.com>
17 */
15 */
18
16
19#ifndef UNITY_ACCOUNTSSERVICE_H
17#ifndef UNITY_ACCOUNTSSERVICE_H
@@ -22,6 +20,7 @@
22#include <QHash>
20#include <QHash>
23#include <QObject>
21#include <QObject>
24#include <QString>
22#include <QString>
23+#include <QStringList>
25#include <QVariant>
24#include <QVariant>
26
25
27class AccountsServiceDBusAdaptor;
26class AccountsServiceDBusAdaptor;
@@ -39,6 +38,9 @@ class AccountsService: public QObject
39 READ demoEdges
38 READ demoEdges
40 WRITE setDemoEdges
39 WRITE setDemoEdges
41 NOTIFY demoEdgesChanged)
40 NOTIFY demoEdgesChanged)
41+ Q_PROPERTY (QStringList demoEdgesCompleted
42+ READ demoEdgesCompleted
43+ NOTIFY demoEdgesCompletedChanged)
42 Q_PROPERTY (bool enableLauncherWhileLocked
44 Q_PROPERTY (bool enableLauncherWhileLocked
43 READ enableLauncherWhileLocked
45 READ enableLauncherWhileLocked
44 NOTIFY enableLauncherWhileLockedChanged)
46 NOTIFY enableLauncherWhileLockedChanged)
@@ -68,6 +70,11 @@ class AccountsService: public QObject
68 Q_PROPERTY(bool hereLicensePathValid // qml sees a null string as "", so we use proxy setting for that
70 Q_PROPERTY(bool hereLicensePathValid // qml sees a null string as "", so we use proxy setting for that
69 READ hereLicensePathValid
71 READ hereLicensePathValid
70 NOTIFY hereLicensePathChanged)
72 NOTIFY hereLicensePathChanged)
73+ Q_PROPERTY(QString realName READ realName WRITE setRealName NOTIFY realNameChanged)
74+ Q_PROPERTY(QString email READ email WRITE setEmail NOTIFY emailChanged)
75+ Q_PROPERTY(QStringList keymaps
76+ READ keymaps
77+ NOTIFY keymapsChanged)
71
78
72public:
79public:
73 enum PasswordDisplayHint {
80 enum PasswordDisplayHint {
@@ -82,6 +89,8 @@ public:
82 void setUser(const QString &user);
89 void setUser(const QString &user);
83 bool demoEdges() const;
90 bool demoEdges() const;
84 void setDemoEdges(bool demoEdges);
91 void setDemoEdges(bool demoEdges);
92+ QStringList demoEdgesCompleted() const;
93+ Q_INVOKABLE void markDemoEdgeCompleted(const QString &edge);
85 bool enableLauncherWhileLocked() const;
94 bool enableLauncherWhileLocked() const;
86 bool enableIndicatorsWhileLocked() const;
95 bool enableIndicatorsWhileLocked() const;
87 QString backgroundFile() const;
96 QString backgroundFile() const;
@@ -93,10 +102,16 @@ public:
93 void setHereEnabled(bool enabled);
102 void setHereEnabled(bool enabled);
94 QString hereLicensePath() const;
103 QString hereLicensePath() const;
95 bool hereLicensePathValid() const;
104 bool hereLicensePathValid() const;
105+ QString realName() const;
106+ void setRealName(const QString &realName);
107+ QString email() const;
108+ void setEmail(const QString &email);
109+ QStringList keymaps() const;
96
110
97Q_SIGNALS:
111Q_SIGNALS:
98 void userChanged();
112 void userChanged();
99 void demoEdgesChanged();
113 void demoEdgesChanged();
114+ void demoEdgesCompletedChanged();
100 void enableLauncherWhileLockedChanged();
115 void enableLauncherWhileLockedChanged();
101 void enableIndicatorsWhileLockedChanged();
116 void enableIndicatorsWhileLockedChanged();
102 void backgroundFileChanged();
117 void backgroundFileChanged();
@@ -105,6 +120,9 @@ Q_SIGNALS:
105 void failedLoginsChanged();
120 void failedLoginsChanged();
106 void hereEnabledChanged();
121 void hereEnabledChanged();
107 void hereLicensePathChanged();
122 void hereLicensePathChanged();
123+ void realNameChanged();
124+ void emailChanged();
125+ void keymapsChanged();
108
126
109private Q_SLOTS:
127private Q_SLOTS:
110 void onPropertiesChanged(const QString &user, const QString &interface, const QStringList &changed);
128 void onPropertiesChanged(const QString &user, const QString &interface, const QStringList &changed);
plugins/AccountsService/AccountsService.qmltypes+5
@@ -23,6 +23,7 @@ Module {
23 }
23 }
24 Property { name: "user"; type: "string" }
24 Property { name: "user"; type: "string" }
25 Property { name: "demoEdges"; type: "bool" }
25 Property { name: "demoEdges"; type: "bool" }
26+ Property { name: "demoEdgesCompleted"; type: "QStringList"; isReadonly: true }
26 Property { name: "enableLauncherWhileLocked"; type: "bool"; isReadonly: true }
27 Property { name: "enableLauncherWhileLocked"; type: "bool"; isReadonly: true }
27 Property { name: "enableIndicatorsWhileLocked"; type: "bool"; isReadonly: true }
28 Property { name: "enableIndicatorsWhileLocked"; type: "bool"; isReadonly: true }
28 Property { name: "backgroundFile"; type: "string"; isReadonly: true }
29 Property { name: "backgroundFile"; type: "string"; isReadonly: true }
@@ -32,5 +33,9 @@ Module {
32 Property { name: "hereEnabled"; type: "bool" }
33 Property { name: "hereEnabled"; type: "bool" }
33 Property { name: "hereLicensePath"; type: "string"; isReadonly: true }
34 Property { name: "hereLicensePath"; type: "string"; isReadonly: true }
34 Property { name: "hereLicensePathValid"; type: "bool"; isReadonly: true }
35 Property { name: "hereLicensePathValid"; type: "bool"; isReadonly: true }
36+ Method {
37+ name: "markDemoEdgeCompleted"
38+ Parameter { name: "edge"; type: "string" }
39+ }
35 }
40 }
36}
41}
plugins/AccountsService/AccountsServiceDBusAdaptor.cpp+12−2
@@ -57,8 +57,18 @@ QDBusPendingCall AccountsServiceDBusAdaptor::setUserPropertyAsync(const QString
57{
57{
58 QDBusInterface *iface = getUserInterface(user);
58 QDBusInterface *iface = getUserInterface(user);
59 if (iface != nullptr && iface->isValid()) {
59 if (iface != nullptr && iface->isValid()) {
60+ if (interface == QStringLiteral("org.freedesktop.Accounts.User")) {
61+ // Standard AccountsService properties use special set methods.
62+ // It will not let you use the usual DBus property setters.
63+ QDBusInterface accountsIface(iface->service(),
64+ iface->path(),
65+ interface,
66+ iface->connection());
67+ return accountsIface.asyncCall(QStringLiteral("Set") + property, value);
68+ } else {
60− // The value needs to be carefully wrapped
69+ // The value needs to be carefully wrapped
61− return iface->asyncCall(QStringLiteral("Set"), interface, property, QVariant::fromValue(QDBusVariant(value)));
70+ return iface->asyncCall(QStringLiteral("Set"), interface, property, QVariant::fromValue(QDBusVariant(value)));
71+ }
62 }
72 }
63 return QDBusPendingCall::fromCompletedCall(QDBusMessage::createError(QDBusError::Other, QStringLiteral("Invalid Interface")));
73 return QDBusPendingCall::fromCompletedCall(QDBusMessage::createError(QDBusError::Other, QStringLiteral("Invalid Interface")));
64}
74}
plugins/AccountsService/CMakeLists.txt+5
@@ -1,4 +1,5 @@
1add_definitions(-DSM_BUSNAME=systemBus)
1add_definitions(-DSM_BUSNAME=systemBus)
2+include_directories(${GLIB_INCLUDE_DIRS})
2
3
3add_library(AccountsService-qml MODULE
4add_library(AccountsService-qml MODULE
4 AccountsService.cpp
5 AccountsService.cpp
@@ -8,6 +9,10 @@ add_library(AccountsService-qml MODULE
8
9
9qt5_use_modules(AccountsService-qml DBus Qml)
10qt5_use_modules(AccountsService-qml DBus Qml)
10
11
12+target_link_libraries(AccountsService-qml
13+ ${GLIB_LIBRARIES}
14+ )
15+
11add_unity8_plugin(AccountsService 0.1 AccountsService TARGETS AccountsService-qml)
16add_unity8_plugin(AccountsService 0.1 AccountsService TARGETS AccountsService-qml)
12
17
13set(DBUS_IFACE_DIR "${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces")
18set(DBUS_IFACE_DIR "${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces")
plugins/AccountsService/com.canonical.unity.AccountsService.xml+5
@@ -14,6 +14,11 @@
14 <annotation name="org.freedesktop.Accounts.DefaultValue" value="true"/>
14 <annotation name="org.freedesktop.Accounts.DefaultValue" value="true"/>
15 </property>
15 </property>
16
16
17+ <!-- List of tutorial pages that have been completed by the user -->
18+ <property name="DemoEdgesCompleted" type="as" access="readwrite">
19+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="[]"/>
20+ </property>
21+
17 <property name="LauncherItems" type="aa{sv}" access="readwrite">
22 <property name="LauncherItems" type="aa{sv}" access="readwrite">
18 <annotation name="org.freedesktop.Accounts.DefaultValue" value="[{'defaults': <true>}]"/>
23 <annotation name="org.freedesktop.Accounts.DefaultValue" value="[{'defaults': <true>}]"/>
19 </property>
24 </property>
plugins/CMakeLists.txt+2−1
@@ -19,10 +19,11 @@ add_subdirectory(IntegratedLightDM)
19add_subdirectory(Lights)
19add_subdirectory(Lights)
20add_subdirectory(Dash)
20add_subdirectory(Dash)
21add_subdirectory(Powerd)
21add_subdirectory(Powerd)
22+add_subdirectory(ScreenshotDirectory)
22add_subdirectory(SessionBroadcast)
23add_subdirectory(SessionBroadcast)
23−add_subdirectory(ScreenGrabber)
24add_subdirectory(Ubuntu)
24add_subdirectory(Ubuntu)
25add_subdirectory(UInput)
25add_subdirectory(UInput)
26add_subdirectory(Unity)
26add_subdirectory(Unity)
27add_subdirectory(Utils)
27add_subdirectory(Utils)
28+add_subdirectory(WindowManager)
28add_subdirectory(Wizard)
29add_subdirectory(Wizard)
plugins/Cursor/Cursor.qmltypesnew file+78
@@ -0,0 +1,78 @@
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 Cursor 1.0 plugins'
8+
9+Module {
10+ Component {
11+ name: "MirMousePointerInterface"
12+ defaultProperty: "data"
13+ prototype: "QQuickItem"
14+ Property { name: "cursorName"; type: "string"; isReadonly: true }
15+ Property { name: "themeName"; type: "string"; isReadonly: true }
16+ Property { name: "hotspotX"; type: "double"; isReadonly: true }
17+ Property { name: "hotspotY"; type: "double"; isReadonly: true }
18+ Signal {
19+ name: "cursorNameChanged"
20+ Parameter { name: "name"; type: "string" }
21+ }
22+ Signal {
23+ name: "themeNameChanged"
24+ Parameter { name: "name"; type: "string" }
25+ }
26+ Signal {
27+ name: "hotspotXChanged"
28+ Parameter { name: "value"; type: "double" }
29+ }
30+ Signal {
31+ name: "hotspotYChanged"
32+ Parameter { name: "value"; type: "double" }
33+ }
34+ Method {
35+ name: "handleMouseEvent"
36+ Parameter { name: "timestamp"; type: "ulong" }
37+ Parameter { name: "movement"; type: "QPointF" }
38+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
39+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
40+ }
41+ Method {
42+ name: "handleWheelEvent"
43+ Parameter { name: "timestamp"; type: "ulong" }
44+ Parameter { name: "angleDelta"; type: "QPoint" }
45+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
46+ }
47+ }
48+ Component {
49+ name: "MousePointer"
50+ defaultProperty: "data"
51+ prototype: "MirMousePointerInterface"
52+ exports: ["Cursor/MousePointer 1.0"]
53+ exportMetaObjectRevisions: [0]
54+ Signal {
55+ name: "pushedLeftBoundary"
56+ Parameter { name: "amount"; type: "double" }
57+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
58+ }
59+ Signal {
60+ name: "pushedRightBoundary"
61+ Parameter { name: "amount"; type: "double" }
62+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
63+ }
64+ Method {
65+ name: "handleMouseEvent"
66+ Parameter { name: "timestamp"; type: "ulong" }
67+ Parameter { name: "movement"; type: "QPointF" }
68+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
69+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
70+ }
71+ Method {
72+ name: "handleWheelEvent"
73+ Parameter { name: "timestamp"; type: "ulong" }
74+ Parameter { name: "angleDelta"; type: "QPoint" }
75+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
76+ }
77+ }
78+}
plugins/Dash/CardCreator.js+48−1
@@ -347,6 +347,17 @@ var kAttributesRowCode = 'CardAttributes { \n\
347 model: cardData && cardData["attributes"]; \n\
347 model: cardData && cardData["attributes"]; \n\
348 }\n';
348 }\n';
349
349
350+// %1 is used as anchors of socialActionsRow
351+// %2 is used as color of socialActionsRow
352+var kSocialActionsRowCode = 'CardSocialActions { \n\
353+ id: socialActionsRow; \n\
354+ objectName: "socialActionsRow"; \n\
355+ anchors { %1 } \n\
356+ color: %2; \n\
357+ model: cardData && cardData["socialActions"]; \n\
358+ onClicked: root.action(actionId); \n\
359+ }\n';
360+
350// %1 is used as top anchor of summary
361// %1 is used as top anchor of summary
351// %2 is used as topMargin anchor of summary
362// %2 is used as topMargin anchor of summary
352// %3 is used as color of summary
363// %3 is used as color of summary
@@ -432,9 +443,11 @@ function cardString(template, components, isCardTool, artShapeStyle) {
432 var hasSubtitle = hasTitle && components["subtitle"] || false;
443 var hasSubtitle = hasTitle && components["subtitle"] || false;
433 var hasHeaderRow = hasMascot && hasTitle;
444 var hasHeaderRow = hasMascot && hasTitle;
434 var hasAttributes = hasTitle && components["attributes"] && components["attributes"]["field"] || false;
445 var hasAttributes = hasTitle && components["attributes"] && components["attributes"]["field"] || false;
446+ var hasSocialActions = hasTitle && components["social-actions"] || false;
435 var isAudio = template["quick-preview-type"] === "audio";
447 var isAudio = template["quick-preview-type"] === "audio";
436 var asynchronous = isCardTool ? "false" : "true";
448 var asynchronous = isCardTool ? "false" : "true";
437
449
450+ code += 'signal action(var actionId);\n';
438 if (isAudio) {
451 if (isAudio) {
439 // For now we only support audio cards with [optional] art, title, subtitle
452 // For now we only support audio cards with [optional] art, title, subtitle
440 // in horizontal mode
453 // in horizontal mode
@@ -851,6 +864,38 @@ function cardString(template, components, isCardTool, artShapeStyle) {
851 code += kSummaryLabelCode.arg(summaryTopAnchor).arg(summaryTopMargin).arg(summaryColor);
864 code += kSummaryLabelCode.arg(summaryTopAnchor).arg(summaryTopMargin).arg(summaryColor);
852 }
865 }
853
866
867+// <<<<<<< TREE
868+// if (artShapeStyle != "shadow" && artShapeStyle != "icon") {
869+// var touchdownAnchors;
870+// =======
871+ if (hasSocialActions) {
872+ var socialAnchors;
873+ var socialTopAnchor;
874+
875+ if (hasSummary) socialTopAnchor = 'summary.bottom;';
876+ else if (isHorizontal && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
877+ else if (headerAsOverlay && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
878+ else if (hasHeaderRow) socialTopAnchor = 'row.bottom;';
879+ else if (hasTitleContainer) socialTopAnchor = 'headerTitleContainer.bottom;';
880+ else if (hasMascot) socialTopAnchor = 'mascotImage.bottom;';
881+ else if (hasAttributes) socialTopAnchor = 'attributesRow.bottom;';
882+ else if (hasSubtitle) socialTopAnchor = 'subtitleLabel.bottom;';
883+ else if (hasTitle) socialTopAnchor = 'titleLabel.bottom;';
884+ else if (hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
885+ else socialTopAnchor = 'parent.top';
886+
887+ socialAnchors = 'top: ' + socialTopAnchor + ' left: parent.left; right: parent.right; topMargin: units.gu(1);'
888+
889+ var socialColor;
890+ if (hasBackground) {
891+ socialColor = summaryColorWithBackground;
892+ } else {
893+ socialColor = 'root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText';
894+ }
895+
896+ code += kSocialActionsRowCode.arg(socialAnchors).arg(socialColor);
897+ }
898+
854 if (artShapeStyle != "shadow" && artShapeStyle != "icon") {
899 if (artShapeStyle != "shadow" && artShapeStyle != "icon") {
855 var touchdownAnchors;
900 var touchdownAnchors;
856 if (hasBackground) {
901 if (hasBackground) {
@@ -864,7 +909,9 @@ function cardString(template, components, isCardTool, artShapeStyle) {
864 }
909 }
865
910
866 var implicitHeight = 'implicitHeight: ';
911 var implicitHeight = 'implicitHeight: ';
912+ if (hasSocialActions) {
913+ implicitHeight += 'socialActionsRow.y + socialActionsRow.height + units.gu(1);\n';
867− if (hasSummary) {
914+ } else if (hasSummary) {
868 implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
915 implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
869 } else if (isAudio) {
916 } else if (isAudio) {
870 implicitHeight += 'audioButton.height;\n';
917 implicitHeight += 'audioButton.height;\n';
plugins/Dash/CardSocialActions.qmlnew file+94
@@ -0,0 +1,94 @@
1+/*
2+ * Copyright 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+import QtQuick 2.4
18+import QtQuick.Layouts 1.1
19+import Ubuntu.Components 1.3
20+
21+Column {
22+ id: socialActions
23+ spacing: units.gu(0.5)
24+
25+ property alias model: repeater.model
26+ property color color: theme.palette.normal.baseText
27+
28+ signal clicked(var actionId)
29+
30+ Rectangle {
31+ id: divider
32+ visible: repeater.count > 0
33+ anchors {
34+ left: parent.left;
35+ right: parent.right;
36+ leftMargin:units.dp(1);
37+ rightMargin: units.dp(1);
38+ }
39+ color: Qt.darker(theme.palette.normal.background, 1.12)
40+ height: visible ? units.dp(1) : 0
41+ }
42+
43+ Row {
44+ id: row
45+ anchors {
46+ left: parent.left
47+ right: parent.right
48+ leftMargin: units.gu(1)
49+ rightMargin: units.gu(1)
50+ }
51+ spacing: units.gu(2)
52+ readonly property int visibleItems: {
53+ if (width <= units.gu(12)) // small card
54+ return 2;
55+ else if (width <= units.gu(21)) // medium card
56+ return 3;
57+ else // large or horizontal card
58+ return 4;
59+ }
60+
61+ Repeater {
62+ id: repeater
63+ delegate: Loader {
64+ height: units.gu(2)
65+ active: index < row.visibleItems
66+ sourceComponent: AbstractButton {
67+ objectName: "delegate" + index
68+ height: units.gu(2)
69+ width: icon.width
70+ Icon {
71+ id: icon
72+ objectName: "icon"
73+
74+ readonly property url urlIcon: modelData && modelData["icon"] || ""
75+ readonly property url urlTemporaryIcon: "temporaryIcon" in modelData && modelData["temporaryIcon"] || ""
76+
77+ height: units.gu(2)
78+ // FIXME Workaround for bug https://bugs.launchpad.net/ubuntu/+source/ubuntu-ui-toolkit/+bug/1421293
79+ width: implicitWidth > 0 && implicitHeight > 0 ? (implicitWidth / implicitHeight * height) : implicitWidth
80+ source: urlIcon
81+ color: socialActions.color
82+
83+ onUrlIconChanged: {
84+ if (urlIcon) source = urlIcon
85+ }
86+ }
87+
88+ onClicked: socialActions.clicked(modelData["id"]);
89+ onPressedChanged: if (pressed && icon.urlTemporaryIcon != "") icon.source = icon.urlTemporaryIcon
90+ }
91+ }
92+ }
93+ }
94+}
plugins/Dash/ScopeStyle.qml+1−1
@@ -58,7 +58,7 @@ QtObject {
58 readonly property url headerLogo: "logo" in d.headerStyle ? d.headerStyle["logo"] : ""
58 readonly property url headerLogo: "logo" in d.headerStyle ? d.headerStyle["logo"] : ""
59
59
60 /// Background style for the header
60 /// Background style for the header
61− readonly property url headerBackground: "background" in d.headerStyle ? d.headerStyle["background"] : "color:///#f5f5f5"
61+ readonly property url headerBackground: "background" in d.headerStyle ? d.headerStyle["background"] : "color:///#ffffff"
62
62
63 /// Foreground color for the header
63 /// Foreground color for the header
64 readonly property color headerForeground: "foreground-color" in d.headerStyle ? d.headerStyle["foreground-color"] : foreground
64 readonly property color headerForeground: "foreground-color" in d.headerStyle ? d.headerStyle["foreground-color"] : foreground
plugins/Dash/listviewwithpageheader.cpp+29−12
@@ -285,7 +285,7 @@ void ListViewWithPageHeader::setSectionDelegate(QQmlComponent *delegate)
285
285
286 m_sectionDelegate = delegate;
286 m_sectionDelegate = delegate;
287
287
288− m_topSectionItem = getSectionItem(QString());
288+ m_topSectionItem = getSectionItem(QString(), false /*watchGeometry*/);
289 m_topSectionItem->setZ(3);
289 m_topSectionItem->setZ(3);
290 QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
290 QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
291 connect(m_topSectionItem, &QQuickItem::heightChanged, this, &ListViewWithPageHeader::stickyHeaderHeightChanged);
291 connect(m_topSectionItem, &QQuickItem::heightChanged, this, &ListViewWithPageHeader::stickyHeaderHeightChanged);
@@ -514,6 +514,11 @@ qreal ListViewWithPageHeader::minYExtent() const
514 return m_minYExtent;
514 return m_minYExtent;
515}
515}
516
516
517+qreal ListViewWithPageHeader::maxYExtent() const
518+{
519+ return height() - contentHeight();
520+}
521+
517void ListViewWithPageHeader::componentComplete()
522void ListViewWithPageHeader::componentComplete()
518{
523{
519 if (m_delegateModel)
524 if (m_delegateModel)
@@ -700,8 +705,10 @@ void ListViewWithPageHeader::reallyReleaseItem(ListItem *listItem)
700
705
701void ListViewWithPageHeader::releaseItem(ListItem *listItem)
706void ListViewWithPageHeader::releaseItem(ListItem *listItem)
702{
707{
703− QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(listItem->m_item);
708+ QQuickItemPrivate::get(listItem->m_item)->removeItemChangeListener(this, QQuickItemPrivate::Geometry);
709+ if (listItem->sectionItem()) {
704− itemPrivate->removeItemChangeListener(this, QQuickItemPrivate::Geometry);
710+ QQuickItemPrivate::get(listItem->sectionItem())->removeItemChangeListener(this, QQuickItemPrivate::Geometry);
711+ }
705 m_itemsToRelease << listItem;
712 m_itemsToRelease << listItem;
706}
713}
707
714
@@ -744,7 +751,7 @@ QQuickItem *ListViewWithPageHeader::getSectionItem(int modelIndex, bool alreadyI
744 return getSectionItem(section);
751 return getSectionItem(section);
745}
752}
746
753
747−QQuickItem *ListViewWithPageHeader::getSectionItem(const QString &sectionText)
754+QQuickItem *ListViewWithPageHeader::getSectionItem(const QString &sectionText, bool watchGeometry)
748{
755{
749 QQuickItem *sectionItem = nullptr;
756 QQuickItem *sectionItem = nullptr;
750
757
@@ -768,7 +775,9 @@ QQuickItem *ListViewWithPageHeader::getSectionItem(const QString &sectionText)
768 }
775 }
769 m_sectionDelegate->completeCreate();
776 m_sectionDelegate->completeCreate();
770
777
771− // TODO attach to sectionItem so we can accomodate to it changing its height
778+ if (watchGeometry) {
779+ QQuickItemPrivate::get(sectionItem)->addItemChangeListener(this, QQuickItemPrivate::Geometry);
780+ }
772
781
773 return sectionItem;
782 return sectionItem;
774}
783}
@@ -1126,15 +1135,23 @@ void ListViewWithPageHeader::contentYAnimationRunningChanged(bool running)
1126 }
1135 }
1127}
1136}
1128
1137
1129−void ListViewWithPageHeader::itemGeometryChanged(QQuickItem * /*item*/, const QRectF &newGeometry, const QRectF &oldGeometry)
1138+void ListViewWithPageHeader::itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry)
1130{
1139{
1131 const qreal heightDiff = newGeometry.height() - oldGeometry.height();
1140 const qreal heightDiff = newGeometry.height() - oldGeometry.height();
1132 if (heightDiff != 0) {
1141 if (heightDiff != 0) {
1133− if (!m_inContentHeightKeepHeaderShown && oldGeometry.y() + oldGeometry.height() + m_clipItem->y() <= contentY() && !m_visibleItems.isEmpty()) {
1142+ if (!m_visibleItems.isEmpty()) {
1134 ListItem *firstItem = m_visibleItems.first();
1143 ListItem *firstItem = m_visibleItems.first();
1144+ const auto prevFirstItemY = firstItem->y();
1145+ if (!m_inContentHeightKeepHeaderShown && oldGeometry.y() + oldGeometry.height() + m_clipItem->y() <= contentY()) {
1135− firstItem->setY(firstItem->y() - heightDiff);
1146+ firstItem->setY(firstItem->y() - heightDiff);
1147+ } else if (item == firstItem->sectionItem()) {
1148+ firstItem->setY(firstItem->y() + heightDiff);
1149+ }
1150+
1151+ if (firstItem->y() != prevFirstItemY) {
1136− adjustMinYExtent();
1152+ adjustMinYExtent();
1137− layout();
1153+ layout();
1154+ }
1138 }
1155 }
1139 refill();
1156 refill();
1140 adjustMinYExtent();
1157 adjustMinYExtent();
@@ -1186,7 +1203,7 @@ void ListViewWithPageHeader::headerHeightChanged(qreal newHeaderHeight, qreal ol
1186
1203
1187void ListViewWithPageHeader::adjustMinYExtent()
1204void ListViewWithPageHeader::adjustMinYExtent()
1188{
1205{
1189− if (m_visibleItems.isEmpty() || contentHeight() < height()) {
1206+ if (m_visibleItems.isEmpty() || (contentHeight() + m_minYExtent < height())) {
1190 m_minYExtent = 0;
1207 m_minYExtent = 0;
1191 } else {
1208 } else {
1192 qreal nonCreatedHeight = 0;
1209 qreal nonCreatedHeight = 0;
@@ -1368,7 +1385,7 @@ void ListViewWithPageHeader::updatePolish()
1368
1385
1369 m_contentHeightDirty = false;
1386 m_contentHeightDirty = false;
1370 adjustMinYExtent();
1387 adjustMinYExtent();
1371− if (contentHeight < height()) {
1388+ if (contentHeight + m_minYExtent < height()) {
1372 // need this since in the previous call to adjustMinYExtent contentHeight is not set yet
1389 // need this since in the previous call to adjustMinYExtent contentHeight is not set yet
1373 m_minYExtent = 0;
1390 m_minYExtent = 0;
1374 }
1391 }
plugins/Dash/listviewwithpageheader.h+2−1
@@ -115,6 +115,7 @@ protected:
115 void componentComplete() override;
115 void componentComplete() override;
116 void viewportMoved(Qt::Orientations orient) override;
116 void viewportMoved(Qt::Orientations orient) override;
117 qreal minYExtent() const override;
117 qreal minYExtent() const override;
118+ qreal maxYExtent() const override;
118 void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override;
119 void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override;
119 void itemImplicitHeightChanged(QQuickItem *item) override;
120 void itemImplicitHeightChanged(QQuickItem *item) override;
120 void updatePolish() override;
121 void updatePolish() override;
@@ -166,7 +167,7 @@ private:
166 void reallyReleaseItem(ListItem *item);
167 void reallyReleaseItem(ListItem *item);
167 void updateWatchedRoles();
168 void updateWatchedRoles();
168 QQuickItem *getSectionItem(int modelIndex, bool alreadyInserted);
169 QQuickItem *getSectionItem(int modelIndex, bool alreadyInserted);
169− QQuickItem *getSectionItem(const QString &sectionText);
170+ QQuickItem *getSectionItem(const QString &sectionText, bool watchGeometry = true);
170 void updateSectionItem(int modelIndex);
171 void updateSectionItem(int modelIndex);
171 void initializeValuesForEmptyList();
172 void initializeValuesForEmptyList();
172
173
plugins/Dash/qmldir+1
@@ -5,6 +5,7 @@ singleton CardCreatorCache 0.1 CardCreatorCache.qml
5singleton DashAudioPlayer 0.1 DashAudioPlayer.qml
5singleton DashAudioPlayer 0.1 DashAudioPlayer.qml
6ScopeStyle 0.1 ScopeStyle.qml
6ScopeStyle 0.1 ScopeStyle.qml
7CardAttributes 0.1 CardAttributes.qml
7CardAttributes 0.1 CardAttributes.qml
8+CardSocialActions 0.1 CardSocialActions.qml
8CroppedImageMinimumSourceSize 0.1 CroppedImageMinimumSourceSize.qml
9CroppedImageMinimumSourceSize 0.1 CroppedImageMinimumSourceSize.qml
9AudioProgressBar 0.1 AudioProgressBar.qml
10AudioProgressBar 0.1 AudioProgressBar.qml
10CardAudioProgress 0.1 CardAudioProgress.qml
11CardAudioProgress 0.1 CardAudioProgress.qml
plugins/GlobalShortcut/GlobalShortcut.qmltypesnew file+31
@@ -0,0 +1,31 @@
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/ScreenGrabber/CMakeLists.txtdeleted−13
@@ -1,13 +0,0 @@
1−include_directories(
2− ${CMAKE_CURRENT_BINARY_DIR}
3−)
4−
5−set(SCREENGRABBERSOURCES
6− screengrabber.cpp
7− plugin.cpp
8−)
9−
10−add_library(ScreenGrabber-qml MODULE ${SCREENGRABBERSOURCES})
11−qt5_use_modules(ScreenGrabber-qml Qml Gui Quick Concurrent)
12−
13−add_unity8_plugin(ScreenGrabber 0.1 ScreenGrabber TARGETS ScreenGrabber-qml)
plugins/ScreenGrabber/qmldirdeleted−3
@@ -1,3 +0,0 @@
1−module ScreenGrabber
2−plugin ScreenGrabber-qml
3−typeinfo ScreenGrabber.qmltypes
plugins/ScreenGrabber/screengrabber.cppdeleted−117
@@ -1,117 +0,0 @@
1−/*
2− * Copyright (C) 2014-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−#include "screengrabber.h"
18−
19−#include <QDir>
20−#include <QDateTime>
21−#include <QStandardPaths>
22−#include <QTemporaryDir>
23−#include <QtGui/QImage>
24−#include <QtGui/QGuiApplication>
25−#include <QtQuick/QQuickWindow>
26−
27−#include <QDebug>
28−
29−QString saveScreenshot(const QImage &screenshot, const QString &filename, const QString &format, int quality)
30−{
31− if (screenshot.save(filename, format.toLatin1().data(), quality)) {
32− return filename;
33− } else {
34− qWarning() << "ScreenGrabber: failed to save snapshot!";
35− }
36− return QString();
37−}
38−
39−ScreenGrabber::ScreenGrabber(QObject *parent)
40− : QObject(parent)
41−{
42− QObject::connect(&m_watcher,
43− &QFutureWatcher<QString>::finished,
44− this,
45− &ScreenGrabber::onScreenshotSaved);
46−
47− QDir screenshotsDir;
48− if (qEnvironmentVariableIsSet("UNITY_TESTING")) {
49− qDebug() << "Using test environment";
50− QTemporaryDir tDir;
51− tDir.setAutoRemove(false);
52− screenshotsDir = tDir.path();
53− } else {
54− qDebug() << "Using real environment";
55− screenshotsDir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
56− }
57− screenshotsDir.mkpath(QStringLiteral("Screenshots"));
58− screenshotsDir.cd(QStringLiteral("Screenshots"));
59− if (screenshotsDir.exists()) {
60− fileNamePrefix = screenshotsDir.absolutePath();
61− fileNamePrefix.append("/screenshot");
62− } else {
63− qWarning() << "ScreenGrabber: failed to create directory at: " << screenshotsDir.absolutePath();
64− }
65−}
66−
67−void ScreenGrabber::captureAndSave(int angle)
68−{
69− if (fileNamePrefix.isEmpty())
70− {
71− qWarning() << "ScreenShotter: no directory to save screenshot";
72− return;
73− }
74−
75− const QWindowList windows = QGuiApplication::topLevelWindows();
76− if (windows.empty())
77− {
78− qWarning() << "ScreenShotter: no top level windows found!";
79− return;
80− }
81−
82− QQuickWindow *main_window = qobject_cast<QQuickWindow *>(windows[0]);
83− if (!main_window)
84− {
85− qWarning() << "ScreenShotter: can only take screenshots of QQuickWindows";
86− return;
87− }
88−
89− const QImage screenshot = main_window->grabWindow().transformed(QTransform().rotate(angle));
90− const QString filename = makeFileName();
91− qDebug() << "Saving screenshot to" << filename;
92− QFuture<QString> saveFuture(QtConcurrent::run(saveScreenshot, screenshot, filename, getFormat(), screenshotQuality));
93− m_watcher.setFuture(saveFuture);
94−}
95−
96−void ScreenGrabber::onScreenshotSaved()
97−{
98− const QString filename = m_watcher.future().result();
99− if (!filename.isEmpty()) {
100− Q_EMIT screenshotSaved(filename);
101− }
102−}
103−
104−QString ScreenGrabber::makeFileName() const
105−{
106− QString fileName(fileNamePrefix);
107− fileName.append(QDateTime::currentDateTime().toString(QStringLiteral("yyyyMMdd_hhmmsszzz")));
108− fileName.append(".");
109− fileName.append(getFormat());
110− return fileName;
111−}
112−
113−QString ScreenGrabber::getFormat() const
114−{
115− //TODO: This should be configurable (perhaps through gsettings?)
116− return QStringLiteral("png");
117−}
plugins/ScreenGrabber/screengrabber.hdeleted−49
@@ -1,49 +0,0 @@
1−/*
2− * Copyright (C) 2014-2015 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#ifndef SNAPSHOTTER_H
18−#define SNAPSHOTTER_H
19−
20−#include <QObject>
21−#include <QString>
22−#include <QtConcurrent>
23−
24−class ScreenGrabber: public QObject
25−{
26− Q_OBJECT
27−
28−public:
29− explicit ScreenGrabber(QObject *parent = 0);
30− ~ScreenGrabber() = default;
31−
32−public Q_SLOTS:
33− void captureAndSave(int angle = 0);
34−
35−Q_SIGNALS:
36− void screenshotSaved(const QString &filename);
37−
38−private Q_SLOTS:
39− void onScreenshotSaved();
40−
41−private:
42− QString makeFileName() const;
43− QString getFormat() const;
44− QString fileNamePrefix;
45− int screenshotQuality = -1; // default quality for the format
46− QFutureWatcher<QString> m_watcher;
47−};
48−
49−#endif
plugins/ScreenshotDirectory/CMakeLists.txtnew file+9
@@ -0,0 +1,9 @@
1+set(PLUGIN_SOURCES
2+ ScreenshotDirectory.cpp
3+ plugin.cpp
4+)
5+
6+add_library(ScreenshotDirectory-qml MODULE ${PLUGIN_SOURCES})
7+qt5_use_modules(ScreenshotDirectory-qml Qml Gui Quick)
8+
9+add_unity8_plugin(ScreenshotDirectory 0.1 ScreenshotDirectory TARGETS ScreenshotDirectory-qml)
plugins/ScreenGrabber/ScreenGrabber.qmltypes → plugins/ScreenshotDirectory/ScreenGrabber.qmltypesrenamed

The content is the same.

plugins/ScreenshotDirectory/ScreenshotDirectory.cppnew file+64
@@ -0,0 +1,64 @@
1+/*
2+ * Copyright (C) 2014-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 "ScreenshotDirectory.h"
18+
19+#include <QDir>
20+#include <QDateTime>
21+#include <QStandardPaths>
22+#include <QTemporaryDir>
23+
24+#include <QDebug>
25+
26+ScreenshotDirectory::ScreenshotDirectory(QObject *parent)
27+ : QObject(parent)
28+{
29+ QDir screenshotsDir;
30+ if (qEnvironmentVariableIsSet("UNITY_TESTING")) {
31+ QTemporaryDir tDir;
32+ tDir.setAutoRemove(false);
33+ screenshotsDir = tDir.path();
34+ } else {
35+ screenshotsDir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
36+ }
37+ screenshotsDir.mkpath(QStringLiteral("Screenshots"));
38+ screenshotsDir.cd(QStringLiteral("Screenshots"));
39+ if (screenshotsDir.exists()) {
40+ m_fileNamePrefix = screenshotsDir.absolutePath();
41+ m_fileNamePrefix.append("/screenshot");
42+ } else {
43+ qWarning() << "ScreenshotDirectory: failed to create directory at:" << screenshotsDir.absolutePath();
44+ }
45+}
46+
47+QString ScreenshotDirectory::makeFileName() const
48+{
49+ if (m_fileNamePrefix.isEmpty()) {
50+ return QString();
51+ }
52+
53+ QString fileName(m_fileNamePrefix);
54+ fileName.append(QDateTime::currentDateTime().toString(QStringLiteral("yyyyMMdd_hhmmsszzz")));
55+ fileName.append(".");
56+ fileName.append(format());
57+ return fileName;
58+}
59+
60+QString ScreenshotDirectory::format() const
61+{
62+ //TODO: This should be configurable (perhaps through gsettings?)
63+ return QStringLiteral("png");
64+}
plugins/ScreenshotDirectory/ScreenshotDirectory.hnew file+39
@@ -0,0 +1,39 @@
1+/*
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef SCREENSHOTDIRECTORY_H
18+#define SCREENSHOTDIRECTORY_H
19+
20+#include <QObject>
21+#include <QString>
22+
23+class ScreenshotDirectory: public QObject
24+{
25+ Q_OBJECT
26+
27+public:
28+ explicit ScreenshotDirectory(QObject *parent = 0);
29+ ~ScreenshotDirectory() = default;
30+
31+public Q_SLOTS:
32+ QString makeFileName() const;
33+
34+private:
35+ QString format() const;
36+ QString m_fileNamePrefix;
37+};
38+
39+#endif // SCREENSHOTDIRECTORY_H
plugins/ScreenGrabber/plugin.cpp → plugins/ScreenshotDirectory/plugin.cpprenamed+5−7
@@ -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
@@ -12,17 +12,15 @@
12 *
12 *
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− *
16− * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
17 */
15 */
18
16
19#include "plugin.h"
17#include "plugin.h"
20−#include "screengrabber.h"
18+#include "ScreenshotDirectory.h"
21
19
22#include <QtQml/qqml.h>
20#include <QtQml/qqml.h>
23
21
24−void ScreenGrabberPlugin::registerTypes(const char *uri)
22+void ScreenshotDirectoryPlugin::registerTypes(const char *uri)
25{
23{
26− Q_ASSERT(uri == QLatin1String("ScreenGrabber"));
24+ Q_ASSERT(uri == QLatin1String("ScreenshotDirectory"));
27− qmlRegisterType<ScreenGrabber>(uri, 0, 1, "ScreenGrabber");
25+ qmlRegisterType<ScreenshotDirectory>(uri, 0, 1, "ScreenshotDirectory");
28}
26}
plugins/ScreenGrabber/plugin.h → plugins/ScreenshotDirectory/plugin.hrenamed+5−7
@@ -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
@@ -12,16 +12,14 @@
12 *
12 *
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− *
16− * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
17 */
15 */
18
16
19−#ifndef SCREENGRABBER_PLUGIN_H
17+#ifndef SCREENSHOTDIRECTORY_PLUGIN_H
20−#define SCREENGRABBER_PLUGIN_H
18+#define SCREENSHOTDIRECTORY_PLUGIN_H
21
19
22#include <QtQml/QQmlExtensionPlugin>
20#include <QtQml/QQmlExtensionPlugin>
23
21
24−class ScreenGrabberPlugin : public QQmlExtensionPlugin
22+class ScreenshotDirectoryPlugin : public QQmlExtensionPlugin
25{
23{
26 Q_OBJECT
24 Q_OBJECT
27 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
25 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
@@ -30,4 +28,4 @@ public:
30 void registerTypes(const char *uri) override;
28 void registerTypes(const char *uri) override;
31};
29};
32
30
33−#endif // SCREENGRABBER_PLUGIN_H
31+#endif // SCREENSHOTDIRECTORY_PLUGIN_H
plugins/ScreenshotDirectory/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module ScreenshotDirectory
2+plugin ScreenshotDirectory-qml
plugins/SessionBroadcast/CMakeLists.txt+5
@@ -1,3 +1,4 @@
1+include_directories(${GLIB_INCLUDE_DIRS})
1add_definitions(-DSM_BUSNAME=systemBus)
2add_definitions(-DSM_BUSNAME=systemBus)
2
3
3add_library(SessionBroadcast-qml MODULE
4add_library(SessionBroadcast-qml MODULE
@@ -7,4 +8,8 @@ add_library(SessionBroadcast-qml MODULE
7
8
8qt5_use_modules(SessionBroadcast-qml DBus Qml)
9qt5_use_modules(SessionBroadcast-qml DBus Qml)
9
10
11+target_link_libraries(SessionBroadcast-qml
12+ ${GLIB_LIBRARIES}
13+ )
14+
10add_unity8_plugin(SessionBroadcast 0.1 SessionBroadcast TARGETS SessionBroadcast-qml)
15add_unity8_plugin(SessionBroadcast 0.1 SessionBroadcast TARGETS SessionBroadcast-qml)
plugins/SessionBroadcast/SessionBroadcast.cpp+5−1
@@ -19,9 +19,13 @@
19#include "SessionBroadcast.h"
19#include "SessionBroadcast.h"
20#include <QDBusConnection>
20#include <QDBusConnection>
21
21
22+#include <glib.h>
23+
22SessionBroadcast::SessionBroadcast(QObject* parent)
24SessionBroadcast::SessionBroadcast(QObject* parent)
23 : QObject(parent)
25 : QObject(parent)
24{
26{
27+ m_username = QString::fromUtf8(g_get_user_name());
28+
25 auto connection = QDBusConnection::SM_BUSNAME();
29 auto connection = QDBusConnection::SM_BUSNAME();
26
30
27 connection.connect(QStringLiteral("com.canonical.Unity.Greeter.Broadcast"),
31 connection.connect(QStringLiteral("com.canonical.Unity.Greeter.Broadcast"),
@@ -35,7 +39,7 @@ SessionBroadcast::SessionBroadcast(QObject* parent)
35void SessionBroadcast::onShowHome(const QString &username)
39void SessionBroadcast::onShowHome(const QString &username)
36{
40{
37 // Only listen to requests meant for us
41 // Only listen to requests meant for us
38− if (username == qgetenv("USER")) {
42+ if (username == m_username) {
39 Q_EMIT showHome();
43 Q_EMIT showHome();
40 }
44 }
41}
45}
plugins/SessionBroadcast/SessionBroadcast.h+3
@@ -36,6 +36,9 @@ Q_SIGNALS:
36
36
37private Q_SLOTS:
37private Q_SLOTS:
38 void onShowHome(const QString &username);
38 void onShowHome(const QString &username);
39+
40+private:
41+ QString m_username;
39};
42};
40
43
41#endif
44#endif
plugins/Ubuntu/Gestures/CMakeLists.txt+1
@@ -11,6 +11,7 @@ set(UbuntuGesturesQml_SOURCES
11 PressedOutsideNotifier.cpp
11 PressedOutsideNotifier.cpp
12 TouchDispatcher.cpp
12 TouchDispatcher.cpp
13 TouchGate.cpp
13 TouchGate.cpp
14+ TouchGestureArea.cpp
14)
15)
15
16
16add_definitions(-DUBUNTUGESTURESQML_LIBRARY)
17add_definitions(-DUBUNTUGESTURESQML_LIBRARY)
plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+43−5
@@ -194,6 +194,26 @@ void DirectionalDragArea::setImmediateRecognition(bool enabled)
194 }
194 }
195}
195}
196
196
197+bool DirectionalDragArea::monitorOnly() const
198+{
199+ return d->monitorOnly;
200+}
201+
202+void DirectionalDragArea::setMonitorOnly(bool monitorOnly)
203+{
204+ if (d->monitorOnly != monitorOnly) {
205+ d->monitorOnly = monitorOnly;
206+
207+ if (monitorOnly && d->status == DirectionalDragAreaPrivate::Undecided) {
208+ TouchRegistry::instance()->removeCandidateOwnerForTouch(d->touchId, this);
209+ // We still wanna know when it ends for keeping the composition time window up-to-date
210+ TouchRegistry::instance()->addTouchWatcher(d->touchId, this);
211+ }
212+
213+ Q_EMIT monitorOnlyChanged(monitorOnly);
214+ }
215+}
216+
197void DirectionalDragArea::removeTimeConstraints()
217void DirectionalDragArea::removeTimeConstraints()
198{
218{
199 d->setMaxTime(60 * 60 * 1000);
219 d->setMaxTime(60 * 60 * 1000);
@@ -260,7 +280,10 @@ void DirectionalDragAreaPrivate::unownedTouchEvent(UnownedTouchEvent *unownedTou
260 unownedTouchEvent_undecided(unownedTouchEvent);
280 unownedTouchEvent_undecided(unownedTouchEvent);
261 break;
281 break;
262 default: // Recognized:
282 default: // Recognized:
263− // do nothing
283+ if (monitorOnly) {
284+ // Treat unowned event as if we owned it, but we are really just watching it
285+ touchEvent_recognized(event);
286+ }
264 break;
287 break;
265 }
288 }
266
289
@@ -311,7 +334,9 @@ void DirectionalDragAreaPrivate::unownedTouchEvent_undecided(UnownedTouchEvent *
311 }
334 }
312
335
313 if (movedFarEnoughAlongGestureAxis()) {
336 if (movedFarEnoughAlongGestureAxis()) {
337+ if (!monitorOnly) {
314− TouchRegistry::instance()->requestTouchOwnership(touchId, q);
338+ TouchRegistry::instance()->requestTouchOwnership(touchId, q);
339+ }
315 setStatus(Recognized);
340 setStatus(Recognized);
316 setPublicPos(touchPoint->pos());
341 setPublicPos(touchPoint->pos());
317 setPublicScenePos(touchScenePos);
342 setPublicScenePos(touchScenePos);
@@ -411,12 +436,21 @@ void DirectionalDragAreaPrivate::touchEvent_absent(QTouchEvent *event)
411 if (recognitionIsDisabled()) {
436 if (recognitionIsDisabled()) {
412 // Behave like a dumb TouchArea
437 // Behave like a dumb TouchArea
413 ddaDebug("Gesture recognition is disabled. Requesting touch ownership immediately.");
438 ddaDebug("Gesture recognition is disabled. Requesting touch ownership immediately.");
414− TouchRegistry::instance()->requestTouchOwnership(touchId, q);
415 setStatus(Recognized);
439 setStatus(Recognized);
440+ if (monitorOnly) {
441+ watchPressedTouchPoints(touchPoints);
442+ event->ignore();
443+ } else {
444+ TouchRegistry::instance()->requestTouchOwnership(touchId, q);
416− event->accept();
445+ event->accept();
446+ }
417 } else {
447 } else {
418 // just monitor the touch points for now.
448 // just monitor the touch points for now.
449+ if (monitorOnly) {
450+ watchPressedTouchPoints(touchPoints);
451+ } else {
419− TouchRegistry::instance()->addCandidateOwnerForTouch(touchId, q);
452+ TouchRegistry::instance()->addCandidateOwnerForTouch(touchId, q);
453+ }
420
454
421 setStatus(Undecided);
455 setStatus(Undecided);
422 // Let the item below have it. We will monitor it and grab it later if a gesture
456 // Let the item below have it. We will monitor it and grab it later if a gesture
@@ -606,6 +640,9 @@ void DirectionalDragAreaPrivate::setStatus(Status newStatus)
606 Q_EMIT q->pressedChanged(true);
640 Q_EMIT q->pressedChanged(true);
607 break;
641 break;
608 case Recognized:
642 case Recognized:
643+ if (oldStatus == WaitingForTouch) { // for immediate recognition
644+ Q_EMIT q->pressedChanged(true);
645+ }
609 Q_EMIT q->draggingChanged(true);
646 Q_EMIT q->draggingChanged(true);
610 break;
647 break;
611 default:
648 default:
@@ -890,5 +927,6 @@ DirectionalDragAreaPrivate::DirectionalDragAreaPrivate(DirectionalDragArea *q)
890 , recognitionTimer(nullptr)
927 , recognitionTimer(nullptr)
891 , timeSource(new RealTimeSource)
928 , timeSource(new RealTimeSource)
892 , activeTouches(timeSource)
929 , activeTouches(timeSource)
930+ , monitorOnly(false)
893{
931{
894}
932}
plugins/Ubuntu/Gestures/DirectionalDragArea.h+8
@@ -77,6 +77,10 @@ class UBUNTUGESTURESQML_EXPORT DirectionalDragArea : public QQuickItem {
77 WRITE setImmediateRecognition
77 WRITE setImmediateRecognition
78 NOTIFY immediateRecognitionChanged)
78 NOTIFY immediateRecognitionChanged)
79
79
80+ // Whether we are merely monitoring touch events (in which case, we don't
81+ // claim ownership of the touch).
82+ Q_PROPERTY(bool monitorOnly READ monitorOnly WRITE setMonitorOnly NOTIFY monitorOnlyChanged)
83+
80 Q_ENUMS(Direction)
84 Q_ENUMS(Direction)
81public:
85public:
82 DirectionalDragArea(QQuickItem *parent = 0);
86 DirectionalDragArea(QQuickItem *parent = 0);
@@ -100,6 +104,9 @@ public:
100 bool immediateRecognition() const;
104 bool immediateRecognition() const;
101 void setImmediateRecognition(bool enabled);
105 void setImmediateRecognition(bool enabled);
102
106
107+ bool monitorOnly() const;
108+ void setMonitorOnly(bool monitorOnly);
109+
103 bool event(QEvent *e) override;
110 bool event(QEvent *e) override;
104
111
105 /*
112 /*
@@ -123,6 +130,7 @@ Q_SIGNALS:
123 void touchSceneXChanged(qreal value);
130 void touchSceneXChanged(qreal value);
124 void touchSceneYChanged(qreal value);
131 void touchSceneYChanged(qreal value);
125 void immediateRecognitionChanged(bool value);
132 void immediateRecognitionChanged(bool value);
133+ void monitorOnlyChanged(bool value);
126
134
127protected:
135protected:
128 void touchEvent(QTouchEvent *event) override;
136 void touchEvent(QTouchEvent *event) override;
plugins/Ubuntu/Gestures/DirectionalDragArea_p.h+2
@@ -160,6 +160,8 @@ public:
160
160
161 ActiveTouchesInfo activeTouches;
161 ActiveTouchesInfo activeTouches;
162
162
163+ bool monitorOnly;
164+
163Q_SIGNALS:
165Q_SIGNALS:
164 void statusChanged(Status value);
166 void statusChanged(Status value);
165};
167};
plugins/Ubuntu/Gestures/Gestures.qmltypes+86−45
@@ -34,7 +34,8 @@ Module {
34 "Leftwards": 1,
34 "Leftwards": 1,
35 "Downwards": 2,
35 "Downwards": 2,
36 "Upwards": 3,
36 "Upwards": 3,
37− "Horizontal": 4
37+ "Horizontal": 4,
38+ "Vertical": 5
38 }
39 }
39 }
40 }
40 Method {
41 Method {
@@ -59,14 +60,6 @@ Module {
59 prototype: "QQuickItem"
60 prototype: "QQuickItem"
60 exports: ["Ubuntu.Gestures/DirectionalDragArea 0.1"]
61 exports: ["Ubuntu.Gestures/DirectionalDragArea 0.1"]
61 exportMetaObjectRevisions: [0]
62 exportMetaObjectRevisions: [0]
62− Enum {
63− name: "Status"
64− values: {
65− "WaitingForTouch": 0,
66− "Undecided": 1,
67− "Recognized": 2
68− }
69− }
70 Property { name: "direction"; type: "Direction::Type" }
63 Property { name: "direction"; type: "Direction::Type" }
71 Property { name: "distance"; type: "double"; isReadonly: true }
64 Property { name: "distance"; type: "double"; isReadonly: true }
72 Property { name: "sceneDistance"; type: "double"; isReadonly: true }
65 Property { name: "sceneDistance"; type: "double"; isReadonly: true }
@@ -74,24 +67,19 @@ Module {
74 Property { name: "touchY"; type: "double"; isReadonly: true }
67 Property { name: "touchY"; type: "double"; isReadonly: true }
75 Property { name: "touchSceneX"; type: "double"; isReadonly: true }
68 Property { name: "touchSceneX"; type: "double"; isReadonly: true }
76 Property { name: "touchSceneY"; type: "double"; isReadonly: true }
69 Property { name: "touchSceneY"; type: "double"; isReadonly: true }
77− Property { name: "status"; type: "Status"; isReadonly: true }
78 Property { name: "dragging"; type: "bool"; isReadonly: true }
70 Property { name: "dragging"; type: "bool"; isReadonly: true }
79− Property { name: "maxDeviation"; type: "double" }
71+ Property { name: "pressed"; type: "bool"; isReadonly: true }
80− Property { name: "wideningAngle"; type: "double" }
81− Property { name: "distanceThreshold"; type: "double" }
72+ Property { name: "immediateRecognition"; type: "bool" }
82− Property { name: "minSpeed"; type: "double" }
83− Property { name: "maxSilenceTime"; type: "int" }
84− Property { name: "compositionTime"; type: "int" }
85 Signal {
73 Signal {
86 name: "directionChanged"
74 name: "directionChanged"
87 Parameter { name: "direction"; type: "Direction::Type" }
75 Parameter { name: "direction"; type: "Direction::Type" }
88 }
76 }
89 Signal {
77 Signal {
90− name: "statusChanged"
78+ name: "draggingChanged"
91− Parameter { name: "value"; type: "Status" }
79+ Parameter { name: "value"; type: "bool" }
92 }
80 }
93 Signal {
81 Signal {
94− name: "draggingChanged"
82+ name: "pressedChanged"
95 Parameter { name: "value"; type: "bool" }
83 Parameter { name: "value"; type: "bool" }
96 }
84 }
97 Signal {
85 Signal {
@@ -102,30 +90,6 @@ Module {
102 name: "sceneDistanceChanged"
90 name: "sceneDistanceChanged"
103 Parameter { name: "value"; type: "double" }
91 Parameter { name: "value"; type: "double" }
104 }
92 }
105− Signal {
106− name: "maxDeviationChanged"
107− Parameter { name: "value"; type: "double" }
108− }
109− Signal {
110− name: "wideningAngleChanged"
111− Parameter { name: "value"; type: "double" }
112− }
113− Signal {
114− name: "distanceThresholdChanged"
115− Parameter { name: "value"; type: "double" }
116− }
117− Signal {
118− name: "minSpeedChanged"
119− Parameter { name: "value"; type: "double" }
120− }
121− Signal {
122− name: "maxSilenceTimeChanged"
123− Parameter { name: "value"; type: "int" }
124− }
125− Signal {
126− name: "compositionTimeChanged"
127− Parameter { name: "value"; type: "int" }
128− }
129 Signal {
93 Signal {
130 name: "touchXChanged"
94 name: "touchXChanged"
131 Parameter { name: "value"; type: "double" }
95 Parameter { name: "value"; type: "double" }
@@ -142,7 +106,35 @@ Module {
142 name: "touchSceneYChanged"
106 name: "touchSceneYChanged"
143 Parameter { name: "value"; type: "double" }
107 Parameter { name: "value"; type: "double" }
144 }
108 }
145− Signal { name: "tapped" }
109+ Signal {
110+ name: "immediateRecognitionChanged"
111+ Parameter { name: "value"; type: "bool" }
112+ }
113+ Method { name: "removeTimeConstraints" }
114+ }
115+ Component {
116+ name: "FloatingFlickable"
117+ defaultProperty: "data"
118+ prototype: "QQuickItem"
119+ exports: ["Ubuntu.Gestures/FloatingFlickable 0.1"]
120+ exportMetaObjectRevisions: [0]
121+ Property { name: "contentWidth"; type: "double" }
122+ Property { name: "contentHeight"; type: "double" }
123+ Property { name: "contentX"; type: "double" }
124+ Property { name: "contentY"; type: "double" }
125+ Property { name: "direction"; type: "Direction::Type" }
126+ }
127+ Component {
128+ name: "GestureTouchPoint"
129+ prototype: "QObject"
130+ exports: ["Ubuntu.Gestures/GestureTouchPoint 0.1"]
131+ isCreatable: false
132+ exportMetaObjectRevisions: [0]
133+ Property { name: "pointId"; type: "int"; isReadonly: true }
134+ Property { name: "pressed"; type: "bool"; isReadonly: true }
135+ Property { name: "x"; type: "double"; isReadonly: true }
136+ Property { name: "y"; type: "double"; isReadonly: true }
137+ Property { name: "dragging"; type: "bool"; isReadonly: true }
146 }
138 }
147 Component {
139 Component {
148 name: "PressedOutsideNotifier"
140 name: "PressedOutsideNotifier"
@@ -163,6 +155,55 @@ Module {
163 name: "targetItemChanged"
155 name: "targetItemChanged"
164 Parameter { name: "item"; type: "QQuickItem"; isPointer: true }
156 Parameter { name: "item"; type: "QQuickItem"; isPointer: true }
165 }
157 }
158+ }
159+ Component {
160+ name: "TouchGestureArea"
161+ defaultProperty: "data"
162+ prototype: "QQuickItem"
163+ exports: ["Ubuntu.Gestures/TouchGestureArea 0.1"]
164+ exportMetaObjectRevisions: [0]
165+ Enum {
166+ name: "Status"
167+ values: {
168+ "WaitingForTouch": 0,
169+ "Undecided": 1,
170+ "Recognized": 2,
171+ "Rejected": 3
172+ }
173+ }
174+ Property { name: "touchPoints"; type: "GestureTouchPoint"; isList: true; isReadonly: true }
175+ Property { name: "dragging"; type: "bool"; isReadonly: true }
176+ Property { name: "minimumTouchPoints"; type: "int" }
177+ Property { name: "maximumTouchPoints"; type: "int" }
178+ Signal {
179+ name: "statusChanged"
180+ Parameter { name: "status"; type: "Status" }
181+ }
182+ Signal { name: "touchPointsUpdated" }
183+ Signal {
184+ name: "draggingChanged"
185+ Parameter { name: "dragging"; type: "bool" }
186+ }
187+ Signal {
188+ name: "minimumTouchPointsChanged"
189+ Parameter { name: "value"; type: "bool" }
190+ }
191+ Signal {
192+ name: "maximumTouchPointsChanged"
193+ Parameter { name: "value"; type: "bool" }
194+ }
195+ Signal {
166− Signal { name: "pressed" }
196+ name: "pressed"
197+ Parameter { name: "points"; type: "QList<QObject*>" }
198+ }
199+ Signal {
200+ name: "released"
201+ Parameter { name: "points"; type: "QList<QObject*>" }
202+ }
203+ Signal {
204+ name: "updated"
205+ Parameter { name: "points"; type: "QList<QObject*>" }
206+ }
207+ Signal { name: "clicked" }
167 }
208 }
168}
209}
plugins/Ubuntu/Gestures/TouchGestureArea.cppnew file+875
@@ -0,0 +1,875 @@
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 "TouchGestureArea.h"
18+
19+// local
20+#include "TouchOwnershipEvent.h"
21+#include "TouchRegistry.h"
22+#include "UnownedTouchEvent.h"
23+
24+#include <QGuiApplication>
25+#include <QStyleHints>
26+#include <private/qquickwindow_p.h>
27+
28+#define TOUCHGESTUREAREA_DEBUG 0
29+
30+// TODO - understand more about why we lose touch event releases.
31+// Workaround for now is to monitor all the touch points from first touch till
32+// all have been released; no matter if we've rejected the gesture.
33+
34+namespace {
35+
36+struct InternalStatus {
37+ enum Status {
38+ WaitingForTouch,
39+ WaitingForMoreTouches,
40+ WaitingForOwnership, //Recognizing,
41+ Recognized,
42+ WaitingForRejection,
43+ Rejected
44+ };
45+};
46+
47+TouchGestureArea::Status internalStatusToGestureStatus(int internalStatus) {
48+ switch (internalStatus) {
49+ case InternalStatus::WaitingForTouch: return TouchGestureArea::WaitingForTouch;
50+ case InternalStatus::WaitingForMoreTouches: return TouchGestureArea::Undecided;
51+ case InternalStatus::WaitingForOwnership: return TouchGestureArea::Undecided;
52+ case InternalStatus::Recognized: return TouchGestureArea::Recognized;
53+ case InternalStatus::WaitingForRejection: return TouchGestureArea::Recognized;
54+ case InternalStatus::Rejected: return TouchGestureArea::Rejected;
55+ }
56+ return TouchGestureArea::WaitingForTouch;
57+}
58+
59+}
60+
61+#if TOUCHGESTUREAREA_DEBUG
62+#define tgaDebug(params) qDebug().nospace() << "[TGA(" << qPrintable(objectName()) << ")] " << params
63+#include "DebugHelpers.h"
64+
65+namespace {
66+
67+const char *statusToString(int status)
68+{
69+ if (status == InternalStatus::WaitingForTouch) {
70+ return "WaitingForTouch";
71+ } else if (status == InternalStatus::WaitingForMoreTouches) {
72+ return "WaitingForMoreTouches";
73+ } else if (status == InternalStatus::WaitingForOwnership) {
74+ return "WaitingForOwnership";
75+ } else if (status == InternalStatus::Rejected) {
76+ return "Rejected";
77+ } else if (status == InternalStatus::WaitingForRejection) {
78+ return "WaitingForRejection";
79+ } else {
80+ return "Recognized";
81+ }
82+ return "Unknown";
83+}
84+
85+QString touchState(Qt::TouchPointState state) {
86+ switch (state) {
87+ case Qt::TouchPointPressed: return "pressed";
88+ case Qt::TouchPointMoved: return "moved";
89+ case Qt::TouchPointStationary: return "stationary";
90+ case Qt::TouchPointReleased: return "released";
91+ break;
92+ }
93+ return "unknown";
94+}
95+
96+QString touchesString(const QList<QObject*> touches) {
97+ QString str;
98+ Q_FOREACH(QObject* object, touches) {
99+ GestureTouchPoint* touchPoint = qobject_cast<GestureTouchPoint*>(object);
100+ if (touchPoint) {
101+ str += QStringLiteral("[%1 @ (%2, %3)], ").arg(touchPoint->id())
102+ .arg(touchPoint->x())
103+ .arg(touchPoint->y());
104+ }
105+ }
106+ return str;
107+}
108+
109+QString touchEventString(QTouchEvent* event) {
110+ if (!event) return QString();
111+ QString str;
112+ Q_FOREACH(const auto& touchPoint, event->touchPoints()) {
113+ str += QStringLiteral("[%1:%2 @ (%3, %4)], ").arg(touchPoint.id())
114+ .arg(touchState(touchPoint.state()))
115+ .arg(touchPoint.pos().x())
116+ .arg(touchPoint.pos().y());
117+ }
118+ return str;
119+}
120+
121+
122+} // namespace {
123+#else // TOUCHGESTUREAREA_DEBUG
124+#define tgaDebug(params) ((void)0)
125+#endif // TOUCHGESTUREAREA_DEBUG
126+
127+TouchGestureArea::TouchGestureArea(QQuickItem* parent)
128+ : QQuickItem(parent)
129+ , m_status(WaitingForTouch)
130+ , m_recognitionTimer(nullptr)
131+ , m_dragging(false)
132+ , m_minimumTouchPoints(1)
133+ , m_maximumTouchPoints(INT_MAX)
134+ , m_recognitionPeriod(50)
135+ , m_releaseRejectPeriod(100)
136+{
137+ setRecognitionTimer(new UbuntuGestures::Timer(this));
138+ m_recognitionTimer->setInterval(m_recognitionPeriod);
139+ m_recognitionTimer->setSingleShot(true);
140+}
141+
142+TouchGestureArea::~TouchGestureArea()
143+{
144+ clearTouchLists();
145+ qDeleteAll(m_liveTouchPoints);
146+ m_liveTouchPoints.clear();
147+ qDeleteAll(m_cachedTouchPoints);
148+ m_cachedTouchPoints.clear();
149+}
150+
151+bool TouchGestureArea::event(QEvent *event)
152+{
153+ // Process unowned touch events (handles update/release for incomplete gestures)
154+ if (event->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
155+ touchOwnershipEvent(static_cast<TouchOwnershipEvent *>(event));
156+ return true;
157+ } else if (event->type() == UnownedTouchEvent::unownedTouchEventType()) {
158+ unownedTouchEvent(static_cast<UnownedTouchEvent *>(event)->touchEvent());
159+ return true;
160+ }
161+
162+ return QQuickItem::event(event);
163+}
164+
165+void TouchGestureArea::touchOwnershipEvent(TouchOwnershipEvent *event)
166+{
167+ int touchId = event->touchId();
168+ tgaDebug("touchOwnershipEvent - id:" << touchId << ", gained:" << event->gained());
169+
170+ if (event->gained()) {
171+ grabTouchPoints(QVector<int>() << touchId);
172+ m_candidateTouches.remove(touchId);
173+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
174+ m_watchedTouches.insert(touchId);
175+
176+ if (m_watchedTouches.count() >= m_minimumTouchPoints) {
177+ setInternalStatus(InternalStatus::Recognized);
178+ }
179+ } else {
180+ rejectGesture();
181+ }
182+}
183+
184+void TouchGestureArea::touchEvent(QTouchEvent *event)
185+{
186+ if (!isEnabled() || !isVisible()) {
187+ tgaDebug(QString("NOT ENABLED touchEvent(%1) %2").arg(statusToString(m_status)).arg(touchEventString(event)));
188+ QQuickItem::touchEvent(event);
189+ return;
190+ }
191+
192+ tgaDebug(QString("touchEvent(%1) %2").arg(statusToString(m_status)).arg(touchEventString(event)));
193+
194+ switch (m_status) {
195+ case InternalStatus::WaitingForTouch:
196+ touchEvent_waitingForTouch(event);
197+ break;
198+ case InternalStatus::WaitingForMoreTouches:
199+ touchEvent_waitingForMoreTouches(event);
200+ break;
201+ case InternalStatus::WaitingForOwnership:
202+ touchEvent_waitingForOwnership(event);
203+ break;
204+ case InternalStatus::Recognized:
205+ case InternalStatus::WaitingForRejection:
206+ touchEvent_recognized(event);
207+ break;
208+ case InternalStatus::Rejected:
209+ touchEvent_rejected(event);
210+ break;
211+ default: // Recognized:
212+ break;
213+ }
214+
215+ updateTouchPoints(event);
216+}
217+
218+void TouchGestureArea::touchEvent_waitingForTouch(QTouchEvent *event)
219+{
220+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
221+ Qt::TouchPointState touchPointState = touchPoint.state();
222+ int touchId = touchPoint.id();
223+
224+ if (touchPointState == Qt::TouchPointPressed) {
225+ if (!m_candidateTouches.contains(touchId)) {
226+ TouchRegistry::instance()->addCandidateOwnerForTouch(touchId, this);
227+ m_candidateTouches.insert(touchId);
228+ }
229+ }
230+ }
231+ event->ignore();
232+
233+ if (m_candidateTouches.count() > m_maximumTouchPoints) {
234+ rejectGesture();
235+ } else if (m_candidateTouches.count() >= m_minimumTouchPoints) {
236+ setInternalStatus(InternalStatus::WaitingForOwnership);
237+
238+ QSet<int> tmpCandidates(m_candidateTouches);
239+ Q_FOREACH(int candidateTouchId, tmpCandidates) {
240+ TouchRegistry::instance()->requestTouchOwnership(candidateTouchId, this);
241+ }
242+ // We accept the gesture; so don't pass to lower items
243+ event->accept();
244+ } else if (m_candidateTouches.count() > 0) {
245+ setInternalStatus(InternalStatus::WaitingForMoreTouches);
246+ }
247+}
248+
249+void TouchGestureArea::touchEvent_waitingForMoreTouches(QTouchEvent *event)
250+{
251+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
252+ Qt::TouchPointState touchPointState = touchPoint.state();
253+ int touchId = touchPoint.id();
254+
255+ if (touchPointState == Qt::TouchPointPressed) {
256+ if (!m_candidateTouches.contains(touchId)) {
257+ TouchRegistry::instance()->addCandidateOwnerForTouch(touchId, this);
258+ m_candidateTouches.insert(touchId);
259+ }
260+ }
261+ }
262+ event->ignore();
263+
264+ if (m_candidateTouches.count() > m_maximumTouchPoints) {
265+ rejectGesture();
266+ } else if (m_candidateTouches.count() >= m_minimumTouchPoints) {
267+ setInternalStatus(InternalStatus::WaitingForOwnership);
268+
269+ QSet<int> tmpCandidates(m_candidateTouches);
270+ Q_FOREACH(int candidateTouchId, tmpCandidates) {
271+ TouchRegistry::instance()->requestTouchOwnership(candidateTouchId, this);
272+ }
273+ // We accept the gesture; so don't pass to lower items
274+ event->accept();
275+ }
276+}
277+
278+void TouchGestureArea::touchEvent_waitingForOwnership(QTouchEvent *event)
279+{
280+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
281+ Qt::TouchPointState touchPointState = touchPoint.state();
282+ int touchId = touchPoint.id();
283+
284+ if (touchPointState == Qt::TouchPointPressed) {
285+ if (!m_watchedTouches.contains(touchId)) {
286+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
287+ m_watchedTouches.insert(touchId);
288+ }
289+ }
290+ }
291+}
292+
293+void TouchGestureArea::touchEvent_recognized(QTouchEvent *event)
294+{
295+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
296+ Qt::TouchPointState touchPointState = touchPoint.state();
297+ int touchId = touchPoint.id();
298+
299+ if (touchPointState == Qt::TouchPointPressed) {
300+ if (!m_watchedTouches.contains(touchId)) {
301+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
302+ m_watchedTouches.insert(touchId);
303+ }
304+ }
305+ }
306+
307+ if (m_watchedTouches.count() > m_maximumTouchPoints) {
308+ rejectGesture();
309+ } else if (m_watchedTouches.count() >= m_minimumTouchPoints &&
310+ m_status==InternalStatus::WaitingForRejection) {
311+ setInternalStatus(InternalStatus::Recognized);
312+ }
313+}
314+
315+void TouchGestureArea::touchEvent_rejected(QTouchEvent *event)
316+{
317+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
318+ Qt::TouchPointState touchPointState = touchPoint.state();
319+ int touchId = touchPoint.id();
320+
321+ if (touchPointState == Qt::TouchPointPressed) {
322+ if (!m_watchedTouches.contains(touchId)) {
323+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
324+ m_watchedTouches.insert(touchId);
325+ }
326+ }
327+ }
328+}
329+
330+void TouchGestureArea::unownedTouchEvent(QTouchEvent *unownedTouchEvent)
331+{
332+ tgaDebug(QString("unownedTouchEvent(%1) %2").arg(statusToString(m_status)).arg(touchEventString(unownedTouchEvent)));
333+
334+ // Only monitor unowned touch events for presses/releases
335+ if ((unownedTouchEvent->touchPointStates() & (Qt::TouchPointPressed|Qt::TouchPointReleased)) == 0) {
336+ return;
337+ }
338+
339+ switch (m_status) {
340+ case InternalStatus::WaitingForTouch:
341+ break;
342+ case InternalStatus::WaitingForMoreTouches:
343+ unownedTouchEvent_waitingForMoreTouches(unownedTouchEvent);
344+ // do nothing
345+ break;
346+ case InternalStatus::WaitingForOwnership:
347+ unownedTouchEvent_waitingForOwnership(unownedTouchEvent);
348+ break;
349+ case InternalStatus::Recognized:
350+ case InternalStatus::WaitingForRejection:
351+ unownedTouchEvent_recognised(unownedTouchEvent);
352+ break;
353+ case InternalStatus::Rejected:
354+ unownedTouchEvent_rejected(unownedTouchEvent);
355+ break;
356+ default:
357+ break;
358+ }
359+
360+ updateTouchPoints(unownedTouchEvent);
361+}
362+
363+void TouchGestureArea::unownedTouchEvent_waitingForMoreTouches(QTouchEvent *event)
364+{
365+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
366+ Qt::TouchPointState touchPointState = touchPoint.state();
367+ int touchId = touchPoint.id();
368+
369+ if (touchPointState == Qt::TouchPointReleased) {
370+ if (m_candidateTouches.contains(touchId)) {
371+ TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, this);
372+ m_candidateTouches.remove(touchId);
373+ }
374+ }
375+ }
376+
377+ if (m_candidateTouches.count() == 0) {
378+ setInternalStatus(InternalStatus::WaitingForTouch);
379+ }
380+}
381+
382+void TouchGestureArea::unownedTouchEvent_waitingForOwnership(QTouchEvent *event)
383+{
384+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
385+ Qt::TouchPointState touchPointState = touchPoint.state();
386+ int touchId = touchPoint.id();
387+
388+ if (touchPointState == Qt::TouchPointReleased) {
389+ if (m_candidateTouches.contains(touchId)) {
390+ TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, this);
391+ m_candidateTouches.remove(touchId);
392+ }
393+ if (m_watchedTouches.contains(touchId)) {
394+ m_watchedTouches.remove(touchId);
395+ }
396+ }
397+ }
398+
399+ if (m_candidateTouches.count() + m_watchedTouches.count() == 0) {
400+ setInternalStatus(InternalStatus::WaitingForTouch);
401+ }
402+}
403+
404+void TouchGestureArea::unownedTouchEvent_recognised(QTouchEvent *event)
405+{
406+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
407+ Qt::TouchPointState touchPointState = touchPoint.state();
408+ int touchId = touchPoint.id();
409+
410+ if (touchPointState == Qt::TouchPointReleased) {
411+ if (m_watchedTouches.contains(touchId)) {
412+ m_watchedTouches.remove(touchId);
413+ }
414+ }
415+ }
416+
417+ if (m_watchedTouches.count() < m_minimumTouchPoints && m_status==InternalStatus::Recognized) {
418+ setInternalStatus(InternalStatus::WaitingForRejection);
419+ }
420+}
421+
422+void TouchGestureArea::unownedTouchEvent_rejected(QTouchEvent *event)
423+{
424+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
425+ Qt::TouchPointState touchPointState = touchPoint.state();
426+ int touchId = touchPoint.id();
427+
428+ if (touchPointState == Qt::TouchPointPressed) {
429+ if (!m_watchedTouches.contains(touchId)) {
430+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
431+ m_watchedTouches.insert(touchId);
432+ }
433+ }
434+ if (touchPointState == Qt::TouchPointReleased) {
435+ if (m_watchedTouches.contains(touchId)) {
436+ m_watchedTouches.remove(touchId);
437+ }
438+ }
439+ }
440+
441+ if (m_watchedTouches.count() == 0) {
442+ setInternalStatus(InternalStatus::WaitingForTouch);
443+ }
444+}
445+
446+void TouchGestureArea::updateTouchPoints(QTouchEvent *touchEvent)
447+{
448+ bool added = false;
449+ bool ended = false;
450+ bool moved = false;
451+
452+ const int dragThreshold = qApp->styleHints()->startDragDistance();
453+ const int dragVelocity = qApp->styleHints()->startDragVelocity();
454+
455+ clearTouchLists();
456+ bool updateable = m_status != InternalStatus::WaitingForRejection;
457+
458+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, touchEvent->touchPoints()) {
459+ Qt::TouchPointState touchPointState = touchPoint.state();
460+ int touchId = touchPoint.id();
461+
462+ if (touchPointState & Qt::TouchPointReleased) {
463+ GestureTouchPoint* gtp = m_liveTouchPoints.value(touchId);
464+ if (!gtp) continue;
465+
466+ gtp->setPos(touchPoint.pos());
467+ gtp->setPressed(false);
468+ m_releasedTouchPoints.append(gtp);
469+ m_liveTouchPoints.remove(touchId);
470+
471+ if (updateable) {
472+ if (m_cachedTouchPoints.contains(touchId)) {
473+ GestureTouchPoint* cachedPoint = m_cachedTouchPoints.take(touchId);
474+ cachedPoint->deleteLater();
475+ }
476+ }
477+ ended = true;
478+ } else {
479+ GestureTouchPoint* gtp = m_liveTouchPoints.value(touchPoint.id(), nullptr);
480+ if (!gtp) {
481+ gtp = addTouchPoint(&touchPoint);
482+ m_pressedTouchPoints.append(gtp);
483+
484+ if (updateable) {
485+ if (m_cachedTouchPoints.contains(touchId)) {
486+ m_cachedTouchPoints[touchId]->setPos(touchPoint.pos());
487+ } else {
488+ m_cachedTouchPoints[touchId] = new GestureTouchPoint(*gtp);
489+ }
490+ }
491+ added = true;
492+ } else if (touchPointState & Qt::TouchPointMoved) {
493+ gtp->setPos(touchPoint.pos());
494+ m_movedTouchPoints.append(gtp);
495+ moved = true;
496+
497+ const QPointF &currentPos = touchPoint.scenePos();
498+ const QPointF &startPos = touchPoint.startScenePos();
499+
500+ bool overDragThreshold = false;
501+ bool supportsVelocity = (touchEvent->device()->capabilities() & QTouchDevice::Velocity) && dragVelocity;
502+ overDragThreshold |= qAbs(currentPos.x() - startPos.x()) > dragThreshold ||
503+ qAbs(currentPos.y() - startPos.y()) > dragThreshold;
504+ if (supportsVelocity) {
505+ QVector2D velocityVec = touchPoint.velocity();
506+ overDragThreshold |= qAbs(velocityVec.x()) > dragVelocity;
507+ overDragThreshold |= qAbs(velocityVec.y()) > dragVelocity;
508+ }
509+
510+ if (overDragThreshold) {
511+ gtp->setDragging(true);
512+ }
513+
514+ if (updateable) {
515+ if (m_cachedTouchPoints.contains(touchId)) {
516+ m_cachedTouchPoints[touchId]->setPos(touchPoint.pos());
517+ if (overDragThreshold) {
518+ m_cachedTouchPoints[touchId]->setDragging(true);
519+ }
520+ }
521+ }
522+ }
523+ }
524+ }
525+
526+ if (updateable) {
527+ if (!dragging() && m_status == InternalStatus::Recognized) {
528+ bool allWantDrag = !m_liveTouchPoints.isEmpty();
529+ Q_FOREACH(auto point, m_liveTouchPoints) {
530+ allWantDrag &= point->dragging();
531+ }
532+ // only dragging if all points are dragging.
533+ if (allWantDrag) {
534+ setDragging(true);
535+ }
536+ }
537+
538+ if (ended) {
539+ if (m_liveTouchPoints.isEmpty()) {
540+ if (!dragging()) Q_EMIT clicked();
541+ setDragging(false);
542+ }
543+ tgaDebug("Released " << touchesString(m_releasedTouchPoints));
544+ Q_EMIT released(m_releasedTouchPoints);
545+ }
546+ if (added) {
547+ tgaDebug("Pressed " << touchesString(m_pressedTouchPoints));
548+ Q_EMIT pressed(m_pressedTouchPoints);
549+ }
550+ if (moved) {
551+ tgaDebug("Updated " << touchesString(m_movedTouchPoints));
552+ Q_EMIT updated(m_movedTouchPoints);
553+ }
554+ if (added || ended || moved) {
555+ Q_EMIT touchPointsUpdated();
556+ }
557+ }
558+}
559+
560+void TouchGestureArea::clearTouchLists()
561+{
562+ Q_FOREACH (QObject *gtp, m_releasedTouchPoints) {
563+ delete gtp;
564+ }
565+ m_releasedTouchPoints.clear();
566+ m_pressedTouchPoints.clear();
567+ m_movedTouchPoints.clear();
568+}
569+
570+void TouchGestureArea::setInternalStatus(uint newStatus)
571+{
572+ if (newStatus == m_status)
573+ return;
574+
575+ uint oldStatus = m_status;
576+
577+ m_status = newStatus;
578+ Q_EMIT statusChanged(status());
579+
580+ if (oldStatus == InternalStatus::WaitingForMoreTouches || oldStatus == InternalStatus::WaitingForRejection) {
581+ m_recognitionTimer->stop();
582+ }
583+
584+ tgaDebug(statusToString(oldStatus) << " -> " << statusToString(newStatus));
585+
586+ switch (newStatus) {
587+ case InternalStatus::WaitingForTouch:
588+ resyncCachedTouchPoints();
589+ break;
590+ case InternalStatus::WaitingForMoreTouches:
591+ m_recognitionTimer->start(m_recognitionPeriod);
592+ break;
593+ case InternalStatus::Recognized:
594+ resyncCachedTouchPoints();
595+ break;
596+ case InternalStatus::WaitingForRejection:
597+ m_recognitionTimer->start(m_releaseRejectPeriod);
598+ break;
599+ case InternalStatus::Rejected:
600+ resyncCachedTouchPoints();
601+ break;
602+ default:
603+ // no-op
604+ break;
605+ }
606+}
607+
608+void TouchGestureArea::setRecognitionTimer(UbuntuGestures::AbstractTimer *timer)
609+{
610+ int interval = 0;
611+ bool timerWasRunning = false;
612+ bool wasSingleShot = false;
613+
614+ // can be null when called from the constructor
615+ if (m_recognitionTimer) {
616+ interval = m_recognitionTimer->interval();
617+ timerWasRunning = m_recognitionTimer->isRunning();
618+ if (m_recognitionTimer->parent() == this) {
619+ delete m_recognitionTimer;
620+ }
621+ }
622+
623+ m_recognitionTimer = timer;
624+ timer->setInterval(interval);
625+ timer->setSingleShot(wasSingleShot);
626+ connect(timer, SIGNAL(timeout()),
627+ this, SLOT(rejectGesture()));
628+ if (timerWasRunning) {
629+ m_recognitionTimer->start();
630+ }
631+}
632+
633+int TouchGestureArea::status() const
634+{
635+ return internalStatusToGestureStatus(m_status);
636+}
637+
638+bool TouchGestureArea::dragging() const
639+{
640+ return m_dragging;
641+}
642+
643+QQmlListProperty<GestureTouchPoint> TouchGestureArea::touchPoints()
644+{
645+ return QQmlListProperty<GestureTouchPoint>(this,
646+ 0,
647+ nullptr,
648+ TouchGestureArea::touchPoint_count,
649+ TouchGestureArea::touchPoint_at,
650+ 0);
651+}
652+
653+int TouchGestureArea::minimumTouchPoints() const
654+{
655+ return m_minimumTouchPoints;
656+}
657+
658+void TouchGestureArea::setMinimumTouchPoints(int value)
659+{
660+ if (m_minimumTouchPoints != value) {
661+ m_minimumTouchPoints = value;
662+ Q_EMIT minimumTouchPointsChanged(value);
663+ }
664+}
665+
666+int TouchGestureArea::maximumTouchPoints() const
667+{
668+ return m_maximumTouchPoints;
669+}
670+
671+void TouchGestureArea::setMaximumTouchPoints(int value)
672+{
673+ if (m_maximumTouchPoints != value) {
674+ m_maximumTouchPoints = value;
675+ Q_EMIT maximumTouchPointsChanged(value);
676+ }
677+}
678+
679+int TouchGestureArea::recognitionPeriod() const
680+{
681+ return m_recognitionPeriod;
682+}
683+
684+void TouchGestureArea::setRecognitionPeriod(int value)
685+{
686+ if (value != m_recognitionPeriod) {
687+ m_recognitionPeriod = value;
688+ Q_EMIT recognitionPeriodChanged(value);
689+ }
690+}
691+
692+int TouchGestureArea::releaseRejectPeriod() const
693+{
694+ return m_releaseRejectPeriod;
695+}
696+
697+void TouchGestureArea::setReleaseRejectPeriod(int value)
698+{
699+ if (value != m_releaseRejectPeriod) {
700+ m_releaseRejectPeriod = value;
701+ Q_EMIT releaseRejectPeriodChanged(value);
702+ }
703+}
704+
705+void TouchGestureArea::rejectGesture()
706+{
707+ tgaDebug("rejectGesture");
708+ ungrabTouchPoints();
709+
710+ Q_FOREACH(int touchId, m_candidateTouches) {
711+ TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, this);
712+ }
713+
714+ // Monitor the candidates
715+ Q_FOREACH(int touchId, m_candidateTouches) {
716+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
717+ m_watchedTouches.insert(touchId);
718+ }
719+ m_candidateTouches.clear();
720+
721+ if (m_watchedTouches.count() == 0) {
722+ setInternalStatus(InternalStatus::WaitingForTouch);
723+ } else {
724+ setInternalStatus(InternalStatus::Rejected);
725+ }
726+}
727+
728+void TouchGestureArea::resyncCachedTouchPoints()
729+{
730+ clearTouchLists();
731+
732+ bool added = false;
733+ bool ended = false;
734+ bool moved = false;
735+ bool wantsDrag = false;
736+
737+ // list of deletes
738+ QMutableHashIterator<int, GestureTouchPoint*> removeIter(m_cachedTouchPoints);
739+ while(removeIter.hasNext()) {
740+ removeIter.next();
741+ if (!m_liveTouchPoints.contains(removeIter.key())) {
742+ m_releasedTouchPoints.append(removeIter.value());
743+ removeIter.remove();
744+ ended = true;
745+ }
746+ }
747+
748+ // list of adds/moves
749+ Q_FOREACH(GestureTouchPoint* touchPoint, m_liveTouchPoints) {
750+ if (m_cachedTouchPoints.contains(touchPoint->id())) {
751+ GestureTouchPoint* cachedPoint = m_cachedTouchPoints[touchPoint->id()];
752+
753+ if (*cachedPoint != *touchPoint) {
754+ *cachedPoint = *touchPoint;
755+ m_movedTouchPoints.append(touchPoint);
756+ moved = true;
757+ }
758+ } else {
759+ m_cachedTouchPoints.insert(touchPoint->id(), new GestureTouchPoint(*touchPoint));
760+ m_pressedTouchPoints.append(touchPoint);
761+ added = true;
762+ }
763+ }
764+
765+ if (wantsDrag && !dragging()) {
766+ setDragging(true);
767+ }
768+
769+ if (ended) {
770+ if (m_cachedTouchPoints.isEmpty()) {
771+ if (!dragging()) Q_EMIT clicked();
772+ setDragging(false);
773+ }
774+ tgaDebug("Cached Release " << touchesString(m_releasedTouchPoints));
775+ Q_EMIT released(m_releasedTouchPoints);
776+ }
777+ if (added) {
778+ tgaDebug("Cached Press " << touchesString(m_pressedTouchPoints));
779+ Q_EMIT pressed(m_pressedTouchPoints);
780+ }
781+ if (moved) {
782+ tgaDebug("Cached Update " << touchesString(m_movedTouchPoints));
783+ Q_EMIT updated(m_movedTouchPoints);
784+ }
785+ if (added || ended || moved) Q_EMIT touchPointsUpdated();
786+}
787+
788+int TouchGestureArea::touchPoint_count(QQmlListProperty<GestureTouchPoint> *list)
789+{
790+ TouchGestureArea *q = static_cast<TouchGestureArea*>(list->object);
791+ return q->m_cachedTouchPoints.count();
792+}
793+
794+GestureTouchPoint *TouchGestureArea::touchPoint_at(QQmlListProperty<GestureTouchPoint> *list, int index)
795+{
796+ TouchGestureArea *q = static_cast<TouchGestureArea*>(list->object);
797+ return (q->m_cachedTouchPoints.begin()+index).value();
798+}
799+
800+GestureTouchPoint* TouchGestureArea::addTouchPoint(QTouchEvent::TouchPoint const* tp)
801+{
802+ GestureTouchPoint* gtp = new GestureTouchPoint();
803+ gtp->setId(tp->id());
804+ gtp->setPressed(true);
805+ gtp->setPos(tp->pos());
806+ m_liveTouchPoints.insert(tp->id(), gtp);
807+ return gtp;
808+}
809+
810+void TouchGestureArea::itemChange(ItemChange change, const ItemChangeData &value)
811+{
812+ if (change == QQuickItem::ItemSceneChange) {
813+ if (value.window != nullptr) {
814+ value.window->installEventFilter(TouchRegistry::instance());
815+ }
816+ }
817+}
818+
819+void TouchGestureArea::setDragging(bool dragging)
820+{
821+ if (m_dragging == dragging)
822+ return;
823+
824+ tgaDebug("setDragging " << dragging);
825+
826+ m_dragging = dragging;
827+ Q_EMIT draggingChanged(m_dragging);
828+}
829+
830+void GestureTouchPoint::setId(int id)
831+{
832+ if (m_id == id)
833+ return;
834+ m_id = id;
835+ Q_EMIT idChanged();
836+}
837+
838+void GestureTouchPoint::setPressed(bool pressed)
839+{
840+ if (m_pressed == pressed)
841+ return;
842+ m_pressed = pressed;
843+ Q_EMIT pressedChanged();
844+}
845+
846+void GestureTouchPoint::setX(qreal x)
847+{
848+ if (m_x == x)
849+ return;
850+ m_x = x;
851+ Q_EMIT xChanged();
852+}
853+
854+void GestureTouchPoint::setY(qreal y)
855+{
856+ if (m_y == y)
857+ return;
858+ m_y = y;
859+ Q_EMIT yChanged();
860+}
861+
862+void GestureTouchPoint::setDragging(bool dragging)
863+{
864+ if (m_dragging == dragging)
865+ return;
866+
867+ m_dragging = dragging;
868+ Q_EMIT draggingChanged();
869+}
870+
871+void GestureTouchPoint::setPos(const QPointF &pos)
872+{
873+ setX(pos.x());
874+ setY(pos.y());
875+}
plugins/Ubuntu/Gestures/TouchGestureArea.hnew file+229
@@ -0,0 +1,229 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef TOUCHGESTUREAREA_H
18+#define TOUCHGESTUREAREA_H
19+
20+#include "UbuntuGesturesQmlGlobal.h"
21+
22+#include <QQuickItem>
23+
24+// lib UbuntuGestures
25+#include <Timer.h>
26+
27+class TouchOwnershipEvent;
28+class UnownedTouchEvent;
29+
30+class GestureTouchPoint : public QObject
31+{
32+ Q_OBJECT
33+ Q_PROPERTY(int id READ id NOTIFY idChanged)
34+ Q_PROPERTY(bool pressed READ pressed NOTIFY pressedChanged)
35+ Q_PROPERTY(qreal x READ x NOTIFY xChanged)
36+ Q_PROPERTY(qreal y READ y NOTIFY yChanged)
37+ Q_PROPERTY(bool dragging READ dragging NOTIFY draggingChanged)
38+public:
39+ GestureTouchPoint()
40+ : m_id(-1)
41+ , m_pressed(false)
42+ , m_x(0)
43+ , m_y(0)
44+ , m_dragging(false)
45+ {
46+ }
47+
48+ GestureTouchPoint(const GestureTouchPoint& other)
49+ : QObject(nullptr)
50+ {
51+ operator=(other);
52+ }
53+
54+ int id() const { return m_id; }
55+ void setId(int id);
56+
57+ bool pressed() const { return m_pressed; }
58+ void setPressed(bool pressed);
59+
60+ qreal x() const { return m_x; }
61+ void setX(qreal x);
62+
63+ qreal y() const { return m_y; }
64+ void setY(qreal y);
65+
66+ bool dragging() const { return m_dragging; }
67+ void setDragging(bool dragging);
68+
69+ GestureTouchPoint& operator=(const GestureTouchPoint& rhs) {
70+ if (&rhs == this) return *this;
71+ m_id = rhs.m_id;
72+ m_pressed = rhs.m_pressed;
73+ m_x = rhs.m_x;
74+ m_y = rhs.m_y;
75+ m_dragging = rhs.m_dragging;
76+ return *this;
77+ }
78+
79+ bool operator=(const GestureTouchPoint& rhs) const {
80+ if (&rhs == this) return true;
81+ return m_id == rhs.m_id &&
82+ m_pressed == rhs.m_pressed &&
83+ m_x == rhs.m_x &&
84+ m_y == rhs.m_y &&
85+ m_dragging == rhs.m_dragging;
86+ }
87+ bool operator!=(const GestureTouchPoint& rhs) const { return !operator=(rhs); }
88+
89+ void setPos(const QPointF &pos);
90+
91+Q_SIGNALS:
92+ void idChanged();
93+ void pressedChanged();
94+ void xChanged();
95+ void yChanged();
96+ void draggingChanged();
97+
98+private:
99+ int m_id;
100+ bool m_pressed;
101+ qreal m_x;
102+ qreal m_y;
103+ bool m_dragging;
104+};
105+
106+/*
107+ An area that detects multi-finger gestures.
108+
109+ We can use this to detect gestures contstrained by a minimim and/or maximum number of touch points.
110+ This components uses the touch registry to apply for ownership of touch points.
111+ This way we can use the component in conjuntion with the directional drag area to compete for ownwership
112+ or gestures; unlike the MultiPointTouchArea.
113+ */
114+class UBUNTUGESTURESQML_EXPORT TouchGestureArea : public QQuickItem
115+{
116+ Q_OBJECT
117+ Q_ENUMS(Status)
118+
119+ Q_PROPERTY(int status READ status NOTIFY statusChanged)
120+ Q_PROPERTY(bool dragging READ dragging NOTIFY draggingChanged)
121+ Q_PROPERTY(QQmlListProperty<GestureTouchPoint> touchPoints READ touchPoints NOTIFY touchPointsUpdated)
122+
123+ Q_PROPERTY(int minimumTouchPoints READ minimumTouchPoints WRITE setMinimumTouchPoints NOTIFY minimumTouchPointsChanged)
124+ Q_PROPERTY(int maximumTouchPoints READ maximumTouchPoints WRITE setMaximumTouchPoints NOTIFY maximumTouchPointsChanged)
125+
126+ // Time(ms) the component will wait for after receiving an initial touch to recognise a gesutre before rejecting it.
127+ Q_PROPERTY(int recognitionPeriod READ recognitionPeriod WRITE setRecognitionPeriod NOTIFY recognitionPeriodChanged)
128+ // Time(ms) the component will allow a recognised gesture to intermitently release a touch point before rejecting the gesture.
129+ // This is so we will not immediately reject a gesture if there are fleeting touch point releases while dragging.
130+ Q_PROPERTY(int releaseRejectPeriod READ releaseRejectPeriod WRITE setReleaseRejectPeriod NOTIFY releaseRejectPeriodChanged)
131+
132+public:
133+ // Describes the state of the touch gesture area.
134+ enum Status {
135+ WaitingForTouch,
136+ Undecided,
137+ Recognized,
138+ Rejected
139+ };
140+ TouchGestureArea(QQuickItem* parent = NULL);
141+ ~TouchGestureArea();
142+
143+ bool event(QEvent *e) override;
144+
145+ void setRecognitionTimer(UbuntuGestures::AbstractTimer *timer);
146+
147+ int status() const;
148+ bool dragging() const;
149+ QQmlListProperty<GestureTouchPoint> touchPoints();
150+
151+ int minimumTouchPoints() const;
152+ void setMinimumTouchPoints(int value);
153+
154+ int maximumTouchPoints() const;
155+ void setMaximumTouchPoints(int value);
156+
157+ int recognitionPeriod() const;
158+ void setRecognitionPeriod(int value);
159+
160+ int releaseRejectPeriod() const;
161+ void setReleaseRejectPeriod(int value);
162+
163+Q_SIGNALS:
164+ void statusChanged(int status);
165+
166+ void touchPointsUpdated();
167+ void draggingChanged(bool dragging);
168+ void minimumTouchPointsChanged(bool value);
169+ void maximumTouchPointsChanged(bool value);
170+ void recognitionPeriodChanged(bool value);
171+ void releaseRejectPeriodChanged(bool value);
172+
173+ void pressed(const QList<QObject*>& points);
174+ void released(const QList<QObject*>& points);
175+ void updated(const QList<QObject*>& points);
176+ void clicked();
177+
178+protected:
179+ void itemChange(ItemChange change, const ItemChangeData &value);
180+
181+private Q_SLOTS:
182+ void rejectGesture();
183+
184+private:
185+ void touchEvent(QTouchEvent *event) override;
186+ void touchEvent_waitingForTouch(QTouchEvent *event);
187+ void touchEvent_waitingForMoreTouches(QTouchEvent *event);
188+ void touchEvent_waitingForOwnership(QTouchEvent *event);
189+ void touchEvent_recognized(QTouchEvent *event);
190+ void touchEvent_rejected(QTouchEvent *event);
191+
192+ void unownedTouchEvent(QTouchEvent *unownedTouchEvent);
193+ void unownedTouchEvent_waitingForMoreTouches(QTouchEvent *unownedTouchEvent);
194+ void unownedTouchEvent_waitingForOwnership(QTouchEvent *unownedTouchEvent);
195+ void unownedTouchEvent_recognised(QTouchEvent *unownedTouchEvent);
196+ void unownedTouchEvent_rejected(QTouchEvent *unownedTouchEvent);
197+
198+ void touchOwnershipEvent(TouchOwnershipEvent *event);
199+ void updateTouchPoints(QTouchEvent *event);
200+
201+ GestureTouchPoint* addTouchPoint(const QTouchEvent::TouchPoint *tp);
202+ void clearTouchLists();
203+ void setDragging(bool dragging);
204+ void setInternalStatus(uint status);
205+ void resyncCachedTouchPoints();
206+
207+ static int touchPoint_count(QQmlListProperty<GestureTouchPoint> *list);
208+ static GestureTouchPoint* touchPoint_at(QQmlListProperty<GestureTouchPoint> *list, int index);
209+
210+ uint m_status;
211+ QSet<int> m_candidateTouches;
212+ QSet<int> m_watchedTouches;
213+ UbuntuGestures::AbstractTimer *m_recognitionTimer;
214+
215+ bool m_dragging;
216+ QHash<int, GestureTouchPoint*> m_liveTouchPoints;
217+ QHash<int, GestureTouchPoint*> m_cachedTouchPoints;
218+ QList<QObject*> m_releasedTouchPoints;
219+ QList<QObject*> m_pressedTouchPoints;
220+ QList<QObject*> m_movedTouchPoints;
221+ int m_minimumTouchPoints;
222+ int m_maximumTouchPoints;
223+ int m_recognitionPeriod;
224+ int m_releaseRejectPeriod;
225+};
226+
227+QML_DECLARE_TYPE(GestureTouchPoint)
228+
229+#endif // TOUCHGESTUREAREA_H
plugins/Ubuntu/Gestures/plugin.cpp+3
@@ -21,6 +21,7 @@
21#include "FloatingFlickable.h"
21#include "FloatingFlickable.h"
22#include "PressedOutsideNotifier.h"
22#include "PressedOutsideNotifier.h"
23#include "TouchGate.h"
23#include "TouchGate.h"
24+#include "TouchGestureArea.h"
24
25
25#include <qqml.h>
26#include <qqml.h>
26
27
@@ -38,4 +39,6 @@ void UbuntuGesturesQmlPlugin::registerTypes(const char *uri)
38 qmlRegisterType<FloatingFlickable>(uri, 0, 1, "FloatingFlickable");
39 qmlRegisterType<FloatingFlickable>(uri, 0, 1, "FloatingFlickable");
39 qmlRegisterType<PressedOutsideNotifier>(uri, 0, 1, "PressedOutsideNotifier");
40 qmlRegisterType<PressedOutsideNotifier>(uri, 0, 1, "PressedOutsideNotifier");
40 qmlRegisterType<TouchGate>(uri, 0, 1, "TouchGate");
41 qmlRegisterType<TouchGate>(uri, 0, 1, "TouchGate");
42+ qmlRegisterType<TouchGestureArea>(uri, 0, 1, "TouchGestureArea");
43+ qmlRegisterUncreatableType<GestureTouchPoint>(uri, 0, 1, "GestureTouchPoint", "Cannot create GestureTouchPoints");
41}
44}
plugins/Unity/Indicators/indicatorsmanager.cpp+3−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
@@ -12,8 +12,6 @@
12 *
12 *
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− *
16− * Author: Nick Dedekind <nick.dedekind@canonical.com>
17 */
15 */
18
16
19#include "indicatorsmanager.h"
17#include "indicatorsmanager.h"
@@ -286,12 +284,12 @@ Indicator::Ptr IndicatorsManager::indicator(const QString& indicator_name)
286 new_indicator->init(data->m_fileInfo.fileName(), settings);
284 new_indicator->init(data->m_fileInfo.fileName(), settings);
287
285
288 // convergence:
286 // convergence:
289− // 1) enable session indicator conditionally, typically when running in a multisession/multiuser environment
287+ // 1) enable session indicator
290 // 2) on a PC, switch the battery/power indicator to desktop mode,
288 // 2) on a PC, switch the battery/power indicator to desktop mode,
291 // can't control brightness for now and phone-on-desktop broken (FIXME)
289 // can't control brightness for now and phone-on-desktop broken (FIXME)
292 //
290 //
293 // The rest of the indicators respect their default profile (which is "phone", even on desktop PCs)
291 // The rest of the indicators respect their default profile (which is "phone", even on desktop PCs)
294− if ((new_indicator->identifier() == QStringLiteral("indicator-session") && m_platform.isMultiSession())
292+ if ((new_indicator->identifier() == QStringLiteral("indicator-session"))
295 || (new_indicator->identifier() == QStringLiteral("indicator-power") && m_platform.isPC())) {
293 || (new_indicator->identifier() == QStringLiteral("indicator-power") && m_platform.isPC())) {
296 new_indicator->setProfile(QStringLiteral("desktop"));
294 new_indicator->setProfile(QStringLiteral("desktop"));
297 } else {
295 } else {
plugins/Unity/InputInfo/InputInfo.qmltypesnew file+71
@@ -0,0 +1,71 @@
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/Launcher/CMakeLists.txt+2
@@ -7,6 +7,7 @@ include_directories(
7 ${CMAKE_CURRENT_SOURCE_DIR}
7 ${CMAKE_CURRENT_SOURCE_DIR}
8 ${CMAKE_SOURCE_DIR}/plugins/AccountsService
8 ${CMAKE_SOURCE_DIR}/plugins/AccountsService
9 ${GSETTINGS_QT_INCLUDE_DIRS}
9 ${GSETTINGS_QT_INCLUDE_DIRS}
10+ ${GLIB_INCLUDE_DIRS}
10 ${libunity8-private_SOURCE_DIR}
11 ${libunity8-private_SOURCE_DIR}
11)
12)
12
13
@@ -34,6 +35,7 @@ add_library(UnityLauncher-qml MODULE
34target_link_libraries(UnityLauncher-qml
35target_link_libraries(UnityLauncher-qml
35 unity8-private
36 unity8-private
36 ${GSETTINGS_QT_LDFLAGS}
37 ${GSETTINGS_QT_LDFLAGS}
38+ ${GLIB_LIBRARIES}
37 )
39 )
38
40
39qt5_use_modules(UnityLauncher-qml DBus Qml Gui)
41qt5_use_modules(UnityLauncher-qml DBus Qml Gui)
plugins/Unity/Launcher/asadapter.cpp+6−2
@@ -18,14 +18,18 @@
18#include "launcheritem.h"
18#include "launcheritem.h"
19#include "AccountsServiceDBusAdaptor.h"
19#include "AccountsServiceDBusAdaptor.h"
20
20
21+#include <glib.h>
22+
21#include <QDebug>
23#include <QDebug>
22
24
23ASAdapter::ASAdapter()
25ASAdapter::ASAdapter()
24{
26{
25 m_accounts = new AccountsServiceDBusAdaptor();
27 m_accounts = new AccountsServiceDBusAdaptor();
26− m_user = qgetenv("USER");
28+
29+ m_user = QString::fromUtf8(g_get_user_name());
30+
27 if (m_user.isEmpty()) {
31 if (m_user.isEmpty()) {
28− qWarning() << "$USER not valid. Account Service integration will not work.";
32+ qWarning() << "username not valid. Account Service integration will not work.";
29 }
33 }
30}
34}
31
35
plugins/Unity/Platform/Platform.qmltypesnew file+20
@@ -0,0 +1,20 @@
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
@@ -2,6 +2,7 @@ include_directories(
2 ${CMAKE_CURRENT_SOURCE_DIR}
2 ${CMAKE_CURRENT_SOURCE_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
4 ${GIO_INCLUDE_DIRS}
4 ${GIO_INCLUDE_DIRS}
5+ ${GLIB_INCLUDE_DIRS}
5 ${libunity8-private_SOURCE_DIR}
6 ${libunity8-private_SOURCE_DIR}
6)
7)
7
8
@@ -19,6 +20,7 @@ qt5_use_modules(UnitySession-qml DBus Qml)
19target_link_libraries(UnitySession-qml
20target_link_libraries(UnitySession-qml
20 unity8-private
21 unity8-private
21 ${GIO_LDFLAGS}
22 ${GIO_LDFLAGS}
23+ ${GLIB_LIBRARIES}
22 )
24 )
23
25
24# export the qmldir and qmltypes files
26# export the qmldir and qmltypes files
plugins/Unity/Session/dbusunitysessionservice.cpp+8−7
@@ -30,6 +30,9 @@
30#include <QDateTime>
30#include <QDateTime>
31#include <QDBusUnixFileDescriptor>
31#include <QDBusUnixFileDescriptor>
32
32
33+// Glib
34+#include <glib.h>
35+
33#define LOGIN1_SERVICE QStringLiteral("org.freedesktop.login1")
36#define LOGIN1_SERVICE QStringLiteral("org.freedesktop.login1")
34#define LOGIN1_PATH QStringLiteral("/org/freedesktop/login1")
37#define LOGIN1_PATH QStringLiteral("/org/freedesktop/login1")
35#define LOGIN1_IFACE QStringLiteral("org.freedesktop.login1.Manager")
38#define LOGIN1_IFACE QStringLiteral("org.freedesktop.login1.Manager")
@@ -295,12 +298,7 @@ bool DBusUnitySessionService::CanLock() const
295
298
296QString DBusUnitySessionService::UserName() const
299QString DBusUnitySessionService::UserName() const
297{
300{
298− struct passwd *p = getpwuid(geteuid());
299− if (p) {
300− return QString::fromUtf8(p->pw_name);
301+ return QString::fromUtf8(g_get_user_name());
301− }
302−
303− return QString();
304}
302}
305
303
306QString DBusUnitySessionService::RealName() const
304QString DBusUnitySessionService::RealName() const
@@ -336,6 +334,9 @@ void DBusUnitySessionService::PromptLock()
336
334
337void DBusUnitySessionService::Lock()
335void DBusUnitySessionService::Lock()
338{
336{
337+ // signal u8 to show the lockscreen/greeter
338+ PromptLock();
339+
339 // lock the session using the org.freedesktop.DisplayManager system DBUS service
340 // lock the session using the org.freedesktop.DisplayManager system DBUS service
340 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
341 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
341 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
342 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
@@ -348,7 +349,7 @@ void DBusUnitySessionService::Lock()
348 connect(watcher, &QDBusPendingCallWatcher::finished,
349 connect(watcher, &QDBusPendingCallWatcher::finished,
349 this, [this](QDBusPendingCallWatcher* watcher) {
350 this, [this](QDBusPendingCallWatcher* watcher) {
350
351
351− QDBusPendingReply<QVariant> reply = *watcher;
352+ QDBusPendingReply<void> reply = *watcher;
352 watcher->deleteLater();
353 watcher->deleteLater();
353 if (reply.isError()) {
354 if (reply.isError()) {
354 qWarning() << "Lock call failed" << reply.error().message();
355 qWarning() << "Lock call failed" << reply.error().message();
plugins/Utils/CMakeLists.txt+2−2
@@ -17,13 +17,13 @@ set(QMLPLUGIN_SRC
17 unitysortfilterproxymodelqml.cpp
17 unitysortfilterproxymodelqml.cpp
18 Timer.cpp
18 Timer.cpp
19 unitymenumodelpaths.cpp
19 unitymenumodelpaths.cpp
20− windowkeysfilter.cpp
20+ windowinputfilter.cpp
21− windowscreenshotprovider.cpp
22 easingcurve.cpp
21 easingcurve.cpp
23 windowstatestorage.cpp
22 windowstatestorage.cpp
24 timezoneFormatter.cpp
23 timezoneFormatter.cpp
25 inputeventgenerator.cpp
24 inputeventgenerator.cpp
26 deviceconfigparser.cpp
25 deviceconfigparser.cpp
26+ globalfunctions.cpp
27 plugin.cpp
27 plugin.cpp
28 )
28 )
29
29
plugins/Utils/Utils.qmltypes+2−2
@@ -147,10 +147,10 @@ Module {
147 }
147 }
148 }
148 }
149 Component {
149 Component {
150− name: "WindowKeysFilter"
150+ name: "WindowInputFilter"
151 defaultProperty: "data"
151 defaultProperty: "data"
152 prototype: "QQuickItem"
152 prototype: "QQuickItem"
153− exports: ["Utils/WindowKeysFilter 0.1"]
153+ exports: ["Utils/WindowInputFilter 0.1"]
154 exportMetaObjectRevisions: [0]
154 exportMetaObjectRevisions: [0]
155 }
155 }
156 Component {
156 Component {
plugins/Utils/deviceconfigparser.cpp+8
@@ -23,6 +23,7 @@
23
23
24DeviceConfigParser::DeviceConfigParser(QObject *parent): QObject(parent)
24DeviceConfigParser::DeviceConfigParser(QObject *parent): QObject(parent)
25{
25{
26+ // Local files have highest priority
26 QString path;
27 QString path;
27 Q_FOREACH (const QString &standardPath, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) {
28 Q_FOREACH (const QString &standardPath, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) {
28 if (QFileInfo(standardPath + "/devices.conf").exists()) {
29 if (QFileInfo(standardPath + "/devices.conf").exists()) {
@@ -31,9 +32,16 @@ DeviceConfigParser::DeviceConfigParser(QObject *parent): QObject(parent)
31 }
32 }
32 }
33 }
33
34
35+ // Check if there is an override in the device tarball (/system/etc/)
36+ if (path.isEmpty() && QFileInfo::exists("/system/etc/ubuntu/devices.conf")) {
37+ path = "/system/etc/ubuntu/devices.conf";
38+ }
39+
40+ // No higher priority files found. Use standard of /etc/
34 if (path.isEmpty()) {
41 if (path.isEmpty()) {
35 path = "/etc/ubuntu/devices.conf";
42 path = "/etc/ubuntu/devices.conf";
36 }
43 }
44+
37 qDebug() << "Using" << path << "as device configuration file";
45 qDebug() << "Using" << path << "as device configuration file";
38 m_config = new QSettings(path, QSettings::IniFormat, this);
46 m_config = new QSettings(path, QSettings::IniFormat, this);
39}
47}
plugins/Utils/deviceconfigparser.h+1
@@ -25,6 +25,7 @@ class DeviceConfigParser: public QObject
25 Q_OBJECT
25 Q_OBJECT
26 Q_PROPERTY(QString name READ name WRITE setName NOTIFY changed)
26 Q_PROPERTY(QString name READ name WRITE setName NOTIFY changed)
27
27
28+ // NOTE: When changing this properties, also update the examples in docs and data
28 Q_PROPERTY(Qt::ScreenOrientation primaryOrientation READ primaryOrientation NOTIFY changed)
29 Q_PROPERTY(Qt::ScreenOrientation primaryOrientation READ primaryOrientation NOTIFY changed)
29 Q_PROPERTY(Qt::ScreenOrientations supportedOrientations READ supportedOrientations NOTIFY changed)
30 Q_PROPERTY(Qt::ScreenOrientations supportedOrientations READ supportedOrientations NOTIFY changed)
30 Q_PROPERTY(Qt::ScreenOrientation landscapeOrientation READ landscapeOrientation NOTIFY changed)
31 Q_PROPERTY(Qt::ScreenOrientation landscapeOrientation READ landscapeOrientation NOTIFY changed)
plugins/Utils/globalfunctions.cppnew file+56
@@ -0,0 +1,56 @@
1+/*
2+ * Copyright 2015 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+*/
16+
17+#include "globalfunctions.h"
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>
24+
25+GlobalFunctions::GlobalFunctions(QObject *parent)
26+ : QObject(parent)
27+{
28+}
29+
30+QQuickItem *GlobalFunctions::itemAt(QQuickItem* parent, int x, int y, QJSValue matcher)
31+{
32+ if (!parent) return nullptr;
33+ QList<QQuickItem *> children = QQuickItemPrivate::get(parent)->paintOrderChildItems();
34+
35+ for (int i = children.count() - 1; i >= 0; --i) {
36+ QQuickItem *child = children.at(i);
37+
38+ // Map coordinates to the child element's coordinate space
39+ QPointF point = parent->mapToItem(child, QPointF(x, y));
40+ if (child->isVisible() && point.x() >= 0
41+ && child->width() >= point.x()
42+ && point.y() >= 0
43+ && child->height() >= point.y()) {
44+ if (!matcher.isCallable()) return child;
45+
46+ QQmlEngine* engine = qmlEngine(child);
47+ if (!engine) return child;
48+
49+ QJSValue newObj = engine->newQObject(child);
50+ if (matcher.call(QJSValueList() << newObj).toBool()) {
51+ return child;
52+ }
53+ }
54+ }
55+ return nullptr;
56+}
plugins/Utils/globalfunctions.hnew file+42
@@ -0,0 +1,42 @@
1+/*
2+ * Copyright 2015 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+*/
16+
17+#ifndef GLOBALFUNCTIONS_H
18+#define GLOBALFUNCTIONS_H
19+
20+#include <QObject>
21+#include <QJSValue>
22+class QQuickItem;
23+
24+/**
25+ * @brief The GlobalFunctions class
26+ *
27+ * This singleton class exposes utility functions to QML
28+ *
29+ */
30+class GlobalFunctions : public QObject
31+{
32+ Q_OBJECT
33+public:
34+ explicit GlobalFunctions(QObject *parent = 0);
35+
36+ static Q_INVOKABLE QQuickItem* itemAt(QQuickItem* parent,
37+ int x,
38+ int y,
39+ QJSValue matcher);
40+};
41+
42+#endif // GLOBALFUNCTIONS_H
plugins/Utils/plugin.cpp+11−10
@@ -30,14 +30,14 @@
30#include "qlimitproxymodelqml.h"
30#include "qlimitproxymodelqml.h"
31#include "unitysortfilterproxymodelqml.h"
31#include "unitysortfilterproxymodelqml.h"
32#include "unitymenumodelpaths.h"
32#include "unitymenumodelpaths.h"
33−#include "windowkeysfilter.h"
33+#include "windowinputfilter.h"
34−#include "windowscreenshotprovider.h"
35#include "windowstatestorage.h"
34#include "windowstatestorage.h"
36#include "constants.h"
35#include "constants.h"
37#include "timezoneFormatter.h"
36#include "timezoneFormatter.h"
38#include "applicationsfiltermodel.h"
37#include "applicationsfiltermodel.h"
39#include "inputeventgenerator.h"
38#include "inputeventgenerator.h"
40#include "deviceconfigparser.h"
39#include "deviceconfigparser.h"
40+#include "globalfunctions.h"
41
41
42static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
42static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
43{
43{
@@ -53,6 +53,13 @@ static QObject *createConstants(QQmlEngine *engine, QJSEngine *scriptEngine)
53 return new Constants();
53 return new Constants();
54}
54}
55
55
56+static QObject *createGlobalFunctions(QQmlEngine *engine, QJSEngine *scriptEngine)
57+{
58+ Q_UNUSED(engine)
59+ Q_UNUSED(scriptEngine)
60+ return new GlobalFunctions();
61+}
62+
56void UtilsPlugin::registerTypes(const char *uri)
63void UtilsPlugin::registerTypes(const char *uri)
57{
64{
58 Q_ASSERT(uri == QLatin1String("Utils"));
65 Q_ASSERT(uri == QLatin1String("Utils"));
@@ -61,7 +68,7 @@ void UtilsPlugin::registerTypes(const char *uri)
61 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1, "LimitProxyModel");
68 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1, "LimitProxyModel");
62 qmlRegisterType<UnitySortFilterProxyModelQML>(uri, 0, 1, "UnitySortFilterProxyModel");
69 qmlRegisterType<UnitySortFilterProxyModelQML>(uri, 0, 1, "UnitySortFilterProxyModel");
63 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
70 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
64− qmlRegisterType<WindowKeysFilter>(uri, 0, 1, "WindowKeysFilter");
71+ qmlRegisterType<WindowInputFilter>(uri, 0, 1, "WindowInputFilter");
65 qmlRegisterType<EasingCurve>(uri, 0, 1, "EasingCurve");
72 qmlRegisterType<EasingCurve>(uri, 0, 1, "EasingCurve");
66 qmlRegisterSingletonType<WindowStateStorage>(uri, 0, 1, "WindowStateStorage", createWindowStateStorage);
73 qmlRegisterSingletonType<WindowStateStorage>(uri, 0, 1, "WindowStateStorage", createWindowStateStorage);
67 qmlRegisterType<InputWatcher>(uri, 0, 1, "InputWatcher");
74 qmlRegisterType<InputWatcher>(uri, 0, 1, "InputWatcher");
@@ -72,11 +79,5 @@ void UtilsPlugin::registerTypes(const char *uri)
72 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
79 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
73 qmlRegisterType<InputEventGenerator>(uri, 0, 1, "InputEventGenerator");
80 qmlRegisterType<InputEventGenerator>(uri, 0, 1, "InputEventGenerator");
74 qmlRegisterType<DeviceConfigParser>(uri, 0, 1, "DeviceConfigParser");
81 qmlRegisterType<DeviceConfigParser>(uri, 0, 1, "DeviceConfigParser");
75−}
82+ qmlRegisterSingletonType<GlobalFunctions>(uri, 0, 1, "Functions", createGlobalFunctions);
76−
77−void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
78−{
79− QQmlExtensionPlugin::initializeEngine(engine, uri);
80−
81− engine->addImageProvider(QStringLiteral("window"), new WindowScreenshotProvider);
82}
83}
plugins/Utils/plugin.h−1
@@ -29,7 +29,6 @@ class UtilsPlugin : public QQmlExtensionPlugin
29
29
30public:
30public:
31 void registerTypes(const char *uri) override;
31 void registerTypes(const char *uri) override;
32− void initializeEngine(QQmlEngine *engine, const char *uri) override;
33};
32};
34
33
35#endif
34#endif
plugins/Utils/timezoneFormatter.cpp+10
@@ -33,3 +33,13 @@ QString TimezoneFormatter::currentTimeInTimezone(const QVariant &tzId) const
33 }
33 }
34 return QString();
34 return QString();
35}
35}
36+
37+QString TimezoneFormatter::currentTimeInTimezoneWithAbbrev(const QVariant &tzId) const
38+{
39+ QTimeZone tz(tzId.toByteArray());
40+ if (tz.isValid()) {
41+ const QDateTime now = QDateTime::currentDateTime().toTimeZone(tz);
42+ return QStringLiteral("%1 %2").arg(now.time().toString(QStringLiteral("h:mm"))).arg(tz.abbreviation(now));
43+ }
44+ return QString();
45+}
plugins/Utils/timezoneFormatter.h+1
@@ -27,6 +27,7 @@ public:
27 ~TimezoneFormatter() = default;
27 ~TimezoneFormatter() = default;
28
28
29 Q_INVOKABLE QString currentTimeInTimezone(const QVariant &tzId) const;
29 Q_INVOKABLE QString currentTimeInTimezone(const QVariant &tzId) const;
30+ Q_INVOKABLE QString currentTimeInTimezoneWithAbbrev(const QVariant &tzId) const;
30};
31};
31
32
32#endif
33#endif
plugins/Utils/windowkeysfilter.cpp → plugins/Utils/windowinputfilter.cpprenamed+14−16
@@ -16,36 +16,34 @@
16 * Author: Daniel d'Andrada <daniel.dandrada@canonical.com>
16 * Author: Daniel d'Andrada <daniel.dandrada@canonical.com>
17 */
17 */
18
18
19−#include "windowkeysfilter.h"
19+#include "windowinputfilter.h"
20
20
21#include <QQuickWindow>
21#include <QQuickWindow>
22
22
23−WindowKeysFilter::WindowKeysFilter(QQuickItem *parent)
23+WindowInputFilter::WindowInputFilter(QQuickItem *parent)
24 : QQuickItem(parent),
24 : QQuickItem(parent),
25− m_currentEventTimestamp(0)
25+ m_lastInputTimestamp(0)
26{
26{
27 connect(this, &QQuickItem::windowChanged,
27 connect(this, &QQuickItem::windowChanged,
28− this, &WindowKeysFilter::setupFilterOnWindow);
28+ this, &WindowInputFilter::setupFilterOnWindow);
29}
29}
30
30
31−bool WindowKeysFilter::eventFilter(QObject *watched, QEvent *event)
31+bool WindowInputFilter::eventFilter(QObject *watched, QEvent *event)
32{
32{
33 Q_ASSERT(!m_filteredWindow.isNull());
33 Q_ASSERT(!m_filteredWindow.isNull());
34 Q_ASSERT(watched == static_cast<QObject*>(m_filteredWindow.data()));
34 Q_ASSERT(watched == static_cast<QObject*>(m_filteredWindow.data()));
35 Q_UNUSED(watched);
35 Q_UNUSED(watched);
36
36
37+ QInputEvent *inputEvent = dynamic_cast<QInputEvent*>(event);
38+ if (inputEvent) {
39+ m_lastInputTimestamp = inputEvent->timestamp();
40+ Q_EMIT lastInputTimestampChanged();
41+ }
42+
37 if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) {
43 if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) {
38 // Let QML see this event and decide if it does not want it
44 // Let QML see this event and decide if it does not want it
39 event->accept();
45 event->accept();
40−
41− m_currentEventTimestamp = static_cast<QInputEvent*>(event)->timestamp();
42− Q_EMIT currentEventTimestampChanged();
43−
44 QCoreApplication::sendEvent(this, event);
46 QCoreApplication::sendEvent(this, event);
45−
46− m_currentEventTimestamp = 0;
47− Q_EMIT currentEventTimestampChanged();
48−
49 return event->isAccepted();
47 return event->isAccepted();
50 } else {
48 } else {
51 // Not interested
49 // Not interested
@@ -53,7 +51,7 @@ bool WindowKeysFilter::eventFilter(QObject *watched, QEvent *event)
53 }
51 }
54}
52}
55
53
56−void WindowKeysFilter::setupFilterOnWindow(QQuickWindow *window)
54+void WindowInputFilter::setupFilterOnWindow(QQuickWindow *window)
57{
55{
58 if (!m_filteredWindow.isNull()) {
56 if (!m_filteredWindow.isNull()) {
59 m_filteredWindow->removeEventFilter(this);
57 m_filteredWindow->removeEventFilter(this);
@@ -66,7 +64,7 @@ void WindowKeysFilter::setupFilterOnWindow(QQuickWindow *window)
66 }
64 }
67}
65}
68
66
69−ulong WindowKeysFilter::currentEventTimestamp() const
67+ulong WindowInputFilter::lastInputTimestamp() const
70{
68{
71− return m_currentEventTimestamp;
69+ return m_lastInputTimestamp;
72}
70}
plugins/Utils/windowkeysfilter.h → plugins/Utils/windowinputfilter.hrenamed+11−11
@@ -16,8 +16,8 @@
16 * Author: Daniel d'Andrada <daniel.dandrada@canonical.com>
16 * Author: Daniel d'Andrada <daniel.dandrada@canonical.com>
17 */
17 */
18
18
19−#ifndef UNITY_WINDOWKEYSFILTER_H
19+#ifndef UNITY_WINDOWINPUTFILTER_H
20−#define UNITY_WINDOWKEYSFILTER_H
20+#define UNITY_WINDOWINPUTFILTER_H
21
21
22#include <QQuickItem>
22#include <QQuickItem>
23#include <QPointer>
23#include <QPointer>
@@ -29,30 +29,30 @@
29 accepted ones will be filtered out. Events are accepted by default, so make sure you reject
29 accepted ones will be filtered out. Events are accepted by default, so make sure you reject
30 the keys you're not interested in.
30 the keys you're not interested in.
31
31
32− If more than one WindowKeysFilter exist in the same QML scene (and thus in the same QQuickWindow)
32+ If more than one WindowInputFilter exist in the same QML scene (and thus in the same QQuickWindow)
33 they will be called in the order of creation, which can be tricky to assess. So the best practice
33 they will be called in the order of creation, which can be tricky to assess. So the best practice
34− is to have at most one WindowKeysFilter per QML scene.
34+ is to have at most one WindowInputFilter per QML scene.
35 */
35 */
36−class WindowKeysFilter : public QQuickItem
36+class WindowInputFilter : public QQuickItem
37{
37{
38 Q_OBJECT
38 Q_OBJECT
39− Q_PROPERTY(ulong currentEventTimestamp READ currentEventTimestamp NOTIFY currentEventTimestampChanged)
39+ Q_PROPERTY(ulong lastInputTimestamp READ lastInputTimestamp NOTIFY lastInputTimestampChanged)
40public:
40public:
41− WindowKeysFilter(QQuickItem *parent = 0);
41+ WindowInputFilter(QQuickItem *parent = 0);
42
42
43 bool eventFilter(QObject *watched, QEvent *event) override;
43 bool eventFilter(QObject *watched, QEvent *event) override;
44
44
45− ulong currentEventTimestamp() const;
45+ ulong lastInputTimestamp() const;
46
46
47Q_SIGNALS:
47Q_SIGNALS:
48− void currentEventTimestampChanged();
48+ void lastInputTimestampChanged();
49
49
50private Q_SLOTS:
50private Q_SLOTS:
51 void setupFilterOnWindow(QQuickWindow *window);
51 void setupFilterOnWindow(QQuickWindow *window);
52
52
53private:
53private:
54 QPointer<QQuickWindow> m_filteredWindow;
54 QPointer<QQuickWindow> m_filteredWindow;
55− ulong m_currentEventTimestamp;
55+ ulong m_lastInputTimestamp;
56};
56};
57
57
58−#endif // UNITY_WINDOWKEYSFILTER_H
58+#endif // UNITY_WINDOWINPUTFILTER_H
plugins/Utils/windowscreenshotprovider.cppdeleted−59
@@ -1,59 +0,0 @@
1−/*
2− * Copyright (C) 2015 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#include "windowscreenshotprovider.h"
18−
19−#include <QGuiApplication>
20−#include <QQuickWindow>
21−
22−WindowScreenshotProvider::WindowScreenshotProvider()
23− : QQuickImageProvider(QQmlImageProviderBase::Image, 0)
24−{
25−}
26−
27−// A very simple implementation where we assume that there's only one window and that it's a
28−// QQuickWindow. Thus the id parameter is irrelevant.
29−//
30−// Idea: Make the id contain the objectName of the QQuickWindow once we care about a multi-display
31−// compositor?
32−// Strictly speaking that could be the actual QWindow::winId(), but that's mostly a
33−// meaningless arbitrary number.
34−QImage WindowScreenshotProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize)
35−{
36− Q_UNUSED(id);
37− Q_UNUSED(requestedSize);
38−
39− QWindowList windows = QGuiApplication::topLevelWindows();
40−
41− if (windows.count() != 1) {
42− size->rwidth() = 0;
43− size->rheight() = 0;
44− return QImage();
45− }
46−
47− QQuickWindow *quickWindow = qobject_cast<QQuickWindow *>(windows[0]);
48−
49− if (!quickWindow) {
50− size->rwidth() = 0;
51− size->rheight() = 0;
52− return QImage();
53− }
54−
55− QImage image = quickWindow->grabWindow();
56− size->rwidth() = image.width();
57− size->rheight() = image.height();
58− return image;
59−}
plugins/Utils/windowstatestorage.cpp+36−4
@@ -23,9 +23,14 @@
23#include <QSqlError>
23#include <QSqlError>
24#include <QSqlResult>
24#include <QSqlResult>
25#include <QRect>
25#include <QRect>
26+#include <unity/shell/application/ApplicationInfoInterface.h>
26
27
27QMutex WindowStateStorage::s_mutex;
28QMutex WindowStateStorage::s_mutex;
28
29
30+inline QString sanitiseString(QString string) {
31+ return string.remove("\"").remove("'").remove("\\");
32+}
33+
29WindowStateStorage::WindowStateStorage(QObject *parent):
34WindowStateStorage::WindowStateStorage(QObject *parent):
30 QObject(parent)
35 QObject(parent)
31{
36{
@@ -50,7 +55,7 @@ WindowStateStorage::~WindowStateStorage()
50void WindowStateStorage::saveState(const QString &windowId, WindowStateStorage::WindowState state)
55void WindowStateStorage::saveState(const QString &windowId, WindowStateStorage::WindowState state)
51{
56{
52 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO state (windowId, state) values ('%1', '%2');")
57 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO state (windowId, state) values ('%1', '%2');")
53− .arg(windowId)
58+ .arg(sanitiseString(windowId))
54 .arg((int)state);
59 .arg((int)state);
55
60
56 saveValue(queryString);
61 saveValue(queryString);
@@ -59,7 +64,7 @@ void WindowStateStorage::saveState(const QString &windowId, WindowStateStorage::
59WindowStateStorage::WindowState WindowStateStorage::getState(const QString &windowId, WindowStateStorage::WindowState defaultValue) const
64WindowStateStorage::WindowState WindowStateStorage::getState(const QString &windowId, WindowStateStorage::WindowState defaultValue) const
60{
65{
61 const QString queryString = QStringLiteral("SELECT * FROM state WHERE windowId = '%1';")
66 const QString queryString = QStringLiteral("SELECT * FROM state WHERE windowId = '%1';")
62− .arg(windowId);
67+ .arg(sanitiseString(windowId));
63
68
64 QSqlQuery query = getValue(queryString);
69 QSqlQuery query = getValue(queryString);
65
70
@@ -72,7 +77,7 @@ WindowStateStorage::WindowState WindowStateStorage::getState(const QString &wind
72void WindowStateStorage::saveGeometry(const QString &windowId, const QRect rect)
77void WindowStateStorage::saveGeometry(const QString &windowId, const QRect rect)
73{
78{
74 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO geometry (windowId, x, y, width, height) values ('%1', '%2', '%3', '%4', '%5');")
79 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO geometry (windowId, x, y, width, height) values ('%1', '%2', '%3', '%4', '%5');")
75− .arg(windowId)
80+ .arg(sanitiseString(windowId))
76 .arg(rect.x())
81 .arg(rect.x())
77 .arg(rect.y())
82 .arg(rect.y())
78 .arg(rect.width())
83 .arg(rect.width())
@@ -81,6 +86,28 @@ void WindowStateStorage::saveGeometry(const QString &windowId, const QRect rect)
81 saveValue(queryString);
86 saveValue(queryString);
82}
87}
83
88
89+void WindowStateStorage::saveStage(const QString &appId, int stage)
90+{
91+ const QString queryString = QStringLiteral("INSERT OR REPLACE INTO stage (appId, stage) values ('%1', '%2');")
92+ .arg(sanitiseString(appId))
93+ .arg((int)stage);
94+
95+ saveValue(queryString);
96+}
97+
98+int WindowStateStorage::getStage(const QString &appId) const
99+{
100+ const QString queryString = QStringLiteral("SELECT * FROM stage WHERE appId = '%1';")
101+ .arg(sanitiseString(appId));
102+
103+ QSqlQuery query = getValue(queryString);
104+
105+ if (!query.first()) {
106+ return unity::shell::application::ApplicationInfoInterface::MainStage;
107+ }
108+ return query.value("stage").toInt();
109+}
110+
84void WindowStateStorage::executeAsyncQuery(const QString &queryString)
111void WindowStateStorage::executeAsyncQuery(const QString &queryString)
85{
112{
86 QMutexLocker l(&s_mutex);
113 QMutexLocker l(&s_mutex);
@@ -97,7 +124,7 @@ void WindowStateStorage::executeAsyncQuery(const QString &queryString)
97QRect WindowStateStorage::getGeometry(const QString &windowId, const QRect defaultValue) const
124QRect WindowStateStorage::getGeometry(const QString &windowId, const QRect defaultValue) const
98{
125{
99 QString queryString = QStringLiteral("SELECT * FROM geometry WHERE windowId = '%1';")
126 QString queryString = QStringLiteral("SELECT * FROM geometry WHERE windowId = '%1';")
100− .arg(windowId);
127+ .arg(sanitiseString(windowId));
101
128
102 QSqlQuery query = getValue(queryString);
129 QSqlQuery query = getValue(queryString);
103
130
@@ -124,6 +151,11 @@ void WindowStateStorage::initdb()
124 QSqlQuery query;
151 QSqlQuery query;
125 query.exec(QStringLiteral("CREATE TABLE state(windowId TEXT UNIQUE, state INTEGER);"));
152 query.exec(QStringLiteral("CREATE TABLE state(windowId TEXT UNIQUE, state INTEGER);"));
126 }
153 }
154+
155+ if (!m_db.tables().contains(QStringLiteral("stage"))) {
156+ QSqlQuery query;
157+ query.exec(QStringLiteral("CREATE TABLE stage(appId TEXT UNIQUE, stage INTEGER);"));
158+ }
127}
159}
128
160
129void WindowStateStorage::saveValue(const QString &queryString)
161void WindowStateStorage::saveValue(const QString &queryString)
plugins/Utils/windowstatestorage.h+3
@@ -38,6 +38,9 @@ public:
38 Q_INVOKABLE void saveGeometry(const QString &windowId, const QRect rect);
38 Q_INVOKABLE void saveGeometry(const QString &windowId, const QRect rect);
39 Q_INVOKABLE QRect getGeometry(const QString &windowId, const QRect defaultValue) const;
39 Q_INVOKABLE QRect getGeometry(const QString &windowId, const QRect defaultValue) const;
40
40
41+ Q_INVOKABLE void saveStage(const QString &appId, int stage);
42+ Q_INVOKABLE int getStage(const QString &appId) const;
43+
41private:
44private:
42 void initdb();
45 void initdb();
43
46
plugins/WindowManager/CMakeLists.txtnew file+13
@@ -0,0 +1,13 @@
1+set(WINDOWMANAGER_SRC
2+ TopLevelSurfaceList.cpp
3+ WindowManagerPlugin.cpp
4+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
5+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h
6+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h
7+ )
8+
9+add_library(windowmanager-qml SHARED ${WINDOWMANAGER_SRC})
10+
11+qt5_use_modules(windowmanager-qml Qml Quick Gui)
12+
13+add_unity8_plugin(WindowManager 0.1 WindowManager TARGETS windowmanager-qml)
plugins/WindowManager/TopLevelSurfaceList.cppnew file+486
@@ -0,0 +1,486 @@
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 "TopLevelSurfaceList.h"
18+
19+// unity-api
20+#include <unity/shell/application/ApplicationInfoInterface.h>
21+#include <unity/shell/application/MirSurfaceInterface.h>
22+#include <unity/shell/application/MirSurfaceListInterface.h>
23+
24+#include <QMetaObject>
25+
26+Q_LOGGING_CATEGORY(UNITY_TOPSURFACELIST, "unity.topsurfacelist", QtDebugMsg)
27+
28+#define DEBUG_MSG qCDebug(UNITY_TOPSURFACELIST).nospace().noquote() << __func__
29+
30+using namespace unity::shell::application;
31+
32+TopLevelSurfaceList::TopLevelSurfaceList(QObject *parent) :
33+ QAbstractListModel(parent)
34+{
35+ DEBUG_MSG << "()";
36+}
37+
38+TopLevelSurfaceList::~TopLevelSurfaceList()
39+{
40+ DEBUG_MSG << "()";
41+}
42+
43+int TopLevelSurfaceList::rowCount(const QModelIndex &parent) const
44+{
45+ return !parent.isValid() ? m_surfaceList.size() : 0;
46+}
47+
48+QVariant TopLevelSurfaceList::data(const QModelIndex& index, int role) const
49+{
50+ if (index.row() < 0 || index.row() >= m_surfaceList.size())
51+ return QVariant();
52+
53+ if (role == SurfaceRole) {
54+ MirSurfaceInterface *surface = m_surfaceList.at(index.row()).surface;
55+ return QVariant::fromValue(surface);
56+ } else if (role == ApplicationRole) {
57+ return QVariant::fromValue(m_surfaceList.at(index.row()).application);
58+ } else if (role == IdRole) {
59+ return QVariant::fromValue(m_surfaceList.at(index.row()).id);
60+ } else {
61+ return QVariant();
62+ }
63+}
64+
65+void TopLevelSurfaceList::raise(MirSurfaceInterface *surface)
66+{
67+ if (!surface)
68+ return;
69+
70+ DEBUG_MSG << "(MirSurface[" << (void*)surface << "])";
71+
72+ int i = indexOf(surface);
73+ if (i != -1) {
74+ raiseId(m_surfaceList.at(i).id);
75+ }
76+}
77+
78+void TopLevelSurfaceList::appendPlaceholder(ApplicationInfoInterface *application)
79+{
80+ DEBUG_MSG << "(" << application->appId() << ")";
81+
82+ appendSurfaceHelper(nullptr, application);
83+}
84+
85+void TopLevelSurfaceList::appendSurface(MirSurfaceInterface *surface, ApplicationInfoInterface *application)
86+{
87+ Q_ASSERT(surface != nullptr);
88+
89+ bool filledPlaceholder = false;
90+ for (int i = 0; i < m_surfaceList.count() && !filledPlaceholder; ++i) {
91+ ModelEntry &entry = m_surfaceList[i];
92+ if (entry.application == application && entry.surface == nullptr) {
93+ entry.surface = surface;
94+ connectSurface(surface);
95+ DEBUG_MSG << " appId=" << application->appId() << " surface=" << surface
96+ << ", filling out placeholder. after: " << toString();
97+ Q_EMIT dataChanged(index(i) /* topLeft */, index(i) /* bottomRight */, QVector<int>() << SurfaceRole);
98+ filledPlaceholder = true;
99+ }
100+ }
101+
102+ if (!filledPlaceholder) {
103+ DEBUG_MSG << " appId=" << application->appId() << " surface=" << surface << ", adding new row";
104+ appendSurfaceHelper(surface, application);
105+ }
106+}
107+
108+void TopLevelSurfaceList::appendSurfaceHelper(MirSurfaceInterface *surface, ApplicationInfoInterface *application)
109+{
110+ if (m_modelState == IdleState) {
111+ m_modelState = InsertingState;
112+ beginInsertRows(QModelIndex(), m_surfaceList.size() /*first*/, m_surfaceList.size() /*last*/);
113+ } else {
114+ Q_ASSERT(m_modelState == ResettingState);
115+ // No point in signaling anything if we're resetting the whole model
116+ }
117+
118+ int id = generateId();
119+ m_surfaceList.append(ModelEntry(surface, application, id));
120+ if (surface) {
121+ connectSurface(surface);
122+ }
123+
124+ if (m_modelState == InsertingState) {
125+ endInsertRows();
126+ Q_EMIT countChanged();
127+ Q_EMIT listChanged();
128+ m_modelState = IdleState;
129+ }
130+
131+ DEBUG_MSG << " after " << toString();
132+}
133+
134+void TopLevelSurfaceList::connectSurface(MirSurfaceInterface *surface)
135+{
136+ connect(surface, &MirSurfaceInterface::focusedChanged, this, [this, surface](bool focused){
137+ if (focused) {
138+ this->raise(surface);
139+ }
140+ });
141+ connect(surface, &MirSurfaceInterface::liveChanged, this, [this, surface](bool live){
142+ if (!live) {
143+ onSurfaceDied(surface);
144+ }
145+ });
146+ connect(surface, &QObject::destroyed, this, [this, surface](){ this->onSurfaceDestroyed(surface); });
147+}
148+
149+void TopLevelSurfaceList::onSurfaceDied(MirSurfaceInterface *surface)
150+{
151+ int i = indexOf(surface);
152+ if (i == -1) {
153+ return;
154+ }
155+
156+ auto application = m_surfaceList[i].application;
157+
158+ // can't be starting if it already has a surface
159+ Q_ASSERT(application->state() != ApplicationInfoInterface::Starting);
160+
161+ if (application->state() == ApplicationInfoInterface::Running) {
162+ m_surfaceList[i].removeOnceSurfaceDestroyed = true;
163+ } else {
164+ // assume it got killed by the out-of-memory daemon.
165+ //
166+ // So leave entry in the model and only remove its surface, so shell can display a screenshot
167+ // in its place.
168+ m_surfaceList[i].removeOnceSurfaceDestroyed = false;
169+ }
170+}
171+
172+void TopLevelSurfaceList::onSurfaceDestroyed(MirSurfaceInterface *surface)
173+{
174+ int i = indexOf(surface);
175+ if (i == -1) {
176+ return;
177+ }
178+
179+ if (m_surfaceList[i].removeOnceSurfaceDestroyed) {
180+ removeAt(i);
181+ } else {
182+ m_surfaceList[i].surface = nullptr;
183+ Q_EMIT dataChanged(index(i) /* topLeft */, index(i) /* bottomRight */, QVector<int>() << SurfaceRole);
184+ DEBUG_MSG << " Removed surface from entry. After: " << toString();
185+ }
186+}
187+
188+void TopLevelSurfaceList::removeAt(int index)
189+{
190+ if (m_modelState == IdleState) {
191+ beginRemoveRows(QModelIndex(), index, index);
192+ m_modelState = RemovingState;
193+ } else {
194+ Q_ASSERT(m_modelState == ResettingState);
195+ // No point in signaling anything if we're resetting the whole model
196+ }
197+
198+ m_surfaceList.removeAt(index);
199+
200+ if (m_modelState == RemovingState) {
201+ endRemoveRows();
202+ Q_EMIT countChanged();
203+ Q_EMIT listChanged();
204+ m_modelState = IdleState;
205+ }
206+
207+ DEBUG_MSG << " after " << toString();
208+}
209+
210+int TopLevelSurfaceList::indexOf(MirSurfaceInterface *surface)
211+{
212+ for (int i = 0; i < m_surfaceList.count(); ++i) {
213+ if (m_surfaceList.at(i).surface == surface) {
214+ return i;
215+ }
216+ }
217+ return -1;
218+}
219+
220+void TopLevelSurfaceList::move(int from, int to)
221+{
222+ if (from == to) return;
223+ DEBUG_MSG << " from=" << from << " to=" << to;
224+
225+ if (from >= 0 && from < m_surfaceList.size() && to >= 0 && to < m_surfaceList.size()) {
226+ QModelIndex parent;
227+ /* When moving an item down, the destination index needs to be incremented
228+ by one, as explained in the documentation:
229+ http://qt-project.org/doc/qt-5.0/qtcore/qabstractitemmodel.html#beginMoveRows */
230+
231+ Q_ASSERT(m_modelState == IdleState);
232+ m_modelState = MovingState;
233+
234+ beginMoveRows(parent, from, from, parent, to + (to > from ? 1 : 0));
235+ m_surfaceList.move(from, to);
236+ endMoveRows();
237+ Q_EMIT listChanged();
238+
239+ m_modelState = IdleState;
240+
241+ DEBUG_MSG << " after " << toString();
242+ }
243+}
244+
245+MirSurfaceInterface *TopLevelSurfaceList::surfaceAt(int index) const
246+{
247+ if (index >=0 && index < m_surfaceList.count()) {
248+ return m_surfaceList[index].surface;
249+ } else {
250+ return nullptr;
251+ }
252+}
253+
254+ApplicationInfoInterface *TopLevelSurfaceList::applicationAt(int index) const
255+{
256+ if (index >=0 && index < m_surfaceList.count()) {
257+ return m_surfaceList[index].application;
258+ } else {
259+ return nullptr;
260+ }
261+}
262+
263+int TopLevelSurfaceList::idAt(int index) const
264+{
265+ if (index >=0 && index < m_surfaceList.count()) {
266+ return m_surfaceList[index].id;
267+ } else {
268+ return 0;
269+ }
270+}
271+
272+int TopLevelSurfaceList::indexForId(int id) const
273+{
274+ for (int i = 0; i < m_surfaceList.count(); ++i) {
275+ if (m_surfaceList[i].id == id) {
276+ return i;
277+ }
278+ }
279+ return -1;
280+}
281+
282+void TopLevelSurfaceList::doRaiseId(int id)
283+{
284+ int fromIndex = indexForId(id);
285+ if (fromIndex != -1) {
286+ move(fromIndex, 0 /* toIndex */);
287+ }
288+}
289+
290+void TopLevelSurfaceList::raiseId(int id)
291+{
292+ if (m_modelState == IdleState) {
293+ DEBUG_MSG << "(id=" << id << ") - do it now.";
294+ doRaiseId(id);
295+ } else {
296+ DEBUG_MSG << "(id=" << id << ") - Model busy (modelState=" << m_modelState << "). Try again in the next event loop.";
297+ // The model has just signalled some change. If we have a Repeater responding to this update, it will get nuts
298+ // if we perform yet another model change straight away.
299+ //
300+ // A bad sympton of this problem is a Repeater.itemAt(index) call returning null event though Repeater.count says
301+ // the index is definitely within bounds.
302+ QMetaObject::invokeMethod(this, "raiseId", Qt::QueuedConnection, Q_ARG(int, id));
303+ }
304+}
305+
306+int TopLevelSurfaceList::generateId()
307+{
308+ int id = m_nextId;
309+ m_nextId = nextFreeId(m_nextId + 1);
310+ Q_EMIT nextIdChanged();
311+ return id;
312+}
313+
314+int TopLevelSurfaceList::nextFreeId(int candidateId)
315+{
316+ if (candidateId > m_maxId) {
317+ return nextFreeId(1);
318+ } else {
319+ if (indexForId(candidateId) == -1) {
320+ // it's indeed free
321+ return candidateId;
322+ } else {
323+ return nextFreeId(candidateId + 1);
324+ }
325+ }
326+}
327+
328+QString TopLevelSurfaceList::toString()
329+{
330+ QString str;
331+ for (int i = 0; i < m_surfaceList.count(); ++i) {
332+ auto item = m_surfaceList.at(i);
333+
334+ QString itemStr = QString("(index=%1,appId=%2,surface=0x%3,id=%4)")
335+ .arg(i)
336+ .arg(item.application->appId())
337+ .arg((qintptr)item.surface, 0, 16)
338+ .arg(item.id);
339+
340+ if (i > 0) {
341+ str.append(",");
342+ }
343+ str.append(itemStr);
344+ }
345+ return str;
346+}
347+
348+void TopLevelSurfaceList::addApplication(ApplicationInfoInterface *application)
349+{
350+ DEBUG_MSG << "(" << application->appId() << ")";
351+ Q_ASSERT(!m_applications.contains(application));
352+ m_applications.append(application);
353+
354+ MirSurfaceListInterface *surfaceList = application->surfaceList();
355+
356+ if (application->state() != ApplicationInfoInterface::Stopped) {
357+ if (surfaceList->count() == 0) {
358+ appendPlaceholder(application);
359+ } else {
360+ for (int i = 0; i < surfaceList->count(); ++i) {
361+ appendSurface(surfaceList->get(i), application);
362+ }
363+ }
364+ }
365+
366+ connect(surfaceList, &QAbstractItemModel::rowsInserted, this,
367+ [this, application, surfaceList](const QModelIndex & /*parent*/, int first, int last)
368+ {
369+ for (int i = last; i >= first; --i) {
370+ this->appendSurface(surfaceList->get(i), application);
371+ }
372+ });
373+}
374+
375+void TopLevelSurfaceList::removeApplication(ApplicationInfoInterface *application)
376+{
377+ DEBUG_MSG << "(" << application->appId() << ")";
378+ Q_ASSERT(m_applications.contains(application));
379+
380+ MirSurfaceListInterface *surfaceList = application->surfaceList();
381+
382+ disconnect(surfaceList, 0, this, 0);
383+
384+ Q_ASSERT(m_modelState == IdleState);
385+ m_modelState = RemovingState;
386+
387+ int i = 0;
388+ while (i < m_surfaceList.count()) {
389+ if (m_surfaceList.at(i).application == application) {
390+ beginRemoveRows(QModelIndex(), i, i);
391+ m_surfaceList.removeAt(i);
392+ endRemoveRows();
393+ Q_EMIT countChanged();
394+ Q_EMIT listChanged();
395+ } else {
396+ ++i;
397+ }
398+ }
399+
400+ m_modelState = IdleState;
401+
402+ DEBUG_MSG << " after " << toString();
403+
404+ m_applications.removeAll(application);
405+}
406+
407+QAbstractListModel *TopLevelSurfaceList::applicationsModel() const
408+{
409+ return m_applicationsModel;
410+}
411+
412+void TopLevelSurfaceList::setApplicationsModel(QAbstractListModel* value)
413+{
414+ if (m_applicationsModel == value) {
415+ return;
416+ }
417+
418+ DEBUG_MSG << "(" << value << ")";
419+
420+ Q_ASSERT(m_modelState == IdleState);
421+ m_modelState = ResettingState;
422+
423+ beginResetModel();
424+
425+ if (m_applicationsModel) {
426+ m_surfaceList.clear();
427+ m_applications.clear();
428+ disconnect(m_applicationsModel, 0, this, 0);
429+ }
430+
431+ m_applicationsModel = value;
432+
433+ if (m_applicationsModel) {
434+ findApplicationRole();
435+
436+ connect(m_applicationsModel, &QAbstractItemModel::rowsInserted,
437+ this, [this](const QModelIndex &/*parent*/, int first, int last) {
438+ for (int i = first; i <= last; ++i) {
439+ auto application = getApplicationFromModelAt(i);
440+ addApplication(application);
441+ }
442+ });
443+
444+ connect(m_applicationsModel, &QAbstractItemModel::rowsAboutToBeRemoved,
445+ this, [this](const QModelIndex &/*parent*/, int first, int last) {
446+ for (int i = first; i <= last; ++i) {
447+ auto application = getApplicationFromModelAt(i);
448+ removeApplication(application);
449+ }
450+ });
451+
452+ for (int i = 0; i < m_applicationsModel->rowCount(); ++i) {
453+ auto application = getApplicationFromModelAt(i);
454+ addApplication(application);
455+ }
456+ }
457+
458+ endResetModel();
459+ m_modelState = IdleState;
460+}
461+
462+ApplicationInfoInterface *TopLevelSurfaceList::getApplicationFromModelAt(int index)
463+{
464+ QModelIndex modelIndex = m_applicationsModel->index(index);
465+
466+ QVariant variant = m_applicationsModel->data(modelIndex, m_applicationRole);
467+
468+ // variant.value<ApplicationInfoInterface*>() returns null for some reason.
469+ return static_cast<ApplicationInfoInterface*>(variant.value<QObject*>());
470+}
471+
472+void TopLevelSurfaceList::findApplicationRole()
473+{
474+ QHash<int, QByteArray> namesHash = m_applicationsModel->roleNames();
475+
476+ m_applicationRole = -1;
477+ for (auto i = namesHash.begin(); i != namesHash.end() && m_applicationRole == -1; ++i) {
478+ if (i.value() == "application") {
479+ m_applicationRole = i.key();
480+ }
481+ }
482+
483+ if (m_applicationRole == -1) {
484+ qFatal("TopLevelSurfaceList: applicationsModel must have a \"application\" role.");
485+ }
486+}
plugins/WindowManager/TopLevelSurfaceList.hnew file+223
@@ -0,0 +1,223 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef TOPLEVELSURFACELIST_H
18+#define TOPLEVELSURFACELIST_H
19+
20+#include <QAbstractListModel>
21+#include <QList>
22+#include <QLoggingCategory>
23+
24+Q_DECLARE_LOGGING_CATEGORY(UNITY_TOPSURFACELIST)
25+
26+namespace unity {
27+ namespace shell {
28+ namespace application {
29+ class ApplicationInfoInterface;
30+ class MirSurfaceInterface;
31+ }
32+ }
33+}
34+
35+/**
36+ * @brief A model of top-level surfaces
37+ *
38+ * It's an abstraction of top-level application windows.
39+ *
40+ * When an entry first appears, it normaly doesn't have a surface yet, meaning that the application is
41+ * still starting up. A shell should then display a splash screen or saved screenshot of the application
42+ * until its surface comes up.
43+ *
44+ * As applications can have multiple surfaces and you can also have entries without surfaces at all,
45+ * the only way to unambiguously refer to an entry in this model is through its id.
46+ */
47+class TopLevelSurfaceList : public QAbstractListModel
48+{
49+
50+ Q_OBJECT
51+
52+ /**
53+ * @brief A list model of applications.
54+ *
55+ * It's expected to have a role called "application" which returns a ApplicationInfoInterface
56+ */
57+ Q_PROPERTY(QAbstractListModel* applicationsModel READ applicationsModel
58+ WRITE setApplicationsModel
59+ NOTIFY applicationsModelChanged)
60+
61+ /**
62+ * @brief Number of top-level surfaces in this model
63+ *
64+ * This is the same as rowCount, added in order to keep compatibility with QML ListModels.
65+ */
66+ Q_PROPERTY(int count READ rowCount NOTIFY countChanged)
67+
68+ /**
69+ The id to be used on the next entry created
70+ Useful for tests
71+ */
72+ Q_PROPERTY(int nextId READ nextId NOTIFY nextIdChanged)
73+public:
74+
75+ /**
76+ * @brief The Roles supported by the model
77+ *
78+ * SurfaceRole - A MirSurfaceInterface. It will be null if the application is still starting up
79+ * ApplicationRole - An ApplicationInfoInterface
80+ * IdRole - A unique identifier for this entry. Useful to unambiguosly track elements as they move around in the list
81+ */
82+ enum Roles {
83+ SurfaceRole = Qt::UserRole,
84+ ApplicationRole = Qt::UserRole + 1,
85+ IdRole = Qt::UserRole + 2,
86+ };
87+
88+ explicit TopLevelSurfaceList(QObject *parent = nullptr);
89+ virtual ~TopLevelSurfaceList();
90+
91+ // QAbstractItemModel methods
92+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
93+ QVariant data(const QModelIndex& index, int role) const override;
94+ QHash<int, QByteArray> roleNames() const override {
95+ QHash<int, QByteArray> roleNames { {SurfaceRole, "surface"},
96+ {ApplicationRole, "application"},
97+ {IdRole, "id"} };
98+ return roleNames;
99+ }
100+
101+ int nextId() const { return m_nextId; }
102+
103+ QAbstractListModel *applicationsModel() const;
104+ void setApplicationsModel(QAbstractListModel*);
105+
106+public Q_SLOTS:
107+ /**
108+ * @brief Returns the surface at the given index
109+ *
110+ * It will be a nullptr if the application is still starting up and thus hasn't yet created
111+ * and drawn into a surface.
112+ */
113+ unity::shell::application::MirSurfaceInterface *surfaceAt(int index) const;
114+
115+ /**
116+ * @brief Returns the application at the given index
117+ */
118+ unity::shell::application::ApplicationInfoInterface *applicationAt(int index) const;
119+
120+ /**
121+ * @brief Returns the unique id of the element at the given index
122+ */
123+ int idAt(int index) const;
124+
125+ /**
126+ * @brief Returns the index where the row with the given id is located
127+ *
128+ * Returns -1 if there's no row with the given id.
129+ */
130+ int indexForId(int id) const;
131+
132+ /**
133+ * @brief Raises the row with the given id to index 0
134+ */
135+ void raiseId(int id);
136+
137+ void doRaiseId(int id);
138+
139+Q_SIGNALS:
140+ void countChanged();
141+
142+ /**
143+ * @brief Emitted when the list changes
144+ *
145+ * Emitted when model gains an element, loses an element or when elements exchange positions.
146+ */
147+ void listChanged();
148+
149+ void nextIdChanged();
150+
151+ void applicationsModelChanged();
152+
153+private:
154+ void addApplication(unity::shell::application::ApplicationInfoInterface *application);
155+ void removeApplication(unity::shell::application::ApplicationInfoInterface *application);
156+
157+ int indexOf(unity::shell::application::MirSurfaceInterface *surface);
158+ void raise(unity::shell::application::MirSurfaceInterface *surface);
159+ void move(int from, int to);
160+ void appendSurfaceHelper(unity::shell::application::MirSurfaceInterface *surface,
161+ unity::shell::application::ApplicationInfoInterface *application);
162+ void connectSurface(unity::shell::application::MirSurfaceInterface *surface);
163+ int generateId();
164+ int nextFreeId(int candidateId);
165+ QString toString();
166+ void onSurfaceDestroyed(unity::shell::application::MirSurfaceInterface *surface);
167+ void onSurfaceDied(unity::shell::application::MirSurfaceInterface *surface);
168+ void removeAt(int index);
169+ void findApplicationRole();
170+
171+ unity::shell::application::ApplicationInfoInterface *getApplicationFromModelAt(int index);
172+
173+ /*
174+ Placeholder for a future surface from a starting or running application.
175+ Enables shell to give immediate feedback to the user by showing, eg,
176+ a splash screen.
177+
178+ It's a model row containing a null surface and the given application.
179+ */
180+ void appendPlaceholder(unity::shell::application::ApplicationInfoInterface *application);
181+
182+ /*
183+ Adds a model row with the given surface and application
184+
185+ Alternatively, if a placeholder exists for the given application it's
186+ filled with the given surface instead.
187+ */
188+ void appendSurface(unity::shell::application::MirSurfaceInterface *surface,
189+ unity::shell::application::ApplicationInfoInterface *application);
190+
191+ struct ModelEntry {
192+ ModelEntry(unity::shell::application::MirSurfaceInterface *surface, unity::shell::application::ApplicationInfoInterface *application, int id)
193+ : surface(surface), application(application), id(id) {}
194+ unity::shell::application::MirSurfaceInterface *surface;
195+ unity::shell::application::ApplicationInfoInterface *application;
196+ int id;
197+ bool removeOnceSurfaceDestroyed{false};
198+ };
199+
200+ QList<ModelEntry> m_surfaceList;
201+ int m_nextId{1};
202+ static const int m_maxId{1000000};
203+
204+ // applications that are being monitored
205+ QList<unity::shell::application::ApplicationInfoInterface *> m_applications;
206+
207+ QAbstractListModel* m_applicationsModel{nullptr};
208+ int m_applicationRole{-1};
209+
210+ enum ModelState {
211+ IdleState,
212+ InsertingState,
213+ RemovingState,
214+ MovingState,
215+ ResettingState
216+ };
217+ ModelState m_modelState{IdleState};
218+};
219+
220+Q_DECLARE_METATYPE(TopLevelSurfaceList*)
221+Q_DECLARE_METATYPE(QAbstractListModel*)
222+
223+#endif // TOPLEVELSURFACELIST_H
plugins/WindowManager/WindowManagerPlugin.cppnew file+28
@@ -0,0 +1,28 @@
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 "WindowManagerPlugin.h"
18+
19+#include "TopLevelSurfaceList.h"
20+
21+#include <QtQml>
22+
23+void WindowManagerPlugin::registerTypes(const char *uri)
24+{
25+ qmlRegisterType<TopLevelSurfaceList>(uri, 0, 1, "TopLevelSurfaceList");
26+
27+ qRegisterMetaType<QAbstractListModel*>("QAbstractListModel*");
28+}
plugins/WindowManager/WindowManagerPlugin.hnew file+32
@@ -0,0 +1,32 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef WINDOWMANAGER_PLUGIN_H
18+#define WINDOWMANAGER_PLUGIN_H
19+
20+#include <QtQml/QQmlEngine>
21+#include <QtQml/QQmlExtensionPlugin>
22+
23+class WindowManagerPlugin : public QQmlExtensionPlugin
24+{
25+ Q_OBJECT
26+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
27+
28+public:
29+ void registerTypes(const char *uri) override;
30+};
31+
32+#endif // WINDOWMANAGER_PLUGIN_H
plugins/WindowManager/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module WindowManager
2+plugin windowmanager-qml
plugins/Wizard/CMakeLists.txt+7−1
@@ -1,10 +1,16 @@
1+include_directories(${GLIB_INCLUDE_DIRS} ${GEONAMES_INCLUDE_DIRS})
2+
1add_library(Wizard-qml MODULE
3add_library(Wizard-qml MODULE
2 plugin.cpp
4 plugin.cpp
3 PageList.cpp
5 PageList.cpp
4 System.cpp
6 System.cpp
7+ LocalePlugin.cpp
8+ timezonemodel.cpp
9+ Status.cpp
5)
10)
6
11
7−qt5_use_modules(Wizard-qml DBus Qml)
12+qt5_use_modules(Wizard-qml DBus Qml Concurrent)
13+target_link_libraries(Wizard-qml ${GLIB_LDFLAGS} ${GEONAMES_LDFLAGS})
8add_unity8_plugin(Wizard 0.1 Wizard TARGETS Wizard-qml)
14add_unity8_plugin(Wizard 0.1 Wizard TARGETS Wizard-qml)
9
15
10set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
16set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
plugins/Wizard/LocalePlugin.cppnew file+291
@@ -0,0 +1,291 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include <QLocale>
18+#include <QStringList>
19+
20+#include <libintl.h>
21+
22+#include "LocalePlugin.h"
23+
24+class LocalePrivate {
25+public:
26+ LocalePrivate() {
27+ m_mccCodes = QHash<int, QString>
28+ ({{202,"gr"},
29+ {204,"nl"},
30+ {206,"be"},
31+ {208,"fr"},
32+ {212,"mc"},
33+ {213,"ad"},
34+ {214,"es"},
35+ {216,"hu"},
36+ {218,"ba"},
37+ {219,"hr"},
38+ {220,"rs"},
39+ {222,"it"},
40+ {226,"ro"},
41+ {228,"ch"},
42+ {230,"cz"},
43+ {231,"sk"},
44+ {232,"at"},
45+ {234,"gb"},
46+ {235,"gb"},
47+ {238,"dk"},
48+ {240,"se"},
49+ {242,"no"},
50+ {244,"fi"},
51+ {246,"lt"},
52+ {247,"lv"},
53+ {248,"ee"},
54+ {250,"ru"},
55+ {255,"ua"},
56+ {257,"by"},
57+ {259,"md"},
58+ {260,"pl"},
59+ {262,"de"},
60+ {266,"gi"},
61+ {268,"pt"},
62+ {270,"lu"},
63+ {272,"ie"},
64+ {274,"is"},
65+ {276,"al"},
66+ {278,"mt"},
67+ {280,"cy"},
68+ {282,"ge"},
69+ {283,"am"},
70+ {284,"bg"},
71+ {286,"tr"},
72+ {288,"fo"},
73+ {289,"ge"},
74+ {290,"gl"},
75+ {292,"sm"},
76+ {293,"si"},
77+ {294,"mk"},
78+ {295,"li"},
79+ {297,"me"},
80+ {302,"ca"},
81+ {308,"pm"},
82+ {310,"gu"},
83+ {310,"us"},
84+ {311,"gu"},
85+ {311,"us"},
86+ {312,"us"},
87+ {316,"us"},
88+ {330,"pr"},
89+ {334,"mx"},
90+ {338,"jm"},
91+ {340,"fg"},
92+ {340,"gp"},
93+ {340,"mq"},
94+ {342,"bb"},
95+ {344,"ag"},
96+ {346,"ky"},
97+ {348,"vg"},
98+ {350,"bm"},
99+ {352,"gd"},
100+ {354,"ms"},
101+ {356,"kn"},
102+ {358,"lc"},
103+ {360,"vc"},
104+ {362,"an"},
105+ {362,"cw"},
106+ {363,"aw"},
107+ {364,"bs"},
108+ {365,"ai"},
109+ {366,"dm"},
110+ {368,"cu"},
111+ {370,"do"},
112+ {372,"ht"},
113+ {374,"tt"},
114+ {376,"tc"},
115+ {376,"vi"},
116+ {400,"az"},
117+ {401,"kz"},
118+ {402,"bt"},
119+ {404,"in"},
120+ {405,"in"},
121+ {410,"pk"},
122+ {412,"af"},
123+ {413,"lk"},
124+ {414,"mm"},
125+ {415,"lb"},
126+ {416,"jo"},
127+ {417,"sy"},
128+ {418,"iq"},
129+ {419,"kw"},
130+ {420,"sa"},
131+ {421,"ye"},
132+ {422,"om"},
133+ {424,"ae"},
134+ {425,"il"},
135+ {425,"ps"},
136+ {426,"bh"},
137+ {427,"qa"},
138+ {428,"mn"},
139+ {429,"np"},
140+ {430,"ae"},
141+ {431,"ae"},
142+ {432,"ir"},
143+ {434,"uz"},
144+ {436,"tk"},
145+ {437,"kg"},
146+ {438,"tm"},
147+ {440,"jp"},
148+ {441,"jp"},
149+ {450,"kr"},
150+ {452,"vn"},
151+ {454,"hk"},
152+ {455,"mo"},
153+ {456,"kh"},
154+ {457,"la"},
155+ {460,"cn"},
156+ {466,"tw"},
157+ {467,"kp"},
158+ {470,"bd"},
159+ {472,"mv"},
160+ {502,"my"},
161+ {505,"au"},
162+ {510,"id"},
163+ {514,"tp"},
164+ {515,"ph"},
165+ {520,"th"},
166+ {525,"sg"},
167+ {528,"bn"},
168+ {530,"nz"},
169+ {537,"pg"},
170+ {539,"to"},
171+ {540,"sb"},
172+ {541,"vu"},
173+ {542,"fj"},
174+ {544,"as"},
175+ {545,"ki"},
176+ {546,"nc"},
177+ {547,"pf"},
178+ {548,"ck"},
179+ {549,"ws"},
180+ {550,"fm"},
181+ {552,"pw"},
182+ {553,"tv"},
183+ {555,"nu"},
184+ {602,"eg"},
185+ {603,"dz"},
186+ {604,"ma"},
187+ {605,"tn"},
188+ {606,"ly"},
189+ {607,"gm"},
190+ {608,"sn"},
191+ {609,"mr"},
192+ {610,"ml"},
193+ {611,"gn"},
194+ {612,"ci"},
195+ {613,"bf"},
196+ {614,"ne"},
197+ {615,"tg"},
198+ {616,"bj"},
199+ {617,"mu"},
200+ {618,"lr"},
201+ {619,"sl"},
202+ {620,"gh"},
203+ {621,"ng"},
204+ {622,"td"},
205+ {623,"cf"},
206+ {624,"cm"},
207+ {625,"cv"},
208+ {626,"st"},
209+ {627,"gq"},
210+ {628,"ga"},
211+ {629,"cg"},
212+ {630,"cd"},
213+ {631,"ao"},
214+ {632,"gw"},
215+ {633,"sc"},
216+ {634,"sd"},
217+ {635,"rw"},
218+ {636,"et"},
219+ {637,"so"},
220+ {638,"dj"},
221+ {639,"ke"},
222+ {640,"tz"},
223+ {641,"ug"},
224+ {642,"bi"},
225+ {643,"mz"},
226+ {645,"zm"},
227+ {646,"mg"},
228+ {647,"re"},
229+ {648,"zw"},
230+ {649,"na"},
231+ {650,"mw"},
232+ {651,"ls"},
233+ {652,"bw"},
234+ {653,"sz"},
235+ {654,"km"},
236+ {655,"za"},
237+ {657,"er"},
238+ {659,"ss"},
239+ {702,"bz"},
240+ {704,"gt"},
241+ {706,"sv"},
242+ {708,"hn"},
243+ {710,"ni"},
244+ {712,"cr"},
245+ {714,"pa"},
246+ {716,"pe"},
247+ {722,"ar"},
248+ {724,"br"},
249+ {730,"cl"},
250+ {732,"co"},
251+ {734,"ve"},
252+ {736,"bo"},
253+ {738,"gy"},
254+ {740,"ec"},
255+ {744,"py"},
256+ {746,"sr"},
257+ {748,"uy"},
258+ {750,"fk"}}
259+ );
260+ }
261+
262+ QString mccToCountryCode(int mcc) const {
263+ return m_mccCodes.value(mcc, "us").toUpper();
264+ }
265+
266+private:
267+ // MCC = Mobile Country Code, see https://en.wikipedia.org/wiki/Mobile_country_code
268+ QHash<int,QString> m_mccCodes;
269+};
270+
271+Q_GLOBAL_STATIC(LocalePrivate, d)
272+
273+LocaleAttached::LocaleAttached(QObject* parent)
274+ : QObject(parent)
275+{
276+}
277+
278+QString LocaleAttached::mccToCountryCode(int mcc) const
279+{
280+ return d->mccToCountryCode(mcc);
281+}
282+
283+LocalePlugin::LocalePlugin(QObject* parent)
284+ : QObject(parent)
285+{
286+}
287+
288+LocaleAttached* LocalePlugin::qmlAttachedProperties(QObject* parent)
289+{
290+ return new LocaleAttached(parent);
291+}
plugins/Wizard/LocalePlugin.hnew file+58
@@ -0,0 +1,58 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef LOCALE_PLUGIN_H
18+#define LOCALE_PLUGIN_H
19+
20+#include <QObject>
21+#include <QString>
22+#include <QJsonObject>
23+#include <QtQml>
24+
25+class LocaleAttached: public QObject
26+{
27+ Q_OBJECT
28+protected:
29+ explicit LocaleAttached(QObject *parent = 0);
30+
31+public:
32+ Q_INVOKABLE QString mccToCountryCode(int mcc) const;
33+
34+ friend class LocalePlugin;
35+};
36+
37+/**
38+ * A simplified wrapper around QLocale.
39+ *
40+ * The wrapper is implemented as an attached property, which makes it possible
41+ * to use it as if its methods were static:
42+ *
43+ * @code
44+ * var langs = LocalePlugin.languages();
45+ * @endcode
46+ */
47+class LocalePlugin: public QObject
48+{
49+ Q_OBJECT
50+public:
51+ explicit LocalePlugin(QObject *parent = 0);
52+
53+ static LocaleAttached* qmlAttachedProperties(QObject *parent);
54+};
55+
56+QML_DECLARE_TYPEINFO(LocalePlugin, QML_HAS_ATTACHED_PROPERTIES)
57+
58+#endif // LOCALE_PLUGIN_H
plugins/Wizard/PageList.cpp+4−4
@@ -40,20 +40,20 @@ PageList::PageList(QObject *parent)
40 m_index(-1),
40 m_index(-1),
41 m_pages()
41 m_pages()
42{
42{
43− QString qmlSuffix = QStringLiteral(".qml");
43+ const QString qmlSuffix = QStringLiteral(".qml");
44− QString disabledSuffix = QStringLiteral(".disabled");
44+ const QString disabledSuffix = QStringLiteral(".disabled");
45 QSet<QString> disabledPages;
45 QSet<QString> disabledPages;
46 QStringList dataDirs;
46 QStringList dataDirs;
47
47
48 if (!isRunningInstalled() && getenv("WIZARD_TESTING") == nullptr) {
48 if (!isRunningInstalled() && getenv("WIZARD_TESTING") == nullptr) {
49− dataDirs = QStringList() << qmlDirectory();
49+ dataDirs << qmlDirectory();
50 } else {
50 } else {
51 dataDirs = shellDataDirs();
51 dataDirs = shellDataDirs();
52 }
52 }
53
53
54 Q_FOREACH(const QString &dataDir, dataDirs) {
54 Q_FOREACH(const QString &dataDir, dataDirs) {
55 QDir dir(dataDir + "/Wizard/Pages");
55 QDir dir(dataDir + "/Wizard/Pages");
56− QStringList entries = dir.entryList(QStringList(QStringLiteral("[0-9]*")), QDir::Files | QDir::Readable);
56+ const QStringList entries = dir.entryList(QStringList(QStringLiteral("[0-9]*")), QDir::Files | QDir::Readable);
57 Q_FOREACH(const QString &entry, entries) {
57 Q_FOREACH(const QString &entry, entries) {
58 if (!m_pages.contains(entry) && entry.endsWith(qmlSuffix))
58 if (!m_pages.contains(entry) && entry.endsWith(qmlSuffix))
59 m_pages.insert(entry, dir.absoluteFilePath(entry));
59 m_pages.insert(entry, dir.absoluteFilePath(entry));
plugins/Wizard/Status.cppnew file+143
@@ -0,0 +1,143 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify 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 <QDebug>
18+#include <QDBusConnection>
19+
20+#include "Status.h"
21+
22+Status::Status()
23+{
24+ initNM();
25+ initUPower();
26+}
27+
28+void Status::initNM()
29+{
30+ m_nmIface = new QDBusInterface("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager", "org.freedesktop.NetworkManager",
31+ QDBusConnection::systemBus(), this);
32+
33+ QDBusConnection::systemBus().connect("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager", "org.freedesktop.NetworkManager", "PropertiesChanged",
34+ this, SLOT(onNMPropertiesChanged(QVariantMap)));
35+}
36+
37+void Status::onNMPropertiesChanged(const QVariantMap &changedProps)
38+{
39+ if (changedProps.contains("State") || changedProps.contains("Connectivity")) {
40+ Q_EMIT onlineChanged();
41+ Q_EMIT networkIconChanged();
42+ }
43+
44+ if (changedProps.contains("PrimaryConnection") || changedProps.contains("SpecificObject") || changedProps.contains("Strength")) {
45+ Q_EMIT networkIconChanged();
46+ }
47+}
48+
49+bool Status::online() const
50+{
51+ if (!m_nmIface->isValid())
52+ return false;
53+
54+ return m_nmIface->property("State").toUInt() == 70;
55+}
56+
57+QString Status::networkIcon()
58+{
59+ QString iconName = QStringLiteral("nm-no-connection");
60+
61+ if (!online()) {
62+ return iconName;
63+ }
64+
65+ const QString primaryConn = m_nmIface->property("PrimaryConnection").value<QDBusObjectPath>().path();
66+ const QString primaryConnType = m_nmIface->property("PrimaryConnectionType").toString();
67+
68+ if (primaryConn.isEmpty()) {
69+ qWarning() << "Empty primary connection";
70+ return iconName;
71+ }
72+
73+ if (primaryConnType == "802-11-wireless") {
74+ QDBusInterface activeConn("org.freedesktop.NetworkManager", primaryConn, "org.freedesktop.NetworkManager.Connection.Active", QDBusConnection::systemBus());
75+
76+ if (activeConn.isValid()) {
77+ const QString apPath = activeConn.property("SpecificObject").value<QDBusObjectPath>().path();
78+
79+ if (apPath.isEmpty()) {
80+ qWarning() << "No AP path";
81+ return iconName;
82+ }
83+
84+ QDBusConnection::systemBus().connect("org.freedesktop.NetworkManager", primaryConn, "org.freedesktop.NetworkManager.Connection.Active", "PropertiesChanged",
85+ this, SLOT(onNMPropertiesChanged(QVariantMap)));
86+
87+ QDBusInterface ap("org.freedesktop.NetworkManager", apPath, "org.freedesktop.NetworkManager.AccessPoint", QDBusConnection::systemBus());
88+
89+ if (!ap.isValid()) {
90+ qWarning() << "Invalid AP";
91+ return iconName;
92+ }
93+
94+ QDBusConnection::systemBus().connect("org.freedesktop.NetworkManager", apPath, "org.freedesktop.NetworkManager.AccessPoint", "PropertiesChanged",
95+ this, SLOT(onNMPropertiesChanged(QVariantMap)));
96+
97+ const uint strength = ap.property("Strength").toUInt();
98+ const uint flags = ap.property("Flags").toUInt();
99+
100+ if (strength == 0) {
101+ iconName = "nm-signal-00";
102+ } else if (strength <= 25) {
103+ iconName = "nm-signal-25";
104+ } else if (strength <= 50) {
105+ iconName = "nm-signal-50";
106+ } else if (strength <= 75) {
107+ iconName = "nm-signal-75";
108+ } else if (strength <= 100) {
109+ iconName = "nm-signal-100";
110+ }
111+
112+ if (flags >= 1) {
113+ iconName += "-secure";
114+ }
115+ }
116+ }
117+
118+ return iconName;
119+}
120+
121+void Status::initUPower()
122+{
123+ m_upowerIface = new QDBusInterface("org.freedesktop.UPower", "/org/freedesktop/UPower/devices/DisplayDevice", "org.freedesktop.UPower.Device",
124+ QDBusConnection::systemBus(), this);
125+ QDBusConnection::systemBus().connect("org.freedesktop.UPower", "/org/freedesktop/UPower/devices/DisplayDevice", "org.freedesktop.DBus.Properties",
126+ "PropertiesChanged", this, SLOT(onUPowerPropertiesChanged(QString,QVariantMap,QStringList)));
127+}
128+
129+void Status::onUPowerPropertiesChanged(const QString &iface, const QVariantMap &changedProps, const QStringList &invalidatedProps)
130+{
131+ Q_UNUSED(iface)
132+ Q_UNUSED(invalidatedProps)
133+
134+ if (changedProps.contains("IconName")) {
135+ Q_EMIT batteryIconChanged();
136+ }
137+}
138+
139+QString Status::batteryIcon() const
140+{
141+ const QString iconName = m_upowerIface->property("IconName").toString();
142+ return iconName;
143+}
plugins/Wizard/Status.hnew file+60
@@ -0,0 +1,60 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef WIZARD_STATUS_H
18+#define WIZARD_STATUS_H
19+
20+#include <QObject>
21+#include <QString>
22+#include <QDBusInterface>
23+
24+class Status: public QObject
25+{
26+ Q_OBJECT
27+ Q_PROPERTY(bool online READ online NOTIFY onlineChanged)
28+ Q_PROPERTY(QString networkIcon READ networkIcon NOTIFY networkIconChanged)
29+ Q_PROPERTY(QString batteryIcon READ batteryIcon NOTIFY batteryIconChanged)
30+public:
31+ Status();
32+ ~Status() = default;
33+
34+ bool online() const;
35+ QString networkIcon();
36+
37+ QString batteryIcon() const;
38+
39+Q_SIGNALS:
40+ void networkIconChanged();
41+ void onlineChanged();
42+ void batteryIconChanged();
43+
44+private Q_SLOTS:
45+ void onNMPropertiesChanged(const QVariantMap &changedProps);
46+ void onUPowerPropertiesChanged(const QString &iface, const QVariantMap &changedProps, const QStringList &invalidatedProps);
47+
48+private:
49+ Q_DISABLE_COPY(Status)
50+
51+ // network status
52+ void initNM();
53+ QDBusInterface * m_nmIface = nullptr;
54+
55+ // battery status
56+ void initUPower();
57+ QDBusInterface * m_upowerIface = nullptr;
58+};
59+
60+#endif
plugins/Wizard/System.cpp+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 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
@@ -25,10 +25,10 @@
25#include <QLocale>
25#include <QLocale>
26#include <QMap>
26#include <QMap>
27#include <QProcess>
27#include <QProcess>
28+#include <QDebug>
28
29
29System::System()
30System::System()
30− : QObject(),
31+ : QObject()
31− m_fsWatcher()
32{
32{
33 // Register the argument needed for UpdateActivationEnvironment below
33 // Register the argument needed for UpdateActivationEnvironment below
34 qDBusRegisterMetaType<QMap<QString,QString>>();
34 qDBusRegisterMetaType<QMap<QString,QString>>();
@@ -88,7 +88,7 @@ void System::setSessionVariable(const QString &variable, const QString &value)
88 QDBusConnection::sessionBus().asyncCall(msg);
88 QDBusConnection::sessionBus().asyncCall(msg);
89}
89}
90
90
91−void System::updateSessionLanguage(const QString &locale)
91+void System::updateSessionLocale(const QString &locale)
92{
92{
93 const QString language = locale.split(QStringLiteral("."))[0];
93 const QString language = locale.split(QStringLiteral("."))[0];
94
94
@@ -106,5 +106,6 @@ void System::updateSessionLanguage(const QString &locale)
106 initctl stop smart-scopes-proxy; \
106 initctl stop smart-scopes-proxy; \
107 initctl emit --no-wait indicator-services-start; \
107 initctl emit --no-wait indicator-services-start; \
108 initctl restart --no-wait maliit-server; \
108 initctl restart --no-wait maliit-server; \
109+ initctl restart --no-wait indicator-messages; \
109 initctl restart --no-wait unity8-dash\""));
110 initctl restart --no-wait unity8-dash\""));
110}
111}
plugins/Wizard/System.h+3−2
@@ -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 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
@@ -28,12 +28,13 @@ class System : public QObject
28
28
29public:
29public:
30 System();
30 System();
31+ ~System() = default;
31
32
32 bool wizardEnabled() const;
33 bool wizardEnabled() const;
33 void setWizardEnabled(bool enabled);
34 void setWizardEnabled(bool enabled);
34
35
35public Q_SLOTS:
36public Q_SLOTS:
36− void updateSessionLanguage(const QString &locale);
37+ void updateSessionLocale(const QString &locale);
37
38
38Q_SIGNALS:
39Q_SIGNALS:
39 void wizardEnabledChanged();
40 void wizardEnabledChanged();
plugins/Wizard/plugin.cpp+7−8
@@ -17,19 +17,18 @@
17#include "plugin.h"
17#include "plugin.h"
18#include "PageList.h"
18#include "PageList.h"
19#include "System.h"
19#include "System.h"
20+#include "timezonemodel.h"
21+#include "LocalePlugin.h"
22+#include "Status.h"
20
23
21#include <QtQml/qqml.h>
24#include <QtQml/qqml.h>
22
25
23−static QObject *system_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
24−{
25− Q_UNUSED(engine)
26− Q_UNUSED(scriptEngine)
27− return new System();
28−}
29−
30void WizardPlugin::registerTypes(const char *uri)
26void WizardPlugin::registerTypes(const char *uri)
31{
27{
32 Q_ASSERT(uri == QLatin1String("Wizard"));
28 Q_ASSERT(uri == QLatin1String("Wizard"));
33 qmlRegisterType<PageList>(uri, 0, 1, "PageList");
29 qmlRegisterType<PageList>(uri, 0, 1, "PageList");
34− qmlRegisterSingletonType<System>(uri, 0, 1, "System", system_provider);
30+ 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+ qmlRegisterType<TimeZoneLocationModel>(uri, 0, 1, "TimeZoneModel");
33+ qmlRegisterType<LocalePlugin>(uri, 0, 1, "LocalePlugin");
35}
34}
plugins/Wizard/plugin.h+1−2
@@ -17,13 +17,12 @@
17#ifndef WIZARD_PLUGIN_H
17#ifndef WIZARD_PLUGIN_H
18#define WIZARD_PLUGIN_H
18#define WIZARD_PLUGIN_H
19
19
20−#include <QtQml/QQmlEngine>
21#include <QtQml/QQmlExtensionPlugin>
20#include <QtQml/QQmlExtensionPlugin>
22
21
23class WizardPlugin : public QQmlExtensionPlugin
22class WizardPlugin : public QQmlExtensionPlugin
24{
23{
25 Q_OBJECT
24 Q_OBJECT
26− Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
25+ Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
27
26
28public:
27public:
29 void registerTypes(const char *uri) override;
28 void registerTypes(const char *uri) override;
plugins/Wizard/timezonemodel.cppnew file+244
@@ -0,0 +1,244 @@
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 <QDebug>
18+
19+#include <glib.h>
20+#include <glib-object.h>
21+
22+#include "LocalePlugin.h"
23+#include "timezonemodel.h"
24+
25+TimeZoneLocationModel::TimeZoneLocationModel(QObject *parent):
26+ QAbstractListModel(parent),
27+ m_listUpdating(false),
28+ m_cancellable(nullptr)
29+{
30+ m_roleNames[Qt::DisplayRole] = "displayName";
31+ m_roleNames[TimeZoneRole] = "timeZone";
32+ m_roleNames[CityRole] = "city";
33+ m_roleNames[CountryRole] = "country";
34+ m_roleNames[OffsetRole] = "offset";
35+ m_roleNames[LatitudeRole] = "latitude";
36+ m_roleNames[LongitudeRole] = "longitude";
37+}
38+
39+int TimeZoneLocationModel::rowCount(const QModelIndex &parent) const
40+{
41+ if (parent.isValid()) {
42+ return 0;
43+ } else if (m_filter.isEmpty()) {
44+ return m_countryLocations.count();
45+ } else {
46+ return m_locations.count();
47+ }
48+}
49+
50+QVariant TimeZoneLocationModel::data(const QModelIndex &index, int role) const
51+{
52+ GeonamesCity *city;
53+ if (m_filter.isEmpty()) {
54+ city = m_countryLocations.value(index.row());
55+ } else {
56+ city = m_locations.value(index.row());
57+ }
58+ if (!city)
59+ return QVariant();
60+
61+ switch (role) {
62+ case Qt::DisplayRole:
63+ return QStringLiteral("%1, %2, %3").arg(geonames_city_get_name(city))
64+ .arg(geonames_city_get_state(city))
65+ .arg(geonames_city_get_country(city));
66+ case SimpleRole:
67+ return QStringLiteral("%1, %2").arg(geonames_city_get_name(city))
68+ .arg(geonames_city_get_country(city));
69+ case TimeZoneRole:
70+ return geonames_city_get_timezone(city);
71+ case CountryRole:
72+ return geonames_city_get_country(city);
73+ case CityRole:
74+ return geonames_city_get_name(city);
75+ case OffsetRole: {
76+ QTimeZone tmp(geonames_city_get_timezone(city));
77+ return static_cast<double>(tmp.standardTimeOffset(QDateTime::currentDateTime())) / 3600;
78+ }
79+ case LatitudeRole:
80+ return geonames_city_get_latitude(city);
81+ case LongitudeRole:
82+ return geonames_city_get_longitude(city);
83+ default:
84+ qWarning() << Q_FUNC_INFO << "Unknown role";
85+ return QVariant();
86+ }
87+}
88+
89+QHash<int, QByteArray> TimeZoneLocationModel::roleNames() const
90+{
91+ return m_roleNames;
92+}
93+
94+void TimeZoneLocationModel::setModel(const QList<GeonamesCity *> &locations)
95+{
96+ beginResetModel();
97+
98+ Q_FOREACH(GeonamesCity *city, m_locations) {
99+ geonames_city_free(city);
100+ }
101+
102+ m_locations = locations;
103+ endResetModel();
104+}
105+
106+void TimeZoneLocationModel::filterFinished(GObject *source_object,
107+ GAsyncResult *res,
108+ gpointer user_data)
109+{
110+ Q_UNUSED(source_object);
111+
112+ g_autofree gint *cities = nullptr;
113+ guint cities_len = 0;
114+ g_autoptr(GError) error = nullptr;
115+
116+ cities = geonames_query_cities_finish(res, &cities_len, &error);
117+ if (error) {
118+ if (!g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
119+ TimeZoneLocationModel *model = static_cast<TimeZoneLocationModel *>(user_data);
120+ g_clear_object(&model->m_cancellable);
121+ model->setListUpdating(false);
122+ qWarning() << "Could not filter timezones:" << error->message;
123+ }
124+ return;
125+ }
126+
127+ QList<GeonamesCity *> locations;
128+
129+ for (guint i = 0; i < cities_len; ++i) {
130+ GeonamesCity *city = geonames_get_city(cities[i]);
131+ if (city) {
132+ locations.append(city);
133+ }
134+ }
135+
136+ TimeZoneLocationModel *model = static_cast<TimeZoneLocationModel *>(user_data);
137+
138+ g_clear_object(&model->m_cancellable);
139+
140+ model->setModel(locations);
141+ model->setListUpdating(false);
142+}
143+
144+bool TimeZoneLocationModel::listUpdating() const
145+{
146+ return m_listUpdating;
147+}
148+
149+void TimeZoneLocationModel::setListUpdating(bool listUpdating)
150+{
151+ if (m_listUpdating != listUpdating) {
152+ m_listUpdating = listUpdating;
153+ Q_EMIT listUpdatingChanged();
154+ }
155+}
156+
157+QString TimeZoneLocationModel::filter() const
158+{
159+ return m_filter;
160+}
161+
162+void TimeZoneLocationModel::setFilter(const QString &filter)
163+{
164+ if (filter != m_filter) {
165+ m_filter = filter;
166+ Q_EMIT filterChanged();
167+ }
168+
169+ setListUpdating(true);
170+
171+ if (m_cancellable) {
172+ g_cancellable_cancel(m_cancellable);
173+ g_clear_object(&m_cancellable);
174+ }
175+
176+ setModel(QList<GeonamesCity *>());
177+
178+ if (filter.isEmpty()) {
179+ setListUpdating(false);
180+ return;
181+ }
182+
183+ m_cancellable = g_cancellable_new();
184+ geonames_query_cities(filter.toUtf8().data(),
185+ GEONAMES_QUERY_DEFAULT,
186+ m_cancellable,
187+ filterFinished,
188+ this);
189+}
190+
191+QString TimeZoneLocationModel::country() const
192+{
193+ return m_country;
194+}
195+
196+static bool citycmp(GeonamesCity *a, GeonamesCity *b)
197+{
198+ return geonames_city_get_population(b) < geonames_city_get_population(a);
199+}
200+
201+void TimeZoneLocationModel::setCountry(const QString &country)
202+{
203+ if (m_country == country)
204+ return;
205+
206+ beginResetModel();
207+
208+ m_country = country;
209+
210+ Q_FOREACH(GeonamesCity *city, m_countryLocations) {
211+ geonames_city_free(city);
212+ }
213+ m_countryLocations.clear();
214+
215+ gint num_cities = geonames_get_n_cities();
216+ for (gint i = 0; i < num_cities; i++) {
217+ GeonamesCity *city = geonames_get_city(i);
218+ if (city && m_country == geonames_city_get_country_code(city)) {
219+ m_countryLocations.append(city);
220+ }
221+ }
222+
223+ std::sort(m_countryLocations.begin(), m_countryLocations.end(), citycmp);
224+
225+ endResetModel();
226+
227+ Q_EMIT countryChanged(country);
228+}
229+
230+TimeZoneLocationModel::~TimeZoneLocationModel()
231+{
232+ if (m_cancellable) {
233+ g_cancellable_cancel(m_cancellable);
234+ g_clear_object(&m_cancellable);
235+ }
236+
237+ Q_FOREACH(GeonamesCity *city, m_countryLocations) {
238+ geonames_city_free(city);
239+ }
240+
241+ Q_FOREACH(GeonamesCity *city, m_locations) {
242+ geonames_city_free(city);
243+ }
244+}
plugins/Wizard/timezonemodel.hnew file+80
@@ -0,0 +1,80 @@
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 TIMEZONEMODEL_H
18+#define TIMEZONEMODEL_H
19+
20+#include <geonames.h>
21+#include <glib.h>
22+#include <QAbstractListModel>
23+
24+class TimeZoneLocationModel: public QAbstractListModel
25+{
26+ Q_OBJECT
27+ Q_PROPERTY(bool listUpdating READ listUpdating NOTIFY listUpdatingChanged)
28+ Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged)
29+ Q_PROPERTY(QString country READ country WRITE setCountry NOTIFY countryChanged)
30+ Q_ENUMS(Roles)
31+
32+public:
33+ explicit TimeZoneLocationModel(QObject *parent = nullptr);
34+ ~TimeZoneLocationModel();
35+
36+ enum Roles {
37+ TimeZoneRole = Qt::UserRole + 1,
38+ CityRole,
39+ CountryRole,
40+ SimpleRole,
41+ OffsetRole,
42+ LatitudeRole,
43+ LongitudeRole
44+ };
45+
46+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
47+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
48+ QHash<int, QByteArray> roleNames() const override;
49+
50+ bool listUpdating() const;
51+
52+ QString filter() const;
53+ void setFilter(const QString &filter);
54+
55+ QString country() const;
56+ void setCountry(const QString &country);
57+
58+Q_SIGNALS:
59+ void listUpdatingChanged();
60+ void filterChanged();
61+ void countryChanged(const QString &country);
62+
63+private:
64+ void setModel(const QList<GeonamesCity *> &locations);
65+ void setListUpdating(bool listUpdating);
66+ static void filterFinished(GObject *source_object,
67+ GAsyncResult *res,
68+ gpointer user_data);
69+
70+
71+ bool m_listUpdating;
72+ QString m_filter;
73+ QString m_country;
74+ GCancellable *m_cancellable;
75+ QHash<int, QByteArray> m_roleNames;
76+ QList<GeonamesCity *> m_locations;
77+ QList<GeonamesCity *> m_countryLocations;
78+};
79+
80+#endif
po/aa.po+293−187
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+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,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-03-13 05:50+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -73,64 +73,46 @@ msgctxt "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:194
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77−#: qml/Components/Dialogs.qml:253
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
78msgid "Cancel"
79msgid "Cancel"
79msgstr "Bayis"
80msgstr "Bayis"
80
81
81#: qml/Components/Dialogs.qml:173
82#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr "Bargus"
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr "Bargussuh digga maay litoo?"
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr "Wadir-ugus"
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr "Bargus"
99−
100−#: qml/Components/Dialogs.qml:207
101msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
102msgid "Reboot"
84msgid "Reboot"
103msgstr "Wadir-ugus"
85msgstr "Wadir-ugus"
104
86
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
106msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
107msgstr "Wadir-ugussuh digga maay litoo?"
89msgstr "Wadir-ugussuh digga maay litoo?"
108
90
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
110msgid "No"
92msgid "No"
111msgstr "Maleey"
93msgstr "Maleey"
112
94
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:182
114msgid "Yes"
96msgid "Yes"
115msgstr "Yeey"
97msgstr "Yeey"
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
119msgid "Power"
101msgid "Power"
120msgstr "Cayla"
102msgstr "Cayla"
121
103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
123msgid ""
105msgid ""
124"Are you sure you would like\n"
106"Are you sure you would like\n"
125"to power off?"
107"to power off?"
126msgstr "Timmi haytuh digga maay litoo?"
108msgstr "Timmi haytuh digga maay litoo?"
127
109
128−#: qml/Components/Dialogs.qml:235
110+#: qml/Components/Dialogs.qml:200
129msgctxt "Button: Power off the system"
111msgctxt "Button: Power off the system"
130msgid "Power off"
112msgid "Power off"
131msgstr "Timmi hayis"
113msgstr "Timmi hayis"
132
114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:209
134msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
135msgid "Restart"
117msgid "Restart"
136msgstr "Wadir-qimbis"
118msgstr "Wadir-qimbis"
@@ -173,42 +155,58 @@ msgstr ""
173msgid "Close all"
155msgid "Close all"
174msgstr "Inkih alif"
156msgstr "Inkih alif"
175
157
176−#: qml/Dash/DashPageHeader.qml:270
158+#: qml/Dash/DashPageHeader.qml:337
177msgctxt "Button: Open the Ubuntu Store"
159msgctxt "Button: Open the Ubuntu Store"
178msgid "Store"
160msgid "Store"
179msgstr ""
161msgstr ""
180
162
181−#: qml/Dash/DashPageHeader.qml:277
163+#: qml/Dash/DashPageHeader.qml:344
182msgctxt "Button: Start a search in the current dash scope"
164msgctxt "Button: Start a search in the current dash scope"
183msgid "Search"
165msgid "Search"
184msgstr "Goranto"
166msgstr "Goranto"
185
167
186−#: qml/Dash/DashPageHeader.qml:287
168+#: qml/Dash/DashPageHeader.qml:354
187msgctxt "Button: Show the current dash scope settings"
169msgctxt "Button: Show the current dash scope settings"
188msgid "Settings"
170msgid "Settings"
189msgstr "Massosu"
171msgstr "Massosu"
190
172
191−#: qml/Dash/DashPageHeader.qml:294
173+#: qml/Dash/DashPageHeader.qml:361
192msgid "Remove from Favorites"
174msgid "Remove from Favorites"
193msgstr ""
175msgstr ""
194
176
195−#: qml/Dash/DashPageHeader.qml:294
177+#: qml/Dash/DashPageHeader.qml:361
196msgid "Add to Favorites"
178msgid "Add to Favorites"
197msgstr ""
179msgstr ""
198
180
199−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
181+#: qml/Dash/FiltersPopover.qml:60
200−msgid "See less"
182+msgid "Refine your results"
201msgstr ""
183msgstr ""
202
184
203−#: qml/Dash/GenericScopeView.qml:567
185+#: qml/Dash/FiltersPopover.qml:69
204−msgid "See all"
186+msgid "Reset"
205msgstr ""
187msgstr ""
206
188
207−#: qml/Dash/GenericScopeView.qml:629
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190+msgid "Show less"
191+msgstr ""
192+
193+#: qml/Dash/GenericScopeView.qml:579
194+msgid "Show all"
195+msgstr ""
196+
197+#: qml/Dash/GenericScopeView.qml:636
208msgctxt "Label: Hint for dash search line edit"
198msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
199msgid "Search"
210msgstr "Goranto"
200msgstr "Goranto"
211
201
202+#: qml/Dash/PageHeaderExtraPanel.qml:55
203+msgid "Recent Searches"
204+msgstr ""
205+
206+#: qml/Dash/PageHeaderExtraPanel.qml:66
207+msgid "Clear All"
208+msgstr ""
209+
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
213msgid "More..."
211msgid "More..."
214msgstr ""
212msgstr ""
@@ -276,11 +274,11 @@ msgstr "Qagis"
276msgid "Tap to unlock"
274msgid "Tap to unlock"
277msgstr ""
275msgstr ""
278
276
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
280msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
281msgstr ""
279msgstr ""
282
280
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
284msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
285msgstr ""
283msgstr ""
286
284
@@ -305,7 +303,7 @@ msgstr ""
305msgid "Enter %1"
303msgid "Enter %1"
306msgstr "%1 culus"
304msgstr "%1 culus"
307
305
308−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
309msgid "Enter passphrase"
307msgid "Enter passphrase"
310msgstr "Tatur-maxco culus"
308msgstr "Tatur-maxco culus"
311
309
@@ -331,7 +329,7 @@ msgstr ""
331msgid "Sorry, incorrect passcode"
329msgid "Sorry, incorrect passcode"
332msgstr ""
330msgstr ""
333
331
334−#: qml/Notifications/NotificationMenuItemFactory.qml:129
332+#: qml/Notifications/NotificationMenuItemFactory.qml:124
335msgid "Show password"
333msgid "Show password"
336msgstr "Cuumita uybulluy"
334msgstr "Cuumita uybulluy"
337
335
@@ -343,62 +341,62 @@ msgstr ""
343msgid "Conference"
341msgid "Conference"
344msgstr "Koboxu"
342msgstr "Koboxu"
345
343
346−#: qml/Panel/Indicators/MenuItemFactory.qml:752
344+#: qml/Panel/Indicators/MenuItemFactory.qml:762
347msgid "Nothing is playing"
345msgid "Nothing is playing"
348msgstr ""
346msgstr ""
349
347
350−#: qml/Panel/Indicators/MenuItemFactory.qml:881
348+#: qml/Panel/Indicators/MenuItemFactory.qml:891
351#, qt-format
349#, qt-format
352msgid "%1 hour"
350msgid "%1 hour"
353msgid_plural "%1 hours"
351msgid_plural "%1 hours"
354msgstr[0] "%1 saaqata"
352msgstr[0] "%1 saaqata"
355msgstr[1] "%1 saaqata"
353msgstr[1] "%1 saaqata"
356
354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:885
355+#: qml/Panel/Indicators/MenuItemFactory.qml:895
358#, qt-format
356#, qt-format
359msgid "%1 minute"
357msgid "%1 minute"
360msgid_plural "%1 minutes"
358msgid_plural "%1 minutes"
361msgstr[0] "%1 miniti"
359msgstr[0] "%1 miniti"
362msgstr[1] "%1 miniti"
360msgstr[1] "%1 miniti"
363
361
364−#: qml/Panel/Indicators/MenuItemFactory.qml:890
362+#: qml/Panel/Indicators/MenuItemFactory.qml:900
365#, qt-format
363#, qt-format
366msgid "%1 second"
364msgid "%1 second"
367msgid_plural "%1 seconds"
365msgid_plural "%1 seconds"
368msgstr[0] "%1 nammayye"
366msgstr[0] "%1 nammayye"
369msgstr[1] "%1 nammayye"
367msgstr[1] "%1 nammayye"
370
368
371−#: qml/Panel/Indicators/MenuItemFactory.qml:893
369+#: qml/Panel/Indicators/MenuItemFactory.qml:903
372msgid "0 seconds"
370msgid "0 seconds"
373msgstr "0 nammayye"
371msgstr "0 nammayye"
374
372
375#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
376−#: qml/Panel/Indicators/MenuItemFactory.qml:895
374+#: qml/Panel/Indicators/MenuItemFactory.qml:905
377#, qt-format
375#, qt-format
378msgid "%1 remaining"
376msgid "%1 remaining"
379msgstr "%1 raaqe"
377msgstr "%1 raaqe"
380
378
381−#: qml/Panel/Indicators/MenuItemFactory.qml:901
379+#: qml/Panel/Indicators/MenuItemFactory.qml:911
382msgid "In queue…"
380msgid "In queue…"
383msgstr ""
381msgstr ""
384
382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:905
383+#: qml/Panel/Indicators/MenuItemFactory.qml:915
386msgid "Downloading"
384msgid "Downloading"
387msgstr "Qulluumah"
385msgstr "Qulluumah"
388
386
389−#: qml/Panel/Indicators/MenuItemFactory.qml:907
387+#: qml/Panel/Indicators/MenuItemFactory.qml:917
390msgid "Paused, tap to resume"
388msgid "Paused, tap to resume"
391msgstr ""
389msgstr ""
392
390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:909
391+#: qml/Panel/Indicators/MenuItemFactory.qml:919
394msgid "Canceled"
392msgid "Canceled"
395msgstr "Bayteh"
393msgstr "Bayteh"
396
394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:911
395+#: qml/Panel/Indicators/MenuItemFactory.qml:921
398msgid "Finished"
396msgid "Finished"
399msgstr "Duudumteh"
397msgstr "Duudumteh"
400
398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:913
399+#: qml/Panel/Indicators/MenuItemFactory.qml:923
402msgid "Failed, tap to retry"
400msgid "Failed, tap to retry"
403msgstr ""
401msgstr ""
404
402
@@ -418,244 +416,352 @@ msgctxt "Button: Call back on phone"
418msgid "Call back"
416msgid "Call back"
419msgstr ""
417msgstr ""
420
418
421−#: qml/Tutorial/TutorialBottom.qml:28
419+#: qml/Stages/SideStage.qml:76
422−msgid "Open special menus"
420+msgid "Drag using 3 fingers any application from one window to the other"
423msgstr ""
421msgstr ""
424
422
425−#: qml/Tutorial/TutorialBottom.qml:29
423+#: qml/Tutorial/TutorialBottom.qml:78
426−msgid "Swipe up from the bottom edge."
424+msgid "Swipe up to add a contact"
427msgstr ""
425msgstr ""
428
426
429−#: qml/Tutorial/TutorialBottomFinish.qml:24
427+#: qml/Tutorial/TutorialBottom.qml:80
430−msgid "This action does different things for different apps"
428+msgid "Swipe up for favorite calculations"
431msgstr ""
429msgstr ""
432
430
433−#: qml/Tutorial/TutorialBottomFinish.qml:25
431+#: qml/Tutorial/TutorialBottom.qml:82
434−msgid "Tap here to finish."
432+msgid "Swipe up for recent calls"
435msgstr ""
433msgstr ""
436
434
437−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
435+#: qml/Tutorial/TutorialBottom.qml:84
438−#: qml/Tutorial/TutorialRight.qml:144
436+msgid "Swipe up to create a message"
439−msgid "Tap here to continue."
440msgstr ""
437msgstr ""
441
438
442−#: qml/Tutorial/TutorialLeft.qml:26
439+#: qml/Tutorial/TutorialBottom.qml:85
443−msgid "Open the launcher"
440+msgid "Swipe up to manage the app"
444msgstr ""
441msgstr ""
445
442
446−#: qml/Tutorial/TutorialLeft.qml:27
443+#: qml/Tutorial/TutorialLeftLong.qml:47
447−msgid "Short swipe from the left edge."
444+msgid "Long swipe from the left edge to open the Today scope"
448msgstr ""
445msgstr ""
449
446
450−#: qml/Tutorial/TutorialLeftFinish.qml:24
447+#: qml/Tutorial/TutorialLeft.qml:47
451−msgid "These are the shortcuts to favorite apps"
448+msgid "Swipe from the left edge to open the launcher"
452msgstr ""
449msgstr ""
453
450
454−#: qml/Tutorial/TutorialPage.qml:178
451+#: qml/Tutorial/TutorialRight.qml:55
455−msgid "You almost got it!"
452+msgid "Push your mouse against the right edge to view your open apps"
456msgstr ""
453msgstr ""
457
454
458−#: qml/Tutorial/TutorialPage.qml:195
455+#: qml/Tutorial/TutorialRight.qml:56
459−msgid "Try again."
456+msgid "Short or long swipe from the right edge to view your open apps"
460msgstr ""
457msgstr ""
461
458
462−#: qml/Tutorial/TutorialRight.qml:31
459+#: qml/Tutorial/TutorialTop.qml:53
463−msgid "To view open apps"
460+msgid "Swipe from the top right edge to open the notification bar"
464msgstr ""
461msgstr ""
465
462
466−#: qml/Tutorial/TutorialRight.qml:32
463+#: qml/Tutorial/TutorialTop.qml:54
467−msgid "Long swipe from the right edge."
464+msgid "Swipe from the top edge to open the notification bar"
468msgstr ""
465msgstr ""
469
466
470−#: qml/Tutorial/TutorialRight.qml:122
471−msgid "View all your running tasks."
472−msgstr ""
473−
474−#: qml/Wizard/Page.qml:89
467+#: qml/Wizard/Page.qml:54
475msgctxt "Button: Go back one page in the Wizard"
468msgctxt "Button: Go back one page in the Wizard"
476msgid "Back"
469msgid "Back"
477msgstr "Derre"
470msgstr "Derre"
478
471
479#: qml/Wizard/Pages/10-welcome.qml:27
472#: qml/Wizard/Pages/10-welcome.qml:27
480−msgid "Hi!"
473+msgid "Language"
481−msgstr "Nagaale!"
474+msgstr ""
482
475
483−#: qml/Wizard/Pages/10-welcome.qml:44
476+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
484−msgid "Welcome to your Ubuntu device."
477+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
478+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479+#: qml/Wizard/Pages/75-report-check.qml:84
480+#: qml/Wizard/Pages/passcode-desktop.qml:124
481+#: qml/Wizard/Pages/password-set.qml:141
482+msgid "Next"
485msgstr ""
483msgstr ""
486
484
487−#: qml/Wizard/Pages/10-welcome.qml:52
485+#: qml/Wizard/Pages/30-wifi.qml:29
488−msgid "Let’s get started."
486+msgid "Connect to Wi‑Fi"
489−msgstr "Hayya qimbisnay."
487+msgstr ""
490
488
491−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
489+#: qml/Wizard/Pages/30-wifi.qml:130
492−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
490+msgid "Connected"
493−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
494−#: qml/Wizard/Pages/passwd-set.qml:90
495−msgid "Continue"
496−msgstr "Tatur"
491+msgstr ""
497
492
498−#: qml/Wizard/Pages/20-sim.qml:25
493+#: qml/Wizard/Pages/30-wifi.qml:163
499−msgid "Add a SIM card and restart your device"
494+msgid "Available Wi-Fi networks"
500msgstr ""
495msgstr ""
501
496
502−#: qml/Wizard/Pages/20-sim.qml:59
497+#: qml/Wizard/Pages/30-wifi.qml:164
503−msgid "Without it, you won’t be able to make calls or use text messaging."
498+msgid "No available Wi-Fi networks"
504msgstr ""
499msgstr ""
505
500
506−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502+#: qml/Wizard/Pages/sim.qml:101
507msgid "Skip"
503msgid "Skip"
508msgstr "Kaqit"
504msgstr "Kaqit"
509
505
510−#: qml/Wizard/Pages/30-passwd-type.qml:39
506+#: qml/Wizard/Pages/40-location.qml:27
511−msgid "Lock security"
507+msgid "Location Services"
508+msgstr ""
509+
510+#: qml/Wizard/Pages/40-location.qml:83
511+msgid ""
512+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
513+"(recommended)"
514+msgstr ""
515+
516+#: qml/Wizard/Pages/40-location.qml:105
517+#, qt-format
518+msgid "By selecting this option you agree to the Nokia HERE %1."
512msgstr ""
519msgstr ""
513
520
514−#: qml/Wizard/Pages/30-passwd-type.qml:79
521+#: qml/Wizard/Pages/40-location.qml:106
515−msgid "Please select how you’d like to unlock your device."
522+msgctxt "part of: Nokia HERE terms and conditions"
523+msgid "terms and conditions"
516msgstr ""
524msgstr ""
517
525
518−#: qml/Wizard/Pages/30-passwd-type.qml:102
526+#: qml/Wizard/Pages/40-location.qml:160
519−msgctxt "Label: Type of security method"
527+msgid "GPS only"
520−msgid "Swipe"
528+msgstr ""
529+
530+#: qml/Wizard/Pages/40-location.qml:214
531+msgid "Don't use my location"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:260
535+msgid "You can change it later in System Settings."
536+msgstr ""
537+
538+#: qml/Wizard/Pages/50-timezone.qml:29
539+msgid "Time Zone"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/50-timezone.qml:178
543+msgid "Enter your city"
521−msgstr "Uysuttuc"
544+msgstr ""
522
545
523−#: qml/Wizard/Pages/30-passwd-type.qml:103
546+#: qml/Wizard/Pages/60-account.qml:24
524−msgctxt "Label: Description of security method"
547+msgid "Personalize Your Device"
525−msgid "No security"
526msgstr ""
548msgstr ""
527
549
528−#: qml/Wizard/Pages/30-passwd-type.qml:105
550+#: qml/Wizard/Pages/60-account.qml:48
551+msgid "Preferred Name"
552+msgstr ""
553+
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
555+msgid "Lock Screen"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
529msgctxt "Label: Type of security method"
559msgctxt "Label: Type of security method"
530−msgid "Passcode"
560+msgid "Create new password"
531msgstr ""
561msgstr ""
532
562
533−#: qml/Wizard/Pages/30-passwd-type.qml:106
563+#: qml/Wizard/Pages/70-passwd-type.qml:103
534−msgctxt "Label: Description of security method"
564+msgctxt "Label: Type of security method"
535−msgid "4 digits only"
565+msgid "Create passcode (numbers only)"
536msgstr ""
566msgstr ""
537
567
538−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
539msgctxt "Label: Type of security method"
569msgctxt "Label: Type of security method"
540−msgid "Passphrase"
570+msgid "No lock code"
541msgstr ""
571msgstr ""
542
572
543−#: qml/Wizard/Pages/30-passwd-type.qml:109
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
544−msgctxt "Label: Description of security method"
574+msgid "Privacy Policy"
545−msgid "Numbers and letters"
546msgstr ""
575msgstr ""
547
576
548−#: qml/Wizard/Pages/40-wifi.qml:29
577+#: qml/Wizard/Pages/75-report-check.qml:26
549−msgid "Connect to Wi‑Fi"
578+msgid "Help Us Improve"
550msgstr ""
579msgstr ""
551
580
552−#: qml/Wizard/Pages/40-wifi.qml:168
581+#: qml/Wizard/Pages/75-report-check.qml:59
553−msgid "Available networks…"
582+msgid "Improve system performance by sending us crashes and error reports."
554msgstr ""
583msgstr ""
555
584
556−#: qml/Wizard/Pages/40-wifi.qml:169
585+#: qml/Wizard/Pages/75-report-check.qml:60
557−msgid "No available networks."
586+msgid "Privacy policy"
558msgstr ""
587msgstr ""
559
588
560−#: qml/Wizard/Pages/50-location.qml:27
589+#: qml/Wizard/Pages/80-finished.qml:89
561−msgid "Location"
590+msgid "Welcome to Ubuntu"
562msgstr ""
591msgstr ""
563
592
564−#: qml/Wizard/Pages/50-location.qml:62
593+#: qml/Wizard/Pages/80-finished.qml:104
565−msgid "Let the phone detect your location:"
594+msgid "You are ready to use your device now"
566msgstr ""
595msgstr ""
567
596
568−#: qml/Wizard/Pages/50-location.qml:69
597+#: qml/Wizard/Pages/80-finished.qml:124
569−msgid "Using GPS only (less accurate)"
598+msgid "Get Started"
599+msgstr ""
600+
601+#: qml/Wizard/Pages/here-terms.qml:25
602+msgid "Terms & Conditions"
570msgstr ""
603msgstr ""
571
604
572−#: qml/Wizard/Pages/50-location.qml:86
605+#: qml/Wizard/Pages/here-terms.qml:69
573−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
606+msgid "Your device uses positioning technologies provided by HERE."
574msgstr ""
607msgstr ""
575
608
576−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
577−#: qml/Wizard/Pages/50-location.qml:103
609+#: qml/Wizard/Pages/here-terms.qml:81
578msgid ""
610msgid ""
579−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
611+"To provide you with positioning services and to improve their quality, HERE "
580−"conditions</a>."
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
581msgstr ""
614msgstr ""
582
615
583−#: qml/Wizard/Pages/50-location.qml:112
616+#: qml/Wizard/Pages/here-terms.qml:93
584−msgid "Not at all"
617+msgid ""
618+"The information collected is used to analyze the service and to improve the "
619+"use of service, but not to identify you personally."
585msgstr ""
620msgstr ""
586
621
587−#: qml/Wizard/Pages/50-location.qml:124
622+#: qml/Wizard/Pages/here-terms.qml:106
588−msgid "You can change your mind later in <b>System Settings</b>."
623+#, qt-format
624+msgid "By continuing, you agree to the HERE platform %1 and %2."
589msgstr ""
625msgstr ""
590
626
591−#: qml/Wizard/Pages/60-reporting.qml:26
627+#: qml/Wizard/Pages/here-terms.qml:107
592−msgid "Improving your experience"
628+msgid "Service Terms"
593msgstr ""
629msgstr ""
594
630
595−#: qml/Wizard/Pages/60-reporting.qml:46
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
596−msgid ""
633+msgid "Confirm passcode"
597−"Your phone is set up to automatically report errors to Canonical and its "
598−"partners, the makers of the operating system."
599msgstr ""
634msgstr ""
600
635
601−#: qml/Wizard/Pages/60-reporting.qml:53
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
602−msgid ""
637+msgid "Incorrect passcode."
603−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
604−"Privacy</b>"
605msgstr ""
638msgstr ""
606
639
607−#: qml/Wizard/Pages/80-finished.qml:24
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
608−msgid "All done"
641+msgctxt "Enter the passcode again"
642+msgid "Please re-enter."
609msgstr ""
643msgstr ""
610
644
611−#: qml/Wizard/Pages/80-finished.qml:39
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
612−msgid "Nice work!"
646+msgid "Lock Screen Passcode"
613msgstr ""
647msgstr ""
614
648
615−#: qml/Wizard/Pages/80-finished.qml:46
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
616−msgid "Your device is now ready to use."
650+msgid "Enter 4 numbers to setup your passcode"
617msgstr ""
651msgstr ""
618
652
619−#: qml/Wizard/Pages/80-finished.qml:53
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
620−msgid "Finish"
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
621msgstr ""
656msgstr ""
622
657
623−#: qml/Wizard/Pages/here-terms.qml:27
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
624−msgid "Terms & Conditions"
659+msgid "Passcode too short"
625msgstr ""
660msgstr ""
626
661
627−#: qml/Wizard/Pages/passwd-confirm.qml:49
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
628−msgid "Confirm passphrase"
663+msgid "Passcodes match"
629msgstr ""
664msgstr ""
630
665
631−#: qml/Wizard/Pages/passwd-confirm.qml:50
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
632−msgid "Confirm passcode"
667+msgid "Passcodes do not match"
633msgstr ""
668msgstr ""
634
669
635−#: qml/Wizard/Pages/passwd-confirm.qml:53
670+#: qml/Wizard/Pages/passcode-set.qml:62
636−#: qml/Wizard/Pages/passwd-confirm.qml:54
671+msgid "Passcode must be 4 characters long"
637−msgid "Please try again."
638msgstr ""
672msgstr ""
639
673
640−#: qml/Wizard/Pages/passwd-set.qml:61
674+#: qml/Wizard/Pages/password-set.qml:30
641−msgid "Choose your passcode"
675+msgid "Lock Screen Password"
642msgstr ""
676msgstr ""
643
677
644−#: qml/Wizard/Pages/passwd-set.qml:68
678+#: qml/Wizard/Pages/password-set.qml:61
645−msgid "Passphrase must be 4 characters long"
679+msgid "Enter at least 8 characters"
646msgstr ""
680msgstr ""
647
681
648−#. Translators: This is the arrow for "Back" buttons
682+#: qml/Wizard/Pages/password-set.qml:73
649−#: qml/Wizard/StackButton.qml:39
650−#, qt-format
651−msgid "〈 %1"
683+msgid "Choose password"
652msgstr ""
684msgstr ""
653
685
654−#. Translators: This is the arrow for "Forward" buttons
686+#: qml/Wizard/Pages/password-set.qml:103
655−#: qml/Wizard/StackButton.qml:42
687+msgid "Confirm password"
656−#, qt-format
688+msgstr ""
657−msgid "%1 〉"
689+
690+#: qml/Wizard/Pages/sim.qml:27
691+msgid "No SIM card installed"
692+msgstr ""
693+
694+#: qml/Wizard/Pages/sim.qml:54
695+msgid "SIM card added"
696+msgstr ""
697+
698+#: qml/Wizard/Pages/sim.qml:55
699+msgid "You must restart the device to access the mobile network."
700+msgstr ""
701+
702+#: qml/Wizard/Pages/sim.qml:59
703+msgid "Restart"
658msgstr ""
704msgstr ""
659
705
706+#: qml/Wizard/Pages/sim.qml:78
707+msgid "You won’t be able to make calls or use text messaging without a SIM."
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:90
711+msgid "To proceed with no SIM tap Skip."
712+msgstr ""
713+
714+#: qml/Wizard/PasswordMeter.qml:87
715+msgid "Passwords match"
716+msgstr ""
717+
718+#: qml/Wizard/PasswordMeter.qml:89
719+msgid "Passwords do not match"
720+msgstr ""
721+
722+#: qml/Wizard/PasswordMeter.qml:93
723+msgid "Strong password"
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:95
727+msgid "Fair password"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:97
731+msgid "Weak password"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:99
735+msgid "Very weak password"
736+msgstr ""
737+
738+#~ msgctxt "Title: Reboot/Shut down dialog"
739+#~ msgid "Shut down"
740+#~ msgstr "Bargus"
741+
742+#~ msgid "Are you sure you want to shut down?"
743+#~ msgstr "Bargussuh digga maay litoo?"
744+
745+#~ msgctxt "Button: Shut down the system"
746+#~ msgid "Shut down"
747+#~ msgstr "Bargus"
748+
749+#~ msgctxt "Button: Reboot the system"
750+#~ msgid "Reboot"
751+#~ msgstr "Wadir-ugus"
752+
753+#~ msgctxt "Label: Type of security method"
754+#~ msgid "Swipe"
755+#~ msgstr "Uysuttuc"
756+
757+#~ msgid "Hi!"
758+#~ msgstr "Nagaale!"
759+
660#~ msgid "Welcome to your Ubuntu phone."
760#~ msgid "Welcome to your Ubuntu phone."
661#~ msgstr "Ubuntu Telefoonul arcib"
761#~ msgstr "Ubuntu Telefoonul arcib"
762+
763+#~ msgid "Let’s get started."
764+#~ msgstr "Hayya qimbisnay."
765+
766+#~ msgid "Continue"
767+#~ msgstr "Tatur"
po/am.po+499−255
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11−"PO-Revision-Date: 2015-11-19 19:27+0000\n"
11+"PO-Revision-Date: 2016-03-24 19:07+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-03-13 05:50+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -73,53 +73,35 @@ msgctxt "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:194
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77−#: qml/Components/Dialogs.qml:253
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
78msgid "Cancel"
79msgid "Cancel"
79msgstr "መሰረዣ"
80msgstr "መሰረዣ"
80
81
81#: qml/Components/Dialogs.qml:173
82#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr "ማጥፊያ"
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr "በእርግጥ ማጥፋት ይፈልጋሉ?"
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr "እንደገና ማስነሻ"
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr "ማጥፊያ"
99−
100−#: qml/Components/Dialogs.qml:207
101msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
102msgid "Reboot"
84msgid "Reboot"
103msgstr "እንደገና ማስነሻ"
85msgstr "እንደገና ማስነሻ"
104
86
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
106msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
107msgstr "በእርግጥ እንደገና ማስነሳት ይፈልጋሉ?"
89msgstr "በእርግጥ እንደገና ማስነሳት ይፈልጋሉ?"
108
90
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
110msgid "No"
92msgid "No"
111msgstr "አይ"
93msgstr "አይ"
112
94
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:182
114msgid "Yes"
96msgid "Yes"
115msgstr "አዎ"
97msgstr "አዎ"
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
119msgid "Power"
101msgid "Power"
120msgstr "ሐይል"
102msgstr "ሐይል"
121
103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
123msgid ""
105msgid ""
124"Are you sure you would like\n"
106"Are you sure you would like\n"
125"to power off?"
107"to power off?"
@@ -127,12 +109,12 @@ msgstr ""
127"በእርግጥ ሐይሉን ማጥፋት\n"
109"በእርግጥ ሐይሉን ማጥፋት\n"
128"ይፈልጋሉ?"
110"ይፈልጋሉ?"
129
111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:200
131msgctxt "Button: Power off the system"
113msgctxt "Button: Power off the system"
132msgid "Power off"
114msgid "Power off"
133msgstr "ሐይል ማጥፊያ"
115msgstr "ሐይል ማጥፊያ"
134
116
135−#: qml/Components/Dialogs.qml:244
117+#: qml/Components/Dialogs.qml:209
136msgctxt "Button: Restart the system"
118msgctxt "Button: Restart the system"
137msgid "Restart"
119msgid "Restart"
138msgstr "እንደገና ማስጀመሪያ"
120msgstr "እንደገና ማስጀመሪያ"
@@ -157,7 +139,7 @@ msgstr "መተግበሪያው ያልተቀመጠ ዳታ ይዟል:"
157msgctxt ""
139msgctxt ""
158"Re-dock means connect the device again to an external screen/mouse/keyboard"
140"Re-dock means connect the device again to an external screen/mouse/keyboard"
159msgid "Re-dock, save your work and close these apps to continue."
141msgid "Re-dock, save your work and close these apps to continue."
160−msgstr ""
142+msgstr "እንደገና-ማሳረፊያ: ስራዎትን ያስቀምጡ እና ይዝጉ መተግበሪያው እንዲቀጥል"
161
143
162#: qml/Components/ModeSwitchWarningDialog.qml:63
144#: qml/Components/ModeSwitchWarningDialog.qml:63
163msgid "Or force close now (unsaved data will be lost)."
145msgid "Or force close now (unsaved data will be lost)."
@@ -175,42 +157,58 @@ msgstr "አሁን እንደገና መገናኛ!"
175msgid "Close all"
157msgid "Close all"
176msgstr "ሁሉንም መዝጊያ"
158msgstr "ሁሉንም መዝጊያ"
177
159
178−#: qml/Dash/DashPageHeader.qml:270
160+#: qml/Dash/DashPageHeader.qml:337
179msgctxt "Button: Open the Ubuntu Store"
161msgctxt "Button: Open the Ubuntu Store"
180msgid "Store"
162msgid "Store"
181msgstr "ማስቀመጫ"
163msgstr "ማስቀመጫ"
182
164
183−#: qml/Dash/DashPageHeader.qml:277
165+#: qml/Dash/DashPageHeader.qml:344
184msgctxt "Button: Start a search in the current dash scope"
166msgctxt "Button: Start a search in the current dash scope"
185msgid "Search"
167msgid "Search"
186msgstr "መፈለጊያ"
168msgstr "መፈለጊያ"
187
169
188−#: qml/Dash/DashPageHeader.qml:287
170+#: qml/Dash/DashPageHeader.qml:354
189msgctxt "Button: Show the current dash scope settings"
171msgctxt "Button: Show the current dash scope settings"
190msgid "Settings"
172msgid "Settings"
191msgstr "ማሰናጃዎች"
173msgstr "ማሰናጃዎች"
192
174
193−#: qml/Dash/DashPageHeader.qml:294
175+#: qml/Dash/DashPageHeader.qml:361
194msgid "Remove from Favorites"
176msgid "Remove from Favorites"
195msgstr "ከምወዳቸው ማስወገጃ"
177msgstr "ከምወዳቸው ማስወገጃ"
196
178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198msgid "Add to Favorites"
180msgid "Add to Favorites"
199msgstr "ወደምወዳቸው መጨመሪያ"
181msgstr "ወደምወዳቸው መጨመሪያ"
200
182
201−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
183+#: qml/Dash/FiltersPopover.qml:60
202−msgid "See less"
184+msgid "Refine your results"
203−msgstr "አነስተኛ መመልከቻ"
185+msgstr "የ እርስዎን ውጤቶች እንደገና ማጣሪያ"
204
186
187+#: qml/Dash/FiltersPopover.qml:69
188+msgid "Reset"
189+msgstr "እንደ ነበረ መመለሻ"
190+
205−#: qml/Dash/GenericScopeView.qml:567
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
206−msgid "See all"
192+msgid "Show less"
207−msgstr "ሁሉንም መመልከቻ"
193+msgstr ""
208
194
209−#: qml/Dash/GenericScopeView.qml:629
195+#: qml/Dash/GenericScopeView.qml:579
196+msgid "Show all"
197+msgstr ""
198+
199+#: qml/Dash/GenericScopeView.qml:636
210msgctxt "Label: Hint for dash search line edit"
200msgctxt "Label: Hint for dash search line edit"
211msgid "Search"
201msgid "Search"
212msgstr "መፈለጊያ"
202msgstr "መፈለጊያ"
213
203
204+#: qml/Dash/PageHeaderExtraPanel.qml:55
205+msgid "Recent Searches"
206+msgstr "የ ቅርብ ጊዜ ፍለጋዎች"
207+
208+#: qml/Dash/PageHeaderExtraPanel.qml:66
209+msgid "Clear All"
210+msgstr "ሁሉንም ማጽጃ"
211+
214#: qml/Dash/Previews/PreviewActionCombo.qml:35
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
215msgid "More..."
213msgid "More..."
216msgstr "ተጨማሪ..."
214msgstr "ተጨማሪ..."
@@ -264,7 +262,7 @@ msgstr "እንዲሁም የተገጠሙ"
264msgid ""
262msgid ""
265"Your device is now connected to an external display. Use this screen as a "
263"Your device is now connected to an external display. Use this screen as a "
266"touch pad to interact with the pointer."
264"touch pad to interact with the pointer."
267−msgstr ""
265+msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ መጠቀሚያ"
268
266
269#: qml/Greeter/CoverPage.qml:118
267#: qml/Greeter/CoverPage.qml:118
270msgid "Unlock"
268msgid "Unlock"
@@ -278,11 +276,11 @@ msgstr "እንደገና ይሞክሩ"
278msgid "Tap to unlock"
276msgid "Tap to unlock"
279msgstr "ለመክፈት መታ ያድርጉ"
277msgstr "ለመክፈት መታ ያድርጉ"
280
278
281−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
282msgid "Sorry, incorrect passphrase."
280msgid "Sorry, incorrect passphrase."
283msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
281msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
284
282
285−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
286msgid "Sorry, incorrect passcode."
284msgid "Sorry, incorrect passcode."
287msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
285msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
288
286
@@ -311,7 +309,7 @@ msgstr ""
311msgid "Enter %1"
309msgid "Enter %1"
312msgstr "ማስገቢያ %1"
310msgstr "ማስገቢያ %1"
313
311
314−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
312+#: qml/Greeter/NarrowView.qml:117
315msgid "Enter passphrase"
313msgid "Enter passphrase"
316msgstr "የ ማለፊያ ሀረግ ያስገቡ"
314msgstr "የ ማለፊያ ሀረግ ያስገቡ"
317
315
@@ -337,7 +335,7 @@ msgstr "እባክዎን እንደገና-ያስገቡ"
337msgid "Sorry, incorrect passcode"
335msgid "Sorry, incorrect passcode"
338msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
336msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
339
337
340−#: qml/Notifications/NotificationMenuItemFactory.qml:129
338+#: qml/Notifications/NotificationMenuItemFactory.qml:124
341msgid "Show password"
339msgid "Show password"
342msgstr "የመግቢያ ቃል ማሳያ"
340msgstr "የመግቢያ ቃል ማሳያ"
343
341
@@ -349,62 +347,62 @@ msgstr "ወደ ጥሪው ለመመለስ መታ ያድርጉ..."
349msgid "Conference"
347msgid "Conference"
350msgstr "ስብሰባ"
348msgstr "ስብሰባ"
351
349
352−#: qml/Panel/Indicators/MenuItemFactory.qml:752
350+#: qml/Panel/Indicators/MenuItemFactory.qml:762
353msgid "Nothing is playing"
351msgid "Nothing is playing"
354msgstr "ምንም አይጫወትም"
352msgstr "ምንም አይጫወትም"
355
353
356−#: qml/Panel/Indicators/MenuItemFactory.qml:881
354+#: qml/Panel/Indicators/MenuItemFactory.qml:891
357#, qt-format
355#, qt-format
358msgid "%1 hour"
356msgid "%1 hour"
359msgid_plural "%1 hours"
357msgid_plural "%1 hours"
360msgstr[0] "%1 ሰአት"
358msgstr[0] "%1 ሰአት"
361msgstr[1] "%1 ሰአቶች"
359msgstr[1] "%1 ሰአቶች"
362
360
363−#: qml/Panel/Indicators/MenuItemFactory.qml:885
361+#: qml/Panel/Indicators/MenuItemFactory.qml:895
364#, qt-format
362#, qt-format
365msgid "%1 minute"
363msgid "%1 minute"
366msgid_plural "%1 minutes"
364msgid_plural "%1 minutes"
367msgstr[0] "%1 ደቂቃ"
365msgstr[0] "%1 ደቂቃ"
368msgstr[1] "%1 ደቂቃዎች"
366msgstr[1] "%1 ደቂቃዎች"
369
367
370−#: qml/Panel/Indicators/MenuItemFactory.qml:890
368+#: qml/Panel/Indicators/MenuItemFactory.qml:900
371#, qt-format
369#, qt-format
372msgid "%1 second"
370msgid "%1 second"
373msgid_plural "%1 seconds"
371msgid_plural "%1 seconds"
374msgstr[0] "%1 ሰከንድ"
372msgstr[0] "%1 ሰከንድ"
375msgstr[1] "%1 ሰከንዶች"
373msgstr[1] "%1 ሰከንዶች"
376
374
377−#: qml/Panel/Indicators/MenuItemFactory.qml:893
375+#: qml/Panel/Indicators/MenuItemFactory.qml:903
378msgid "0 seconds"
376msgid "0 seconds"
379msgstr "0 ሰከንዶች"
377msgstr "0 ሰከንዶች"
380
378
381#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
379#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
382−#: qml/Panel/Indicators/MenuItemFactory.qml:895
380+#: qml/Panel/Indicators/MenuItemFactory.qml:905
383#, qt-format
381#, qt-format
384msgid "%1 remaining"
382msgid "%1 remaining"
385msgstr "%1 የቀረው"
383msgstr "%1 የቀረው"
386
384
387−#: qml/Panel/Indicators/MenuItemFactory.qml:901
385+#: qml/Panel/Indicators/MenuItemFactory.qml:911
388msgid "In queue…"
386msgid "In queue…"
389msgstr "ወረፋ በመጠበቅ ላይ…"
387msgstr "ወረፋ በመጠበቅ ላይ…"
390
388
391−#: qml/Panel/Indicators/MenuItemFactory.qml:905
389+#: qml/Panel/Indicators/MenuItemFactory.qml:915
392msgid "Downloading"
390msgid "Downloading"
393msgstr "በማውረድ ላይ"
391msgstr "በማውረድ ላይ"
394
392
395−#: qml/Panel/Indicators/MenuItemFactory.qml:907
393+#: qml/Panel/Indicators/MenuItemFactory.qml:917
396msgid "Paused, tap to resume"
394msgid "Paused, tap to resume"
397msgstr "ማስቆሚያ: ለመቀጠል መታ ያድርጉ"
395msgstr "ማስቆሚያ: ለመቀጠል መታ ያድርጉ"
398
396
399−#: qml/Panel/Indicators/MenuItemFactory.qml:909
397+#: qml/Panel/Indicators/MenuItemFactory.qml:919
400msgid "Canceled"
398msgid "Canceled"
401msgstr "ተሰርዟል"
399msgstr "ተሰርዟል"
402
400
403−#: qml/Panel/Indicators/MenuItemFactory.qml:911
401+#: qml/Panel/Indicators/MenuItemFactory.qml:921
404msgid "Finished"
402msgid "Finished"
405msgstr "ጨርሷል"
403msgstr "ጨርሷል"
406
404
407−#: qml/Panel/Indicators/MenuItemFactory.qml:913
405+#: qml/Panel/Indicators/MenuItemFactory.qml:923
408msgid "Failed, tap to retry"
406msgid "Failed, tap to retry"
409msgstr "አልተቻለም: እንደገና ለመሞከር መታ ያድርጉ"
407msgstr "አልተቻለም: እንደገና ለመሞከር መታ ያድርጉ"
410
408
@@ -424,247 +422,326 @@ msgctxt "Button: Call back on phone"
424msgid "Call back"
422msgid "Call back"
425msgstr "መልሶ መደወያ"
423msgstr "መልሶ መደወያ"
426
424
427−#: qml/Tutorial/TutorialBottom.qml:28
425+#: qml/Stages/SideStage.qml:76
428−msgid "Open special menus"
426+msgid "Drag using 3 fingers any application from one window to the other"
429−msgstr "የተለዩ ዝርዝሮች መክፈቻ"
427+msgstr "መጎተቻ 3 ጣቶች በ መጠቀም ማንኛውንም መተግበሪያ ከ አንድ መስኮት ወደ ሌላ"
430−
431−#: qml/Tutorial/TutorialBottom.qml:29
432−msgid "Swipe up from the bottom edge."
433−msgstr "ከ ታች ጠርዝ በኩል ወደ ላይ ይጥረጉ"
434
428
435−#: qml/Tutorial/TutorialBottomFinish.qml:24
429+#: qml/Tutorial/TutorialBottom.qml:78
436−msgid "This action does different things for different apps"
430+msgid "Swipe up to add a contact"
437−msgstr "ይህ ተግባር ለተለያዩ መተግበሪያዎች የተለያየ ነገር ይሰራል"
431+msgstr "ወደ ላይ ይጥረጉ ግንኙነት ለ መጨመር"
438
432
439−#: qml/Tutorial/TutorialBottomFinish.qml:25
433+#: qml/Tutorial/TutorialBottom.qml:80
440−msgid "Tap here to finish."
434+msgid "Swipe up for favorite calculations"
441−msgstr "እዚህ መታ ይድርጉ ለመጨረስ"
435+msgstr "ወደ ላይ ይጥረጉ የሚወዱትን ለማስላት"
442
436
443−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
437+#: qml/Tutorial/TutorialBottom.qml:82
444−#: qml/Tutorial/TutorialRight.qml:144
438+msgid "Swipe up for recent calls"
445−msgid "Tap here to continue."
439+msgstr "ወደ ላይ ይጥረጉ ለ ቅርብ ጊዜ ጥሪዎች"
446−msgstr "እዚህ መታ ይድርጉ ለመቀጠል"
447
440
448−#: qml/Tutorial/TutorialLeft.qml:26
441+#: qml/Tutorial/TutorialBottom.qml:84
449−msgid "Open the launcher"
442+msgid "Swipe up to create a message"
450−msgstr "ማስጀመሪያውን መክፈቻ"
443+msgstr "ወደ ላይ ይጥረጉ መልእክት ለ መፍጠር"
451
444
452−#: qml/Tutorial/TutorialLeft.qml:27
445+#: qml/Tutorial/TutorialBottom.qml:85
453−msgid "Short swipe from the left edge."
446+msgid "Swipe up to manage the app"
454−msgstr "ከ ግራ ጠርዝ በኩል በትንሹ ይጥረጉ"
447+msgstr "ወደ ላይ ይጥረጉ መተግበሪያ ለማስተዳደር"
455
448
456−#: qml/Tutorial/TutorialLeftFinish.qml:24
449+#: qml/Tutorial/TutorialLeftLong.qml:47
457−msgid "These are the shortcuts to favorite apps"
450+msgid "Long swipe from the left edge to open the Today scope"
458−msgstr "እነዚህ አቋራጮች ናቸው እርስዎ ለሚወዷቸው መተግበሪያዎች"
451+msgstr "በ ረጅሙ ከ ግራ ጠርዝ በኩል ይጥረጉ የ ዛሬን ክልል ለ መክፈት"
459
452
460−#: qml/Tutorial/TutorialPage.qml:178
453+#: qml/Tutorial/TutorialLeft.qml:47
461−msgid "You almost got it!"
454+msgid "Swipe from the left edge to open the launcher"
462−msgstr "እርስዎ አሁን እያገኙት ነው!"
455+msgstr "ከ ግራ ጠርዝ በኩል ይጥረጉ ማስጀመሪያውን ለ መክፈት"
463
456
464−#: qml/Tutorial/TutorialPage.qml:195
457+#: qml/Tutorial/TutorialRight.qml:55
465−msgid "Try again."
458+msgid "Push your mouse against the right edge to view your open apps"
466−msgstr "እንደገና ይሞክሩ"
459+msgstr ""
467
460
468−#: qml/Tutorial/TutorialRight.qml:31
461+#: qml/Tutorial/TutorialRight.qml:56
469−msgid "To view open apps"
462+msgid "Short or long swipe from the right edge to view your open apps"
470−msgstr "ለመመልከት መተግበሪያዎች ይክፈቱ"
463+msgstr "በ አጭሩ ወይንም በ ረጅሙ ይጥረጉ ከ ቀኝ ጠረዝ በኩል የ ተከፈቱ መተግበሪያዎችን ለማየት"
471
464
472−#: qml/Tutorial/TutorialRight.qml:32
465+#: qml/Tutorial/TutorialTop.qml:53
473−msgid "Long swipe from the right edge."
466+msgid "Swipe from the top right edge to open the notification bar"
474−msgstr "ከ ቀኝ ጠርዝ በኩል በረጅሙ ይጥረጉ"
467+msgstr "ከ ላይ ቀኝ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
475
468
476−#: qml/Tutorial/TutorialRight.qml:122
469+#: qml/Tutorial/TutorialTop.qml:54
477−msgid "View all your running tasks."
470+msgid "Swipe from the top edge to open the notification bar"
478−msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
471+msgstr "ከ ላይ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
479
472
480−#: qml/Wizard/Page.qml:89
473+#: qml/Wizard/Page.qml:54
481msgctxt "Button: Go back one page in the Wizard"
474msgctxt "Button: Go back one page in the Wizard"
482msgid "Back"
475msgid "Back"
483msgstr "ወደ ኋላ"
476msgstr "ወደ ኋላ"
484
477
485#: qml/Wizard/Pages/10-welcome.qml:27
478#: qml/Wizard/Pages/10-welcome.qml:27
486−msgid "Hi!"
479+msgid "Language"
487−msgstr "ሰላም"
480+msgstr "ቋንቋ"
488−
481+
489−#: qml/Wizard/Pages/10-welcome.qml:44
490−msgid "Welcome to your Ubuntu device."
491−msgstr "እንኳን ድህና መጡ ወደ ኡቡንቱ"
492−
493−#: qml/Wizard/Pages/10-welcome.qml:52
494−msgid "Let’s get started."
495−msgstr "ስራ እንጀምር"
496−
497−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
482+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
498−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
483+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
499−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
484+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
485+#: qml/Wizard/Pages/75-report-check.qml:84
486+#: qml/Wizard/Pages/passcode-desktop.qml:124
500−#: qml/Wizard/Pages/passwd-set.qml:90
487+#: qml/Wizard/Pages/password-set.qml:141
501−msgid "Continue"
488+msgid "Next"
502msgstr "ይቀጥሉ"
489msgstr "ይቀጥሉ"
503
490
504−#: qml/Wizard/Pages/20-sim.qml:25
491+#: qml/Wizard/Pages/30-wifi.qml:29
505−msgid "Add a SIM card and restart your device"
492+msgid "Connect to Wi‑Fi"
506−msgstr "የ ሲም ካርድ ይጨምሩ እና አካሉን እንደገና ያስነሱ"
493+msgstr "ወደ ዋይ‑ፋይ መገናኛ"
494+
495+#: qml/Wizard/Pages/30-wifi.qml:130
496+msgid "Connected"
497+msgstr "ተገናኝቷል"
507
498
508−#: qml/Wizard/Pages/20-sim.qml:59
499+#: qml/Wizard/Pages/30-wifi.qml:163
509−msgid "Without it, you won’t be able to make calls or use text messaging."
500+msgid "Available Wi-Fi networks"
510−msgstr "ያለ እሱ ጥሪ መፈጸም ወይንም የ ጽሁፍ መልእክት መላክ አይችሉም"
501+msgstr "ዝግጁ የ ዋይ-ፋይ ኔትዎርኮች"
511
502
512−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
503+#: qml/Wizard/Pages/30-wifi.qml:164
504+msgid "No available Wi-Fi networks"
505+msgstr "ምንም ዝግጁ ዋይ-ፋይ ኔትዎርኮች አልተገኙም"
506+
507+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
508+#: qml/Wizard/Pages/sim.qml:101
513msgid "Skip"
509msgid "Skip"
514msgstr "መዝለያ"
510msgstr "መዝለያ"
515
511
516−#: qml/Wizard/Pages/30-passwd-type.qml:39
512+#: qml/Wizard/Pages/40-location.qml:27
517−msgid "Lock security"
513+msgid "Location Services"
518−msgstr "ደህንነት መቆለፊያ"
514+msgstr "የ አካባቢ ግልጋሎት"
519
515
520−#: qml/Wizard/Pages/30-passwd-type.qml:79
516+#: qml/Wizard/Pages/40-location.qml:83
521−msgid "Please select how you’d like to unlock your device."
517+msgid ""
522−msgstr "እባክዎን የ እርስዎን አካል እንዴት እንደሚከፈት ይምረጡ"
518+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
519+"(recommended)"
520+msgstr "ይጠቀሙ ጂፒኤስ: ዋይ-ፋይ: hotspots እና ተንቀሳቃሽ ኔትዎርክ ሳይታወቁ አካባቢ ለማግኘት (ይመከራሉ)"
523
521
524−#: qml/Wizard/Pages/30-passwd-type.qml:102
522+#: qml/Wizard/Pages/40-location.qml:105
525−msgctxt "Label: Type of security method"
523+#, qt-format
526−msgid "Swipe"
524+msgid "By selecting this option you agree to the Nokia HERE %1."
527−msgstr "መጥረጊያ"
525+msgstr "ይህን ምርጫ በ መምረጥ እርስዎ ተስማምተዋል ከ Nokia HERE %1."
528
526
529−#: qml/Wizard/Pages/30-passwd-type.qml:103
527+#: qml/Wizard/Pages/40-location.qml:106
530−msgctxt "Label: Description of security method"
528+msgctxt "part of: Nokia HERE terms and conditions"
531−msgid "No security"
529+msgid "terms and conditions"
532−msgstr "ደህንነት አልተገኘም"
530+msgstr "ስምምነት እና ሁኔታዎች"
533
531
534−#: qml/Wizard/Pages/30-passwd-type.qml:105
532+#: qml/Wizard/Pages/40-location.qml:160
535−msgctxt "Label: Type of security method"
536−msgid "Passcode"
533+msgid "GPS only"
537−msgstr "ማለፊያ ኮድ"
534+msgstr "ጂፒኤስ ብቻ"
538
535
539−#: qml/Wizard/Pages/30-passwd-type.qml:106
536+#: qml/Wizard/Pages/40-location.qml:214
540−msgctxt "Label: Description of security method"
537+msgid "Don't use my location"
541−msgid "4 digits only"
538+msgstr "የ እኔን አካባቢ አትጠቀም"
542−msgstr "4 ዲጂት ብቻ"
543
539
544−#: qml/Wizard/Pages/30-passwd-type.qml:108
540+#: qml/Wizard/Pages/40-location.qml:260
545−msgctxt "Label: Type of security method"
541+msgid "You can change it later in System Settings."
546−msgid "Passphrase"
542+msgstr "እርስዎ በኋላ በ ስርአት ማሰናጃ ውስጥ መቀየር ይችላሉ"
547−msgstr "የማለፊያ ሐረግ"
548
543
549−#: qml/Wizard/Pages/30-passwd-type.qml:109
544+#: qml/Wizard/Pages/50-timezone.qml:29
550−msgctxt "Label: Description of security method"
545+msgid "Time Zone"
551−msgid "Numbers and letters"
546+msgstr "የ ሰአት ክልል"
552−msgstr "ቁጥሮች እና ፊደሎች"
553
547
554−#: qml/Wizard/Pages/40-wifi.qml:29
548+#: qml/Wizard/Pages/50-timezone.qml:178
555−msgid "Connect to Wi‑Fi"
549+msgid "Enter your city"
556−msgstr "ወደ ዋይ‑ፋይ መገናኛ"
550+msgstr "የ እርስዎን ከተማ ያስገቡ"
551+
552+#: qml/Wizard/Pages/60-account.qml:24
553+msgid "Personalize Your Device"
554+msgstr "የ እርስዎን አካል የ ግልዎ ያድርጉ"
555+
556+#: qml/Wizard/Pages/60-account.qml:48
557+msgid "Preferred Name"
558+msgstr "የመረጡት ስም"
559+
560+#: qml/Wizard/Pages/70-passwd-type.qml:39
561+msgid "Lock Screen"
562+msgstr "መመልከቻውን መቆለፊያ"
557
563
558−#: qml/Wizard/Pages/40-wifi.qml:168
564+#: qml/Wizard/Pages/70-passwd-type.qml:101
559−msgid "Available networks…"
565+msgctxt "Label: Type of security method"
560−msgstr "ዝግጁ ኔትዎርኮች…"
566+msgid "Create new password"
567+msgstr "አዲስ የ መግቢያ ቃል መፍጠሪያ"
561
568
562−#: qml/Wizard/Pages/40-wifi.qml:169
569+#: qml/Wizard/Pages/70-passwd-type.qml:103
563−msgid "No available networks."
570+msgctxt "Label: Type of security method"
564−msgstr "ዝግጁ ኔትዎርኮች አልተገኙም"
571+msgid "Create passcode (numbers only)"
572+msgstr "አዲስ የ ማለፊያ ኮድ መፍጠሪያ (ቁጥር ብቻ)"
565
573
566−#: qml/Wizard/Pages/50-location.qml:27
574+#: qml/Wizard/Pages/70-passwd-type.qml:105
567−msgid "Location"
575+msgctxt "Label: Type of security method"
568−msgstr "አካባቢ"
576+msgid "No lock code"
577+msgstr "ምንም መቆለፊያ ኮድ አልተገኘም"
569
578
570−#: qml/Wizard/Pages/50-location.qml:62
579+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
571−msgid "Let the phone detect your location:"
580+msgid "Privacy Policy"
572−msgstr "እባክዎን እርስዎ ያሉበትን አካባቢ ስልኩ እራሱ ይፈልግ:"
581+msgstr "የ ግላዊነት መመሪያ"
573
582
574−#: qml/Wizard/Pages/50-location.qml:69
583+#: qml/Wizard/Pages/75-report-check.qml:26
575−msgid "Using GPS only (less accurate)"
584+msgid "Help Us Improve"
576−msgstr "ጂፒኤስን ብቻ መጠቀሚያ(በጣም ቅርብ)"
585+msgstr "እንድንሻሻል ይርዱን"
577
586
578−#: qml/Wizard/Pages/50-location.qml:86
587+#: qml/Wizard/Pages/75-report-check.qml:59
579−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
588+msgid "Improve system performance by sending us crashes and error reports."
580−msgstr "ይጠቀሙ ጂፒኤስ ግልጽ ያልሆነ ዋይ-ፋይ እና ተንቀሳቃሽ ኔትዎርክ መረጃ (ይመከራሉ)"
589+msgstr "የ ስርአቱን አፈጻጸም ለማሻሻል የ ግጭት እና የ ስህተት መልእክቶች ይላኩልን"
581
590
582−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
583−#: qml/Wizard/Pages/50-location.qml:103
591+#: qml/Wizard/Pages/75-report-check.qml:60
584−msgid ""
592+msgid "Privacy policy"
585−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
593+msgstr "የ ግላዊነት መመሪያ"
586−"conditions</a>."
587−msgstr "ይህን ምርጫ በመምረጥ ተስማምቻለሁ ከ Nokia HERE <a href='#'>ውሎች እና ሁኔታዎች ጋር</a>."
588
594
589−#: qml/Wizard/Pages/50-location.qml:112
595+#: qml/Wizard/Pages/80-finished.qml:89
590−msgid "Not at all"
596+msgid "Welcome to Ubuntu"
591−msgstr "አይደለም"
597+msgstr "እንኳን ደህና መጡ ወደ ኡቡንቱ"
592
598
593−#: qml/Wizard/Pages/50-location.qml:124
599+#: qml/Wizard/Pages/80-finished.qml:104
594−msgid "You can change your mind later in <b>System Settings</b>."
600+msgid "You are ready to use your device now"
595−msgstr "እርስዎ በኋላ መቀየር ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b>."
601+msgstr "የ እርስዎን አካል ለ መጠቀም አሁን ዝግጁ ነው"
596
602
597−#: qml/Wizard/Pages/60-reporting.qml:26
603+#: qml/Wizard/Pages/80-finished.qml:124
598−msgid "Improving your experience"
604+msgid "Get Started"
599−msgstr "የ እርስዎን ልምምድ ማሻሻያ"
605+msgstr "እንጀምር"
600
606
601−#: qml/Wizard/Pages/60-reporting.qml:46
607+#: qml/Wizard/Pages/here-terms.qml:25
608+msgid "Terms & Conditions"
609+msgstr "ውሎች & ሁኔታዎች"
610+
611+#: qml/Wizard/Pages/here-terms.qml:69
612+msgid "Your device uses positioning technologies provided by HERE."
613+msgstr "የ እርስዎ አካል ይጠቀማል ያሉበትን አካባቢ ቴክኖሎጂ የቀረበውን በ HERE."
614+
615+#: qml/Wizard/Pages/here-terms.qml:81
602msgid ""
616msgid ""
603−"Your phone is set up to automatically report errors to Canonical and its "
617+"To provide you with positioning services and to improve their quality, HERE "
604−"partners, the makers of the operating system."
618+"collects information about nearby cell towers and Wi-Fi hotspots around your "
619+"current location whenever your position is being found."
605msgstr ""
620msgstr ""
606−"የ እርስዎ ስልክ ራሱ በራሱ የ ስህተት መግለጫዎች ወደ Canonical and its partners, የ መስሪያ ስርአት "
621+"እርስዎ ያሉበትን አካባቢ ግልጋሎት ለ መስጠት እና ለማሻሻል: HERE መረጃ ይሰበስባል በቅርብ ያሉ የ ሴል ምሶሶዎች እና "
607−"አምራቾች"
622+"ዋይ-ፋይ hotspots እርስዎ አሁን ያሉበትን አካባቢ ሲታወቅ"
608
623
609−#: qml/Wizard/Pages/60-reporting.qml:53
624+#: qml/Wizard/Pages/here-terms.qml:93
610msgid ""
625msgid ""
611−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
626+"The information collected is used to analyze the service and to improve the "
612−"Privacy</b>"
627+"use of service, but not to identify you personally."
613−msgstr ""
628+msgstr "የ ተሰበሰበው መረጃ የሚጠቅመው ግልጋሎት ለማሻሻል ነው: ነገር ግን እርስዎን በ ግል ለ መለየት አይደለም"
614−"ይህን ግልጋሎት ማሰናከል ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b> under <b>Security &amp; Privacy</b>"
615
629
616−#: qml/Wizard/Pages/80-finished.qml:24
630+#: qml/Wizard/Pages/here-terms.qml:106
617−msgid "All done"
631+#, qt-format
618−msgstr "ሁሉም ተፈጽሟል"
632+msgid "By continuing, you agree to the HERE platform %1 and %2."
633+msgstr "በ መቀጠል እርስዎ ተስማምተዋል ከ HERE platform %1 እና %2."
619
634
620−#: qml/Wizard/Pages/80-finished.qml:39
635+#: qml/Wizard/Pages/here-terms.qml:107
621−msgid "Nice work!"
636+msgid "Service Terms"
622−msgstr "ጥሩ ሰርተዋል!"
637+msgstr "የ ግልጋሎት ስምምነቶች"
623
638
624−#: qml/Wizard/Pages/80-finished.qml:46
639+#: qml/Wizard/Pages/passcode-confirm.qml:43
625−msgid "Your device is now ready to use."
640+#: qml/Wizard/Pages/passcode-desktop.qml:80
626−msgstr "የ እርስዎ አካል አሁን ዝግጁ ነው"
641+msgid "Confirm passcode"
642+msgstr "የማለፊያ ኮድ ማረጋገጫ"
627
643
628−#: qml/Wizard/Pages/80-finished.qml:53
644+#: qml/Wizard/Pages/passcode-confirm.qml:45
629−msgid "Finish"
645+msgid "Incorrect passcode."
630−msgstr "መጨረሻ"
646+msgstr "የ ተሳሳተ የማለፊያ ኮድ"
631
647
632−#: qml/Wizard/Pages/here-terms.qml:27
648+#: qml/Wizard/Pages/passcode-confirm.qml:45
633−msgid "Terms & Conditions"
649+msgctxt "Enter the passcode again"
634−msgstr "ውሎች & ሁኔታዎች"
650+msgid "Please re-enter."
651+msgstr "እባክዎን እንደገና-ያስገቡ"
635
652
636−#: qml/Wizard/Pages/passwd-confirm.qml:49
653+#: qml/Wizard/Pages/passcode-desktop.qml:30
637−msgid "Confirm passphrase"
654+msgid "Lock Screen Passcode"
638−msgstr "የ ማለፊያ ሐረግ ማረጋገጫ"
655+msgstr "የ መመልከቻው መቆለፊያ የ ማለፊያ ኮድ"
639
656
640−#: qml/Wizard/Pages/passwd-confirm.qml:50
657+#: qml/Wizard/Pages/passcode-desktop.qml:56
641−msgid "Confirm passcode"
658+msgid "Enter 4 numbers to setup your passcode"
642−msgstr "የማለፊያ ኮድ ማረጋገጫ"
659+msgstr "ያስገቡ 4 ቁጥሮች የ እርስዎን የ ማለፊያ ኮድ ለማሰናዳት"
643
660
644−#: qml/Wizard/Pages/passwd-confirm.qml:53
661+#: qml/Wizard/Pages/passcode-desktop.qml:65
645−#: qml/Wizard/Pages/passwd-confirm.qml:54
662+#: qml/Wizard/Pages/passcode-set.qml:54
646−msgid "Please try again."
663+msgid "Choose passcode"
647−msgstr "እባክዎን እንደገና ይሞክሩ"
664+msgstr "የ ማለፊያ ኮድ ይምረጡ"
648
665
649−#: qml/Wizard/Pages/passwd-set.qml:61
666+#: qml/Wizard/Pages/passcode-desktop.qml:105
650−msgid "Choose your passcode"
667+msgid "Passcode too short"
651−msgstr "የ እርስዎን የማለፊያ ኮድ ይምረጡ"
668+msgstr "የ ማለፊያ ኮዱ በጣም አጭር ነው"
652
669
653−#: qml/Wizard/Pages/passwd-set.qml:68
670+#: qml/Wizard/Pages/passcode-desktop.qml:107
654−msgid "Passphrase must be 4 characters long"
671+msgid "Passcodes match"
655−msgstr "የ ማለፊያ ሀረግ ቢያንስ 4 ባህሪዎች መሆን አለበት"
672+msgstr "የ ማለፊያ ኮዶቹ ተመሳሳይ ናቸው"
656
673
657−#. Translators: This is the arrow for "Back" buttons
674+#: qml/Wizard/Pages/passcode-desktop.qml:109
658−#: qml/Wizard/StackButton.qml:39
675+msgid "Passcodes do not match"
659−#, qt-format
676+msgstr "የ ማለፊያ ኮዶቹ አይመሳሰሉም"
660−msgid "〈 %1"
661−msgstr "〈 %1"
662
677
663−#. Translators: This is the arrow for "Forward" buttons
678+#: qml/Wizard/Pages/passcode-set.qml:62
679+msgid "Passcode must be 4 characters long"
680+msgstr "የ ማለፊያ ኮድ 4 ባህሪዎች መሆን አለበት"
681+
682+#: qml/Wizard/Pages/password-set.qml:30
683+msgid "Lock Screen Password"
684+msgstr "የ መመልከቻ መቆለፊያ የ መግቢያ ቃል"
685+
686+#: qml/Wizard/Pages/password-set.qml:61
687+msgid "Enter at least 8 characters"
688+msgstr "ያስገቡ ቢያንስ 8 ባህሪዎች"
689+
664−#: qml/Wizard/StackButton.qml:42
690+#: qml/Wizard/Pages/password-set.qml:73
665−#, qt-format
691+msgid "Choose password"
666−msgid "%1 〉"
692+msgstr "የ መግቢያ ቃል ይምረጡ"
667−msgstr "%1 〉"
693+
694+#: qml/Wizard/Pages/password-set.qml:103
695+msgid "Confirm password"
696+msgstr "የ መግቢያ ቃሉን ያረጋግጡ"
697+
698+#: qml/Wizard/Pages/sim.qml:27
699+msgid "No SIM card installed"
700+msgstr "ምንም ሲም ካርድ አልተገጠመም"
701+
702+#: qml/Wizard/Pages/sim.qml:54
703+msgid "SIM card added"
704+msgstr "ሲም ካርድ ተጨምሯል"
705+
706+#: qml/Wizard/Pages/sim.qml:55
707+msgid "You must restart the device to access the mobile network."
708+msgstr "እርስዎ አካሉን እንደገና ማስጀመር አለብዎት ተንቀሳቃሽ ኔትዎርክ ጋር ለ መድረስ"
709+
710+#: qml/Wizard/Pages/sim.qml:59
711+msgid "Restart"
712+msgstr "እንደገና ማስጀመሪያ"
713+
714+#: qml/Wizard/Pages/sim.qml:78
715+msgid "You won’t be able to make calls or use text messaging without a SIM."
716+msgstr "ያለ ሲም ካርድ እርስዎ ጥሪ መፈጸም ወይንም በ ጽሁፍ መልእክት መላክ አይችሉም"
717+
718+#: qml/Wizard/Pages/sim.qml:90
719+msgid "To proceed with no SIM tap Skip."
720+msgstr "ያለ ሲም ለ መቀጠል መዝለያውን መታ ያድርጉ"
721+
722+#: qml/Wizard/PasswordMeter.qml:87
723+msgid "Passwords match"
724+msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ ናቸው"
725+
726+#: qml/Wizard/PasswordMeter.qml:89
727+msgid "Passwords do not match"
728+msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ አይደሉም"
729+
730+#: qml/Wizard/PasswordMeter.qml:93
731+msgid "Strong password"
732+msgstr "ጠንካራ የ መግቢያ ቃል"
733+
734+#: qml/Wizard/PasswordMeter.qml:95
735+msgid "Fair password"
736+msgstr "ደህና የ መግቢያ ቃል"
737+
738+#: qml/Wizard/PasswordMeter.qml:97
739+msgid "Weak password"
740+msgstr "ደካማ የ መግቢያ ቃል"
741+
742+#: qml/Wizard/PasswordMeter.qml:99
743+msgid "Very weak password"
744+msgstr "በጣም ደካማ የ መግቢያ ቃል"
668
745
669#~ msgid "Top edge"
746#~ msgid "Top edge"
670#~ msgstr "የላይ ጠርዝ"
747#~ msgstr "የላይ ጠርዝ"
@@ -696,6 +773,12 @@ msgstr "%1 〉"
696#~ msgid "Search"
773#~ msgid "Search"
697#~ msgstr "መፈለጊያ"
774#~ msgstr "መፈለጊያ"
698
775
776+#~ msgid "See less"
777+#~ msgstr "አነስተኛ መመልከቻ"
778+
779+#~ msgid "See all"
780+#~ msgstr "ሁሉንም መመልከቻ"
781+
699#~ msgid "Skip intro"
782#~ msgid "Skip intro"
700#~ msgstr "መግቢያውን መዝለያ"
783#~ msgstr "መግቢያውን መዝለያ"
701
784
@@ -735,6 +818,9 @@ msgstr "%1 〉"
735#~ msgid "Log out"
818#~ msgid "Log out"
736#~ msgstr "መውጫ"
819#~ msgstr "መውጫ"
737
820
821+#~ msgid "Are you sure you want to shut down?"
822+#~ msgstr "በእርግጥ ማጥፋት ይፈልጋሉ?"
823+
738#~ msgid "Shut down"
824#~ msgid "Shut down"
739#~ msgstr "ማጥፊያ"
825#~ msgstr "ማጥፊያ"
740
826
@@ -756,24 +842,188 @@ msgstr "%1 〉"
756#~ msgid "Roaming"
842#~ msgid "Roaming"
757#~ msgstr "ማዘዋወሪያ"
843#~ msgstr "ማዘዋወሪያ"
758
844
759−#~ msgid "Restart"
760−#~ msgstr "እንደገና ማስጀመሪያ"
761−
762#~ msgid "Manage Scopes"
845#~ msgid "Manage Scopes"
763#~ msgstr "የ ክልል አስተዳዳሪ"
846#~ msgstr "የ ክልል አስተዳዳሪ"
764
847
765#~ msgid "Please re-enter"
848#~ msgid "Please re-enter"
766#~ msgstr "እባክዎን እንደገና-ያስገቡ"
849#~ msgstr "እባክዎን እንደገና-ያስገቡ"
767
850
851+#~ msgid "Lock security"
852+#~ msgstr "ደህንነት መቆለፊያ"
853+
768#~ msgid "Please select how you’d like to unlock your phone."
854#~ msgid "Please select how you’d like to unlock your phone."
769#~ msgstr "እባክዎን የ እርስዎን ስልክ እንዴት እንደሚከፍቱ ይምረጡ"
855#~ msgstr "እባክዎን የ እርስዎን ስልክ እንዴት እንደሚከፍቱ ይምረጡ"
770
856
857+#~ msgid "Improving your experience"
858+#~ msgstr "የ እርስዎን ልምምድ ማሻሻያ"
859+
860+#~ msgid "Available networks…"
861+#~ msgstr "ዝግጁ ኔትዎርኮች…"
862+
863+#~ msgid "No available networks."
864+#~ msgstr "ዝግጁ ኔትዎርኮች አልተገኙም"
865+
866+#~ msgid "Location"
867+#~ msgstr "አካባቢ"
868+
869+#~ msgid ""
870+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
871+#~ "Privacy</b>"
872+#~ msgstr ""
873+#~ "ይህን ግልጋሎት ማሰናከል ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b> under <b>Security &amp; Privacy</b>"
874+
875+#~ msgid "Nice work!"
876+#~ msgstr "ጥሩ ሰርተዋል!"
877+
878+#~ msgid "All done"
879+#~ msgstr "ሁሉም ተፈጽሟል"
880+
881+#~ msgid "Finish"
882+#~ msgstr "መጨረሻ"
883+
771#~ msgid "Your phone is now ready to use."
884#~ msgid "Your phone is now ready to use."
772#~ msgstr "ስልኩ አሁን ለመጠቀም ዝግጁ ነው"
885#~ msgstr "ስልኩ አሁን ለመጠቀም ዝግጁ ነው"
773
886
887+#~ msgid "Confirm passphrase"
888+#~ msgstr "የ ማለፊያ ሐረግ ማረጋገጫ"
889+
890+#~ msgid "Please try again."
891+#~ msgstr "እባክዎን እንደገና ይሞክሩ"
892+
893+#~ msgid "Add a SIM card and restart your device"
894+#~ msgstr "የ ሲም ካርድ ይጨምሩ እና አካሉን እንደገና ያስነሱ"
895+
896+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
897+#~ msgstr "ያለ እሱ ጥሪ መፈጸም ወይንም የ ጽሁፍ መልእክት መላክ አይችሉም"
898+
899+#~ msgid "Hi!"
900+#~ msgstr "ሰላም"
901+
774#~ msgid "Welcome to your Ubuntu phone."
902#~ msgid "Welcome to your Ubuntu phone."
775#~ msgstr "እንኳን ደህና መጡ ወደ እርስዎ ኡቡንቱ ስልክ"
903#~ msgstr "እንኳን ደህና መጡ ወደ እርስዎ ኡቡንቱ ስልክ"
776
904
905+#~ msgid "Let’s get started."
906+#~ msgstr "ስራ እንጀምር"
907+
908+#~ msgid "Continue"
909+#~ msgstr "ይቀጥሉ"
910+
911+#~ msgid "Passphrase must be 4 characters long"
912+#~ msgstr "የ ማለፊያ ሀረግ ቢያንስ 4 ባህሪዎች መሆን አለበት"
913+
914+#~ msgid "Choose your passcode"
915+#~ msgstr "የ እርስዎን የማለፊያ ኮድ ይምረጡ"
916+
917+#~ msgid "Let the phone detect your location:"
918+#~ msgstr "እባክዎን እርስዎ ያሉበትን አካባቢ ስልኩ እራሱ ይፈልግ:"
919+
920+#, qt-format
921+#~ msgid "〈 %1"
922+#~ msgstr "〈 %1"
923+
924+#, qt-format
925+#~ msgid "%1 〉"
926+#~ msgstr "%1 〉"
927+
928+#~ msgid "You can change your mind later in <b>System Settings</b>."
929+#~ msgstr "እርስዎ በኋላ መቀየር ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b>."
930+
931+#~ msgid "Not at all"
932+#~ msgstr "አይደለም"
933+
934+#~ msgid "Using GPS only (less accurate)"
935+#~ msgstr "ጂፒኤስን ብቻ መጠቀሚያ(በጣም ቅርብ)"
936+
937+#~ msgid ""
938+#~ "Your phone is set up to automatically report errors to Canonical and its "
939+#~ "partners, the makers of the operating system."
940+#~ msgstr ""
941+#~ "የ እርስዎ ስልክ ራሱ በራሱ የ ስህተት መግለጫዎች ወደ Canonical and its partners, የ መስሪያ ስርአት "
942+#~ "አምራቾች"
943+
944+#~ msgid ""
945+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
946+#~ "conditions</a>."
947+#~ msgstr "ይህን ምርጫ በመምረጥ ተስማምቻለሁ ከ Nokia HERE <a href='#'>ውሎች እና ሁኔታዎች ጋር</a>."
948+
949+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
950+#~ msgstr "ይጠቀሙ ጂፒኤስ ግልጽ ያልሆነ ዋይ-ፋይ እና ተንቀሳቃሽ ኔትዎርክ መረጃ (ይመከራሉ)"
951+
952+#~ msgid "This action does different things for different apps"
953+#~ msgstr "ይህ ተግባር ለተለያዩ መተግበሪያዎች የተለያየ ነገር ይሰራል"
954+
955+#~ msgid "Tap here to finish."
956+#~ msgstr "እዚህ መታ ይድርጉ ለመጨረስ"
957+
958+#~ msgid "Short swipe from the left edge."
959+#~ msgstr "ከ ግራ ጠርዝ በኩል በትንሹ ይጥረጉ"
960+
961+#~ msgid "Open the launcher"
962+#~ msgstr "ማስጀመሪያውን መክፈቻ"
963+
964+#~ msgid "Tap here to continue."
965+#~ msgstr "እዚህ መታ ይድርጉ ለመቀጠል"
966+
967+#~ msgid "These are the shortcuts to favorite apps"
968+#~ msgstr "እነዚህ አቋራጮች ናቸው እርስዎ ለሚወዷቸው መተግበሪያዎች"
969+
970+#~ msgid "Swipe up from the bottom edge."
971+#~ msgstr "ከ ታች ጠርዝ በኩል ወደ ላይ ይጥረጉ"
972+
973+#~ msgid "Open special menus"
974+#~ msgstr "የተለዩ ዝርዝሮች መክፈቻ"
975+
976+#~ msgid "To view open apps"
977+#~ msgstr "ለመመልከት መተግበሪያዎች ይክፈቱ"
978+
979+#~ msgid "Try again."
980+#~ msgstr "እንደገና ይሞክሩ"
981+
982+#~ msgid "You almost got it!"
983+#~ msgstr "እርስዎ አሁን እያገኙት ነው!"
984+
985+#~ msgid "Long swipe from the right edge."
986+#~ msgstr "ከ ቀኝ ጠርዝ በኩል በረጅሙ ይጥረጉ"
987+
988+#~ msgid "View all your running tasks."
989+#~ msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
990+
991+#~ msgctxt "Button: Shut down the system"
992+#~ msgid "Shut down"
993+#~ msgstr "ማጥፊያ"
994+
995+#~ msgctxt "Title: Reboot/Shut down dialog"
996+#~ msgid "Shut down"
997+#~ msgstr "ማጥፊያ"
998+
999+#~ msgctxt "Button: Reboot the system"
1000+#~ msgid "Reboot"
1001+#~ msgstr "እንደገና ማስነሻ"
1002+
1003+#~ msgctxt "Label: Type of security method"
1004+#~ msgid "Passcode"
1005+#~ msgstr "ማለፊያ ኮድ"
1006+
1007+#~ msgctxt "Label: Description of security method"
1008+#~ msgid "No security"
1009+#~ msgstr "ደህንነት አልተገኘም"
1010+
1011+#~ msgctxt "Label: Description of security method"
1012+#~ msgid "4 digits only"
1013+#~ msgstr "4 ዲጂት ብቻ"
1014+
1015+#~ msgctxt "Label: Type of security method"
1016+#~ msgid "Swipe"
1017+#~ msgstr "መጥረጊያ"
1018+
1019+#~ msgctxt "Label: Type of security method"
1020+#~ msgid "Passphrase"
1021+#~ msgstr "የማለፊያ ሐረግ"
1022+
1023+#~ msgctxt "Label: Description of security method"
1024+#~ msgid "Numbers and letters"
1025+#~ msgstr "ቁጥሮች እና ፊደሎች"
1026+
777#~ msgid "%a %d %b %H:%M"
1027#~ msgid "%a %d %b %H:%M"
778#~ msgstr "%a %d %b %ሰ:%ደ"
1028#~ msgstr "%a %d %b %ሰ:%ደ"
779
1029
@@ -807,11 +1057,5 @@ msgstr "%1 〉"
807#~ msgid "Call back"
1057#~ msgid "Call back"
808#~ msgstr "መልሶ መደወያ"
1058#~ msgstr "መልሶ መደወያ"
809
1059
810−#~ msgid "Re-dock, save your work and close these apps to continue."
1060+#~ msgid "Hover your mouse on the right edge to view your open apps"
811−#~ msgstr "እንደገና-ማሳረፊያ: ስራዎትን ያስቀምጡ እና ይዝጉ መተግበሪያው እንዲቀጥል"
1061+#~ msgstr "የ እርስዎን አይጥ ወደ ቀኝ ጠርዝ በኩል ሲያደርጉ የ ተከፈቱ መተግበሪያዎች መመልከቻ"
812−
813−#~ msgid ""
814−#~ "Your device is now connected to an external display. Use this screen as a "
815−#~ "touch pad to interact with the mouse."
816−#~ msgstr ""
817−#~ "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ ከ አይጥ ጋር ተባብሮ ይሰራል"
po/ar.po+466−232
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2015-07-29 09:41+0000\n"
11"PO-Revision-Date: 2015-07-29 09:41+0000\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
13"Language-Team: Arabic <ar@li.org>\n"
13"Language-Team: Arabic <ar@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2016-03-13 05:50+0000\n"
19+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
20−"X-Generator: Launchpad (build 17939)\n"
20+"X-Generator: Launchpad (build 17995)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -80,53 +80,35 @@ msgctxt "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:194
83+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
84−#: qml/Components/Dialogs.qml:253
84+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
85+#: qml/Wizard/Pages/passcode-set.qml:32
85msgid "Cancel"
86msgid "Cancel"
86msgstr "إلغاء"
87msgstr "إلغاء"
87
88
88#: qml/Components/Dialogs.qml:173
89#: qml/Components/Dialogs.qml:173
89−msgctxt "Title: Reboot/Shut down dialog"
90−msgid "Shut down"
91−msgstr "إطفاء الجهاز"
92−
93−#: qml/Components/Dialogs.qml:174
94−msgid "Are you sure you want to shut down?"
95−msgstr "هل أنت متأكد من رغبتك في إطفاء الجهاز؟"
96−
97−#: qml/Components/Dialogs.qml:176
98−msgctxt "Button: Reboot the system"
99−msgid "Reboot"
100−msgstr "إعادة التشغيل"
101−
102−#: qml/Components/Dialogs.qml:185
103−msgctxt "Button: Shut down the system"
104−msgid "Shut down"
105−msgstr "إطفاء الجهاز"
106−
107−#: qml/Components/Dialogs.qml:207
108msgctxt "Title: Reboot dialog"
90msgctxt "Title: Reboot dialog"
109msgid "Reboot"
91msgid "Reboot"
110msgstr "إعادة التشغيل"
92msgstr "إعادة التشغيل"
111
93
112−#: qml/Components/Dialogs.qml:208
94+#: qml/Components/Dialogs.qml:174
113msgid "Are you sure you want to reboot?"
95msgid "Are you sure you want to reboot?"
114msgstr "هل أنت متأكد من رغبتك في إعادة تشغيل الجهاز؟"
96msgstr "هل أنت متأكد من رغبتك في إعادة تشغيل الجهاز؟"
115
97
116−#: qml/Components/Dialogs.qml:210
98+#: qml/Components/Dialogs.qml:176
117msgid "No"
99msgid "No"
118msgstr "لا"
100msgstr "لا"
119
101
120−#: qml/Components/Dialogs.qml:217
102+#: qml/Components/Dialogs.qml:182
121msgid "Yes"
103msgid "Yes"
122msgstr "نعم"
104msgstr "نعم"
123
105
124−#: qml/Components/Dialogs.qml:232
106+#: qml/Components/Dialogs.qml:197
125msgctxt "Title: Power off/Restart dialog"
107msgctxt "Title: Power off/Restart dialog"
126msgid "Power"
108msgid "Power"
127msgstr "الطاقة"
109msgstr "الطاقة"
128
110
129−#: qml/Components/Dialogs.qml:233
111+#: qml/Components/Dialogs.qml:198
130msgid ""
112msgid ""
131"Are you sure you would like\n"
113"Are you sure you would like\n"
132"to power off?"
114"to power off?"
@@ -134,12 +116,12 @@ msgstr ""
134"هل أنت متأكد من رغبتك\n"
116"هل أنت متأكد من رغبتك\n"
135"في إيقاف التشغيل؟"
117"في إيقاف التشغيل؟"
136
118
137−#: qml/Components/Dialogs.qml:235
119+#: qml/Components/Dialogs.qml:200
138msgctxt "Button: Power off the system"
120msgctxt "Button: Power off the system"
139msgid "Power off"
121msgid "Power off"
140msgstr "إيقاف التشغيل"
122msgstr "إيقاف التشغيل"
141
123
142−#: qml/Components/Dialogs.qml:244
124+#: qml/Components/Dialogs.qml:209
143msgctxt "Button: Restart the system"
125msgctxt "Button: Restart the system"
144msgid "Restart"
126msgid "Restart"
145msgstr "إعادة التشغيل"
127msgstr "إعادة التشغيل"
@@ -182,42 +164,58 @@ msgstr ""
182msgid "Close all"
164msgid "Close all"
183msgstr ""
165msgstr ""
184
166
185−#: qml/Dash/DashPageHeader.qml:270
167+#: qml/Dash/DashPageHeader.qml:337
186msgctxt "Button: Open the Ubuntu Store"
168msgctxt "Button: Open the Ubuntu Store"
187msgid "Store"
169msgid "Store"
188msgstr "المتجر"
170msgstr "المتجر"
189
171
190−#: qml/Dash/DashPageHeader.qml:277
172+#: qml/Dash/DashPageHeader.qml:344
191msgctxt "Button: Start a search in the current dash scope"
173msgctxt "Button: Start a search in the current dash scope"
192msgid "Search"
174msgid "Search"
193msgstr "بحث"
175msgstr "بحث"
194
176
195−#: qml/Dash/DashPageHeader.qml:287
177+#: qml/Dash/DashPageHeader.qml:354
196msgctxt "Button: Show the current dash scope settings"
178msgctxt "Button: Show the current dash scope settings"
197msgid "Settings"
179msgid "Settings"
198msgstr "الإعدادات"
180msgstr "الإعدادات"
199
181
200−#: qml/Dash/DashPageHeader.qml:294
182+#: qml/Dash/DashPageHeader.qml:361
201msgid "Remove from Favorites"
183msgid "Remove from Favorites"
202msgstr "حذف من المفضلات"
184msgstr "حذف من المفضلات"
203
185
204−#: qml/Dash/DashPageHeader.qml:294
186+#: qml/Dash/DashPageHeader.qml:361
205msgid "Add to Favorites"
187msgid "Add to Favorites"
206msgstr "إضافة إلى المفضلات"
188msgstr "إضافة إلى المفضلات"
207
189
208−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
190+#: qml/Dash/FiltersPopover.qml:60
209−msgid "See less"
191+msgid "Refine your results"
210−msgstr "شاهد أقل"
192+msgstr ""
211
193
212−#: qml/Dash/GenericScopeView.qml:567
194+#: qml/Dash/FiltersPopover.qml:69
213−msgid "See all"
195+msgid "Reset"
214−msgstr "عرض الكل"
196+msgstr ""
215
197
216−#: qml/Dash/GenericScopeView.qml:629
198+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
199+msgid "Show less"
200+msgstr ""
201+
202+#: qml/Dash/GenericScopeView.qml:579
203+msgid "Show all"
204+msgstr ""
205+
206+#: qml/Dash/GenericScopeView.qml:636
217msgctxt "Label: Hint for dash search line edit"
207msgctxt "Label: Hint for dash search line edit"
218msgid "Search"
208msgid "Search"
219msgstr "بحث"
209msgstr "بحث"
220
210
211+#: qml/Dash/PageHeaderExtraPanel.qml:55
212+msgid "Recent Searches"
213+msgstr ""
214+
215+#: qml/Dash/PageHeaderExtraPanel.qml:66
216+msgid "Clear All"
217+msgstr ""
218+
221#: qml/Dash/Previews/PreviewActionCombo.qml:35
219#: qml/Dash/Previews/PreviewActionCombo.qml:35
222msgid "More..."
220msgid "More..."
223msgstr "المزيد..."
221msgstr "المزيد..."
@@ -285,11 +283,11 @@ msgstr "إعادة المحاولة"
285msgid "Tap to unlock"
283msgid "Tap to unlock"
286msgstr "انقر لفك القفل"
284msgstr "انقر لفك القفل"
287
285
288−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
286+#: qml/Greeter/NarrowView.qml:54
289msgid "Sorry, incorrect passphrase."
287msgid "Sorry, incorrect passphrase."
290msgstr "عذرًا، عبارة سرّية خاطئة."
288msgstr "عذرًا، عبارة سرّية خاطئة."
291
289
292−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
290+#: qml/Greeter/NarrowView.qml:55
293msgid "Sorry, incorrect passcode."
291msgid "Sorry, incorrect passcode."
294msgstr "عذرًا، رمز سرّي خاطيء."
292msgstr "عذرًا، رمز سرّي خاطيء."
295
293
@@ -318,7 +316,7 @@ msgstr ""
318msgid "Enter %1"
316msgid "Enter %1"
319msgstr "أدخِل %1"
317msgstr "أدخِل %1"
320
318
321−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
319+#: qml/Greeter/NarrowView.qml:117
322msgid "Enter passphrase"
320msgid "Enter passphrase"
323msgstr "أدخِل العبارة السرية"
321msgstr "أدخِل العبارة السرية"
324
322
@@ -344,7 +342,7 @@ msgstr "برجاء إعادة إدخالها"
344msgid "Sorry, incorrect passcode"
342msgid "Sorry, incorrect passcode"
345msgstr "نأسف، الرمز السري غير صحيح"
343msgstr "نأسف، الرمز السري غير صحيح"
346
344
347−#: qml/Notifications/NotificationMenuItemFactory.qml:129
345+#: qml/Notifications/NotificationMenuItemFactory.qml:124
348msgid "Show password"
346msgid "Show password"
349msgstr "عرض كلمة السر"
347msgstr "عرض كلمة السر"
350
348
@@ -356,11 +354,11 @@ msgstr "انقر للعودة إلى المكالمة..."
356msgid "Conference"
354msgid "Conference"
357msgstr "مؤتمر"
355msgstr "مؤتمر"
358
356
359−#: qml/Panel/Indicators/MenuItemFactory.qml:752
357+#: qml/Panel/Indicators/MenuItemFactory.qml:762
360msgid "Nothing is playing"
358msgid "Nothing is playing"
361msgstr "لا شيء مُشغّل"
359msgstr "لا شيء مُشغّل"
362
360
363−#: qml/Panel/Indicators/MenuItemFactory.qml:881
361+#: qml/Panel/Indicators/MenuItemFactory.qml:891
364#, qt-format
362#, qt-format
365msgid "%1 hour"
363msgid "%1 hour"
366msgid_plural "%1 hours"
364msgid_plural "%1 hours"
@@ -371,7 +369,7 @@ msgstr[3] "%1 ساعات"
371msgstr[4] "%1 ساعة"
369msgstr[4] "%1 ساعة"
372msgstr[5] "%1 ساعة"
370msgstr[5] "%1 ساعة"
373
371
374−#: qml/Panel/Indicators/MenuItemFactory.qml:885
372+#: qml/Panel/Indicators/MenuItemFactory.qml:895
375#, qt-format
373#, qt-format
376msgid "%1 minute"
374msgid "%1 minute"
377msgid_plural "%1 minutes"
375msgid_plural "%1 minutes"
@@ -382,7 +380,7 @@ msgstr[3] "%1 دقائق"
382msgstr[4] "%1 دقيقة"
380msgstr[4] "%1 دقيقة"
383msgstr[5] "%1 دقيقة"
381msgstr[5] "%1 دقيقة"
384
382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:890
383+#: qml/Panel/Indicators/MenuItemFactory.qml:900
386#, qt-format
384#, qt-format
387msgid "%1 second"
385msgid "%1 second"
388msgid_plural "%1 seconds"
386msgid_plural "%1 seconds"
@@ -393,37 +391,37 @@ msgstr[3] "%1 ثوان"
393msgstr[4] "%1 ثانية"
391msgstr[4] "%1 ثانية"
394msgstr[5] "%1 ثانية"
392msgstr[5] "%1 ثانية"
395
393
396−#: qml/Panel/Indicators/MenuItemFactory.qml:893
394+#: qml/Panel/Indicators/MenuItemFactory.qml:903
397msgid "0 seconds"
395msgid "0 seconds"
398msgstr "أقل من ثانية"
396msgstr "أقل من ثانية"
399
397
400#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
398#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
401−#: qml/Panel/Indicators/MenuItemFactory.qml:895
399+#: qml/Panel/Indicators/MenuItemFactory.qml:905
402#, qt-format
400#, qt-format
403msgid "%1 remaining"
401msgid "%1 remaining"
404msgstr "باق %1"
402msgstr "باق %1"
405
403
406−#: qml/Panel/Indicators/MenuItemFactory.qml:901
404+#: qml/Panel/Indicators/MenuItemFactory.qml:911
407msgid "In queue…"
405msgid "In queue…"
408msgstr "في الانتظار..."
406msgstr "في الانتظار..."
409
407
410−#: qml/Panel/Indicators/MenuItemFactory.qml:905
408+#: qml/Panel/Indicators/MenuItemFactory.qml:915
411msgid "Downloading"
409msgid "Downloading"
412msgstr "التنزيل"
410msgstr "التنزيل"
413
411
414−#: qml/Panel/Indicators/MenuItemFactory.qml:907
412+#: qml/Panel/Indicators/MenuItemFactory.qml:917
415msgid "Paused, tap to resume"
413msgid "Paused, tap to resume"
416msgstr "مُلبث، انقر للاستئناف"
414msgstr "مُلبث، انقر للاستئناف"
417
415
418−#: qml/Panel/Indicators/MenuItemFactory.qml:909
416+#: qml/Panel/Indicators/MenuItemFactory.qml:919
419msgid "Canceled"
417msgid "Canceled"
420msgstr "تم إلغائه"
418msgstr "تم إلغائه"
421
419
422−#: qml/Panel/Indicators/MenuItemFactory.qml:911
420+#: qml/Panel/Indicators/MenuItemFactory.qml:921
423msgid "Finished"
421msgid "Finished"
424msgstr "انتهى"
422msgstr "انتهى"
425
423
426−#: qml/Panel/Indicators/MenuItemFactory.qml:913
424+#: qml/Panel/Indicators/MenuItemFactory.qml:923
427msgid "Failed, tap to retry"
425msgid "Failed, tap to retry"
428msgstr "فشل، انقل لإعادة المحاولة"
426msgstr "فشل، انقل لإعادة المحاولة"
429
427
@@ -443,252 +441,323 @@ msgctxt "Button: Call back on phone"
443msgid "Call back"
441msgid "Call back"
444msgstr ""
442msgstr ""
445
443
446−#: qml/Tutorial/TutorialBottom.qml:28
444+#: qml/Stages/SideStage.qml:76
447−msgid "Open special menus"
445+msgid "Drag using 3 fingers any application from one window to the other"
448−msgstr "فتح قوائم خاصة"
446+msgstr ""
449−
450−#: qml/Tutorial/TutorialBottom.qml:29
451−msgid "Swipe up from the bottom edge."
452−msgstr "اسحب لأعلى من الحافة السفلى."
453
447
454−#: qml/Tutorial/TutorialBottomFinish.qml:24
448+#: qml/Tutorial/TutorialBottom.qml:78
455−msgid "This action does different things for different apps"
449+msgid "Swipe up to add a contact"
456−msgstr "هذا الإجراء يقوم بأشياء مختلفة على التطبيقات المختلفة"
450+msgstr ""
457
451
458−#: qml/Tutorial/TutorialBottomFinish.qml:25
452+#: qml/Tutorial/TutorialBottom.qml:80
459−msgid "Tap here to finish."
453+msgid "Swipe up for favorite calculations"
460−msgstr "انقر هنا للإنهاء."
454+msgstr ""
461
455
462−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
456+#: qml/Tutorial/TutorialBottom.qml:82
463−#: qml/Tutorial/TutorialRight.qml:144
457+msgid "Swipe up for recent calls"
464−msgid "Tap here to continue."
458+msgstr ""
465−msgstr "انقر هنا للمتابعة."
466
459
467−#: qml/Tutorial/TutorialLeft.qml:26
460+#: qml/Tutorial/TutorialBottom.qml:84
468−msgid "Open the launcher"
461+msgid "Swipe up to create a message"
469msgstr ""
462msgstr ""
470
463
471−#: qml/Tutorial/TutorialLeft.qml:27
464+#: qml/Tutorial/TutorialBottom.qml:85
472−msgid "Short swipe from the left edge."
465+msgid "Swipe up to manage the app"
473−msgstr "اسحب سحبة قصيرة من الحافة اليسرى."
466+msgstr ""
474
467
475−#: qml/Tutorial/TutorialLeftFinish.qml:24
468+#: qml/Tutorial/TutorialLeftLong.qml:47
476−msgid "These are the shortcuts to favorite apps"
469+msgid "Long swipe from the left edge to open the Today scope"
477−msgstr "هذه اختصارات للتطبيقات المُفضلة"
470+msgstr ""
478
471
479−#: qml/Tutorial/TutorialPage.qml:178
472+#: qml/Tutorial/TutorialLeft.qml:47
480−msgid "You almost got it!"
473+msgid "Swipe from the left edge to open the launcher"
481−msgstr "انت حصلت على ذلك تقريبا!"
474+msgstr ""
482
475
483−#: qml/Tutorial/TutorialPage.qml:195
476+#: qml/Tutorial/TutorialRight.qml:55
484−msgid "Try again."
477+msgid "Push your mouse against the right edge to view your open apps"
485−msgstr "حاول مجددًا."
478+msgstr ""
486
479
487−#: qml/Tutorial/TutorialRight.qml:31
480+#: qml/Tutorial/TutorialRight.qml:56
488−msgid "To view open apps"
481+msgid "Short or long swipe from the right edge to view your open apps"
489msgstr ""
482msgstr ""
490
483
491−#: qml/Tutorial/TutorialRight.qml:32
484+#: qml/Tutorial/TutorialTop.qml:53
492−msgid "Long swipe from the right edge."
485+msgid "Swipe from the top right edge to open the notification bar"
493−msgstr "سحبة طويلة من الحافة اليمنى."
486+msgstr ""
494
487
495−#: qml/Tutorial/TutorialRight.qml:122
488+#: qml/Tutorial/TutorialTop.qml:54
496−msgid "View all your running tasks."
489+msgid "Swipe from the top edge to open the notification bar"
497−msgstr "عرض جميع المهام النشطة."
490+msgstr ""
498
491
499−#: qml/Wizard/Page.qml:89
492+#: qml/Wizard/Page.qml:54
500msgctxt "Button: Go back one page in the Wizard"
493msgctxt "Button: Go back one page in the Wizard"
501msgid "Back"
494msgid "Back"
502msgstr "عودة"
495msgstr "عودة"
503
496
504#: qml/Wizard/Pages/10-welcome.qml:27
497#: qml/Wizard/Pages/10-welcome.qml:27
505−msgid "Hi!"
498+msgid "Language"
506−msgstr "أهلا!"
499+msgstr ""
507
500
508−#: qml/Wizard/Pages/10-welcome.qml:44
501+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
509−msgid "Welcome to your Ubuntu device."
502+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
503+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
504+#: qml/Wizard/Pages/75-report-check.qml:84
505+#: qml/Wizard/Pages/passcode-desktop.qml:124
506+#: qml/Wizard/Pages/password-set.qml:141
507+msgid "Next"
510msgstr ""
508msgstr ""
511
509
512−#: qml/Wizard/Pages/10-welcome.qml:52
510+#: qml/Wizard/Pages/30-wifi.qml:29
513−msgid "Let’s get started."
511+msgid "Connect to Wi‑Fi"
514−msgstr "هيا بنا نبدأ."
512+msgstr "اتصل بالواي فاي"
515
513
516−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
514+#: qml/Wizard/Pages/30-wifi.qml:130
517−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
515+msgid "Connected"
518−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
519−#: qml/Wizard/Pages/passwd-set.qml:90
520−msgid "Continue"
521−msgstr "متابعة"
516+msgstr ""
522
517
523−#: qml/Wizard/Pages/20-sim.qml:25
518+#: qml/Wizard/Pages/30-wifi.qml:163
524−msgid "Add a SIM card and restart your device"
519+msgid "Available Wi-Fi networks"
525−msgstr "أدخِل شريحة SIM ثم أعِد تشغيل الجهاز"
520+msgstr ""
526
521
527−#: qml/Wizard/Pages/20-sim.qml:59
522+#: qml/Wizard/Pages/30-wifi.qml:164
528−msgid "Without it, you won’t be able to make calls or use text messaging."
523+msgid "No available Wi-Fi networks"
529msgstr ""
524msgstr ""
530−"بدونها لن تتمكن من إجراء أي مكالمات هاتفية أو استخدام الرسائل النصية."
531
525
532−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
526+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
527+#: qml/Wizard/Pages/sim.qml:101
533msgid "Skip"
528msgid "Skip"
534msgstr "تخطي"
529msgstr "تخطي"
535
530
536−#: qml/Wizard/Pages/30-passwd-type.qml:39
531+#: qml/Wizard/Pages/40-location.qml:27
537−msgid "Lock security"
532+msgid "Location Services"
538−msgstr "قِفل الأمان"
533+msgstr ""
539
534
540−#: qml/Wizard/Pages/30-passwd-type.qml:79
535+#: qml/Wizard/Pages/40-location.qml:83
541−msgid "Please select how you’d like to unlock your device."
536+msgid ""
537+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
538+"(recommended)"
542msgstr ""
539msgstr ""
543
540
544−#: qml/Wizard/Pages/30-passwd-type.qml:102
541+#: qml/Wizard/Pages/40-location.qml:105
545−msgctxt "Label: Type of security method"
542+#, qt-format
546−msgid "Swipe"
543+msgid "By selecting this option you agree to the Nokia HERE %1."
544+msgstr ""
545+
546+#: qml/Wizard/Pages/40-location.qml:106
547+msgctxt "part of: Nokia HERE terms and conditions"
548+msgid "terms and conditions"
549+msgstr ""
550+
551+#: qml/Wizard/Pages/40-location.qml:160
552+msgid "GPS only"
553+msgstr ""
554+
555+#: qml/Wizard/Pages/40-location.qml:214
556+msgid "Don't use my location"
557+msgstr ""
558+
559+#: qml/Wizard/Pages/40-location.qml:260
560+msgid "You can change it later in System Settings."
547−msgstr "سحبة"
561+msgstr ""
548
562
549−#: qml/Wizard/Pages/30-passwd-type.qml:103
563+#: qml/Wizard/Pages/50-timezone.qml:29
550−msgctxt "Label: Description of security method"
564+msgid "Time Zone"
551−msgid "No security"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/50-timezone.qml:178
568+msgid "Enter your city"
552−msgstr "بدون أمان"
569+msgstr ""
553
570
554−#: qml/Wizard/Pages/30-passwd-type.qml:105
571+#: qml/Wizard/Pages/60-account.qml:24
572+msgid "Personalize Your Device"
573+msgstr ""
574+
575+#: qml/Wizard/Pages/60-account.qml:48
576+msgid "Preferred Name"
577+msgstr ""
578+
579+#: qml/Wizard/Pages/70-passwd-type.qml:39
580+msgid "Lock Screen"
581+msgstr ""
582+
583+#: qml/Wizard/Pages/70-passwd-type.qml:101
555msgctxt "Label: Type of security method"
584msgctxt "Label: Type of security method"
556−msgid "Passcode"
585+msgid "Create new password"
557−msgstr "رمز سري"
586+msgstr ""
558
587
559−#: qml/Wizard/Pages/30-passwd-type.qml:106
588+#: qml/Wizard/Pages/70-passwd-type.qml:103
560−msgctxt "Label: Description of security method"
589+msgctxt "Label: Type of security method"
561−msgid "4 digits only"
590+msgid "Create passcode (numbers only)"
562−msgstr "4 أرقام فقط"
591+msgstr ""
563
592
564−#: qml/Wizard/Pages/30-passwd-type.qml:108
593+#: qml/Wizard/Pages/70-passwd-type.qml:105
565msgctxt "Label: Type of security method"
594msgctxt "Label: Type of security method"
566−msgid "Passphrase"
595+msgid "No lock code"
567−msgstr "عبارة سرية"
596+msgstr ""
568
597
569−#: qml/Wizard/Pages/30-passwd-type.qml:109
598+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
570−msgctxt "Label: Description of security method"
599+msgid "Privacy Policy"
571−msgid "Numbers and letters"
600+msgstr ""
572−msgstr "أرقام وحروف"
573
601
574−#: qml/Wizard/Pages/40-wifi.qml:29
602+#: qml/Wizard/Pages/75-report-check.qml:26
575−msgid "Connect to Wi‑Fi"
603+msgid "Help Us Improve"
576−msgstr "اتصل بالواي فاي"
604+msgstr ""
577
605
578−#: qml/Wizard/Pages/40-wifi.qml:168
606+#: qml/Wizard/Pages/75-report-check.qml:59
579−msgid "Available networks…"
607+msgid "Improve system performance by sending us crashes and error reports."
580−msgstr "الشبكات المتاحة..."
608+msgstr ""
581
609
582−#: qml/Wizard/Pages/40-wifi.qml:169
610+#: qml/Wizard/Pages/75-report-check.qml:60
583−msgid "No available networks."
611+msgid "Privacy policy"
584−msgstr "لا توجد شبكات متاحة."
612+msgstr ""
585
613
586−#: qml/Wizard/Pages/50-location.qml:27
614+#: qml/Wizard/Pages/80-finished.qml:89
587−msgid "Location"
615+msgid "Welcome to Ubuntu"
588−msgstr "الموقع"
616+msgstr ""
589
617
590−#: qml/Wizard/Pages/50-location.qml:62
618+#: qml/Wizard/Pages/80-finished.qml:104
591−msgid "Let the phone detect your location:"
619+msgid "You are ready to use your device now"
592−msgstr "دع هاتفك يحدد موقعك:"
620+msgstr ""
621+
622+#: qml/Wizard/Pages/80-finished.qml:124
623+msgid "Get Started"
624+msgstr ""
625+
626+#: qml/Wizard/Pages/here-terms.qml:25
627+msgid "Terms & Conditions"
628+msgstr "الشروط والأحكام"
593
629
594−#: qml/Wizard/Pages/50-location.qml:69
630+#: qml/Wizard/Pages/here-terms.qml:69
595−msgid "Using GPS only (less accurate)"
631+msgid "Your device uses positioning technologies provided by HERE."
596−msgstr "باستخدام نظام تحديد المواقع (GPS) فقط (أقل دقّة)"
632+msgstr ""
597
633
598−#: qml/Wizard/Pages/50-location.qml:86
634+#: qml/Wizard/Pages/here-terms.qml:81
599−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
635+msgid ""
636+"To provide you with positioning services and to improve their quality, HERE "
637+"collects information about nearby cell towers and Wi-Fi hotspots around your "
638+"current location whenever your position is being found."
600msgstr ""
639msgstr ""
601−"باستخدام نظام تحديد المواقع (GPS)، والواي فاي، وبيانات الشبكة الخلوية "
602−"(مستحسن)"
603
640
604−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
605−#: qml/Wizard/Pages/50-location.qml:103
641+#: qml/Wizard/Pages/here-terms.qml:93
606msgid ""
642msgid ""
607−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
643+"The information collected is used to analyze the service and to improve the "
608−"conditions</a>."
644+"use of service, but not to identify you personally."
609msgstr ""
645msgstr ""
610−"باختيارك لهذا الخيار فإنك توافق على <a href='#'>الشروط والأحكام</a> الخاصة "
611−"بـ Nokia HERE."
612
646
613−#: qml/Wizard/Pages/50-location.qml:112
647+#: qml/Wizard/Pages/here-terms.qml:106
614−msgid "Not at all"
648+#, qt-format
649+msgid "By continuing, you agree to the HERE platform %1 and %2."
615msgstr ""
650msgstr ""
616
651
617−#: qml/Wizard/Pages/50-location.qml:124
652+#: qml/Wizard/Pages/here-terms.qml:107
618−msgid "You can change your mind later in <b>System Settings</b>."
653+msgid "Service Terms"
619−msgstr "يمكنك تغيير رأيك في وقت لاحق عن طريق <b>إعدادات النظام</b>."
654+msgstr ""
620
655
621−#: qml/Wizard/Pages/60-reporting.qml:26
656+#: qml/Wizard/Pages/passcode-confirm.qml:43
622−msgid "Improving your experience"
657+#: qml/Wizard/Pages/passcode-desktop.qml:80
623−msgstr "تحسين تجربتك"
658+msgid "Confirm passcode"
659+msgstr "تأكيد الرمز السري"
624
660
625−#: qml/Wizard/Pages/60-reporting.qml:46
661+#: qml/Wizard/Pages/passcode-confirm.qml:45
626−msgid ""
662+msgid "Incorrect passcode."
627−"Your phone is set up to automatically report errors to Canonical and its "
628−"partners, the makers of the operating system."
629msgstr ""
663msgstr ""
630−"هاتفك مُعدّ لإرسال تقارير آلية بالأخطاء إلى كانونيكال وشركائها (صانعي نظام "
631−"التشغيل)."
632
664
633−#: qml/Wizard/Pages/60-reporting.qml:53
665+#: qml/Wizard/Pages/passcode-confirm.qml:45
634−msgid ""
666+msgctxt "Enter the passcode again"
635−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
667+msgid "Please re-enter."
636−"Privacy</b>"
668+msgstr ""
669+
670+#: qml/Wizard/Pages/passcode-desktop.qml:30
671+msgid "Lock Screen Passcode"
637msgstr ""
672msgstr ""
638−"يمكن تعطيل ذلك بالذهاب إلى <b>إعدادات النظام</b> من خلال <b>الأمان "
639−"والخصوصية</b>"
640
673
641−#: qml/Wizard/Pages/80-finished.qml:24
674+#: qml/Wizard/Pages/passcode-desktop.qml:56
642−msgid "All done"
675+msgid "Enter 4 numbers to setup your passcode"
643−msgstr "تم ذلك"
676+msgstr ""
644
677
645−#: qml/Wizard/Pages/80-finished.qml:39
678+#: qml/Wizard/Pages/passcode-desktop.qml:65
646−msgid "Nice work!"
679+#: qml/Wizard/Pages/passcode-set.qml:54
680+msgid "Choose passcode"
647−msgstr "عمل جيد!"
681+msgstr ""
648
682
649−#: qml/Wizard/Pages/80-finished.qml:46
683+#: qml/Wizard/Pages/passcode-desktop.qml:105
650−msgid "Your device is now ready to use."
684+msgid "Passcode too short"
651msgstr ""
685msgstr ""
652
686
653−#: qml/Wizard/Pages/80-finished.qml:53
687+#: qml/Wizard/Pages/passcode-desktop.qml:107
654−msgid "Finish"
688+msgid "Passcodes match"
655−msgstr "إنهاء"
689+msgstr ""
656
690
657−#: qml/Wizard/Pages/here-terms.qml:27
691+#: qml/Wizard/Pages/passcode-desktop.qml:109
658−msgid "Terms & Conditions"
692+msgid "Passcodes do not match"
659−msgstr "الشروط والأحكام"
693+msgstr ""
660
694
661−#: qml/Wizard/Pages/passwd-confirm.qml:49
695+#: qml/Wizard/Pages/passcode-set.qml:62
662−msgid "Confirm passphrase"
696+msgid "Passcode must be 4 characters long"
663−msgstr "تأكيد العبارة السرية"
697+msgstr ""
664
698
665−#: qml/Wizard/Pages/passwd-confirm.qml:50
699+#: qml/Wizard/Pages/password-set.qml:30
666−msgid "Confirm passcode"
700+msgid "Lock Screen Password"
667−msgstr "تأكيد الرمز السري"
701+msgstr ""
668
702
669−#: qml/Wizard/Pages/passwd-confirm.qml:53
703+#: qml/Wizard/Pages/password-set.qml:61
670−#: qml/Wizard/Pages/passwd-confirm.qml:54
704+msgid "Enter at least 8 characters"
671−msgid "Please try again."
672−msgstr "حاول مجددا."
705+msgstr ""
673
706
674−#: qml/Wizard/Pages/passwd-set.qml:61
707+#: qml/Wizard/Pages/password-set.qml:73
675−msgid "Choose your passcode"
708+msgid "Choose password"
676−msgstr "اختر الرمز السري خاصتك"
709+msgstr ""
677
710
678−#: qml/Wizard/Pages/passwd-set.qml:68
711+#: qml/Wizard/Pages/password-set.qml:103
679−msgid "Passphrase must be 4 characters long"
712+msgid "Confirm password"
680−msgstr "يجب أن تحتوي العبارة السرية على 4 أحرف على الأقل"
713+msgstr ""
681
714
682−#. Translators: This is the arrow for "Back" buttons
683−#: qml/Wizard/StackButton.qml:39
715+#: qml/Wizard/Pages/sim.qml:27
684−#, qt-format
716+msgid "No SIM card installed"
685−msgid "〈 %1"
686msgstr ""
717msgstr ""
687
718
688−#. Translators: This is the arrow for "Forward" buttons
719+#: qml/Wizard/Pages/sim.qml:54
720+msgid "SIM card added"
721+msgstr ""
722+
723+#: qml/Wizard/Pages/sim.qml:55
724+msgid "You must restart the device to access the mobile network."
725+msgstr ""
726+
727+#: qml/Wizard/Pages/sim.qml:59
728+msgid "Restart"
729+msgstr ""
730+
689−#: qml/Wizard/StackButton.qml:42
731+#: qml/Wizard/Pages/sim.qml:78
690−#, qt-format
732+msgid "You won’t be able to make calls or use text messaging without a SIM."
691−msgid "%1 〉"
733+msgstr ""
734+
735+#: qml/Wizard/Pages/sim.qml:90
736+msgid "To proceed with no SIM tap Skip."
737+msgstr ""
738+
739+#: qml/Wizard/PasswordMeter.qml:87
740+msgid "Passwords match"
741+msgstr ""
742+
743+#: qml/Wizard/PasswordMeter.qml:89
744+msgid "Passwords do not match"
745+msgstr ""
746+
747+#: qml/Wizard/PasswordMeter.qml:93
748+msgid "Strong password"
749+msgstr ""
750+
751+#: qml/Wizard/PasswordMeter.qml:95
752+msgid "Fair password"
753+msgstr ""
754+
755+#: qml/Wizard/PasswordMeter.qml:97
756+msgid "Weak password"
757+msgstr ""
758+
759+#: qml/Wizard/PasswordMeter.qml:99
760+msgid "Very weak password"
692msgstr ""
761msgstr ""
693
762
694#~ msgid "Confirm"
763#~ msgid "Confirm"
@@ -740,6 +809,9 @@ msgstr ""
740#~ msgid "Well done"
809#~ msgid "Well done"
741#~ msgstr "أحسنت!"
810#~ msgstr "أحسنت!"
742
811
812+#~ msgid "See less"
813+#~ msgstr "شاهد أقل"
814+
743#~ msgid ""
815#~ msgid ""
744#~ "You have now mastered the edge gestures and can start using the "
816#~ "You have now mastered the edge gestures and can start using the "
745#~ "phone<br><br>Tap on the screen to start"
817#~ "phone<br><br>Tap on the screen to start"
@@ -777,20 +849,182 @@ msgstr ""
777#~ msgid "Tomorrow %H:%M"
849#~ msgid "Tomorrow %H:%M"
778#~ msgstr "غدًا %H:%M"
850#~ msgstr "غدًا %H:%M"
779
851
852+#~ msgid "Are you sure you want to shut down?"
853+#~ msgstr "هل أنت متأكد من رغبتك في إطفاء الجهاز؟"
854+
855+#~ msgctxt "Button: Shut down the system"
856+#~ msgid "Shut down"
857+#~ msgstr "إطفاء الجهاز"
858+
859+#~ msgctxt "Title: Reboot/Shut down dialog"
860+#~ msgid "Shut down"
861+#~ msgstr "إطفاء الجهاز"
862+
863+#~ msgctxt "Button: Reboot the system"
864+#~ msgid "Reboot"
865+#~ msgstr "إعادة التشغيل"
866+
867+#~ msgid "See all"
868+#~ msgstr "عرض الكل"
869+
780#~ msgid "Please re-enter"
870#~ msgid "Please re-enter"
781#~ msgstr "برجاء إعادة إدخالها"
871#~ msgstr "برجاء إعادة إدخالها"
782
872
873+#~ msgid "This action does different things for different apps"
874+#~ msgstr "هذا الإجراء يقوم بأشياء مختلفة على التطبيقات المختلفة"
875+
876+#~ msgid "These are the shortcuts to favorite apps"
877+#~ msgstr "هذه اختصارات للتطبيقات المُفضلة"
878+
783#~ msgid "Roaming"
879#~ msgid "Roaming"
784#~ msgstr "التجوال"
880#~ msgstr "التجوال"
785
881
882+#~ msgid "Short swipe from the left edge."
883+#~ msgstr "اسحب سحبة قصيرة من الحافة اليسرى."
884+
885+#~ msgid "Tap here to continue."
886+#~ msgstr "انقر هنا للمتابعة."
887+
888+#~ msgid "Swipe up from the bottom edge."
889+#~ msgstr "اسحب لأعلى من الحافة السفلى."
890+
891+#~ msgid "Open special menus"
892+#~ msgstr "فتح قوائم خاصة"
893+
894+#~ msgid "Tap here to finish."
895+#~ msgstr "انقر هنا للإنهاء."
896+
897+#~ msgid "Long swipe from the right edge."
898+#~ msgstr "سحبة طويلة من الحافة اليمنى."
899+
900+#~ msgid "View all your running tasks."
901+#~ msgstr "عرض جميع المهام النشطة."
902+
903+#~ msgid "Confirm passphrase"
904+#~ msgstr "تأكيد العبارة السرية"
905+
906+#~ msgid "Try again."
907+#~ msgstr "حاول مجددًا."
908+
909+#~ msgid "Please try again."
910+#~ msgstr "حاول مجددا."
911+
912+#~ msgid "Lock security"
913+#~ msgstr "قِفل الأمان"
914+
915+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
916+#~ msgstr ""
917+#~ "بدونها لن تتمكن من إجراء أي مكالمات هاتفية أو استخدام الرسائل النصية."
918+
919+#~ msgid "Add a SIM card and restart your device"
920+#~ msgstr "أدخِل شريحة SIM ثم أعِد تشغيل الجهاز"
921+
922+#~ msgid "Hi!"
923+#~ msgstr "أهلا!"
924+
786#~ msgid "Welcome to your Ubuntu phone."
925#~ msgid "Welcome to your Ubuntu phone."
787#~ msgstr "مرحبا بك في أوبونتو للهواتف."
926#~ msgstr "مرحبا بك في أوبونتو للهواتف."
788
927
928+#~ msgid "Let’s get started."
929+#~ msgstr "هيا بنا نبدأ."
930+
931+#~ msgid "Continue"
932+#~ msgstr "متابعة"
933+
934+#~ msgid "Choose your passcode"
935+#~ msgstr "اختر الرمز السري خاصتك"
936+
937+#~ msgid "Passphrase must be 4 characters long"
938+#~ msgstr "يجب أن تحتوي العبارة السرية على 4 أحرف على الأقل"
939+
940+#~ msgid "Available networks…"
941+#~ msgstr "الشبكات المتاحة..."
942+
789#~ msgid "Please select how you’d like to unlock your phone."
943#~ msgid "Please select how you’d like to unlock your phone."
790#~ msgstr "رجاءً اختر الطريقة التي ترغب بأن توصد هاتفك بها."
944#~ msgstr "رجاءً اختر الطريقة التي ترغب بأن توصد هاتفك بها."
791
945
946+#~ msgctxt "Label: Description of security method"
947+#~ msgid "No security"
948+#~ msgstr "بدون أمان"
949+
950+#~ msgctxt "Label: Type of security method"
951+#~ msgid "Swipe"
952+#~ msgstr "سحبة"
953+
954+#~ msgctxt "Label: Description of security method"
955+#~ msgid "4 digits only"
956+#~ msgstr "4 أرقام فقط"
957+
958+#~ msgctxt "Label: Type of security method"
959+#~ msgid "Passcode"
960+#~ msgstr "رمز سري"
961+
962+#~ msgid "No available networks."
963+#~ msgstr "لا توجد شبكات متاحة."
964+
965+#~ msgctxt "Label: Type of security method"
966+#~ msgid "Passphrase"
967+#~ msgstr "عبارة سرية"
968+
969+#~ msgctxt "Label: Description of security method"
970+#~ msgid "Numbers and letters"
971+#~ msgstr "أرقام وحروف"
972+
973+#~ msgid "Improving your experience"
974+#~ msgstr "تحسين تجربتك"
975+
976+#~ msgid "You can change your mind later in <b>System Settings</b>."
977+#~ msgstr "يمكنك تغيير رأيك في وقت لاحق عن طريق <b>إعدادات النظام</b>."
978+
979+#~ msgid "Location"
980+#~ msgstr "الموقع"
981+
982+#~ msgid "Let the phone detect your location:"
983+#~ msgstr "دع هاتفك يحدد موقعك:"
984+
985+#~ msgid "Using GPS only (less accurate)"
986+#~ msgstr "باستخدام نظام تحديد المواقع (GPS) فقط (أقل دقّة)"
987+
988+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
989+#~ msgstr ""
990+#~ "باستخدام نظام تحديد المواقع (GPS)، والواي فاي، وبيانات الشبكة الخلوية "
991+#~ "(مستحسن)"
992+
993+#~ msgid ""
994+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
995+#~ "Privacy</b>"
996+#~ msgstr ""
997+#~ "يمكن تعطيل ذلك بالذهاب إلى <b>إعدادات النظام</b> من خلال <b>الأمان "
998+#~ "والخصوصية</b>"
999+
1000+#~ msgid "Nice work!"
1001+#~ msgstr "عمل جيد!"
1002+
1003+#~ msgid "All done"
1004+#~ msgstr "تم ذلك"
1005+
1006+#~ msgid "Finish"
1007+#~ msgstr "إنهاء"
1008+
792#~ msgid "Your phone is now ready to use."
1009#~ msgid "Your phone is now ready to use."
793#~ msgstr "هاتفك جاهز الآن للاستخدام."
1010#~ msgstr "هاتفك جاهز الآن للاستخدام."
794
1011
1012+#~ msgid "You almost got it!"
1013+#~ msgstr "انت حصلت على ذلك تقريبا!"
1014+
1015+#~ msgid ""
1016+#~ "Your phone is set up to automatically report errors to Canonical and its "
1017+#~ "partners, the makers of the operating system."
1018+#~ msgstr ""
1019+#~ "هاتفك مُعدّ لإرسال تقارير آلية بالأخطاء إلى كانونيكال وشركائها (صانعي نظام "
1020+#~ "التشغيل)."
1021+
795#~ msgid "Unlock SIM"
1022#~ msgid "Unlock SIM"
796#~ msgstr "فتح قفل بطاقة SIM"
1023#~ msgstr "فتح قفل بطاقة SIM"
1024+
1025+#~ msgid ""
1026+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1027+#~ "conditions</a>."
1028+#~ msgstr ""
1029+#~ "باختيارك لهذا الخيار فإنك توافق على <a href='#'>الشروط والأحكام</a> الخاصة "
1030+#~ "بـ Nokia HERE."
po/ast.po+494−258
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11−"PO-Revision-Date: 2016-03-12 00:17+0000\n"
11+"PO-Revision-Date: 2016-04-17 16:57+0000\n"
12−"Last-Translator: enolp <enolp@softastur.org>\n"
12+"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
13"Language-Team: Asturian <ast@li.org>\n"
13"Language-Team: Asturian <ast@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-03-13 05:50+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -74,53 +74,35 @@ msgctxt "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:194
77+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
78−#: qml/Components/Dialogs.qml:253
78+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
79+#: qml/Wizard/Pages/passcode-set.qml:32
79msgid "Cancel"
80msgid "Cancel"
80msgstr "Encaboxar"
81msgstr "Encaboxar"
81
82
82#: qml/Components/Dialogs.qml:173
83#: qml/Components/Dialogs.qml:173
83−msgctxt "Title: Reboot/Shut down dialog"
84−msgid "Shut down"
85−msgstr "Apagáu"
86−
87−#: qml/Components/Dialogs.qml:174
88−msgid "Are you sure you want to shut down?"
89−msgstr "¿De xuru que quies apagar?"
90−
91−#: qml/Components/Dialogs.qml:176
92−msgctxt "Button: Reboot the system"
93−msgid "Reboot"
94−msgstr "Reaniciar"
95−
96−#: qml/Components/Dialogs.qml:185
97−msgctxt "Button: Shut down the system"
98−msgid "Shut down"
99−msgstr "Apagar"
100−
101−#: qml/Components/Dialogs.qml:207
102msgctxt "Title: Reboot dialog"
84msgctxt "Title: Reboot dialog"
103msgid "Reboot"
85msgid "Reboot"
104msgstr "Reaniciu"
86msgstr "Reaniciu"
105
87
106−#: qml/Components/Dialogs.qml:208
88+#: qml/Components/Dialogs.qml:174
107msgid "Are you sure you want to reboot?"
89msgid "Are you sure you want to reboot?"
108msgstr "¿De xuru que quies reaniciar?"
90msgstr "¿De xuru que quies reaniciar?"
109
91
110−#: qml/Components/Dialogs.qml:210
92+#: qml/Components/Dialogs.qml:176
111msgid "No"
93msgid "No"
112msgstr "Non"
94msgstr "Non"
113
95
114−#: qml/Components/Dialogs.qml:217
96+#: qml/Components/Dialogs.qml:182
115msgid "Yes"
97msgid "Yes"
116msgstr "Sí"
98msgstr "Sí"
117
99
118−#: qml/Components/Dialogs.qml:232
100+#: qml/Components/Dialogs.qml:197
119msgctxt "Title: Power off/Restart dialog"
101msgctxt "Title: Power off/Restart dialog"
120msgid "Power"
102msgid "Power"
121msgstr "Apagáu"
103msgstr "Apagáu"
122
104
123−#: qml/Components/Dialogs.qml:233
105+#: qml/Components/Dialogs.qml:198
124msgid ""
106msgid ""
125"Are you sure you would like\n"
107"Are you sure you would like\n"
126"to power off?"
108"to power off?"
@@ -128,12 +110,12 @@ msgstr ""
128"¿De xuru que te prestaría\n"
110"¿De xuru que te prestaría\n"
129"apagar?"
111"apagar?"
130
112
131−#: qml/Components/Dialogs.qml:235
113+#: qml/Components/Dialogs.qml:200
132msgctxt "Button: Power off the system"
114msgctxt "Button: Power off the system"
133msgid "Power off"
115msgid "Power off"
134msgstr "Apagar"
116msgstr "Apagar"
135
117
136−#: qml/Components/Dialogs.qml:244
118+#: qml/Components/Dialogs.qml:209
137msgctxt "Button: Restart the system"
119msgctxt "Button: Restart the system"
138msgid "Restart"
120msgid "Restart"
139msgstr "Reaniciar"
121msgstr "Reaniciar"
@@ -176,42 +158,58 @@ msgstr "Reconeutar agora."
176msgid "Close all"
158msgid "Close all"
177msgstr "Zarrar too"
159msgstr "Zarrar too"
178
160
179−#: qml/Dash/DashPageHeader.qml:270
161+#: qml/Dash/DashPageHeader.qml:337
180msgctxt "Button: Open the Ubuntu Store"
162msgctxt "Button: Open the Ubuntu Store"
181msgid "Store"
163msgid "Store"
182msgstr "Tienda"
164msgstr "Tienda"
183
165
184−#: qml/Dash/DashPageHeader.qml:277
166+#: qml/Dash/DashPageHeader.qml:344
185msgctxt "Button: Start a search in the current dash scope"
167msgctxt "Button: Start a search in the current dash scope"
186msgid "Search"
168msgid "Search"
187msgstr "Guetar"
169msgstr "Guetar"
188
170
189−#: qml/Dash/DashPageHeader.qml:287
171+#: qml/Dash/DashPageHeader.qml:354
190msgctxt "Button: Show the current dash scope settings"
172msgctxt "Button: Show the current dash scope settings"
191msgid "Settings"
173msgid "Settings"
192msgstr "Axustes"
174msgstr "Axustes"
193
175
194−#: qml/Dash/DashPageHeader.qml:294
176+#: qml/Dash/DashPageHeader.qml:361
195msgid "Remove from Favorites"
177msgid "Remove from Favorites"
196msgstr "Desaniciar de favoritos"
178msgstr "Desaniciar de favoritos"
197
179
198−#: qml/Dash/DashPageHeader.qml:294
180+#: qml/Dash/DashPageHeader.qml:361
199msgid "Add to Favorites"
181msgid "Add to Favorites"
200msgstr "Amestar a favoritos"
182msgstr "Amestar a favoritos"
201
183
202−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
184+#: qml/Dash/FiltersPopover.qml:60
203−msgid "See less"
185+msgid "Refine your results"
204−msgstr "Ver menos"
186+msgstr ""
205
187
206−#: qml/Dash/GenericScopeView.qml:567
188+#: qml/Dash/FiltersPopover.qml:69
207−msgid "See all"
189+msgid "Reset"
208−msgstr "Ver too"
190+msgstr "Reafitar"
209
191
210−#: qml/Dash/GenericScopeView.qml:629
192+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
193+msgid "Show less"
194+msgstr ""
195+
196+#: qml/Dash/GenericScopeView.qml:579
197+msgid "Show all"
198+msgstr ""
199+
200+#: qml/Dash/GenericScopeView.qml:636
211msgctxt "Label: Hint for dash search line edit"
201msgctxt "Label: Hint for dash search line edit"
212msgid "Search"
202msgid "Search"
213msgstr "Guetar"
203msgstr "Guetar"
214
204
205+#: qml/Dash/PageHeaderExtraPanel.qml:55
206+msgid "Recent Searches"
207+msgstr ""
208+
209+#: qml/Dash/PageHeaderExtraPanel.qml:66
210+msgid "Clear All"
211+msgstr "Llimpiar too"
212+
215#: qml/Dash/Previews/PreviewActionCombo.qml:35
213#: qml/Dash/Previews/PreviewActionCombo.qml:35
216msgid "More..."
214msgid "More..."
217msgstr "Más…"
215msgstr "Más…"
@@ -279,11 +277,11 @@ msgstr "Reintentar"
279msgid "Tap to unlock"
277msgid "Tap to unlock"
280msgstr "Calca pa desbloquiar"
278msgstr "Calca pa desbloquiar"
281
279
282−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
280+#: qml/Greeter/NarrowView.qml:54
283msgid "Sorry, incorrect passphrase."
281msgid "Sorry, incorrect passphrase."
284msgstr "Perdón, fras de pasu incorreuta"
282msgstr "Perdón, fras de pasu incorreuta"
285
283
286−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
284+#: qml/Greeter/NarrowView.qml:55
287msgid "Sorry, incorrect passcode."
285msgid "Sorry, incorrect passcode."
288msgstr "Perdón, códigu de pasu incorreutu."
286msgstr "Perdón, códigu de pasu incorreutu."
289
287
@@ -312,7 +310,7 @@ msgstr ""
312msgid "Enter %1"
310msgid "Enter %1"
313msgstr "Introduz %1"
311msgstr "Introduz %1"
314
312
315−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
313+#: qml/Greeter/NarrowView.qml:117
316msgid "Enter passphrase"
314msgid "Enter passphrase"
317msgstr "Introduz la fras de pasu"
315msgstr "Introduz la fras de pasu"
318
316
@@ -338,7 +336,7 @@ msgstr "Vuelve a escribila"
338msgid "Sorry, incorrect passcode"
336msgid "Sorry, incorrect passcode"
339msgstr "Sentímoslo, códigu de pasu incorreutu"
337msgstr "Sentímoslo, códigu de pasu incorreutu"
340
338
341−#: qml/Notifications/NotificationMenuItemFactory.qml:129
339+#: qml/Notifications/NotificationMenuItemFactory.qml:124
342msgid "Show password"
340msgid "Show password"
343msgstr "Amosar contraseña"
341msgstr "Amosar contraseña"
344
342
@@ -350,62 +348,62 @@ msgstr "Toca pa tornar a la llamada..."
350msgid "Conference"
348msgid "Conference"
351msgstr "Conferencia"
349msgstr "Conferencia"
352
350
353−#: qml/Panel/Indicators/MenuItemFactory.qml:752
351+#: qml/Panel/Indicators/MenuItemFactory.qml:762
354msgid "Nothing is playing"
352msgid "Nothing is playing"
355msgstr "Nun ta reproduciéndose nada"
353msgstr "Nun ta reproduciéndose nada"
356
354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:881
355+#: qml/Panel/Indicators/MenuItemFactory.qml:891
358#, qt-format
356#, qt-format
359msgid "%1 hour"
357msgid "%1 hour"
360msgid_plural "%1 hours"
358msgid_plural "%1 hours"
361msgstr[0] "%1 hora"
359msgstr[0] "%1 hora"
362msgstr[1] "%1 hores"
360msgstr[1] "%1 hores"
363
361
364−#: qml/Panel/Indicators/MenuItemFactory.qml:885
362+#: qml/Panel/Indicators/MenuItemFactory.qml:895
365#, qt-format
363#, qt-format
366msgid "%1 minute"
364msgid "%1 minute"
367msgid_plural "%1 minutes"
365msgid_plural "%1 minutes"
368msgstr[0] "%1 minutu"
366msgstr[0] "%1 minutu"
369msgstr[1] "%1 minutos"
367msgstr[1] "%1 minutos"
370
368
371−#: qml/Panel/Indicators/MenuItemFactory.qml:890
369+#: qml/Panel/Indicators/MenuItemFactory.qml:900
372#, qt-format
370#, qt-format
373msgid "%1 second"
371msgid "%1 second"
374msgid_plural "%1 seconds"
372msgid_plural "%1 seconds"
375msgstr[0] "%1 segundu"
373msgstr[0] "%1 segundu"
376msgstr[1] "%1 segundos"
374msgstr[1] "%1 segundos"
377
375
378−#: qml/Panel/Indicators/MenuItemFactory.qml:893
376+#: qml/Panel/Indicators/MenuItemFactory.qml:903
379msgid "0 seconds"
377msgid "0 seconds"
380msgstr "0 segundos"
378msgstr "0 segundos"
381
379
382#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
380#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
383−#: qml/Panel/Indicators/MenuItemFactory.qml:895
381+#: qml/Panel/Indicators/MenuItemFactory.qml:905
384#, qt-format
382#, qt-format
385msgid "%1 remaining"
383msgid "%1 remaining"
386msgstr "Queden %1"
384msgstr "Queden %1"
387
385
388−#: qml/Panel/Indicators/MenuItemFactory.qml:901
386+#: qml/Panel/Indicators/MenuItemFactory.qml:911
389msgid "In queue…"
387msgid "In queue…"
390msgstr "Na cola..."
388msgstr "Na cola..."
391
389
392−#: qml/Panel/Indicators/MenuItemFactory.qml:905
390+#: qml/Panel/Indicators/MenuItemFactory.qml:915
393msgid "Downloading"
391msgid "Downloading"
394msgstr "Baxando"
392msgstr "Baxando"
395
393
396−#: qml/Panel/Indicators/MenuItemFactory.qml:907
394+#: qml/Panel/Indicators/MenuItemFactory.qml:917
397msgid "Paused, tap to resume"
395msgid "Paused, tap to resume"
398msgstr "Posáu, toca pa reanudar"
396msgstr "Posáu, toca pa reanudar"
399
397
400−#: qml/Panel/Indicators/MenuItemFactory.qml:909
398+#: qml/Panel/Indicators/MenuItemFactory.qml:919
401msgid "Canceled"
399msgid "Canceled"
402msgstr "Encaboxáu"
400msgstr "Encaboxáu"
403
401
404−#: qml/Panel/Indicators/MenuItemFactory.qml:911
402+#: qml/Panel/Indicators/MenuItemFactory.qml:921
405msgid "Finished"
403msgid "Finished"
406msgstr "Finó"
404msgstr "Finó"
407
405
408−#: qml/Panel/Indicators/MenuItemFactory.qml:913
406+#: qml/Panel/Indicators/MenuItemFactory.qml:923
409msgid "Failed, tap to retry"
407msgid "Failed, tap to retry"
410msgstr "Falló, toca pa reintentar"
408msgstr "Falló, toca pa reintentar"
411
409
@@ -425,251 +423,324 @@ msgctxt "Button: Call back on phone"
425msgid "Call back"
423msgid "Call back"
426msgstr "Devolver llamada"
424msgstr "Devolver llamada"
427
425
428−#: qml/Tutorial/TutorialBottom.qml:28
426+#: qml/Stages/SideStage.qml:76
429−msgid "Open special menus"
427+msgid "Drag using 3 fingers any application from one window to the other"
430−msgstr "Abrir menús especiales"
428+msgstr ""
431−
432−#: qml/Tutorial/TutorialBottom.qml:29
433−msgid "Swipe up from the bottom edge."
434−msgstr "Esliza dende'l berbesu d'embaxo."
435
429
436−#: qml/Tutorial/TutorialBottomFinish.qml:24
430+#: qml/Tutorial/TutorialBottom.qml:78
437−msgid "This action does different things for different apps"
431+msgid "Swipe up to add a contact"
438−msgstr "Esta aición fai coses distintes p'aplicaciones estremaes"
432+msgstr ""
439
433
440−#: qml/Tutorial/TutorialBottomFinish.qml:25
434+#: qml/Tutorial/TutorialBottom.qml:80
441−msgid "Tap here to finish."
435+msgid "Swipe up for favorite calculations"
442−msgstr "Toca equí pa finar."
436+msgstr ""
443
437
444−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
438+#: qml/Tutorial/TutorialBottom.qml:82
445−#: qml/Tutorial/TutorialRight.qml:144
439+msgid "Swipe up for recent calls"
446−msgid "Tap here to continue."
447−msgstr "Toca equí pa siguir."
440+msgstr ""
448
441
449−#: qml/Tutorial/TutorialLeft.qml:26
442+#: qml/Tutorial/TutorialBottom.qml:84
450−msgid "Open the launcher"
443+msgid "Swipe up to create a message"
451−msgstr "Abrir el llanzador"
444+msgstr ""
452
445
453−#: qml/Tutorial/TutorialLeft.qml:27
446+#: qml/Tutorial/TutorialBottom.qml:85
454−msgid "Short swipe from the left edge."
447+msgid "Swipe up to manage the app"
455−msgstr "Esliza un poco dende'l berbesu esquierdu."
448+msgstr ""
456
449
457−#: qml/Tutorial/TutorialLeftFinish.qml:24
450+#: qml/Tutorial/TutorialLeftLong.qml:47
458−msgid "These are the shortcuts to favorite apps"
451+msgid "Long swipe from the left edge to open the Today scope"
459−msgstr "Estos son los atayos a les aplicaciones favorites"
452+msgstr ""
460
453
461−#: qml/Tutorial/TutorialPage.qml:178
454+#: qml/Tutorial/TutorialLeft.qml:47
462−msgid "You almost got it!"
455+msgid "Swipe from the left edge to open the launcher"
463−msgstr "¡Yá cuasi finamos!"
456+msgstr ""
464
457
465−#: qml/Tutorial/TutorialPage.qml:195
458+#: qml/Tutorial/TutorialRight.qml:55
466−msgid "Try again."
459+msgid "Push your mouse against the right edge to view your open apps"
467−msgstr "Intentar de nueves"
460+msgstr ""
468
461
469−#: qml/Tutorial/TutorialRight.qml:31
462+#: qml/Tutorial/TutorialRight.qml:56
470−msgid "To view open apps"
463+msgid "Short or long swipe from the right edge to view your open apps"
471−msgstr "Pa ver aplicaciones abiertes"
464+msgstr ""
472
465
473−#: qml/Tutorial/TutorialRight.qml:32
466+#: qml/Tutorial/TutorialTop.qml:53
474−msgid "Long swipe from the right edge."
467+msgid "Swipe from the top right edge to open the notification bar"
475−msgstr "Eslizamientu llargu dende'l berbesu drechu."
468+msgstr ""
476
469
477−#: qml/Tutorial/TutorialRight.qml:122
470+#: qml/Tutorial/TutorialTop.qml:54
478−msgid "View all your running tasks."
471+msgid "Swipe from the top edge to open the notification bar"
479−msgstr "Mira toles tos aplicaciones n'execución."
472+msgstr ""
480
473
481−#: qml/Wizard/Page.qml:89
474+#: qml/Wizard/Page.qml:54
482msgctxt "Button: Go back one page in the Wizard"
475msgctxt "Button: Go back one page in the Wizard"
483msgid "Back"
476msgid "Back"
484msgstr "Atrás"
477msgstr "Atrás"
485
478
486#: qml/Wizard/Pages/10-welcome.qml:27
479#: qml/Wizard/Pages/10-welcome.qml:27
487−msgid "Hi!"
480+msgid "Language"
488−msgstr "¡Hola!"
481+msgstr "Llingua"
489−
482+
490−#: qml/Wizard/Pages/10-welcome.qml:44
483+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
491−msgid "Welcome to your Ubuntu device."
484+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
492−msgstr "Bienllegáu/ada al to preséu d'Ubuntu."
485+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
493−
486+#: qml/Wizard/Pages/75-report-check.qml:84
494−#: qml/Wizard/Pages/10-welcome.qml:52
487+#: qml/Wizard/Pages/passcode-desktop.qml:124
495−msgid "Let’s get started."
488+#: qml/Wizard/Pages/password-set.qml:141
496−msgstr "Entamemos."
489+msgid "Next"
490+msgstr "Siguiente"
491+
492+#: qml/Wizard/Pages/30-wifi.qml:29
493+msgid "Connect to Wi‑Fi"
494+msgstr "Coneutase al WiFi"
497
495
498−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
496+#: qml/Wizard/Pages/30-wifi.qml:130
499−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
497+msgid "Connected"
500−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
501−#: qml/Wizard/Pages/passwd-set.qml:90
502−msgid "Continue"
503−msgstr "Siguir"
498+msgstr "Coneutáu"
504
499
505−#: qml/Wizard/Pages/20-sim.qml:25
500+#: qml/Wizard/Pages/30-wifi.qml:163
506−msgid "Add a SIM card and restart your device"
501+msgid "Available Wi-Fi networks"
507−msgstr "Amiesta una tarxeta SIM y reanicia'l to preséu"
502+msgstr "Redes Wi-Fi disponibles"
508
503
509−#: qml/Wizard/Pages/20-sim.qml:59
504+#: qml/Wizard/Pages/30-wifi.qml:164
510−msgid "Without it, you won’t be able to make calls or use text messaging."
505+msgid "No available Wi-Fi networks"
511−msgstr "Ensin ella, nun vas poder facer llamaes nin unviar mensaxes."
506+msgstr "Nun hai redes Wi-Fi disponibles"
512
507
513−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
508+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
509+#: qml/Wizard/Pages/sim.qml:101
514msgid "Skip"
510msgid "Skip"
515msgstr "Saltar"
511msgstr "Saltar"
516
512
517−#: qml/Wizard/Pages/30-passwd-type.qml:39
513+#: qml/Wizard/Pages/40-location.qml:27
518−msgid "Lock security"
514+msgid "Location Services"
519−msgstr "Seguranza del bloquéu"
515+msgstr ""
520
516
521−#: qml/Wizard/Pages/30-passwd-type.qml:79
517+#: qml/Wizard/Pages/40-location.qml:83
522−msgid "Please select how you’d like to unlock your device."
518+msgid ""
523−msgstr "Esbilla cómo te prestaría desbloquiar el to preséu, por favor."
519+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
520+"(recommended)"
521+msgstr ""
524
522
525−#: qml/Wizard/Pages/30-passwd-type.qml:102
523+#: qml/Wizard/Pages/40-location.qml:105
526−msgctxt "Label: Type of security method"
524+#, qt-format
527−msgid "Swipe"
525+msgid "By selecting this option you agree to the Nokia HERE %1."
528−msgstr "Eslizar"
526+msgstr ""
529
527
530−#: qml/Wizard/Pages/30-passwd-type.qml:103
528+#: qml/Wizard/Pages/40-location.qml:106
531−msgctxt "Label: Description of security method"
529+msgctxt "part of: Nokia HERE terms and conditions"
532−msgid "No security"
530+msgid "terms and conditions"
533−msgstr "Ensin seguranza"
531+msgstr ""
532+
533+#: qml/Wizard/Pages/40-location.qml:160
534+msgid "GPS only"
535+msgstr ""
536+
537+#: qml/Wizard/Pages/40-location.qml:214
538+msgid "Don't use my location"
539+msgstr ""
540+
541+#: qml/Wizard/Pages/40-location.qml:260
542+msgid "You can change it later in System Settings."
543+msgstr ""
544+
545+#: qml/Wizard/Pages/50-timezone.qml:29
546+msgid "Time Zone"
547+msgstr "Estaya horaria"
548+
549+#: qml/Wizard/Pages/50-timezone.qml:178
550+msgid "Enter your city"
551+msgstr "Escribe la ciudá"
552+
553+#: qml/Wizard/Pages/60-account.qml:24
554+msgid "Personalize Your Device"
555+msgstr "Personaliza'l preséu"
556+
557+#: qml/Wizard/Pages/60-account.qml:48
558+msgid "Preferred Name"
559+msgstr "Nome preferíu"
560+
561+#: qml/Wizard/Pages/70-passwd-type.qml:39
562+msgid "Lock Screen"
563+msgstr "Bloquiar pantalla"
534
564
535−#: qml/Wizard/Pages/30-passwd-type.qml:105
565+#: qml/Wizard/Pages/70-passwd-type.qml:101
536msgctxt "Label: Type of security method"
566msgctxt "Label: Type of security method"
537−msgid "Passcode"
567+msgid "Create new password"
538−msgstr "Códigu de pasu"
568+msgstr ""
539
569
540−#: qml/Wizard/Pages/30-passwd-type.qml:106
570+#: qml/Wizard/Pages/70-passwd-type.qml:103
541−msgctxt "Label: Description of security method"
571+msgctxt "Label: Type of security method"
542−msgid "4 digits only"
572+msgid "Create passcode (numbers only)"
543−msgstr "Namái 4 díxitos"
573+msgstr ""
544
574
545−#: qml/Wizard/Pages/30-passwd-type.qml:108
575+#: qml/Wizard/Pages/70-passwd-type.qml:105
546msgctxt "Label: Type of security method"
576msgctxt "Label: Type of security method"
547−msgid "Passphrase"
577+msgid "No lock code"
548−msgstr "Fras de pasu"
578+msgstr ""
549
579
550−#: qml/Wizard/Pages/30-passwd-type.qml:109
580+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
551−msgctxt "Label: Description of security method"
581+msgid "Privacy Policy"
552−msgid "Numbers and letters"
553−msgstr "Númberos y lletres"
582+msgstr ""
554
583
555−#: qml/Wizard/Pages/40-wifi.qml:29
584+#: qml/Wizard/Pages/75-report-check.qml:26
556−msgid "Connect to Wi‑Fi"
585+msgid "Help Us Improve"
586+msgstr ""
587+
588+#: qml/Wizard/Pages/75-report-check.qml:59
589+msgid "Improve system performance by sending us crashes and error reports."
557−msgstr "Coneutase al WiFi"
590+msgstr ""
591+
592+#: qml/Wizard/Pages/75-report-check.qml:60
593+msgid "Privacy policy"
594+msgstr ""
558
595
559−#: qml/Wizard/Pages/40-wifi.qml:168
596+#: qml/Wizard/Pages/80-finished.qml:89
560−msgid "Available networks…"
597+msgid "Welcome to Ubuntu"
561−msgstr "Redes disponibles..."
598+msgstr "Bienveníu/a a Ubuntu"
562
599
563−#: qml/Wizard/Pages/40-wifi.qml:169
600+#: qml/Wizard/Pages/80-finished.qml:104
564−msgid "No available networks."
601+msgid "You are ready to use your device now"
565−msgstr "Nun hai redes disponibles"
602+msgstr ""
566
603
567−#: qml/Wizard/Pages/50-location.qml:27
604+#: qml/Wizard/Pages/80-finished.qml:124
568−msgid "Location"
605+msgid "Get Started"
569−msgstr "Allugamientu"
606+msgstr "Primeros pasos"
570
607
571−#: qml/Wizard/Pages/50-location.qml:62
608+#: qml/Wizard/Pages/here-terms.qml:25
572−msgid "Let the phone detect your location:"
609+msgid "Terms & Conditions"
573−msgstr "Dexar al teléfonu deteutar l'allugamientu:"
610+msgstr "Términos y condiciones"
574
611
575−#: qml/Wizard/Pages/50-location.qml:69
612+#: qml/Wizard/Pages/here-terms.qml:69
576−msgid "Using GPS only (less accurate)"
613+msgid "Your device uses positioning technologies provided by HERE."
577−msgstr "Namái usando GPS (menos precisión)"
614+msgstr ""
578
615
579−#: qml/Wizard/Pages/50-location.qml:86
616+#: qml/Wizard/Pages/here-terms.qml:81
580−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
617+msgid ""
618+"To provide you with positioning services and to improve their quality, HERE "
619+"collects information about nearby cell towers and Wi-Fi hotspots around your "
620+"current location whenever your position is being found."
581msgstr ""
621msgstr ""
582−"Usando GPS, Wi-fi anónimes ya información de redes móviles (aconseyao)"
583
622
584−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
585−#: qml/Wizard/Pages/50-location.qml:103
623+#: qml/Wizard/Pages/here-terms.qml:93
586msgid ""
624msgid ""
587−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
625+"The information collected is used to analyze the service and to improve the "
588−"conditions</a>."
626+"use of service, but not to identify you personally."
589msgstr ""
627msgstr ""
590−"Esbillando esta opción aceutes los <a href='#'>términos y condiciones</a> de "
591−"Nokia HERE."
592
628
593−#: qml/Wizard/Pages/50-location.qml:112
629+#: qml/Wizard/Pages/here-terms.qml:106
594−msgid "Not at all"
630+#, qt-format
631+msgid "By continuing, you agree to the HERE platform %1 and %2."
595−msgstr "De nengún mou"
632+msgstr ""
596
633
597−#: qml/Wizard/Pages/50-location.qml:124
634+#: qml/Wizard/Pages/here-terms.qml:107
598−msgid "You can change your mind later in <b>System Settings</b>."
635+msgid "Service Terms"
599−msgstr "Pues cambialo dempués n'<b>Axustes del sistema</b>."
636+msgstr ""
600
637
601−#: qml/Wizard/Pages/60-reporting.qml:26
638+#: qml/Wizard/Pages/passcode-confirm.qml:43
602−msgid "Improving your experience"
639+#: qml/Wizard/Pages/passcode-desktop.qml:80
603−msgstr "Ameyorando la to esperiencia"
640+msgid "Confirm passcode"
641+msgstr "Confirmar códigu de pasu"
604
642
605−#: qml/Wizard/Pages/60-reporting.qml:46
643+#: qml/Wizard/Pages/passcode-confirm.qml:45
606−msgid ""
644+msgid "Incorrect passcode."
607−"Your phone is set up to automatically report errors to Canonical and its "
608−"partners, the makers of the operating system."
609msgstr ""
645msgstr ""
610−"El teléfonu ta configuráu pa informar automáticamente de los fallos a "
611−"Canonical y asociaos, los fabricantes del sistema operativu."
612
646
613−#: qml/Wizard/Pages/60-reporting.qml:53
647+#: qml/Wizard/Pages/passcode-confirm.qml:45
648+msgctxt "Enter the passcode again"
614−msgid ""
649+msgid "Please re-enter."
615−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
616−"Privacy</b>"
617msgstr ""
650msgstr ""
618−"Esto pue deshabilitase nos <b>Axustes del sistema</b> en <b>Seguranza y "
619−"privacidá</b>"
620
651
621−#: qml/Wizard/Pages/80-finished.qml:24
652+#: qml/Wizard/Pages/passcode-desktop.qml:30
622−msgid "All done"
653+msgid "Lock Screen Passcode"
623−msgstr "Too fecho"
654+msgstr ""
624
655
625−#: qml/Wizard/Pages/80-finished.qml:39
656+#: qml/Wizard/Pages/passcode-desktop.qml:56
626−msgid "Nice work!"
657+msgid "Enter 4 numbers to setup your passcode"
627−msgstr "¡Bon trabayu!"
658+msgstr ""
628
659
629−#: qml/Wizard/Pages/80-finished.qml:46
660+#: qml/Wizard/Pages/passcode-desktop.qml:65
630−msgid "Your device is now ready to use."
661+#: qml/Wizard/Pages/passcode-set.qml:54
631−msgstr "Agora'l to preséu ta preparáu pa usase."
662+msgid "Choose passcode"
663+msgstr ""
632
664
633−#: qml/Wizard/Pages/80-finished.qml:53
665+#: qml/Wizard/Pages/passcode-desktop.qml:105
634−msgid "Finish"
666+msgid "Passcode too short"
635−msgstr "Finar"
667+msgstr ""
636
668
637−#: qml/Wizard/Pages/here-terms.qml:27
669+#: qml/Wizard/Pages/passcode-desktop.qml:107
638−msgid "Terms & Conditions"
670+msgid "Passcodes match"
639−msgstr "Términos y condiciones"
671+msgstr ""
640
672
641−#: qml/Wizard/Pages/passwd-confirm.qml:49
673+#: qml/Wizard/Pages/passcode-desktop.qml:109
642−msgid "Confirm passphrase"
674+msgid "Passcodes do not match"
643−msgstr "Confirmar frase de pasu"
675+msgstr ""
644
676
645−#: qml/Wizard/Pages/passwd-confirm.qml:50
677+#: qml/Wizard/Pages/passcode-set.qml:62
646−msgid "Confirm passcode"
678+msgid "Passcode must be 4 characters long"
647−msgstr "Confirmar códigu de pasu"
679+msgstr ""
680+
681+#: qml/Wizard/Pages/password-set.qml:30
682+msgid "Lock Screen Password"
683+msgstr ""
648
684
649−#: qml/Wizard/Pages/passwd-confirm.qml:53
685+#: qml/Wizard/Pages/password-set.qml:61
650−#: qml/Wizard/Pages/passwd-confirm.qml:54
686+msgid "Enter at least 8 characters"
651−msgid "Please try again."
687+msgstr ""
652−msgstr "Por favor, vuelvi a intentalo."
653
688
654−#: qml/Wizard/Pages/passwd-set.qml:61
689+#: qml/Wizard/Pages/password-set.qml:73
655−msgid "Choose your passcode"
690+msgid "Choose password"
656−msgstr "Escueyi'l to códigu de pasu"
691+msgstr ""
657
692
658−#: qml/Wizard/Pages/passwd-set.qml:68
693+#: qml/Wizard/Pages/password-set.qml:103
659−msgid "Passphrase must be 4 characters long"
694+msgid "Confirm password"
660−msgstr "La fras de pasu tien de ser 4 caráuteres de llargor"
695+msgstr "Confirmar contraseña"
661
696
662−#. Translators: This is the arrow for "Back" buttons
663−#: qml/Wizard/StackButton.qml:39
697+#: qml/Wizard/Pages/sim.qml:27
664−#, qt-format
698+msgid "No SIM card installed"
665−msgid "〈 %1"
666−msgstr "〈 %1"
699+msgstr ""
667
700
668−#. Translators: This is the arrow for "Forward" buttons
701+#: qml/Wizard/Pages/sim.qml:54
702+msgid "SIM card added"
703+msgstr ""
704+
705+#: qml/Wizard/Pages/sim.qml:55
706+msgid "You must restart the device to access the mobile network."
707+msgstr ""
708+
709+#: qml/Wizard/Pages/sim.qml:59
710+msgid "Restart"
711+msgstr "Reaniciar"
712+
713+#: qml/Wizard/Pages/sim.qml:78
714+msgid "You won’t be able to make calls or use text messaging without a SIM."
715+msgstr ""
716+
717+#: qml/Wizard/Pages/sim.qml:90
718+msgid "To proceed with no SIM tap Skip."
719+msgstr ""
720+
721+#: qml/Wizard/PasswordMeter.qml:87
722+msgid "Passwords match"
723+msgstr ""
724+
725+#: qml/Wizard/PasswordMeter.qml:89
726+msgid "Passwords do not match"
727+msgstr ""
728+
729+#: qml/Wizard/PasswordMeter.qml:93
730+msgid "Strong password"
731+msgstr "Contraseña fuerte"
732+
733+#: qml/Wizard/PasswordMeter.qml:95
734+msgid "Fair password"
735+msgstr "Contraseña aceutable"
736+
669−#: qml/Wizard/StackButton.qml:42
737+#: qml/Wizard/PasswordMeter.qml:97
670−#, qt-format
738+msgid "Weak password"
671−msgid "%1 〉"
739+msgstr "Contraseña feble"
672−msgstr "%1 〉"
740+
741+#: qml/Wizard/PasswordMeter.qml:99
742+msgid "Very weak password"
743+msgstr "Contraseña feble enforma"
673
744
674#~ msgid "Skip intro"
745#~ msgid "Skip intro"
675#~ msgstr "Omitir la intro"
746#~ msgstr "Omitir la intro"
@@ -721,6 +792,9 @@ msgstr "%1 〉"
721#~ msgid "Search"
792#~ msgid "Search"
722#~ msgstr "Guetar"
793#~ msgstr "Guetar"
723
794
795+#~ msgid "See less"
796+#~ msgstr "Ver menos"
797+
724#~ msgid ""
798#~ msgid ""
725#~ "You have now mastered the edge gestures and can start using the "
799#~ "You have now mastered the edge gestures and can start using the "
726#~ "phone<br><br>Tap on the screen to start"
800#~ "phone<br><br>Tap on the screen to start"
@@ -728,6 +802,9 @@ msgstr "%1 〉"
728#~ "Agora yá domines los xestos de los berbesos y pues entamar a usar el "
802#~ "Agora yá domines los xestos de los berbesos y pues entamar a usar el "
729#~ "teléfonu<br><br>Toca la pantalla pa comenzar"
803#~ "teléfonu<br><br>Toca la pantalla pa comenzar"
730
804
805+#~ msgid "See all"
806+#~ msgstr "Ver too"
807+
731#~ msgid "Power"
808#~ msgid "Power"
732#~ msgstr "Enerxía"
809#~ msgstr "Enerxía"
733
810
@@ -764,24 +841,195 @@ msgstr "%1 〉"
764#~ msgid "Roaming"
841#~ msgid "Roaming"
765#~ msgstr "Roaming"
842#~ msgstr "Roaming"
766
843
767−#~ msgid "Restart"
768−#~ msgstr "Reaniciar"
769−
770#~ msgid "Manage Scopes"
844#~ msgid "Manage Scopes"
771#~ msgstr "Xestionar ámbitos"
845#~ msgstr "Xestionar ámbitos"
772
846
847+#~ msgid "Continue"
848+#~ msgstr "Siguir"
849+
850+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
851+#~ msgstr "Ensin ella, nun vas poder facer llamaes nin unviar mensaxes."
852+
853+#~ msgid "You can change your mind later in <b>System Settings</b>."
854+#~ msgstr "Pues cambialo dempués n'<b>Axustes del sistema</b>."
855+
856+#~ msgid "Available networks…"
857+#~ msgstr "Redes disponibles..."
858+
859+#~ msgid "No available networks."
860+#~ msgstr "Nun hai redes disponibles"
861+
862+#~ msgid "Using GPS only (less accurate)"
863+#~ msgstr "Namái usando GPS (menos precisión)"
864+
865+#~ msgid ""
866+#~ "Your phone is set up to automatically report errors to Canonical and its "
867+#~ "partners, the makers of the operating system."
868+#~ msgstr ""
869+#~ "El teléfonu ta configuráu pa informar automáticamente de los fallos a "
870+#~ "Canonical y asociaos, los fabricantes del sistema operativu."
871+
872+#~ msgid "All done"
873+#~ msgstr "Too fecho"
874+
875+#~ msgid "Finish"
876+#~ msgstr "Finar"
877+
878+#~ msgid "Not at all"
879+#~ msgstr "De nengún mou"
880+
881+#, qt-format
882+#~ msgid "〈 %1"
883+#~ msgstr "〈 %1"
884+
885+#, qt-format
886+#~ msgid "%1 〉"
887+#~ msgstr "%1 〉"
888+
889+#~ msgid "Open the launcher"
890+#~ msgstr "Abrir el llanzador"
891+
892+#~ msgid "Tap here to continue."
893+#~ msgstr "Toca equí pa siguir."
894+
895+#~ msgid "Open special menus"
896+#~ msgstr "Abrir menús especiales"
897+
898+#~ msgid "Tap here to finish."
899+#~ msgstr "Toca equí pa finar."
900+
901+#~ msgctxt "Button: Shut down the system"
902+#~ msgid "Shut down"
903+#~ msgstr "Apagar"
904+
905+#~ msgctxt "Button: Reboot the system"
906+#~ msgid "Reboot"
907+#~ msgstr "Reaniciar"
908+
909+#~ msgid "These are the shortcuts to favorite apps"
910+#~ msgstr "Estos son los atayos a les aplicaciones favorites"
911+
912+#~ msgctxt "Label: Type of security method"
913+#~ msgid "Passcode"
914+#~ msgstr "Códigu de pasu"
915+
916+#~ msgid "To view open apps"
917+#~ msgstr "Pa ver aplicaciones abiertes"
918+
919+#~ msgid "Are you sure you want to shut down?"
920+#~ msgstr "¿De xuru que quies apagar?"
921+
922+#~ msgctxt "Title: Reboot/Shut down dialog"
923+#~ msgid "Shut down"
924+#~ msgstr "Apagáu"
925+
773#~ msgid "Please re-enter"
926#~ msgid "Please re-enter"
774#~ msgstr "Por favor, reintroduzla"
927#~ msgstr "Por favor, reintroduzla"
775
928
929+#~ msgid "This action does different things for different apps"
930+#~ msgstr "Esta aición fai coses distintes p'aplicaciones estremaes"
931+
932+#~ msgid "Swipe up from the bottom edge."
933+#~ msgstr "Esliza dende'l berbesu d'embaxo."
934+
935+#~ msgid "Long swipe from the right edge."
936+#~ msgstr "Eslizamientu llargu dende'l berbesu drechu."
937+
938+#~ msgid "View all your running tasks."
939+#~ msgstr "Mira toles tos aplicaciones n'execución."
940+
941+#~ msgid "Try again."
942+#~ msgstr "Intentar de nueves"
943+
944+#~ msgid "You almost got it!"
945+#~ msgstr "¡Yá cuasi finamos!"
946+
947+#~ msgid "Short swipe from the left edge."
948+#~ msgstr "Esliza un poco dende'l berbesu esquierdu."
949+
950+#~ msgid "Hi!"
951+#~ msgstr "¡Hola!"
952+
953+#~ msgid "Lock security"
954+#~ msgstr "Seguranza del bloquéu"
955+
956+#~ msgid "Add a SIM card and restart your device"
957+#~ msgstr "Amiesta una tarxeta SIM y reanicia'l to preséu"
958+
776#~ msgid "Please select how you’d like to unlock your phone."
959#~ msgid "Please select how you’d like to unlock your phone."
777#~ msgstr "Por favor, esbilla como te prestaría desbloquiar el teléfonu."
960#~ msgstr "Por favor, esbilla como te prestaría desbloquiar el teléfonu."
778
961
962+#~ msgctxt "Label: Description of security method"
963+#~ msgid "No security"
964+#~ msgstr "Ensin seguranza"
965+
966+#~ msgctxt "Label: Type of security method"
967+#~ msgid "Swipe"
968+#~ msgstr "Eslizar"
969+
779#~ msgid "Welcome to your Ubuntu phone."
970#~ msgid "Welcome to your Ubuntu phone."
780#~ msgstr "Bienllegáu/ada al to teléfonu d'Ubuntu"
971#~ msgstr "Bienllegáu/ada al to teléfonu d'Ubuntu"
781
972
973+#~ msgid "Let’s get started."
974+#~ msgstr "Entamemos."
975+
976+#~ msgctxt "Label: Description of security method"
977+#~ msgid "4 digits only"
978+#~ msgstr "Namái 4 díxitos"
979+
980+#~ msgid "Let the phone detect your location:"
981+#~ msgstr "Dexar al teléfonu deteutar l'allugamientu:"
982+
983+#~ msgid "Location"
984+#~ msgstr "Allugamientu"
985+
986+#~ msgctxt "Label: Type of security method"
987+#~ msgid "Passphrase"
988+#~ msgstr "Fras de pasu"
989+
990+#~ msgctxt "Label: Description of security method"
991+#~ msgid "Numbers and letters"
992+#~ msgstr "Númberos y lletres"
993+
994+#~ msgid "Improving your experience"
995+#~ msgstr "Ameyorando la to esperiencia"
996+
997+#~ msgid ""
998+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
999+#~ "Privacy</b>"
1000+#~ msgstr ""
1001+#~ "Esto pue deshabilitase nos <b>Axustes del sistema</b> en <b>Seguranza y "
1002+#~ "privacidá</b>"
1003+
1004+#~ msgid "Nice work!"
1005+#~ msgstr "¡Bon trabayu!"
1006+
1007+#~ msgid ""
1008+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1009+#~ "conditions</a>."
1010+#~ msgstr ""
1011+#~ "Esbillando esta opción aceutes los <a href='#'>términos y condiciones</a> de "
1012+#~ "Nokia HERE."
1013+
1014+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
1015+#~ msgstr ""
1016+#~ "Usando GPS, Wi-fi anónimes ya información de redes móviles (aconseyao)"
1017+
782#~ msgid "Your phone is now ready to use."
1018#~ msgid "Your phone is now ready to use."
783#~ msgstr "El teléfonu yá ta tresnáu pa usase."
1019#~ msgstr "El teléfonu yá ta tresnáu pa usase."
784
1020
1021+#~ msgid "Confirm passphrase"
1022+#~ msgstr "Confirmar frase de pasu"
1023+
1024+#~ msgid "Passphrase must be 4 characters long"
1025+#~ msgstr "La fras de pasu tien de ser 4 caráuteres de llargor"
1026+
1027+#~ msgid "Choose your passcode"
1028+#~ msgstr "Escueyi'l to códigu de pasu"
1029+
1030+#~ msgid "Please try again."
1031+#~ msgstr "Por favor, vuelvi a intentalo."
1032+
785#~ msgid "%a %H:%M"
1033#~ msgid "%a %H:%M"
786#~ msgstr "%a %H:%M"
1034#~ msgstr "%a %H:%M"
787
1035
@@ -814,15 +1062,3 @@ msgstr "%1 〉"
814
1062
815#~ msgid "Call back"
1063#~ msgid "Call back"
816#~ msgstr "Devolver llamada"
1064#~ msgstr "Devolver llamada"
817−
818−#~ msgid "Re-dock, save your work and close these apps to continue."
819−#~ msgstr ""
820−#~ "Pa siguir coneuta nuevamente'l preséu, guarda'l trabayu y zarra estes "
821−#~ "aplicaciones."
822−
823−#~ msgid ""
824−#~ "Your device is now connected to an external display. Use this screen as a "
825−#~ "touch pad to interact with the mouse."
826−#~ msgstr ""
827−#~ "Agora'l to preséu ta coneutáu a una pantalla esterna. Usa esta pantalla como "
828−#~ "panel táutil pa interactuar col mur."
po/az.po+272−185
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2014-09-03 16:39+0000\n"
11"PO-Revision-Date: 2014-09-03 16:39+0000\n"
12"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
12"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-03-13 05:50+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -73,64 +73,46 @@ msgctxt "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:194
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77−#: qml/Components/Dialogs.qml:253
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
78msgid "Cancel"
79msgid "Cancel"
79msgstr "İmtina"
80msgstr "İmtina"
80
81
81#: qml/Components/Dialogs.qml:173
82#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr ""
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr "Sistemi söndürmәk istәdiyinizә әminsiniz?"
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr ""
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr ""
99−
100−#: qml/Components/Dialogs.qml:207
101msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
102msgid "Reboot"
84msgid "Reboot"
103msgstr ""
85msgstr ""
104
86
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
106msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
107msgstr "Yenidәn başlatmaq istәdiyinizә әminsiniz?"
89msgstr "Yenidәn başlatmaq istәdiyinizә әminsiniz?"
108
90
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
110msgid "No"
92msgid "No"
111msgstr "Yox"
93msgstr "Yox"
112
94
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:182
114msgid "Yes"
96msgid "Yes"
115msgstr "Hə"
97msgstr "Hə"
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
119msgid "Power"
101msgid "Power"
120msgstr ""
102msgstr ""
121
103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
123msgid ""
105msgid ""
124"Are you sure you would like\n"
106"Are you sure you would like\n"
125"to power off?"
107"to power off?"
126msgstr ""
108msgstr ""
127
109
128−#: qml/Components/Dialogs.qml:235
110+#: qml/Components/Dialogs.qml:200
129msgctxt "Button: Power off the system"
111msgctxt "Button: Power off the system"
130msgid "Power off"
112msgid "Power off"
131msgstr ""
113msgstr ""
132
114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:209
134msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
135msgid "Restart"
117msgid "Restart"
136msgstr ""
118msgstr ""
@@ -173,42 +155,58 @@ msgstr ""
173msgid "Close all"
155msgid "Close all"
174msgstr ""
156msgstr ""
175
157
176−#: qml/Dash/DashPageHeader.qml:270
158+#: qml/Dash/DashPageHeader.qml:337
177msgctxt "Button: Open the Ubuntu Store"
159msgctxt "Button: Open the Ubuntu Store"
178msgid "Store"
160msgid "Store"
179msgstr ""
161msgstr ""
180
162
181−#: qml/Dash/DashPageHeader.qml:277
163+#: qml/Dash/DashPageHeader.qml:344
182msgctxt "Button: Start a search in the current dash scope"
164msgctxt "Button: Start a search in the current dash scope"
183msgid "Search"
165msgid "Search"
184msgstr ""
166msgstr ""
185
167
186−#: qml/Dash/DashPageHeader.qml:287
168+#: qml/Dash/DashPageHeader.qml:354
187msgctxt "Button: Show the current dash scope settings"
169msgctxt "Button: Show the current dash scope settings"
188msgid "Settings"
170msgid "Settings"
189msgstr ""
171msgstr ""
190
172
191−#: qml/Dash/DashPageHeader.qml:294
173+#: qml/Dash/DashPageHeader.qml:361
192msgid "Remove from Favorites"
174msgid "Remove from Favorites"
193msgstr "Seçilmişlәrdәn çıxart"
175msgstr "Seçilmişlәrdәn çıxart"
194
176
195−#: qml/Dash/DashPageHeader.qml:294
177+#: qml/Dash/DashPageHeader.qml:361
196msgid "Add to Favorites"
178msgid "Add to Favorites"
197msgstr "Seçilmişlәrә әlavә et"
179msgstr "Seçilmişlәrә әlavә et"
198
180
199−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
181+#: qml/Dash/FiltersPopover.qml:60
182+msgid "Refine your results"
183+msgstr ""
184+
185+#: qml/Dash/FiltersPopover.qml:69
200−msgid "See less"
186+msgid "Reset"
201−msgstr "Daha azını gör"
187+msgstr ""
202
188
203−#: qml/Dash/GenericScopeView.qml:567
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
204−msgid "See all"
190+msgid "Show less"
191+msgstr ""
192+
193+#: qml/Dash/GenericScopeView.qml:579
194+msgid "Show all"
205−msgstr "Hamısını gör"
195+msgstr ""
206
196
207−#: qml/Dash/GenericScopeView.qml:629
197+#: qml/Dash/GenericScopeView.qml:636
208msgctxt "Label: Hint for dash search line edit"
198msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
199msgid "Search"
210msgstr ""
200msgstr ""
211
201
202+#: qml/Dash/PageHeaderExtraPanel.qml:55
203+msgid "Recent Searches"
204+msgstr ""
205+
206+#: qml/Dash/PageHeaderExtraPanel.qml:66
207+msgid "Clear All"
208+msgstr ""
209+
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
213msgid "More..."
211msgid "More..."
214msgstr "Daha çox..."
212msgstr "Daha çox..."
@@ -276,11 +274,11 @@ msgstr ""
276msgid "Tap to unlock"
274msgid "Tap to unlock"
277msgstr ""
275msgstr ""
278
276
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
280msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
281msgstr "Bağışlayın, açar söz yanlışdır."
279msgstr "Bağışlayın, açar söz yanlışdır."
282
280
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
284msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
285msgstr "Təəssüf ki, açar kod yanlışdır."
283msgstr "Təəssüf ki, açar kod yanlışdır."
286
284
@@ -309,7 +307,7 @@ msgstr ""
309msgid "Enter %1"
307msgid "Enter %1"
310msgstr ""
308msgstr ""
311
309
312−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
310+#: qml/Greeter/NarrowView.qml:117
313msgid "Enter passphrase"
311msgid "Enter passphrase"
314msgstr ""
312msgstr ""
315
313
@@ -335,7 +333,7 @@ msgstr ""
335msgid "Sorry, incorrect passcode"
333msgid "Sorry, incorrect passcode"
336msgstr ""
334msgstr ""
337
335
338−#: qml/Notifications/NotificationMenuItemFactory.qml:129
336+#: qml/Notifications/NotificationMenuItemFactory.qml:124
339msgid "Show password"
337msgid "Show password"
340msgstr "Şifrәni göstәr"
338msgstr "Şifrәni göstәr"
341
339
@@ -347,62 +345,62 @@ msgstr "Zəngə qayıtmaq üçün toxunun..."
347msgid "Conference"
345msgid "Conference"
348msgstr "Konfrans"
346msgstr "Konfrans"
349
347
350−#: qml/Panel/Indicators/MenuItemFactory.qml:752
348+#: qml/Panel/Indicators/MenuItemFactory.qml:762
351msgid "Nothing is playing"
349msgid "Nothing is playing"
352msgstr ""
350msgstr ""
353
351
354−#: qml/Panel/Indicators/MenuItemFactory.qml:881
352+#: qml/Panel/Indicators/MenuItemFactory.qml:891
355#, qt-format
353#, qt-format
356msgid "%1 hour"
354msgid "%1 hour"
357msgid_plural "%1 hours"
355msgid_plural "%1 hours"
358msgstr[0] ""
356msgstr[0] ""
359msgstr[1] ""
357msgstr[1] ""
360
358
361−#: qml/Panel/Indicators/MenuItemFactory.qml:885
359+#: qml/Panel/Indicators/MenuItemFactory.qml:895
362#, qt-format
360#, qt-format
363msgid "%1 minute"
361msgid "%1 minute"
364msgid_plural "%1 minutes"
362msgid_plural "%1 minutes"
365msgstr[0] ""
363msgstr[0] ""
366msgstr[1] ""
364msgstr[1] ""
367
365
368−#: qml/Panel/Indicators/MenuItemFactory.qml:890
366+#: qml/Panel/Indicators/MenuItemFactory.qml:900
369#, qt-format
367#, qt-format
370msgid "%1 second"
368msgid "%1 second"
371msgid_plural "%1 seconds"
369msgid_plural "%1 seconds"
372msgstr[0] ""
370msgstr[0] ""
373msgstr[1] ""
371msgstr[1] ""
374
372
375−#: qml/Panel/Indicators/MenuItemFactory.qml:893
373+#: qml/Panel/Indicators/MenuItemFactory.qml:903
376msgid "0 seconds"
374msgid "0 seconds"
377msgstr ""
375msgstr ""
378
376
379#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
377#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
380−#: qml/Panel/Indicators/MenuItemFactory.qml:895
378+#: qml/Panel/Indicators/MenuItemFactory.qml:905
381#, qt-format
379#, qt-format
382msgid "%1 remaining"
380msgid "%1 remaining"
383msgstr ""
381msgstr ""
384
382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:901
383+#: qml/Panel/Indicators/MenuItemFactory.qml:911
386msgid "In queue…"
384msgid "In queue…"
387msgstr "Növbədədir..."
385msgstr "Növbədədir..."
388
386
389−#: qml/Panel/Indicators/MenuItemFactory.qml:905
387+#: qml/Panel/Indicators/MenuItemFactory.qml:915
390msgid "Downloading"
388msgid "Downloading"
391msgstr "Endirilir"
389msgstr "Endirilir"
392
390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:907
391+#: qml/Panel/Indicators/MenuItemFactory.qml:917
394msgid "Paused, tap to resume"
392msgid "Paused, tap to resume"
395msgstr "Dayandırıldı. Davam etmək üçün toxunun"
393msgstr "Dayandırıldı. Davam etmək üçün toxunun"
396
394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:909
395+#: qml/Panel/Indicators/MenuItemFactory.qml:919
398msgid "Canceled"
396msgid "Canceled"
399msgstr "İmtina edildi"
397msgstr "İmtina edildi"
400
398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:911
399+#: qml/Panel/Indicators/MenuItemFactory.qml:921
402msgid "Finished"
400msgid "Finished"
403msgstr "Bitdi"
401msgstr "Bitdi"
404
402
405−#: qml/Panel/Indicators/MenuItemFactory.qml:913
403+#: qml/Panel/Indicators/MenuItemFactory.qml:923
406msgid "Failed, tap to retry"
404msgid "Failed, tap to retry"
407msgstr "Alınmadı. Yenidәn cәhd etmək üçün toxunun"
405msgstr "Alınmadı. Yenidәn cәhd etmək üçün toxunun"
408
406
@@ -422,243 +420,323 @@ msgctxt "Button: Call back on phone"
422msgid "Call back"
420msgid "Call back"
423msgstr ""
421msgstr ""
424
422
425−#: qml/Tutorial/TutorialBottom.qml:28
423+#: qml/Stages/SideStage.qml:76
426−msgid "Open special menus"
424+msgid "Drag using 3 fingers any application from one window to the other"
427−msgstr ""
428−
429−#: qml/Tutorial/TutorialBottom.qml:29
430−msgid "Swipe up from the bottom edge."
431msgstr ""
425msgstr ""
432
426
433−#: qml/Tutorial/TutorialBottomFinish.qml:24
427+#: qml/Tutorial/TutorialBottom.qml:78
434−msgid "This action does different things for different apps"
428+msgid "Swipe up to add a contact"
435msgstr ""
429msgstr ""
436
430
437−#: qml/Tutorial/TutorialBottomFinish.qml:25
431+#: qml/Tutorial/TutorialBottom.qml:80
438−msgid "Tap here to finish."
432+msgid "Swipe up for favorite calculations"
439msgstr ""
433msgstr ""
440
434
441−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
435+#: qml/Tutorial/TutorialBottom.qml:82
442−#: qml/Tutorial/TutorialRight.qml:144
436+msgid "Swipe up for recent calls"
443−msgid "Tap here to continue."
444msgstr ""
437msgstr ""
445
438
446−#: qml/Tutorial/TutorialLeft.qml:26
439+#: qml/Tutorial/TutorialBottom.qml:84
447−msgid "Open the launcher"
440+msgid "Swipe up to create a message"
448msgstr ""
441msgstr ""
449
442
450−#: qml/Tutorial/TutorialLeft.qml:27
443+#: qml/Tutorial/TutorialBottom.qml:85
451−msgid "Short swipe from the left edge."
444+msgid "Swipe up to manage the app"
452msgstr ""
445msgstr ""
453
446
454−#: qml/Tutorial/TutorialLeftFinish.qml:24
447+#: qml/Tutorial/TutorialLeftLong.qml:47
455−msgid "These are the shortcuts to favorite apps"
448+msgid "Long swipe from the left edge to open the Today scope"
456msgstr ""
449msgstr ""
457
450
458−#: qml/Tutorial/TutorialPage.qml:178
451+#: qml/Tutorial/TutorialLeft.qml:47
459−msgid "You almost got it!"
452+msgid "Swipe from the left edge to open the launcher"
460msgstr ""
453msgstr ""
461
454
462−#: qml/Tutorial/TutorialPage.qml:195
455+#: qml/Tutorial/TutorialRight.qml:55
463−msgid "Try again."
456+msgid "Push your mouse against the right edge to view your open apps"
464msgstr ""
457msgstr ""
465
458
466−#: qml/Tutorial/TutorialRight.qml:31
459+#: qml/Tutorial/TutorialRight.qml:56
467−msgid "To view open apps"
460+msgid "Short or long swipe from the right edge to view your open apps"
468msgstr ""
461msgstr ""
469
462
470−#: qml/Tutorial/TutorialRight.qml:32
463+#: qml/Tutorial/TutorialTop.qml:53
471−msgid "Long swipe from the right edge."
464+msgid "Swipe from the top right edge to open the notification bar"
472msgstr ""
465msgstr ""
473
466
474−#: qml/Tutorial/TutorialRight.qml:122
467+#: qml/Tutorial/TutorialTop.qml:54
475−msgid "View all your running tasks."
468+msgid "Swipe from the top edge to open the notification bar"
476msgstr ""
469msgstr ""
477
470
478−#: qml/Wizard/Page.qml:89
471+#: qml/Wizard/Page.qml:54
479msgctxt "Button: Go back one page in the Wizard"
472msgctxt "Button: Go back one page in the Wizard"
480msgid "Back"
473msgid "Back"
481msgstr ""
474msgstr ""
482
475
483#: qml/Wizard/Pages/10-welcome.qml:27
476#: qml/Wizard/Pages/10-welcome.qml:27
484−msgid "Hi!"
477+msgid "Language"
485msgstr ""
478msgstr ""
486
479
487−#: qml/Wizard/Pages/10-welcome.qml:44
480+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
488−msgid "Welcome to your Ubuntu device."
481+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
482+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
483+#: qml/Wizard/Pages/75-report-check.qml:84
484+#: qml/Wizard/Pages/passcode-desktop.qml:124
485+#: qml/Wizard/Pages/password-set.qml:141
486+msgid "Next"
489msgstr ""
487msgstr ""
490
488
491−#: qml/Wizard/Pages/10-welcome.qml:52
489+#: qml/Wizard/Pages/30-wifi.qml:29
492−msgid "Let’s get started."
490+msgid "Connect to Wi‑Fi"
493msgstr ""
491msgstr ""
494
492
495−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
493+#: qml/Wizard/Pages/30-wifi.qml:130
496−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
494+msgid "Connected"
497−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
498−#: qml/Wizard/Pages/passwd-set.qml:90
499−msgid "Continue"
500msgstr ""
495msgstr ""
501
496
502−#: qml/Wizard/Pages/20-sim.qml:25
497+#: qml/Wizard/Pages/30-wifi.qml:163
503−msgid "Add a SIM card and restart your device"
498+msgid "Available Wi-Fi networks"
504msgstr ""
499msgstr ""
505
500
506−#: qml/Wizard/Pages/20-sim.qml:59
501+#: qml/Wizard/Pages/30-wifi.qml:164
507−msgid "Without it, you won’t be able to make calls or use text messaging."
502+msgid "No available Wi-Fi networks"
508msgstr ""
503msgstr ""
509
504
510−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
505+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
506+#: qml/Wizard/Pages/sim.qml:101
511msgid "Skip"
507msgid "Skip"
512msgstr ""
508msgstr ""
513
509
514−#: qml/Wizard/Pages/30-passwd-type.qml:39
510+#: qml/Wizard/Pages/40-location.qml:27
515−msgid "Lock security"
511+msgid "Location Services"
516msgstr ""
512msgstr ""
517
513
518−#: qml/Wizard/Pages/30-passwd-type.qml:79
514+#: qml/Wizard/Pages/40-location.qml:83
519−msgid "Please select how you’d like to unlock your device."
515+msgid ""
516+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
517+"(recommended)"
520msgstr ""
518msgstr ""
521
519
522−#: qml/Wizard/Pages/30-passwd-type.qml:102
520+#: qml/Wizard/Pages/40-location.qml:105
523−msgctxt "Label: Type of security method"
521+#, qt-format
524−msgid "Swipe"
522+msgid "By selecting this option you agree to the Nokia HERE %1."
523+msgstr ""
524+
525+#: qml/Wizard/Pages/40-location.qml:106
526+msgctxt "part of: Nokia HERE terms and conditions"
527+msgid "terms and conditions"
528+msgstr ""
529+
530+#: qml/Wizard/Pages/40-location.qml:160
531+msgid "GPS only"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:214
535+msgid "Don't use my location"
536+msgstr ""
537+
538+#: qml/Wizard/Pages/40-location.qml:260
539+msgid "You can change it later in System Settings."
540+msgstr ""
541+
542+#: qml/Wizard/Pages/50-timezone.qml:29
543+msgid "Time Zone"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/50-timezone.qml:178
547+msgid "Enter your city"
525msgstr ""
548msgstr ""
526
549
527−#: qml/Wizard/Pages/30-passwd-type.qml:103
550+#: qml/Wizard/Pages/60-account.qml:24
528−msgctxt "Label: Description of security method"
551+msgid "Personalize Your Device"
529−msgid "No security"
530msgstr ""
552msgstr ""
531
553
532−#: qml/Wizard/Pages/30-passwd-type.qml:105
554+#: qml/Wizard/Pages/60-account.qml:48
555+msgid "Preferred Name"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/70-passwd-type.qml:39
559+msgid "Lock Screen"
560+msgstr ""
561+
562+#: qml/Wizard/Pages/70-passwd-type.qml:101
533msgctxt "Label: Type of security method"
563msgctxt "Label: Type of security method"
534−msgid "Passcode"
564+msgid "Create new password"
535msgstr ""
565msgstr ""
536
566
537−#: qml/Wizard/Pages/30-passwd-type.qml:106
567+#: qml/Wizard/Pages/70-passwd-type.qml:103
538−msgctxt "Label: Description of security method"
568+msgctxt "Label: Type of security method"
539−msgid "4 digits only"
569+msgid "Create passcode (numbers only)"
540msgstr ""
570msgstr ""
541
571
542−#: qml/Wizard/Pages/30-passwd-type.qml:108
572+#: qml/Wizard/Pages/70-passwd-type.qml:105
543msgctxt "Label: Type of security method"
573msgctxt "Label: Type of security method"
544−msgid "Passphrase"
574+msgid "No lock code"
545msgstr ""
575msgstr ""
546
576
547−#: qml/Wizard/Pages/30-passwd-type.qml:109
577+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
548−msgctxt "Label: Description of security method"
578+msgid "Privacy Policy"
549−msgid "Numbers and letters"
550msgstr ""
579msgstr ""
551
580
552−#: qml/Wizard/Pages/40-wifi.qml:29
581+#: qml/Wizard/Pages/75-report-check.qml:26
553−msgid "Connect to Wi‑Fi"
582+msgid "Help Us Improve"
554msgstr ""
583msgstr ""
555
584
556−#: qml/Wizard/Pages/40-wifi.qml:168
585+#: qml/Wizard/Pages/75-report-check.qml:59
557−msgid "Available networks…"
586+msgid "Improve system performance by sending us crashes and error reports."
558msgstr ""
587msgstr ""
559
588
560−#: qml/Wizard/Pages/40-wifi.qml:169
589+#: qml/Wizard/Pages/75-report-check.qml:60
561−msgid "No available networks."
590+msgid "Privacy policy"
562msgstr ""
591msgstr ""
563
592
564−#: qml/Wizard/Pages/50-location.qml:27
593+#: qml/Wizard/Pages/80-finished.qml:89
565−msgid "Location"
594+msgid "Welcome to Ubuntu"
566msgstr ""
595msgstr ""
567
596
568−#: qml/Wizard/Pages/50-location.qml:62
597+#: qml/Wizard/Pages/80-finished.qml:104
569−msgid "Let the phone detect your location:"
598+msgid "You are ready to use your device now"
570msgstr ""
599msgstr ""
571
600
572−#: qml/Wizard/Pages/50-location.qml:69
601+#: qml/Wizard/Pages/80-finished.qml:124
573−msgid "Using GPS only (less accurate)"
602+msgid "Get Started"
574msgstr ""
603msgstr ""
575
604
576−#: qml/Wizard/Pages/50-location.qml:86
605+#: qml/Wizard/Pages/here-terms.qml:25
577−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
606+msgid "Terms & Conditions"
607+msgstr ""
608+
609+#: qml/Wizard/Pages/here-terms.qml:69
610+msgid "Your device uses positioning technologies provided by HERE."
578msgstr ""
611msgstr ""
579
612
580−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
581−#: qml/Wizard/Pages/50-location.qml:103
613+#: qml/Wizard/Pages/here-terms.qml:81
582msgid ""
614msgid ""
583−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
615+"To provide you with positioning services and to improve their quality, HERE "
584−"conditions</a>."
616+"collects information about nearby cell towers and Wi-Fi hotspots around your "
617+"current location whenever your position is being found."
585msgstr ""
618msgstr ""
586
619
587−#: qml/Wizard/Pages/50-location.qml:112
620+#: qml/Wizard/Pages/here-terms.qml:93
588−msgid "Not at all"
621+msgid ""
622+"The information collected is used to analyze the service and to improve the "
623+"use of service, but not to identify you personally."
589msgstr ""
624msgstr ""
590
625
591−#: qml/Wizard/Pages/50-location.qml:124
626+#: qml/Wizard/Pages/here-terms.qml:106
592−msgid "You can change your mind later in <b>System Settings</b>."
627+#, qt-format
628+msgid "By continuing, you agree to the HERE platform %1 and %2."
593msgstr ""
629msgstr ""
594
630
595−#: qml/Wizard/Pages/60-reporting.qml:26
631+#: qml/Wizard/Pages/here-terms.qml:107
596−msgid "Improving your experience"
632+msgid "Service Terms"
597msgstr ""
633msgstr ""
598
634
599−#: qml/Wizard/Pages/60-reporting.qml:46
635+#: qml/Wizard/Pages/passcode-confirm.qml:43
636+#: qml/Wizard/Pages/passcode-desktop.qml:80
600−msgid ""
637+msgid "Confirm passcode"
601−"Your phone is set up to automatically report errors to Canonical and its "
602−"partners, the makers of the operating system."
603msgstr ""
638msgstr ""
604
639
605−#: qml/Wizard/Pages/60-reporting.qml:53
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
606−msgid ""
641+msgid "Incorrect passcode."
607−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
608−"Privacy</b>"
609msgstr ""
642msgstr ""
610
643
611−#: qml/Wizard/Pages/80-finished.qml:24
644+#: qml/Wizard/Pages/passcode-confirm.qml:45
612−msgid "All done"
645+msgctxt "Enter the passcode again"
646+msgid "Please re-enter."
613msgstr ""
647msgstr ""
614
648
615−#: qml/Wizard/Pages/80-finished.qml:39
649+#: qml/Wizard/Pages/passcode-desktop.qml:30
616−msgid "Nice work!"
650+msgid "Lock Screen Passcode"
617msgstr ""
651msgstr ""
618
652
619−#: qml/Wizard/Pages/80-finished.qml:46
653+#: qml/Wizard/Pages/passcode-desktop.qml:56
620−msgid "Your device is now ready to use."
654+msgid "Enter 4 numbers to setup your passcode"
621msgstr ""
655msgstr ""
622
656
623−#: qml/Wizard/Pages/80-finished.qml:53
657+#: qml/Wizard/Pages/passcode-desktop.qml:65
624−msgid "Finish"
658+#: qml/Wizard/Pages/passcode-set.qml:54
659+msgid "Choose passcode"
625msgstr ""
660msgstr ""
626
661
627−#: qml/Wizard/Pages/here-terms.qml:27
662+#: qml/Wizard/Pages/passcode-desktop.qml:105
628−msgid "Terms & Conditions"
663+msgid "Passcode too short"
629msgstr ""
664msgstr ""
630
665
631−#: qml/Wizard/Pages/passwd-confirm.qml:49
666+#: qml/Wizard/Pages/passcode-desktop.qml:107
632−msgid "Confirm passphrase"
667+msgid "Passcodes match"
633msgstr ""
668msgstr ""
634
669
635−#: qml/Wizard/Pages/passwd-confirm.qml:50
670+#: qml/Wizard/Pages/passcode-desktop.qml:109
636−msgid "Confirm passcode"
671+msgid "Passcodes do not match"
637msgstr ""
672msgstr ""
638
673
639−#: qml/Wizard/Pages/passwd-confirm.qml:53
674+#: qml/Wizard/Pages/passcode-set.qml:62
640−#: qml/Wizard/Pages/passwd-confirm.qml:54
675+msgid "Passcode must be 4 characters long"
641−msgid "Please try again."
642msgstr ""
676msgstr ""
643
677
644−#: qml/Wizard/Pages/passwd-set.qml:61
678+#: qml/Wizard/Pages/password-set.qml:30
645−msgid "Choose your passcode"
679+msgid "Lock Screen Password"
646msgstr ""
680msgstr ""
647
681
648−#: qml/Wizard/Pages/passwd-set.qml:68
682+#: qml/Wizard/Pages/password-set.qml:61
649−msgid "Passphrase must be 4 characters long"
683+msgid "Enter at least 8 characters"
650msgstr ""
684msgstr ""
651
685
652−#. Translators: This is the arrow for "Back" buttons
686+#: qml/Wizard/Pages/password-set.qml:73
653−#: qml/Wizard/StackButton.qml:39
654−#, qt-format
655−msgid "〈 %1"
687+msgid "Choose password"
656msgstr ""
688msgstr ""
657
689
658−#. Translators: This is the arrow for "Forward" buttons
690+#: qml/Wizard/Pages/password-set.qml:103
659−#: qml/Wizard/StackButton.qml:42
691+msgid "Confirm password"
660−#, qt-format
692+msgstr ""
661−msgid "%1 〉"
693+
694+#: qml/Wizard/Pages/sim.qml:27
695+msgid "No SIM card installed"
696+msgstr ""
697+
698+#: qml/Wizard/Pages/sim.qml:54
699+msgid "SIM card added"
700+msgstr ""
701+
702+#: qml/Wizard/Pages/sim.qml:55
703+msgid "You must restart the device to access the mobile network."
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:59
707+msgid "Restart"
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:78
711+msgid "You won’t be able to make calls or use text messaging without a SIM."
712+msgstr ""
713+
714+#: qml/Wizard/Pages/sim.qml:90
715+msgid "To proceed with no SIM tap Skip."
716+msgstr ""
717+
718+#: qml/Wizard/PasswordMeter.qml:87
719+msgid "Passwords match"
720+msgstr ""
721+
722+#: qml/Wizard/PasswordMeter.qml:89
723+msgid "Passwords do not match"
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:93
727+msgid "Strong password"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:95
731+msgid "Fair password"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:97
735+msgid "Weak password"
736+msgstr ""
737+
738+#: qml/Wizard/PasswordMeter.qml:99
739+msgid "Very weak password"
662msgstr ""
740msgstr ""
663
741
664#~ msgid "Confirm"
742#~ msgid "Confirm"
@@ -698,6 +776,9 @@ msgstr ""
698#~ msgid "Power off"
776#~ msgid "Power off"
699#~ msgstr "Söndür"
777#~ msgstr "Söndür"
700
778
779+#~ msgid "See all"
780+#~ msgstr "Hamısını gör"
781+
701#~ msgid "All"
782#~ msgid "All"
702#~ msgstr "Hamısı"
783#~ msgstr "Hamısı"
703
784
@@ -716,6 +797,9 @@ msgstr ""
716#~ msgid "Log out"
797#~ msgid "Log out"
717#~ msgstr "Çıxış"
798#~ msgstr "Çıxış"
718
799
800+#~ msgid "Are you sure you want to shut down?"
801+#~ msgstr "Sistemi söndürmәk istәdiyinizә әminsiniz?"
802+
719#~ msgid "Shut down"
803#~ msgid "Shut down"
720#~ msgstr "Sistemi Söndür"
804#~ msgstr "Sistemi Söndür"
721
805
@@ -744,5 +828,8 @@ msgstr ""
744#~ msgid "Settings"
828#~ msgid "Settings"
745#~ msgstr "Tənzimləmələr"
829#~ msgstr "Tənzimləmələr"
746
830
831+#~ msgid "See less"
832+#~ msgstr "Daha azını gör"
833+
747#~ msgid "Type or say a command"
834#~ msgid "Type or say a command"
748#~ msgstr "Bir әmr söyləyin və ya yazın"
835#~ msgstr "Bir әmr söyləyin və ya yazın"
po/be.po+486−241
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2015-12-13 13:12+0000\n"
11"PO-Revision-Date: 2015-12-13 13:12+0000\n"
12"Last-Translator: Mikhail_SaTuRn <mikhail_saturn@tut.by>\n"
12"Last-Translator: Mikhail_SaTuRn <mikhail_saturn@tut.by>\n"
13"Language-Team: Belarusian <be@li.org>\n"
13"Language-Team: Belarusian <be@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19−"X-Launchpad-Export-Date: 2016-03-13 05:50+0000\n"
19+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
20−"X-Generator: Launchpad (build 17939)\n"
20+"X-Generator: Launchpad (build 17995)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -78,53 +78,35 @@ msgctxt "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:194
81+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
82−#: qml/Components/Dialogs.qml:253
82+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
83+#: qml/Wizard/Pages/passcode-set.qml:32
83msgid "Cancel"
84msgid "Cancel"
84msgstr "Скасаваць"
85msgstr "Скасаваць"
85
86
86#: qml/Components/Dialogs.qml:173
87#: qml/Components/Dialogs.qml:173
87−msgctxt "Title: Reboot/Shut down dialog"
88−msgid "Shut down"
89−msgstr "Выключыць"
90−
91−#: qml/Components/Dialogs.qml:174
92−msgid "Are you sure you want to shut down?"
93−msgstr "Вы ўпэўненыя, што жадаеце выключыць прыладу?"
94−
95−#: qml/Components/Dialogs.qml:176
96−msgctxt "Button: Reboot the system"
97−msgid "Reboot"
98−msgstr "Перазагрузіць"
99−
100−#: qml/Components/Dialogs.qml:185
101−msgctxt "Button: Shut down the system"
102−msgid "Shut down"
103−msgstr "Выключыць"
104−
105−#: qml/Components/Dialogs.qml:207
106msgctxt "Title: Reboot dialog"
88msgctxt "Title: Reboot dialog"
107msgid "Reboot"
89msgid "Reboot"
108msgstr "Перазагрузіць"
90msgstr "Перазагрузіць"
109
91
110−#: qml/Components/Dialogs.qml:208
92+#: qml/Components/Dialogs.qml:174
111msgid "Are you sure you want to reboot?"
93msgid "Are you sure you want to reboot?"
112msgstr "Вы ўпэўнены, што жадаеце перазагрузіць?"
94msgstr "Вы ўпэўнены, што жадаеце перазагрузіць?"
113
95
114−#: qml/Components/Dialogs.qml:210
96+#: qml/Components/Dialogs.qml:176
115msgid "No"
97msgid "No"
116msgstr "Не"
98msgstr "Не"
117
99
118−#: qml/Components/Dialogs.qml:217
100+#: qml/Components/Dialogs.qml:182
119msgid "Yes"
101msgid "Yes"
120msgstr "Так"
102msgstr "Так"
121
103
122−#: qml/Components/Dialogs.qml:232
104+#: qml/Components/Dialogs.qml:197
123msgctxt "Title: Power off/Restart dialog"
105msgctxt "Title: Power off/Restart dialog"
124msgid "Power"
106msgid "Power"
125msgstr "Сілкаванне"
107msgstr "Сілкаванне"
126
108
127−#: qml/Components/Dialogs.qml:233
109+#: qml/Components/Dialogs.qml:198
128msgid ""
110msgid ""
129"Are you sure you would like\n"
111"Are you sure you would like\n"
130"to power off?"
112"to power off?"
@@ -132,12 +114,12 @@ msgstr ""
132"Вы ўпэўнены, што хочаце\n"
114"Вы ўпэўнены, што хочаце\n"
133"выключыць камп'ютэр?"
115"выключыць камп'ютэр?"
134
116
135−#: qml/Components/Dialogs.qml:235
117+#: qml/Components/Dialogs.qml:200
136msgctxt "Button: Power off the system"
118msgctxt "Button: Power off the system"
137msgid "Power off"
119msgid "Power off"
138msgstr "Выключыць"
120msgstr "Выключыць"
139
121
140−#: qml/Components/Dialogs.qml:244
122+#: qml/Components/Dialogs.qml:209
141msgctxt "Button: Restart the system"
123msgctxt "Button: Restart the system"
142msgid "Restart"
124msgid "Restart"
143msgstr "Перазапуск"
125msgstr "Перазапуск"
@@ -180,42 +162,58 @@ msgstr "Перападлучыцца зараз!"
180msgid "Close all"
162msgid "Close all"
181msgstr "Зачыніць усё"
163msgstr "Зачыніць усё"
182
164
183−#: qml/Dash/DashPageHeader.qml:270
165+#: qml/Dash/DashPageHeader.qml:337
184msgctxt "Button: Open the Ubuntu Store"
166msgctxt "Button: Open the Ubuntu Store"
185msgid "Store"
167msgid "Store"
186msgstr "Крама"
168msgstr "Крама"
187
169
188−#: qml/Dash/DashPageHeader.qml:277
170+#: qml/Dash/DashPageHeader.qml:344
189msgctxt "Button: Start a search in the current dash scope"
171msgctxt "Button: Start a search in the current dash scope"
190msgid "Search"
172msgid "Search"
191msgstr "Пошук"
173msgstr "Пошук"
192
174
193−#: qml/Dash/DashPageHeader.qml:287
175+#: qml/Dash/DashPageHeader.qml:354
194msgctxt "Button: Show the current dash scope settings"
176msgctxt "Button: Show the current dash scope settings"
195msgid "Settings"
177msgid "Settings"
196msgstr "Налады"
178msgstr "Налады"
197
179
198−#: qml/Dash/DashPageHeader.qml:294
180+#: qml/Dash/DashPageHeader.qml:361
199msgid "Remove from Favorites"
181msgid "Remove from Favorites"
200msgstr "Выдаліць з абранага"
182msgstr "Выдаліць з абранага"
201
183
202−#: qml/Dash/DashPageHeader.qml:294
184+#: qml/Dash/DashPageHeader.qml:361
203msgid "Add to Favorites"
185msgid "Add to Favorites"
204msgstr "Дадаць да абранага"
186msgstr "Дадаць да абранага"
205
187
206−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
188+#: qml/Dash/FiltersPopover.qml:60
189+msgid "Refine your results"
190+msgstr ""
191+
192+#: qml/Dash/FiltersPopover.qml:69
207−msgid "See less"
193+msgid "Reset"
208−msgstr "Карацей"
194+msgstr ""
209
195
210−#: qml/Dash/GenericScopeView.qml:567
196+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
211−msgid "See all"
197+msgid "Show less"
212−msgstr "Больш падрабязна"
198+msgstr ""
213
199
214−#: qml/Dash/GenericScopeView.qml:629
200+#: qml/Dash/GenericScopeView.qml:579
201+msgid "Show all"
202+msgstr ""
203+
204+#: qml/Dash/GenericScopeView.qml:636
215msgctxt "Label: Hint for dash search line edit"
205msgctxt "Label: Hint for dash search line edit"
216msgid "Search"
206msgid "Search"
217msgstr "Пошук"
207msgstr "Пошук"
218
208
209+#: qml/Dash/PageHeaderExtraPanel.qml:55
210+msgid "Recent Searches"
211+msgstr ""
212+
213+#: qml/Dash/PageHeaderExtraPanel.qml:66
214+msgid "Clear All"
215+msgstr ""
216+
219#: qml/Dash/Previews/PreviewActionCombo.qml:35
217#: qml/Dash/Previews/PreviewActionCombo.qml:35
220msgid "More..."
218msgid "More..."
221msgstr "Болей…"
219msgstr "Болей…"
@@ -283,11 +281,11 @@ msgstr "Паспрабаваць зноў"
283msgid "Tap to unlock"
281msgid "Tap to unlock"
284msgstr "Націсніце, каб разблакаваць"
282msgstr "Націсніце, каб разблакаваць"
285
283
286−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
284+#: qml/Greeter/NarrowView.qml:54
287msgid "Sorry, incorrect passphrase."
285msgid "Sorry, incorrect passphrase."
288msgstr "Даруйце, няслушны пароль."
286msgstr "Даруйце, няслушны пароль."
289
287
290−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
288+#: qml/Greeter/NarrowView.qml:55
291msgid "Sorry, incorrect passcode."
289msgid "Sorry, incorrect passcode."
292msgstr "Даруйце, няслушны код."
290msgstr "Даруйце, няслушны код."
293
291
@@ -316,7 +314,7 @@ msgstr ""
316msgid "Enter %1"
314msgid "Enter %1"
317msgstr "Увядзіце %1"
315msgstr "Увядзіце %1"
318
316
319−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
317+#: qml/Greeter/NarrowView.qml:117
320msgid "Enter passphrase"
318msgid "Enter passphrase"
321msgstr "Увядзіце пароль"
319msgstr "Увядзіце пароль"
322
320
@@ -342,7 +340,7 @@ msgstr "Калі ласка, паўтарыце ўвод"
342msgid "Sorry, incorrect passcode"
340msgid "Sorry, incorrect passcode"
343msgstr "Даруйце, некарэктны код"
341msgstr "Даруйце, некарэктны код"
344
342
345−#: qml/Notifications/NotificationMenuItemFactory.qml:129
343+#: qml/Notifications/NotificationMenuItemFactory.qml:124
346msgid "Show password"
344msgid "Show password"
347msgstr "Паказаць пароль"
345msgstr "Паказаць пароль"
348
346
@@ -354,11 +352,11 @@ msgstr "Націсніце, каб вярнуцца да выкліку..."
354msgid "Conference"
352msgid "Conference"
355msgstr "Канферэнцыя"
353msgstr "Канферэнцыя"
356
354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:752
355+#: qml/Panel/Indicators/MenuItemFactory.qml:762
358msgid "Nothing is playing"
356msgid "Nothing is playing"
359msgstr "Нічога не грае"
357msgstr "Нічога не грае"
360
358
361−#: qml/Panel/Indicators/MenuItemFactory.qml:881
359+#: qml/Panel/Indicators/MenuItemFactory.qml:891
362#, qt-format
360#, qt-format
363msgid "%1 hour"
361msgid "%1 hour"
364msgid_plural "%1 hours"
362msgid_plural "%1 hours"
@@ -366,7 +364,7 @@ msgstr[0] "%1 гадзіна"
366msgstr[1] "%1 гадзіны"
364msgstr[1] "%1 гадзіны"
367msgstr[2] "%1 гадзінаў"
365msgstr[2] "%1 гадзінаў"
368
366
369−#: qml/Panel/Indicators/MenuItemFactory.qml:885
367+#: qml/Panel/Indicators/MenuItemFactory.qml:895
370#, qt-format
368#, qt-format
371msgid "%1 minute"
369msgid "%1 minute"
372msgid_plural "%1 minutes"
370msgid_plural "%1 minutes"
@@ -374,7 +372,7 @@ msgstr[0] "%1 хвіліна"
374msgstr[1] "%1 хвіліны"
372msgstr[1] "%1 хвіліны"
375msgstr[2] "%1 хвілінаў"
373msgstr[2] "%1 хвілінаў"
376
374
377−#: qml/Panel/Indicators/MenuItemFactory.qml:890
375+#: qml/Panel/Indicators/MenuItemFactory.qml:900
378#, qt-format
376#, qt-format
379msgid "%1 second"
377msgid "%1 second"
380msgid_plural "%1 seconds"
378msgid_plural "%1 seconds"
@@ -382,37 +380,37 @@ msgstr[0] "%1 секунда"
382msgstr[1] "%1 секунды"
380msgstr[1] "%1 секунды"
383msgstr[2] "%1 секундаў"
381msgstr[2] "%1 секундаў"
384
382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:893
383+#: qml/Panel/Indicators/MenuItemFactory.qml:903
386msgid "0 seconds"
384msgid "0 seconds"
387msgstr "0 секунд"
385msgstr "0 секунд"
388
386
389#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
387#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
390−#: qml/Panel/Indicators/MenuItemFactory.qml:895
388+#: qml/Panel/Indicators/MenuItemFactory.qml:905
391#, qt-format
389#, qt-format
392msgid "%1 remaining"
390msgid "%1 remaining"
393msgstr "%1 засталося"
391msgstr "%1 засталося"
394
392
395−#: qml/Panel/Indicators/MenuItemFactory.qml:901
393+#: qml/Panel/Indicators/MenuItemFactory.qml:911
396msgid "In queue…"
394msgid "In queue…"
397msgstr "У чарзе..."
395msgstr "У чарзе..."
398
396
399−#: qml/Panel/Indicators/MenuItemFactory.qml:905
397+#: qml/Panel/Indicators/MenuItemFactory.qml:915
400msgid "Downloading"
398msgid "Downloading"
401msgstr "Запампоўка"
399msgstr "Запампоўка"
402
400
403−#: qml/Panel/Indicators/MenuItemFactory.qml:907
401+#: qml/Panel/Indicators/MenuItemFactory.qml:917
404msgid "Paused, tap to resume"
402msgid "Paused, tap to resume"
405msgstr "Прыпынена, націсніце для працягу"
403msgstr "Прыпынена, націсніце для працягу"
406
404
407−#: qml/Panel/Indicators/MenuItemFactory.qml:909
405+#: qml/Panel/Indicators/MenuItemFactory.qml:919
408msgid "Canceled"
406msgid "Canceled"
409msgstr "Скасавана"
407msgstr "Скасавана"
410
408
411−#: qml/Panel/Indicators/MenuItemFactory.qml:911
409+#: qml/Panel/Indicators/MenuItemFactory.qml:921
412msgid "Finished"
410msgid "Finished"
413msgstr "Скончана"
411msgstr "Скончана"
414
412
415−#: qml/Panel/Indicators/MenuItemFactory.qml:913
413+#: qml/Panel/Indicators/MenuItemFactory.qml:923
416msgid "Failed, tap to retry"
414msgid "Failed, tap to retry"
417msgstr "Не атрымалася, націсніце, каб паўтарыць спробу"
415msgstr "Не атрымалася, націсніце, каб паўтарыць спробу"
418
416
@@ -432,251 +430,324 @@ msgctxt "Button: Call back on phone"
432msgid "Call back"
430msgid "Call back"
433msgstr "Патэлефанаваць"
431msgstr "Патэлефанаваць"
434
432
435−#: qml/Tutorial/TutorialBottom.qml:28
433+#: qml/Stages/SideStage.qml:76
436−msgid "Open special menus"
434+msgid "Drag using 3 fingers any application from one window to the other"
437−msgstr "Адкрыць спецыяльныя меню"
435+msgstr ""
438−
439−#: qml/Tutorial/TutorialBottom.qml:29
440−msgid "Swipe up from the bottom edge."
441−msgstr "Правесці уверх ад ніжняга краю."
442
436
443−#: qml/Tutorial/TutorialBottomFinish.qml:24
437+#: qml/Tutorial/TutorialBottom.qml:78
444−msgid "This action does different things for different apps"
438+msgid "Swipe up to add a contact"
445−msgstr "Гэта дзеянне мае розныя наступствы для розных праграм"
439+msgstr ""
446
440
447−#: qml/Tutorial/TutorialBottomFinish.qml:25
441+#: qml/Tutorial/TutorialBottom.qml:80
448−msgid "Tap here to finish."
442+msgid "Swipe up for favorite calculations"
449−msgstr "Націсніце тут, каб завяршыць."
443+msgstr ""
450
444
451−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
445+#: qml/Tutorial/TutorialBottom.qml:82
452−#: qml/Tutorial/TutorialRight.qml:144
446+msgid "Swipe up for recent calls"
453−msgid "Tap here to continue."
447+msgstr ""
454−msgstr "Націсніце тут, каб працягнуць."
455
448
456−#: qml/Tutorial/TutorialLeft.qml:26
449+#: qml/Tutorial/TutorialBottom.qml:84
457−msgid "Open the launcher"
450+msgid "Swipe up to create a message"
458−msgstr "Адкрыць панэль запуску"
451+msgstr ""
459
452
460−#: qml/Tutorial/TutorialLeft.qml:27
453+#: qml/Tutorial/TutorialBottom.qml:85
461−msgid "Short swipe from the left edge."
454+msgid "Swipe up to manage the app"
462−msgstr "Кароткі рух з левага краю."
455+msgstr ""
463
456
464−#: qml/Tutorial/TutorialLeftFinish.qml:24
457+#: qml/Tutorial/TutorialLeftLong.qml:47
465−msgid "These are the shortcuts to favorite apps"
458+msgid "Long swipe from the left edge to open the Today scope"
466−msgstr "Гэта скарачэнні для абраных праграм"
459+msgstr ""
467
460
468−#: qml/Tutorial/TutorialPage.qml:178
461+#: qml/Tutorial/TutorialLeft.qml:47
469−msgid "You almost got it!"
462+msgid "Swipe from the left edge to open the launcher"
470−msgstr "Амаль усё!"
463+msgstr ""
471
464
472−#: qml/Tutorial/TutorialPage.qml:195
465+#: qml/Tutorial/TutorialRight.qml:55
473−msgid "Try again."
466+msgid "Push your mouse against the right edge to view your open apps"
474−msgstr "Паспрабуйце яшчэ."
467+msgstr ""
475
468
476−#: qml/Tutorial/TutorialRight.qml:31
469+#: qml/Tutorial/TutorialRight.qml:56
477−msgid "To view open apps"
470+msgid "Short or long swipe from the right edge to view your open apps"
478−msgstr "Паглядзець адкрытыя праграмы"
471+msgstr ""
479
472
480−#: qml/Tutorial/TutorialRight.qml:32
473+#: qml/Tutorial/TutorialTop.qml:53
481−msgid "Long swipe from the right edge."
474+msgid "Swipe from the top right edge to open the notification bar"
482−msgstr "Доўгі рух ад правага краю."
475+msgstr ""
483
476
484−#: qml/Tutorial/TutorialRight.qml:122
477+#: qml/Tutorial/TutorialTop.qml:54
485−msgid "View all your running tasks."
478+msgid "Swipe from the top edge to open the notification bar"
486−msgstr "Паказаць усе запушчаныя задачы."
479+msgstr ""
487
480
488−#: qml/Wizard/Page.qml:89
481+#: qml/Wizard/Page.qml:54
489msgctxt "Button: Go back one page in the Wizard"
482msgctxt "Button: Go back one page in the Wizard"
490msgid "Back"
483msgid "Back"
491msgstr "Вярнуцца"
484msgstr "Вярнуцца"
492
485
493#: qml/Wizard/Pages/10-welcome.qml:27
486#: qml/Wizard/Pages/10-welcome.qml:27
494−msgid "Hi!"
487+msgid "Language"
495−msgstr "Вітай!"
488+msgstr ""
496
489
497−#: qml/Wizard/Pages/10-welcome.qml:44
490+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
498−msgid "Welcome to your Ubuntu device."
491+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
492+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
493+#: qml/Wizard/Pages/75-report-check.qml:84
494+#: qml/Wizard/Pages/passcode-desktop.qml:124
495+#: qml/Wizard/Pages/password-set.qml:141
496+msgid "Next"
499msgstr ""
497msgstr ""
500
498
501−#: qml/Wizard/Pages/10-welcome.qml:52
499+#: qml/Wizard/Pages/30-wifi.qml:29
502−msgid "Let’s get started."
500+msgid "Connect to Wi‑Fi"
503−msgstr "Пачнем."
501+msgstr "Злучыцца з Wi-Fi"
504
502
505−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
503+#: qml/Wizard/Pages/30-wifi.qml:130
506−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
504+msgid "Connected"
507−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
505+msgstr ""
508−#: qml/Wizard/Pages/passwd-set.qml:90
509−msgid "Continue"
510−msgstr "Працягнуць"
511
506
512−#: qml/Wizard/Pages/20-sim.qml:25
507+#: qml/Wizard/Pages/30-wifi.qml:163
513−msgid "Add a SIM card and restart your device"
508+msgid "Available Wi-Fi networks"
514−msgstr "Дадайце SIM-карту і перазагрузіце Вашую прыладу"
509+msgstr ""
515
510
516−#: qml/Wizard/Pages/20-sim.qml:59
511+#: qml/Wizard/Pages/30-wifi.qml:164
517−msgid "Without it, you won’t be able to make calls or use text messaging."
512+msgid "No available Wi-Fi networks"
518−msgstr "Без яе Вы не зможаце тэлефанаваць ці адпраўляць паведамленні."
513+msgstr ""
519
514
520−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
515+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
516+#: qml/Wizard/Pages/sim.qml:101
521msgid "Skip"
517msgid "Skip"
522msgstr "Прапусціць"
518msgstr "Прапусціць"
523
519
524−#: qml/Wizard/Pages/30-passwd-type.qml:39
520+#: qml/Wizard/Pages/40-location.qml:27
525−msgid "Lock security"
521+msgid "Location Services"
526−msgstr "Блакіроўка"
522+msgstr ""
527
523
528−#: qml/Wizard/Pages/30-passwd-type.qml:79
524+#: qml/Wizard/Pages/40-location.qml:83
529−msgid "Please select how you’d like to unlock your device."
525+msgid ""
526+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
527+"(recommended)"
530msgstr ""
528msgstr ""
531
529
532−#: qml/Wizard/Pages/30-passwd-type.qml:102
530+#: qml/Wizard/Pages/40-location.qml:105
533−msgctxt "Label: Type of security method"
531+#, qt-format
534−msgid "Swipe"
532+msgid "By selecting this option you agree to the Nokia HERE %1."
533+msgstr ""
534+
535+#: qml/Wizard/Pages/40-location.qml:106
536+msgctxt "part of: Nokia HERE terms and conditions"
537+msgid "terms and conditions"
535−msgstr "Рух"
538+msgstr ""
536
539
537−#: qml/Wizard/Pages/30-passwd-type.qml:103
540+#: qml/Wizard/Pages/40-location.qml:160
538−msgctxt "Label: Description of security method"
541+msgid "GPS only"
539−msgid "No security"
542+msgstr ""
540−msgstr "Без бяспекі"
541
543
542−#: qml/Wizard/Pages/30-passwd-type.qml:105
544+#: qml/Wizard/Pages/40-location.qml:214
545+msgid "Don't use my location"
546+msgstr ""
547+
548+#: qml/Wizard/Pages/40-location.qml:260
549+msgid "You can change it later in System Settings."
550+msgstr ""
551+
552+#: qml/Wizard/Pages/50-timezone.qml:29
553+msgid "Time Zone"
554+msgstr ""
555+
556+#: qml/Wizard/Pages/50-timezone.qml:178
557+msgid "Enter your city"
558+msgstr ""
559+
560+#: qml/Wizard/Pages/60-account.qml:24
561+msgid "Personalize Your Device"
562+msgstr ""
563+
564+#: qml/Wizard/Pages/60-account.qml:48
565+msgid "Preferred Name"
566+msgstr ""
567+
568+#: qml/Wizard/Pages/70-passwd-type.qml:39
569+msgid "Lock Screen"
570+msgstr ""
571+
572+#: qml/Wizard/Pages/70-passwd-type.qml:101
543msgctxt "Label: Type of security method"
573msgctxt "Label: Type of security method"
544−msgid "Passcode"
574+msgid "Create new password"
545−msgstr "Код-пароль"
575+msgstr ""
546
576
547−#: qml/Wizard/Pages/30-passwd-type.qml:106
577+#: qml/Wizard/Pages/70-passwd-type.qml:103
548−msgctxt "Label: Description of security method"
578+msgctxt "Label: Type of security method"
549−msgid "4 digits only"
579+msgid "Create passcode (numbers only)"
550−msgstr "Толькі 4 лічбы"
580+msgstr ""
551
581
552−#: qml/Wizard/Pages/30-passwd-type.qml:108
582+#: qml/Wizard/Pages/70-passwd-type.qml:105
553msgctxt "Label: Type of security method"
583msgctxt "Label: Type of security method"
554−msgid "Passphrase"
584+msgid "No lock code"
555−msgstr "Пароль"
585+msgstr ""
556
586
557−#: qml/Wizard/Pages/30-passwd-type.qml:109
587+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
558−msgctxt "Label: Description of security method"
588+msgid "Privacy Policy"
559−msgid "Numbers and letters"
589+msgstr ""
560−msgstr "Літары і лічбы"
561
590
562−#: qml/Wizard/Pages/40-wifi.qml:29
591+#: qml/Wizard/Pages/75-report-check.qml:26
563−msgid "Connect to Wi‑Fi"
592+msgid "Help Us Improve"
564−msgstr "Злучыцца з Wi-Fi"
593+msgstr ""
565
594
566−#: qml/Wizard/Pages/40-wifi.qml:168
595+#: qml/Wizard/Pages/75-report-check.qml:59
567−msgid "Available networks…"
596+msgid "Improve system performance by sending us crashes and error reports."
568−msgstr "Даступныя сеткі..."
597+msgstr ""
569
598
570−#: qml/Wizard/Pages/40-wifi.qml:169
599+#: qml/Wizard/Pages/75-report-check.qml:60
571−msgid "No available networks."
600+msgid "Privacy policy"
572−msgstr "Няма даступных сетак."
601+msgstr ""
573
602
574−#: qml/Wizard/Pages/50-location.qml:27
603+#: qml/Wizard/Pages/80-finished.qml:89
575−msgid "Location"
604+msgid "Welcome to Ubuntu"
576−msgstr "Месца"
605+msgstr ""
577
606
578−#: qml/Wizard/Pages/50-location.qml:62
607+#: qml/Wizard/Pages/80-finished.qml:104
579−msgid "Let the phone detect your location:"
608+msgid "You are ready to use your device now"
580−msgstr "Дазволіць тэлефону вызначаць месцазнаходжанне:"
609+msgstr ""
581
610
582−#: qml/Wizard/Pages/50-location.qml:69
611+#: qml/Wizard/Pages/80-finished.qml:124
583−msgid "Using GPS only (less accurate)"
612+msgid "Get Started"
584−msgstr "З дапамогай толькі GPS (найменш дакладна)"
613+msgstr ""
585
614
586−#: qml/Wizard/Pages/50-location.qml:86
615+#: qml/Wizard/Pages/here-terms.qml:25
587−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
616+msgid "Terms & Conditions"
617+msgstr "Умовы карыстання"
618+
619+#: qml/Wizard/Pages/here-terms.qml:69
620+msgid "Your device uses positioning technologies provided by HERE."
588msgstr ""
621msgstr ""
589−"На аснове GPS, ананімізаванага Wi-Fi і дадзеных сотавай сеткі (рэкамендуецца)"
590
622
591−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
592−#: qml/Wizard/Pages/50-location.qml:103
623+#: qml/Wizard/Pages/here-terms.qml:81
593msgid ""
624msgid ""
594−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
625+"To provide you with positioning services and to improve their quality, HERE "
595−"conditions</a>."
626+"collects information about nearby cell towers and Wi-Fi hotspots around your "
627+"current location whenever your position is being found."
596msgstr ""
628msgstr ""
597−"Выбарам гэтага варыянту дзеянняў вы згаджаецеся з <a href='#'> умовамі "
598−"прадстаўлення паслуг Nokia HERE</a>."
599
629
600−#: qml/Wizard/Pages/50-location.qml:112
630+#: qml/Wizard/Pages/here-terms.qml:93
601−msgid "Not at all"
631+msgid ""
602−msgstr "Не дазваляць"
632+"The information collected is used to analyze the service and to improve the "
633+"use of service, but not to identify you personally."
634+msgstr ""
603
635
604−#: qml/Wizard/Pages/50-location.qml:124
636+#: qml/Wizard/Pages/here-terms.qml:106
605−msgid "You can change your mind later in <b>System Settings</b>."
637+#, qt-format
606−msgstr "Пасля змяніць налады можна з дапамогай <b>Сістэмных наладкаў</b>."
638+msgid "By continuing, you agree to the HERE platform %1 and %2."
639+msgstr ""
607
640
608−#: qml/Wizard/Pages/60-reporting.qml:26
641+#: qml/Wizard/Pages/here-terms.qml:107
609−msgid "Improving your experience"
642+msgid "Service Terms"
610−msgstr "Спрашчэнне вашай працы"
643+msgstr ""
611
644
612−#: qml/Wizard/Pages/60-reporting.qml:46
645+#: qml/Wizard/Pages/passcode-confirm.qml:43
646+#: qml/Wizard/Pages/passcode-desktop.qml:80
613−msgid ""
647+msgid "Confirm passcode"
614−"Your phone is set up to automatically report errors to Canonical and its "
648+msgstr "Пацвердзіце код-пароль"
615−"partners, the makers of the operating system."
649+
650+#: qml/Wizard/Pages/passcode-confirm.qml:45
651+msgid "Incorrect passcode."
616msgstr ""
652msgstr ""
617−"Ваш тэлефон настроены на аўтаматычную адпраўку справаздач пра памылкі ў "
618−"Canonical і партнёрскія установы, вытворцам аперацыйнай сістэмы."
619
653
620−#: qml/Wizard/Pages/60-reporting.qml:53
654+#: qml/Wizard/Pages/passcode-confirm.qml:45
655+msgctxt "Enter the passcode again"
621−msgid ""
656+msgid "Please re-enter."
622−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
623−"Privacy</b>"
624msgstr ""
657msgstr ""
625−"Гэтае можна адключыць у <b>Сістэмных наладках</b>, дзе <b>Бяспека &amp; "
626−"канфедэнцыйнасці</b>"
627
658
628−#: qml/Wizard/Pages/80-finished.qml:24
659+#: qml/Wizard/Pages/passcode-desktop.qml:30
629−msgid "All done"
660+msgid "Lock Screen Passcode"
630−msgstr "Зроблена"
661+msgstr ""
631
662
632−#: qml/Wizard/Pages/80-finished.qml:39
663+#: qml/Wizard/Pages/passcode-desktop.qml:56
633−msgid "Nice work!"
664+msgid "Enter 4 numbers to setup your passcode"
634−msgstr "Выдатная праца!"
665+msgstr ""
635
666
636−#: qml/Wizard/Pages/80-finished.qml:46
667+#: qml/Wizard/Pages/passcode-desktop.qml:65
637−msgid "Your device is now ready to use."
668+#: qml/Wizard/Pages/passcode-set.qml:54
669+msgid "Choose passcode"
638msgstr ""
670msgstr ""
639
671
640−#: qml/Wizard/Pages/80-finished.qml:53
672+#: qml/Wizard/Pages/passcode-desktop.qml:105
641−msgid "Finish"
673+msgid "Passcode too short"
642−msgstr "Скончыць"
674+msgstr ""
643
675
644−#: qml/Wizard/Pages/here-terms.qml:27
676+#: qml/Wizard/Pages/passcode-desktop.qml:107
645−msgid "Terms & Conditions"
677+msgid "Passcodes match"
646−msgstr "Умовы карыстання"
678+msgstr ""
647
679
648−#: qml/Wizard/Pages/passwd-confirm.qml:49
680+#: qml/Wizard/Pages/passcode-desktop.qml:109
649−msgid "Confirm passphrase"
681+msgid "Passcodes do not match"
650−msgstr "Пацвердзіце пароль"
682+msgstr ""
651
683
652−#: qml/Wizard/Pages/passwd-confirm.qml:50
684+#: qml/Wizard/Pages/passcode-set.qml:62
653−msgid "Confirm passcode"
685+msgid "Passcode must be 4 characters long"
654−msgstr "Пацвердзіце код-пароль"
686+msgstr ""
655
687
656−#: qml/Wizard/Pages/passwd-confirm.qml:53
688+#: qml/Wizard/Pages/password-set.qml:30
657−#: qml/Wizard/Pages/passwd-confirm.qml:54
689+msgid "Lock Screen Password"
658−msgid "Please try again."
690+msgstr ""
659−msgstr "Калі ласка, паспрабуйце яшчэ раз."
660
691
661−#: qml/Wizard/Pages/passwd-set.qml:61
692+#: qml/Wizard/Pages/password-set.qml:61
662−msgid "Choose your passcode"
693+msgid "Enter at least 8 characters"
663−msgstr "Выберыце код"
694+msgstr ""
664
695
665−#: qml/Wizard/Pages/passwd-set.qml:68
696+#: qml/Wizard/Pages/password-set.qml:73
666−msgid "Passphrase must be 4 characters long"
697+msgid "Choose password"
667−msgstr "Код мусіць складацца з 4 сімвалаў"
698+msgstr ""
668
699
669−#. Translators: This is the arrow for "Back" buttons
700+#: qml/Wizard/Pages/password-set.qml:103
670−#: qml/Wizard/StackButton.qml:39
701+msgid "Confirm password"
671−#, qt-format
672−msgid "〈 %1"
673−msgstr "〈 %1"
702+msgstr ""
674
703
675−#. Translators: This is the arrow for "Forward" buttons
704+#: qml/Wizard/Pages/sim.qml:27
705+msgid "No SIM card installed"
706+msgstr ""
707+
708+#: qml/Wizard/Pages/sim.qml:54
709+msgid "SIM card added"
710+msgstr ""
711+
712+#: qml/Wizard/Pages/sim.qml:55
713+msgid "You must restart the device to access the mobile network."
714+msgstr ""
715+
716+#: qml/Wizard/Pages/sim.qml:59
717+msgid "Restart"
718+msgstr "Перазапусціць"
719+
676−#: qml/Wizard/StackButton.qml:42
720+#: qml/Wizard/Pages/sim.qml:78
677−#, qt-format
721+msgid "You won’t be able to make calls or use text messaging without a SIM."
678−msgid "%1 〉"
722+msgstr ""
723+
724+#: qml/Wizard/Pages/sim.qml:90
725+msgid "To proceed with no SIM tap Skip."
726+msgstr ""
727+
728+#: qml/Wizard/PasswordMeter.qml:87
729+msgid "Passwords match"
730+msgstr ""
731+
732+#: qml/Wizard/PasswordMeter.qml:89
733+msgid "Passwords do not match"
679−msgstr "%1 〉"
734+msgstr ""
735+
736+#: qml/Wizard/PasswordMeter.qml:93
737+msgid "Strong password"
738+msgstr ""
739+
740+#: qml/Wizard/PasswordMeter.qml:95
741+msgid "Fair password"
742+msgstr ""
743+
744+#: qml/Wizard/PasswordMeter.qml:97
745+msgid "Weak password"
746+msgstr ""
747+
748+#: qml/Wizard/PasswordMeter.qml:99
749+msgid "Very weak password"
750+msgstr ""
680
751
681#~ msgid "Reboot"
752#~ msgid "Reboot"
682#~ msgstr "Перазагрузіць"
753#~ msgstr "Перазагрузіць"
@@ -723,6 +794,9 @@ msgstr "%1 〉"
723#~ msgid "Log out"
794#~ msgid "Log out"
724#~ msgstr "Выйсці"
795#~ msgstr "Выйсці"
725
796
797+#~ msgid "Are you sure you want to shut down?"
798+#~ msgstr "Вы ўпэўненыя, што жадаеце выключыць прыладу?"
799+
726#~ msgid "Power"
800#~ msgid "Power"
727#~ msgstr "Сілкаванне"
801#~ msgstr "Сілкаванне"
728
802
@@ -743,20 +817,97 @@ msgstr "%1 〉"
743#~ msgid "Skip intro"
817#~ msgid "Skip intro"
744#~ msgstr "Прапусціць уводзіны"
818#~ msgstr "Прапусціць уводзіны"
745
819
820+#~ msgid "See all"
821+#~ msgstr "Больш падрабязна"
822+
823+#~ msgid "See less"
824+#~ msgstr "Карацей"
825+
746#~ msgid "Store"
826#~ msgid "Store"
747#~ msgstr "Крама"
827#~ msgstr "Крама"
748
828
829+#~ msgid "Add a SIM card and restart your device"
830+#~ msgstr "Дадайце SIM-карту і перазагрузіце Вашую прыладу"
831+
832+#~ msgid "Hi!"
833+#~ msgstr "Вітай!"
834+
749#~ msgid "Welcome to your Ubuntu phone."
835#~ msgid "Welcome to your Ubuntu phone."
750#~ msgstr "Вітаем Вас у сістэме тэлефона Ubuntu."
836#~ msgstr "Вітаем Вас у сістэме тэлефона Ubuntu."
751
837
838+#~ msgid "Let’s get started."
839+#~ msgstr "Пачнем."
840+
841+#~ msgid "Continue"
842+#~ msgstr "Працягнуць"
843+
752#~ msgid "Please select how you’d like to unlock your phone."
844#~ msgid "Please select how you’d like to unlock your phone."
753#~ msgstr "Калі ласка, абярыце спосаб разблакавання тэлефона."
845#~ msgstr "Калі ласка, абярыце спосаб разблакавання тэлефона."
754
846
847+#~ msgid "Using GPS only (less accurate)"
848+#~ msgstr "З дапамогай толькі GPS (найменш дакладна)"
849+
850+#~ msgid "Available networks…"
851+#~ msgstr "Даступныя сеткі..."
852+
853+#~ msgid "No available networks."
854+#~ msgstr "Няма даступных сетак."
855+
856+#~ msgid "Location"
857+#~ msgstr "Месца"
858+
859+#~ msgid "Let the phone detect your location:"
860+#~ msgstr "Дазволіць тэлефону вызначаць месцазнаходжанне:"
861+
862+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
863+#~ msgstr ""
864+#~ "На аснове GPS, ананімізаванага Wi-Fi і дадзеных сотавай сеткі (рэкамендуецца)"
865+
866+#~ msgid "Improving your experience"
867+#~ msgstr "Спрашчэнне вашай працы"
868+
869+#~ msgid ""
870+#~ "Your phone is set up to automatically report errors to Canonical and its "
871+#~ "partners, the makers of the operating system."
872+#~ msgstr ""
873+#~ "Ваш тэлефон настроены на аўтаматычную адпраўку справаздач пра памылкі ў "
874+#~ "Canonical і партнёрскія установы, вытворцам аперацыйнай сістэмы."
875+
876+#~ msgid "Nice work!"
877+#~ msgstr "Выдатная праца!"
878+
879+#~ msgid "All done"
880+#~ msgstr "Зроблена"
881+
882+#~ msgid "Finish"
883+#~ msgstr "Скончыць"
884+
755#~ msgid "Your phone is now ready to use."
885#~ msgid "Your phone is now ready to use."
756#~ msgstr "Цяпер Вашым тэлефонам можна карыстацца."
886#~ msgstr "Цяпер Вашым тэлефонам можна карыстацца."
757
887
758−#~ msgid "Restart"
888+#~ msgid ""
759−#~ msgstr "Перазапусціць"
889+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
890+#~ "conditions</a>."
891+#~ msgstr ""
892+#~ "Выбарам гэтага варыянту дзеянняў вы згаджаецеся з <a href='#'> умовамі "
893+#~ "прадстаўлення паслуг Nokia HERE</a>."
894+
895+#~ msgid "Not at all"
896+#~ msgstr "Не дазваляць"
897+
898+#, qt-format
899+#~ msgid "〈 %1"
900+#~ msgstr "〈 %1"
901+
902+#~ msgid "Confirm passphrase"
903+#~ msgstr "Пацвердзіце пароль"
904+
905+#, qt-format
906+#~ msgid "%1 〉"
907+#~ msgstr "%1 〉"
908+
909+#~ msgid "Please try again."
910+#~ msgstr "Калі ласка, паспрабуйце яшчэ раз."
760
911
761#~ msgid "Close"
912#~ msgid "Close"
762#~ msgstr "Закрыць"
913#~ msgstr "Закрыць"
@@ -778,6 +929,103 @@ msgstr "%1 〉"
778#~ msgid "Please re-enter"
929#~ msgid "Please re-enter"
779#~ msgstr "Калі ласка, паўтарыце ўвод"
930#~ msgstr "Калі ласка, паўтарыце ўвод"
780
931
932+#~ msgid "Lock security"
933+#~ msgstr "Блакіроўка"
934+
935+#~ msgid "You can change your mind later in <b>System Settings</b>."
936+#~ msgstr "Пасля змяніць налады можна з дапамогай <b>Сістэмных наладкаў</b>."
937+
938+#~ msgid ""
939+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
940+#~ "Privacy</b>"
941+#~ msgstr ""
942+#~ "Гэтае можна адключыць у <b>Сістэмных наладках</b>, дзе <b>Бяспека &amp; "
943+#~ "канфедэнцыйнасці</b>"
944+
945+#~ msgid "Choose your passcode"
946+#~ msgstr "Выберыце код"
947+
948+#~ msgctxt "Button: Shut down the system"
949+#~ msgid "Shut down"
950+#~ msgstr "Выключыць"
951+
952+#~ msgctxt "Title: Reboot/Shut down dialog"
953+#~ msgid "Shut down"
954+#~ msgstr "Выключыць"
955+
956+#~ msgctxt "Button: Reboot the system"
957+#~ msgid "Reboot"
958+#~ msgstr "Перазагрузіць"
959+
960+#~ msgid "Swipe up from the bottom edge."
961+#~ msgstr "Правесці уверх ад ніжняга краю."
962+
963+#~ msgid "Open special menus"
964+#~ msgstr "Адкрыць спецыяльныя меню"
965+
966+#~ msgid "Tap here to finish."
967+#~ msgstr "Націсніце тут, каб завяршыць."
968+
969+#~ msgid "This action does different things for different apps"
970+#~ msgstr "Гэта дзеянне мае розныя наступствы для розных праграм"
971+
972+#~ msgid "To view open apps"
973+#~ msgstr "Паглядзець адкрытыя праграмы"
974+
975+#~ msgid "You almost got it!"
976+#~ msgstr "Амаль усё!"
977+
978+#~ msgid "Short swipe from the left edge."
979+#~ msgstr "Кароткі рух з левага краю."
980+
981+#~ msgid "Long swipe from the right edge."
982+#~ msgstr "Доўгі рух ад правага краю."
983+
984+#~ msgid "View all your running tasks."
985+#~ msgstr "Паказаць усе запушчаныя задачы."
986+
987+#~ msgid "Try again."
988+#~ msgstr "Паспрабуйце яшчэ."
989+
990+#~ msgid "Open the launcher"
991+#~ msgstr "Адкрыць панэль запуску"
992+
993+#~ msgid "Tap here to continue."
994+#~ msgstr "Націсніце тут, каб працягнуць."
995+
996+#~ msgid "These are the shortcuts to favorite apps"
997+#~ msgstr "Гэта скарачэнні для абраных праграм"
998+
999+#~ msgctxt "Label: Description of security method"
1000+#~ msgid "No security"
1001+#~ msgstr "Без бяспекі"
1002+
1003+#~ msgctxt "Label: Type of security method"
1004+#~ msgid "Swipe"
1005+#~ msgstr "Рух"
1006+
1007+#~ msgctxt "Label: Description of security method"
1008+#~ msgid "4 digits only"
1009+#~ msgstr "Толькі 4 лічбы"
1010+
1011+#~ msgctxt "Label: Type of security method"
1012+#~ msgid "Passphrase"
1013+#~ msgstr "Пароль"
1014+
1015+#~ msgctxt "Label: Description of security method"
1016+#~ msgid "Numbers and letters"
1017+#~ msgstr "Літары і лічбы"
1018+
1019+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
1020+#~ msgstr "Без яе Вы не зможаце тэлефанаваць ці адпраўляць паведамленні."
1021+
1022+#~ msgid "Passphrase must be 4 characters long"
1023+#~ msgstr "Код мусіць складацца з 4 сімвалаў"
1024+
1025+#~ msgctxt "Label: Type of security method"
1026+#~ msgid "Passcode"
1027+#~ msgstr "Код-пароль"
1028+
781#~ msgid "%a %l:%M %p"
1029#~ msgid "%a %l:%M %p"
782#~ msgstr "%a a %H:%M"
1030#~ msgstr "%a a %H:%M"
783
1031
@@ -810,6 +1058,3 @@ msgstr "%1 〉"
810
1058
811#~ msgid "Call back"
1059#~ msgid "Call back"
812#~ msgstr "Зваротны выклік"
1060#~ msgstr "Зваротны выклік"
813−
814−#~ msgid "Re-dock, save your work and close these apps to continue."
815−#~ msgstr "Захавайце сваю працу і зачыніце прылады, каб працягнуць."
po/bg.po+261−183
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2015-04-12 14:43+0000\n"
11"PO-Revision-Date: 2015-04-12 14:43+0000\n"
12"Last-Translator: George Karavasilev <kokoto-java@ubuntu.com>\n"
12"Last-Translator: George Karavasilev <kokoto-java@ubuntu.com>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-03-13 05:50+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -73,53 +73,35 @@ msgctxt "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:194
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77−#: qml/Components/Dialogs.qml:253
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
78msgid "Cancel"
79msgid "Cancel"
79msgstr ""
80msgstr ""
80
81
81#: qml/Components/Dialogs.qml:173
82#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr ""
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr ""
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr ""
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr ""
99−
100−#: qml/Components/Dialogs.qml:207
101msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
102msgid "Reboot"
84msgid "Reboot"
103msgstr ""
85msgstr ""
104
86
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
106msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
107msgstr ""
89msgstr ""
108
90
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
110msgid "No"
92msgid "No"
111msgstr ""
93msgstr ""
112
94
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:182
114msgid "Yes"
96msgid "Yes"
115msgstr ""
97msgstr ""
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
119msgid "Power"
101msgid "Power"
120msgstr ""
102msgstr ""
121
103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
123msgid ""
105msgid ""
124"Are you sure you would like\n"
106"Are you sure you would like\n"
125"to power off?"
107"to power off?"
@@ -127,12 +109,12 @@ msgstr ""
127"Искате ли да \n"
109"Искате ли да \n"
128"изключите захранването на устройството?"
110"изключите захранването на устройството?"
129
111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:200
131msgctxt "Button: Power off the system"
113msgctxt "Button: Power off the system"
132msgid "Power off"
114msgid "Power off"
133msgstr ""
115msgstr ""
134
116
135−#: qml/Components/Dialogs.qml:244
117+#: qml/Components/Dialogs.qml:209
136msgctxt "Button: Restart the system"
118msgctxt "Button: Restart the system"
137msgid "Restart"
119msgid "Restart"
138msgstr ""
120msgstr ""
@@ -175,42 +157,58 @@ msgstr ""
175msgid "Close all"
157msgid "Close all"
176msgstr ""
158msgstr ""
177
159
178−#: qml/Dash/DashPageHeader.qml:270
160+#: qml/Dash/DashPageHeader.qml:337
179msgctxt "Button: Open the Ubuntu Store"
161msgctxt "Button: Open the Ubuntu Store"
180msgid "Store"
162msgid "Store"
181msgstr ""
163msgstr ""
182
164
183−#: qml/Dash/DashPageHeader.qml:277
165+#: qml/Dash/DashPageHeader.qml:344
184msgctxt "Button: Start a search in the current dash scope"
166msgctxt "Button: Start a search in the current dash scope"
185msgid "Search"
167msgid "Search"
186msgstr ""
168msgstr ""
187
169
188−#: qml/Dash/DashPageHeader.qml:287
170+#: qml/Dash/DashPageHeader.qml:354
189msgctxt "Button: Show the current dash scope settings"
171msgctxt "Button: Show the current dash scope settings"
190msgid "Settings"
172msgid "Settings"
191msgstr ""
173msgstr ""
192
174
193−#: qml/Dash/DashPageHeader.qml:294
175+#: qml/Dash/DashPageHeader.qml:361
194msgid "Remove from Favorites"
176msgid "Remove from Favorites"
195msgstr ""
177msgstr ""
196
178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198msgid "Add to Favorites"
180msgid "Add to Favorites"
199msgstr ""
181msgstr ""
200
182
183+#: qml/Dash/FiltersPopover.qml:60
184+msgid "Refine your results"
185+msgstr ""
186+
187+#: qml/Dash/FiltersPopover.qml:69
188+msgid "Reset"
189+msgstr ""
190+
201−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
202−msgid "See less"
192+msgid "Show less"
203msgstr ""
193msgstr ""
204
194
205−#: qml/Dash/GenericScopeView.qml:567
195+#: qml/Dash/GenericScopeView.qml:579
206−msgid "See all"
196+msgid "Show all"
207msgstr ""
197msgstr ""
208
198
209−#: qml/Dash/GenericScopeView.qml:629
199+#: qml/Dash/GenericScopeView.qml:636
210msgctxt "Label: Hint for dash search line edit"
200msgctxt "Label: Hint for dash search line edit"
211msgid "Search"
201msgid "Search"
212msgstr ""
202msgstr ""
213
203
204+#: qml/Dash/PageHeaderExtraPanel.qml:55
205+msgid "Recent Searches"
206+msgstr ""
207+
208+#: qml/Dash/PageHeaderExtraPanel.qml:66
209+msgid "Clear All"
210+msgstr ""
211+
214#: qml/Dash/Previews/PreviewActionCombo.qml:35
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
215msgid "More..."
213msgid "More..."
216msgstr ""
214msgstr ""
@@ -278,11 +276,11 @@ msgstr ""
278msgid "Tap to unlock"
276msgid "Tap to unlock"
279msgstr ""
277msgstr ""
280
278
281−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
282msgid "Sorry, incorrect passphrase."
280msgid "Sorry, incorrect passphrase."
283msgstr ""
281msgstr ""
284
282
285−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
286msgid "Sorry, incorrect passcode."
284msgid "Sorry, incorrect passcode."
287msgstr ""
285msgstr ""
288
286
@@ -307,7 +305,7 @@ msgstr ""
307msgid "Enter %1"
305msgid "Enter %1"
308msgstr ""
306msgstr ""
309
307
310−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
308+#: qml/Greeter/NarrowView.qml:117
311msgid "Enter passphrase"
309msgid "Enter passphrase"
312msgstr ""
310msgstr ""
313
311
@@ -333,7 +331,7 @@ msgstr ""
333msgid "Sorry, incorrect passcode"
331msgid "Sorry, incorrect passcode"
334msgstr ""
332msgstr ""
335
333
336−#: qml/Notifications/NotificationMenuItemFactory.qml:129
334+#: qml/Notifications/NotificationMenuItemFactory.qml:124
337msgid "Show password"
335msgid "Show password"
338msgstr "Покажи паролата"
336msgstr "Покажи паролата"
339
337
@@ -345,62 +343,62 @@ msgstr ""
345msgid "Conference"
343msgid "Conference"
346msgstr ""
344msgstr ""
347
345
348−#: qml/Panel/Indicators/MenuItemFactory.qml:752
346+#: qml/Panel/Indicators/MenuItemFactory.qml:762
349msgid "Nothing is playing"
347msgid "Nothing is playing"
350msgstr ""
348msgstr ""
351
349
352−#: qml/Panel/Indicators/MenuItemFactory.qml:881
350+#: qml/Panel/Indicators/MenuItemFactory.qml:891
353#, qt-format
351#, qt-format
354msgid "%1 hour"
352msgid "%1 hour"
355msgid_plural "%1 hours"
353msgid_plural "%1 hours"
356msgstr[0] ""
354msgstr[0] ""
357msgstr[1] ""
355msgstr[1] ""
358
356
359−#: qml/Panel/Indicators/MenuItemFactory.qml:885
357+#: qml/Panel/Indicators/MenuItemFactory.qml:895
360#, qt-format
358#, qt-format
361msgid "%1 minute"
359msgid "%1 minute"
362msgid_plural "%1 minutes"
360msgid_plural "%1 minutes"
363msgstr[0] ""
361msgstr[0] ""
364msgstr[1] ""
362msgstr[1] ""
365
363
366−#: qml/Panel/Indicators/MenuItemFactory.qml:890
364+#: qml/Panel/Indicators/MenuItemFactory.qml:900
367#, qt-format
365#, qt-format
368msgid "%1 second"
366msgid "%1 second"
369msgid_plural "%1 seconds"
367msgid_plural "%1 seconds"
370msgstr[0] ""
368msgstr[0] ""
371msgstr[1] ""
369msgstr[1] ""
372
370
373−#: qml/Panel/Indicators/MenuItemFactory.qml:893
371+#: qml/Panel/Indicators/MenuItemFactory.qml:903
374msgid "0 seconds"
372msgid "0 seconds"
375msgstr ""
373msgstr ""
376
374
377#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
375#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
378−#: qml/Panel/Indicators/MenuItemFactory.qml:895
376+#: qml/Panel/Indicators/MenuItemFactory.qml:905
379#, qt-format
377#, qt-format
380msgid "%1 remaining"
378msgid "%1 remaining"
381msgstr ""
379msgstr ""
382
380
383−#: qml/Panel/Indicators/MenuItemFactory.qml:901
381+#: qml/Panel/Indicators/MenuItemFactory.qml:911
384msgid "In queue…"
382msgid "In queue…"
385msgstr ""
383msgstr ""
386
384
387−#: qml/Panel/Indicators/MenuItemFactory.qml:905
385+#: qml/Panel/Indicators/MenuItemFactory.qml:915
388msgid "Downloading"
386msgid "Downloading"
389msgstr ""
387msgstr ""
390
388
391−#: qml/Panel/Indicators/MenuItemFactory.qml:907
389+#: qml/Panel/Indicators/MenuItemFactory.qml:917
392msgid "Paused, tap to resume"
390msgid "Paused, tap to resume"
393msgstr ""
391msgstr ""
394
392
395−#: qml/Panel/Indicators/MenuItemFactory.qml:909
393+#: qml/Panel/Indicators/MenuItemFactory.qml:919
396msgid "Canceled"
394msgid "Canceled"
397msgstr ""
395msgstr ""
398
396
399−#: qml/Panel/Indicators/MenuItemFactory.qml:911
397+#: qml/Panel/Indicators/MenuItemFactory.qml:921
400msgid "Finished"
398msgid "Finished"
401msgstr ""
399msgstr ""
402
400
403−#: qml/Panel/Indicators/MenuItemFactory.qml:913
401+#: qml/Panel/Indicators/MenuItemFactory.qml:923
404msgid "Failed, tap to retry"
402msgid "Failed, tap to retry"
405msgstr ""
403msgstr ""
406
404
@@ -420,243 +418,323 @@ msgctxt "Button: Call back on phone"
420msgid "Call back"
418msgid "Call back"
421msgstr ""
419msgstr ""
422
420
423−#: qml/Tutorial/TutorialBottom.qml:28
421+#: qml/Stages/SideStage.qml:76
424−msgid "Open special menus"
422+msgid "Drag using 3 fingers any application from one window to the other"
425msgstr ""
423msgstr ""
426
424
427−#: qml/Tutorial/TutorialBottom.qml:29
425+#: qml/Tutorial/TutorialBottom.qml:78
428−msgid "Swipe up from the bottom edge."
426+msgid "Swipe up to add a contact"
429msgstr ""
427msgstr ""
430
428
431−#: qml/Tutorial/TutorialBottomFinish.qml:24
429+#: qml/Tutorial/TutorialBottom.qml:80
432−msgid "This action does different things for different apps"
430+msgid "Swipe up for favorite calculations"
433msgstr ""
431msgstr ""
434
432
435−#: qml/Tutorial/TutorialBottomFinish.qml:25
433+#: qml/Tutorial/TutorialBottom.qml:82
436−msgid "Tap here to finish."
434+msgid "Swipe up for recent calls"
437msgstr ""
435msgstr ""
438
436
439−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
437+#: qml/Tutorial/TutorialBottom.qml:84
440−#: qml/Tutorial/TutorialRight.qml:144
438+msgid "Swipe up to create a message"
441−msgid "Tap here to continue."
442msgstr ""
439msgstr ""
443
440
444−#: qml/Tutorial/TutorialLeft.qml:26
441+#: qml/Tutorial/TutorialBottom.qml:85
445−msgid "Open the launcher"
442+msgid "Swipe up to manage the app"
446msgstr ""
443msgstr ""
447
444
448−#: qml/Tutorial/TutorialLeft.qml:27
445+#: qml/Tutorial/TutorialLeftLong.qml:47
449−msgid "Short swipe from the left edge."
446+msgid "Long swipe from the left edge to open the Today scope"
450msgstr ""
447msgstr ""
451
448
452−#: qml/Tutorial/TutorialLeftFinish.qml:24
449+#: qml/Tutorial/TutorialLeft.qml:47
453−msgid "These are the shortcuts to favorite apps"
450+msgid "Swipe from the left edge to open the launcher"
454msgstr ""
451msgstr ""
455
452
456−#: qml/Tutorial/TutorialPage.qml:178
453+#: qml/Tutorial/TutorialRight.qml:55
457−msgid "You almost got it!"
454+msgid "Push your mouse against the right edge to view your open apps"
458msgstr ""
455msgstr ""
459
456
460−#: qml/Tutorial/TutorialPage.qml:195
457+#: qml/Tutorial/TutorialRight.qml:56
461−msgid "Try again."
458+msgid "Short or long swipe from the right edge to view your open apps"
462msgstr ""
459msgstr ""
463
460
464−#: qml/Tutorial/TutorialRight.qml:31
461+#: qml/Tutorial/TutorialTop.qml:53
465−msgid "To view open apps"
462+msgid "Swipe from the top right edge to open the notification bar"
466msgstr ""
463msgstr ""
467
464
468−#: qml/Tutorial/TutorialRight.qml:32
465+#: qml/Tutorial/TutorialTop.qml:54
469−msgid "Long swipe from the right edge."
466+msgid "Swipe from the top edge to open the notification bar"
470msgstr ""
467msgstr ""
471
468
472−#: qml/Tutorial/TutorialRight.qml:122
473−msgid "View all your running tasks."
474−msgstr ""
475−
476−#: qml/Wizard/Page.qml:89
469+#: qml/Wizard/Page.qml:54
477msgctxt "Button: Go back one page in the Wizard"
470msgctxt "Button: Go back one page in the Wizard"
478msgid "Back"
471msgid "Back"
479msgstr ""
472msgstr ""
480
473
481#: qml/Wizard/Pages/10-welcome.qml:27
474#: qml/Wizard/Pages/10-welcome.qml:27
482−msgid "Hi!"
475+msgid "Language"
483msgstr ""
476msgstr ""
484
477
485−#: qml/Wizard/Pages/10-welcome.qml:44
478+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
486−msgid "Welcome to your Ubuntu device."
479+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
480+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
481+#: qml/Wizard/Pages/75-report-check.qml:84
482+#: qml/Wizard/Pages/passcode-desktop.qml:124
483+#: qml/Wizard/Pages/password-set.qml:141
484+msgid "Next"
487msgstr ""
485msgstr ""
488
486
489−#: qml/Wizard/Pages/10-welcome.qml:52
487+#: qml/Wizard/Pages/30-wifi.qml:29
490−msgid "Let’s get started."
488+msgid "Connect to Wi‑Fi"
491msgstr ""
489msgstr ""
492
490
493−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
491+#: qml/Wizard/Pages/30-wifi.qml:130
494−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
492+msgid "Connected"
495−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
496−#: qml/Wizard/Pages/passwd-set.qml:90
497−msgid "Continue"
498msgstr ""
493msgstr ""
499
494
500−#: qml/Wizard/Pages/20-sim.qml:25
495+#: qml/Wizard/Pages/30-wifi.qml:163
501−msgid "Add a SIM card and restart your device"
496+msgid "Available Wi-Fi networks"
502msgstr ""
497msgstr ""
503
498
504−#: qml/Wizard/Pages/20-sim.qml:59
499+#: qml/Wizard/Pages/30-wifi.qml:164
505−msgid "Without it, you won’t be able to make calls or use text messaging."
500+msgid "No available Wi-Fi networks"
506msgstr ""
501msgstr ""
507
502
508−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
503+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
504+#: qml/Wizard/Pages/sim.qml:101
509msgid "Skip"
505msgid "Skip"
510msgstr ""
506msgstr ""
511
507
512−#: qml/Wizard/Pages/30-passwd-type.qml:39
508+#: qml/Wizard/Pages/40-location.qml:27
513−msgid "Lock security"
509+msgid "Location Services"
514msgstr ""
510msgstr ""
515
511
516−#: qml/Wizard/Pages/30-passwd-type.qml:79
512+#: qml/Wizard/Pages/40-location.qml:83
517−msgid "Please select how you’d like to unlock your device."
513+msgid ""
514+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
515+"(recommended)"
518msgstr ""
516msgstr ""
519
517
520−#: qml/Wizard/Pages/30-passwd-type.qml:102
518+#: qml/Wizard/Pages/40-location.qml:105
521−msgctxt "Label: Type of security method"
519+#, qt-format
520+msgid "By selecting this option you agree to the Nokia HERE %1."
521+msgstr ""
522+
523+#: qml/Wizard/Pages/40-location.qml:106
524+msgctxt "part of: Nokia HERE terms and conditions"
525+msgid "terms and conditions"
526+msgstr ""
527+
528+#: qml/Wizard/Pages/40-location.qml:160
529+msgid "GPS only"
530+msgstr ""
531+
532+#: qml/Wizard/Pages/40-location.qml:214
533+msgid "Don't use my location"
534+msgstr ""
535+
536+#: qml/Wizard/Pages/40-location.qml:260
537+msgid "You can change it later in System Settings."
538+msgstr ""
539+
540+#: qml/Wizard/Pages/50-timezone.qml:29
522−msgid "Swipe"
541+msgid "Time Zone"
542+msgstr ""
543+
544+#: qml/Wizard/Pages/50-timezone.qml:178
545+msgid "Enter your city"
546+msgstr ""
547+
548+#: qml/Wizard/Pages/60-account.qml:24
549+msgid "Personalize Your Device"
523msgstr ""
550msgstr ""
524
551
525−#: qml/Wizard/Pages/30-passwd-type.qml:103
552+#: qml/Wizard/Pages/60-account.qml:48
526−msgctxt "Label: Description of security method"
553+msgid "Preferred Name"
527−msgid "No security"
528msgstr ""
554msgstr ""
529
555
530−#: qml/Wizard/Pages/30-passwd-type.qml:105
556+#: qml/Wizard/Pages/70-passwd-type.qml:39
557+msgid "Lock Screen"
558+msgstr ""
559+
560+#: qml/Wizard/Pages/70-passwd-type.qml:101
531msgctxt "Label: Type of security method"
561msgctxt "Label: Type of security method"
532−msgid "Passcode"
562+msgid "Create new password"
533msgstr ""
563msgstr ""
534
564
535−#: qml/Wizard/Pages/30-passwd-type.qml:106
565+#: qml/Wizard/Pages/70-passwd-type.qml:103
536−msgctxt "Label: Description of security method"
566+msgctxt "Label: Type of security method"
537−msgid "4 digits only"
567+msgid "Create passcode (numbers only)"
538msgstr ""
568msgstr ""
539
569
540−#: qml/Wizard/Pages/30-passwd-type.qml:108
570+#: qml/Wizard/Pages/70-passwd-type.qml:105
541msgctxt "Label: Type of security method"
571msgctxt "Label: Type of security method"
542−msgid "Passphrase"
572+msgid "No lock code"
543msgstr ""
573msgstr ""
544
574
545−#: qml/Wizard/Pages/30-passwd-type.qml:109
575+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
546−msgctxt "Label: Description of security method"
576+msgid "Privacy Policy"
547−msgid "Numbers and letters"
548msgstr ""
577msgstr ""
549
578
550−#: qml/Wizard/Pages/40-wifi.qml:29
579+#: qml/Wizard/Pages/75-report-check.qml:26
551−msgid "Connect to Wi‑Fi"
580+msgid "Help Us Improve"
581+msgstr ""
582+
583+#: qml/Wizard/Pages/75-report-check.qml:59
584+msgid "Improve system performance by sending us crashes and error reports."
585+msgstr ""
586+
587+#: qml/Wizard/Pages/75-report-check.qml:60
588+msgid "Privacy policy"
552msgstr ""
589msgstr ""
553
590
554−#: qml/Wizard/Pages/40-wifi.qml:168
591+#: qml/Wizard/Pages/80-finished.qml:89
555−msgid "Available networks…"
592+msgid "Welcome to Ubuntu"
556msgstr ""
593msgstr ""
557
594
558−#: qml/Wizard/Pages/40-wifi.qml:169
595+#: qml/Wizard/Pages/80-finished.qml:104
559−msgid "No available networks."
596+msgid "You are ready to use your device now"
560msgstr ""
597msgstr ""
561
598
562−#: qml/Wizard/Pages/50-location.qml:27
599+#: qml/Wizard/Pages/80-finished.qml:124
563−msgid "Location"
600+msgid "Get Started"
564msgstr ""
601msgstr ""
565
602
566−#: qml/Wizard/Pages/50-location.qml:62
603+#: qml/Wizard/Pages/here-terms.qml:25
567−msgid "Let the phone detect your location:"
604+msgid "Terms & Conditions"
568msgstr ""
605msgstr ""
569
606
570−#: qml/Wizard/Pages/50-location.qml:69
607+#: qml/Wizard/Pages/here-terms.qml:69
571−msgid "Using GPS only (less accurate)"
608+msgid "Your device uses positioning technologies provided by HERE."
572msgstr ""
609msgstr ""
573
610
574−#: qml/Wizard/Pages/50-location.qml:86
611+#: qml/Wizard/Pages/here-terms.qml:81
575−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
612+msgid ""
613+"To provide you with positioning services and to improve their quality, HERE "
614+"collects information about nearby cell towers and Wi-Fi hotspots around your "
615+"current location whenever your position is being found."
576msgstr ""
616msgstr ""
577
617
578−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
579−#: qml/Wizard/Pages/50-location.qml:103
618+#: qml/Wizard/Pages/here-terms.qml:93
580msgid ""
619msgid ""
581−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
620+"The information collected is used to analyze the service and to improve the "
582−"conditions</a>."
621+"use of service, but not to identify you personally."
583msgstr ""
622msgstr ""
584
623
585−#: qml/Wizard/Pages/50-location.qml:112
624+#: qml/Wizard/Pages/here-terms.qml:106
586−msgid "Not at all"
625+#, qt-format
626+msgid "By continuing, you agree to the HERE platform %1 and %2."
587msgstr ""
627msgstr ""
588
628
589−#: qml/Wizard/Pages/50-location.qml:124
629+#: qml/Wizard/Pages/here-terms.qml:107
590−msgid "You can change your mind later in <b>System Settings</b>."
630+msgid "Service Terms"
591msgstr ""
631msgstr ""
592
632
593−#: qml/Wizard/Pages/60-reporting.qml:26
633+#: qml/Wizard/Pages/passcode-confirm.qml:43
594−msgid "Improving your experience"
634+#: qml/Wizard/Pages/passcode-desktop.qml:80
635+msgid "Confirm passcode"
595msgstr ""
636msgstr ""
596
637
597−#: qml/Wizard/Pages/60-reporting.qml:46
638+#: qml/Wizard/Pages/passcode-confirm.qml:45
598−msgid ""
639+msgid "Incorrect passcode."
599−"Your phone is set up to automatically report errors to Canonical and its "
600−"partners, the makers of the operating system."
601msgstr ""
640msgstr ""
602
641
603−#: qml/Wizard/Pages/60-reporting.qml:53
642+#: qml/Wizard/Pages/passcode-confirm.qml:45
643+msgctxt "Enter the passcode again"
604−msgid ""
644+msgid "Please re-enter."
605−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
606−"Privacy</b>"
607msgstr ""
645msgstr ""
608
646
609−#: qml/Wizard/Pages/80-finished.qml:24
647+#: qml/Wizard/Pages/passcode-desktop.qml:30
610−msgid "All done"
648+msgid "Lock Screen Passcode"
611msgstr ""
649msgstr ""
612
650
613−#: qml/Wizard/Pages/80-finished.qml:39
651+#: qml/Wizard/Pages/passcode-desktop.qml:56
614−msgid "Nice work!"
652+msgid "Enter 4 numbers to setup your passcode"
615msgstr ""
653msgstr ""
616
654
617−#: qml/Wizard/Pages/80-finished.qml:46
655+#: qml/Wizard/Pages/passcode-desktop.qml:65
618−msgid "Your device is now ready to use."
656+#: qml/Wizard/Pages/passcode-set.qml:54
657+msgid "Choose passcode"
619msgstr ""
658msgstr ""
620
659
621−#: qml/Wizard/Pages/80-finished.qml:53
660+#: qml/Wizard/Pages/passcode-desktop.qml:105
622−msgid "Finish"
661+msgid "Passcode too short"
623msgstr ""
662msgstr ""
624
663
625−#: qml/Wizard/Pages/here-terms.qml:27
664+#: qml/Wizard/Pages/passcode-desktop.qml:107
626−msgid "Terms & Conditions"
665+msgid "Passcodes match"
627msgstr ""
666msgstr ""
628
667
629−#: qml/Wizard/Pages/passwd-confirm.qml:49
668+#: qml/Wizard/Pages/passcode-desktop.qml:109
630−msgid "Confirm passphrase"
669+msgid "Passcodes do not match"
631msgstr ""
670msgstr ""
632
671
633−#: qml/Wizard/Pages/passwd-confirm.qml:50
672+#: qml/Wizard/Pages/passcode-set.qml:62
634−msgid "Confirm passcode"
673+msgid "Passcode must be 4 characters long"
635msgstr ""
674msgstr ""
636
675
637−#: qml/Wizard/Pages/passwd-confirm.qml:53
676+#: qml/Wizard/Pages/password-set.qml:30
638−#: qml/Wizard/Pages/passwd-confirm.qml:54
677+msgid "Lock Screen Password"
639−msgid "Please try again."
640msgstr ""
678msgstr ""
641
679
642−#: qml/Wizard/Pages/passwd-set.qml:61
680+#: qml/Wizard/Pages/password-set.qml:61
643−msgid "Choose your passcode"
681+msgid "Enter at least 8 characters"
644msgstr ""
682msgstr ""
645
683
646−#: qml/Wizard/Pages/passwd-set.qml:68
684+#: qml/Wizard/Pages/password-set.qml:73
647−msgid "Passphrase must be 4 characters long"
685+msgid "Choose password"
648msgstr ""
686msgstr ""
649
687
650−#. Translators: This is the arrow for "Back" buttons
688+#: qml/Wizard/Pages/password-set.qml:103
651−#: qml/Wizard/StackButton.qml:39
689+msgid "Confirm password"
652−#, qt-format
653−msgid "〈 %1"
654msgstr ""
690msgstr ""
655
691
656−#. Translators: This is the arrow for "Forward" buttons
692+#: qml/Wizard/Pages/sim.qml:27
693+msgid "No SIM card installed"
694+msgstr ""
695+
696+#: qml/Wizard/Pages/sim.qml:54
697+msgid "SIM card added"
698+msgstr ""
699+
700+#: qml/Wizard/Pages/sim.qml:55
701+msgid "You must restart the device to access the mobile network."
702+msgstr ""
703+
704+#: qml/Wizard/Pages/sim.qml:59
705+msgid "Restart"
706+msgstr ""
707+
708+#: qml/Wizard/Pages/sim.qml:78
709+msgid "You won’t be able to make calls or use text messaging without a SIM."
710+msgstr ""
711+
712+#: qml/Wizard/Pages/sim.qml:90
713+msgid "To proceed with no SIM tap Skip."
714+msgstr ""
715+
716+#: qml/Wizard/PasswordMeter.qml:87
717+msgid "Passwords match"
718+msgstr ""
719+
657−#: qml/Wizard/StackButton.qml:42
720+#: qml/Wizard/PasswordMeter.qml:89
658−#, qt-format
721+msgid "Passwords do not match"
722+msgstr ""
723+
724+#: qml/Wizard/PasswordMeter.qml:93
725+msgid "Strong password"
726+msgstr ""
727+
728+#: qml/Wizard/PasswordMeter.qml:95
729+msgid "Fair password"
730+msgstr ""
731+
732+#: qml/Wizard/PasswordMeter.qml:97
659−msgid "%1 〉"
733+msgid "Weak password"
734+msgstr ""
735+
736+#: qml/Wizard/PasswordMeter.qml:99
737+msgid "Very weak password"
660msgstr ""
738msgstr ""
661
739
662#~ msgid "Confirm"
740#~ msgid "Confirm"
po/bn.po+350−203
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2015-11-27 19:38+0000\n"
11"PO-Revision-Date: 2015-11-27 19:38+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Bengali <bn@li.org>\n"
13"Language-Team: Bengali <bn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-03-13 05:50+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -73,53 +73,35 @@ msgctxt "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:194
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77−#: qml/Components/Dialogs.qml:253
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
78msgid "Cancel"
79msgid "Cancel"
79msgstr "বাতিল"
80msgstr "বাতিল"
80
81
81#: qml/Components/Dialogs.qml:173
82#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr "বন্ধ করুন"
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr "আপনি কি কম্পিউটার বন্ধ করতে চান?"
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr "পুনরায় চালু করুন"
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr "বন্ধ করুন"
99−
100−#: qml/Components/Dialogs.qml:207
101msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
102msgid "Reboot"
84msgid "Reboot"
103msgstr "পুনরায় চালু"
85msgstr "পুনরায় চালু"
104
86
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
106msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
107msgstr "আপনি কি পুনরায় চালু করতে চান?"
89msgstr "আপনি কি পুনরায় চালু করতে চান?"
108
90
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
110msgid "No"
92msgid "No"
111msgstr "না"
93msgstr "না"
112
94
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:182
114msgid "Yes"
96msgid "Yes"
115msgstr "হ্যাঁ"
97msgstr "হ্যাঁ"
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
119msgid "Power"
101msgid "Power"
120msgstr ""
102msgstr ""
121
103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
123msgid ""
105msgid ""
124"Are you sure you would like\n"
106"Are you sure you would like\n"
125"to power off?"
107"to power off?"
@@ -127,12 +109,12 @@ msgstr ""
127"আপনি নিশ্চিত যে আপনি\n"
109"আপনি নিশ্চিত যে আপনি\n"
128"বন্ধ করতে চান?"
110"বন্ধ করতে চান?"
129
111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:200
131msgctxt "Button: Power off the system"
113msgctxt "Button: Power off the system"
132msgid "Power off"
114msgid "Power off"
133msgstr "বন্ধ করুন"
115msgstr "বন্ধ করুন"
134
116
135−#: qml/Components/Dialogs.qml:244
117+#: qml/Components/Dialogs.qml:209
136msgctxt "Button: Restart the system"
118msgctxt "Button: Restart the system"
137msgid "Restart"
119msgid "Restart"
138msgstr "পুনরায় চালু"
120msgstr "পুনরায় চালু"
@@ -175,42 +157,58 @@ msgstr ""
175msgid "Close all"
157msgid "Close all"
176msgstr ""
158msgstr ""
177
159
178−#: qml/Dash/DashPageHeader.qml:270
160+#: qml/Dash/DashPageHeader.qml:337
179msgctxt "Button: Open the Ubuntu Store"
161msgctxt "Button: Open the Ubuntu Store"
180msgid "Store"
162msgid "Store"
181msgstr "স্টোর"
163msgstr "স্টোর"
182
164
183−#: qml/Dash/DashPageHeader.qml:277
165+#: qml/Dash/DashPageHeader.qml:344
184msgctxt "Button: Start a search in the current dash scope"
166msgctxt "Button: Start a search in the current dash scope"
185msgid "Search"
167msgid "Search"
186msgstr "খুঁজুন"
168msgstr "খুঁজুন"
187
169
188−#: qml/Dash/DashPageHeader.qml:287
170+#: qml/Dash/DashPageHeader.qml:354
189msgctxt "Button: Show the current dash scope settings"
171msgctxt "Button: Show the current dash scope settings"
190msgid "Settings"
172msgid "Settings"
191msgstr "সেটিংস"
173msgstr "সেটিংস"
192
174
193−#: qml/Dash/DashPageHeader.qml:294
175+#: qml/Dash/DashPageHeader.qml:361
194msgid "Remove from Favorites"
176msgid "Remove from Favorites"
195msgstr "পছন্দ থেকে মুছে ফেলুন"
177msgstr "পছন্দ থেকে মুছে ফেলুন"
196
178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198msgid "Add to Favorites"
180msgid "Add to Favorites"
199msgstr "পছন্দতে যোগ করুন"
181msgstr "পছন্দতে যোগ করুন"
200
182
183+#: qml/Dash/FiltersPopover.qml:60
184+msgid "Refine your results"
185+msgstr ""
186+
187+#: qml/Dash/FiltersPopover.qml:69
188+msgid "Reset"
189+msgstr ""
190+
201−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
202−msgid "See less"
192+msgid "Show less"
203−msgstr "কম দেখুন"
193+msgstr ""
204
194
205−#: qml/Dash/GenericScopeView.qml:567
195+#: qml/Dash/GenericScopeView.qml:579
206−msgid "See all"
196+msgid "Show all"
207−msgstr "সব দেখুন"
197+msgstr ""
208
198
209−#: qml/Dash/GenericScopeView.qml:629
199+#: qml/Dash/GenericScopeView.qml:636
210msgctxt "Label: Hint for dash search line edit"
200msgctxt "Label: Hint for dash search line edit"
211msgid "Search"
201msgid "Search"
212msgstr "খুঁজুন"
202msgstr "খুঁজুন"
213
203
204+#: qml/Dash/PageHeaderExtraPanel.qml:55
205+msgid "Recent Searches"
206+msgstr ""
207+
208+#: qml/Dash/PageHeaderExtraPanel.qml:66
209+msgid "Clear All"
210+msgstr ""
211+
214#: qml/Dash/Previews/PreviewActionCombo.qml:35
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
215msgid "More..."
213msgid "More..."
216msgstr "আরো..."
214msgstr "আরো..."
@@ -278,11 +276,11 @@ msgstr ""
278msgid "Tap to unlock"
276msgid "Tap to unlock"
279msgstr "লক খোলার জন্য চাপ দিন"
277msgstr "লক খোলার জন্য চাপ দিন"
280
278
281−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
282msgid "Sorry, incorrect passphrase."
280msgid "Sorry, incorrect passphrase."
283msgstr "দুঃখিত, পাসওয়ার্ডটি ভুল হয়েছে।"
281msgstr "দুঃখিত, পাসওয়ার্ডটি ভুল হয়েছে।"
284
282
285−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
286msgid "Sorry, incorrect passcode."
284msgid "Sorry, incorrect passcode."
287msgstr "দুঃখিত, পাসকোডটি ভুল হয়েছে।"
285msgstr "দুঃখিত, পাসকোডটি ভুল হয়েছে।"
288
286
@@ -308,7 +306,7 @@ msgstr "ভুল পাসকোড প্রদান করলে, আপন
308msgid "Enter %1"
306msgid "Enter %1"
309msgstr "%1 লিখুন"
307msgstr "%1 লিখুন"
310
308
311−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
309+#: qml/Greeter/NarrowView.qml:117
312msgid "Enter passphrase"
310msgid "Enter passphrase"
313msgstr "পাসওয়ার্ড লিখুন"
311msgstr "পাসওয়ার্ড লিখুন"
314
312
@@ -334,7 +332,7 @@ msgstr "অনুগ্রহ করে আবার লিখুন"
334msgid "Sorry, incorrect passcode"
332msgid "Sorry, incorrect passcode"
335msgstr "দুঃখিত, পাসকোড ভুল হয়েছে"
333msgstr "দুঃখিত, পাসকোড ভুল হয়েছে"
336
334
337−#: qml/Notifications/NotificationMenuItemFactory.qml:129
335+#: qml/Notifications/NotificationMenuItemFactory.qml:124
338msgid "Show password"
336msgid "Show password"
339msgstr "পাসওয়ার্ড দেখান"
337msgstr "পাসওয়ার্ড দেখান"
340
338
@@ -346,62 +344,62 @@ msgstr "কলে ফিরে যেতে চাপ দিন..."
346msgid "Conference"
344msgid "Conference"
347msgstr "কনফারেন্স"
345msgstr "কনফারেন্স"
348
346
349−#: qml/Panel/Indicators/MenuItemFactory.qml:752
347+#: qml/Panel/Indicators/MenuItemFactory.qml:762
350msgid "Nothing is playing"
348msgid "Nothing is playing"
351msgstr "কোন কিছু বাজছে না।"
349msgstr "কোন কিছু বাজছে না।"
352
350
353−#: qml/Panel/Indicators/MenuItemFactory.qml:881
351+#: qml/Panel/Indicators/MenuItemFactory.qml:891
354#, qt-format
352#, qt-format
355msgid "%1 hour"
353msgid "%1 hour"
356msgid_plural "%1 hours"
354msgid_plural "%1 hours"
357msgstr[0] "%1 ঘণ্টা"
355msgstr[0] "%1 ঘণ্টা"
358msgstr[1] "%1 ঘণ্টা"
356msgstr[1] "%1 ঘণ্টা"
359
357
360−#: qml/Panel/Indicators/MenuItemFactory.qml:885
358+#: qml/Panel/Indicators/MenuItemFactory.qml:895
361#, qt-format
359#, qt-format
362msgid "%1 minute"
360msgid "%1 minute"
363msgid_plural "%1 minutes"
361msgid_plural "%1 minutes"
364msgstr[0] "%1 মিনিট"
362msgstr[0] "%1 মিনিট"
365msgstr[1] "%1 মিনিট"
363msgstr[1] "%1 মিনিট"
366
364
367−#: qml/Panel/Indicators/MenuItemFactory.qml:890
365+#: qml/Panel/Indicators/MenuItemFactory.qml:900
368#, qt-format
366#, qt-format
369msgid "%1 second"
367msgid "%1 second"
370msgid_plural "%1 seconds"
368msgid_plural "%1 seconds"
371msgstr[0] "%1 সেকেন্ড"
369msgstr[0] "%1 সেকেন্ড"
372msgstr[1] "%1 সেকেন্ড"
370msgstr[1] "%1 সেকেন্ড"
373
371
374−#: qml/Panel/Indicators/MenuItemFactory.qml:893
372+#: qml/Panel/Indicators/MenuItemFactory.qml:903
375msgid "0 seconds"
373msgid "0 seconds"
376msgstr "0 সেকেন্ড"
374msgstr "0 সেকেন্ড"
377
375
378#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
376#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
379−#: qml/Panel/Indicators/MenuItemFactory.qml:895
377+#: qml/Panel/Indicators/MenuItemFactory.qml:905
380#, qt-format
378#, qt-format
381msgid "%1 remaining"
379msgid "%1 remaining"
382msgstr "%1 বাকি"
380msgstr "%1 বাকি"
383
381
384−#: qml/Panel/Indicators/MenuItemFactory.qml:901
382+#: qml/Panel/Indicators/MenuItemFactory.qml:911
385msgid "In queue…"
383msgid "In queue…"
386msgstr "অপেক্ষায় রয়েছে..."
384msgstr "অপেক্ষায় রয়েছে..."
387
385
388−#: qml/Panel/Indicators/MenuItemFactory.qml:905
386+#: qml/Panel/Indicators/MenuItemFactory.qml:915
389msgid "Downloading"
387msgid "Downloading"
390msgstr "ডাউনলোড হচ্ছে"
388msgstr "ডাউনলোড হচ্ছে"
391
389
392−#: qml/Panel/Indicators/MenuItemFactory.qml:907
390+#: qml/Panel/Indicators/MenuItemFactory.qml:917
393msgid "Paused, tap to resume"
391msgid "Paused, tap to resume"
394msgstr "থামানো, শুরু করতে চাপ দিন"
392msgstr "থামানো, শুরু করতে চাপ দিন"
395
393
396−#: qml/Panel/Indicators/MenuItemFactory.qml:909
394+#: qml/Panel/Indicators/MenuItemFactory.qml:919
397msgid "Canceled"
395msgid "Canceled"
398msgstr "বাতিল হয়েছে"
396msgstr "বাতিল হয়েছে"
399
397
400−#: qml/Panel/Indicators/MenuItemFactory.qml:911
398+#: qml/Panel/Indicators/MenuItemFactory.qml:921
401msgid "Finished"
399msgid "Finished"
402msgstr "শেষ"
400msgstr "শেষ"
403
401
404−#: qml/Panel/Indicators/MenuItemFactory.qml:913
402+#: qml/Panel/Indicators/MenuItemFactory.qml:923
405msgid "Failed, tap to retry"
403msgid "Failed, tap to retry"
406msgstr "ব্যার্থ হয়েছে, পুনরায় চেষ্টা করতে চাপ দিন"
404msgstr "ব্যার্থ হয়েছে, পুনরায় চেষ্টা করতে চাপ দিন"
407
405
@@ -421,251 +419,379 @@ msgctxt "Button: Call back on phone"
421msgid "Call back"
419msgid "Call back"
422msgstr "কল ব্যাক"
420msgstr "কল ব্যাক"
423
421
424−#: qml/Tutorial/TutorialBottom.qml:28
422+#: qml/Stages/SideStage.qml:76
425−msgid "Open special menus"
423+msgid "Drag using 3 fingers any application from one window to the other"
426msgstr ""
424msgstr ""
427
425
428−#: qml/Tutorial/TutorialBottom.qml:29
426+#: qml/Tutorial/TutorialBottom.qml:78
429−msgid "Swipe up from the bottom edge."
427+msgid "Swipe up to add a contact"
430−msgstr "নিচের প্রান্ত হতে উপরের দিকে সোয়াইপ করুন।"
428+msgstr ""
431−
432−#: qml/Tutorial/TutorialBottomFinish.qml:24
433−msgid "This action does different things for different apps"
434−msgstr "এই কাজটি বিভিন্ন অ্যাপের জন্য ভিন্ন ভিন্ন ভাবে কাজ করে।"
435
429
436−#: qml/Tutorial/TutorialBottomFinish.qml:25
430+#: qml/Tutorial/TutorialBottom.qml:80
437−msgid "Tap here to finish."
431+msgid "Swipe up for favorite calculations"
438msgstr ""
432msgstr ""
439
433
440−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
434+#: qml/Tutorial/TutorialBottom.qml:82
441−#: qml/Tutorial/TutorialRight.qml:144
435+msgid "Swipe up for recent calls"
442−msgid "Tap here to continue."
436+msgstr ""
443−msgstr "অগ্রসর হওয়ার জন্য এখানে চাপ দিন।"
444
437
445−#: qml/Tutorial/TutorialLeft.qml:26
438+#: qml/Tutorial/TutorialBottom.qml:84
446−msgid "Open the launcher"
439+msgid "Swipe up to create a message"
447−msgstr "লঞ্চার খুলুন"
440+msgstr ""
448
441
449−#: qml/Tutorial/TutorialLeft.qml:27
442+#: qml/Tutorial/TutorialBottom.qml:85
450−msgid "Short swipe from the left edge."
443+msgid "Swipe up to manage the app"
451msgstr ""
444msgstr ""
452
445
453−#: qml/Tutorial/TutorialLeftFinish.qml:24
446+#: qml/Tutorial/TutorialLeftLong.qml:47
454−msgid "These are the shortcuts to favorite apps"
447+msgid "Long swipe from the left edge to open the Today scope"
455−msgstr "এগুলো আপনার প্রিয় অ্যাপেরর শর্টকাট"
448+msgstr ""
456
449
457−#: qml/Tutorial/TutorialPage.qml:178
450+#: qml/Tutorial/TutorialLeft.qml:47
458−msgid "You almost got it!"
451+msgid "Swipe from the left edge to open the launcher"
459−msgstr "আপনি প্রায় পেরে গেছেন!"
452+msgstr ""
460
453
461−#: qml/Tutorial/TutorialPage.qml:195
454+#: qml/Tutorial/TutorialRight.qml:55
462−msgid "Try again."
455+msgid "Push your mouse against the right edge to view your open apps"
463−msgstr "আবার চেষ্টা করুন"
456+msgstr ""
464
457
465−#: qml/Tutorial/TutorialRight.qml:31
458+#: qml/Tutorial/TutorialRight.qml:56
466−msgid "To view open apps"
459+msgid "Short or long swipe from the right edge to view your open apps"
467−msgstr "সচল অ্যাপগুলো দেখার জন্য"
460+msgstr ""
468
461
469−#: qml/Tutorial/TutorialRight.qml:32
462+#: qml/Tutorial/TutorialTop.qml:53
470−msgid "Long swipe from the right edge."
463+msgid "Swipe from the top right edge to open the notification bar"
471msgstr ""
464msgstr ""
472
465
473−#: qml/Tutorial/TutorialRight.qml:122
466+#: qml/Tutorial/TutorialTop.qml:54
474−msgid "View all your running tasks."
467+msgid "Swipe from the top edge to open the notification bar"
475msgstr ""
468msgstr ""
476
469
477−#: qml/Wizard/Page.qml:89
470+#: qml/Wizard/Page.qml:54
478msgctxt "Button: Go back one page in the Wizard"
471msgctxt "Button: Go back one page in the Wizard"
479msgid "Back"
472msgid "Back"
480msgstr ""
473msgstr ""
481
474
482#: qml/Wizard/Pages/10-welcome.qml:27
475#: qml/Wizard/Pages/10-welcome.qml:27
483−msgid "Hi!"
476+msgid "Language"
484msgstr ""
477msgstr ""
485
478
486−#: qml/Wizard/Pages/10-welcome.qml:44
479+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
487−msgid "Welcome to your Ubuntu device."
480+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
481+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
482+#: qml/Wizard/Pages/75-report-check.qml:84
483+#: qml/Wizard/Pages/passcode-desktop.qml:124
484+#: qml/Wizard/Pages/password-set.qml:141
485+msgid "Next"
488msgstr ""
486msgstr ""
489
487
490−#: qml/Wizard/Pages/10-welcome.qml:52
488+#: qml/Wizard/Pages/30-wifi.qml:29
491−msgid "Let’s get started."
489+msgid "Connect to Wi‑Fi"
492−msgstr "আসুন শুরু করা যাক।"
490+msgstr ""
493
491
494−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
492+#: qml/Wizard/Pages/30-wifi.qml:130
495−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
493+msgid "Connected"
496−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
497−#: qml/Wizard/Pages/passwd-set.qml:90
498−msgid "Continue"
499−msgstr "পরবর্তী"
494+msgstr ""
500
495
501−#: qml/Wizard/Pages/20-sim.qml:25
496+#: qml/Wizard/Pages/30-wifi.qml:163
502−msgid "Add a SIM card and restart your device"
497+msgid "Available Wi-Fi networks"
503−msgstr "সিম কার্ড যোগ করুন এবং ফোন পুনরায় চালু করুন।"
498+msgstr ""
504
499
505−#: qml/Wizard/Pages/20-sim.qml:59
500+#: qml/Wizard/Pages/30-wifi.qml:164
506−msgid "Without it, you won’t be able to make calls or use text messaging."
501+msgid "No available Wi-Fi networks"
507−msgstr "এটি ছাড়া, আপনি ফোন কল বা টেক্সট মেসেজ ব্যবহার করতে পারবেন না।"
502+msgstr ""
508
503
509−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
504+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
505+#: qml/Wizard/Pages/sim.qml:101
510msgid "Skip"
506msgid "Skip"
511msgstr "এড়িয়ে যান"
507msgstr "এড়িয়ে যান"
512
508
513−#: qml/Wizard/Pages/30-passwd-type.qml:39
509+#: qml/Wizard/Pages/40-location.qml:27
514−msgid "Lock security"
510+msgid "Location Services"
515−msgstr "নিরাপত্তা লক"
511+msgstr ""
516
512
517−#: qml/Wizard/Pages/30-passwd-type.qml:79
513+#: qml/Wizard/Pages/40-location.qml:83
518−msgid "Please select how you’d like to unlock your device."
514+msgid ""
515+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
516+"(recommended)"
519msgstr ""
517msgstr ""
520
518
521−#: qml/Wizard/Pages/30-passwd-type.qml:102
519+#: qml/Wizard/Pages/40-location.qml:105
522−msgctxt "Label: Type of security method"
520+#, qt-format
523−msgid "Swipe"
521+msgid "By selecting this option you agree to the Nokia HERE %1."
522+msgstr ""
523+
524+#: qml/Wizard/Pages/40-location.qml:106
525+msgctxt "part of: Nokia HERE terms and conditions"
526+msgid "terms and conditions"
524msgstr ""
527msgstr ""
525
528
526−#: qml/Wizard/Pages/30-passwd-type.qml:103
529+#: qml/Wizard/Pages/40-location.qml:160
527−msgctxt "Label: Description of security method"
530+msgid "GPS only"
528−msgid "No security"
531+msgstr ""
529−msgstr "কোন নিরাপত্তা নেই"
532+
533+#: qml/Wizard/Pages/40-location.qml:214
534+msgid "Don't use my location"
535+msgstr ""
530
536
531−#: qml/Wizard/Pages/30-passwd-type.qml:105
537+#: qml/Wizard/Pages/40-location.qml:260
538+msgid "You can change it later in System Settings."
539+msgstr ""
540+
541+#: qml/Wizard/Pages/50-timezone.qml:29
542+msgid "Time Zone"
543+msgstr ""
544+
545+#: qml/Wizard/Pages/50-timezone.qml:178
546+msgid "Enter your city"
547+msgstr ""
548+
549+#: qml/Wizard/Pages/60-account.qml:24
550+msgid "Personalize Your Device"
551+msgstr ""
552+
553+#: qml/Wizard/Pages/60-account.qml:48
554+msgid "Preferred Name"
555+msgstr ""
556+
557+#: qml/Wizard/Pages/70-passwd-type.qml:39
558+msgid "Lock Screen"
559+msgstr ""
560+
561+#: qml/Wizard/Pages/70-passwd-type.qml:101
532msgctxt "Label: Type of security method"
562msgctxt "Label: Type of security method"
533−msgid "Passcode"
563+msgid "Create new password"
534−msgstr "পাসকোড"
564+msgstr ""
535
565
536−#: qml/Wizard/Pages/30-passwd-type.qml:106
566+#: qml/Wizard/Pages/70-passwd-type.qml:103
537−msgctxt "Label: Description of security method"
567+msgctxt "Label: Type of security method"
538−msgid "4 digits only"
568+msgid "Create passcode (numbers only)"
539−msgstr "কেবল মাত্র ৪টি সংখ্যা"
569+msgstr ""
540
570
541−#: qml/Wizard/Pages/30-passwd-type.qml:108
571+#: qml/Wizard/Pages/70-passwd-type.qml:105
542msgctxt "Label: Type of security method"
572msgctxt "Label: Type of security method"
543−msgid "Passphrase"
573+msgid "No lock code"
544msgstr ""
574msgstr ""
545
575
546−#: qml/Wizard/Pages/30-passwd-type.qml:109
576+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
547−msgctxt "Label: Description of security method"
577+msgid "Privacy Policy"
548−msgid "Numbers and letters"
549msgstr ""
578msgstr ""
550
579
551−#: qml/Wizard/Pages/40-wifi.qml:29
580+#: qml/Wizard/Pages/75-report-check.qml:26
552−msgid "Connect to Wi‑Fi"
581+msgid "Help Us Improve"
553msgstr ""
582msgstr ""
554
583
555−#: qml/Wizard/Pages/40-wifi.qml:168
584+#: qml/Wizard/Pages/75-report-check.qml:59
556−msgid "Available networks…"
585+msgid "Improve system performance by sending us crashes and error reports."
557msgstr ""
586msgstr ""
558
587
559−#: qml/Wizard/Pages/40-wifi.qml:169
588+#: qml/Wizard/Pages/75-report-check.qml:60
560−msgid "No available networks."
589+msgid "Privacy policy"
561msgstr ""
590msgstr ""
562
591
563−#: qml/Wizard/Pages/50-location.qml:27
592+#: qml/Wizard/Pages/80-finished.qml:89
564−msgid "Location"
593+msgid "Welcome to Ubuntu"
565msgstr ""
594msgstr ""
566
595
567−#: qml/Wizard/Pages/50-location.qml:62
596+#: qml/Wizard/Pages/80-finished.qml:104
568−msgid "Let the phone detect your location:"
597+msgid "You are ready to use your device now"
569msgstr ""
598msgstr ""
570
599
571−#: qml/Wizard/Pages/50-location.qml:69
600+#: qml/Wizard/Pages/80-finished.qml:124
572−msgid "Using GPS only (less accurate)"
601+msgid "Get Started"
573msgstr ""
602msgstr ""
574
603
575−#: qml/Wizard/Pages/50-location.qml:86
604+#: qml/Wizard/Pages/here-terms.qml:25
576−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
605+msgid "Terms & Conditions"
577msgstr ""
606msgstr ""
578
607
579−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
608+#: qml/Wizard/Pages/here-terms.qml:69
609+msgid "Your device uses positioning technologies provided by HERE."
610+msgstr ""
611+
580−#: qml/Wizard/Pages/50-location.qml:103
612+#: qml/Wizard/Pages/here-terms.qml:81
581msgid ""
613msgid ""
582−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
614+"To provide you with positioning services and to improve their quality, HERE "
583−"conditions</a>."
615+"collects information about nearby cell towers and Wi-Fi hotspots around your "
616+"current location whenever your position is being found."
584msgstr ""
617msgstr ""
585
618
586−#: qml/Wizard/Pages/50-location.qml:112
619+#: qml/Wizard/Pages/here-terms.qml:93
587−msgid "Not at all"
620+msgid ""
621+"The information collected is used to analyze the service and to improve the "
622+"use of service, but not to identify you personally."
588msgstr ""
623msgstr ""
589
624
590−#: qml/Wizard/Pages/50-location.qml:124
625+#: qml/Wizard/Pages/here-terms.qml:106
591−msgid "You can change your mind later in <b>System Settings</b>."
626+#, qt-format
627+msgid "By continuing, you agree to the HERE platform %1 and %2."
592msgstr ""
628msgstr ""
593
629
594−#: qml/Wizard/Pages/60-reporting.qml:26
630+#: qml/Wizard/Pages/here-terms.qml:107
595−msgid "Improving your experience"
631+msgid "Service Terms"
596msgstr ""
632msgstr ""
597
633
598−#: qml/Wizard/Pages/60-reporting.qml:46
634+#: qml/Wizard/Pages/passcode-confirm.qml:43
635+#: qml/Wizard/Pages/passcode-desktop.qml:80
599−msgid ""
636+msgid "Confirm passcode"
600−"Your phone is set up to automatically report errors to Canonical and its "
601−"partners, the makers of the operating system."
602msgstr ""
637msgstr ""
603
638
604−#: qml/Wizard/Pages/60-reporting.qml:53
639+#: qml/Wizard/Pages/passcode-confirm.qml:45
605−msgid ""
640+msgid "Incorrect passcode."
606−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
607−"Privacy</b>"
608msgstr ""
641msgstr ""
609
642
610−#: qml/Wizard/Pages/80-finished.qml:24
643+#: qml/Wizard/Pages/passcode-confirm.qml:45
611−msgid "All done"
644+msgctxt "Enter the passcode again"
645+msgid "Please re-enter."
612msgstr ""
646msgstr ""
613
647
614−#: qml/Wizard/Pages/80-finished.qml:39
648+#: qml/Wizard/Pages/passcode-desktop.qml:30
615−msgid "Nice work!"
649+msgid "Lock Screen Passcode"
616msgstr ""
650msgstr ""
617
651
618−#: qml/Wizard/Pages/80-finished.qml:46
652+#: qml/Wizard/Pages/passcode-desktop.qml:56
619−msgid "Your device is now ready to use."
653+msgid "Enter 4 numbers to setup your passcode"
620msgstr ""
654msgstr ""
621
655
622−#: qml/Wizard/Pages/80-finished.qml:53
656+#: qml/Wizard/Pages/passcode-desktop.qml:65
623−msgid "Finish"
657+#: qml/Wizard/Pages/passcode-set.qml:54
658+msgid "Choose passcode"
624msgstr ""
659msgstr ""
625
660
626−#: qml/Wizard/Pages/here-terms.qml:27
661+#: qml/Wizard/Pages/passcode-desktop.qml:105
627−msgid "Terms & Conditions"
662+msgid "Passcode too short"
628msgstr ""
663msgstr ""
629
664
630−#: qml/Wizard/Pages/passwd-confirm.qml:49
665+#: qml/Wizard/Pages/passcode-desktop.qml:107
631−msgid "Confirm passphrase"
666+msgid "Passcodes match"
632msgstr ""
667msgstr ""
633
668
634−#: qml/Wizard/Pages/passwd-confirm.qml:50
669+#: qml/Wizard/Pages/passcode-desktop.qml:109
635−msgid "Confirm passcode"
670+msgid "Passcodes do not match"
636msgstr ""
671msgstr ""
637
672
638−#: qml/Wizard/Pages/passwd-confirm.qml:53
673+#: qml/Wizard/Pages/passcode-set.qml:62
639−#: qml/Wizard/Pages/passwd-confirm.qml:54
674+msgid "Passcode must be 4 characters long"
640−msgid "Please try again."
641msgstr ""
675msgstr ""
642
676
643−#: qml/Wizard/Pages/passwd-set.qml:61
677+#: qml/Wizard/Pages/password-set.qml:30
644−msgid "Choose your passcode"
678+msgid "Lock Screen Password"
645msgstr ""
679msgstr ""
646
680
647−#: qml/Wizard/Pages/passwd-set.qml:68
681+#: qml/Wizard/Pages/password-set.qml:61
648−msgid "Passphrase must be 4 characters long"
682+msgid "Enter at least 8 characters"
649msgstr ""
683msgstr ""
650
684
651−#. Translators: This is the arrow for "Back" buttons
685+#: qml/Wizard/Pages/password-set.qml:73
652−#: qml/Wizard/StackButton.qml:39
653−#, qt-format
654−msgid "〈 %1"
686+msgid "Choose password"
655msgstr ""
687msgstr ""
656
688
657−#. Translators: This is the arrow for "Forward" buttons
689+#: qml/Wizard/Pages/password-set.qml:103
658−#: qml/Wizard/StackButton.qml:42
690+msgid "Confirm password"
659−#, qt-format
691+msgstr ""
660−msgid "%1 〉"
692+
693+#: qml/Wizard/Pages/sim.qml:27
694+msgid "No SIM card installed"
695+msgstr ""
696+
697+#: qml/Wizard/Pages/sim.qml:54
698+msgid "SIM card added"
699+msgstr ""
700+
701+#: qml/Wizard/Pages/sim.qml:55
702+msgid "You must restart the device to access the mobile network."
661msgstr ""
703msgstr ""
662
704
705+#: qml/Wizard/Pages/sim.qml:59
706+msgid "Restart"
707+msgstr "পুনরায় চালু"
708+
709+#: qml/Wizard/Pages/sim.qml:78
710+msgid "You won’t be able to make calls or use text messaging without a SIM."
711+msgstr ""
712+
713+#: qml/Wizard/Pages/sim.qml:90
714+msgid "To proceed with no SIM tap Skip."
715+msgstr ""
716+
717+#: qml/Wizard/PasswordMeter.qml:87
718+msgid "Passwords match"
719+msgstr ""
720+
721+#: qml/Wizard/PasswordMeter.qml:89
722+msgid "Passwords do not match"
723+msgstr ""
724+
725+#: qml/Wizard/PasswordMeter.qml:93
726+msgid "Strong password"
727+msgstr ""
728+
729+#: qml/Wizard/PasswordMeter.qml:95
730+msgid "Fair password"
731+msgstr ""
732+
733+#: qml/Wizard/PasswordMeter.qml:97
734+msgid "Weak password"
735+msgstr ""
736+
737+#: qml/Wizard/PasswordMeter.qml:99
738+msgid "Very weak password"
739+msgstr ""
740+
741+#~ msgctxt "Button: Reboot the system"
742+#~ msgid "Reboot"
743+#~ msgstr "পুনরায় চালু করুন"
744+
745+#~ msgid "See all"
746+#~ msgstr "সব দেখুন"
747+
748+#~ msgid "See less"
749+#~ msgstr "কম দেখুন"
750+
751+#~ msgid "This action does different things for different apps"
752+#~ msgstr "এই কাজটি বিভিন্ন অ্যাপের জন্য ভিন্ন ভিন্ন ভাবে কাজ করে।"
753+
754+#~ msgid "To view open apps"
755+#~ msgstr "সচল অ্যাপগুলো দেখার জন্য"
756+
663#~ msgid "Welcome to your Ubuntu phone."
757#~ msgid "Welcome to your Ubuntu phone."
664#~ msgstr "আপনার উবুন্টু ফোনে স্বাগতম।"
758#~ msgstr "আপনার উবুন্টু ফোনে স্বাগতম।"
665
759
760+#~ msgid "Try again."
761+#~ msgstr "আবার চেষ্টা করুন"
762+
763+#~ msgid "You almost got it!"
764+#~ msgstr "আপনি প্রায় পেরে গেছেন!"
765+
766+#~ msgid "Open the launcher"
767+#~ msgstr "লঞ্চার খুলুন"
768+
769+#~ msgctxt "Label: Type of security method"
770+#~ msgid "Passcode"
771+#~ msgstr "পাসকোড"
772+
773+#~ msgid "Add a SIM card and restart your device"
774+#~ msgstr "সিম কার্ড যোগ করুন এবং ফোন পুনরায় চালু করুন।"
775+
776+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
777+#~ msgstr "এটি ছাড়া, আপনি ফোন কল বা টেক্সট মেসেজ ব্যবহার করতে পারবেন না।"
778+
779+#~ msgid "Tap here to continue."
780+#~ msgstr "অগ্রসর হওয়ার জন্য এখানে চাপ দিন।"
781+
782+#~ msgid "Swipe up from the bottom edge."
783+#~ msgstr "নিচের প্রান্ত হতে উপরের দিকে সোয়াইপ করুন।"
784+
785+#~ msgctxt "Label: Description of security method"
786+#~ msgid "No security"
787+#~ msgstr "কোন নিরাপত্তা নেই"
788+
666#~ msgid "Log out"
789#~ msgid "Log out"
667#~ msgstr "লগ অাউট"
790#~ msgstr "লগ অাউট"
668
791
792+#~ msgid "Are you sure you want to shut down?"
793+#~ msgstr "আপনি কি কম্পিউটার বন্ধ করতে চান?"
794+
669#~ msgid "Reboot"
795#~ msgid "Reboot"
670#~ msgstr "পুনরায় চালু করুন"
796#~ msgstr "পুনরায় চালু করুন"
671
797
@@ -675,9 +801,6 @@ msgstr ""
675#~ msgid "Power off"
801#~ msgid "Power off"
676#~ msgstr "বন্ধ করুন"
802#~ msgstr "বন্ধ করুন"
677
803
678−#~ msgid "Restart"
679−#~ msgstr "পুনরায় চালু"
680−
681#~ msgid "Top edge"
804#~ msgid "Top edge"
682#~ msgstr "উপরের প্রান্ত"
805#~ msgstr "উপরের প্রান্ত"
683
806
@@ -729,5 +852,29 @@ msgstr ""
729#~ msgid "Please re-enter"
852#~ msgid "Please re-enter"
730#~ msgstr "অনুগ্রহ করে আবার লিখুন"
853#~ msgstr "অনুগ্রহ করে আবার লিখুন"
731
854
855+#~ msgctxt "Button: Shut down the system"
856+#~ msgid "Shut down"
857+#~ msgstr "বন্ধ করুন"
858+
859+#~ msgctxt "Title: Reboot/Shut down dialog"
860+#~ msgid "Shut down"
861+#~ msgstr "বন্ধ করুন"
862+
863+#~ msgid "Let’s get started."
864+#~ msgstr "আসুন শুরু করা যাক।"
865+
866+#~ msgid "These are the shortcuts to favorite apps"
867+#~ msgstr "এগুলো আপনার প্রিয় অ্যাপেরর শর্টকাট"
868+
869+#~ msgid "Lock security"
870+#~ msgstr "নিরাপত্তা লক"
871+
732#~ msgid "Please select how you’d like to unlock your phone."
872#~ msgid "Please select how you’d like to unlock your phone."
733#~ msgstr "আপনি কিভাবে ফোনের লক খুলতে চান তা নির্ধারণ করুন।"
873#~ msgstr "আপনি কিভাবে ফোনের লক খুলতে চান তা নির্ধারণ করুন।"
874+
875+#~ msgctxt "Label: Description of security method"
876+#~ msgid "4 digits only"
877+#~ msgstr "কেবল মাত্র ৪টি সংখ্যা"
878+
879+#~ msgid "Continue"
880+#~ msgstr "পরবর্তী"
po/br.po+496−257
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11−"PO-Revision-Date: 2016-02-22 12:29+0000\n"
11+"PO-Revision-Date: 2016-04-27 12:20+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-03-13 05:50+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -77,53 +77,35 @@ msgctxt "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:194
80+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
81−#: qml/Components/Dialogs.qml:253
81+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
82+#: qml/Wizard/Pages/passcode-set.qml:32
82msgid "Cancel"
83msgid "Cancel"
83msgstr "Nullañ"
84msgstr "Nullañ"
84
85
85#: qml/Components/Dialogs.qml:173
86#: qml/Components/Dialogs.qml:173
86−msgctxt "Title: Reboot/Shut down dialog"
87−msgid "Shut down"
88−msgstr "Lazhañ ar benveg"
89−
90−#: qml/Components/Dialogs.qml:174
91−msgid "Are you sure you want to shut down?"
92−msgstr "Ha sur oc'h e fell deoc'h lazhañ ar benveg ?"
93−
94−#: qml/Components/Dialogs.qml:176
95−msgctxt "Button: Reboot the system"
96−msgid "Reboot"
97−msgstr "Adloc'hañ"
98−
99−#: qml/Components/Dialogs.qml:185
100−msgctxt "Button: Shut down the system"
101−msgid "Shut down"
102−msgstr "Lazhañ ar benveg"
103−
104−#: qml/Components/Dialogs.qml:207
105msgctxt "Title: Reboot dialog"
87msgctxt "Title: Reboot dialog"
106msgid "Reboot"
88msgid "Reboot"
107msgstr "Adloc'hañ"
89msgstr "Adloc'hañ"
108
90
109−#: qml/Components/Dialogs.qml:208
91+#: qml/Components/Dialogs.qml:174
110msgid "Are you sure you want to reboot?"
92msgid "Are you sure you want to reboot?"
111msgstr "Ha sur oc'h e fell deoc'h adloc'hañ ?"
93msgstr "Ha sur oc'h e fell deoc'h adloc'hañ ?"
112
94
113−#: qml/Components/Dialogs.qml:210
95+#: qml/Components/Dialogs.qml:176
114msgid "No"
96msgid "No"
115msgstr "N'on ket"
97msgstr "N'on ket"
116
98
117−#: qml/Components/Dialogs.qml:217
99+#: qml/Components/Dialogs.qml:182
118msgid "Yes"
100msgid "Yes"
119msgstr "Ya"
101msgstr "Ya"
120
102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:197
122msgctxt "Title: Power off/Restart dialog"
104msgctxt "Title: Power off/Restart dialog"
123msgid "Power"
105msgid "Power"
124msgstr "Enaouiñ"
106msgstr "Enaouiñ"
125
107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:198
127msgid ""
109msgid ""
128"Are you sure you would like\n"
110"Are you sure you would like\n"
129"to power off?"
111"to power off?"
@@ -131,12 +113,12 @@ msgstr ""
131"Ha sur oc'h e fell deoc'h\n"
113"Ha sur oc'h e fell deoc'h\n"
132"troc'hañ an tredan ?"
114"troc'hañ an tredan ?"
133
115
134−#: qml/Components/Dialogs.qml:235
116+#: qml/Components/Dialogs.qml:200
135msgctxt "Button: Power off the system"
117msgctxt "Button: Power off the system"
136msgid "Power off"
118msgid "Power off"
137msgstr "Lazhañ"
119msgstr "Lazhañ"
138
120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:209
140msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
141msgid "Restart"
123msgid "Restart"
142msgstr "Adloc'hañ"
124msgstr "Adloc'hañ"
@@ -162,6 +144,8 @@ msgctxt ""
162"Re-dock means connect the device again to an external screen/mouse/keyboard"
144"Re-dock means connect the device again to an external screen/mouse/keyboard"
163msgid "Re-dock, save your work and close these apps to continue."
145msgid "Re-dock, save your work and close these apps to continue."
164msgstr ""
146msgstr ""
147+"Adkevreit ouzh ar savlec'h degemer, enrollot ho labour ha serrit an arloadoù-"
148+"mañ evit kenderc'hel."
165
149
166#: qml/Components/ModeSwitchWarningDialog.qml:63
150#: qml/Components/ModeSwitchWarningDialog.qml:63
167msgid "Or force close now (unsaved data will be lost)."
151msgid "Or force close now (unsaved data will be lost)."
@@ -180,42 +164,58 @@ msgstr "Adkevreañ bremañ !"
180msgid "Close all"
164msgid "Close all"
181msgstr "Serriñ pep tra"
165msgstr "Serriñ pep tra"
182
166
183−#: qml/Dash/DashPageHeader.qml:270
167+#: qml/Dash/DashPageHeader.qml:337
184msgctxt "Button: Open the Ubuntu Store"
168msgctxt "Button: Open the Ubuntu Store"
185msgid "Store"
169msgid "Store"
186msgstr "Stal"
170msgstr "Stal"
187
171
188−#: qml/Dash/DashPageHeader.qml:277
172+#: qml/Dash/DashPageHeader.qml:344
189msgctxt "Button: Start a search in the current dash scope"
173msgctxt "Button: Start a search in the current dash scope"
190msgid "Search"
174msgid "Search"
191msgstr "Klask"
175msgstr "Klask"
192
176
193−#: qml/Dash/DashPageHeader.qml:287
177+#: qml/Dash/DashPageHeader.qml:354
194msgctxt "Button: Show the current dash scope settings"
178msgctxt "Button: Show the current dash scope settings"
195msgid "Settings"
179msgid "Settings"
196msgstr "Arventennoù"
180msgstr "Arventennoù"
197
181
198−#: qml/Dash/DashPageHeader.qml:294
182+#: qml/Dash/DashPageHeader.qml:361
199msgid "Remove from Favorites"
183msgid "Remove from Favorites"
200msgstr "Lemel eus ar sinedoù"
184msgstr "Lemel eus ar sinedoù"
201
185
202−#: qml/Dash/DashPageHeader.qml:294
186+#: qml/Dash/DashPageHeader.qml:361
203msgid "Add to Favorites"
187msgid "Add to Favorites"
204msgstr "Ouzhpennañ d'ar sinedoù"
188msgstr "Ouzhpennañ d'ar sinedoù"
205
189
206−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
190+#: qml/Dash/FiltersPopover.qml:60
207−msgid "See less"
191+msgid "Refine your results"
208−msgstr "Gwelet nebeutoc'h"
192+msgstr "Purañ ho tisoc'hoù"
209
193
210−#: qml/Dash/GenericScopeView.qml:567
194+#: qml/Dash/FiltersPopover.qml:69
211−msgid "See all"
195+msgid "Reset"
212−msgstr "Gwelet pep tra"
196+msgstr "Adderaouekaat"
213
197
214−#: qml/Dash/GenericScopeView.qml:629
198+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
199+msgid "Show less"
200+msgstr ""
201+
202+#: qml/Dash/GenericScopeView.qml:579
203+msgid "Show all"
204+msgstr ""
205+
206+#: qml/Dash/GenericScopeView.qml:636
215msgctxt "Label: Hint for dash search line edit"
207msgctxt "Label: Hint for dash search line edit"
216msgid "Search"
208msgid "Search"
217msgstr "Klask"
209msgstr "Klask"
218
210
211+#: qml/Dash/PageHeaderExtraPanel.qml:55
212+msgid "Recent Searches"
213+msgstr "Enklaskoù graet nevez zo"
214+
215+#: qml/Dash/PageHeaderExtraPanel.qml:66
216+msgid "Clear All"
217+msgstr "Diverkañ pep tra"
218+
219#: qml/Dash/Previews/PreviewActionCombo.qml:35
219#: qml/Dash/Previews/PreviewActionCombo.qml:35
220msgid "More..."
220msgid "More..."
221msgstr "Muioc'h..."
221msgstr "Muioc'h..."
@@ -283,11 +283,11 @@ msgstr "Esaeañ en-dro"
283msgid "Tap to unlock"
283msgid "Tap to unlock"
284msgstr "Pouezañ evit dibrennañ"
284msgstr "Pouezañ evit dibrennañ"
285
285
286−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
286+#: qml/Greeter/NarrowView.qml:54
287msgid "Sorry, incorrect passphrase."
287msgid "Sorry, incorrect passphrase."
288msgstr "Siwazh, frazenn-dremen direizh"
288msgstr "Siwazh, frazenn-dremen direizh"
289
289
290−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
290+#: qml/Greeter/NarrowView.qml:55
291msgid "Sorry, incorrect passcode."
291msgid "Sorry, incorrect passcode."
292msgstr "Siwazh, kod-tremen direizh"
292msgstr "Siwazh, kod-tremen direizh"
293
293
@@ -316,7 +316,7 @@ msgstr ""
316msgid "Enter %1"
316msgid "Enter %1"
317msgstr "Merkañ %1"
317msgstr "Merkañ %1"
318
318
319−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
319+#: qml/Greeter/NarrowView.qml:117
320msgid "Enter passphrase"
320msgid "Enter passphrase"
321msgstr "Merkañ ar frazenn-dremen"
321msgstr "Merkañ ar frazenn-dremen"
322
322
@@ -342,7 +342,7 @@ msgstr "Adverkañ, mar plij"
342msgid "Sorry, incorrect passcode"
342msgid "Sorry, incorrect passcode"
343msgstr "Digarezit, kod-tremen direizh"
343msgstr "Digarezit, kod-tremen direizh"
344
344
345−#: qml/Notifications/NotificationMenuItemFactory.qml:129
345+#: qml/Notifications/NotificationMenuItemFactory.qml:124
346msgid "Show password"
346msgid "Show password"
347msgstr "Diskouez ar ger-tremen"
347msgstr "Diskouez ar ger-tremen"
348
348
@@ -354,62 +354,62 @@ msgstr "Touchit evit distreiñ d'ar bellgomzadenn..."
354msgid "Conference"
354msgid "Conference"
355msgstr "Kendiviz"
355msgstr "Kendiviz"
356
356
357−#: qml/Panel/Indicators/MenuItemFactory.qml:752
357+#: qml/Panel/Indicators/MenuItemFactory.qml:762
358msgid "Nothing is playing"
358msgid "Nothing is playing"
359msgstr "Ne lenner netra bremañ"
359msgstr "Ne lenner netra bremañ"
360
360
361−#: qml/Panel/Indicators/MenuItemFactory.qml:881
361+#: qml/Panel/Indicators/MenuItemFactory.qml:891
362#, qt-format
362#, qt-format
363msgid "%1 hour"
363msgid "%1 hour"
364msgid_plural "%1 hours"
364msgid_plural "%1 hours"
365msgstr[0] "%1 eur"
365msgstr[0] "%1 eur"
366msgstr[1] "%1 eur"
366msgstr[1] "%1 eur"
367
367
368−#: qml/Panel/Indicators/MenuItemFactory.qml:885
368+#: qml/Panel/Indicators/MenuItemFactory.qml:895
369#, qt-format
369#, qt-format
370msgid "%1 minute"
370msgid "%1 minute"
371msgid_plural "%1 minutes"
371msgid_plural "%1 minutes"
372msgstr[0] "%1 vunutenn"
372msgstr[0] "%1 vunutenn"
373msgstr[1] "%1 vunutenn"
373msgstr[1] "%1 vunutenn"
374
374
375−#: qml/Panel/Indicators/MenuItemFactory.qml:890
375+#: qml/Panel/Indicators/MenuItemFactory.qml:900
376#, qt-format
376#, qt-format
377msgid "%1 second"
377msgid "%1 second"
378msgid_plural "%1 seconds"
378msgid_plural "%1 seconds"
379msgstr[0] "%1 eilenn"
379msgstr[0] "%1 eilenn"
380msgstr[1] "%1 eilenn"
380msgstr[1] "%1 eilenn"
381
381
382−#: qml/Panel/Indicators/MenuItemFactory.qml:893
382+#: qml/Panel/Indicators/MenuItemFactory.qml:903
383msgid "0 seconds"
383msgid "0 seconds"
384msgstr "0 eilenn"
384msgstr "0 eilenn"
385
385
386#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
386#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
387−#: qml/Panel/Indicators/MenuItemFactory.qml:895
387+#: qml/Panel/Indicators/MenuItemFactory.qml:905
388#, qt-format
388#, qt-format
389msgid "%1 remaining"
389msgid "%1 remaining"
390msgstr "%1 o chom"
390msgstr "%1 o chom"
391
391
392−#: qml/Panel/Indicators/MenuItemFactory.qml:901
392+#: qml/Panel/Indicators/MenuItemFactory.qml:911
393msgid "In queue…"
393msgid "In queue…"
394msgstr "El lostennad..."
394msgstr "El lostennad..."
395
395
396−#: qml/Panel/Indicators/MenuItemFactory.qml:905
396+#: qml/Panel/Indicators/MenuItemFactory.qml:915
397msgid "Downloading"
397msgid "Downloading"
398msgstr "O pellgargañ"
398msgstr "O pellgargañ"
399
399
400−#: qml/Panel/Indicators/MenuItemFactory.qml:907
400+#: qml/Panel/Indicators/MenuItemFactory.qml:917
401msgid "Paused, tap to resume"
401msgid "Paused, tap to resume"
402msgstr "Ehanet, touchit evit adkregiñ"
402msgstr "Ehanet, touchit evit adkregiñ"
403
403
404−#: qml/Panel/Indicators/MenuItemFactory.qml:909
404+#: qml/Panel/Indicators/MenuItemFactory.qml:919
405msgid "Canceled"
405msgid "Canceled"
406msgstr "Nullet"
406msgstr "Nullet"
407
407
408−#: qml/Panel/Indicators/MenuItemFactory.qml:911
408+#: qml/Panel/Indicators/MenuItemFactory.qml:921
409msgid "Finished"
409msgid "Finished"
410msgstr "Echu"
410msgstr "Echu"
411
411
412−#: qml/Panel/Indicators/MenuItemFactory.qml:913
412+#: qml/Panel/Indicators/MenuItemFactory.qml:923
413msgid "Failed, tap to retry"
413msgid "Failed, tap to retry"
414msgstr "C'hwitet, touchit evit adkregiñ"
414msgstr "C'hwitet, touchit evit adkregiñ"
415
415
@@ -429,251 +429,324 @@ msgctxt "Button: Call back on phone"
429msgid "Call back"
429msgid "Call back"
430msgstr "Gervel en-dro"
430msgstr "Gervel en-dro"
431
431
432−#: qml/Tutorial/TutorialBottom.qml:28
432+#: qml/Stages/SideStage.qml:76
433−msgid "Open special menus"
433+msgid "Drag using 3 fingers any application from one window to the other"
434−msgstr "Digeriñ al lañserioù ispisial"
434+msgstr ""
435−
436−#: qml/Tutorial/TutorialBottom.qml:29
437−msgid "Swipe up from the bottom edge."
438−msgstr "Riklit war-du an nec'h adalek an traoñ"
439
435
440−#: qml/Tutorial/TutorialBottomFinish.qml:24
436+#: qml/Tutorial/TutorialBottom.qml:78
441−msgid "This action does different things for different apps"
437+msgid "Swipe up to add a contact"
442−msgstr "An ober-mañ a ra meur a dra evit meur a arload"
438+msgstr "Riklit d'an nec'h evit ouzhpennañ un darempred"
443
439
444−#: qml/Tutorial/TutorialBottomFinish.qml:25
440+#: qml/Tutorial/TutorialBottom.qml:80
445−msgid "Tap here to finish."
441+msgid "Swipe up for favorite calculations"
446−msgstr "Pouezañ amañ evit echuiñ."
442+msgstr ""
447
443
448−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
444+#: qml/Tutorial/TutorialBottom.qml:82
449−#: qml/Tutorial/TutorialRight.qml:144
445+msgid "Swipe up for recent calls"
450−msgid "Tap here to continue."
446+msgstr ""
451−msgstr "Pouzañ amañ evit kenderc'hel"
452
447
453−#: qml/Tutorial/TutorialLeft.qml:26
448+#: qml/Tutorial/TutorialBottom.qml:84
454−msgid "Open the launcher"
449+msgid "Swipe up to create a message"
455−msgstr "Digeriñ al lañser"
450+msgstr "Riklit d'an nec'h evit krouiñ ur gemennadenn"
456
451
457−#: qml/Tutorial/TutorialLeft.qml:27
452+#: qml/Tutorial/TutorialBottom.qml:85
458−msgid "Short swipe from the left edge."
453+msgid "Swipe up to manage the app"
459−msgstr "Riklik dousik adalek ar bord kleiz."
454+msgstr ""
460
455
461−#: qml/Tutorial/TutorialLeftFinish.qml:24
456+#: qml/Tutorial/TutorialLeftLong.qml:47
462−msgid "These are the shortcuts to favorite apps"
457+msgid "Long swipe from the left edge to open the Today scope"
463−msgstr "Berradennoù war-du hoc'h arloadoù gwellañ-deuet eo ar re-mañ"
458+msgstr ""
464
459
465−#: qml/Tutorial/TutorialPage.qml:178
460+#: qml/Tutorial/TutorialLeft.qml:47
466−msgid "You almost got it!"
461+msgid "Swipe from the left edge to open the launcher"
467−msgstr "Deuet eo ganeoc'h pe dost ?"
462+msgstr ""
468
463
469−#: qml/Tutorial/TutorialPage.qml:195
464+#: qml/Tutorial/TutorialRight.qml:55
470−msgid "Try again."
465+msgid "Push your mouse against the right edge to view your open apps"
471−msgstr "Esaeit en-dro."
466+msgstr ""
472
467
473−#: qml/Tutorial/TutorialRight.qml:31
468+#: qml/Tutorial/TutorialRight.qml:56
474−msgid "To view open apps"
469+msgid "Short or long swipe from the right edge to view your open apps"
475−msgstr "Evit gwelet an arloadoù digor"
470+msgstr ""
476
471
477−#: qml/Tutorial/TutorialRight.qml:32
472+#: qml/Tutorial/TutorialTop.qml:53
478−msgid "Long swipe from the right edge."
473+msgid "Swipe from the top right edge to open the notification bar"
479−msgstr "Riklit pell adalek ar bord dehoù."
474+msgstr ""
480
475
481−#: qml/Tutorial/TutorialRight.qml:122
476+#: qml/Tutorial/TutorialTop.qml:54
482−msgid "View all your running tasks."
477+msgid "Swipe from the top edge to open the notification bar"
483−msgstr "Gwelet an holl drevelloù a ya en-dro."
478+msgstr ""
484
479
485−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
486msgctxt "Button: Go back one page in the Wizard"
481msgctxt "Button: Go back one page in the Wizard"
487msgid "Back"
482msgid "Back"
488msgstr "Distreiñ"
483msgstr "Distreiñ"
489
484
490#: qml/Wizard/Pages/10-welcome.qml:27
485#: qml/Wizard/Pages/10-welcome.qml:27
491−msgid "Hi!"
486+msgid "Language"
492−msgstr "Salud deoc'h !"
487+msgstr "Yezh"
493−
488+
489+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
490+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
491+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492+#: qml/Wizard/Pages/75-report-check.qml:84
493+#: qml/Wizard/Pages/passcode-desktop.qml:124
494+#: qml/Wizard/Pages/password-set.qml:141
495+msgid "Next"
496+msgstr "War-lerc'h"
497+
494−#: qml/Wizard/Pages/10-welcome.qml:44
498+#: qml/Wizard/Pages/30-wifi.qml:29
495−msgid "Welcome to your Ubuntu device."
499+msgid "Connect to Wi‑Fi"
496−msgstr "Donemat en ho penveg Ubuntu"
500+msgstr "Kevreañ ouzh ar Wi-Fi"
497−
498−#: qml/Wizard/Pages/10-welcome.qml:52
499−msgid "Let’s get started."
500−msgstr "Krogomp ganti."
501
501
502−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
502+#: qml/Wizard/Pages/30-wifi.qml:130
503−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
503+msgid "Connected"
504−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
505−#: qml/Wizard/Pages/passwd-set.qml:90
506−msgid "Continue"
507−msgstr "Kenderc'hel"
504+msgstr "Kevreet"
508
505
509−#: qml/Wizard/Pages/20-sim.qml:25
506+#: qml/Wizard/Pages/30-wifi.qml:163
510−msgid "Add a SIM card and restart your device"
507+msgid "Available Wi-Fi networks"
511−msgstr "Lakait ur gartenn SIM hag adloc'hit ho penveg"
508+msgstr "Rouedadoù Wi-Fi da gaout"
512
509
513−#: qml/Wizard/Pages/20-sim.qml:59
510+#: qml/Wizard/Pages/30-wifi.qml:164
514−msgid "Without it, you won’t be able to make calls or use text messaging."
511+msgid "No available Wi-Fi networks"
515−msgstr "Ne vioc'h ket evit pellgomz pe kas kemennadennoù hepti."
512+msgstr "N'eus ket rouedadoù Wi-Fi da gaout"
516
513
517−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
514+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515+#: qml/Wizard/Pages/sim.qml:101
518msgid "Skip"
516msgid "Skip"
519msgstr "Tremen hebiou"
517msgstr "Tremen hebiou"
520
518
521−#: qml/Wizard/Pages/30-passwd-type.qml:39
519+#: qml/Wizard/Pages/40-location.qml:27
522−msgid "Lock security"
520+msgid "Location Services"
523−msgstr "Surentez ar prennañ"
521+msgstr "Servijoù lec'hiañ"
524
522
525−#: qml/Wizard/Pages/30-passwd-type.qml:79
523+#: qml/Wizard/Pages/40-location.qml:83
526−msgid "Please select how you’d like to unlock your device."
524+msgid ""
527−msgstr "Diuzit penaos e fell deoc'h dibrennañ ho penveg, mar plij."
525+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
526+"(recommended)"
527+msgstr ""
528
528
529−#: qml/Wizard/Pages/30-passwd-type.qml:102
529+#: qml/Wizard/Pages/40-location.qml:105
530−msgctxt "Label: Type of security method"
530+#, qt-format
531−msgid "Swipe"
531+msgid "By selecting this option you agree to the Nokia HERE %1."
532−msgstr "Riklañ"
532+msgstr ""
533
533
534−#: qml/Wizard/Pages/30-passwd-type.qml:103
534+#: qml/Wizard/Pages/40-location.qml:106
535−msgctxt "Label: Description of security method"
535+msgctxt "part of: Nokia HERE terms and conditions"
536−msgid "No security"
536+msgid "terms and conditions"
537−msgstr "Tamm surentez ebet"
537+msgstr "penndivizoù implij"
538
538
539−#: qml/Wizard/Pages/30-passwd-type.qml:105
539+#: qml/Wizard/Pages/40-location.qml:160
540+msgid "GPS only"
541+msgstr "GPS hepken"
542+
543+#: qml/Wizard/Pages/40-location.qml:214
544+msgid "Don't use my location"
545+msgstr "Arabat implijout ma lec'h"
546+
547+#: qml/Wizard/Pages/40-location.qml:260
548+msgid "You can change it later in System Settings."
549+msgstr ""
550+
551+#: qml/Wizard/Pages/50-timezone.qml:29
552+msgid "Time Zone"
553+msgstr "Gwerzhid-eur"
554+
555+#: qml/Wizard/Pages/50-timezone.qml:178
556+msgid "Enter your city"
557+msgstr "Skrivit ho kêr"
558+
559+#: qml/Wizard/Pages/60-account.qml:24
560+msgid "Personalize Your Device"
561+msgstr "Personelaat ho penveg"
562+
563+#: qml/Wizard/Pages/60-account.qml:48
564+msgid "Preferred Name"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/70-passwd-type.qml:39
568+msgid "Lock Screen"
569+msgstr "Prennañ ar skramm"
570+
571+#: qml/Wizard/Pages/70-passwd-type.qml:101
540msgctxt "Label: Type of security method"
572msgctxt "Label: Type of security method"
541−msgid "Passcode"
573+msgid "Create new password"
542−msgstr "Kod-tremen"
574+msgstr "Krouiñ ur ger-tremen nevez"
543
575
544−#: qml/Wizard/Pages/30-passwd-type.qml:106
576+#: qml/Wizard/Pages/70-passwd-type.qml:103
545−msgctxt "Label: Description of security method"
577+msgctxt "Label: Type of security method"
546−msgid "4 digits only"
578+msgid "Create passcode (numbers only)"
547−msgstr "4 sifr hepken"
579+msgstr "Krouiñ ur c'hod (difroù hepken)"
548
580
549−#: qml/Wizard/Pages/30-passwd-type.qml:108
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
550msgctxt "Label: Type of security method"
582msgctxt "Label: Type of security method"
551−msgid "Passphrase"
583+msgid "No lock code"
552−msgstr "Frazenn-dremen"
584+msgstr "N'eus kod prennañ ebet"
553
585
554−#: qml/Wizard/Pages/30-passwd-type.qml:109
586+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
555−msgctxt "Label: Description of security method"
587+msgid "Privacy Policy"
556−msgid "Numbers and letters"
588+msgstr "Reolennoù prevezded"
557−msgstr "Sifroù ha lizherennoù"
558
589
559−#: qml/Wizard/Pages/40-wifi.qml:29
590+#: qml/Wizard/Pages/75-report-check.qml:26
560−msgid "Connect to Wi‑Fi"
591+msgid "Help Us Improve"
561−msgstr "Kevreañ ouzh ar Wi-Fi"
592+msgstr "Sikourit ac'hanomp da wellaat"
562
593
563−#: qml/Wizard/Pages/40-wifi.qml:168
594+#: qml/Wizard/Pages/75-report-check.qml:59
564−msgid "Available networks…"
595+msgid "Improve system performance by sending us crashes and error reports."
565−msgstr "Rouedadoù a c'haller kaout..."
596+msgstr ""
566
597
567−#: qml/Wizard/Pages/40-wifi.qml:169
598+#: qml/Wizard/Pages/75-report-check.qml:60
568−msgid "No available networks."
599+msgid "Privacy policy"
569−msgstr "N'eus rouedad ebet da gaout."
600+msgstr "Reolennoù buhez prevez"
570
601
571−#: qml/Wizard/Pages/50-location.qml:27
602+#: qml/Wizard/Pages/80-finished.qml:89
572−msgid "Location"
603+msgid "Welcome to Ubuntu"
573−msgstr "Lec'h"
604+msgstr "Donemat en Ubuntu"
574
605
575−#: qml/Wizard/Pages/50-location.qml:62
606+#: qml/Wizard/Pages/80-finished.qml:104
576−msgid "Let the phone detect your location:"
607+msgid "You are ready to use your device now"
577−msgstr "Lezel ar pellgomzer da gavout pelec'h emaoc'h :"
608+msgstr "Bremañ oc'h prest da implijout ho penveg"
578
609
579−#: qml/Wizard/Pages/50-location.qml:69
610+#: qml/Wizard/Pages/80-finished.qml:124
580−msgid "Using GPS only (less accurate)"
611+msgid "Get Started"
581−msgstr "Implijout ar GPS hepken (n'eo ket ken resis)"
612+msgstr "Kregiñ ganti"
613+
614+#: qml/Wizard/Pages/here-terms.qml:25
615+msgid "Terms & Conditions"
616+msgstr "Penndivizoù implij"
582
617
583−#: qml/Wizard/Pages/50-location.qml:86
618+#: qml/Wizard/Pages/here-terms.qml:69
584−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
619+msgid "Your device uses positioning technologies provided by HERE."
585msgstr ""
620msgstr ""
586−"Implijout ar GPS, Wi-Fi dizanv pe titouroù ar rouedad kelligel (aliet)"
587
621
588−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
589−#: qml/Wizard/Pages/50-location.qml:103
622+#: qml/Wizard/Pages/here-terms.qml:81
590msgid ""
623msgid ""
591−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
624+"To provide you with positioning services and to improve their quality, HERE "
592−"conditions</a>."
625+"collects information about nearby cell towers and Wi-Fi hotspots around your "
626+"current location whenever your position is being found."
593msgstr ""
627msgstr ""
594−"Pa ziuzit an dibarzh-mañ ez asantit da <a href='#'>zivizoù implij</a> Nokia."
595
628
596−#: qml/Wizard/Pages/50-location.qml:112
629+#: qml/Wizard/Pages/here-terms.qml:93
597−msgid "Not at all"
630+msgid ""
631+"The information collected is used to analyze the service and to improve the "
632+"use of service, but not to identify you personally."
598−msgstr "Tamm ebet"
633+msgstr ""
599
634
600−#: qml/Wizard/Pages/50-location.qml:124
635+#: qml/Wizard/Pages/here-terms.qml:106
601−msgid "You can change your mind later in <b>System Settings</b>."
636+#, qt-format
637+msgid "By continuing, you agree to the HERE platform %1 and %2."
602msgstr ""
638msgstr ""
603−"Gallout a rit cheñch soñj diwezhatoc'h en <b>Arventennoù ar reizhad</b>."
604
639
605−#: qml/Wizard/Pages/60-reporting.qml:26
640+#: qml/Wizard/Pages/here-terms.qml:107
606−msgid "Improving your experience"
641+msgid "Service Terms"
607−msgstr "Gwellaat ho skiant-prenet"
642+msgstr "Divizoù servij"
608
643
609−#: qml/Wizard/Pages/60-reporting.qml:46
644+#: qml/Wizard/Pages/passcode-confirm.qml:43
645+#: qml/Wizard/Pages/passcode-desktop.qml:80
610−msgid ""
646+msgid "Confirm passcode"
611−"Your phone is set up to automatically report errors to Canonical and its "
647+msgstr "Kadarnaat ar c'hod-tremen"
612−"partners, the makers of the operating system."
613−msgstr ""
614−"Arventennet eo ho pellgomzer evit titourañ ent emgefre ar fazioù da "
615−"gCanonical ha d'e gevelerien, ar re o deus savet ar reizhiad korvoiñ."
616
648
617−#: qml/Wizard/Pages/60-reporting.qml:53
649+#: qml/Wizard/Pages/passcode-confirm.qml:45
618−msgid ""
650+msgid "Incorrect passcode."
619−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
620−"Privacy</b>"
621−msgstr ""
651+msgstr "Kod direizh"
622−"Gallout a ra bezañ diweredekaet e-barzh <b>Arventennoù ar reizhiad</b> "
623−"dindan <b>Surentez &amp; Prevezded</b>"
624
652
625−#: qml/Wizard/Pages/80-finished.qml:24
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
626−msgid "All done"
654+msgctxt "Enter the passcode again"
627−msgstr "Echu penn-da-benn"
655+msgid "Please re-enter."
656+msgstr "Skrivit adarre, mar plij."
628
657
629−#: qml/Wizard/Pages/80-finished.qml:39
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
630−msgid "Nice work!"
659+msgid "Lock Screen Passcode"
631−msgstr "Gwellat labour !"
660+msgstr "Kod da brennañ ar skramm"
632
661
633−#: qml/Wizard/Pages/80-finished.qml:46
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
634−msgid "Your device is now ready to use."
663+msgid "Enter 4 numbers to setup your passcode"
635−msgstr "Prest eo ho penveg da vezañ implijet bremañ."
664+msgstr "Skrivit 4 sifr evit lakaat ho kod"
636
665
637−#: qml/Wizard/Pages/80-finished.qml:53
666+#: qml/Wizard/Pages/passcode-desktop.qml:65
638−msgid "Finish"
667+#: qml/Wizard/Pages/passcode-set.qml:54
668+msgid "Choose passcode"
639−msgstr "Echuiñ"
669+msgstr "Choaz ur c'hod"
640
670
641−#: qml/Wizard/Pages/here-terms.qml:27
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
642−msgid "Terms & Conditions"
672+msgid "Passcode too short"
643−msgstr "Penndivizoù implij"
673+msgstr "Kod re verr"
644
674
645−#: qml/Wizard/Pages/passwd-confirm.qml:49
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
646−msgid "Confirm passphrase"
676+msgid "Passcodes match"
647−msgstr "Kadarnaat ar frazenn-dremen"
677+msgstr "klotañ a ra ar c'hodoù an eil gant egile"
648
678
649−#: qml/Wizard/Pages/passwd-confirm.qml:50
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
650−msgid "Confirm passcode"
680+msgid "Passcodes do not match"
651−msgstr "Kadarnaat ar c'hod-tremen"
681+msgstr "Ne glot ket ar c'hodoù an eil gant egile"
652
682
653−#: qml/Wizard/Pages/passwd-confirm.qml:53
683+#: qml/Wizard/Pages/passcode-set.qml:62
654−#: qml/Wizard/Pages/passwd-confirm.qml:54
684+msgid "Passcode must be 4 characters long"
655−msgid "Please try again."
685+msgstr "4 arouezenn a rank bezañ ar c'hod"
656−msgstr "Esaeit en-dro, mar plij."
657
686
658−#: qml/Wizard/Pages/passwd-set.qml:61
687+#: qml/Wizard/Pages/password-set.qml:30
659−msgid "Choose your passcode"
688+msgid "Lock Screen Password"
660−msgstr "Choaz ho kod-tremen"
689+msgstr "Ger-tremen da brennañ ar skramm"
661
690
662−#: qml/Wizard/Pages/passwd-set.qml:68
691+#: qml/Wizard/Pages/password-set.qml:61
663−msgid "Passphrase must be 4 characters long"
692+msgid "Enter at least 8 characters"
664−msgstr "4 arouezenn a rank bezañ er frazenn-dremen"
693+msgstr "Skrivit 8 arouezenn da vihanañ"
665
694
666−#. Translators: This is the arrow for "Back" buttons
667−#: qml/Wizard/StackButton.qml:39
695+#: qml/Wizard/Pages/password-set.qml:73
668−#, qt-format
669−msgid "〈 %1"
696+msgid "Choose password"
670−msgstr "〈 %1"
697+msgstr "Choaz ur ger-tremen"
671
698
672−#. Translators: This is the arrow for "Forward" buttons
699+#: qml/Wizard/Pages/password-set.qml:103
700+msgid "Confirm password"
701+msgstr "Kadarnaat ar ger-tremen"
702+
703+#: qml/Wizard/Pages/sim.qml:27
704+msgid "No SIM card installed"
705+msgstr "N'eus kartenn SIM ebet"
706+
707+#: qml/Wizard/Pages/sim.qml:54
708+msgid "SIM card added"
709+msgstr "Lakaet ez eus bet ur gartenn SIM"
710+
711+#: qml/Wizard/Pages/sim.qml:55
712+msgid "You must restart the device to access the mobile network."
713+msgstr ""
714+
715+#: qml/Wizard/Pages/sim.qml:59
716+msgid "Restart"
717+msgstr "Adloc'hañ"
718+
673−#: qml/Wizard/StackButton.qml:42
719+#: qml/Wizard/Pages/sim.qml:78
674−#, qt-format
720+msgid "You won’t be able to make calls or use text messaging without a SIM."
675−msgid "%1 〉"
721+msgstr ""
676−msgstr "%1 〉"
722+
723+#: qml/Wizard/Pages/sim.qml:90
724+msgid "To proceed with no SIM tap Skip."
725+msgstr ""
726+
727+#: qml/Wizard/PasswordMeter.qml:87
728+msgid "Passwords match"
729+msgstr "Klotañ a ra ar gerioù-tremen an eil gant egile"
730+
731+#: qml/Wizard/PasswordMeter.qml:89
732+msgid "Passwords do not match"
733+msgstr "Ne glot ket ar gerioù-tremen"
734+
735+#: qml/Wizard/PasswordMeter.qml:93
736+msgid "Strong password"
737+msgstr "Ger-tremen sur"
738+
739+#: qml/Wizard/PasswordMeter.qml:95
740+msgid "Fair password"
741+msgstr "Ger-tremen reizh"
742+
743+#: qml/Wizard/PasswordMeter.qml:97
744+msgid "Weak password"
745+msgstr "Ger-tremen diasur"
746+
747+#: qml/Wizard/PasswordMeter.qml:99
748+msgid "Very weak password"
749+msgstr "Ger-tremen diasur-kenañ"
677
750
678#~ msgid "Close"
751#~ msgid "Close"
679#~ msgstr "Serriñ"
752#~ msgstr "Serriñ"
@@ -690,6 +763,9 @@ msgstr "%1 〉"
690#~ msgid "Right edge"
763#~ msgid "Right edge"
691#~ msgstr "Bord dehoù"
764#~ msgstr "Bord dehoù"
692
765
766+#~ msgid "See less"
767+#~ msgstr "Gwelet nebeutoc'h"
768+
693#~ msgid ""
769#~ msgid ""
694#~ "You have now mastered the edge gestures and can start using the "
770#~ "You have now mastered the edge gestures and can start using the "
695#~ "phone<br><br>Tap on the screen to start"
771#~ "phone<br><br>Tap on the screen to start"
@@ -735,6 +811,9 @@ msgstr "%1 〉"
735#~ msgid "Type or say a command"
811#~ msgid "Type or say a command"
736#~ msgstr "Skrivit pe lavarit un urzhiad"
812#~ msgstr "Skrivit pe lavarit un urzhiad"
737
813
814+#~ msgid "See all"
815+#~ msgstr "Gwelet pep tra"
816+
738#~ msgid "Store"
817#~ msgid "Store"
739#~ msgstr "Enrollañ"
818#~ msgstr "Enrollañ"
740
819
@@ -762,6 +841,9 @@ msgstr "%1 〉"
762#~ msgid "Log out"
841#~ msgid "Log out"
763#~ msgstr "Digevreañ"
842#~ msgstr "Digevreañ"
764
843
844+#~ msgid "Are you sure you want to shut down?"
845+#~ msgstr "Ha sur oc'h e fell deoc'h lazhañ ar benveg ?"
846+
765#~ msgid "Reboot"
847#~ msgid "Reboot"
766#~ msgstr "Adloc'hañ"
848#~ msgstr "Adloc'hañ"
767
849
@@ -771,25 +853,193 @@ msgstr "%1 〉"
771#~ msgid "Settings"
853#~ msgid "Settings"
772#~ msgstr "Arventennoù"
854#~ msgstr "Arventennoù"
773
855
774−#~ msgid "Restart"
775−#~ msgstr "Adloc'hañ"
776−
777#~ msgid "Manage Scopes"
856#~ msgid "Manage Scopes"
778#~ msgstr "Merañ ar c'hefluskerioù enklask"
857#~ msgstr "Merañ ar c'hefluskerioù enklask"
779
858
780#~ msgid "Please re-enter"
859#~ msgid "Please re-enter"
781#~ msgstr "Adverkañ, mar plij"
860#~ msgstr "Adverkañ, mar plij"
782
861
862+#~ msgid "Lock security"
863+#~ msgstr "Surentez ar prennañ"
864+
865+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
866+#~ msgstr "Ne vioc'h ket evit pellgomz pe kas kemennadennoù hepti."
867+
868+#~ msgid "Add a SIM card and restart your device"
869+#~ msgstr "Lakait ur gartenn SIM hag adloc'hit ho penveg"
870+
783#~ msgid "Please select how you’d like to unlock your phone."
871#~ msgid "Please select how you’d like to unlock your phone."
784#~ msgstr ""
872#~ msgstr ""
785#~ "Diuzit e peseurt mod e fell deoc'h dibrennañ ho pellgomzer, mar plij."
873#~ "Diuzit e peseurt mod e fell deoc'h dibrennañ ho pellgomzer, mar plij."
786
874
875+#~ msgid "Hi!"
876+#~ msgstr "Salud deoc'h !"
877+
878+#~ msgid "Let’s get started."
879+#~ msgstr "Krogomp ganti."
880+
881+#~ msgid "Continue"
882+#~ msgstr "Kenderc'hel"
883+
787#~ msgid "Welcome to your Ubuntu phone."
884#~ msgid "Welcome to your Ubuntu phone."
788#~ msgstr "Deuet-mat oc'h en ho pellgomzer Ubuntu."
885#~ msgstr "Deuet-mat oc'h en ho pellgomzer Ubuntu."
789
886
887+#~ msgid "Available networks…"
888+#~ msgstr "Rouedadoù a c'haller kaout..."
889+
890+#~ msgid "No available networks."
891+#~ msgstr "N'eus rouedad ebet da gaout."
892+
893+#~ msgid "Location"
894+#~ msgstr "Lec'h"
895+
896+#~ msgid "You can change your mind later in <b>System Settings</b>."
897+#~ msgstr ""
898+#~ "Gallout a rit cheñch soñj diwezhatoc'h en <b>Arventennoù ar reizhad</b>."
899+
900+#~ msgid ""
901+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
902+#~ "Privacy</b>"
903+#~ msgstr ""
904+#~ "Gallout a ra bezañ diweredekaet e-barzh <b>Arventennoù ar reizhiad</b> "
905+#~ "dindan <b>Surentez &amp; Prevezded</b>"
906+
907+#~ msgid ""
908+#~ "Your phone is set up to automatically report errors to Canonical and its "
909+#~ "partners, the makers of the operating system."
910+#~ msgstr ""
911+#~ "Arventennet eo ho pellgomzer evit titourañ ent emgefre ar fazioù da "
912+#~ "gCanonical ha d'e gevelerien, ar re o deus savet ar reizhiad korvoiñ."
913+
914+#~ msgid "All done"
915+#~ msgstr "Echu penn-da-benn"
916+
917+#~ msgid "Improving your experience"
918+#~ msgstr "Gwellaat ho skiant-prenet"
919+
920+#~ msgid ""
921+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
922+#~ "conditions</a>."
923+#~ msgstr ""
924+#~ "Pa ziuzit an dibarzh-mañ ez asantit da <a href='#'>zivizoù implij</a> Nokia."
925+
926+#~ msgid "Not at all"
927+#~ msgstr "Tamm ebet"
928+
929+#~ msgid "Let the phone detect your location:"
930+#~ msgstr "Lezel ar pellgomzer da gavout pelec'h emaoc'h :"
931+
932+#~ msgid "Using GPS only (less accurate)"
933+#~ msgstr "Implijout ar GPS hepken (n'eo ket ken resis)"
934+
935+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
936+#~ msgstr ""
937+#~ "Implijout ar GPS, Wi-Fi dizanv pe titouroù ar rouedad kelligel (aliet)"
938+
939+#~ msgid "Nice work!"
940+#~ msgstr "Gwellat labour !"
941+
942+#~ msgid "Finish"
943+#~ msgstr "Echuiñ"
944+
945+#~ msgid "Confirm passphrase"
946+#~ msgstr "Kadarnaat ar frazenn-dremen"
947+
948+#, qt-format
949+#~ msgid "〈 %1"
950+#~ msgstr "〈 %1"
951+
952+#~ msgid "Choose your passcode"
953+#~ msgstr "Choaz ho kod-tremen"
954+
955+#~ msgid "Passphrase must be 4 characters long"
956+#~ msgstr "4 arouezenn a rank bezañ er frazenn-dremen"
957+
958+#~ msgid "Please try again."
959+#~ msgstr "Esaeit en-dro, mar plij."
960+
790#~ msgid "Your phone is now ready to use."
961#~ msgid "Your phone is now ready to use."
791#~ msgstr "Prest eo ho pellgomzer da vezañ implijet bremañ."
962#~ msgstr "Prest eo ho pellgomzer da vezañ implijet bremañ."
792
963
964+#, qt-format
965+#~ msgid "%1 〉"
966+#~ msgstr "%1 〉"
967+
968+#~ msgid "This action does different things for different apps"
969+#~ msgstr "An ober-mañ a ra meur a dra evit meur a arload"
970+
971+#~ msgid "Open special menus"
972+#~ msgstr "Digeriñ al lañserioù ispisial"
973+
974+#~ msgid "Tap here to finish."
975+#~ msgstr "Pouezañ amañ evit echuiñ."
976+
977+#~ msgid "To view open apps"
978+#~ msgstr "Evit gwelet an arloadoù digor"
979+
980+#~ msgid "Long swipe from the right edge."
981+#~ msgstr "Riklit pell adalek ar bord dehoù."
982+
983+#~ msgid "View all your running tasks."
984+#~ msgstr "Gwelet an holl drevelloù a ya en-dro."
985+
986+#~ msgid "Try again."
987+#~ msgstr "Esaeit en-dro."
988+
989+#~ msgid "You almost got it!"
990+#~ msgstr "Deuet eo ganeoc'h pe dost ?"
991+
992+#~ msgid "Short swipe from the left edge."
993+#~ msgstr "Riklik dousik adalek ar bord kleiz."
994+
995+#~ msgid "Open the launcher"
996+#~ msgstr "Digeriñ al lañser"
997+
998+#~ msgid "Tap here to continue."
999+#~ msgstr "Pouzañ amañ evit kenderc'hel"
1000+
1001+#~ msgid "These are the shortcuts to favorite apps"
1002+#~ msgstr "Berradennoù war-du hoc'h arloadoù gwellañ-deuet eo ar re-mañ"
1003+
1004+#~ msgid "Swipe up from the bottom edge."
1005+#~ msgstr "Riklit war-du an nec'h adalek an traoñ"
1006+
1007+#~ msgctxt "Button: Shut down the system"
1008+#~ msgid "Shut down"
1009+#~ msgstr "Lazhañ ar benveg"
1010+
1011+#~ msgctxt "Title: Reboot/Shut down dialog"
1012+#~ msgid "Shut down"
1013+#~ msgstr "Lazhañ ar benveg"
1014+
1015+#~ msgctxt "Button: Reboot the system"
1016+#~ msgid "Reboot"
1017+#~ msgstr "Adloc'hañ"
1018+
1019+#~ msgctxt "Label: Type of security method"
1020+#~ msgid "Passcode"
1021+#~ msgstr "Kod-tremen"
1022+
1023+#~ msgctxt "Label: Description of security method"
1024+#~ msgid "No security"
1025+#~ msgstr "Tamm surentez ebet"
1026+
1027+#~ msgctxt "Label: Type of security method"
1028+#~ msgid "Swipe"
1029+#~ msgstr "Riklañ"
1030+
1031+#~ msgctxt "Label: Description of security method"
1032+#~ msgid "4 digits only"
1033+#~ msgstr "4 sifr hepken"
1034+
1035+#~ msgctxt "Label: Type of security method"
1036+#~ msgid "Passphrase"
1037+#~ msgstr "Frazenn-dremen"
1038+
1039+#~ msgctxt "Label: Description of security method"
1040+#~ msgid "Numbers and letters"
1041+#~ msgstr "Sifroù ha lizherennoù"
1042+
793#~ msgid "%a %d %b %H:%M"
1043#~ msgid "%a %d %b %H:%M"
794#~ msgstr "%a %b %d %H:%M"
1044#~ msgstr "%a %b %d %H:%M"
795
1045
@@ -822,14 +1072,3 @@ msgstr "%1 〉"
822
1072
823#~ msgid "Call back"
1073#~ msgid "Call back"
824#~ msgstr "Gervel en-dro"
1074#~ msgstr "Gervel en-dro"
825−
826−#~ msgid ""
827−#~ "Your device is now connected to an external display. Use this screen as a "
828−#~ "touch pad to interact with the mouse."
829−#~ msgstr ""
830−#~ "N'eo ket kevreet ho penveg ouzh un diskwel diavaez. Implijit ar skramm-mañ "
831−#~ "da douch evit ober gant al logodenn."
832−
833−#~ msgid "Re-dock, save your work and close these apps to continue."
834−#~ msgstr ""
835−#~ "Adlugit, enrollit ho labour ha serrit an arloadoù-mañ evit kenderc'hel."
po/bs.po+487−239
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2015-12-01 20:06+0000\n"
11"PO-Revision-Date: 2015-12-01 20:06+0000\n"
12"Last-Translator: Kenan Gutić <Unknown>\n"
12"Last-Translator: Kenan Gutić <Unknown>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-03-13 05:50+0000\n"
19+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
20−"X-Generator: Launchpad (build 17939)\n"
20+"X-Generator: Launchpad (build 17995)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -75,53 +75,35 @@ msgctxt "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:194
78+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
79−#: qml/Components/Dialogs.qml:253
79+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
80+#: qml/Wizard/Pages/passcode-set.qml:32
80msgid "Cancel"
81msgid "Cancel"
81msgstr "Otkaži"
82msgstr "Otkaži"
82
83
83#: qml/Components/Dialogs.qml:173
84#: qml/Components/Dialogs.qml:173
84−msgctxt "Title: Reboot/Shut down dialog"
85−msgid "Shut down"
86−msgstr "Ugasi"
87−
88−#: qml/Components/Dialogs.qml:174
89−msgid "Are you sure you want to shut down?"
90−msgstr "Da li ste sigurni da želite ugasiti?"
91−
92−#: qml/Components/Dialogs.qml:176
93−msgctxt "Button: Reboot the system"
94−msgid "Reboot"
95−msgstr "Ponovo pokreni"
96−
97−#: qml/Components/Dialogs.qml:185
98−msgctxt "Button: Shut down the system"
99−msgid "Shut down"
100−msgstr "Gašenje sistema"
101−
102−#: qml/Components/Dialogs.qml:207
103msgctxt "Title: Reboot dialog"
85msgctxt "Title: Reboot dialog"
104msgid "Reboot"
86msgid "Reboot"
105msgstr "Ponovo pokreni"
87msgstr "Ponovo pokreni"
106
88
107−#: qml/Components/Dialogs.qml:208
89+#: qml/Components/Dialogs.qml:174
108msgid "Are you sure you want to reboot?"
90msgid "Are you sure you want to reboot?"
109msgstr "Da li ste sigurni da želite ponovo pokrenuti?"
91msgstr "Da li ste sigurni da želite ponovo pokrenuti?"
110
92
111−#: qml/Components/Dialogs.qml:210
93+#: qml/Components/Dialogs.qml:176
112msgid "No"
94msgid "No"
113msgstr "Ne"
95msgstr "Ne"
114
96
115−#: qml/Components/Dialogs.qml:217
97+#: qml/Components/Dialogs.qml:182
116msgid "Yes"
98msgid "Yes"
117msgstr "Da"
99msgstr "Da"
118
100
119−#: qml/Components/Dialogs.qml:232
101+#: qml/Components/Dialogs.qml:197
120msgctxt "Title: Power off/Restart dialog"
102msgctxt "Title: Power off/Restart dialog"
121msgid "Power"
103msgid "Power"
122msgstr "Napajanje"
104msgstr "Napajanje"
123
105
124−#: qml/Components/Dialogs.qml:233
106+#: qml/Components/Dialogs.qml:198
125msgid ""
107msgid ""
126"Are you sure you would like\n"
108"Are you sure you would like\n"
127"to power off?"
109"to power off?"
@@ -129,12 +111,12 @@ msgstr ""
129"Da li ste sigurni da želite\n"
111"Da li ste sigurni da želite\n"
130"isključiti?"
112"isključiti?"
131
113
132−#: qml/Components/Dialogs.qml:235
114+#: qml/Components/Dialogs.qml:200
133msgctxt "Button: Power off the system"
115msgctxt "Button: Power off the system"
134msgid "Power off"
116msgid "Power off"
135msgstr "Isključi"
117msgstr "Isključi"
136
118
137−#: qml/Components/Dialogs.qml:244
119+#: qml/Components/Dialogs.qml:209
138msgctxt "Button: Restart the system"
120msgctxt "Button: Restart the system"
139msgid "Restart"
121msgid "Restart"
140msgstr "Restartuj"
122msgstr "Restartuj"
@@ -179,42 +161,58 @@ msgstr "Ponovo poveži sada"
179msgid "Close all"
161msgid "Close all"
180msgstr "Zatvori sve"
162msgstr "Zatvori sve"
181
163
182−#: qml/Dash/DashPageHeader.qml:270
164+#: qml/Dash/DashPageHeader.qml:337
183msgctxt "Button: Open the Ubuntu Store"
165msgctxt "Button: Open the Ubuntu Store"
184msgid "Store"
166msgid "Store"
185msgstr "Trgovina"
167msgstr "Trgovina"
186
168
187−#: qml/Dash/DashPageHeader.qml:277
169+#: qml/Dash/DashPageHeader.qml:344
188msgctxt "Button: Start a search in the current dash scope"
170msgctxt "Button: Start a search in the current dash scope"
189msgid "Search"
171msgid "Search"
190msgstr "Pretraživanje"
172msgstr "Pretraživanje"
191
173
192−#: qml/Dash/DashPageHeader.qml:287
174+#: qml/Dash/DashPageHeader.qml:354
193msgctxt "Button: Show the current dash scope settings"
175msgctxt "Button: Show the current dash scope settings"
194msgid "Settings"
176msgid "Settings"
195msgstr "Podešavanja"
177msgstr "Podešavanja"
196
178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198msgid "Remove from Favorites"
180msgid "Remove from Favorites"
199msgstr "Ukloni iz Omiljenih"
181msgstr "Ukloni iz Omiljenih"
200
182
201−#: qml/Dash/DashPageHeader.qml:294
183+#: qml/Dash/DashPageHeader.qml:361
202msgid "Add to Favorites"
184msgid "Add to Favorites"
203msgstr "Dodaj u Omiljene"
185msgstr "Dodaj u Omiljene"
204
186
187+#: qml/Dash/FiltersPopover.qml:60
188+msgid "Refine your results"
189+msgstr ""
190+
191+#: qml/Dash/FiltersPopover.qml:69
192+msgid "Reset"
193+msgstr ""
194+
205−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
206−msgid "See less"
196+msgid "Show less"
207−msgstr "Pogledati manje"
197+msgstr ""
208
198
209−#: qml/Dash/GenericScopeView.qml:567
199+#: qml/Dash/GenericScopeView.qml:579
210−msgid "See all"
200+msgid "Show all"
211−msgstr "Pogledati sve"
201+msgstr ""
212
202
213−#: qml/Dash/GenericScopeView.qml:629
203+#: qml/Dash/GenericScopeView.qml:636
214msgctxt "Label: Hint for dash search line edit"
204msgctxt "Label: Hint for dash search line edit"
215msgid "Search"
205msgid "Search"
216msgstr "Pretraži"
206msgstr "Pretraži"
217
207
208+#: qml/Dash/PageHeaderExtraPanel.qml:55
209+msgid "Recent Searches"
210+msgstr ""
211+
212+#: qml/Dash/PageHeaderExtraPanel.qml:66
213+msgid "Clear All"
214+msgstr ""
215+
218#: qml/Dash/Previews/PreviewActionCombo.qml:35
216#: qml/Dash/Previews/PreviewActionCombo.qml:35
219msgid "More..."
217msgid "More..."
220msgstr "Više..."
218msgstr "Više..."
@@ -282,11 +280,11 @@ msgstr "Ponovi"
282msgid "Tap to unlock"
280msgid "Tap to unlock"
283msgstr "Kucnite za otključavanje"
281msgstr "Kucnite za otključavanje"
284
282
285−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
283+#: qml/Greeter/NarrowView.qml:54
286msgid "Sorry, incorrect passphrase."
284msgid "Sorry, incorrect passphrase."
287msgstr "Izvinite, pogrešna pristupna fraza."
285msgstr "Izvinite, pogrešna pristupna fraza."
288
286
289−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
287+#: qml/Greeter/NarrowView.qml:55
290msgid "Sorry, incorrect passcode."
288msgid "Sorry, incorrect passcode."
291msgstr "Izvinite, pogrešan pristupni kod."
289msgstr "Izvinite, pogrešan pristupni kod."
292
290
@@ -315,7 +313,7 @@ msgstr ""
315msgid "Enter %1"
313msgid "Enter %1"
316msgstr "Unesite %1"
314msgstr "Unesite %1"
317
315
318−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
316+#: qml/Greeter/NarrowView.qml:117
319msgid "Enter passphrase"
317msgid "Enter passphrase"
320msgstr "Unesite propusnu frazu"
318msgstr "Unesite propusnu frazu"
321
319
@@ -341,7 +339,7 @@ msgstr "Molim ponovo unesite"
341msgid "Sorry, incorrect passcode"
339msgid "Sorry, incorrect passcode"
342msgstr "Izvinite, netačan pristupni kod"
340msgstr "Izvinite, netačan pristupni kod"
343
341
344−#: qml/Notifications/NotificationMenuItemFactory.qml:129
342+#: qml/Notifications/NotificationMenuItemFactory.qml:124
345msgid "Show password"
343msgid "Show password"
346msgstr "Prikaži šifru"
344msgstr "Prikaži šifru"
347
345
@@ -353,11 +351,11 @@ msgstr "Kucnite da uzvratite poziv..."
353msgid "Conference"
351msgid "Conference"
354msgstr "Savjetovanje"
352msgstr "Savjetovanje"
355
353
356−#: qml/Panel/Indicators/MenuItemFactory.qml:752
354+#: qml/Panel/Indicators/MenuItemFactory.qml:762
357msgid "Nothing is playing"
355msgid "Nothing is playing"
358msgstr "Ništa nije pokrenuto"
356msgstr "Ništa nije pokrenuto"
359
357
360−#: qml/Panel/Indicators/MenuItemFactory.qml:881
358+#: qml/Panel/Indicators/MenuItemFactory.qml:891
361#, qt-format
359#, qt-format
362msgid "%1 hour"
360msgid "%1 hour"
363msgid_plural "%1 hours"
361msgid_plural "%1 hours"
@@ -365,7 +363,7 @@ msgstr[0] "%1 sat"
365msgstr[1] "%1 sata"
363msgstr[1] "%1 sata"
366msgstr[2] "%1 sati"
364msgstr[2] "%1 sati"
367
365
368−#: qml/Panel/Indicators/MenuItemFactory.qml:885
366+#: qml/Panel/Indicators/MenuItemFactory.qml:895
369#, qt-format
367#, qt-format
370msgid "%1 minute"
368msgid "%1 minute"
371msgid_plural "%1 minutes"
369msgid_plural "%1 minutes"
@@ -373,7 +371,7 @@ msgstr[0] "%1 minut"
373msgstr[1] "%1 minuta"
371msgstr[1] "%1 minuta"
374msgstr[2] "%1 minuta"
372msgstr[2] "%1 minuta"
375
373
376−#: qml/Panel/Indicators/MenuItemFactory.qml:890
374+#: qml/Panel/Indicators/MenuItemFactory.qml:900
377#, qt-format
375#, qt-format
378msgid "%1 second"
376msgid "%1 second"
379msgid_plural "%1 seconds"
377msgid_plural "%1 seconds"
@@ -381,37 +379,37 @@ msgstr[0] "%1 sekunda"
381msgstr[1] "%1 sekunde"
379msgstr[1] "%1 sekunde"
382msgstr[2] "%1 sekundi"
380msgstr[2] "%1 sekundi"
383
381
384−#: qml/Panel/Indicators/MenuItemFactory.qml:893
382+#: qml/Panel/Indicators/MenuItemFactory.qml:903
385msgid "0 seconds"
383msgid "0 seconds"
386msgstr "0 sekundi"
384msgstr "0 sekundi"
387
385
388#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
386#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
389−#: qml/Panel/Indicators/MenuItemFactory.qml:895
387+#: qml/Panel/Indicators/MenuItemFactory.qml:905
390#, qt-format
388#, qt-format
391msgid "%1 remaining"
389msgid "%1 remaining"
392msgstr "%1 preostalo"
390msgstr "%1 preostalo"
393
391
394−#: qml/Panel/Indicators/MenuItemFactory.qml:901
392+#: qml/Panel/Indicators/MenuItemFactory.qml:911
395msgid "In queue…"
393msgid "In queue…"
396msgstr "U red..."
394msgstr "U red..."
397
395
398−#: qml/Panel/Indicators/MenuItemFactory.qml:905
396+#: qml/Panel/Indicators/MenuItemFactory.qml:915
399msgid "Downloading"
397msgid "Downloading"
400msgstr "Preuzimanje"
398msgstr "Preuzimanje"
401
399
402−#: qml/Panel/Indicators/MenuItemFactory.qml:907
400+#: qml/Panel/Indicators/MenuItemFactory.qml:917
403msgid "Paused, tap to resume"
401msgid "Paused, tap to resume"
404msgstr "Pauzirano, kucnuti za nastavak"
402msgstr "Pauzirano, kucnuti za nastavak"
405
403
406−#: qml/Panel/Indicators/MenuItemFactory.qml:909
404+#: qml/Panel/Indicators/MenuItemFactory.qml:919
407msgid "Canceled"
405msgid "Canceled"
408msgstr "Otkazano"
406msgstr "Otkazano"
409
407
410−#: qml/Panel/Indicators/MenuItemFactory.qml:911
408+#: qml/Panel/Indicators/MenuItemFactory.qml:921
411msgid "Finished"
409msgid "Finished"
412msgstr "Završeno"
410msgstr "Završeno"
413
411
414−#: qml/Panel/Indicators/MenuItemFactory.qml:913
412+#: qml/Panel/Indicators/MenuItemFactory.qml:923
415msgid "Failed, tap to retry"
413msgid "Failed, tap to retry"
416msgstr "Neuspjelo, kucnuti za ponavljanje"
414msgstr "Neuspjelo, kucnuti za ponavljanje"
417
415
@@ -431,252 +429,324 @@ msgctxt "Button: Call back on phone"
431msgid "Call back"
429msgid "Call back"
432msgstr "Uzvrati poziv"
430msgstr "Uzvrati poziv"
433
431
434−#: qml/Tutorial/TutorialBottom.qml:28
432+#: qml/Stages/SideStage.qml:76
435−msgid "Open special menus"
433+msgid "Drag using 3 fingers any application from one window to the other"
436−msgstr "Otvorite posebne menije"
434+msgstr ""
437−
438−#: qml/Tutorial/TutorialBottom.qml:29
439−msgid "Swipe up from the bottom edge."
440−msgstr "Prevucite od donje ivice."
441
435
442−#: qml/Tutorial/TutorialBottomFinish.qml:24
436+#: qml/Tutorial/TutorialBottom.qml:78
443−msgid "This action does different things for different apps"
437+msgid "Swipe up to add a contact"
444−msgstr "Ova radnja čini različite stvari za različite aplikacije"
438+msgstr ""
445
439
446−#: qml/Tutorial/TutorialBottomFinish.qml:25
440+#: qml/Tutorial/TutorialBottom.qml:80
447−msgid "Tap here to finish."
441+msgid "Swipe up for favorite calculations"
448−msgstr "Kucnite ovdje za kraj."
442+msgstr ""
449
443
450−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
444+#: qml/Tutorial/TutorialBottom.qml:82
451−#: qml/Tutorial/TutorialRight.qml:144
445+msgid "Swipe up for recent calls"
452−msgid "Tap here to continue."
446+msgstr ""
453−msgstr "Kucnite ovdje za nastavak."
454
447
455−#: qml/Tutorial/TutorialLeft.qml:26
448+#: qml/Tutorial/TutorialBottom.qml:84
456−msgid "Open the launcher"
449+msgid "Swipe up to create a message"
457−msgstr "Otvorite pokretač"
450+msgstr ""
458
451
459−#: qml/Tutorial/TutorialLeft.qml:27
452+#: qml/Tutorial/TutorialBottom.qml:85
460−msgid "Short swipe from the left edge."
453+msgid "Swipe up to manage the app"
461−msgstr "Kratko prevlačenje od lijeve ivice."
454+msgstr ""
462
455
463−#: qml/Tutorial/TutorialLeftFinish.qml:24
456+#: qml/Tutorial/TutorialLeftLong.qml:47
464−msgid "These are the shortcuts to favorite apps"
457+msgid "Long swipe from the left edge to open the Today scope"
465−msgstr "Ovo su kratice za omiljene aplikacije"
458+msgstr ""
466
459
467−#: qml/Tutorial/TutorialPage.qml:178
460+#: qml/Tutorial/TutorialLeft.qml:47
468−msgid "You almost got it!"
461+msgid "Swipe from the left edge to open the launcher"
469−msgstr "Skoro ste uspjeli!"
462+msgstr ""
470
463
471−#: qml/Tutorial/TutorialPage.qml:195
464+#: qml/Tutorial/TutorialRight.qml:55
472−msgid "Try again."
465+msgid "Push your mouse against the right edge to view your open apps"
473−msgstr "Pokušajte ponovo."
466+msgstr ""
474
467
475−#: qml/Tutorial/TutorialRight.qml:31
468+#: qml/Tutorial/TutorialRight.qml:56
476−msgid "To view open apps"
469+msgid "Short or long swipe from the right edge to view your open apps"
477−msgstr "Za pregled pokrenutih aplikacija"
470+msgstr ""
478
471
479−#: qml/Tutorial/TutorialRight.qml:32
472+#: qml/Tutorial/TutorialTop.qml:53
480−msgid "Long swipe from the right edge."
473+msgid "Swipe from the top right edge to open the notification bar"
481−msgstr "Dugo prevlačenje od desne ivice."
474+msgstr ""
482
475
483−#: qml/Tutorial/TutorialRight.qml:122
476+#: qml/Tutorial/TutorialTop.qml:54
484−msgid "View all your running tasks."
477+msgid "Swipe from the top edge to open the notification bar"
485−msgstr "Pogledajte sve pokrenute zadatke."
478+msgstr ""
486
479
487−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
488msgctxt "Button: Go back one page in the Wizard"
481msgctxt "Button: Go back one page in the Wizard"
489msgid "Back"
482msgid "Back"
490msgstr "Nazad"
483msgstr "Nazad"
491
484
492#: qml/Wizard/Pages/10-welcome.qml:27
485#: qml/Wizard/Pages/10-welcome.qml:27
493−msgid "Hi!"
486+msgid "Language"
494−msgstr "Ćao!"
487+msgstr ""
495
488
496−#: qml/Wizard/Pages/10-welcome.qml:44
489+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
497−msgid "Welcome to your Ubuntu device."
490+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
491+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492+#: qml/Wizard/Pages/75-report-check.qml:84
493+#: qml/Wizard/Pages/passcode-desktop.qml:124
494+#: qml/Wizard/Pages/password-set.qml:141
495+msgid "Next"
498msgstr ""
496msgstr ""
499
497
500−#: qml/Wizard/Pages/10-welcome.qml:52
498+#: qml/Wizard/Pages/30-wifi.qml:29
501−msgid "Let’s get started."
499+msgid "Connect to Wi‑Fi"
502−msgstr "Započnimo"
500+msgstr "Povezati na Wi-Fi"
503
501
504−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
502+#: qml/Wizard/Pages/30-wifi.qml:130
505−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
503+msgid "Connected"
506−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
507−#: qml/Wizard/Pages/passwd-set.qml:90
508−msgid "Continue"
509−msgstr "Nastavite"
504+msgstr ""
510
505
511−#: qml/Wizard/Pages/20-sim.qml:25
506+#: qml/Wizard/Pages/30-wifi.qml:163
512−msgid "Add a SIM card and restart your device"
507+msgid "Available Wi-Fi networks"
513−msgstr "Dodajte SIM karticu i restartujte vaš uređaj"
508+msgstr ""
514
509
515−#: qml/Wizard/Pages/20-sim.qml:59
510+#: qml/Wizard/Pages/30-wifi.qml:164
516−msgid "Without it, you won’t be able to make calls or use text messaging."
511+msgid "No available Wi-Fi networks"
517msgstr ""
512msgstr ""
518−"Bez nje, nećete biti u mogućnosti da uspostavite pozive ili koristite "
519−"tekstualne poruke."
520
513
521−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
514+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515+#: qml/Wizard/Pages/sim.qml:101
522msgid "Skip"
516msgid "Skip"
523msgstr "Preskočite"
517msgstr "Preskočite"
524
518
525−#: qml/Wizard/Pages/30-passwd-type.qml:39
519+#: qml/Wizard/Pages/40-location.qml:27
526−msgid "Lock security"
520+msgid "Location Services"
527−msgstr "Sigurnost zaključavanja"
521+msgstr ""
528
522
529−#: qml/Wizard/Pages/30-passwd-type.qml:79
523+#: qml/Wizard/Pages/40-location.qml:83
530−msgid "Please select how you’d like to unlock your device."
524+msgid ""
525+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
526+"(recommended)"
531msgstr ""
527msgstr ""
532
528
533−#: qml/Wizard/Pages/30-passwd-type.qml:102
529+#: qml/Wizard/Pages/40-location.qml:105
534−msgctxt "Label: Type of security method"
530+#, qt-format
535−msgid "Swipe"
531+msgid "By selecting this option you agree to the Nokia HERE %1."
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:106
535+msgctxt "part of: Nokia HERE terms and conditions"
536+msgid "terms and conditions"
536−msgstr "Prevlačenje"
537+msgstr ""
538+
539+#: qml/Wizard/Pages/40-location.qml:160
540+msgid "GPS only"
541+msgstr ""
537
542
538−#: qml/Wizard/Pages/30-passwd-type.qml:103
543+#: qml/Wizard/Pages/40-location.qml:214
539−msgctxt "Label: Description of security method"
544+msgid "Don't use my location"
540−msgid "No security"
545+msgstr ""
546+
547+#: qml/Wizard/Pages/40-location.qml:260
548+msgid "You can change it later in System Settings."
541−msgstr "Bez sigurnosti"
549+msgstr ""
542
550
543−#: qml/Wizard/Pages/30-passwd-type.qml:105
551+#: qml/Wizard/Pages/50-timezone.qml:29
552+msgid "Time Zone"
553+msgstr ""
554+
555+#: qml/Wizard/Pages/50-timezone.qml:178
556+msgid "Enter your city"
557+msgstr ""
558+
559+#: qml/Wizard/Pages/60-account.qml:24
560+msgid "Personalize Your Device"
561+msgstr ""
562+
563+#: qml/Wizard/Pages/60-account.qml:48
564+msgid "Preferred Name"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/70-passwd-type.qml:39
568+msgid "Lock Screen"
569+msgstr ""
570+
571+#: qml/Wizard/Pages/70-passwd-type.qml:101
544msgctxt "Label: Type of security method"
572msgctxt "Label: Type of security method"
545−msgid "Passcode"
573+msgid "Create new password"
546−msgstr "Pristupni kod"
574+msgstr ""
547
575
548−#: qml/Wizard/Pages/30-passwd-type.qml:106
576+#: qml/Wizard/Pages/70-passwd-type.qml:103
549−msgctxt "Label: Description of security method"
577+msgctxt "Label: Type of security method"
550−msgid "4 digits only"
578+msgid "Create passcode (numbers only)"
551−msgstr "samo 4 cifre"
579+msgstr ""
552
580
553−#: qml/Wizard/Pages/30-passwd-type.qml:108
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
554msgctxt "Label: Type of security method"
582msgctxt "Label: Type of security method"
555−msgid "Passphrase"
583+msgid "No lock code"
556−msgstr "Pristupna fraza"
584+msgstr ""
557
585
558−#: qml/Wizard/Pages/30-passwd-type.qml:109
586+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
559−msgctxt "Label: Description of security method"
587+msgid "Privacy Policy"
560−msgid "Numbers and letters"
561−msgstr "Brojevi i slova"
588+msgstr ""
562
589
563−#: qml/Wizard/Pages/40-wifi.qml:29
590+#: qml/Wizard/Pages/75-report-check.qml:26
564−msgid "Connect to Wi‑Fi"
591+msgid "Help Us Improve"
565−msgstr "Povezati na Wi-Fi"
592+msgstr ""
566
593
567−#: qml/Wizard/Pages/40-wifi.qml:168
594+#: qml/Wizard/Pages/75-report-check.qml:59
568−msgid "Available networks…"
595+msgid "Improve system performance by sending us crashes and error reports."
569−msgstr "Dostupne mreže..."
596+msgstr ""
570
597
571−#: qml/Wizard/Pages/40-wifi.qml:169
598+#: qml/Wizard/Pages/75-report-check.qml:60
572−msgid "No available networks."
599+msgid "Privacy policy"
573−msgstr "Nema dostupnih mreža."
600+msgstr ""
574
601
575−#: qml/Wizard/Pages/50-location.qml:27
602+#: qml/Wizard/Pages/80-finished.qml:89
576−msgid "Location"
603+msgid "Welcome to Ubuntu"
577−msgstr "Lokacija"
604+msgstr ""
578
605
579−#: qml/Wizard/Pages/50-location.qml:62
606+#: qml/Wizard/Pages/80-finished.qml:104
580−msgid "Let the phone detect your location:"
607+msgid "You are ready to use your device now"
581−msgstr "Dopustite da telefon otkrije Vašu lokaciju:"
608+msgstr ""
582
609
583−#: qml/Wizard/Pages/50-location.qml:69
610+#: qml/Wizard/Pages/80-finished.qml:124
584−msgid "Using GPS only (less accurate)"
611+msgid "Get Started"
585−msgstr "Samo pomoću GPS (manje precizno)"
612+msgstr ""
586
613
587−#: qml/Wizard/Pages/50-location.qml:86
614+#: qml/Wizard/Pages/here-terms.qml:25
588−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
615+msgid "Terms & Conditions"
589−msgstr "Pomoću GPS, anonimnog Wi-Fi i podataka mobilne mreže (preporučeno)"
616+msgstr "Uslovi i odredbe"
590
617
591−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
618+#: qml/Wizard/Pages/here-terms.qml:69
619+msgid "Your device uses positioning technologies provided by HERE."
620+msgstr ""
621+
592−#: qml/Wizard/Pages/50-location.qml:103
622+#: qml/Wizard/Pages/here-terms.qml:81
593msgid ""
623msgid ""
594−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
624+"To provide you with positioning services and to improve their quality, HERE "
595−"conditions</a>."
625+"collects information about nearby cell towers and Wi-Fi hotspots around your "
626+"current location whenever your position is being found."
596msgstr ""
627msgstr ""
597−"Birajući ovu opciju prihvatate za Nokia OVDJE <a href='#'>terms and "
598−"conditions</a>."
599
628
600−#: qml/Wizard/Pages/50-location.qml:112
629+#: qml/Wizard/Pages/here-terms.qml:93
601−msgid "Not at all"
630+msgid ""
631+"The information collected is used to analyze the service and to improve the "
632+"use of service, but not to identify you personally."
602−msgstr "Nipošto"
633+msgstr ""
603
634
604−#: qml/Wizard/Pages/50-location.qml:124
635+#: qml/Wizard/Pages/here-terms.qml:106
605−msgid "You can change your mind later in <b>System Settings</b>."
636+#, qt-format
606−msgstr "Možete se predomisliti kasnije u <b>System Settings</b>."
637+msgid "By continuing, you agree to the HERE platform %1 and %2."
638+msgstr ""
607
639
608−#: qml/Wizard/Pages/60-reporting.qml:26
640+#: qml/Wizard/Pages/here-terms.qml:107
609−msgid "Improving your experience"
641+msgid "Service Terms"
610−msgstr "Poboljšavajući vaše iskustvo"
642+msgstr ""
611
643
612−#: qml/Wizard/Pages/60-reporting.qml:46
644+#: qml/Wizard/Pages/passcode-confirm.qml:43
645+#: qml/Wizard/Pages/passcode-desktop.qml:80
613−msgid ""
646+msgid "Confirm passcode"
614−"Your phone is set up to automatically report errors to Canonical and its "
647+msgstr "Potvrdi pristupni kod"
615−"partners, the makers of the operating system."
648+
649+#: qml/Wizard/Pages/passcode-confirm.qml:45
650+msgid "Incorrect passcode."
616msgstr ""
651msgstr ""
617−"Vaš telefon je podešen da automatski prijavljuje greške Canonical i "
618−"njegovim partnerima, tvorcima operativnog sistema."
619
652
620−#: qml/Wizard/Pages/60-reporting.qml:53
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
654+msgctxt "Enter the passcode again"
621−msgid ""
655+msgid "Please re-enter."
622−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
623−"Privacy</b>"
624msgstr ""
656msgstr ""
625−"Ovo može biti isključeno u <b>System Settings</b> under <b>Security &amp; "
626−"Privacy</b>"
627
657
628−#: qml/Wizard/Pages/80-finished.qml:24
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
629−msgid "All done"
659+msgid "Lock Screen Passcode"
630−msgstr "Sve urađeno"
660+msgstr ""
631
661
632−#: qml/Wizard/Pages/80-finished.qml:39
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
633−msgid "Nice work!"
663+msgid "Enter 4 numbers to setup your passcode"
634−msgstr "Dobro urađeno!"
664+msgstr ""
635
665
636−#: qml/Wizard/Pages/80-finished.qml:46
666+#: qml/Wizard/Pages/passcode-desktop.qml:65
637−msgid "Your device is now ready to use."
667+#: qml/Wizard/Pages/passcode-set.qml:54
668+msgid "Choose passcode"
638msgstr ""
669msgstr ""
639
670
640−#: qml/Wizard/Pages/80-finished.qml:53
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
641−msgid "Finish"
672+msgid "Passcode too short"
642−msgstr "Završiti"
673+msgstr ""
643
674
644−#: qml/Wizard/Pages/here-terms.qml:27
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
645−msgid "Terms & Conditions"
676+msgid "Passcodes match"
646−msgstr "Uslovi i odredbe"
677+msgstr ""
647
678
648−#: qml/Wizard/Pages/passwd-confirm.qml:49
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
649−msgid "Confirm passphrase"
680+msgid "Passcodes do not match"
650−msgstr "Potvrditi pristupnu rečenicu"
681+msgstr ""
651
682
652−#: qml/Wizard/Pages/passwd-confirm.qml:50
683+#: qml/Wizard/Pages/passcode-set.qml:62
653−msgid "Confirm passcode"
684+msgid "Passcode must be 4 characters long"
654−msgstr "Potvrdi pristupni kod"
685+msgstr ""
686+
687+#: qml/Wizard/Pages/password-set.qml:30
688+msgid "Lock Screen Password"
689+msgstr ""
655
690
656−#: qml/Wizard/Pages/passwd-confirm.qml:53
691+#: qml/Wizard/Pages/password-set.qml:61
657−#: qml/Wizard/Pages/passwd-confirm.qml:54
692+msgid "Enter at least 8 characters"
658−msgid "Please try again."
693+msgstr ""
659−msgstr "Molimo pokušajte ponovo."
660
694
661−#: qml/Wizard/Pages/passwd-set.qml:61
695+#: qml/Wizard/Pages/password-set.qml:73
662−msgid "Choose your passcode"
696+msgid "Choose password"
663−msgstr "Izaberite vaš pristupni kod"
697+msgstr ""
664
698
665−#: qml/Wizard/Pages/passwd-set.qml:68
699+#: qml/Wizard/Pages/password-set.qml:103
666−msgid "Passphrase must be 4 characters long"
700+msgid "Confirm password"
667−msgstr "Pristupna fraza mora sadržavati 4 slova"
701+msgstr ""
668
702
669−#. Translators: This is the arrow for "Back" buttons
670−#: qml/Wizard/StackButton.qml:39
703+#: qml/Wizard/Pages/sim.qml:27
671−#, qt-format
704+msgid "No SIM card installed"
672−msgid "〈 %1"
673−msgstr "〈 %1"
705+msgstr ""
674
706
675−#. Translators: This is the arrow for "Forward" buttons
707+#: qml/Wizard/Pages/sim.qml:54
708+msgid "SIM card added"
709+msgstr ""
710+
711+#: qml/Wizard/Pages/sim.qml:55
712+msgid "You must restart the device to access the mobile network."
713+msgstr ""
714+
715+#: qml/Wizard/Pages/sim.qml:59
716+msgid "Restart"
717+msgstr ""
718+
676−#: qml/Wizard/StackButton.qml:42
719+#: qml/Wizard/Pages/sim.qml:78
677−#, qt-format
720+msgid "You won’t be able to make calls or use text messaging without a SIM."
678−msgid "%1 〉"
721+msgstr ""
722+
723+#: qml/Wizard/Pages/sim.qml:90
724+msgid "To proceed with no SIM tap Skip."
725+msgstr ""
726+
727+#: qml/Wizard/PasswordMeter.qml:87
728+msgid "Passwords match"
729+msgstr ""
730+
731+#: qml/Wizard/PasswordMeter.qml:89
732+msgid "Passwords do not match"
733+msgstr ""
734+
735+#: qml/Wizard/PasswordMeter.qml:93
736+msgid "Strong password"
679−msgstr "%1 〉"
737+msgstr ""
738+
739+#: qml/Wizard/PasswordMeter.qml:95
740+msgid "Fair password"
741+msgstr ""
742+
743+#: qml/Wizard/PasswordMeter.qml:97
744+msgid "Weak password"
745+msgstr ""
746+
747+#: qml/Wizard/PasswordMeter.qml:99
748+msgid "Very weak password"
749+msgstr ""
680
750
681#~ msgid "Top edge"
751#~ msgid "Top edge"
682#~ msgstr "Gornja ivica"
752#~ msgstr "Gornja ivica"
@@ -690,23 +760,201 @@ msgstr "%1 〉"
690#~ msgid "Right edge"
760#~ msgid "Right edge"
691#~ msgstr "Desna ivica"
761#~ msgstr "Desna ivica"
692
762
763+#~ msgid "Are you sure you want to shut down?"
764+#~ msgstr "Da li ste sigurni da želite ugasiti?"
765+
766+#~ msgctxt "Button: Shut down the system"
767+#~ msgid "Shut down"
768+#~ msgstr "Gašenje sistema"
769+
770+#~ msgid "See all"
771+#~ msgstr "Pogledati sve"
772+
773+#~ msgid "See less"
774+#~ msgstr "Pogledati manje"
775+
693#~ msgid "Please re-enter"
776#~ msgid "Please re-enter"
694#~ msgstr "Molimo ponovo unesite"
777#~ msgstr "Molimo ponovo unesite"
695
778
779+#~ msgid "This action does different things for different apps"
780+#~ msgstr "Ova radnja čini različite stvari za različite aplikacije"
781+
696#~ msgid "Unlock SIM"
782#~ msgid "Unlock SIM"
697#~ msgstr "Otključajte SIM"
783#~ msgstr "Otključajte SIM"
698
784
699#~ msgid "Roaming"
785#~ msgid "Roaming"
700#~ msgstr "Roaming"
786#~ msgstr "Roaming"
701
787
788+#~ msgid "Tap here to continue."
789+#~ msgstr "Kucnite ovdje za nastavak."
790+
791+#~ msgid "These are the shortcuts to favorite apps"
792+#~ msgstr "Ovo su kratice za omiljene aplikacije"
793+
794+#~ msgid "Swipe up from the bottom edge."
795+#~ msgstr "Prevucite od donje ivice."
796+
797+#~ msgid "Open special menus"
798+#~ msgstr "Otvorite posebne menije"
799+
800+#~ msgid "Tap here to finish."
801+#~ msgstr "Kucnite ovdje za kraj."
802+
803+#~ msgid "Long swipe from the right edge."
804+#~ msgstr "Dugo prevlačenje od desne ivice."
805+
806+#~ msgid "View all your running tasks."
807+#~ msgstr "Pogledajte sve pokrenute zadatke."
808+
809+#~ msgid "Hi!"
810+#~ msgstr "Ćao!"
811+
702#~ msgid "Welcome to your Ubuntu phone."
812#~ msgid "Welcome to your Ubuntu phone."
703#~ msgstr "Dobrodošli u vaš Ubuntu telefon."
813#~ msgstr "Dobrodošli u vaš Ubuntu telefon."
704
814
815+#~ msgid "To view open apps"
816+#~ msgstr "Za pregled pokrenutih aplikacija"
817+
818+#~ msgid "Try again."
819+#~ msgstr "Pokušajte ponovo."
820+
821+#~ msgid "You almost got it!"
822+#~ msgstr "Skoro ste uspjeli!"
823+
824+#~ msgid "Short swipe from the left edge."
825+#~ msgstr "Kratko prevlačenje od lijeve ivice."
826+
827+#~ msgid "Open the launcher"
828+#~ msgstr "Otvorite pokretač"
829+
830+#~ msgid "Lock security"
831+#~ msgstr "Sigurnost zaključavanja"
832+
833+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
834+#~ msgstr ""
835+#~ "Bez nje, nećete biti u mogućnosti da uspostavite pozive ili koristite "
836+#~ "tekstualne poruke."
837+
838+#~ msgid "Add a SIM card and restart your device"
839+#~ msgstr "Dodajte SIM karticu i restartujte vaš uređaj"
840+
705#~ msgid "Please select how you’d like to unlock your phone."
841#~ msgid "Please select how you’d like to unlock your phone."
706#~ msgstr "Molimo izaberite kako biste željeli da otključavate vaš telefon."
842#~ msgstr "Molimo izaberite kako biste željeli da otključavate vaš telefon."
707
843
844+#~ msgctxt "Label: Description of security method"
845+#~ msgid "No security"
846+#~ msgstr "Bez sigurnosti"
847+
848+#~ msgctxt "Label: Type of security method"
849+#~ msgid "Swipe"
850+#~ msgstr "Prevlačenje"
851+
852+#~ msgctxt "Label: Type of security method"
853+#~ msgid "Passcode"
854+#~ msgstr "Pristupni kod"
855+
856+#~ msgid "Let’s get started."
857+#~ msgstr "Započnimo"
858+
859+#~ msgid "Continue"
860+#~ msgstr "Nastavite"
861+
862+#~ msgctxt "Label: Description of security method"
863+#~ msgid "4 digits only"
864+#~ msgstr "samo 4 cifre"
865+
866+#~ msgid "Let the phone detect your location:"
867+#~ msgstr "Dopustite da telefon otkrije Vašu lokaciju:"
868+
869+#~ msgid "Available networks…"
870+#~ msgstr "Dostupne mreže..."
871+
872+#~ msgid "No available networks."
873+#~ msgstr "Nema dostupnih mreža."
874+
875+#~ msgid "Location"
876+#~ msgstr "Lokacija"
877+
878+#~ msgid "Using GPS only (less accurate)"
879+#~ msgstr "Samo pomoću GPS (manje precizno)"
880+
881+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
882+#~ msgstr "Pomoću GPS, anonimnog Wi-Fi i podataka mobilne mreže (preporučeno)"
883+
884+#~ msgctxt "Label: Description of security method"
885+#~ msgid "Numbers and letters"
886+#~ msgstr "Brojevi i slova"
887+
888+#~ msgid "Improving your experience"
889+#~ msgstr "Poboljšavajući vaše iskustvo"
890+
891+#~ msgid "You can change your mind later in <b>System Settings</b>."
892+#~ msgstr "Možete se predomisliti kasnije u <b>System Settings</b>."
893+
894+#~ msgid ""
895+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
896+#~ "Privacy</b>"
897+#~ msgstr ""
898+#~ "Ovo može biti isključeno u <b>System Settings</b> under <b>Security &amp; "
899+#~ "Privacy</b>"
900+
901+#~ msgid ""
902+#~ "Your phone is set up to automatically report errors to Canonical and its "
903+#~ "partners, the makers of the operating system."
904+#~ msgstr ""
905+#~ "Vaš telefon je podešen da automatski prijavljuje greške Canonical i "
906+#~ "njegovim partnerima, tvorcima operativnog sistema."
907+
908+#~ msgid "Nice work!"
909+#~ msgstr "Dobro urađeno!"
910+
911+#~ msgid "All done"
912+#~ msgstr "Sve urađeno"
913+
914+#~ msgid "Finish"
915+#~ msgstr "Završiti"
916+
917+#~ msgid ""
918+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
919+#~ "conditions</a>."
920+#~ msgstr ""
921+#~ "Birajući ovu opciju prihvatate za Nokia OVDJE <a href='#'>terms and "
922+#~ "conditions</a>."
923+
924+#~ msgid "Not at all"
925+#~ msgstr "Nipošto"
926+
708#~ msgid "Your phone is now ready to use."
927#~ msgid "Your phone is now ready to use."
709#~ msgstr "Vaš telefon je sada spreman za upotrebu."
928#~ msgstr "Vaš telefon je sada spreman za upotrebu."
710
929
711−#~ msgid "Re-dock, save your work and close these apps to continue."
930+#~ msgid "Confirm passphrase"
712−#~ msgstr "Postavi opet, snimi svoj rad i zatvori ove aplikacije za nastavak."
931+#~ msgstr "Potvrditi pristupnu rečenicu"
932+
933+#, qt-format
934+#~ msgid "〈 %1"
935+#~ msgstr "〈 %1"
936+
937+#, qt-format
938+#~ msgid "%1 〉"
939+#~ msgstr "%1 〉"
940+
941+#~ msgid "Choose your passcode"
942+#~ msgstr "Izaberite vaš pristupni kod"
943+
944+#~ msgid "Please try again."
945+#~ msgstr "Molimo pokušajte ponovo."
946+
947+#~ msgid "Passphrase must be 4 characters long"
948+#~ msgstr "Pristupna fraza mora sadržavati 4 slova"
949+
950+#~ msgctxt "Label: Type of security method"
951+#~ msgid "Passphrase"
952+#~ msgstr "Pristupna fraza"
953+
954+#~ msgctxt "Title: Reboot/Shut down dialog"
955+#~ msgid "Shut down"
956+#~ msgstr "Ugasi"
957+
958+#~ msgctxt "Button: Reboot the system"
959+#~ msgid "Reboot"
960+#~ msgstr "Ponovo pokreni"
po/ca.po+488−245
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2015-07-04 09:48+0000\n"
11"PO-Revision-Date: 2015-07-04 09:48+0000\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-03-13 05:50+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -77,53 +77,35 @@ msgctxt "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:194
80+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
81−#: qml/Components/Dialogs.qml:253
81+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
82+#: qml/Wizard/Pages/passcode-set.qml:32
82msgid "Cancel"
83msgid "Cancel"
83msgstr "Cancel·la"
84msgstr "Cancel·la"
84
85
85#: qml/Components/Dialogs.qml:173
86#: qml/Components/Dialogs.qml:173
86−msgctxt "Title: Reboot/Shut down dialog"
87−msgid "Shut down"
88−msgstr "Apaga"
89−
90−#: qml/Components/Dialogs.qml:174
91−msgid "Are you sure you want to shut down?"
92−msgstr "Segur que voleu apagar?"
93−
94−#: qml/Components/Dialogs.qml:176
95−msgctxt "Button: Reboot the system"
96−msgid "Reboot"
97−msgstr "Reinicia"
98−
99−#: qml/Components/Dialogs.qml:185
100−msgctxt "Button: Shut down the system"
101−msgid "Shut down"
102−msgstr "Apaga"
103−
104−#: qml/Components/Dialogs.qml:207
105msgctxt "Title: Reboot dialog"
87msgctxt "Title: Reboot dialog"
106msgid "Reboot"
88msgid "Reboot"
107msgstr "Reinicia"
89msgstr "Reinicia"
108
90
109−#: qml/Components/Dialogs.qml:208
91+#: qml/Components/Dialogs.qml:174
110msgid "Are you sure you want to reboot?"
92msgid "Are you sure you want to reboot?"
111msgstr "Segur que voleu reiniciar?"
93msgstr "Segur que voleu reiniciar?"
112
94
113−#: qml/Components/Dialogs.qml:210
95+#: qml/Components/Dialogs.qml:176
114msgid "No"
96msgid "No"
115msgstr "No"
97msgstr "No"
116
98
117−#: qml/Components/Dialogs.qml:217
99+#: qml/Components/Dialogs.qml:182
118msgid "Yes"
100msgid "Yes"
119msgstr "Sí"
101msgstr "Sí"
120
102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:197
122msgctxt "Title: Power off/Restart dialog"
104msgctxt "Title: Power off/Restart dialog"
123msgid "Power"
105msgid "Power"
124msgstr "Energia"
106msgstr "Energia"
125
107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:198
127msgid ""
109msgid ""
128"Are you sure you would like\n"
110"Are you sure you would like\n"
129"to power off?"
111"to power off?"
@@ -131,12 +113,12 @@ msgstr ""
131"Segur que voleu\n"
113"Segur que voleu\n"
132"apagar?"
114"apagar?"
133
115
134−#: qml/Components/Dialogs.qml:235
116+#: qml/Components/Dialogs.qml:200
135msgctxt "Button: Power off the system"
117msgctxt "Button: Power off the system"
136msgid "Power off"
118msgid "Power off"
137msgstr "Apaga"
119msgstr "Apaga"
138
120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:209
140msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
141msgid "Restart"
123msgid "Restart"
142msgstr "Reinicia"
124msgstr "Reinicia"
@@ -179,42 +161,58 @@ msgstr "Torna a connectar"
179msgid "Close all"
161msgid "Close all"
180msgstr "Tanca-ho tot"
162msgstr "Tanca-ho tot"
181
163
182−#: qml/Dash/DashPageHeader.qml:270
164+#: qml/Dash/DashPageHeader.qml:337
183msgctxt "Button: Open the Ubuntu Store"
165msgctxt "Button: Open the Ubuntu Store"
184msgid "Store"
166msgid "Store"
185msgstr "Botiga"
167msgstr "Botiga"
186
168
187−#: qml/Dash/DashPageHeader.qml:277
169+#: qml/Dash/DashPageHeader.qml:344
188msgctxt "Button: Start a search in the current dash scope"
170msgctxt "Button: Start a search in the current dash scope"
189msgid "Search"
171msgid "Search"
190msgstr "Cerca"
172msgstr "Cerca"
191
173
192−#: qml/Dash/DashPageHeader.qml:287
174+#: qml/Dash/DashPageHeader.qml:354
193msgctxt "Button: Show the current dash scope settings"
175msgctxt "Button: Show the current dash scope settings"
194msgid "Settings"
176msgid "Settings"
195msgstr "Paràmetres"
177msgstr "Paràmetres"
196
178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198msgid "Remove from Favorites"
180msgid "Remove from Favorites"
199msgstr "Suprimeix dels preferits"
181msgstr "Suprimeix dels preferits"
200
182
201−#: qml/Dash/DashPageHeader.qml:294
183+#: qml/Dash/DashPageHeader.qml:361
202msgid "Add to Favorites"
184msgid "Add to Favorites"
203msgstr "Afegeix als preferits"
185msgstr "Afegeix als preferits"
204
186
205−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
187+#: qml/Dash/FiltersPopover.qml:60
188+msgid "Refine your results"
189+msgstr ""
190+
191+#: qml/Dash/FiltersPopover.qml:69
206−msgid "See less"
192+msgid "Reset"
207−msgstr "Mostra'n menys"
193+msgstr ""
208
194
209−#: qml/Dash/GenericScopeView.qml:567
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
210−msgid "See all"
196+msgid "Show less"
211−msgstr "Mostra-ho tot"
197+msgstr ""
212
198
213−#: qml/Dash/GenericScopeView.qml:629
199+#: qml/Dash/GenericScopeView.qml:579
200+msgid "Show all"
201+msgstr ""
202+
203+#: qml/Dash/GenericScopeView.qml:636
214msgctxt "Label: Hint for dash search line edit"
204msgctxt "Label: Hint for dash search line edit"
215msgid "Search"
205msgid "Search"
216msgstr "Cerca"
206msgstr "Cerca"
217
207
208+#: qml/Dash/PageHeaderExtraPanel.qml:55
209+msgid "Recent Searches"
210+msgstr "Cerques recents"
211+
212+#: qml/Dash/PageHeaderExtraPanel.qml:66
213+msgid "Clear All"
214+msgstr "Neteja-ho tot"
215+
218#: qml/Dash/Previews/PreviewActionCombo.qml:35
216#: qml/Dash/Previews/PreviewActionCombo.qml:35
219msgid "More..."
217msgid "More..."
220msgstr "Més..."
218msgstr "Més..."
@@ -282,11 +280,11 @@ msgstr "Torna-ho a provar"
282msgid "Tap to unlock"
280msgid "Tap to unlock"
283msgstr "Feu un toc per desblocar"
281msgstr "Feu un toc per desblocar"
284
282
285−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
283+#: qml/Greeter/NarrowView.qml:54
286msgid "Sorry, incorrect passphrase."
284msgid "Sorry, incorrect passphrase."
287msgstr "La contrasenya és incorrecta"
285msgstr "La contrasenya és incorrecta"
288
286
289−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
287+#: qml/Greeter/NarrowView.qml:55
290msgid "Sorry, incorrect passcode."
288msgid "Sorry, incorrect passcode."
291msgstr "El codi d'accés no és correcte"
289msgstr "El codi d'accés no és correcte"
292
290
@@ -317,7 +315,7 @@ msgstr ""
317msgid "Enter %1"
315msgid "Enter %1"
318msgstr "Introduïu: %1"
316msgstr "Introduïu: %1"
319
317
320−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
318+#: qml/Greeter/NarrowView.qml:117
321msgid "Enter passphrase"
319msgid "Enter passphrase"
322msgstr "Introduïu la contrasenya"
320msgstr "Introduïu la contrasenya"
323
321
@@ -343,7 +341,7 @@ msgstr "Torneu-ho a introduir"
343msgid "Sorry, incorrect passcode"
341msgid "Sorry, incorrect passcode"
344msgstr "El codi d'accés no és correcte"
342msgstr "El codi d'accés no és correcte"
345
343
346−#: qml/Notifications/NotificationMenuItemFactory.qml:129
344+#: qml/Notifications/NotificationMenuItemFactory.qml:124
347msgid "Show password"
345msgid "Show password"
348msgstr "Mostra la contrasenya"
346msgstr "Mostra la contrasenya"
349
347
@@ -355,62 +353,62 @@ msgstr "Feu un toc per tornar a la trucada..."
355msgid "Conference"
353msgid "Conference"
356msgstr "Conferència"
354msgstr "Conferència"
357
355
358−#: qml/Panel/Indicators/MenuItemFactory.qml:752
356+#: qml/Panel/Indicators/MenuItemFactory.qml:762
359msgid "Nothing is playing"
357msgid "Nothing is playing"
360msgstr "No s'està reproduint res"
358msgstr "No s'està reproduint res"
361
359
362−#: qml/Panel/Indicators/MenuItemFactory.qml:881
360+#: qml/Panel/Indicators/MenuItemFactory.qml:891
363#, qt-format
361#, qt-format
364msgid "%1 hour"
362msgid "%1 hour"
365msgid_plural "%1 hours"
363msgid_plural "%1 hours"
366msgstr[0] "%1 hora"
364msgstr[0] "%1 hora"
367msgstr[1] "%1 hores"
365msgstr[1] "%1 hores"
368
366
369−#: qml/Panel/Indicators/MenuItemFactory.qml:885
367+#: qml/Panel/Indicators/MenuItemFactory.qml:895
370#, qt-format
368#, qt-format
371msgid "%1 minute"
369msgid "%1 minute"
372msgid_plural "%1 minutes"
370msgid_plural "%1 minutes"
373msgstr[0] "%1 minut"
371msgstr[0] "%1 minut"
374msgstr[1] "%1 minuts"
372msgstr[1] "%1 minuts"
375
373
376−#: qml/Panel/Indicators/MenuItemFactory.qml:890
374+#: qml/Panel/Indicators/MenuItemFactory.qml:900
377#, qt-format
375#, qt-format
378msgid "%1 second"
376msgid "%1 second"
379msgid_plural "%1 seconds"
377msgid_plural "%1 seconds"
380msgstr[0] "%1 segon"
378msgstr[0] "%1 segon"
381msgstr[1] "%1 segons"
379msgstr[1] "%1 segons"
382
380
383−#: qml/Panel/Indicators/MenuItemFactory.qml:893
381+#: qml/Panel/Indicators/MenuItemFactory.qml:903
384msgid "0 seconds"
382msgid "0 seconds"
385msgstr "0 segons"
383msgstr "0 segons"
386
384
387#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
385#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
388−#: qml/Panel/Indicators/MenuItemFactory.qml:895
386+#: qml/Panel/Indicators/MenuItemFactory.qml:905
389#, qt-format
387#, qt-format
390msgid "%1 remaining"
388msgid "%1 remaining"
391msgstr "Resta %1"
389msgstr "Resta %1"
392
390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:901
391+#: qml/Panel/Indicators/MenuItemFactory.qml:911
394msgid "In queue…"
392msgid "In queue…"
395msgstr "A la cua..."
393msgstr "A la cua..."
396
394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:905
395+#: qml/Panel/Indicators/MenuItemFactory.qml:915
398msgid "Downloading"
396msgid "Downloading"
399msgstr "S'està baixant"
397msgstr "S'està baixant"
400
398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:907
399+#: qml/Panel/Indicators/MenuItemFactory.qml:917
402msgid "Paused, tap to resume"
400msgid "Paused, tap to resume"
403msgstr "En pausa, feu un toc per continuar"
401msgstr "En pausa, feu un toc per continuar"
404
402
405−#: qml/Panel/Indicators/MenuItemFactory.qml:909
403+#: qml/Panel/Indicators/MenuItemFactory.qml:919
406msgid "Canceled"
404msgid "Canceled"
407msgstr "S'ha cancel·lat"
405msgstr "S'ha cancel·lat"
408
406
409−#: qml/Panel/Indicators/MenuItemFactory.qml:911
407+#: qml/Panel/Indicators/MenuItemFactory.qml:921
410msgid "Finished"
408msgid "Finished"
411msgstr "S'ha finalitzat"
409msgstr "S'ha finalitzat"
412
410
413−#: qml/Panel/Indicators/MenuItemFactory.qml:913
411+#: qml/Panel/Indicators/MenuItemFactory.qml:923
414msgid "Failed, tap to retry"
412msgid "Failed, tap to retry"
415msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
413msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
416
414
@@ -430,253 +428,324 @@ msgctxt "Button: Call back on phone"
430msgid "Call back"
428msgid "Call back"
431msgstr "Retorna la trucada"
429msgstr "Retorna la trucada"
432
430
433−#: qml/Tutorial/TutorialBottom.qml:28
431+#: qml/Stages/SideStage.qml:76
434−msgid "Open special menus"
432+msgid "Drag using 3 fingers any application from one window to the other"
435−msgstr "Obre els menús especials"
433+msgstr ""
436−
437−#: qml/Tutorial/TutorialBottom.qml:29
438−msgid "Swipe up from the bottom edge."
439−msgstr "Llisqueu el dit des de la vora inferior."
440
434
441−#: qml/Tutorial/TutorialBottomFinish.qml:24
435+#: qml/Tutorial/TutorialBottom.qml:78
442−msgid "This action does different things for different apps"
436+msgid "Swipe up to add a contact"
443−msgstr "Aquesta acció fa coses diferents depenent de l'aplicació"
437+msgstr ""
444
438
445−#: qml/Tutorial/TutorialBottomFinish.qml:25
439+#: qml/Tutorial/TutorialBottom.qml:80
446−msgid "Tap here to finish."
440+msgid "Swipe up for favorite calculations"
447−msgstr "Feu un toc per finalitzar."
441+msgstr ""
448
442
449−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
443+#: qml/Tutorial/TutorialBottom.qml:82
450−#: qml/Tutorial/TutorialRight.qml:144
444+msgid "Swipe up for recent calls"
451−msgid "Tap here to continue."
445+msgstr ""
452−msgstr "Feu un toc per continuar."
453
446
454−#: qml/Tutorial/TutorialLeft.qml:26
447+#: qml/Tutorial/TutorialBottom.qml:84
455−msgid "Open the launcher"
448+msgid "Swipe up to create a message"
456−msgstr "Obre el llançador"
449+msgstr ""
457
450
458−#: qml/Tutorial/TutorialLeft.qml:27
451+#: qml/Tutorial/TutorialBottom.qml:85
459−msgid "Short swipe from the left edge."
452+msgid "Swipe up to manage the app"
460−msgstr "Lliscament curt des de la vora esquerra."
453+msgstr ""
461
454
462−#: qml/Tutorial/TutorialLeftFinish.qml:24
455+#: qml/Tutorial/TutorialLeftLong.qml:47
463−msgid "These are the shortcuts to favorite apps"
456+msgid "Long swipe from the left edge to open the Today scope"
464−msgstr "Aquestes són les dreceres a les aplicacions preferides"
457+msgstr ""
465
458
466−#: qml/Tutorial/TutorialPage.qml:178
459+#: qml/Tutorial/TutorialLeft.qml:47
467−msgid "You almost got it!"
460+msgid "Swipe from the left edge to open the launcher"
468−msgstr "Ja gairebé ho teniu!"
461+msgstr ""
469
462
470−#: qml/Tutorial/TutorialPage.qml:195
463+#: qml/Tutorial/TutorialRight.qml:55
471−msgid "Try again."
464+msgid "Push your mouse against the right edge to view your open apps"
472−msgstr "Torneu-ho a provar."
465+msgstr ""
473
466
474−#: qml/Tutorial/TutorialRight.qml:31
467+#: qml/Tutorial/TutorialRight.qml:56
475−msgid "To view open apps"
468+msgid "Short or long swipe from the right edge to view your open apps"
476−msgstr "Per veure les aplicacions obertes"
469+msgstr ""
477
470
478−#: qml/Tutorial/TutorialRight.qml:32
471+#: qml/Tutorial/TutorialTop.qml:53
479−msgid "Long swipe from the right edge."
472+msgid "Swipe from the top right edge to open the notification bar"
480−msgstr "Lliscament llarg des de la vora dreta."
473+msgstr ""
481
474
482−#: qml/Tutorial/TutorialRight.qml:122
475+#: qml/Tutorial/TutorialTop.qml:54
483−msgid "View all your running tasks."
476+msgid "Swipe from the top edge to open the notification bar"
484−msgstr "Mostra totes les tasques en execució."
477+msgstr ""
485
478
486−#: qml/Wizard/Page.qml:89
479+#: qml/Wizard/Page.qml:54
487msgctxt "Button: Go back one page in the Wizard"
480msgctxt "Button: Go back one page in the Wizard"
488msgid "Back"
481msgid "Back"
489msgstr "Enrere"
482msgstr "Enrere"
490
483
491#: qml/Wizard/Pages/10-welcome.qml:27
484#: qml/Wizard/Pages/10-welcome.qml:27
492−msgid "Hi!"
485+msgid "Language"
493−msgstr "Hola!"
486+msgstr ""
494
487
495−#: qml/Wizard/Pages/10-welcome.qml:44
488+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
496−msgid "Welcome to your Ubuntu device."
489+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
490+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
491+#: qml/Wizard/Pages/75-report-check.qml:84
492+#: qml/Wizard/Pages/passcode-desktop.qml:124
493+#: qml/Wizard/Pages/password-set.qml:141
494+msgid "Next"
497msgstr ""
495msgstr ""
498
496
499−#: qml/Wizard/Pages/10-welcome.qml:52
497+#: qml/Wizard/Pages/30-wifi.qml:29
500−msgid "Let’s get started."
498+msgid "Connect to Wi‑Fi"
501−msgstr "Comencem."
499+msgstr "Connecta't a la Wi-Fi"
502
500
503−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
501+#: qml/Wizard/Pages/30-wifi.qml:130
504−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
502+msgid "Connected"
505−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
506−#: qml/Wizard/Pages/passwd-set.qml:90
507−msgid "Continue"
508−msgstr "Continua"
503+msgstr ""
509
504
510−#: qml/Wizard/Pages/20-sim.qml:25
505+#: qml/Wizard/Pages/30-wifi.qml:163
511−msgid "Add a SIM card and restart your device"
506+msgid "Available Wi-Fi networks"
512−msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
507+msgstr ""
513
508
514−#: qml/Wizard/Pages/20-sim.qml:59
509+#: qml/Wizard/Pages/30-wifi.qml:164
515−msgid "Without it, you won’t be able to make calls or use text messaging."
510+msgid "No available Wi-Fi networks"
516−msgstr "Sense ella, no podreu fer trucades o enviar missatges de text."
511+msgstr ""
517
512
518−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
513+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
514+#: qml/Wizard/Pages/sim.qml:101
519msgid "Skip"
515msgid "Skip"
520msgstr "Omet"
516msgstr "Omet"
521
517
522−#: qml/Wizard/Pages/30-passwd-type.qml:39
518+#: qml/Wizard/Pages/40-location.qml:27
523−msgid "Lock security"
519+msgid "Location Services"
524−msgstr "Seguretat del bloqueig"
520+msgstr ""
525
521
526−#: qml/Wizard/Pages/30-passwd-type.qml:79
522+#: qml/Wizard/Pages/40-location.qml:83
527−msgid "Please select how you’d like to unlock your device."
523+msgid ""
524+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
525+"(recommended)"
528msgstr ""
526msgstr ""
529
527
530−#: qml/Wizard/Pages/30-passwd-type.qml:102
528+#: qml/Wizard/Pages/40-location.qml:105
531−msgctxt "Label: Type of security method"
529+#, qt-format
532−msgid "Swipe"
530+msgid "By selecting this option you agree to the Nokia HERE %1."
533−msgstr "Lliscament amb el dit"
531+msgstr ""
534
532
535−#: qml/Wizard/Pages/30-passwd-type.qml:103
533+#: qml/Wizard/Pages/40-location.qml:106
536−msgctxt "Label: Description of security method"
534+msgctxt "part of: Nokia HERE terms and conditions"
537−msgid "No security"
535+msgid "terms and conditions"
538−msgstr "Sense seguretat"
536+msgstr ""
539
537
540−#: qml/Wizard/Pages/30-passwd-type.qml:105
538+#: qml/Wizard/Pages/40-location.qml:160
539+msgid "GPS only"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/40-location.qml:214
543+msgid "Don't use my location"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/40-location.qml:260
547+msgid "You can change it later in System Settings."
548+msgstr ""
549+
550+#: qml/Wizard/Pages/50-timezone.qml:29
551+msgid "Time Zone"
552+msgstr ""
553+
554+#: qml/Wizard/Pages/50-timezone.qml:178
555+msgid "Enter your city"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/60-account.qml:24
559+msgid "Personalize Your Device"
560+msgstr ""
561+
562+#: qml/Wizard/Pages/60-account.qml:48
563+msgid "Preferred Name"
564+msgstr ""
565+
566+#: qml/Wizard/Pages/70-passwd-type.qml:39
567+msgid "Lock Screen"
568+msgstr ""
569+
570+#: qml/Wizard/Pages/70-passwd-type.qml:101
541msgctxt "Label: Type of security method"
571msgctxt "Label: Type of security method"
542−msgid "Passcode"
572+msgid "Create new password"
543−msgstr "Codi d'accés"
573+msgstr ""
544
574
545−#: qml/Wizard/Pages/30-passwd-type.qml:106
575+#: qml/Wizard/Pages/70-passwd-type.qml:103
546−msgctxt "Label: Description of security method"
576+msgctxt "Label: Type of security method"
547−msgid "4 digits only"
577+msgid "Create passcode (numbers only)"
548−msgstr "Només 4 dígits"
578+msgstr ""
549
579
550−#: qml/Wizard/Pages/30-passwd-type.qml:108
580+#: qml/Wizard/Pages/70-passwd-type.qml:105
551msgctxt "Label: Type of security method"
581msgctxt "Label: Type of security method"
552−msgid "Passphrase"
582+msgid "No lock code"
553−msgstr "Contrasenya"
583+msgstr ""
554
584
555−#: qml/Wizard/Pages/30-passwd-type.qml:109
585+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
556−msgctxt "Label: Description of security method"
586+msgid "Privacy Policy"
557−msgid "Numbers and letters"
558−msgstr "Números i lletres"
587+msgstr ""
559
588
560−#: qml/Wizard/Pages/40-wifi.qml:29
589+#: qml/Wizard/Pages/75-report-check.qml:26
561−msgid "Connect to Wi‑Fi"
590+msgid "Help Us Improve"
562−msgstr "Connecta't a la Wi-Fi"
591+msgstr ""
563
592
564−#: qml/Wizard/Pages/40-wifi.qml:168
593+#: qml/Wizard/Pages/75-report-check.qml:59
565−msgid "Available networks…"
594+msgid "Improve system performance by sending us crashes and error reports."
566−msgstr "Xarxes disponibles..."
595+msgstr ""
567
596
568−#: qml/Wizard/Pages/40-wifi.qml:169
597+#: qml/Wizard/Pages/75-report-check.qml:60
569−msgid "No available networks."
598+msgid "Privacy policy"
570−msgstr "No hi ha xarxes disponibles"
599+msgstr ""
571
600
572−#: qml/Wizard/Pages/50-location.qml:27
601+#: qml/Wizard/Pages/80-finished.qml:89
573−msgid "Location"
602+msgid "Welcome to Ubuntu"
574−msgstr "Ubicació"
603+msgstr ""
575
604
576−#: qml/Wizard/Pages/50-location.qml:62
605+#: qml/Wizard/Pages/80-finished.qml:104
577−msgid "Let the phone detect your location:"
606+msgid "You are ready to use your device now"
578−msgstr "Fes que el telèfon detecti la meva ubicació:"
607+msgstr ""
579
608
580−#: qml/Wizard/Pages/50-location.qml:69
609+#: qml/Wizard/Pages/80-finished.qml:124
581−msgid "Using GPS only (less accurate)"
610+msgid "Get Started"
582−msgstr "Utilitza només el GPS (menys precís)"
611+msgstr ""
583
612
584−#: qml/Wizard/Pages/50-location.qml:86
613+#: qml/Wizard/Pages/here-terms.qml:25
585−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
614+msgid "Terms & Conditions"
615+msgstr "Condicions generals"
616+
617+#: qml/Wizard/Pages/here-terms.qml:69
618+msgid "Your device uses positioning technologies provided by HERE."
586msgstr ""
619msgstr ""
587−"Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
588−"(recomanat)"
589
620
590−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
591−#: qml/Wizard/Pages/50-location.qml:103
621+#: qml/Wizard/Pages/here-terms.qml:81
592msgid ""
622msgid ""
593−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
623+"To provide you with positioning services and to improve their quality, HERE "
594−"conditions</a>."
624+"collects information about nearby cell towers and Wi-Fi hotspots around your "
625+"current location whenever your position is being found."
595msgstr ""
626msgstr ""
596−"Si seleccioneu aquesta opció, accepteu <a href='#'>les condicions generals "
597−"del servei Nokia HERE</a>."
598
627
599−#: qml/Wizard/Pages/50-location.qml:112
628+#: qml/Wizard/Pages/here-terms.qml:93
600−msgid "Not at all"
629+msgid ""
630+"The information collected is used to analyze the service and to improve the "
631+"use of service, but not to identify you personally."
601−msgstr "No"
632+msgstr ""
602
633
603−#: qml/Wizard/Pages/50-location.qml:124
634+#: qml/Wizard/Pages/here-terms.qml:106
604−msgid "You can change your mind later in <b>System Settings</b>."
635+#, qt-format
636+msgid "By continuing, you agree to the HERE platform %1 and %2."
605msgstr ""
637msgstr ""
606−"Podeu canviar-ho més endavant a l'aplicació <b>Paràmetres del sistema</b>"
607
638
608−#: qml/Wizard/Pages/60-reporting.qml:26
639+#: qml/Wizard/Pages/here-terms.qml:107
609−msgid "Improving your experience"
640+msgid "Service Terms"
610−msgstr "Millora de l'experiència"
641+msgstr ""
611
642
612−#: qml/Wizard/Pages/60-reporting.qml:46
643+#: qml/Wizard/Pages/passcode-confirm.qml:43
644+#: qml/Wizard/Pages/passcode-desktop.qml:80
613−msgid ""
645+msgid "Confirm passcode"
614−"Your phone is set up to automatically report errors to Canonical and its "
646+msgstr "Confirmeu el codi d'accés"
615−"partners, the makers of the operating system."
647+
648+#: qml/Wizard/Pages/passcode-confirm.qml:45
649+msgid "Incorrect passcode."
616msgstr ""
650msgstr ""
617−"Aquest telèfon està configurat per enviar errors de manera automàtica a "
618−"Canonical i associats, els creadors del sistema operatiu."
619
651
620−#: qml/Wizard/Pages/60-reporting.qml:53
652+#: qml/Wizard/Pages/passcode-confirm.qml:45
653+msgctxt "Enter the passcode again"
621−msgid ""
654+msgid "Please re-enter."
622−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
623−"Privacy</b>"
624msgstr ""
655msgstr ""
625−"Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
626−"<b>Seguretat i privadesa</b>"
627
656
628−#: qml/Wizard/Pages/80-finished.qml:24
657+#: qml/Wizard/Pages/passcode-desktop.qml:30
629−msgid "All done"
658+msgid "Lock Screen Passcode"
630−msgstr "Tot fet"
659+msgstr ""
631
660
632−#: qml/Wizard/Pages/80-finished.qml:39
661+#: qml/Wizard/Pages/passcode-desktop.qml:56
633−msgid "Nice work!"
662+msgid "Enter 4 numbers to setup your passcode"
634−msgstr "Bona feina!"
663+msgstr ""
635
664
636−#: qml/Wizard/Pages/80-finished.qml:46
665+#: qml/Wizard/Pages/passcode-desktop.qml:65
637−msgid "Your device is now ready to use."
666+#: qml/Wizard/Pages/passcode-set.qml:54
667+msgid "Choose passcode"
638msgstr ""
668msgstr ""
639
669
640−#: qml/Wizard/Pages/80-finished.qml:53
670+#: qml/Wizard/Pages/passcode-desktop.qml:105
641−msgid "Finish"
671+msgid "Passcode too short"
642−msgstr "Finalitza"
672+msgstr ""
643
673
644−#: qml/Wizard/Pages/here-terms.qml:27
674+#: qml/Wizard/Pages/passcode-desktop.qml:107
645−msgid "Terms & Conditions"
675+msgid "Passcodes match"
646−msgstr "Condicions generals"
676+msgstr ""
647
677
648−#: qml/Wizard/Pages/passwd-confirm.qml:49
678+#: qml/Wizard/Pages/passcode-desktop.qml:109
649−msgid "Confirm passphrase"
679+msgid "Passcodes do not match"
650−msgstr "Confirmeu la contrasenya"
680+msgstr ""
651
681
652−#: qml/Wizard/Pages/passwd-confirm.qml:50
682+#: qml/Wizard/Pages/passcode-set.qml:62
653−msgid "Confirm passcode"
683+msgid "Passcode must be 4 characters long"
654−msgstr "Confirmeu el codi d'accés"
684+msgstr ""
655
685
656−#: qml/Wizard/Pages/passwd-confirm.qml:53
686+#: qml/Wizard/Pages/password-set.qml:30
657−#: qml/Wizard/Pages/passwd-confirm.qml:54
687+msgid "Lock Screen Password"
658−msgid "Please try again."
659−msgstr "Torneu-ho a intentar."
688+msgstr ""
660
689
661−#: qml/Wizard/Pages/passwd-set.qml:61
690+#: qml/Wizard/Pages/password-set.qml:61
662−msgid "Choose your passcode"
691+msgid "Enter at least 8 characters"
663−msgstr "Trieu el codi d'accés"
692+msgstr ""
664
693
665−#: qml/Wizard/Pages/passwd-set.qml:68
694+#: qml/Wizard/Pages/password-set.qml:73
666−msgid "Passphrase must be 4 characters long"
695+msgid "Choose password"
667−msgstr "La contrasenya ha de tenir 4 caràcters com a mínim"
696+msgstr ""
668
697
669−#. Translators: This is the arrow for "Back" buttons
698+#: qml/Wizard/Pages/password-set.qml:103
670−#: qml/Wizard/StackButton.qml:39
699+msgid "Confirm password"
671−#, qt-format
672−msgid "〈 %1"
673−msgstr "〈 %1"
700+msgstr ""
674
701
675−#. Translators: This is the arrow for "Forward" buttons
702+#: qml/Wizard/Pages/sim.qml:27
703+msgid "No SIM card installed"
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:54
707+msgid "SIM card added"
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:55
711+msgid "You must restart the device to access the mobile network."
712+msgstr ""
713+
714+#: qml/Wizard/Pages/sim.qml:59
715+msgid "Restart"
716+msgstr "Reinicia"
717+
676−#: qml/Wizard/StackButton.qml:42
718+#: qml/Wizard/Pages/sim.qml:78
677−#, qt-format
719+msgid "You won’t be able to make calls or use text messaging without a SIM."
678−msgid "%1 〉"
720+msgstr ""
721+
722+#: qml/Wizard/Pages/sim.qml:90
723+msgid "To proceed with no SIM tap Skip."
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:87
727+msgid "Passwords match"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:89
731+msgid "Passwords do not match"
679−msgstr "%1 〉"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:93
735+msgid "Strong password"
736+msgstr ""
737+
738+#: qml/Wizard/PasswordMeter.qml:95
739+msgid "Fair password"
740+msgstr ""
741+
742+#: qml/Wizard/PasswordMeter.qml:97
743+msgid "Weak password"
744+msgstr ""
745+
746+#: qml/Wizard/PasswordMeter.qml:99
747+msgid "Very weak password"
748+msgstr ""
680
749
681#~ msgid "Confirm"
750#~ msgid "Confirm"
682#~ msgstr "Confirma"
751#~ msgstr "Confirma"
@@ -732,6 +801,9 @@ msgstr "%1 〉"
732#~ msgstr ""
801#~ msgstr ""
733#~ "Proveu de lliscar el dit des de la vora dreta per desblocar el telèfon"
802#~ "Proveu de lliscar el dit des de la vora dreta per desblocar el telèfon"
734
803
804+#~ msgid "See less"
805+#~ msgstr "Mostra'n menys"
806+
735#~ msgid ""
807#~ msgid ""
736#~ "You have now mastered the edge gestures and can start using the "
808#~ "You have now mastered the edge gestures and can start using the "
737#~ "phone<br><br>Tap on the screen to start"
809#~ "phone<br><br>Tap on the screen to start"
@@ -739,6 +811,9 @@ msgstr "%1 〉"
739#~ "Ja heu après com utilitzar els gestos de les vores per fer servir el "
811#~ "Ja heu après com utilitzar els gestos de les vores per fer servir el "
740#~ "telèfon<br><br>Feu un toc a la pantalla per començar"
812#~ "telèfon<br><br>Feu un toc a la pantalla per començar"
741
813
814+#~ msgid "See all"
815+#~ msgstr "Mostra-ho tot"
816+
742#~ msgid "Unlock SIM"
817#~ msgid "Unlock SIM"
743#~ msgstr "Desbloca la SIM"
818#~ msgstr "Desbloca la SIM"
744
819
@@ -772,27 +847,200 @@ msgstr "%1 〉"
772#~ msgid "Power off"
847#~ msgid "Power off"
773#~ msgstr "Apaga"
848#~ msgstr "Apaga"
774
849
850+#~ msgid "Are you sure you want to shut down?"
851+#~ msgstr "Segur que voleu apagar?"
852+
775#~ msgid "Shut down"
853#~ msgid "Shut down"
776#~ msgstr "Apaga"
854#~ msgstr "Apaga"
777
855
778−#~ msgid "Restart"
779−#~ msgstr "Reinicia"
780−
781#~ msgid "Please re-enter"
856#~ msgid "Please re-enter"
782#~ msgstr "Torneu-ho a introduir"
857#~ msgstr "Torneu-ho a introduir"
783
858
784#~ msgid "Manage Scopes"
859#~ msgid "Manage Scopes"
785#~ msgstr "Gestioneu les lents"
860#~ msgstr "Gestioneu les lents"
786
861
862+#~ msgid "Add a SIM card and restart your device"
863+#~ msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
864+
865+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
866+#~ msgstr "Sense ella, no podreu fer trucades o enviar missatges de text."
867+
868+#~ msgid "Hi!"
869+#~ msgstr "Hola!"
870+
787#~ msgid "Welcome to your Ubuntu phone."
871#~ msgid "Welcome to your Ubuntu phone."
788#~ msgstr "Us donem la benvinguda al vostre telèfon Ubuntu."
872#~ msgstr "Us donem la benvinguda al vostre telèfon Ubuntu."
789
873
874+#~ msgid "Let’s get started."
875+#~ msgstr "Comencem."
876+
877+#~ msgid "Continue"
878+#~ msgstr "Continua"
879+
880+#~ msgid "Lock security"
881+#~ msgstr "Seguretat del bloqueig"
882+
790#~ msgid "Please select how you’d like to unlock your phone."
883#~ msgid "Please select how you’d like to unlock your phone."
791#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
884#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
792
885
886+#~ msgid "Improving your experience"
887+#~ msgstr "Millora de l'experiència"
888+
889+#~ msgid "Available networks…"
890+#~ msgstr "Xarxes disponibles..."
891+
892+#~ msgid "No available networks."
893+#~ msgstr "No hi ha xarxes disponibles"
894+
895+#~ msgid "Location"
896+#~ msgstr "Ubicació"
897+
898+#~ msgid ""
899+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
900+#~ "Privacy</b>"
901+#~ msgstr ""
902+#~ "Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
903+#~ "<b>Seguretat i privadesa</b>"
904+
905+#~ msgid ""
906+#~ "Your phone is set up to automatically report errors to Canonical and its "
907+#~ "partners, the makers of the operating system."
908+#~ msgstr ""
909+#~ "Aquest telèfon està configurat per enviar errors de manera automàtica a "
910+#~ "Canonical i associats, els creadors del sistema operatiu."
911+
912+#~ msgid "Finish"
913+#~ msgstr "Finalitza"
914+
793#~ msgid "Your phone is now ready to use."
915#~ msgid "Your phone is now ready to use."
794#~ msgstr "Ja podeu utilitzar el vostre telèfon."
916#~ msgstr "Ja podeu utilitzar el vostre telèfon."
795
917
918+#~ msgid "Confirm passphrase"
919+#~ msgstr "Confirmeu la contrasenya"
920+
921+#~ msgid "Please try again."
922+#~ msgstr "Torneu-ho a intentar."
923+
924+#~ msgid "Nice work!"
925+#~ msgstr "Bona feina!"
926+
927+#~ msgid "All done"
928+#~ msgstr "Tot fet"
929+
930+#~ msgid "Choose your passcode"
931+#~ msgstr "Trieu el codi d'accés"
932+
933+#, qt-format
934+#~ msgid "%1 〉"
935+#~ msgstr "%1 〉"
936+
937+#~ msgid "Passphrase must be 4 characters long"
938+#~ msgstr "La contrasenya ha de tenir 4 caràcters com a mínim"
939+
940+#, qt-format
941+#~ msgid "〈 %1"
942+#~ msgstr "〈 %1"
943+
944+#~ msgid "Let the phone detect your location:"
945+#~ msgstr "Fes que el telèfon detecti la meva ubicació:"
946+
947+#~ msgid "Using GPS only (less accurate)"
948+#~ msgstr "Utilitza només el GPS (menys precís)"
949+
950+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
951+#~ msgstr ""
952+#~ "Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
953+#~ "(recomanat)"
954+
955+#~ msgid "You can change your mind later in <b>System Settings</b>."
956+#~ msgstr ""
957+#~ "Podeu canviar-ho més endavant a l'aplicació <b>Paràmetres del sistema</b>"
958+
959+#~ msgid ""
960+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
961+#~ "conditions</a>."
962+#~ msgstr ""
963+#~ "Si seleccioneu aquesta opció, accepteu <a href='#'>les condicions generals "
964+#~ "del servei Nokia HERE</a>."
965+
966+#~ msgid "Not at all"
967+#~ msgstr "No"
968+
969+#~ msgid "You almost got it!"
970+#~ msgstr "Ja gairebé ho teniu!"
971+
972+#~ msgid "Open the launcher"
973+#~ msgstr "Obre el llançador"
974+
975+#~ msgid "Tap here to continue."
976+#~ msgstr "Feu un toc per continuar."
977+
978+#~ msgid "Open special menus"
979+#~ msgstr "Obre els menús especials"
980+
981+#~ msgid "To view open apps"
982+#~ msgstr "Per veure les aplicacions obertes"
983+
984+#~ msgid "Long swipe from the right edge."
985+#~ msgstr "Lliscament llarg des de la vora dreta."
986+
987+#~ msgid "View all your running tasks."
988+#~ msgstr "Mostra totes les tasques en execució."
989+
990+#~ msgid "This action does different things for different apps"
991+#~ msgstr "Aquesta acció fa coses diferents depenent de l'aplicació"
992+
993+#~ msgid "Try again."
994+#~ msgstr "Torneu-ho a provar."
995+
996+#~ msgid "Short swipe from the left edge."
997+#~ msgstr "Lliscament curt des de la vora esquerra."
998+
999+#~ msgid "These are the shortcuts to favorite apps"
1000+#~ msgstr "Aquestes són les dreceres a les aplicacions preferides"
1001+
1002+#~ msgid "Swipe up from the bottom edge."
1003+#~ msgstr "Llisqueu el dit des de la vora inferior."
1004+
1005+#~ msgid "Tap here to finish."
1006+#~ msgstr "Feu un toc per finalitzar."
1007+
1008+#~ msgctxt "Label: Description of security method"
1009+#~ msgid "4 digits only"
1010+#~ msgstr "Només 4 dígits"
1011+
1012+#~ msgctxt "Button: Shut down the system"
1013+#~ msgid "Shut down"
1014+#~ msgstr "Apaga"
1015+
1016+#~ msgctxt "Title: Reboot/Shut down dialog"
1017+#~ msgid "Shut down"
1018+#~ msgstr "Apaga"
1019+
1020+#~ msgctxt "Button: Reboot the system"
1021+#~ msgid "Reboot"
1022+#~ msgstr "Reinicia"
1023+
1024+#~ msgctxt "Label: Type of security method"
1025+#~ msgid "Swipe"
1026+#~ msgstr "Lliscament amb el dit"
1027+
1028+#~ msgctxt "Label: Type of security method"
1029+#~ msgid "Passcode"
1030+#~ msgstr "Codi d'accés"
1031+
1032+#~ msgctxt "Label: Description of security method"
1033+#~ msgid "No security"
1034+#~ msgstr "Sense seguretat"
1035+
1036+#~ msgctxt "Label: Type of security method"
1037+#~ msgid "Passphrase"
1038+#~ msgstr "Contrasenya"
1039+
1040+#~ msgctxt "Label: Description of security method"
1041+#~ msgid "Numbers and letters"
1042+#~ msgstr "Números i lletres"
1043+
796#~ msgid "Yesterday %l:%M %p"
1044#~ msgid "Yesterday %l:%M %p"
797#~ msgstr "Ahir %l.%M %p"
1045#~ msgstr "Ahir %l.%M %p"
798
1046
@@ -825,8 +1073,3 @@ msgstr "%1 〉"
825
1073
826#~ msgid "Call back"
1074#~ msgid "Call back"
827#~ msgstr "Retorna la trucada"
1075#~ msgstr "Retorna la trucada"
828−
829−#~ msgid "Re-dock, save your work and close these apps to continue."
830−#~ msgstr ""
831−#~ "Torneu a connectar, deseu la feina i tanqueu aquestes aplicacions per "
832−#~ "continuar."
po/ca@valencia.po+395−222
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2015-02-22 15:22+0000\n"
11"PO-Revision-Date: 2015-02-22 15:22+0000\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-03-13 05:51+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:55+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -77,53 +77,35 @@ msgctxt "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:194
80+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
81−#: qml/Components/Dialogs.qml:253
81+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
82+#: qml/Wizard/Pages/passcode-set.qml:32
82msgid "Cancel"
83msgid "Cancel"
83msgstr "Cancel·la"
84msgstr "Cancel·la"
84
85
85#: qml/Components/Dialogs.qml:173
86#: qml/Components/Dialogs.qml:173
86−msgctxt "Title: Reboot/Shut down dialog"
87−msgid "Shut down"
88−msgstr ""
89−
90−#: qml/Components/Dialogs.qml:174
91−msgid "Are you sure you want to shut down?"
92−msgstr "Segur que voleu apagar?"
93−
94−#: qml/Components/Dialogs.qml:176
95−msgctxt "Button: Reboot the system"
96−msgid "Reboot"
97−msgstr ""
98−
99−#: qml/Components/Dialogs.qml:185
100−msgctxt "Button: Shut down the system"
101−msgid "Shut down"
102−msgstr ""
103−
104−#: qml/Components/Dialogs.qml:207
105msgctxt "Title: Reboot dialog"
87msgctxt "Title: Reboot dialog"
106msgid "Reboot"
88msgid "Reboot"
107msgstr ""
89msgstr ""
108
90
109−#: qml/Components/Dialogs.qml:208
91+#: qml/Components/Dialogs.qml:174
110msgid "Are you sure you want to reboot?"
92msgid "Are you sure you want to reboot?"
111msgstr "Segur que voleu reiniciar?"
93msgstr "Segur que voleu reiniciar?"
112
94
113−#: qml/Components/Dialogs.qml:210
95+#: qml/Components/Dialogs.qml:176
114msgid "No"
96msgid "No"
115msgstr "No"
97msgstr "No"
116
98
117−#: qml/Components/Dialogs.qml:217
99+#: qml/Components/Dialogs.qml:182
118msgid "Yes"
100msgid "Yes"
119msgstr "Sí"
101msgstr "Sí"
120
102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:197
122msgctxt "Title: Power off/Restart dialog"
104msgctxt "Title: Power off/Restart dialog"
123msgid "Power"
105msgid "Power"
124msgstr ""
106msgstr ""
125
107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:198
127msgid ""
109msgid ""
128"Are you sure you would like\n"
110"Are you sure you would like\n"
129"to power off?"
111"to power off?"
@@ -131,12 +113,12 @@ msgstr ""
131"Segur que voleu\n"
113"Segur que voleu\n"
132"apagar?"
114"apagar?"
133
115
134−#: qml/Components/Dialogs.qml:235
116+#: qml/Components/Dialogs.qml:200
135msgctxt "Button: Power off the system"
117msgctxt "Button: Power off the system"
136msgid "Power off"
118msgid "Power off"
137msgstr ""
119msgstr ""
138
120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:209
140msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
141msgid "Restart"
123msgid "Restart"
142msgstr ""
124msgstr ""
@@ -179,42 +161,58 @@ msgstr ""
179msgid "Close all"
161msgid "Close all"
180msgstr ""
162msgstr ""
181
163
182−#: qml/Dash/DashPageHeader.qml:270
164+#: qml/Dash/DashPageHeader.qml:337
183msgctxt "Button: Open the Ubuntu Store"
165msgctxt "Button: Open the Ubuntu Store"
184msgid "Store"
166msgid "Store"
185msgstr ""
167msgstr ""
186
168
187−#: qml/Dash/DashPageHeader.qml:277
169+#: qml/Dash/DashPageHeader.qml:344
188msgctxt "Button: Start a search in the current dash scope"
170msgctxt "Button: Start a search in the current dash scope"
189msgid "Search"
171msgid "Search"
190msgstr ""
172msgstr ""
191
173
192−#: qml/Dash/DashPageHeader.qml:287
174+#: qml/Dash/DashPageHeader.qml:354
193msgctxt "Button: Show the current dash scope settings"
175msgctxt "Button: Show the current dash scope settings"
194msgid "Settings"
176msgid "Settings"
195msgstr ""
177msgstr ""
196
178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198msgid "Remove from Favorites"
180msgid "Remove from Favorites"
199msgstr "Suprimeix dels preferits"
181msgstr "Suprimeix dels preferits"
200
182
201−#: qml/Dash/DashPageHeader.qml:294
183+#: qml/Dash/DashPageHeader.qml:361
202msgid "Add to Favorites"
184msgid "Add to Favorites"
203msgstr "Afig als preferits"
185msgstr "Afig als preferits"
204
186
187+#: qml/Dash/FiltersPopover.qml:60
188+msgid "Refine your results"
189+msgstr ""
190+
191+#: qml/Dash/FiltersPopover.qml:69
192+msgid "Reset"
193+msgstr ""
194+
205−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
206−msgid "See less"
196+msgid "Show less"
207−msgstr "Mostra'n menys"
197+msgstr ""
208
198
209−#: qml/Dash/GenericScopeView.qml:567
199+#: qml/Dash/GenericScopeView.qml:579
210−msgid "See all"
200+msgid "Show all"
211−msgstr "Mostra-ho tot"
201+msgstr ""
212
202
213−#: qml/Dash/GenericScopeView.qml:629
203+#: qml/Dash/GenericScopeView.qml:636
214msgctxt "Label: Hint for dash search line edit"
204msgctxt "Label: Hint for dash search line edit"
215msgid "Search"
205msgid "Search"
216msgstr ""
206msgstr ""
217
207
208+#: qml/Dash/PageHeaderExtraPanel.qml:55
209+msgid "Recent Searches"
210+msgstr ""
211+
212+#: qml/Dash/PageHeaderExtraPanel.qml:66
213+msgid "Clear All"
214+msgstr ""
215+
218#: qml/Dash/Previews/PreviewActionCombo.qml:35
216#: qml/Dash/Previews/PreviewActionCombo.qml:35
219msgid "More..."
217msgid "More..."
220msgstr "Més..."
218msgstr "Més..."
@@ -282,11 +280,11 @@ msgstr ""
282msgid "Tap to unlock"
280msgid "Tap to unlock"
283msgstr ""
281msgstr ""
284
282
285−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
283+#: qml/Greeter/NarrowView.qml:54
286msgid "Sorry, incorrect passphrase."
284msgid "Sorry, incorrect passphrase."
287msgstr "La contrasenya és incorrecta"
285msgstr "La contrasenya és incorrecta"
288
286
289−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
287+#: qml/Greeter/NarrowView.qml:55
290msgid "Sorry, incorrect passcode."
288msgid "Sorry, incorrect passcode."
291msgstr "El codi d'accés no és correcte"
289msgstr "El codi d'accés no és correcte"
292
290
@@ -317,7 +315,7 @@ msgstr ""
317msgid "Enter %1"
315msgid "Enter %1"
318msgstr "Introduïu: %1"
316msgstr "Introduïu: %1"
319
317
320−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
318+#: qml/Greeter/NarrowView.qml:117
321msgid "Enter passphrase"
319msgid "Enter passphrase"
322msgstr "Introduïu la contrasenya"
320msgstr "Introduïu la contrasenya"
323
321
@@ -343,7 +341,7 @@ msgstr ""
343msgid "Sorry, incorrect passcode"
341msgid "Sorry, incorrect passcode"
344msgstr "El codi d'accés no és correcte"
342msgstr "El codi d'accés no és correcte"
345
343
346−#: qml/Notifications/NotificationMenuItemFactory.qml:129
344+#: qml/Notifications/NotificationMenuItemFactory.qml:124
347msgid "Show password"
345msgid "Show password"
348msgstr "Mostra la contrasenya"
346msgstr "Mostra la contrasenya"
349
347
@@ -355,62 +353,62 @@ msgstr "Feu un toc per tornar a la cridada..."
355msgid "Conference"
353msgid "Conference"
356msgstr "Conferència"
354msgstr "Conferència"
357
355
358−#: qml/Panel/Indicators/MenuItemFactory.qml:752
356+#: qml/Panel/Indicators/MenuItemFactory.qml:762
359msgid "Nothing is playing"
357msgid "Nothing is playing"
360msgstr "No s'està reproduint res"
358msgstr "No s'està reproduint res"
361
359
362−#: qml/Panel/Indicators/MenuItemFactory.qml:881
360+#: qml/Panel/Indicators/MenuItemFactory.qml:891
363#, qt-format
361#, qt-format
364msgid "%1 hour"
362msgid "%1 hour"
365msgid_plural "%1 hours"
363msgid_plural "%1 hours"
366msgstr[0] ""
364msgstr[0] ""
367msgstr[1] ""
365msgstr[1] ""
368
366
369−#: qml/Panel/Indicators/MenuItemFactory.qml:885
367+#: qml/Panel/Indicators/MenuItemFactory.qml:895
370#, qt-format
368#, qt-format
371msgid "%1 minute"
369msgid "%1 minute"
372msgid_plural "%1 minutes"
370msgid_plural "%1 minutes"
373msgstr[0] ""
371msgstr[0] ""
374msgstr[1] ""
372msgstr[1] ""
375
373
376−#: qml/Panel/Indicators/MenuItemFactory.qml:890
374+#: qml/Panel/Indicators/MenuItemFactory.qml:900
377#, qt-format
375#, qt-format
378msgid "%1 second"
376msgid "%1 second"
379msgid_plural "%1 seconds"
377msgid_plural "%1 seconds"
380msgstr[0] ""
378msgstr[0] ""
381msgstr[1] ""
379msgstr[1] ""
382
380
383−#: qml/Panel/Indicators/MenuItemFactory.qml:893
381+#: qml/Panel/Indicators/MenuItemFactory.qml:903
384msgid "0 seconds"
382msgid "0 seconds"
385msgstr ""
383msgstr ""
386
384
387#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
385#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
388−#: qml/Panel/Indicators/MenuItemFactory.qml:895
386+#: qml/Panel/Indicators/MenuItemFactory.qml:905
389#, qt-format
387#, qt-format
390msgid "%1 remaining"
388msgid "%1 remaining"
391msgstr ""
389msgstr ""
392
390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:901
391+#: qml/Panel/Indicators/MenuItemFactory.qml:911
394msgid "In queue…"
392msgid "In queue…"
395msgstr "A la cua..."
393msgstr "A la cua..."
396
394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:905
395+#: qml/Panel/Indicators/MenuItemFactory.qml:915
398msgid "Downloading"
396msgid "Downloading"
399msgstr "S'està baixant"
397msgstr "S'està baixant"
400
398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:907
399+#: qml/Panel/Indicators/MenuItemFactory.qml:917
402msgid "Paused, tap to resume"
400msgid "Paused, tap to resume"
403msgstr "En pausa, feu un toc per continuar"
401msgstr "En pausa, feu un toc per continuar"
404
402
405−#: qml/Panel/Indicators/MenuItemFactory.qml:909
403+#: qml/Panel/Indicators/MenuItemFactory.qml:919
406msgid "Canceled"
404msgid "Canceled"
407msgstr "S'ha cancel·lat"
405msgstr "S'ha cancel·lat"
408
406
409−#: qml/Panel/Indicators/MenuItemFactory.qml:911
407+#: qml/Panel/Indicators/MenuItemFactory.qml:921
410msgid "Finished"
408msgid "Finished"
411msgstr "S'ha finalitzat"
409msgstr "S'ha finalitzat"
412
410
413−#: qml/Panel/Indicators/MenuItemFactory.qml:913
411+#: qml/Panel/Indicators/MenuItemFactory.qml:923
414msgid "Failed, tap to retry"
412msgid "Failed, tap to retry"
415msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
413msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
416
414
@@ -430,253 +428,324 @@ msgctxt "Button: Call back on phone"
430msgid "Call back"
428msgid "Call back"
431msgstr ""
429msgstr ""
432
430
433−#: qml/Tutorial/TutorialBottom.qml:28
431+#: qml/Stages/SideStage.qml:76
434−msgid "Open special menus"
432+msgid "Drag using 3 fingers any application from one window to the other"
435−msgstr ""
436−
437−#: qml/Tutorial/TutorialBottom.qml:29
438−msgid "Swipe up from the bottom edge."
439msgstr ""
433msgstr ""
440
434
441−#: qml/Tutorial/TutorialBottomFinish.qml:24
435+#: qml/Tutorial/TutorialBottom.qml:78
442−msgid "This action does different things for different apps"
436+msgid "Swipe up to add a contact"
443msgstr ""
437msgstr ""
444
438
445−#: qml/Tutorial/TutorialBottomFinish.qml:25
439+#: qml/Tutorial/TutorialBottom.qml:80
446−msgid "Tap here to finish."
440+msgid "Swipe up for favorite calculations"
447msgstr ""
441msgstr ""
448
442
449−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
443+#: qml/Tutorial/TutorialBottom.qml:82
450−#: qml/Tutorial/TutorialRight.qml:144
444+msgid "Swipe up for recent calls"
451−msgid "Tap here to continue."
452msgstr ""
445msgstr ""
453
446
454−#: qml/Tutorial/TutorialLeft.qml:26
447+#: qml/Tutorial/TutorialBottom.qml:84
455−msgid "Open the launcher"
448+msgid "Swipe up to create a message"
456msgstr ""
449msgstr ""
457
450
458−#: qml/Tutorial/TutorialLeft.qml:27
451+#: qml/Tutorial/TutorialBottom.qml:85
459−msgid "Short swipe from the left edge."
452+msgid "Swipe up to manage the app"
460msgstr ""
453msgstr ""
461
454
462−#: qml/Tutorial/TutorialLeftFinish.qml:24
455+#: qml/Tutorial/TutorialLeftLong.qml:47
463−msgid "These are the shortcuts to favorite apps"
456+msgid "Long swipe from the left edge to open the Today scope"
464msgstr ""
457msgstr ""
465
458
466−#: qml/Tutorial/TutorialPage.qml:178
459+#: qml/Tutorial/TutorialLeft.qml:47
467−msgid "You almost got it!"
460+msgid "Swipe from the left edge to open the launcher"
468msgstr ""
461msgstr ""
469
462
470−#: qml/Tutorial/TutorialPage.qml:195
463+#: qml/Tutorial/TutorialRight.qml:55
471−msgid "Try again."
464+msgid "Push your mouse against the right edge to view your open apps"
472msgstr ""
465msgstr ""
473
466
474−#: qml/Tutorial/TutorialRight.qml:31
467+#: qml/Tutorial/TutorialRight.qml:56
475−msgid "To view open apps"
468+msgid "Short or long swipe from the right edge to view your open apps"
476msgstr ""
469msgstr ""
477
470
478−#: qml/Tutorial/TutorialRight.qml:32
471+#: qml/Tutorial/TutorialTop.qml:53
479−msgid "Long swipe from the right edge."
472+msgid "Swipe from the top right edge to open the notification bar"
480msgstr ""
473msgstr ""
481
474
482−#: qml/Tutorial/TutorialRight.qml:122
475+#: qml/Tutorial/TutorialTop.qml:54
483−msgid "View all your running tasks."
476+msgid "Swipe from the top edge to open the notification bar"
484msgstr ""
477msgstr ""
485
478
486−#: qml/Wizard/Page.qml:89
479+#: qml/Wizard/Page.qml:54
487msgctxt "Button: Go back one page in the Wizard"
480msgctxt "Button: Go back one page in the Wizard"
488msgid "Back"
481msgid "Back"
489msgstr ""
482msgstr ""
490
483
491#: qml/Wizard/Pages/10-welcome.qml:27
484#: qml/Wizard/Pages/10-welcome.qml:27
492−msgid "Hi!"
485+msgid "Language"
493−msgstr "Hola!"
486+msgstr ""
494
487
495−#: qml/Wizard/Pages/10-welcome.qml:44
488+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
496−msgid "Welcome to your Ubuntu device."
489+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
490+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
491+#: qml/Wizard/Pages/75-report-check.qml:84
492+#: qml/Wizard/Pages/passcode-desktop.qml:124
493+#: qml/Wizard/Pages/password-set.qml:141
494+msgid "Next"
497msgstr ""
495msgstr ""
498
496
499−#: qml/Wizard/Pages/10-welcome.qml:52
497+#: qml/Wizard/Pages/30-wifi.qml:29
500−msgid "Let’s get started."
498+msgid "Connect to Wi‑Fi"
501−msgstr "Comencem."
499+msgstr "Connecta't a la Wi-Fi"
502
500
503−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
501+#: qml/Wizard/Pages/30-wifi.qml:130
504−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
502+msgid "Connected"
505−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
506−#: qml/Wizard/Pages/passwd-set.qml:90
507−msgid "Continue"
508−msgstr "Continua"
503+msgstr ""
509
504
510−#: qml/Wizard/Pages/20-sim.qml:25
505+#: qml/Wizard/Pages/30-wifi.qml:163
511−msgid "Add a SIM card and restart your device"
506+msgid "Available Wi-Fi networks"
512−msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
507+msgstr ""
513
508
514−#: qml/Wizard/Pages/20-sim.qml:59
509+#: qml/Wizard/Pages/30-wifi.qml:164
515−msgid "Without it, you won’t be able to make calls or use text messaging."
510+msgid "No available Wi-Fi networks"
516−msgstr "Sense ella, no podreu fer cridades o enviar missatges de text."
511+msgstr ""
517
512
518−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
513+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
514+#: qml/Wizard/Pages/sim.qml:101
519msgid "Skip"
515msgid "Skip"
520msgstr "Omet"
516msgstr "Omet"
521
517
522−#: qml/Wizard/Pages/30-passwd-type.qml:39
518+#: qml/Wizard/Pages/40-location.qml:27
523−msgid "Lock security"
519+msgid "Location Services"
524−msgstr "Seguretat del bloqueig"
520+msgstr ""
525
521
526−#: qml/Wizard/Pages/30-passwd-type.qml:79
522+#: qml/Wizard/Pages/40-location.qml:83
527−msgid "Please select how you’d like to unlock your device."
523+msgid ""
524+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
525+"(recommended)"
528msgstr ""
526msgstr ""
529
527
530−#: qml/Wizard/Pages/30-passwd-type.qml:102
528+#: qml/Wizard/Pages/40-location.qml:105
531−msgctxt "Label: Type of security method"
529+#, qt-format
532−msgid "Swipe"
530+msgid "By selecting this option you agree to the Nokia HERE %1."
533msgstr ""
531msgstr ""
534
532
535−#: qml/Wizard/Pages/30-passwd-type.qml:103
533+#: qml/Wizard/Pages/40-location.qml:106
536−msgctxt "Label: Description of security method"
534+msgctxt "part of: Nokia HERE terms and conditions"
537−msgid "No security"
535+msgid "terms and conditions"
538msgstr ""
536msgstr ""
539
537
540−#: qml/Wizard/Pages/30-passwd-type.qml:105
538+#: qml/Wizard/Pages/40-location.qml:160
539+msgid "GPS only"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/40-location.qml:214
543+msgid "Don't use my location"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/40-location.qml:260
547+msgid "You can change it later in System Settings."
548+msgstr ""
549+
550+#: qml/Wizard/Pages/50-timezone.qml:29
551+msgid "Time Zone"
552+msgstr ""
553+
554+#: qml/Wizard/Pages/50-timezone.qml:178
555+msgid "Enter your city"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/60-account.qml:24
559+msgid "Personalize Your Device"
560+msgstr ""
561+
562+#: qml/Wizard/Pages/60-account.qml:48
563+msgid "Preferred Name"
564+msgstr ""
565+
566+#: qml/Wizard/Pages/70-passwd-type.qml:39
567+msgid "Lock Screen"
568+msgstr ""
569+
570+#: qml/Wizard/Pages/70-passwd-type.qml:101
541msgctxt "Label: Type of security method"
571msgctxt "Label: Type of security method"
542−msgid "Passcode"
572+msgid "Create new password"
543msgstr ""
573msgstr ""
544
574
545−#: qml/Wizard/Pages/30-passwd-type.qml:106
575+#: qml/Wizard/Pages/70-passwd-type.qml:103
546−msgctxt "Label: Description of security method"
576+msgctxt "Label: Type of security method"
547−msgid "4 digits only"
577+msgid "Create passcode (numbers only)"
548msgstr ""
578msgstr ""
549
579
550−#: qml/Wizard/Pages/30-passwd-type.qml:108
580+#: qml/Wizard/Pages/70-passwd-type.qml:105
551msgctxt "Label: Type of security method"
581msgctxt "Label: Type of security method"
552−msgid "Passphrase"
582+msgid "No lock code"
553msgstr ""
583msgstr ""
554
584
555−#: qml/Wizard/Pages/30-passwd-type.qml:109
585+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
556−msgctxt "Label: Description of security method"
586+msgid "Privacy Policy"
557−msgid "Numbers and letters"
558msgstr ""
587msgstr ""
559
588
560−#: qml/Wizard/Pages/40-wifi.qml:29
589+#: qml/Wizard/Pages/75-report-check.qml:26
561−msgid "Connect to Wi‑Fi"
590+msgid "Help Us Improve"
562−msgstr "Connecta't a la Wi-Fi"
591+msgstr ""
563
592
564−#: qml/Wizard/Pages/40-wifi.qml:168
593+#: qml/Wizard/Pages/75-report-check.qml:59
565−msgid "Available networks…"
594+msgid "Improve system performance by sending us crashes and error reports."
566−msgstr "Xarxes disponibles..."
595+msgstr ""
567
596
568−#: qml/Wizard/Pages/40-wifi.qml:169
597+#: qml/Wizard/Pages/75-report-check.qml:60
569−msgid "No available networks."
598+msgid "Privacy policy"
570−msgstr "No hi ha xarxes disponibles"
599+msgstr ""
571
600
572−#: qml/Wizard/Pages/50-location.qml:27
601+#: qml/Wizard/Pages/80-finished.qml:89
573−msgid "Location"
602+msgid "Welcome to Ubuntu"
603+msgstr ""
604+
605+#: qml/Wizard/Pages/80-finished.qml:104
606+msgid "You are ready to use your device now"
574−msgstr "Ubicació"
607+msgstr ""
575
608
576−#: qml/Wizard/Pages/50-location.qml:62
609+#: qml/Wizard/Pages/80-finished.qml:124
577−msgid "Let the phone detect your location:"
610+msgid "Get Started"
578−msgstr "Fes que el telèfon detecti la meua ubicació:"
611+msgstr ""
579
612
580−#: qml/Wizard/Pages/50-location.qml:69
613+#: qml/Wizard/Pages/here-terms.qml:25
581−msgid "Using GPS only (less accurate)"
614+msgid "Terms & Conditions"
582−msgstr "Utilitza només el GPS (menys precís)"
615+msgstr "Condicions generals"
583
616
584−#: qml/Wizard/Pages/50-location.qml:86
617+#: qml/Wizard/Pages/here-terms.qml:69
585−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
618+msgid "Your device uses positioning technologies provided by HERE."
586msgstr ""
619msgstr ""
587−"Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
588−"(recomanat)"
589
620
590−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
591−#: qml/Wizard/Pages/50-location.qml:103
621+#: qml/Wizard/Pages/here-terms.qml:81
592msgid ""
622msgid ""
593−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
623+"To provide you with positioning services and to improve their quality, HERE "
594−"conditions</a>."
624+"collects information about nearby cell towers and Wi-Fi hotspots around your "
625+"current location whenever your position is being found."
595msgstr ""
626msgstr ""
596−"Si seleccioneu esta opció, accepteu <a href='#'>les condicions generals del "
597−"servei Nokia HERE</a>."
598
627
599−#: qml/Wizard/Pages/50-location.qml:112
628+#: qml/Wizard/Pages/here-terms.qml:93
600−msgid "Not at all"
629+msgid ""
630+"The information collected is used to analyze the service and to improve the "
631+"use of service, but not to identify you personally."
601−msgstr "No"
632+msgstr ""
602
633
603−#: qml/Wizard/Pages/50-location.qml:124
634+#: qml/Wizard/Pages/here-terms.qml:106
604−msgid "You can change your mind later in <b>System Settings</b>."
635+#, qt-format
636+msgid "By continuing, you agree to the HERE platform %1 and %2."
605msgstr ""
637msgstr ""
606−"Podeu canviar-ho més avant a l'aplicació <b>Paràmetres del sistema</b>"
607
638
608−#: qml/Wizard/Pages/60-reporting.qml:26
639+#: qml/Wizard/Pages/here-terms.qml:107
609−msgid "Improving your experience"
640+msgid "Service Terms"
610−msgstr "Millora de l'experiència"
641+msgstr ""
611
642
612−#: qml/Wizard/Pages/60-reporting.qml:46
643+#: qml/Wizard/Pages/passcode-confirm.qml:43
644+#: qml/Wizard/Pages/passcode-desktop.qml:80
613−msgid ""
645+msgid "Confirm passcode"
614−"Your phone is set up to automatically report errors to Canonical and its "
646+msgstr "Confirmeu el codi d'accés"
615−"partners, the makers of the operating system."
647+
648+#: qml/Wizard/Pages/passcode-confirm.qml:45
649+msgid "Incorrect passcode."
616msgstr ""
650msgstr ""
617−"Este telèfon està configurat per enviar errors de manera automàtica a "
618−"Canonical i associats, els creadors del sistema operatiu."
619
651
620−#: qml/Wizard/Pages/60-reporting.qml:53
652+#: qml/Wizard/Pages/passcode-confirm.qml:45
653+msgctxt "Enter the passcode again"
621−msgid ""
654+msgid "Please re-enter."
622−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
623−"Privacy</b>"
624msgstr ""
655msgstr ""
625−"Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
626−"<b>Seguretat i privadesa</b>"
627
656
628−#: qml/Wizard/Pages/80-finished.qml:24
657+#: qml/Wizard/Pages/passcode-desktop.qml:30
629−msgid "All done"
658+msgid "Lock Screen Passcode"
630−msgstr "Tot fet"
659+msgstr ""
631
660
632−#: qml/Wizard/Pages/80-finished.qml:39
661+#: qml/Wizard/Pages/passcode-desktop.qml:56
633−msgid "Nice work!"
662+msgid "Enter 4 numbers to setup your passcode"
634−msgstr "Bona faena!"
663+msgstr ""
635
664
636−#: qml/Wizard/Pages/80-finished.qml:46
665+#: qml/Wizard/Pages/passcode-desktop.qml:65
637−msgid "Your device is now ready to use."
666+#: qml/Wizard/Pages/passcode-set.qml:54
667+msgid "Choose passcode"
638msgstr ""
668msgstr ""
639
669
640−#: qml/Wizard/Pages/80-finished.qml:53
670+#: qml/Wizard/Pages/passcode-desktop.qml:105
641−msgid "Finish"
671+msgid "Passcode too short"
642−msgstr "Finalitza"
672+msgstr ""
643
673
644−#: qml/Wizard/Pages/here-terms.qml:27
674+#: qml/Wizard/Pages/passcode-desktop.qml:107
645−msgid "Terms & Conditions"
675+msgid "Passcodes match"
676+msgstr ""
677+
678+#: qml/Wizard/Pages/passcode-desktop.qml:109
679+msgid "Passcodes do not match"
646−msgstr "Condicions generals"
680+msgstr ""
647
681
648−#: qml/Wizard/Pages/passwd-confirm.qml:49
682+#: qml/Wizard/Pages/passcode-set.qml:62
649−msgid "Confirm passphrase"
683+msgid "Passcode must be 4 characters long"
650−msgstr "Confirmeu la contrasenya"
684+msgstr ""
651
685
652−#: qml/Wizard/Pages/passwd-confirm.qml:50
686+#: qml/Wizard/Pages/password-set.qml:30
653−msgid "Confirm passcode"
687+msgid "Lock Screen Password"
654−msgstr "Confirmeu el codi d'accés"
688+msgstr ""
655
689
656−#: qml/Wizard/Pages/passwd-confirm.qml:53
690+#: qml/Wizard/Pages/password-set.qml:61
657−#: qml/Wizard/Pages/passwd-confirm.qml:54
691+msgid "Enter at least 8 characters"
658−msgid "Please try again."
659−msgstr "Torneu-ho a intentar."
692+msgstr ""
660
693
661−#: qml/Wizard/Pages/passwd-set.qml:61
694+#: qml/Wizard/Pages/password-set.qml:73
662−msgid "Choose your passcode"
695+msgid "Choose password"
663−msgstr "Trieu el codi d'accés"
696+msgstr ""
664
697
665−#: qml/Wizard/Pages/passwd-set.qml:68
698+#: qml/Wizard/Pages/password-set.qml:103
666−msgid "Passphrase must be 4 characters long"
699+msgid "Confirm password"
667−msgstr "La contrasenya ha de tindre 4 caràcters com a mínim"
700+msgstr ""
668
701
669−#. Translators: This is the arrow for "Back" buttons
670−#: qml/Wizard/StackButton.qml:39
702+#: qml/Wizard/Pages/sim.qml:27
671−#, qt-format
703+msgid "No SIM card installed"
672−msgid "〈 %1"
673−msgstr "〈 %1"
704+msgstr ""
674
705
675−#. Translators: This is the arrow for "Forward" buttons
706+#: qml/Wizard/Pages/sim.qml:54
707+msgid "SIM card added"
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:55
711+msgid "You must restart the device to access the mobile network."
712+msgstr ""
713+
714+#: qml/Wizard/Pages/sim.qml:59
715+msgid "Restart"
716+msgstr "Reinicia"
717+
718+#: qml/Wizard/Pages/sim.qml:78
719+msgid "You won’t be able to make calls or use text messaging without a SIM."
720+msgstr ""
721+
722+#: qml/Wizard/Pages/sim.qml:90
723+msgid "To proceed with no SIM tap Skip."
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:87
727+msgid "Passwords match"
728+msgstr ""
729+
676−#: qml/Wizard/StackButton.qml:42
730+#: qml/Wizard/PasswordMeter.qml:89
677−#, qt-format
731+msgid "Passwords do not match"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:93
678−msgid "%1 〉"
735+msgid "Strong password"
679−msgstr "%1 〉"
736+msgstr ""
737+
738+#: qml/Wizard/PasswordMeter.qml:95
739+msgid "Fair password"
740+msgstr ""
741+
742+#: qml/Wizard/PasswordMeter.qml:97
743+msgid "Weak password"
744+msgstr ""
745+
746+#: qml/Wizard/PasswordMeter.qml:99
747+msgid "Very weak password"
748+msgstr ""
680
749
681#~ msgid "Log out"
750#~ msgid "Log out"
682#~ msgstr "Ix"
751#~ msgstr "Ix"
@@ -684,6 +753,9 @@ msgstr "%1 〉"
684#~ msgid "Shut down"
753#~ msgid "Shut down"
685#~ msgstr "Apaga"
754#~ msgstr "Apaga"
686
755
756+#~ msgid "Are you sure you want to shut down?"
757+#~ msgstr "Segur que voleu apagar?"
758+
687#~ msgid "Reboot"
759#~ msgid "Reboot"
688#~ msgstr "Reinicia"
760#~ msgstr "Reinicia"
689
761
@@ -693,9 +765,6 @@ msgstr "%1 〉"
693#~ msgid "Power off"
765#~ msgid "Power off"
694#~ msgstr "Apaga"
766#~ msgstr "Apaga"
695
767
696−#~ msgid "Restart"
697−#~ msgstr "Reinicia"
698−
699#~ msgid "Skip intro"
768#~ msgid "Skip intro"
700#~ msgstr "Omet la introducció"
769#~ msgstr "Omet la introducció"
701
770
@@ -732,6 +801,12 @@ msgstr "%1 〉"
732#~ msgid "Well done"
801#~ msgid "Well done"
733#~ msgstr "Enhorabona!"
802#~ msgstr "Enhorabona!"
734
803
804+#~ msgid "See less"
805+#~ msgstr "Mostra'n menys"
806+
807+#~ msgid "See all"
808+#~ msgstr "Mostra-ho tot"
809+
735#~ msgid "Search"
810#~ msgid "Search"
736#~ msgstr "Cerca"
811#~ msgstr "Cerca"
737
812
@@ -774,15 +849,113 @@ msgstr "%1 〉"
774#~ msgid "Please re-enter"
849#~ msgid "Please re-enter"
775#~ msgstr "Torneu-ho a introduir"
850#~ msgstr "Torneu-ho a introduir"
776
851
852+#~ msgid "Hi!"
853+#~ msgstr "Hola!"
854+
777#~ msgid "Welcome to your Ubuntu phone."
855#~ msgid "Welcome to your Ubuntu phone."
778#~ msgstr "Vos donem la benvinguda al vostre telèfon Ubuntu."
856#~ msgstr "Vos donem la benvinguda al vostre telèfon Ubuntu."
779
857
858+#~ msgid "Let’s get started."
859+#~ msgstr "Comencem."
860+
861+#~ msgid "Continue"
862+#~ msgstr "Continua"
863+
864+#~ msgid "Add a SIM card and restart your device"
865+#~ msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
866+
867+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
868+#~ msgstr "Sense ella, no podreu fer cridades o enviar missatges de text."
869+
870+#~ msgid "Lock security"
871+#~ msgstr "Seguretat del bloqueig"
872+
780#~ msgid "Please select how you’d like to unlock your phone."
873#~ msgid "Please select how you’d like to unlock your phone."
781#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
874#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
782
875
876+#~ msgid "Available networks…"
877+#~ msgstr "Xarxes disponibles..."
878+
879+#~ msgid "No available networks."
880+#~ msgstr "No hi ha xarxes disponibles"
881+
882+#~ msgid "Location"
883+#~ msgstr "Ubicació"
884+
885+#~ msgid "Let the phone detect your location:"
886+#~ msgstr "Fes que el telèfon detecti la meua ubicació:"
887+
888+#~ msgid "Using GPS only (less accurate)"
889+#~ msgstr "Utilitza només el GPS (menys precís)"
890+
891+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
892+#~ msgstr ""
893+#~ "Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
894+#~ "(recomanat)"
895+
896+#~ msgid ""
897+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
898+#~ "conditions</a>."
899+#~ msgstr ""
900+#~ "Si seleccioneu esta opció, accepteu <a href='#'>les condicions generals del "
901+#~ "servei Nokia HERE</a>."
902+
903+#~ msgid "Not at all"
904+#~ msgstr "No"
905+
906+#~ msgid "You can change your mind later in <b>System Settings</b>."
907+#~ msgstr ""
908+#~ "Podeu canviar-ho més avant a l'aplicació <b>Paràmetres del sistema</b>"
909+
910+#~ msgid "Improving your experience"
911+#~ msgstr "Millora de l'experiència"
912+
913+#~ msgid ""
914+#~ "Your phone is set up to automatically report errors to Canonical and its "
915+#~ "partners, the makers of the operating system."
916+#~ msgstr ""
917+#~ "Este telèfon està configurat per enviar errors de manera automàtica a "
918+#~ "Canonical i associats, els creadors del sistema operatiu."
919+
920+#~ msgid ""
921+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
922+#~ "Privacy</b>"
923+#~ msgstr ""
924+#~ "Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
925+#~ "<b>Seguretat i privadesa</b>"
926+
927+#~ msgid "All done"
928+#~ msgstr "Tot fet"
929+
930+#~ msgid "Nice work!"
931+#~ msgstr "Bona faena!"
932+
783#~ msgid "Your phone is now ready to use."
933#~ msgid "Your phone is now ready to use."
784#~ msgstr "Ja podeu utilitzar el vostre telèfon."
934#~ msgstr "Ja podeu utilitzar el vostre telèfon."
785
935
936+#~ msgid "Finish"
937+#~ msgstr "Finalitza"
938+
939+#~ msgid "Confirm passphrase"
940+#~ msgstr "Confirmeu la contrasenya"
941+
942+#~ msgid "Please try again."
943+#~ msgstr "Torneu-ho a intentar."
944+
945+#~ msgid "Choose your passcode"
946+#~ msgstr "Trieu el codi d'accés"
947+
948+#~ msgid "Passphrase must be 4 characters long"
949+#~ msgstr "La contrasenya ha de tindre 4 caràcters com a mínim"
950+
951+#, qt-format
952+#~ msgid "〈 %1"
953+#~ msgstr "〈 %1"
954+
955+#, qt-format
956+#~ msgid "%1 〉"
957+#~ msgstr "%1 〉"
958+
786#~ msgid "Type or say a command"
959#~ msgid "Type or say a command"
787#~ msgstr "Escriviu o pronuncieu una ordre"
960#~ msgstr "Escriviu o pronuncieu una ordre"
788
961
po/ce.po+261−183
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2015-02-15 04:01+0000\n"
11"PO-Revision-Date: 2015-02-15 04:01+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Chechen <ce@li.org>\n"
13"Language-Team: Chechen <ce@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-03-13 05:50+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -73,64 +73,46 @@ msgctxt "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:194
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77−#: qml/Components/Dialogs.qml:253
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
78msgid "Cancel"
79msgid "Cancel"
79msgstr ""
80msgstr ""
80
81
81#: qml/Components/Dialogs.qml:173
82#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr ""
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr ""
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr ""
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr ""
99−
100−#: qml/Components/Dialogs.qml:207
101msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
102msgid "Reboot"
84msgid "Reboot"
103msgstr ""
85msgstr ""
104
86
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
106msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
107msgstr ""
89msgstr ""
108
90
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
110msgid "No"
92msgid "No"
111msgstr ""
93msgstr ""
112
94
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:182
114msgid "Yes"
96msgid "Yes"
115msgstr ""
97msgstr ""
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
119msgid "Power"
101msgid "Power"
120msgstr ""
102msgstr ""
121
103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
123msgid ""
105msgid ""
124"Are you sure you would like\n"
106"Are you sure you would like\n"
125"to power off?"
107"to power off?"
126msgstr ""
108msgstr ""
127
109
128−#: qml/Components/Dialogs.qml:235
110+#: qml/Components/Dialogs.qml:200
129msgctxt "Button: Power off the system"
111msgctxt "Button: Power off the system"
130msgid "Power off"
112msgid "Power off"
131msgstr ""
113msgstr ""
132
114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:209
134msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
135msgid "Restart"
117msgid "Restart"
136msgstr ""
118msgstr ""
@@ -173,42 +155,58 @@ msgstr ""
173msgid "Close all"
155msgid "Close all"
174msgstr ""
156msgstr ""
175
157
176−#: qml/Dash/DashPageHeader.qml:270
158+#: qml/Dash/DashPageHeader.qml:337
177msgctxt "Button: Open the Ubuntu Store"
159msgctxt "Button: Open the Ubuntu Store"
178msgid "Store"
160msgid "Store"
179msgstr ""
161msgstr ""
180
162
181−#: qml/Dash/DashPageHeader.qml:277
163+#: qml/Dash/DashPageHeader.qml:344
182msgctxt "Button: Start a search in the current dash scope"
164msgctxt "Button: Start a search in the current dash scope"
183msgid "Search"
165msgid "Search"
184msgstr ""
166msgstr ""
185
167
186−#: qml/Dash/DashPageHeader.qml:287
168+#: qml/Dash/DashPageHeader.qml:354
187msgctxt "Button: Show the current dash scope settings"
169msgctxt "Button: Show the current dash scope settings"
188msgid "Settings"
170msgid "Settings"
189msgstr ""
171msgstr ""
190
172
191−#: qml/Dash/DashPageHeader.qml:294
173+#: qml/Dash/DashPageHeader.qml:361
192msgid "Remove from Favorites"
174msgid "Remove from Favorites"
193msgstr ""
175msgstr ""
194
176
195−#: qml/Dash/DashPageHeader.qml:294
177+#: qml/Dash/DashPageHeader.qml:361
196msgid "Add to Favorites"
178msgid "Add to Favorites"
197msgstr ""
179msgstr ""
198
180
181+#: qml/Dash/FiltersPopover.qml:60
182+msgid "Refine your results"
183+msgstr ""
184+
185+#: qml/Dash/FiltersPopover.qml:69
186+msgid "Reset"
187+msgstr ""
188+
199−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
200−msgid "See less"
190+msgid "Show less"
201msgstr ""
191msgstr ""
202
192
203−#: qml/Dash/GenericScopeView.qml:567
193+#: qml/Dash/GenericScopeView.qml:579
204−msgid "See all"
194+msgid "Show all"
205msgstr ""
195msgstr ""
206
196
207−#: qml/Dash/GenericScopeView.qml:629
197+#: qml/Dash/GenericScopeView.qml:636
208msgctxt "Label: Hint for dash search line edit"
198msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
199msgid "Search"
210msgstr ""
200msgstr ""
211
201
202+#: qml/Dash/PageHeaderExtraPanel.qml:55
203+msgid "Recent Searches"
204+msgstr ""
205+
206+#: qml/Dash/PageHeaderExtraPanel.qml:66
207+msgid "Clear All"
208+msgstr ""
209+
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
213msgid "More..."
211msgid "More..."
214msgstr ""
212msgstr ""
@@ -276,11 +274,11 @@ msgstr ""
276msgid "Tap to unlock"
274msgid "Tap to unlock"
277msgstr ""
275msgstr ""
278
276
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
280msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
281msgstr ""
279msgstr ""
282
280
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
284msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
285msgstr ""
283msgstr ""
286
284
@@ -305,7 +303,7 @@ msgstr ""
305msgid "Enter %1"
303msgid "Enter %1"
306msgstr ""
304msgstr ""
307
305
308−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
309msgid "Enter passphrase"
307msgid "Enter passphrase"
310msgstr ""
308msgstr ""
311
309
@@ -331,7 +329,7 @@ msgstr ""
331msgid "Sorry, incorrect passcode"
329msgid "Sorry, incorrect passcode"
332msgstr ""
330msgstr ""
333
331
334−#: qml/Notifications/NotificationMenuItemFactory.qml:129
332+#: qml/Notifications/NotificationMenuItemFactory.qml:124
335msgid "Show password"
333msgid "Show password"
336msgstr ""
334msgstr ""
337
335
@@ -343,62 +341,62 @@ msgstr ""
343msgid "Conference"
341msgid "Conference"
344msgstr ""
342msgstr ""
345
343
346−#: qml/Panel/Indicators/MenuItemFactory.qml:752
344+#: qml/Panel/Indicators/MenuItemFactory.qml:762
347msgid "Nothing is playing"
345msgid "Nothing is playing"
348msgstr ""
346msgstr ""
349
347
350−#: qml/Panel/Indicators/MenuItemFactory.qml:881
348+#: qml/Panel/Indicators/MenuItemFactory.qml:891
351#, qt-format
349#, qt-format
352msgid "%1 hour"
350msgid "%1 hour"
353msgid_plural "%1 hours"
351msgid_plural "%1 hours"
354msgstr[0] ""
352msgstr[0] ""
355msgstr[1] ""
353msgstr[1] ""
356
354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:885
355+#: qml/Panel/Indicators/MenuItemFactory.qml:895
358#, qt-format
356#, qt-format
359msgid "%1 minute"
357msgid "%1 minute"
360msgid_plural "%1 minutes"
358msgid_plural "%1 minutes"
361msgstr[0] ""
359msgstr[0] ""
362msgstr[1] ""
360msgstr[1] ""
363
361
364−#: qml/Panel/Indicators/MenuItemFactory.qml:890
362+#: qml/Panel/Indicators/MenuItemFactory.qml:900
365#, qt-format
363#, qt-format
366msgid "%1 second"
364msgid "%1 second"
367msgid_plural "%1 seconds"
365msgid_plural "%1 seconds"
368msgstr[0] ""
366msgstr[0] ""
369msgstr[1] ""
367msgstr[1] ""
370
368
371−#: qml/Panel/Indicators/MenuItemFactory.qml:893
369+#: qml/Panel/Indicators/MenuItemFactory.qml:903
372msgid "0 seconds"
370msgid "0 seconds"
373msgstr ""
371msgstr ""
374
372
375#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
376−#: qml/Panel/Indicators/MenuItemFactory.qml:895
374+#: qml/Panel/Indicators/MenuItemFactory.qml:905
377#, qt-format
375#, qt-format
378msgid "%1 remaining"
376msgid "%1 remaining"
379msgstr ""
377msgstr ""
380
378
381−#: qml/Panel/Indicators/MenuItemFactory.qml:901
379+#: qml/Panel/Indicators/MenuItemFactory.qml:911
382msgid "In queue…"
380msgid "In queue…"
383msgstr ""
381msgstr ""
384
382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:905
383+#: qml/Panel/Indicators/MenuItemFactory.qml:915
386msgid "Downloading"
384msgid "Downloading"
387msgstr ""
385msgstr ""
388
386
389−#: qml/Panel/Indicators/MenuItemFactory.qml:907
387+#: qml/Panel/Indicators/MenuItemFactory.qml:917
390msgid "Paused, tap to resume"
388msgid "Paused, tap to resume"
391msgstr ""
389msgstr ""
392
390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:909
391+#: qml/Panel/Indicators/MenuItemFactory.qml:919
394msgid "Canceled"
392msgid "Canceled"
395msgstr ""
393msgstr ""
396
394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:911
395+#: qml/Panel/Indicators/MenuItemFactory.qml:921
398msgid "Finished"
396msgid "Finished"
399msgstr ""
397msgstr ""
400
398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:913
399+#: qml/Panel/Indicators/MenuItemFactory.qml:923
402msgid "Failed, tap to retry"
400msgid "Failed, tap to retry"
403msgstr ""
401msgstr ""
404
402
@@ -418,241 +416,321 @@ msgctxt "Button: Call back on phone"
418msgid "Call back"
416msgid "Call back"
419msgstr ""
417msgstr ""
420
418
421−#: qml/Tutorial/TutorialBottom.qml:28
419+#: qml/Stages/SideStage.qml:76
422−msgid "Open special menus"
420+msgid "Drag using 3 fingers any application from one window to the other"
423msgstr ""
421msgstr ""
424
422
425−#: qml/Tutorial/TutorialBottom.qml:29
423+#: qml/Tutorial/TutorialBottom.qml:78
426−msgid "Swipe up from the bottom edge."
424+msgid "Swipe up to add a contact"
427msgstr ""
425msgstr ""
428
426
429−#: qml/Tutorial/TutorialBottomFinish.qml:24
427+#: qml/Tutorial/TutorialBottom.qml:80
430−msgid "This action does different things for different apps"
428+msgid "Swipe up for favorite calculations"
431msgstr ""
429msgstr ""
432
430
433−#: qml/Tutorial/TutorialBottomFinish.qml:25
431+#: qml/Tutorial/TutorialBottom.qml:82
434−msgid "Tap here to finish."
432+msgid "Swipe up for recent calls"
435msgstr ""
433msgstr ""
436
434
437−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
435+#: qml/Tutorial/TutorialBottom.qml:84
438−#: qml/Tutorial/TutorialRight.qml:144
436+msgid "Swipe up to create a message"
439−msgid "Tap here to continue."
440msgstr ""
437msgstr ""
441
438
442−#: qml/Tutorial/TutorialLeft.qml:26
439+#: qml/Tutorial/TutorialBottom.qml:85
443−msgid "Open the launcher"
440+msgid "Swipe up to manage the app"
444msgstr ""
441msgstr ""
445
442
446−#: qml/Tutorial/TutorialLeft.qml:27
443+#: qml/Tutorial/TutorialLeftLong.qml:47
447−msgid "Short swipe from the left edge."
444+msgid "Long swipe from the left edge to open the Today scope"
448msgstr ""
445msgstr ""
449
446
450−#: qml/Tutorial/TutorialLeftFinish.qml:24
447+#: qml/Tutorial/TutorialLeft.qml:47
451−msgid "These are the shortcuts to favorite apps"
448+msgid "Swipe from the left edge to open the launcher"
452msgstr ""
449msgstr ""
453
450
454−#: qml/Tutorial/TutorialPage.qml:178
451+#: qml/Tutorial/TutorialRight.qml:55
455−msgid "You almost got it!"
452+msgid "Push your mouse against the right edge to view your open apps"
456msgstr ""
453msgstr ""
457
454
458−#: qml/Tutorial/TutorialPage.qml:195
455+#: qml/Tutorial/TutorialRight.qml:56
459−msgid "Try again."
456+msgid "Short or long swipe from the right edge to view your open apps"
460msgstr ""
457msgstr ""
461
458
462−#: qml/Tutorial/TutorialRight.qml:31
459+#: qml/Tutorial/TutorialTop.qml:53
463−msgid "To view open apps"
460+msgid "Swipe from the top right edge to open the notification bar"
464msgstr ""
461msgstr ""
465
462
466−#: qml/Tutorial/TutorialRight.qml:32
463+#: qml/Tutorial/TutorialTop.qml:54
467−msgid "Long swipe from the right edge."
464+msgid "Swipe from the top edge to open the notification bar"
468msgstr ""
465msgstr ""
469
466
470−#: qml/Tutorial/TutorialRight.qml:122
471−msgid "View all your running tasks."
472−msgstr ""
473−
474−#: qml/Wizard/Page.qml:89
467+#: qml/Wizard/Page.qml:54
475msgctxt "Button: Go back one page in the Wizard"
468msgctxt "Button: Go back one page in the Wizard"
476msgid "Back"
469msgid "Back"
477msgstr ""
470msgstr ""
478
471
479#: qml/Wizard/Pages/10-welcome.qml:27
472#: qml/Wizard/Pages/10-welcome.qml:27
480−msgid "Hi!"
473+msgid "Language"
481msgstr ""
474msgstr ""
482
475
483−#: qml/Wizard/Pages/10-welcome.qml:44
476+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
484−msgid "Welcome to your Ubuntu device."
477+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
478+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479+#: qml/Wizard/Pages/75-report-check.qml:84
480+#: qml/Wizard/Pages/passcode-desktop.qml:124
481+#: qml/Wizard/Pages/password-set.qml:141
482+msgid "Next"
485msgstr ""
483msgstr ""
486
484
487−#: qml/Wizard/Pages/10-welcome.qml:52
485+#: qml/Wizard/Pages/30-wifi.qml:29
488−msgid "Let’s get started."
486+msgid "Connect to Wi‑Fi"
489msgstr ""
487msgstr ""
490
488
491−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
489+#: qml/Wizard/Pages/30-wifi.qml:130
492−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
490+msgid "Connected"
493−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
494−#: qml/Wizard/Pages/passwd-set.qml:90
495−msgid "Continue"
496msgstr ""
491msgstr ""
497
492
498−#: qml/Wizard/Pages/20-sim.qml:25
493+#: qml/Wizard/Pages/30-wifi.qml:163
499−msgid "Add a SIM card and restart your device"
494+msgid "Available Wi-Fi networks"
500msgstr ""
495msgstr ""
501
496
502−#: qml/Wizard/Pages/20-sim.qml:59
497+#: qml/Wizard/Pages/30-wifi.qml:164
503−msgid "Without it, you won’t be able to make calls or use text messaging."
498+msgid "No available Wi-Fi networks"
504msgstr ""
499msgstr ""
505
500
506−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502+#: qml/Wizard/Pages/sim.qml:101
507msgid "Skip"
503msgid "Skip"
508msgstr ""
504msgstr ""
509
505
510−#: qml/Wizard/Pages/30-passwd-type.qml:39
506+#: qml/Wizard/Pages/40-location.qml:27
511−msgid "Lock security"
507+msgid "Location Services"
512msgstr ""
508msgstr ""
513
509
514−#: qml/Wizard/Pages/30-passwd-type.qml:79
510+#: qml/Wizard/Pages/40-location.qml:83
515−msgid "Please select how you’d like to unlock your device."
511+msgid ""
512+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
513+"(recommended)"
516msgstr ""
514msgstr ""
517
515
518−#: qml/Wizard/Pages/30-passwd-type.qml:102
516+#: qml/Wizard/Pages/40-location.qml:105
519−msgctxt "Label: Type of security method"
517+#, qt-format
518+msgid "By selecting this option you agree to the Nokia HERE %1."
519+msgstr ""
520+
521+#: qml/Wizard/Pages/40-location.qml:106
522+msgctxt "part of: Nokia HERE terms and conditions"
523+msgid "terms and conditions"
524+msgstr ""
525+
526+#: qml/Wizard/Pages/40-location.qml:160
527+msgid "GPS only"
528+msgstr ""
529+
530+#: qml/Wizard/Pages/40-location.qml:214
531+msgid "Don't use my location"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:260
535+msgid "You can change it later in System Settings."
536+msgstr ""
537+
538+#: qml/Wizard/Pages/50-timezone.qml:29
520−msgid "Swipe"
539+msgid "Time Zone"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/50-timezone.qml:178
543+msgid "Enter your city"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/60-account.qml:24
547+msgid "Personalize Your Device"
521msgstr ""
548msgstr ""
522
549
523−#: qml/Wizard/Pages/30-passwd-type.qml:103
550+#: qml/Wizard/Pages/60-account.qml:48
524−msgctxt "Label: Description of security method"
551+msgid "Preferred Name"
525−msgid "No security"
526msgstr ""
552msgstr ""
527
553
528−#: qml/Wizard/Pages/30-passwd-type.qml:105
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
555+msgid "Lock Screen"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
529msgctxt "Label: Type of security method"
559msgctxt "Label: Type of security method"
530−msgid "Passcode"
560+msgid "Create new password"
531msgstr ""
561msgstr ""
532
562
533−#: qml/Wizard/Pages/30-passwd-type.qml:106
563+#: qml/Wizard/Pages/70-passwd-type.qml:103
534−msgctxt "Label: Description of security method"
564+msgctxt "Label: Type of security method"
535−msgid "4 digits only"
565+msgid "Create passcode (numbers only)"
536msgstr ""
566msgstr ""
537
567
538−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
539msgctxt "Label: Type of security method"
569msgctxt "Label: Type of security method"
540−msgid "Passphrase"
570+msgid "No lock code"
541msgstr ""
571msgstr ""
542
572
543−#: qml/Wizard/Pages/30-passwd-type.qml:109
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
544−msgctxt "Label: Description of security method"
574+msgid "Privacy Policy"
545−msgid "Numbers and letters"
546msgstr ""
575msgstr ""
547
576
548−#: qml/Wizard/Pages/40-wifi.qml:29
577+#: qml/Wizard/Pages/75-report-check.qml:26
549−msgid "Connect to Wi‑Fi"
578+msgid "Help Us Improve"
579+msgstr ""
580+
581+#: qml/Wizard/Pages/75-report-check.qml:59
582+msgid "Improve system performance by sending us crashes and error reports."
583+msgstr ""
584+
585+#: qml/Wizard/Pages/75-report-check.qml:60
586+msgid "Privacy policy"
550msgstr ""
587msgstr ""
551
588
552−#: qml/Wizard/Pages/40-wifi.qml:168
589+#: qml/Wizard/Pages/80-finished.qml:89
553−msgid "Available networks…"
590+msgid "Welcome to Ubuntu"
554msgstr ""
591msgstr ""
555
592
556−#: qml/Wizard/Pages/40-wifi.qml:169
593+#: qml/Wizard/Pages/80-finished.qml:104
557−msgid "No available networks."
594+msgid "You are ready to use your device now"
558msgstr ""
595msgstr ""
559
596
560−#: qml/Wizard/Pages/50-location.qml:27
597+#: qml/Wizard/Pages/80-finished.qml:124
561−msgid "Location"
598+msgid "Get Started"
562msgstr ""
599msgstr ""
563
600
564−#: qml/Wizard/Pages/50-location.qml:62
601+#: qml/Wizard/Pages/here-terms.qml:25
565−msgid "Let the phone detect your location:"
602+msgid "Terms & Conditions"
566msgstr ""
603msgstr ""
567
604
568−#: qml/Wizard/Pages/50-location.qml:69
605+#: qml/Wizard/Pages/here-terms.qml:69
569−msgid "Using GPS only (less accurate)"
606+msgid "Your device uses positioning technologies provided by HERE."
570msgstr ""
607msgstr ""
571
608
572−#: qml/Wizard/Pages/50-location.qml:86
609+#: qml/Wizard/Pages/here-terms.qml:81
573−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
610+msgid ""
611+"To provide you with positioning services and to improve their quality, HERE "
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
574msgstr ""
614msgstr ""
575
615
576−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
577−#: qml/Wizard/Pages/50-location.qml:103
616+#: qml/Wizard/Pages/here-terms.qml:93
578msgid ""
617msgid ""
579−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
618+"The information collected is used to analyze the service and to improve the "
580−"conditions</a>."
619+"use of service, but not to identify you personally."
581msgstr ""
620msgstr ""
582
621
583−#: qml/Wizard/Pages/50-location.qml:112
622+#: qml/Wizard/Pages/here-terms.qml:106
584−msgid "Not at all"
623+#, qt-format
624+msgid "By continuing, you agree to the HERE platform %1 and %2."
585msgstr ""
625msgstr ""
586
626
587−#: qml/Wizard/Pages/50-location.qml:124
627+#: qml/Wizard/Pages/here-terms.qml:107
588−msgid "You can change your mind later in <b>System Settings</b>."
628+msgid "Service Terms"
589msgstr ""
629msgstr ""
590
630
591−#: qml/Wizard/Pages/60-reporting.qml:26
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
592−msgid "Improving your experience"
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
633+msgid "Confirm passcode"
593msgstr ""
634msgstr ""
594
635
595−#: qml/Wizard/Pages/60-reporting.qml:46
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
596−msgid ""
637+msgid "Incorrect passcode."
597−"Your phone is set up to automatically report errors to Canonical and its "
598−"partners, the makers of the operating system."
599msgstr ""
638msgstr ""
600
639
601−#: qml/Wizard/Pages/60-reporting.qml:53
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
641+msgctxt "Enter the passcode again"
602−msgid ""
642+msgid "Please re-enter."
603−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
604−"Privacy</b>"
605msgstr ""
643msgstr ""
606
644
607−#: qml/Wizard/Pages/80-finished.qml:24
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
608−msgid "All done"
646+msgid "Lock Screen Passcode"
609msgstr ""
647msgstr ""
610
648
611−#: qml/Wizard/Pages/80-finished.qml:39
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
612−msgid "Nice work!"
650+msgid "Enter 4 numbers to setup your passcode"
613msgstr ""
651msgstr ""
614
652
615−#: qml/Wizard/Pages/80-finished.qml:46
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
616−msgid "Your device is now ready to use."
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
617msgstr ""
656msgstr ""
618
657
619−#: qml/Wizard/Pages/80-finished.qml:53
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
620−msgid "Finish"
659+msgid "Passcode too short"
621msgstr ""
660msgstr ""
622
661
623−#: qml/Wizard/Pages/here-terms.qml:27
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
624−msgid "Terms & Conditions"
663+msgid "Passcodes match"
625msgstr ""
664msgstr ""
626
665
627−#: qml/Wizard/Pages/passwd-confirm.qml:49
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
628−msgid "Confirm passphrase"
667+msgid "Passcodes do not match"
629msgstr ""
668msgstr ""
630
669
631−#: qml/Wizard/Pages/passwd-confirm.qml:50
670+#: qml/Wizard/Pages/passcode-set.qml:62
632−msgid "Confirm passcode"
671+msgid "Passcode must be 4 characters long"
633msgstr ""
672msgstr ""
634
673
635−#: qml/Wizard/Pages/passwd-confirm.qml:53
674+#: qml/Wizard/Pages/password-set.qml:30
636−#: qml/Wizard/Pages/passwd-confirm.qml:54
675+msgid "Lock Screen Password"
637−msgid "Please try again."
638msgstr ""
676msgstr ""
639
677
640−#: qml/Wizard/Pages/passwd-set.qml:61
678+#: qml/Wizard/Pages/password-set.qml:61
641−msgid "Choose your passcode"
679+msgid "Enter at least 8 characters"
642msgstr ""
680msgstr ""
643
681
644−#: qml/Wizard/Pages/passwd-set.qml:68
682+#: qml/Wizard/Pages/password-set.qml:73
645−msgid "Passphrase must be 4 characters long"
683+msgid "Choose password"
646msgstr ""
684msgstr ""
647
685
648−#. Translators: This is the arrow for "Back" buttons
686+#: qml/Wizard/Pages/password-set.qml:103
649−#: qml/Wizard/StackButton.qml:39
687+msgid "Confirm password"
650−#, qt-format
651−msgid "〈 %1"
652msgstr ""
688msgstr ""
653
689
654−#. Translators: This is the arrow for "Forward" buttons
690+#: qml/Wizard/Pages/sim.qml:27
691+msgid "No SIM card installed"
692+msgstr ""
693+
694+#: qml/Wizard/Pages/sim.qml:54
695+msgid "SIM card added"
696+msgstr ""
697+
698+#: qml/Wizard/Pages/sim.qml:55
699+msgid "You must restart the device to access the mobile network."
700+msgstr ""
701+
702+#: qml/Wizard/Pages/sim.qml:59
703+msgid "Restart"
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:78
707+msgid "You won’t be able to make calls or use text messaging without a SIM."
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:90
711+msgid "To proceed with no SIM tap Skip."
712+msgstr ""
713+
714+#: qml/Wizard/PasswordMeter.qml:87
715+msgid "Passwords match"
716+msgstr ""
717+
655−#: qml/Wizard/StackButton.qml:42
718+#: qml/Wizard/PasswordMeter.qml:89
656−#, qt-format
719+msgid "Passwords do not match"
720+msgstr ""
721+
722+#: qml/Wizard/PasswordMeter.qml:93
723+msgid "Strong password"
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:95
727+msgid "Fair password"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:97
657−msgid "%1 〉"
731+msgid "Weak password"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:99
735+msgid "Very weak password"
658msgstr ""
736msgstr ""
po/ckb.po+261−183
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-03-13 05:51+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:55+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
@@ -73,64 +73,46 @@ msgctxt "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:194
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77−#: qml/Components/Dialogs.qml:253
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
78msgid "Cancel"
79msgid "Cancel"
79msgstr ""
80msgstr ""
80
81
81#: qml/Components/Dialogs.qml:173
82#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr ""
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr ""
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr ""
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr ""
99−
100−#: qml/Components/Dialogs.qml:207
101msgctxt "Title: Reboot dialog"
83msgctxt "Title: Reboot dialog"
102msgid "Reboot"
84msgid "Reboot"
103msgstr ""
85msgstr ""
104
86
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
106msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
107msgstr ""
89msgstr ""
108
90
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
110msgid "No"
92msgid "No"
111msgstr ""
93msgstr ""
112
94
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:182
114msgid "Yes"
96msgid "Yes"
115msgstr ""
97msgstr ""
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118msgctxt "Title: Power off/Restart dialog"
100msgctxt "Title: Power off/Restart dialog"
119msgid "Power"
101msgid "Power"
120msgstr ""
102msgstr ""
121
103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
123msgid ""
105msgid ""
124"Are you sure you would like\n"
106"Are you sure you would like\n"
125"to power off?"
107"to power off?"
126msgstr ""
108msgstr ""
127
109
128−#: qml/Components/Dialogs.qml:235
110+#: qml/Components/Dialogs.qml:200
129msgctxt "Button: Power off the system"
111msgctxt "Button: Power off the system"
130msgid "Power off"
112msgid "Power off"
131msgstr ""
113msgstr ""
132
114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:209
134msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
135msgid "Restart"
117msgid "Restart"
136msgstr ""
118msgstr ""
@@ -173,42 +155,58 @@ msgstr ""
173msgid "Close all"
155msgid "Close all"
174msgstr ""
156msgstr ""
175
157
176−#: qml/Dash/DashPageHeader.qml:270
158+#: qml/Dash/DashPageHeader.qml:337
177msgctxt "Button: Open the Ubuntu Store"
159msgctxt "Button: Open the Ubuntu Store"
178msgid "Store"
160msgid "Store"
179msgstr ""
161msgstr ""
180
162
181−#: qml/Dash/DashPageHeader.qml:277
163+#: qml/Dash/DashPageHeader.qml:344
182msgctxt "Button: Start a search in the current dash scope"
164msgctxt "Button: Start a search in the current dash scope"
183msgid "Search"
165msgid "Search"
184msgstr ""
166msgstr ""
185
167
186−#: qml/Dash/DashPageHeader.qml:287
168+#: qml/Dash/DashPageHeader.qml:354
187msgctxt "Button: Show the current dash scope settings"
169msgctxt "Button: Show the current dash scope settings"
188msgid "Settings"
170msgid "Settings"
189msgstr ""
171msgstr ""
190
172
191−#: qml/Dash/DashPageHeader.qml:294
173+#: qml/Dash/DashPageHeader.qml:361
192msgid "Remove from Favorites"
174msgid "Remove from Favorites"
193msgstr ""
175msgstr ""
194
176
195−#: qml/Dash/DashPageHeader.qml:294
177+#: qml/Dash/DashPageHeader.qml:361
196msgid "Add to Favorites"
178msgid "Add to Favorites"
197msgstr ""
179msgstr ""
198
180
181+#: qml/Dash/FiltersPopover.qml:60
182+msgid "Refine your results"
183+msgstr ""
184+
185+#: qml/Dash/FiltersPopover.qml:69
186+msgid "Reset"
187+msgstr ""
188+
199−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
200−msgid "See less"
190+msgid "Show less"
201msgstr ""
191msgstr ""
202
192
203−#: qml/Dash/GenericScopeView.qml:567
193+#: qml/Dash/GenericScopeView.qml:579
204−msgid "See all"
194+msgid "Show all"
205msgstr ""
195msgstr ""
206
196
207−#: qml/Dash/GenericScopeView.qml:629
197+#: qml/Dash/GenericScopeView.qml:636
208msgctxt "Label: Hint for dash search line edit"
198msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
199msgid "Search"
210msgstr ""
200msgstr ""
211
201
202+#: qml/Dash/PageHeaderExtraPanel.qml:55
203+msgid "Recent Searches"
204+msgstr ""
205+
206+#: qml/Dash/PageHeaderExtraPanel.qml:66
207+msgid "Clear All"
208+msgstr ""
209+
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
213msgid "More..."
211msgid "More..."
214msgstr ""
212msgstr ""
@@ -276,11 +274,11 @@ msgstr ""
276msgid "Tap to unlock"
274msgid "Tap to unlock"
277msgstr ""
275msgstr ""
278
276
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
280msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
281msgstr ""
279msgstr ""
282
280
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
284msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
285msgstr ""
283msgstr ""
286
284
@@ -305,7 +303,7 @@ msgstr ""
305msgid "Enter %1"
303msgid "Enter %1"
306msgstr ""
304msgstr ""
307
305
308−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
309msgid "Enter passphrase"
307msgid "Enter passphrase"
310msgstr ""
308msgstr ""
311
309
@@ -331,7 +329,7 @@ msgstr ""
331msgid "Sorry, incorrect passcode"
329msgid "Sorry, incorrect passcode"
332msgstr ""
330msgstr ""
333
331
334−#: qml/Notifications/NotificationMenuItemFactory.qml:129
332+#: qml/Notifications/NotificationMenuItemFactory.qml:124
335msgid "Show password"
333msgid "Show password"
336msgstr "تێپەڕەوشە پیشان بدە"
334msgstr "تێپەڕەوشە پیشان بدە"
337
335
@@ -343,62 +341,62 @@ msgstr ""
343msgid "Conference"
341msgid "Conference"
344msgstr ""
342msgstr ""
345
343
346−#: qml/Panel/Indicators/MenuItemFactory.qml:752
344+#: qml/Panel/Indicators/MenuItemFactory.qml:762
347msgid "Nothing is playing"
345msgid "Nothing is playing"
348msgstr ""
346msgstr ""
349
347
350−#: qml/Panel/Indicators/MenuItemFactory.qml:881
348+#: qml/Panel/Indicators/MenuItemFactory.qml:891
351#, qt-format
349#, qt-format
352msgid "%1 hour"
350msgid "%1 hour"
353msgid_plural "%1 hours"
351msgid_plural "%1 hours"
354msgstr[0] ""
352msgstr[0] ""
355msgstr[1] ""
353msgstr[1] ""
356
354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:885
355+#: qml/Panel/Indicators/MenuItemFactory.qml:895
358#, qt-format
356#, qt-format
359msgid "%1 minute"
357msgid "%1 minute"
360msgid_plural "%1 minutes"
358msgid_plural "%1 minutes"
361msgstr[0] ""
359msgstr[0] ""
362msgstr[1] ""
360msgstr[1] ""
363
361
364−#: qml/Panel/Indicators/MenuItemFactory.qml:890
362+#: qml/Panel/Indicators/MenuItemFactory.qml:900
365#, qt-format
363#, qt-format
366msgid "%1 second"
364msgid "%1 second"
367msgid_plural "%1 seconds"
365msgid_plural "%1 seconds"
368msgstr[0] ""
366msgstr[0] ""
369msgstr[1] ""
367msgstr[1] ""
370
368
371−#: qml/Panel/Indicators/MenuItemFactory.qml:893
369+#: qml/Panel/Indicators/MenuItemFactory.qml:903
372msgid "0 seconds"
370msgid "0 seconds"
373msgstr ""
371msgstr ""
374
372
375#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
376−#: qml/Panel/Indicators/MenuItemFactory.qml:895
374+#: qml/Panel/Indicators/MenuItemFactory.qml:905
377#, qt-format
375#, qt-format
378msgid "%1 remaining"
376msgid "%1 remaining"
379msgstr ""
377msgstr ""
380
378
381−#: qml/Panel/Indicators/MenuItemFactory.qml:901
379+#: qml/Panel/Indicators/MenuItemFactory.qml:911
382msgid "In queue…"
380msgid "In queue…"
383msgstr ""
381msgstr ""
384
382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:905
383+#: qml/Panel/Indicators/MenuItemFactory.qml:915
386msgid "Downloading"
384msgid "Downloading"
387msgstr ""
385msgstr ""
388
386
389−#: qml/Panel/Indicators/MenuItemFactory.qml:907
387+#: qml/Panel/Indicators/MenuItemFactory.qml:917
390msgid "Paused, tap to resume"
388msgid "Paused, tap to resume"
391msgstr ""
389msgstr ""
392
390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:909
391+#: qml/Panel/Indicators/MenuItemFactory.qml:919
394msgid "Canceled"
392msgid "Canceled"
395msgstr ""
393msgstr ""
396
394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:911
395+#: qml/Panel/Indicators/MenuItemFactory.qml:921
398msgid "Finished"
396msgid "Finished"
399msgstr ""
397msgstr ""
400
398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:913
399+#: qml/Panel/Indicators/MenuItemFactory.qml:923
402msgid "Failed, tap to retry"
400msgid "Failed, tap to retry"
403msgstr ""
401msgstr ""
404
402
@@ -418,243 +416,323 @@ msgctxt "Button: Call back on phone"
418msgid "Call back"
416msgid "Call back"
419msgstr ""
417msgstr ""
420
418
421−#: qml/Tutorial/TutorialBottom.qml:28
419+#: qml/Stages/SideStage.qml:76
422−msgid "Open special menus"
420+msgid "Drag using 3 fingers any application from one window to the other"
423msgstr ""
421msgstr ""
424
422
425−#: qml/Tutorial/TutorialBottom.qml:29
423+#: qml/Tutorial/TutorialBottom.qml:78
426−msgid "Swipe up from the bottom edge."
424+msgid "Swipe up to add a contact"
427msgstr ""
425msgstr ""
428
426
429−#: qml/Tutorial/TutorialBottomFinish.qml:24
427+#: qml/Tutorial/TutorialBottom.qml:80
430−msgid "This action does different things for different apps"
428+msgid "Swipe up for favorite calculations"
431msgstr ""
429msgstr ""
432
430
433−#: qml/Tutorial/TutorialBottomFinish.qml:25
431+#: qml/Tutorial/TutorialBottom.qml:82
434−msgid "Tap here to finish."
432+msgid "Swipe up for recent calls"
435msgstr ""
433msgstr ""
436
434
437−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
435+#: qml/Tutorial/TutorialBottom.qml:84
438−#: qml/Tutorial/TutorialRight.qml:144
436+msgid "Swipe up to create a message"
439−msgid "Tap here to continue."
440msgstr ""
437msgstr ""
441
438
442−#: qml/Tutorial/TutorialLeft.qml:26
439+#: qml/Tutorial/TutorialBottom.qml:85
443−msgid "Open the launcher"
440+msgid "Swipe up to manage the app"
444msgstr ""
441msgstr ""
445
442
446−#: qml/Tutorial/TutorialLeft.qml:27
443+#: qml/Tutorial/TutorialLeftLong.qml:47
447−msgid "Short swipe from the left edge."
444+msgid "Long swipe from the left edge to open the Today scope"
448msgstr ""
445msgstr ""
449
446
450−#: qml/Tutorial/TutorialLeftFinish.qml:24
447+#: qml/Tutorial/TutorialLeft.qml:47
451−msgid "These are the shortcuts to favorite apps"
448+msgid "Swipe from the left edge to open the launcher"
452msgstr ""
449msgstr ""
453
450
454−#: qml/Tutorial/TutorialPage.qml:178
451+#: qml/Tutorial/TutorialRight.qml:55
455−msgid "You almost got it!"
452+msgid "Push your mouse against the right edge to view your open apps"
456msgstr ""
453msgstr ""
457
454
458−#: qml/Tutorial/TutorialPage.qml:195
455+#: qml/Tutorial/TutorialRight.qml:56
459−msgid "Try again."
456+msgid "Short or long swipe from the right edge to view your open apps"
460msgstr ""
457msgstr ""
461
458
462−#: qml/Tutorial/TutorialRight.qml:31
459+#: qml/Tutorial/TutorialTop.qml:53
463−msgid "To view open apps"
460+msgid "Swipe from the top right edge to open the notification bar"
464msgstr ""
461msgstr ""
465
462
466−#: qml/Tutorial/TutorialRight.qml:32
463+#: qml/Tutorial/TutorialTop.qml:54
467−msgid "Long swipe from the right edge."
464+msgid "Swipe from the top edge to open the notification bar"
468msgstr ""
465msgstr ""
469
466
470−#: qml/Tutorial/TutorialRight.qml:122
471−msgid "View all your running tasks."
472−msgstr ""
473−
474−#: qml/Wizard/Page.qml:89
467+#: qml/Wizard/Page.qml:54
475msgctxt "Button: Go back one page in the Wizard"
468msgctxt "Button: Go back one page in the Wizard"
476msgid "Back"
469msgid "Back"
477msgstr ""
470msgstr ""
478
471
479#: qml/Wizard/Pages/10-welcome.qml:27
472#: qml/Wizard/Pages/10-welcome.qml:27
480−msgid "Hi!"
473+msgid "Language"
481msgstr ""
474msgstr ""
482
475
483−#: qml/Wizard/Pages/10-welcome.qml:44
476+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
484−msgid "Welcome to your Ubuntu device."
477+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
478+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479+#: qml/Wizard/Pages/75-report-check.qml:84
480+#: qml/Wizard/Pages/passcode-desktop.qml:124
481+#: qml/Wizard/Pages/password-set.qml:141
482+msgid "Next"
485msgstr ""
483msgstr ""
486
484
487−#: qml/Wizard/Pages/10-welcome.qml:52
485+#: qml/Wizard/Pages/30-wifi.qml:29
488−msgid "Let’s get started."
486+msgid "Connect to Wi‑Fi"
489msgstr ""
487msgstr ""
490
488
491−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
489+#: qml/Wizard/Pages/30-wifi.qml:130
492−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
490+msgid "Connected"
493−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
494−#: qml/Wizard/Pages/passwd-set.qml:90
495−msgid "Continue"
496msgstr ""
491msgstr ""
497
492
498−#: qml/Wizard/Pages/20-sim.qml:25
493+#: qml/Wizard/Pages/30-wifi.qml:163
499−msgid "Add a SIM card and restart your device"
494+msgid "Available Wi-Fi networks"
500msgstr ""
495msgstr ""
501
496
502−#: qml/Wizard/Pages/20-sim.qml:59
497+#: qml/Wizard/Pages/30-wifi.qml:164
503−msgid "Without it, you won’t be able to make calls or use text messaging."
498+msgid "No available Wi-Fi networks"
504msgstr ""
499msgstr ""
505
500
506−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502+#: qml/Wizard/Pages/sim.qml:101
507msgid "Skip"
503msgid "Skip"
508msgstr ""
504msgstr ""
509
505
510−#: qml/Wizard/Pages/30-passwd-type.qml:39
506+#: qml/Wizard/Pages/40-location.qml:27
511−msgid "Lock security"
507+msgid "Location Services"
512msgstr ""
508msgstr ""
513
509
514−#: qml/Wizard/Pages/30-passwd-type.qml:79
510+#: qml/Wizard/Pages/40-location.qml:83
515−msgid "Please select how you’d like to unlock your device."
511+msgid ""
512+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
513+"(recommended)"
516msgstr ""
514msgstr ""
517
515
518−#: qml/Wizard/Pages/30-passwd-type.qml:102
516+#: qml/Wizard/Pages/40-location.qml:105
519−msgctxt "Label: Type of security method"
517+#, qt-format
518+msgid "By selecting this option you agree to the Nokia HERE %1."
519+msgstr ""
520+
521+#: qml/Wizard/Pages/40-location.qml:106
522+msgctxt "part of: Nokia HERE terms and conditions"
523+msgid "terms and conditions"
524+msgstr ""
525+
526+#: qml/Wizard/Pages/40-location.qml:160
527+msgid "GPS only"
528+msgstr ""
529+
530+#: qml/Wizard/Pages/40-location.qml:214
531+msgid "Don't use my location"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:260
535+msgid "You can change it later in System Settings."
536+msgstr ""
537+
538+#: qml/Wizard/Pages/50-timezone.qml:29
520−msgid "Swipe"
539+msgid "Time Zone"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/50-timezone.qml:178
543+msgid "Enter your city"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/60-account.qml:24
547+msgid "Personalize Your Device"
521msgstr ""
548msgstr ""
522
549
523−#: qml/Wizard/Pages/30-passwd-type.qml:103
550+#: qml/Wizard/Pages/60-account.qml:48
524−msgctxt "Label: Description of security method"
551+msgid "Preferred Name"
525−msgid "No security"
526msgstr ""
552msgstr ""
527
553
528−#: qml/Wizard/Pages/30-passwd-type.qml:105
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
555+msgid "Lock Screen"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
529msgctxt "Label: Type of security method"
559msgctxt "Label: Type of security method"
530−msgid "Passcode"
560+msgid "Create new password"
531msgstr ""
561msgstr ""
532
562
533−#: qml/Wizard/Pages/30-passwd-type.qml:106
563+#: qml/Wizard/Pages/70-passwd-type.qml:103
534−msgctxt "Label: Description of security method"
564+msgctxt "Label: Type of security method"
535−msgid "4 digits only"
565+msgid "Create passcode (numbers only)"
536msgstr ""
566msgstr ""
537
567
538−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
539msgctxt "Label: Type of security method"
569msgctxt "Label: Type of security method"
540−msgid "Passphrase"
570+msgid "No lock code"
541msgstr ""
571msgstr ""
542
572
543−#: qml/Wizard/Pages/30-passwd-type.qml:109
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
544−msgctxt "Label: Description of security method"
574+msgid "Privacy Policy"
545−msgid "Numbers and letters"
546msgstr ""
575msgstr ""
547
576
548−#: qml/Wizard/Pages/40-wifi.qml:29
577+#: qml/Wizard/Pages/75-report-check.qml:26
549−msgid "Connect to Wi‑Fi"
578+msgid "Help Us Improve"
579+msgstr ""
580+
581+#: qml/Wizard/Pages/75-report-check.qml:59
582+msgid "Improve system performance by sending us crashes and error reports."
583+msgstr ""
584+
585+#: qml/Wizard/Pages/75-report-check.qml:60
586+msgid "Privacy policy"
550msgstr ""
587msgstr ""
551
588
552−#: qml/Wizard/Pages/40-wifi.qml:168
589+#: qml/Wizard/Pages/80-finished.qml:89
553−msgid "Available networks…"
590+msgid "Welcome to Ubuntu"
554msgstr ""
591msgstr ""
555
592
556−#: qml/Wizard/Pages/40-wifi.qml:169
593+#: qml/Wizard/Pages/80-finished.qml:104
557−msgid "No available networks."
594+msgid "You are ready to use your device now"
558msgstr ""
595msgstr ""
559
596
560−#: qml/Wizard/Pages/50-location.qml:27
597+#: qml/Wizard/Pages/80-finished.qml:124
561−msgid "Location"
598+msgid "Get Started"
562msgstr ""
599msgstr ""
563
600
564−#: qml/Wizard/Pages/50-location.qml:62
601+#: qml/Wizard/Pages/here-terms.qml:25
565−msgid "Let the phone detect your location:"
602+msgid "Terms & Conditions"
566msgstr ""
603msgstr ""
567
604
568−#: qml/Wizard/Pages/50-location.qml:69
605+#: qml/Wizard/Pages/here-terms.qml:69
569−msgid "Using GPS only (less accurate)"
606+msgid "Your device uses positioning technologies provided by HERE."
570msgstr ""
607msgstr ""
571
608
572−#: qml/Wizard/Pages/50-location.qml:86
609+#: qml/Wizard/Pages/here-terms.qml:81
573−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
610+msgid ""
611+"To provide you with positioning services and to improve their quality, HERE "
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
574msgstr ""
614msgstr ""
575
615
576−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
577−#: qml/Wizard/Pages/50-location.qml:103
616+#: qml/Wizard/Pages/here-terms.qml:93
578msgid ""
617msgid ""
579−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
618+"The information collected is used to analyze the service and to improve the "
580−"conditions</a>."
619+"use of service, but not to identify you personally."
581msgstr ""
620msgstr ""
582
621
583−#: qml/Wizard/Pages/50-location.qml:112
622+#: qml/Wizard/Pages/here-terms.qml:106
584−msgid "Not at all"
623+#, qt-format
624+msgid "By continuing, you agree to the HERE platform %1 and %2."
585msgstr ""
625msgstr ""
586
626
587−#: qml/Wizard/Pages/50-location.qml:124
627+#: qml/Wizard/Pages/here-terms.qml:107
588−msgid "You can change your mind later in <b>System Settings</b>."
628+msgid "Service Terms"
589msgstr ""
629msgstr ""
590
630
591−#: qml/Wizard/Pages/60-reporting.qml:26
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
592−msgid "Improving your experience"
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
633+msgid "Confirm passcode"
593msgstr ""
634msgstr ""
594
635
595−#: qml/Wizard/Pages/60-reporting.qml:46
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
596−msgid ""
637+msgid "Incorrect passcode."
597−"Your phone is set up to automatically report errors to Canonical and its "
598−"partners, the makers of the operating system."
599msgstr ""
638msgstr ""
600
639
601−#: qml/Wizard/Pages/60-reporting.qml:53
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
641+msgctxt "Enter the passcode again"
602−msgid ""
642+msgid "Please re-enter."
603−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
604−"Privacy</b>"
605msgstr ""
643msgstr ""
606
644
607−#: qml/Wizard/Pages/80-finished.qml:24
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
608−msgid "All done"
646+msgid "Lock Screen Passcode"
609msgstr ""
647msgstr ""
610
648
611−#: qml/Wizard/Pages/80-finished.qml:39
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
612−msgid "Nice work!"
650+msgid "Enter 4 numbers to setup your passcode"
613msgstr ""
651msgstr ""
614
652
615−#: qml/Wizard/Pages/80-finished.qml:46
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
616−msgid "Your device is now ready to use."
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
617msgstr ""
656msgstr ""
618
657
619−#: qml/Wizard/Pages/80-finished.qml:53
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
620−msgid "Finish"
659+msgid "Passcode too short"
621msgstr ""
660msgstr ""
622
661
623−#: qml/Wizard/Pages/here-terms.qml:27
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
624−msgid "Terms & Conditions"
663+msgid "Passcodes match"
625msgstr ""
664msgstr ""
626
665
627−#: qml/Wizard/Pages/passwd-confirm.qml:49
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
628−msgid "Confirm passphrase"
667+msgid "Passcodes do not match"
629msgstr ""
668msgstr ""
630
669
631−#: qml/Wizard/Pages/passwd-confirm.qml:50
670+#: qml/Wizard/Pages/passcode-set.qml:62
632−msgid "Confirm passcode"
671+msgid "Passcode must be 4 characters long"
633msgstr ""
672msgstr ""
634
673
635−#: qml/Wizard/Pages/passwd-confirm.qml:53
674+#: qml/Wizard/Pages/password-set.qml:30
636−#: qml/Wizard/Pages/passwd-confirm.qml:54
675+msgid "Lock Screen Password"
637−msgid "Please try again."
638msgstr ""
676msgstr ""
639
677
640−#: qml/Wizard/Pages/passwd-set.qml:61
678+#: qml/Wizard/Pages/password-set.qml:61
641−msgid "Choose your passcode"
679+msgid "Enter at least 8 characters"
642msgstr ""
680msgstr ""
643
681
644−#: qml/Wizard/Pages/passwd-set.qml:68
682+#: qml/Wizard/Pages/password-set.qml:73
645−msgid "Passphrase must be 4 characters long"
683+msgid "Choose password"
646msgstr ""
684msgstr ""
647
685
648−#. Translators: This is the arrow for "Back" buttons
686+#: qml/Wizard/Pages/password-set.qml:103
649−#: qml/Wizard/StackButton.qml:39
687+msgid "Confirm password"
650−#, qt-format
651−msgid "〈 %1"
652msgstr ""
688msgstr ""
653
689
654−#. Translators: This is the arrow for "Forward" buttons
690+#: qml/Wizard/Pages/sim.qml:27
691+msgid "No SIM card installed"
692+msgstr ""
693+
694+#: qml/Wizard/Pages/sim.qml:54
695+msgid "SIM card added"
696+msgstr ""
697+
698+#: qml/Wizard/Pages/sim.qml:55
699+msgid "You must restart the device to access the mobile network."
700+msgstr ""
701+
702+#: qml/Wizard/Pages/sim.qml:59
703+msgid "Restart"
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:78
707+msgid "You won’t be able to make calls or use text messaging without a SIM."
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:90
711+msgid "To proceed with no SIM tap Skip."
712+msgstr ""
713+
714+#: qml/Wizard/PasswordMeter.qml:87
715+msgid "Passwords match"
716+msgstr ""
717+
655−#: qml/Wizard/StackButton.qml:42
718+#: qml/Wizard/PasswordMeter.qml:89
656−#, qt-format
719+msgid "Passwords do not match"
720+msgstr ""
721+
722+#: qml/Wizard/PasswordMeter.qml:93
723+msgid "Strong password"
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:95
727+msgid "Fair password"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:97
657−msgid "%1 〉"
731+msgid "Weak password"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:99
735+msgid "Very weak password"
658msgstr ""
736msgstr ""
659
737
660#~ msgid "Top edge"
738#~ msgid "Top edge"
po/cs.po+487−239
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2015-07-07 10:44+0000\n"
11"PO-Revision-Date: 2015-07-07 10:44+0000\n"
12"Last-Translator: Vojtěch Daněk <vdanek@outlook.com>\n"
12"Last-Translator: Vojtěch Daněk <vdanek@outlook.com>\n"
13"Language-Team: Czech <cs@li.org>\n"
13"Language-Team: Czech <cs@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2016-03-13 05:50+0000\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
19+"X-Generator: Launchpad (build 17995)\n"
20"Language: cs\n"
20"Language: cs\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -77,53 +77,35 @@ msgctxt "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:194
80+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
81−#: qml/Components/Dialogs.qml:253
81+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
82+#: qml/Wizard/Pages/passcode-set.qml:32
82msgid "Cancel"
83msgid "Cancel"
83msgstr "Zrušit"
84msgstr "Zrušit"
84
85
85#: qml/Components/Dialogs.qml:173
86#: qml/Components/Dialogs.qml:173
86−msgctxt "Title: Reboot/Shut down dialog"
87−msgid "Shut down"
88−msgstr "Vypnout"
89−
90−#: qml/Components/Dialogs.qml:174
91−msgid "Are you sure you want to shut down?"
92−msgstr "Jste si jistí, že chcete zařízení vypnout?"
93−
94−#: qml/Components/Dialogs.qml:176
95−msgctxt "Button: Reboot the system"
96−msgid "Reboot"
97−msgstr "Restartovat"
98−
99−#: qml/Components/Dialogs.qml:185
100−msgctxt "Button: Shut down the system"
101−msgid "Shut down"
102−msgstr "Vypnout"
103−
104−#: qml/Components/Dialogs.qml:207
105msgctxt "Title: Reboot dialog"
87msgctxt "Title: Reboot dialog"
106msgid "Reboot"
88msgid "Reboot"
107msgstr "Restartovat"
89msgstr "Restartovat"
108
90
109−#: qml/Components/Dialogs.qml:208
91+#: qml/Components/Dialogs.qml:174
110msgid "Are you sure you want to reboot?"
92msgid "Are you sure you want to reboot?"
111msgstr "Jste si jistí, že chcete zařízení restartovat?"
93msgstr "Jste si jistí, že chcete zařízení restartovat?"
112
94
113−#: qml/Components/Dialogs.qml:210
95+#: qml/Components/Dialogs.qml:176
114msgid "No"
96msgid "No"
115msgstr "Ne"
97msgstr "Ne"
116
98
117−#: qml/Components/Dialogs.qml:217
99+#: qml/Components/Dialogs.qml:182
118msgid "Yes"
100msgid "Yes"
119msgstr "Ano"
101msgstr "Ano"
120
102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:197
122msgctxt "Title: Power off/Restart dialog"
104msgctxt "Title: Power off/Restart dialog"
123msgid "Power"
105msgid "Power"
124msgstr "Vypnutí"
106msgstr "Vypnutí"
125
107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:198
127msgid ""
109msgid ""
128"Are you sure you would like\n"
110"Are you sure you would like\n"
129"to power off?"
111"to power off?"
@@ -131,12 +113,12 @@ msgstr ""
131"Jste si jistí, že chcete\n"
113"Jste si jistí, že chcete\n"
132"telefon vypnout?"
114"telefon vypnout?"
133
115
134−#: qml/Components/Dialogs.qml:235
116+#: qml/Components/Dialogs.qml:200
135msgctxt "Button: Power off the system"
117msgctxt "Button: Power off the system"
136msgid "Power off"
118msgid "Power off"
137msgstr "Vypnutí"
119msgstr "Vypnutí"
138
120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:209
140msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
141msgid "Restart"
123msgid "Restart"
142msgstr "Reboot"
124msgstr "Reboot"
@@ -179,42 +161,58 @@ msgstr ""
179msgid "Close all"
161msgid "Close all"
180msgstr ""
162msgstr ""
181
163
182−#: qml/Dash/DashPageHeader.qml:270
164+#: qml/Dash/DashPageHeader.qml:337
183msgctxt "Button: Open the Ubuntu Store"
165msgctxt "Button: Open the Ubuntu Store"
184msgid "Store"
166msgid "Store"
185msgstr "Obchod"
167msgstr "Obchod"
186
168
187−#: qml/Dash/DashPageHeader.qml:277
169+#: qml/Dash/DashPageHeader.qml:344
188msgctxt "Button: Start a search in the current dash scope"
170msgctxt "Button: Start a search in the current dash scope"
189msgid "Search"
171msgid "Search"
190msgstr "Hledat"
172msgstr "Hledat"
191
173
192−#: qml/Dash/DashPageHeader.qml:287
174+#: qml/Dash/DashPageHeader.qml:354
193msgctxt "Button: Show the current dash scope settings"
175msgctxt "Button: Show the current dash scope settings"
194msgid "Settings"
176msgid "Settings"
195msgstr "Nastavení"
177msgstr "Nastavení"
196
178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198msgid "Remove from Favorites"
180msgid "Remove from Favorites"
199msgstr "Odstranit z oblíbených"
181msgstr "Odstranit z oblíbených"
200
182
201−#: qml/Dash/DashPageHeader.qml:294
183+#: qml/Dash/DashPageHeader.qml:361
202msgid "Add to Favorites"
184msgid "Add to Favorites"
203msgstr "Přidat do oblíbených"
185msgstr "Přidat do oblíbených"
204
186
187+#: qml/Dash/FiltersPopover.qml:60
188+msgid "Refine your results"
189+msgstr ""
190+
191+#: qml/Dash/FiltersPopover.qml:69
192+msgid "Reset"
193+msgstr ""
194+
205−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
206−msgid "See less"
196+msgid "Show less"
207−msgstr "Zobrazit méně"
197+msgstr ""
208
198
209−#: qml/Dash/GenericScopeView.qml:567
199+#: qml/Dash/GenericScopeView.qml:579
210−msgid "See all"
200+msgid "Show all"
211−msgstr "Zobrazit vše"
201+msgstr ""
212
202
213−#: qml/Dash/GenericScopeView.qml:629
203+#: qml/Dash/GenericScopeView.qml:636
214msgctxt "Label: Hint for dash search line edit"
204msgctxt "Label: Hint for dash search line edit"
215msgid "Search"
205msgid "Search"
216msgstr "Hledat"
206msgstr "Hledat"
217
207
208+#: qml/Dash/PageHeaderExtraPanel.qml:55
209+msgid "Recent Searches"
210+msgstr ""
211+
212+#: qml/Dash/PageHeaderExtraPanel.qml:66
213+msgid "Clear All"
214+msgstr ""
215+
218#: qml/Dash/Previews/PreviewActionCombo.qml:35
216#: qml/Dash/Previews/PreviewActionCombo.qml:35
219msgid "More..."
217msgid "More..."
220msgstr "Více..."
218msgstr "Více..."
@@ -282,11 +280,11 @@ msgstr "Znovu"
282msgid "Tap to unlock"
280msgid "Tap to unlock"
283msgstr "Klepnout pro odemčení"
281msgstr "Klepnout pro odemčení"
284
282
285−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
283+#: qml/Greeter/NarrowView.qml:54
286msgid "Sorry, incorrect passphrase."
284msgid "Sorry, incorrect passphrase."
287msgstr "Zadali jste špatné heslo."
285msgstr "Zadali jste špatné heslo."
288
286
289−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
287+#: qml/Greeter/NarrowView.qml:55
290msgid "Sorry, incorrect passcode."
288msgid "Sorry, incorrect passcode."
291msgstr "Zadali jste špatné heslo."
289msgstr "Zadali jste špatné heslo."
292
290
@@ -315,7 +313,7 @@ msgstr ""
315msgid "Enter %1"
313msgid "Enter %1"
316msgstr "Vložte %1"
314msgstr "Vložte %1"
317
315
318−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
316+#: qml/Greeter/NarrowView.qml:117
319msgid "Enter passphrase"
317msgid "Enter passphrase"
320msgstr "Vložte heslo"
318msgstr "Vložte heslo"
321
319
@@ -341,7 +339,7 @@ msgstr ""
341msgid "Sorry, incorrect passcode"
339msgid "Sorry, incorrect passcode"
342msgstr "Špatné heslo"
340msgstr "Špatné heslo"
343
341
344−#: qml/Notifications/NotificationMenuItemFactory.qml:129
342+#: qml/Notifications/NotificationMenuItemFactory.qml:124
345msgid "Show password"
343msgid "Show password"
346msgstr "Zobrazit heslo"
344msgstr "Zobrazit heslo"
347
345
@@ -353,11 +351,11 @@ msgstr "Klepnutím se vrátíte k hovoru..."
353msgid "Conference"
351msgid "Conference"
354msgstr "Konferenční hovor"
352msgstr "Konferenční hovor"
355
353
356−#: qml/Panel/Indicators/MenuItemFactory.qml:752
354+#: qml/Panel/Indicators/MenuItemFactory.qml:762
357msgid "Nothing is playing"
355msgid "Nothing is playing"
358msgstr "Nic se nepřehrává"
356msgstr "Nic se nepřehrává"
359
357
360−#: qml/Panel/Indicators/MenuItemFactory.qml:881
358+#: qml/Panel/Indicators/MenuItemFactory.qml:891
361#, qt-format
359#, qt-format
362msgid "%1 hour"
360msgid "%1 hour"
363msgid_plural "%1 hours"
361msgid_plural "%1 hours"
@@ -365,7 +363,7 @@ msgstr[0] "%1 hodina"
365msgstr[1] "%1 hodiny"
363msgstr[1] "%1 hodiny"
366msgstr[2] "%1 hodin"
364msgstr[2] "%1 hodin"
367
365
368−#: qml/Panel/Indicators/MenuItemFactory.qml:885
366+#: qml/Panel/Indicators/MenuItemFactory.qml:895
369#, qt-format
367#, qt-format
370msgid "%1 minute"
368msgid "%1 minute"
371msgid_plural "%1 minutes"
369msgid_plural "%1 minutes"
@@ -373,7 +371,7 @@ msgstr[0] "%1 minuta"
373msgstr[1] "%1 minuty"
371msgstr[1] "%1 minuty"
374msgstr[2] "%1 minut"
372msgstr[2] "%1 minut"
375
373
376−#: qml/Panel/Indicators/MenuItemFactory.qml:890
374+#: qml/Panel/Indicators/MenuItemFactory.qml:900
377#, qt-format
375#, qt-format
378msgid "%1 second"
376msgid "%1 second"
379msgid_plural "%1 seconds"
377msgid_plural "%1 seconds"
@@ -381,37 +379,37 @@ msgstr[0] "%1 sekunda"
381msgstr[1] "%1 sekundy"
379msgstr[1] "%1 sekundy"
382msgstr[2] "%1 sekund"
380msgstr[2] "%1 sekund"
383
381
384−#: qml/Panel/Indicators/MenuItemFactory.qml:893
382+#: qml/Panel/Indicators/MenuItemFactory.qml:903
385msgid "0 seconds"
383msgid "0 seconds"
386msgstr "0 sekund"
384msgstr "0 sekund"
387
385
388#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
386#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
389−#: qml/Panel/Indicators/MenuItemFactory.qml:895
387+#: qml/Panel/Indicators/MenuItemFactory.qml:905
390#, qt-format
388#, qt-format
391msgid "%1 remaining"
389msgid "%1 remaining"
392msgstr "Zbývá %1"
390msgstr "Zbývá %1"
393
391
394−#: qml/Panel/Indicators/MenuItemFactory.qml:901
392+#: qml/Panel/Indicators/MenuItemFactory.qml:911
395msgid "In queue…"
393msgid "In queue…"
396msgstr "Ve frontě..."
394msgstr "Ve frontě..."
397
395
398−#: qml/Panel/Indicators/MenuItemFactory.qml:905
396+#: qml/Panel/Indicators/MenuItemFactory.qml:915
399msgid "Downloading"
397msgid "Downloading"
400msgstr "Stahování"
398msgstr "Stahování"
401
399
402−#: qml/Panel/Indicators/MenuItemFactory.qml:907
400+#: qml/Panel/Indicators/MenuItemFactory.qml:917
403msgid "Paused, tap to resume"
401msgid "Paused, tap to resume"
404msgstr "Pauza, pro pokračování klepněte"
402msgstr "Pauza, pro pokračování klepněte"
405
403
406−#: qml/Panel/Indicators/MenuItemFactory.qml:909
404+#: qml/Panel/Indicators/MenuItemFactory.qml:919
407msgid "Canceled"
405msgid "Canceled"
408msgstr "Zrušeno"
406msgstr "Zrušeno"
409
407
410−#: qml/Panel/Indicators/MenuItemFactory.qml:911
408+#: qml/Panel/Indicators/MenuItemFactory.qml:921
411msgid "Finished"
409msgid "Finished"
412msgstr "Dokončeno"
410msgstr "Dokončeno"
413
411
414−#: qml/Panel/Indicators/MenuItemFactory.qml:913
412+#: qml/Panel/Indicators/MenuItemFactory.qml:923
415msgid "Failed, tap to retry"
413msgid "Failed, tap to retry"
416msgstr "Nezdařilo se, opakujte klepnutím"
414msgstr "Nezdařilo se, opakujte klepnutím"
417
415
@@ -431,251 +429,324 @@ msgctxt "Button: Call back on phone"
431msgid "Call back"
429msgid "Call back"
432msgstr ""
430msgstr ""
433
431
434−#: qml/Tutorial/TutorialBottom.qml:28
432+#: qml/Stages/SideStage.qml:76
435−msgid "Open special menus"
433+msgid "Drag using 3 fingers any application from one window to the other"
436−msgstr "Otevřít speciální menu"
434+msgstr ""
437−
438−#: qml/Tutorial/TutorialBottom.qml:29
439−msgid "Swipe up from the bottom edge."
440−msgstr "Potáhněte prstem z dola nahoru."
441
435
442−#: qml/Tutorial/TutorialBottomFinish.qml:24
436+#: qml/Tutorial/TutorialBottom.qml:78
443−msgid "This action does different things for different apps"
437+msgid "Swipe up to add a contact"
444−msgstr "Tato akce vyvolá různé reakce v rozdílných aplikacích"
438+msgstr ""
445
439
446−#: qml/Tutorial/TutorialBottomFinish.qml:25
440+#: qml/Tutorial/TutorialBottom.qml:80
447−msgid "Tap here to finish."
441+msgid "Swipe up for favorite calculations"
448−msgstr "Klepněte zde pro dokončení."
442+msgstr ""
449
443
450−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
444+#: qml/Tutorial/TutorialBottom.qml:82
451−#: qml/Tutorial/TutorialRight.qml:144
445+msgid "Swipe up for recent calls"
452−msgid "Tap here to continue."
446+msgstr ""
453−msgstr "Klepněte zde pro pokračování."
454
447
455−#: qml/Tutorial/TutorialLeft.qml:26
448+#: qml/Tutorial/TutorialBottom.qml:84
456−msgid "Open the launcher"
449+msgid "Swipe up to create a message"
457−msgstr "Otevřete launcher"
450+msgstr ""
458
451
459−#: qml/Tutorial/TutorialLeft.qml:27
452+#: qml/Tutorial/TutorialBottom.qml:85
460−msgid "Short swipe from the left edge."
453+msgid "Swipe up to manage the app"
461−msgstr "Potáhněte krátce z levého okraje."
454+msgstr ""
462
455
463−#: qml/Tutorial/TutorialLeftFinish.qml:24
456+#: qml/Tutorial/TutorialLeftLong.qml:47
464−msgid "These are the shortcuts to favorite apps"
457+msgid "Long swipe from the left edge to open the Today scope"
465−msgstr "Zde jsou odkazy na vaše oblíbené aplikace"
458+msgstr ""
466
459
467−#: qml/Tutorial/TutorialPage.qml:178
460+#: qml/Tutorial/TutorialLeft.qml:47
468−msgid "You almost got it!"
461+msgid "Swipe from the left edge to open the launcher"
469−msgstr "Už to skoro máte!"
462+msgstr ""
470
463
471−#: qml/Tutorial/TutorialPage.qml:195
464+#: qml/Tutorial/TutorialRight.qml:55
472−msgid "Try again."
465+msgid "Push your mouse against the right edge to view your open apps"
473−msgstr "Zkuste to znovu."
466+msgstr ""
474
467
475−#: qml/Tutorial/TutorialRight.qml:31
468+#: qml/Tutorial/TutorialRight.qml:56
476−msgid "To view open apps"
469+msgid "Short or long swipe from the right edge to view your open apps"
477−msgstr "K zobrazení otevřených aplikací"
470+msgstr ""
478
471
479−#: qml/Tutorial/TutorialRight.qml:32
472+#: qml/Tutorial/TutorialTop.qml:53
480−msgid "Long swipe from the right edge."
473+msgid "Swipe from the top right edge to open the notification bar"
481−msgstr "Potáhněte dlouho z pravého okraje."
474+msgstr ""
482
475
483−#: qml/Tutorial/TutorialRight.qml:122
476+#: qml/Tutorial/TutorialTop.qml:54
484−msgid "View all your running tasks."
477+msgid "Swipe from the top edge to open the notification bar"
485−msgstr "Zobrazíte všechny běžící procesy."
478+msgstr ""
486
479
487−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
488msgctxt "Button: Go back one page in the Wizard"
481msgctxt "Button: Go back one page in the Wizard"
489msgid "Back"
482msgid "Back"
490msgstr "Zpět"
483msgstr "Zpět"
491
484
492#: qml/Wizard/Pages/10-welcome.qml:27
485#: qml/Wizard/Pages/10-welcome.qml:27
493−msgid "Hi!"
486+msgid "Language"
494−msgstr "Ahoj!"
487+msgstr ""
495
488
496−#: qml/Wizard/Pages/10-welcome.qml:44
489+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
497−msgid "Welcome to your Ubuntu device."
490+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
491+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492+#: qml/Wizard/Pages/75-report-check.qml:84
493+#: qml/Wizard/Pages/passcode-desktop.qml:124
494+#: qml/Wizard/Pages/password-set.qml:141
495+msgid "Next"
498msgstr ""
496msgstr ""
499
497
500−#: qml/Wizard/Pages/10-welcome.qml:52
498+#: qml/Wizard/Pages/30-wifi.qml:29
501−msgid "Let’s get started."
499+msgid "Connect to Wi‑Fi"
502−msgstr "Začněme."
500+msgstr "Připojte se k Wi-Fi"
503
501
504−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
502+#: qml/Wizard/Pages/30-wifi.qml:130
505−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
503+msgid "Connected"
506−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
507−#: qml/Wizard/Pages/passwd-set.qml:90
508−msgid "Continue"
509−msgstr "Pokračovat"
504+msgstr ""
510
505
511−#: qml/Wizard/Pages/20-sim.qml:25
506+#: qml/Wizard/Pages/30-wifi.qml:163
512−msgid "Add a SIM card and restart your device"
507+msgid "Available Wi-Fi networks"
513−msgstr "Vložte SIM kartu a restartujte své zařízení"
508+msgstr ""
514
509
515−#: qml/Wizard/Pages/20-sim.qml:59
510+#: qml/Wizard/Pages/30-wifi.qml:164
516−msgid "Without it, you won’t be able to make calls or use text messaging."
511+msgid "No available Wi-Fi networks"
517−msgstr "Bez ni nebudete moci telefonovat nebo posílat textové zprávy."
512+msgstr ""
518
513
519−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
514+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515+#: qml/Wizard/Pages/sim.qml:101
520msgid "Skip"
516msgid "Skip"
521msgstr "Přeskočit"
517msgstr "Přeskočit"
522
518
523−#: qml/Wizard/Pages/30-passwd-type.qml:39
519+#: qml/Wizard/Pages/40-location.qml:27
524−msgid "Lock security"
520+msgid "Location Services"
525−msgstr "Bezpečnostní uzamčení"
521+msgstr ""
526
522
527−#: qml/Wizard/Pages/30-passwd-type.qml:79
523+#: qml/Wizard/Pages/40-location.qml:83
528−msgid "Please select how you’d like to unlock your device."
524+msgid ""
525+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
526+"(recommended)"
529msgstr ""
527msgstr ""
530
528
531−#: qml/Wizard/Pages/30-passwd-type.qml:102
529+#: qml/Wizard/Pages/40-location.qml:105
532−msgctxt "Label: Type of security method"
530+#, qt-format
533−msgid "Swipe"
531+msgid "By selecting this option you agree to the Nokia HERE %1."
534−msgstr "Potažením prstu"
532+msgstr ""
535
533
536−#: qml/Wizard/Pages/30-passwd-type.qml:103
534+#: qml/Wizard/Pages/40-location.qml:106
537−msgctxt "Label: Description of security method"
535+msgctxt "part of: Nokia HERE terms and conditions"
538−msgid "No security"
536+msgid "terms and conditions"
539−msgstr "Bez zabezpečení"
537+msgstr ""
540
538
541−#: qml/Wizard/Pages/30-passwd-type.qml:105
539+#: qml/Wizard/Pages/40-location.qml:160
540+msgid "GPS only"
541+msgstr ""
542+
543+#: qml/Wizard/Pages/40-location.qml:214
544+msgid "Don't use my location"
545+msgstr ""
546+
547+#: qml/Wizard/Pages/40-location.qml:260
548+msgid "You can change it later in System Settings."
549+msgstr ""
550+
551+#: qml/Wizard/Pages/50-timezone.qml:29
552+msgid "Time Zone"
553+msgstr ""
554+
555+#: qml/Wizard/Pages/50-timezone.qml:178
556+msgid "Enter your city"
557+msgstr ""
558+
559+#: qml/Wizard/Pages/60-account.qml:24
560+msgid "Personalize Your Device"
561+msgstr ""
562+
563+#: qml/Wizard/Pages/60-account.qml:48
564+msgid "Preferred Name"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/70-passwd-type.qml:39
568+msgid "Lock Screen"
569+msgstr ""
570+
571+#: qml/Wizard/Pages/70-passwd-type.qml:101
542msgctxt "Label: Type of security method"
572msgctxt "Label: Type of security method"
543−msgid "Passcode"
573+msgid "Create new password"
544−msgstr "Číselné heslo"
574+msgstr ""
545
575
546−#: qml/Wizard/Pages/30-passwd-type.qml:106
576+#: qml/Wizard/Pages/70-passwd-type.qml:103
547−msgctxt "Label: Description of security method"
577+msgctxt "Label: Type of security method"
548−msgid "4 digits only"
578+msgid "Create passcode (numbers only)"
549−msgstr "Pouze 4 čísla"
579+msgstr ""
550
580
551−#: qml/Wizard/Pages/30-passwd-type.qml:108
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
552msgctxt "Label: Type of security method"
582msgctxt "Label: Type of security method"
553−msgid "Passphrase"
583+msgid "No lock code"
554−msgstr "Heslo"
584+msgstr ""
555
585
556−#: qml/Wizard/Pages/30-passwd-type.qml:109
586+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
557−msgctxt "Label: Description of security method"
587+msgid "Privacy Policy"
558−msgid "Numbers and letters"
559−msgstr "Čísla a písmena"
588+msgstr ""
560
589
561−#: qml/Wizard/Pages/40-wifi.qml:29
590+#: qml/Wizard/Pages/75-report-check.qml:26
562−msgid "Connect to Wi‑Fi"
591+msgid "Help Us Improve"
563−msgstr "Připojte se k Wi-Fi"
592+msgstr ""
593+
594+#: qml/Wizard/Pages/75-report-check.qml:59
595+msgid "Improve system performance by sending us crashes and error reports."
596+msgstr ""
564
597
565−#: qml/Wizard/Pages/40-wifi.qml:168
598+#: qml/Wizard/Pages/75-report-check.qml:60
566−msgid "Available networks…"
599+msgid "Privacy policy"
567−msgstr "Dostupné sítě..."
600+msgstr ""
568
601
569−#: qml/Wizard/Pages/40-wifi.qml:169
602+#: qml/Wizard/Pages/80-finished.qml:89
570−msgid "No available networks."
603+msgid "Welcome to Ubuntu"
571−msgstr "Žádná dostupná síť."
604+msgstr ""
572
605
573−#: qml/Wizard/Pages/50-location.qml:27
606+#: qml/Wizard/Pages/80-finished.qml:104
574−msgid "Location"
607+msgid "You are ready to use your device now"
575−msgstr "Umístění"
608+msgstr ""
576
609
577−#: qml/Wizard/Pages/50-location.qml:62
610+#: qml/Wizard/Pages/80-finished.qml:124
578−msgid "Let the phone detect your location:"
611+msgid "Get Started"
579−msgstr "Povolte telefonu zjistit, kde se zrovna nacházíte:"
612+msgstr ""
580
613
581−#: qml/Wizard/Pages/50-location.qml:69
614+#: qml/Wizard/Pages/here-terms.qml:25
582−msgid "Using GPS only (less accurate)"
615+msgid "Terms & Conditions"
583−msgstr "Používat pouze GPS (méně přesné)"
616+msgstr "Pravidla a podmínky"
584
617
585−#: qml/Wizard/Pages/50-location.qml:86
618+#: qml/Wizard/Pages/here-terms.qml:69
586−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
619+msgid "Your device uses positioning technologies provided by HERE."
587−msgstr "Používat GPS, anonymní Wi-Fi a datovou síť (doporučeno)"
620+msgstr ""
588
621
589−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
590−#: qml/Wizard/Pages/50-location.qml:103
622+#: qml/Wizard/Pages/here-terms.qml:81
591msgid ""
623msgid ""
592−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
624+"To provide you with positioning services and to improve their quality, HERE "
593−"conditions</a>."
625+"collects information about nearby cell towers and Wi-Fi hotspots around your "
626+"current location whenever your position is being found."
594msgstr ""
627msgstr ""
595−"Zvolením této možnosti souhlasíte s <a href='#'>pravidly a podmínkami</a> "
596−"Nokia HERE."
597
628
598−#: qml/Wizard/Pages/50-location.qml:112
629+#: qml/Wizard/Pages/here-terms.qml:93
599−msgid "Not at all"
630+msgid ""
600−msgstr "V žádném případě"
631+"The information collected is used to analyze the service and to improve the "
632+"use of service, but not to identify you personally."
633+msgstr ""
601
634
602−#: qml/Wizard/Pages/50-location.qml:124
635+#: qml/Wizard/Pages/here-terms.qml:106
603−msgid "You can change your mind later in <b>System Settings</b>."
636+#, qt-format
637+msgid "By continuing, you agree to the HERE platform %1 and %2."
604msgstr ""
638msgstr ""
605−"Pokud změníte názor, můžete nastavení změnit v <b>Nastavení systému</b>."
606
639
607−#: qml/Wizard/Pages/60-reporting.qml:26
640+#: qml/Wizard/Pages/here-terms.qml:107
608−msgid "Improving your experience"
641+msgid "Service Terms"
609−msgstr "Zlepšete své zkušenosti"
642+msgstr ""
610
643
611−#: qml/Wizard/Pages/60-reporting.qml:46
644+#: qml/Wizard/Pages/passcode-confirm.qml:43
645+#: qml/Wizard/Pages/passcode-desktop.qml:80
612−msgid ""
646+msgid "Confirm passcode"
613−"Your phone is set up to automatically report errors to Canonical and its "
647+msgstr "Potvrdit číselné heslo"
614−"partners, the makers of the operating system."
648+
649+#: qml/Wizard/Pages/passcode-confirm.qml:45
650+msgid "Incorrect passcode."
615msgstr ""
651msgstr ""
616−"Váš telefon je nastaven tak, aby automaticky odesílal informace o chybách "
617−"společnosti Canonical a partnerům, kteří stvořili tento operační systém."
618
652
619−#: qml/Wizard/Pages/60-reporting.qml:53
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
654+msgctxt "Enter the passcode again"
620−msgid ""
655+msgid "Please re-enter."
621−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
622−"Privacy</b>"
623msgstr ""
656msgstr ""
624−"To může být vypnuto v <b>Nastavení systému</b> v <b>Zabezpečení a "
625−"soukromí</b>"
626
657
627−#: qml/Wizard/Pages/80-finished.qml:24
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
628−msgid "All done"
659+msgid "Lock Screen Passcode"
629−msgstr "Vše je hotovo"
660+msgstr ""
630
661
631−#: qml/Wizard/Pages/80-finished.qml:39
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
632−msgid "Nice work!"
663+msgid "Enter 4 numbers to setup your passcode"
633−msgstr "Skvělá práce!"
664+msgstr ""
634
665
635−#: qml/Wizard/Pages/80-finished.qml:46
666+#: qml/Wizard/Pages/passcode-desktop.qml:65
636−msgid "Your device is now ready to use."
667+#: qml/Wizard/Pages/passcode-set.qml:54
668+msgid "Choose passcode"
637msgstr ""
669msgstr ""
638
670
639−#: qml/Wizard/Pages/80-finished.qml:53
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
640−msgid "Finish"
672+msgid "Passcode too short"
641−msgstr "Dokončit"
673+msgstr ""
642
674
643−#: qml/Wizard/Pages/here-terms.qml:27
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
644−msgid "Terms & Conditions"
676+msgid "Passcodes match"
645−msgstr "Pravidla a podmínky"
677+msgstr ""
646
678
647−#: qml/Wizard/Pages/passwd-confirm.qml:49
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
648−msgid "Confirm passphrase"
680+msgid "Passcodes do not match"
649−msgstr "Potvrdit heslo"
681+msgstr ""
650
682
651−#: qml/Wizard/Pages/passwd-confirm.qml:50
683+#: qml/Wizard/Pages/passcode-set.qml:62
652−msgid "Confirm passcode"
684+msgid "Passcode must be 4 characters long"
653−msgstr "Potvrdit číselné heslo"
685+msgstr ""
654
686
655−#: qml/Wizard/Pages/passwd-confirm.qml:53
687+#: qml/Wizard/Pages/password-set.qml:30
656−#: qml/Wizard/Pages/passwd-confirm.qml:54
688+msgid "Lock Screen Password"
657−msgid "Please try again."
689+msgstr ""
658−msgstr "Zkuste to, prosím, znovu."
659
690
660−#: qml/Wizard/Pages/passwd-set.qml:61
691+#: qml/Wizard/Pages/password-set.qml:61
661−msgid "Choose your passcode"
692+msgid "Enter at least 8 characters"
662−msgstr "Zvolte své heslo"
693+msgstr ""
663
694
664−#: qml/Wizard/Pages/passwd-set.qml:68
695+#: qml/Wizard/Pages/password-set.qml:73
665−msgid "Passphrase must be 4 characters long"
696+msgid "Choose password"
666−msgstr "Heslo musí být alespoň 4 znaky dlouhé"
697+msgstr ""
667
698
668−#. Translators: This is the arrow for "Back" buttons
699+#: qml/Wizard/Pages/password-set.qml:103
669−#: qml/Wizard/StackButton.qml:39
700+msgid "Confirm password"
670−#, qt-format
671−msgid "〈 %1"
672−msgstr "〈 %1"
701+msgstr ""
673
702
674−#. Translators: This is the arrow for "Forward" buttons
703+#: qml/Wizard/Pages/sim.qml:27
704+msgid "No SIM card installed"
705+msgstr ""
706+
707+#: qml/Wizard/Pages/sim.qml:54
708+msgid "SIM card added"
709+msgstr ""
710+
711+#: qml/Wizard/Pages/sim.qml:55
712+msgid "You must restart the device to access the mobile network."
713+msgstr ""
714+
715+#: qml/Wizard/Pages/sim.qml:59
716+msgid "Restart"
717+msgstr "Reboot"
718+
675−#: qml/Wizard/StackButton.qml:42
719+#: qml/Wizard/Pages/sim.qml:78
676−#, qt-format
720+msgid "You won’t be able to make calls or use text messaging without a SIM."
677−msgid "%1 〉"
721+msgstr ""
722+
723+#: qml/Wizard/Pages/sim.qml:90
724+msgid "To proceed with no SIM tap Skip."
725+msgstr ""
726+
727+#: qml/Wizard/PasswordMeter.qml:87
728+msgid "Passwords match"
729+msgstr ""
730+
731+#: qml/Wizard/PasswordMeter.qml:89
732+msgid "Passwords do not match"
678−msgstr "%1 〉"
733+msgstr ""
734+
735+#: qml/Wizard/PasswordMeter.qml:93
736+msgid "Strong password"
737+msgstr ""
738+
739+#: qml/Wizard/PasswordMeter.qml:95
740+msgid "Fair password"
741+msgstr ""
742+
743+#: qml/Wizard/PasswordMeter.qml:97
744+msgid "Weak password"
745+msgstr ""
746+
747+#: qml/Wizard/PasswordMeter.qml:99
748+msgid "Very weak password"
749+msgstr ""
679
750
680#~ msgid "Try swiping from the right edge to unlock the phone"
751#~ msgid "Try swiping from the right edge to unlock the phone"
681#~ msgstr "Pokuste se odemknout telefon potažením prstu z pravého okraje."
752#~ msgstr "Pokuste se odemknout telefon potažením prstu z pravého okraje."
@@ -725,9 +796,30 @@ msgstr "%1 〉"
725#~ msgid "Swipe up again to close the settings screen"
796#~ msgid "Swipe up again to close the settings screen"
726#~ msgstr "Přetažením nahoru dojde k uzavření obrazovky nastavení"
797#~ msgstr "Přetažením nahoru dojde k uzavření obrazovky nastavení"
727
798
799+#~ msgid "See all"
800+#~ msgstr "Zobrazit vše"
801+
802+#~ msgid "See less"
803+#~ msgstr "Zobrazit méně"
804+
728#~ msgid "Store"
805#~ msgid "Store"
729#~ msgstr "Obchod"
806#~ msgstr "Obchod"
730
807
808+#~ msgctxt "Title: Reboot/Shut down dialog"
809+#~ msgid "Shut down"
810+#~ msgstr "Vypnout"
811+
812+#~ msgid "Are you sure you want to shut down?"
813+#~ msgstr "Jste si jistí, že chcete zařízení vypnout?"
814+
815+#~ msgctxt "Button: Reboot the system"
816+#~ msgid "Reboot"
817+#~ msgstr "Restartovat"
818+
819+#~ msgctxt "Button: Shut down the system"
820+#~ msgid "Shut down"
821+#~ msgstr "Vypnout"
822+
731#~ msgid "Please re-enter"
823#~ msgid "Please re-enter"
732#~ msgstr "Vložte znovu"
824#~ msgstr "Vložte znovu"
733
825
@@ -737,15 +829,174 @@ msgstr "%1 〉"
737#~ msgid "Roaming"
829#~ msgid "Roaming"
738#~ msgstr "Roaming"
830#~ msgstr "Roaming"
739
831
832+#~ msgid "This action does different things for different apps"
833+#~ msgstr "Tato akce vyvolá různé reakce v rozdílných aplikacích"
834+
835+#~ msgid "Tap here to finish."
836+#~ msgstr "Klepněte zde pro dokončení."
837+
838+#~ msgid "Open special menus"
839+#~ msgstr "Otevřít speciální menu"
840+
841+#~ msgid "Swipe up from the bottom edge."
842+#~ msgstr "Potáhněte prstem z dola nahoru."
843+
844+#~ msgid "Tap here to continue."
845+#~ msgstr "Klepněte zde pro pokračování."
846+
847+#~ msgid "These are the shortcuts to favorite apps"
848+#~ msgstr "Zde jsou odkazy na vaše oblíbené aplikace"
849+
850+#~ msgid "Open the launcher"
851+#~ msgstr "Otevřete launcher"
852+
853+#~ msgid "Short swipe from the left edge."
854+#~ msgstr "Potáhněte krátce z levého okraje."
855+
856+#~ msgid "You almost got it!"
857+#~ msgstr "Už to skoro máte!"
858+
859+#~ msgid "Try again."
860+#~ msgstr "Zkuste to znovu."
861+
862+#~ msgid "To view open apps"
863+#~ msgstr "K zobrazení otevřených aplikací"
864+
865+#~ msgid "Long swipe from the right edge."
866+#~ msgstr "Potáhněte dlouho z pravého okraje."
867+
868+#~ msgid "View all your running tasks."
869+#~ msgstr "Zobrazíte všechny běžící procesy."
870+
871+#~ msgid "Hi!"
872+#~ msgstr "Ahoj!"
873+
740#~ msgid "Welcome to your Ubuntu phone."
874#~ msgid "Welcome to your Ubuntu phone."
741#~ msgstr "Vítejte ve vašem Ubuntu telefonu."
875#~ msgstr "Vítejte ve vašem Ubuntu telefonu."
742
876
877+#~ msgid "Let’s get started."
878+#~ msgstr "Začněme."
879+
880+#~ msgid "Continue"
881+#~ msgstr "Pokračovat"
882+
883+#~ msgid "Add a SIM card and restart your device"
884+#~ msgstr "Vložte SIM kartu a restartujte své zařízení"
885+
886+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
887+#~ msgstr "Bez ni nebudete moci telefonovat nebo posílat textové zprávy."
888+
889+#~ msgid "Lock security"
890+#~ msgstr "Bezpečnostní uzamčení"
891+
743#~ msgid "Please select how you’d like to unlock your phone."
892#~ msgid "Please select how you’d like to unlock your phone."
744#~ msgstr "Zvolte, prosím, jak chcete svůj telefon odemykat."
893#~ msgstr "Zvolte, prosím, jak chcete svůj telefon odemykat."
745
894
895+#~ msgctxt "Label: Type of security method"
896+#~ msgid "Swipe"
897+#~ msgstr "Potažením prstu"
898+
899+#~ msgctxt "Label: Description of security method"
900+#~ msgid "No security"
901+#~ msgstr "Bez zabezpečení"
902+
903+#~ msgctxt "Label: Type of security method"
904+#~ msgid "Passcode"
905+#~ msgstr "Číselné heslo"
906+
907+#~ msgctxt "Label: Description of security method"
908+#~ msgid "4 digits only"
909+#~ msgstr "Pouze 4 čísla"
910+
911+#~ msgctxt "Label: Type of security method"
912+#~ msgid "Passphrase"
913+#~ msgstr "Heslo"
914+
915+#~ msgctxt "Label: Description of security method"
916+#~ msgid "Numbers and letters"
917+#~ msgstr "Čísla a písmena"
918+
919+#~ msgid "Available networks…"
920+#~ msgstr "Dostupné sítě..."
921+
922+#~ msgid "No available networks."
923+#~ msgstr "Žádná dostupná síť."
924+
925+#~ msgid "Location"
926+#~ msgstr "Umístění"
927+
928+#~ msgid "Let the phone detect your location:"
929+#~ msgstr "Povolte telefonu zjistit, kde se zrovna nacházíte:"
930+
931+#~ msgid "Using GPS only (less accurate)"
932+#~ msgstr "Používat pouze GPS (méně přesné)"
933+
934+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
935+#~ msgstr "Používat GPS, anonymní Wi-Fi a datovou síť (doporučeno)"
936+
937+#~ msgid ""
938+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
939+#~ "conditions</a>."
940+#~ msgstr ""
941+#~ "Zvolením této možnosti souhlasíte s <a href='#'>pravidly a podmínkami</a> "
942+#~ "Nokia HERE."
943+
944+#~ msgid "Not at all"
945+#~ msgstr "V žádném případě"
946+
947+#~ msgid "You can change your mind later in <b>System Settings</b>."
948+#~ msgstr ""
949+#~ "Pokud změníte názor, můžete nastavení změnit v <b>Nastavení systému</b>."
950+
951+#~ msgid "Improving your experience"
952+#~ msgstr "Zlepšete své zkušenosti"
953+
954+#~ msgid ""
955+#~ "Your phone is set up to automatically report errors to Canonical and its "
956+#~ "partners, the makers of the operating system."
957+#~ msgstr ""
958+#~ "Váš telefon je nastaven tak, aby automaticky odesílal informace o chybách "
959+#~ "společnosti Canonical a partnerům, kteří stvořili tento operační systém."
960+
961+#~ msgid ""
962+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
963+#~ "Privacy</b>"
964+#~ msgstr ""
965+#~ "To může být vypnuto v <b>Nastavení systému</b> v <b>Zabezpečení a "
966+#~ "soukromí</b>"
967+
968+#~ msgid "All done"
969+#~ msgstr "Vše je hotovo"
970+
971+#~ msgid "Nice work!"
972+#~ msgstr "Skvělá práce!"
973+
746#~ msgid "Your phone is now ready to use."
974#~ msgid "Your phone is now ready to use."
747#~ msgstr "Váš telefon je nyní připraven k použití."
975#~ msgstr "Váš telefon je nyní připraven k použití."
748
976
977+#~ msgid "Finish"
978+#~ msgstr "Dokončit"
979+
980+#~ msgid "Confirm passphrase"
981+#~ msgstr "Potvrdit heslo"
982+
983+#~ msgid "Please try again."
984+#~ msgstr "Zkuste to, prosím, znovu."
985+
986+#~ msgid "Choose your passcode"
987+#~ msgstr "Zvolte své heslo"
988+
989+#~ msgid "Passphrase must be 4 characters long"
990+#~ msgstr "Heslo musí být alespoň 4 znaky dlouhé"
991+
992+#, qt-format
993+#~ msgid "〈 %1"
994+#~ msgstr "〈 %1"
995+
996+#, qt-format
997+#~ msgid "%1 〉"
998+#~ msgstr "%1 〉"
999+
749#~ msgid "Log out"
1000#~ msgid "Log out"
750#~ msgstr "Odhlásit se"
1001#~ msgstr "Odhlásit se"
751
1002
@@ -785,9 +1036,6 @@ msgstr "%1 〉"
785#~ msgid "%a %d %b %l:%M %p"
1036#~ msgid "%a %d %b %l:%M %p"
786#~ msgstr "%a %b. %d %l:%M %p"
1037#~ msgstr "%a %b. %d %l:%M %p"
787
1038
788−#~ msgid "Restart"
789−#~ msgstr "Reboot"
790−
791#~ msgid "Settings"
1039#~ msgid "Settings"
792#~ msgstr "Nastavení"
1040#~ msgstr "Nastavení"
793
1041
po/cy.po+487−236
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11"PO-Revision-Date: 2015-07-31 13:21+0000\n"
11"PO-Revision-Date: 2015-07-31 13:21+0000\n"
12"Last-Translator: Owen Llywelyn <owen.llywelyn@gmail.com>\n"
12"Last-Translator: Owen Llywelyn <owen.llywelyn@gmail.com>\n"
13"Language-Team: Welsh <cy@li.org>\n"
13"Language-Team: Welsh <cy@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
17"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
18"2 : 3;\n"
18"2 : 3;\n"
19−"X-Launchpad-Export-Date: 2016-03-13 05:51+0000\n"
19+"X-Launchpad-Export-Date: 2016-05-06 04:55+0000\n"
20−"X-Generator: Launchpad (build 17939)\n"
20+"X-Generator: Launchpad (build 17995)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
@@ -78,53 +78,35 @@ msgctxt "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:194
81+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
82−#: qml/Components/Dialogs.qml:253
82+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
83+#: qml/Wizard/Pages/passcode-set.qml:32
83msgid "Cancel"
84msgid "Cancel"
84msgstr "Diddymu"
85msgstr "Diddymu"
85
86
86#: qml/Components/Dialogs.qml:173
87#: qml/Components/Dialogs.qml:173
87−msgctxt "Title: Reboot/Shut down dialog"
88−msgid "Shut down"
89−msgstr "Diffodd"
90−
91−#: qml/Components/Dialogs.qml:174
92−msgid "Are you sure you want to shut down?"
93−msgstr "Ydych chi'n sicr eich bod am ddiffodd?"
94−
95−#: qml/Components/Dialogs.qml:176
96−msgctxt "Button: Reboot the system"
97−msgid "Reboot"
98−msgstr "Ailgychwyn"
99−
100−#: qml/Components/Dialogs.qml:185
101−msgctxt "Button: Shut down the system"
102−msgid "Shut down"
103−msgstr "Diffodd"
104−
105−#: qml/Components/Dialogs.qml:207
106msgctxt "Title: Reboot dialog"
88msgctxt "Title: Reboot dialog"
107msgid "Reboot"
89msgid "Reboot"
108msgstr "Ailgychwyn"
90msgstr "Ailgychwyn"
109
91
110−#: qml/Components/Dialogs.qml:208
92+#: qml/Components/Dialogs.qml:174
111msgid "Are you sure you want to reboot?"
93msgid "Are you sure you want to reboot?"
112msgstr "Ydych chi'n sicr eich bod am ailgychwyn?"
94msgstr "Ydych chi'n sicr eich bod am ailgychwyn?"
113
95
114−#: qml/Components/Dialogs.qml:210
96+#: qml/Components/Dialogs.qml:176
115msgid "No"
97msgid "No"
116msgstr "Na"
98msgstr "Na"
117
99
118−#: qml/Components/Dialogs.qml:217
100+#: qml/Components/Dialogs.qml:182
119msgid "Yes"
101msgid "Yes"
120msgstr "Ydw"
102msgstr "Ydw"
121
103
122−#: qml/Components/Dialogs.qml:232
104+#: qml/Components/Dialogs.qml:197
123msgctxt "Title: Power off/Restart dialog"
105msgctxt "Title: Power off/Restart dialog"
124msgid "Power"
106msgid "Power"
125msgstr "Pŵer"
107msgstr "Pŵer"
126
108
127−#: qml/Components/Dialogs.qml:233
109+#: qml/Components/Dialogs.qml:198
128msgid ""
110msgid ""
129"Are you sure you would like\n"
111"Are you sure you would like\n"
130"to power off?"
112"to power off?"
@@ -132,12 +114,12 @@ msgstr ""
132"Ydych chi'n sicr eich bod am\n"
114"Ydych chi'n sicr eich bod am\n"
133"ddiffodd y pŵer?"
115"ddiffodd y pŵer?"
134
116
135−#: qml/Components/Dialogs.qml:235
117+#: qml/Components/Dialogs.qml:200
136msgctxt "Button: Power off the system"
118msgctxt "Button: Power off the system"
137msgid "Power off"
119msgid "Power off"
138msgstr "Diffodd y pŵer"
120msgstr "Diffodd y pŵer"
139
121
140−#: qml/Components/Dialogs.qml:244
122+#: qml/Components/Dialogs.qml:209
141msgctxt "Button: Restart the system"
123msgctxt "Button: Restart the system"
142msgid "Restart"
124msgid "Restart"
143msgstr "Ailgychwyn"
125msgstr "Ailgychwyn"
@@ -180,42 +162,58 @@ msgstr ""
180msgid "Close all"
162msgid "Close all"
181msgstr ""
163msgstr ""
182
164
183−#: qml/Dash/DashPageHeader.qml:270
165+#: qml/Dash/DashPageHeader.qml:337
184msgctxt "Button: Open the Ubuntu Store"
166msgctxt "Button: Open the Ubuntu Store"
185msgid "Store"
167msgid "Store"
186msgstr "Marchnad"
168msgstr "Marchnad"
187
169
188−#: qml/Dash/DashPageHeader.qml:277
170+#: qml/Dash/DashPageHeader.qml:344
189msgctxt "Button: Start a search in the current dash scope"
171msgctxt "Button: Start a search in the current dash scope"
190msgid "Search"
172msgid "Search"
191msgstr "Chwilio"
173msgstr "Chwilio"
192
174
193−#: qml/Dash/DashPageHeader.qml:287
175+#: qml/Dash/DashPageHeader.qml:354
194msgctxt "Button: Show the current dash scope settings"
176msgctxt "Button: Show the current dash scope settings"
195msgid "Settings"
177msgid "Settings"
196msgstr "Gosodiadau"
178msgstr "Gosodiadau"
197
179
198−#: qml/Dash/DashPageHeader.qml:294
180+#: qml/Dash/DashPageHeader.qml:361
199msgid "Remove from Favorites"
181msgid "Remove from Favorites"
200msgstr "Tynnu o Ffefrynnau"
182msgstr "Tynnu o Ffefrynnau"
201
183
202−#: qml/Dash/DashPageHeader.qml:294
184+#: qml/Dash/DashPageHeader.qml:361
203msgid "Add to Favorites"
185msgid "Add to Favorites"
204msgstr "Ychwanegu at Ffefrynnau"
186msgstr "Ychwanegu at Ffefrynnau"
205
187
188+#: qml/Dash/FiltersPopover.qml:60
189+msgid "Refine your results"
190+msgstr ""
191+
192+#: qml/Dash/FiltersPopover.qml:69
193+msgid "Reset"
194+msgstr ""
195+
206−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
196+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
207−msgid "See less"
197+msgid "Show less"
208−msgstr "Gweld llai"
198+msgstr ""
209
199
210−#: qml/Dash/GenericScopeView.qml:567
200+#: qml/Dash/GenericScopeView.qml:579
211−msgid "See all"
201+msgid "Show all"
212−msgstr "Gweld y cyfan"
202+msgstr ""
213
203
214−#: qml/Dash/GenericScopeView.qml:629
204+#: qml/Dash/GenericScopeView.qml:636
215msgctxt "Label: Hint for dash search line edit"
205msgctxt "Label: Hint for dash search line edit"
216msgid "Search"
206msgid "Search"
217msgstr "Chwilio"
207msgstr "Chwilio"
218
208
209+#: qml/Dash/PageHeaderExtraPanel.qml:55
210+msgid "Recent Searches"
211+msgstr ""
212+
213+#: qml/Dash/PageHeaderExtraPanel.qml:66
214+msgid "Clear All"
215+msgstr ""
216+
219#: qml/Dash/Previews/PreviewActionCombo.qml:35
217#: qml/Dash/Previews/PreviewActionCombo.qml:35
220msgid "More..."
218msgid "More..."
221msgstr "Mwy..."
219msgstr "Mwy..."
@@ -283,11 +281,11 @@ msgstr "Ailgynnig"
283msgid "Tap to unlock"
281msgid "Tap to unlock"
284msgstr "Tapiwch i ddatgloi"
282msgstr "Tapiwch i ddatgloi"
285
283
286−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
284+#: qml/Greeter/NarrowView.qml:54
287msgid "Sorry, incorrect passphrase."
285msgid "Sorry, incorrect passphrase."
288msgstr "Cyfrinair anghywir"
286msgstr "Cyfrinair anghywir"
289
287
290−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
288+#: qml/Greeter/NarrowView.qml:55
291msgid "Sorry, incorrect passcode."
289msgid "Sorry, incorrect passcode."
292msgstr "Cod cyfrinachol anghywir"
290msgstr "Cod cyfrinachol anghywir"
293
291
@@ -316,7 +314,7 @@ msgstr ""
316msgid "Enter %1"
314msgid "Enter %1"
317msgstr "Rhowch %1"
315msgstr "Rhowch %1"
318
316
319−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
317+#: qml/Greeter/NarrowView.qml:117
320msgid "Enter passphrase"
318msgid "Enter passphrase"
321msgstr "Rhowch gyfrinair"
319msgstr "Rhowch gyfrinair"
322
320
@@ -342,7 +340,7 @@ msgstr "Ceisiwch eto"
342msgid "Sorry, incorrect passcode"
340msgid "Sorry, incorrect passcode"
343msgstr "Cod cyfrinachol anghywir"
341msgstr "Cod cyfrinachol anghywir"
344
342
345−#: qml/Notifications/NotificationMenuItemFactory.qml:129
343+#: qml/Notifications/NotificationMenuItemFactory.qml:124
346msgid "Show password"
344msgid "Show password"
347msgstr "Dangos cyfrinair"
345msgstr "Dangos cyfrinair"
348
346
@@ -354,11 +352,11 @@ msgstr "Tapiwch i ffonio nôl"
354msgid "Conference"
352msgid "Conference"
355msgstr "Cydalwad"
353msgstr "Cydalwad"
356
354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:752
355+#: qml/Panel/Indicators/MenuItemFactory.qml:762
358msgid "Nothing is playing"
356msgid "Nothing is playing"
359msgstr "Dim byd yn chwarae"
357msgstr "Dim byd yn chwarae"
360
358
361−#: qml/Panel/Indicators/MenuItemFactory.qml:881
359+#: qml/Panel/Indicators/MenuItemFactory.qml:891
362#, qt-format
360#, qt-format
363msgid "%1 hour"
361msgid "%1 hour"
364msgid_plural "%1 hours"
362msgid_plural "%1 hours"
@@ -367,7 +365,7 @@ msgstr[1] "%1 awr"
367msgstr[2] "%1 awr"
365msgstr[2] "%1 awr"
368msgstr[3] "%1 awr"
366msgstr[3] "%1 awr"
369
367
370−#: qml/Panel/Indicators/MenuItemFactory.qml:885
368+#: qml/Panel/Indicators/MenuItemFactory.qml:895
371#, qt-format
369#, qt-format
372msgid "%1 minute"
370msgid "%1 minute"
373msgid_plural "%1 minutes"
371msgid_plural "%1 minutes"
@@ -376,7 +374,7 @@ msgstr[1] "%1 munud"
376msgstr[2] "%1 munud"
374msgstr[2] "%1 munud"
377msgstr[3] "%1 munud"
375msgstr[3] "%1 munud"
378
376
379−#: qml/Panel/Indicators/MenuItemFactory.qml:890
377+#: qml/Panel/Indicators/MenuItemFactory.qml:900
380#, qt-format
378#, qt-format
381msgid "%1 second"
379msgid "%1 second"
382msgid_plural "%1 seconds"
380msgid_plural "%1 seconds"
@@ -385,37 +383,37 @@ msgstr[1] "%1 eiliad"
385msgstr[2] "%1 eiliad"
383msgstr[2] "%1 eiliad"
386msgstr[3] "%1 eiliad"
384msgstr[3] "%1 eiliad"
387
385
388−#: qml/Panel/Indicators/MenuItemFactory.qml:893
386+#: qml/Panel/Indicators/MenuItemFactory.qml:903
389msgid "0 seconds"
387msgid "0 seconds"
390msgstr "0 eiliad"
388msgstr "0 eiliad"
391
389
392#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
390#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
393−#: qml/Panel/Indicators/MenuItemFactory.qml:895
391+#: qml/Panel/Indicators/MenuItemFactory.qml:905
394#, qt-format
392#, qt-format
395msgid "%1 remaining"
393msgid "%1 remaining"
396msgstr "%1 yn weddill"
394msgstr "%1 yn weddill"
397
395
398−#: qml/Panel/Indicators/MenuItemFactory.qml:901
396+#: qml/Panel/Indicators/MenuItemFactory.qml:911
399msgid "In queue…"
397msgid "In queue…"
400msgstr "Mewn ciw..."
398msgstr "Mewn ciw..."
401
399
402−#: qml/Panel/Indicators/MenuItemFactory.qml:905
400+#: qml/Panel/Indicators/MenuItemFactory.qml:915
403msgid "Downloading"
401msgid "Downloading"
404msgstr "Yn llwytho i lawr"
402msgstr "Yn llwytho i lawr"
405
403
406−#: qml/Panel/Indicators/MenuItemFactory.qml:907
404+#: qml/Panel/Indicators/MenuItemFactory.qml:917
407msgid "Paused, tap to resume"
405msgid "Paused, tap to resume"
408msgstr "Seibiwyd, tapiwch i ailafael ynddi"
406msgstr "Seibiwyd, tapiwch i ailafael ynddi"
409
407
410−#: qml/Panel/Indicators/MenuItemFactory.qml:909
408+#: qml/Panel/Indicators/MenuItemFactory.qml:919
411msgid "Canceled"
409msgid "Canceled"
412msgstr "Diddymwyd"
410msgstr "Diddymwyd"
413
411
414−#: qml/Panel/Indicators/MenuItemFactory.qml:911
412+#: qml/Panel/Indicators/MenuItemFactory.qml:921
415msgid "Finished"
413msgid "Finished"
416msgstr "Wedi gorffen"
414msgstr "Wedi gorffen"
417
415
418−#: qml/Panel/Indicators/MenuItemFactory.qml:913
416+#: qml/Panel/Indicators/MenuItemFactory.qml:923
419msgid "Failed, tap to retry"
417msgid "Failed, tap to retry"
420msgstr "Methwyd, tapiwch i geisio eto"
418msgstr "Methwyd, tapiwch i geisio eto"
421
419
@@ -435,251 +433,324 @@ msgctxt "Button: Call back on phone"
435msgid "Call back"
433msgid "Call back"
436msgstr ""
434msgstr ""
437
435
438−#: qml/Tutorial/TutorialBottom.qml:28
436+#: qml/Stages/SideStage.qml:76
439−msgid "Open special menus"
437+msgid "Drag using 3 fingers any application from one window to the other"
440−msgstr "Agor dewislenni arbennig"
438+msgstr ""
441−
442−#: qml/Tutorial/TutorialBottom.qml:29
443−msgid "Swipe up from the bottom edge."
444−msgstr "Trawiwch i fyny o'r ymyl gwaelod."
445
439
446−#: qml/Tutorial/TutorialBottomFinish.qml:24
440+#: qml/Tutorial/TutorialBottom.qml:78
447−msgid "This action does different things for different apps"
441+msgid "Swipe up to add a contact"
448−msgstr "Mae'r weithred hon yn gwneud pethau gwahanol mewn apiau gwahanol"
442+msgstr ""
449
443
450−#: qml/Tutorial/TutorialBottomFinish.qml:25
444+#: qml/Tutorial/TutorialBottom.qml:80
451−msgid "Tap here to finish."
445+msgid "Swipe up for favorite calculations"
452−msgstr "Tapiwch yma i orffen"
446+msgstr ""
453
447
454−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
448+#: qml/Tutorial/TutorialBottom.qml:82
455−#: qml/Tutorial/TutorialRight.qml:144
449+msgid "Swipe up for recent calls"
456−msgid "Tap here to continue."
457−msgstr "Tapiwch yma i barhau."
450+msgstr ""
458
451
459−#: qml/Tutorial/TutorialLeft.qml:26
452+#: qml/Tutorial/TutorialBottom.qml:84
460−msgid "Open the launcher"
453+msgid "Swipe up to create a message"
461−msgstr "Agor y lansiwr"
454+msgstr ""
462
455
463−#: qml/Tutorial/TutorialLeft.qml:27
456+#: qml/Tutorial/TutorialBottom.qml:85
464−msgid "Short swipe from the left edge."
457+msgid "Swipe up to manage the app"
465−msgstr "Trawiad byr o'r ymyl chwith."
458+msgstr ""
466
459
467−#: qml/Tutorial/TutorialLeftFinish.qml:24
460+#: qml/Tutorial/TutorialLeftLong.qml:47
468−msgid "These are the shortcuts to favorite apps"
461+msgid "Long swipe from the left edge to open the Today scope"
469−msgstr "Rhain yw'r llwybrau byr i'ch hoff apiau"
462+msgstr ""
470
463
471−#: qml/Tutorial/TutorialPage.qml:178
464+#: qml/Tutorial/TutorialLeft.qml:47
472−msgid "You almost got it!"
465+msgid "Swipe from the left edge to open the launcher"
473−msgstr "Bron â bod!"
466+msgstr ""
474
467
475−#: qml/Tutorial/TutorialPage.qml:195
468+#: qml/Tutorial/TutorialRight.qml:55
476−msgid "Try again."
469+msgid "Push your mouse against the right edge to view your open apps"
477−msgstr "Ceisiwch eto."
470+msgstr ""
478
471
479−#: qml/Tutorial/TutorialRight.qml:31
472+#: qml/Tutorial/TutorialRight.qml:56
480−msgid "To view open apps"
473+msgid "Short or long swipe from the right edge to view your open apps"
481−msgstr "I weld apiau sydd ar agor"
474+msgstr ""
482
475
483−#: qml/Tutorial/TutorialRight.qml:32
476+#: qml/Tutorial/TutorialTop.qml:53
484−msgid "Long swipe from the right edge."
477+msgid "Swipe from the top right edge to open the notification bar"
485−msgstr "Trawiad hir o'r ymyl dde."
478+msgstr ""
486
479
487−#: qml/Tutorial/TutorialRight.qml:122
480+#: qml/Tutorial/TutorialTop.qml:54
488−msgid "View all your running tasks."
481+msgid "Swipe from the top edge to open the notification bar"
489−msgstr "Gweld pob tasg sy'n rhedeg."
482+msgstr ""
490
483
491−#: qml/Wizard/Page.qml:89
484+#: qml/Wizard/Page.qml:54
492msgctxt "Button: Go back one page in the Wizard"
485msgctxt "Button: Go back one page in the Wizard"
493msgid "Back"
486msgid "Back"
494msgstr "Nôl"
487msgstr "Nôl"
495
488
496#: qml/Wizard/Pages/10-welcome.qml:27
489#: qml/Wizard/Pages/10-welcome.qml:27
497−msgid "Hi!"
490+msgid "Language"
498−msgstr "Shwmae!"
491+msgstr ""
499
492
500−#: qml/Wizard/Pages/10-welcome.qml:44
493+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
501−msgid "Welcome to your Ubuntu device."
494+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
495+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
496+#: qml/Wizard/Pages/75-report-check.qml:84
497+#: qml/Wizard/Pages/passcode-desktop.qml:124
498+#: qml/Wizard/Pages/password-set.qml:141
499+msgid "Next"
502msgstr ""
500msgstr ""
503
501
504−#: qml/Wizard/Pages/10-welcome.qml:52
502+#: qml/Wizard/Pages/30-wifi.qml:29
505−msgid "Let’s get started."
503+msgid "Connect to Wi‑Fi"
506−msgstr "Beth am gychwyn."
504+msgstr "Cysylltu â diwifr"
507
505
508−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
506+#: qml/Wizard/Pages/30-wifi.qml:130
509−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
507+msgid "Connected"
510−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
511−#: qml/Wizard/Pages/passwd-set.qml:90
512−msgid "Continue"
513−msgstr "Parhau"
508+msgstr ""
514
509
515−#: qml/Wizard/Pages/20-sim.qml:25
510+#: qml/Wizard/Pages/30-wifi.qml:163
516−msgid "Add a SIM card and restart your device"
511+msgid "Available Wi-Fi networks"
517−msgstr "Ychwanegwch gerdyn SIM ac ailgychwyn y ddyfais"
512+msgstr ""
518
513
519−#: qml/Wizard/Pages/20-sim.qml:59
514+#: qml/Wizard/Pages/30-wifi.qml:164
520−msgid "Without it, you won’t be able to make calls or use text messaging."
515+msgid "No available Wi-Fi networks"
521−msgstr "Hebddo bydd dim modd gwneud galwadau na defnyddio negeseuon testun."
516+msgstr ""
522
517
523−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
518+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
519+#: qml/Wizard/Pages/sim.qml:101
524msgid "Skip"
520msgid "Skip"
525msgstr "Neidio"
521msgstr "Neidio"
526
522
527−#: qml/Wizard/Pages/30-passwd-type.qml:39
523+#: qml/Wizard/Pages/40-location.qml:27
524+msgid "Location Services"
525+msgstr ""
526+
527+#: qml/Wizard/Pages/40-location.qml:83
528−msgid "Lock security"
528+msgid ""
529+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
530+"(recommended)"
529−msgstr "Diogelwch cloi"
531+msgstr ""
532+
533+#: qml/Wizard/Pages/40-location.qml:105
534+#, qt-format
535+msgid "By selecting this option you agree to the Nokia HERE %1."
536+msgstr ""
530
537
531−#: qml/Wizard/Pages/30-passwd-type.qml:79
538+#: qml/Wizard/Pages/40-location.qml:106
532−msgid "Please select how you’d like to unlock your device."
539+msgctxt "part of: Nokia HERE terms and conditions"
540+msgid "terms and conditions"
533msgstr ""
541msgstr ""
534
542
535−#: qml/Wizard/Pages/30-passwd-type.qml:102
543+#: qml/Wizard/Pages/40-location.qml:160
536−msgctxt "Label: Type of security method"
544+msgid "GPS only"
537−msgid "Swipe"
545+msgstr ""
546+
547+#: qml/Wizard/Pages/40-location.qml:214
548+msgid "Don't use my location"
549+msgstr ""
550+
551+#: qml/Wizard/Pages/40-location.qml:260
552+msgid "You can change it later in System Settings."
553+msgstr ""
554+
555+#: qml/Wizard/Pages/50-timezone.qml:29
556+msgid "Time Zone"
557+msgstr ""
558+
559+#: qml/Wizard/Pages/50-timezone.qml:178
560+msgid "Enter your city"
561+msgstr ""
562+
563+#: qml/Wizard/Pages/60-account.qml:24
564+msgid "Personalize Your Device"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/60-account.qml:48
568+msgid "Preferred Name"
538−msgstr "Trawio"
569+msgstr ""
539
570
540−#: qml/Wizard/Pages/30-passwd-type.qml:103
571+#: qml/Wizard/Pages/70-passwd-type.qml:39
541−msgctxt "Label: Description of security method"
572+msgid "Lock Screen"
542−msgid "No security"
543−msgstr "Dim diogelwch"
573+msgstr ""
544
574
545−#: qml/Wizard/Pages/30-passwd-type.qml:105
575+#: qml/Wizard/Pages/70-passwd-type.qml:101
546msgctxt "Label: Type of security method"
576msgctxt "Label: Type of security method"
547−msgid "Passcode"
577+msgid "Create new password"
548−msgstr "Cod cyfrinachol"
578+msgstr ""
549
579
550−#: qml/Wizard/Pages/30-passwd-type.qml:106
580+#: qml/Wizard/Pages/70-passwd-type.qml:103
551−msgctxt "Label: Description of security method"
581+msgctxt "Label: Type of security method"
552−msgid "4 digits only"
582+msgid "Create passcode (numbers only)"
553−msgstr "4 digid yn unig"
583+msgstr ""
554
584
555−#: qml/Wizard/Pages/30-passwd-type.qml:108
585+#: qml/Wizard/Pages/70-passwd-type.qml:105
556msgctxt "Label: Type of security method"
586msgctxt "Label: Type of security method"
557−msgid "Passphrase"
587+msgid "No lock code"
558−msgstr "Cyfrinair"
588+msgstr ""
559
589
560−#: qml/Wizard/Pages/30-passwd-type.qml:109
590+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
561−msgctxt "Label: Description of security method"
591+msgid "Privacy Policy"
562−msgid "Numbers and letters"
563−msgstr "Rhifau a llythrennau"
592+msgstr ""
564
593
565−#: qml/Wizard/Pages/40-wifi.qml:29
594+#: qml/Wizard/Pages/75-report-check.qml:26
566−msgid "Connect to Wi‑Fi"
595+msgid "Help Us Improve"
567−msgstr "Cysylltu â diwifr"
596+msgstr ""
597+
598+#: qml/Wizard/Pages/75-report-check.qml:59
599+msgid "Improve system performance by sending us crashes and error reports."
600+msgstr ""
568
601
569−#: qml/Wizard/Pages/40-wifi.qml:168
602+#: qml/Wizard/Pages/75-report-check.qml:60
570−msgid "Available networks…"
603+msgid "Privacy policy"
571−msgstr "Rhwydweithiau sydd ar gael..."
604+msgstr ""
572
605
573−#: qml/Wizard/Pages/40-wifi.qml:169
606+#: qml/Wizard/Pages/80-finished.qml:89
574−msgid "No available networks."
607+msgid "Welcome to Ubuntu"
575−msgstr "Dim rhwydweithiau ar gael"
608+msgstr ""
576
609
577−#: qml/Wizard/Pages/50-location.qml:27
610+#: qml/Wizard/Pages/80-finished.qml:104
578−msgid "Location"
611+msgid "You are ready to use your device now"
579−msgstr "Lleoliad"
612+msgstr ""
580
613
581−#: qml/Wizard/Pages/50-location.qml:62
614+#: qml/Wizard/Pages/80-finished.qml:124
582−msgid "Let the phone detect your location:"
615+msgid "Get Started"
583−msgstr "Caniatáu'r ffôn i ganfod eich lleoliad:"
616+msgstr ""
584
617
585−#: qml/Wizard/Pages/50-location.qml:69
618+#: qml/Wizard/Pages/here-terms.qml:25
586−msgid "Using GPS only (less accurate)"
619+msgid "Terms & Conditions"
587−msgstr "Defnyddio GPS yn unig (llai cywir)"
620+msgstr "Amodau a Thelerau"
588
621
589−#: qml/Wizard/Pages/50-location.qml:86
622+#: qml/Wizard/Pages/here-terms.qml:69
590−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
623+msgid "Your device uses positioning technologies provided by HERE."
591msgstr ""
624msgstr ""
592−"Defnyddio GPS, diwifr dienw a gwybodaeth rhwydwaith cellog (argymellir hwn)"
593
625
594−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
595−#: qml/Wizard/Pages/50-location.qml:103
626+#: qml/Wizard/Pages/here-terms.qml:81
596msgid ""
627msgid ""
597−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
628+"To provide you with positioning services and to improve their quality, HERE "
598−"conditions</a>."
629+"collects information about nearby cell towers and Wi-Fi hotspots around your "
630+"current location whenever your position is being found."
599msgstr ""
631msgstr ""
600−"Drwy ddewis yr opsiwn yma rydych yn cytuno i <a href='#'>dermau ac "
601−"amodau</a> Nokia HERE."
602
632
603−#: qml/Wizard/Pages/50-location.qml:112
633+#: qml/Wizard/Pages/here-terms.qml:93
604−msgid "Not at all"
634+msgid ""
635+"The information collected is used to analyze the service and to improve the "
636+"use of service, but not to identify you personally."
605−msgstr "Dim o gwbl"
637+msgstr ""
606
638
607−#: qml/Wizard/Pages/50-location.qml:124
639+#: qml/Wizard/Pages/here-terms.qml:106
608−msgid "You can change your mind later in <b>System Settings</b>."
640+#, qt-format
609−msgstr "Gallwch newid hwn eto yn <b>Gosodiadau System</b>."
641+msgid "By continuing, you agree to the HERE platform %1 and %2."
642+msgstr ""
610
643
611−#: qml/Wizard/Pages/60-reporting.qml:26
644+#: qml/Wizard/Pages/here-terms.qml:107
612−msgid "Improving your experience"
645+msgid "Service Terms"
613−msgstr "Gwella eich profiad"
646+msgstr ""
614
647
615−#: qml/Wizard/Pages/60-reporting.qml:46
648+#: qml/Wizard/Pages/passcode-confirm.qml:43
649+#: qml/Wizard/Pages/passcode-desktop.qml:80
616−msgid ""
650+msgid "Confirm passcode"
617−"Your phone is set up to automatically report errors to Canonical and its "
651+msgstr "Cadarnhau cod cyfrinachol"
618−"partners, the makers of the operating system."
652+
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
654+msgid "Incorrect passcode."
619msgstr ""
655msgstr ""
620−"Cyfluniwyd eich ffôn i adrodd gwallau i Canonical a'i bartneriaid, "
621−"gwneuthurwyr y system weithredu."
622
656
623−#: qml/Wizard/Pages/60-reporting.qml:53
657+#: qml/Wizard/Pages/passcode-confirm.qml:45
658+msgctxt "Enter the passcode again"
624−msgid ""
659+msgid "Please re-enter."
625−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
626−"Privacy</b>"
627msgstr ""
660msgstr ""
628−"Gellir analluogi hwn yn <b>Gosodiadau System</b> dan <b>Diogelwch a "
629−"Phreifatwydd</b>"
630
661
631−#: qml/Wizard/Pages/80-finished.qml:24
662+#: qml/Wizard/Pages/passcode-desktop.qml:30
632−msgid "All done"
663+msgid "Lock Screen Passcode"
633−msgstr "Wedi gorffen"
664+msgstr ""
634
665
635−#: qml/Wizard/Pages/80-finished.qml:39
666+#: qml/Wizard/Pages/passcode-desktop.qml:56
636−msgid "Nice work!"
667+msgid "Enter 4 numbers to setup your passcode"
637−msgstr "Da iawn!"
668+msgstr ""
638
669
639−#: qml/Wizard/Pages/80-finished.qml:46
670+#: qml/Wizard/Pages/passcode-desktop.qml:65
640−msgid "Your device is now ready to use."
671+#: qml/Wizard/Pages/passcode-set.qml:54
672+msgid "Choose passcode"
641msgstr ""
673msgstr ""
642
674
643−#: qml/Wizard/Pages/80-finished.qml:53
675+#: qml/Wizard/Pages/passcode-desktop.qml:105
644−msgid "Finish"
676+msgid "Passcode too short"
645−msgstr "Gorffen"
677+msgstr ""
646
678
647−#: qml/Wizard/Pages/here-terms.qml:27
679+#: qml/Wizard/Pages/passcode-desktop.qml:107
648−msgid "Terms & Conditions"
680+msgid "Passcodes match"
649−msgstr "Amodau a Thelerau"
681+msgstr ""
650
682
651−#: qml/Wizard/Pages/passwd-confirm.qml:49
683+#: qml/Wizard/Pages/passcode-desktop.qml:109
652−msgid "Confirm passphrase"
684+msgid "Passcodes do not match"
653−msgstr "Cadarnhau cyfrinair"
685+msgstr ""
654
686
655−#: qml/Wizard/Pages/passwd-confirm.qml:50
687+#: qml/Wizard/Pages/passcode-set.qml:62
656−msgid "Confirm passcode"
688+msgid "Passcode must be 4 characters long"
657−msgstr "Cadarnhau cod cyfrinachol"
689+msgstr ""
690+
691+#: qml/Wizard/Pages/password-set.qml:30
692+msgid "Lock Screen Password"
693+msgstr ""
658
694
659−#: qml/Wizard/Pages/passwd-confirm.qml:53
695+#: qml/Wizard/Pages/password-set.qml:61
660−#: qml/Wizard/Pages/passwd-confirm.qml:54
696+msgid "Enter at least 8 characters"
661−msgid "Please try again."
697+msgstr ""
662−msgstr "Rhowch gynnig arall arni"
663
698
664−#: qml/Wizard/Pages/passwd-set.qml:61
699+#: qml/Wizard/Pages/password-set.qml:73
665−msgid "Choose your passcode"
700+msgid "Choose password"
666−msgstr "Dewiswch eich cod cyfrinachol"
701+msgstr ""
667
702
668−#: qml/Wizard/Pages/passwd-set.qml:68
703+#: qml/Wizard/Pages/password-set.qml:103
669−msgid "Passphrase must be 4 characters long"
704+msgid "Confirm password"
670−msgstr "Dylai cyfrinair fod yn bedwar nod"
705+msgstr ""
671
706
672−#. Translators: This is the arrow for "Back" buttons
673−#: qml/Wizard/StackButton.qml:39
707+#: qml/Wizard/Pages/sim.qml:27
674−#, qt-format
708+msgid "No SIM card installed"
675−msgid "〈 %1"
676−msgstr "〈 %1"
709+msgstr ""
677
710
678−#. Translators: This is the arrow for "Forward" buttons
711+#: qml/Wizard/Pages/sim.qml:54
712+msgid "SIM card added"
713+msgstr ""
714+
715+#: qml/Wizard/Pages/sim.qml:55
716+msgid "You must restart the device to access the mobile network."
717+msgstr ""
718+
719+#: qml/Wizard/Pages/sim.qml:59
720+msgid "Restart"
721+msgstr ""
722+
679−#: qml/Wizard/StackButton.qml:42
723+#: qml/Wizard/Pages/sim.qml:78
680−#, qt-format
724+msgid "You won’t be able to make calls or use text messaging without a SIM."
681−msgid "%1 〉"
725+msgstr ""
726+
727+#: qml/Wizard/Pages/sim.qml:90
728+msgid "To proceed with no SIM tap Skip."
729+msgstr ""
730+
731+#: qml/Wizard/PasswordMeter.qml:87
732+msgid "Passwords match"
733+msgstr ""
734+
735+#: qml/Wizard/PasswordMeter.qml:89
736+msgid "Passwords do not match"
737+msgstr ""
738+
739+#: qml/Wizard/PasswordMeter.qml:93
740+msgid "Strong password"
682−msgstr "%1 〉"
741+msgstr ""
742+
743+#: qml/Wizard/PasswordMeter.qml:95
744+msgid "Fair password"
745+msgstr ""
746+
747+#: qml/Wizard/PasswordMeter.qml:97
748+msgid "Weak password"
749+msgstr ""
750+
751+#: qml/Wizard/PasswordMeter.qml:99
752+msgid "Very weak password"
753+msgstr ""
683
754
684#~ msgid "%a %l:%M %p"
755#~ msgid "%a %l:%M %p"
685#~ msgstr "%a %l:%M %p"
756#~ msgstr "%a %l:%M %p"
@@ -711,17 +782,197 @@ msgstr "%1 〉"
711#~ msgid "Tomorrow %H:%M"
782#~ msgid "Tomorrow %H:%M"
712#~ msgstr "Yfory %H:%M"
783#~ msgstr "Yfory %H:%M"
713
784
785+#~ msgid "Are you sure you want to shut down?"
786+#~ msgstr "Ydych chi'n sicr eich bod am ddiffodd?"
787+
788+#~ msgctxt "Button: Shut down the system"
789+#~ msgid "Shut down"
790+#~ msgstr "Diffodd"
791+
792+#~ msgctxt "Title: Reboot/Shut down dialog"
793+#~ msgid "Shut down"
794+#~ msgstr "Diffodd"
795+
796+#~ msgctxt "Button: Reboot the system"
797+#~ msgid "Reboot"
798+#~ msgstr "Ailgychwyn"
799+
800+#~ msgid "See all"
801+#~ msgstr "Gweld y cyfan"
802+
803+#~ msgid "See less"
804+#~ msgstr "Gweld llai"
805+
806+#~ msgid "This action does different things for different apps"
807+#~ msgstr "Mae'r weithred hon yn gwneud pethau gwahanol mewn apiau gwahanol"
808+
714#~ msgid "Unlock SIM"
809#~ msgid "Unlock SIM"
715#~ msgstr "Datgloi SIM"
810#~ msgstr "Datgloi SIM"
716
811
717#~ msgid "Roaming"
812#~ msgid "Roaming"
718#~ msgstr "Crwydrol"
813#~ msgstr "Crwydrol"
719
814
815+#~ msgid "Try again."
816+#~ msgstr "Ceisiwch eto."
817+
818+#~ msgid "Short swipe from the left edge."
819+#~ msgstr "Trawiad byr o'r ymyl chwith."
820+
821+#~ msgid "Open the launcher"
822+#~ msgstr "Agor y lansiwr"
823+
824+#~ msgid "Tap here to continue."
825+#~ msgstr "Tapiwch yma i barhau."
826+
827+#~ msgid "These are the shortcuts to favorite apps"
828+#~ msgstr "Rhain yw'r llwybrau byr i'ch hoff apiau"
829+
830+#~ msgid "Swipe up from the bottom edge."
831+#~ msgstr "Trawiwch i fyny o'r ymyl gwaelod."
832+
833+#~ msgid "Open special menus"
834+#~ msgstr "Agor dewislenni arbennig"
835+
836+#~ msgid "Tap here to finish."
837+#~ msgstr "Tapiwch yma i orffen"
838+
839+#~ msgid "You almost got it!"
840+#~ msgstr "Bron â bod!"
841+
842+#~ msgid "To view open apps"
843+#~ msgstr "I weld apiau sydd ar agor"
844+
845+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
846+#~ msgstr "Hebddo bydd dim modd gwneud galwadau na defnyddio negeseuon testun."
847+
848+#~ msgid "Add a SIM card and restart your device"
849+#~ msgstr "Ychwanegwch gerdyn SIM ac ailgychwyn y ddyfais"
850+
851+#~ msgid "View all your running tasks."
852+#~ msgstr "Gweld pob tasg sy'n rhedeg."
853+
854+#~ msgid "Long swipe from the right edge."
855+#~ msgstr "Trawiad hir o'r ymyl dde."
856+
857+#~ msgid "Hi!"
858+#~ msgstr "Shwmae!"
859+
860+#~ msgid "Let’s get started."
861+#~ msgstr "Beth am gychwyn."
862+
863+#~ msgid "Continue"
864+#~ msgstr "Parhau"
865+
720#~ msgid "Welcome to your Ubuntu phone."
866#~ msgid "Welcome to your Ubuntu phone."
721#~ msgstr "Croeso i'ch ffôn Ubuntu."
867#~ msgstr "Croeso i'ch ffôn Ubuntu."
722
868
869+#~ msgid "Lock security"
870+#~ msgstr "Diogelwch cloi"
871+
723#~ msgid "Please select how you’d like to unlock your phone."
872#~ msgid "Please select how you’d like to unlock your phone."
724#~ msgstr "Dewiswch sut yr hoffech ddatgloi'r ffôn."
873#~ msgstr "Dewiswch sut yr hoffech ddatgloi'r ffôn."
725
874
875+#~ msgctxt "Label: Description of security method"
876+#~ msgid "No security"
877+#~ msgstr "Dim diogelwch"
878+
879+#~ msgctxt "Label: Type of security method"
880+#~ msgid "Swipe"
881+#~ msgstr "Trawio"
882+
883+#~ msgctxt "Label: Description of security method"
884+#~ msgid "4 digits only"
885+#~ msgstr "4 digid yn unig"
886+
887+#~ msgctxt "Label: Type of security method"
888+#~ msgid "Passcode"
889+#~ msgstr "Cod cyfrinachol"
890+
891+#~ msgctxt "Label: Type of security method"
892+#~ msgid "Passphrase"
893+#~ msgstr "Cyfrinair"
894+
895+#~ msgctxt "Label: Description of security method"
896+#~ msgid "Numbers and letters"
897+#~ msgstr "Rhifau a llythrennau"
898+
899+#~ msgid "Improving your experience"
900+#~ msgstr "Gwella eich profiad"
901+
902+#~ msgid "You can change your mind later in <b>System Settings</b>."
903+#~ msgstr "Gallwch newid hwn eto yn <b>Gosodiadau System</b>."
904+
905+#~ msgid ""
906+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
907+#~ "conditions</a>."
908+#~ msgstr ""
909+#~ "Drwy ddewis yr opsiwn yma rydych yn cytuno i <a href='#'>dermau ac "
910+#~ "amodau</a> Nokia HERE."
911+
912+#~ msgid "Not at all"
913+#~ msgstr "Dim o gwbl"
914+
915+#~ msgid "Available networks…"
916+#~ msgstr "Rhwydweithiau sydd ar gael..."
917+
918+#~ msgid "No available networks."
919+#~ msgstr "Dim rhwydweithiau ar gael"
920+
921+#~ msgid "Location"
922+#~ msgstr "Lleoliad"
923+
924+#~ msgid "Let the phone detect your location:"
925+#~ msgstr "Caniatáu'r ffôn i ganfod eich lleoliad:"
926+
927+#~ msgid "Using GPS only (less accurate)"
928+#~ msgstr "Defnyddio GPS yn unig (llai cywir)"
929+
930+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
931+#~ msgstr ""
932+#~ "Defnyddio GPS, diwifr dienw a gwybodaeth rhwydwaith cellog (argymellir hwn)"
933+
934+#~ msgid ""
935+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
936+#~ "Privacy</b>"
937+#~ msgstr ""
938+#~ "Gellir analluogi hwn yn <b>Gosodiadau System</b> dan <b>Diogelwch a "
939+#~ "Phreifatwydd</b>"
940+
941+#~ msgid ""
942+#~ "Your phone is set up to automatically report errors to Canonical and its "
943+#~ "partners, the makers of the operating system."
944+#~ msgstr ""
945+#~ "Cyfluniwyd eich ffôn i adrodd gwallau i Canonical a'i bartneriaid, "
946+#~ "gwneuthurwyr y system weithredu."
947+
948+#~ msgid "Nice work!"
949+#~ msgstr "Da iawn!"
950+
951+#~ msgid "All done"
952+#~ msgstr "Wedi gorffen"
953+
954+#~ msgid "Finish"
955+#~ msgstr "Gorffen"
956+
726#~ msgid "Your phone is now ready to use."
957#~ msgid "Your phone is now ready to use."
727#~ msgstr "Mae eich ffôn yn barod i'w ddefnyddio"
958#~ msgstr "Mae eich ffôn yn barod i'w ddefnyddio"
959+
960+#~ msgid "Confirm passphrase"
961+#~ msgstr "Cadarnhau cyfrinair"
962+
963+#~ msgid "Please try again."
964+#~ msgstr "Rhowch gynnig arall arni"
965+
966+#, qt-format
967+#~ msgid "〈 %1"
968+#~ msgstr "〈 %1"
969+
970+#, qt-format
971+#~ msgid "%1 〉"
972+#~ msgstr "%1 〉"
973+
974+#~ msgid "Choose your passcode"
975+#~ msgstr "Dewiswch eich cod cyfrinachol"
976+
977+#~ msgid "Passphrase must be 4 characters long"
978+#~ msgstr "Dylai cyfrinair fod yn bedwar nod"
po/da.po+488−237

This diff is too big to show here.

po/de.po+513−256

This diff is too big to show here.

po/el.po+517−256

This diff is too big to show here.

po/en_AU.po+506−256

This diff is too big to show here.

po/en_GB.po+507−257

This diff is too big to show here.

po/eo.po+306−194

This diff is too big to show here.

po/es.po+514−258

This diff is too big to show here.

po/eu.po+487−239

This diff is too big to show here.

po/fa.po+510−250

This diff is too big to show here.

po/fi.po+510−259

This diff is too big to show here.

po/fo.po+261−183

This diff is too big to show here.

po/fr.po+529−265

This diff is too big to show here.

po/ga.po+472−237

This diff is too big to show here.

po/gd.po+532−261

This diff is too big to show here.

po/gl.po+514−260

This diff is too big to show here.

po/gv.po+272−188

This diff is too big to show here.

po/he.po+412−217

This diff is too big to show here.

po/hi.po+261−183

This diff is too big to show here.

po/hr.po+576−251

This diff is too big to show here.

po/hu.po+515−261

This diff is too big to show here.

po/hy.po+268−187

This diff is too big to show here.

po/ia.po+514−251

This diff is too big to show here.

po/id.po+272−188

This diff is too big to show here.

po/is.po+272−188

This diff is too big to show here.

po/it.po+517−253

This diff is too big to show here.

po/ja.po+284−188

This diff is too big to show here.

po/km.po+356−217

This diff is too big to show here.

po/kn.po+261−183

This diff is too big to show here.

po/ko.po+489−249

This diff is too big to show here.

po/ku.po+272−185

This diff is too big to show here.

po/ky.po+261−183

This diff is too big to show here.

po/lo.po+261−183

This diff is too big to show here.

po/lt.po+261−183

This diff is too big to show here.

po/lv.po+485−237

This diff is too big to show here.

po/ml.po+261−183

This diff is too big to show here.

po/mr.po+261−183

This diff is too big to show here.

po/ms.po+487−242

This diff is too big to show here.

po/my.po+269−184

This diff is too big to show here.

po/nb.po+509−258

This diff is too big to show here.

po/ne.po+261−183

This diff is too big to show here.

po/nl.po+505−248

This diff is too big to show here.

po/nn.po+261−183

This diff is too big to show here.

po/oc.po+590−263

This diff is too big to show here.

po/or.po+261−183

This diff is too big to show here.

po/pa.po+487−239

This diff is too big to show here.

po/pl.po+520−261

This diff is too big to show here.

po/pt.po+517−264

This diff is too big to show here.

po/pt_BR.po+498−250

This diff is too big to show here.

po/ro.po+489−241

This diff is too big to show here.

po/ru.po+493−244

This diff is too big to show here.

po/shn.po+261−183

This diff is too big to show here.

po/si.po+264−186

This diff is too big to show here.

po/sk.po+552−250

This diff is too big to show here.

po/sl.po+507−254

This diff is too big to show here.

po/sq.po+412−220

This diff is too big to show here.

po/sr.po+506−254

This diff is too big to show here.

po/sv.po+510−257

This diff is too big to show here.

po/sw.po+420−219

This diff is too big to show here.

po/ta.po+261−183

This diff is too big to show here.

po/te.po+261−183

This diff is too big to show here.

po/th.po+261−183

This diff is too big to show here.

po/tr.po+488−240

This diff is too big to show here.

po/ug.po+469−235

This diff is too big to show here.

po/uk.po+518−259

This diff is too big to show here.

po/unity8.pot+260−182

This diff is too big to show here.

po/ur.po+261−183

This diff is too big to show here.

po/uz.po+261−183

This diff is too big to show here.

po/vi.po+261−183

This diff is too big to show here.

po/wo.po+487−239

This diff is too big to show here.

po/xh.po+261−183

This diff is too big to show here.

po/zh_CN.po+495−249

This diff is too big to show here.

po/zh_HK.po+269−185

This diff is too big to show here.

po/zh_TW.po+489−244

This diff is too big to show here.

qml/Components/Dialogs.qml+8−52

This diff is too big to show here.

qml/Components/InputMethod.qml+4−1

This diff is too big to show here.

qml/Components/ScreenGrabber.qml → qml/Components/ItemGrabber.qmlrenamed+27−17

This diff is too big to show here.

qml/Tutorial/TutorialLeftFinish.qml → qml/Components/ItemSnapshot.qmlrenamed+24−20

This diff is too big to show here.

qml/Components/KeymapSwitcher.qmlnew file+65

This diff is too big to show here.

qml/Components/Lockscreen.qml+2−2

This diff is too big to show here.

qml/Components/NotificationAudio.qml+11−10

This diff is too big to show here.

qml/Components/PanelState/PanelState.qml+2−1

This diff is too big to show here.

qml/Components/PinLockscreen.qml+2−1

This diff is too big to show here.

qml/Components/PinPadButton.qml+17−2

This diff is too big to show here.

qml/Components/ShellDialog.qml+3−1

This diff is too big to show here.

qml/Components/Showable.qml+10

This diff is too big to show here.

qml/Components/UbuntuShapeForItem.qml+1

This diff is too big to show here.

qml/Components/Unity8Settings.qmldeleted−50

This diff is too big to show here.

qml/Components/VirtualTouchPad.qml+1−1

This diff is too big to show here.

qml/Components/WindowControlButtons.qml+8−6

This diff is too big to show here.

qml/Dash/CardGrid.qml+1

This diff is too big to show here.

qml/Dash/CardHorizontalList.qml+1

This diff is too big to show here.

qml/Dash/CardTool.qml+23−7

This diff is too big to show here.

qml/Dash/CardVerticalJournal.qml+1

This diff is too big to show here.

qml/Dash/Dash.qml+8−8

This diff is too big to show here.

qml/Dash/DashContent.qml+2−2

This diff is too big to show here.

qml/Dash/DashNavigation.qml+159−78

This diff is too big to show here.

qml/Dash/DashNavigationButton.qmldeleted−233

This diff is too big to show here.

qml/Dash/DashNavigationHeader.qmlnew file+73

This diff is too big to show here.

qml/Dash/DashNavigationList.qml+33−85

This diff is too big to show here.

qml/Dash/DashPageHeader.qml+140−131

This diff is too big to show here.

qml/Dash/DashRenderer.qml+6

This diff is too big to show here.

qml/Dash/Filters/FilterExpandableWidget.qmlnew file+96

This diff is too big to show here.

qml/Dash/Filters/FilterOptionSelector.qmlnew file+91

This diff is too big to show here.

qml/Dash/Filters/FilterRangeInput.qmlnew file+136

This diff is too big to show here.

qml/Dash/Filters/FilterValueSlider.qmlnew file+87

This diff is too big to show here.

plugins/Utils/windowscreenshotprovider.h → qml/Dash/Filters/FilterWidget.qmlrenamed+12−11

This diff is too big to show here.

qml/Dash/Filters/FilterWidgetFactory.qmlnew file+81

This diff is too big to show here.

qml/Dash/FiltersPopover.qmlnew file+105

This diff is too big to show here.

qml/Dash/GenericScopeView.qml+88−49

This diff is too big to show here.

qml/Dash/PageHeaderExtraPanel.qmlnew file+176

This diff is too big to show here.

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

This diff is too big to show here.

qml/Dash/Previews/PreviewActionCombo.qml+1−1

This diff is too big to show here.

qml/Dash/Previews/PreviewActions.qml+8−7

This diff is too big to show here.

qml/Dash/Previews/PreviewIconActions.qml+15

This diff is too big to show here.

qml/Dash/Previews/PreviewZoomableImage.qml+13−8

This diff is too big to show here.

qml/DisabledScreenNotice.qml+4−4

This diff is too big to show here.

qml/Greeter/Greeter.qml+22−11

This diff is too big to show here.

qml/Launcher/Launcher.qml+2−4

This diff is too big to show here.

qml/Launcher/LauncherDelegate.qml+9−11

This diff is too big to show here.

qml/Launcher/LauncherPanel.qml+52−35

This diff is too big to show here.

qml/Launcher/graphics/quicklist_tooltip@30.png

Binary file not shown.

qml/Notifications/Notification.qml+128−124

This diff is too big to show here.

qml/Notifications/NotificationButton.qmlnew file+72

This diff is too big to show here.

qml/Notifications/NotificationMenuItemFactory.qml+5−11

This diff is too big to show here.

qml/Notifications/Notifications.qml+4−3

This diff is too big to show here.

qml/Notifications/OptionToggle.qml+12−10

This diff is too big to show here.

qml/Notifications/ShapedIcon.qml+1

This diff is too big to show here.

qml/Notifications/SwipeToAct.qml+16−20

This diff is too big to show here.

qml/Notifications/grip-large.svgdeleted−150

This diff is too big to show here.

qml/OrientedShell.qml+52−27

This diff is too big to show here.

qml/Panel/IndicatorItem.qml−7

This diff is too big to show here.

qml/Panel/IndicatorItemRow.qml+5−2

This diff is too big to show here.

qml/Panel/Indicators/MenuItemFactory.qml+24−5

This diff is too big to show here.

qml/Panel/Indicators/client/IndicatorsClient.qml+1−1

This diff is too big to show here.

qml/Panel/IndicatorsMenu.qml+22−15

This diff is too big to show here.

qml/Panel/Panel.qml+4−3

This diff is too big to show here.

qml/Rotation/HalfLoopRotationAnimation.qml+2−1

This diff is too big to show here.

qml/Rotation/ImmediateRotationAction.qml+11−22

This diff is too big to show here.

qml/Rotation/NinetyRotationAnimation.qml+14−16

This diff is too big to show here.

qml/Rotation/RotationStates.qml+25−5

This diff is too big to show here.

qml/Rotation/UpdateShellTransformations.qmlnew file+42

This diff is too big to show here.

qml/Shell.qml+122−118

This diff is too big to show here.

qml/Stages/AbstractStage.qml+15−4

This diff is too big to show here.

qml/Stages/Animations/BaseSessionAnimation.qmldeleted−96

This diff is too big to show here.

qml/Stages/Animations/SwipeFromBottomAnimation.qmldeleted−53

This diff is too big to show here.

qml/Stages/ApplicationWindow.qml+116−76

This diff is too big to show here.

qml/Stages/DecoratedWindow.qml+6−6

This diff is too big to show here.

qml/Stages/DesktopSpread.qml+22−18

This diff is too big to show here.

qml/Stages/DesktopSpreadDelegate.qml+4−3

This diff is too big to show here.

qml/Stages/DesktopStage.qml+247−110

This diff is too big to show here.

qml/Stages/PhoneStage.qml+166−94

This diff is too big to show here.

qml/Stages/PromptSurfaceAnimations.qmlnew file+81

This diff is too big to show here.

qml/Stages/SessionContainer.qmldeleted−180

This diff is too big to show here.

qml/Stages/ShimStage.qml−1

This diff is too big to show here.

qml/Stages/SideStage.qmlnew file+118

This diff is too big to show here.

qml/Stages/SpreadDelegate.qml+14−4

This diff is too big to show here.

qml/Stages/StagedFullscreenPolicy.qmlnew file+56

This diff is too big to show here.

qml/Stages/SurfaceContainer.qml+97−39

This diff is too big to show here.

qml/Stages/TabletSideStageTouchGesture.qmlnew file+154

This diff is too big to show here.

qml/Stages/TabletStage.qml+585−288

This diff is too big to show here.

qml/Stages/TopLevelSurfaceRepeater.qmlnew file+52

This diff is too big to show here.

qml/Stages/TransformedSpreadDelegate.qml+4−4

This diff is too big to show here.

qml/Stages/TransformedTabletSpreadDelegate.qml+94−60

This diff is too big to show here.

qml/Stages/WindowDecoration.qml+4−3

This diff is too big to show here.

qml/Stages/WindowResizeArea.qml+2−2

This diff is too big to show here.

qml/Stages/WindowedFullscreenPolicy.qmlnew file+39

This diff is too big to show here.

qml/Stages/graphics/sidestage_drag.svgnew file+207

This diff is too big to show here.

qml/Stages/graphics/sidestage_open.svgnew file+181

This diff is too big to show here.

qml/Tutorial/Arrow.qmldeleted−56

This diff is too big to show here.

qml/Tutorial/InactivityTimer.qmlnew file+62

This diff is too big to show here.

qml/Tutorial/Slider.qmldeleted−123

This diff is too big to show here.

qml/Tutorial/Tutorial.qml+39−14

This diff is too big to show here.

qml/Tutorial/TutorialBottom.qml+86−66

This diff is too big to show here.

qml/Tutorial/TutorialBottomFinish.qmldeleted−41

This diff is too big to show here.

qml/Tutorial/TutorialContent.qml+227−55

This diff is too big to show here.

qml/Tutorial/TutorialLeft.qml+21−68

This diff is too big to show here.

qml/Tutorial/TutorialLeftLong.qmlnew file+54

This diff is too big to show here.

qml/Tutorial/TutorialPage.qml+62−186

This diff is too big to show here.

qml/Tutorial/TutorialRight.qml+31−192

This diff is too big to show here.

qml/Tutorial/TutorialTop.qmlnew file+61

This diff is too big to show here.

qml/Tutorial/graphics/arrow.svgnew file+19

This diff is too big to show here.

qml/Tutorial/graphics/background1.pngnew file

Binary file not shown.

qml/Tutorial/graphics/background2.pngnew file

Binary file not shown.

qml/Tutorial/graphics/camera.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/chevron.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/dialer.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/facebook.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/gallery.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/tick.pngdeleted

Binary file not shown.

qml/Wizard/CheckableSetting.qml+11−3

This diff is too big to show here.

qml/Wizard/Page.qml+261−44

This diff is too big to show here.

qml/Wizard/Pages.qml+75−31

This diff is too big to show here.

qml/Wizard/Pages/10-welcome.qml+128−48

This diff is too big to show here.

qml/Wizard/Pages/20-sim.qmldeleted−77

This diff is too big to show here.

qml/Wizard/Pages/30-passwd-type.qmldeleted−140

This diff is too big to show here.

qml/Wizard/Pages/30-wifi.qmlnew file+210

This diff is too big to show here.

qml/Wizard/Pages/40-location.qmlnew file+290

This diff is too big to show here.

qml/Wizard/Pages/40-wifi.qmldeleted−219

This diff is too big to show here.

qml/Wizard/Pages/50-location.qmldeleted−150

This diff is too big to show here.

qml/Wizard/Pages/50-timezone.qmlnew file+275

This diff is too big to show here.

qml/Wizard/Pages/60-reporting.qml → qml/Wizard/Pages/60-account.qmlrenamed+30−20

This diff is too big to show here.

qml/Wizard/Pages/70-passwd-type.qmlnew file+166

This diff is too big to show here.

qml/Wizard/Pages/75-report-check.qmlnew file+91

This diff is too big to show here.

qml/Wizard/Pages/80-finished.qml+94−16

This diff is too big to show here.

qml/Wizard/Pages/data/Desktop_header_bkg.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/Desktop_splash_screen_bkg.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/Phone_header_bkg.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/Phone_splash_screen_bkg.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/Tick@30.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/meet_ubuntu_simcard@30.pngdeleted

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/map.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/pin.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-1.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-10.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-11.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-2.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-3.5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-3.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-4.5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-4.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-6.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-7.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-8.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-9.5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-9.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_0.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_1.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_10.5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_10.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_11.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_12.75.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_12.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_13.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_2.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_3.5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_3.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_4.5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_4.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.75.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_6.5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_6.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_7.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_8.5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_8.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_9.5.pngnew file

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_9.pngnew file

Binary file not shown.

qml/Wizard/Pages/here-terms.qml+71−66

This diff is too big to show here.

qml/Wizard/Pages/passwd-confirm.qml → qml/Wizard/Pages/passcode-confirm.qmlrenamed+13−30

This diff is too big to show here.

qml/Wizard/Pages/passcode-desktop.qmlnew file+132

This diff is too big to show here.

qml/Wizard/Pages/passwd-set.qml → qml/Wizard/Pages/passcode-set.qmlrenamed+13−29

This diff is too big to show here.

qml/Wizard/Pages/password-set.qmlnew file+149

This diff is too big to show here.

qml/Wizard/Pages/sim.qmlnew file+108

This diff is too big to show here.

qml/Wizard/PasswordMeter.qmlnew file+106

This diff is too big to show here.

qml/Wizard/StackButton.qml+7−12

This diff is too big to show here.

qml/Wizard/Wizard.qml−9

This diff is too big to show here.

tests/plugins/ScreenGrabber/grabber.qml → qml/Wizard/WizardTextField.qmlrenamed+6−12

This diff is too big to show here.

src/Dash/main.cpp+5

This diff is too big to show here.

src/MouseTouchAdaptor.cpp+53−9

This diff is too big to show here.

src/MouseTouchAdaptor.h+5−3

This diff is too big to show here.

src/SecondaryWindow.cpp+9

This diff is too big to show here.

src/ShellApplication.cpp+6

This diff is too big to show here.

src/ShellView.cpp+6−2

This diff is too big to show here.

src/main.cpp+5

This diff is too big to show here.

src/qmldebuggerutils.hnew file+33

This diff is too big to show here.

tests/autopilot/unity8/settings_wizard/__init__.pydeleted−555

This diff is too big to show here.

tests/autopilot/unity8/settings_wizard/fixture_setup.pydeleted−58

This diff is too big to show here.

tests/autopilot/unity8/settings_wizard/ofono_helper.pydeleted−116

This diff is too big to show here.

tests/autopilot/unity8/settings_wizard/tests/__init__.pydeleted

No changes to the content.

tests/autopilot/unity8/settings_wizard/tests/test_settings_wizard.pydeleted−99

This diff is too big to show here.

tests/autopilot/unity8/shell/emulators.py−2

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/test_tutorial.pydeleted−57

This diff is too big to show here.

tests/autopilot/unity8/tutorial.pydeleted−73

This diff is too big to show here.

tests/libs/UbuntuGestures/tst_TouchRegistry.cpp+60−1

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.cpp+60−3

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.h+30−5

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.qmltypes+5

This diff is too big to show here.

tests/mocks/GSettings.1.0/fake_gsettings.cpp+126−38

This diff is too big to show here.

tests/mocks/GSettings.1.0/fake_gsettings.h+51−26

This diff is too big to show here.

tests/mocks/MeeGo/QOfono/MockOfonoSimManager.qml+1

This diff is too big to show here.

tests/mocks/QMenuModel/QDBusActionGroup.qml+5−5

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.cpp+13

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.h+5

This diff is too big to show here.

tests/mocks/Ubuntu/Connectivity/plugin.cpp+1

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/CMakeLists.txt+2

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/Diagnostics/CMakeLists.txtnew file+1

This diff is too big to show here.

qml/Tutorial/Tick.qml → tests/mocks/Ubuntu/SystemSettings/Diagnostics/MockDiagnostics.qmlrenamed+4−9

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/Diagnostics/qmldirnew file+2

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/MockKeyboardPlugin.qmlnew file+21

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/qmldir+1

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/MockSecurityPrivacy.cpp+1−1

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/TimeDate/CMakeLists.txtnew file+1

This diff is too big to show here.

qml/Components/WindowScreenshot.qml → tests/mocks/Ubuntu/SystemSettings/TimeDate/MockTimeDate.qmlrenamed+3−13

This diff is too big to show here.

tests/mocks/Ubuntu/SystemSettings/TimeDate/qmldirnew file+2

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationInfo.cpp+191−100

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationInfo.h+44−25

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationManager.cpp+119−97

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationManager.h+12−22

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationScreenshotProvider.cppdeleted−79

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationScreenshotProvider.hdeleted−34

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationTestInterface.cppdeleted−117

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationTestInterface.hdeleted−45

This diff is too big to show here.

tests/mocks/Unity/Application/CMakeLists.txt+3−5

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurface.cpp+204−11

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurface.h+62−11

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.cpp+41−12

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.cppnew file+121

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceListModel.hnew file+56

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/Session.cppdeleted−184

This diff is too big to show here.

tests/mocks/Unity/Application/Session.hdeleted−97

This diff is too big to show here.

tests/mocks/Unity/Application/SessionManager.cppdeleted−55

This diff is too big to show here.

tests/mocks/Unity/Application/SessionModel.hdeleted−35

This diff is too big to show here.

tests/mocks/Unity/Application/SurfaceManager.cpp+16−9

This diff is too big to show here.

tests/mocks/Unity/Application/SurfaceManager.h+5−2

This diff is too big to show here.

tests/mocks/Unity/Application/UbuntuKeyboardInfo.cpp−2

This diff is too big to show here.

tests/mocks/Unity/Application/UbuntuKeyboardInfo.h−9

This diff is too big to show here.

tests/mocks/Unity/Application/VirtualKeyboard.cpp+2−3

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/plugin.cpp+33−38

This diff is too big to show here.

tests/mocks/Unity/Application/resources/MirSurfaceItem.qml+59

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Indicators/ModelActionRootState.qml+26−4

This diff is too big to show here.

tests/mocks/Unity/InputInfo/qinputdeviceinfo_mock.cpp+1−1

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/fake_categories.cpp+4−1

This diff is too big to show here.

tests/mocks/Unity/fake_expandablefilterwidget.cppnew file+53

This diff is too big to show here.

tests/mocks/Unity/fake_expandablefilterwidget.hnew file+48

This diff is too big to show here.

tests/mocks/Unity/fake_filters.cppnew file+136

This diff is too big to show here.

tests/mocks/Unity/fake_filters.hnew file+46

This diff is too big to show here.

tests/mocks/Unity/fake_navigation.cpp+9−10

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectorfilter.cppnew file+65

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectorfilter.hnew file+52

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectoroptions.cppnew file+77

This diff is too big to show here.

tests/mocks/Unity/fake_optionselectoroptions.hnew file+47

This diff is too big to show here.

tests/mocks/Unity/fake_rangeinputfilter.cppnew file+167

This diff is too big to show here.

tests/mocks/Unity/fake_rangeinputfilter.hnew file+79

This diff is too big to show here.

tests/mocks/Unity/fake_resultsmodel.cpp+2

This diff is too big to show here.

tests/mocks/Unity/fake_scope.cpp+54−27

This diff is too big to show here.

tests/mocks/Unity/fake_scope.h+20−7

This diff is too big to show here.

tests/mocks/Unity/fake_unity_plugin.cpp+7

This diff is too big to show here.

tests/mocks/Unity/fake_valuesliderfilter.cppnew file+84

This diff is too big to show here.

tests/mocks/Unity/fake_valuesliderfilter.hnew file+55

This diff is too big to show here.

tests/mocks/Unity/fake_valueslidervalues.cppnew file+51

This diff is too big to show here.

tests/mocks/Unity/Application/SessionManager.h → tests/mocks/Unity/fake_valueslidervalues.hrenamed+11−19

This diff is too big to show here.

tests/mocks/Utils/CMakeLists.txt+7−3

This diff is too big to show here.

tests/mocks/Utils/Utils.qmltypes+2−2

This diff is too big to show here.

tests/mocks/Utils/plugin.cpp+15−11

This diff is too big to show here.

tests/mocks/Utils/plugin.h−1

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.cpp+13

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.h+4

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Wizard/MockSystem.cpp+4−2

This diff is too big to show here.

tests/mocks/Wizard/MockSystem.h+2−2

This diff is too big to show here.

tests/mocks/Wizard/mockplugin.cpp+7−8

This diff is too big to show here.

tests/plugins/AccountsService/CMakeLists.txt+7−1

This diff is too big to show here.

tests/plugins/AccountsService/PropertiesServer.cpp+40−1

This diff is too big to show here.

tests/plugins/AccountsService/PropertiesServer.h+7−1

This diff is too big to show here.

tests/plugins/AccountsService/client.cpp+105−4

This diff is too big to show here.

tests/plugins/AccountsService/interfaces.xml+13

This diff is too big to show here.

tests/plugins/AccountsService/types.hnew file+25

This diff is too big to show here.

tests/plugins/CMakeLists.txt−1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/12.resnew file+121

This diff is too big to show here.

tests/plugins/Dash/cardcreator/12.res.cardcreatornew file+120

This diff is too big to show here.

tests/plugins/Dash/cardcreator/12.tstnew file+4

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadersectiontest.cpp+15

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertest.cpp+15

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/tst_ScopeStyle.qml+1−1

This diff is too big to show here.

tests/plugins/IntegratedLightDM/CMakeLists.txt+1

This diff is too big to show here.

tests/plugins/IntegratedLightDM/dbus.cpp+3−5

This diff is too big to show here.

tests/plugins/IntegratedLightDM/integrated.cpp+5−8

This diff is too big to show here.

tests/plugins/IntegratedLightDM/pam.cpp+3−1

This diff is too big to show here.

tests/plugins/ScreenGrabber/CMakeLists.txtdeleted−14

This diff is too big to show here.

tests/plugins/ScreenGrabber/ScreenGrabberTest.cppdeleted−77

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/CMakeLists.txt+7−1

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/GestureTest.cpp+44

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/GestureTest.h+13−1

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_DirectionalDragArea.cpp−56

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_FloatingFlickable.cpp+2

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_TouchGestureArea.cppnew file+270

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_TouchGestureArea.qmlnew file+90

This diff is too big to show here.

tests/plugins/Unity/Launcher/CMakeLists.txt+2

This diff is too big to show here.

tests/plugins/Unity/Launcher/launchermodeltest.cpp+8−6

This diff is too big to show here.

tests/plugins/Unity/Session/CMakeLists.txt+2

This diff is too big to show here.

tests/qmltests/CMakeLists.txt+5−1

This diff is too big to show here.

tests/qmltests/Components/tst_Dialogs.qml+4−2

This diff is too big to show here.

tests/qmltests/Components/tst_PhysicalKeysMapper.qml+3−3

This diff is too big to show here.

tests/qmltests/Dash/CardHelpers.js+9−7

This diff is too big to show here.

tests/qmltests/Dash/Filters/tst_FilterExpandableWidget.qmlnew file+99

This diff is too big to show here.

tests/qmltests/Dash/Filters/tst_FilterOptionSelector.qmlnew file+96

This diff is too big to show here.

tests/qmltests/Dash/Filters/tst_FilterRangeInput.qmlnew file+247

This diff is too big to show here.

tests/qmltests/Dash/Filters/tst_FilterValueSlider.qmlnew file+101

This diff is too big to show here.

tests/qmltests/Dash/Filters/tst_FilterWidgetFactory.qmlnew file+59

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_Preview.qml+1

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewActions.qml+100−17

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewIconActions.qml+14−4

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewImageGallery.qml+3−2

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+17

This diff is too big to show here.

tests/qmltests/Dash/tst_Card.qml+48−13

This diff is too big to show here.

tests/qmltests/Dash/tst_DashContent.qml+165−152

This diff is too big to show here.

tests/qmltests/Dash/tst_DashPageHeader.qml+24−15

This diff is too big to show here.

tests/qmltests/Dash/tst_DashShell.qml+6−2

This diff is too big to show here.

tests/qmltests/Dash/tst_GenericScopeView.qml+3−3

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Greeter/tst_NarrowView.qml+3−1

This diff is too big to show here.

tests/qmltests/Launcher/tst_Launcher.qml+5−2

This diff is too big to show here.

tests/qmltests/Notifications/tst_Notifications.qml+53−52

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Notifications/tst_SwipeToAct.qml+11−1

This diff is too big to show here.

tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+15−6

This diff is too big to show here.

tests/qmltests/Panel/IndicatorTest.qml+2−1

This diff is too big to show here.

tests/qmltests/Panel/tst_ActiveCallHint.qml+3−2

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorItem.qml−3

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorsMenu.qml−1

This diff is too big to show here.

tests/qmltests/Panel/tst_Panel.qml+2−2

This diff is too big to show here.

tests/qmltests/Stages/ApplicationCheckBox.qml+103−58

This diff is too big to show here.

tests/qmltests/Stages/RecursingChildSessionControl.qml+10−61

This diff is too big to show here.

tests/qmltests/Stages/SurfaceManagerControls.qml+6−7

This diff is too big to show here.

tests/qmltests/Stages/tst_ApplicationWindow.qml+73−59

This diff is too big to show here.

tests/qmltests/Stages/tst_DesktopStage.qml+256−168

This diff is too big to show here.

tests/qmltests/Stages/tst_PhoneStage.qml+272−82

This diff is too big to show here.

tests/qmltests/Stages/tst_SessionContainer.qmldeleted−331

This diff is too big to show here.

tests/qmltests/Stages/tst_SpreadDelegate.qml+3−2

This diff is too big to show here.

tests/qmltests/Stages/tst_SurfaceContainer.qml+242−46

This diff is too big to show here.

tests/qmltests/Stages/tst_TabletStage.qml+390−84

This diff is too big to show here.

tests/qmltests/Stages/tst_WindowResizeArea.qml+7

This diff is too big to show here.

tests/qmltests/Tutorial/tst_Tutorial.qml+628−198

This diff is too big to show here.

tests/qmltests/Wizard/tst_Wizard.qml+127−214

This diff is too big to show here.

tests/qmltests/tst_OrientedShell.qml+241−95

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+361−146

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qml+9−35

This diff is too big to show here.

tests/utils/modules/Unity/Test/UnityTestCase.qml+165−14

This diff is too big to show here.