on xenial help sign in
merge trunk
919186fMichael Zanetti
CMakeLists.txt+3−2
@@ -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=14)
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)
@@ -131,7 +132,7 @@ if(NOT QUIET_LOGGER)
131 set(STDOUT_LOGGER "-o" "-,txt")
132 set(STDOUT_LOGGER "-o" "-,txt")
132endif()
133endif()
133
134
134−execute_process(COMMAND arch OUTPUT_VARIABLE ARCH)
135+execute_process(COMMAND dpkg-architecture -qDEB_HOST_ARCH OUTPUT_VARIABLE ARCH)
135if (NOT ARCH MATCHES "arm*")
136if (NOT ARCH MATCHES "arm*")
136 set(ENABLE_TOUCH_EMULATION true)
137 set(ENABLE_TOUCH_EMULATION true)
137 add_definitions(-DUNITY8_ENABLE_TOUCH_EMULATION)
138 add_definitions(-DUNITY8_ENABLE_TOUCH_EMULATION)
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.
cmake/modules/QmlTest.cmake+1−1
@@ -183,7 +183,7 @@ function(add_manual_test COMPONENT_NAME TARGET)
183 cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
183 cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
184 mangle_arguments()
184 mangle_arguments()
185
185
186− bake_arguments("${QMLTEST_ARG_PREFIX}" args -qmljsdebugger=port:3768)
186+ bake_arguments("${QMLTEST_ARG_PREFIX}" args -qmljsdebugger=port:3768,3800)
187
187
188 set(qmltry_command
188 set(qmltry_command
189 $<TARGET_FILE:${TARGET}>
189 $<TARGET_FILE:${TARGET}>
data/com.canonical.Unity8.gschema.xml+16
@@ -27,6 +27,22 @@
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>
35+ <key type="b" name="autohide-launcher">
36+ <default>true</default>
37+ <summary>Autohide the launcher</summary>
38+ <description>This will only be applied in windowed mode. In staged mode, the launcher will always hide.</description>
39+ </key>
40+ <key type="u" name="launcher-width">
41+ <default>8</default>
42+ <range min="6" max="12"/>
43+ <summary>Width of the launcher in grid units.</summary>
44+ <description>Changes the width of the launcher in all usage modes.</description>
45+ </key>
30 </schema>
46 </schema>
31
47
32 <schema path="/com/canonical/unity8/greeter/" id="com.canonical.Unity8.Greeter" gettext-domain="unity8">
48 <schema path="/com/canonical/unity8/greeter/" id="com.canonical.Unity8.Greeter" gettext-domain="unity8">
data/unity8-dash.conf+1
@@ -14,6 +14,7 @@ kill timeout 120
14oom score 50
14oom score 50
15
15
16respawn
16respawn
17+respawn limit unlimited
17
18
18env APP_ID=unity8-dash
19env APP_ID=unity8-dash
19
20
debian/changelog+258
@@ -1,3 +1,261 @@
1+unity8 (8.12+16.04.20160414.1-0ubuntu1) xenial; urgency=medium
2+
3+ [ Michael Terry ]
4+ * Make sure that usageMode is set on startup, fixing a problem with
5+ the tutorial not noticing that it is running on a desktop. (LP:
6+ #1564351)
7+
8+ [ Michael Zanetti ]
9+ * make the edge drag area width configurable (LP: #1559512)
10+
11+ -- Michael Zanetti <michael.zanetti@canonical.com> Thu, 14 Apr 2016 21:20:28 +0000
12+
13+unity8 (8.12+16.04.20160401-0ubuntu1) xenial; urgency=medium
14+
15+ * Add missing Testsuite header
16+ * Skip the failing test until we have a working solution for bug
17+ #1564571 (LP: #1564571)
18+
19+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 01 Apr 2016 08:32:16 +0000
20+
21+unity8 (8.12+16.04.20160330-0ubuntu1) xenial; urgency=medium
22+
23+ [ Albert Astals Cid ]
24+ * Use tutorialLeftLoader instead of tutorialLeft
25+
26+ [ CI Train Bot ]
27+ * Update translation template
28+
29+ [ Lukáš Tinkl ]
30+ * Fix the last chance popup colors/theme
31+
32+ [ Michael Terry ]
33+ * Adjust text for desktop right edge tutorial to be accurate. (LP:
34+ #1563103)
35+ * Fix OOBE wizard not setting your name. (LP: #1562872)
36+ * Fix showing "Retry" in password prompt when turning on screen in
37+ tablet mode.
38+
39+ -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 30 Mar 2016 07:46:51 +0000
40+
41+unity8 (8.12+16.04.20160323.2-0ubuntu1) xenial; urgency=medium
42+
43+ [ Michael Terry ]
44+ *
45+ * Fix setting OSK layout in OOBE wizard
46+ * Stop the left edge tutorial from being shown when the bottom edge
47+ tutorial wants to be shown after receiving a call.
48+
49+ [ Albert Astals Cid ]
50+ * Filter implementation with Option Selector filter as the only filter
51+ * Get the engine from the parent context
52+ * Implement the API changes due to filters
53+ * Match design visuals for the new dash navigation/page header popup
54+ * New Dash Navigation UX
55+ * Range Input filter
56+ * Value slider filter
57+ * Workaround SDK ListItem bug
58+
59+ [ Albert Astals Cid, Lukáš Tinkl ]
60+ * Fix various tests
61+
62+ [ CI Train Bot ]
63+ * Resync trunk.
64+ * Update translation template
65+
66+ [ Lukáš Tinkl, Michael Terry ]
67+ * New first-run wizard for the phone (part of the OOBE effort) (LP:
68+ #1536688, #1536617, #1543790, #1555222)
69+
70+ [ Lukáš Tinkl, Michał Sawicz ]
71+ * Keymap switching support (LP: #1524400, #1412492, #1491340)
72+
73+ [ Michael Terry, Michael Zanetti ]
74+ * Redesign the first-boot edge tutorial
75+
76+ [ Michael Zanetti ]
77+ * disabling some tests that are flaky in adt but can't be made fail on
78+ our machines
79+
80+ [ Michael Zanetti, Michał Sawicz ]
81+ * Change the behavior alond with the switch in indicator-display (LP:
82+ #1538591)
83+
84+ [ Michael Zanetti, Michał Sawicz, Nick Dedekind ]
85+ * Add support for low shell chrome. (LP: #1535397)
86+ * Sidestage load/unload redesign (LP: #1544479)
87+
88+ -- Michael Zanetti <michael.zanetti@canonical.com> Wed, 23 Mar 2016 09:53:17 +0000
89+
90+unity8 (8.11+16.04.20160318.1-0ubuntu1) xenial; urgency=medium
91+
92+ [ CI Train Bot ]
93+ * Update translation template
94+
95+ [ Lukáš Tinkl ]
96+ * Fix notifications with the new UITK color schemes (LP: #1554616,
97+ #1556523)
98+
99+ [ Lukáš Tinkl, Michael Zanetti, Nick Dedekind ]
100+ * more fixes for the new theme palette (LP: #1554616, #1557534)
101+
102+ -- Michael Zanetti <michael.zanetti@canonical.com> Fri, 18 Mar 2016 17:12:53 +0000
103+
104+unity8 (8.11+16.04.20160310.4-0ubuntu1) xenial; urgency=medium
105+
106+ [ Albert Astals Cid ]
107+ * Add context for Re-dock as asked by translators (LP: #1534608)
108+ * Add emblem to the preview header widget (LP: #1424720)
109+ * Add haptics to ScopesListCategoryItem buttons
110+ * Audio Cards: Make some of the image loading async (LP: #1533432)
111+ * Do not create fallback code for the card tool fake card (LP:
112+ #1545865)
113+ * Fix resizing the dash bringing temp scopes size out of sync (LP:
114+ #1543130)
115+ * Minor fixes for unity-scope-tool
116+ * Resolve title alignment on card creator time instead of on runtime
117+ * Use fixedHeaderHeight only in the non cardtool cards
118+ * Use the new undeprecated connectivityqt::Connectivity
119+ * asynchronous is only false on the fake card in cardtool
120+ * clazy fixes
121+
122+ [ Albert Astals Cid, CI Train Bot ]
123+ * click scope: Add the else branch so we reset the card size in all
124+ situations
125+
126+ [ Andrea Cimitan ]
127+ * PreviewSharing widget now accepts both string and array of
128+ widgetData["share-data"]["uri"] (LP: #1549056)
129+ * Update AP tests for new single preview
130+ * Use Text.Wrap for body notification text (LP: #1544909)
131+
132+ [ Andrea Cimitan, Lukáš Tinkl, Michael Zanetti, Nick Dedekind ]
133+ * some fixes for the new palette (LP: #1554616)
134+
135+ [ CI Train Bot ]
136+ * Resync trunk.
137+ * Update translation template
138+
139+ [ CI Train Bot, Daniel d'Andrada ]
140+ * Ensure the QML engine doesn't delete our mock MirSurfaces on its
141+ own.
142+
143+ [ Daniel d'Andrada ]
144+ * tst_Shell: Remove unused qml items
145+
146+ [ Josh Arenson ]
147+ * Allow the shell to blacklist input devices and force the OSK shown.
148+ (LP: #1542224)
149+
150+ [ Lukáš Tinkl ]
151+ * Disallow resizing windows up, past the Panel (LP: #1544766)
152+ * Elide the window title not to let it overflow into the indicators
153+ area (LP: #1535767)
154+ * Enable the PIN lockscreen to be used with a HW keyboard (LP:
155+ #1550359)
156+ * Fix tiny windows when switching stages
157+ * Provide a range of ports to QML JS Debugger
158+ * Watch for launcher item icon changes (LP: #1543290)
159+
160+ [ Michael Terry ]
161+ * Proxy more mouse and touchpad properties to USC (LP: #1540398) (LP:
162+ #1543344, #1540398)
163+ * Refactor the AccountsService plugin and make it slightly faster.
164+ * To let the user log in if a mouse is connected, hide the greeter
165+ cover page on a mouse click (but NOT a touch click). (LP: #1540497)
166+ * Watch AccountsService for changes to the user's real name. This was
167+ preventing us from noticing when the user set their name in the
168+ welcome wizard.
169+
170+ [ Michael Zanetti ]
171+ * Allow alt+tabbing in staged mode too (LP: #1540502)
172+ * Allow invoking the staged mode spreads by mouse right edge pushes
173+ too (LP: #1540392)
174+ * Allow loading the device configuration from an external file
175+ * Implement Launcher's keyboard navigation and updated pip design
176+ * Make launcher scalable, allow it locking (LP: #1511015)
177+ * Properly parent launcher items in all cases (LP: #1495732)
178+ * Read inputMethod surface from the new property int QtMir (LP:
179+ #1545286)
180+ * Some visual updates and rotation lock for the virtual touchpad (LP:
181+ #1549087)
182+ * Visual updates for the windowed spread (LP: #1488148)
183+ * stabilize swipeAwayGreeter()
184+
185+ [ Michał Sawicz ]
186+ * Add udev rules to make sure we have access to uinput
187+ * Make dash respawn indefinitely (LP: #1550056)
188+ * Use dpkg-architecture, not arch, to disable touch emulation
189+
190+ [ Vesa Rautiainen ]
191+ * Fixing the vertical position of desktop spread item icon.
192+
193+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 10 Mar 2016 22:44:16 +0000
194+
195+unity8 (8.11+16.04.20160308-0ubuntu1) xenial; urgency=medium
196+
197+ [ Albert Astals Cid ]
198+ * Make these tests pass with the new SDK
199+
200+ [ Andrea Cimitan, Nick Dedekind ]
201+ * replace selected.backgroundText with normal.backgroundText in
202+ Splash, Notifications, Wizard
203+
204+ [ CI Train Bot ]
205+ * Update translation template
206+
207+ [ Michał Sawicz, Nick Dedekind ]
208+ * Fixed colours palette value set. Moved ModemItem to USC.
209+
210+ [ Michał Sawicz, Tim Peeters ]
211+ * Update headers for Dash and Splash to work properly with the new UI
212+ toolkit release.
213+
214+ [ Zoltán Balogh, Zsombor Egri ]
215+ * Use SuruDark theme instead of the deprecated SuruGradient.
216+
217+ -- Zoltan Balogh <zoltan.balogh@canonical.com> Tue, 08 Mar 2016 20:59:34 +0000
218+
219+unity8 (8.11+16.04.20160307-0ubuntu1) xenial; urgency=medium
220+
221+ [ CI Train Bot ]
222+ * Resync trunk.
223+ * Update translation template
224+
225+ [ Rodney Dawes ]
226+ * Re-enable the purchaseCancelled signal.
227+
228+ -- Rodney Dawes <ci-train-bot@canonical.com> Mon, 07 Mar 2016 14:12:08 +0000
229+
230+unity8 (8.11+16.04.20160301-0ubuntu1) xenial; urgency=medium
231+
232+ [ Albert Astals Cid ]
233+ * Hook the new scope.activationInProgress property (LP: #1537132)
234+
235+ [ Andrea Cimitan ]
236+ * Updated the Preview view to use a single PreviewModel instead old
237+ PreviewStack, using a Loader instead ListView (LP: #1541967)
238+
239+ [ CI Train Bot ]
240+ * Resync trunk.
241+ * Update translation template
242+
243+ [ Michał Sawicz ]
244+ * Add autopilot as DEP-8 tests added: debian/tests/autopilot.sh
245+
246+ -- Pawel Stolowski <ci-train-bot@canonical.com> Tue, 01 Mar 2016 10:28:52 +0000
247+
248+unity8 (8.11+16.04.20160216.1-0ubuntu1) xenial; urgency=medium
249+
250+ [ Albert Astals Cid ]
251+ * Make the audio previews create a playlist (LP: #1540477)
252+
253+ [ CI Train Bot ]
254+ * Resync trunk. added: po/aa.po
255+ * Update translation template
256+
257+ -- Pawel Stolowski <ci-train-bot@canonical.com> Tue, 16 Feb 2016 03:24:46 +0000
258+
1unity8 (8.11+16.04.20160212-0ubuntu1) xenial; urgency=medium
259unity8 (8.11+16.04.20160212-0ubuntu1) xenial; urgency=medium
2
260
3 [ Albert Astals Cid ]
261 [ Albert Astals Cid ]
debian/control+19−15
@@ -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,
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.106),
33+ libunity-api-dev (>= 7.108),
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],
@@ -54,8 +55,8 @@ Build-Depends: cmake,
54 qtdeclarative5-private-dev (>= 5.4),
55 qtdeclarative5-private-dev (>= 5.4),
55 qtdeclarative5-qtmultimedia-plugin (>= 5.4.1-1ubuntu19~overlay2),
56 qtdeclarative5-qtmultimedia-plugin (>= 5.4.1-1ubuntu19~overlay2),
56 qtdeclarative5-ubuntu-content1,
57 qtdeclarative5-ubuntu-content1,
57− qtdeclarative5-ubuntu-settings-components (>= 0.6),
58+ qtdeclarative5-ubuntu-settings-components (>= 0.7),
58− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1676) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1676),
59+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
59 qtdeclarative5-ubuntu-web-plugin,
60 qtdeclarative5-ubuntu-web-plugin,
60 ttf-ubuntu-font-family,
61 ttf-ubuntu-font-family,
61Standards-Version: 3.9.4
62Standards-Version: 3.9.4
@@ -65,12 +66,13 @@ 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
71Architecture: amd64 armhf i386
73Architecture: amd64 armhf i386
72Depends: qmenumodel-qml (>= 0.2.9),
74Depends: qmenumodel-qml (>= 0.2.9),
73− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1627) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1627),
75+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
74 unity8 (= ${binary:Version}),
76 unity8 (= ${binary:Version}),
75 ${misc:Depends},
77 ${misc:Depends},
76 ${shlibs:Depends},
78 ${shlibs:Depends},
@@ -101,8 +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-gsettings1.0,
106+ qtdeclarative5-qtmir-plugin (>= 0.4.8),
105− qtdeclarative5-qtmir-plugin (>= 0.4.5),
106 qtdeclarative5-ubuntu-telephony0.1,
107 qtdeclarative5-ubuntu-telephony0.1,
107 qtdeclarative5-ubuntu-web-plugin,
108 qtdeclarative5-ubuntu-web-plugin,
108 ubuntu-system-settings,
109 ubuntu-system-settings,
@@ -112,7 +113,8 @@ Depends: dmz-cursor-theme,
112 unity8-private | unity-launcher-impl,
113 unity8-private | unity-launcher-impl,
113 ${misc:Depends},
114 ${misc:Depends},
114 ${shlibs:Depends},
115 ${shlibs:Depends},
116+Recommends: indicator-session,
115−Recommends: unity-scope-click,
117+ unity-scope-click,
116 unity-scope-mediascanner2,
118 unity-scope-mediascanner2,
117Breaks: indicator-network (<< 0.5.1+14.10.20141014),
119Breaks: indicator-network (<< 0.5.1+14.10.20141014),
118 ubuntu-touch-session (<< 0.107),
120 ubuntu-touch-session (<< 0.107),
@@ -126,15 +128,15 @@ Description: Unity 8 shell
126Package: unity8-common
128Package: unity8-common
127Architecture: all
129Architecture: all
128Depends: qml-module-qtquick-layouts,
130Depends: qml-module-qtquick-layouts,
129− qtdeclarative5-ubuntu-settings-components (>= 0.6),
131+ qtdeclarative5-ubuntu-settings-components (>= 0.7),
130 qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
132 qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
131− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1627) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1627),
133+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
132 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
134 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
133 ubuntu-thumbnailer-impl-0,
135 ubuntu-thumbnailer-impl-0,
134− unity-application-impl-13,
136+ unity-application-impl-14,
135 unity-notifications-impl-3,
137 unity-notifications-impl-3,
136 unity-plugin-scopes | unity-scopes-impl,
138 unity-plugin-scopes | unity-scopes-impl,
137− unity-scopes-impl-9,
139+ unity-scopes-impl-11,
138 unity8-fake-env | unity-application-impl,
140 unity8-fake-env | unity-application-impl,
139 ${misc:Depends},
141 ${misc:Depends},
140Breaks: unity8 (<< 7.86),
142Breaks: unity8 (<< 7.86),
@@ -158,7 +160,7 @@ Depends: autopilot-qt5 (>= 1.4),
158 python3-fixtures,
160 python3-fixtures,
159 python3-gi,
161 python3-gi,
160 qttestability-autopilot (>= 1.4),
162 qttestability-autopilot (>= 1.4),
161− ubuntu-ui-toolkit-autopilot (>= 1.2.1485+15.04.20150417.1-0ubuntu1),
163+ ubuntu-ui-toolkit-autopilot (>= 1.3.1845),
162 unity-scope-click,
164 unity-scope-click,
163 unity8 (= ${source:Version}),
165 unity8 (= ${source:Version}),
164 unity8-fake-env (= ${source:Version}),
166 unity8-fake-env (= ${source:Version}),
@@ -177,7 +179,7 @@ Pre-Depends: ${misc:Pre-Depends},
177Depends: ${misc:Depends},
179Depends: ${misc:Depends},
178 ${shlibs:Depends},
180 ${shlibs:Depends},
179Provides: unity-application-impl,
181Provides: unity-application-impl,
180− unity-application-impl-13,
182+ unity-application-impl-14,
181Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
183Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
182Description: Fake environment for running Unity 8 shell
184Description: Fake environment for running Unity 8 shell
183 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
@@ -192,6 +194,8 @@ Depends: accountsservice-ubuntu-schemas (>= 0.0.5),
192 libhardware2,
194 libhardware2,
193 pay-service,
195 pay-service,
194 unity-schemas (>= 7.3.1+14.10.20140915),
196 unity-schemas (>= 7.3.1+14.10.20140915),
197+ qtdeclarative5-gsettings1.0,
198+ qml-module-qtmultimedia,
195 ${misc:Depends},
199 ${misc:Depends},
196 ${shlibs:Depends},
200 ${shlibs:Depends},
197Provides: unity-launcher-impl,
201Provides: unity-launcher-impl,
debian/tests/autopilot.shnew file+13
@@ -0,0 +1,13 @@
1+#!/bin/sh
2+
3+# log all commands and abort on error
4+set -xe
5+
6+if [ ! -f /system/build.prop ]; then
7+ echo "WARNING: Skipping autopilot test, will only run on devices at the moment."
8+ exit 0
9+fi
10+
11+initctl --session stop unity8
12+autopilot3 run --verbose --format xml --output "${ADT_ARTIFACTS}/unity8.xml" unity8
13+initctl --session start unity8
debian/tests/control+5
@@ -3,3 +3,8 @@ Restrictions: allow-stderr
3Depends: @,
3Depends: @,
4 @builddeps@,
4 @builddeps@,
5 xvfb,
5 xvfb,
6+
7+Tests: autopilot.sh
8+Restrictions: allow-stderr,
9+ isolation-machine,
10+Depends: unity8-autopilot,
debian/unity8-common.udevnew file+2
@@ -0,0 +1,2 @@
1+# Make local foreground session able to inject input
2+KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess"
debian/unity8-doc.install+1
@@ -1 +1,2 @@
1+doc/devices.conf usr/share/doc/unity8/
1usr/share/doc/unity8/*
2usr/share/doc/unity8/*
doc/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
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+243−330
@@ -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,17 +22,60 @@
24#include <QStringList>
22#include <QStringList>
25#include <QDebug>
23#include <QDebug>
26
24
25+#define IFACE_ACCOUNTS_USER QStringLiteral("org.freedesktop.Accounts.User")
26+#define IFACE_LOCATION_HERE QStringLiteral("com.ubuntu.location.providers.here.AccountsService")
27+#define IFACE_UBUNTU_INPUT QStringLiteral("com.ubuntu.AccountsService.Input")
28+#define IFACE_UBUNTU_SECURITY QStringLiteral("com.ubuntu.AccountsService.SecurityPrivacy")
29+#define IFACE_UBUNTU_SECURITY_OLD QStringLiteral("com.ubuntu.touch.AccountsService.SecurityPrivacy")
30+#define IFACE_UNITY QStringLiteral("com.canonical.unity.AccountsService")
31+#define IFACE_UNITY_PRIVATE QStringLiteral("com.canonical.unity.AccountsService.Private")
32+
33+#define PROP_BACKGROUND_FILE QStringLiteral("BackgroundFile")
34+#define PROP_DEMO_EDGES QStringLiteral("demo-edges")
35+#define PROP_DEMO_EDGES_COMPLETED QStringLiteral("DemoEdgesCompleted")
36+#define PROP_EMAIL QStringLiteral("Email")
37+#define PROP_ENABLE_INDICATORS_WHILE_LOCKED QStringLiteral("EnableIndicatorsWhileLocked")
38+#define PROP_ENABLE_LAUNCHER_WHILE_LOCKED QStringLiteral("EnableLauncherWhileLocked")
39+#define PROP_FAILED_LOGINS QStringLiteral("FailedLogins")
40+#define PROP_INPUT_SOURCES QStringLiteral("InputSources")
41+#define PROP_LICENSE_ACCEPTED QStringLiteral("LicenseAccepted")
42+#define PROP_LICENSE_BASE_PATH QStringLiteral("LicenseBasePath")
43+#define PROP_MOUSE_CURSOR_SPEED QStringLiteral("MouseCursorSpeed")
44+#define PROP_MOUSE_DOUBLE_CLICK_SPEED QStringLiteral("MouseDoubleClickSpeed")
45+#define PROP_MOUSE_PRIMARY_BUTTON QStringLiteral("MousePrimaryButton")
46+#define PROP_MOUSE_SCROLL_SPEED QStringLiteral("MouseScrollSpeed")
47+#define PROP_PASSWORD_DISPLAY_HINT QStringLiteral("PasswordDisplayHint")
48+#define PROP_REAL_NAME QStringLiteral("RealName")
49+#define PROP_STATS_WELCOME_SCREEN QStringLiteral("StatsWelcomeScreen")
50+#define PROP_TOUCHPAD_CURSOR_SPEED QStringLiteral("TouchpadCursorSpeed")
51+#define PROP_TOUCHPAD_DISABLE_WHILE_TYPING QStringLiteral("TouchpadDisableWhileTyping")
52+#define PROP_TOUCHPAD_DISABLE_WITH_MOUSE QStringLiteral("TouchpadDisableWithMouse")
53+#define PROP_TOUCHPAD_DOUBLE_CLICK_SPEED QStringLiteral("TouchpadDoubleClickSpeed")
54+#define PROP_TOUCHPAD_PRIMARY_BUTTON QStringLiteral("TouchpadPrimaryButton")
55+#define PROP_TOUCHPAD_SCROLL_SPEED QStringLiteral("TouchpadScrollSpeed")
56+#define PROP_TOUCHPAD_TAP_TO_CLICK QStringLiteral("TouchpadTapToClick")
57+#define PROP_TOUCHPAD_TWO_FINGER_SCROLL QStringLiteral("TouchpadTwoFingerScroll")
58+
59+using StringMap = QMap<QString,QString>;
60+using StringMapList = QList<StringMap>;
61+Q_DECLARE_METATYPE(StringMapList)
62+
63+
64+QVariant primaryButtonConverter(const QVariant &value)
65+{
66+ QString stringValue = value.toString();
67+ if (stringValue == "left") {
68+ return QVariant::fromValue(0);
69+ } else if (stringValue == "right") {
70+ return QVariant::fromValue(1); // Mir is less clear on this -- any non-zero value is the same
71+ } else {
72+ return QVariant::fromValue(0); // default to left
73+ }
74+}
75+
27AccountsService::AccountsService(QObject* parent, const QString &user)
76AccountsService::AccountsService(QObject* parent, const QString &user)
28− : QObject(parent),
77+ : QObject(parent)
29− m_service(new AccountsServiceDBusAdaptor(this)),
78+ , m_service(new AccountsServiceDBusAdaptor(this))
30− m_demoEdges(false),
31− m_enableLauncherWhileLocked(false),
32− m_enableIndicatorsWhileLocked(false),
33− m_statsWelcomeScreen(false),
34− m_passwordDisplayHint(Keyboard),
35− m_failedLogins(0),
36− m_hereEnabled(false),
37− m_hereLicensePath() // null means not set yet
38{
79{
39 m_unityInput = new QDBusInterface(QStringLiteral("com.canonical.Unity.Input"),
80 m_unityInput = new QDBusInterface(QStringLiteral("com.canonical.Unity.Input"),
40 QStringLiteral("/com/canonical/Unity/Input"),
81 QStringLiteral("/com/canonical/Unity/Input"),
@@ -44,6 +85,47 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
44 connect(m_service, &AccountsServiceDBusAdaptor::propertiesChanged, this, &AccountsService::onPropertiesChanged);
85 connect(m_service, &AccountsServiceDBusAdaptor::propertiesChanged, this, &AccountsService::onPropertiesChanged);
45 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged, this, &AccountsService::onMaybeChanged);
86 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged, this, &AccountsService::onMaybeChanged);
46
87
88+ registerProperty(IFACE_ACCOUNTS_USER, PROP_BACKGROUND_FILE, QStringLiteral("backgroundFileChanged"));
89+ registerProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL, QStringLiteral("emailChanged"));
90+ registerProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME, QStringLiteral("realNameChanged"));
91+ registerProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES, QStringLiteral("keymapsChanged"));
92+ registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED, QStringLiteral("hereEnabledChanged"));
93+ registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH, QStringLiteral("hereLicensePathChanged"));
94+ registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED, QStringLiteral("enableLauncherWhileLockedChanged"));
95+ registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_INDICATORS_WHILE_LOCKED, QStringLiteral("enableIndicatorsWhileLockedChanged"));
96+ registerProperty(IFACE_UBUNTU_SECURITY, PROP_PASSWORD_DISPLAY_HINT, QStringLiteral("passwordDisplayHintChanged"));
97+ registerProperty(IFACE_UBUNTU_SECURITY_OLD, PROP_STATS_WELCOME_SCREEN, QStringLiteral("statsWelcomeScreenChanged"));
98+ registerProperty(IFACE_UNITY, PROP_DEMO_EDGES, QStringLiteral("demoEdgesChanged"));
99+ registerProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, QStringLiteral("demoEdgesCompletedChanged"));
100+ registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS, QStringLiteral("failedLoginsChanged"));
101+
102+ registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_CURSOR_SPEED,
103+ m_unityInput, QStringLiteral("setMouseCursorSpeed"));
104+ registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_DOUBLE_CLICK_SPEED,
105+ m_unityInput, QStringLiteral("setMouseDoubleClickSpeed"));
106+ registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_PRIMARY_BUTTON,
107+ m_unityInput, QStringLiteral("setMousePrimaryButton"),
108+ primaryButtonConverter);
109+ registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_SCROLL_SPEED,
110+ m_unityInput, QStringLiteral("setMouseScrollSpeed"));
111+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_CURSOR_SPEED,
112+ m_unityInput, QStringLiteral("setTouchpadCursorSpeed"));
113+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_SCROLL_SPEED,
114+ m_unityInput, QStringLiteral("setTouchpadScrollSpeed"));
115+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_DISABLE_WHILE_TYPING,
116+ m_unityInput, QStringLiteral("setTouchpadDisableWhileTyping"));
117+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_DISABLE_WITH_MOUSE,
118+ m_unityInput, QStringLiteral("setTouchpadDisableWithMouse"));
119+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_DOUBLE_CLICK_SPEED,
120+ m_unityInput, QStringLiteral("setTouchpadDoubleClickSpeed"));
121+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_PRIMARY_BUTTON,
122+ m_unityInput, QStringLiteral("setTouchpadPrimaryButton"),
123+ primaryButtonConverter);
124+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_TAP_TO_CLICK,
125+ m_unityInput, QStringLiteral("setTouchpadTapToClick"));
126+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_TWO_FINGER_SCROLL,
127+ m_unityInput, QStringLiteral("setTouchpadTwoFingerScroll"));
128+
47 setUser(!user.isEmpty() ? user : QString::fromUtf8(qgetenv("USER")));
129 setUser(!user.isEmpty() ? user : QString::fromUtf8(qgetenv("USER")));
48}
130}
49
131
@@ -57,410 +139,256 @@ void AccountsService::setUser(const QString &user)
57 if (user.isEmpty() || m_user == user)
139 if (user.isEmpty() || m_user == user)
58 return;
140 return;
59
141
142+ bool wasEmpty = m_user.isEmpty();
143+
60 m_user = user;
144 m_user = user;
61 Q_EMIT userChanged();
145 Q_EMIT userChanged();
62
146
63− updateDemoEdges(false);
147+ // Do the first update synchronously, as a cheap way to block rendering
64− updateEnableLauncherWhileLocked(false);
148+ // until we have the right values on bootup.
65− updateEnableIndicatorsWhileLocked(false);
149+ refresh(!wasEmpty);
66− updateBackgroundFile(false);
67− updateMouseCursorSpeed();
68− updateTouchpadCursorSpeed();
69− updateStatsWelcomeScreen(false);
70− updatePasswordDisplayHint(false);
71− updateFailedLogins(false);
72− updateHereEnabled(false);
73− updateHereLicensePath(false);
74}
150}
75
151
76bool AccountsService::demoEdges() const
152bool AccountsService::demoEdges() const
77{
153{
78− return m_demoEdges;
154+ auto value = getProperty(IFACE_UNITY, PROP_DEMO_EDGES);
155+ return value.toBool();
79}
156}
80
157
81void AccountsService::setDemoEdges(bool demoEdges)
158void AccountsService::setDemoEdges(bool demoEdges)
82{
159{
83− if (m_demoEdges != demoEdges) {
160+ setProperty(IFACE_UNITY, PROP_DEMO_EDGES, demoEdges);
84− m_demoEdges = demoEdges;
161+}
85− m_service->setUserPropertyAsync(m_user, QStringLiteral("com.canonical.unity.AccountsService"), QStringLiteral("demo-edges"), demoEdges);
162+
163+QStringList AccountsService::demoEdgesCompleted() const
164+{
165+ auto value = getProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED);
166+ return value.toStringList();
167+}
86
168
87− Q_EMIT demoEdgesChanged();
169+void AccountsService::markDemoEdgeCompleted(const QString &edge)
170+{
171+ auto currentList = demoEdgesCompleted();
172+ if (!currentList.contains(edge)) {
173+ setProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, currentList << edge);
88 }
174 }
89}
175}
90
176
91bool AccountsService::enableLauncherWhileLocked() const
177bool AccountsService::enableLauncherWhileLocked() const
92{
178{
93− return m_enableLauncherWhileLocked;
179+ auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED);
180+ return value.toBool();
94}
181}
95
182
96bool AccountsService::enableIndicatorsWhileLocked() const
183bool AccountsService::enableIndicatorsWhileLocked() const
97{
184{
98− return m_enableIndicatorsWhileLocked;
185+ auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_INDICATORS_WHILE_LOCKED);
186+ return value.toBool();
99}
187}
100
188
101QString AccountsService::backgroundFile() const
189QString AccountsService::backgroundFile() const
102{
190{
103− return m_backgroundFile;
191+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_BACKGROUND_FILE);
192+ return value.toString();
104}
193}
105
194
106bool AccountsService::statsWelcomeScreen() const
195bool AccountsService::statsWelcomeScreen() const
107{
196{
108− return m_statsWelcomeScreen;
197+ auto value = getProperty(IFACE_UBUNTU_SECURITY_OLD, PROP_STATS_WELCOME_SCREEN);
198+ return value.toBool();
109}
199}
110
200
111AccountsService::PasswordDisplayHint AccountsService::passwordDisplayHint() const
201AccountsService::PasswordDisplayHint AccountsService::passwordDisplayHint() const
112{
202{
113− return m_passwordDisplayHint;
203+ auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_PASSWORD_DISPLAY_HINT);
204+ return (PasswordDisplayHint)value.toInt();
114}
205}
115
206
116bool AccountsService::hereEnabled() const
207bool AccountsService::hereEnabled() const
117{
208{
118− return m_hereEnabled;
209+ auto value = getProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED);
210+ return value.toBool();
119}
211}
120
212
121void AccountsService::setHereEnabled(bool enabled)
213void AccountsService::setHereEnabled(bool enabled)
122{
214{
123− if (m_hereEnabled != enabled) {
215+ setProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED, enabled);
124− m_hereEnabled = enabled;
125− m_service->setUserPropertyAsync(m_user, QStringLiteral("com.ubuntu.location.providers.here.AccountsService"), QStringLiteral("LicenseAccepted"), enabled);
126−
127− Q_EMIT hereEnabledChanged();
128− }
129}
216}
130
217
131QString AccountsService::hereLicensePath() const
218QString AccountsService::hereLicensePath() const
132{
219{
133− return m_hereLicensePath;
220+ auto value = getProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH);
221+ QString hereLicensePath = value.toString();
222+ if (hereLicensePath.isEmpty() || !QFile::exists(hereLicensePath))
223+ hereLicensePath = QStringLiteral("");
224+ return hereLicensePath;
134}
225}
135
226
136bool AccountsService::hereLicensePathValid() const
227bool AccountsService::hereLicensePathValid() const
137{
228{
229+ auto value = getProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH);
138− return !m_hereLicensePath.isNull();
230+ return !value.toString().isNull();
139}
231}
140
232
141−void AccountsService::updateDemoEdges(bool async)
233+QString AccountsService::realName() const
142{
234{
143− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
235+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME);
144− QStringLiteral("com.canonical.unity.AccountsService"),
145− QStringLiteral("demo-edges"));
146− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
147−
148− connect(watcher, &QDBusPendingCallWatcher::finished,
149− this, [this](QDBusPendingCallWatcher* watcher) {
150−
151− QDBusPendingReply<QDBusVariant> reply = *watcher;
152− watcher->deleteLater();
153− if (reply.isError()) {
154− qWarning() << "Failed to get 'demo-edges' property - " << reply.error().message();
155− return;
236+ return value.toString();
156− }
157−
158− auto demoEdges = reply.value().variant().toBool();
159− if (m_demoEdges != demoEdges) {
160− m_demoEdges = demoEdges;
161− Q_EMIT demoEdgesChanged();
162− }
163− });
164− if (!async) {
165− watcher->waitForFinished();
166− delete watcher;
167− }
168}
237}
169
238
170−void AccountsService::updateEnableLauncherWhileLocked(bool async)
239+void AccountsService::setRealName(const QString &realName)
171{
240{
172− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
241+ setProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME, realName);
173− QStringLiteral("com.ubuntu.AccountsService.SecurityPrivacy"),
174− QStringLiteral("EnableLauncherWhileLocked"));
175− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
176−
177− connect(watcher, &QDBusPendingCallWatcher::finished,
178− this, [this](QDBusPendingCallWatcher* watcher) {
179−
180− QDBusPendingReply<QVariant> reply = *watcher;
181− watcher->deleteLater();
182− if (reply.isError()) {
183− qWarning() << "Failed to get 'EnableLauncherWhileLocked' property - " << reply.error().message();
184− return;
185− }
186−
187− const bool enableLauncherWhileLocked = reply.value().toBool();
188− if (m_enableLauncherWhileLocked != enableLauncherWhileLocked) {
189− m_enableLauncherWhileLocked = enableLauncherWhileLocked;
190− Q_EMIT enableLauncherWhileLockedChanged();
191− }
192− });
193− if (!async) {
194− watcher->waitForFinished();
195− delete watcher;
196− }
197}
242}
198
243
199−void AccountsService::updateEnableIndicatorsWhileLocked(bool async)
244+QString AccountsService::email() const
200{
245{
201− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
246+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL);
202− QStringLiteral("com.ubuntu.AccountsService.SecurityPrivacy"),
203− QStringLiteral("EnableIndicatorsWhileLocked"));
204− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
205−
206− connect(watcher, &QDBusPendingCallWatcher::finished,
207− this, [this](QDBusPendingCallWatcher* watcher) {
208−
209− QDBusPendingReply<QVariant> reply = *watcher;
210− watcher->deleteLater();
211− if (reply.isError()) {
212− qWarning() << "Failed to get 'EnableIndicatorsWhileLocked' property - " << reply.error().message();
213− return;
247+ return value.toString();
214− }
215−
216− const bool enableIndicatorsWhileLocked = reply.value().toBool();
217− if (m_enableIndicatorsWhileLocked != enableIndicatorsWhileLocked) {
218− m_enableIndicatorsWhileLocked = enableIndicatorsWhileLocked;
219− Q_EMIT enableIndicatorsWhileLockedChanged();
220− }
221− });
222− if (!async) {
223− watcher->waitForFinished();
224− delete watcher;
225− }
226}
248}
227
249
228−void AccountsService::updateBackgroundFile(bool async)
250+void AccountsService::setEmail(const QString &email)
229{
251{
230− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
252+ setProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL, email);
231− QStringLiteral("org.freedesktop.Accounts.User"),
253+}
232− QStringLiteral("BackgroundFile"));
233− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
234−
235− connect(watcher, &QDBusPendingCallWatcher::finished,
236− this, [this](QDBusPendingCallWatcher* watcher) {
237
254
238− QDBusPendingReply<QVariant> reply = *watcher;
255+QStringList AccountsService::keymaps() const
239− watcher->deleteLater();
256+{
240− if (reply.isError()) {
257+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES);
241− qWarning() << "Failed to get 'BackgroundFile' property - " << reply.error().message();
258+ QDBusArgument arg = value.value<QDBusArgument>();
242− return;
259+ StringMapList maps = qdbus_cast<StringMapList>(arg);
260+ QStringList simplifiedMaps;
261+
262+ Q_FOREACH(const StringMap &map, maps) {
263+ Q_FOREACH(const QString &entry, map) {
264+ simplifiedMaps.append(entry);
243 }
265 }
266+ }
244
267
245− const QString backgroundFile = reply.value().toString();
268+ if (!simplifiedMaps.isEmpty()) {
246− if (m_backgroundFile != backgroundFile) {
269+ return simplifiedMaps;
247− m_backgroundFile = backgroundFile;
248− Q_EMIT backgroundFileChanged();
249− }
250− });
251− if (!async) {
252− watcher->waitForFinished();
253− delete watcher;
254 }
270 }
271+
272+ return {QStringLiteral("us")};
255}
273}
256
274
257−void AccountsService::updateMouseCursorSpeed()
275+uint AccountsService::failedLogins() const
258{
276{
259− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
277+ return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS).toUInt();
260− QStringLiteral("com.ubuntu.AccountsService.Input"),
261− QStringLiteral("MouseCursorSpeed"));
262− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
263−
264− connect(watcher, &QDBusPendingCallWatcher::finished,
265− this, [this](QDBusPendingCallWatcher* watcher) {
266−
267− QDBusPendingReply<QVariant> reply = *watcher;
268− watcher->deleteLater();
269− if (reply.isError()) {
270− qWarning() << "Failed to get 'MouseCursorSpeed' property - " << reply.error().message();
271− return;
272− }
273−
274− // Merely proxy this along to USC. We don't care about keeping a copy
275− // or exporting it internally.
276− m_unityInput->asyncCall(QStringLiteral("setMouseCursorSpeed"), reply.value());
277− });
278}
278}
279
279
280−void AccountsService::updateTouchpadCursorSpeed()
280+void AccountsService::setFailedLogins(uint failedLogins)
281{
281{
282− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
282+ setProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS, failedLogins);
283− QStringLiteral("com.ubuntu.AccountsService.Input"),
283+}
284− QStringLiteral("TouchpadCursorSpeed"));
285− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
286−
287− connect(watcher, &QDBusPendingCallWatcher::finished,
288− this, [this](QDBusPendingCallWatcher* watcher) {
289
284
290− QDBusPendingReply<QVariant> reply = *watcher;
285+// ====================================================
291− watcher->deleteLater();
286+// Everything below this line is generic helper methods
292− if (reply.isError()) {
287+// ====================================================
293− qWarning() << "Failed to get 'TouchpadCursorSpeed' property - " << reply.error().message();
294− return;
295− }
296
288
297− // Merely proxy this along to USC. We don't care about keeping a copy
289+void AccountsService::emitChangedForProperty(const QString &interface, const QString &property)
298− // or exporting it internally.
290+{
299− m_unityInput->asyncCall(QStringLiteral("setTouchpadCursorSpeed"), reply.value());
291+ QString signalName = m_properties[interface][property].signal;
300− });
292+ QMetaObject::invokeMethod(this, signalName.toUtf8().data());
301}
293}
302
294
303−void AccountsService::updateStatsWelcomeScreen(bool async)
295+QVariant AccountsService::getProperty(const QString &interface, const QString &property) const
304{
296{
305− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
297+ return m_properties[interface][property].value;
306− QStringLiteral("com.ubuntu.touch.AccountsService.SecurityPrivacy"),
307− QStringLiteral("StatsWelcomeScreen"));
308− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
309−
310− connect(watcher, &QDBusPendingCallWatcher::finished,
311− this, [this](QDBusPendingCallWatcher* watcher) {
312−
313− QDBusPendingReply<QVariant> reply = *watcher;
314− watcher->deleteLater();
315− if (reply.isError()) {
316− qWarning() << "Failed to get 'StatsWelcomeScreen' property - " << reply.error().message();
317− return;
318− }
319−
320− const bool statsWelcomeScreen = reply.value().toBool();
321− if (m_statsWelcomeScreen != statsWelcomeScreen) {
322− m_statsWelcomeScreen = statsWelcomeScreen;
323− Q_EMIT statsWelcomeScreenChanged();
324− }
325− });
326− if (!async) {
327− watcher->waitForFinished();
328− delete watcher;
329− }
330}
298}
331
299
332−void AccountsService::updatePasswordDisplayHint(bool async)
300+void AccountsService::setProperty(const QString &interface, const QString &property, const QVariant &value)
333{
301{
334− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
302+ if (m_properties[interface][property].value != value) {
335− QStringLiteral("com.ubuntu.AccountsService.SecurityPrivacy"),
303+ m_properties[interface][property].value = value;
336− QStringLiteral("PasswordDisplayHint"));
304+ m_service->setUserPropertyAsync(m_user, interface, property, value);
337− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
305+ emitChangedForProperty(interface, property);
338−
339− connect(watcher, &QDBusPendingCallWatcher::finished,
340− this, [this](QDBusPendingCallWatcher* watcher) {
341−
342− QDBusPendingReply<QVariant> reply = *watcher;
343− watcher->deleteLater();
344− if (reply.isError()) {
345− qWarning() << "Failed to get 'PasswordDisplayHint' property - " << reply.error().message();
346− return;
347− }
348−
349− const PasswordDisplayHint passwordDisplayHint = (PasswordDisplayHint)reply.value().toInt();
350− if (m_passwordDisplayHint != passwordDisplayHint) {
351− m_passwordDisplayHint = passwordDisplayHint;
352− Q_EMIT passwordDisplayHintChanged();
353− }
354− });
355− if (!async) {
356− watcher->waitForFinished();
357− delete watcher;
358 }
306 }
359}
307}
360
308
361−void AccountsService::updateFailedLogins(bool async)
309+void AccountsService::updateCache(const QString &interface, const QString &property, const QVariant &value)
362{
310{
363− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
311+ PropertyInfo &info = m_properties[interface][property];
364− QStringLiteral("com.canonical.unity.AccountsService.Private"),
312+
365− QStringLiteral("FailedLogins"));
313+ if (info.proxyInterface) {
366− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
314+ QVariant finalValue;
367−
315+ if (info.proxyConverter) {
368− connect(watcher, &QDBusPendingCallWatcher::finished,
316+ finalValue = info.proxyConverter(value);
369− this, [this](QDBusPendingCallWatcher* watcher) {
317+ } else {
370−
318+ finalValue = value;
371− QDBusPendingReply<QVariant> reply = *watcher;
372− watcher->deleteLater();
373− if (reply.isError()) {
374− qWarning() << "Failed to get 'FailedLogins' property - " << reply.error().message();
375− return;
376 }
319 }
320+ info.proxyInterface->asyncCall(info.proxyMethod, finalValue);
321+ return; // don't bother saving a copy
322+ }
377
323
378− const uint failedLogins = reply.value().toUInt();
324+ if (info.value != value) {
379− if (m_failedLogins != failedLogins) {
325+ info.value = value;
380− m_failedLogins = failedLogins;
326+ emitChangedForProperty(interface, property);
381− Q_EMIT failedLoginsChanged();
382− }
383− });
384− if (!async) {
385− watcher->waitForFinished();
386− delete watcher;
387 }
327 }
388}
328}
389
329
390−void AccountsService::updateHereEnabled(bool async)
330+void AccountsService::updateProperty(const QString &interface, const QString &property)
391{
331{
392 QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
332 QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
393− QStringLiteral("com.ubuntu.location.providers.here.AccountsService"),
333+ interface,
394− QStringLiteral("LicenseAccepted"));
334+ property);
395 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
335 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
396
336
397 connect(watcher, &QDBusPendingCallWatcher::finished,
337 connect(watcher, &QDBusPendingCallWatcher::finished,
398− this, [this](QDBusPendingCallWatcher* watcher) {
338+ this, [this, interface, property](QDBusPendingCallWatcher* watcher) {
399
339
400 QDBusPendingReply<QVariant> reply = *watcher;
340 QDBusPendingReply<QVariant> reply = *watcher;
401 watcher->deleteLater();
341 watcher->deleteLater();
402 if (reply.isError()) {
342 if (reply.isError()) {
403− qWarning() << "Failed to get 'LicenseAccepted' property - " << reply.error().message();
343+ qWarning() << "Failed to get '" << property << "' property:" << reply.error().message();
404 return;
344 return;
405 }
345 }
406
346
407− const bool hereEnabled = reply.value().toBool();
347+ updateCache(interface, property, reply.value());
408− if (m_hereEnabled != hereEnabled) {
409− m_hereEnabled = hereEnabled;
410− Q_EMIT hereEnabledChanged();
411− }
412 });
348 });
413− if (!async) {
414− watcher->waitForFinished();
415− delete watcher;
416− }
417}
349}
418
350
419−void AccountsService::updateHereLicensePath(bool async)
351+void AccountsService::updateAllProperties(const QString &interface, bool async)
420{
352{
421− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
353+ QDBusPendingCall pendingReply = m_service->getAllPropertiesAsync(m_user,
422− QStringLiteral("com.ubuntu.location.providers.here.AccountsService"),
354+ interface);
423− QStringLiteral("LicenseBasePath"));
424 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
355 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
425
356
426 connect(watcher, &QDBusPendingCallWatcher::finished,
357 connect(watcher, &QDBusPendingCallWatcher::finished,
427− this, [this](QDBusPendingCallWatcher* watcher) {
358+ this, [this, interface](QDBusPendingCallWatcher* watcher) {
428
359
429− QDBusPendingReply<QVariant> reply = *watcher;
360+ QDBusPendingReply< QHash<QString, QVariant> > reply = *watcher;
430 watcher->deleteLater();
361 watcher->deleteLater();
431 if (reply.isError()) {
362 if (reply.isError()) {
432− qWarning() << "Failed to get 'LicenseBasePath' property - " << reply.error().message();
363+ qWarning() << "Failed to get all properties for" << interface << ":" << reply.error().message();
433 return;
364 return;
434 }
365 }
435
366
436− QString hereLicensePath = reply.value().toString();
367+ auto valueHash = reply.value();
437− if (hereLicensePath.isEmpty() || !QFile::exists(hereLicensePath))
368+ auto i = valueHash.constBegin();
438− hereLicensePath = QLatin1String("");
369+ while (i != valueHash.constEnd()) {
439−
370+ updateCache(interface, i.key(), i.value());
440− if (m_hereLicensePath.isNull() || m_hereLicensePath != hereLicensePath) {
371+ ++i;
441− m_hereLicensePath = hereLicensePath;
442− Q_EMIT hereLicensePathChanged();
443 }
372 }
444 });
373 });
445 if (!async) {
374 if (!async) {
446 watcher->waitForFinished();
375 watcher->waitForFinished();
447− delete watcher;
448 }
376 }
449}
377}
450
378
451−uint AccountsService::failedLogins() const
379+void AccountsService::registerProxy(const QString &interface, const QString &property, QDBusInterface *iface, const QString &method, ProxyConverter converter)
452{
380{
453− return m_failedLogins;
381+ registerProperty(interface, property, nullptr);
382+
383+ m_properties[interface][property].proxyInterface = iface;
384+ m_properties[interface][property].proxyMethod = method;
385+ m_properties[interface][property].proxyConverter = converter;
454}
386}
455
387
456−void AccountsService::setFailedLogins(uint failedLogins)
388+void AccountsService::registerProperty(const QString &interface, const QString &property, const QString &signal)
457{
389{
458− if (m_failedLogins != failedLogins) {
390+ m_properties[interface][property] = PropertyInfo();
459− m_failedLogins = failedLogins;
391+ m_properties[interface][property].signal = signal;
460− m_service->setUserPropertyAsync(m_user, QStringLiteral("com.canonical.unity.AccountsService.Private"), QStringLiteral("FailedLogins"), failedLogins);
461−
462− Q_EMIT failedLoginsChanged();
463− }
464}
392}
465
393
466void AccountsService::onPropertiesChanged(const QString &user, const QString &interface, const QStringList &changed)
394void AccountsService::onPropertiesChanged(const QString &user, const QString &interface, const QStringList &changed)
@@ -469,42 +397,13 @@ void AccountsService::onPropertiesChanged(const QString &user, const QString &in
469 return;
397 return;
470 }
398 }
471
399
472− if (interface == QLatin1String("com.canonical.unity.AccountsService")) {
400+ auto propHash = m_properties.value(interface);
473− if (changed.contains(QStringLiteral("demo-edges"))) {
401+ auto i = propHash.constBegin();
474− updateDemoEdges();
402+ while (i != propHash.constEnd()) {
475− }
476− } else if (interface == QLatin1String("com.canonical.unity.AccountsService.Private")) {
477− if (changed.contains(QStringLiteral("FailedLogins"))) {
478− updateFailedLogins();
479− }
480− } else if (interface == QLatin1String("com.ubuntu.AccountsService.Input")) {
481− if (changed.contains(QStringLiteral("MouseCursorSpeed"))) {
482− updateMouseCursorSpeed();
483− }
484− if (changed.contains(QStringLiteral("TouchpadCursorSpeed"))) {
485− updateTouchpadCursorSpeed();
486− }
487− } else if (interface == QLatin1String("com.ubuntu.touch.AccountsService.SecurityPrivacy")) {
488− if (changed.contains(QStringLiteral("StatsWelcomeScreen"))) {
489− updateStatsWelcomeScreen();
490− }
491− } else if (interface == QLatin1String("com.ubuntu.AccountsService.SecurityPrivacy")) {
492− if (changed.contains(QStringLiteral("PasswordDisplayHint"))) {
493− updatePasswordDisplayHint();
494− }
495− if (changed.contains(QStringLiteral("EnableLauncherWhileLocked"))) {
403+ if (changed.contains(i.key())) {
496− updateEnableLauncherWhileLocked();
404+ updateProperty(interface, i.key());
497− }
498− if (changed.contains(QStringLiteral("EnableIndicatorsWhileLocked"))) {
499− updateEnableIndicatorsWhileLocked();
500− }
501− } else if (interface == QLatin1String("com.ubuntu.location.providers.here.AccountsService")) {
502− if (changed.contains(QStringLiteral("LicenseAccepted"))) {
503− updateHereEnabled();
504− }
505− if (changed.contains(QStringLiteral("LicenseBasePath"))) {
506− updateHereLicensePath();
507 }
405 }
406+ ++i;
508 }
407 }
509}
408}
510
409
@@ -514,6 +413,20 @@ void AccountsService::onMaybeChanged(const QString &user)
514 return;
413 return;
515 }
414 }
516
415
517− // Standard properties might have changed
416+ // Any of the standard properties might have changed!
518− updateBackgroundFile();
417+ auto propHash = m_properties.value(IFACE_ACCOUNTS_USER);
418+ auto i = propHash.constBegin();
419+ while (i != propHash.constEnd()) {
420+ updateProperty(IFACE_ACCOUNTS_USER, i.key());
421+ ++i;
422+ }
423+}
424+
425+void AccountsService::refresh(bool async)
426+{
427+ auto i = m_properties.constBegin();
428+ while (i != m_properties.constEnd()) {
429+ updateAllProperties(i.key(), async);
430+ ++i;
431+ }
519}
432}
plugins/AccountsService/AccountsService.h+46−23
@@ -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,15 +12,16 @@
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
20#define UNITY_ACCOUNTSSERVICE_H
18#define UNITY_ACCOUNTSSERVICE_H
21
19
20+#include <QHash>
22#include <QObject>
21#include <QObject>
23#include <QString>
22#include <QString>
23+#include <QStringList>
24+#include <QVariant>
24
25
25class AccountsServiceDBusAdaptor;
26class AccountsServiceDBusAdaptor;
26class QDBusInterface;
27class QDBusInterface;
@@ -37,6 +38,9 @@ class AccountsService: public QObject
37 READ demoEdges
38 READ demoEdges
38 WRITE setDemoEdges
39 WRITE setDemoEdges
39 NOTIFY demoEdgesChanged)
40 NOTIFY demoEdgesChanged)
41+ Q_PROPERTY (QStringList demoEdgesCompleted
42+ READ demoEdgesCompleted
43+ NOTIFY demoEdgesCompletedChanged)
40 Q_PROPERTY (bool enableLauncherWhileLocked
44 Q_PROPERTY (bool enableLauncherWhileLocked
41 READ enableLauncherWhileLocked
45 READ enableLauncherWhileLocked
42 NOTIFY enableLauncherWhileLockedChanged)
46 NOTIFY enableLauncherWhileLockedChanged)
@@ -66,6 +70,11 @@ class AccountsService: public QObject
66 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
67 READ hereLicensePathValid
71 READ hereLicensePathValid
68 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)
69
78
70public:
79public:
71 enum PasswordDisplayHint {
80 enum PasswordDisplayHint {
@@ -80,6 +89,8 @@ public:
80 void setUser(const QString &user);
89 void setUser(const QString &user);
81 bool demoEdges() const;
90 bool demoEdges() const;
82 void setDemoEdges(bool demoEdges);
91 void setDemoEdges(bool demoEdges);
92+ QStringList demoEdgesCompleted() const;
93+ Q_INVOKABLE void markDemoEdgeCompleted(const QString &edge);
83 bool enableLauncherWhileLocked() const;
94 bool enableLauncherWhileLocked() const;
84 bool enableIndicatorsWhileLocked() const;
95 bool enableIndicatorsWhileLocked() const;
85 QString backgroundFile() const;
96 QString backgroundFile() const;
@@ -91,10 +102,16 @@ public:
91 void setHereEnabled(bool enabled);
102 void setHereEnabled(bool enabled);
92 QString hereLicensePath() const;
103 QString hereLicensePath() const;
93 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;
94
110
95Q_SIGNALS:
111Q_SIGNALS:
96 void userChanged();
112 void userChanged();
97 void demoEdgesChanged();
113 void demoEdgesChanged();
114+ void demoEdgesCompletedChanged();
98 void enableLauncherWhileLockedChanged();
115 void enableLauncherWhileLockedChanged();
99 void enableIndicatorsWhileLockedChanged();
116 void enableIndicatorsWhileLockedChanged();
100 void backgroundFileChanged();
117 void backgroundFileChanged();
@@ -103,36 +120,42 @@ Q_SIGNALS:
103 void failedLoginsChanged();
120 void failedLoginsChanged();
104 void hereEnabledChanged();
121 void hereEnabledChanged();
105 void hereLicensePathChanged();
122 void hereLicensePathChanged();
123+ void realNameChanged();
124+ void emailChanged();
125+ void keymapsChanged();
106
126
107private Q_SLOTS:
127private Q_SLOTS:
108 void onPropertiesChanged(const QString &user, const QString &interface, const QStringList &changed);
128 void onPropertiesChanged(const QString &user, const QString &interface, const QStringList &changed);
109 void onMaybeChanged(const QString &user);
129 void onMaybeChanged(const QString &user);
110
130
111private:
131private:
112− void updateDemoEdges(bool async = true);
132+ typedef QVariant (*ProxyConverter)(const QVariant &);
113− void updateEnableLauncherWhileLocked(bool async = true);
133+
114− void updateEnableIndicatorsWhileLocked(bool async = true);
134+ void refresh(bool async);
115− void updateBackgroundFile(bool async = true);
135+ void registerProperty(const QString &interface, const QString &property, const QString &signal);
116− void updateMouseCursorSpeed();
136+ void registerProxy(const QString &interface, const QString &property, QDBusInterface *iface, const QString &method, ProxyConverter converter = nullptr);
117− void updateTouchpadCursorSpeed();
137+
118− void updateStatsWelcomeScreen(bool async = true);
138+ void updateAllProperties(const QString &interface, bool async);
119− void updatePasswordDisplayHint(bool async = true);
139+ void updateProperty(const QString &interface, const QString &property);
120− void updateFailedLogins(bool async = true);
140+ void updateCache(const QString &interface, const QString &property, const QVariant &value);
121− void updateHereEnabled(bool async = true);
122− void updateHereLicensePath(bool async = true);
123
141
142+ void setProperty(const QString &interface, const QString &property, const QVariant &value);
143+ QVariant getProperty(const QString &interface, const QString &property) const;
144+
145+ void emitChangedForProperty(const QString &interface, const QString &property);
146+
147+ struct PropertyInfo {
148+ QVariant value{};
149+ QString signal{};
150+ QDBusInterface *proxyInterface{};
151+ QString proxyMethod{};
152+ ProxyConverter proxyConverter{};
153+ };
154+ typedef QHash< QString, QHash<QString, PropertyInfo> > PropertyHash;
155+ PropertyHash m_properties;
124 AccountsServiceDBusAdaptor *m_service;
156 AccountsServiceDBusAdaptor *m_service;
125 QDBusInterface *m_unityInput;
157 QDBusInterface *m_unityInput;
126 QString m_user;
158 QString m_user;
127− bool m_demoEdges;
128− bool m_enableLauncherWhileLocked;
129− bool m_enableIndicatorsWhileLocked;
130− QString m_backgroundFile;
131− bool m_statsWelcomeScreen;
132− PasswordDisplayHint m_passwordDisplayHint;
133− uint m_failedLogins;
134− bool m_hereEnabled;
135− QString m_hereLicensePath;
136};
159};
137
160
138#endif
161#endif
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+23−6
@@ -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: Michael Terry <michael.terry@canonical.com>
17 */
15 */
18
16
19#include "AccountsServiceDBusAdaptor.h"
17#include "AccountsServiceDBusAdaptor.h"
@@ -37,6 +35,15 @@ AccountsServiceDBusAdaptor::AccountsServiceDBusAdaptor(QObject* parent)
37 connection, this);
35 connection, this);
38}
36}
39
37
38+QDBusPendingReply<QVariantMap> AccountsServiceDBusAdaptor::getAllPropertiesAsync(const QString &user, const QString &interface)
39+{
40+ QDBusInterface *iface = getUserInterface(user);
41+ if (iface != nullptr && iface->isValid()) {
42+ return iface->asyncCall(QStringLiteral("GetAll"), interface);
43+ }
44+ return QDBusPendingReply<QVariantMap>(QDBusMessage::createError(QDBusError::Other, QStringLiteral("Invalid Interface")));
45+}
46+
40QDBusPendingReply<QVariant> AccountsServiceDBusAdaptor::getUserPropertyAsync(const QString &user, const QString &interface, const QString &property)
47QDBusPendingReply<QVariant> AccountsServiceDBusAdaptor::getUserPropertyAsync(const QString &user, const QString &interface, const QString &property)
41{
48{
42 QDBusInterface *iface = getUserInterface(user);
49 QDBusInterface *iface = getUserInterface(user);
@@ -50,8 +57,18 @@ QDBusPendingCall AccountsServiceDBusAdaptor::setUserPropertyAsync(const QString
50{
57{
51 QDBusInterface *iface = getUserInterface(user);
58 QDBusInterface *iface = getUserInterface(user);
52 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 {
53− // The value needs to be carefully wrapped
69+ // The value needs to be carefully wrapped
54− return iface->asyncCall(QStringLiteral("Set"), interface, property, QVariant::fromValue(QDBusVariant(value)));
70+ return iface->asyncCall(QStringLiteral("Set"), interface, property, QVariant::fromValue(QDBusVariant(value)));
71+ }
55 }
72 }
56 return QDBusPendingCall::fromCompletedCall(QDBusMessage::createError(QDBusError::Other, QStringLiteral("Invalid Interface")));
73 return QDBusPendingCall::fromCompletedCall(QDBusMessage::createError(QDBusError::Other, QStringLiteral("Invalid Interface")));
57}
74}
@@ -80,7 +97,7 @@ void AccountsServiceDBusAdaptor::maybeChangedSlot()
80 m_ignoreNextChanged = false;
97 m_ignoreNextChanged = false;
81}
98}
82
99
83−QString AccountsServiceDBusAdaptor::getUserForPath(const QString &path)
100+QString AccountsServiceDBusAdaptor::getUserForPath(const QString &path) const
84{
101{
85 QMap<QString, QDBusInterface *>::const_iterator i;
102 QMap<QString, QDBusInterface *>::const_iterator i;
86 for (i = m_users.constBegin(); i != m_users.constEnd(); ++i) {
103 for (i = m_users.constBegin(); i != m_users.constEnd(); ++i) {
plugins/AccountsService/AccountsServiceDBusAdaptor.h+5−6
@@ -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− * Authors: Michael Terry <michael.terry@canonical.com>
17 */
15 */
18
16
19#ifndef UNITY_ACCOUNTSSERVICEDBUSADAPTOR_H
17#ifndef UNITY_ACCOUNTSSERVICEDBUSADAPTOR_H
@@ -35,8 +33,9 @@ public:
35 explicit AccountsServiceDBusAdaptor(QObject *parent = 0);
33 explicit AccountsServiceDBusAdaptor(QObject *parent = 0);
36 ~AccountsServiceDBusAdaptor() = default;
34 ~AccountsServiceDBusAdaptor() = default;
37
35
36+ QDBusPendingReply<QVariantMap> getAllPropertiesAsync(const QString &user, const QString &interface);
38− Q_INVOKABLE QDBusPendingReply<QVariant> getUserPropertyAsync(const QString &user, const QString &interface, const QString &property);
37+ QDBusPendingReply<QVariant> getUserPropertyAsync(const QString &user, const QString &interface, const QString &property);
39− Q_INVOKABLE QDBusPendingCall setUserPropertyAsync(const QString &user, const QString &interface, const QString &property, const QVariant &value);
38+ QDBusPendingCall setUserPropertyAsync(const QString &user, const QString &interface, const QString &property, const QVariant &value);
40
39
41Q_SIGNALS:
40Q_SIGNALS:
42 void propertiesChanged(const QString &user, const QString &interface, const QStringList &changed);
41 void propertiesChanged(const QString &user, const QString &interface, const QStringList &changed);
@@ -48,7 +47,7 @@ private Q_SLOTS:
48
47
49private:
48private:
50 QDBusInterface *getUserInterface(const QString &user);
49 QDBusInterface *getUserInterface(const QString &user);
51− QString getUserForPath(const QString &path);
50+ QString getUserForPath(const QString &path) const;
52
51
53 QDBusInterface *m_accountsManager;
52 QDBusInterface *m_accountsManager;
54 QMap<QString, QDBusInterface *> m_users;
53 QMap<QString, QDBusInterface *> m_users;
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/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/AudioProgressBar.qml+1
@@ -31,6 +31,7 @@ Item {
31 anchors { left: parent.left; right: parent.right }
31 anchors { left: parent.left; right: parent.right }
32 height: units.dp(6)
32 height: units.dp(6)
33 source: "graphics/music_progress_bg.png"
33 source: "graphics/music_progress_bg.png"
34+ asynchronous: true
34 sourceSize.width: width
35 sourceSize.width: width
35 sourceSize.height: height
36 sourceSize.height: height
36 }
37 }
plugins/Dash/CardCreator.js+69−34
@@ -18,12 +18,13 @@
18
18
19// %1 is the template["card-background"]["elements"][0]
19// %1 is the template["card-background"]["elements"][0]
20// %2 is the template["card-background"]["elements"][1]
20// %2 is the template["card-background"]["elements"][1]
21+// %3 is whether the loader should be asynchronous or not
21−// %3 is the template["card-background"] string
22+// %4 is the template["card-background"] string
22var kBackgroundLoaderCode = 'Loader {\n\
23var kBackgroundLoaderCode = 'Loader {\n\
23 id: backgroundLoader; \n\
24 id: backgroundLoader; \n\
24 objectName: "backgroundLoader"; \n\
25 objectName: "backgroundLoader"; \n\
25 anchors.fill: parent; \n\
26 anchors.fill: parent; \n\
26− asynchronous: root.asynchronous; \n\
27+ asynchronous: %3; \n\
27 visible: status == Loader.Ready; \n\
28 visible: status == Loader.Ready; \n\
28 sourceComponent: UbuntuShape { \n\
29 sourceComponent: UbuntuShape { \n\
29 objectName: "background"; \n\
30 objectName: "background"; \n\
@@ -46,7 +47,7 @@ var kBackgroundLoaderCode = 'Loader {\n\
46 objectName: "backgroundImage"; \n\
47 objectName: "backgroundImage"; \n\
47 source: { \n\
48 source: { \n\
48 if (cardData && typeof cardData["background"] === "string") return cardData["background"]; \n\
49 if (cardData && typeof cardData["background"] === "string") return cardData["background"]; \n\
49− else return %3; \n\
50+ else return %4; \n\
50 } \n\
51 } \n\
51 } \n\
52 } \n\
52 function getColor(index) { \n\
53 function getColor(index) { \n\
@@ -63,8 +64,9 @@ var kBackgroundLoaderCode = 'Loader {\n\
63// %3 is used as image height
64// %3 is used as image height
64// %4 is used for artShapeSource.hideSource and inner Loader visible
65// %4 is used for artShapeSource.hideSource and inner Loader visible
65// %5 is used as aspect ratio fallback
66// %5 is used as aspect ratio fallback
67+// %6 is whether the loader should be asynchronous or not
66−// %6 is injected as code to artImage
68+// %7 is injected as code to artImage
67−// %7 is used as image fallback
69+// %8 is used as image fallback
68var kArtShapeHolderCode = 'Item { \n\
70var kArtShapeHolderCode = 'Item { \n\
69 id: artShapeHolder; \n\
71 id: artShapeHolder; \n\
70 height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height; \n\
72 height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height; \n\
@@ -73,9 +75,9 @@ var kArtShapeHolderCode = 'Item { \n\
73 Loader { \n\
75 Loader { \n\
74 id: artShapeLoader; \n\
76 id: artShapeLoader; \n\
75 objectName: "artShapeLoader"; \n\
77 objectName: "artShapeLoader"; \n\
76− readonly property string cardArt: cardData && cardData["art"] || %7; \n\
78+ readonly property string cardArt: cardData && cardData["art"] || %8; \n\
77 active: cardArt != ""; \n\
79 active: cardArt != ""; \n\
78− asynchronous: root.asynchronous; \n\
80+ asynchronous: %6; \n\
79 visible: status == Loader.Ready; \n\
81 visible: status == Loader.Ready; \n\
80 sourceComponent: Item { \n\
82 sourceComponent: Item { \n\
81 id: artShape; \n\
83 id: artShape; \n\
@@ -132,10 +134,10 @@ var kArtShapeHolderCode = 'Item { \n\
132 id: artImage; \n\
134 id: artImage; \n\
133 objectName: "artImage"; \n\
135 objectName: "artImage"; \n\
134 source: artShapeLoader.cardArt; \n\
136 source: artShapeLoader.cardArt; \n\
135− asynchronous: root.asynchronous; \n\
137+ asynchronous: %6; \n\
136 width: %2; \n\
138 width: %2; \n\
137 height: %3; \n\
139 height: %3; \n\
138− %6 \n\
140+ %7 \n\
139 } \n\
141 } \n\
140 } \n\
142 } \n\
141 } \n\
143 } \n\
@@ -144,6 +146,7 @@ var kArtShapeHolderCode = 'Item { \n\
144// %1 is anchors.fill
146// %1 is anchors.fill
145// %2 is width
147// %2 is width
146// %3 is height
148// %3 is height
149+// %4 is whether the icon should be asynchronous or not
147var kAudioButtonCode = 'AbstractButton { \n\
150var kAudioButtonCode = 'AbstractButton { \n\
148 id: audioButton; \n\
151 id: audioButton; \n\
149 anchors.fill: %1; \n\
152 anchors.fill: %1; \n\
@@ -169,6 +172,7 @@ var kAudioButtonCode = 'AbstractButton { \n\
169 opacity: 0.9; \n\
172 opacity: 0.9; \n\
170 name: DashAudioPlayer.playing && AudioUrlComparer.compare(parent.source, DashAudioPlayer.currentSource) ? "media-playback-pause" : "media-playback-start"; \n\
173 name: DashAudioPlayer.playing && AudioUrlComparer.compare(parent.source, DashAudioPlayer.currentSource) ? "media-playback-pause" : "media-playback-start"; \n\
171 color: "white"; \n\
174 color: "white"; \n\
175+ asynchronous: %4; \n\
172 } \n\
176 } \n\
173 onClicked: { \n\
177 onClicked: { \n\
174 if (AudioUrlComparer.compare(source, DashAudioPlayer.currentSource)) { \n\
178 if (AudioUrlComparer.compare(source, DashAudioPlayer.currentSource)) { \n\
@@ -187,12 +191,14 @@ var kAudioButtonCode = 'AbstractButton { \n\
187 } \n\
191 } \n\
188 }';
192 }';
189
193
194+// %1 is whether the loader should be asynchronous or not
195+// %2 is the header height code
190var kOverlayLoaderCode = 'Loader { \n\
196var kOverlayLoaderCode = 'Loader { \n\
191 id: overlayLoader; \n\
197 id: overlayLoader; \n\
192− readonly property real overlayHeight: (fixedHeaderHeight > 0 ? fixedHeaderHeight : headerHeight) + units.gu(2); \n\
198+ readonly property real overlayHeight: %2 + units.gu(2); \n\
193 anchors.fill: artShapeHolder; \n\
199 anchors.fill: artShapeHolder; \n\
194 active: artShapeLoader.active && artShapeLoader.item && artShapeLoader.item.image.status === Image.Ready || false; \n\
200 active: artShapeLoader.active && artShapeLoader.item && artShapeLoader.item.image.status === Image.Ready || false; \n\
195− asynchronous: root.asynchronous; \n\
201+ asynchronous: %1; \n\
196 visible: showHeader && status == Loader.Ready; \n\
202 visible: showHeader && status == Loader.Ready; \n\
197 sourceComponent: UbuntuShapeOverlay { \n\
203 sourceComponent: UbuntuShapeOverlay { \n\
198 id: overlay; \n\
204 id: overlay; \n\
@@ -211,17 +217,19 @@ function kHeaderRowCodeGenerator() {
211 objectName: "outerRow"; \n\
217 objectName: "outerRow"; \n\
212 property real margins: units.gu(1); \n\
218 property real margins: units.gu(1); \n\
213 spacing: margins; \n\
219 spacing: margins; \n\
214− height: root.fixedHeaderHeight != -1 ? root.fixedHeaderHeight : implicitHeight; \n\
220+ %2\
215 anchors { %1 } \n\
221 anchors { %1 } \n\
216 anchors.right: parent.right; \n\
222 anchors.right: parent.right; \n\
217 anchors.margins: margins; \n\
223 anchors.margins: margins; \n\
218 anchors.rightMargin: 0; \n\
224 anchors.rightMargin: 0; \n\
219 data: [ \n\
225 data: [ \n\
220− %2 \n\
226+ %3 \n\
221 ] \n\
227 ] \n\
222 }\n';
228 }\n';
223 var args = Array.prototype.slice.call(arguments);
229 var args = Array.prototype.slice.call(arguments);
230+ var isCardTool = args.shift();
231+ var heightCode = isCardTool ? "" : "height: root.fixedHeaderHeight; \n";
224− var code = kHeaderRowCodeTemplate.arg(args.shift()).arg(args.join(',\n'));
232+ var code = kHeaderRowCodeTemplate.arg(args.shift()).arg(heightCode).arg(args.join(',\n'));
225 return code;
233 return code;
226}
234}
227
235
@@ -242,10 +250,11 @@ function kHeaderContainerCodeGenerator() {
242}
250}
243
251
244// %1 is used as anchors of mascotShapeLoader
252// %1 is used as anchors of mascotShapeLoader
253+// %2 is whether the loader should be asynchronous or not
245var kMascotShapeLoaderCode = 'Loader { \n\
254var kMascotShapeLoaderCode = 'Loader { \n\
246 id: mascotShapeLoader; \n\
255 id: mascotShapeLoader; \n\
247 objectName: "mascotShapeLoader"; \n\
256 objectName: "mascotShapeLoader"; \n\
248− asynchronous: root.asynchronous; \n\
257+ asynchronous: %2; \n\
249 active: mascotImage.status === Image.Ready; \n\
258 active: mascotImage.status === Image.Ready; \n\
250 visible: showHeader && active && status == Loader.Ready; \n\
259 visible: showHeader && active && status == Loader.Ready; \n\
251 width: units.gu(6); \n\
260 width: units.gu(6); \n\
@@ -275,6 +284,7 @@ var kMascotImageCode = 'CroppedImageMinimumSourceSize { \n\
275// %2 is used as color of titleLabel
284// %2 is used as color of titleLabel
276// %3 is used as extra condition for visible of titleLabel
285// %3 is used as extra condition for visible of titleLabel
277// %4 is used as title width
286// %4 is used as title width
287+// %5 is used as horizontal alignment
278var kTitleLabelCode = 'Label { \n\
288var kTitleLabelCode = 'Label { \n\
279 id: titleLabel; \n\
289 id: titleLabel; \n\
280 objectName: "titleLabel"; \n\
290 objectName: "titleLabel"; \n\
@@ -289,7 +299,7 @@ var kTitleLabelCode = 'Label { \n\
289 width: %4; \n\
299 width: %4; \n\
290 text: root.title; \n\
300 text: root.title; \n\
291 font.weight: cardData && cardData["subtitle"] ? Font.DemiBold : Font.Normal; \n\
301 font.weight: cardData && cardData["subtitle"] ? Font.DemiBold : Font.Normal; \n\
292− horizontalAlignment: root.titleAlignment; \n\
302+ horizontalAlignment: %5; \n\
293 }\n';
303 }\n';
294
304
295// %1 is used as extra anchors of emblemIcon
305// %1 is used as extra anchors of emblemIcon
@@ -398,7 +408,7 @@ function sanitizeColor(colorString) {
398 return colorString;
408 return colorString;
399}
409}
400
410
401−function cardString(template, components) {
411+function cardString(template, components, isCardTool) {
402 var code;
412 var code;
403
413
404 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
414 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
@@ -410,16 +420,16 @@ function cardString(template, components) {
410 property string backgroundShapeStyle: "inset"; \n\
420 property string backgroundShapeStyle: "inset"; \n\
411 property real fontScale: 1.0; \n\
421 property real fontScale: 1.0; \n\
412 property var scopeStyle: null; \n\
422 property var scopeStyle: null; \n\
413− property int titleAlignment: Text.AlignLeft; \n\
423+ %2\
414− property int fixedHeaderHeight: -1; \n\
415 property size fixedArtShapeSize: Qt.size(-1, -1); \n\
424 property size fixedArtShapeSize: Qt.size(-1, -1); \n\
416 readonly property string title: cardData && cardData["title"] || ""; \n\
425 readonly property string title: cardData && cardData["title"] || ""; \n\
417− property bool asynchronous: true; \n\
418 property bool showHeader: true; \n\
426 property bool showHeader: true; \n\
419 implicitWidth: childrenRect.width; \n\
427 implicitWidth: childrenRect.width; \n\
420 enabled: %1; \n\
428 enabled: %1; \n\
421 \n'.arg(templateInteractive);
429 \n'.arg(templateInteractive);
422
430
431+ code = code.arg(isCardTool ? "" : "property int fixedHeaderHeight: -1; \n");
432+
423 var hasArt = components["art"] && components["art"]["field"] || false;
433 var hasArt = components["art"] && components["art"]["field"] || false;
424 var hasSummary = components["summary"] || false;
434 var hasSummary = components["summary"] || false;
425 var isConciergeMode = components["art"] && components["art"]["conciergeMode"] || false;
435 var isConciergeMode = components["art"] && components["art"]["conciergeMode"] || false;
@@ -435,6 +445,7 @@ function cardString(template, components) {
435 var hasHeaderRow = hasMascot && hasTitle;
445 var hasHeaderRow = hasMascot && hasTitle;
436 var hasAttributes = hasTitle && components["attributes"] && components["attributes"]["field"] || false;
446 var hasAttributes = hasTitle && components["attributes"] && components["attributes"]["field"] || false;
437 var isAudio = template["quick-preview-type"] === "audio";
447 var isAudio = template["quick-preview-type"] === "audio";
448+ var asynchronous = isCardTool ? "false" : "true";
438
449
439 if (isAudio) {
450 if (isAudio) {
440 // For now we only support audio cards with [optional] art, title, subtitle
451 // For now we only support audio cards with [optional] art, title, subtitle
@@ -468,7 +479,7 @@ function cardString(template, components) {
468 backgroundElements1 = '"%1"'.arg(element1);
479 backgroundElements1 = '"%1"'.arg(element1);
469 }
480 }
470 }
481 }
471− code += kBackgroundLoaderCode.arg(backgroundElements0).arg(backgroundElements1).arg(templateCardBackground);
482+ code += kBackgroundLoaderCode.arg(backgroundElements0).arg(backgroundElements1).arg(asynchronous).arg(templateCardBackground);
472 }
483 }
473
484
474 if (hasArt) {
485 if (hasArt) {
@@ -497,23 +508,31 @@ function cardString(template, components) {
497 if (isNaN(aspectRatio)) {
508 if (isNaN(aspectRatio)) {
498 aspectRatio = 1;
509 aspectRatio = 1;
499 }
510 }
500− var fallback = components["art"] && components["art"]["fallback"] || "";
511+ var fallback = !isCardTool && components["art"] && components["art"]["fallback"] || "";
501 fallback = encodeURI(fallback);
512 fallback = encodeURI(fallback);
502 var fallbackStatusCode = "";
513 var fallbackStatusCode = "";
503 var fallbackURICode = '""';
514 var fallbackURICode = '""';
504 if (fallback !== "") {
515 if (fallback !== "") {
505 // fallbackStatusCode has %6 in it because we want to substitute it for fallbackURICode
516 // fallbackStatusCode has %6 in it because we want to substitute it for fallbackURICode
506− // which in kArtShapeHolderCode is %7
517+ // which in kArtShapeHolderCode is %8
507− fallbackStatusCode += 'onStatusChanged: if (status === Image.Error) source = %7;';
518+ fallbackStatusCode += 'onStatusChanged: if (status === Image.Error) source = %8;';
508 fallbackURICode = 'decodeURI("%1")'.arg(fallback);
519 fallbackURICode = 'decodeURI("%1")'.arg(fallback);
509 }
520 }
510− code += kArtShapeHolderCode.arg(artAnchors).arg(widthCode).arg(heightCode).arg(isConciergeMode ? "false" : "true").arg(aspectRatio).arg(fallbackStatusCode).arg(fallbackURICode);
521+ code += kArtShapeHolderCode.arg(artAnchors)
522+ .arg(widthCode)
523+ .arg(heightCode)
524+ .arg(isConciergeMode ? "false" : "true")
525+ .arg(aspectRatio)
526+ .arg(asynchronous)
527+ .arg(fallbackStatusCode)
528+ .arg(fallbackURICode);
511 } else {
529 } else {
512 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
530 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
513 }
531 }
514
532
515 if (headerAsOverlay) {
533 if (headerAsOverlay) {
534+ var headerHeightCode = isCardTool ? "headerHeight" : "root.fixedHeaderHeight";
516− code += kOverlayLoaderCode;
535+ code += kOverlayLoaderCode.arg(asynchronous).arg(headerHeightCode);
517 }
536 }
518
537
519 var headerVerticalAnchors;
538 var headerVerticalAnchors;
@@ -595,11 +614,11 @@ function cardString(template, components) {
595 }
614 }
596
615
597 if (useMascotShape) {
616 if (useMascotShape) {
598− mascotShapeCode = kMascotShapeLoaderCode.arg(mascotAnchors);
617+ mascotShapeCode = kMascotShapeLoaderCode.arg(mascotAnchors).arg(asynchronous);
599 }
618 }
600
619
601 var mascotImageVisible = useMascotShape ? 'false' : 'showHeader';
620 var mascotImageVisible = useMascotShape ? 'false' : 'showHeader';
602− var fallback = components["mascot"] && components["mascot"]["fallback"] || "";
621+ var fallback = !isCardTool && components["mascot"] && components["mascot"]["fallback"] || "";
603 fallback = encodeURI(fallback);
622 fallback = encodeURI(fallback);
604 var fallbackStatusCode = "";
623 var fallbackStatusCode = "";
605 var fallbackURICode = '""';
624 var fallbackURICode = '""';
@@ -715,9 +734,24 @@ function cardString(template, components) {
715 }
734 }
716 }
735 }
717
736
737+ var titleAlignment = "Text.AlignHCenter";
738+ if (template["card-layout"] === "horizontal"
739+ || typeof components["title"] !== "object"
740+ || components["title"]["align"] === "left") titleAlignment = "Text.AlignLeft";
741+ var keys = ["mascot", "emblem", "subtitle", "attributes", "summary"];
742+ for (var key in keys) {
743+ key = keys[key];
744+ try {
745+ if (typeof components[key] === "string"
746+ || typeof components[key]["field"] === "string") titleAlignment = "Text.AlignLeft";
747+ } catch (e) {
748+ continue;
749+ }
750+ }
751+
718 // code for different elements
752 // code for different elements
719 var titleLabelVisibleExtra = (headerAsOverlay ? '&& overlayLoader.active': '');
753 var titleLabelVisibleExtra = (headerAsOverlay ? '&& overlayLoader.active': '');
720− var titleCode = kTitleLabelCode.arg(titleAnchors).arg(titleColor).arg(titleLabelVisibleExtra).arg(titleWidth);
754+ var titleCode = kTitleLabelCode.arg(titleAnchors).arg(titleColor).arg(titleLabelVisibleExtra).arg(titleWidth).arg(titleAlignment);
721 var subtitleCode;
755 var subtitleCode;
722 var attributesCode;
756 var attributesCode;
723
757
@@ -759,7 +793,7 @@ function cardString(template, components) {
759 if (mascotShapeCode != '') {
793 if (mascotShapeCode != '') {
760 rowCode.unshift(mascotShapeCode);
794 rowCode.unshift(mascotShapeCode);
761 }
795 }
762− code += kHeaderRowCodeGenerator(headerVerticalAnchors + headerLeftAnchor, rowCode)
796+ code += kHeaderRowCodeGenerator(isCardTool, headerVerticalAnchors + headerLeftAnchor, rowCode)
763 } else {
797 } else {
764 code += mascotShapeCode + mascotCode + titleSubtitleCode;
798 code += mascotShapeCode + mascotCode + titleSubtitleCode;
765 }
799 }
@@ -783,9 +817,10 @@ function cardString(template, components) {
783 } else {
817 } else {
784 audioButtonAnchorsFill = 'undefined';
818 audioButtonAnchorsFill = 'undefined';
785 audioButtonWidth = 'height';
819 audioButtonWidth = 'height';
786− audioButtonHeight = '(root.fixedHeaderHeight > 0 ? root.fixedHeaderHeight : headerHeight) + 2 * units.gu(1)';
820+ audioButtonHeight = isCardTool ? 'headerHeight + 2 * units.gu(1)'
821+ : 'root.fixedHeaderHeight + 2 * units.gu(1)';
787 }
822 }
788− code += kAudioButtonCode.arg(audioButtonAnchorsFill).arg(audioButtonWidth).arg(audioButtonHeight);
823+ code += kAudioButtonCode.arg(audioButtonAnchorsFill).arg(audioButtonWidth).arg(audioButtonHeight).arg(asynchronous);
789 }
824 }
790
825
791 if (hasSummary) {
826 if (hasSummary) {
@@ -854,13 +889,13 @@ function cardString(template, components) {
854 return code;
889 return code;
855}
890}
856
891
857−function createCardComponent(parent, template, components, identifier) {
892+function createCardComponent(parent, template, components, isCardTool, identifier) {
858 var imports = 'import QtQuick 2.4; \n\
893 var imports = 'import QtQuick 2.4; \n\
859 import Ubuntu.Components 1.3; \n\
894 import Ubuntu.Components 1.3; \n\
860 import Ubuntu.Settings.Components 0.1; \n\
895 import Ubuntu.Settings.Components 0.1; \n\
861 import Dash 0.1;\n\
896 import Dash 0.1;\n\
862 import Utils 0.1;\n';
897 import Utils 0.1;\n';
863− var card = cardString(template, components);
898+ var card = cardString(template, components, isCardTool);
864 var code = imports + 'Component {\n' + card + '}\n';
899 var code = imports + 'Component {\n' + card + '}\n';
865
900
866 try {
901 try {
plugins/Dash/CardCreatorCache.qml+3−3
@@ -23,16 +23,16 @@ QtObject {
23
23
24 property var cache: new Object();
24 property var cache: new Object();
25
25
26− function getCardComponent(template, components) {
26+ function getCardComponent(template, components, isCardTool) {
27 if (template === undefined || components === undefined)
27 if (template === undefined || components === undefined)
28 return undefined;
28 return undefined;
29
29
30 var tString = JSON.stringify(template);
30 var tString = JSON.stringify(template);
31 var cString = JSON.stringify(components);
31 var cString = JSON.stringify(components);
32− var allString = tString + cString;
32+ var allString = tString + cString + isCardTool;
33 var component = cache[allString];
33 var component = cache[allString];
34 if (component === undefined) {
34 if (component === undefined) {
35− component = CardCreator.createCardComponent(root, template, components, allString);
35+ component = CardCreator.createCardComponent(root, template, components, isCardTool, allString);
36 cache[allString] = component;
36 cache[allString] = component;
37 }
37 }
38 return component;
38 return component;
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/plugin.cpp+6−6
@@ -28,12 +28,12 @@
28static QUrl oauthCleanedUrl(QUrl u)
28static QUrl oauthCleanedUrl(QUrl u)
29{
29{
30 QUrlQuery q(u);
30 QUrlQuery q(u);
31− q.removeQueryItem("oauth_nonce");
31+ q.removeQueryItem(QStringLiteral("oauth_nonce"));
32− q.removeQueryItem("oauth_timestamp");
32+ q.removeQueryItem(QStringLiteral("oauth_timestamp"));
33− q.removeQueryItem("oauth_consumer_key");
33+ q.removeQueryItem(QStringLiteral("oauth_consumer_key"));
34− q.removeQueryItem("oauth_signature_method");
34+ q.removeQueryItem(QStringLiteral("oauth_signature_method"));
35− q.removeQueryItem("oauth_version");
35+ q.removeQueryItem(QStringLiteral("oauth_version"));
36− q.removeQueryItem("oauth_signature");
36+ q.removeQueryItem(QStringLiteral("oauth_signature"));
37 u.setQuery(q);
37 u.setQuery(q);
38 return u;
38 return u;
39}
39}
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/GlobalShortcut/globalshortcutregistry.cpp+4−4
@@ -35,13 +35,13 @@ GlobalShortcutList GlobalShortcutRegistry::shortcuts() const
35
35
36bool GlobalShortcutRegistry::hasShortcut(const QVariant &seq) const
36bool GlobalShortcutRegistry::hasShortcut(const QVariant &seq) const
37{
37{
38− return m_shortcuts.keys().contains(seq);
38+ return m_shortcuts.contains(seq);
39}
39}
40
40
41void GlobalShortcutRegistry::addShortcut(const QVariant &seq, GlobalShortcut *sc)
41void GlobalShortcutRegistry::addShortcut(const QVariant &seq, GlobalShortcut *sc)
42{
42{
43 if (sc) {
43 if (sc) {
44− if (!m_shortcuts.keys().contains(seq)) { // create a new entry
44+ if (!m_shortcuts.contains(seq)) { // create a new entry
45 m_shortcuts.insert(seq, {sc});
45 m_shortcuts.insert(seq, {sc});
46 } else { // append to an existing one
46 } else { // append to an existing one
47 auto shortcuts = m_shortcuts[seq];
47 auto shortcuts = m_shortcuts[seq];
@@ -75,8 +75,8 @@ bool GlobalShortcutRegistry::eventFilter(QObject *obj, QEvent *event)
75
75
76 if (event->type() == QEvent::KeyPress) {
76 if (event->type() == QEvent::KeyPress) {
77 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
77 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
78− QKeySequence seq = QKeySequence(keyEvent->key() + keyEvent->modifiers());
78+ int seq = keyEvent->key() + keyEvent->modifiers();
79− if (m_shortcuts.keys().contains(seq)) {
79+ if (m_shortcuts.contains(seq)) {
80 const auto shortcuts = m_shortcuts.value(seq);
80 const auto shortcuts = m_shortcuts.value(seq);
81 Q_FOREACH(const auto &shortcut, shortcuts) {
81 Q_FOREACH(const auto &shortcut, shortcuts) {
82 if (shortcut) {
82 if (shortcut) {
plugins/IntegratedLightDM/liblightdm/CMakeLists.txt+16−3
@@ -5,13 +5,16 @@ set(LibLightDM_SOURCES
5 UsersModel.cpp
5 UsersModel.cpp
6 GreeterPrivate.cpp
6 GreeterPrivate.cpp
7 UsersModelPrivate.cpp
7 UsersModelPrivate.cpp
8+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
8 ${CMAKE_SOURCE_DIR}/plugins/Utils/qvariantlistmodel.cpp
9 ${CMAKE_SOURCE_DIR}/plugins/Utils/qvariantlistmodel.cpp
9 )
10 )
10
11
11add_library(integratedLightDM STATIC ${LibLightDM_SOURCES})
12add_library(integratedLightDM STATIC ${LibLightDM_SOURCES})
13+add_library(integratedLightDMSession STATIC ${LibLightDM_SOURCES})
12add_library(MockLightDM-demo-shared SHARED ${LibLightDM_SOURCES})
14add_library(MockLightDM-demo-shared SHARED ${LibLightDM_SOURCES})
13
15
14include_directories(
16include_directories(
17+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService
15 ${CMAKE_CURRENT_BINARY_DIR}
18 ${CMAKE_CURRENT_BINARY_DIR}
16 ${GLIB_INCLUDE_DIRS}
19 ${GLIB_INCLUDE_DIRS}
17 ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
20 ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
@@ -22,17 +25,27 @@ target_link_libraries(integratedLightDM
22 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
25 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
23 -lpam
26 -lpam
24)
27)
28+target_link_libraries(integratedLightDMSession
29+ ${GLIB_LIBRARIES}
30+ ${LIBUSERMETRICSOUTPUT_LDFLAGS}
31+ -lpam
32+)
25target_link_libraries(MockLightDM-demo-shared
33target_link_libraries(MockLightDM-demo-shared
26 ${GLIB_LIBRARIES}
34 ${GLIB_LIBRARIES}
27 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
35 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
28 -lpam
36 -lpam
29)
37)
30
38
31−qt5_use_modules(integratedLightDM Concurrent Gui)
39+qt5_use_modules(integratedLightDM Concurrent DBus Gui)
40+qt5_use_modules(integratedLightDMSession Concurrent DBus Gui)
32−qt5_use_modules(MockLightDM-demo-shared Concurrent Gui)
41+qt5_use_modules(MockLightDM-demo-shared Concurrent DBus Gui)
33
42
34−set_target_properties(integratedLightDM PROPERTIES COMPILE_FLAGS -fPIC)
43+set_target_properties(integratedLightDM PROPERTIES
44+ COMPILE_FLAGS "-DSM_BUSNAME=systemBus -fPIC")
45+set_target_properties(integratedLightDMSession PROPERTIES
46+ COMPILE_FLAGS "-DSM_BUSNAME=sessionBus -fPIC")
35set_target_properties(MockLightDM-demo-shared PROPERTIES
47set_target_properties(MockLightDM-demo-shared PROPERTIES
48+ COMPILE_FLAGS "-DSM_BUSNAME=systemBus"
36 OUTPUT_NAME lightdm-qt5-2)
49 OUTPUT_NAME lightdm-qt5-2)
37
50
38install(TARGETS MockLightDM-demo-shared
51install(TARGETS MockLightDM-demo-shared
plugins/IntegratedLightDM/liblightdm/UsersModel.cpp+4−18
@@ -54,24 +54,10 @@ UsersModel::UsersModel(QObject *parent) :
54 roles[ImagePathRole] = "imagePath";
54 roles[ImagePathRole] = "imagePath";
55 setRoleNames(roles);
55 setRoleNames(roles);
56
56
57− // Now modify our mock user backgrounds
57+ connect(d_ptr, &UsersModelPrivate::dataChanged, this, [this](int i) {
58− QDir bgdir = QDir(QStringLiteral("/usr/share/demo-assets/shell/backgrounds/"));
58+ QModelIndex index = createIndex(i, 0);
59− QStringList backgrounds = bgdir.entryList(QDir::Files | QDir::NoDotAndDotDot);
59+ Q_EMIT dataChanged(index, index);
60−
60+ });
61− for (int i = 0, j = 0; i < d->entries.size(); i++) {
62− Entry &entry = d->entries[i];
63− if (entry.background.isNull() && !backgrounds.isEmpty()) {
64− entry.background = bgdir.filePath(backgrounds[j++]);
65− if (j >= backgrounds.length()) {
66− j = 0;
67− }
68− }
69− }
70−}
71−
72−UsersModel::~UsersModel()
73−{
74− delete d_ptr;
75}
61}
76
62
77int UsersModel::rowCount(const QModelIndex &parent) const
63int UsersModel::rowCount(const QModelIndex &parent) const
plugins/IntegratedLightDM/liblightdm/UsersModel.h+1−1
@@ -41,7 +41,7 @@ class Q_DECL_EXPORT UsersModel : public QAbstractListModel
41
41
42public:
42public:
43 explicit UsersModel(QObject *parent = 0);
43 explicit UsersModel(QObject *parent = 0);
44− virtual ~UsersModel();
44+ virtual ~UsersModel() = default;
45
45
46 enum UserModelRoles {NameRole = Qt::UserRole,
46 enum UserModelRoles {NameRole = Qt::UserRole,
47 RealNameRole,
47 RealNameRole,
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+43−9
@@ -18,7 +18,11 @@
18
18
19#include "UsersModelPrivate.h"
19#include "UsersModelPrivate.h"
20
20
21+#include "AccountsServiceDBusAdaptor.h"
22+#include "UsersModel.h"
23+
21#include <glib.h>
24#include <glib.h>
25+#include <QDebug>
22#include <QDir>
26#include <QDir>
23#include <QSettings>
27#include <QSettings>
24#include <QStringList>
28#include <QStringList>
@@ -27,7 +31,9 @@ namespace QLightDM
27{
31{
28
32
29UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
33UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
34+ : QObject(parent),
30− : q_ptr(parent)
35+ q_ptr(parent),
36+ m_service(new AccountsServiceDBusAdaptor(this))
31{
37{
32 QFileInfo demoFile(QDir::homePath() + "/.unity8-greeter-demo");
38 QFileInfo demoFile(QDir::homePath() + "/.unity8-greeter-demo");
33 QString currentUser = g_get_user_name();
39 QString currentUser = g_get_user_name();
@@ -43,15 +49,43 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
43 entries.append({user, name, 0, 0, false, false, 0, 0});
49 entries.append({user, name, 0, 0, false, false, 0, 0});
44 }
50 }
45 } else {
51 } else {
46− // If we were using the actual liblightdm, we could just ask it
52+ entries.append({currentUser, 0, 0, 0, false, false, 0, 0});
47− // for the user's real name. But we aren't. We *should* ask
53+
48− // AccountsService for the real name, like liblightdm does internally,
54+ connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged,
49− // but this is close enough since AS and passwd are always in sync.
55+ this, [this](const QString &user) {
50− QString realName = QString::fromUtf8(g_get_real_name()); // gets name from passwd entry
56+ if (user == entries[0].username) {
51− if (realName == QStringLiteral("Unknown")) { // glib doesn't translate this string
57+ updateName(true);
52− realName.clear();
58+ }
59+ });
60+ updateName(false);
61+ }
62+}
63+
64+void UsersModelPrivate::updateName(bool async)
65+{
66+ auto pendingReply = m_service->getUserPropertyAsync(entries[0].username,
67+ QStringLiteral("org.freedesktop.Accounts.User"),
68+ QStringLiteral("RealName"));
69+ auto *watcher = new QDBusPendingCallWatcher(pendingReply, this);
70+
71+ connect(watcher, &QDBusPendingCallWatcher::finished,
72+ this, [this](QDBusPendingCallWatcher* watcher) {
73+
74+ QDBusPendingReply<QVariant> reply = *watcher;
75+ watcher->deleteLater();
76+ if (reply.isError()) {
77+ qWarning() << "Failed to get 'RealName' property - " << reply.error().message();
78+ return;
79+ }
80+
81+ const QString realName = reply.value().toString();
82+ if (entries[0].real_name != realName) {
83+ entries[0].real_name = realName;
84+ Q_EMIT dataChanged(0);
53 }
85 }
54− entries.append({currentUser, realName, 0, 0, false, false, 0, 0});
86+ });
87+ if (!async) {
88+ watcher->waitForFinished();
55 }
89 }
56}
90}
57
91
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.h+15−3
@@ -19,8 +19,11 @@
19#ifndef UNITY_MOCK_USERSMODEL_PRIVATE_H
19#ifndef UNITY_MOCK_USERSMODEL_PRIVATE_H
20#define UNITY_MOCK_USERSMODEL_PRIVATE_H
20#define UNITY_MOCK_USERSMODEL_PRIVATE_H
21
21
22−#include <QtCore/QList>
22+#include <QList>
23−#include <QtCore/QString>
23+#include <QObject>
24+#include <QString>
25+
26+class AccountsServiceDBusAdaptor;
24
27
25namespace QLightDM
28namespace QLightDM
26{
29{
@@ -39,19 +42,28 @@ public:
39 QString infographic;
42 QString infographic;
40};
43};
41
44
42−class UsersModelPrivate
45+class UsersModelPrivate : public QObject
43{
46{
47+ Q_OBJECT
48+
44public:
49public:
45 explicit UsersModelPrivate(UsersModel *parent = 0);
50 explicit UsersModelPrivate(UsersModel *parent = 0);
46 virtual ~UsersModelPrivate() = default;
51 virtual ~UsersModelPrivate() = default;
47
52
48 QList<Entry> entries;
53 QList<Entry> entries;
49
54
55+Q_SIGNALS:
56+ void dataChanged(int);
57+
50protected:
58protected:
51 UsersModel * const q_ptr;
59 UsersModel * const q_ptr;
52
60
53private:
61private:
54 Q_DECLARE_PUBLIC(UsersModel)
62 Q_DECLARE_PUBLIC(UsersModel)
63+
64+ void updateName(bool async);
65+
66+ AccountsServiceDBusAdaptor *m_service;
55};
67};
56
68
57}
69}
plugins/ScreenGrabber/screengrabber.cpp−2
@@ -46,12 +46,10 @@ ScreenGrabber::ScreenGrabber(QObject *parent)
46
46
47 QDir screenshotsDir;
47 QDir screenshotsDir;
48 if (qEnvironmentVariableIsSet("UNITY_TESTING")) {
48 if (qEnvironmentVariableIsSet("UNITY_TESTING")) {
49− qDebug() << "Using test environment";
50 QTemporaryDir tDir;
49 QTemporaryDir tDir;
51 tDir.setAutoRemove(false);
50 tDir.setAutoRemove(false);
52 screenshotsDir = tDir.path();
51 screenshotsDir = tDir.path();
53 } else {
52 } else {
54− qDebug() << "Using real environment";
55 screenshotsDir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
53 screenshotsDir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
56 }
54 }
57 screenshotsDir.mkpath(QStringLiteral("Screenshots"));
55 screenshotsDir.mkpath(QStringLiteral("Screenshots"));
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+5−7
@@ -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"
@@ -116,7 +114,7 @@ void IndicatorsManager::loadFile(const QFileInfo& file_info)
116 QSettings indicator_settings(file_info.absoluteFilePath(), QSettings::IniFormat, this);
114 QSettings indicator_settings(file_info.absoluteFilePath(), QSettings::IniFormat, this);
117 const QString name = indicator_settings.value(QStringLiteral("Indicator Service/Name")).toString();
115 const QString name = indicator_settings.value(QStringLiteral("Indicator Service/Name")).toString();
118
116
119− if (m_platform.isPC() && name == "indicator-keyboard") {
117+ if (m_platform.isPC() && name == QLatin1String("indicator-keyboard")) {
120 return; // convergence: skip this indicator until it works in Mir
118 return; // convergence: skip this indicator until it works in Mir
121 }
119 }
122
120
@@ -286,14 +284,14 @@ 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("desktop");
294+ new_indicator->setProfile(QStringLiteral("desktop"));
297 } else {
295 } else {
298 new_indicator->setProfile(m_profile);
296 new_indicator->setProfile(m_profile);
299 }
297 }
plugins/Unity/Indicators/rootstateparser.h+1
@@ -23,6 +23,7 @@
23
23
24class UNITYINDICATORS_EXPORT RootStateParser : public ActionStateParser
24class UNITYINDICATORS_EXPORT RootStateParser : public ActionStateParser
25{
25{
26+Q_OBJECT
26public:
27public:
27 RootStateParser(QObject* parent = nullptr);
28 RootStateParser(QObject* parent = nullptr);
28 virtual QVariant toQVariant(GVariant* state) const override;
29 virtual QVariant toQVariant(GVariant* state) const override;
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/desktopfilehandler.cpp+2−2
@@ -146,9 +146,9 @@ QString DesktopFileHandler::icon() const
146 QString iconString = settings.value(QStringLiteral("Icon")).toString();
146 QString iconString = settings.value(QStringLiteral("Icon")).toString();
147 QString pathString = settings.value(QStringLiteral("Path")).toString();
147 QString pathString = settings.value(QStringLiteral("Path")).toString();
148
148
149− if (QFileInfo(iconString).exists()) {
149+ if (QFileInfo::exists(iconString)) {
150 return QFileInfo(iconString).absoluteFilePath();
150 return QFileInfo(iconString).absoluteFilePath();
151− } else if (QFileInfo(pathString + '/' + iconString).exists()) {
151+ } else if (QFileInfo::exists(pathString + '/' + iconString)) {
152 return pathString + '/' + iconString;
152 return pathString + '/' + iconString;
153 }
153 }
154 return "image://theme/" + iconString;
154 return "image://theme/" + iconString;
plugins/Unity/Launcher/launcheritem.cpp+1
@@ -37,6 +37,7 @@ LauncherItem::LauncherItem(const QString &appId, const QString &name, const QStr
37 m_alerting(false),
37 m_alerting(false),
38 m_quickList(new QuickListModel(this))
38 m_quickList(new QuickListModel(this))
39{
39{
40+ Q_ASSERT(parent != nullptr);
40 QuickListEntry nameAction;
41 QuickListEntry nameAction;
41 nameAction.setActionId(QStringLiteral("launch_item"));
42 nameAction.setActionId(QStringLiteral("launch_item"));
42 nameAction.setText(m_name);
43 nameAction.setText(m_name);
plugins/Unity/Launcher/launcheritem.h+1−1
@@ -32,7 +32,7 @@ class LauncherItem: public LauncherItemInterface
32{
32{
33 Q_OBJECT
33 Q_OBJECT
34public:
34public:
35− LauncherItem(const QString &appId, const QString &name, const QString &icon, QObject *parent = 0);
35+ LauncherItem(const QString &appId, const QString &name, const QString &icon, QObject *parent);
36
36
37 QString appId() const override;
37 QString appId() const override;
38 QString name() const override;
38 QString name() const override;
plugins/Unity/Launcher/launchermodel.cpp+15−5
@@ -103,7 +103,7 @@ void LauncherModel::setAlerting(const QString &appId, bool alerting) {
103 LauncherItem *item = m_list.at(index);
103 LauncherItem *item = m_list.at(index);
104 if (!item->focused()) {
104 if (!item->focused()) {
105 item->setAlerting(alerting);
105 item->setAlerting(alerting);
106− Q_EMIT dataChanged(modelIndex, modelIndex, QVector<int>() << RoleAlerting);
106+ Q_EMIT dataChanged(modelIndex, modelIndex, {RoleAlerting});
107 }
107 }
108 }
108 }
109}
109}
@@ -389,7 +389,8 @@ void LauncherModel::countVisibleChanged(const QString &appId, bool countVisible)
389 if (countVisible && desktopFile.isValid()) {
389 if (countVisible && desktopFile.isValid()) {
390 LauncherItem *item = new LauncherItem(appId,
390 LauncherItem *item = new LauncherItem(appId,
391 desktopFile.displayName(),
391 desktopFile.displayName(),
392− desktopFile.icon());
392+ desktopFile.icon(),
393+ this);
393 item->setCountVisible(true);
394 item->setCountVisible(true);
394 beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
395 beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
395 m_list.append(item);
396 m_list.append(item);
@@ -414,10 +415,19 @@ void LauncherModel::refresh()
414 } else {
415 } else {
415 int idx = m_list.indexOf(item);
416 int idx = m_list.indexOf(item);
416 item->setName(desktopFile.displayName());
417 item->setName(desktopFile.displayName());
417− item->setIcon(desktopFile.icon());
418 item->setPinned(item->pinned()); // update pinned text if needed
418 item->setPinned(item->pinned()); // update pinned text if needed
419 item->setRunning(item->running());
419 item->setRunning(item->running());
420− Q_EMIT dataChanged(index(idx), index(idx), {RoleName, RoleIcon, RoleRunning});
420+ Q_EMIT dataChanged(index(idx), index(idx), {RoleName, RoleRunning});
421+
422+ const QString oldIcon = item->icon();
423+ if (oldIcon == desktopFile.icon()) { // same icon file, perhaps different contents, simulate changing the icon name to force reload
424+ item->setIcon(QString());
425+ Q_EMIT dataChanged(index(idx), index(idx), {RoleIcon});
426+ }
427+
428+ // now set the icon for real
429+ item->setIcon(desktopFile.icon());
430+ Q_EMIT dataChanged(index(idx), index(idx), {RoleIcon});
421 }
431 }
422 }
432 }
423
433
@@ -489,7 +499,7 @@ void LauncherModel::alert(const QString &appId)
489 if (idx >= 0) {
499 if (idx >= 0) {
490 LauncherItem *item = m_list.at(idx);
500 LauncherItem *item = m_list.at(idx);
491 setAlerting(item->appId(), true);
501 setAlerting(item->appId(), true);
492− Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleAlerting);
502+ Q_EMIT dataChanged(index(idx), index(idx), {RoleAlerting});
493 }
503 }
494}
504}
495
505
plugins/Unity/Launcher/launchermodel.h+1−1
@@ -38,7 +38,7 @@ class LauncherModel: public LauncherModelInterface
38 Q_OBJECT
38 Q_OBJECT
39
39
40public:
40public:
41− LauncherModel(QObject *parent = 0);
41+ LauncherModel(QObject *parent = nullptr);
42 ~LauncherModel();
42 ~LauncherModel();
43
43
44 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
44 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
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/dbusunitysessionservice.cpp+4−1
@@ -336,6 +336,9 @@ void DBusUnitySessionService::PromptLock()
336
336
337void DBusUnitySessionService::Lock()
337void DBusUnitySessionService::Lock()
338{
338{
339+ // signal u8 to show the lockscreen/greeter
340+ PromptLock();
341+
339 // lock the session using the org.freedesktop.DisplayManager system DBUS service
342 // lock the session using the org.freedesktop.DisplayManager system DBUS service
340 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
343 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
341 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
344 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
@@ -348,7 +351,7 @@ void DBusUnitySessionService::Lock()
348 connect(watcher, &QDBusPendingCallWatcher::finished,
351 connect(watcher, &QDBusPendingCallWatcher::finished,
349 this, [this](QDBusPendingCallWatcher* watcher) {
352 this, [this](QDBusPendingCallWatcher* watcher) {
350
353
351− QDBusPendingReply<QVariant> reply = *watcher;
354+ QDBusPendingReply<void> reply = *watcher;
352 watcher->deleteLater();
355 watcher->deleteLater();
353 if (reply.isError()) {
356 if (reply.isError()) {
354 qWarning() << "Lock call failed" << reply.error().message();
357 qWarning() << "Lock call failed" << reply.error().message();
plugins/Utils/CMakeLists.txt+3−1
@@ -17,12 +17,14 @@ 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
21 windowscreenshotprovider.cpp
22 easingcurve.cpp
22 easingcurve.cpp
23 windowstatestorage.cpp
23 windowstatestorage.cpp
24 timezoneFormatter.cpp
24 timezoneFormatter.cpp
25 inputeventgenerator.cpp
25 inputeventgenerator.cpp
26+ deviceconfigparser.cpp
27+ globalfunctions.cpp
26 plugin.cpp
28 plugin.cpp
27 )
29 )
28
30
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.cppnew file+150
@@ -0,0 +1,150 @@
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 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 "deviceconfigparser.h"
18+
19+#include <QSettings>
20+#include <QFileInfo>
21+#include <QDebug>
22+#include <QStandardPaths>
23+
24+DeviceConfigParser::DeviceConfigParser(QObject *parent): QObject(parent)
25+{
26+ QString path;
27+ Q_FOREACH (const QString &standardPath, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) {
28+ if (QFileInfo(standardPath + "/devices.conf").exists()) {
29+ path = standardPath + "/devices.conf";
30+ break;
31+ }
32+ }
33+
34+ if (path.isEmpty()) {
35+ path = "/etc/ubuntu/devices.conf";
36+ }
37+ qDebug() << "Using" << path << "as device configuration file";
38+ m_config = new QSettings(path, QSettings::IniFormat, this);
39+}
40+
41+QString DeviceConfigParser::name() const
42+{
43+ return m_name;
44+}
45+
46+void DeviceConfigParser::setName(const QString &name)
47+{
48+ if (m_name == name) {
49+ return;
50+ }
51+ m_name = name;
52+ Q_EMIT changed();
53+}
54+
55+Qt::ScreenOrientation DeviceConfigParser::primaryOrientation() const
56+{
57+ return stringToOrientation(readOrientationFromConfig("PrimaryOrientation"), Qt::PrimaryOrientation);
58+}
59+
60+Qt::ScreenOrientations DeviceConfigParser::supportedOrientations() const
61+{
62+ QStringList values = readOrientationsFromConfig("SupportedOrientations");
63+ if (values.isEmpty()) {
64+ return Qt::PortraitOrientation
65+ | Qt::InvertedPortraitOrientation
66+ | Qt::LandscapeOrientation
67+ | Qt::InvertedLandscapeOrientation;
68+ }
69+
70+ Qt::ScreenOrientations ret = Qt::PrimaryOrientation;
71+ Q_FOREACH(const QString &orientationString, values) {
72+ ret |= stringToOrientation(orientationString, Qt::PrimaryOrientation);
73+ }
74+ return ret;
75+}
76+
77+Qt::ScreenOrientation DeviceConfigParser::landscapeOrientation() const
78+{
79+ return stringToOrientation(readOrientationFromConfig("LandscapeOrientation"), Qt::LandscapeOrientation);
80+}
81+
82+Qt::ScreenOrientation DeviceConfigParser::invertedLandscapeOrientation() const
83+{
84+ return stringToOrientation(readOrientationFromConfig("InvertedLandscapeOrientation"), Qt::InvertedLandscapeOrientation);
85+}
86+
87+Qt::ScreenOrientation DeviceConfigParser::portraitOrientation() const
88+{
89+ return stringToOrientation(readOrientationFromConfig("PortraitOrientation"), Qt::PortraitOrientation);
90+}
91+
92+Qt::ScreenOrientation DeviceConfigParser::invertedPortraitOrientation() const
93+{
94+ return stringToOrientation(readOrientationFromConfig("InvertedPortraitOrientation"), Qt::InvertedPortraitOrientation);
95+}
96+
97+QString DeviceConfigParser::category() const
98+{
99+ QStringList supportedValues = {"phone", "tablet", "desktop"};
100+ m_config->beginGroup(m_name);
101+ QString value = m_config->value("Category", "phone").toString();
102+ if (!supportedValues.contains(value)) {
103+ qWarning().nospace().noquote() << "Unknown option \"" << value << "\" in " << m_config->fileName()
104+ << ". Supported options are: " << supportedValues.join(", ") << ".";
105+ return "phone";
106+ }
107+ m_config->endGroup();
108+ return value;
109+}
110+
111+QStringList DeviceConfigParser::readOrientationsFromConfig(const QString &key) const
112+{
113+ m_config->beginGroup(m_name);
114+
115+ QStringList ret;
116+ if (m_config->contains(key)) {
117+ ret = m_config->value(key).toStringList();
118+ }
119+
120+ m_config->endGroup();
121+ return ret;
122+}
123+
124+QString DeviceConfigParser::readOrientationFromConfig(const QString &key) const
125+{
126+ QStringList ret = readOrientationsFromConfig(key);
127+ return ret.count() > 0 ? ret.first() : QString();
128+}
129+
130+Qt::ScreenOrientation DeviceConfigParser::stringToOrientation(const QString &orientationString, Qt::ScreenOrientation defaultValue) const
131+{
132+ if (orientationString == "Landscape") {
133+ return Qt::LandscapeOrientation;
134+ }
135+ if (orientationString == "InvertedLandscape") {
136+ return Qt::InvertedLandscapeOrientation;
137+ }
138+ if (orientationString == "Portrait") {
139+ return Qt::PortraitOrientation;
140+ }
141+ if (orientationString == "InvertedPortrait") {
142+ return Qt::InvertedPortraitOrientation;
143+ }
144+ if (!orientationString.isEmpty()) {
145+ // Some option we don't know. Give some hint on what went wrong.
146+ qWarning().nospace().noquote() << "Unknown option \"" << orientationString << "\" in " << m_config->fileName()
147+ << ". Supported options are: Landscape, InvertedLandscape, Portrait and InvertedPortrait.";
148+ }
149+ return defaultValue;
150+}
plugins/Utils/deviceconfigparser.hnew file+62
@@ -0,0 +1,62 @@
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 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 DEVICECONFIGPARSER_H
18+#define DEVICECONFIGPARSER_H
19+
20+#include <QObject>
21+#include <QSettings>
22+
23+class DeviceConfigParser: public QObject
24+{
25+ Q_OBJECT
26+ Q_PROPERTY(QString name READ name WRITE setName NOTIFY changed)
27+
28+ Q_PROPERTY(Qt::ScreenOrientation primaryOrientation READ primaryOrientation NOTIFY changed)
29+ Q_PROPERTY(Qt::ScreenOrientations supportedOrientations READ supportedOrientations NOTIFY changed)
30+ Q_PROPERTY(Qt::ScreenOrientation landscapeOrientation READ landscapeOrientation NOTIFY changed)
31+ Q_PROPERTY(Qt::ScreenOrientation invertedLandscapeOrientation READ invertedLandscapeOrientation NOTIFY changed)
32+ Q_PROPERTY(Qt::ScreenOrientation portraitOrientation READ portraitOrientation NOTIFY changed)
33+ Q_PROPERTY(Qt::ScreenOrientation invertedPortraitOrientation READ invertedPortraitOrientation NOTIFY changed)
34+ Q_PROPERTY(QString category READ category NOTIFY changed)
35+
36+public:
37+ DeviceConfigParser(QObject *parent = nullptr);
38+
39+ QString name() const;
40+ void setName(const QString &name);
41+
42+ Qt::ScreenOrientation primaryOrientation() const;
43+ Qt::ScreenOrientations supportedOrientations() const;
44+ Qt::ScreenOrientation landscapeOrientation() const;
45+ Qt::ScreenOrientation invertedLandscapeOrientation() const;
46+ Qt::ScreenOrientation portraitOrientation() const;
47+ Qt::ScreenOrientation invertedPortraitOrientation() const;
48+ QString category() const;
49+
50+Q_SIGNALS:
51+ void changed();
52+
53+private:
54+ QString m_name;
55+ QSettings *m_config;
56+
57+ QStringList readOrientationsFromConfig(const QString &key) const;
58+ QString readOrientationFromConfig(const QString &key) const;
59+ Qt::ScreenOrientation stringToOrientation(const QString &orientationString, Qt::ScreenOrientation defaultValue) const;
60+};
61+
62+#endif
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+13−2
@@ -30,13 +30,15 @@
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"
34#include "windowscreenshotprovider.h"
35#include "windowstatestorage.h"
35#include "windowstatestorage.h"
36#include "constants.h"
36#include "constants.h"
37#include "timezoneFormatter.h"
37#include "timezoneFormatter.h"
38#include "applicationsfiltermodel.h"
38#include "applicationsfiltermodel.h"
39#include "inputeventgenerator.h"
39#include "inputeventgenerator.h"
40+#include "deviceconfigparser.h"
41+#include "globalfunctions.h"
40
42
41static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
43static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
42{
44{
@@ -52,6 +54,13 @@ static QObject *createConstants(QQmlEngine *engine, QJSEngine *scriptEngine)
52 return new Constants();
54 return new Constants();
53}
55}
54
56
57+static QObject *createGlobalFunctions(QQmlEngine *engine, QJSEngine *scriptEngine)
58+{
59+ Q_UNUSED(engine)
60+ Q_UNUSED(scriptEngine)
61+ return new GlobalFunctions();
62+}
63+
55void UtilsPlugin::registerTypes(const char *uri)
64void UtilsPlugin::registerTypes(const char *uri)
56{
65{
57 Q_ASSERT(uri == QLatin1String("Utils"));
66 Q_ASSERT(uri == QLatin1String("Utils"));
@@ -60,7 +69,7 @@ void UtilsPlugin::registerTypes(const char *uri)
60 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1, "LimitProxyModel");
69 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1, "LimitProxyModel");
61 qmlRegisterType<UnitySortFilterProxyModelQML>(uri, 0, 1, "UnitySortFilterProxyModel");
70 qmlRegisterType<UnitySortFilterProxyModelQML>(uri, 0, 1, "UnitySortFilterProxyModel");
62 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
71 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
63− qmlRegisterType<WindowKeysFilter>(uri, 0, 1, "WindowKeysFilter");
72+ qmlRegisterType<WindowInputFilter>(uri, 0, 1, "WindowInputFilter");
64 qmlRegisterType<EasingCurve>(uri, 0, 1, "EasingCurve");
73 qmlRegisterType<EasingCurve>(uri, 0, 1, "EasingCurve");
65 qmlRegisterSingletonType<WindowStateStorage>(uri, 0, 1, "WindowStateStorage", createWindowStateStorage);
74 qmlRegisterSingletonType<WindowStateStorage>(uri, 0, 1, "WindowStateStorage", createWindowStateStorage);
66 qmlRegisterType<InputWatcher>(uri, 0, 1, "InputWatcher");
75 qmlRegisterType<InputWatcher>(uri, 0, 1, "InputWatcher");
@@ -70,6 +79,8 @@ void UtilsPlugin::registerTypes(const char *uri)
70 qmlRegisterType<ActiveFocusLogger>(uri, 0, 1, "ActiveFocusLogger");
79 qmlRegisterType<ActiveFocusLogger>(uri, 0, 1, "ActiveFocusLogger");
71 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
80 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
72 qmlRegisterType<InputEventGenerator>(uri, 0, 1, "InputEventGenerator");
81 qmlRegisterType<InputEventGenerator>(uri, 0, 1, "InputEventGenerator");
82+ qmlRegisterType<DeviceConfigParser>(uri, 0, 1, "DeviceConfigParser");
83+ qmlRegisterSingletonType<GlobalFunctions>(uri, 0, 1, "Functions", createGlobalFunctions);
73}
84}
74
85
75void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
86void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
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/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/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+303−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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,23 +15,23 @@ 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-02-17 05:42+0000\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
19+"X-Generator: Launchpad (build 17958)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Cuumita "
23msgstr "Cuumita "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr ""
28msgstr ""
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31msgid "Quit"
31msgid "Quit"
32msgstr "Kat"
32msgstr "Kat"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr ""
36msgstr ""
37
37
@@ -73,77 +73,59 @@ 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:219
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:183
114msgid "Yes"
96msgid "Yes"
115msgstr "Yeey"
97msgstr "Yeey"
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
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:199
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:201
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:210
134msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
135msgid "Restart"
117msgid "Restart"
136msgstr "Wadir-qimbis"
118msgstr "Wadir-qimbis"
137
119
138−#: qml/Components/Lockscreen.qml:245
120+#: qml/Components/Lockscreen.qml:231
139msgid "Return to Call"
121msgid "Return to Call"
140msgstr "Seecol gacis"
122msgstr "Seecol gacis"
141
123
142−#: qml/Components/Lockscreen.qml:245
124+#: qml/Components/Lockscreen.qml:231
143msgid "Emergency Call"
125msgid "Emergency Call"
144msgstr ""
126msgstr ""
145
127
146−#: qml/Components/Lockscreen.qml:277
128+#: qml/Components/Lockscreen.qml:263
147msgid "OK"
129msgid "OK"
148msgstr "Hayya"
130msgstr "Hayya"
149
131
@@ -152,6 +134,8 @@ msgid "Apps may have unsaved data:"
152msgstr ""
134msgstr ""
153
135
154#: qml/Components/ModeSwitchWarningDialog.qml:57
136#: qml/Components/ModeSwitchWarningDialog.qml:57
137+msgctxt ""
138+"Re-dock means connect the device again to an external screen/mouse/keyboard"
155msgid "Re-dock, save your work and close these apps to continue."
139msgid "Re-dock, save your work and close these apps to continue."
156msgstr ""
140msgstr ""
157
141
@@ -171,42 +155,58 @@ msgstr ""
171msgid "Close all"
155msgid "Close all"
172msgstr "Inkih alif"
156msgstr "Inkih alif"
173
157
174−#: qml/Dash/DashPageHeader.qml:266
158+#: qml/Dash/DashPageHeader.qml:337
175msgctxt "Button: Open the Ubuntu Store"
159msgctxt "Button: Open the Ubuntu Store"
176msgid "Store"
160msgid "Store"
177msgstr ""
161msgstr ""
178
162
179−#: qml/Dash/DashPageHeader.qml:273
163+#: qml/Dash/DashPageHeader.qml:344
180msgctxt "Button: Start a search in the current dash scope"
164msgctxt "Button: Start a search in the current dash scope"
181msgid "Search"
165msgid "Search"
182msgstr "Goranto"
166msgstr "Goranto"
183
167
184−#: qml/Dash/DashPageHeader.qml:283
168+#: qml/Dash/DashPageHeader.qml:354
185msgctxt "Button: Show the current dash scope settings"
169msgctxt "Button: Show the current dash scope settings"
186msgid "Settings"
170msgid "Settings"
187msgstr "Massosu"
171msgstr "Massosu"
188
172
189−#: qml/Dash/DashPageHeader.qml:290
173+#: qml/Dash/DashPageHeader.qml:361
190msgid "Remove from Favorites"
174msgid "Remove from Favorites"
191msgstr ""
175msgstr ""
192
176
193−#: qml/Dash/DashPageHeader.qml:290
177+#: qml/Dash/DashPageHeader.qml:361
194msgid "Add to Favorites"
178msgid "Add to Favorites"
195msgstr ""
179msgstr ""
196
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+
197−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
189+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198msgid "See less"
190msgid "See less"
199msgstr ""
191msgstr ""
200
192
201−#: qml/Dash/GenericScopeView.qml:587
193+#: qml/Dash/GenericScopeView.qml:570
202msgid "See all"
194msgid "See all"
203msgstr ""
195msgstr ""
204
196
205−#: qml/Dash/GenericScopeView.qml:649
197+#: qml/Dash/GenericScopeView.qml:627
206msgctxt "Label: Hint for dash search line edit"
198msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
199msgid "Search"
208msgstr "Goranto"
200msgstr "Goranto"
209
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+
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
211msgid "More..."
211msgid "More..."
212msgstr ""
212msgstr ""
@@ -228,7 +228,7 @@ msgstr ""
228msgid "Add a review"
228msgid "Add a review"
229msgstr ""
229msgstr ""
230
230
231−#: qml/Dash/Previews/PreviewSharing.qml:50
231+#: qml/Dash/Previews/PreviewSharing.qml:66
232msgid "Preview Share Item"
232msgid "Preview Share Item"
233msgstr ""
233msgstr ""
234
234
@@ -256,13 +256,13 @@ msgstr "Dabqi"
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:87
259+#: qml/DisabledScreenNotice.qml:104
260msgid ""
260msgid ""
261"Your device is now connected to an external display. Use this screen as a "
261"Your device is now connected to an external display. Use this screen as a "
262−"touch pad to interact with the mouse."
262+"touch pad to interact with the pointer."
263msgstr ""
263msgstr ""
264
264
265−#: qml/Greeter/CoverPage.qml:107
265+#: qml/Greeter/CoverPage.qml:118
266msgid "Unlock"
266msgid "Unlock"
267msgstr ""
267msgstr ""
268
268
@@ -274,11 +274,11 @@ msgstr "Qagis"
274msgid "Tap to unlock"
274msgid "Tap to unlock"
275msgstr ""
275msgstr ""
276
276
277−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
278msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
279msgstr ""
279msgstr ""
280
280
281−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
282msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
283msgstr ""
283msgstr ""
284
284
@@ -303,7 +303,7 @@ msgstr ""
303msgid "Enter %1"
303msgid "Enter %1"
304msgstr "%1 culus"
304msgstr "%1 culus"
305
305
306−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
307msgid "Enter passphrase"
307msgid "Enter passphrase"
308msgstr "Tatur-maxco culus"
308msgstr "Tatur-maxco culus"
309
309
@@ -341,62 +341,62 @@ msgstr ""
341msgid "Conference"
341msgid "Conference"
342msgstr "Koboxu"
342msgstr "Koboxu"
343
343
344−#: qml/Panel/Indicators/MenuItemFactory.qml:753
344+#: qml/Panel/Indicators/MenuItemFactory.qml:761
345msgid "Nothing is playing"
345msgid "Nothing is playing"
346msgstr ""
346msgstr ""
347
347
348−#: qml/Panel/Indicators/MenuItemFactory.qml:882
348+#: qml/Panel/Indicators/MenuItemFactory.qml:890
349#, qt-format
349#, qt-format
350msgid "%1 hour"
350msgid "%1 hour"
351msgid_plural "%1 hours"
351msgid_plural "%1 hours"
352msgstr[0] "%1 saaqata"
352msgstr[0] "%1 saaqata"
353msgstr[1] "%1 saaqata"
353msgstr[1] "%1 saaqata"
354
354
355−#: qml/Panel/Indicators/MenuItemFactory.qml:886
355+#: qml/Panel/Indicators/MenuItemFactory.qml:894
356#, qt-format
356#, qt-format
357msgid "%1 minute"
357msgid "%1 minute"
358msgid_plural "%1 minutes"
358msgid_plural "%1 minutes"
359msgstr[0] "%1 miniti"
359msgstr[0] "%1 miniti"
360msgstr[1] "%1 miniti"
360msgstr[1] "%1 miniti"
361
361
362−#: qml/Panel/Indicators/MenuItemFactory.qml:891
362+#: qml/Panel/Indicators/MenuItemFactory.qml:899
363#, qt-format
363#, qt-format
364msgid "%1 second"
364msgid "%1 second"
365msgid_plural "%1 seconds"
365msgid_plural "%1 seconds"
366msgstr[0] "%1 nammayye"
366msgstr[0] "%1 nammayye"
367msgstr[1] "%1 nammayye"
367msgstr[1] "%1 nammayye"
368
368
369−#: qml/Panel/Indicators/MenuItemFactory.qml:894
369+#: qml/Panel/Indicators/MenuItemFactory.qml:902
370msgid "0 seconds"
370msgid "0 seconds"
371msgstr "0 nammayye"
371msgstr "0 nammayye"
372
372
373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
374−#: qml/Panel/Indicators/MenuItemFactory.qml:896
374+#: qml/Panel/Indicators/MenuItemFactory.qml:904
375#, qt-format
375#, qt-format
376msgid "%1 remaining"
376msgid "%1 remaining"
377msgstr "%1 raaqe"
377msgstr "%1 raaqe"
378
378
379−#: qml/Panel/Indicators/MenuItemFactory.qml:902
379+#: qml/Panel/Indicators/MenuItemFactory.qml:910
380msgid "In queue…"
380msgid "In queue…"
381msgstr ""
381msgstr ""
382
382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:906
383+#: qml/Panel/Indicators/MenuItemFactory.qml:914
384msgid "Downloading"
384msgid "Downloading"
385msgstr "Qulluumah"
385msgstr "Qulluumah"
386
386
387−#: qml/Panel/Indicators/MenuItemFactory.qml:908
387+#: qml/Panel/Indicators/MenuItemFactory.qml:916
388msgid "Paused, tap to resume"
388msgid "Paused, tap to resume"
389msgstr ""
389msgstr ""
390
390
391−#: qml/Panel/Indicators/MenuItemFactory.qml:910
391+#: qml/Panel/Indicators/MenuItemFactory.qml:918
392msgid "Canceled"
392msgid "Canceled"
393msgstr "Bayteh"
393msgstr "Bayteh"
394
394
395−#: qml/Panel/Indicators/MenuItemFactory.qml:912
395+#: qml/Panel/Indicators/MenuItemFactory.qml:920
396msgid "Finished"
396msgid "Finished"
397msgstr "Duudumteh"
397msgstr "Duudumteh"
398
398
399−#: qml/Panel/Indicators/MenuItemFactory.qml:914
399+#: qml/Panel/Indicators/MenuItemFactory.qml:922
400msgid "Failed, tap to retry"
400msgid "Failed, tap to retry"
401msgstr ""
401msgstr ""
402
402
@@ -416,252 +416,352 @@ msgctxt "Button: Call back on phone"
416msgid "Call back"
416msgid "Call back"
417msgstr ""
417msgstr ""
418
418
419−#: qml/Panel/Indicators/ModemInfoItem.qml:105
419+#: qml/Stages/SideStage.qml:76
420−msgid "Unlock SIM"
420+msgid "Drag using 3 fingers any application from one window to the other"
421−msgstr ""
422−
423−#: qml/Panel/Indicators/RoamingIndication.qml:27
424−msgid "Roaming"
425−msgstr ""
426−
427−#: qml/Tutorial/TutorialBottom.qml:28
428−msgid "Open special menus"
429−msgstr ""
430−
431−#: qml/Tutorial/TutorialBottom.qml:29
432−msgid "Swipe up from the bottom edge."
433msgstr ""
421msgstr ""
434
422
435−#: qml/Tutorial/TutorialBottomFinish.qml:24
423+#: qml/Tutorial/TutorialBottom.qml:78
436−msgid "This action does different things for different apps"
424+msgid "Swipe up to add a contact"
437msgstr ""
425msgstr ""
438
426
439−#: qml/Tutorial/TutorialBottomFinish.qml:25
427+#: qml/Tutorial/TutorialBottom.qml:80
440−msgid "Tap here to finish."
428+msgid "Swipe up for favorite calculations"
441msgstr ""
429msgstr ""
442
430
443−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
431+#: qml/Tutorial/TutorialBottom.qml:82
444−#: qml/Tutorial/TutorialRight.qml:144
432+msgid "Swipe up for recent calls"
445−msgid "Tap here to continue."
446msgstr ""
433msgstr ""
447
434
448−#: qml/Tutorial/TutorialLeft.qml:26
435+#: qml/Tutorial/TutorialBottom.qml:84
449−msgid "Open the launcher"
436+msgid "Swipe up to create a message"
450msgstr ""
437msgstr ""
451
438
452−#: qml/Tutorial/TutorialLeft.qml:27
439+#: qml/Tutorial/TutorialBottom.qml:85
453−msgid "Short swipe from the left edge."
440+msgid "Swipe up to manage the app"
454msgstr ""
441msgstr ""
455
442
456−#: qml/Tutorial/TutorialLeftFinish.qml:24
443+#: qml/Tutorial/TutorialLeft.qml:47
457−msgid "These are the shortcuts to favorite apps"
444+msgid "Swipe from the left edge to open the launcher"
458msgstr ""
445msgstr ""
459
446
460−#: qml/Tutorial/TutorialPage.qml:178
447+#: qml/Tutorial/TutorialLeftLong.qml:47
461−msgid "You almost got it!"
448+msgid "Long swipe from the left edge to open the Today scope"
462msgstr ""
449msgstr ""
463
450
464−#: qml/Tutorial/TutorialPage.qml:195
451+#: qml/Tutorial/TutorialRight.qml:54
465−msgid "Try again."
452+msgid "Hover your mouse on the right edge to view your open apps"
466msgstr ""
453msgstr ""
467
454
468−#: qml/Tutorial/TutorialRight.qml:31
455+#: qml/Tutorial/TutorialRight.qml:55
469−msgid "To view open apps"
456+msgid "Short or long swipe from the right edge to view your open apps"
470msgstr ""
457msgstr ""
471
458
472−#: qml/Tutorial/TutorialRight.qml:32
459+#: qml/Tutorial/TutorialTop.qml:53
473−msgid "Long swipe from the right edge."
460+msgid "Swipe from the top right edge to open the notification bar"
474msgstr ""
461msgstr ""
475
462
476−#: qml/Tutorial/TutorialRight.qml:122
463+#: qml/Tutorial/TutorialTop.qml:54
477−msgid "View all your running tasks."
464+msgid "Swipe from the top edge to open the notification bar"
478msgstr ""
465msgstr ""
479
466
480−#: qml/Wizard/Page.qml:89
467+#: qml/Wizard/Page.qml:54
481msgctxt "Button: Go back one page in the Wizard"
468msgctxt "Button: Go back one page in the Wizard"
482msgid "Back"
469msgid "Back"
483msgstr "Derre"
470msgstr "Derre"
484
471
485#: qml/Wizard/Pages/10-welcome.qml:27
472#: qml/Wizard/Pages/10-welcome.qml:27
486−msgid "Hi!"
473+msgid "Language"
487−msgstr "Nagaale!"
474+msgstr ""
488
475
489−#: qml/Wizard/Pages/10-welcome.qml:44
476+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
490−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"
491msgstr ""
483msgstr ""
492
484
493−#: qml/Wizard/Pages/10-welcome.qml:52
485+#: qml/Wizard/Pages/30-wifi.qml:29
494−msgid "Let’s get started."
486+msgid "Connect to Wi‑Fi"
495−msgstr "Hayya qimbisnay."
487+msgstr ""
496
488
497−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
489+#: qml/Wizard/Pages/30-wifi.qml:130
498−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
490+msgid "Connected"
499−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
500−#: qml/Wizard/Pages/passwd-set.qml:90
501−msgid "Continue"
502−msgstr "Tatur"
491+msgstr ""
503
492
504−#: qml/Wizard/Pages/20-sim.qml:25
493+#: qml/Wizard/Pages/30-wifi.qml:163
505−msgid "Add a SIM card and restart your device"
494+msgid "Available Wi-Fi networks"
506msgstr ""
495msgstr ""
507
496
508−#: qml/Wizard/Pages/20-sim.qml:59
497+#: qml/Wizard/Pages/30-wifi.qml:164
509−msgid "Without it, you won’t be able to make calls or use text messaging."
498+msgid "No available Wi-Fi networks"
510msgstr ""
499msgstr ""
511
500
512−#: 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
513msgid "Skip"
503msgid "Skip"
514msgstr "Kaqit"
504msgstr "Kaqit"
515
505
516−#: qml/Wizard/Pages/30-passwd-type.qml:39
506+#: qml/Wizard/Pages/40-location.qml:27
517−msgid "Lock security"
507+msgid "Location Services"
518msgstr ""
508msgstr ""
519
509
520−#: qml/Wizard/Pages/30-passwd-type.qml:79
510+#: qml/Wizard/Pages/40-location.qml:83
521−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)"
522msgstr ""
514msgstr ""
523
515
524−#: qml/Wizard/Pages/30-passwd-type.qml:102
516+#: qml/Wizard/Pages/40-location.qml:105
525−msgctxt "Label: Type of security method"
517+#, qt-format
526−msgid "Swipe"
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"
527−msgstr "Uysuttuc"
524+msgstr ""
528
525
529−#: qml/Wizard/Pages/30-passwd-type.qml:103
526+#: qml/Wizard/Pages/40-location.qml:160
530−msgctxt "Label: Description of security method"
527+msgid "GPS only"
531−msgid "No security"
532msgstr ""
528msgstr ""
533
529
534−#: qml/Wizard/Pages/30-passwd-type.qml:105
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"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/60-account.qml:24
547+msgid "Personalize Your Device"
548+msgstr ""
549+
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
535msgctxt "Label: Type of security method"
559msgctxt "Label: Type of security method"
536−msgid "Passcode"
560+msgid "Create new password"
537msgstr ""
561msgstr ""
538
562
539−#: qml/Wizard/Pages/30-passwd-type.qml:106
563+#: qml/Wizard/Pages/70-passwd-type.qml:103
540−msgctxt "Label: Description of security method"
564+msgctxt "Label: Type of security method"
541−msgid "4 digits only"
565+msgid "Create passcode (numbers only)"
542msgstr ""
566msgstr ""
543
567
544−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
545msgctxt "Label: Type of security method"
569msgctxt "Label: Type of security method"
546−msgid "Passphrase"
570+msgid "No lock code"
547msgstr ""
571msgstr ""
548
572
549−#: qml/Wizard/Pages/30-passwd-type.qml:109
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
550−msgctxt "Label: Description of security method"
574+msgid "Privacy Policy"
551−msgid "Numbers and letters"
552msgstr ""
575msgstr ""
553
576
554−#: qml/Wizard/Pages/40-wifi.qml:29
577+#: qml/Wizard/Pages/75-report-check.qml:26
555−msgid "Connect to Wi‑Fi"
578+msgid "Help Us Improve"
556msgstr ""
579msgstr ""
557
580
558−#: qml/Wizard/Pages/40-wifi.qml:168
581+#: qml/Wizard/Pages/75-report-check.qml:59
559−msgid "Available networks…"
582+msgid "Improve system performance by sending us crashes and error reports."
560msgstr ""
583msgstr ""
561
584
562−#: qml/Wizard/Pages/40-wifi.qml:169
585+#: qml/Wizard/Pages/75-report-check.qml:60
563−msgid "No available networks."
586+msgid "Privacy policy"
564msgstr ""
587msgstr ""
565
588
566−#: qml/Wizard/Pages/50-location.qml:27
589+#: qml/Wizard/Pages/80-finished.qml:89
567−msgid "Location"
590+msgid "Welcome to Ubuntu"
568msgstr ""
591msgstr ""
569
592
570−#: qml/Wizard/Pages/50-location.qml:62
593+#: qml/Wizard/Pages/80-finished.qml:104
571−msgid "Let the phone detect your location:"
594+msgid "You are ready to use your device now"
572msgstr ""
595msgstr ""
573
596
574−#: qml/Wizard/Pages/50-location.qml:69
597+#: qml/Wizard/Pages/80-finished.qml:124
575−msgid "Using GPS only (less accurate)"
598+msgid "Get Started"
576msgstr ""
599msgstr ""
577
600
578−#: qml/Wizard/Pages/50-location.qml:86
601+#: qml/Wizard/Pages/here-terms.qml:25
579−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
602+msgid "Terms & Conditions"
603+msgstr ""
604+
605+#: qml/Wizard/Pages/here-terms.qml:69
606+msgid "Your device uses positioning technologies provided by HERE."
580msgstr ""
607msgstr ""
581
608
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
609+#: qml/Wizard/Pages/here-terms.qml:81
584msgid ""
610msgid ""
585−"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 "
586−"conditions</a>."
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
587msgstr ""
614msgstr ""
588
615
589−#: qml/Wizard/Pages/50-location.qml:112
616+#: qml/Wizard/Pages/here-terms.qml:93
590−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."
591msgstr ""
620msgstr ""
592
621
593−#: qml/Wizard/Pages/50-location.qml:124
622+#: qml/Wizard/Pages/here-terms.qml:106
594−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."
595msgstr ""
625msgstr ""
596
626
597−#: qml/Wizard/Pages/60-reporting.qml:26
627+#: qml/Wizard/Pages/here-terms.qml:107
598−msgid "Improving your experience"
628+msgid "Service Terms"
599msgstr ""
629msgstr ""
600
630
601−#: qml/Wizard/Pages/60-reporting.qml:46
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
602−msgid ""
633+msgid "Confirm passcode"
603−"Your phone is set up to automatically report errors to Canonical and its "
604−"partners, the makers of the operating system."
605msgstr ""
634msgstr ""
606
635
607−#: qml/Wizard/Pages/60-reporting.qml:53
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
608−msgid ""
637+msgid "Incorrect passcode."
609−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
610−"Privacy</b>"
611msgstr ""
638msgstr ""
612
639
613−#: qml/Wizard/Pages/80-finished.qml:24
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
614−msgid "All done"
641+msgctxt "Enter the passcode again"
642+msgid "Please re-enter."
615msgstr ""
643msgstr ""
616
644
617−#: qml/Wizard/Pages/80-finished.qml:39
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
618−msgid "Nice work!"
646+msgid "Lock Screen Passcode"
619msgstr ""
647msgstr ""
620
648
621−#: qml/Wizard/Pages/80-finished.qml:46
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
622−msgid "Your device is now ready to use."
650+msgid "Enter 4 numbers to setup your passcode"
623msgstr ""
651msgstr ""
624
652
625−#: qml/Wizard/Pages/80-finished.qml:53
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
626−msgid "Finish"
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
627msgstr ""
656msgstr ""
628
657
629−#: qml/Wizard/Pages/here-terms.qml:27
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
630−msgid "Terms & Conditions"
659+msgid "Passcode too short"
631msgstr ""
660msgstr ""
632
661
633−#: qml/Wizard/Pages/passwd-confirm.qml:49
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
634−msgid "Confirm passphrase"
663+msgid "Passcodes match"
635msgstr ""
664msgstr ""
636
665
637−#: qml/Wizard/Pages/passwd-confirm.qml:50
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
638−msgid "Confirm passcode"
667+msgid "Passcodes do not match"
639msgstr ""
668msgstr ""
640
669
641−#: qml/Wizard/Pages/passwd-confirm.qml:53
670+#: qml/Wizard/Pages/passcode-set.qml:62
642−#: qml/Wizard/Pages/passwd-confirm.qml:54
671+msgid "Passcode must be 4 characters long"
643−msgid "Please try again."
644msgstr ""
672msgstr ""
645
673
646−#: qml/Wizard/Pages/passwd-set.qml:61
674+#: qml/Wizard/Pages/password-set.qml:30
647−msgid "Choose your passcode"
675+msgid "Lock Screen Password"
648msgstr ""
676msgstr ""
649
677
650−#: qml/Wizard/Pages/passwd-set.qml:68
678+#: qml/Wizard/Pages/password-set.qml:61
651−msgid "Passphrase must be 4 characters long"
679+msgid "Enter at least 8 characters"
652msgstr ""
680msgstr ""
653
681
654−#. Translators: This is the arrow for "Back" buttons
682+#: qml/Wizard/Pages/password-set.qml:73
655−#: qml/Wizard/StackButton.qml:39
656−#, qt-format
657−msgid "〈 %1"
683+msgid "Choose password"
658msgstr ""
684msgstr ""
659
685
660−#. Translators: This is the arrow for "Forward" buttons
686+#: qml/Wizard/Pages/password-set.qml:103
661−#: qml/Wizard/StackButton.qml:42
687+msgid "Confirm password"
662−#, qt-format
688+msgstr ""
663−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"
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+
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"
664msgstr ""
732msgstr ""
665
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+
666#~ msgid "Welcome to your Ubuntu phone."
760#~ msgid "Welcome to your Ubuntu phone."
667#~ 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+511−259
@@ -7,31 +7,31 @@ 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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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-02-17 05:42+0000\n"
18+"X-Launchpad-Export-Date: 2016-03-25 05:54+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
19+"X-Generator: Launchpad (build 17967)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "የ መግቢያ ቃል: "
23msgstr "የ መግቢያ ቃል: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "አቋራጭ ማጣበቂያ"
28msgstr "አቋራጭ ማጣበቂያ"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31msgid "Quit"
31msgid "Quit"
32msgstr "ማጥፊያ"
32msgstr "ማጥፊያ"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "አቋራጭ መለያያ"
36msgstr "አቋራጭ መለያያ"
37
37
@@ -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:219
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:183
114msgid "Yes"
96msgid "Yes"
115msgstr "አዎ"
97msgstr "አዎ"
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
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:199
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,25 +109,25 @@ msgstr ""
127"በእርግጥ ሐይሉን ማጥፋት\n"
109"በእርግጥ ሐይሉን ማጥፋት\n"
128"ይፈልጋሉ?"
110"ይፈልጋሉ?"
129
111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:201
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:210
136msgctxt "Button: Restart the system"
118msgctxt "Button: Restart the system"
137msgid "Restart"
119msgid "Restart"
138msgstr "እንደገና ማስጀመሪያ"
120msgstr "እንደገና ማስጀመሪያ"
139
121
140−#: qml/Components/Lockscreen.qml:245
122+#: qml/Components/Lockscreen.qml:231
141msgid "Return to Call"
123msgid "Return to Call"
142msgstr "ወደ ጥሪ መመለሻ"
124msgstr "ወደ ጥሪ መመለሻ"
143
125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145msgid "Emergency Call"
127msgid "Emergency Call"
146msgstr "የ ድንገተኛ ጥሪ"
128msgstr "የ ድንገተኛ ጥሪ"
147
129
148−#: qml/Components/Lockscreen.qml:277
130+#: qml/Components/Lockscreen.qml:263
149msgid "OK"
131msgid "OK"
150msgstr "እሺ"
132msgstr "እሺ"
151
133
@@ -154,6 +136,8 @@ msgid "Apps may have unsaved data:"
154msgstr "መተግበሪያው ያልተቀመጠ ዳታ ይዟል:"
136msgstr "መተግበሪያው ያልተቀመጠ ዳታ ይዟል:"
155
137
156#: qml/Components/ModeSwitchWarningDialog.qml:57
138#: qml/Components/ModeSwitchWarningDialog.qml:57
139+msgctxt ""
140+"Re-dock means connect the device again to an external screen/mouse/keyboard"
157msgid "Re-dock, save your work and close these apps to continue."
141msgid "Re-dock, save your work and close these apps to continue."
158msgstr "እንደገና-ማሳረፊያ: ስራዎትን ያስቀምጡ እና ይዝጉ መተግበሪያው እንዲቀጥል"
142msgstr "እንደገና-ማሳረፊያ: ስራዎትን ያስቀምጡ እና ይዝጉ መተግበሪያው እንዲቀጥል"
159
143
@@ -173,42 +157,58 @@ msgstr "አሁን እንደገና መገናኛ!"
173msgid "Close all"
157msgid "Close all"
174msgstr "ሁሉንም መዝጊያ"
158msgstr "ሁሉንም መዝጊያ"
175
159
176−#: qml/Dash/DashPageHeader.qml:266
160+#: qml/Dash/DashPageHeader.qml:337
177msgctxt "Button: Open the Ubuntu Store"
161msgctxt "Button: Open the Ubuntu Store"
178msgid "Store"
162msgid "Store"
179msgstr "ማስቀመጫ"
163msgstr "ማስቀመጫ"
180
164
181−#: qml/Dash/DashPageHeader.qml:273
165+#: qml/Dash/DashPageHeader.qml:344
182msgctxt "Button: Start a search in the current dash scope"
166msgctxt "Button: Start a search in the current dash scope"
183msgid "Search"
167msgid "Search"
184msgstr "መፈለጊያ"
168msgstr "መፈለጊያ"
185
169
186−#: qml/Dash/DashPageHeader.qml:283
170+#: qml/Dash/DashPageHeader.qml:354
187msgctxt "Button: Show the current dash scope settings"
171msgctxt "Button: Show the current dash scope settings"
188msgid "Settings"
172msgid "Settings"
189msgstr "ማሰናጃዎች"
173msgstr "ማሰናጃዎች"
190
174
191−#: qml/Dash/DashPageHeader.qml:290
175+#: qml/Dash/DashPageHeader.qml:361
192msgid "Remove from Favorites"
176msgid "Remove from Favorites"
193msgstr "ከምወዳቸው ማስወገጃ"
177msgstr "ከምወዳቸው ማስወገጃ"
194
178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196msgid "Add to Favorites"
180msgid "Add to Favorites"
197msgstr "ወደምወዳቸው መጨመሪያ"
181msgstr "ወደምወዳቸው መጨመሪያ"
198
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+
199−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
191+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
200msgid "See less"
192msgid "See less"
201msgstr "አነስተኛ መመልከቻ"
193msgstr "አነስተኛ መመልከቻ"
202
194
203−#: qml/Dash/GenericScopeView.qml:587
195+#: qml/Dash/GenericScopeView.qml:570
204msgid "See all"
196msgid "See all"
205msgstr "ሁሉንም መመልከቻ"
197msgstr "ሁሉንም መመልከቻ"
206
198
207−#: qml/Dash/GenericScopeView.qml:649
199+#: qml/Dash/GenericScopeView.qml:627
208msgctxt "Label: Hint for dash search line edit"
200msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
201msgid "Search"
210msgstr "መፈለጊያ"
202msgstr "መፈለጊያ"
211
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+
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
213msgid "More..."
213msgid "More..."
214msgstr "ተጨማሪ..."
214msgstr "ተጨማሪ..."
@@ -230,7 +230,7 @@ msgstr "ለዚህ ደረጃ ይስጡ"
230msgid "Add a review"
230msgid "Add a review"
231msgstr "ግምገማ መጨመሪያ"
231msgstr "ግምገማ መጨመሪያ"
232
232
233−#: qml/Dash/Previews/PreviewSharing.qml:50
233+#: qml/Dash/Previews/PreviewSharing.qml:66
234msgid "Preview Share Item"
234msgid "Preview Share Item"
235msgstr "የሚካፈሉትን እቃ ቅድመ እይታ"
235msgstr "የሚካፈሉትን እቃ ቅድመ እይታ"
236
236
@@ -258,14 +258,13 @@ msgstr "ቤት"
258msgid "Also installed"
258msgid "Also installed"
259msgstr "እንዲሁም የተገጠሙ"
259msgstr "እንዲሁም የተገጠሙ"
260
260
261−#: qml/DisabledScreenNotice.qml:87
261+#: qml/DisabledScreenNotice.qml:104
262msgid ""
262msgid ""
263"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 "
264−"touch pad to interact with the mouse."
264+"touch pad to interact with the pointer."
265−msgstr ""
266−"የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ ከ አይጥ ጋር ተባብሮ ይሰራል"
265+msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ መጠቀሚያ"
267
266
268−#: qml/Greeter/CoverPage.qml:107
267+#: qml/Greeter/CoverPage.qml:118
269msgid "Unlock"
268msgid "Unlock"
270msgstr "መክፈቻ"
269msgstr "መክፈቻ"
271
270
@@ -277,11 +276,11 @@ msgstr "እንደገና ይሞክሩ"
277msgid "Tap to unlock"
276msgid "Tap to unlock"
278msgstr "ለመክፈት መታ ያድርጉ"
277msgstr "ለመክፈት መታ ያድርጉ"
279
278
280−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
281msgid "Sorry, incorrect passphrase."
280msgid "Sorry, incorrect passphrase."
282msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
281msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
283
282
284−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
285msgid "Sorry, incorrect passcode."
284msgid "Sorry, incorrect passcode."
286msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
285msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
287
286
@@ -310,7 +309,7 @@ msgstr ""
310msgid "Enter %1"
309msgid "Enter %1"
311msgstr "ማስገቢያ %1"
310msgstr "ማስገቢያ %1"
312
311
313−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
312+#: qml/Greeter/NarrowView.qml:117
314msgid "Enter passphrase"
313msgid "Enter passphrase"
315msgstr "የ ማለፊያ ሀረግ ያስገቡ"
314msgstr "የ ማለፊያ ሀረግ ያስገቡ"
316
315
@@ -348,62 +347,62 @@ msgstr "ወደ ጥሪው ለመመለስ መታ ያድርጉ..."
348msgid "Conference"
347msgid "Conference"
349msgstr "ስብሰባ"
348msgstr "ስብሰባ"
350
349
351−#: qml/Panel/Indicators/MenuItemFactory.qml:753
350+#: qml/Panel/Indicators/MenuItemFactory.qml:761
352msgid "Nothing is playing"
351msgid "Nothing is playing"
353msgstr "ምንም አይጫወትም"
352msgstr "ምንም አይጫወትም"
354
353
355−#: qml/Panel/Indicators/MenuItemFactory.qml:882
354+#: qml/Panel/Indicators/MenuItemFactory.qml:890
356#, qt-format
355#, qt-format
357msgid "%1 hour"
356msgid "%1 hour"
358msgid_plural "%1 hours"
357msgid_plural "%1 hours"
359msgstr[0] "%1 ሰአት"
358msgstr[0] "%1 ሰአት"
360msgstr[1] "%1 ሰአቶች"
359msgstr[1] "%1 ሰአቶች"
361
360
362−#: qml/Panel/Indicators/MenuItemFactory.qml:886
361+#: qml/Panel/Indicators/MenuItemFactory.qml:894
363#, qt-format
362#, qt-format
364msgid "%1 minute"
363msgid "%1 minute"
365msgid_plural "%1 minutes"
364msgid_plural "%1 minutes"
366msgstr[0] "%1 ደቂቃ"
365msgstr[0] "%1 ደቂቃ"
367msgstr[1] "%1 ደቂቃዎች"
366msgstr[1] "%1 ደቂቃዎች"
368
367
369−#: qml/Panel/Indicators/MenuItemFactory.qml:891
368+#: qml/Panel/Indicators/MenuItemFactory.qml:899
370#, qt-format
369#, qt-format
371msgid "%1 second"
370msgid "%1 second"
372msgid_plural "%1 seconds"
371msgid_plural "%1 seconds"
373msgstr[0] "%1 ሰከንድ"
372msgstr[0] "%1 ሰከንድ"
374msgstr[1] "%1 ሰከንዶች"
373msgstr[1] "%1 ሰከንዶች"
375
374
376−#: qml/Panel/Indicators/MenuItemFactory.qml:894
375+#: qml/Panel/Indicators/MenuItemFactory.qml:902
377msgid "0 seconds"
376msgid "0 seconds"
378msgstr "0 ሰከንዶች"
377msgstr "0 ሰከንዶች"
379
378
380#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
379#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
381−#: qml/Panel/Indicators/MenuItemFactory.qml:896
380+#: qml/Panel/Indicators/MenuItemFactory.qml:904
382#, qt-format
381#, qt-format
383msgid "%1 remaining"
382msgid "%1 remaining"
384msgstr "%1 የቀረው"
383msgstr "%1 የቀረው"
385
384
386−#: qml/Panel/Indicators/MenuItemFactory.qml:902
385+#: qml/Panel/Indicators/MenuItemFactory.qml:910
387msgid "In queue…"
386msgid "In queue…"
388msgstr "ወረፋ በመጠበቅ ላይ…"
387msgstr "ወረፋ በመጠበቅ ላይ…"
389
388
390−#: qml/Panel/Indicators/MenuItemFactory.qml:906
389+#: qml/Panel/Indicators/MenuItemFactory.qml:914
391msgid "Downloading"
390msgid "Downloading"
392msgstr "በማውረድ ላይ"
391msgstr "በማውረድ ላይ"
393
392
394−#: qml/Panel/Indicators/MenuItemFactory.qml:908
393+#: qml/Panel/Indicators/MenuItemFactory.qml:916
395msgid "Paused, tap to resume"
394msgid "Paused, tap to resume"
396msgstr "ማስቆሚያ: ለመቀጠል መታ ያድርጉ"
395msgstr "ማስቆሚያ: ለመቀጠል መታ ያድርጉ"
397
396
398−#: qml/Panel/Indicators/MenuItemFactory.qml:910
397+#: qml/Panel/Indicators/MenuItemFactory.qml:918
399msgid "Canceled"
398msgid "Canceled"
400msgstr "ተሰርዟል"
399msgstr "ተሰርዟል"
401
400
402−#: qml/Panel/Indicators/MenuItemFactory.qml:912
401+#: qml/Panel/Indicators/MenuItemFactory.qml:920
403msgid "Finished"
402msgid "Finished"
404msgstr "ጨርሷል"
403msgstr "ጨርሷል"
405
404
406−#: qml/Panel/Indicators/MenuItemFactory.qml:914
405+#: qml/Panel/Indicators/MenuItemFactory.qml:922
407msgid "Failed, tap to retry"
406msgid "Failed, tap to retry"
408msgstr "አልተቻለም: እንደገና ለመሞከር መታ ያድርጉ"
407msgstr "አልተቻለም: እንደገና ለመሞከር መታ ያድርጉ"
409
408
@@ -423,255 +422,326 @@ msgctxt "Button: Call back on phone"
423msgid "Call back"
422msgid "Call back"
424msgstr "መልሶ መደወያ"
423msgstr "መልሶ መደወያ"
425
424
426−#: qml/Panel/Indicators/ModemInfoItem.qml:105
425+#: qml/Stages/SideStage.qml:76
427−msgid "Unlock SIM"
426+msgid "Drag using 3 fingers any application from one window to the other"
428−msgstr "ሲም መክፈቻ"
427+msgstr "መጎተቻ 3 ጣቶች በ መጠቀም ማንኛውንም መተግበሪያ ከ አንድ መስኮት ወደ ሌላ"
429−
430−#: qml/Panel/Indicators/RoamingIndication.qml:27
431−msgid "Roaming"
432−msgstr "ማዘዋወሪያ"
433
428
434−#: qml/Tutorial/TutorialBottom.qml:28
429+#: qml/Tutorial/TutorialBottom.qml:78
435−msgid "Open special menus"
430+msgid "Swipe up to add a contact"
436−msgstr "የተለዩ ዝርዝሮች መክፈቻ"
431+msgstr "ወደ ላይ ይጥረጉ ግንኙነት ለ መጨመር"
437
432
438−#: qml/Tutorial/TutorialBottom.qml:29
433+#: qml/Tutorial/TutorialBottom.qml:80
439−msgid "Swipe up from the bottom edge."
434+msgid "Swipe up for favorite calculations"
440−msgstr "ከ ታች ጠርዝ በኩል ወደ ላይ ይጥረጉ"
435+msgstr "ወደ ላይ ይጥረጉ የሚወዱትን ለማስላት"
441
436
442−#: qml/Tutorial/TutorialBottomFinish.qml:24
437+#: qml/Tutorial/TutorialBottom.qml:82
443−msgid "This action does different things for different apps"
438+msgid "Swipe up for recent calls"
444−msgstr "ይህ ተግባር ለተለያዩ መተግበሪያዎች የተለያየ ነገር ይሰራል"
439+msgstr "ወደ ላይ ይጥረጉ ለ ቅርብ ጊዜ ጥሪዎች"
445
440
446−#: qml/Tutorial/TutorialBottomFinish.qml:25
441+#: qml/Tutorial/TutorialBottom.qml:84
447−msgid "Tap here to finish."
442+msgid "Swipe up to create a message"
448−msgstr "እዚህ መታ ይድርጉ ለመጨረስ"
443+msgstr "ወደ ላይ ይጥረጉ መልእክት ለ መፍጠር"
449
444
450−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
445+#: qml/Tutorial/TutorialBottom.qml:85
451−#: qml/Tutorial/TutorialRight.qml:144
446+msgid "Swipe up to manage the app"
452−msgid "Tap here to continue."
447+msgstr "ወደ ላይ ይጥረጉ መተግበሪያ ለማስተዳደር"
453−msgstr "እዚህ መታ ይድርጉ ለመቀጠል"
454
448
455−#: qml/Tutorial/TutorialLeft.qml:26
449+#: qml/Tutorial/TutorialLeft.qml:47
456−msgid "Open the launcher"
450+msgid "Swipe from the left edge to open the launcher"
457−msgstr "ማስጀመሪያውን መክፈቻ"
451+msgstr "ከ ግራ ጠርዝ በኩል ይጥረጉ ማስጀመሪያውን ለ መክፈት"
458
452
459−#: qml/Tutorial/TutorialLeft.qml:27
453+#: qml/Tutorial/TutorialLeftLong.qml:47
460−msgid "Short swipe from the left edge."
454+msgid "Long swipe from the left edge to open the Today scope"
461−msgstr "ከ ግራ ጠርዝ በኩል በትንሹ ይጥረጉ"
455+msgstr "በ ረጅሙ ከ ግራ ጠርዝ በኩል ይጥረጉ የ ዛሬን ክልል ለ መክፈት"
462
456
463−#: qml/Tutorial/TutorialLeftFinish.qml:24
457+#: qml/Tutorial/TutorialRight.qml:54
464−msgid "These are the shortcuts to favorite apps"
458+msgid "Hover your mouse on the right edge to view your open apps"
465−msgstr "እነዚህ አቋራጮች ናቸው እርስዎ ለሚወዷቸው መተግበሪያዎች"
459+msgstr "የ እርስዎን አይጥ ወደ ቀኝ ጠርዝ በኩል ሲያደርጉ የ ተከፈቱ መተግበሪያዎች መመልከቻ"
466
460
467−#: qml/Tutorial/TutorialPage.qml:178
461+#: qml/Tutorial/TutorialRight.qml:55
468−msgid "You almost got it!"
462+msgid "Short or long swipe from the right edge to view your open apps"
469−msgstr "እርስዎ አሁን እያገኙት ነው!"
463+msgstr "በ አጭሩ ወይንም በ ረጅሙ ይጥረጉ ከ ቀኝ ጠረዝ በኩል የ ተከፈቱ መተግበሪያዎችን ለማየት"
470−
471−#: qml/Tutorial/TutorialPage.qml:195
472−msgid "Try again."
473−msgstr "እንደገና ይሞክሩ"
474
464
475−#: qml/Tutorial/TutorialRight.qml:31
465+#: qml/Tutorial/TutorialTop.qml:53
476−msgid "To view open apps"
466+msgid "Swipe from the top right edge to open the notification bar"
477−msgstr "ለመመልከት መተግበሪያዎች ይክፈቱ"
467+msgstr "ከ ላይ ቀኝ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
478
468
479−#: qml/Tutorial/TutorialRight.qml:32
469+#: qml/Tutorial/TutorialTop.qml:54
480−msgid "Long swipe from the right edge."
470+msgid "Swipe from the top edge to open the notification bar"
481−msgstr "ከ ቀኝ ጠርዝ በኩል በረጅሙ ይጥረጉ"
471+msgstr "ከ ላይ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
482
472
483−#: qml/Tutorial/TutorialRight.qml:122
484−msgid "View all your running tasks."
485−msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
486−
487−#: qml/Wizard/Page.qml:89
473+#: qml/Wizard/Page.qml:54
488msgctxt "Button: Go back one page in the Wizard"
474msgctxt "Button: Go back one page in the Wizard"
489msgid "Back"
475msgid "Back"
490msgstr "ወደ ኋላ"
476msgstr "ወደ ኋላ"
491
477
492#: qml/Wizard/Pages/10-welcome.qml:27
478#: qml/Wizard/Pages/10-welcome.qml:27
493−msgid "Hi!"
479+msgid "Language"
494−msgstr "ሰላም"
480+msgstr "ቋንቋ"
495−
481+
496−#: qml/Wizard/Pages/10-welcome.qml:44
482+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
497−msgid "Welcome to your Ubuntu device."
483+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
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
487+#: qml/Wizard/Pages/password-set.qml:141
488+msgid "Next"
498−msgstr ""
489+msgstr "ይቀጥሉ"
499
490
500−#: qml/Wizard/Pages/10-welcome.qml:52
491+#: qml/Wizard/Pages/30-wifi.qml:29
501−msgid "Let’s get started."
492+msgid "Connect to Wi‑Fi"
502−msgstr "ስራ እንጀምር"
493+msgstr "ወደ ዋይ‑ፋይ መገናኛ"
503
494
504−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
495+#: qml/Wizard/Pages/30-wifi.qml:130
505−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
496+msgid "Connected"
506−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
497+msgstr "ተገናኝቷል"
507−#: qml/Wizard/Pages/passwd-set.qml:90
508−msgid "Continue"
509−msgstr "ይቀጥሉ"
510
498
511−#: qml/Wizard/Pages/20-sim.qml:25
499+#: qml/Wizard/Pages/30-wifi.qml:163
512−msgid "Add a SIM card and restart your device"
500+msgid "Available Wi-Fi networks"
513−msgstr "የ ሲም ካርድ ይጨምሩ እና አካሉን እንደገና ያስነሱ"
501+msgstr "ዝግጁ የ ዋይ-ፋይ ኔትዎርኮች"
514
502
515−#: qml/Wizard/Pages/20-sim.qml:59
503+#: qml/Wizard/Pages/30-wifi.qml:164
516−msgid "Without it, you won’t be able to make calls or use text messaging."
504+msgid "No available Wi-Fi networks"
517−msgstr "ያለ እሱ ጥሪ መፈጸም ወይንም የ ጽሁፍ መልእክት መላክ አይችሉም"
505+msgstr "ምንም ዝግጁ ዋይ-ፋይ ኔትዎርኮች አልተገኙም"
518
506
519−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
507+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
508+#: qml/Wizard/Pages/sim.qml:101
520msgid "Skip"
509msgid "Skip"
521msgstr "መዝለያ"
510msgstr "መዝለያ"
522
511
523−#: qml/Wizard/Pages/30-passwd-type.qml:39
512+#: qml/Wizard/Pages/40-location.qml:27
524−msgid "Lock security"
513+msgid "Location Services"
525−msgstr "ደህንነት መቆለፊያ"
514+msgstr "የ አካባቢ ግልጋሎት"
526
515
527−#: qml/Wizard/Pages/30-passwd-type.qml:79
516+#: qml/Wizard/Pages/40-location.qml:83
528−msgid "Please select how you’d like to unlock your device."
517+msgid ""
529−msgstr ""
518+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
519+"(recommended)"
520+msgstr "ይጠቀሙ ጂፒኤስ: ዋይ-ፋይ: hotspots እና ተንቀሳቃሽ ኔትዎርክ ሳይታወቁ አካባቢ ለማግኘት (ይመከራሉ)"
530
521
531−#: qml/Wizard/Pages/30-passwd-type.qml:102
522+#: qml/Wizard/Pages/40-location.qml:105
532−msgctxt "Label: Type of security method"
523+#, qt-format
533−msgid "Swipe"
524+msgid "By selecting this option you agree to the Nokia HERE %1."
534−msgstr "መጥረጊያ"
525+msgstr "ይህን ምርጫ በ መምረጥ እርስዎ ተስማምተዋል ከ Nokia HERE %1."
535
526
536−#: qml/Wizard/Pages/30-passwd-type.qml:103
527+#: qml/Wizard/Pages/40-location.qml:106
537−msgctxt "Label: Description of security method"
528+msgctxt "part of: Nokia HERE terms and conditions"
538−msgid "No security"
529+msgid "terms and conditions"
539−msgstr "ደህንነት አልተገኘም"
530+msgstr "ስምምነት እና ሁኔታዎች"
540
531
541−#: qml/Wizard/Pages/30-passwd-type.qml:105
532+#: qml/Wizard/Pages/40-location.qml:160
542−msgctxt "Label: Type of security method"
543−msgid "Passcode"
533+msgid "GPS only"
544−msgstr "ማለፊያ ኮድ"
534+msgstr "ጂፒኤስ ብቻ"
545
535
546−#: qml/Wizard/Pages/30-passwd-type.qml:106
536+#: qml/Wizard/Pages/40-location.qml:214
547−msgctxt "Label: Description of security method"
537+msgid "Don't use my location"
548−msgid "4 digits only"
538+msgstr "የ እኔን አካባቢ አትጠቀም"
549−msgstr "4 ዲጂት ብቻ"
550
539
551−#: qml/Wizard/Pages/30-passwd-type.qml:108
540+#: qml/Wizard/Pages/40-location.qml:260
552−msgctxt "Label: Type of security method"
541+msgid "You can change it later in System Settings."
553−msgid "Passphrase"
542+msgstr "እርስዎ በኋላ በ ስርአት ማሰናጃ ውስጥ መቀየር ይችላሉ"
554−msgstr "የማለፊያ ሐረግ"
555
543
556−#: qml/Wizard/Pages/30-passwd-type.qml:109
544+#: qml/Wizard/Pages/50-timezone.qml:29
557−msgctxt "Label: Description of security method"
545+msgid "Time Zone"
558−msgid "Numbers and letters"
546+msgstr "የ ሰአት ክልል"
559−msgstr "ቁጥሮች እና ፊደሎች"
560
547
561−#: qml/Wizard/Pages/40-wifi.qml:29
548+#: qml/Wizard/Pages/50-timezone.qml:178
562−msgid "Connect to Wi‑Fi"
549+msgid "Enter your city"
563−msgstr "ወደ ዋይ‑ፋይ መገናኛ"
550+msgstr "የ እርስዎን ከተማ ያስገቡ"
564
551
565−#: qml/Wizard/Pages/40-wifi.qml:168
552+#: qml/Wizard/Pages/60-account.qml:24
566−msgid "Available networks…"
553+msgid "Personalize Your Device"
567−msgstr "ዝግጁ ኔትዎርኮች…"
554+msgstr "የ እርስዎን አካል የ ግልዎ ያድርጉ"
568
555
569−#: qml/Wizard/Pages/40-wifi.qml:169
556+#: qml/Wizard/Pages/60-account.qml:48
570−msgid "No available networks."
557+msgid "Preferred Name"
571−msgstr "ዝግጁ ኔትዎርኮች አልተገኙም"
558+msgstr "የመረጡት ስም"
572
559
573−#: qml/Wizard/Pages/50-location.qml:27
560+#: qml/Wizard/Pages/70-passwd-type.qml:39
574−msgid "Location"
561+msgid "Lock Screen"
575−msgstr "አካባቢ"
562+msgstr "መመልከቻውን መቆለፊያ"
576
563
577−#: qml/Wizard/Pages/50-location.qml:62
564+#: qml/Wizard/Pages/70-passwd-type.qml:101
578−msgid "Let the phone detect your location:"
565+msgctxt "Label: Type of security method"
579−msgstr "እባክዎን እርስዎ ያሉበትን አካባቢ ስልኩ እራሱ ይፈልግ:"
566+msgid "Create new password"
567+msgstr "አዲስ የ መግቢያ ቃል መፍጠሪያ"
580
568
581−#: qml/Wizard/Pages/50-location.qml:69
569+#: qml/Wizard/Pages/70-passwd-type.qml:103
582−msgid "Using GPS only (less accurate)"
570+msgctxt "Label: Type of security method"
583−msgstr "ጂፒኤስን ብቻ መጠቀሚያ(በጣም ቅርብ)"
571+msgid "Create passcode (numbers only)"
572+msgstr "አዲስ የ ማለፊያ ኮድ መፍጠሪያ (ቁጥር ብቻ)"
584
573
585−#: qml/Wizard/Pages/50-location.qml:86
574+#: qml/Wizard/Pages/70-passwd-type.qml:105
586−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
575+msgctxt "Label: Type of security method"
587−msgstr "ይጠቀሙ ጂፒኤስ ግልጽ ያልሆነ ዋይ-ፋይ እና ተንቀሳቃሽ ኔትዎርክ መረጃ (ይመከራሉ)"
576+msgid "No lock code"
577+msgstr "ምንም መቆለፊያ ኮድ አልተገኘም"
588
578
589−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
579+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
590−#: qml/Wizard/Pages/50-location.qml:103
580+msgid "Privacy Policy"
591−msgid ""
581+msgstr "የ ግላዊነት መመሪያ"
592−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
593−"conditions</a>."
594−msgstr "ይህን ምርጫ በመምረጥ ተስማምቻለሁ ከ Nokia HERE <a href='#'>ውሎች እና ሁኔታዎች ጋር</a>."
595
582
596−#: qml/Wizard/Pages/50-location.qml:112
583+#: qml/Wizard/Pages/75-report-check.qml:26
597−msgid "Not at all"
584+msgid "Help Us Improve"
598−msgstr "አይደለም"
585+msgstr "እንድንሻሻል ይርዱን"
599
586
600−#: qml/Wizard/Pages/50-location.qml:124
587+#: qml/Wizard/Pages/75-report-check.qml:59
601−msgid "You can change your mind later in <b>System Settings</b>."
588+msgid "Improve system performance by sending us crashes and error reports."
602−msgstr "እርስዎ በኋላ መቀየር ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b>."
589+msgstr "የ ስርአቱን አፈጻጸም ለማሻሻል የ ግጭት እና የ ስህተት መልእክቶች ይላኩልን"
603
590
604−#: qml/Wizard/Pages/60-reporting.qml:26
591+#: qml/Wizard/Pages/75-report-check.qml:60
605−msgid "Improving your experience"
592+msgid "Privacy policy"
606−msgstr "የ እርስዎን ልምምድ ማሻሻያ"
593+msgstr "የ ግላዊነት መመሪያ"
607
594
608−#: qml/Wizard/Pages/60-reporting.qml:46
595+#: qml/Wizard/Pages/80-finished.qml:89
609−msgid ""
596+msgid "Welcome to Ubuntu"
610−"Your phone is set up to automatically report errors to Canonical and its "
597+msgstr "እንኳን ደህና መጡ ወደ ኡቡንቱ"
611−"partners, the makers of the operating system."
612−msgstr ""
613−"የ እርስዎ ስልክ ራሱ በራሱ የ ስህተት መግለጫዎች ወደ Canonical and its partners, የ መስሪያ ስርአት "
614−"አምራቾች"
615
598
616−#: qml/Wizard/Pages/60-reporting.qml:53
599+#: qml/Wizard/Pages/80-finished.qml:104
617−msgid ""
600+msgid "You are ready to use your device now"
618−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
601+msgstr "የ እርስዎን አካል ለ መጠቀም አሁን ዝግጁ ነው"
619−"Privacy</b>"
620−msgstr ""
621−"ይህን ግልጋሎት ማሰናከል ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b> under <b>Security &amp; Privacy</b>"
622
602
623−#: qml/Wizard/Pages/80-finished.qml:24
603+#: qml/Wizard/Pages/80-finished.qml:124
624−msgid "All done"
604+msgid "Get Started"
625−msgstr "ሁሉም ተፈጽሟል"
605+msgstr "እንጀምር"
626
606
627−#: qml/Wizard/Pages/80-finished.qml:39
607+#: qml/Wizard/Pages/here-terms.qml:25
628−msgid "Nice work!"
608+msgid "Terms & Conditions"
629−msgstr "ጥሩ ሰርተዋል!"
609+msgstr "ውሎች & ሁኔታዎች"
610+
611+#: qml/Wizard/Pages/here-terms.qml:69
612+msgid "Your device uses positioning technologies provided by HERE."
613+msgstr "የ እርስዎ አካል ይጠቀማል ያሉበትን አካባቢ ቴክኖሎጂ የቀረበውን በ HERE."
630
614
631−#: qml/Wizard/Pages/80-finished.qml:46
615+#: qml/Wizard/Pages/here-terms.qml:81
632−msgid "Your device is now ready to use."
616+msgid ""
617+"To provide you with positioning services and to improve their quality, HERE "
618+"collects information about nearby cell towers and Wi-Fi hotspots around your "
619+"current location whenever your position is being found."
633msgstr ""
620msgstr ""
621+"እርስዎ ያሉበትን አካባቢ ግልጋሎት ለ መስጠት እና ለማሻሻል: HERE መረጃ ይሰበስባል በቅርብ ያሉ የ ሴል ምሶሶዎች እና "
622+"ዋይ-ፋይ hotspots እርስዎ አሁን ያሉበትን አካባቢ ሲታወቅ"
634
623
635−#: qml/Wizard/Pages/80-finished.qml:53
624+#: qml/Wizard/Pages/here-terms.qml:93
636−msgid "Finish"
625+msgid ""
637−msgstr "መጨረሻ"
626+"The information collected is used to analyze the service and to improve the "
627+"use of service, but not to identify you personally."
628+msgstr "የ ተሰበሰበው መረጃ የሚጠቅመው ግልጋሎት ለማሻሻል ነው: ነገር ግን እርስዎን በ ግል ለ መለየት አይደለም"
638
629
639−#: qml/Wizard/Pages/here-terms.qml:27
630+#: qml/Wizard/Pages/here-terms.qml:106
640−msgid "Terms & Conditions"
631+#, qt-format
641−msgstr "ውሎች & ሁኔታዎች"
632+msgid "By continuing, you agree to the HERE platform %1 and %2."
633+msgstr "በ መቀጠል እርስዎ ተስማምተዋል ከ HERE platform %1 እና %2."
642
634
643−#: qml/Wizard/Pages/passwd-confirm.qml:49
635+#: qml/Wizard/Pages/here-terms.qml:107
644−msgid "Confirm passphrase"
636+msgid "Service Terms"
645−msgstr "የ ማለፊያ ሐረግ ማረጋገጫ"
637+msgstr "የ ግልጋሎት ስምምነቶች"
646
638
647−#: qml/Wizard/Pages/passwd-confirm.qml:50
639+#: qml/Wizard/Pages/passcode-confirm.qml:43
640+#: qml/Wizard/Pages/passcode-desktop.qml:80
648msgid "Confirm passcode"
641msgid "Confirm passcode"
649msgstr "የማለፊያ ኮድ ማረጋገጫ"
642msgstr "የማለፊያ ኮድ ማረጋገጫ"
650
643
651−#: qml/Wizard/Pages/passwd-confirm.qml:53
644+#: qml/Wizard/Pages/passcode-confirm.qml:45
652−#: qml/Wizard/Pages/passwd-confirm.qml:54
645+msgid "Incorrect passcode."
653−msgid "Please try again."
646+msgstr "የ ተሳሳተ የማለፊያ ኮድ"
654−msgstr "እባክዎን እንደገና ይሞክሩ"
655
647
656−#: qml/Wizard/Pages/passwd-set.qml:61
648+#: qml/Wizard/Pages/passcode-confirm.qml:45
657−msgid "Choose your passcode"
649+msgctxt "Enter the passcode again"
658−msgstr "የ እርስዎን የማለፊያ ኮድ ይምረጡ"
650+msgid "Please re-enter."
651+msgstr "እባክዎን እንደገና-ያስገቡ"
659
652
660−#: qml/Wizard/Pages/passwd-set.qml:68
653+#: qml/Wizard/Pages/passcode-desktop.qml:30
661−msgid "Passphrase must be 4 characters long"
654+msgid "Lock Screen Passcode"
662−msgstr "የ ማለፊያ ሀረግ ቢያንስ 4 ባህሪዎች መሆን አለበት"
655+msgstr "የ መመልከቻው መቆለፊያ የ ማለፊያ ኮድ"
663
656
664−#. Translators: This is the arrow for "Back" buttons
657+#: qml/Wizard/Pages/passcode-desktop.qml:56
665−#: qml/Wizard/StackButton.qml:39
658+msgid "Enter 4 numbers to setup your passcode"
666−#, qt-format
659+msgstr "ያስገቡ 4 ቁጥሮች የ እርስዎን የ ማለፊያ ኮድ ለማሰናዳት"
667−msgid "〈 %1"
668−msgstr "〈 %1"
669
660
670−#. Translators: This is the arrow for "Forward" buttons
661+#: qml/Wizard/Pages/passcode-desktop.qml:65
662+#: qml/Wizard/Pages/passcode-set.qml:54
663+msgid "Choose passcode"
664+msgstr "የ ማለፊያ ኮድ ይምረጡ"
665+
666+#: qml/Wizard/Pages/passcode-desktop.qml:105
667+msgid "Passcode too short"
668+msgstr "የ ማለፊያ ኮዱ በጣም አጭር ነው"
669+
671−#: qml/Wizard/StackButton.qml:42
670+#: qml/Wizard/Pages/passcode-desktop.qml:107
672−#, qt-format
671+msgid "Passcodes match"
673−msgid "%1 〉"
672+msgstr "የ ማለፊያ ኮዶቹ ተመሳሳይ ናቸው"
674−msgstr "%1 〉"
673+
674+#: qml/Wizard/Pages/passcode-desktop.qml:109
675+msgid "Passcodes do not match"
676+msgstr "የ ማለፊያ ኮዶቹ አይመሳሰሉም"
677+
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+
690+#: qml/Wizard/Pages/password-set.qml:73
691+msgid "Choose password"
692+msgstr "የ መግቢያ ቃል ይምረጡ"
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 "በጣም ደካማ የ መግቢያ ቃል"
675
745
676#~ msgid "Top edge"
746#~ msgid "Top edge"
677#~ msgstr "የላይ ጠርዝ"
747#~ msgstr "የላይ ጠርዝ"
@@ -742,6 +812,9 @@ msgstr "%1 〉"
742#~ msgid "Log out"
812#~ msgid "Log out"
743#~ msgstr "መውጫ"
813#~ msgstr "መውጫ"
744
814
815+#~ msgid "Are you sure you want to shut down?"
816+#~ msgstr "በእርግጥ ማጥፋት ይፈልጋሉ?"
817+
745#~ msgid "Shut down"
818#~ msgid "Shut down"
746#~ msgstr "ማጥፊያ"
819#~ msgstr "ማጥፊያ"
747
820
@@ -751,14 +824,17 @@ msgstr "%1 〉"
751#~ msgid "Settings"
824#~ msgid "Settings"
752#~ msgstr "ማሰናጃ"
825#~ msgstr "ማሰናጃ"
753
826
827+#~ msgid "Unlock SIM"
828+#~ msgstr "ሲም መክፈቻ"
829+
754#~ msgid ""
830#~ msgid ""
755#~ "You have now mastered the edge gestures and can start using the "
831#~ "You have now mastered the edge gestures and can start using the "
756#~ "phone<br><br>Tap on the screen to start"
832#~ "phone<br><br>Tap on the screen to start"
757#~ msgstr ""
833#~ msgstr ""
758#~ "አሁን የ ጠርዝ እንቅስቃሴን አውቀዋል እና መጀመር ይችላሉ ስልኩን መጠቀም <br><br>መመልከቻውን መታ ያድርጉ ለመጀመር"
834#~ "አሁን የ ጠርዝ እንቅስቃሴን አውቀዋል እና መጀመር ይችላሉ ስልኩን መጠቀም <br><br>መመልከቻውን መታ ያድርጉ ለመጀመር"
759
835
760−#~ msgid "Restart"
836+#~ msgid "Roaming"
761−#~ msgstr "እንደገና ማስጀመሪያ"
837+#~ msgstr "ማዘዋወሪያ"
762
838
763#~ msgid "Manage Scopes"
839#~ msgid "Manage Scopes"
764#~ msgstr "የ ክልል አስተዳዳሪ"
840#~ msgstr "የ ክልል አስተዳዳሪ"
@@ -766,15 +842,182 @@ msgstr "%1 〉"
766#~ msgid "Please re-enter"
842#~ msgid "Please re-enter"
767#~ msgstr "እባክዎን እንደገና-ያስገቡ"
843#~ msgstr "እባክዎን እንደገና-ያስገቡ"
768
844
845+#~ msgid "Lock security"
846+#~ msgstr "ደህንነት መቆለፊያ"
847+
769#~ msgid "Please select how you’d like to unlock your phone."
848#~ msgid "Please select how you’d like to unlock your phone."
770#~ msgstr "እባክዎን የ እርስዎን ስልክ እንዴት እንደሚከፍቱ ይምረጡ"
849#~ msgstr "እባክዎን የ እርስዎን ስልክ እንዴት እንደሚከፍቱ ይምረጡ"
771
850
851+#~ msgid "Improving your experience"
852+#~ msgstr "የ እርስዎን ልምምድ ማሻሻያ"
853+
854+#~ msgid "Available networks…"
855+#~ msgstr "ዝግጁ ኔትዎርኮች…"
856+
857+#~ msgid "No available networks."
858+#~ msgstr "ዝግጁ ኔትዎርኮች አልተገኙም"
859+
860+#~ msgid "Location"
861+#~ msgstr "አካባቢ"
862+
863+#~ msgid ""
864+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
865+#~ "Privacy</b>"
866+#~ msgstr ""
867+#~ "ይህን ግልጋሎት ማሰናከል ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b> under <b>Security &amp; Privacy</b>"
868+
869+#~ msgid "Nice work!"
870+#~ msgstr "ጥሩ ሰርተዋል!"
871+
872+#~ msgid "All done"
873+#~ msgstr "ሁሉም ተፈጽሟል"
874+
875+#~ msgid "Finish"
876+#~ msgstr "መጨረሻ"
877+
772#~ msgid "Your phone is now ready to use."
878#~ msgid "Your phone is now ready to use."
773#~ msgstr "ስልኩ አሁን ለመጠቀም ዝግጁ ነው"
879#~ msgstr "ስልኩ አሁን ለመጠቀም ዝግጁ ነው"
774
880
881+#~ msgid "Confirm passphrase"
882+#~ msgstr "የ ማለፊያ ሐረግ ማረጋገጫ"
883+
884+#~ msgid "Please try again."
885+#~ msgstr "እባክዎን እንደገና ይሞክሩ"
886+
887+#~ msgid "Add a SIM card and restart your device"
888+#~ msgstr "የ ሲም ካርድ ይጨምሩ እና አካሉን እንደገና ያስነሱ"
889+
890+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
891+#~ msgstr "ያለ እሱ ጥሪ መፈጸም ወይንም የ ጽሁፍ መልእክት መላክ አይችሉም"
892+
893+#~ msgid "Hi!"
894+#~ msgstr "ሰላም"
895+
775#~ msgid "Welcome to your Ubuntu phone."
896#~ msgid "Welcome to your Ubuntu phone."
776#~ msgstr "እንኳን ደህና መጡ ወደ እርስዎ ኡቡንቱ ስልክ"
897#~ msgstr "እንኳን ደህና መጡ ወደ እርስዎ ኡቡንቱ ስልክ"
777
898
899+#~ msgid "Let’s get started."
900+#~ msgstr "ስራ እንጀምር"
901+
902+#~ msgid "Continue"
903+#~ msgstr "ይቀጥሉ"
904+
905+#~ msgid "Passphrase must be 4 characters long"
906+#~ msgstr "የ ማለፊያ ሀረግ ቢያንስ 4 ባህሪዎች መሆን አለበት"
907+
908+#~ msgid "Choose your passcode"
909+#~ msgstr "የ እርስዎን የማለፊያ ኮድ ይምረጡ"
910+
911+#~ msgid "Let the phone detect your location:"
912+#~ msgstr "እባክዎን እርስዎ ያሉበትን አካባቢ ስልኩ እራሱ ይፈልግ:"
913+
914+#, qt-format
915+#~ msgid "〈 %1"
916+#~ msgstr "〈 %1"
917+
918+#, qt-format
919+#~ msgid "%1 〉"
920+#~ msgstr "%1 〉"
921+
922+#~ msgid "You can change your mind later in <b>System Settings</b>."
923+#~ msgstr "እርስዎ በኋላ መቀየር ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b>."
924+
925+#~ msgid "Not at all"
926+#~ msgstr "አይደለም"
927+
928+#~ msgid "Using GPS only (less accurate)"
929+#~ msgstr "ጂፒኤስን ብቻ መጠቀሚያ(በጣም ቅርብ)"
930+
931+#~ msgid ""
932+#~ "Your phone is set up to automatically report errors to Canonical and its "
933+#~ "partners, the makers of the operating system."
934+#~ msgstr ""
935+#~ "የ እርስዎ ስልክ ራሱ በራሱ የ ስህተት መግለጫዎች ወደ Canonical and its partners, የ መስሪያ ስርአት "
936+#~ "አምራቾች"
937+
938+#~ msgid ""
939+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
940+#~ "conditions</a>."
941+#~ msgstr "ይህን ምርጫ በመምረጥ ተስማምቻለሁ ከ Nokia HERE <a href='#'>ውሎች እና ሁኔታዎች ጋር</a>."
942+
943+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
944+#~ msgstr "ይጠቀሙ ጂፒኤስ ግልጽ ያልሆነ ዋይ-ፋይ እና ተንቀሳቃሽ ኔትዎርክ መረጃ (ይመከራሉ)"
945+
946+#~ msgid "This action does different things for different apps"
947+#~ msgstr "ይህ ተግባር ለተለያዩ መተግበሪያዎች የተለያየ ነገር ይሰራል"
948+
949+#~ msgid "Tap here to finish."
950+#~ msgstr "እዚህ መታ ይድርጉ ለመጨረስ"
951+
952+#~ msgid "Short swipe from the left edge."
953+#~ msgstr "ከ ግራ ጠርዝ በኩል በትንሹ ይጥረጉ"
954+
955+#~ msgid "Open the launcher"
956+#~ msgstr "ማስጀመሪያውን መክፈቻ"
957+
958+#~ msgid "Tap here to continue."
959+#~ msgstr "እዚህ መታ ይድርጉ ለመቀጠል"
960+
961+#~ msgid "These are the shortcuts to favorite apps"
962+#~ msgstr "እነዚህ አቋራጮች ናቸው እርስዎ ለሚወዷቸው መተግበሪያዎች"
963+
964+#~ msgid "Swipe up from the bottom edge."
965+#~ msgstr "ከ ታች ጠርዝ በኩል ወደ ላይ ይጥረጉ"
966+
967+#~ msgid "Open special menus"
968+#~ msgstr "የተለዩ ዝርዝሮች መክፈቻ"
969+
970+#~ msgid "To view open apps"
971+#~ msgstr "ለመመልከት መተግበሪያዎች ይክፈቱ"
972+
973+#~ msgid "Try again."
974+#~ msgstr "እንደገና ይሞክሩ"
975+
976+#~ msgid "You almost got it!"
977+#~ msgstr "እርስዎ አሁን እያገኙት ነው!"
978+
979+#~ msgid "Long swipe from the right edge."
980+#~ msgstr "ከ ቀኝ ጠርዝ በኩል በረጅሙ ይጥረጉ"
981+
982+#~ msgid "View all your running tasks."
983+#~ msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
984+
985+#~ msgctxt "Button: Shut down the system"
986+#~ msgid "Shut down"
987+#~ msgstr "ማጥፊያ"
988+
989+#~ msgctxt "Title: Reboot/Shut down dialog"
990+#~ msgid "Shut down"
991+#~ msgstr "ማጥፊያ"
992+
993+#~ msgctxt "Button: Reboot the system"
994+#~ msgid "Reboot"
995+#~ msgstr "እንደገና ማስነሻ"
996+
997+#~ msgctxt "Label: Type of security method"
998+#~ msgid "Passcode"
999+#~ msgstr "ማለፊያ ኮድ"
1000+
1001+#~ msgctxt "Label: Description of security method"
1002+#~ msgid "No security"
1003+#~ msgstr "ደህንነት አልተገኘም"
1004+
1005+#~ msgctxt "Label: Description of security method"
1006+#~ msgid "4 digits only"
1007+#~ msgstr "4 ዲጂት ብቻ"
1008+
1009+#~ msgctxt "Label: Type of security method"
1010+#~ msgid "Swipe"
1011+#~ msgstr "መጥረጊያ"
1012+
1013+#~ msgctxt "Label: Type of security method"
1014+#~ msgid "Passphrase"
1015+#~ msgstr "የማለፊያ ሐረግ"
1016+
1017+#~ msgctxt "Label: Description of security method"
1018+#~ msgid "Numbers and letters"
1019+#~ msgstr "ቁጥሮች እና ፊደሎች"
1020+
778#~ msgid "%a %d %b %H:%M"
1021#~ msgid "%a %d %b %H:%M"
779#~ msgstr "%a %d %b %ሰ:%ደ"
1022#~ msgstr "%a %d %b %ሰ:%ደ"
780
1023
@@ -807,3 +1050,12 @@ msgstr "%1 〉"
807
1050
808#~ msgid "Call back"
1051#~ msgid "Call back"
809#~ msgstr "መልሶ መደወያ"
1052#~ msgstr "መልሶ መደወያ"
1053+
1054+#~ msgid "Welcome to your Ubuntu device."
1055+#~ msgstr "እንኳን ድህና መጡ ወደ ኡቡንቱ"
1056+
1057+#~ msgid "Please select how you’d like to unlock your device."
1058+#~ msgstr "እባክዎን የ እርስዎን አካል እንዴት እንደሚከፈት ይምረጡ"
1059+
1060+#~ msgid "Your device is now ready to use."
1061+#~ msgstr "የ እርስዎ አካል አሁን ዝግጁ ነው"
po/ar.po+474−246
@@ -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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,23 +16,23 @@ 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-02-17 05:42+0000\n"
19+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
20−"X-Generator: Launchpad (build 17925)\n"
20+"X-Generator: Launchpad (build 17958)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
24msgstr "كلمة السر: "
24msgstr "كلمة السر: "
25
25
26−#: plugins/Unity/Launcher/launcheritem.cpp:47
26+#: plugins/Unity/Launcher/launcheritem.cpp:48
27−#: plugins/Unity/Launcher/launcheritem.cpp:106
27+#: plugins/Unity/Launcher/launcheritem.cpp:107
28msgid "Pin shortcut"
28msgid "Pin shortcut"
29msgstr "تثبيت الاختصار"
29msgstr "تثبيت الاختصار"
30
30
31−#: plugins/Unity/Launcher/launcheritem.cpp:52
31+#: plugins/Unity/Launcher/launcheritem.cpp:53
32msgid "Quit"
32msgid "Quit"
33msgstr "خروج"
33msgstr "خروج"
34
34
35−#: plugins/Unity/Launcher/launcheritem.cpp:106
35+#: plugins/Unity/Launcher/launcheritem.cpp:107
36msgid "Unpin shortcut"
36msgid "Unpin shortcut"
37msgstr "إزالة تثبيت الاختصار"
37msgstr "إزالة تثبيت الاختصار"
38
38
@@ -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:219
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:183
121msgid "Yes"
103msgid "Yes"
122msgstr "نعم"
104msgstr "نعم"
123
105
124−#: qml/Components/Dialogs.qml:232
106+#: qml/Components/Dialogs.qml:198
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:199
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,25 +116,25 @@ msgstr ""
134"هل أنت متأكد من رغبتك\n"
116"هل أنت متأكد من رغبتك\n"
135"في إيقاف التشغيل؟"
117"في إيقاف التشغيل؟"
136
118
137−#: qml/Components/Dialogs.qml:235
119+#: qml/Components/Dialogs.qml:201
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:210
143msgctxt "Button: Restart the system"
125msgctxt "Button: Restart the system"
144msgid "Restart"
126msgid "Restart"
145msgstr "إعادة التشغيل"
127msgstr "إعادة التشغيل"
146
128
147−#: qml/Components/Lockscreen.qml:245
129+#: qml/Components/Lockscreen.qml:231
148msgid "Return to Call"
130msgid "Return to Call"
149msgstr "العودة إلى المكالمة"
131msgstr "العودة إلى المكالمة"
150
132
151−#: qml/Components/Lockscreen.qml:245
133+#: qml/Components/Lockscreen.qml:231
152msgid "Emergency Call"
134msgid "Emergency Call"
153msgstr "مكالمة طوارئ"
135msgstr "مكالمة طوارئ"
154
136
155−#: qml/Components/Lockscreen.qml:277
137+#: qml/Components/Lockscreen.qml:263
156msgid "OK"
138msgid "OK"
157msgstr "موافق"
139msgstr "موافق"
158
140
@@ -161,6 +143,8 @@ msgid "Apps may have unsaved data:"
161msgstr ""
143msgstr ""
162
144
163#: qml/Components/ModeSwitchWarningDialog.qml:57
145#: qml/Components/ModeSwitchWarningDialog.qml:57
146+msgctxt ""
147+"Re-dock means connect the device again to an external screen/mouse/keyboard"
164msgid "Re-dock, save your work and close these apps to continue."
148msgid "Re-dock, save your work and close these apps to continue."
165msgstr ""
149msgstr ""
166
150
@@ -180,42 +164,58 @@ msgstr ""
180msgid "Close all"
164msgid "Close all"
181msgstr ""
165msgstr ""
182
166
183−#: qml/Dash/DashPageHeader.qml:266
167+#: qml/Dash/DashPageHeader.qml:337
184msgctxt "Button: Open the Ubuntu Store"
168msgctxt "Button: Open the Ubuntu Store"
185msgid "Store"
169msgid "Store"
186msgstr "المتجر"
170msgstr "المتجر"
187
171
188−#: qml/Dash/DashPageHeader.qml:273
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 "بحث"
175msgstr "بحث"
192
176
193−#: qml/Dash/DashPageHeader.qml:283
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 "الإعدادات"
180msgstr "الإعدادات"
197
181
198−#: qml/Dash/DashPageHeader.qml:290
182+#: qml/Dash/DashPageHeader.qml:361
199msgid "Remove from Favorites"
183msgid "Remove from Favorites"
200msgstr "حذف من المفضلات"
184msgstr "حذف من المفضلات"
201
185
202−#: qml/Dash/DashPageHeader.qml:290
186+#: qml/Dash/DashPageHeader.qml:361
203msgid "Add to Favorites"
187msgid "Add to Favorites"
204msgstr "إضافة إلى المفضلات"
188msgstr "إضافة إلى المفضلات"
205
189
190+#: qml/Dash/FiltersPopover.qml:60
191+msgid "Refine your results"
192+msgstr ""
193+
194+#: qml/Dash/FiltersPopover.qml:69
195+msgid "Reset"
196+msgstr ""
197+
206−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
207msgid "See less"
199msgid "See less"
208msgstr "شاهد أقل"
200msgstr "شاهد أقل"
209
201
210−#: qml/Dash/GenericScopeView.qml:587
202+#: qml/Dash/GenericScopeView.qml:570
211msgid "See all"
203msgid "See all"
212msgstr "عرض الكل"
204msgstr "عرض الكل"
213
205
214−#: qml/Dash/GenericScopeView.qml:649
206+#: qml/Dash/GenericScopeView.qml:627
215msgctxt "Label: Hint for dash search line edit"
207msgctxt "Label: Hint for dash search line edit"
216msgid "Search"
208msgid "Search"
217msgstr "بحث"
209msgstr "بحث"
218
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+
219#: qml/Dash/Previews/PreviewActionCombo.qml:35
219#: qml/Dash/Previews/PreviewActionCombo.qml:35
220msgid "More..."
220msgid "More..."
221msgstr "المزيد..."
221msgstr "المزيد..."
@@ -237,7 +237,7 @@ msgstr "قيّم ذلك"
237msgid "Add a review"
237msgid "Add a review"
238msgstr "أضف تعليق"
238msgstr "أضف تعليق"
239
239
240−#: qml/Dash/Previews/PreviewSharing.qml:50
240+#: qml/Dash/Previews/PreviewSharing.qml:66
241msgid "Preview Share Item"
241msgid "Preview Share Item"
242msgstr ""
242msgstr ""
243
243
@@ -265,13 +265,13 @@ msgstr "الرئيسية"
265msgid "Also installed"
265msgid "Also installed"
266msgstr "أيضا تم تثبيت"
266msgstr "أيضا تم تثبيت"
267
267
268−#: qml/DisabledScreenNotice.qml:87
268+#: qml/DisabledScreenNotice.qml:104
269msgid ""
269msgid ""
270"Your device is now connected to an external display. Use this screen as a "
270"Your device is now connected to an external display. Use this screen as a "
271−"touch pad to interact with the mouse."
271+"touch pad to interact with the pointer."
272msgstr ""
272msgstr ""
273
273
274−#: qml/Greeter/CoverPage.qml:107
274+#: qml/Greeter/CoverPage.qml:118
275msgid "Unlock"
275msgid "Unlock"
276msgstr "فك القفل"
276msgstr "فك القفل"
277
277
@@ -283,11 +283,11 @@ msgstr "إعادة المحاولة"
283msgid "Tap to unlock"
283msgid "Tap to unlock"
284msgstr "انقر لفك القفل"
284msgstr "انقر لفك القفل"
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 "عذرًا، عبارة سرّية خاطئة."
288msgstr "عذرًا، عبارة سرّية خاطئة."
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 "عذرًا، رمز سرّي خاطيء."
292msgstr "عذرًا، رمز سرّي خاطيء."
293
293
@@ -316,7 +316,7 @@ msgstr ""
316msgid "Enter %1"
316msgid "Enter %1"
317msgstr "أدخِل %1"
317msgstr "أدخِل %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 "أدخِل العبارة السرية"
321msgstr "أدخِل العبارة السرية"
322
322
@@ -354,11 +354,11 @@ msgstr "انقر للعودة إلى المكالمة..."
354msgid "Conference"
354msgid "Conference"
355msgstr "مؤتمر"
355msgstr "مؤتمر"
356
356
357−#: qml/Panel/Indicators/MenuItemFactory.qml:753
357+#: qml/Panel/Indicators/MenuItemFactory.qml:761
358msgid "Nothing is playing"
358msgid "Nothing is playing"
359msgstr "لا شيء مُشغّل"
359msgstr "لا شيء مُشغّل"
360
360
361−#: qml/Panel/Indicators/MenuItemFactory.qml:882
361+#: qml/Panel/Indicators/MenuItemFactory.qml:890
362#, qt-format
362#, qt-format
363msgid "%1 hour"
363msgid "%1 hour"
364msgid_plural "%1 hours"
364msgid_plural "%1 hours"
@@ -369,7 +369,7 @@ msgstr[3] "%1 ساعات"
369msgstr[4] "%1 ساعة"
369msgstr[4] "%1 ساعة"
370msgstr[5] "%1 ساعة"
370msgstr[5] "%1 ساعة"
371
371
372−#: qml/Panel/Indicators/MenuItemFactory.qml:886
372+#: qml/Panel/Indicators/MenuItemFactory.qml:894
373#, qt-format
373#, qt-format
374msgid "%1 minute"
374msgid "%1 minute"
375msgid_plural "%1 minutes"
375msgid_plural "%1 minutes"
@@ -380,7 +380,7 @@ msgstr[3] "%1 دقائق"
380msgstr[4] "%1 دقيقة"
380msgstr[4] "%1 دقيقة"
381msgstr[5] "%1 دقيقة"
381msgstr[5] "%1 دقيقة"
382
382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:891
383+#: qml/Panel/Indicators/MenuItemFactory.qml:899
384#, qt-format
384#, qt-format
385msgid "%1 second"
385msgid "%1 second"
386msgid_plural "%1 seconds"
386msgid_plural "%1 seconds"
@@ -391,37 +391,37 @@ msgstr[3] "%1 ثوان"
391msgstr[4] "%1 ثانية"
391msgstr[4] "%1 ثانية"
392msgstr[5] "%1 ثانية"
392msgstr[5] "%1 ثانية"
393
393
394−#: qml/Panel/Indicators/MenuItemFactory.qml:894
394+#: qml/Panel/Indicators/MenuItemFactory.qml:902
395msgid "0 seconds"
395msgid "0 seconds"
396msgstr "أقل من ثانية"
396msgstr "أقل من ثانية"
397
397
398#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
398#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
399−#: qml/Panel/Indicators/MenuItemFactory.qml:896
399+#: qml/Panel/Indicators/MenuItemFactory.qml:904
400#, qt-format
400#, qt-format
401msgid "%1 remaining"
401msgid "%1 remaining"
402msgstr "باق %1"
402msgstr "باق %1"
403
403
404−#: qml/Panel/Indicators/MenuItemFactory.qml:902
404+#: qml/Panel/Indicators/MenuItemFactory.qml:910
405msgid "In queue…"
405msgid "In queue…"
406msgstr "في الانتظار..."
406msgstr "في الانتظار..."
407
407
408−#: qml/Panel/Indicators/MenuItemFactory.qml:906
408+#: qml/Panel/Indicators/MenuItemFactory.qml:914
409msgid "Downloading"
409msgid "Downloading"
410msgstr "التنزيل"
410msgstr "التنزيل"
411
411
412−#: qml/Panel/Indicators/MenuItemFactory.qml:908
412+#: qml/Panel/Indicators/MenuItemFactory.qml:916
413msgid "Paused, tap to resume"
413msgid "Paused, tap to resume"
414msgstr "مُلبث، انقر للاستئناف"
414msgstr "مُلبث، انقر للاستئناف"
415
415
416−#: qml/Panel/Indicators/MenuItemFactory.qml:910
416+#: qml/Panel/Indicators/MenuItemFactory.qml:918
417msgid "Canceled"
417msgid "Canceled"
418msgstr "تم إلغائه"
418msgstr "تم إلغائه"
419
419
420−#: qml/Panel/Indicators/MenuItemFactory.qml:912
420+#: qml/Panel/Indicators/MenuItemFactory.qml:920
421msgid "Finished"
421msgid "Finished"
422msgstr "انتهى"
422msgstr "انتهى"
423
423
424−#: qml/Panel/Indicators/MenuItemFactory.qml:914
424+#: qml/Panel/Indicators/MenuItemFactory.qml:922
425msgid "Failed, tap to retry"
425msgid "Failed, tap to retry"
426msgstr "فشل، انقل لإعادة المحاولة"
426msgstr "فشل، انقل لإعادة المحاولة"
427
427
@@ -441,260 +441,323 @@ msgctxt "Button: Call back on phone"
441msgid "Call back"
441msgid "Call back"
442msgstr ""
442msgstr ""
443
443
444−#: qml/Panel/Indicators/ModemInfoItem.qml:105
444+#: qml/Stages/SideStage.qml:76
445−msgid "Unlock SIM"
445+msgid "Drag using 3 fingers any application from one window to the other"
446−msgstr "فتح قفل بطاقة SIM"
446+msgstr ""
447−
448−#: qml/Panel/Indicators/RoamingIndication.qml:27
449−msgid "Roaming"
450−msgstr "التجوال"
451−
452−#: qml/Tutorial/TutorialBottom.qml:28
453−msgid "Open special menus"
454−msgstr "فتح قوائم خاصة"
455−
456−#: qml/Tutorial/TutorialBottom.qml:29
457−msgid "Swipe up from the bottom edge."
458−msgstr "اسحب لأعلى من الحافة السفلى."
459
447
460−#: qml/Tutorial/TutorialBottomFinish.qml:24
448+#: qml/Tutorial/TutorialBottom.qml:78
461−msgid "This action does different things for different apps"
449+msgid "Swipe up to add a contact"
462−msgstr "هذا الإجراء يقوم بأشياء مختلفة على التطبيقات المختلفة"
450+msgstr ""
463
451
464−#: qml/Tutorial/TutorialBottomFinish.qml:25
452+#: qml/Tutorial/TutorialBottom.qml:80
465−msgid "Tap here to finish."
453+msgid "Swipe up for favorite calculations"
466−msgstr "انقر هنا للإنهاء."
454+msgstr ""
467
455
468−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
456+#: qml/Tutorial/TutorialBottom.qml:82
469−#: qml/Tutorial/TutorialRight.qml:144
457+msgid "Swipe up for recent calls"
470−msgid "Tap here to continue."
458+msgstr ""
471−msgstr "انقر هنا للمتابعة."
472
459
473−#: qml/Tutorial/TutorialLeft.qml:26
460+#: qml/Tutorial/TutorialBottom.qml:84
474−msgid "Open the launcher"
461+msgid "Swipe up to create a message"
475msgstr ""
462msgstr ""
476
463
477−#: qml/Tutorial/TutorialLeft.qml:27
464+#: qml/Tutorial/TutorialBottom.qml:85
478−msgid "Short swipe from the left edge."
465+msgid "Swipe up to manage the app"
479−msgstr "اسحب سحبة قصيرة من الحافة اليسرى."
466+msgstr ""
480
467
481−#: qml/Tutorial/TutorialLeftFinish.qml:24
468+#: qml/Tutorial/TutorialLeft.qml:47
482−msgid "These are the shortcuts to favorite apps"
469+msgid "Swipe from the left edge to open the launcher"
483−msgstr "هذه اختصارات للتطبيقات المُفضلة"
470+msgstr ""
484
471
485−#: qml/Tutorial/TutorialPage.qml:178
472+#: qml/Tutorial/TutorialLeftLong.qml:47
486−msgid "You almost got it!"
473+msgid "Long swipe from the left edge to open the Today scope"
487−msgstr "انت حصلت على ذلك تقريبا!"
474+msgstr ""
488
475
489−#: qml/Tutorial/TutorialPage.qml:195
476+#: qml/Tutorial/TutorialRight.qml:54
490−msgid "Try again."
477+msgid "Hover your mouse on the right edge to view your open apps"
491−msgstr "حاول مجددًا."
478+msgstr ""
492
479
493−#: qml/Tutorial/TutorialRight.qml:31
480+#: qml/Tutorial/TutorialRight.qml:55
494−msgid "To view open apps"
481+msgid "Short or long swipe from the right edge to view your open apps"
495msgstr ""
482msgstr ""
496
483
497−#: qml/Tutorial/TutorialRight.qml:32
484+#: qml/Tutorial/TutorialTop.qml:53
498−msgid "Long swipe from the right edge."
485+msgid "Swipe from the top right edge to open the notification bar"
499−msgstr "سحبة طويلة من الحافة اليمنى."
486+msgstr ""
500
487
501−#: qml/Tutorial/TutorialRight.qml:122
488+#: qml/Tutorial/TutorialTop.qml:54
502−msgid "View all your running tasks."
489+msgid "Swipe from the top edge to open the notification bar"
503−msgstr "عرض جميع المهام النشطة."
490+msgstr ""
504
491
505−#: qml/Wizard/Page.qml:89
492+#: qml/Wizard/Page.qml:54
506msgctxt "Button: Go back one page in the Wizard"
493msgctxt "Button: Go back one page in the Wizard"
507msgid "Back"
494msgid "Back"
508msgstr "عودة"
495msgstr "عودة"
509
496
510#: qml/Wizard/Pages/10-welcome.qml:27
497#: qml/Wizard/Pages/10-welcome.qml:27
511−msgid "Hi!"
498+msgid "Language"
512−msgstr "أهلا!"
499+msgstr ""
513
500
514−#: qml/Wizard/Pages/10-welcome.qml:44
501+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
515−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"
516msgstr ""
508msgstr ""
517
509
518−#: qml/Wizard/Pages/10-welcome.qml:52
510+#: qml/Wizard/Pages/30-wifi.qml:29
519−msgid "Let’s get started."
511+msgid "Connect to Wi‑Fi"
520−msgstr "هيا بنا نبدأ."
512+msgstr "اتصل بالواي فاي"
521
513
522−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
514+#: qml/Wizard/Pages/30-wifi.qml:130
523−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
515+msgid "Connected"
524−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
525−#: qml/Wizard/Pages/passwd-set.qml:90
526−msgid "Continue"
527−msgstr "متابعة"
516+msgstr ""
528
517
529−#: qml/Wizard/Pages/20-sim.qml:25
518+#: qml/Wizard/Pages/30-wifi.qml:163
530−msgid "Add a SIM card and restart your device"
519+msgid "Available Wi-Fi networks"
531−msgstr "أدخِل شريحة SIM ثم أعِد تشغيل الجهاز"
520+msgstr ""
532
521
533−#: qml/Wizard/Pages/20-sim.qml:59
522+#: qml/Wizard/Pages/30-wifi.qml:164
534−msgid "Without it, you won’t be able to make calls or use text messaging."
523+msgid "No available Wi-Fi networks"
535msgstr ""
524msgstr ""
536−"بدونها لن تتمكن من إجراء أي مكالمات هاتفية أو استخدام الرسائل النصية."
537
525
538−#: 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
539msgid "Skip"
528msgid "Skip"
540msgstr "تخطي"
529msgstr "تخطي"
541
530
542−#: qml/Wizard/Pages/30-passwd-type.qml:39
531+#: qml/Wizard/Pages/40-location.qml:27
543−msgid "Lock security"
532+msgid "Location Services"
544−msgstr "قِفل الأمان"
533+msgstr ""
545
534
546−#: qml/Wizard/Pages/30-passwd-type.qml:79
535+#: qml/Wizard/Pages/40-location.qml:83
547−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)"
548msgstr ""
539msgstr ""
549
540
550−#: qml/Wizard/Pages/30-passwd-type.qml:102
541+#: qml/Wizard/Pages/40-location.qml:105
551−msgctxt "Label: Type of security method"
542+#, qt-format
552−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"
553−msgstr "سحبة"
549+msgstr ""
554
550
555−#: qml/Wizard/Pages/30-passwd-type.qml:103
551+#: qml/Wizard/Pages/40-location.qml:160
556−msgctxt "Label: Description of security method"
552+msgid "GPS only"
557−msgid "No security"
553+msgstr ""
554+
555+#: qml/Wizard/Pages/40-location.qml:214
556+msgid "Don't use my location"
558−msgstr "بدون أمان"
557+msgstr ""
559
558
560−#: qml/Wizard/Pages/30-passwd-type.qml:105
559+#: qml/Wizard/Pages/40-location.qml:260
560+msgid "You can change it later in System Settings."
561+msgstr ""
562+
563+#: qml/Wizard/Pages/50-timezone.qml:29
564+msgid "Time Zone"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/50-timezone.qml:178
568+msgid "Enter your city"
569+msgstr ""
570+
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
561msgctxt "Label: Type of security method"
584msgctxt "Label: Type of security method"
562−msgid "Passcode"
585+msgid "Create new password"
563−msgstr "رمز سري"
586+msgstr ""
564
587
565−#: qml/Wizard/Pages/30-passwd-type.qml:106
588+#: qml/Wizard/Pages/70-passwd-type.qml:103
566−msgctxt "Label: Description of security method"
589+msgctxt "Label: Type of security method"
567−msgid "4 digits only"
590+msgid "Create passcode (numbers only)"
568−msgstr "4 أرقام فقط"
591+msgstr ""
569
592
570−#: qml/Wizard/Pages/30-passwd-type.qml:108
593+#: qml/Wizard/Pages/70-passwd-type.qml:105
571msgctxt "Label: Type of security method"
594msgctxt "Label: Type of security method"
572−msgid "Passphrase"
595+msgid "No lock code"
573−msgstr "عبارة سرية"
596+msgstr ""
574
597
575−#: qml/Wizard/Pages/30-passwd-type.qml:109
598+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
576−msgctxt "Label: Description of security method"
599+msgid "Privacy Policy"
577−msgid "Numbers and letters"
600+msgstr ""
578−msgstr "أرقام وحروف"
579
601
580−#: qml/Wizard/Pages/40-wifi.qml:29
602+#: qml/Wizard/Pages/75-report-check.qml:26
581−msgid "Connect to Wi‑Fi"
603+msgid "Help Us Improve"
582−msgstr "اتصل بالواي فاي"
604+msgstr ""
583
605
584−#: qml/Wizard/Pages/40-wifi.qml:168
606+#: qml/Wizard/Pages/75-report-check.qml:59
585−msgid "Available networks…"
607+msgid "Improve system performance by sending us crashes and error reports."
586−msgstr "الشبكات المتاحة..."
608+msgstr ""
587
609
588−#: qml/Wizard/Pages/40-wifi.qml:169
610+#: qml/Wizard/Pages/75-report-check.qml:60
589−msgid "No available networks."
611+msgid "Privacy policy"
590−msgstr "لا توجد شبكات متاحة."
612+msgstr ""
591
613
592−#: qml/Wizard/Pages/50-location.qml:27
614+#: qml/Wizard/Pages/80-finished.qml:89
593−msgid "Location"
615+msgid "Welcome to Ubuntu"
594−msgstr "الموقع"
616+msgstr ""
595
617
596−#: qml/Wizard/Pages/50-location.qml:62
618+#: qml/Wizard/Pages/80-finished.qml:104
597−msgid "Let the phone detect your location:"
619+msgid "You are ready to use your device now"
598−msgstr "دع هاتفك يحدد موقعك:"
620+msgstr ""
599
621
600−#: qml/Wizard/Pages/50-location.qml:69
622+#: qml/Wizard/Pages/80-finished.qml:124
601−msgid "Using GPS only (less accurate)"
623+msgid "Get Started"
602−msgstr "باستخدام نظام تحديد المواقع (GPS) فقط (أقل دقّة)"
624+msgstr ""
603
625
604−#: qml/Wizard/Pages/50-location.qml:86
626+#: qml/Wizard/Pages/here-terms.qml:25
605−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
627+msgid "Terms & Conditions"
628+msgstr "الشروط والأحكام"
629+
630+#: qml/Wizard/Pages/here-terms.qml:69
631+msgid "Your device uses positioning technologies provided by HERE."
606msgstr ""
632msgstr ""
607−"باستخدام نظام تحديد المواقع (GPS)، والواي فاي، وبيانات الشبكة الخلوية "
608−"(مستحسن)"
609
633
610−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
611−#: qml/Wizard/Pages/50-location.qml:103
634+#: qml/Wizard/Pages/here-terms.qml:81
612msgid ""
635msgid ""
613−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
636+"To provide you with positioning services and to improve their quality, HERE "
614−"conditions</a>."
637+"collects information about nearby cell towers and Wi-Fi hotspots around your "
638+"current location whenever your position is being found."
615msgstr ""
639msgstr ""
616−"باختيارك لهذا الخيار فإنك توافق على <a href='#'>الشروط والأحكام</a> الخاصة "
617−"بـ Nokia HERE."
618
640
619−#: qml/Wizard/Pages/50-location.qml:112
641+#: qml/Wizard/Pages/here-terms.qml:93
620−msgid "Not at all"
642+msgid ""
643+"The information collected is used to analyze the service and to improve the "
644+"use of service, but not to identify you personally."
621msgstr ""
645msgstr ""
622
646
623−#: qml/Wizard/Pages/50-location.qml:124
647+#: qml/Wizard/Pages/here-terms.qml:106
624−msgid "You can change your mind later in <b>System Settings</b>."
648+#, qt-format
625−msgstr "يمكنك تغيير رأيك في وقت لاحق عن طريق <b>إعدادات النظام</b>."
649+msgid "By continuing, you agree to the HERE platform %1 and %2."
650+msgstr ""
626
651
627−#: qml/Wizard/Pages/60-reporting.qml:26
652+#: qml/Wizard/Pages/here-terms.qml:107
628−msgid "Improving your experience"
653+msgid "Service Terms"
629−msgstr "تحسين تجربتك"
654+msgstr ""
630
655
631−#: qml/Wizard/Pages/60-reporting.qml:46
656+#: qml/Wizard/Pages/passcode-confirm.qml:43
657+#: qml/Wizard/Pages/passcode-desktop.qml:80
632−msgid ""
658+msgid "Confirm passcode"
633−"Your phone is set up to automatically report errors to Canonical and its "
659+msgstr "تأكيد الرمز السري"
634−"partners, the makers of the operating system."
660+
661+#: qml/Wizard/Pages/passcode-confirm.qml:45
662+msgid "Incorrect passcode."
635msgstr ""
663msgstr ""
636−"هاتفك مُعدّ لإرسال تقارير آلية بالأخطاء إلى كانونيكال وشركائها (صانعي نظام "
637−"التشغيل)."
638
664
639−#: qml/Wizard/Pages/60-reporting.qml:53
665+#: qml/Wizard/Pages/passcode-confirm.qml:45
666+msgctxt "Enter the passcode again"
640−msgid ""
667+msgid "Please re-enter."
641−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
642−"Privacy</b>"
643msgstr ""
668msgstr ""
644−"يمكن تعطيل ذلك بالذهاب إلى <b>إعدادات النظام</b> من خلال <b>الأمان "
645−"والخصوصية</b>"
646
669
647−#: qml/Wizard/Pages/80-finished.qml:24
670+#: qml/Wizard/Pages/passcode-desktop.qml:30
648−msgid "All done"
671+msgid "Lock Screen Passcode"
649−msgstr "تم ذلك"
672+msgstr ""
650
673
651−#: qml/Wizard/Pages/80-finished.qml:39
674+#: qml/Wizard/Pages/passcode-desktop.qml:56
652−msgid "Nice work!"
675+msgid "Enter 4 numbers to setup your passcode"
653−msgstr "عمل جيد!"
676+msgstr ""
654
677
655−#: qml/Wizard/Pages/80-finished.qml:46
678+#: qml/Wizard/Pages/passcode-desktop.qml:65
656−msgid "Your device is now ready to use."
679+#: qml/Wizard/Pages/passcode-set.qml:54
680+msgid "Choose passcode"
657msgstr ""
681msgstr ""
658
682
659−#: qml/Wizard/Pages/80-finished.qml:53
683+#: qml/Wizard/Pages/passcode-desktop.qml:105
660−msgid "Finish"
684+msgid "Passcode too short"
661−msgstr "إنهاء"
685+msgstr ""
662
686
663−#: qml/Wizard/Pages/here-terms.qml:27
687+#: qml/Wizard/Pages/passcode-desktop.qml:107
664−msgid "Terms & Conditions"
688+msgid "Passcodes match"
665−msgstr "الشروط والأحكام"
689+msgstr ""
666
690
667−#: qml/Wizard/Pages/passwd-confirm.qml:49
691+#: qml/Wizard/Pages/passcode-desktop.qml:109
668−msgid "Confirm passphrase"
692+msgid "Passcodes do not match"
669−msgstr "تأكيد العبارة السرية"
693+msgstr ""
670
694
671−#: qml/Wizard/Pages/passwd-confirm.qml:50
695+#: qml/Wizard/Pages/passcode-set.qml:62
672−msgid "Confirm passcode"
696+msgid "Passcode must be 4 characters long"
673−msgstr "تأكيد الرمز السري"
697+msgstr ""
698+
699+#: qml/Wizard/Pages/password-set.qml:30
700+msgid "Lock Screen Password"
701+msgstr ""
674
702
675−#: qml/Wizard/Pages/passwd-confirm.qml:53
703+#: qml/Wizard/Pages/password-set.qml:61
676−#: qml/Wizard/Pages/passwd-confirm.qml:54
704+msgid "Enter at least 8 characters"
677−msgid "Please try again."
678−msgstr "حاول مجددا."
705+msgstr ""
679
706
680−#: qml/Wizard/Pages/passwd-set.qml:61
707+#: qml/Wizard/Pages/password-set.qml:73
681−msgid "Choose your passcode"
708+msgid "Choose password"
682−msgstr "اختر الرمز السري خاصتك"
709+msgstr ""
683
710
684−#: qml/Wizard/Pages/passwd-set.qml:68
711+#: qml/Wizard/Pages/password-set.qml:103
685−msgid "Passphrase must be 4 characters long"
712+msgid "Confirm password"
686−msgstr "يجب أن تحتوي العبارة السرية على 4 أحرف على الأقل"
713+msgstr ""
687
714
688−#. Translators: This is the arrow for "Back" buttons
689−#: qml/Wizard/StackButton.qml:39
715+#: qml/Wizard/Pages/sim.qml:27
690−#, qt-format
716+msgid "No SIM card installed"
691−msgid "〈 %1"
692msgstr ""
717msgstr ""
693
718
694−#. 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+
695−#: qml/Wizard/StackButton.qml:42
731+#: qml/Wizard/Pages/sim.qml:78
696−#, qt-format
732+msgid "You won’t be able to make calls or use text messaging without a SIM."
697−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"
698msgstr ""
761msgstr ""
699
762
700#~ msgid "Confirm"
763#~ msgid "Confirm"
@@ -783,14 +846,179 @@ msgstr ""
783#~ msgid "Tomorrow %H:%M"
846#~ msgid "Tomorrow %H:%M"
784#~ msgstr "غدًا %H:%M"
847#~ msgstr "غدًا %H:%M"
785
848
849+#~ msgid "Are you sure you want to shut down?"
850+#~ msgstr "هل أنت متأكد من رغبتك في إطفاء الجهاز؟"
851+
852+#~ msgctxt "Button: Shut down the system"
853+#~ msgid "Shut down"
854+#~ msgstr "إطفاء الجهاز"
855+
856+#~ msgctxt "Title: Reboot/Shut down dialog"
857+#~ msgid "Shut down"
858+#~ msgstr "إطفاء الجهاز"
859+
860+#~ msgctxt "Button: Reboot the system"
861+#~ msgid "Reboot"
862+#~ msgstr "إعادة التشغيل"
863+
786#~ msgid "Please re-enter"
864#~ msgid "Please re-enter"
787#~ msgstr "برجاء إعادة إدخالها"
865#~ msgstr "برجاء إعادة إدخالها"
788
866
867+#~ msgid "This action does different things for different apps"
868+#~ msgstr "هذا الإجراء يقوم بأشياء مختلفة على التطبيقات المختلفة"
869+
870+#~ msgid "These are the shortcuts to favorite apps"
871+#~ msgstr "هذه اختصارات للتطبيقات المُفضلة"
872+
873+#~ msgid "Roaming"
874+#~ msgstr "التجوال"
875+
876+#~ msgid "Short swipe from the left edge."
877+#~ msgstr "اسحب سحبة قصيرة من الحافة اليسرى."
878+
879+#~ msgid "Tap here to continue."
880+#~ msgstr "انقر هنا للمتابعة."
881+
882+#~ msgid "Swipe up from the bottom edge."
883+#~ msgstr "اسحب لأعلى من الحافة السفلى."
884+
885+#~ msgid "Open special menus"
886+#~ msgstr "فتح قوائم خاصة"
887+
888+#~ msgid "Tap here to finish."
889+#~ msgstr "انقر هنا للإنهاء."
890+
891+#~ msgid "Long swipe from the right edge."
892+#~ msgstr "سحبة طويلة من الحافة اليمنى."
893+
894+#~ msgid "View all your running tasks."
895+#~ msgstr "عرض جميع المهام النشطة."
896+
897+#~ msgid "Confirm passphrase"
898+#~ msgstr "تأكيد العبارة السرية"
899+
900+#~ msgid "Try again."
901+#~ msgstr "حاول مجددًا."
902+
903+#~ msgid "Please try again."
904+#~ msgstr "حاول مجددا."
905+
906+#~ msgid "Lock security"
907+#~ msgstr "قِفل الأمان"
908+
909+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
910+#~ msgstr ""
911+#~ "بدونها لن تتمكن من إجراء أي مكالمات هاتفية أو استخدام الرسائل النصية."
912+
913+#~ msgid "Add a SIM card and restart your device"
914+#~ msgstr "أدخِل شريحة SIM ثم أعِد تشغيل الجهاز"
915+
916+#~ msgid "Hi!"
917+#~ msgstr "أهلا!"
918+
789#~ msgid "Welcome to your Ubuntu phone."
919#~ msgid "Welcome to your Ubuntu phone."
790#~ msgstr "مرحبا بك في أوبونتو للهواتف."
920#~ msgstr "مرحبا بك في أوبونتو للهواتف."
791
921
922+#~ msgid "Let’s get started."
923+#~ msgstr "هيا بنا نبدأ."
924+
925+#~ msgid "Continue"
926+#~ msgstr "متابعة"
927+
928+#~ msgid "Choose your passcode"
929+#~ msgstr "اختر الرمز السري خاصتك"
930+
931+#~ msgid "Passphrase must be 4 characters long"
932+#~ msgstr "يجب أن تحتوي العبارة السرية على 4 أحرف على الأقل"
933+
934+#~ msgid "Available networks…"
935+#~ msgstr "الشبكات المتاحة..."
936+
792#~ msgid "Please select how you’d like to unlock your phone."
937#~ msgid "Please select how you’d like to unlock your phone."
793#~ msgstr "رجاءً اختر الطريقة التي ترغب بأن توصد هاتفك بها."
938#~ msgstr "رجاءً اختر الطريقة التي ترغب بأن توصد هاتفك بها."
794
939
940+#~ msgctxt "Label: Description of security method"
941+#~ msgid "No security"
942+#~ msgstr "بدون أمان"
943+
944+#~ msgctxt "Label: Type of security method"
945+#~ msgid "Swipe"
946+#~ msgstr "سحبة"
947+
948+#~ msgctxt "Label: Description of security method"
949+#~ msgid "4 digits only"
950+#~ msgstr "4 أرقام فقط"
951+
952+#~ msgctxt "Label: Type of security method"
953+#~ msgid "Passcode"
954+#~ msgstr "رمز سري"
955+
956+#~ msgid "No available networks."
957+#~ msgstr "لا توجد شبكات متاحة."
958+
959+#~ msgctxt "Label: Type of security method"
960+#~ msgid "Passphrase"
961+#~ msgstr "عبارة سرية"
962+
963+#~ msgctxt "Label: Description of security method"
964+#~ msgid "Numbers and letters"
965+#~ msgstr "أرقام وحروف"
966+
967+#~ msgid "Improving your experience"
968+#~ msgstr "تحسين تجربتك"
969+
970+#~ msgid "You can change your mind later in <b>System Settings</b>."
971+#~ msgstr "يمكنك تغيير رأيك في وقت لاحق عن طريق <b>إعدادات النظام</b>."
972+
973+#~ msgid "Location"
974+#~ msgstr "الموقع"
975+
976+#~ msgid "Let the phone detect your location:"
977+#~ msgstr "دع هاتفك يحدد موقعك:"
978+
979+#~ msgid "Using GPS only (less accurate)"
980+#~ msgstr "باستخدام نظام تحديد المواقع (GPS) فقط (أقل دقّة)"
981+
982+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
983+#~ msgstr ""
984+#~ "باستخدام نظام تحديد المواقع (GPS)، والواي فاي، وبيانات الشبكة الخلوية "
985+#~ "(مستحسن)"
986+
987+#~ msgid ""
988+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
989+#~ "Privacy</b>"
990+#~ msgstr ""
991+#~ "يمكن تعطيل ذلك بالذهاب إلى <b>إعدادات النظام</b> من خلال <b>الأمان "
992+#~ "والخصوصية</b>"
993+
994+#~ msgid "Nice work!"
995+#~ msgstr "عمل جيد!"
996+
997+#~ msgid "All done"
998+#~ msgstr "تم ذلك"
999+
1000+#~ msgid "Finish"
1001+#~ msgstr "إنهاء"
1002+
795#~ msgid "Your phone is now ready to use."
1003#~ msgid "Your phone is now ready to use."
796#~ msgstr "هاتفك جاهز الآن للاستخدام."
1004#~ msgstr "هاتفك جاهز الآن للاستخدام."
1005+
1006+#~ msgid "You almost got it!"
1007+#~ msgstr "انت حصلت على ذلك تقريبا!"
1008+
1009+#~ msgid ""
1010+#~ "Your phone is set up to automatically report errors to Canonical and its "
1011+#~ "partners, the makers of the operating system."
1012+#~ msgstr ""
1013+#~ "هاتفك مُعدّ لإرسال تقارير آلية بالأخطاء إلى كانونيكال وشركائها (صانعي نظام "
1014+#~ "التشغيل)."
1015+
1016+#~ msgid "Unlock SIM"
1017+#~ msgstr "فتح قفل بطاقة SIM"
1018+
1019+#~ msgid ""
1020+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1021+#~ "conditions</a>."
1022+#~ msgstr ""
1023+#~ "باختيارك لهذا الخيار فإنك توافق على <a href='#'>الشروط والأحكام</a> الخاصة "
1024+#~ "بـ Nokia HERE."
po/ast.po+506−264
@@ -7,31 +7,31 @@ 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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
11−"PO-Revision-Date: 2015-10-06 12:07+0000\n"
11+"PO-Revision-Date: 2016-04-17 16:57+0000\n"
12"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
12"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
13"Language-Team: Asturian <ast@li.org>\n"
13"Language-Team: Asturian <ast@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
18+"X-Launchpad-Export-Date: 2016-04-18 05:42+0000\n"
19−"X-Generator: Launchpad (build 17925)\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: "
23msgstr "Contraseña: "
23msgstr "Contraseña: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Anclar atayu"
28msgstr "Anclar atayu"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31msgid "Quit"
31msgid "Quit"
32msgstr "Colar"
32msgstr "Colar"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Desanclar atayu"
36msgstr "Desanclar atayu"
37
37
@@ -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:219
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:183
115msgid "Yes"
97msgid "Yes"
116msgstr "Sí"
98msgstr "Sí"
117
99
118−#: qml/Components/Dialogs.qml:232
100+#: qml/Components/Dialogs.qml:198
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:199
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,88 +110,106 @@ 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:201
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:210
137msgctxt "Button: Restart the system"
119msgctxt "Button: Restart the system"
138msgid "Restart"
120msgid "Restart"
139msgstr "Reaniciar"
121msgstr "Reaniciar"
140
122
141−#: qml/Components/Lockscreen.qml:245
123+#: qml/Components/Lockscreen.qml:231
142msgid "Return to Call"
124msgid "Return to Call"
143msgstr "Tornar a la llamada"
125msgstr "Tornar a la llamada"
144
126
145−#: qml/Components/Lockscreen.qml:245
127+#: qml/Components/Lockscreen.qml:231
146msgid "Emergency Call"
128msgid "Emergency Call"
147msgstr "Llamada d'emerxencia"
129msgstr "Llamada d'emerxencia"
148
130
149−#: qml/Components/Lockscreen.qml:277
131+#: qml/Components/Lockscreen.qml:263
150msgid "OK"
132msgid "OK"
151msgstr "Aceutar"
133msgstr "Aceutar"
152
134
153#: qml/Components/ModeSwitchWarningDialog.qml:32
135#: qml/Components/ModeSwitchWarningDialog.qml:32
154msgid "Apps may have unsaved data:"
136msgid "Apps may have unsaved data:"
155−msgstr ""
137+msgstr "Apps que pueden tener datos sin guardar:"
156
138
157#: qml/Components/ModeSwitchWarningDialog.qml:57
139#: qml/Components/ModeSwitchWarningDialog.qml:57
140+msgctxt ""
141+"Re-dock means connect the device again to an external screen/mouse/keyboard"
158msgid "Re-dock, save your work and close these apps to continue."
142msgid "Re-dock, save your work and close these apps to continue."
159msgstr ""
143msgstr ""
160
144
161#: qml/Components/ModeSwitchWarningDialog.qml:63
145#: qml/Components/ModeSwitchWarningDialog.qml:63
162msgid "Or force close now (unsaved data will be lost)."
146msgid "Or force close now (unsaved data will be lost)."
163−msgstr ""
147+msgstr "O fuerza salir agora (perderás tolos datos sin guardar)."
164
148
165#: qml/Components/ModeSwitchWarningDialog.qml:75
149#: qml/Components/ModeSwitchWarningDialog.qml:75
166msgid "OK, I will reconnect"
150msgid "OK, I will reconnect"
167−msgstr ""
151+msgstr "D'alcuerdu, reconeutaré"
168
152
169#: qml/Components/ModeSwitchWarningDialog.qml:76
153#: qml/Components/ModeSwitchWarningDialog.qml:76
170msgid "Reconnect now!"
154msgid "Reconnect now!"
171−msgstr ""
155+msgstr "Reconeutar agora."
172
156
173#: qml/Components/ModeSwitchWarningDialog.qml:88
157#: qml/Components/ModeSwitchWarningDialog.qml:88
174msgid "Close all"
158msgid "Close all"
175−msgstr ""
159+msgstr "Zarrar too"
176
160
177−#: qml/Dash/DashPageHeader.qml:266
161+#: qml/Dash/DashPageHeader.qml:337
178msgctxt "Button: Open the Ubuntu Store"
162msgctxt "Button: Open the Ubuntu Store"
179msgid "Store"
163msgid "Store"
180msgstr "Tienda"
164msgstr "Tienda"
181
165
182−#: qml/Dash/DashPageHeader.qml:273
166+#: qml/Dash/DashPageHeader.qml:344
183msgctxt "Button: Start a search in the current dash scope"
167msgctxt "Button: Start a search in the current dash scope"
184msgid "Search"
168msgid "Search"
185msgstr "Guetar"
169msgstr "Guetar"
186
170
187−#: qml/Dash/DashPageHeader.qml:283
171+#: qml/Dash/DashPageHeader.qml:354
188msgctxt "Button: Show the current dash scope settings"
172msgctxt "Button: Show the current dash scope settings"
189msgid "Settings"
173msgid "Settings"
190msgstr "Axustes"
174msgstr "Axustes"
191
175
192−#: qml/Dash/DashPageHeader.qml:290
176+#: qml/Dash/DashPageHeader.qml:361
193msgid "Remove from Favorites"
177msgid "Remove from Favorites"
194msgstr "Desaniciar de favoritos"
178msgstr "Desaniciar de favoritos"
195
179
196−#: qml/Dash/DashPageHeader.qml:290
180+#: qml/Dash/DashPageHeader.qml:361
197msgid "Add to Favorites"
181msgid "Add to Favorites"
198msgstr "Amestar a favoritos"
182msgstr "Amestar a favoritos"
199
183
184+#: qml/Dash/FiltersPopover.qml:60
185+msgid "Refine your results"
186+msgstr ""
187+
188+#: qml/Dash/FiltersPopover.qml:69
189+msgid "Reset"
190+msgstr "Reafitar"
191+
200−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
192+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
201msgid "See less"
193msgid "See less"
202msgstr "Ver menos"
194msgstr "Ver menos"
203
195
204−#: qml/Dash/GenericScopeView.qml:587
196+#: qml/Dash/GenericScopeView.qml:570
205msgid "See all"
197msgid "See all"
206msgstr "Ver too"
198msgstr "Ver too"
207
199
208−#: qml/Dash/GenericScopeView.qml:649
200+#: qml/Dash/GenericScopeView.qml:627
209msgctxt "Label: Hint for dash search line edit"
201msgctxt "Label: Hint for dash search line edit"
210msgid "Search"
202msgid "Search"
211msgstr "Guetar"
203msgstr "Guetar"
212
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+
213#: qml/Dash/Previews/PreviewActionCombo.qml:35
213#: qml/Dash/Previews/PreviewActionCombo.qml:35
214msgid "More..."
214msgid "More..."
215msgstr "Más…"
215msgstr "Más…"
@@ -231,9 +231,9 @@ msgstr "Valorar esto"
231msgid "Add a review"
231msgid "Add a review"
232msgstr "Amestar una reseña"
232msgstr "Amestar una reseña"
233
233
234−#: qml/Dash/Previews/PreviewSharing.qml:50
234+#: qml/Dash/Previews/PreviewSharing.qml:66
235msgid "Preview Share Item"
235msgid "Preview Share Item"
236−msgstr ""
236+msgstr "Entever l'elementu compartíu"
237
237
238#: qml/Dash/PullToRefreshScopeStyle.qml:55
238#: qml/Dash/PullToRefreshScopeStyle.qml:55
239msgid "Pull to refresh…"
239msgid "Pull to refresh…"
@@ -259,13 +259,13 @@ msgstr "Aniciu"
259msgid "Also installed"
259msgid "Also installed"
260msgstr "Tamién instalaos"
260msgstr "Tamién instalaos"
261
261
262−#: qml/DisabledScreenNotice.qml:87
262+#: qml/DisabledScreenNotice.qml:104
263msgid ""
263msgid ""
264"Your device is now connected to an external display. Use this screen as a "
264"Your device is now connected to an external display. Use this screen as a "
265−"touch pad to interact with the mouse."
265+"touch pad to interact with the pointer."
266msgstr ""
266msgstr ""
267
267
268−#: qml/Greeter/CoverPage.qml:107
268+#: qml/Greeter/CoverPage.qml:118
269msgid "Unlock"
269msgid "Unlock"
270msgstr "Desbloquiar"
270msgstr "Desbloquiar"
271
271
@@ -277,11 +277,11 @@ msgstr "Reintentar"
277msgid "Tap to unlock"
277msgid "Tap to unlock"
278msgstr "Calca pa desbloquiar"
278msgstr "Calca pa desbloquiar"
279
279
280−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
280+#: qml/Greeter/NarrowView.qml:54
281msgid "Sorry, incorrect passphrase."
281msgid "Sorry, incorrect passphrase."
282msgstr "Perdón, fras de pasu incorreuta"
282msgstr "Perdón, fras de pasu incorreuta"
283
283
284−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
284+#: qml/Greeter/NarrowView.qml:55
285msgid "Sorry, incorrect passcode."
285msgid "Sorry, incorrect passcode."
286msgstr "Perdón, códigu de pasu incorreutu."
286msgstr "Perdón, códigu de pasu incorreutu."
287
287
@@ -310,7 +310,7 @@ msgstr ""
310msgid "Enter %1"
310msgid "Enter %1"
311msgstr "Introduz %1"
311msgstr "Introduz %1"
312
312
313−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
313+#: qml/Greeter/NarrowView.qml:117
314msgid "Enter passphrase"
314msgid "Enter passphrase"
315msgstr "Introduz la fras de pasu"
315msgstr "Introduz la fras de pasu"
316
316
@@ -348,62 +348,62 @@ msgstr "Toca pa tornar a la llamada..."
348msgid "Conference"
348msgid "Conference"
349msgstr "Conferencia"
349msgstr "Conferencia"
350
350
351−#: qml/Panel/Indicators/MenuItemFactory.qml:753
351+#: qml/Panel/Indicators/MenuItemFactory.qml:761
352msgid "Nothing is playing"
352msgid "Nothing is playing"
353msgstr "Nun ta reproduciéndose nada"
353msgstr "Nun ta reproduciéndose nada"
354
354
355−#: qml/Panel/Indicators/MenuItemFactory.qml:882
355+#: qml/Panel/Indicators/MenuItemFactory.qml:890
356#, qt-format
356#, qt-format
357msgid "%1 hour"
357msgid "%1 hour"
358msgid_plural "%1 hours"
358msgid_plural "%1 hours"
359msgstr[0] "%1 hora"
359msgstr[0] "%1 hora"
360msgstr[1] "%1 hores"
360msgstr[1] "%1 hores"
361
361
362−#: qml/Panel/Indicators/MenuItemFactory.qml:886
362+#: qml/Panel/Indicators/MenuItemFactory.qml:894
363#, qt-format
363#, qt-format
364msgid "%1 minute"
364msgid "%1 minute"
365msgid_plural "%1 minutes"
365msgid_plural "%1 minutes"
366msgstr[0] "%1 minutu"
366msgstr[0] "%1 minutu"
367msgstr[1] "%1 minutos"
367msgstr[1] "%1 minutos"
368
368
369−#: qml/Panel/Indicators/MenuItemFactory.qml:891
369+#: qml/Panel/Indicators/MenuItemFactory.qml:899
370#, qt-format
370#, qt-format
371msgid "%1 second"
371msgid "%1 second"
372msgid_plural "%1 seconds"
372msgid_plural "%1 seconds"
373msgstr[0] "%1 segundu"
373msgstr[0] "%1 segundu"
374msgstr[1] "%1 segundos"
374msgstr[1] "%1 segundos"
375
375
376−#: qml/Panel/Indicators/MenuItemFactory.qml:894
376+#: qml/Panel/Indicators/MenuItemFactory.qml:902
377msgid "0 seconds"
377msgid "0 seconds"
378msgstr "0 segundos"
378msgstr "0 segundos"
379
379
380#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
380#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
381−#: qml/Panel/Indicators/MenuItemFactory.qml:896
381+#: qml/Panel/Indicators/MenuItemFactory.qml:904
382#, qt-format
382#, qt-format
383msgid "%1 remaining"
383msgid "%1 remaining"
384msgstr "Queden %1"
384msgstr "Queden %1"
385
385
386−#: qml/Panel/Indicators/MenuItemFactory.qml:902
386+#: qml/Panel/Indicators/MenuItemFactory.qml:910
387msgid "In queue…"
387msgid "In queue…"
388msgstr "Na cola..."
388msgstr "Na cola..."
389
389
390−#: qml/Panel/Indicators/MenuItemFactory.qml:906
390+#: qml/Panel/Indicators/MenuItemFactory.qml:914
391msgid "Downloading"
391msgid "Downloading"
392msgstr "Baxando"
392msgstr "Baxando"
393
393
394−#: qml/Panel/Indicators/MenuItemFactory.qml:908
394+#: qml/Panel/Indicators/MenuItemFactory.qml:916
395msgid "Paused, tap to resume"
395msgid "Paused, tap to resume"
396msgstr "Posáu, toca pa reanudar"
396msgstr "Posáu, toca pa reanudar"
397
397
398−#: qml/Panel/Indicators/MenuItemFactory.qml:910
398+#: qml/Panel/Indicators/MenuItemFactory.qml:918
399msgid "Canceled"
399msgid "Canceled"
400msgstr "Encaboxáu"
400msgstr "Encaboxáu"
401
401
402−#: qml/Panel/Indicators/MenuItemFactory.qml:912
402+#: qml/Panel/Indicators/MenuItemFactory.qml:920
403msgid "Finished"
403msgid "Finished"
404msgstr "Finó"
404msgstr "Finó"
405
405
406−#: qml/Panel/Indicators/MenuItemFactory.qml:914
406+#: qml/Panel/Indicators/MenuItemFactory.qml:922
407msgid "Failed, tap to retry"
407msgid "Failed, tap to retry"
408msgstr "Falló, toca pa reintentar"
408msgstr "Falló, toca pa reintentar"
409
409
@@ -411,7 +411,7 @@ msgstr "Falló, toca pa reintentar"
411#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
411#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
412msgctxt "Button: Send a reply message"
412msgctxt "Button: Send a reply message"
413msgid "Send"
413msgid "Send"
414−msgstr ""
414+msgstr "Unviar"
415
415
416#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
416#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
417msgctxt "Label: Hint in message indicator line edit"
417msgctxt "Label: Hint in message indicator line edit"
@@ -421,261 +421,326 @@ msgstr "Responder"
421#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
421#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
422msgctxt "Button: Call back on phone"
422msgctxt "Button: Call back on phone"
423msgid "Call back"
423msgid "Call back"
424−msgstr ""
424+msgstr "Devolver llamada"
425−
426−#: qml/Panel/Indicators/ModemInfoItem.qml:105
427−msgid "Unlock SIM"
428−msgstr "Desbloquiar SIM"
429
425
430−#: qml/Panel/Indicators/RoamingIndication.qml:27
426+#: qml/Stages/SideStage.qml:76
431−msgid "Roaming"
427+msgid "Drag using 3 fingers any application from one window to the other"
432−msgstr "Roaming"
428+msgstr ""
433−
434−#: qml/Tutorial/TutorialBottom.qml:28
435−msgid "Open special menus"
436−msgstr "Abrir menús especiales"
437−
438−#: qml/Tutorial/TutorialBottom.qml:29
439−msgid "Swipe up from the bottom edge."
440−msgstr "Esliza dende'l berbesu d'embaxo."
441
429
442−#: qml/Tutorial/TutorialBottomFinish.qml:24
430+#: qml/Tutorial/TutorialBottom.qml:78
443−msgid "This action does different things for different apps"
431+msgid "Swipe up to add a contact"
444−msgstr "Esta aición fai coses distintes p'aplicaciones estremaes"
432+msgstr ""
445
433
446−#: qml/Tutorial/TutorialBottomFinish.qml:25
434+#: qml/Tutorial/TutorialBottom.qml:80
447−msgid "Tap here to finish."
435+msgid "Swipe up for favorite calculations"
448−msgstr "Toca equí pa finar."
436+msgstr ""
449
437
450−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
438+#: qml/Tutorial/TutorialBottom.qml:82
451−#: qml/Tutorial/TutorialRight.qml:144
439+msgid "Swipe up for recent calls"
452−msgid "Tap here to continue."
453−msgstr "Toca equí pa siguir."
440+msgstr ""
454
441
455−#: qml/Tutorial/TutorialLeft.qml:26
442+#: qml/Tutorial/TutorialBottom.qml:84
456−msgid "Open the launcher"
443+msgid "Swipe up to create a message"
457−msgstr "Abrir el llanzador"
444+msgstr ""
458
445
459−#: qml/Tutorial/TutorialLeft.qml:27
446+#: qml/Tutorial/TutorialBottom.qml:85
460−msgid "Short swipe from the left edge."
447+msgid "Swipe up to manage the app"
461−msgstr "Esliza un poco dende'l berbesu esquierdu."
448+msgstr ""
462
449
463−#: qml/Tutorial/TutorialLeftFinish.qml:24
450+#: qml/Tutorial/TutorialLeft.qml:47
464−msgid "These are the shortcuts to favorite apps"
451+msgid "Swipe from the left edge to open the launcher"
465−msgstr "Estos son los atayos a les aplicaciones favorites"
452+msgstr ""
466
453
467−#: qml/Tutorial/TutorialPage.qml:178
454+#: qml/Tutorial/TutorialLeftLong.qml:47
468−msgid "You almost got it!"
455+msgid "Long swipe from the left edge to open the Today scope"
469−msgstr "¡Yá cuasi finamos!"
456+msgstr ""
470
457
471−#: qml/Tutorial/TutorialPage.qml:195
458+#: qml/Tutorial/TutorialRight.qml:54
472−msgid "Try again."
459+msgid "Hover your mouse on the right edge to view your open apps"
473−msgstr "Intentar de nueves"
460+msgstr ""
474
461
475−#: qml/Tutorial/TutorialRight.qml:31
462+#: qml/Tutorial/TutorialRight.qml:55
476−msgid "To view open apps"
463+msgid "Short or long swipe from the right edge to view your open apps"
477−msgstr "Pa ver aplicaciones abiertes"
464+msgstr ""
478
465
479−#: qml/Tutorial/TutorialRight.qml:32
466+#: qml/Tutorial/TutorialTop.qml:53
480−msgid "Long swipe from the right edge."
467+msgid "Swipe from the top right edge to open the notification bar"
481−msgstr "Eslizamientu llargu dende'l berbesu drechu."
468+msgstr ""
482
469
483−#: qml/Tutorial/TutorialRight.qml:122
470+#: qml/Tutorial/TutorialTop.qml:54
484−msgid "View all your running tasks."
471+msgid "Swipe from the top edge to open the notification bar"
485−msgstr "Mira toles tos aplicaciones n'execución."
472+msgstr ""
486
473
487−#: qml/Wizard/Page.qml:89
474+#: qml/Wizard/Page.qml:54
488msgctxt "Button: Go back one page in the Wizard"
475msgctxt "Button: Go back one page in the Wizard"
489msgid "Back"
476msgid "Back"
490msgstr "Atrás"
477msgstr "Atrás"
491
478
492#: qml/Wizard/Pages/10-welcome.qml:27
479#: qml/Wizard/Pages/10-welcome.qml:27
493−msgid "Hi!"
480+msgid "Language"
494−msgstr "¡Hola!"
481+msgstr "Llingua"
495−
482+
496−#: qml/Wizard/Pages/10-welcome.qml:44
483+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
497−msgid "Welcome to your Ubuntu device."
484+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
485+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
486+#: qml/Wizard/Pages/75-report-check.qml:84
487+#: qml/Wizard/Pages/passcode-desktop.qml:124
488+#: qml/Wizard/Pages/password-set.qml:141
489+msgid "Next"
490+msgstr "Siguiente"
491+
492+#: qml/Wizard/Pages/30-wifi.qml:29
493+msgid "Connect to Wi‑Fi"
498−msgstr ""
494+msgstr "Coneutase al WiFi"
499−
500−#: qml/Wizard/Pages/10-welcome.qml:52
501−msgid "Let’s get started."
502−msgstr "Entamemos."
503
495
504−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
496+#: qml/Wizard/Pages/30-wifi.qml:130
505−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
497+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 "Siguir"
498+msgstr "Coneutáu"
510
499
511−#: qml/Wizard/Pages/20-sim.qml:25
500+#: qml/Wizard/Pages/30-wifi.qml:163
512−msgid "Add a SIM card and restart your device"
501+msgid "Available Wi-Fi networks"
513−msgstr "Amiesta una tarxeta SIM y reanicia'l to preséu"
502+msgstr "Redes Wi-Fi disponibles"
514
503
515−#: qml/Wizard/Pages/20-sim.qml:59
504+#: qml/Wizard/Pages/30-wifi.qml:164
516−msgid "Without it, you won’t be able to make calls or use text messaging."
505+msgid "No available Wi-Fi networks"
517−msgstr "Ensin ella, nun vas poder facer llamaes nin unviar mensaxes."
506+msgstr "Nun hai redes Wi-Fi disponibles"
518
507
519−#: 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
520msgid "Skip"
510msgid "Skip"
521msgstr "Saltar"
511msgstr "Saltar"
522
512
523−#: qml/Wizard/Pages/30-passwd-type.qml:39
513+#: qml/Wizard/Pages/40-location.qml:27
524−msgid "Lock security"
514+msgid "Location Services"
525−msgstr "Seguranza del bloquéu"
515+msgstr ""
526
516
527−#: qml/Wizard/Pages/30-passwd-type.qml:79
517+#: qml/Wizard/Pages/40-location.qml:83
528−msgid "Please select how you’d like to unlock your device."
518+msgid ""
519+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
520+"(recommended)"
529msgstr ""
521msgstr ""
530
522
531−#: qml/Wizard/Pages/30-passwd-type.qml:102
523+#: qml/Wizard/Pages/40-location.qml:105
532−msgctxt "Label: Type of security method"
524+#, qt-format
533−msgid "Swipe"
525+msgid "By selecting this option you agree to the Nokia HERE %1."
534−msgstr "Eslizar"
526+msgstr ""
535
527
536−#: qml/Wizard/Pages/30-passwd-type.qml:103
528+#: qml/Wizard/Pages/40-location.qml:106
537−msgctxt "Label: Description of security method"
529+msgctxt "part of: Nokia HERE terms and conditions"
538−msgid "No security"
530+msgid "terms and conditions"
539−msgstr "Ensin seguranza"
531+msgstr ""
540
532
541−#: qml/Wizard/Pages/30-passwd-type.qml:105
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"
564+
565+#: qml/Wizard/Pages/70-passwd-type.qml:101
542msgctxt "Label: Type of security method"
566msgctxt "Label: Type of security method"
543−msgid "Passcode"
567+msgid "Create new password"
544−msgstr "Códigu de pasu"
568+msgstr ""
545
569
546−#: qml/Wizard/Pages/30-passwd-type.qml:106
570+#: qml/Wizard/Pages/70-passwd-type.qml:103
547−msgctxt "Label: Description of security method"
571+msgctxt "Label: Type of security method"
548−msgid "4 digits only"
572+msgid "Create passcode (numbers only)"
549−msgstr "Namái 4 díxitos"
573+msgstr ""
550
574
551−#: qml/Wizard/Pages/30-passwd-type.qml:108
575+#: qml/Wizard/Pages/70-passwd-type.qml:105
552msgctxt "Label: Type of security method"
576msgctxt "Label: Type of security method"
553−msgid "Passphrase"
577+msgid "No lock code"
554−msgstr "Fras de pasu"
578+msgstr ""
555
579
556−#: qml/Wizard/Pages/30-passwd-type.qml:109
580+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
557−msgctxt "Label: Description of security method"
581+msgid "Privacy Policy"
558−msgid "Numbers and letters"
559−msgstr "Númberos y lletres"
582+msgstr ""
560
583
561−#: qml/Wizard/Pages/40-wifi.qml:29
584+#: qml/Wizard/Pages/75-report-check.qml:26
562−msgid "Connect to Wi‑Fi"
585+msgid "Help Us Improve"
563−msgstr "Coneutase al WiFi"
586+msgstr ""
564
587
565−#: qml/Wizard/Pages/40-wifi.qml:168
588+#: qml/Wizard/Pages/75-report-check.qml:59
566−msgid "Available networks…"
589+msgid "Improve system performance by sending us crashes and error reports."
567−msgstr "Redes disponibles..."
590+msgstr ""
591+
592+#: qml/Wizard/Pages/75-report-check.qml:60
593+msgid "Privacy policy"
594+msgstr ""
568
595
569−#: qml/Wizard/Pages/40-wifi.qml:169
596+#: qml/Wizard/Pages/80-finished.qml:89
570−msgid "No available networks."
597+msgid "Welcome to Ubuntu"
571−msgstr "Nun hai redes disponibles"
598+msgstr "Bienveníu/a a Ubuntu"
572
599
573−#: qml/Wizard/Pages/50-location.qml:27
600+#: qml/Wizard/Pages/80-finished.qml:104
574−msgid "Location"
601+msgid "You are ready to use your device now"
575−msgstr "Allugamientu"
602+msgstr ""
576
603
577−#: qml/Wizard/Pages/50-location.qml:62
604+#: qml/Wizard/Pages/80-finished.qml:124
578−msgid "Let the phone detect your location:"
605+msgid "Get Started"
579−msgstr "Dexar al teléfonu deteutar l'allugamientu:"
606+msgstr "Primeros pasos"
580
607
581−#: qml/Wizard/Pages/50-location.qml:69
608+#: qml/Wizard/Pages/here-terms.qml:25
582−msgid "Using GPS only (less accurate)"
609+msgid "Terms & Conditions"
583−msgstr "Namái usando GPS (menos precisión)"
610+msgstr "Términos y condiciones"
584
611
585−#: qml/Wizard/Pages/50-location.qml:86
612+#: qml/Wizard/Pages/here-terms.qml:69
586−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
613+msgid "Your device uses positioning technologies provided by HERE."
587msgstr ""
614msgstr ""
588−"Usando GPS, Wi-fi anónimes ya información de redes móviles (aconseyao)"
589
615
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
616+#: qml/Wizard/Pages/here-terms.qml:81
592msgid ""
617msgid ""
593−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
618+"To provide you with positioning services and to improve their quality, HERE "
594−"conditions</a>."
619+"collects information about nearby cell towers and Wi-Fi hotspots around your "
620+"current location whenever your position is being found."
595msgstr ""
621msgstr ""
596−"Esbillando esta opción aceutes los <a href='#'>términos y condiciones</a> de "
597−"Nokia HERE."
598
622
599−#: qml/Wizard/Pages/50-location.qml:112
623+#: qml/Wizard/Pages/here-terms.qml:93
600−msgid "Not at all"
624+msgid ""
625+"The information collected is used to analyze the service and to improve the "
626+"use of service, but not to identify you personally."
601−msgstr "De nengún mou"
627+msgstr ""
602
628
603−#: qml/Wizard/Pages/50-location.qml:124
629+#: qml/Wizard/Pages/here-terms.qml:106
604−msgid "You can change your mind later in <b>System Settings</b>."
630+#, qt-format
605−msgstr "Pues cambialo dempués n'<b>Axustes del sistema</b>."
631+msgid "By continuing, you agree to the HERE platform %1 and %2."
632+msgstr ""
606
633
607−#: qml/Wizard/Pages/60-reporting.qml:26
634+#: qml/Wizard/Pages/here-terms.qml:107
608−msgid "Improving your experience"
635+msgid "Service Terms"
609−msgstr "Ameyorando la to esperiencia"
636+msgstr ""
610
637
611−#: qml/Wizard/Pages/60-reporting.qml:46
638+#: qml/Wizard/Pages/passcode-confirm.qml:43
639+#: qml/Wizard/Pages/passcode-desktop.qml:80
612−msgid ""
640+msgid "Confirm passcode"
613−"Your phone is set up to automatically report errors to Canonical and its "
641+msgstr "Confirmar códigu de pasu"
614−"partners, the makers of the operating system."
642+
643+#: qml/Wizard/Pages/passcode-confirm.qml:45
644+msgid "Incorrect passcode."
615msgstr ""
645msgstr ""
616−"El teléfonu ta configuráu pa informar automáticamente de los fallos a "
617−"Canonical y asociaos, los fabricantes del sistema operativu."
618
646
619−#: qml/Wizard/Pages/60-reporting.qml:53
647+#: qml/Wizard/Pages/passcode-confirm.qml:45
648+msgctxt "Enter the passcode again"
620−msgid ""
649+msgid "Please re-enter."
621−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
622−"Privacy</b>"
623msgstr ""
650msgstr ""
624−"Esto pue deshabilitase nos <b>Axustes del sistema</b> en <b>Seguranza y "
625−"privacidá</b>"
626
651
627−#: qml/Wizard/Pages/80-finished.qml:24
652+#: qml/Wizard/Pages/passcode-desktop.qml:30
628−msgid "All done"
653+msgid "Lock Screen Passcode"
629−msgstr "Too fecho"
654+msgstr ""
630
655
631−#: qml/Wizard/Pages/80-finished.qml:39
656+#: qml/Wizard/Pages/passcode-desktop.qml:56
632−msgid "Nice work!"
657+msgid "Enter 4 numbers to setup your passcode"
633−msgstr "¡Bon trabayu!"
658+msgstr ""
634
659
635−#: qml/Wizard/Pages/80-finished.qml:46
660+#: qml/Wizard/Pages/passcode-desktop.qml:65
636−msgid "Your device is now ready to use."
661+#: qml/Wizard/Pages/passcode-set.qml:54
662+msgid "Choose passcode"
637msgstr ""
663msgstr ""
638
664
639−#: qml/Wizard/Pages/80-finished.qml:53
665+#: qml/Wizard/Pages/passcode-desktop.qml:105
640−msgid "Finish"
666+msgid "Passcode too short"
641−msgstr "Finar"
667+msgstr ""
642
668
643−#: qml/Wizard/Pages/here-terms.qml:27
669+#: qml/Wizard/Pages/passcode-desktop.qml:107
644−msgid "Terms & Conditions"
670+msgid "Passcodes match"
645−msgstr "Términos y condiciones"
671+msgstr ""
646
672
647−#: qml/Wizard/Pages/passwd-confirm.qml:49
673+#: qml/Wizard/Pages/passcode-desktop.qml:109
648−msgid "Confirm passphrase"
674+msgid "Passcodes do not match"
649−msgstr "Confirmar frase de pasu"
675+msgstr ""
650
676
651−#: qml/Wizard/Pages/passwd-confirm.qml:50
677+#: qml/Wizard/Pages/passcode-set.qml:62
652−msgid "Confirm passcode"
678+msgid "Passcode must be 4 characters long"
653−msgstr "Confirmar códigu de pasu"
679+msgstr ""
654
680
655−#: qml/Wizard/Pages/passwd-confirm.qml:53
681+#: qml/Wizard/Pages/password-set.qml:30
656−#: qml/Wizard/Pages/passwd-confirm.qml:54
682+msgid "Lock Screen Password"
657−msgid "Please try again."
683+msgstr ""
658−msgstr "Por favor, vuelvi a intentalo."
659
684
660−#: qml/Wizard/Pages/passwd-set.qml:61
685+#: qml/Wizard/Pages/password-set.qml:61
661−msgid "Choose your passcode"
686+msgid "Enter at least 8 characters"
662−msgstr "Escueyi'l to códigu de pasu"
687+msgstr ""
663
688
664−#: qml/Wizard/Pages/passwd-set.qml:68
689+#: qml/Wizard/Pages/password-set.qml:73
665−msgid "Passphrase must be 4 characters long"
690+msgid "Choose password"
666−msgstr "La fras de pasu tien de ser 4 caráuteres de llargor"
691+msgstr ""
667
692
668−#. Translators: This is the arrow for "Back" buttons
693+#: qml/Wizard/Pages/password-set.qml:103
669−#: qml/Wizard/StackButton.qml:39
694+msgid "Confirm password"
670−#, qt-format
695+msgstr "Confirmar contraseña"
671−msgid "〈 %1"
672−msgstr "〈 %1"
673
696
674−#. Translators: This is the arrow for "Forward" buttons
697+#: qml/Wizard/Pages/sim.qml:27
698+msgid "No SIM card installed"
699+msgstr ""
700+
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+
675−#: qml/Wizard/StackButton.qml:42
713+#: qml/Wizard/Pages/sim.qml:78
676−#, qt-format
714+msgid "You won’t be able to make calls or use text messaging without a SIM."
677−msgid "%1 〉"
715+msgstr ""
678−msgstr "%1 〉"
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+
737+#: qml/Wizard/PasswordMeter.qml:97
738+msgid "Weak password"
739+msgstr "Contraseña feble"
740+
741+#: qml/Wizard/PasswordMeter.qml:99
742+msgid "Very weak password"
743+msgstr "Contraseña feble enforma"
679
744
680#~ msgid "Skip intro"
745#~ msgid "Skip intro"
681#~ msgstr "Omitir la intro"
746#~ msgstr "Omitir la intro"
@@ -761,27 +826,204 @@ msgstr "%1 〉"
761#~ msgid "All"
826#~ msgid "All"
762#~ msgstr "Too"
827#~ msgstr "Too"
763
828
829+#~ msgid "Unlock SIM"
830+#~ msgstr "Desbloquiar SIM"
831+
764#~ msgid "Store"
832#~ msgid "Store"
765#~ msgstr "Tienda"
833#~ msgstr "Tienda"
766
834
767−#~ msgid "Restart"
835+#~ msgid "Roaming"
768−#~ msgstr "Reaniciar"
836+#~ msgstr "Roaming"
769
837
770#~ msgid "Manage Scopes"
838#~ msgid "Manage Scopes"
771#~ msgstr "Xestionar ámbitos"
839#~ msgstr "Xestionar ámbitos"
772
840
841+#~ msgid "Continue"
842+#~ msgstr "Siguir"
843+
844+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
845+#~ msgstr "Ensin ella, nun vas poder facer llamaes nin unviar mensaxes."
846+
847+#~ msgid "You can change your mind later in <b>System Settings</b>."
848+#~ msgstr "Pues cambialo dempués n'<b>Axustes del sistema</b>."
849+
850+#~ msgid "Available networks…"
851+#~ msgstr "Redes disponibles..."
852+
853+#~ msgid "No available networks."
854+#~ msgstr "Nun hai redes disponibles"
855+
856+#~ msgid "Using GPS only (less accurate)"
857+#~ msgstr "Namái usando GPS (menos precisión)"
858+
859+#~ msgid ""
860+#~ "Your phone is set up to automatically report errors to Canonical and its "
861+#~ "partners, the makers of the operating system."
862+#~ msgstr ""
863+#~ "El teléfonu ta configuráu pa informar automáticamente de los fallos a "
864+#~ "Canonical y asociaos, los fabricantes del sistema operativu."
865+
866+#~ msgid "All done"
867+#~ msgstr "Too fecho"
868+
869+#~ msgid "Finish"
870+#~ msgstr "Finar"
871+
872+#~ msgid "Not at all"
873+#~ msgstr "De nengún mou"
874+
875+#, qt-format
876+#~ msgid "〈 %1"
877+#~ msgstr "〈 %1"
878+
879+#, qt-format
880+#~ msgid "%1 〉"
881+#~ msgstr "%1 〉"
882+
883+#~ msgid "Open the launcher"
884+#~ msgstr "Abrir el llanzador"
885+
886+#~ msgid "Tap here to continue."
887+#~ msgstr "Toca equí pa siguir."
888+
889+#~ msgid "Open special menus"
890+#~ msgstr "Abrir menús especiales"
891+
892+#~ msgid "Tap here to finish."
893+#~ msgstr "Toca equí pa finar."
894+
895+#~ msgctxt "Button: Shut down the system"
896+#~ msgid "Shut down"
897+#~ msgstr "Apagar"
898+
899+#~ msgctxt "Button: Reboot the system"
900+#~ msgid "Reboot"
901+#~ msgstr "Reaniciar"
902+
903+#~ msgid "These are the shortcuts to favorite apps"
904+#~ msgstr "Estos son los atayos a les aplicaciones favorites"
905+
906+#~ msgctxt "Label: Type of security method"
907+#~ msgid "Passcode"
908+#~ msgstr "Códigu de pasu"
909+
910+#~ msgid "To view open apps"
911+#~ msgstr "Pa ver aplicaciones abiertes"
912+
913+#~ msgid "Are you sure you want to shut down?"
914+#~ msgstr "¿De xuru que quies apagar?"
915+
916+#~ msgctxt "Title: Reboot/Shut down dialog"
917+#~ msgid "Shut down"
918+#~ msgstr "Apagáu"
919+
773#~ msgid "Please re-enter"
920#~ msgid "Please re-enter"
774#~ msgstr "Por favor, reintroduzla"
921#~ msgstr "Por favor, reintroduzla"
775
922
923+#~ msgid "This action does different things for different apps"
924+#~ msgstr "Esta aición fai coses distintes p'aplicaciones estremaes"
925+
926+#~ msgid "Swipe up from the bottom edge."
927+#~ msgstr "Esliza dende'l berbesu d'embaxo."
928+
929+#~ msgid "Long swipe from the right edge."
930+#~ msgstr "Eslizamientu llargu dende'l berbesu drechu."
931+
932+#~ msgid "View all your running tasks."
933+#~ msgstr "Mira toles tos aplicaciones n'execución."
934+
935+#~ msgid "Try again."
936+#~ msgstr "Intentar de nueves"
937+
938+#~ msgid "You almost got it!"
939+#~ msgstr "¡Yá cuasi finamos!"
940+
941+#~ msgid "Short swipe from the left edge."
942+#~ msgstr "Esliza un poco dende'l berbesu esquierdu."
943+
944+#~ msgid "Hi!"
945+#~ msgstr "¡Hola!"
946+
947+#~ msgid "Lock security"
948+#~ msgstr "Seguranza del bloquéu"
949+
950+#~ msgid "Add a SIM card and restart your device"
951+#~ msgstr "Amiesta una tarxeta SIM y reanicia'l to preséu"
952+
776#~ msgid "Please select how you’d like to unlock your phone."
953#~ msgid "Please select how you’d like to unlock your phone."
777#~ msgstr "Por favor, esbilla como te prestaría desbloquiar el teléfonu."
954#~ msgstr "Por favor, esbilla como te prestaría desbloquiar el teléfonu."
778
955
956+#~ msgctxt "Label: Description of security method"
957+#~ msgid "No security"
958+#~ msgstr "Ensin seguranza"
959+
960+#~ msgctxt "Label: Type of security method"
961+#~ msgid "Swipe"
962+#~ msgstr "Eslizar"
963+
779#~ msgid "Welcome to your Ubuntu phone."
964#~ msgid "Welcome to your Ubuntu phone."
780#~ msgstr "Bienllegáu/ada al to teléfonu d'Ubuntu"
965#~ msgstr "Bienllegáu/ada al to teléfonu d'Ubuntu"
781
966
967+#~ msgid "Let’s get started."
968+#~ msgstr "Entamemos."
969+
970+#~ msgctxt "Label: Description of security method"
971+#~ msgid "4 digits only"
972+#~ msgstr "Namái 4 díxitos"
973+
974+#~ msgid "Let the phone detect your location:"
975+#~ msgstr "Dexar al teléfonu deteutar l'allugamientu:"
976+
977+#~ msgid "Location"
978+#~ msgstr "Allugamientu"
979+
980+#~ msgctxt "Label: Type of security method"
981+#~ msgid "Passphrase"
982+#~ msgstr "Fras de pasu"
983+
984+#~ msgctxt "Label: Description of security method"
985+#~ msgid "Numbers and letters"
986+#~ msgstr "Númberos y lletres"
987+
988+#~ msgid "Improving your experience"
989+#~ msgstr "Ameyorando la to esperiencia"
990+
991+#~ msgid ""
992+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
993+#~ "Privacy</b>"
994+#~ msgstr ""
995+#~ "Esto pue deshabilitase nos <b>Axustes del sistema</b> en <b>Seguranza y "
996+#~ "privacidá</b>"
997+
998+#~ msgid "Nice work!"
999+#~ msgstr "¡Bon trabayu!"
1000+
1001+#~ msgid ""
1002+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1003+#~ "conditions</a>."
1004+#~ msgstr ""
1005+#~ "Esbillando esta opción aceutes los <a href='#'>términos y condiciones</a> de "
1006+#~ "Nokia HERE."
1007+
1008+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
1009+#~ msgstr ""
1010+#~ "Usando GPS, Wi-fi anónimes ya información de redes móviles (aconseyao)"
1011+
782#~ msgid "Your phone is now ready to use."
1012#~ msgid "Your phone is now ready to use."
783#~ msgstr "El teléfonu yá ta tresnáu pa usase."
1013#~ msgstr "El teléfonu yá ta tresnáu pa usase."
784
1014
1015+#~ msgid "Confirm passphrase"
1016+#~ msgstr "Confirmar frase de pasu"
1017+
1018+#~ msgid "Passphrase must be 4 characters long"
1019+#~ msgstr "La fras de pasu tien de ser 4 caráuteres de llargor"
1020+
1021+#~ msgid "Choose your passcode"
1022+#~ msgstr "Escueyi'l to códigu de pasu"
1023+
1024+#~ msgid "Please try again."
1025+#~ msgstr "Por favor, vuelvi a intentalo."
1026+
785#~ msgid "%a %H:%M"
1027#~ msgid "%a %H:%M"
786#~ msgstr "%a %H:%M"
1028#~ msgstr "%a %H:%M"
787
1029
po/az.po+280−199
@@ -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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,23 +15,23 @@ 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-02-17 05:43+0000\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
19+"X-Generator: Launchpad (build 17958)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Şifrә: "
23msgstr "Şifrә: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Pin qısayolu"
28msgstr "Pin qısayolu"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Açma qısayolu"
36msgstr "Açma qısayolu"
37
37
@@ -73,77 +73,59 @@ 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:219
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:183
114msgid "Yes"
96msgid "Yes"
115msgstr "Hə"
97msgstr "Hə"
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
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:199
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:201
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:210
134msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
135msgid "Restart"
117msgid "Restart"
136msgstr ""
118msgstr ""
137
119
138−#: qml/Components/Lockscreen.qml:245
120+#: qml/Components/Lockscreen.qml:231
139msgid "Return to Call"
121msgid "Return to Call"
140msgstr ""
122msgstr ""
141
123
142−#: qml/Components/Lockscreen.qml:245
124+#: qml/Components/Lockscreen.qml:231
143msgid "Emergency Call"
125msgid "Emergency Call"
144msgstr "Zərurət zəngi"
126msgstr "Zərurət zəngi"
145
127
146−#: qml/Components/Lockscreen.qml:277
128+#: qml/Components/Lockscreen.qml:263
147msgid "OK"
129msgid "OK"
148msgstr "Oldu"
130msgstr "Oldu"
149
131
@@ -152,6 +134,8 @@ msgid "Apps may have unsaved data:"
152msgstr ""
134msgstr ""
153
135
154#: qml/Components/ModeSwitchWarningDialog.qml:57
136#: qml/Components/ModeSwitchWarningDialog.qml:57
137+msgctxt ""
138+"Re-dock means connect the device again to an external screen/mouse/keyboard"
155msgid "Re-dock, save your work and close these apps to continue."
139msgid "Re-dock, save your work and close these apps to continue."
156msgstr ""
140msgstr ""
157
141
@@ -171,42 +155,58 @@ msgstr ""
171msgid "Close all"
155msgid "Close all"
172msgstr ""
156msgstr ""
173
157
174−#: qml/Dash/DashPageHeader.qml:266
158+#: qml/Dash/DashPageHeader.qml:337
175msgctxt "Button: Open the Ubuntu Store"
159msgctxt "Button: Open the Ubuntu Store"
176msgid "Store"
160msgid "Store"
177msgstr ""
161msgstr ""
178
162
179−#: qml/Dash/DashPageHeader.qml:273
163+#: qml/Dash/DashPageHeader.qml:344
180msgctxt "Button: Start a search in the current dash scope"
164msgctxt "Button: Start a search in the current dash scope"
181msgid "Search"
165msgid "Search"
182msgstr ""
166msgstr ""
183
167
184−#: qml/Dash/DashPageHeader.qml:283
168+#: qml/Dash/DashPageHeader.qml:354
185msgctxt "Button: Show the current dash scope settings"
169msgctxt "Button: Show the current dash scope settings"
186msgid "Settings"
170msgid "Settings"
187msgstr ""
171msgstr ""
188
172
189−#: qml/Dash/DashPageHeader.qml:290
173+#: qml/Dash/DashPageHeader.qml:361
190msgid "Remove from Favorites"
174msgid "Remove from Favorites"
191msgstr "Seçilmişlәrdәn çıxart"
175msgstr "Seçilmişlәrdәn çıxart"
192
176
193−#: qml/Dash/DashPageHeader.qml:290
177+#: qml/Dash/DashPageHeader.qml:361
194msgid "Add to Favorites"
178msgid "Add to Favorites"
195msgstr "Seçilmişlәrә әlavә et"
179msgstr "Seçilmişlәrә әlavә et"
196
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+
197−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
189+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198msgid "See less"
190msgid "See less"
199msgstr "Daha azını gör"
191msgstr "Daha azını gör"
200
192
201−#: qml/Dash/GenericScopeView.qml:587
193+#: qml/Dash/GenericScopeView.qml:570
202msgid "See all"
194msgid "See all"
203msgstr "Hamısını gör"
195msgstr "Hamısını gör"
204
196
205−#: qml/Dash/GenericScopeView.qml:649
197+#: qml/Dash/GenericScopeView.qml:627
206msgctxt "Label: Hint for dash search line edit"
198msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
199msgid "Search"
208msgstr ""
200msgstr ""
209
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+
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
211msgid "More..."
211msgid "More..."
212msgstr "Daha çox..."
212msgstr "Daha çox..."
@@ -228,7 +228,7 @@ msgstr "Qiymәtlәndir"
228msgid "Add a review"
228msgid "Add a review"
229msgstr "Rəy yaz"
229msgstr "Rəy yaz"
230
230
231−#: qml/Dash/Previews/PreviewSharing.qml:50
231+#: qml/Dash/Previews/PreviewSharing.qml:66
232msgid "Preview Share Item"
232msgid "Preview Share Item"
233msgstr ""
233msgstr ""
234
234
@@ -256,13 +256,13 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:87
259+#: qml/DisabledScreenNotice.qml:104
260msgid ""
260msgid ""
261"Your device is now connected to an external display. Use this screen as a "
261"Your device is now connected to an external display. Use this screen as a "
262−"touch pad to interact with the mouse."
262+"touch pad to interact with the pointer."
263msgstr ""
263msgstr ""
264
264
265−#: qml/Greeter/CoverPage.qml:107
265+#: qml/Greeter/CoverPage.qml:118
266msgid "Unlock"
266msgid "Unlock"
267msgstr ""
267msgstr ""
268
268
@@ -274,11 +274,11 @@ msgstr ""
274msgid "Tap to unlock"
274msgid "Tap to unlock"
275msgstr ""
275msgstr ""
276
276
277−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
278msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
279msgstr "Bağışlayın, açar söz yanlışdır."
279msgstr "Bağışlayın, açar söz yanlışdır."
280
280
281−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
282msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
283msgstr "Təəssüf ki, açar kod yanlışdır."
283msgstr "Təəssüf ki, açar kod yanlışdır."
284
284
@@ -307,7 +307,7 @@ msgstr ""
307msgid "Enter %1"
307msgid "Enter %1"
308msgstr ""
308msgstr ""
309
309
310−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
310+#: qml/Greeter/NarrowView.qml:117
311msgid "Enter passphrase"
311msgid "Enter passphrase"
312msgstr ""
312msgstr ""
313
313
@@ -345,62 +345,62 @@ msgstr "Zəngə qayıtmaq üçün toxunun..."
345msgid "Conference"
345msgid "Conference"
346msgstr "Konfrans"
346msgstr "Konfrans"
347
347
348−#: qml/Panel/Indicators/MenuItemFactory.qml:753
348+#: qml/Panel/Indicators/MenuItemFactory.qml:761
349msgid "Nothing is playing"
349msgid "Nothing is playing"
350msgstr ""
350msgstr ""
351
351
352−#: qml/Panel/Indicators/MenuItemFactory.qml:882
352+#: qml/Panel/Indicators/MenuItemFactory.qml:890
353#, qt-format
353#, qt-format
354msgid "%1 hour"
354msgid "%1 hour"
355msgid_plural "%1 hours"
355msgid_plural "%1 hours"
356msgstr[0] ""
356msgstr[0] ""
357msgstr[1] ""
357msgstr[1] ""
358
358
359−#: qml/Panel/Indicators/MenuItemFactory.qml:886
359+#: qml/Panel/Indicators/MenuItemFactory.qml:894
360#, qt-format
360#, qt-format
361msgid "%1 minute"
361msgid "%1 minute"
362msgid_plural "%1 minutes"
362msgid_plural "%1 minutes"
363msgstr[0] ""
363msgstr[0] ""
364msgstr[1] ""
364msgstr[1] ""
365
365
366−#: qml/Panel/Indicators/MenuItemFactory.qml:891
366+#: qml/Panel/Indicators/MenuItemFactory.qml:899
367#, qt-format
367#, qt-format
368msgid "%1 second"
368msgid "%1 second"
369msgid_plural "%1 seconds"
369msgid_plural "%1 seconds"
370msgstr[0] ""
370msgstr[0] ""
371msgstr[1] ""
371msgstr[1] ""
372
372
373−#: qml/Panel/Indicators/MenuItemFactory.qml:894
373+#: qml/Panel/Indicators/MenuItemFactory.qml:902
374msgid "0 seconds"
374msgid "0 seconds"
375msgstr ""
375msgstr ""
376
376
377#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
377#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
378−#: qml/Panel/Indicators/MenuItemFactory.qml:896
378+#: qml/Panel/Indicators/MenuItemFactory.qml:904
379#, qt-format
379#, qt-format
380msgid "%1 remaining"
380msgid "%1 remaining"
381msgstr ""
381msgstr ""
382
382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:902
383+#: qml/Panel/Indicators/MenuItemFactory.qml:910
384msgid "In queue…"
384msgid "In queue…"
385msgstr "Növbədədir..."
385msgstr "Növbədədir..."
386
386
387−#: qml/Panel/Indicators/MenuItemFactory.qml:906
387+#: qml/Panel/Indicators/MenuItemFactory.qml:914
388msgid "Downloading"
388msgid "Downloading"
389msgstr "Endirilir"
389msgstr "Endirilir"
390
390
391−#: qml/Panel/Indicators/MenuItemFactory.qml:908
391+#: qml/Panel/Indicators/MenuItemFactory.qml:916
392msgid "Paused, tap to resume"
392msgid "Paused, tap to resume"
393msgstr "Dayandırıldı. Davam etmək üçün toxunun"
393msgstr "Dayandırıldı. Davam etmək üçün toxunun"
394
394
395−#: qml/Panel/Indicators/MenuItemFactory.qml:910
395+#: qml/Panel/Indicators/MenuItemFactory.qml:918
396msgid "Canceled"
396msgid "Canceled"
397msgstr "İmtina edildi"
397msgstr "İmtina edildi"
398
398
399−#: qml/Panel/Indicators/MenuItemFactory.qml:912
399+#: qml/Panel/Indicators/MenuItemFactory.qml:920
400msgid "Finished"
400msgid "Finished"
401msgstr "Bitdi"
401msgstr "Bitdi"
402
402
403−#: qml/Panel/Indicators/MenuItemFactory.qml:914
403+#: qml/Panel/Indicators/MenuItemFactory.qml:922
404msgid "Failed, tap to retry"
404msgid "Failed, tap to retry"
405msgstr "Alınmadı. Yenidәn cәhd etmək üçün toxunun"
405msgstr "Alınmadı. Yenidәn cәhd etmək üçün toxunun"
406
406
@@ -420,251 +420,323 @@ msgctxt "Button: Call back on phone"
420msgid "Call back"
420msgid "Call back"
421msgstr ""
421msgstr ""
422
422
423−#: qml/Panel/Indicators/ModemInfoItem.qml:105
423+#: qml/Stages/SideStage.qml:76
424−msgid "Unlock SIM"
424+msgid "Drag using 3 fingers any application from one window to the other"
425−msgstr "SIM kilidini aç"
426−
427−#: qml/Panel/Indicators/RoamingIndication.qml:27
428−msgid "Roaming"
429−msgstr "Rominq"
430−
431−#: qml/Tutorial/TutorialBottom.qml:28
432−msgid "Open special menus"
433−msgstr ""
434−
435−#: qml/Tutorial/TutorialBottom.qml:29
436−msgid "Swipe up from the bottom edge."
437msgstr ""
425msgstr ""
438
426
439−#: qml/Tutorial/TutorialBottomFinish.qml:24
427+#: qml/Tutorial/TutorialBottom.qml:78
440−msgid "This action does different things for different apps"
428+msgid "Swipe up to add a contact"
441msgstr ""
429msgstr ""
442
430
443−#: qml/Tutorial/TutorialBottomFinish.qml:25
431+#: qml/Tutorial/TutorialBottom.qml:80
444−msgid "Tap here to finish."
432+msgid "Swipe up for favorite calculations"
445msgstr ""
433msgstr ""
446
434
447−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
435+#: qml/Tutorial/TutorialBottom.qml:82
448−#: qml/Tutorial/TutorialRight.qml:144
436+msgid "Swipe up for recent calls"
449−msgid "Tap here to continue."
450msgstr ""
437msgstr ""
451
438
452−#: qml/Tutorial/TutorialLeft.qml:26
439+#: qml/Tutorial/TutorialBottom.qml:84
453−msgid "Open the launcher"
440+msgid "Swipe up to create a message"
454msgstr ""
441msgstr ""
455
442
456−#: qml/Tutorial/TutorialLeft.qml:27
443+#: qml/Tutorial/TutorialBottom.qml:85
457−msgid "Short swipe from the left edge."
444+msgid "Swipe up to manage the app"
458msgstr ""
445msgstr ""
459
446
460−#: qml/Tutorial/TutorialLeftFinish.qml:24
447+#: qml/Tutorial/TutorialLeft.qml:47
461−msgid "These are the shortcuts to favorite apps"
448+msgid "Swipe from the left edge to open the launcher"
462msgstr ""
449msgstr ""
463
450
464−#: qml/Tutorial/TutorialPage.qml:178
451+#: qml/Tutorial/TutorialLeftLong.qml:47
465−msgid "You almost got it!"
452+msgid "Long swipe from the left edge to open the Today scope"
466msgstr ""
453msgstr ""
467
454
468−#: qml/Tutorial/TutorialPage.qml:195
455+#: qml/Tutorial/TutorialRight.qml:54
469−msgid "Try again."
456+msgid "Hover your mouse on the right edge to view your open apps"
470msgstr ""
457msgstr ""
471
458
472−#: qml/Tutorial/TutorialRight.qml:31
459+#: qml/Tutorial/TutorialRight.qml:55
473−msgid "To view open apps"
460+msgid "Short or long swipe from the right edge to view your open apps"
474msgstr ""
461msgstr ""
475
462
476−#: qml/Tutorial/TutorialRight.qml:32
463+#: qml/Tutorial/TutorialTop.qml:53
477−msgid "Long swipe from the right edge."
464+msgid "Swipe from the top right edge to open the notification bar"
478msgstr ""
465msgstr ""
479
466
480−#: qml/Tutorial/TutorialRight.qml:122
467+#: qml/Tutorial/TutorialTop.qml:54
481−msgid "View all your running tasks."
468+msgid "Swipe from the top edge to open the notification bar"
482msgstr ""
469msgstr ""
483
470
484−#: qml/Wizard/Page.qml:89
471+#: qml/Wizard/Page.qml:54
485msgctxt "Button: Go back one page in the Wizard"
472msgctxt "Button: Go back one page in the Wizard"
486msgid "Back"
473msgid "Back"
487msgstr ""
474msgstr ""
488
475
489#: qml/Wizard/Pages/10-welcome.qml:27
476#: qml/Wizard/Pages/10-welcome.qml:27
490−msgid "Hi!"
477+msgid "Language"
491msgstr ""
478msgstr ""
492
479
493−#: qml/Wizard/Pages/10-welcome.qml:44
480+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
494−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"
495msgstr ""
487msgstr ""
496
488
497−#: qml/Wizard/Pages/10-welcome.qml:52
489+#: qml/Wizard/Pages/30-wifi.qml:29
498−msgid "Let’s get started."
490+msgid "Connect to Wi‑Fi"
499msgstr ""
491msgstr ""
500
492
501−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
493+#: qml/Wizard/Pages/30-wifi.qml:130
502−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
494+msgid "Connected"
503−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
504−#: qml/Wizard/Pages/passwd-set.qml:90
505−msgid "Continue"
506msgstr ""
495msgstr ""
507
496
508−#: qml/Wizard/Pages/20-sim.qml:25
497+#: qml/Wizard/Pages/30-wifi.qml:163
509−msgid "Add a SIM card and restart your device"
498+msgid "Available Wi-Fi networks"
510msgstr ""
499msgstr ""
511
500
512−#: qml/Wizard/Pages/20-sim.qml:59
501+#: qml/Wizard/Pages/30-wifi.qml:164
513−msgid "Without it, you won’t be able to make calls or use text messaging."
502+msgid "No available Wi-Fi networks"
514msgstr ""
503msgstr ""
515
504
516−#: 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
517msgid "Skip"
507msgid "Skip"
518msgstr ""
508msgstr ""
519
509
520−#: qml/Wizard/Pages/30-passwd-type.qml:39
510+#: qml/Wizard/Pages/40-location.qml:27
521−msgid "Lock security"
511+msgid "Location Services"
512+msgstr ""
513+
514+#: qml/Wizard/Pages/40-location.qml:83
515+msgid ""
516+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
517+"(recommended)"
518+msgstr ""
519+
520+#: qml/Wizard/Pages/40-location.qml:105
521+#, qt-format
522+msgid "By selecting this option you agree to the Nokia HERE %1."
522msgstr ""
523msgstr ""
523
524
524−#: qml/Wizard/Pages/30-passwd-type.qml:79
525+#: qml/Wizard/Pages/40-location.qml:106
525−msgid "Please select how you’d like to unlock your device."
526+msgctxt "part of: Nokia HERE terms and conditions"
527+msgid "terms and conditions"
526msgstr ""
528msgstr ""
527
529
528−#: qml/Wizard/Pages/30-passwd-type.qml:102
530+#: qml/Wizard/Pages/40-location.qml:160
529−msgctxt "Label: Type of security method"
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
530−msgid "Swipe"
543+msgid "Time Zone"
531msgstr ""
544msgstr ""
532
545
533−#: qml/Wizard/Pages/30-passwd-type.qml:103
546+#: qml/Wizard/Pages/50-timezone.qml:178
534−msgctxt "Label: Description of security method"
547+msgid "Enter your city"
535−msgid "No security"
536msgstr ""
548msgstr ""
537
549
538−#: qml/Wizard/Pages/30-passwd-type.qml:105
550+#: qml/Wizard/Pages/60-account.qml:24
551+msgid "Personalize Your Device"
552+msgstr ""
553+
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
539msgctxt "Label: Type of security method"
563msgctxt "Label: Type of security method"
540−msgid "Passcode"
564+msgid "Create new password"
541msgstr ""
565msgstr ""
542
566
543−#: qml/Wizard/Pages/30-passwd-type.qml:106
567+#: qml/Wizard/Pages/70-passwd-type.qml:103
544−msgctxt "Label: Description of security method"
568+msgctxt "Label: Type of security method"
545−msgid "4 digits only"
569+msgid "Create passcode (numbers only)"
546msgstr ""
570msgstr ""
547
571
548−#: qml/Wizard/Pages/30-passwd-type.qml:108
572+#: qml/Wizard/Pages/70-passwd-type.qml:105
549msgctxt "Label: Type of security method"
573msgctxt "Label: Type of security method"
550−msgid "Passphrase"
574+msgid "No lock code"
551msgstr ""
575msgstr ""
552
576
553−#: qml/Wizard/Pages/30-passwd-type.qml:109
577+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
554−msgctxt "Label: Description of security method"
578+msgid "Privacy Policy"
555−msgid "Numbers and letters"
556msgstr ""
579msgstr ""
557
580
558−#: qml/Wizard/Pages/40-wifi.qml:29
581+#: qml/Wizard/Pages/75-report-check.qml:26
559−msgid "Connect to Wi‑Fi"
582+msgid "Help Us Improve"
583+msgstr ""
584+
585+#: qml/Wizard/Pages/75-report-check.qml:59
586+msgid "Improve system performance by sending us crashes and error reports."
587+msgstr ""
588+
589+#: qml/Wizard/Pages/75-report-check.qml:60
590+msgid "Privacy policy"
560msgstr ""
591msgstr ""
561
592
562−#: qml/Wizard/Pages/40-wifi.qml:168
593+#: qml/Wizard/Pages/80-finished.qml:89
563−msgid "Available networks…"
594+msgid "Welcome to Ubuntu"
564msgstr ""
595msgstr ""
565
596
566−#: qml/Wizard/Pages/40-wifi.qml:169
597+#: qml/Wizard/Pages/80-finished.qml:104
567−msgid "No available networks."
598+msgid "You are ready to use your device now"
568msgstr ""
599msgstr ""
569
600
570−#: qml/Wizard/Pages/50-location.qml:27
601+#: qml/Wizard/Pages/80-finished.qml:124
571−msgid "Location"
602+msgid "Get Started"
572msgstr ""
603msgstr ""
573
604
574−#: qml/Wizard/Pages/50-location.qml:62
605+#: qml/Wizard/Pages/here-terms.qml:25
575−msgid "Let the phone detect your location:"
606+msgid "Terms & Conditions"
576msgstr ""
607msgstr ""
577
608
578−#: qml/Wizard/Pages/50-location.qml:69
609+#: qml/Wizard/Pages/here-terms.qml:69
579−msgid "Using GPS only (less accurate)"
610+msgid "Your device uses positioning technologies provided by HERE."
580msgstr ""
611msgstr ""
581
612
582−#: qml/Wizard/Pages/50-location.qml:86
613+#: qml/Wizard/Pages/here-terms.qml:81
583−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
614+msgid ""
615+"To provide you with positioning services and to improve their quality, HERE "
616+"collects information about nearby cell towers and Wi-Fi hotspots around your "
617+"current location whenever your position is being found."
584msgstr ""
618msgstr ""
585
619
586−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
587−#: qml/Wizard/Pages/50-location.qml:103
620+#: qml/Wizard/Pages/here-terms.qml:93
588msgid ""
621msgid ""
589−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
622+"The information collected is used to analyze the service and to improve the "
590−"conditions</a>."
623+"use of service, but not to identify you personally."
591msgstr ""
624msgstr ""
592
625
593−#: qml/Wizard/Pages/50-location.qml:112
626+#: qml/Wizard/Pages/here-terms.qml:106
594−msgid "Not at all"
627+#, qt-format
628+msgid "By continuing, you agree to the HERE platform %1 and %2."
595msgstr ""
629msgstr ""
596
630
597−#: qml/Wizard/Pages/50-location.qml:124
631+#: qml/Wizard/Pages/here-terms.qml:107
598−msgid "You can change your mind later in <b>System Settings</b>."
632+msgid "Service Terms"
599msgstr ""
633msgstr ""
600
634
601−#: qml/Wizard/Pages/60-reporting.qml:26
635+#: qml/Wizard/Pages/passcode-confirm.qml:43
602−msgid "Improving your experience"
636+#: qml/Wizard/Pages/passcode-desktop.qml:80
637+msgid "Confirm passcode"
603msgstr ""
638msgstr ""
604
639
605−#: qml/Wizard/Pages/60-reporting.qml:46
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
606−msgid ""
641+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 ""
642msgstr ""
610
643
611−#: qml/Wizard/Pages/60-reporting.qml:53
644+#: qml/Wizard/Pages/passcode-confirm.qml:45
645+msgctxt "Enter the passcode again"
612−msgid ""
646+msgid "Please re-enter."
613−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
614−"Privacy</b>"
615msgstr ""
647msgstr ""
616
648
617−#: qml/Wizard/Pages/80-finished.qml:24
649+#: qml/Wizard/Pages/passcode-desktop.qml:30
618−msgid "All done"
650+msgid "Lock Screen Passcode"
619msgstr ""
651msgstr ""
620
652
621−#: qml/Wizard/Pages/80-finished.qml:39
653+#: qml/Wizard/Pages/passcode-desktop.qml:56
622−msgid "Nice work!"
654+msgid "Enter 4 numbers to setup your passcode"
623msgstr ""
655msgstr ""
624
656
625−#: qml/Wizard/Pages/80-finished.qml:46
657+#: qml/Wizard/Pages/passcode-desktop.qml:65
626−msgid "Your device is now ready to use."
658+#: qml/Wizard/Pages/passcode-set.qml:54
659+msgid "Choose passcode"
627msgstr ""
660msgstr ""
628
661
629−#: qml/Wizard/Pages/80-finished.qml:53
662+#: qml/Wizard/Pages/passcode-desktop.qml:105
630−msgid "Finish"
663+msgid "Passcode too short"
631msgstr ""
664msgstr ""
632
665
633−#: qml/Wizard/Pages/here-terms.qml:27
666+#: qml/Wizard/Pages/passcode-desktop.qml:107
634−msgid "Terms & Conditions"
667+msgid "Passcodes match"
635msgstr ""
668msgstr ""
636
669
637−#: qml/Wizard/Pages/passwd-confirm.qml:49
670+#: qml/Wizard/Pages/passcode-desktop.qml:109
638−msgid "Confirm passphrase"
671+msgid "Passcodes do not match"
639msgstr ""
672msgstr ""
640
673
641−#: qml/Wizard/Pages/passwd-confirm.qml:50
674+#: qml/Wizard/Pages/passcode-set.qml:62
642−msgid "Confirm passcode"
675+msgid "Passcode must be 4 characters long"
643msgstr ""
676msgstr ""
644
677
645−#: qml/Wizard/Pages/passwd-confirm.qml:53
678+#: qml/Wizard/Pages/password-set.qml:30
646−#: qml/Wizard/Pages/passwd-confirm.qml:54
679+msgid "Lock Screen Password"
647−msgid "Please try again."
648msgstr ""
680msgstr ""
649
681
650−#: qml/Wizard/Pages/passwd-set.qml:61
682+#: qml/Wizard/Pages/password-set.qml:61
651−msgid "Choose your passcode"
683+msgid "Enter at least 8 characters"
652msgstr ""
684msgstr ""
653
685
654−#: qml/Wizard/Pages/passwd-set.qml:68
686+#: qml/Wizard/Pages/password-set.qml:73
655−msgid "Passphrase must be 4 characters long"
687+msgid "Choose password"
656msgstr ""
688msgstr ""
657
689
658−#. Translators: This is the arrow for "Back" buttons
690+#: qml/Wizard/Pages/password-set.qml:103
659−#: qml/Wizard/StackButton.qml:39
691+msgid "Confirm password"
660−#, qt-format
661−msgid "〈 %1"
662msgstr ""
692msgstr ""
663
693
664−#. Translators: This is the arrow for "Forward" buttons
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+
665−#: qml/Wizard/StackButton.qml:42
722+#: qml/Wizard/PasswordMeter.qml:89
666−#, qt-format
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
667−msgid "%1 〉"
735+msgid "Weak password"
736+msgstr ""
737+
738+#: qml/Wizard/PasswordMeter.qml:99
739+msgid "Very weak password"
668msgstr ""
740msgstr ""
669
741
670#~ msgid "Confirm"
742#~ msgid "Confirm"
@@ -713,9 +785,18 @@ msgstr ""
713#~ msgid "Done"
785#~ msgid "Done"
714#~ msgstr "Başa çatdı"
786#~ msgstr "Başa çatdı"
715
787
788+#~ msgid "Unlock SIM"
789+#~ msgstr "SIM kilidini aç"
790+
791+#~ msgid "Roaming"
792+#~ msgstr "Rominq"
793+
716#~ msgid "Log out"
794#~ msgid "Log out"
717#~ msgstr "Çıxış"
795#~ msgstr "Çıxış"
718
796
797+#~ msgid "Are you sure you want to shut down?"
798+#~ msgstr "Sistemi söndürmәk istәdiyinizә әminsiniz?"
799+
719#~ msgid "Shut down"
800#~ msgid "Shut down"
720#~ msgstr "Sistemi Söndür"
801#~ msgstr "Sistemi Söndür"
721
802
po/be.po+495−253
@@ -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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,23 +16,23 @@ 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-02-17 05:43+0000\n"
19+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
20−"X-Generator: Launchpad (build 17925)\n"
20+"X-Generator: Launchpad (build 17958)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
24msgstr "Пароль: "
24msgstr "Пароль: "
25
25
26−#: plugins/Unity/Launcher/launcheritem.cpp:47
26+#: plugins/Unity/Launcher/launcheritem.cpp:48
27−#: plugins/Unity/Launcher/launcheritem.cpp:106
27+#: plugins/Unity/Launcher/launcheritem.cpp:107
28msgid "Pin shortcut"
28msgid "Pin shortcut"
29msgstr "Замацаваць кнопку"
29msgstr "Замацаваць кнопку"
30
30
31−#: plugins/Unity/Launcher/launcheritem.cpp:52
31+#: plugins/Unity/Launcher/launcheritem.cpp:53
32msgid "Quit"
32msgid "Quit"
33msgstr "Выйсці"
33msgstr "Выйсці"
34
34
35−#: plugins/Unity/Launcher/launcheritem.cpp:106
35+#: plugins/Unity/Launcher/launcheritem.cpp:107
36msgid "Unpin shortcut"
36msgid "Unpin shortcut"
37msgstr "Адмацаваць кнопку"
37msgstr "Адмацаваць кнопку"
38
38
@@ -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:219
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:183
119msgid "Yes"
101msgid "Yes"
120msgstr "Так"
102msgstr "Так"
121
103
122−#: qml/Components/Dialogs.qml:232
104+#: qml/Components/Dialogs.qml:198
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:199
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,25 +114,25 @@ msgstr ""
132"Вы ўпэўнены, што хочаце\n"
114"Вы ўпэўнены, што хочаце\n"
133"выключыць камп'ютэр?"
115"выключыць камп'ютэр?"
134
116
135−#: qml/Components/Dialogs.qml:235
117+#: qml/Components/Dialogs.qml:201
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:210
141msgctxt "Button: Restart the system"
123msgctxt "Button: Restart the system"
142msgid "Restart"
124msgid "Restart"
143msgstr "Перазапуск"
125msgstr "Перазапуск"
144
126
145−#: qml/Components/Lockscreen.qml:245
127+#: qml/Components/Lockscreen.qml:231
146msgid "Return to Call"
128msgid "Return to Call"
147msgstr "Вярнуцца да выкліку"
129msgstr "Вярнуцца да выкліку"
148
130
149−#: qml/Components/Lockscreen.qml:245
131+#: qml/Components/Lockscreen.qml:231
150msgid "Emergency Call"
132msgid "Emergency Call"
151msgstr "Терміновы выклік"
133msgstr "Терміновы выклік"
152
134
153−#: qml/Components/Lockscreen.qml:277
135+#: qml/Components/Lockscreen.qml:263
154msgid "OK"
136msgid "OK"
155msgstr "Добра"
137msgstr "Добра"
156
138
@@ -159,8 +141,10 @@ msgid "Apps may have unsaved data:"
159msgstr "Прылады могуць мець незахованыя дадзеныя:"
141msgstr "Прылады могуць мець незахованыя дадзеныя:"
160
142
161#: qml/Components/ModeSwitchWarningDialog.qml:57
143#: qml/Components/ModeSwitchWarningDialog.qml:57
144+msgctxt ""
145+"Re-dock means connect the device again to an external screen/mouse/keyboard"
162msgid "Re-dock, save your work and close these apps to continue."
146msgid "Re-dock, save your work and close these apps to continue."
163−msgstr "Захавайце сваю працу і зачыніце прылады, каб працягнуць."
147+msgstr ""
164
148
165#: qml/Components/ModeSwitchWarningDialog.qml:63
149#: qml/Components/ModeSwitchWarningDialog.qml:63
166msgid "Or force close now (unsaved data will be lost)."
150msgid "Or force close now (unsaved data will be lost)."
@@ -178,42 +162,58 @@ msgstr "Перападлучыцца зараз!"
178msgid "Close all"
162msgid "Close all"
179msgstr "Зачыніць усё"
163msgstr "Зачыніць усё"
180
164
181−#: qml/Dash/DashPageHeader.qml:266
165+#: qml/Dash/DashPageHeader.qml:337
182msgctxt "Button: Open the Ubuntu Store"
166msgctxt "Button: Open the Ubuntu Store"
183msgid "Store"
167msgid "Store"
184msgstr "Крама"
168msgstr "Крама"
185
169
186−#: qml/Dash/DashPageHeader.qml:273
170+#: qml/Dash/DashPageHeader.qml:344
187msgctxt "Button: Start a search in the current dash scope"
171msgctxt "Button: Start a search in the current dash scope"
188msgid "Search"
172msgid "Search"
189msgstr "Пошук"
173msgstr "Пошук"
190
174
191−#: qml/Dash/DashPageHeader.qml:283
175+#: qml/Dash/DashPageHeader.qml:354
192msgctxt "Button: Show the current dash scope settings"
176msgctxt "Button: Show the current dash scope settings"
193msgid "Settings"
177msgid "Settings"
194msgstr "Налады"
178msgstr "Налады"
195
179
196−#: qml/Dash/DashPageHeader.qml:290
180+#: qml/Dash/DashPageHeader.qml:361
197msgid "Remove from Favorites"
181msgid "Remove from Favorites"
198msgstr "Выдаліць з абранага"
182msgstr "Выдаліць з абранага"
199
183
200−#: qml/Dash/DashPageHeader.qml:290
184+#: qml/Dash/DashPageHeader.qml:361
201msgid "Add to Favorites"
185msgid "Add to Favorites"
202msgstr "Дадаць да абранага"
186msgstr "Дадаць да абранага"
203
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+
204−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
196+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
205msgid "See less"
197msgid "See less"
206msgstr "Карацей"
198msgstr "Карацей"
207
199
208−#: qml/Dash/GenericScopeView.qml:587
200+#: qml/Dash/GenericScopeView.qml:570
209msgid "See all"
201msgid "See all"
210msgstr "Больш падрабязна"
202msgstr "Больш падрабязна"
211
203
212−#: qml/Dash/GenericScopeView.qml:649
204+#: qml/Dash/GenericScopeView.qml:627
213msgctxt "Label: Hint for dash search line edit"
205msgctxt "Label: Hint for dash search line edit"
214msgid "Search"
206msgid "Search"
215msgstr "Пошук"
207msgstr "Пошук"
216
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+
217#: qml/Dash/Previews/PreviewActionCombo.qml:35
217#: qml/Dash/Previews/PreviewActionCombo.qml:35
218msgid "More..."
218msgid "More..."
219msgstr "Болей…"
219msgstr "Болей…"
@@ -235,7 +235,7 @@ msgstr "Ацаніць"
235msgid "Add a review"
235msgid "Add a review"
236msgstr "Дадаць рэцэнзію"
236msgstr "Дадаць рэцэнзію"
237
237
238−#: qml/Dash/Previews/PreviewSharing.qml:50
238+#: qml/Dash/Previews/PreviewSharing.qml:66
239msgid "Preview Share Item"
239msgid "Preview Share Item"
240msgstr "Праглядзець элемент"
240msgstr "Праглядзець элемент"
241
241
@@ -263,13 +263,13 @@ msgstr "Хатняя папка"
263msgid "Also installed"
263msgid "Also installed"
264msgstr "Таксама ўсталявана"
264msgstr "Таксама ўсталявана"
265
265
266−#: qml/DisabledScreenNotice.qml:87
266+#: qml/DisabledScreenNotice.qml:104
267msgid ""
267msgid ""
268"Your device is now connected to an external display. Use this screen as a "
268"Your device is now connected to an external display. Use this screen as a "
269−"touch pad to interact with the mouse."
269+"touch pad to interact with the pointer."
270msgstr ""
270msgstr ""
271
271
272−#: qml/Greeter/CoverPage.qml:107
272+#: qml/Greeter/CoverPage.qml:118
273msgid "Unlock"
273msgid "Unlock"
274msgstr "Разблакаваць"
274msgstr "Разблакаваць"
275
275
@@ -281,11 +281,11 @@ msgstr "Паспрабаваць зноў"
281msgid "Tap to unlock"
281msgid "Tap to unlock"
282msgstr "Націсніце, каб разблакаваць"
282msgstr "Націсніце, каб разблакаваць"
283
283
284−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
284+#: qml/Greeter/NarrowView.qml:54
285msgid "Sorry, incorrect passphrase."
285msgid "Sorry, incorrect passphrase."
286msgstr "Даруйце, няслушны пароль."
286msgstr "Даруйце, няслушны пароль."
287
287
288−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
288+#: qml/Greeter/NarrowView.qml:55
289msgid "Sorry, incorrect passcode."
289msgid "Sorry, incorrect passcode."
290msgstr "Даруйце, няслушны код."
290msgstr "Даруйце, няслушны код."
291
291
@@ -314,7 +314,7 @@ msgstr ""
314msgid "Enter %1"
314msgid "Enter %1"
315msgstr "Увядзіце %1"
315msgstr "Увядзіце %1"
316
316
317−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
317+#: qml/Greeter/NarrowView.qml:117
318msgid "Enter passphrase"
318msgid "Enter passphrase"
319msgstr "Увядзіце пароль"
319msgstr "Увядзіце пароль"
320
320
@@ -352,11 +352,11 @@ msgstr "Націсніце, каб вярнуцца да выкліку..."
352msgid "Conference"
352msgid "Conference"
353msgstr "Канферэнцыя"
353msgstr "Канферэнцыя"
354
354
355−#: qml/Panel/Indicators/MenuItemFactory.qml:753
355+#: qml/Panel/Indicators/MenuItemFactory.qml:761
356msgid "Nothing is playing"
356msgid "Nothing is playing"
357msgstr "Нічога не грае"
357msgstr "Нічога не грае"
358
358
359−#: qml/Panel/Indicators/MenuItemFactory.qml:882
359+#: qml/Panel/Indicators/MenuItemFactory.qml:890
360#, qt-format
360#, qt-format
361msgid "%1 hour"
361msgid "%1 hour"
362msgid_plural "%1 hours"
362msgid_plural "%1 hours"
@@ -364,7 +364,7 @@ msgstr[0] "%1 гадзіна"
364msgstr[1] "%1 гадзіны"
364msgstr[1] "%1 гадзіны"
365msgstr[2] "%1 гадзінаў"
365msgstr[2] "%1 гадзінаў"
366
366
367−#: qml/Panel/Indicators/MenuItemFactory.qml:886
367+#: qml/Panel/Indicators/MenuItemFactory.qml:894
368#, qt-format
368#, qt-format
369msgid "%1 minute"
369msgid "%1 minute"
370msgid_plural "%1 minutes"
370msgid_plural "%1 minutes"
@@ -372,7 +372,7 @@ msgstr[0] "%1 хвіліна"
372msgstr[1] "%1 хвіліны"
372msgstr[1] "%1 хвіліны"
373msgstr[2] "%1 хвілінаў"
373msgstr[2] "%1 хвілінаў"
374
374
375−#: qml/Panel/Indicators/MenuItemFactory.qml:891
375+#: qml/Panel/Indicators/MenuItemFactory.qml:899
376#, qt-format
376#, qt-format
377msgid "%1 second"
377msgid "%1 second"
378msgid_plural "%1 seconds"
378msgid_plural "%1 seconds"
@@ -380,37 +380,37 @@ msgstr[0] "%1 секунда"
380msgstr[1] "%1 секунды"
380msgstr[1] "%1 секунды"
381msgstr[2] "%1 секундаў"
381msgstr[2] "%1 секундаў"
382
382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:894
383+#: qml/Panel/Indicators/MenuItemFactory.qml:902
384msgid "0 seconds"
384msgid "0 seconds"
385msgstr "0 секунд"
385msgstr "0 секунд"
386
386
387#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
387#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
388−#: qml/Panel/Indicators/MenuItemFactory.qml:896
388+#: qml/Panel/Indicators/MenuItemFactory.qml:904
389#, qt-format
389#, qt-format
390msgid "%1 remaining"
390msgid "%1 remaining"
391msgstr "%1 засталося"
391msgstr "%1 засталося"
392
392
393−#: qml/Panel/Indicators/MenuItemFactory.qml:902
393+#: qml/Panel/Indicators/MenuItemFactory.qml:910
394msgid "In queue…"
394msgid "In queue…"
395msgstr "У чарзе..."
395msgstr "У чарзе..."
396
396
397−#: qml/Panel/Indicators/MenuItemFactory.qml:906
397+#: qml/Panel/Indicators/MenuItemFactory.qml:914
398msgid "Downloading"
398msgid "Downloading"
399msgstr "Запампоўка"
399msgstr "Запампоўка"
400
400
401−#: qml/Panel/Indicators/MenuItemFactory.qml:908
401+#: qml/Panel/Indicators/MenuItemFactory.qml:916
402msgid "Paused, tap to resume"
402msgid "Paused, tap to resume"
403msgstr "Прыпынена, націсніце для працягу"
403msgstr "Прыпынена, націсніце для працягу"
404
404
405−#: qml/Panel/Indicators/MenuItemFactory.qml:910
405+#: qml/Panel/Indicators/MenuItemFactory.qml:918
406msgid "Canceled"
406msgid "Canceled"
407msgstr "Скасавана"
407msgstr "Скасавана"
408
408
409−#: qml/Panel/Indicators/MenuItemFactory.qml:912
409+#: qml/Panel/Indicators/MenuItemFactory.qml:920
410msgid "Finished"
410msgid "Finished"
411msgstr "Скончана"
411msgstr "Скончана"
412
412
413−#: qml/Panel/Indicators/MenuItemFactory.qml:914
413+#: qml/Panel/Indicators/MenuItemFactory.qml:922
414msgid "Failed, tap to retry"
414msgid "Failed, tap to retry"
415msgstr "Не атрымалася, націсніце, каб паўтарыць спробу"
415msgstr "Не атрымалася, націсніце, каб паўтарыць спробу"
416
416
@@ -430,259 +430,324 @@ msgctxt "Button: Call back on phone"
430msgid "Call back"
430msgid "Call back"
431msgstr "Патэлефанаваць"
431msgstr "Патэлефанаваць"
432
432
433−#: qml/Panel/Indicators/ModemInfoItem.qml:105
433+#: qml/Stages/SideStage.qml:76
434−msgid "Unlock SIM"
434+msgid "Drag using 3 fingers any application from one window to the other"
435−msgstr "Разблакаваць SIM"
435+msgstr ""
436−
437−#: qml/Panel/Indicators/RoamingIndication.qml:27
438−msgid "Roaming"
439−msgstr "Роўмінг"
440−
441−#: qml/Tutorial/TutorialBottom.qml:28
442−msgid "Open special menus"
443−msgstr "Адкрыць спецыяльныя меню"
444−
445−#: qml/Tutorial/TutorialBottom.qml:29
446−msgid "Swipe up from the bottom edge."
447−msgstr "Правесці уверх ад ніжняга краю."
448
436
449−#: qml/Tutorial/TutorialBottomFinish.qml:24
437+#: qml/Tutorial/TutorialBottom.qml:78
450−msgid "This action does different things for different apps"
438+msgid "Swipe up to add a contact"
451−msgstr "Гэта дзеянне мае розныя наступствы для розных праграм"
439+msgstr ""
452
440
453−#: qml/Tutorial/TutorialBottomFinish.qml:25
441+#: qml/Tutorial/TutorialBottom.qml:80
454−msgid "Tap here to finish."
442+msgid "Swipe up for favorite calculations"
455−msgstr "Націсніце тут, каб завяршыць."
443+msgstr ""
456
444
457−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
445+#: qml/Tutorial/TutorialBottom.qml:82
458−#: qml/Tutorial/TutorialRight.qml:144
446+msgid "Swipe up for recent calls"
459−msgid "Tap here to continue."
447+msgstr ""
460−msgstr "Націсніце тут, каб працягнуць."
461
448
462−#: qml/Tutorial/TutorialLeft.qml:26
449+#: qml/Tutorial/TutorialBottom.qml:84
463−msgid "Open the launcher"
450+msgid "Swipe up to create a message"
464−msgstr "Адкрыць панэль запуску"
451+msgstr ""
465
452
466−#: qml/Tutorial/TutorialLeft.qml:27
453+#: qml/Tutorial/TutorialBottom.qml:85
467−msgid "Short swipe from the left edge."
454+msgid "Swipe up to manage the app"
468−msgstr "Кароткі рух з левага краю."
455+msgstr ""
469
456
470−#: qml/Tutorial/TutorialLeftFinish.qml:24
457+#: qml/Tutorial/TutorialLeft.qml:47
471−msgid "These are the shortcuts to favorite apps"
458+msgid "Swipe from the left edge to open the launcher"
472−msgstr "Гэта скарачэнні для абраных праграм"
459+msgstr ""
473
460
474−#: qml/Tutorial/TutorialPage.qml:178
461+#: qml/Tutorial/TutorialLeftLong.qml:47
475−msgid "You almost got it!"
462+msgid "Long swipe from the left edge to open the Today scope"
476−msgstr "Амаль усё!"
463+msgstr ""
477
464
478−#: qml/Tutorial/TutorialPage.qml:195
465+#: qml/Tutorial/TutorialRight.qml:54
479−msgid "Try again."
466+msgid "Hover your mouse on the right edge to view your open apps"
480−msgstr "Паспрабуйце яшчэ."
467+msgstr ""
481
468
482−#: qml/Tutorial/TutorialRight.qml:31
469+#: qml/Tutorial/TutorialRight.qml:55
483−msgid "To view open apps"
470+msgid "Short or long swipe from the right edge to view your open apps"
484−msgstr "Паглядзець адкрытыя праграмы"
471+msgstr ""
485
472
486−#: qml/Tutorial/TutorialRight.qml:32
473+#: qml/Tutorial/TutorialTop.qml:53
487−msgid "Long swipe from the right edge."
474+msgid "Swipe from the top right edge to open the notification bar"
488−msgstr "Доўгі рух ад правага краю."
475+msgstr ""
489
476
490−#: qml/Tutorial/TutorialRight.qml:122
477+#: qml/Tutorial/TutorialTop.qml:54
491−msgid "View all your running tasks."
478+msgid "Swipe from the top edge to open the notification bar"
492−msgstr "Паказаць усе запушчаныя задачы."
479+msgstr ""
493
480
494−#: qml/Wizard/Page.qml:89
481+#: qml/Wizard/Page.qml:54
495msgctxt "Button: Go back one page in the Wizard"
482msgctxt "Button: Go back one page in the Wizard"
496msgid "Back"
483msgid "Back"
497msgstr "Вярнуцца"
484msgstr "Вярнуцца"
498
485
499#: qml/Wizard/Pages/10-welcome.qml:27
486#: qml/Wizard/Pages/10-welcome.qml:27
500−msgid "Hi!"
487+msgid "Language"
501−msgstr "Вітай!"
488+msgstr ""
502
489
503−#: qml/Wizard/Pages/10-welcome.qml:44
490+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
504−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"
505msgstr ""
497msgstr ""
506
498
507−#: qml/Wizard/Pages/10-welcome.qml:52
499+#: qml/Wizard/Pages/30-wifi.qml:29
508−msgid "Let’s get started."
500+msgid "Connect to Wi‑Fi"
509−msgstr "Пачнем."
501+msgstr "Злучыцца з Wi-Fi"
510
502
511−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
503+#: qml/Wizard/Pages/30-wifi.qml:130
512−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
504+msgid "Connected"
513−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
505+msgstr ""
514−#: qml/Wizard/Pages/passwd-set.qml:90
515−msgid "Continue"
516−msgstr "Працягнуць"
517
506
518−#: qml/Wizard/Pages/20-sim.qml:25
507+#: qml/Wizard/Pages/30-wifi.qml:163
519−msgid "Add a SIM card and restart your device"
508+msgid "Available Wi-Fi networks"
520−msgstr "Дадайце SIM-карту і перазагрузіце Вашую прыладу"
509+msgstr ""
521
510
522−#: qml/Wizard/Pages/20-sim.qml:59
511+#: qml/Wizard/Pages/30-wifi.qml:164
523−msgid "Without it, you won’t be able to make calls or use text messaging."
512+msgid "No available Wi-Fi networks"
524−msgstr "Без яе Вы не зможаце тэлефанаваць ці адпраўляць паведамленні."
513+msgstr ""
525
514
526−#: 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
527msgid "Skip"
517msgid "Skip"
528msgstr "Прапусціць"
518msgstr "Прапусціць"
529
519
530−#: qml/Wizard/Pages/30-passwd-type.qml:39
520+#: qml/Wizard/Pages/40-location.qml:27
531−msgid "Lock security"
521+msgid "Location Services"
532−msgstr "Блакіроўка"
522+msgstr ""
533
523
534−#: qml/Wizard/Pages/30-passwd-type.qml:79
524+#: qml/Wizard/Pages/40-location.qml:83
535−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)"
536msgstr ""
528msgstr ""
537
529
538−#: qml/Wizard/Pages/30-passwd-type.qml:102
530+#: qml/Wizard/Pages/40-location.qml:105
539−msgctxt "Label: Type of security method"
531+#, qt-format
540−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"
538+msgstr ""
539+
540+#: qml/Wizard/Pages/40-location.qml:160
541+msgid "GPS only"
542+msgstr ""
543+
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."
541−msgstr "Рух"
550+msgstr ""
542
551
543−#: qml/Wizard/Pages/30-passwd-type.qml:103
552+#: qml/Wizard/Pages/50-timezone.qml:29
544−msgctxt "Label: Description of security method"
553+msgid "Time Zone"
545−msgid "No security"
554+msgstr ""
546−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 ""
547
567
548−#: qml/Wizard/Pages/30-passwd-type.qml:105
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
549msgctxt "Label: Type of security method"
573msgctxt "Label: Type of security method"
550−msgid "Passcode"
574+msgid "Create new password"
551−msgstr "Код-пароль"
575+msgstr ""
552
576
553−#: qml/Wizard/Pages/30-passwd-type.qml:106
577+#: qml/Wizard/Pages/70-passwd-type.qml:103
554−msgctxt "Label: Description of security method"
578+msgctxt "Label: Type of security method"
555−msgid "4 digits only"
579+msgid "Create passcode (numbers only)"
556−msgstr "Толькі 4 лічбы"
580+msgstr ""
557
581
558−#: qml/Wizard/Pages/30-passwd-type.qml:108
582+#: qml/Wizard/Pages/70-passwd-type.qml:105
559msgctxt "Label: Type of security method"
583msgctxt "Label: Type of security method"
560−msgid "Passphrase"
584+msgid "No lock code"
561−msgstr "Пароль"
585+msgstr ""
562
586
563−#: qml/Wizard/Pages/30-passwd-type.qml:109
587+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
564−msgctxt "Label: Description of security method"
588+msgid "Privacy Policy"
565−msgid "Numbers and letters"
589+msgstr ""
566−msgstr "Літары і лічбы"
567
590
568−#: qml/Wizard/Pages/40-wifi.qml:29
591+#: qml/Wizard/Pages/75-report-check.qml:26
569−msgid "Connect to Wi‑Fi"
592+msgid "Help Us Improve"
570−msgstr "Злучыцца з Wi-Fi"
593+msgstr ""
571
594
572−#: qml/Wizard/Pages/40-wifi.qml:168
595+#: qml/Wizard/Pages/75-report-check.qml:59
573−msgid "Available networks…"
596+msgid "Improve system performance by sending us crashes and error reports."
574−msgstr "Даступныя сеткі..."
597+msgstr ""
575
598
576−#: qml/Wizard/Pages/40-wifi.qml:169
599+#: qml/Wizard/Pages/75-report-check.qml:60
577−msgid "No available networks."
600+msgid "Privacy policy"
578−msgstr "Няма даступных сетак."
601+msgstr ""
579
602
580−#: qml/Wizard/Pages/50-location.qml:27
603+#: qml/Wizard/Pages/80-finished.qml:89
581−msgid "Location"
604+msgid "Welcome to Ubuntu"
582−msgstr "Месца"
605+msgstr ""
583
606
584−#: qml/Wizard/Pages/50-location.qml:62
607+#: qml/Wizard/Pages/80-finished.qml:104
585−msgid "Let the phone detect your location:"
608+msgid "You are ready to use your device now"
586−msgstr "Дазволіць тэлефону вызначаць месцазнаходжанне:"
609+msgstr ""
610+
611+#: qml/Wizard/Pages/80-finished.qml:124
612+msgid "Get Started"
613+msgstr ""
587
614
588−#: qml/Wizard/Pages/50-location.qml:69
615+#: qml/Wizard/Pages/here-terms.qml:25
589−msgid "Using GPS only (less accurate)"
616+msgid "Terms & Conditions"
590−msgstr "З дапамогай толькі GPS (найменш дакладна)"
617+msgstr "Умовы карыстання"
591
618
592−#: qml/Wizard/Pages/50-location.qml:86
619+#: qml/Wizard/Pages/here-terms.qml:69
593−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
620+msgid "Your device uses positioning technologies provided by HERE."
594msgstr ""
621msgstr ""
595−"На аснове GPS, ананімізаванага Wi-Fi і дадзеных сотавай сеткі (рэкамендуецца)"
596
622
597−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
598−#: qml/Wizard/Pages/50-location.qml:103
623+#: qml/Wizard/Pages/here-terms.qml:81
599msgid ""
624msgid ""
600−"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 "
601−"conditions</a>."
626+"collects information about nearby cell towers and Wi-Fi hotspots around your "
627+"current location whenever your position is being found."
602msgstr ""
628msgstr ""
603−"Выбарам гэтага варыянту дзеянняў вы згаджаецеся з <a href='#'> умовамі "
604−"прадстаўлення паслуг Nokia HERE</a>."
605
629
606−#: qml/Wizard/Pages/50-location.qml:112
630+#: qml/Wizard/Pages/here-terms.qml:93
607−msgid "Not at all"
631+msgid ""
608−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 ""
609
635
610−#: qml/Wizard/Pages/50-location.qml:124
636+#: qml/Wizard/Pages/here-terms.qml:106
611−msgid "You can change your mind later in <b>System Settings</b>."
637+#, qt-format
612−msgstr "Пасля змяніць налады можна з дапамогай <b>Сістэмных наладкаў</b>."
638+msgid "By continuing, you agree to the HERE platform %1 and %2."
639+msgstr ""
613
640
614−#: qml/Wizard/Pages/60-reporting.qml:26
641+#: qml/Wizard/Pages/here-terms.qml:107
615−msgid "Improving your experience"
642+msgid "Service Terms"
616−msgstr "Спрашчэнне вашай працы"
643+msgstr ""
617
644
618−#: qml/Wizard/Pages/60-reporting.qml:46
645+#: qml/Wizard/Pages/passcode-confirm.qml:43
646+#: qml/Wizard/Pages/passcode-desktop.qml:80
619−msgid ""
647+msgid "Confirm passcode"
620−"Your phone is set up to automatically report errors to Canonical and its "
648+msgstr "Пацвердзіце код-пароль"
621−"partners, the makers of the operating system."
649+
650+#: qml/Wizard/Pages/passcode-confirm.qml:45
651+msgid "Incorrect passcode."
622msgstr ""
652msgstr ""
623−"Ваш тэлефон настроены на аўтаматычную адпраўку справаздач пра памылкі ў "
624−"Canonical і партнёрскія установы, вытворцам аперацыйнай сістэмы."
625
653
626−#: qml/Wizard/Pages/60-reporting.qml:53
654+#: qml/Wizard/Pages/passcode-confirm.qml:45
655+msgctxt "Enter the passcode again"
627−msgid ""
656+msgid "Please re-enter."
628−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
629−"Privacy</b>"
630msgstr ""
657msgstr ""
631−"Гэтае можна адключыць у <b>Сістэмных наладках</b>, дзе <b>Бяспека &amp; "
632−"канфедэнцыйнасці</b>"
633
658
634−#: qml/Wizard/Pages/80-finished.qml:24
659+#: qml/Wizard/Pages/passcode-desktop.qml:30
635−msgid "All done"
660+msgid "Lock Screen Passcode"
636−msgstr "Зроблена"
661+msgstr ""
637
662
638−#: qml/Wizard/Pages/80-finished.qml:39
663+#: qml/Wizard/Pages/passcode-desktop.qml:56
639−msgid "Nice work!"
664+msgid "Enter 4 numbers to setup your passcode"
640−msgstr "Выдатная праца!"
665+msgstr ""
641
666
642−#: qml/Wizard/Pages/80-finished.qml:46
667+#: qml/Wizard/Pages/passcode-desktop.qml:65
643−msgid "Your device is now ready to use."
668+#: qml/Wizard/Pages/passcode-set.qml:54
669+msgid "Choose passcode"
644msgstr ""
670msgstr ""
645
671
646−#: qml/Wizard/Pages/80-finished.qml:53
672+#: qml/Wizard/Pages/passcode-desktop.qml:105
647−msgid "Finish"
673+msgid "Passcode too short"
648−msgstr "Скончыць"
674+msgstr ""
649
675
650−#: qml/Wizard/Pages/here-terms.qml:27
676+#: qml/Wizard/Pages/passcode-desktop.qml:107
651−msgid "Terms & Conditions"
677+msgid "Passcodes match"
652−msgstr "Умовы карыстання"
678+msgstr ""
653
679
654−#: qml/Wizard/Pages/passwd-confirm.qml:49
680+#: qml/Wizard/Pages/passcode-desktop.qml:109
655−msgid "Confirm passphrase"
681+msgid "Passcodes do not match"
656−msgstr "Пацвердзіце пароль"
682+msgstr ""
657
683
658−#: qml/Wizard/Pages/passwd-confirm.qml:50
684+#: qml/Wizard/Pages/passcode-set.qml:62
659−msgid "Confirm passcode"
685+msgid "Passcode must be 4 characters long"
660−msgstr "Пацвердзіце код-пароль"
686+msgstr ""
661
687
662−#: qml/Wizard/Pages/passwd-confirm.qml:53
688+#: qml/Wizard/Pages/password-set.qml:30
663−#: qml/Wizard/Pages/passwd-confirm.qml:54
689+msgid "Lock Screen Password"
664−msgid "Please try again."
690+msgstr ""
665−msgstr "Калі ласка, паспрабуйце яшчэ раз."
666
691
667−#: qml/Wizard/Pages/passwd-set.qml:61
692+#: qml/Wizard/Pages/password-set.qml:61
668−msgid "Choose your passcode"
693+msgid "Enter at least 8 characters"
669−msgstr "Выберыце код"
694+msgstr ""
670
695
671−#: qml/Wizard/Pages/passwd-set.qml:68
696+#: qml/Wizard/Pages/password-set.qml:73
672−msgid "Passphrase must be 4 characters long"
697+msgid "Choose password"
673−msgstr "Код мусіць складацца з 4 сімвалаў"
698+msgstr ""
674
699
675−#. Translators: This is the arrow for "Back" buttons
700+#: qml/Wizard/Pages/password-set.qml:103
676−#: qml/Wizard/StackButton.qml:39
701+msgid "Confirm password"
677−#, qt-format
678−msgid "〈 %1"
679−msgstr "〈 %1"
702+msgstr ""
680
703
681−#. 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+
682−#: qml/Wizard/StackButton.qml:42
720+#: qml/Wizard/Pages/sim.qml:78
683−#, qt-format
721+msgid "You won’t be able to make calls or use text messaging without a SIM."
684−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"
685−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 ""
686
751
687#~ msgid "Reboot"
752#~ msgid "Reboot"
688#~ msgstr "Перазагрузіць"
753#~ msgstr "Перазагрузіць"
@@ -705,6 +770,12 @@ msgstr "%1 〉"
705#~ msgid "Confirm"
770#~ msgid "Confirm"
706#~ msgstr "Пацвердзіць"
771#~ msgstr "Пацвердзіць"
707
772
773+#~ msgid "Unlock SIM"
774+#~ msgstr "Разблакаваць SIM"
775+
776+#~ msgid "Roaming"
777+#~ msgstr "Роўмінг"
778+
708#~ msgid "Try swiping from the right edge to unlock the phone"
779#~ msgid "Try swiping from the right edge to unlock the phone"
709#~ msgstr "Правядзіце пальцам з правага краю, каб разблакаваць тэлефон"
780#~ msgstr "Правядзіце пальцам з правага краю, каб разблакаваць тэлефон"
710
781
@@ -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
@@ -746,17 +820,88 @@ msgstr "%1 〉"
746#~ msgid "Store"
820#~ msgid "Store"
747#~ msgstr "Крама"
821#~ msgstr "Крама"
748
822
823+#~ msgid "Add a SIM card and restart your device"
824+#~ msgstr "Дадайце SIM-карту і перазагрузіце Вашую прыладу"
825+
826+#~ msgid "Hi!"
827+#~ msgstr "Вітай!"
828+
749#~ msgid "Welcome to your Ubuntu phone."
829#~ msgid "Welcome to your Ubuntu phone."
750#~ msgstr "Вітаем Вас у сістэме тэлефона Ubuntu."
830#~ msgstr "Вітаем Вас у сістэме тэлефона Ubuntu."
751
831
832+#~ msgid "Let’s get started."
833+#~ msgstr "Пачнем."
834+
835+#~ msgid "Continue"
836+#~ msgstr "Працягнуць"
837+
752#~ msgid "Please select how you’d like to unlock your phone."
838#~ msgid "Please select how you’d like to unlock your phone."
753#~ msgstr "Калі ласка, абярыце спосаб разблакавання тэлефона."
839#~ msgstr "Калі ласка, абярыце спосаб разблакавання тэлефона."
754
840
841+#~ msgid "Using GPS only (less accurate)"
842+#~ msgstr "З дапамогай толькі GPS (найменш дакладна)"
843+
844+#~ msgid "Available networks…"
845+#~ msgstr "Даступныя сеткі..."
846+
847+#~ msgid "No available networks."
848+#~ msgstr "Няма даступных сетак."
849+
850+#~ msgid "Location"
851+#~ msgstr "Месца"
852+
853+#~ msgid "Let the phone detect your location:"
854+#~ msgstr "Дазволіць тэлефону вызначаць месцазнаходжанне:"
855+
856+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
857+#~ msgstr ""
858+#~ "На аснове GPS, ананімізаванага Wi-Fi і дадзеных сотавай сеткі (рэкамендуецца)"
859+
860+#~ msgid "Improving your experience"
861+#~ msgstr "Спрашчэнне вашай працы"
862+
863+#~ msgid ""
864+#~ "Your phone is set up to automatically report errors to Canonical and its "
865+#~ "partners, the makers of the operating system."
866+#~ msgstr ""
867+#~ "Ваш тэлефон настроены на аўтаматычную адпраўку справаздач пра памылкі ў "
868+#~ "Canonical і партнёрскія установы, вытворцам аперацыйнай сістэмы."
869+
870+#~ msgid "Nice work!"
871+#~ msgstr "Выдатная праца!"
872+
873+#~ msgid "All done"
874+#~ msgstr "Зроблена"
875+
876+#~ msgid "Finish"
877+#~ msgstr "Скончыць"
878+
755#~ msgid "Your phone is now ready to use."
879#~ msgid "Your phone is now ready to use."
756#~ msgstr "Цяпер Вашым тэлефонам можна карыстацца."
880#~ msgstr "Цяпер Вашым тэлефонам можна карыстацца."
757
881
758−#~ msgid "Restart"
882+#~ msgid ""
759−#~ msgstr "Перазапусціць"
883+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
884+#~ "conditions</a>."
885+#~ msgstr ""
886+#~ "Выбарам гэтага варыянту дзеянняў вы згаджаецеся з <a href='#'> умовамі "
887+#~ "прадстаўлення паслуг Nokia HERE</a>."
888+
889+#~ msgid "Not at all"
890+#~ msgstr "Не дазваляць"
891+
892+#, qt-format
893+#~ msgid "〈 %1"
894+#~ msgstr "〈 %1"
895+
896+#~ msgid "Confirm passphrase"
897+#~ msgstr "Пацвердзіце пароль"
898+
899+#, qt-format
900+#~ msgid "%1 〉"
901+#~ msgstr "%1 〉"
902+
903+#~ msgid "Please try again."
904+#~ msgstr "Калі ласка, паспрабуйце яшчэ раз."
760
905
761#~ msgid "Close"
906#~ msgid "Close"
762#~ msgstr "Закрыць"
907#~ msgstr "Закрыць"
@@ -778,6 +923,103 @@ msgstr "%1 〉"
778#~ msgid "Please re-enter"
923#~ msgid "Please re-enter"
779#~ msgstr "Калі ласка, паўтарыце ўвод"
924#~ msgstr "Калі ласка, паўтарыце ўвод"
780
925
926+#~ msgid "Lock security"
927+#~ msgstr "Блакіроўка"
928+
929+#~ msgid "You can change your mind later in <b>System Settings</b>."
930+#~ msgstr "Пасля змяніць налады можна з дапамогай <b>Сістэмных наладкаў</b>."
931+
932+#~ msgid ""
933+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
934+#~ "Privacy</b>"
935+#~ msgstr ""
936+#~ "Гэтае можна адключыць у <b>Сістэмных наладках</b>, дзе <b>Бяспека &amp; "
937+#~ "канфедэнцыйнасці</b>"
938+
939+#~ msgid "Choose your passcode"
940+#~ msgstr "Выберыце код"
941+
942+#~ msgctxt "Button: Shut down the system"
943+#~ msgid "Shut down"
944+#~ msgstr "Выключыць"
945+
946+#~ msgctxt "Title: Reboot/Shut down dialog"
947+#~ msgid "Shut down"
948+#~ msgstr "Выключыць"
949+
950+#~ msgctxt "Button: Reboot the system"
951+#~ msgid "Reboot"
952+#~ msgstr "Перазагрузіць"
953+
954+#~ msgid "Swipe up from the bottom edge."
955+#~ msgstr "Правесці уверх ад ніжняга краю."
956+
957+#~ msgid "Open special menus"
958+#~ msgstr "Адкрыць спецыяльныя меню"
959+
960+#~ msgid "Tap here to finish."
961+#~ msgstr "Націсніце тут, каб завяршыць."
962+
963+#~ msgid "This action does different things for different apps"
964+#~ msgstr "Гэта дзеянне мае розныя наступствы для розных праграм"
965+
966+#~ msgid "To view open apps"
967+#~ msgstr "Паглядзець адкрытыя праграмы"
968+
969+#~ msgid "You almost got it!"
970+#~ msgstr "Амаль усё!"
971+
972+#~ msgid "Short swipe from the left edge."
973+#~ msgstr "Кароткі рух з левага краю."
974+
975+#~ msgid "Long swipe from the right edge."
976+#~ msgstr "Доўгі рух ад правага краю."
977+
978+#~ msgid "View all your running tasks."
979+#~ msgstr "Паказаць усе запушчаныя задачы."
980+
981+#~ msgid "Try again."
982+#~ msgstr "Паспрабуйце яшчэ."
983+
984+#~ msgid "Open the launcher"
985+#~ msgstr "Адкрыць панэль запуску"
986+
987+#~ msgid "Tap here to continue."
988+#~ msgstr "Націсніце тут, каб працягнуць."
989+
990+#~ msgid "These are the shortcuts to favorite apps"
991+#~ msgstr "Гэта скарачэнні для абраных праграм"
992+
993+#~ msgctxt "Label: Description of security method"
994+#~ msgid "No security"
995+#~ msgstr "Без бяспекі"
996+
997+#~ msgctxt "Label: Type of security method"
998+#~ msgid "Swipe"
999+#~ msgstr "Рух"
1000+
1001+#~ msgctxt "Label: Description of security method"
1002+#~ msgid "4 digits only"
1003+#~ msgstr "Толькі 4 лічбы"
1004+
1005+#~ msgctxt "Label: Type of security method"
1006+#~ msgid "Passphrase"
1007+#~ msgstr "Пароль"
1008+
1009+#~ msgctxt "Label: Description of security method"
1010+#~ msgid "Numbers and letters"
1011+#~ msgstr "Літары і лічбы"
1012+
1013+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
1014+#~ msgstr "Без яе Вы не зможаце тэлефанаваць ці адпраўляць паведамленні."
1015+
1016+#~ msgid "Passphrase must be 4 characters long"
1017+#~ msgstr "Код мусіць складацца з 4 сімвалаў"
1018+
1019+#~ msgctxt "Label: Type of security method"
1020+#~ msgid "Passcode"
1021+#~ msgstr "Код-пароль"
1022+
781#~ msgid "%a %l:%M %p"
1023#~ msgid "%a %l:%M %p"
782#~ msgstr "%a a %H:%M"
1024#~ msgstr "%a a %H:%M"
783
1025
po/bg.po+269−197
@@ -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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,23 +15,23 @@ 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-02-17 05:43+0000\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
19+"X-Generator: Launchpad (build 17958)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr ""
23msgstr ""
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr ""
28msgstr ""
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr ""
36msgstr ""
37
37
@@ -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:219
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:183
114msgid "Yes"
96msgid "Yes"
115msgstr ""
97msgstr ""
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
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:199
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,25 +109,25 @@ msgstr ""
127"Искате ли да \n"
109"Искате ли да \n"
128"изключите захранването на устройството?"
110"изключите захранването на устройството?"
129
111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:201
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:210
136msgctxt "Button: Restart the system"
118msgctxt "Button: Restart the system"
137msgid "Restart"
119msgid "Restart"
138msgstr ""
120msgstr ""
139
121
140−#: qml/Components/Lockscreen.qml:245
122+#: qml/Components/Lockscreen.qml:231
141msgid "Return to Call"
123msgid "Return to Call"
142msgstr ""
124msgstr ""
143
125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145msgid "Emergency Call"
127msgid "Emergency Call"
146msgstr "Спешно повикване"
128msgstr "Спешно повикване"
147
129
148−#: qml/Components/Lockscreen.qml:277
130+#: qml/Components/Lockscreen.qml:263
149msgid "OK"
131msgid "OK"
150msgstr ""
132msgstr ""
151
133
@@ -154,6 +136,8 @@ msgid "Apps may have unsaved data:"
154msgstr ""
136msgstr ""
155
137
156#: qml/Components/ModeSwitchWarningDialog.qml:57
138#: qml/Components/ModeSwitchWarningDialog.qml:57
139+msgctxt ""
140+"Re-dock means connect the device again to an external screen/mouse/keyboard"
157msgid "Re-dock, save your work and close these apps to continue."
141msgid "Re-dock, save your work and close these apps to continue."
158msgstr ""
142msgstr ""
159
143
@@ -173,42 +157,58 @@ msgstr ""
173msgid "Close all"
157msgid "Close all"
174msgstr ""
158msgstr ""
175
159
176−#: qml/Dash/DashPageHeader.qml:266
160+#: qml/Dash/DashPageHeader.qml:337
177msgctxt "Button: Open the Ubuntu Store"
161msgctxt "Button: Open the Ubuntu Store"
178msgid "Store"
162msgid "Store"
179msgstr ""
163msgstr ""
180
164
181−#: qml/Dash/DashPageHeader.qml:273
165+#: qml/Dash/DashPageHeader.qml:344
182msgctxt "Button: Start a search in the current dash scope"
166msgctxt "Button: Start a search in the current dash scope"
183msgid "Search"
167msgid "Search"
184msgstr ""
168msgstr ""
185
169
186−#: qml/Dash/DashPageHeader.qml:283
170+#: qml/Dash/DashPageHeader.qml:354
187msgctxt "Button: Show the current dash scope settings"
171msgctxt "Button: Show the current dash scope settings"
188msgid "Settings"
172msgid "Settings"
189msgstr ""
173msgstr ""
190
174
191−#: qml/Dash/DashPageHeader.qml:290
175+#: qml/Dash/DashPageHeader.qml:361
192msgid "Remove from Favorites"
176msgid "Remove from Favorites"
193msgstr ""
177msgstr ""
194
178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196msgid "Add to Favorites"
180msgid "Add to Favorites"
197msgstr ""
181msgstr ""
198
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+
199−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
191+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
200msgid "See less"
192msgid "See less"
201msgstr ""
193msgstr ""
202
194
203−#: qml/Dash/GenericScopeView.qml:587
195+#: qml/Dash/GenericScopeView.qml:570
204msgid "See all"
196msgid "See all"
205msgstr ""
197msgstr ""
206
198
207−#: qml/Dash/GenericScopeView.qml:649
199+#: qml/Dash/GenericScopeView.qml:627
208msgctxt "Label: Hint for dash search line edit"
200msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
201msgid "Search"
210msgstr ""
202msgstr ""
211
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+
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
213msgid "More..."
213msgid "More..."
214msgstr ""
214msgstr ""
@@ -230,7 +230,7 @@ msgstr "Оценете това"
230msgid "Add a review"
230msgid "Add a review"
231msgstr "Добави отзив"
231msgstr "Добави отзив"
232
232
233−#: qml/Dash/Previews/PreviewSharing.qml:50
233+#: qml/Dash/Previews/PreviewSharing.qml:66
234msgid "Preview Share Item"
234msgid "Preview Share Item"
235msgstr ""
235msgstr ""
236
236
@@ -258,13 +258,13 @@ msgstr ""
258msgid "Also installed"
258msgid "Also installed"
259msgstr ""
259msgstr ""
260
260
261−#: qml/DisabledScreenNotice.qml:87
261+#: qml/DisabledScreenNotice.qml:104
262msgid ""
262msgid ""
263"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 "
264−"touch pad to interact with the mouse."
264+"touch pad to interact with the pointer."
265msgstr ""
265msgstr ""
266
266
267−#: qml/Greeter/CoverPage.qml:107
267+#: qml/Greeter/CoverPage.qml:118
268msgid "Unlock"
268msgid "Unlock"
269msgstr ""
269msgstr ""
270
270
@@ -276,11 +276,11 @@ msgstr ""
276msgid "Tap to unlock"
276msgid "Tap to unlock"
277msgstr ""
277msgstr ""
278
278
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
280msgid "Sorry, incorrect passphrase."
280msgid "Sorry, incorrect passphrase."
281msgstr ""
281msgstr ""
282
282
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
284msgid "Sorry, incorrect passcode."
284msgid "Sorry, incorrect passcode."
285msgstr ""
285msgstr ""
286
286
@@ -305,7 +305,7 @@ msgstr ""
305msgid "Enter %1"
305msgid "Enter %1"
306msgstr ""
306msgstr ""
307
307
308−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
308+#: qml/Greeter/NarrowView.qml:117
309msgid "Enter passphrase"
309msgid "Enter passphrase"
310msgstr ""
310msgstr ""
311
311
@@ -343,62 +343,62 @@ msgstr ""
343msgid "Conference"
343msgid "Conference"
344msgstr ""
344msgstr ""
345
345
346−#: qml/Panel/Indicators/MenuItemFactory.qml:753
346+#: qml/Panel/Indicators/MenuItemFactory.qml:761
347msgid "Nothing is playing"
347msgid "Nothing is playing"
348msgstr ""
348msgstr ""
349
349
350−#: qml/Panel/Indicators/MenuItemFactory.qml:882
350+#: qml/Panel/Indicators/MenuItemFactory.qml:890
351#, qt-format
351#, qt-format
352msgid "%1 hour"
352msgid "%1 hour"
353msgid_plural "%1 hours"
353msgid_plural "%1 hours"
354msgstr[0] ""
354msgstr[0] ""
355msgstr[1] ""
355msgstr[1] ""
356
356
357−#: qml/Panel/Indicators/MenuItemFactory.qml:886
357+#: qml/Panel/Indicators/MenuItemFactory.qml:894
358#, qt-format
358#, qt-format
359msgid "%1 minute"
359msgid "%1 minute"
360msgid_plural "%1 minutes"
360msgid_plural "%1 minutes"
361msgstr[0] ""
361msgstr[0] ""
362msgstr[1] ""
362msgstr[1] ""
363
363
364−#: qml/Panel/Indicators/MenuItemFactory.qml:891
364+#: qml/Panel/Indicators/MenuItemFactory.qml:899
365#, qt-format
365#, qt-format
366msgid "%1 second"
366msgid "%1 second"
367msgid_plural "%1 seconds"
367msgid_plural "%1 seconds"
368msgstr[0] ""
368msgstr[0] ""
369msgstr[1] ""
369msgstr[1] ""
370
370
371−#: qml/Panel/Indicators/MenuItemFactory.qml:894
371+#: qml/Panel/Indicators/MenuItemFactory.qml:902
372msgid "0 seconds"
372msgid "0 seconds"
373msgstr ""
373msgstr ""
374
374
375#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
375#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
376−#: qml/Panel/Indicators/MenuItemFactory.qml:896
376+#: qml/Panel/Indicators/MenuItemFactory.qml:904
377#, qt-format
377#, qt-format
378msgid "%1 remaining"
378msgid "%1 remaining"
379msgstr ""
379msgstr ""
380
380
381−#: qml/Panel/Indicators/MenuItemFactory.qml:902
381+#: qml/Panel/Indicators/MenuItemFactory.qml:910
382msgid "In queue…"
382msgid "In queue…"
383msgstr ""
383msgstr ""
384
384
385−#: qml/Panel/Indicators/MenuItemFactory.qml:906
385+#: qml/Panel/Indicators/MenuItemFactory.qml:914
386msgid "Downloading"
386msgid "Downloading"
387msgstr ""
387msgstr ""
388
388
389−#: qml/Panel/Indicators/MenuItemFactory.qml:908
389+#: qml/Panel/Indicators/MenuItemFactory.qml:916
390msgid "Paused, tap to resume"
390msgid "Paused, tap to resume"
391msgstr ""
391msgstr ""
392
392
393−#: qml/Panel/Indicators/MenuItemFactory.qml:910
393+#: qml/Panel/Indicators/MenuItemFactory.qml:918
394msgid "Canceled"
394msgid "Canceled"
395msgstr ""
395msgstr ""
396
396
397−#: qml/Panel/Indicators/MenuItemFactory.qml:912
397+#: qml/Panel/Indicators/MenuItemFactory.qml:920
398msgid "Finished"
398msgid "Finished"
399msgstr ""
399msgstr ""
400
400
401−#: qml/Panel/Indicators/MenuItemFactory.qml:914
401+#: qml/Panel/Indicators/MenuItemFactory.qml:922
402msgid "Failed, tap to retry"
402msgid "Failed, tap to retry"
403msgstr ""
403msgstr ""
404
404
@@ -418,251 +418,323 @@ msgctxt "Button: Call back on phone"
418msgid "Call back"
418msgid "Call back"
419msgstr ""
419msgstr ""
420
420
421−#: qml/Panel/Indicators/ModemInfoItem.qml:105
421+#: qml/Stages/SideStage.qml:76
422−msgid "Unlock SIM"
422+msgid "Drag using 3 fingers any application from one window to the other"
423msgstr ""
423msgstr ""
424
424
425−#: qml/Panel/Indicators/RoamingIndication.qml:27
425+#: qml/Tutorial/TutorialBottom.qml:78
426−msgid "Roaming"
426+msgid "Swipe up to add a contact"
427msgstr ""
427msgstr ""
428
428
429−#: qml/Tutorial/TutorialBottom.qml:28
429+#: qml/Tutorial/TutorialBottom.qml:80
430−msgid "Open special menus"
430+msgid "Swipe up for favorite calculations"
431msgstr ""
431msgstr ""
432
432
433−#: qml/Tutorial/TutorialBottom.qml:29
433+#: qml/Tutorial/TutorialBottom.qml:82
434−msgid "Swipe up from the bottom edge."
434+msgid "Swipe up for recent calls"
435msgstr ""
435msgstr ""
436
436
437−#: qml/Tutorial/TutorialBottomFinish.qml:24
437+#: qml/Tutorial/TutorialBottom.qml:84
438−msgid "This action does different things for different apps"
438+msgid "Swipe up to create a message"
439msgstr ""
439msgstr ""
440
440
441−#: qml/Tutorial/TutorialBottomFinish.qml:25
441+#: qml/Tutorial/TutorialBottom.qml:85
442−msgid "Tap here to finish."
442+msgid "Swipe up to manage the app"
443msgstr ""
443msgstr ""
444
444
445−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
445+#: qml/Tutorial/TutorialLeft.qml:47
446−#: qml/Tutorial/TutorialRight.qml:144
446+msgid "Swipe from the left edge to open the launcher"
447−msgid "Tap here to continue."
448msgstr ""
447msgstr ""
449
448
450−#: qml/Tutorial/TutorialLeft.qml:26
449+#: qml/Tutorial/TutorialLeftLong.qml:47
451−msgid "Open the launcher"
450+msgid "Long swipe from the left edge to open the Today scope"
452msgstr ""
451msgstr ""
453
452
454−#: qml/Tutorial/TutorialLeft.qml:27
453+#: qml/Tutorial/TutorialRight.qml:54
455−msgid "Short swipe from the left edge."
454+msgid "Hover your mouse on the right edge to view your open apps"
456msgstr ""
455msgstr ""
457
456
458−#: qml/Tutorial/TutorialLeftFinish.qml:24
457+#: qml/Tutorial/TutorialRight.qml:55
459−msgid "These are the shortcuts to favorite apps"
458+msgid "Short or long swipe from the right edge to view your open apps"
460msgstr ""
459msgstr ""
461
460
462−#: qml/Tutorial/TutorialPage.qml:178
461+#: qml/Tutorial/TutorialTop.qml:53
463−msgid "You almost got it!"
462+msgid "Swipe from the top right edge to open the notification bar"
464msgstr ""
463msgstr ""
465
464
466−#: qml/Tutorial/TutorialPage.qml:195
465+#: qml/Tutorial/TutorialTop.qml:54
467−msgid "Try again."
466+msgid "Swipe from the top edge to open the notification bar"
468msgstr ""
467msgstr ""
469
468
470−#: qml/Tutorial/TutorialRight.qml:31
469+#: qml/Wizard/Page.qml:54
471−msgid "To view open apps"
470+msgctxt "Button: Go back one page in the Wizard"
471+msgid "Back"
472msgstr ""
472msgstr ""
473
473
474−#: qml/Tutorial/TutorialRight.qml:32
474+#: qml/Wizard/Pages/10-welcome.qml:27
475−msgid "Long swipe from the right edge."
475+msgid "Language"
476msgstr ""
476msgstr ""
477
477
478−#: qml/Tutorial/TutorialRight.qml:122
478+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
479−msgid "View all your running tasks."
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"
480msgstr ""
485msgstr ""
481
486
482−#: qml/Wizard/Page.qml:89
487+#: qml/Wizard/Pages/30-wifi.qml:29
483−msgctxt "Button: Go back one page in the Wizard"
488+msgid "Connect to Wi‑Fi"
484−msgid "Back"
485msgstr ""
489msgstr ""
486
490
487−#: qml/Wizard/Pages/10-welcome.qml:27
491+#: qml/Wizard/Pages/30-wifi.qml:130
488−msgid "Hi!"
492+msgid "Connected"
489msgstr ""
493msgstr ""
490
494
491−#: qml/Wizard/Pages/10-welcome.qml:44
495+#: qml/Wizard/Pages/30-wifi.qml:163
492−msgid "Welcome to your Ubuntu device."
496+msgid "Available Wi-Fi networks"
493msgstr ""
497msgstr ""
494
498
495−#: qml/Wizard/Pages/10-welcome.qml:52
499+#: qml/Wizard/Pages/30-wifi.qml:164
496−msgid "Let’s get started."
500+msgid "No available Wi-Fi networks"
497msgstr ""
501msgstr ""
498
502
499−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
503+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
500−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
501−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
502−#: qml/Wizard/Pages/passwd-set.qml:90
504+#: qml/Wizard/Pages/sim.qml:101
503−msgid "Continue"
505+msgid "Skip"
504msgstr ""
506msgstr ""
505
507
506−#: qml/Wizard/Pages/20-sim.qml:25
508+#: qml/Wizard/Pages/40-location.qml:27
507−msgid "Add a SIM card and restart your device"
509+msgid "Location Services"
508msgstr ""
510msgstr ""
509
511
510−#: qml/Wizard/Pages/20-sim.qml:59
512+#: qml/Wizard/Pages/40-location.qml:83
511−msgid "Without it, you won’t be able to make calls or use text messaging."
513+msgid ""
514+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
515+"(recommended)"
512msgstr ""
516msgstr ""
513
517
514−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
518+#: qml/Wizard/Pages/40-location.qml:105
515−msgid "Skip"
519+#, qt-format
520+msgid "By selecting this option you agree to the Nokia HERE %1."
516msgstr ""
521msgstr ""
517
522
518−#: qml/Wizard/Pages/30-passwd-type.qml:39
523+#: qml/Wizard/Pages/40-location.qml:106
519−msgid "Lock security"
524+msgctxt "part of: Nokia HERE terms and conditions"
525+msgid "terms and conditions"
520msgstr ""
526msgstr ""
521
527
522−#: qml/Wizard/Pages/30-passwd-type.qml:79
528+#: qml/Wizard/Pages/40-location.qml:160
523−msgid "Please select how you’d like to unlock your device."
529+msgid "GPS only"
524msgstr ""
530msgstr ""
525
531
526−#: qml/Wizard/Pages/30-passwd-type.qml:102
532+#: qml/Wizard/Pages/40-location.qml:214
527−msgctxt "Label: Type of security method"
533+msgid "Don't use my location"
528−msgid "Swipe"
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
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"
550+msgstr ""
551+
552+#: qml/Wizard/Pages/60-account.qml:48
553+msgid "Preferred Name"
529msgstr ""
554msgstr ""
530
555
531−#: qml/Wizard/Pages/30-passwd-type.qml:103
556+#: qml/Wizard/Pages/70-passwd-type.qml:39
532−msgctxt "Label: Description of security method"
557+msgid "Lock Screen"
533−msgid "No security"
534msgstr ""
558msgstr ""
535
559
536−#: qml/Wizard/Pages/30-passwd-type.qml:105
560+#: qml/Wizard/Pages/70-passwd-type.qml:101
537msgctxt "Label: Type of security method"
561msgctxt "Label: Type of security method"
538−msgid "Passcode"
562+msgid "Create new password"
539msgstr ""
563msgstr ""
540
564
541−#: qml/Wizard/Pages/30-passwd-type.qml:106
565+#: qml/Wizard/Pages/70-passwd-type.qml:103
542−msgctxt "Label: Description of security method"
566+msgctxt "Label: Type of security method"
543−msgid "4 digits only"
567+msgid "Create passcode (numbers only)"
544msgstr ""
568msgstr ""
545
569
546−#: qml/Wizard/Pages/30-passwd-type.qml:108
570+#: qml/Wizard/Pages/70-passwd-type.qml:105
547msgctxt "Label: Type of security method"
571msgctxt "Label: Type of security method"
548−msgid "Passphrase"
572+msgid "No lock code"
549msgstr ""
573msgstr ""
550
574
551−#: qml/Wizard/Pages/30-passwd-type.qml:109
575+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
552−msgctxt "Label: Description of security method"
576+msgid "Privacy Policy"
553−msgid "Numbers and letters"
554msgstr ""
577msgstr ""
555
578
556−#: qml/Wizard/Pages/40-wifi.qml:29
579+#: qml/Wizard/Pages/75-report-check.qml:26
557−msgid "Connect to Wi‑Fi"
580+msgid "Help Us Improve"
558msgstr ""
581msgstr ""
559
582
560−#: qml/Wizard/Pages/40-wifi.qml:168
583+#: qml/Wizard/Pages/75-report-check.qml:59
561−msgid "Available networks…"
584+msgid "Improve system performance by sending us crashes and error reports."
562msgstr ""
585msgstr ""
563
586
564−#: qml/Wizard/Pages/40-wifi.qml:169
587+#: qml/Wizard/Pages/75-report-check.qml:60
565−msgid "No available networks."
588+msgid "Privacy policy"
566msgstr ""
589msgstr ""
567
590
568−#: qml/Wizard/Pages/50-location.qml:27
591+#: qml/Wizard/Pages/80-finished.qml:89
569−msgid "Location"
592+msgid "Welcome to Ubuntu"
570msgstr ""
593msgstr ""
571
594
572−#: qml/Wizard/Pages/50-location.qml:62
595+#: qml/Wizard/Pages/80-finished.qml:104
573−msgid "Let the phone detect your location:"
596+msgid "You are ready to use your device now"
574msgstr ""
597msgstr ""
575
598
576−#: qml/Wizard/Pages/50-location.qml:69
599+#: qml/Wizard/Pages/80-finished.qml:124
577−msgid "Using GPS only (less accurate)"
600+msgid "Get Started"
601+msgstr ""
602+
603+#: qml/Wizard/Pages/here-terms.qml:25
604+msgid "Terms & Conditions"
578msgstr ""
605msgstr ""
579
606
580−#: qml/Wizard/Pages/50-location.qml:86
607+#: qml/Wizard/Pages/here-terms.qml:69
581−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
608+msgid "Your device uses positioning technologies provided by HERE."
582msgstr ""
609msgstr ""
583
610
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
611+#: qml/Wizard/Pages/here-terms.qml:81
586msgid ""
612msgid ""
587−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
613+"To provide you with positioning services and to improve their quality, HERE "
588−"conditions</a>."
614+"collects information about nearby cell towers and Wi-Fi hotspots around your "
615+"current location whenever your position is being found."
589msgstr ""
616msgstr ""
590
617
591−#: qml/Wizard/Pages/50-location.qml:112
618+#: qml/Wizard/Pages/here-terms.qml:93
592−msgid "Not at all"
619+msgid ""
620+"The information collected is used to analyze the service and to improve the "
621+"use of service, but not to identify you personally."
593msgstr ""
622msgstr ""
594
623
595−#: qml/Wizard/Pages/50-location.qml:124
624+#: qml/Wizard/Pages/here-terms.qml:106
596−msgid "You can change your mind later in <b>System Settings</b>."
625+#, qt-format
626+msgid "By continuing, you agree to the HERE platform %1 and %2."
597msgstr ""
627msgstr ""
598
628
599−#: qml/Wizard/Pages/60-reporting.qml:26
629+#: qml/Wizard/Pages/here-terms.qml:107
600−msgid "Improving your experience"
630+msgid "Service Terms"
601msgstr ""
631msgstr ""
602
632
603−#: qml/Wizard/Pages/60-reporting.qml:46
633+#: qml/Wizard/Pages/passcode-confirm.qml:43
634+#: qml/Wizard/Pages/passcode-desktop.qml:80
604−msgid ""
635+msgid "Confirm passcode"
605−"Your phone is set up to automatically report errors to Canonical and its "
606−"partners, the makers of the operating system."
607msgstr ""
636msgstr ""
608
637
609−#: qml/Wizard/Pages/60-reporting.qml:53
638+#: qml/Wizard/Pages/passcode-confirm.qml:45
610−msgid ""
639+msgid "Incorrect passcode."
611−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
612−"Privacy</b>"
613msgstr ""
640msgstr ""
614
641
615−#: qml/Wizard/Pages/80-finished.qml:24
642+#: qml/Wizard/Pages/passcode-confirm.qml:45
616−msgid "All done"
643+msgctxt "Enter the passcode again"
644+msgid "Please re-enter."
617msgstr ""
645msgstr ""
618
646
619−#: qml/Wizard/Pages/80-finished.qml:39
647+#: qml/Wizard/Pages/passcode-desktop.qml:30
620−msgid "Nice work!"
648+msgid "Lock Screen Passcode"
621msgstr ""
649msgstr ""
622
650
623−#: qml/Wizard/Pages/80-finished.qml:46
651+#: qml/Wizard/Pages/passcode-desktop.qml:56
624−msgid "Your device is now ready to use."
652+msgid "Enter 4 numbers to setup your passcode"
625msgstr ""
653msgstr ""
626
654
627−#: qml/Wizard/Pages/80-finished.qml:53
655+#: qml/Wizard/Pages/passcode-desktop.qml:65
628−msgid "Finish"
656+#: qml/Wizard/Pages/passcode-set.qml:54
657+msgid "Choose passcode"
629msgstr ""
658msgstr ""
630
659
631−#: qml/Wizard/Pages/here-terms.qml:27
660+#: qml/Wizard/Pages/passcode-desktop.qml:105
632−msgid "Terms & Conditions"
661+msgid "Passcode too short"
633msgstr ""
662msgstr ""
634
663
635−#: qml/Wizard/Pages/passwd-confirm.qml:49
664+#: qml/Wizard/Pages/passcode-desktop.qml:107
636−msgid "Confirm passphrase"
665+msgid "Passcodes match"
637msgstr ""
666msgstr ""
638
667
639−#: qml/Wizard/Pages/passwd-confirm.qml:50
668+#: qml/Wizard/Pages/passcode-desktop.qml:109
640−msgid "Confirm passcode"
669+msgid "Passcodes do not match"
641msgstr ""
670msgstr ""
642
671
643−#: qml/Wizard/Pages/passwd-confirm.qml:53
672+#: qml/Wizard/Pages/passcode-set.qml:62
644−#: qml/Wizard/Pages/passwd-confirm.qml:54
673+msgid "Passcode must be 4 characters long"
645−msgid "Please try again."
646msgstr ""
674msgstr ""
647
675
648−#: qml/Wizard/Pages/passwd-set.qml:61
676+#: qml/Wizard/Pages/password-set.qml:30
649−msgid "Choose your passcode"
677+msgid "Lock Screen Password"
650msgstr ""
678msgstr ""
651
679
652−#: qml/Wizard/Pages/passwd-set.qml:68
680+#: qml/Wizard/Pages/password-set.qml:61
653−msgid "Passphrase must be 4 characters long"
681+msgid "Enter at least 8 characters"
654msgstr ""
682msgstr ""
655
683
656−#. Translators: This is the arrow for "Back" buttons
684+#: qml/Wizard/Pages/password-set.qml:73
657−#: qml/Wizard/StackButton.qml:39
658−#, qt-format
659−msgid "〈 %1"
685+msgid "Choose password"
660msgstr ""
686msgstr ""
661
687
662−#. Translators: This is the arrow for "Forward" buttons
688+#: qml/Wizard/Pages/password-set.qml:103
663−#: qml/Wizard/StackButton.qml:42
689+msgid "Confirm password"
664−#, qt-format
690+msgstr ""
665−msgid "%1 〉"
691+
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+
720+#: qml/Wizard/PasswordMeter.qml:89
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
733+msgid "Weak password"
734+msgstr ""
735+
736+#: qml/Wizard/PasswordMeter.qml:99
737+msgid "Very weak password"
666msgstr ""
738msgstr ""
667
739
668#~ msgid "Confirm"
740#~ msgid "Confirm"
po/bn.po+358−217
@@ -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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,23 +15,23 @@ 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-02-17 05:43+0000\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
19+"X-Generator: Launchpad (build 17958)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "পাসওয়ার্ড: "
23msgstr "পাসওয়ার্ড: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "পিন"
28msgstr "পিন"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "আনপিন"
36msgstr "আনপিন"
37
37
@@ -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:219
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:183
114msgid "Yes"
96msgid "Yes"
115msgstr "হ্যাঁ"
97msgstr "হ্যাঁ"
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
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:199
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,25 +109,25 @@ msgstr ""
127"আপনি নিশ্চিত যে আপনি\n"
109"আপনি নিশ্চিত যে আপনি\n"
128"বন্ধ করতে চান?"
110"বন্ধ করতে চান?"
129
111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:201
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:210
136msgctxt "Button: Restart the system"
118msgctxt "Button: Restart the system"
137msgid "Restart"
119msgid "Restart"
138msgstr "পুনরায় চালু"
120msgstr "পুনরায় চালু"
139
121
140−#: qml/Components/Lockscreen.qml:245
122+#: qml/Components/Lockscreen.qml:231
141msgid "Return to Call"
123msgid "Return to Call"
142msgstr "কল এ ফিরে যান"
124msgstr "কল এ ফিরে যান"
143
125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145msgid "Emergency Call"
127msgid "Emergency Call"
146msgstr "জরুরী কল"
128msgstr "জরুরী কল"
147
129
148−#: qml/Components/Lockscreen.qml:277
130+#: qml/Components/Lockscreen.qml:263
149msgid "OK"
131msgid "OK"
150msgstr "ঠিক আছে"
132msgstr "ঠিক আছে"
151
133
@@ -154,6 +136,8 @@ msgid "Apps may have unsaved data:"
154msgstr ""
136msgstr ""
155
137
156#: qml/Components/ModeSwitchWarningDialog.qml:57
138#: qml/Components/ModeSwitchWarningDialog.qml:57
139+msgctxt ""
140+"Re-dock means connect the device again to an external screen/mouse/keyboard"
157msgid "Re-dock, save your work and close these apps to continue."
141msgid "Re-dock, save your work and close these apps to continue."
158msgstr ""
142msgstr ""
159
143
@@ -173,42 +157,58 @@ msgstr ""
173msgid "Close all"
157msgid "Close all"
174msgstr ""
158msgstr ""
175
159
176−#: qml/Dash/DashPageHeader.qml:266
160+#: qml/Dash/DashPageHeader.qml:337
177msgctxt "Button: Open the Ubuntu Store"
161msgctxt "Button: Open the Ubuntu Store"
178msgid "Store"
162msgid "Store"
179msgstr "স্টোর"
163msgstr "স্টোর"
180
164
181−#: qml/Dash/DashPageHeader.qml:273
165+#: qml/Dash/DashPageHeader.qml:344
182msgctxt "Button: Start a search in the current dash scope"
166msgctxt "Button: Start a search in the current dash scope"
183msgid "Search"
167msgid "Search"
184msgstr "খুঁজুন"
168msgstr "খুঁজুন"
185
169
186−#: qml/Dash/DashPageHeader.qml:283
170+#: qml/Dash/DashPageHeader.qml:354
187msgctxt "Button: Show the current dash scope settings"
171msgctxt "Button: Show the current dash scope settings"
188msgid "Settings"
172msgid "Settings"
189msgstr "সেটিংস"
173msgstr "সেটিংস"
190
174
191−#: qml/Dash/DashPageHeader.qml:290
175+#: qml/Dash/DashPageHeader.qml:361
192msgid "Remove from Favorites"
176msgid "Remove from Favorites"
193msgstr "পছন্দ থেকে মুছে ফেলুন"
177msgstr "পছন্দ থেকে মুছে ফেলুন"
194
178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196msgid "Add to Favorites"
180msgid "Add to Favorites"
197msgstr "পছন্দতে যোগ করুন"
181msgstr "পছন্দতে যোগ করুন"
198
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+
199−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
191+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
200msgid "See less"
192msgid "See less"
201msgstr "কম দেখুন"
193msgstr "কম দেখুন"
202
194
203−#: qml/Dash/GenericScopeView.qml:587
195+#: qml/Dash/GenericScopeView.qml:570
204msgid "See all"
196msgid "See all"
205msgstr "সব দেখুন"
197msgstr "সব দেখুন"
206
198
207−#: qml/Dash/GenericScopeView.qml:649
199+#: qml/Dash/GenericScopeView.qml:627
208msgctxt "Label: Hint for dash search line edit"
200msgctxt "Label: Hint for dash search line edit"
209msgid "Search"
201msgid "Search"
210msgstr "খুঁজুন"
202msgstr "খুঁজুন"
211
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+
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
212#: qml/Dash/Previews/PreviewActionCombo.qml:35
213msgid "More..."
213msgid "More..."
214msgstr "আরো..."
214msgstr "আরো..."
@@ -230,7 +230,7 @@ msgstr "রেটিং দিন"
230msgid "Add a review"
230msgid "Add a review"
231msgstr "আপনার মতামত দিন"
231msgstr "আপনার মতামত দিন"
232
232
233−#: qml/Dash/Previews/PreviewSharing.qml:50
233+#: qml/Dash/Previews/PreviewSharing.qml:66
234msgid "Preview Share Item"
234msgid "Preview Share Item"
235msgstr ""
235msgstr ""
236
236
@@ -258,13 +258,13 @@ msgstr ""
258msgid "Also installed"
258msgid "Also installed"
259msgstr "আরও ইন্সটল করা রয়েছে..."
259msgstr "আরও ইন্সটল করা রয়েছে..."
260
260
261−#: qml/DisabledScreenNotice.qml:87
261+#: qml/DisabledScreenNotice.qml:104
262msgid ""
262msgid ""
263"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 "
264−"touch pad to interact with the mouse."
264+"touch pad to interact with the pointer."
265msgstr ""
265msgstr ""
266
266
267−#: qml/Greeter/CoverPage.qml:107
267+#: qml/Greeter/CoverPage.qml:118
268msgid "Unlock"
268msgid "Unlock"
269msgstr "লক খুলুন"
269msgstr "লক খুলুন"
270
270
@@ -276,11 +276,11 @@ msgstr ""
276msgid "Tap to unlock"
276msgid "Tap to unlock"
277msgstr "লক খোলার জন্য চাপ দিন"
277msgstr "লক খোলার জন্য চাপ দিন"
278
278
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
280msgid "Sorry, incorrect passphrase."
280msgid "Sorry, incorrect passphrase."
281msgstr "দুঃখিত, পাসওয়ার্ডটি ভুল হয়েছে।"
281msgstr "দুঃখিত, পাসওয়ার্ডটি ভুল হয়েছে।"
282
282
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
284msgid "Sorry, incorrect passcode."
284msgid "Sorry, incorrect passcode."
285msgstr "দুঃখিত, পাসকোডটি ভুল হয়েছে।"
285msgstr "দুঃখিত, পাসকোডটি ভুল হয়েছে।"
286
286
@@ -306,7 +306,7 @@ msgstr "ভুল পাসকোড প্রদান করলে, আপন
306msgid "Enter %1"
306msgid "Enter %1"
307msgstr "%1 লিখুন"
307msgstr "%1 লিখুন"
308
308
309−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
309+#: qml/Greeter/NarrowView.qml:117
310msgid "Enter passphrase"
310msgid "Enter passphrase"
311msgstr "পাসওয়ার্ড লিখুন"
311msgstr "পাসওয়ার্ড লিখুন"
312
312
@@ -344,62 +344,62 @@ msgstr "কলে ফিরে যেতে চাপ দিন..."
344msgid "Conference"
344msgid "Conference"
345msgstr "কনফারেন্স"
345msgstr "কনফারেন্স"
346
346
347−#: qml/Panel/Indicators/MenuItemFactory.qml:753
347+#: qml/Panel/Indicators/MenuItemFactory.qml:761
348msgid "Nothing is playing"
348msgid "Nothing is playing"
349msgstr "কোন কিছু বাজছে না।"
349msgstr "কোন কিছু বাজছে না।"
350
350
351−#: qml/Panel/Indicators/MenuItemFactory.qml:882
351+#: qml/Panel/Indicators/MenuItemFactory.qml:890
352#, qt-format
352#, qt-format
353msgid "%1 hour"
353msgid "%1 hour"
354msgid_plural "%1 hours"
354msgid_plural "%1 hours"
355msgstr[0] "%1 ঘণ্টা"
355msgstr[0] "%1 ঘণ্টা"
356msgstr[1] "%1 ঘণ্টা"
356msgstr[1] "%1 ঘণ্টা"
357
357
358−#: qml/Panel/Indicators/MenuItemFactory.qml:886
358+#: qml/Panel/Indicators/MenuItemFactory.qml:894
359#, qt-format
359#, qt-format
360msgid "%1 minute"
360msgid "%1 minute"
361msgid_plural "%1 minutes"
361msgid_plural "%1 minutes"
362msgstr[0] "%1 মিনিট"
362msgstr[0] "%1 মিনিট"
363msgstr[1] "%1 মিনিট"
363msgstr[1] "%1 মিনিট"
364
364
365−#: qml/Panel/Indicators/MenuItemFactory.qml:891
365+#: qml/Panel/Indicators/MenuItemFactory.qml:899
366#, qt-format
366#, qt-format
367msgid "%1 second"
367msgid "%1 second"
368msgid_plural "%1 seconds"
368msgid_plural "%1 seconds"
369msgstr[0] "%1 সেকেন্ড"
369msgstr[0] "%1 সেকেন্ড"
370msgstr[1] "%1 সেকেন্ড"
370msgstr[1] "%1 সেকেন্ড"
371
371
372−#: qml/Panel/Indicators/MenuItemFactory.qml:894
372+#: qml/Panel/Indicators/MenuItemFactory.qml:902
373msgid "0 seconds"
373msgid "0 seconds"
374msgstr "0 সেকেন্ড"
374msgstr "0 সেকেন্ড"
375
375
376#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
376#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
377−#: qml/Panel/Indicators/MenuItemFactory.qml:896
377+#: qml/Panel/Indicators/MenuItemFactory.qml:904
378#, qt-format
378#, qt-format
379msgid "%1 remaining"
379msgid "%1 remaining"
380msgstr "%1 বাকি"
380msgstr "%1 বাকি"
381
381
382−#: qml/Panel/Indicators/MenuItemFactory.qml:902
382+#: qml/Panel/Indicators/MenuItemFactory.qml:910
383msgid "In queue…"
383msgid "In queue…"
384msgstr "অপেক্ষায় রয়েছে..."
384msgstr "অপেক্ষায় রয়েছে..."
385
385
386−#: qml/Panel/Indicators/MenuItemFactory.qml:906
386+#: qml/Panel/Indicators/MenuItemFactory.qml:914
387msgid "Downloading"
387msgid "Downloading"
388msgstr "ডাউনলোড হচ্ছে"
388msgstr "ডাউনলোড হচ্ছে"
389
389
390−#: qml/Panel/Indicators/MenuItemFactory.qml:908
390+#: qml/Panel/Indicators/MenuItemFactory.qml:916
391msgid "Paused, tap to resume"
391msgid "Paused, tap to resume"
392msgstr "থামানো, শুরু করতে চাপ দিন"
392msgstr "থামানো, শুরু করতে চাপ দিন"
393
393
394−#: qml/Panel/Indicators/MenuItemFactory.qml:910
394+#: qml/Panel/Indicators/MenuItemFactory.qml:918
395msgid "Canceled"
395msgid "Canceled"
396msgstr "বাতিল হয়েছে"
396msgstr "বাতিল হয়েছে"
397
397
398−#: qml/Panel/Indicators/MenuItemFactory.qml:912
398+#: qml/Panel/Indicators/MenuItemFactory.qml:920
399msgid "Finished"
399msgid "Finished"
400msgstr "শেষ"
400msgstr "শেষ"
401
401
402−#: qml/Panel/Indicators/MenuItemFactory.qml:914
402+#: qml/Panel/Indicators/MenuItemFactory.qml:922
403msgid "Failed, tap to retry"
403msgid "Failed, tap to retry"
404msgstr "ব্যার্থ হয়েছে, পুনরায় চেষ্টা করতে চাপ দিন"
404msgstr "ব্যার্থ হয়েছে, পুনরায় চেষ্টা করতে চাপ দিন"
405
405
@@ -419,259 +419,373 @@ msgctxt "Button: Call back on phone"
419msgid "Call back"
419msgid "Call back"
420msgstr "কল ব্যাক"
420msgstr "কল ব্যাক"
421
421
422−#: qml/Panel/Indicators/ModemInfoItem.qml:105
422+#: qml/Stages/SideStage.qml:76
423−msgid "Unlock SIM"
423+msgid "Drag using 3 fingers any application from one window to the other"
424−msgstr "সিম লক খুলুন করুন"
425−
426−#: qml/Panel/Indicators/RoamingIndication.qml:27
427−msgid "Roaming"
428−msgstr "রোমিং"
429−
430−#: qml/Tutorial/TutorialBottom.qml:28
431−msgid "Open special menus"
432msgstr ""
424msgstr ""
433
425
434−#: qml/Tutorial/TutorialBottom.qml:29
426+#: qml/Tutorial/TutorialBottom.qml:78
435−msgid "Swipe up from the bottom edge."
427+msgid "Swipe up to add a contact"
436−msgstr "নিচের প্রান্ত হতে উপরের দিকে সোয়াইপ করুন।"
428+msgstr ""
437−
438−#: qml/Tutorial/TutorialBottomFinish.qml:24
439−msgid "This action does different things for different apps"
440−msgstr "এই কাজটি বিভিন্ন অ্যাপের জন্য ভিন্ন ভিন্ন ভাবে কাজ করে।"
441
429
442−#: qml/Tutorial/TutorialBottomFinish.qml:25
430+#: qml/Tutorial/TutorialBottom.qml:80
443−msgid "Tap here to finish."
431+msgid "Swipe up for favorite calculations"
444msgstr ""
432msgstr ""
445
433
446−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
434+#: qml/Tutorial/TutorialBottom.qml:82
447−#: qml/Tutorial/TutorialRight.qml:144
435+msgid "Swipe up for recent calls"
448−msgid "Tap here to continue."
436+msgstr ""
449−msgstr "অগ্রসর হওয়ার জন্য এখানে চাপ দিন।"
450
437
451−#: qml/Tutorial/TutorialLeft.qml:26
438+#: qml/Tutorial/TutorialBottom.qml:84
452−msgid "Open the launcher"
439+msgid "Swipe up to create a message"
453−msgstr "লঞ্চার খুলুন"
440+msgstr ""
454
441
455−#: qml/Tutorial/TutorialLeft.qml:27
442+#: qml/Tutorial/TutorialBottom.qml:85
456−msgid "Short swipe from the left edge."
443+msgid "Swipe up to manage the app"
457msgstr ""
444msgstr ""
458
445
459−#: qml/Tutorial/TutorialLeftFinish.qml:24
446+#: qml/Tutorial/TutorialLeft.qml:47
460−msgid "These are the shortcuts to favorite apps"
447+msgid "Swipe from the left edge to open the launcher"
461−msgstr "এগুলো আপনার প্রিয় অ্যাপেরর শর্টকাট"
448+msgstr ""
462
449
463−#: qml/Tutorial/TutorialPage.qml:178
450+#: qml/Tutorial/TutorialLeftLong.qml:47
464−msgid "You almost got it!"
451+msgid "Long swipe from the left edge to open the Today scope"
465−msgstr "আপনি প্রায় পেরে গেছেন!"
452+msgstr ""
466
453
467−#: qml/Tutorial/TutorialPage.qml:195
454+#: qml/Tutorial/TutorialRight.qml:54
468−msgid "Try again."
455+msgid "Hover your mouse on the right edge to view your open apps"
469−msgstr "আবার চেষ্টা করুন"
456+msgstr ""
470
457
471−#: qml/Tutorial/TutorialRight.qml:31
458+#: qml/Tutorial/TutorialRight.qml:55
472−msgid "To view open apps"
459+msgid "Short or long swipe from the right edge to view your open apps"
473−msgstr "সচল অ্যাপগুলো দেখার জন্য"
460+msgstr ""
474
461
475−#: qml/Tutorial/TutorialRight.qml:32
462+#: qml/Tutorial/TutorialTop.qml:53
476−msgid "Long swipe from the right edge."
463+msgid "Swipe from the top right edge to open the notification bar"
477msgstr ""
464msgstr ""
478
465
479−#: qml/Tutorial/TutorialRight.qml:122
466+#: qml/Tutorial/TutorialTop.qml:54
480−msgid "View all your running tasks."
467+msgid "Swipe from the top edge to open the notification bar"
481msgstr ""
468msgstr ""
482
469
483−#: qml/Wizard/Page.qml:89
470+#: qml/Wizard/Page.qml:54
484msgctxt "Button: Go back one page in the Wizard"
471msgctxt "Button: Go back one page in the Wizard"
485msgid "Back"
472msgid "Back"
486msgstr ""
473msgstr ""
487
474
488#: qml/Wizard/Pages/10-welcome.qml:27
475#: qml/Wizard/Pages/10-welcome.qml:27
489−msgid "Hi!"
476+msgid "Language"
490msgstr ""
477msgstr ""
491
478
492−#: qml/Wizard/Pages/10-welcome.qml:44
479+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
493−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"
494msgstr ""
486msgstr ""
495
487
496−#: qml/Wizard/Pages/10-welcome.qml:52
488+#: qml/Wizard/Pages/30-wifi.qml:29
497−msgid "Let’s get started."
489+msgid "Connect to Wi‑Fi"
498−msgstr "আসুন শুরু করা যাক।"
490+msgstr ""
499
491
500−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
492+#: qml/Wizard/Pages/30-wifi.qml:130
501−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
493+msgid "Connected"
502−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
503−#: qml/Wizard/Pages/passwd-set.qml:90
504−msgid "Continue"
505−msgstr "পরবর্তী"
494+msgstr ""
506
495
507−#: qml/Wizard/Pages/20-sim.qml:25
496+#: qml/Wizard/Pages/30-wifi.qml:163
508−msgid "Add a SIM card and restart your device"
497+msgid "Available Wi-Fi networks"
509−msgstr "সিম কার্ড যোগ করুন এবং ফোন পুনরায় চালু করুন।"
498+msgstr ""
510
499
511−#: qml/Wizard/Pages/20-sim.qml:59
500+#: qml/Wizard/Pages/30-wifi.qml:164
512−msgid "Without it, you won’t be able to make calls or use text messaging."
501+msgid "No available Wi-Fi networks"
513−msgstr "এটি ছাড়া, আপনি ফোন কল বা টেক্সট মেসেজ ব্যবহার করতে পারবেন না।"
502+msgstr ""
514
503
515−#: 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
516msgid "Skip"
506msgid "Skip"
517msgstr "এড়িয়ে যান"
507msgstr "এড়িয়ে যান"
518
508
519−#: qml/Wizard/Pages/30-passwd-type.qml:39
509+#: qml/Wizard/Pages/40-location.qml:27
520−msgid "Lock security"
510+msgid "Location Services"
521−msgstr "নিরাপত্তা লক"
511+msgstr ""
522
512
523−#: qml/Wizard/Pages/30-passwd-type.qml:79
513+#: qml/Wizard/Pages/40-location.qml:83
524−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)"
525msgstr ""
517msgstr ""
526
518
527−#: qml/Wizard/Pages/30-passwd-type.qml:102
519+#: qml/Wizard/Pages/40-location.qml:105
528−msgctxt "Label: Type of security method"
520+#, qt-format
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"
527+msgstr ""
528+
529+#: qml/Wizard/Pages/40-location.qml:160
529−msgid "Swipe"
530+msgid "GPS only"
530msgstr ""
531msgstr ""
531
532
532−#: qml/Wizard/Pages/30-passwd-type.qml:103
533+#: qml/Wizard/Pages/40-location.qml:214
533−msgctxt "Label: Description of security method"
534+msgid "Don't use my location"
534−msgid "No security"
535+msgstr ""
535−msgstr "কোন নিরাপত্তা নেই"
536
536
537−#: 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
538msgctxt "Label: Type of security method"
562msgctxt "Label: Type of security method"
539−msgid "Passcode"
563+msgid "Create new password"
540−msgstr "পাসকোড"
564+msgstr ""
541
565
542−#: qml/Wizard/Pages/30-passwd-type.qml:106
566+#: qml/Wizard/Pages/70-passwd-type.qml:103
543−msgctxt "Label: Description of security method"
567+msgctxt "Label: Type of security method"
544−msgid "4 digits only"
568+msgid "Create passcode (numbers only)"
545−msgstr "কেবল মাত্র ৪টি সংখ্যা"
569+msgstr ""
546
570
547−#: qml/Wizard/Pages/30-passwd-type.qml:108
571+#: qml/Wizard/Pages/70-passwd-type.qml:105
548msgctxt "Label: Type of security method"
572msgctxt "Label: Type of security method"
549−msgid "Passphrase"
573+msgid "No lock code"
550msgstr ""
574msgstr ""
551
575
552−#: qml/Wizard/Pages/30-passwd-type.qml:109
576+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
553−msgctxt "Label: Description of security method"
577+msgid "Privacy Policy"
554−msgid "Numbers and letters"
555msgstr ""
578msgstr ""
556
579
557−#: qml/Wizard/Pages/40-wifi.qml:29
580+#: qml/Wizard/Pages/75-report-check.qml:26
558−msgid "Connect to Wi‑Fi"
581+msgid "Help Us Improve"
559msgstr ""
582msgstr ""
560
583
561−#: qml/Wizard/Pages/40-wifi.qml:168
584+#: qml/Wizard/Pages/75-report-check.qml:59
562−msgid "Available networks…"
585+msgid "Improve system performance by sending us crashes and error reports."
563msgstr ""
586msgstr ""
564
587
565−#: qml/Wizard/Pages/40-wifi.qml:169
588+#: qml/Wizard/Pages/75-report-check.qml:60
566−msgid "No available networks."
589+msgid "Privacy policy"
567msgstr ""
590msgstr ""
568
591
569−#: qml/Wizard/Pages/50-location.qml:27
592+#: qml/Wizard/Pages/80-finished.qml:89
570−msgid "Location"
593+msgid "Welcome to Ubuntu"
571msgstr ""
594msgstr ""
572
595
573−#: qml/Wizard/Pages/50-location.qml:62
596+#: qml/Wizard/Pages/80-finished.qml:104
574−msgid "Let the phone detect your location:"
597+msgid "You are ready to use your device now"
575msgstr ""
598msgstr ""
576
599
577−#: qml/Wizard/Pages/50-location.qml:69
600+#: qml/Wizard/Pages/80-finished.qml:124
578−msgid "Using GPS only (less accurate)"
601+msgid "Get Started"
579msgstr ""
602msgstr ""
580
603
581−#: qml/Wizard/Pages/50-location.qml:86
604+#: qml/Wizard/Pages/here-terms.qml:25
582−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
605+msgid "Terms & Conditions"
583msgstr ""
606msgstr ""
584
607
585−#. 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+
586−#: qml/Wizard/Pages/50-location.qml:103
612+#: qml/Wizard/Pages/here-terms.qml:81
587msgid ""
613msgid ""
588−"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 "
589−"conditions</a>."
615+"collects information about nearby cell towers and Wi-Fi hotspots around your "
616+"current location whenever your position is being found."
590msgstr ""
617msgstr ""
591
618
592−#: qml/Wizard/Pages/50-location.qml:112
619+#: qml/Wizard/Pages/here-terms.qml:93
593−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."
594msgstr ""
623msgstr ""
595
624
596−#: qml/Wizard/Pages/50-location.qml:124
625+#: qml/Wizard/Pages/here-terms.qml:106
597−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."
598msgstr ""
628msgstr ""
599
629
600−#: qml/Wizard/Pages/60-reporting.qml:26
630+#: qml/Wizard/Pages/here-terms.qml:107
601−msgid "Improving your experience"
631+msgid "Service Terms"
602msgstr ""
632msgstr ""
603
633
604−#: qml/Wizard/Pages/60-reporting.qml:46
634+#: qml/Wizard/Pages/passcode-confirm.qml:43
635+#: qml/Wizard/Pages/passcode-desktop.qml:80
605−msgid ""
636+msgid "Confirm passcode"
606−"Your phone is set up to automatically report errors to Canonical and its "
607−"partners, the makers of the operating system."
608msgstr ""
637msgstr ""
609
638
610−#: qml/Wizard/Pages/60-reporting.qml:53
639+#: qml/Wizard/Pages/passcode-confirm.qml:45
611−msgid ""
640+msgid "Incorrect passcode."
612−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
613−"Privacy</b>"
614msgstr ""
641msgstr ""
615
642
616−#: qml/Wizard/Pages/80-finished.qml:24
643+#: qml/Wizard/Pages/passcode-confirm.qml:45
617−msgid "All done"
644+msgctxt "Enter the passcode again"
645+msgid "Please re-enter."
618msgstr ""
646msgstr ""
619
647
620−#: qml/Wizard/Pages/80-finished.qml:39
648+#: qml/Wizard/Pages/passcode-desktop.qml:30
621−msgid "Nice work!"
649+msgid "Lock Screen Passcode"
622msgstr ""
650msgstr ""
623
651
624−#: qml/Wizard/Pages/80-finished.qml:46
652+#: qml/Wizard/Pages/passcode-desktop.qml:56
625−msgid "Your device is now ready to use."
653+msgid "Enter 4 numbers to setup your passcode"
626msgstr ""
654msgstr ""
627
655
628−#: qml/Wizard/Pages/80-finished.qml:53
656+#: qml/Wizard/Pages/passcode-desktop.qml:65
629−msgid "Finish"
657+#: qml/Wizard/Pages/passcode-set.qml:54
658+msgid "Choose passcode"
630msgstr ""
659msgstr ""
631
660
632−#: qml/Wizard/Pages/here-terms.qml:27
661+#: qml/Wizard/Pages/passcode-desktop.qml:105
633−msgid "Terms & Conditions"
662+msgid "Passcode too short"
634msgstr ""
663msgstr ""
635
664
636−#: qml/Wizard/Pages/passwd-confirm.qml:49
665+#: qml/Wizard/Pages/passcode-desktop.qml:107
637−msgid "Confirm passphrase"
666+msgid "Passcodes match"
638msgstr ""
667msgstr ""
639
668
640−#: qml/Wizard/Pages/passwd-confirm.qml:50
669+#: qml/Wizard/Pages/passcode-desktop.qml:109
641−msgid "Confirm passcode"
670+msgid "Passcodes do not match"
642msgstr ""
671msgstr ""
643
672
644−#: qml/Wizard/Pages/passwd-confirm.qml:53
673+#: qml/Wizard/Pages/passcode-set.qml:62
645−#: qml/Wizard/Pages/passwd-confirm.qml:54
674+msgid "Passcode must be 4 characters long"
646−msgid "Please try again."
647msgstr ""
675msgstr ""
648
676
649−#: qml/Wizard/Pages/passwd-set.qml:61
677+#: qml/Wizard/Pages/password-set.qml:30
650−msgid "Choose your passcode"
678+msgid "Lock Screen Password"
651msgstr ""
679msgstr ""
652
680
653−#: qml/Wizard/Pages/passwd-set.qml:68
681+#: qml/Wizard/Pages/password-set.qml:61
654−msgid "Passphrase must be 4 characters long"
682+msgid "Enter at least 8 characters"
655msgstr ""
683msgstr ""
656
684
657−#. Translators: This is the arrow for "Back" buttons
685+#: qml/Wizard/Pages/password-set.qml:73
658−#: qml/Wizard/StackButton.qml:39
659−#, qt-format
660−msgid "〈 %1"
686+msgid "Choose password"
661msgstr ""
687msgstr ""
662
688
663−#. Translators: This is the arrow for "Forward" buttons
689+#: qml/Wizard/Pages/password-set.qml:103
664−#: qml/Wizard/StackButton.qml:42
690+msgid "Confirm password"
665−#, qt-format
691+msgstr ""
666−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."
703+msgstr ""
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"
667msgstr ""
731msgstr ""
668
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 "This action does different things for different apps"
746+#~ msgstr "এই কাজটি বিভিন্ন অ্যাপের জন্য ভিন্ন ভিন্ন ভাবে কাজ করে।"
747+
748+#~ msgid "To view open apps"
749+#~ msgstr "সচল অ্যাপগুলো দেখার জন্য"
750+
669#~ msgid "Welcome to your Ubuntu phone."
751#~ msgid "Welcome to your Ubuntu phone."
670#~ msgstr "আপনার উবুন্টু ফোনে স্বাগতম।"
752#~ msgstr "আপনার উবুন্টু ফোনে স্বাগতম।"
671
753
754+#~ msgid "Try again."
755+#~ msgstr "আবার চেষ্টা করুন"
756+
757+#~ msgid "You almost got it!"
758+#~ msgstr "আপনি প্রায় পেরে গেছেন!"
759+
760+#~ msgid "Open the launcher"
761+#~ msgstr "লঞ্চার খুলুন"
762+
763+#~ msgctxt "Label: Type of security method"
764+#~ msgid "Passcode"
765+#~ msgstr "পাসকোড"
766+
767+#~ msgid "Add a SIM card and restart your device"
768+#~ msgstr "সিম কার্ড যোগ করুন এবং ফোন পুনরায় চালু করুন।"
769+
770+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
771+#~ msgstr "এটি ছাড়া, আপনি ফোন কল বা টেক্সট মেসেজ ব্যবহার করতে পারবেন না।"
772+
773+#~ msgid "Tap here to continue."
774+#~ msgstr "অগ্রসর হওয়ার জন্য এখানে চাপ দিন।"
775+
776+#~ msgid "Swipe up from the bottom edge."
777+#~ msgstr "নিচের প্রান্ত হতে উপরের দিকে সোয়াইপ করুন।"
778+
779+#~ msgctxt "Label: Description of security method"
780+#~ msgid "No security"
781+#~ msgstr "কোন নিরাপত্তা নেই"
782+
672#~ msgid "Log out"
783#~ msgid "Log out"
673#~ msgstr "লগ অাউট"
784#~ msgstr "লগ অাউট"
674
785
786+#~ msgid "Are you sure you want to shut down?"
787+#~ msgstr "আপনি কি কম্পিউটার বন্ধ করতে চান?"
788+
675#~ msgid "Reboot"
789#~ msgid "Reboot"
676#~ msgstr "পুনরায় চালু করুন"
790#~ msgstr "পুনরায় চালু করুন"
677
791
@@ -681,9 +795,6 @@ msgstr ""
681#~ msgid "Power off"
795#~ msgid "Power off"
682#~ msgstr "বন্ধ করুন"
796#~ msgstr "বন্ধ করুন"
683
797
684−#~ msgid "Restart"
685−#~ msgstr "পুনরায় চালু"
686−
687#~ msgid "Top edge"
798#~ msgid "Top edge"
688#~ msgstr "উপরের প্রান্ত"
799#~ msgstr "উপরের প্রান্ত"
689
800
@@ -726,8 +837,38 @@ msgstr ""
726#~ msgid "Speak Now..."
837#~ msgid "Speak Now..."
727#~ msgstr "এখন বলুন..."
838#~ msgstr "এখন বলুন..."
728
839
840+#~ msgid "Unlock SIM"
841+#~ msgstr "সিম লক খুলুন করুন"
842+
843+#~ msgid "Roaming"
844+#~ msgstr "রোমিং"
845+
729#~ msgid "Please re-enter"
846#~ msgid "Please re-enter"
730#~ msgstr "অনুগ্রহ করে আবার লিখুন"
847#~ msgstr "অনুগ্রহ করে আবার লিখুন"
731
848
849+#~ msgctxt "Button: Shut down the system"
850+#~ msgid "Shut down"
851+#~ msgstr "বন্ধ করুন"
852+
853+#~ msgctxt "Title: Reboot/Shut down dialog"
854+#~ msgid "Shut down"
855+#~ msgstr "বন্ধ করুন"
856+
857+#~ msgid "Let’s get started."
858+#~ msgstr "আসুন শুরু করা যাক।"
859+
860+#~ msgid "These are the shortcuts to favorite apps"
861+#~ msgstr "এগুলো আপনার প্রিয় অ্যাপেরর শর্টকাট"
862+
863+#~ msgid "Lock security"
864+#~ msgstr "নিরাপত্তা লক"
865+
732#~ msgid "Please select how you’d like to unlock your phone."
866#~ msgid "Please select how you’d like to unlock your phone."
733#~ msgstr "আপনি কিভাবে ফোনের লক খুলতে চান তা নির্ধারণ করুন।"
867#~ msgstr "আপনি কিভাবে ফোনের লক খুলতে চান তা নির্ধারণ করুন।"
868+
869+#~ msgctxt "Label: Description of security method"
870+#~ msgid "4 digits only"
871+#~ msgstr "কেবল মাত্র ৪টি সংখ্যা"
872+
873+#~ msgid "Continue"
874+#~ msgstr "পরবর্তী"
po/br.po+507−262
@@ -7,31 +7,31 @@ 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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
11−"PO-Revision-Date: 2015-10-05 06:47+0000\n"
11+"PO-Revision-Date: 2016-04-18 07:33+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-02-17 05:43+0000\n"
18+"X-Launchpad-Export-Date: 2016-04-19 04:59+0000\n"
19−"X-Generator: Launchpad (build 17925)\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: "
23msgstr "Ger-tremen : "
23msgstr "Ger-tremen : "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Spilhennañ ar verradenn"
28msgstr "Spilhennañ ar verradenn"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31msgid "Quit"
31msgid "Quit"
32msgstr "Mont kuit"
32msgstr "Mont kuit"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Dispilhennañ ar verradenn"
36msgstr "Dispilhennañ ar verradenn"
37
37
@@ -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:219
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:183
118msgid "Yes"
100msgid "Yes"
119msgstr "Ya"
101msgstr "Ya"
120
102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:198
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:199
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,88 +113,109 @@ 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:201
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:210
140msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
141msgid "Restart"
123msgid "Restart"
142msgstr "Adloc'hañ"
124msgstr "Adloc'hañ"
143
125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145msgid "Return to Call"
127msgid "Return to Call"
146msgstr "Distreiñ d'ar bellgomzadenn"
128msgstr "Distreiñ d'ar bellgomzadenn"
147
129
148−#: qml/Components/Lockscreen.qml:245
130+#: qml/Components/Lockscreen.qml:231
149msgid "Emergency Call"
131msgid "Emergency Call"
150msgstr "Pellgomzadenn vallus"
132msgstr "Pellgomzadenn vallus"
151
133
152−#: qml/Components/Lockscreen.qml:277
134+#: qml/Components/Lockscreen.qml:263
153msgid "OK"
135msgid "OK"
154msgstr "Mat eo"
136msgstr "Mat eo"
155
137
156#: qml/Components/ModeSwitchWarningDialog.qml:32
138#: qml/Components/ModeSwitchWarningDialog.qml:32
157msgid "Apps may have unsaved data:"
139msgid "Apps may have unsaved data:"
158−msgstr ""
140+msgstr "Roadennoù ha n'int ket enrollet a c'hall bezañ gant an arloadoù :"
159
141
160#: qml/Components/ModeSwitchWarningDialog.qml:57
142#: qml/Components/ModeSwitchWarningDialog.qml:57
143+msgctxt ""
144+"Re-dock means connect the device again to an external screen/mouse/keyboard"
161msgid "Re-dock, save your work and close these apps to continue."
145msgid "Re-dock, save your work and close these apps to continue."
162msgstr ""
146msgstr ""
147+"Adkevreit ouzh ar savlec'h degemer, enrollot ho labour ha serrit an arloadoù-"
148+"mañ evit kenderc'hel."
163
149
164#: qml/Components/ModeSwitchWarningDialog.qml:63
150#: qml/Components/ModeSwitchWarningDialog.qml:63
165msgid "Or force close now (unsaved data will be lost)."
151msgid "Or force close now (unsaved data will be lost)."
166msgstr ""
152msgstr ""
153+"Pe rediañ da serriñ bremañ (kollet e vo ar roadennoù n'int ket bet enrollet)."
167
154
168#: qml/Components/ModeSwitchWarningDialog.qml:75
155#: qml/Components/ModeSwitchWarningDialog.qml:75
169msgid "OK, I will reconnect"
156msgid "OK, I will reconnect"
170−msgstr ""
157+msgstr "Mat eo, ez an da adkevreañ"
171
158
172#: qml/Components/ModeSwitchWarningDialog.qml:76
159#: qml/Components/ModeSwitchWarningDialog.qml:76
173msgid "Reconnect now!"
160msgid "Reconnect now!"
174−msgstr ""
161+msgstr "Adkevreañ bremañ !"
175
162
176#: qml/Components/ModeSwitchWarningDialog.qml:88
163#: qml/Components/ModeSwitchWarningDialog.qml:88
177msgid "Close all"
164msgid "Close all"
178−msgstr ""
165+msgstr "Serriñ pep tra"
179
166
180−#: qml/Dash/DashPageHeader.qml:266
167+#: qml/Dash/DashPageHeader.qml:337
181msgctxt "Button: Open the Ubuntu Store"
168msgctxt "Button: Open the Ubuntu Store"
182msgid "Store"
169msgid "Store"
183msgstr "Stal"
170msgstr "Stal"
184
171
185−#: qml/Dash/DashPageHeader.qml:273
172+#: qml/Dash/DashPageHeader.qml:344
186msgctxt "Button: Start a search in the current dash scope"
173msgctxt "Button: Start a search in the current dash scope"
187msgid "Search"
174msgid "Search"
188msgstr "Klask"
175msgstr "Klask"
189
176
190−#: qml/Dash/DashPageHeader.qml:283
177+#: qml/Dash/DashPageHeader.qml:354
191msgctxt "Button: Show the current dash scope settings"
178msgctxt "Button: Show the current dash scope settings"
192msgid "Settings"
179msgid "Settings"
193msgstr "Arventennoù"
180msgstr "Arventennoù"
194
181
195−#: qml/Dash/DashPageHeader.qml:290
182+#: qml/Dash/DashPageHeader.qml:361
196msgid "Remove from Favorites"
183msgid "Remove from Favorites"
197msgstr "Lemel eus ar sinedoù"
184msgstr "Lemel eus ar sinedoù"
198
185
199−#: qml/Dash/DashPageHeader.qml:290
186+#: qml/Dash/DashPageHeader.qml:361
200msgid "Add to Favorites"
187msgid "Add to Favorites"
201msgstr "Ouzhpennañ d'ar sinedoù"
188msgstr "Ouzhpennañ d'ar sinedoù"
202
189
190+#: qml/Dash/FiltersPopover.qml:60
191+msgid "Refine your results"
192+msgstr ""
193+
194+#: qml/Dash/FiltersPopover.qml:69
195+msgid "Reset"
196+msgstr "Adderaouekaat"
197+
203−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
204msgid "See less"
199msgid "See less"
205msgstr "Gwelet nebeutoc'h"
200msgstr "Gwelet nebeutoc'h"
206
201
207−#: qml/Dash/GenericScopeView.qml:587
202+#: qml/Dash/GenericScopeView.qml:570
208msgid "See all"
203msgid "See all"
209msgstr "Gwelet pep tra"
204msgstr "Gwelet pep tra"
210
205
211−#: qml/Dash/GenericScopeView.qml:649
206+#: qml/Dash/GenericScopeView.qml:627
212msgctxt "Label: Hint for dash search line edit"
207msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
208msgid "Search"
214msgstr "Klask"
209msgstr "Klask"
215
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+
216#: qml/Dash/Previews/PreviewActionCombo.qml:35
219#: qml/Dash/Previews/PreviewActionCombo.qml:35
217msgid "More..."
220msgid "More..."
218msgstr "Muioc'h..."
221msgstr "Muioc'h..."
@@ -234,9 +237,9 @@ msgstr "Priziit an dra-mañ"
234msgid "Add a review"
237msgid "Add a review"
235msgstr "Ouzhpennañ un ali"
238msgstr "Ouzhpennañ un ali"
236
239
237−#: qml/Dash/Previews/PreviewSharing.qml:50
240+#: qml/Dash/Previews/PreviewSharing.qml:66
238msgid "Preview Share Item"
241msgid "Preview Share Item"
239−msgstr ""
242+msgstr "Rakwelet an elfenn lodet"
240
243
241#: qml/Dash/PullToRefreshScopeStyle.qml:55
244#: qml/Dash/PullToRefreshScopeStyle.qml:55
242msgid "Pull to refresh…"
245msgid "Pull to refresh…"
@@ -262,13 +265,13 @@ msgstr "Er gêr"
262msgid "Also installed"
265msgid "Also installed"
263msgstr "Staliet ivez"
266msgstr "Staliet ivez"
264
267
265−#: qml/DisabledScreenNotice.qml:87
268+#: qml/DisabledScreenNotice.qml:104
266msgid ""
269msgid ""
267"Your device is now connected to an external display. Use this screen as a "
270"Your device is now connected to an external display. Use this screen as a "
268−"touch pad to interact with the mouse."
271+"touch pad to interact with the pointer."
269msgstr ""
272msgstr ""
270
273
271−#: qml/Greeter/CoverPage.qml:107
274+#: qml/Greeter/CoverPage.qml:118
272msgid "Unlock"
275msgid "Unlock"
273msgstr "Dibrennañ"
276msgstr "Dibrennañ"
274
277
@@ -280,11 +283,11 @@ msgstr "Esaeañ en-dro"
280msgid "Tap to unlock"
283msgid "Tap to unlock"
281msgstr "Pouezañ evit dibrennañ"
284msgstr "Pouezañ evit dibrennañ"
282
285
283−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
286+#: qml/Greeter/NarrowView.qml:54
284msgid "Sorry, incorrect passphrase."
287msgid "Sorry, incorrect passphrase."
285msgstr "Siwazh, frazenn-dremen direizh"
288msgstr "Siwazh, frazenn-dremen direizh"
286
289
287−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
290+#: qml/Greeter/NarrowView.qml:55
288msgid "Sorry, incorrect passcode."
291msgid "Sorry, incorrect passcode."
289msgstr "Siwazh, kod-tremen direizh"
292msgstr "Siwazh, kod-tremen direizh"
290
293
@@ -313,7 +316,7 @@ msgstr ""
313msgid "Enter %1"
316msgid "Enter %1"
314msgstr "Merkañ %1"
317msgstr "Merkañ %1"
315
318
316−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
319+#: qml/Greeter/NarrowView.qml:117
317msgid "Enter passphrase"
320msgid "Enter passphrase"
318msgstr "Merkañ ar frazenn-dremen"
321msgstr "Merkañ ar frazenn-dremen"
319
322
@@ -351,62 +354,62 @@ msgstr "Touchit evit distreiñ d'ar bellgomzadenn..."
351msgid "Conference"
354msgid "Conference"
352msgstr "Kendiviz"
355msgstr "Kendiviz"
353
356
354−#: qml/Panel/Indicators/MenuItemFactory.qml:753
357+#: qml/Panel/Indicators/MenuItemFactory.qml:761
355msgid "Nothing is playing"
358msgid "Nothing is playing"
356msgstr "Ne lenner netra bremañ"
359msgstr "Ne lenner netra bremañ"
357
360
358−#: qml/Panel/Indicators/MenuItemFactory.qml:882
361+#: qml/Panel/Indicators/MenuItemFactory.qml:890
359#, qt-format
362#, qt-format
360msgid "%1 hour"
363msgid "%1 hour"
361msgid_plural "%1 hours"
364msgid_plural "%1 hours"
362msgstr[0] "%1 eur"
365msgstr[0] "%1 eur"
363msgstr[1] "%1 eur"
366msgstr[1] "%1 eur"
364
367
365−#: qml/Panel/Indicators/MenuItemFactory.qml:886
368+#: qml/Panel/Indicators/MenuItemFactory.qml:894
366#, qt-format
369#, qt-format
367msgid "%1 minute"
370msgid "%1 minute"
368msgid_plural "%1 minutes"
371msgid_plural "%1 minutes"
369msgstr[0] "%1 vunutenn"
372msgstr[0] "%1 vunutenn"
370msgstr[1] "%1 vunutenn"
373msgstr[1] "%1 vunutenn"
371
374
372−#: qml/Panel/Indicators/MenuItemFactory.qml:891
375+#: qml/Panel/Indicators/MenuItemFactory.qml:899
373#, qt-format
376#, qt-format
374msgid "%1 second"
377msgid "%1 second"
375msgid_plural "%1 seconds"
378msgid_plural "%1 seconds"
376msgstr[0] "%1 eilenn"
379msgstr[0] "%1 eilenn"
377msgstr[1] "%1 eilenn"
380msgstr[1] "%1 eilenn"
378
381
379−#: qml/Panel/Indicators/MenuItemFactory.qml:894
382+#: qml/Panel/Indicators/MenuItemFactory.qml:902
380msgid "0 seconds"
383msgid "0 seconds"
381msgstr "0 eilenn"
384msgstr "0 eilenn"
382
385
383#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
386#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
384−#: qml/Panel/Indicators/MenuItemFactory.qml:896
387+#: qml/Panel/Indicators/MenuItemFactory.qml:904
385#, qt-format
388#, qt-format
386msgid "%1 remaining"
389msgid "%1 remaining"
387msgstr "%1 o chom"
390msgstr "%1 o chom"
388
391
389−#: qml/Panel/Indicators/MenuItemFactory.qml:902
392+#: qml/Panel/Indicators/MenuItemFactory.qml:910
390msgid "In queue…"
393msgid "In queue…"
391msgstr "El lostennad..."
394msgstr "El lostennad..."
392
395
393−#: qml/Panel/Indicators/MenuItemFactory.qml:906
396+#: qml/Panel/Indicators/MenuItemFactory.qml:914
394msgid "Downloading"
397msgid "Downloading"
395msgstr "O pellgargañ"
398msgstr "O pellgargañ"
396
399
397−#: qml/Panel/Indicators/MenuItemFactory.qml:908
400+#: qml/Panel/Indicators/MenuItemFactory.qml:916
398msgid "Paused, tap to resume"
401msgid "Paused, tap to resume"
399msgstr "Ehanet, touchit evit adkregiñ"
402msgstr "Ehanet, touchit evit adkregiñ"
400
403
401−#: qml/Panel/Indicators/MenuItemFactory.qml:910
404+#: qml/Panel/Indicators/MenuItemFactory.qml:918
402msgid "Canceled"
405msgid "Canceled"
403msgstr "Nullet"
406msgstr "Nullet"
404
407
405−#: qml/Panel/Indicators/MenuItemFactory.qml:912
408+#: qml/Panel/Indicators/MenuItemFactory.qml:920
406msgid "Finished"
409msgid "Finished"
407msgstr "Echu"
410msgstr "Echu"
408
411
409−#: qml/Panel/Indicators/MenuItemFactory.qml:914
412+#: qml/Panel/Indicators/MenuItemFactory.qml:922
410msgid "Failed, tap to retry"
413msgid "Failed, tap to retry"
411msgstr "C'hwitet, touchit evit adkregiñ"
414msgstr "C'hwitet, touchit evit adkregiñ"
412
415
@@ -414,7 +417,7 @@ msgstr "C'hwitet, touchit evit adkregiñ"
414#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
417#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
415msgctxt "Button: Send a reply message"
418msgctxt "Button: Send a reply message"
416msgid "Send"
419msgid "Send"
417−msgstr ""
420+msgstr "Kas"
418
421
419#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
422#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
420msgctxt "Label: Hint in message indicator line edit"
423msgctxt "Label: Hint in message indicator line edit"
@@ -424,261 +427,326 @@ msgstr "Respont"
424#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
427#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
425msgctxt "Button: Call back on phone"
428msgctxt "Button: Call back on phone"
426msgid "Call back"
429msgid "Call back"
427−msgstr ""
430+msgstr "Gervel en-dro"
428
431
429−#: qml/Panel/Indicators/ModemInfoItem.qml:105
432+#: qml/Stages/SideStage.qml:76
430−msgid "Unlock SIM"
433+msgid "Drag using 3 fingers any application from one window to the other"
431−msgstr "Dibrennañ ar gartenn SIM"
434+msgstr ""
432−
433−#: qml/Panel/Indicators/RoamingIndication.qml:27
434−msgid "Roaming"
435−msgstr "O kantren"
436−
437−#: qml/Tutorial/TutorialBottom.qml:28
438−msgid "Open special menus"
439−msgstr "Digeriñ al lañserioù ispisial"
440−
441−#: qml/Tutorial/TutorialBottom.qml:29
442−msgid "Swipe up from the bottom edge."
443−msgstr "Riklit war-du an nec'h adalek an traoñ"
444
435
445−#: qml/Tutorial/TutorialBottomFinish.qml:24
436+#: qml/Tutorial/TutorialBottom.qml:78
446−msgid "This action does different things for different apps"
437+msgid "Swipe up to add a contact"
447−msgstr "An ober-mañ a ra meur a dra evit meur a arload"
438+msgstr "Riklit d'an nec'h evit ouzhpennañ un darempred"
448
439
449−#: qml/Tutorial/TutorialBottomFinish.qml:25
440+#: qml/Tutorial/TutorialBottom.qml:80
450−msgid "Tap here to finish."
441+msgid "Swipe up for favorite calculations"
451−msgstr "Pouezañ amañ evit echuiñ."
442+msgstr ""
452
443
453−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
444+#: qml/Tutorial/TutorialBottom.qml:82
454−#: qml/Tutorial/TutorialRight.qml:144
445+msgid "Swipe up for recent calls"
455−msgid "Tap here to continue."
446+msgstr ""
456−msgstr "Pouzañ amañ evit kenderc'hel"
457
447
458−#: qml/Tutorial/TutorialLeft.qml:26
448+#: qml/Tutorial/TutorialBottom.qml:84
459−msgid "Open the launcher"
449+msgid "Swipe up to create a message"
460−msgstr "Digeriñ al lañser"
450+msgstr "Riklit d'an nec'h evit krouiñ ur gemennadenn"
461
451
462−#: qml/Tutorial/TutorialLeft.qml:27
452+#: qml/Tutorial/TutorialBottom.qml:85
463−msgid "Short swipe from the left edge."
453+msgid "Swipe up to manage the app"
464−msgstr "Riklik dousik adalek ar bord kleiz."
454+msgstr ""
465
455
466−#: qml/Tutorial/TutorialLeftFinish.qml:24
456+#: qml/Tutorial/TutorialLeft.qml:47
467−msgid "These are the shortcuts to favorite apps"
457+msgid "Swipe from the left edge to open the launcher"
468−msgstr "Berradennoù war-du hoc'h arloadoù gwellañ-deuet eo ar re-mañ"
458+msgstr ""
469
459
470−#: qml/Tutorial/TutorialPage.qml:178
460+#: qml/Tutorial/TutorialLeftLong.qml:47
471−msgid "You almost got it!"
461+msgid "Long swipe from the left edge to open the Today scope"
472−msgstr "Deuet eo ganeoc'h pe dost ?"
462+msgstr ""
473
463
474−#: qml/Tutorial/TutorialPage.qml:195
464+#: qml/Tutorial/TutorialRight.qml:54
475−msgid "Try again."
465+msgid "Hover your mouse on the right edge to view your open apps"
476−msgstr "Esaeit en-dro."
466+msgstr ""
477
467
478−#: qml/Tutorial/TutorialRight.qml:31
468+#: qml/Tutorial/TutorialRight.qml:55
479−msgid "To view open apps"
469+msgid "Short or long swipe from the right edge to view your open apps"
480−msgstr "Evit gwelet an arloadoù digor"
470+msgstr ""
481
471
482−#: qml/Tutorial/TutorialRight.qml:32
472+#: qml/Tutorial/TutorialTop.qml:53
483−msgid "Long swipe from the right edge."
473+msgid "Swipe from the top right edge to open the notification bar"
484−msgstr "Riklit pell adalek ar bord dehoù."
474+msgstr ""
485
475
486−#: qml/Tutorial/TutorialRight.qml:122
476+#: qml/Tutorial/TutorialTop.qml:54
487−msgid "View all your running tasks."
477+msgid "Swipe from the top edge to open the notification bar"
488−msgstr "Gwelet an holl drevelloù a ya en-dro."
478+msgstr ""
489
479
490−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
491msgctxt "Button: Go back one page in the Wizard"
481msgctxt "Button: Go back one page in the Wizard"
492msgid "Back"
482msgid "Back"
493msgstr "Distreiñ"
483msgstr "Distreiñ"
494
484
495#: qml/Wizard/Pages/10-welcome.qml:27
485#: qml/Wizard/Pages/10-welcome.qml:27
496−msgid "Hi!"
486+msgid "Language"
497−msgstr "Salud deoc'h !"
487+msgstr "Yezh"
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+
498+#: qml/Wizard/Pages/30-wifi.qml:29
499+msgid "Connect to Wi‑Fi"
500+msgstr "Kevreañ ouzh ar Wi-Fi"
501+
502+#: qml/Wizard/Pages/30-wifi.qml:130
503+msgid "Connected"
504+msgstr "Kevreet"
505+
506+#: qml/Wizard/Pages/30-wifi.qml:163
507+msgid "Available Wi-Fi networks"
508+msgstr "Rouedadoù Wi-Fi da gaout"
509+
510+#: qml/Wizard/Pages/30-wifi.qml:164
511+msgid "No available Wi-Fi networks"
512+msgstr "N'eus ket rouedadoù Wi-Fi da gaout"
513+
514+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515+#: qml/Wizard/Pages/sim.qml:101
516+msgid "Skip"
517+msgstr "Tremen hebiou"
498
518
499−#: qml/Wizard/Pages/10-welcome.qml:44
519+#: qml/Wizard/Pages/40-location.qml:27
500−msgid "Welcome to your Ubuntu device."
520+msgid "Location Services"
521+msgstr "Servijoù lec'hiañ"
522+
523+#: qml/Wizard/Pages/40-location.qml:83
524+msgid ""
525+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
526+"(recommended)"
501msgstr ""
527msgstr ""
502
528
503−#: qml/Wizard/Pages/10-welcome.qml:52
529+#: qml/Wizard/Pages/40-location.qml:105
504−msgid "Let’s get started."
530+#, qt-format
531+msgid "By selecting this option you agree to the Nokia HERE %1."
505−msgstr "Krogomp ganti."
532+msgstr ""
506
533
507−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
534+#: qml/Wizard/Pages/40-location.qml:106
508−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
535+msgctxt "part of: Nokia HERE terms and conditions"
509−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
536+msgid "terms and conditions"
510−#: qml/Wizard/Pages/passwd-set.qml:90
537+msgstr "penndivizoù implij"
511−msgid "Continue"
512−msgstr "Kenderc'hel"
513
538
514−#: qml/Wizard/Pages/20-sim.qml:25
539+#: qml/Wizard/Pages/40-location.qml:160
515−msgid "Add a SIM card and restart your device"
540+msgid "GPS only"
516−msgstr "Lakait ur gartenn SIM hag adloc'hit ho penveg"
541+msgstr "GPS hepken"
517
542
518−#: qml/Wizard/Pages/20-sim.qml:59
543+#: qml/Wizard/Pages/40-location.qml:214
519−msgid "Without it, you won’t be able to make calls or use text messaging."
544+msgid "Don't use my location"
520−msgstr "Ne vioc'h ket evit pellgomz pe kas kemennadennoù hepti."
545+msgstr "Arabat implijout ma lec'h"
521
546
522−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
547+#: qml/Wizard/Pages/40-location.qml:260
523−msgid "Skip"
548+msgid "You can change it later in System Settings."
524−msgstr "Tremen hebiou"
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"
525
558
526−#: qml/Wizard/Pages/30-passwd-type.qml:39
559+#: qml/Wizard/Pages/60-account.qml:24
527−msgid "Lock security"
560+msgid "Personalize Your Device"
528−msgstr "Surentez ar prennañ"
561+msgstr "Personelaat ho penveg"
529
562
530−#: qml/Wizard/Pages/30-passwd-type.qml:79
563+#: qml/Wizard/Pages/60-account.qml:48
531−msgid "Please select how you’d like to unlock your device."
564+msgid "Preferred Name"
532msgstr ""
565msgstr ""
533
566
534−#: qml/Wizard/Pages/30-passwd-type.qml:102
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
535msgctxt "Label: Type of security method"
572msgctxt "Label: Type of security method"
536−msgid "Swipe"
573+msgid "Create new password"
537−msgstr "Riklañ"
574+msgstr "Krouiñ ur ger-tremen nevez"
538
575
539−#: qml/Wizard/Pages/30-passwd-type.qml:103
576+#: qml/Wizard/Pages/70-passwd-type.qml:103
540−msgctxt "Label: Description of security method"
577+msgctxt "Label: Type of security method"
541−msgid "No security"
578+msgid "Create passcode (numbers only)"
542−msgstr "Tamm surentez ebet"
579+msgstr "Krouiñ ur c'hod (difroù hepken)"
543
580
544−#: qml/Wizard/Pages/30-passwd-type.qml:105
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
545msgctxt "Label: Type of security method"
582msgctxt "Label: Type of security method"
546−msgid "Passcode"
583+msgid "No lock code"
547−msgstr "Kod-tremen"
584+msgstr "N'eus kod prennañ ebet"
548
585
549−#: qml/Wizard/Pages/30-passwd-type.qml:106
586+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
550−msgctxt "Label: Description of security method"
587+msgid "Privacy Policy"
551−msgid "4 digits only"
588+msgstr "Reolennoù prevezded"
552−msgstr "4 sifr hepken"
553
589
554−#: qml/Wizard/Pages/30-passwd-type.qml:108
590+#: qml/Wizard/Pages/75-report-check.qml:26
555−msgctxt "Label: Type of security method"
591+msgid "Help Us Improve"
556−msgid "Passphrase"
592+msgstr "Sikourit ac'hanomp da wellaat"
557−msgstr "Frazenn-dremen"
558
593
559−#: qml/Wizard/Pages/30-passwd-type.qml:109
594+#: qml/Wizard/Pages/75-report-check.qml:59
560−msgctxt "Label: Description of security method"
595+msgid "Improve system performance by sending us crashes and error reports."
561−msgid "Numbers and letters"
596+msgstr ""
562−msgstr "Sifroù ha lizherennoù"
563
597
564−#: qml/Wizard/Pages/40-wifi.qml:29
598+#: qml/Wizard/Pages/75-report-check.qml:60
565−msgid "Connect to Wi‑Fi"
599+msgid "Privacy policy"
566−msgstr "Kevreañ ouzh ar Wi-Fi"
600+msgstr "Reolennoù buhez prevez"
567
601
568−#: qml/Wizard/Pages/40-wifi.qml:168
602+#: qml/Wizard/Pages/80-finished.qml:89
569−msgid "Available networks…"
603+msgid "Welcome to Ubuntu"
570−msgstr "Rouedadoù a c'haller kaout..."
604+msgstr "Donemat en Ubuntu"
571
605
572−#: qml/Wizard/Pages/40-wifi.qml:169
606+#: qml/Wizard/Pages/80-finished.qml:104
573−msgid "No available networks."
607+msgid "You are ready to use your device now"
574−msgstr "N'eus rouedad ebet da gaout."
608+msgstr "Bremañ oc'h prest da implijout ho penveg"
575
609
576−#: qml/Wizard/Pages/50-location.qml:27
610+#: qml/Wizard/Pages/80-finished.qml:124
577−msgid "Location"
611+msgid "Get Started"
578−msgstr "Lec'h"
612+msgstr "Kregiñ ganti"
579
613
580−#: qml/Wizard/Pages/50-location.qml:62
614+#: qml/Wizard/Pages/here-terms.qml:25
581−msgid "Let the phone detect your location:"
615+msgid "Terms & Conditions"
582−msgstr "Lezel ar pellgomzer da gavout pelec'h emaoc'h :"
616+msgstr "Penndivizoù implij"
583
617
584−#: qml/Wizard/Pages/50-location.qml:69
618+#: qml/Wizard/Pages/here-terms.qml:69
585−msgid "Using GPS only (less accurate)"
619+msgid "Your device uses positioning technologies provided by HERE."
586−msgstr "Implijout ar GPS hepken (n'eo ket ken resis)"
620+msgstr ""
587
621
588−#: qml/Wizard/Pages/50-location.qml:86
622+#: qml/Wizard/Pages/here-terms.qml:81
589−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
623+msgid ""
624+"To provide you with positioning services and to improve their quality, HERE "
625+"collects information about nearby cell towers and Wi-Fi hotspots around your "
626+"current location whenever your position is being found."
590msgstr ""
627msgstr ""
591−"Implijout ar GPS, Wi-Fi dizanv pe titouroù ar rouedad kelligel (aliet)"
592
628
593−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
594−#: qml/Wizard/Pages/50-location.qml:103
629+#: qml/Wizard/Pages/here-terms.qml:93
595msgid ""
630msgid ""
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 ""
634+
635+#: qml/Wizard/Pages/here-terms.qml:106
636+#, qt-format
596−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
637+msgid "By continuing, you agree to the HERE platform %1 and %2."
597−"conditions</a>."
598msgstr ""
638msgstr ""
599−"Pa ziuzit an dibarzh-mañ ez asantit da <a href='#'>zivizoù implij</a> Nokia."
600
639
601−#: qml/Wizard/Pages/50-location.qml:112
640+#: qml/Wizard/Pages/here-terms.qml:107
602−msgid "Not at all"
641+msgid "Service Terms"
603−msgstr "Tamm ebet"
642+msgstr "Divizoù servij"
604
643
605−#: qml/Wizard/Pages/50-location.qml:124
644+#: qml/Wizard/Pages/passcode-confirm.qml:43
606−msgid "You can change your mind later in <b>System Settings</b>."
645+#: qml/Wizard/Pages/passcode-desktop.qml:80
646+msgid "Confirm passcode"
647+msgstr "Kadarnaat ar c'hod-tremen"
648+
649+#: qml/Wizard/Pages/passcode-confirm.qml:45
650+msgid "Incorrect passcode."
651+msgstr "Kod direizh"
652+
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
654+msgctxt "Enter the passcode again"
655+msgid "Please re-enter."
656+msgstr "Skrivit adarre, mar plij."
657+
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
659+msgid "Lock Screen Passcode"
660+msgstr "Kod da brennañ ar skramm"
661+
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
663+msgid "Enter 4 numbers to setup your passcode"
607msgstr ""
664msgstr ""
608−"Gallout a rit cheñch soñj diwezhatoc'h en <b>Arventennoù ar reizhad</b>."
609
665
610−#: qml/Wizard/Pages/60-reporting.qml:26
666+#: qml/Wizard/Pages/passcode-desktop.qml:65
611−msgid "Improving your experience"
667+#: qml/Wizard/Pages/passcode-set.qml:54
612−msgstr "Gwellaat ho skiant-prenet"
668+msgid "Choose passcode"
669+msgstr "Choaz ur c'hod"
613
670
614−#: qml/Wizard/Pages/60-reporting.qml:46
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
615−msgid ""
672+msgid "Passcode too short"
616−"Your phone is set up to automatically report errors to Canonical and its "
673+msgstr "Kod re verr"
617−"partners, the makers of the operating system."
674+
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
676+msgid "Passcodes match"
618msgstr ""
677msgstr ""
619−"Arventennet eo ho pellgomzer evit titourañ ent emgefre ar fazioù da "
620−"gCanonical ha d'e gevelerien, ar re o deus savet ar reizhiad korvoiñ."
621
678
622−#: qml/Wizard/Pages/60-reporting.qml:53
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
623−msgid ""
680+msgid "Passcodes do not match"
624−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
625−"Privacy</b>"
626msgstr ""
681msgstr ""
627−"Gallout a ra bezañ diweredekaet e-barzh <b>Arventennoù ar reizhiad</b> "
628−"dindan <b>Surentez &amp; Prevezded</b>"
629
682
630−#: qml/Wizard/Pages/80-finished.qml:24
683+#: qml/Wizard/Pages/passcode-set.qml:62
631−msgid "All done"
684+msgid "Passcode must be 4 characters long"
632−msgstr "Echu penn-da-benn"
685+msgstr ""
633
686
634−#: qml/Wizard/Pages/80-finished.qml:39
687+#: qml/Wizard/Pages/password-set.qml:30
635−msgid "Nice work!"
688+msgid "Lock Screen Password"
636−msgstr "Gwellat labour !"
689+msgstr "Ger-tremen da brennañ ar skramm"
637
690
638−#: qml/Wizard/Pages/80-finished.qml:46
691+#: qml/Wizard/Pages/password-set.qml:61
639−msgid "Your device is now ready to use."
692+msgid "Enter at least 8 characters"
693+msgstr "Skrivit 8 arouezenn da vihanañ"
694+
695+#: qml/Wizard/Pages/password-set.qml:73
696+msgid "Choose password"
697+msgstr "Choaz ur ger-tremen"
698+
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."
640msgstr ""
713msgstr ""
641
714
642−#: qml/Wizard/Pages/80-finished.qml:53
715+#: qml/Wizard/Pages/sim.qml:59
643−msgid "Finish"
716+msgid "Restart"
644−msgstr "Echuiñ"
717+msgstr "Adloc'hañ"
645
718
646−#: qml/Wizard/Pages/here-terms.qml:27
719+#: qml/Wizard/Pages/sim.qml:78
647−msgid "Terms & Conditions"
720+msgid "You won’t be able to make calls or use text messaging without a SIM."
648−msgstr "Penndivizoù implij"
721+msgstr ""
649
722
650−#: qml/Wizard/Pages/passwd-confirm.qml:49
723+#: qml/Wizard/Pages/sim.qml:90
651−msgid "Confirm passphrase"
724+msgid "To proceed with no SIM tap Skip."
652−msgstr "Kadarnaat ar frazenn-dremen"
725+msgstr ""
653
726
654−#: qml/Wizard/Pages/passwd-confirm.qml:50
727+#: qml/Wizard/PasswordMeter.qml:87
655−msgid "Confirm passcode"
728+msgid "Passwords match"
656−msgstr "Kadarnaat ar c'hod-tremen"
729+msgstr "Klotañ a ra ar gerioù-tremen an eil gant egile"
657
730
658−#: qml/Wizard/Pages/passwd-confirm.qml:53
731+#: qml/Wizard/PasswordMeter.qml:89
659−#: qml/Wizard/Pages/passwd-confirm.qml:54
732+msgid "Passwords do not match"
660−msgid "Please try again."
733+msgstr "Ne glot ket ar gerioù-tremen"
661−msgstr "Esaeit en-dro, mar plij."
662
734
663−#: qml/Wizard/Pages/passwd-set.qml:61
735+#: qml/Wizard/PasswordMeter.qml:93
664−msgid "Choose your passcode"
736+msgid "Strong password"
665−msgstr "Choaz ho kod-tremen"
737+msgstr "Ger-tremen sur"
666
738
667−#: qml/Wizard/Pages/passwd-set.qml:68
739+#: qml/Wizard/PasswordMeter.qml:95
668−msgid "Passphrase must be 4 characters long"
740+msgid "Fair password"
669−msgstr "4 arouezenn a rank bezañ er frazenn-dremen"
741+msgstr "Ger-tremen reizh"
670
742
671−#. Translators: This is the arrow for "Back" buttons
672−#: qml/Wizard/StackButton.qml:39
743+#: qml/Wizard/PasswordMeter.qml:97
673−#, qt-format
674−msgid "〈 %1"
744+msgid "Weak password"
675−msgstr "〈 %1"
745+msgstr "Ger-tremen diasur"
676
746
677−#. Translators: This is the arrow for "Forward" buttons
678−#: qml/Wizard/StackButton.qml:42
747+#: qml/Wizard/PasswordMeter.qml:99
679−#, qt-format
748+msgid "Very weak password"
680−msgid "%1 〉"
749+msgstr "Ger-tremen diasur-kenañ"
681−msgstr "%1 〉"
682
750
683#~ msgid "Close"
751#~ msgid "Close"
684#~ msgstr "Serriñ"
752#~ msgstr "Serriñ"
@@ -752,6 +820,12 @@ msgstr "%1 〉"
752#~ msgid "All"
820#~ msgid "All"
753#~ msgstr "An holl anezho"
821#~ msgstr "An holl anezho"
754
822
823+#~ msgid "Unlock SIM"
824+#~ msgstr "Dibrennañ ar gartenn SIM"
825+
826+#~ msgid "Roaming"
827+#~ msgstr "O kantren"
828+
755#~ msgid "Favorites"
829#~ msgid "Favorites"
756#~ msgstr "Gwellañ deuet"
830#~ msgstr "Gwellañ deuet"
757
831
@@ -761,6 +835,9 @@ msgstr "%1 〉"
761#~ msgid "Log out"
835#~ msgid "Log out"
762#~ msgstr "Digevreañ"
836#~ msgstr "Digevreañ"
763
837
838+#~ msgid "Are you sure you want to shut down?"
839+#~ msgstr "Ha sur oc'h e fell deoc'h lazhañ ar benveg ?"
840+
764#~ msgid "Reboot"
841#~ msgid "Reboot"
765#~ msgstr "Adloc'hañ"
842#~ msgstr "Adloc'hañ"
766
843
@@ -770,25 +847,193 @@ msgstr "%1 〉"
770#~ msgid "Settings"
847#~ msgid "Settings"
771#~ msgstr "Arventennoù"
848#~ msgstr "Arventennoù"
772
849
773−#~ msgid "Restart"
774−#~ msgstr "Adloc'hañ"
775−
776#~ msgid "Manage Scopes"
850#~ msgid "Manage Scopes"
777#~ msgstr "Merañ ar c'hefluskerioù enklask"
851#~ msgstr "Merañ ar c'hefluskerioù enklask"
778
852
779#~ msgid "Please re-enter"
853#~ msgid "Please re-enter"
780#~ msgstr "Adverkañ, mar plij"
854#~ msgstr "Adverkañ, mar plij"
781
855
856+#~ msgid "Lock security"
857+#~ msgstr "Surentez ar prennañ"
858+
859+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
860+#~ msgstr "Ne vioc'h ket evit pellgomz pe kas kemennadennoù hepti."
861+
862+#~ msgid "Add a SIM card and restart your device"
863+#~ msgstr "Lakait ur gartenn SIM hag adloc'hit ho penveg"
864+
782#~ msgid "Please select how you’d like to unlock your phone."
865#~ msgid "Please select how you’d like to unlock your phone."
783#~ msgstr ""
866#~ msgstr ""
784#~ "Diuzit e peseurt mod e fell deoc'h dibrennañ ho pellgomzer, mar plij."
867#~ "Diuzit e peseurt mod e fell deoc'h dibrennañ ho pellgomzer, mar plij."
785
868
869+#~ msgid "Hi!"
870+#~ msgstr "Salud deoc'h !"
871+
872+#~ msgid "Let’s get started."
873+#~ msgstr "Krogomp ganti."
874+
875+#~ msgid "Continue"
876+#~ msgstr "Kenderc'hel"
877+
786#~ msgid "Welcome to your Ubuntu phone."
878#~ msgid "Welcome to your Ubuntu phone."
787#~ msgstr "Deuet-mat oc'h en ho pellgomzer Ubuntu."
879#~ msgstr "Deuet-mat oc'h en ho pellgomzer Ubuntu."
788
880
881+#~ msgid "Available networks…"
882+#~ msgstr "Rouedadoù a c'haller kaout..."
883+
884+#~ msgid "No available networks."
885+#~ msgstr "N'eus rouedad ebet da gaout."
886+
887+#~ msgid "Location"
888+#~ msgstr "Lec'h"
889+
890+#~ msgid "You can change your mind later in <b>System Settings</b>."
891+#~ msgstr ""
892+#~ "Gallout a rit cheñch soñj diwezhatoc'h en <b>Arventennoù ar reizhad</b>."
893+
894+#~ msgid ""
895+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
896+#~ "Privacy</b>"
897+#~ msgstr ""
898+#~ "Gallout a ra bezañ diweredekaet e-barzh <b>Arventennoù ar reizhiad</b> "
899+#~ "dindan <b>Surentez &amp; Prevezded</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+#~ "Arventennet eo ho pellgomzer evit titourañ ent emgefre ar fazioù da "
906+#~ "gCanonical ha d'e gevelerien, ar re o deus savet ar reizhiad korvoiñ."
907+
908+#~ msgid "All done"
909+#~ msgstr "Echu penn-da-benn"
910+
911+#~ msgid "Improving your experience"
912+#~ msgstr "Gwellaat ho skiant-prenet"
913+
914+#~ msgid ""
915+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
916+#~ "conditions</a>."
917+#~ msgstr ""
918+#~ "Pa ziuzit an dibarzh-mañ ez asantit da <a href='#'>zivizoù implij</a> Nokia."
919+
920+#~ msgid "Not at all"
921+#~ msgstr "Tamm ebet"
922+
923+#~ msgid "Let the phone detect your location:"
924+#~ msgstr "Lezel ar pellgomzer da gavout pelec'h emaoc'h :"
925+
926+#~ msgid "Using GPS only (less accurate)"
927+#~ msgstr "Implijout ar GPS hepken (n'eo ket ken resis)"
928+
929+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
930+#~ msgstr ""
931+#~ "Implijout ar GPS, Wi-Fi dizanv pe titouroù ar rouedad kelligel (aliet)"
932+
933+#~ msgid "Nice work!"
934+#~ msgstr "Gwellat labour !"
935+
936+#~ msgid "Finish"
937+#~ msgstr "Echuiñ"
938+
939+#~ msgid "Confirm passphrase"
940+#~ msgstr "Kadarnaat ar frazenn-dremen"
941+
942+#, qt-format
943+#~ msgid "〈 %1"
944+#~ msgstr "〈 %1"
945+
946+#~ msgid "Choose your passcode"
947+#~ msgstr "Choaz ho kod-tremen"
948+
949+#~ msgid "Passphrase must be 4 characters long"
950+#~ msgstr "4 arouezenn a rank bezañ er frazenn-dremen"
951+
952+#~ msgid "Please try again."
953+#~ msgstr "Esaeit en-dro, mar plij."
954+
789#~ msgid "Your phone is now ready to use."
955#~ msgid "Your phone is now ready to use."
790#~ msgstr "Prest eo ho pellgomzer da vezañ implijet bremañ."
956#~ msgstr "Prest eo ho pellgomzer da vezañ implijet bremañ."
791
957
958+#, qt-format
959+#~ msgid "%1 〉"
960+#~ msgstr "%1 〉"
961+
962+#~ msgid "This action does different things for different apps"
963+#~ msgstr "An ober-mañ a ra meur a dra evit meur a arload"
964+
965+#~ msgid "Open special menus"
966+#~ msgstr "Digeriñ al lañserioù ispisial"
967+
968+#~ msgid "Tap here to finish."
969+#~ msgstr "Pouezañ amañ evit echuiñ."
970+
971+#~ msgid "To view open apps"
972+#~ msgstr "Evit gwelet an arloadoù digor"
973+
974+#~ msgid "Long swipe from the right edge."
975+#~ msgstr "Riklit pell adalek ar bord dehoù."
976+
977+#~ msgid "View all your running tasks."
978+#~ msgstr "Gwelet an holl drevelloù a ya en-dro."
979+
980+#~ msgid "Try again."
981+#~ msgstr "Esaeit en-dro."
982+
983+#~ msgid "You almost got it!"
984+#~ msgstr "Deuet eo ganeoc'h pe dost ?"
985+
986+#~ msgid "Short swipe from the left edge."
987+#~ msgstr "Riklik dousik adalek ar bord kleiz."
988+
989+#~ msgid "Open the launcher"
990+#~ msgstr "Digeriñ al lañser"
991+
992+#~ msgid "Tap here to continue."
993+#~ msgstr "Pouzañ amañ evit kenderc'hel"
994+
995+#~ msgid "These are the shortcuts to favorite apps"
996+#~ msgstr "Berradennoù war-du hoc'h arloadoù gwellañ-deuet eo ar re-mañ"
997+
998+#~ msgid "Swipe up from the bottom edge."
999+#~ msgstr "Riklit war-du an nec'h adalek an traoñ"
1000+
1001+#~ msgctxt "Button: Shut down the system"
1002+#~ msgid "Shut down"
1003+#~ msgstr "Lazhañ ar benveg"
1004+
1005+#~ msgctxt "Title: Reboot/Shut down dialog"
1006+#~ msgid "Shut down"
1007+#~ msgstr "Lazhañ ar benveg"
1008+
1009+#~ msgctxt "Button: Reboot the system"
1010+#~ msgid "Reboot"
1011+#~ msgstr "Adloc'hañ"
1012+
1013+#~ msgctxt "Label: Type of security method"
1014+#~ msgid "Passcode"
1015+#~ msgstr "Kod-tremen"
1016+
1017+#~ msgctxt "Label: Description of security method"
1018+#~ msgid "No security"
1019+#~ msgstr "Tamm surentez ebet"
1020+
1021+#~ msgctxt "Label: Type of security method"
1022+#~ msgid "Swipe"
1023+#~ msgstr "Riklañ"
1024+
1025+#~ msgctxt "Label: Description of security method"
1026+#~ msgid "4 digits only"
1027+#~ msgstr "4 sifr hepken"
1028+
1029+#~ msgctxt "Label: Type of security method"
1030+#~ msgid "Passphrase"
1031+#~ msgstr "Frazenn-dremen"
1032+
1033+#~ msgctxt "Label: Description of security method"
1034+#~ msgid "Numbers and letters"
1035+#~ msgstr "Sifroù ha lizherennoù"
1036+
792#~ msgid "%a %d %b %H:%M"
1037#~ msgid "%a %d %b %H:%M"
793#~ msgstr "%a %b %d %H:%M"
1038#~ msgstr "%a %b %d %H:%M"
794
1039
po/bs.po+497−252
@@ -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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,23 +16,23 @@ 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-02-17 05:43+0000\n"
19+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
20−"X-Generator: Launchpad (build 17925)\n"
20+"X-Generator: Launchpad (build 17958)\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
24msgstr "Šifra: "
24msgstr "Šifra: "
25
25
26−#: plugins/Unity/Launcher/launcheritem.cpp:47
26+#: plugins/Unity/Launcher/launcheritem.cpp:48
27−#: plugins/Unity/Launcher/launcheritem.cpp:106
27+#: plugins/Unity/Launcher/launcheritem.cpp:107
28msgid "Pin shortcut"
28msgid "Pin shortcut"
29msgstr "Prikačite prečicu"
29msgstr "Prikačite prečicu"
30
30
31−#: plugins/Unity/Launcher/launcheritem.cpp:52
31+#: plugins/Unity/Launcher/launcheritem.cpp:53
32msgid "Quit"
32msgid "Quit"
33msgstr "Napusti"
33msgstr "Napusti"
34
34
35−#: plugins/Unity/Launcher/launcheritem.cpp:106
35+#: plugins/Unity/Launcher/launcheritem.cpp:107
36msgid "Unpin shortcut"
36msgid "Unpin shortcut"
37msgstr "Otkačite prečicu"
37msgstr "Otkačite prečicu"
38
38
@@ -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:219
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:183
116msgid "Yes"
98msgid "Yes"
117msgstr "Da"
99msgstr "Da"
118
100
119−#: qml/Components/Dialogs.qml:232
101+#: qml/Components/Dialogs.qml:198
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:199
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,25 +111,25 @@ 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:201
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:210
138msgctxt "Button: Restart the system"
120msgctxt "Button: Restart the system"
139msgid "Restart"
121msgid "Restart"
140msgstr "Restartuj"
122msgstr "Restartuj"
141
123
142−#: qml/Components/Lockscreen.qml:245
124+#: qml/Components/Lockscreen.qml:231
143msgid "Return to Call"
125msgid "Return to Call"
144msgstr "Povratak na Poziv"
126msgstr "Povratak na Poziv"
145
127
146−#: qml/Components/Lockscreen.qml:245
128+#: qml/Components/Lockscreen.qml:231
147msgid "Emergency Call"
129msgid "Emergency Call"
148msgstr "Hitan Poziv"
130msgstr "Hitan Poziv"
149
131
150−#: qml/Components/Lockscreen.qml:277
132+#: qml/Components/Lockscreen.qml:263
151msgid "OK"
133msgid "OK"
152msgstr "U redu"
134msgstr "U redu"
153
135
@@ -156,8 +138,10 @@ msgid "Apps may have unsaved data:"
156msgstr "Aplikacije možda imaju podataka koji nisu sačuvani:"
138msgstr "Aplikacije možda imaju podataka koji nisu sačuvani:"
157
139
158#: qml/Components/ModeSwitchWarningDialog.qml:57
140#: qml/Components/ModeSwitchWarningDialog.qml:57
141+msgctxt ""
142+"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."
143msgid "Re-dock, save your work and close these apps to continue."
160−msgstr "Postavi opet, snimi svoj rad i zatvori ove aplikacije za nastavak."
144+msgstr ""
161
145
162#: qml/Components/ModeSwitchWarningDialog.qml:63
146#: qml/Components/ModeSwitchWarningDialog.qml:63
163msgid "Or force close now (unsaved data will be lost)."
147msgid "Or force close now (unsaved data will be lost)."
@@ -177,42 +161,58 @@ msgstr "Ponovo poveži sada"
177msgid "Close all"
161msgid "Close all"
178msgstr "Zatvori sve"
162msgstr "Zatvori sve"
179
163
180−#: qml/Dash/DashPageHeader.qml:266
164+#: qml/Dash/DashPageHeader.qml:337
181msgctxt "Button: Open the Ubuntu Store"
165msgctxt "Button: Open the Ubuntu Store"
182msgid "Store"
166msgid "Store"
183msgstr "Trgovina"
167msgstr "Trgovina"
184
168
185−#: qml/Dash/DashPageHeader.qml:273
169+#: qml/Dash/DashPageHeader.qml:344
186msgctxt "Button: Start a search in the current dash scope"
170msgctxt "Button: Start a search in the current dash scope"
187msgid "Search"
171msgid "Search"
188msgstr "Pretraživanje"
172msgstr "Pretraživanje"
189
173
190−#: qml/Dash/DashPageHeader.qml:283
174+#: qml/Dash/DashPageHeader.qml:354
191msgctxt "Button: Show the current dash scope settings"
175msgctxt "Button: Show the current dash scope settings"
192msgid "Settings"
176msgid "Settings"
193msgstr "Podešavanja"
177msgstr "Podešavanja"
194
178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196msgid "Remove from Favorites"
180msgid "Remove from Favorites"
197msgstr "Ukloni iz Omiljenih"
181msgstr "Ukloni iz Omiljenih"
198
182
199−#: qml/Dash/DashPageHeader.qml:290
183+#: qml/Dash/DashPageHeader.qml:361
200msgid "Add to Favorites"
184msgid "Add to Favorites"
201msgstr "Dodaj u Omiljene"
185msgstr "Dodaj u Omiljene"
202
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+
203−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
195+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
204msgid "See less"
196msgid "See less"
205msgstr "Pogledati manje"
197msgstr "Pogledati manje"
206
198
207−#: qml/Dash/GenericScopeView.qml:587
199+#: qml/Dash/GenericScopeView.qml:570
208msgid "See all"
200msgid "See all"
209msgstr "Pogledati sve"
201msgstr "Pogledati sve"
210
202
211−#: qml/Dash/GenericScopeView.qml:649
203+#: qml/Dash/GenericScopeView.qml:627
212msgctxt "Label: Hint for dash search line edit"
204msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
205msgid "Search"
214msgstr "Pretraži"
206msgstr "Pretraži"
215
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+
216#: qml/Dash/Previews/PreviewActionCombo.qml:35
216#: qml/Dash/Previews/PreviewActionCombo.qml:35
217msgid "More..."
217msgid "More..."
218msgstr "Više..."
218msgstr "Više..."
@@ -234,7 +234,7 @@ msgstr "Ocijeni ovo"
234msgid "Add a review"
234msgid "Add a review"
235msgstr "Dodaj recenziju"
235msgstr "Dodaj recenziju"
236
236
237−#: qml/Dash/Previews/PreviewSharing.qml:50
237+#: qml/Dash/Previews/PreviewSharing.qml:66
238msgid "Preview Share Item"
238msgid "Preview Share Item"
239msgstr "Pogledaj stavku koja se dijeli"
239msgstr "Pogledaj stavku koja se dijeli"
240
240
@@ -262,13 +262,13 @@ msgstr "Početna"
262msgid "Also installed"
262msgid "Also installed"
263msgstr "Također instalirano"
263msgstr "Također instalirano"
264
264
265−#: qml/DisabledScreenNotice.qml:87
265+#: qml/DisabledScreenNotice.qml:104
266msgid ""
266msgid ""
267"Your device is now connected to an external display. Use this screen as a "
267"Your device is now connected to an external display. Use this screen as a "
268−"touch pad to interact with the mouse."
268+"touch pad to interact with the pointer."
269msgstr ""
269msgstr ""
270
270
271−#: qml/Greeter/CoverPage.qml:107
271+#: qml/Greeter/CoverPage.qml:118
272msgid "Unlock"
272msgid "Unlock"
273msgstr "Otključaj"
273msgstr "Otključaj"
274
274
@@ -280,11 +280,11 @@ msgstr "Ponovi"
280msgid "Tap to unlock"
280msgid "Tap to unlock"
281msgstr "Kucnite za otključavanje"
281msgstr "Kucnite za otključavanje"
282
282
283−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
283+#: qml/Greeter/NarrowView.qml:54
284msgid "Sorry, incorrect passphrase."
284msgid "Sorry, incorrect passphrase."
285msgstr "Izvinite, pogrešna pristupna fraza."
285msgstr "Izvinite, pogrešna pristupna fraza."
286
286
287−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
287+#: qml/Greeter/NarrowView.qml:55
288msgid "Sorry, incorrect passcode."
288msgid "Sorry, incorrect passcode."
289msgstr "Izvinite, pogrešan pristupni kod."
289msgstr "Izvinite, pogrešan pristupni kod."
290
290
@@ -313,7 +313,7 @@ msgstr ""
313msgid "Enter %1"
313msgid "Enter %1"
314msgstr "Unesite %1"
314msgstr "Unesite %1"
315
315
316−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
316+#: qml/Greeter/NarrowView.qml:117
317msgid "Enter passphrase"
317msgid "Enter passphrase"
318msgstr "Unesite propusnu frazu"
318msgstr "Unesite propusnu frazu"
319
319
@@ -351,11 +351,11 @@ msgstr "Kucnite da uzvratite poziv..."
351msgid "Conference"
351msgid "Conference"
352msgstr "Savjetovanje"
352msgstr "Savjetovanje"
353
353
354−#: qml/Panel/Indicators/MenuItemFactory.qml:753
354+#: qml/Panel/Indicators/MenuItemFactory.qml:761
355msgid "Nothing is playing"
355msgid "Nothing is playing"
356msgstr "Ništa nije pokrenuto"
356msgstr "Ništa nije pokrenuto"
357
357
358−#: qml/Panel/Indicators/MenuItemFactory.qml:882
358+#: qml/Panel/Indicators/MenuItemFactory.qml:890
359#, qt-format
359#, qt-format
360msgid "%1 hour"
360msgid "%1 hour"
361msgid_plural "%1 hours"
361msgid_plural "%1 hours"
@@ -363,7 +363,7 @@ msgstr[0] "%1 sat"
363msgstr[1] "%1 sata"
363msgstr[1] "%1 sata"
364msgstr[2] "%1 sati"
364msgstr[2] "%1 sati"
365
365
366−#: qml/Panel/Indicators/MenuItemFactory.qml:886
366+#: qml/Panel/Indicators/MenuItemFactory.qml:894
367#, qt-format
367#, qt-format
368msgid "%1 minute"
368msgid "%1 minute"
369msgid_plural "%1 minutes"
369msgid_plural "%1 minutes"
@@ -371,7 +371,7 @@ msgstr[0] "%1 minut"
371msgstr[1] "%1 minuta"
371msgstr[1] "%1 minuta"
372msgstr[2] "%1 minuta"
372msgstr[2] "%1 minuta"
373
373
374−#: qml/Panel/Indicators/MenuItemFactory.qml:891
374+#: qml/Panel/Indicators/MenuItemFactory.qml:899
375#, qt-format
375#, qt-format
376msgid "%1 second"
376msgid "%1 second"
377msgid_plural "%1 seconds"
377msgid_plural "%1 seconds"
@@ -379,37 +379,37 @@ msgstr[0] "%1 sekunda"
379msgstr[1] "%1 sekunde"
379msgstr[1] "%1 sekunde"
380msgstr[2] "%1 sekundi"
380msgstr[2] "%1 sekundi"
381
381
382−#: qml/Panel/Indicators/MenuItemFactory.qml:894
382+#: qml/Panel/Indicators/MenuItemFactory.qml:902
383msgid "0 seconds"
383msgid "0 seconds"
384msgstr "0 sekundi"
384msgstr "0 sekundi"
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:896
387+#: qml/Panel/Indicators/MenuItemFactory.qml:904
388#, qt-format
388#, qt-format
389msgid "%1 remaining"
389msgid "%1 remaining"
390msgstr "%1 preostalo"
390msgstr "%1 preostalo"
391
391
392−#: qml/Panel/Indicators/MenuItemFactory.qml:902
392+#: qml/Panel/Indicators/MenuItemFactory.qml:910
393msgid "In queue…"
393msgid "In queue…"
394msgstr "U red..."
394msgstr "U red..."
395
395
396−#: qml/Panel/Indicators/MenuItemFactory.qml:906
396+#: qml/Panel/Indicators/MenuItemFactory.qml:914
397msgid "Downloading"
397msgid "Downloading"
398msgstr "Preuzimanje"
398msgstr "Preuzimanje"
399
399
400−#: qml/Panel/Indicators/MenuItemFactory.qml:908
400+#: qml/Panel/Indicators/MenuItemFactory.qml:916
401msgid "Paused, tap to resume"
401msgid "Paused, tap to resume"
402msgstr "Pauzirano, kucnuti za nastavak"
402msgstr "Pauzirano, kucnuti za nastavak"
403
403
404−#: qml/Panel/Indicators/MenuItemFactory.qml:910
404+#: qml/Panel/Indicators/MenuItemFactory.qml:918
405msgid "Canceled"
405msgid "Canceled"
406msgstr "Otkazano"
406msgstr "Otkazano"
407
407
408−#: qml/Panel/Indicators/MenuItemFactory.qml:912
408+#: qml/Panel/Indicators/MenuItemFactory.qml:920
409msgid "Finished"
409msgid "Finished"
410msgstr "Završeno"
410msgstr "Završeno"
411
411
412−#: qml/Panel/Indicators/MenuItemFactory.qml:914
412+#: qml/Panel/Indicators/MenuItemFactory.qml:922
413msgid "Failed, tap to retry"
413msgid "Failed, tap to retry"
414msgstr "Neuspjelo, kucnuti za ponavljanje"
414msgstr "Neuspjelo, kucnuti za ponavljanje"
415
415
@@ -429,260 +429,324 @@ msgctxt "Button: Call back on phone"
429msgid "Call back"
429msgid "Call back"
430msgstr "Uzvrati poziv"
430msgstr "Uzvrati poziv"
431
431
432−#: qml/Panel/Indicators/ModemInfoItem.qml:105
432+#: qml/Stages/SideStage.qml:76
433−msgid "Unlock SIM"
433+msgid "Drag using 3 fingers any application from one window to the other"
434−msgstr "Otključajte SIM"
434+msgstr ""
435−
436−#: qml/Panel/Indicators/RoamingIndication.qml:27
437−msgid "Roaming"
438−msgstr "Roaming"
439−
440−#: qml/Tutorial/TutorialBottom.qml:28
441−msgid "Open special menus"
442−msgstr "Otvorite posebne menije"
443−
444−#: qml/Tutorial/TutorialBottom.qml:29
445−msgid "Swipe up from the bottom edge."
446−msgstr "Prevucite od donje ivice."
447
435
448−#: qml/Tutorial/TutorialBottomFinish.qml:24
436+#: qml/Tutorial/TutorialBottom.qml:78
449−msgid "This action does different things for different apps"
437+msgid "Swipe up to add a contact"
450−msgstr "Ova radnja čini različite stvari za različite aplikacije"
438+msgstr ""
451
439
452−#: qml/Tutorial/TutorialBottomFinish.qml:25
440+#: qml/Tutorial/TutorialBottom.qml:80
453−msgid "Tap here to finish."
441+msgid "Swipe up for favorite calculations"
454−msgstr "Kucnite ovdje za kraj."
442+msgstr ""
455
443
456−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
444+#: qml/Tutorial/TutorialBottom.qml:82
457−#: qml/Tutorial/TutorialRight.qml:144
445+msgid "Swipe up for recent calls"
458−msgid "Tap here to continue."
446+msgstr ""
459−msgstr "Kucnite ovdje za nastavak."
460
447
461−#: qml/Tutorial/TutorialLeft.qml:26
448+#: qml/Tutorial/TutorialBottom.qml:84
462−msgid "Open the launcher"
449+msgid "Swipe up to create a message"
463−msgstr "Otvorite pokretač"
450+msgstr ""
464
451
465−#: qml/Tutorial/TutorialLeft.qml:27
452+#: qml/Tutorial/TutorialBottom.qml:85
466−msgid "Short swipe from the left edge."
453+msgid "Swipe up to manage the app"
467−msgstr "Kratko prevlačenje od lijeve ivice."
454+msgstr ""
468
455
469−#: qml/Tutorial/TutorialLeftFinish.qml:24
456+#: qml/Tutorial/TutorialLeft.qml:47
470−msgid "These are the shortcuts to favorite apps"
457+msgid "Swipe from the left edge to open the launcher"
471−msgstr "Ovo su kratice za omiljene aplikacije"
458+msgstr ""
472
459
473−#: qml/Tutorial/TutorialPage.qml:178
460+#: qml/Tutorial/TutorialLeftLong.qml:47
474−msgid "You almost got it!"
461+msgid "Long swipe from the left edge to open the Today scope"
475−msgstr "Skoro ste uspjeli!"
462+msgstr ""
476
463
477−#: qml/Tutorial/TutorialPage.qml:195
464+#: qml/Tutorial/TutorialRight.qml:54
478−msgid "Try again."
465+msgid "Hover your mouse on the right edge to view your open apps"
479−msgstr "Pokušajte ponovo."
466+msgstr ""
480
467
481−#: qml/Tutorial/TutorialRight.qml:31
468+#: qml/Tutorial/TutorialRight.qml:55
482−msgid "To view open apps"
469+msgid "Short or long swipe from the right edge to view your open apps"
483−msgstr "Za pregled pokrenutih aplikacija"
470+msgstr ""
484
471
485−#: qml/Tutorial/TutorialRight.qml:32
472+#: qml/Tutorial/TutorialTop.qml:53
486−msgid "Long swipe from the right edge."
473+msgid "Swipe from the top right edge to open the notification bar"
487−msgstr "Dugo prevlačenje od desne ivice."
474+msgstr ""
488
475
489−#: qml/Tutorial/TutorialRight.qml:122
476+#: qml/Tutorial/TutorialTop.qml:54
490−msgid "View all your running tasks."
477+msgid "Swipe from the top edge to open the notification bar"
491−msgstr "Pogledajte sve pokrenute zadatke."
478+msgstr ""
492
479
493−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
494msgctxt "Button: Go back one page in the Wizard"
481msgctxt "Button: Go back one page in the Wizard"
495msgid "Back"
482msgid "Back"
496msgstr "Nazad"
483msgstr "Nazad"
497
484
498#: qml/Wizard/Pages/10-welcome.qml:27
485#: qml/Wizard/Pages/10-welcome.qml:27
499−msgid "Hi!"
486+msgid "Language"
500−msgstr "Ćao!"
487+msgstr ""
501
488
502−#: qml/Wizard/Pages/10-welcome.qml:44
489+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
503−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"
504msgstr ""
496msgstr ""
505
497
506−#: qml/Wizard/Pages/10-welcome.qml:52
498+#: qml/Wizard/Pages/30-wifi.qml:29
507−msgid "Let’s get started."
499+msgid "Connect to Wi‑Fi"
508−msgstr "Započnimo"
500+msgstr "Povezati na Wi-Fi"
509
501
510−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
502+#: qml/Wizard/Pages/30-wifi.qml:130
511−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
503+msgid "Connected"
512−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
513−#: qml/Wizard/Pages/passwd-set.qml:90
514−msgid "Continue"
515−msgstr "Nastavite"
504+msgstr ""
516
505
517−#: qml/Wizard/Pages/20-sim.qml:25
506+#: qml/Wizard/Pages/30-wifi.qml:163
518−msgid "Add a SIM card and restart your device"
507+msgid "Available Wi-Fi networks"
519−msgstr "Dodajte SIM karticu i restartujte vaš uređaj"
508+msgstr ""
520
509
521−#: qml/Wizard/Pages/20-sim.qml:59
510+#: qml/Wizard/Pages/30-wifi.qml:164
522−msgid "Without it, you won’t be able to make calls or use text messaging."
511+msgid "No available Wi-Fi networks"
523msgstr ""
512msgstr ""
524−"Bez nje, nećete biti u mogućnosti da uspostavite pozive ili koristite "
525−"tekstualne poruke."
526
513
527−#: 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
528msgid "Skip"
516msgid "Skip"
529msgstr "Preskočite"
517msgstr "Preskočite"
530
518
531−#: qml/Wizard/Pages/30-passwd-type.qml:39
519+#: qml/Wizard/Pages/40-location.qml:27
532−msgid "Lock security"
520+msgid "Location Services"
533−msgstr "Sigurnost zaključavanja"
521+msgstr ""
534
522
535−#: qml/Wizard/Pages/30-passwd-type.qml:79
523+#: qml/Wizard/Pages/40-location.qml:83
536−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)"
537msgstr ""
527msgstr ""
538
528
539−#: qml/Wizard/Pages/30-passwd-type.qml:102
529+#: qml/Wizard/Pages/40-location.qml:105
540−msgctxt "Label: Type of security method"
530+#, qt-format
541−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"
537+msgstr ""
538+
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"
542−msgstr "Prevlačenje"
545+msgstr ""
543
546
544−#: qml/Wizard/Pages/30-passwd-type.qml:103
547+#: qml/Wizard/Pages/40-location.qml:260
545−msgctxt "Label: Description of security method"
548+msgid "You can change it later in System Settings."
546−msgid "No security"
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"
547−msgstr "Bez sigurnosti"
561+msgstr ""
562+
563+#: qml/Wizard/Pages/60-account.qml:48
564+msgid "Preferred Name"
565+msgstr ""
548
566
549−#: qml/Wizard/Pages/30-passwd-type.qml:105
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
550msgctxt "Label: Type of security method"
572msgctxt "Label: Type of security method"
551−msgid "Passcode"
573+msgid "Create new password"
552−msgstr "Pristupni kod"
574+msgstr ""
553
575
554−#: qml/Wizard/Pages/30-passwd-type.qml:106
576+#: qml/Wizard/Pages/70-passwd-type.qml:103
555−msgctxt "Label: Description of security method"
577+msgctxt "Label: Type of security method"
556−msgid "4 digits only"
578+msgid "Create passcode (numbers only)"
557−msgstr "samo 4 cifre"
579+msgstr ""
558
580
559−#: qml/Wizard/Pages/30-passwd-type.qml:108
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
560msgctxt "Label: Type of security method"
582msgctxt "Label: Type of security method"
561−msgid "Passphrase"
583+msgid "No lock code"
562−msgstr "Pristupna fraza"
584+msgstr ""
563
585
564−#: qml/Wizard/Pages/30-passwd-type.qml:109
586+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
565−msgctxt "Label: Description of security method"
587+msgid "Privacy Policy"
566−msgid "Numbers and letters"
567−msgstr "Brojevi i slova"
588+msgstr ""
568
589
569−#: qml/Wizard/Pages/40-wifi.qml:29
590+#: qml/Wizard/Pages/75-report-check.qml:26
570−msgid "Connect to Wi‑Fi"
591+msgid "Help Us Improve"
571−msgstr "Povezati na 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 ""
572
597
573−#: qml/Wizard/Pages/40-wifi.qml:168
598+#: qml/Wizard/Pages/75-report-check.qml:60
574−msgid "Available networks…"
599+msgid "Privacy policy"
575−msgstr "Dostupne mreže..."
600+msgstr ""
576
601
577−#: qml/Wizard/Pages/40-wifi.qml:169
602+#: qml/Wizard/Pages/80-finished.qml:89
578−msgid "No available networks."
603+msgid "Welcome to Ubuntu"
579−msgstr "Nema dostupnih mreža."
604+msgstr ""
580
605
581−#: qml/Wizard/Pages/50-location.qml:27
606+#: qml/Wizard/Pages/80-finished.qml:104
582−msgid "Location"
607+msgid "You are ready to use your device now"
583−msgstr "Lokacija"
608+msgstr ""
584
609
585−#: qml/Wizard/Pages/50-location.qml:62
610+#: qml/Wizard/Pages/80-finished.qml:124
586−msgid "Let the phone detect your location:"
611+msgid "Get Started"
587−msgstr "Dopustite da telefon otkrije Vašu lokaciju:"
612+msgstr ""
588
613
589−#: qml/Wizard/Pages/50-location.qml:69
614+#: qml/Wizard/Pages/here-terms.qml:25
590−msgid "Using GPS only (less accurate)"
615+msgid "Terms & Conditions"
591−msgstr "Samo pomoću GPS (manje precizno)"
616+msgstr "Uslovi i odredbe"
592
617
593−#: qml/Wizard/Pages/50-location.qml:86
618+#: qml/Wizard/Pages/here-terms.qml:69
594−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
619+msgid "Your device uses positioning technologies provided by HERE."
595−msgstr "Pomoću GPS, anonimnog Wi-Fi i podataka mobilne mreže (preporučeno)"
620+msgstr ""
596
621
597−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
598−#: qml/Wizard/Pages/50-location.qml:103
622+#: qml/Wizard/Pages/here-terms.qml:81
599msgid ""
623msgid ""
600−"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 "
601−"conditions</a>."
625+"collects information about nearby cell towers and Wi-Fi hotspots around your "
626+"current location whenever your position is being found."
602msgstr ""
627msgstr ""
603−"Birajući ovu opciju prihvatate za Nokia OVDJE <a href='#'>terms and "
604−"conditions</a>."
605
628
606−#: qml/Wizard/Pages/50-location.qml:112
629+#: qml/Wizard/Pages/here-terms.qml:93
607−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."
608−msgstr "Nipošto"
633+msgstr ""
609
634
610−#: qml/Wizard/Pages/50-location.qml:124
635+#: qml/Wizard/Pages/here-terms.qml:106
611−msgid "You can change your mind later in <b>System Settings</b>."
636+#, qt-format
612−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 ""
613
639
614−#: qml/Wizard/Pages/60-reporting.qml:26
640+#: qml/Wizard/Pages/here-terms.qml:107
615−msgid "Improving your experience"
641+msgid "Service Terms"
616−msgstr "Poboljšavajući vaše iskustvo"
642+msgstr ""
617
643
618−#: qml/Wizard/Pages/60-reporting.qml:46
644+#: qml/Wizard/Pages/passcode-confirm.qml:43
645+#: qml/Wizard/Pages/passcode-desktop.qml:80
619−msgid ""
646+msgid "Confirm passcode"
620−"Your phone is set up to automatically report errors to Canonical and its "
647+msgstr "Potvrdi pristupni kod"
621−"partners, the makers of the operating system."
648+
649+#: qml/Wizard/Pages/passcode-confirm.qml:45
650+msgid "Incorrect passcode."
622msgstr ""
651msgstr ""
623−"Vaš telefon je podešen da automatski prijavljuje greške Canonical i "
624−"njegovim partnerima, tvorcima operativnog sistema."
625
652
626−#: qml/Wizard/Pages/60-reporting.qml:53
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
654+msgctxt "Enter the passcode again"
627−msgid ""
655+msgid "Please re-enter."
628−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
629−"Privacy</b>"
630msgstr ""
656msgstr ""
631−"Ovo može biti isključeno u <b>System Settings</b> under <b>Security &amp; "
632−"Privacy</b>"
633
657
634−#: qml/Wizard/Pages/80-finished.qml:24
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
635−msgid "All done"
659+msgid "Lock Screen Passcode"
636−msgstr "Sve urađeno"
660+msgstr ""
637
661
638−#: qml/Wizard/Pages/80-finished.qml:39
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
639−msgid "Nice work!"
663+msgid "Enter 4 numbers to setup your passcode"
640−msgstr "Dobro urađeno!"
664+msgstr ""
641
665
642−#: qml/Wizard/Pages/80-finished.qml:46
666+#: qml/Wizard/Pages/passcode-desktop.qml:65
643−msgid "Your device is now ready to use."
667+#: qml/Wizard/Pages/passcode-set.qml:54
668+msgid "Choose passcode"
644msgstr ""
669msgstr ""
645
670
646−#: qml/Wizard/Pages/80-finished.qml:53
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
647−msgid "Finish"
672+msgid "Passcode too short"
648−msgstr "Završiti"
673+msgstr ""
649
674
650−#: qml/Wizard/Pages/here-terms.qml:27
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
651−msgid "Terms & Conditions"
676+msgid "Passcodes match"
652−msgstr "Uslovi i odredbe"
677+msgstr ""
653
678
654−#: qml/Wizard/Pages/passwd-confirm.qml:49
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
655−msgid "Confirm passphrase"
680+msgid "Passcodes do not match"
656−msgstr "Potvrditi pristupnu rečenicu"
681+msgstr ""
657
682
658−#: qml/Wizard/Pages/passwd-confirm.qml:50
683+#: qml/Wizard/Pages/passcode-set.qml:62
659−msgid "Confirm passcode"
684+msgid "Passcode must be 4 characters long"
660−msgstr "Potvrdi pristupni kod"
685+msgstr ""
661
686
662−#: qml/Wizard/Pages/passwd-confirm.qml:53
687+#: qml/Wizard/Pages/password-set.qml:30
663−#: qml/Wizard/Pages/passwd-confirm.qml:54
688+msgid "Lock Screen Password"
664−msgid "Please try again."
689+msgstr ""
665−msgstr "Molimo pokušajte ponovo."
666
690
667−#: qml/Wizard/Pages/passwd-set.qml:61
691+#: qml/Wizard/Pages/password-set.qml:61
668−msgid "Choose your passcode"
692+msgid "Enter at least 8 characters"
669−msgstr "Izaberite vaš pristupni kod"
693+msgstr ""
670
694
671−#: qml/Wizard/Pages/passwd-set.qml:68
695+#: qml/Wizard/Pages/password-set.qml:73
672−msgid "Passphrase must be 4 characters long"
696+msgid "Choose password"
673−msgstr "Pristupna fraza mora sadržavati 4 slova"
697+msgstr ""
674
698
675−#. Translators: This is the arrow for "Back" buttons
699+#: qml/Wizard/Pages/password-set.qml:103
676−#: qml/Wizard/StackButton.qml:39
700+msgid "Confirm password"
677−#, qt-format
678−msgid "〈 %1"
679−msgstr "〈 %1"
701+msgstr ""
680
702
681−#. 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 ""
718+
719+#: qml/Wizard/Pages/sim.qml:78
720+msgid "You won’t be able to make calls or use text messaging without a SIM."
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+
682−#: qml/Wizard/StackButton.qml:42
731+#: qml/Wizard/PasswordMeter.qml:89
683−#, qt-format
732+msgid "Passwords do not match"
733+msgstr ""
734+
735+#: qml/Wizard/PasswordMeter.qml:93
736+msgid "Strong password"
737+msgstr ""
738+
739+#: qml/Wizard/PasswordMeter.qml:95
684−msgid "%1 〉"
740+msgid "Fair password"
685−msgstr "%1 〉"
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 ""
686
750
687#~ msgid "Top edge"
751#~ msgid "Top edge"
688#~ msgstr "Gornja ivica"
752#~ msgstr "Gornja ivica"
@@ -696,14 +760,195 @@ msgstr "%1 〉"
696#~ msgid "Right edge"
760#~ msgid "Right edge"
697#~ msgstr "Desna ivica"
761#~ msgstr "Desna ivica"
698
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+
699#~ msgid "Please re-enter"
770#~ msgid "Please re-enter"
700#~ msgstr "Molimo ponovo unesite"
771#~ msgstr "Molimo ponovo unesite"
701
772
773+#~ msgid "This action does different things for different apps"
774+#~ msgstr "Ova radnja čini različite stvari za različite aplikacije"
775+
776+#~ msgid "Unlock SIM"
777+#~ msgstr "Otključajte SIM"
778+
779+#~ msgid "Roaming"
780+#~ msgstr "Roaming"
781+
782+#~ msgid "Tap here to continue."
783+#~ msgstr "Kucnite ovdje za nastavak."
784+
785+#~ msgid "These are the shortcuts to favorite apps"
786+#~ msgstr "Ovo su kratice za omiljene aplikacije"
787+
788+#~ msgid "Swipe up from the bottom edge."
789+#~ msgstr "Prevucite od donje ivice."
790+
791+#~ msgid "Open special menus"
792+#~ msgstr "Otvorite posebne menije"
793+
794+#~ msgid "Tap here to finish."
795+#~ msgstr "Kucnite ovdje za kraj."
796+
797+#~ msgid "Long swipe from the right edge."
798+#~ msgstr "Dugo prevlačenje od desne ivice."
799+
800+#~ msgid "View all your running tasks."
801+#~ msgstr "Pogledajte sve pokrenute zadatke."
802+
803+#~ msgid "Hi!"
804+#~ msgstr "Ćao!"
805+
702#~ msgid "Welcome to your Ubuntu phone."
806#~ msgid "Welcome to your Ubuntu phone."
703#~ msgstr "Dobrodošli u vaš Ubuntu telefon."
807#~ msgstr "Dobrodošli u vaš Ubuntu telefon."
704
808
809+#~ msgid "To view open apps"
810+#~ msgstr "Za pregled pokrenutih aplikacija"
811+
812+#~ msgid "Try again."
813+#~ msgstr "Pokušajte ponovo."
814+
815+#~ msgid "You almost got it!"
816+#~ msgstr "Skoro ste uspjeli!"
817+
818+#~ msgid "Short swipe from the left edge."
819+#~ msgstr "Kratko prevlačenje od lijeve ivice."
820+
821+#~ msgid "Open the launcher"
822+#~ msgstr "Otvorite pokretač"
823+
824+#~ msgid "Lock security"
825+#~ msgstr "Sigurnost zaključavanja"
826+
827+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
828+#~ msgstr ""
829+#~ "Bez nje, nećete biti u mogućnosti da uspostavite pozive ili koristite "
830+#~ "tekstualne poruke."
831+
832+#~ msgid "Add a SIM card and restart your device"
833+#~ msgstr "Dodajte SIM karticu i restartujte vaš uređaj"
834+
705#~ msgid "Please select how you’d like to unlock your phone."
835#~ msgid "Please select how you’d like to unlock your phone."
706#~ msgstr "Molimo izaberite kako biste željeli da otključavate vaš telefon."
836#~ msgstr "Molimo izaberite kako biste željeli da otključavate vaš telefon."
707
837
838+#~ msgctxt "Label: Description of security method"
839+#~ msgid "No security"
840+#~ msgstr "Bez sigurnosti"
841+
842+#~ msgctxt "Label: Type of security method"
843+#~ msgid "Swipe"
844+#~ msgstr "Prevlačenje"
845+
846+#~ msgctxt "Label: Type of security method"
847+#~ msgid "Passcode"
848+#~ msgstr "Pristupni kod"
849+
850+#~ msgid "Let’s get started."
851+#~ msgstr "Započnimo"
852+
853+#~ msgid "Continue"
854+#~ msgstr "Nastavite"
855+
856+#~ msgctxt "Label: Description of security method"
857+#~ msgid "4 digits only"
858+#~ msgstr "samo 4 cifre"
859+
860+#~ msgid "Let the phone detect your location:"
861+#~ msgstr "Dopustite da telefon otkrije Vašu lokaciju:"
862+
863+#~ msgid "Available networks…"
864+#~ msgstr "Dostupne mreže..."
865+
866+#~ msgid "No available networks."
867+#~ msgstr "Nema dostupnih mreža."
868+
869+#~ msgid "Location"
870+#~ msgstr "Lokacija"
871+
872+#~ msgid "Using GPS only (less accurate)"
873+#~ msgstr "Samo pomoću GPS (manje precizno)"
874+
875+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
876+#~ msgstr "Pomoću GPS, anonimnog Wi-Fi i podataka mobilne mreže (preporučeno)"
877+
878+#~ msgctxt "Label: Description of security method"
879+#~ msgid "Numbers and letters"
880+#~ msgstr "Brojevi i slova"
881+
882+#~ msgid "Improving your experience"
883+#~ msgstr "Poboljšavajući vaše iskustvo"
884+
885+#~ msgid "You can change your mind later in <b>System Settings</b>."
886+#~ msgstr "Možete se predomisliti kasnije u <b>System Settings</b>."
887+
888+#~ msgid ""
889+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
890+#~ "Privacy</b>"
891+#~ msgstr ""
892+#~ "Ovo može biti isključeno u <b>System Settings</b> under <b>Security &amp; "
893+#~ "Privacy</b>"
894+
895+#~ msgid ""
896+#~ "Your phone is set up to automatically report errors to Canonical and its "
897+#~ "partners, the makers of the operating system."
898+#~ msgstr ""
899+#~ "Vaš telefon je podešen da automatski prijavljuje greške Canonical i "
900+#~ "njegovim partnerima, tvorcima operativnog sistema."
901+
902+#~ msgid "Nice work!"
903+#~ msgstr "Dobro urađeno!"
904+
905+#~ msgid "All done"
906+#~ msgstr "Sve urađeno"
907+
908+#~ msgid "Finish"
909+#~ msgstr "Završiti"
910+
911+#~ msgid ""
912+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
913+#~ "conditions</a>."
914+#~ msgstr ""
915+#~ "Birajući ovu opciju prihvatate za Nokia OVDJE <a href='#'>terms and "
916+#~ "conditions</a>."
917+
918+#~ msgid "Not at all"
919+#~ msgstr "Nipošto"
920+
708#~ msgid "Your phone is now ready to use."
921#~ msgid "Your phone is now ready to use."
709#~ msgstr "Vaš telefon je sada spreman za upotrebu."
922#~ msgstr "Vaš telefon je sada spreman za upotrebu."
923+
924+#~ msgid "Confirm passphrase"
925+#~ msgstr "Potvrditi pristupnu rečenicu"
926+
927+#, qt-format
928+#~ msgid "〈 %1"
929+#~ msgstr "〈 %1"
930+
931+#, qt-format
932+#~ msgid "%1 〉"
933+#~ msgstr "%1 〉"
934+
935+#~ msgid "Choose your passcode"
936+#~ msgstr "Izaberite vaš pristupni kod"
937+
938+#~ msgid "Please try again."
939+#~ msgstr "Molimo pokušajte ponovo."
940+
941+#~ msgid "Passphrase must be 4 characters long"
942+#~ msgstr "Pristupna fraza mora sadržavati 4 slova"
943+
944+#~ msgctxt "Label: Type of security method"
945+#~ msgid "Passphrase"
946+#~ msgstr "Pristupna fraza"
947+
948+#~ msgctxt "Title: Reboot/Shut down dialog"
949+#~ msgid "Shut down"
950+#~ msgstr "Ugasi"
951+
952+#~ msgctxt "Button: Reboot the system"
953+#~ msgid "Reboot"
954+#~ msgstr "Ponovo pokreni"
po/ca.po+496−256
@@ -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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,23 +15,23 @@ 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-02-17 05:43+0000\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
19+"X-Generator: Launchpad (build 17958)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Contrasenya: "
23msgstr "Contrasenya: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Enganxa la drecera"
28msgstr "Enganxa la drecera"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31msgid "Quit"
31msgid "Quit"
32msgstr "Surt"
32msgstr "Surt"
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Desenganxa la drecera"
36msgstr "Desenganxa la drecera"
37
37
@@ -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:219
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:183
118msgid "Yes"
100msgid "Yes"
119msgstr "Sí"
101msgstr "Sí"
120
102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:198
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:199
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,25 +113,25 @@ 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:201
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:210
140msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
141msgid "Restart"
123msgid "Restart"
142msgstr "Reinicia"
124msgstr "Reinicia"
143
125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145msgid "Return to Call"
127msgid "Return to Call"
146msgstr "Torna a la trucada"
128msgstr "Torna a la trucada"
147
129
148−#: qml/Components/Lockscreen.qml:245
130+#: qml/Components/Lockscreen.qml:231
149msgid "Emergency Call"
131msgid "Emergency Call"
150msgstr "Trucada d'emergència"
132msgstr "Trucada d'emergència"
151
133
152−#: qml/Components/Lockscreen.qml:277
134+#: qml/Components/Lockscreen.qml:263
153msgid "OK"
135msgid "OK"
154msgstr "D'acord"
136msgstr "D'acord"
155
137
@@ -158,10 +140,10 @@ msgid "Apps may have unsaved data:"
158msgstr "Pot ser que aquestes aplicacions no hagin desat les dades:"
140msgstr "Pot ser que aquestes aplicacions no hagin desat les dades:"
159
141
160#: qml/Components/ModeSwitchWarningDialog.qml:57
142#: qml/Components/ModeSwitchWarningDialog.qml:57
143+msgctxt ""
144+"Re-dock means connect the device again to an external screen/mouse/keyboard"
161msgid "Re-dock, save your work and close these apps to continue."
145msgid "Re-dock, save your work and close these apps to continue."
162msgstr ""
146msgstr ""
163−"Torneu a connectar, deseu la feina i tanqueu aquestes aplicacions per "
164−"continuar."
165
147
166#: qml/Components/ModeSwitchWarningDialog.qml:63
148#: qml/Components/ModeSwitchWarningDialog.qml:63
167msgid "Or force close now (unsaved data will be lost)."
149msgid "Or force close now (unsaved data will be lost)."
@@ -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:266
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:273
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:283
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:290
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:290
183+#: qml/Dash/DashPageHeader.qml:361
202msgid "Add to Favorites"
184msgid "Add to Favorites"
203msgstr "Afegeix als preferits"
185msgstr "Afegeix 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:587 qml/Dash/GenericScopeView.qml:745
195+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
206msgid "See less"
196msgid "See less"
207msgstr "Mostra'n menys"
197msgstr "Mostra'n menys"
208
198
209−#: qml/Dash/GenericScopeView.qml:587
199+#: qml/Dash/GenericScopeView.qml:570
210msgid "See all"
200msgid "See all"
211msgstr "Mostra-ho tot"
201msgstr "Mostra-ho tot"
212
202
213−#: qml/Dash/GenericScopeView.qml:649
203+#: qml/Dash/GenericScopeView.qml:627
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 ""
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..."
@@ -236,7 +234,7 @@ msgstr "Puntueu-ho"
236msgid "Add a review"
234msgid "Add a review"
237msgstr "Afegiu una ressenya"
235msgstr "Afegiu una ressenya"
238
236
239−#: qml/Dash/Previews/PreviewSharing.qml:50
237+#: qml/Dash/Previews/PreviewSharing.qml:66
240msgid "Preview Share Item"
238msgid "Preview Share Item"
241msgstr ""
239msgstr ""
242
240
@@ -264,13 +262,13 @@ msgstr "Inici"
264msgid "Also installed"
262msgid "Also installed"
265msgstr "També instal·lat"
263msgstr "També instal·lat"
266
264
267−#: qml/DisabledScreenNotice.qml:87
265+#: qml/DisabledScreenNotice.qml:104
268msgid ""
266msgid ""
269"Your device is now connected to an external display. Use this screen as a "
267"Your device is now connected to an external display. Use this screen as a "
270−"touch pad to interact with the mouse."
268+"touch pad to interact with the pointer."
271msgstr ""
269msgstr ""
272
270
273−#: qml/Greeter/CoverPage.qml:107
271+#: qml/Greeter/CoverPage.qml:118
274msgid "Unlock"
272msgid "Unlock"
275msgstr "Desbloca"
273msgstr "Desbloca"
276
274
@@ -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
@@ -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:753
356+#: qml/Panel/Indicators/MenuItemFactory.qml:761
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:882
360+#: qml/Panel/Indicators/MenuItemFactory.qml:890
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:886
367+#: qml/Panel/Indicators/MenuItemFactory.qml:894
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:891
374+#: qml/Panel/Indicators/MenuItemFactory.qml:899
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:894
381+#: qml/Panel/Indicators/MenuItemFactory.qml:902
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:896
386+#: qml/Panel/Indicators/MenuItemFactory.qml:904
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:902
391+#: qml/Panel/Indicators/MenuItemFactory.qml:910
394msgid "In queue…"
392msgid "In queue…"
395msgstr "A la cua..."
393msgstr "A la cua..."
396
394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:906
395+#: qml/Panel/Indicators/MenuItemFactory.qml:914
398msgid "Downloading"
396msgid "Downloading"
399msgstr "S'està baixant"
397msgstr "S'està baixant"
400
398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:908
399+#: qml/Panel/Indicators/MenuItemFactory.qml:916
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:910
403+#: qml/Panel/Indicators/MenuItemFactory.qml:918
406msgid "Canceled"
404msgid "Canceled"
407msgstr "S'ha cancel·lat"
405msgstr "S'ha cancel·lat"
408
406
409−#: qml/Panel/Indicators/MenuItemFactory.qml:912
407+#: qml/Panel/Indicators/MenuItemFactory.qml:920
410msgid "Finished"
408msgid "Finished"
411msgstr "S'ha finalitzat"
409msgstr "S'ha finalitzat"
412
410
413−#: qml/Panel/Indicators/MenuItemFactory.qml:914
411+#: qml/Panel/Indicators/MenuItemFactory.qml:922
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,261 +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/Panel/Indicators/ModemInfoItem.qml:105
431+#: qml/Stages/SideStage.qml:76
434−msgid "Unlock SIM"
432+msgid "Drag using 3 fingers any application from one window to the other"
435−msgstr "Desbloca la SIM"
433+msgstr ""
436−
437−#: qml/Panel/Indicators/RoamingIndication.qml:27
438−msgid "Roaming"
439−msgstr "Itinerància"
440−
441−#: qml/Tutorial/TutorialBottom.qml:28
442−msgid "Open special menus"
443−msgstr "Obre els menús especials"
444−
445−#: qml/Tutorial/TutorialBottom.qml:29
446−msgid "Swipe up from the bottom edge."
447−msgstr "Llisqueu el dit des de la vora inferior."
448
434
449−#: qml/Tutorial/TutorialBottomFinish.qml:24
435+#: qml/Tutorial/TutorialBottom.qml:78
450−msgid "This action does different things for different apps"
436+msgid "Swipe up to add a contact"
451−msgstr "Aquesta acció fa coses diferents depenent de l'aplicació"
437+msgstr ""
452
438
453−#: qml/Tutorial/TutorialBottomFinish.qml:25
439+#: qml/Tutorial/TutorialBottom.qml:80
454−msgid "Tap here to finish."
440+msgid "Swipe up for favorite calculations"
455−msgstr "Feu un toc per finalitzar."
441+msgstr ""
456
442
457−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
443+#: qml/Tutorial/TutorialBottom.qml:82
458−#: qml/Tutorial/TutorialRight.qml:144
444+msgid "Swipe up for recent calls"
459−msgid "Tap here to continue."
445+msgstr ""
460−msgstr "Feu un toc per continuar."
461
446
462−#: qml/Tutorial/TutorialLeft.qml:26
447+#: qml/Tutorial/TutorialBottom.qml:84
463−msgid "Open the launcher"
448+msgid "Swipe up to create a message"
464−msgstr "Obre el llançador"
449+msgstr ""
465
450
466−#: qml/Tutorial/TutorialLeft.qml:27
451+#: qml/Tutorial/TutorialBottom.qml:85
467−msgid "Short swipe from the left edge."
452+msgid "Swipe up to manage the app"
468−msgstr "Lliscament curt des de la vora esquerra."
453+msgstr ""
469
454
470−#: qml/Tutorial/TutorialLeftFinish.qml:24
455+#: qml/Tutorial/TutorialLeft.qml:47
471−msgid "These are the shortcuts to favorite apps"
456+msgid "Swipe from the left edge to open the launcher"
472−msgstr "Aquestes són les dreceres a les aplicacions preferides"
457+msgstr ""
473
458
474−#: qml/Tutorial/TutorialPage.qml:178
459+#: qml/Tutorial/TutorialLeftLong.qml:47
475−msgid "You almost got it!"
460+msgid "Long swipe from the left edge to open the Today scope"
476−msgstr "Ja gairebé ho teniu!"
461+msgstr ""
477
462
478−#: qml/Tutorial/TutorialPage.qml:195
463+#: qml/Tutorial/TutorialRight.qml:54
479−msgid "Try again."
464+msgid "Hover your mouse on the right edge to view your open apps"
480−msgstr "Torneu-ho a provar."
465+msgstr ""
481
466
482−#: qml/Tutorial/TutorialRight.qml:31
467+#: qml/Tutorial/TutorialRight.qml:55
483−msgid "To view open apps"
468+msgid "Short or long swipe from the right edge to view your open apps"
484−msgstr "Per veure les aplicacions obertes"
469+msgstr ""
485
470
486−#: qml/Tutorial/TutorialRight.qml:32
471+#: qml/Tutorial/TutorialTop.qml:53
487−msgid "Long swipe from the right edge."
472+msgid "Swipe from the top right edge to open the notification bar"
488−msgstr "Lliscament llarg des de la vora dreta."
473+msgstr ""
489
474
490−#: qml/Tutorial/TutorialRight.qml:122
475+#: qml/Tutorial/TutorialTop.qml:54
491−msgid "View all your running tasks."
476+msgid "Swipe from the top edge to open the notification bar"
492−msgstr "Mostra totes les tasques en execució."
477+msgstr ""
493
478
494−#: qml/Wizard/Page.qml:89
479+#: qml/Wizard/Page.qml:54
495msgctxt "Button: Go back one page in the Wizard"
480msgctxt "Button: Go back one page in the Wizard"
496msgid "Back"
481msgid "Back"
497msgstr "Enrere"
482msgstr "Enrere"
498
483
499#: qml/Wizard/Pages/10-welcome.qml:27
484#: qml/Wizard/Pages/10-welcome.qml:27
500−msgid "Hi!"
485+msgid "Language"
501−msgstr "Hola!"
486+msgstr ""
502
487
503−#: qml/Wizard/Pages/10-welcome.qml:44
488+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
504−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"
505msgstr ""
495msgstr ""
506
496
507−#: qml/Wizard/Pages/10-welcome.qml:52
497+#: qml/Wizard/Pages/30-wifi.qml:29
508−msgid "Let’s get started."
498+msgid "Connect to Wi‑Fi"
509−msgstr "Comencem."
499+msgstr "Connecta't a la Wi-Fi"
510
500
511−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
501+#: qml/Wizard/Pages/30-wifi.qml:130
512−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
502+msgid "Connected"
513−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
514−#: qml/Wizard/Pages/passwd-set.qml:90
515−msgid "Continue"
516−msgstr "Continua"
503+msgstr ""
517
504
518−#: qml/Wizard/Pages/20-sim.qml:25
505+#: qml/Wizard/Pages/30-wifi.qml:163
519−msgid "Add a SIM card and restart your device"
506+msgid "Available Wi-Fi networks"
520−msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
507+msgstr ""
521
508
522−#: qml/Wizard/Pages/20-sim.qml:59
509+#: qml/Wizard/Pages/30-wifi.qml:164
523−msgid "Without it, you won’t be able to make calls or use text messaging."
510+msgid "No available Wi-Fi networks"
524−msgstr "Sense ella, no podreu fer trucades o enviar missatges de text."
511+msgstr ""
525
512
526−#: 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
527msgid "Skip"
515msgid "Skip"
528msgstr "Omet"
516msgstr "Omet"
529
517
530−#: qml/Wizard/Pages/30-passwd-type.qml:39
518+#: qml/Wizard/Pages/40-location.qml:27
531−msgid "Lock security"
519+msgid "Location Services"
532−msgstr "Seguretat del bloqueig"
520+msgstr ""
533
521
534−#: qml/Wizard/Pages/30-passwd-type.qml:79
522+#: qml/Wizard/Pages/40-location.qml:83
535−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)"
536msgstr ""
526msgstr ""
537
527
538−#: qml/Wizard/Pages/30-passwd-type.qml:102
528+#: qml/Wizard/Pages/40-location.qml:105
539−msgctxt "Label: Type of security method"
529+#, qt-format
540−msgid "Swipe"
530+msgid "By selecting this option you agree to the Nokia HERE %1."
531+msgstr ""
532+
533+#: qml/Wizard/Pages/40-location.qml:106
534+msgctxt "part of: Nokia HERE terms and conditions"
535+msgid "terms and conditions"
541−msgstr "Lliscament amb el dit"
536+msgstr ""
537+
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 ""
542
553
543−#: qml/Wizard/Pages/30-passwd-type.qml:103
554+#: qml/Wizard/Pages/50-timezone.qml:178
544−msgctxt "Label: Description of security method"
555+msgid "Enter your city"
545−msgid "No security"
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"
546−msgstr "Sense seguretat"
568+msgstr ""
547
569
548−#: qml/Wizard/Pages/30-passwd-type.qml:105
570+#: qml/Wizard/Pages/70-passwd-type.qml:101
549msgctxt "Label: Type of security method"
571msgctxt "Label: Type of security method"
550−msgid "Passcode"
572+msgid "Create new password"
551−msgstr "Codi d'accés"
573+msgstr ""
552
574
553−#: qml/Wizard/Pages/30-passwd-type.qml:106
575+#: qml/Wizard/Pages/70-passwd-type.qml:103
554−msgctxt "Label: Description of security method"
576+msgctxt "Label: Type of security method"
555−msgid "4 digits only"
577+msgid "Create passcode (numbers only)"
556−msgstr "Només 4 dígits"
578+msgstr ""
557
579
558−#: qml/Wizard/Pages/30-passwd-type.qml:108
580+#: qml/Wizard/Pages/70-passwd-type.qml:105
559msgctxt "Label: Type of security method"
581msgctxt "Label: Type of security method"
560−msgid "Passphrase"
582+msgid "No lock code"
561−msgstr "Contrasenya"
583+msgstr ""
562
584
563−#: qml/Wizard/Pages/30-passwd-type.qml:109
585+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
564−msgctxt "Label: Description of security method"
586+msgid "Privacy Policy"
565−msgid "Numbers and letters"
566−msgstr "Números i lletres"
587+msgstr ""
567
588
568−#: qml/Wizard/Pages/40-wifi.qml:29
589+#: qml/Wizard/Pages/75-report-check.qml:26
569−msgid "Connect to Wi‑Fi"
590+msgid "Help Us Improve"
570−msgstr "Connecta't a la Wi-Fi"
591+msgstr ""
571
592
572−#: qml/Wizard/Pages/40-wifi.qml:168
593+#: qml/Wizard/Pages/75-report-check.qml:59
573−msgid "Available networks…"
594+msgid "Improve system performance by sending us crashes and error reports."
574−msgstr "Xarxes disponibles..."
595+msgstr ""
575
596
576−#: qml/Wizard/Pages/40-wifi.qml:169
597+#: qml/Wizard/Pages/75-report-check.qml:60
577−msgid "No available networks."
598+msgid "Privacy policy"
578−msgstr "No hi ha xarxes disponibles"
599+msgstr ""
579
600
580−#: qml/Wizard/Pages/50-location.qml:27
601+#: qml/Wizard/Pages/80-finished.qml:89
581−msgid "Location"
602+msgid "Welcome to Ubuntu"
582−msgstr "Ubicació"
603+msgstr ""
583
604
584−#: qml/Wizard/Pages/50-location.qml:62
605+#: qml/Wizard/Pages/80-finished.qml:104
585−msgid "Let the phone detect your location:"
606+msgid "You are ready to use your device now"
586−msgstr "Fes que el telèfon detecti la meva ubicació:"
607+msgstr ""
587
608
588−#: qml/Wizard/Pages/50-location.qml:69
609+#: qml/Wizard/Pages/80-finished.qml:124
589−msgid "Using GPS only (less accurate)"
610+msgid "Get Started"
590−msgstr "Utilitza només el GPS (menys precís)"
611+msgstr ""
591
612
592−#: qml/Wizard/Pages/50-location.qml:86
613+#: qml/Wizard/Pages/here-terms.qml:25
593−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."
594msgstr ""
619msgstr ""
595−"Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
596−"(recomanat)"
597
620
598−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
599−#: qml/Wizard/Pages/50-location.qml:103
621+#: qml/Wizard/Pages/here-terms.qml:81
600msgid ""
622msgid ""
601−"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 "
602−"conditions</a>."
624+"collects information about nearby cell towers and Wi-Fi hotspots around your "
625+"current location whenever your position is being found."
603msgstr ""
626msgstr ""
604−"Si seleccioneu aquesta opció, accepteu <a href='#'>les condicions generals "
605−"del servei Nokia HERE</a>."
606
627
607−#: qml/Wizard/Pages/50-location.qml:112
628+#: qml/Wizard/Pages/here-terms.qml:93
608−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."
609−msgstr "No"
632+msgstr ""
610
633
611−#: qml/Wizard/Pages/50-location.qml:124
634+#: qml/Wizard/Pages/here-terms.qml:106
612−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."
613msgstr ""
637msgstr ""
614−"Podeu canviar-ho més endavant a l'aplicació <b>Paràmetres del sistema</b>"
615
638
616−#: qml/Wizard/Pages/60-reporting.qml:26
639+#: qml/Wizard/Pages/here-terms.qml:107
617−msgid "Improving your experience"
640+msgid "Service Terms"
618−msgstr "Millora de l'experiència"
641+msgstr ""
619
642
620−#: qml/Wizard/Pages/60-reporting.qml:46
643+#: qml/Wizard/Pages/passcode-confirm.qml:43
644+#: qml/Wizard/Pages/passcode-desktop.qml:80
621−msgid ""
645+msgid "Confirm passcode"
622−"Your phone is set up to automatically report errors to Canonical and its "
646+msgstr "Confirmeu el codi d'accés"
623−"partners, the makers of the operating system."
647+
648+#: qml/Wizard/Pages/passcode-confirm.qml:45
649+msgid "Incorrect passcode."
624msgstr ""
650msgstr ""
625−"Aquest telèfon està configurat per enviar errors de manera automàtica a "
626−"Canonical i associats, els creadors del sistema operatiu."
627
651
628−#: qml/Wizard/Pages/60-reporting.qml:53
652+#: qml/Wizard/Pages/passcode-confirm.qml:45
653+msgctxt "Enter the passcode again"
629−msgid ""
654+msgid "Please re-enter."
630−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
631−"Privacy</b>"
632msgstr ""
655msgstr ""
633−"Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
634−"<b>Seguretat i privadesa</b>"
635
656
636−#: qml/Wizard/Pages/80-finished.qml:24
657+#: qml/Wizard/Pages/passcode-desktop.qml:30
637−msgid "All done"
658+msgid "Lock Screen Passcode"
638−msgstr "Tot fet"
659+msgstr ""
639
660
640−#: qml/Wizard/Pages/80-finished.qml:39
661+#: qml/Wizard/Pages/passcode-desktop.qml:56
641−msgid "Nice work!"
662+msgid "Enter 4 numbers to setup your passcode"
642−msgstr "Bona feina!"
663+msgstr ""
643
664
644−#: qml/Wizard/Pages/80-finished.qml:46
665+#: qml/Wizard/Pages/passcode-desktop.qml:65
645−msgid "Your device is now ready to use."
666+#: qml/Wizard/Pages/passcode-set.qml:54
667+msgid "Choose passcode"
646msgstr ""
668msgstr ""
647
669
648−#: qml/Wizard/Pages/80-finished.qml:53
670+#: qml/Wizard/Pages/passcode-desktop.qml:105
649−msgid "Finish"
671+msgid "Passcode too short"
650−msgstr "Finalitza"
672+msgstr ""
651
673
652−#: qml/Wizard/Pages/here-terms.qml:27
674+#: qml/Wizard/Pages/passcode-desktop.qml:107
653−msgid "Terms & Conditions"
675+msgid "Passcodes match"
654−msgstr "Condicions generals"
676+msgstr ""
655
677
656−#: qml/Wizard/Pages/passwd-confirm.qml:49
678+#: qml/Wizard/Pages/passcode-desktop.qml:109
657−msgid "Confirm passphrase"
679+msgid "Passcodes do not match"
658−msgstr "Confirmeu la contrasenya"
680+msgstr ""
659
681
660−#: qml/Wizard/Pages/passwd-confirm.qml:50
682+#: qml/Wizard/Pages/passcode-set.qml:62
661−msgid "Confirm passcode"
683+msgid "Passcode must be 4 characters long"
662−msgstr "Confirmeu el codi d'accés"
684+msgstr ""
663
685
664−#: qml/Wizard/Pages/passwd-confirm.qml:53
686+#: qml/Wizard/Pages/password-set.qml:30
665−#: qml/Wizard/Pages/passwd-confirm.qml:54
687+msgid "Lock Screen Password"
666−msgid "Please try again."
667−msgstr "Torneu-ho a intentar."
688+msgstr ""
668
689
669−#: qml/Wizard/Pages/passwd-set.qml:61
690+#: qml/Wizard/Pages/password-set.qml:61
670−msgid "Choose your passcode"
691+msgid "Enter at least 8 characters"
671−msgstr "Trieu el codi d'accés"
692+msgstr ""
672
693
673−#: qml/Wizard/Pages/passwd-set.qml:68
694+#: qml/Wizard/Pages/password-set.qml:73
674−msgid "Passphrase must be 4 characters long"
695+msgid "Choose password"
675−msgstr "La contrasenya ha de tenir 4 caràcters com a mínim"
696+msgstr ""
676
697
677−#. Translators: This is the arrow for "Back" buttons
698+#: qml/Wizard/Pages/password-set.qml:103
678−#: qml/Wizard/StackButton.qml:39
699+msgid "Confirm password"
679−#, qt-format
680−msgid "〈 %1"
681−msgstr "〈 %1"
700+msgstr ""
682
701
683−#. 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+
684−#: qml/Wizard/StackButton.qml:42
718+#: qml/Wizard/Pages/sim.qml:78
685−#, qt-format
719+msgid "You won’t be able to make calls or use text messaging without a SIM."
686−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"
687−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 ""
688
749
689#~ msgid "Confirm"
750#~ msgid "Confirm"
690#~ msgstr "Confirma"
751#~ msgstr "Confirma"
@@ -747,12 +808,18 @@ msgstr "%1 〉"
747#~ "Ja heu après com utilitzar els gestos de les vores per fer servir el "
808#~ "Ja heu après com utilitzar els gestos de les vores per fer servir el "
748#~ "telèfon<br><br>Feu un toc a la pantalla per començar"
809#~ "telèfon<br><br>Feu un toc a la pantalla per començar"
749
810
811+#~ msgid "Unlock SIM"
812+#~ msgstr "Desbloca la SIM"
813+
750#~ msgid "Store"
814#~ msgid "Store"
751#~ msgstr "Botiga"
815#~ msgstr "Botiga"
752
816
753#~ msgid "Done"
817#~ msgid "Done"
754#~ msgstr "Fet"
818#~ msgstr "Fet"
755
819
820+#~ msgid "Roaming"
821+#~ msgstr "Itinerància"
822+
756#~ msgid "Favorites"
823#~ msgid "Favorites"
757#~ msgstr "Preferides"
824#~ msgstr "Preferides"
758
825
@@ -774,27 +841,200 @@ msgstr "%1 〉"
774#~ msgid "Power off"
841#~ msgid "Power off"
775#~ msgstr "Apaga"
842#~ msgstr "Apaga"
776
843
844+#~ msgid "Are you sure you want to shut down?"
845+#~ msgstr "Segur que voleu apagar?"
846+
777#~ msgid "Shut down"
847#~ msgid "Shut down"
778#~ msgstr "Apaga"
848#~ msgstr "Apaga"
779
849
780−#~ msgid "Restart"
781−#~ msgstr "Reinicia"
782−
783#~ msgid "Please re-enter"
850#~ msgid "Please re-enter"
784#~ msgstr "Torneu-ho a introduir"
851#~ msgstr "Torneu-ho a introduir"
785
852
786#~ msgid "Manage Scopes"
853#~ msgid "Manage Scopes"
787#~ msgstr "Gestioneu les lents"
854#~ msgstr "Gestioneu les lents"
788
855
856+#~ msgid "Add a SIM card and restart your device"
857+#~ msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
858+
859+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
860+#~ msgstr "Sense ella, no podreu fer trucades o enviar missatges de text."
861+
862+#~ msgid "Hi!"
863+#~ msgstr "Hola!"
864+
789#~ msgid "Welcome to your Ubuntu phone."
865#~ msgid "Welcome to your Ubuntu phone."
790#~ msgstr "Us donem la benvinguda al vostre telèfon Ubuntu."
866#~ msgstr "Us donem la benvinguda al vostre telèfon Ubuntu."
791
867
868+#~ msgid "Let’s get started."
869+#~ msgstr "Comencem."
870+
871+#~ msgid "Continue"
872+#~ msgstr "Continua"
873+
874+#~ msgid "Lock security"
875+#~ msgstr "Seguretat del bloqueig"
876+
792#~ msgid "Please select how you’d like to unlock your phone."
877#~ msgid "Please select how you’d like to unlock your phone."
793#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
878#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
794
879
880+#~ msgid "Improving your experience"
881+#~ msgstr "Millora de l'experiència"
882+
883+#~ msgid "Available networks…"
884+#~ msgstr "Xarxes disponibles..."
885+
886+#~ msgid "No available networks."
887+#~ msgstr "No hi ha xarxes disponibles"
888+
889+#~ msgid "Location"
890+#~ msgstr "Ubicació"
891+
892+#~ msgid ""
893+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
894+#~ "Privacy</b>"
895+#~ msgstr ""
896+#~ "Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
897+#~ "<b>Seguretat i privadesa</b>"
898+
899+#~ msgid ""
900+#~ "Your phone is set up to automatically report errors to Canonical and its "
901+#~ "partners, the makers of the operating system."
902+#~ msgstr ""
903+#~ "Aquest telèfon està configurat per enviar errors de manera automàtica a "
904+#~ "Canonical i associats, els creadors del sistema operatiu."
905+
906+#~ msgid "Finish"
907+#~ msgstr "Finalitza"
908+
795#~ msgid "Your phone is now ready to use."
909#~ msgid "Your phone is now ready to use."
796#~ msgstr "Ja podeu utilitzar el vostre telèfon."
910#~ msgstr "Ja podeu utilitzar el vostre telèfon."
797
911
912+#~ msgid "Confirm passphrase"
913+#~ msgstr "Confirmeu la contrasenya"
914+
915+#~ msgid "Please try again."
916+#~ msgstr "Torneu-ho a intentar."
917+
918+#~ msgid "Nice work!"
919+#~ msgstr "Bona feina!"
920+
921+#~ msgid "All done"
922+#~ msgstr "Tot fet"
923+
924+#~ msgid "Choose your passcode"
925+#~ msgstr "Trieu el codi d'accés"
926+
927+#, qt-format
928+#~ msgid "%1 〉"
929+#~ msgstr "%1 〉"
930+
931+#~ msgid "Passphrase must be 4 characters long"
932+#~ msgstr "La contrasenya ha de tenir 4 caràcters com a mínim"
933+
934+#, qt-format
935+#~ msgid "〈 %1"
936+#~ msgstr "〈 %1"
937+
938+#~ msgid "Let the phone detect your location:"
939+#~ msgstr "Fes que el telèfon detecti la meva ubicació:"
940+
941+#~ msgid "Using GPS only (less accurate)"
942+#~ msgstr "Utilitza només el GPS (menys precís)"
943+
944+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
945+#~ msgstr ""
946+#~ "Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
947+#~ "(recomanat)"
948+
949+#~ msgid "You can change your mind later in <b>System Settings</b>."
950+#~ msgstr ""
951+#~ "Podeu canviar-ho més endavant a l'aplicació <b>Paràmetres del sistema</b>"
952+
953+#~ msgid ""
954+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
955+#~ "conditions</a>."
956+#~ msgstr ""
957+#~ "Si seleccioneu aquesta opció, accepteu <a href='#'>les condicions generals "
958+#~ "del servei Nokia HERE</a>."
959+
960+#~ msgid "Not at all"
961+#~ msgstr "No"
962+
963+#~ msgid "You almost got it!"
964+#~ msgstr "Ja gairebé ho teniu!"
965+
966+#~ msgid "Open the launcher"
967+#~ msgstr "Obre el llançador"
968+
969+#~ msgid "Tap here to continue."
970+#~ msgstr "Feu un toc per continuar."
971+
972+#~ msgid "Open special menus"
973+#~ msgstr "Obre els menús especials"
974+
975+#~ msgid "To view open apps"
976+#~ msgstr "Per veure les aplicacions obertes"
977+
978+#~ msgid "Long swipe from the right edge."
979+#~ msgstr "Lliscament llarg des de la vora dreta."
980+
981+#~ msgid "View all your running tasks."
982+#~ msgstr "Mostra totes les tasques en execució."
983+
984+#~ msgid "This action does different things for different apps"
985+#~ msgstr "Aquesta acció fa coses diferents depenent de l'aplicació"
986+
987+#~ msgid "Try again."
988+#~ msgstr "Torneu-ho a provar."
989+
990+#~ msgid "Short swipe from the left edge."
991+#~ msgstr "Lliscament curt des de la vora esquerra."
992+
993+#~ msgid "These are the shortcuts to favorite apps"
994+#~ msgstr "Aquestes són les dreceres a les aplicacions preferides"
995+
996+#~ msgid "Swipe up from the bottom edge."
997+#~ msgstr "Llisqueu el dit des de la vora inferior."
998+
999+#~ msgid "Tap here to finish."
1000+#~ msgstr "Feu un toc per finalitzar."
1001+
1002+#~ msgctxt "Label: Description of security method"
1003+#~ msgid "4 digits only"
1004+#~ msgstr "Només 4 dígits"
1005+
1006+#~ msgctxt "Button: Shut down the system"
1007+#~ msgid "Shut down"
1008+#~ msgstr "Apaga"
1009+
1010+#~ msgctxt "Title: Reboot/Shut down dialog"
1011+#~ msgid "Shut down"
1012+#~ msgstr "Apaga"
1013+
1014+#~ msgctxt "Button: Reboot the system"
1015+#~ msgid "Reboot"
1016+#~ msgstr "Reinicia"
1017+
1018+#~ msgctxt "Label: Type of security method"
1019+#~ msgid "Swipe"
1020+#~ msgstr "Lliscament amb el dit"
1021+
1022+#~ msgctxt "Label: Type of security method"
1023+#~ msgid "Passcode"
1024+#~ msgstr "Codi d'accés"
1025+
1026+#~ msgctxt "Label: Description of security method"
1027+#~ msgid "No security"
1028+#~ msgstr "Sense seguretat"
1029+
1030+#~ msgctxt "Label: Type of security method"
1031+#~ msgid "Passphrase"
1032+#~ msgstr "Contrasenya"
1033+
1034+#~ msgctxt "Label: Description of security method"
1035+#~ msgid "Numbers and letters"
1036+#~ msgstr "Números i lletres"
1037+
798#~ msgid "Yesterday %l:%M %p"
1038#~ msgid "Yesterday %l:%M %p"
799#~ msgstr "Ahir %l.%M %p"
1039#~ msgstr "Ahir %l.%M %p"
800
1040
po/ca@valencia.po+403−236
@@ -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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,23 +15,23 @@ 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-02-17 05:43+0000\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:08+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
19+"X-Generator: Launchpad (build 17958)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr "Contrasenya: "
23msgstr "Contrasenya: "
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Apega la drecera"
28msgstr "Apega la drecera"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr "Desenganxa la drecera"
36msgstr "Desenganxa la drecera"
37
37
@@ -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:219
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:183
118msgid "Yes"
100msgid "Yes"
119msgstr "Sí"
101msgstr "Sí"
120
102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:198
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:199
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,25 +113,25 @@ 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:201
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:210
140msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
141msgid "Restart"
123msgid "Restart"
142msgstr ""
124msgstr ""
143
125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145msgid "Return to Call"
127msgid "Return to Call"
146msgstr "Torna a la cridada"
128msgstr "Torna a la cridada"
147
129
148−#: qml/Components/Lockscreen.qml:245
130+#: qml/Components/Lockscreen.qml:231
149msgid "Emergency Call"
131msgid "Emergency Call"
150msgstr "Cridada d'emergència"
132msgstr "Cridada d'emergència"
151
133
152−#: qml/Components/Lockscreen.qml:277
134+#: qml/Components/Lockscreen.qml:263
153msgid "OK"
135msgid "OK"
154msgstr "D'acord"
136msgstr "D'acord"
155
137
@@ -158,6 +140,8 @@ msgid "Apps may have unsaved data:"
158msgstr ""
140msgstr ""
159
141
160#: qml/Components/ModeSwitchWarningDialog.qml:57
142#: qml/Components/ModeSwitchWarningDialog.qml:57
143+msgctxt ""
144+"Re-dock means connect the device again to an external screen/mouse/keyboard"
161msgid "Re-dock, save your work and close these apps to continue."
145msgid "Re-dock, save your work and close these apps to continue."
162msgstr ""
146msgstr ""
163
147
@@ -177,42 +161,58 @@ msgstr ""
177msgid "Close all"
161msgid "Close all"
178msgstr ""
162msgstr ""
179
163
180−#: qml/Dash/DashPageHeader.qml:266
164+#: qml/Dash/DashPageHeader.qml:337
181msgctxt "Button: Open the Ubuntu Store"
165msgctxt "Button: Open the Ubuntu Store"
182msgid "Store"
166msgid "Store"
183msgstr ""
167msgstr ""
184
168
185−#: qml/Dash/DashPageHeader.qml:273
169+#: qml/Dash/DashPageHeader.qml:344
186msgctxt "Button: Start a search in the current dash scope"
170msgctxt "Button: Start a search in the current dash scope"
187msgid "Search"
171msgid "Search"
188msgstr ""
172msgstr ""
189
173
190−#: qml/Dash/DashPageHeader.qml:283
174+#: qml/Dash/DashPageHeader.qml:354
191msgctxt "Button: Show the current dash scope settings"
175msgctxt "Button: Show the current dash scope settings"
192msgid "Settings"
176msgid "Settings"
193msgstr ""
177msgstr ""
194
178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196msgid "Remove from Favorites"
180msgid "Remove from Favorites"
197msgstr "Suprimeix dels preferits"
181msgstr "Suprimeix dels preferits"
198
182
199−#: qml/Dash/DashPageHeader.qml:290
183+#: qml/Dash/DashPageHeader.qml:361
200msgid "Add to Favorites"
184msgid "Add to Favorites"
201msgstr "Afig als preferits"
185msgstr "Afig als preferits"
202
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+
203−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
195+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
204msgid "See less"
196msgid "See less"
205msgstr "Mostra'n menys"
197msgstr "Mostra'n menys"
206
198
207−#: qml/Dash/GenericScopeView.qml:587
199+#: qml/Dash/GenericScopeView.qml:570
208msgid "See all"
200msgid "See all"
209msgstr "Mostra-ho tot"
201msgstr "Mostra-ho tot"
210
202
211−#: qml/Dash/GenericScopeView.qml:649
203+#: qml/Dash/GenericScopeView.qml:627
212msgctxt "Label: Hint for dash search line edit"
204msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
205msgid "Search"
214msgstr ""
206msgstr ""
215
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+
216#: qml/Dash/Previews/PreviewActionCombo.qml:35
216#: qml/Dash/Previews/PreviewActionCombo.qml:35
217msgid "More..."
217msgid "More..."
218msgstr "Més..."
218msgstr "Més..."
@@ -234,7 +234,7 @@ msgstr "Puntueu-ho"
234msgid "Add a review"
234msgid "Add a review"
235msgstr "Afegiu una ressenya"
235msgstr "Afegiu una ressenya"
236
236
237−#: qml/Dash/Previews/PreviewSharing.qml:50
237+#: qml/Dash/Previews/PreviewSharing.qml:66
238msgid "Preview Share Item"
238msgid "Preview Share Item"
239msgstr ""
239msgstr ""
240
240
@@ -262,13 +262,13 @@ msgstr "Inici"
262msgid "Also installed"
262msgid "Also installed"
263msgstr "També instal·lat"
263msgstr "També instal·lat"
264
264
265−#: qml/DisabledScreenNotice.qml:87
265+#: qml/DisabledScreenNotice.qml:104
266msgid ""
266msgid ""
267"Your device is now connected to an external display. Use this screen as a "
267"Your device is now connected to an external display. Use this screen as a "
268−"touch pad to interact with the mouse."
268+"touch pad to interact with the pointer."
269msgstr ""
269msgstr ""
270
270
271−#: qml/Greeter/CoverPage.qml:107
271+#: qml/Greeter/CoverPage.qml:118
272msgid "Unlock"
272msgid "Unlock"
273msgstr "Desbloca"
273msgstr "Desbloca"
274
274
@@ -280,11 +280,11 @@ msgstr ""
280msgid "Tap to unlock"
280msgid "Tap to unlock"
281msgstr ""
281msgstr ""
282
282
283−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
283+#: qml/Greeter/NarrowView.qml:54
284msgid "Sorry, incorrect passphrase."
284msgid "Sorry, incorrect passphrase."
285msgstr "La contrasenya és incorrecta"
285msgstr "La contrasenya és incorrecta"
286
286
287−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
287+#: qml/Greeter/NarrowView.qml:55
288msgid "Sorry, incorrect passcode."
288msgid "Sorry, incorrect passcode."
289msgstr "El codi d'accés no és correcte"
289msgstr "El codi d'accés no és correcte"
290
290
@@ -315,7 +315,7 @@ msgstr ""
315msgid "Enter %1"
315msgid "Enter %1"
316msgstr "Introduïu: %1"
316msgstr "Introduïu: %1"
317
317
318−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
318+#: qml/Greeter/NarrowView.qml:117
319msgid "Enter passphrase"
319msgid "Enter passphrase"
320msgstr "Introduïu la contrasenya"
320msgstr "Introduïu la contrasenya"
321
321
@@ -353,62 +353,62 @@ msgstr "Feu un toc per tornar a la cridada..."
353msgid "Conference"
353msgid "Conference"
354msgstr "Conferència"
354msgstr "Conferència"
355
355
356−#: qml/Panel/Indicators/MenuItemFactory.qml:753
356+#: qml/Panel/Indicators/MenuItemFactory.qml:761
357msgid "Nothing is playing"
357msgid "Nothing is playing"
358msgstr "No s'està reproduint res"
358msgstr "No s'està reproduint res"
359
359
360−#: qml/Panel/Indicators/MenuItemFactory.qml:882
360+#: qml/Panel/Indicators/MenuItemFactory.qml:890
361#, qt-format
361#, qt-format
362msgid "%1 hour"
362msgid "%1 hour"
363msgid_plural "%1 hours"
363msgid_plural "%1 hours"
364msgstr[0] ""
364msgstr[0] ""
365msgstr[1] ""
365msgstr[1] ""
366
366
367−#: qml/Panel/Indicators/MenuItemFactory.qml:886
367+#: qml/Panel/Indicators/MenuItemFactory.qml:894
368#, qt-format
368#, qt-format
369msgid "%1 minute"
369msgid "%1 minute"
370msgid_plural "%1 minutes"
370msgid_plural "%1 minutes"
371msgstr[0] ""
371msgstr[0] ""
372msgstr[1] ""
372msgstr[1] ""
373
373
374−#: qml/Panel/Indicators/MenuItemFactory.qml:891
374+#: qml/Panel/Indicators/MenuItemFactory.qml:899
375#, qt-format
375#, qt-format
376msgid "%1 second"
376msgid "%1 second"
377msgid_plural "%1 seconds"
377msgid_plural "%1 seconds"
378msgstr[0] ""
378msgstr[0] ""
379msgstr[1] ""
379msgstr[1] ""
380
380
381−#: qml/Panel/Indicators/MenuItemFactory.qml:894
381+#: qml/Panel/Indicators/MenuItemFactory.qml:902
382msgid "0 seconds"
382msgid "0 seconds"
383msgstr ""
383msgstr ""
384
384
385#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
385#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
386−#: qml/Panel/Indicators/MenuItemFactory.qml:896
386+#: qml/Panel/Indicators/MenuItemFactory.qml:904
387#, qt-format
387#, qt-format
388msgid "%1 remaining"
388msgid "%1 remaining"
389msgstr ""
389msgstr ""
390
390
391−#: qml/Panel/Indicators/MenuItemFactory.qml:902
391+#: qml/Panel/Indicators/MenuItemFactory.qml:910
392msgid "In queue…"
392msgid "In queue…"
393msgstr "A la cua..."
393msgstr "A la cua..."
394
394
395−#: qml/Panel/Indicators/MenuItemFactory.qml:906
395+#: qml/Panel/Indicators/MenuItemFactory.qml:914
396msgid "Downloading"
396msgid "Downloading"
397msgstr "S'està baixant"
397msgstr "S'està baixant"
398
398
399−#: qml/Panel/Indicators/MenuItemFactory.qml:908
399+#: qml/Panel/Indicators/MenuItemFactory.qml:916
400msgid "Paused, tap to resume"
400msgid "Paused, tap to resume"
401msgstr "En pausa, feu un toc per continuar"
401msgstr "En pausa, feu un toc per continuar"
402
402
403−#: qml/Panel/Indicators/MenuItemFactory.qml:910
403+#: qml/Panel/Indicators/MenuItemFactory.qml:918
404msgid "Canceled"
404msgid "Canceled"
405msgstr "S'ha cancel·lat"
405msgstr "S'ha cancel·lat"
406
406
407−#: qml/Panel/Indicators/MenuItemFactory.qml:912
407+#: qml/Panel/Indicators/MenuItemFactory.qml:920
408msgid "Finished"
408msgid "Finished"
409msgstr "S'ha finalitzat"
409msgstr "S'ha finalitzat"
410
410
411−#: qml/Panel/Indicators/MenuItemFactory.qml:914
411+#: qml/Panel/Indicators/MenuItemFactory.qml:922
412msgid "Failed, tap to retry"
412msgid "Failed, tap to retry"
413msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
413msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
414
414
@@ -428,261 +428,324 @@ msgctxt "Button: Call back on phone"
428msgid "Call back"
428msgid "Call back"
429msgstr ""
429msgstr ""
430
430
431−#: qml/Panel/Indicators/ModemInfoItem.qml:105
431+#: qml/Stages/SideStage.qml:76
432−msgid "Unlock SIM"
432+msgid "Drag using 3 fingers any application from one window to the other"
433−msgstr "Desbloca la SIM"
434−
435−#: qml/Panel/Indicators/RoamingIndication.qml:27
436−msgid "Roaming"
437−msgstr "Itinerància"
438−
439−#: qml/Tutorial/TutorialBottom.qml:28
440−msgid "Open special menus"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialBottom.qml:29
444−msgid "Swipe up from the bottom edge."
445msgstr ""
433msgstr ""
446
434
447−#: qml/Tutorial/TutorialBottomFinish.qml:24
435+#: qml/Tutorial/TutorialBottom.qml:78
448−msgid "This action does different things for different apps"
436+msgid "Swipe up to add a contact"
449msgstr ""
437msgstr ""
450
438
451−#: qml/Tutorial/TutorialBottomFinish.qml:25
439+#: qml/Tutorial/TutorialBottom.qml:80
452−msgid "Tap here to finish."
440+msgid "Swipe up for favorite calculations"
453msgstr ""
441msgstr ""
454
442
455−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
443+#: qml/Tutorial/TutorialBottom.qml:82
456−#: qml/Tutorial/TutorialRight.qml:144
444+msgid "Swipe up for recent calls"
457−msgid "Tap here to continue."
458msgstr ""
445msgstr ""
459
446
460−#: qml/Tutorial/TutorialLeft.qml:26
447+#: qml/Tutorial/TutorialBottom.qml:84
461−msgid "Open the launcher"
448+msgid "Swipe up to create a message"
462msgstr ""
449msgstr ""
463
450
464−#: qml/Tutorial/TutorialLeft.qml:27
451+#: qml/Tutorial/TutorialBottom.qml:85
465−msgid "Short swipe from the left edge."
452+msgid "Swipe up to manage the app"
466msgstr ""
453msgstr ""
467
454
468−#: qml/Tutorial/TutorialLeftFinish.qml:24
455+#: qml/Tutorial/TutorialLeft.qml:47
469−msgid "These are the shortcuts to favorite apps"
456+msgid "Swipe from the left edge to open the launcher"
470msgstr ""
457msgstr ""
471
458
472−#: qml/Tutorial/TutorialPage.qml:178
459+#: qml/Tutorial/TutorialLeftLong.qml:47
473−msgid "You almost got it!"
460+msgid "Long swipe from the left edge to open the Today scope"
474msgstr ""
461msgstr ""
475
462
476−#: qml/Tutorial/TutorialPage.qml:195
463+#: qml/Tutorial/TutorialRight.qml:54
477−msgid "Try again."
464+msgid "Hover your mouse on the right edge to view your open apps"
478msgstr ""
465msgstr ""
479
466
480−#: qml/Tutorial/TutorialRight.qml:31
467+#: qml/Tutorial/TutorialRight.qml:55
481−msgid "To view open apps"
468+msgid "Short or long swipe from the right edge to view your open apps"
482msgstr ""
469msgstr ""
483
470
484−#: qml/Tutorial/TutorialRight.qml:32
471+#: qml/Tutorial/TutorialTop.qml:53
485−msgid "Long swipe from the right edge."
472+msgid "Swipe from the top right edge to open the notification bar"
486msgstr ""
473msgstr ""
487
474
488−#: qml/Tutorial/TutorialRight.qml:122
475+#: qml/Tutorial/TutorialTop.qml:54
489−msgid "View all your running tasks."
476+msgid "Swipe from the top edge to open the notification bar"
490msgstr ""
477msgstr ""
491
478
492−#: qml/Wizard/Page.qml:89
479+#: qml/Wizard/Page.qml:54
493msgctxt "Button: Go back one page in the Wizard"
480msgctxt "Button: Go back one page in the Wizard"
494msgid "Back"
481msgid "Back"
495msgstr ""
482msgstr ""
496
483
497#: qml/Wizard/Pages/10-welcome.qml:27
484#: qml/Wizard/Pages/10-welcome.qml:27
498−msgid "Hi!"
485+msgid "Language"
499−msgstr "Hola!"
486+msgstr ""
500
487
501−#: qml/Wizard/Pages/10-welcome.qml:44
488+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
502−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"
503msgstr ""
495msgstr ""
504
496
505−#: qml/Wizard/Pages/10-welcome.qml:52
497+#: qml/Wizard/Pages/30-wifi.qml:29
506−msgid "Let’s get started."
498+msgid "Connect to Wi‑Fi"
507−msgstr "Comencem."
499+msgstr "Connecta't a la Wi-Fi"
508
500
509−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
501+#: qml/Wizard/Pages/30-wifi.qml:130
510−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
502+msgid "Connected"
511−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
512−#: qml/Wizard/Pages/passwd-set.qml:90
513−msgid "Continue"
514−msgstr "Continua"
503+msgstr ""
515
504
516−#: qml/Wizard/Pages/20-sim.qml:25
505+#: qml/Wizard/Pages/30-wifi.qml:163
517−msgid "Add a SIM card and restart your device"
506+msgid "Available Wi-Fi networks"
518−msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
507+msgstr ""
519
508
520−#: qml/Wizard/Pages/20-sim.qml:59
509+#: qml/Wizard/Pages/30-wifi.qml:164
521−msgid "Without it, you won’t be able to make calls or use text messaging."
510+msgid "No available Wi-Fi networks"
522−msgstr "Sense ella, no podreu fer cridades o enviar missatges de text."
511+msgstr ""
523
512
524−#: 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
525msgid "Skip"
515msgid "Skip"
526msgstr "Omet"
516msgstr "Omet"
527
517
528−#: qml/Wizard/Pages/30-passwd-type.qml:39
518+#: qml/Wizard/Pages/40-location.qml:27
529−msgid "Lock security"
519+msgid "Location Services"
530−msgstr "Seguretat del bloqueig"
520+msgstr ""
521+
522+#: qml/Wizard/Pages/40-location.qml:83
523+msgid ""
524+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
525+"(recommended)"
526+msgstr ""
531
527
532−#: qml/Wizard/Pages/30-passwd-type.qml:79
528+#: qml/Wizard/Pages/40-location.qml:105
533−msgid "Please select how you’d like to unlock your device."
529+#, qt-format
530+msgid "By selecting this option you agree to the Nokia HERE %1."
534msgstr ""
531msgstr ""
535
532
536−#: qml/Wizard/Pages/30-passwd-type.qml:102
533+#: qml/Wizard/Pages/40-location.qml:106
537−msgctxt "Label: Type of security method"
534+msgctxt "part of: Nokia HERE terms and conditions"
538−msgid "Swipe"
535+msgid "terms and conditions"
536+msgstr ""
537+
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."
539msgstr ""
548msgstr ""
540
549
541−#: qml/Wizard/Pages/30-passwd-type.qml:103
550+#: qml/Wizard/Pages/50-timezone.qml:29
542−msgctxt "Label: Description of security method"
551+msgid "Time Zone"
543−msgid "No security"
544msgstr ""
552msgstr ""
545
553
546−#: qml/Wizard/Pages/30-passwd-type.qml:105
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
547msgctxt "Label: Type of security method"
571msgctxt "Label: Type of security method"
548−msgid "Passcode"
572+msgid "Create new password"
549msgstr ""
573msgstr ""
550
574
551−#: qml/Wizard/Pages/30-passwd-type.qml:106
575+#: qml/Wizard/Pages/70-passwd-type.qml:103
552−msgctxt "Label: Description of security method"
576+msgctxt "Label: Type of security method"
553−msgid "4 digits only"
577+msgid "Create passcode (numbers only)"
554msgstr ""
578msgstr ""
555
579
556−#: qml/Wizard/Pages/30-passwd-type.qml:108
580+#: qml/Wizard/Pages/70-passwd-type.qml:105
557msgctxt "Label: Type of security method"
581msgctxt "Label: Type of security method"
558−msgid "Passphrase"
582+msgid "No lock code"
559msgstr ""
583msgstr ""
560
584
561−#: qml/Wizard/Pages/30-passwd-type.qml:109
585+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
562−msgctxt "Label: Description of security method"
586+msgid "Privacy Policy"
563−msgid "Numbers and letters"
564msgstr ""
587msgstr ""
565
588
566−#: qml/Wizard/Pages/40-wifi.qml:29
589+#: qml/Wizard/Pages/75-report-check.qml:26
567−msgid "Connect to Wi‑Fi"
590+msgid "Help Us Improve"
568−msgstr "Connecta't a la Wi-Fi"
591+msgstr ""
592+
593+#: qml/Wizard/Pages/75-report-check.qml:59
594+msgid "Improve system performance by sending us crashes and error reports."
595+msgstr ""
596+
597+#: qml/Wizard/Pages/75-report-check.qml:60
598+msgid "Privacy policy"
599+msgstr ""
569
600
570−#: qml/Wizard/Pages/40-wifi.qml:168
601+#: qml/Wizard/Pages/80-finished.qml:89
571−msgid "Available networks…"
602+msgid "Welcome to Ubuntu"
572−msgstr "Xarxes disponibles..."
603+msgstr ""
573
604
574−#: qml/Wizard/Pages/40-wifi.qml:169
605+#: qml/Wizard/Pages/80-finished.qml:104
575−msgid "No available networks."
606+msgid "You are ready to use your device now"
576−msgstr "No hi ha xarxes disponibles"
607+msgstr ""
577
608
578−#: qml/Wizard/Pages/50-location.qml:27
609+#: qml/Wizard/Pages/80-finished.qml:124
579−msgid "Location"
610+msgid "Get Started"
580−msgstr "Ubicació"
611+msgstr ""
581
612
582−#: qml/Wizard/Pages/50-location.qml:62
613+#: qml/Wizard/Pages/here-terms.qml:25
583−msgid "Let the phone detect your location:"
614+msgid "Terms & Conditions"
584−msgstr "Fes que el telèfon detecti la meua ubicació:"
615+msgstr "Condicions generals"
585
616
586−#: qml/Wizard/Pages/50-location.qml:69
617+#: qml/Wizard/Pages/here-terms.qml:69
587−msgid "Using GPS only (less accurate)"
618+msgid "Your device uses positioning technologies provided by HERE."
588−msgstr "Utilitza només el GPS (menys precís)"
619+msgstr ""
589
620
590−#: qml/Wizard/Pages/50-location.qml:86
621+#: qml/Wizard/Pages/here-terms.qml:81
591−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
622+msgid ""
623+"To provide you with positioning services and to improve their quality, HERE "
624+"collects information about nearby cell towers and Wi-Fi hotspots around your "
625+"current location whenever your position is being found."
592msgstr ""
626msgstr ""
593−"Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
594−"(recomanat)"
595
627
596−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
597−#: qml/Wizard/Pages/50-location.qml:103
628+#: qml/Wizard/Pages/here-terms.qml:93
598msgid ""
629msgid ""
599−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
630+"The information collected is used to analyze the service and to improve the "
600−"conditions</a>."
631+"use of service, but not to identify you personally."
601msgstr ""
632msgstr ""
602−"Si seleccioneu esta opció, accepteu <a href='#'>les condicions generals del "
603−"servei Nokia HERE</a>."
604
633
605−#: qml/Wizard/Pages/50-location.qml:112
634+#: qml/Wizard/Pages/here-terms.qml:106
606−msgid "Not at all"
635+#, qt-format
636+msgid "By continuing, you agree to the HERE platform %1 and %2."
607−msgstr "No"
637+msgstr ""
608
638
609−#: qml/Wizard/Pages/50-location.qml:124
639+#: qml/Wizard/Pages/here-terms.qml:107
610−msgid "You can change your mind later in <b>System Settings</b>."
640+msgid "Service Terms"
611msgstr ""
641msgstr ""
612−"Podeu canviar-ho més avant a l'aplicació <b>Paràmetres del sistema</b>"
613
642
614−#: qml/Wizard/Pages/60-reporting.qml:26
643+#: qml/Wizard/Pages/passcode-confirm.qml:43
615−msgid "Improving your experience"
644+#: qml/Wizard/Pages/passcode-desktop.qml:80
616−msgstr "Millora de l'experiència"
645+msgid "Confirm passcode"
646+msgstr "Confirmeu el codi d'accés"
617
647
618−#: qml/Wizard/Pages/60-reporting.qml:46
648+#: qml/Wizard/Pages/passcode-confirm.qml:45
619−msgid ""
649+msgid "Incorrect passcode."
620−"Your phone is set up to automatically report errors to Canonical and its "
621−"partners, the makers of the operating system."
622msgstr ""
650msgstr ""
623−"Este telèfon està configurat per enviar errors de manera automàtica a "
624−"Canonical i associats, els creadors del sistema operatiu."
625
651
626−#: qml/Wizard/Pages/60-reporting.qml:53
652+#: qml/Wizard/Pages/passcode-confirm.qml:45
653+msgctxt "Enter the passcode again"
627−msgid ""
654+msgid "Please re-enter."
628−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
629−"Privacy</b>"
630msgstr ""
655msgstr ""
631−"Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
632−"<b>Seguretat i privadesa</b>"
633
656
634−#: qml/Wizard/Pages/80-finished.qml:24
657+#: qml/Wizard/Pages/passcode-desktop.qml:30
635−msgid "All done"
658+msgid "Lock Screen Passcode"
636−msgstr "Tot fet"
659+msgstr ""
637
660
638−#: qml/Wizard/Pages/80-finished.qml:39
661+#: qml/Wizard/Pages/passcode-desktop.qml:56
639−msgid "Nice work!"
662+msgid "Enter 4 numbers to setup your passcode"
640−msgstr "Bona faena!"
663+msgstr ""
641
664
642−#: qml/Wizard/Pages/80-finished.qml:46
665+#: qml/Wizard/Pages/passcode-desktop.qml:65
643−msgid "Your device is now ready to use."
666+#: qml/Wizard/Pages/passcode-set.qml:54
667+msgid "Choose passcode"
644msgstr ""
668msgstr ""
645
669
646−#: qml/Wizard/Pages/80-finished.qml:53
670+#: qml/Wizard/Pages/passcode-desktop.qml:105
647−msgid "Finish"
671+msgid "Passcode too short"
648−msgstr "Finalitza"
672+msgstr ""
649
673
650−#: qml/Wizard/Pages/here-terms.qml:27
674+#: qml/Wizard/Pages/passcode-desktop.qml:107
651−msgid "Terms & Conditions"
675+msgid "Passcodes match"
652−msgstr "Condicions generals"
676+msgstr ""
653
677
654−#: qml/Wizard/Pages/passwd-confirm.qml:49
678+#: qml/Wizard/Pages/passcode-desktop.qml:109
655−msgid "Confirm passphrase"
679+msgid "Passcodes do not match"
656−msgstr "Confirmeu la contrasenya"
680+msgstr ""
657
681
658−#: qml/Wizard/Pages/passwd-confirm.qml:50
682+#: qml/Wizard/Pages/passcode-set.qml:62
659−msgid "Confirm passcode"
683+msgid "Passcode must be 4 characters long"
660−msgstr "Confirmeu el codi d'accés"
684+msgstr ""
661
685
662−#: qml/Wizard/Pages/passwd-confirm.qml:53
686+#: qml/Wizard/Pages/password-set.qml:30
663−#: qml/Wizard/Pages/passwd-confirm.qml:54
687+msgid "Lock Screen Password"
664−msgid "Please try again."
665−msgstr "Torneu-ho a intentar."
688+msgstr ""
666
689
667−#: qml/Wizard/Pages/passwd-set.qml:61
690+#: qml/Wizard/Pages/password-set.qml:61
668−msgid "Choose your passcode"
691+msgid "Enter at least 8 characters"
669−msgstr "Trieu el codi d'accés"
692+msgstr ""
670
693
671−#: qml/Wizard/Pages/passwd-set.qml:68
694+#: qml/Wizard/Pages/password-set.qml:73
672−msgid "Passphrase must be 4 characters long"
695+msgid "Choose password"
673−msgstr "La contrasenya ha de tindre 4 caràcters com a mínim"
696+msgstr ""
674
697
675−#. Translators: This is the arrow for "Back" buttons
698+#: qml/Wizard/Pages/password-set.qml:103
676−#: qml/Wizard/StackButton.qml:39
699+msgid "Confirm password"
677−#, qt-format
678−msgid "〈 %1"
679−msgstr "〈 %1"
700+msgstr ""
680
701
681−#. 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+
682−#: qml/Wizard/StackButton.qml:42
718+#: qml/Wizard/Pages/sim.qml:78
683−#, qt-format
719+msgid "You won’t be able to make calls or use text messaging without a SIM."
684−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"
685−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 ""
686
749
687#~ msgid "Log out"
750#~ msgid "Log out"
688#~ msgstr "Ix"
751#~ msgstr "Ix"
@@ -690,6 +753,9 @@ msgstr "%1 〉"
690#~ msgid "Shut down"
753#~ msgid "Shut down"
691#~ msgstr "Apaga"
754#~ msgstr "Apaga"
692
755
756+#~ msgid "Are you sure you want to shut down?"
757+#~ msgstr "Segur que voleu apagar?"
758+
693#~ msgid "Reboot"
759#~ msgid "Reboot"
694#~ msgstr "Reinicia"
760#~ msgstr "Reinicia"
695
761
@@ -699,9 +765,6 @@ msgstr "%1 〉"
699#~ msgid "Power off"
765#~ msgid "Power off"
700#~ msgstr "Apaga"
766#~ msgstr "Apaga"
701
767
702−#~ msgid "Restart"
703−#~ msgstr "Reinicia"
704−
705#~ msgid "Skip intro"
768#~ msgid "Skip intro"
706#~ msgstr "Omet la introducció"
769#~ msgstr "Omet la introducció"
707
770
@@ -771,18 +834,122 @@ msgstr "%1 〉"
771#~ msgid "Speaking..."
834#~ msgid "Speaking..."
772#~ msgstr "S'està parlant..."
835#~ msgstr "S'està parlant..."
773
836
837+#~ msgid "Unlock SIM"
838+#~ msgstr "Desbloca la SIM"
839+
840+#~ msgid "Roaming"
841+#~ msgstr "Itinerància"
842+
774#~ msgid "Please re-enter"
843#~ msgid "Please re-enter"
775#~ msgstr "Torneu-ho a introduir"
844#~ msgstr "Torneu-ho a introduir"
776
845
846+#~ msgid "Hi!"
847+#~ msgstr "Hola!"
848+
777#~ msgid "Welcome to your Ubuntu phone."
849#~ msgid "Welcome to your Ubuntu phone."
778#~ msgstr "Vos donem la benvinguda al vostre telèfon Ubuntu."
850#~ msgstr "Vos donem la benvinguda al vostre telèfon Ubuntu."
779
851
852+#~ msgid "Let’s get started."
853+#~ msgstr "Comencem."
854+
855+#~ msgid "Continue"
856+#~ msgstr "Continua"
857+
858+#~ msgid "Add a SIM card and restart your device"
859+#~ msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
860+
861+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
862+#~ msgstr "Sense ella, no podreu fer cridades o enviar missatges de text."
863+
864+#~ msgid "Lock security"
865+#~ msgstr "Seguretat del bloqueig"
866+
780#~ msgid "Please select how you’d like to unlock your phone."
867#~ msgid "Please select how you’d like to unlock your phone."
781#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
868#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
782
869
870+#~ msgid "Available networks…"
871+#~ msgstr "Xarxes disponibles..."
872+
873+#~ msgid "No available networks."
874+#~ msgstr "No hi ha xarxes disponibles"
875+
876+#~ msgid "Location"
877+#~ msgstr "Ubicació"
878+
879+#~ msgid "Let the phone detect your location:"
880+#~ msgstr "Fes que el telèfon detecti la meua ubicació:"
881+
882+#~ msgid "Using GPS only (less accurate)"
883+#~ msgstr "Utilitza només el GPS (menys precís)"
884+
885+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
886+#~ msgstr ""
887+#~ "Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
888+#~ "(recomanat)"
889+
890+#~ msgid ""
891+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
892+#~ "conditions</a>."
893+#~ msgstr ""
894+#~ "Si seleccioneu esta opció, accepteu <a href='#'>les condicions generals del "
895+#~ "servei Nokia HERE</a>."
896+
897+#~ msgid "Not at all"
898+#~ msgstr "No"
899+
900+#~ msgid "You can change your mind later in <b>System Settings</b>."
901+#~ msgstr ""
902+#~ "Podeu canviar-ho més avant a l'aplicació <b>Paràmetres del sistema</b>"
903+
904+#~ msgid "Improving your experience"
905+#~ msgstr "Millora de l'experiència"
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+#~ "Este telèfon està configurat per enviar errors de manera automàtica a "
912+#~ "Canonical i associats, els creadors del sistema operatiu."
913+
914+#~ msgid ""
915+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
916+#~ "Privacy</b>"
917+#~ msgstr ""
918+#~ "Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
919+#~ "<b>Seguretat i privadesa</b>"
920+
921+#~ msgid "All done"
922+#~ msgstr "Tot fet"
923+
924+#~ msgid "Nice work!"
925+#~ msgstr "Bona faena!"
926+
783#~ msgid "Your phone is now ready to use."
927#~ msgid "Your phone is now ready to use."
784#~ msgstr "Ja podeu utilitzar el vostre telèfon."
928#~ msgstr "Ja podeu utilitzar el vostre telèfon."
785
929
930+#~ msgid "Finish"
931+#~ msgstr "Finalitza"
932+
933+#~ msgid "Confirm passphrase"
934+#~ msgstr "Confirmeu la contrasenya"
935+
936+#~ msgid "Please try again."
937+#~ msgstr "Torneu-ho a intentar."
938+
939+#~ msgid "Choose your passcode"
940+#~ msgstr "Trieu el codi d'accés"
941+
942+#~ msgid "Passphrase must be 4 characters long"
943+#~ msgstr "La contrasenya ha de tindre 4 caràcters com a mínim"
944+
945+#, qt-format
946+#~ msgid "〈 %1"
947+#~ msgstr "〈 %1"
948+
949+#, qt-format
950+#~ msgid "%1 〉"
951+#~ msgstr "%1 〉"
952+
786#~ msgid "Type or say a command"
953#~ msgid "Type or say a command"
787#~ msgstr "Escriviu o pronuncieu una ordre"
954#~ msgstr "Escriviu o pronuncieu una ordre"
788
955
po/ce.po+269−197
@@ -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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,23 +15,23 @@ 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-02-17 05:43+0000\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
19+"X-Generator: Launchpad (build 17958)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr ""
23msgstr ""
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr ""
28msgstr ""
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr ""
36msgstr ""
37
37
@@ -73,77 +73,59 @@ 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:219
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:183
114msgid "Yes"
96msgid "Yes"
115msgstr ""
97msgstr ""
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
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:199
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:201
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:210
134msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
135msgid "Restart"
117msgid "Restart"
136msgstr ""
118msgstr ""
137
119
138−#: qml/Components/Lockscreen.qml:245
120+#: qml/Components/Lockscreen.qml:231
139msgid "Return to Call"
121msgid "Return to Call"
140msgstr ""
122msgstr ""
141
123
142−#: qml/Components/Lockscreen.qml:245
124+#: qml/Components/Lockscreen.qml:231
143msgid "Emergency Call"
125msgid "Emergency Call"
144msgstr ""
126msgstr ""
145
127
146−#: qml/Components/Lockscreen.qml:277
128+#: qml/Components/Lockscreen.qml:263
147msgid "OK"
129msgid "OK"
148msgstr ""
130msgstr ""
149
131
@@ -152,6 +134,8 @@ msgid "Apps may have unsaved data:"
152msgstr ""
134msgstr ""
153
135
154#: qml/Components/ModeSwitchWarningDialog.qml:57
136#: qml/Components/ModeSwitchWarningDialog.qml:57
137+msgctxt ""
138+"Re-dock means connect the device again to an external screen/mouse/keyboard"
155msgid "Re-dock, save your work and close these apps to continue."
139msgid "Re-dock, save your work and close these apps to continue."
156msgstr ""
140msgstr ""
157
141
@@ -171,42 +155,58 @@ msgstr ""
171msgid "Close all"
155msgid "Close all"
172msgstr ""
156msgstr ""
173
157
174−#: qml/Dash/DashPageHeader.qml:266
158+#: qml/Dash/DashPageHeader.qml:337
175msgctxt "Button: Open the Ubuntu Store"
159msgctxt "Button: Open the Ubuntu Store"
176msgid "Store"
160msgid "Store"
177msgstr ""
161msgstr ""
178
162
179−#: qml/Dash/DashPageHeader.qml:273
163+#: qml/Dash/DashPageHeader.qml:344
180msgctxt "Button: Start a search in the current dash scope"
164msgctxt "Button: Start a search in the current dash scope"
181msgid "Search"
165msgid "Search"
182msgstr ""
166msgstr ""
183
167
184−#: qml/Dash/DashPageHeader.qml:283
168+#: qml/Dash/DashPageHeader.qml:354
185msgctxt "Button: Show the current dash scope settings"
169msgctxt "Button: Show the current dash scope settings"
186msgid "Settings"
170msgid "Settings"
187msgstr ""
171msgstr ""
188
172
189−#: qml/Dash/DashPageHeader.qml:290
173+#: qml/Dash/DashPageHeader.qml:361
190msgid "Remove from Favorites"
174msgid "Remove from Favorites"
191msgstr ""
175msgstr ""
192
176
193−#: qml/Dash/DashPageHeader.qml:290
177+#: qml/Dash/DashPageHeader.qml:361
194msgid "Add to Favorites"
178msgid "Add to Favorites"
195msgstr ""
179msgstr ""
196
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+
197−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
189+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198msgid "See less"
190msgid "See less"
199msgstr ""
191msgstr ""
200
192
201−#: qml/Dash/GenericScopeView.qml:587
193+#: qml/Dash/GenericScopeView.qml:570
202msgid "See all"
194msgid "See all"
203msgstr ""
195msgstr ""
204
196
205−#: qml/Dash/GenericScopeView.qml:649
197+#: qml/Dash/GenericScopeView.qml:627
206msgctxt "Label: Hint for dash search line edit"
198msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
199msgid "Search"
208msgstr ""
200msgstr ""
209
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+
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
211msgid "More..."
211msgid "More..."
212msgstr ""
212msgstr ""
@@ -228,7 +228,7 @@ msgstr ""
228msgid "Add a review"
228msgid "Add a review"
229msgstr ""
229msgstr ""
230
230
231−#: qml/Dash/Previews/PreviewSharing.qml:50
231+#: qml/Dash/Previews/PreviewSharing.qml:66
232msgid "Preview Share Item"
232msgid "Preview Share Item"
233msgstr ""
233msgstr ""
234
234
@@ -256,13 +256,13 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:87
259+#: qml/DisabledScreenNotice.qml:104
260msgid ""
260msgid ""
261"Your device is now connected to an external display. Use this screen as a "
261"Your device is now connected to an external display. Use this screen as a "
262−"touch pad to interact with the mouse."
262+"touch pad to interact with the pointer."
263msgstr ""
263msgstr ""
264
264
265−#: qml/Greeter/CoverPage.qml:107
265+#: qml/Greeter/CoverPage.qml:118
266msgid "Unlock"
266msgid "Unlock"
267msgstr ""
267msgstr ""
268
268
@@ -274,11 +274,11 @@ msgstr ""
274msgid "Tap to unlock"
274msgid "Tap to unlock"
275msgstr ""
275msgstr ""
276
276
277−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
278msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
279msgstr ""
279msgstr ""
280
280
281−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
282msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
283msgstr ""
283msgstr ""
284
284
@@ -303,7 +303,7 @@ msgstr ""
303msgid "Enter %1"
303msgid "Enter %1"
304msgstr ""
304msgstr ""
305
305
306−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
307msgid "Enter passphrase"
307msgid "Enter passphrase"
308msgstr ""
308msgstr ""
309
309
@@ -341,62 +341,62 @@ msgstr ""
341msgid "Conference"
341msgid "Conference"
342msgstr ""
342msgstr ""
343
343
344−#: qml/Panel/Indicators/MenuItemFactory.qml:753
344+#: qml/Panel/Indicators/MenuItemFactory.qml:761
345msgid "Nothing is playing"
345msgid "Nothing is playing"
346msgstr ""
346msgstr ""
347
347
348−#: qml/Panel/Indicators/MenuItemFactory.qml:882
348+#: qml/Panel/Indicators/MenuItemFactory.qml:890
349#, qt-format
349#, qt-format
350msgid "%1 hour"
350msgid "%1 hour"
351msgid_plural "%1 hours"
351msgid_plural "%1 hours"
352msgstr[0] ""
352msgstr[0] ""
353msgstr[1] ""
353msgstr[1] ""
354
354
355−#: qml/Panel/Indicators/MenuItemFactory.qml:886
355+#: qml/Panel/Indicators/MenuItemFactory.qml:894
356#, qt-format
356#, qt-format
357msgid "%1 minute"
357msgid "%1 minute"
358msgid_plural "%1 minutes"
358msgid_plural "%1 minutes"
359msgstr[0] ""
359msgstr[0] ""
360msgstr[1] ""
360msgstr[1] ""
361
361
362−#: qml/Panel/Indicators/MenuItemFactory.qml:891
362+#: qml/Panel/Indicators/MenuItemFactory.qml:899
363#, qt-format
363#, qt-format
364msgid "%1 second"
364msgid "%1 second"
365msgid_plural "%1 seconds"
365msgid_plural "%1 seconds"
366msgstr[0] ""
366msgstr[0] ""
367msgstr[1] ""
367msgstr[1] ""
368
368
369−#: qml/Panel/Indicators/MenuItemFactory.qml:894
369+#: qml/Panel/Indicators/MenuItemFactory.qml:902
370msgid "0 seconds"
370msgid "0 seconds"
371msgstr ""
371msgstr ""
372
372
373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
374−#: qml/Panel/Indicators/MenuItemFactory.qml:896
374+#: qml/Panel/Indicators/MenuItemFactory.qml:904
375#, qt-format
375#, qt-format
376msgid "%1 remaining"
376msgid "%1 remaining"
377msgstr ""
377msgstr ""
378
378
379−#: qml/Panel/Indicators/MenuItemFactory.qml:902
379+#: qml/Panel/Indicators/MenuItemFactory.qml:910
380msgid "In queue…"
380msgid "In queue…"
381msgstr ""
381msgstr ""
382
382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:906
383+#: qml/Panel/Indicators/MenuItemFactory.qml:914
384msgid "Downloading"
384msgid "Downloading"
385msgstr ""
385msgstr ""
386
386
387−#: qml/Panel/Indicators/MenuItemFactory.qml:908
387+#: qml/Panel/Indicators/MenuItemFactory.qml:916
388msgid "Paused, tap to resume"
388msgid "Paused, tap to resume"
389msgstr ""
389msgstr ""
390
390
391−#: qml/Panel/Indicators/MenuItemFactory.qml:910
391+#: qml/Panel/Indicators/MenuItemFactory.qml:918
392msgid "Canceled"
392msgid "Canceled"
393msgstr ""
393msgstr ""
394
394
395−#: qml/Panel/Indicators/MenuItemFactory.qml:912
395+#: qml/Panel/Indicators/MenuItemFactory.qml:920
396msgid "Finished"
396msgid "Finished"
397msgstr ""
397msgstr ""
398
398
399−#: qml/Panel/Indicators/MenuItemFactory.qml:914
399+#: qml/Panel/Indicators/MenuItemFactory.qml:922
400msgid "Failed, tap to retry"
400msgid "Failed, tap to retry"
401msgstr ""
401msgstr ""
402
402
@@ -416,249 +416,321 @@ msgctxt "Button: Call back on phone"
416msgid "Call back"
416msgid "Call back"
417msgstr ""
417msgstr ""
418
418
419−#: qml/Panel/Indicators/ModemInfoItem.qml:105
419+#: qml/Stages/SideStage.qml:76
420−msgid "Unlock SIM"
420+msgid "Drag using 3 fingers any application from one window to the other"
421msgstr ""
421msgstr ""
422
422
423−#: qml/Panel/Indicators/RoamingIndication.qml:27
423+#: qml/Tutorial/TutorialBottom.qml:78
424−msgid "Roaming"
424+msgid "Swipe up to add a contact"
425msgstr ""
425msgstr ""
426
426
427−#: qml/Tutorial/TutorialBottom.qml:28
427+#: qml/Tutorial/TutorialBottom.qml:80
428−msgid "Open special menus"
428+msgid "Swipe up for favorite calculations"
429msgstr ""
429msgstr ""
430
430
431−#: qml/Tutorial/TutorialBottom.qml:29
431+#: qml/Tutorial/TutorialBottom.qml:82
432−msgid "Swipe up from the bottom edge."
432+msgid "Swipe up for recent calls"
433msgstr ""
433msgstr ""
434
434
435−#: qml/Tutorial/TutorialBottomFinish.qml:24
435+#: qml/Tutorial/TutorialBottom.qml:84
436−msgid "This action does different things for different apps"
436+msgid "Swipe up to create a message"
437msgstr ""
437msgstr ""
438
438
439−#: qml/Tutorial/TutorialBottomFinish.qml:25
439+#: qml/Tutorial/TutorialBottom.qml:85
440−msgid "Tap here to finish."
440+msgid "Swipe up to manage the app"
441msgstr ""
441msgstr ""
442
442
443−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
443+#: qml/Tutorial/TutorialLeft.qml:47
444−#: qml/Tutorial/TutorialRight.qml:144
444+msgid "Swipe from the left edge to open the launcher"
445−msgid "Tap here to continue."
446msgstr ""
445msgstr ""
447
446
448−#: qml/Tutorial/TutorialLeft.qml:26
447+#: qml/Tutorial/TutorialLeftLong.qml:47
449−msgid "Open the launcher"
448+msgid "Long swipe from the left edge to open the Today scope"
450msgstr ""
449msgstr ""
451
450
452−#: qml/Tutorial/TutorialLeft.qml:27
451+#: qml/Tutorial/TutorialRight.qml:54
453−msgid "Short swipe from the left edge."
452+msgid "Hover your mouse on the right edge to view your open apps"
454msgstr ""
453msgstr ""
455
454
456−#: qml/Tutorial/TutorialLeftFinish.qml:24
455+#: qml/Tutorial/TutorialRight.qml:55
457−msgid "These are the shortcuts to favorite apps"
456+msgid "Short or long swipe from the right edge to view your open apps"
458msgstr ""
457msgstr ""
459
458
460−#: qml/Tutorial/TutorialPage.qml:178
459+#: qml/Tutorial/TutorialTop.qml:53
461−msgid "You almost got it!"
460+msgid "Swipe from the top right edge to open the notification bar"
462msgstr ""
461msgstr ""
463
462
464−#: qml/Tutorial/TutorialPage.qml:195
463+#: qml/Tutorial/TutorialTop.qml:54
465−msgid "Try again."
464+msgid "Swipe from the top edge to open the notification bar"
466msgstr ""
465msgstr ""
467
466
468−#: qml/Tutorial/TutorialRight.qml:31
467+#: qml/Wizard/Page.qml:54
469−msgid "To view open apps"
468+msgctxt "Button: Go back one page in the Wizard"
469+msgid "Back"
470msgstr ""
470msgstr ""
471
471
472−#: qml/Tutorial/TutorialRight.qml:32
472+#: qml/Wizard/Pages/10-welcome.qml:27
473−msgid "Long swipe from the right edge."
473+msgid "Language"
474msgstr ""
474msgstr ""
475
475
476−#: qml/Tutorial/TutorialRight.qml:122
476+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
477−msgid "View all your running tasks."
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"
478msgstr ""
483msgstr ""
479
484
480−#: qml/Wizard/Page.qml:89
485+#: qml/Wizard/Pages/30-wifi.qml:29
481−msgctxt "Button: Go back one page in the Wizard"
486+msgid "Connect to Wi‑Fi"
482−msgid "Back"
483msgstr ""
487msgstr ""
484
488
485−#: qml/Wizard/Pages/10-welcome.qml:27
489+#: qml/Wizard/Pages/30-wifi.qml:130
486−msgid "Hi!"
490+msgid "Connected"
487msgstr ""
491msgstr ""
488
492
489−#: qml/Wizard/Pages/10-welcome.qml:44
493+#: qml/Wizard/Pages/30-wifi.qml:163
490−msgid "Welcome to your Ubuntu device."
494+msgid "Available Wi-Fi networks"
491msgstr ""
495msgstr ""
492
496
493−#: qml/Wizard/Pages/10-welcome.qml:52
497+#: qml/Wizard/Pages/30-wifi.qml:164
494−msgid "Let’s get started."
498+msgid "No available Wi-Fi networks"
495msgstr ""
499msgstr ""
496
500
497−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
498−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
499−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
500−#: qml/Wizard/Pages/passwd-set.qml:90
502+#: qml/Wizard/Pages/sim.qml:101
501−msgid "Continue"
503+msgid "Skip"
502msgstr ""
504msgstr ""
503
505
504−#: qml/Wizard/Pages/20-sim.qml:25
506+#: qml/Wizard/Pages/40-location.qml:27
505−msgid "Add a SIM card and restart your device"
507+msgid "Location Services"
506msgstr ""
508msgstr ""
507
509
508−#: qml/Wizard/Pages/20-sim.qml:59
510+#: qml/Wizard/Pages/40-location.qml:83
509−msgid "Without it, you won’t be able to make calls or use text messaging."
511+msgid ""
512+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
513+"(recommended)"
510msgstr ""
514msgstr ""
511
515
512−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
516+#: qml/Wizard/Pages/40-location.qml:105
513−msgid "Skip"
517+#, qt-format
518+msgid "By selecting this option you agree to the Nokia HERE %1."
514msgstr ""
519msgstr ""
515
520
516−#: qml/Wizard/Pages/30-passwd-type.qml:39
521+#: qml/Wizard/Pages/40-location.qml:106
517−msgid "Lock security"
522+msgctxt "part of: Nokia HERE terms and conditions"
523+msgid "terms and conditions"
518msgstr ""
524msgstr ""
519
525
520−#: qml/Wizard/Pages/30-passwd-type.qml:79
526+#: qml/Wizard/Pages/40-location.qml:160
521−msgid "Please select how you’d like to unlock your device."
527+msgid "GPS only"
522msgstr ""
528msgstr ""
523
529
524−#: qml/Wizard/Pages/30-passwd-type.qml:102
530+#: qml/Wizard/Pages/40-location.qml:214
525−msgctxt "Label: Type of security method"
531+msgid "Don't use my location"
526−msgid "Swipe"
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"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/60-account.qml:24
547+msgid "Personalize Your Device"
548+msgstr ""
549+
550+#: qml/Wizard/Pages/60-account.qml:48
551+msgid "Preferred Name"
527msgstr ""
552msgstr ""
528
553
529−#: qml/Wizard/Pages/30-passwd-type.qml:103
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
530−msgctxt "Label: Description of security method"
555+msgid "Lock Screen"
531−msgid "No security"
532msgstr ""
556msgstr ""
533
557
534−#: qml/Wizard/Pages/30-passwd-type.qml:105
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
535msgctxt "Label: Type of security method"
559msgctxt "Label: Type of security method"
536−msgid "Passcode"
560+msgid "Create new password"
537msgstr ""
561msgstr ""
538
562
539−#: qml/Wizard/Pages/30-passwd-type.qml:106
563+#: qml/Wizard/Pages/70-passwd-type.qml:103
540−msgctxt "Label: Description of security method"
564+msgctxt "Label: Type of security method"
541−msgid "4 digits only"
565+msgid "Create passcode (numbers only)"
542msgstr ""
566msgstr ""
543
567
544−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
545msgctxt "Label: Type of security method"
569msgctxt "Label: Type of security method"
546−msgid "Passphrase"
570+msgid "No lock code"
547msgstr ""
571msgstr ""
548
572
549−#: qml/Wizard/Pages/30-passwd-type.qml:109
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
550−msgctxt "Label: Description of security method"
574+msgid "Privacy Policy"
551−msgid "Numbers and letters"
552msgstr ""
575msgstr ""
553
576
554−#: qml/Wizard/Pages/40-wifi.qml:29
577+#: qml/Wizard/Pages/75-report-check.qml:26
555−msgid "Connect to Wi‑Fi"
578+msgid "Help Us Improve"
556msgstr ""
579msgstr ""
557
580
558−#: qml/Wizard/Pages/40-wifi.qml:168
581+#: qml/Wizard/Pages/75-report-check.qml:59
559−msgid "Available networks…"
582+msgid "Improve system performance by sending us crashes and error reports."
560msgstr ""
583msgstr ""
561
584
562−#: qml/Wizard/Pages/40-wifi.qml:169
585+#: qml/Wizard/Pages/75-report-check.qml:60
563−msgid "No available networks."
586+msgid "Privacy policy"
564msgstr ""
587msgstr ""
565
588
566−#: qml/Wizard/Pages/50-location.qml:27
589+#: qml/Wizard/Pages/80-finished.qml:89
567−msgid "Location"
590+msgid "Welcome to Ubuntu"
568msgstr ""
591msgstr ""
569
592
570−#: qml/Wizard/Pages/50-location.qml:62
593+#: qml/Wizard/Pages/80-finished.qml:104
571−msgid "Let the phone detect your location:"
594+msgid "You are ready to use your device now"
572msgstr ""
595msgstr ""
573
596
574−#: qml/Wizard/Pages/50-location.qml:69
597+#: qml/Wizard/Pages/80-finished.qml:124
575−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"
576msgstr ""
603msgstr ""
577
604
578−#: qml/Wizard/Pages/50-location.qml:86
605+#: qml/Wizard/Pages/here-terms.qml:69
579−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
606+msgid "Your device uses positioning technologies provided by HERE."
580msgstr ""
607msgstr ""
581
608
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
609+#: qml/Wizard/Pages/here-terms.qml:81
584msgid ""
610msgid ""
585−"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 "
586−"conditions</a>."
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
587msgstr ""
614msgstr ""
588
615
589−#: qml/Wizard/Pages/50-location.qml:112
616+#: qml/Wizard/Pages/here-terms.qml:93
590−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."
591msgstr ""
620msgstr ""
592
621
593−#: qml/Wizard/Pages/50-location.qml:124
622+#: qml/Wizard/Pages/here-terms.qml:106
594−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."
595msgstr ""
625msgstr ""
596
626
597−#: qml/Wizard/Pages/60-reporting.qml:26
627+#: qml/Wizard/Pages/here-terms.qml:107
598−msgid "Improving your experience"
628+msgid "Service Terms"
599msgstr ""
629msgstr ""
600
630
601−#: qml/Wizard/Pages/60-reporting.qml:46
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
602−msgid ""
633+msgid "Confirm passcode"
603−"Your phone is set up to automatically report errors to Canonical and its "
604−"partners, the makers of the operating system."
605msgstr ""
634msgstr ""
606
635
607−#: qml/Wizard/Pages/60-reporting.qml:53
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
608−msgid ""
637+msgid "Incorrect passcode."
609−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
610−"Privacy</b>"
611msgstr ""
638msgstr ""
612
639
613−#: qml/Wizard/Pages/80-finished.qml:24
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
614−msgid "All done"
641+msgctxt "Enter the passcode again"
642+msgid "Please re-enter."
615msgstr ""
643msgstr ""
616
644
617−#: qml/Wizard/Pages/80-finished.qml:39
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
618−msgid "Nice work!"
646+msgid "Lock Screen Passcode"
619msgstr ""
647msgstr ""
620
648
621−#: qml/Wizard/Pages/80-finished.qml:46
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
622−msgid "Your device is now ready to use."
650+msgid "Enter 4 numbers to setup your passcode"
623msgstr ""
651msgstr ""
624
652
625−#: qml/Wizard/Pages/80-finished.qml:53
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
626−msgid "Finish"
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
627msgstr ""
656msgstr ""
628
657
629−#: qml/Wizard/Pages/here-terms.qml:27
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
630−msgid "Terms & Conditions"
659+msgid "Passcode too short"
631msgstr ""
660msgstr ""
632
661
633−#: qml/Wizard/Pages/passwd-confirm.qml:49
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
634−msgid "Confirm passphrase"
663+msgid "Passcodes match"
635msgstr ""
664msgstr ""
636
665
637−#: qml/Wizard/Pages/passwd-confirm.qml:50
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
638−msgid "Confirm passcode"
667+msgid "Passcodes do not match"
639msgstr ""
668msgstr ""
640
669
641−#: qml/Wizard/Pages/passwd-confirm.qml:53
670+#: qml/Wizard/Pages/passcode-set.qml:62
642−#: qml/Wizard/Pages/passwd-confirm.qml:54
671+msgid "Passcode must be 4 characters long"
643−msgid "Please try again."
644msgstr ""
672msgstr ""
645
673
646−#: qml/Wizard/Pages/passwd-set.qml:61
674+#: qml/Wizard/Pages/password-set.qml:30
647−msgid "Choose your passcode"
675+msgid "Lock Screen Password"
648msgstr ""
676msgstr ""
649
677
650−#: qml/Wizard/Pages/passwd-set.qml:68
678+#: qml/Wizard/Pages/password-set.qml:61
651−msgid "Passphrase must be 4 characters long"
679+msgid "Enter at least 8 characters"
652msgstr ""
680msgstr ""
653
681
654−#. Translators: This is the arrow for "Back" buttons
682+#: qml/Wizard/Pages/password-set.qml:73
655−#: qml/Wizard/StackButton.qml:39
656−#, qt-format
657−msgid "〈 %1"
683+msgid "Choose password"
658msgstr ""
684msgstr ""
659
685
660−#. Translators: This is the arrow for "Forward" buttons
686+#: qml/Wizard/Pages/password-set.qml:103
661−#: qml/Wizard/StackButton.qml:42
687+msgid "Confirm password"
662−#, qt-format
688+msgstr ""
663−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"
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+
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"
664msgstr ""
736msgstr ""
po/ckb.po+269−197
@@ -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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,23 +15,23 @@ 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-02-17 05:43+0000\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:08+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
19+"X-Generator: Launchpad (build 17958)\n"
20
20
21#: plugins/IntegratedLightDM/Greeter.cpp:112
21#: plugins/IntegratedLightDM/Greeter.cpp:112
22msgid "Password: "
22msgid "Password: "
23msgstr ""
23msgstr ""
24
24
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr ""
28msgstr ""
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31msgid "Quit"
31msgid "Quit"
32msgstr ""
32msgstr ""
33
33
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35msgid "Unpin shortcut"
35msgid "Unpin shortcut"
36msgstr ""
36msgstr ""
37
37
@@ -73,77 +73,59 @@ 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:219
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:183
114msgid "Yes"
96msgid "Yes"
115msgstr ""
97msgstr ""
116
98
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
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:199
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:201
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:210
134msgctxt "Button: Restart the system"
116msgctxt "Button: Restart the system"
135msgid "Restart"
117msgid "Restart"
136msgstr ""
118msgstr ""
137
119
138−#: qml/Components/Lockscreen.qml:245
120+#: qml/Components/Lockscreen.qml:231
139msgid "Return to Call"
121msgid "Return to Call"
140msgstr ""
122msgstr ""
141
123
142−#: qml/Components/Lockscreen.qml:245
124+#: qml/Components/Lockscreen.qml:231
143msgid "Emergency Call"
125msgid "Emergency Call"
144msgstr "هێڵی فریاگوزاری"
126msgstr "هێڵی فریاگوزاری"
145
127
146−#: qml/Components/Lockscreen.qml:277
128+#: qml/Components/Lockscreen.qml:263
147msgid "OK"
129msgid "OK"
148msgstr ""
130msgstr ""
149
131
@@ -152,6 +134,8 @@ msgid "Apps may have unsaved data:"
152msgstr ""
134msgstr ""
153
135
154#: qml/Components/ModeSwitchWarningDialog.qml:57
136#: qml/Components/ModeSwitchWarningDialog.qml:57
137+msgctxt ""
138+"Re-dock means connect the device again to an external screen/mouse/keyboard"
155msgid "Re-dock, save your work and close these apps to continue."
139msgid "Re-dock, save your work and close these apps to continue."
156msgstr ""
140msgstr ""
157
141
@@ -171,42 +155,58 @@ msgstr ""
171msgid "Close all"
155msgid "Close all"
172msgstr ""
156msgstr ""
173
157
174−#: qml/Dash/DashPageHeader.qml:266
158+#: qml/Dash/DashPageHeader.qml:337
175msgctxt "Button: Open the Ubuntu Store"
159msgctxt "Button: Open the Ubuntu Store"
176msgid "Store"
160msgid "Store"
177msgstr ""
161msgstr ""
178
162
179−#: qml/Dash/DashPageHeader.qml:273
163+#: qml/Dash/DashPageHeader.qml:344
180msgctxt "Button: Start a search in the current dash scope"
164msgctxt "Button: Start a search in the current dash scope"
181msgid "Search"
165msgid "Search"
182msgstr ""
166msgstr ""
183
167
184−#: qml/Dash/DashPageHeader.qml:283
168+#: qml/Dash/DashPageHeader.qml:354
185msgctxt "Button: Show the current dash scope settings"
169msgctxt "Button: Show the current dash scope settings"
186msgid "Settings"
170msgid "Settings"
187msgstr ""
171msgstr ""
188
172
189−#: qml/Dash/DashPageHeader.qml:290
173+#: qml/Dash/DashPageHeader.qml:361
190msgid "Remove from Favorites"
174msgid "Remove from Favorites"
191msgstr ""
175msgstr ""
192
176
193−#: qml/Dash/DashPageHeader.qml:290
177+#: qml/Dash/DashPageHeader.qml:361
194msgid "Add to Favorites"
178msgid "Add to Favorites"
195msgstr ""
179msgstr ""
196
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+
197−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
189+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198msgid "See less"
190msgid "See less"
199msgstr ""
191msgstr ""
200
192
201−#: qml/Dash/GenericScopeView.qml:587
193+#: qml/Dash/GenericScopeView.qml:570
202msgid "See all"
194msgid "See all"
203msgstr ""
195msgstr ""
204
196
205−#: qml/Dash/GenericScopeView.qml:649
197+#: qml/Dash/GenericScopeView.qml:627
206msgctxt "Label: Hint for dash search line edit"
198msgctxt "Label: Hint for dash search line edit"
207msgid "Search"
199msgid "Search"
208msgstr ""
200msgstr ""
209
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+
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
210#: qml/Dash/Previews/PreviewActionCombo.qml:35
211msgid "More..."
211msgid "More..."
212msgstr ""
212msgstr ""
@@ -228,7 +228,7 @@ msgstr "پلە دابنی بۆی"
228msgid "Add a review"
228msgid "Add a review"
229msgstr "پێداچوونەوە زۆر بکە"
229msgstr "پێداچوونەوە زۆر بکە"
230
230
231−#: qml/Dash/Previews/PreviewSharing.qml:50
231+#: qml/Dash/Previews/PreviewSharing.qml:66
232msgid "Preview Share Item"
232msgid "Preview Share Item"
233msgstr ""
233msgstr ""
234
234
@@ -256,13 +256,13 @@ msgstr ""
256msgid "Also installed"
256msgid "Also installed"
257msgstr ""
257msgstr ""
258
258
259−#: qml/DisabledScreenNotice.qml:87
259+#: qml/DisabledScreenNotice.qml:104
260msgid ""
260msgid ""
261"Your device is now connected to an external display. Use this screen as a "
261"Your device is now connected to an external display. Use this screen as a "
262−"touch pad to interact with the mouse."
262+"touch pad to interact with the pointer."
263msgstr ""
263msgstr ""
264
264
265−#: qml/Greeter/CoverPage.qml:107
265+#: qml/Greeter/CoverPage.qml:118
266msgid "Unlock"
266msgid "Unlock"
267msgstr ""
267msgstr ""
268
268
@@ -274,11 +274,11 @@ msgstr ""
274msgid "Tap to unlock"
274msgid "Tap to unlock"
275msgstr ""
275msgstr ""
276
276
277−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
278msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
279msgstr ""
279msgstr ""
280
280
281−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
282msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
283msgstr ""
283msgstr ""
284
284
@@ -303,7 +303,7 @@ msgstr ""
303msgid "Enter %1"
303msgid "Enter %1"
304msgstr ""
304msgstr ""
305
305
306−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
307msgid "Enter passphrase"
307msgid "Enter passphrase"
308msgstr ""
308msgstr ""
309
309
@@ -341,62 +341,62 @@ msgstr ""
341msgid "Conference"
341msgid "Conference"
342msgstr ""
342msgstr ""
343
343
344−#: qml/Panel/Indicators/MenuItemFactory.qml:753
344+#: qml/Panel/Indicators/MenuItemFactory.qml:761
345msgid "Nothing is playing"
345msgid "Nothing is playing"
346msgstr ""
346msgstr ""
347
347
348−#: qml/Panel/Indicators/MenuItemFactory.qml:882
348+#: qml/Panel/Indicators/MenuItemFactory.qml:890
349#, qt-format
349#, qt-format
350msgid "%1 hour"
350msgid "%1 hour"
351msgid_plural "%1 hours"
351msgid_plural "%1 hours"
352msgstr[0] ""
352msgstr[0] ""
353msgstr[1] ""
353msgstr[1] ""
354
354
355−#: qml/Panel/Indicators/MenuItemFactory.qml:886
355+#: qml/Panel/Indicators/MenuItemFactory.qml:894
356#, qt-format
356#, qt-format
357msgid "%1 minute"
357msgid "%1 minute"
358msgid_plural "%1 minutes"
358msgid_plural "%1 minutes"
359msgstr[0] ""
359msgstr[0] ""
360msgstr[1] ""
360msgstr[1] ""
361
361
362−#: qml/Panel/Indicators/MenuItemFactory.qml:891
362+#: qml/Panel/Indicators/MenuItemFactory.qml:899
363#, qt-format
363#, qt-format
364msgid "%1 second"
364msgid "%1 second"
365msgid_plural "%1 seconds"
365msgid_plural "%1 seconds"
366msgstr[0] ""
366msgstr[0] ""
367msgstr[1] ""
367msgstr[1] ""
368
368
369−#: qml/Panel/Indicators/MenuItemFactory.qml:894
369+#: qml/Panel/Indicators/MenuItemFactory.qml:902
370msgid "0 seconds"
370msgid "0 seconds"
371msgstr ""
371msgstr ""
372
372
373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
374−#: qml/Panel/Indicators/MenuItemFactory.qml:896
374+#: qml/Panel/Indicators/MenuItemFactory.qml:904
375#, qt-format
375#, qt-format
376msgid "%1 remaining"
376msgid "%1 remaining"
377msgstr ""
377msgstr ""
378
378
379−#: qml/Panel/Indicators/MenuItemFactory.qml:902
379+#: qml/Panel/Indicators/MenuItemFactory.qml:910
380msgid "In queue…"
380msgid "In queue…"
381msgstr ""
381msgstr ""
382
382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:906
383+#: qml/Panel/Indicators/MenuItemFactory.qml:914
384msgid "Downloading"
384msgid "Downloading"
385msgstr ""
385msgstr ""
386
386
387−#: qml/Panel/Indicators/MenuItemFactory.qml:908
387+#: qml/Panel/Indicators/MenuItemFactory.qml:916
388msgid "Paused, tap to resume"
388msgid "Paused, tap to resume"
389msgstr ""
389msgstr ""
390
390
391−#: qml/Panel/Indicators/MenuItemFactory.qml:910
391+#: qml/Panel/Indicators/MenuItemFactory.qml:918
392msgid "Canceled"
392msgid "Canceled"
393msgstr ""
393msgstr ""
394
394
395−#: qml/Panel/Indicators/MenuItemFactory.qml:912
395+#: qml/Panel/Indicators/MenuItemFactory.qml:920
396msgid "Finished"
396msgid "Finished"
397msgstr ""
397msgstr ""
398
398
399−#: qml/Panel/Indicators/MenuItemFactory.qml:914
399+#: qml/Panel/Indicators/MenuItemFactory.qml:922
400msgid "Failed, tap to retry"
400msgid "Failed, tap to retry"
401msgstr ""
401msgstr ""
402
402
@@ -416,251 +416,323 @@ msgctxt "Button: Call back on phone"
416msgid "Call back"
416msgid "Call back"
417msgstr ""
417msgstr ""
418
418
419−#: qml/Panel/Indicators/ModemInfoItem.qml:105
419+#: qml/Stages/SideStage.qml:76
420−msgid "Unlock SIM"
420+msgid "Drag using 3 fingers any application from one window to the other"
421msgstr ""
421msgstr ""
422
422
423−#: qml/Panel/Indicators/RoamingIndication.qml:27
423+#: qml/Tutorial/TutorialBottom.qml:78
424−msgid "Roaming"
424+msgid "Swipe up to add a contact"
425msgstr ""
425msgstr ""
426
426
427−#: qml/Tutorial/TutorialBottom.qml:28
427+#: qml/Tutorial/TutorialBottom.qml:80
428−msgid "Open special menus"
428+msgid "Swipe up for favorite calculations"
429msgstr ""
429msgstr ""
430
430
431−#: qml/Tutorial/TutorialBottom.qml:29
431+#: qml/Tutorial/TutorialBottom.qml:82
432−msgid "Swipe up from the bottom edge."
432+msgid "Swipe up for recent calls"
433msgstr ""
433msgstr ""
434
434
435−#: qml/Tutorial/TutorialBottomFinish.qml:24
435+#: qml/Tutorial/TutorialBottom.qml:84
436−msgid "This action does different things for different apps"
436+msgid "Swipe up to create a message"
437msgstr ""
437msgstr ""
438
438
439−#: qml/Tutorial/TutorialBottomFinish.qml:25
439+#: qml/Tutorial/TutorialBottom.qml:85
440−msgid "Tap here to finish."
440+msgid "Swipe up to manage the app"
441msgstr ""
441msgstr ""
442
442
443−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
443+#: qml/Tutorial/TutorialLeft.qml:47
444−#: qml/Tutorial/TutorialRight.qml:144
444+msgid "Swipe from the left edge to open the launcher"
445−msgid "Tap here to continue."
446msgstr ""
445msgstr ""
447
446
448−#: qml/Tutorial/TutorialLeft.qml:26
447+#: qml/Tutorial/TutorialLeftLong.qml:47
449−msgid "Open the launcher"
448+msgid "Long swipe from the left edge to open the Today scope"
450msgstr ""
449msgstr ""
451
450
452−#: qml/Tutorial/TutorialLeft.qml:27
451+#: qml/Tutorial/TutorialRight.qml:54
453−msgid "Short swipe from the left edge."
452+msgid "Hover your mouse on the right edge to view your open apps"
454msgstr ""
453msgstr ""
455
454
456−#: qml/Tutorial/TutorialLeftFinish.qml:24
455+#: qml/Tutorial/TutorialRight.qml:55
457−msgid "These are the shortcuts to favorite apps"
456+msgid "Short or long swipe from the right edge to view your open apps"
458msgstr ""
457msgstr ""
459
458
460−#: qml/Tutorial/TutorialPage.qml:178
459+#: qml/Tutorial/TutorialTop.qml:53
461−msgid "You almost got it!"
460+msgid "Swipe from the top right edge to open the notification bar"
462msgstr ""
461msgstr ""
463
462
464−#: qml/Tutorial/TutorialPage.qml:195
463+#: qml/Tutorial/TutorialTop.qml:54
465−msgid "Try again."
464+msgid "Swipe from the top edge to open the notification bar"
466msgstr ""
465msgstr ""
467
466
468−#: qml/Tutorial/TutorialRight.qml:31
467+#: qml/Wizard/Page.qml:54
469−msgid "To view open apps"
468+msgctxt "Button: Go back one page in the Wizard"
469+msgid "Back"
470msgstr ""
470msgstr ""
471
471
472−#: qml/Tutorial/TutorialRight.qml:32
472+#: qml/Wizard/Pages/10-welcome.qml:27
473−msgid "Long swipe from the right edge."
473+msgid "Language"
474msgstr ""
474msgstr ""
475
475
476−#: qml/Tutorial/TutorialRight.qml:122
476+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
477−msgid "View all your running tasks."
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"
478msgstr ""
483msgstr ""
479
484
480−#: qml/Wizard/Page.qml:89
485+#: qml/Wizard/Pages/30-wifi.qml:29
481−msgctxt "Button: Go back one page in the Wizard"
486+msgid "Connect to Wi‑Fi"
482−msgid "Back"
483msgstr ""
487msgstr ""
484
488
485−#: qml/Wizard/Pages/10-welcome.qml:27
489+#: qml/Wizard/Pages/30-wifi.qml:130
486−msgid "Hi!"
490+msgid "Connected"
487msgstr ""
491msgstr ""
488
492
489−#: qml/Wizard/Pages/10-welcome.qml:44
493+#: qml/Wizard/Pages/30-wifi.qml:163
490−msgid "Welcome to your Ubuntu device."
494+msgid "Available Wi-Fi networks"
491msgstr ""
495msgstr ""
492
496
493−#: qml/Wizard/Pages/10-welcome.qml:52
497+#: qml/Wizard/Pages/30-wifi.qml:164
494−msgid "Let’s get started."
498+msgid "No available Wi-Fi networks"
495msgstr ""
499msgstr ""
496
500
497−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
498−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
499−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
500−#: qml/Wizard/Pages/passwd-set.qml:90
502+#: qml/Wizard/Pages/sim.qml:101
501−msgid "Continue"
503+msgid "Skip"
502msgstr ""
504msgstr ""
503
505
504−#: qml/Wizard/Pages/20-sim.qml:25
506+#: qml/Wizard/Pages/40-location.qml:27
505−msgid "Add a SIM card and restart your device"
507+msgid "Location Services"
506msgstr ""
508msgstr ""
507
509
508−#: qml/Wizard/Pages/20-sim.qml:59
510+#: qml/Wizard/Pages/40-location.qml:83
509−msgid "Without it, you won’t be able to make calls or use text messaging."
511+msgid ""
512+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
513+"(recommended)"
510msgstr ""
514msgstr ""
511
515
512−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
516+#: qml/Wizard/Pages/40-location.qml:105
513−msgid "Skip"
517+#, qt-format
518+msgid "By selecting this option you agree to the Nokia HERE %1."
514msgstr ""
519msgstr ""
515
520
516−#: qml/Wizard/Pages/30-passwd-type.qml:39
521+#: qml/Wizard/Pages/40-location.qml:106
517−msgid "Lock security"
522+msgctxt "part of: Nokia HERE terms and conditions"
523+msgid "terms and conditions"
518msgstr ""
524msgstr ""
519
525
520−#: qml/Wizard/Pages/30-passwd-type.qml:79
526+#: qml/Wizard/Pages/40-location.qml:160
521−msgid "Please select how you’d like to unlock your device."
527+msgid "GPS only"
522msgstr ""
528msgstr ""
523
529
524−#: qml/Wizard/Pages/30-passwd-type.qml:102
530+#: qml/Wizard/Pages/40-location.qml:214
525−msgctxt "Label: Type of security method"
531+msgid "Don't use my location"
526−msgid "Swipe"
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"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/60-account.qml:24
547+msgid "Personalize Your Device"
548+msgstr ""
549+
550+#: qml/Wizard/Pages/60-account.qml:48
551+msgid "Preferred Name"
527msgstr ""
552msgstr ""
528
553
529−#: qml/Wizard/Pages/30-passwd-type.qml:103
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
530−msgctxt "Label: Description of security method"
555+msgid "Lock Screen"
531−msgid "No security"
532msgstr ""
556msgstr ""
533
557
534−#: qml/Wizard/Pages/30-passwd-type.qml:105
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
535msgctxt "Label: Type of security method"
559msgctxt "Label: Type of security method"
536−msgid "Passcode"
560+msgid "Create new password"
537msgstr ""
561msgstr ""
538
562
539−#: qml/Wizard/Pages/30-passwd-type.qml:106
563+#: qml/Wizard/Pages/70-passwd-type.qml:103
540−msgctxt "Label: Description of security method"
564+msgctxt "Label: Type of security method"
541−msgid "4 digits only"
565+msgid "Create passcode (numbers only)"
542msgstr ""
566msgstr ""
543
567
544−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
545msgctxt "Label: Type of security method"
569msgctxt "Label: Type of security method"
546−msgid "Passphrase"
570+msgid "No lock code"
547msgstr ""
571msgstr ""
548
572
549−#: qml/Wizard/Pages/30-passwd-type.qml:109
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
550−msgctxt "Label: Description of security method"
574+msgid "Privacy Policy"
551−msgid "Numbers and letters"
552msgstr ""
575msgstr ""
553
576
554−#: qml/Wizard/Pages/40-wifi.qml:29
577+#: qml/Wizard/Pages/75-report-check.qml:26
555−msgid "Connect to Wi‑Fi"
578+msgid "Help Us Improve"
556msgstr ""
579msgstr ""
557
580
558−#: qml/Wizard/Pages/40-wifi.qml:168
581+#: qml/Wizard/Pages/75-report-check.qml:59
559−msgid "Available networks…"
582+msgid "Improve system performance by sending us crashes and error reports."
560msgstr ""
583msgstr ""
561
584
562−#: qml/Wizard/Pages/40-wifi.qml:169
585+#: qml/Wizard/Pages/75-report-check.qml:60
563−msgid "No available networks."
586+msgid "Privacy policy"
564msgstr ""
587msgstr ""
565
588
566−#: qml/Wizard/Pages/50-location.qml:27
589+#: qml/Wizard/Pages/80-finished.qml:89
567−msgid "Location"
590+msgid "Welcome to Ubuntu"
568msgstr ""
591msgstr ""
569
592
570−#: qml/Wizard/Pages/50-location.qml:62
593+#: qml/Wizard/Pages/80-finished.qml:104
571−msgid "Let the phone detect your location:"
594+msgid "You are ready to use your device now"
572msgstr ""
595msgstr ""
573
596
574−#: qml/Wizard/Pages/50-location.qml:69
597+#: qml/Wizard/Pages/80-finished.qml:124
575−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"
576msgstr ""
603msgstr ""
577
604
578−#: qml/Wizard/Pages/50-location.qml:86
605+#: qml/Wizard/Pages/here-terms.qml:69
579−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
606+msgid "Your device uses positioning technologies provided by HERE."
580msgstr ""
607msgstr ""
581
608
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
609+#: qml/Wizard/Pages/here-terms.qml:81
584msgid ""
610msgid ""
585−"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 "
586−"conditions</a>."
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
587msgstr ""
614msgstr ""
588
615
589−#: qml/Wizard/Pages/50-location.qml:112
616+#: qml/Wizard/Pages/here-terms.qml:93
590−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."
591msgstr ""
620msgstr ""
592
621
593−#: qml/Wizard/Pages/50-location.qml:124
622+#: qml/Wizard/Pages/here-terms.qml:106
594−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."
595msgstr ""
625msgstr ""
596
626
597−#: qml/Wizard/Pages/60-reporting.qml:26
627+#: qml/Wizard/Pages/here-terms.qml:107
598−msgid "Improving your experience"
628+msgid "Service Terms"
599msgstr ""
629msgstr ""
600
630
601−#: qml/Wizard/Pages/60-reporting.qml:46
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
602−msgid ""
633+msgid "Confirm passcode"
603−"Your phone is set up to automatically report errors to Canonical and its "
604−"partners, the makers of the operating system."
605msgstr ""
634msgstr ""
606
635
607−#: qml/Wizard/Pages/60-reporting.qml:53
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
608−msgid ""
637+msgid "Incorrect passcode."
609−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
610−"Privacy</b>"
611msgstr ""
638msgstr ""
612
639
613−#: qml/Wizard/Pages/80-finished.qml:24
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
614−msgid "All done"
641+msgctxt "Enter the passcode again"
642+msgid "Please re-enter."
615msgstr ""
643msgstr ""
616
644
617−#: qml/Wizard/Pages/80-finished.qml:39
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
618−msgid "Nice work!"
646+msgid "Lock Screen Passcode"
619msgstr ""
647msgstr ""
620
648
621−#: qml/Wizard/Pages/80-finished.qml:46
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
622−msgid "Your device is now ready to use."
650+msgid "Enter 4 numbers to setup your passcode"
623msgstr ""
651msgstr ""
624
652
625−#: qml/Wizard/Pages/80-finished.qml:53
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
626−msgid "Finish"
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
627msgstr ""
656msgstr ""
628
657
629−#: qml/Wizard/Pages/here-terms.qml:27
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
630−msgid "Terms & Conditions"
659+msgid "Passcode too short"
631msgstr ""
660msgstr ""
632
661
633−#: qml/Wizard/Pages/passwd-confirm.qml:49
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
634−msgid "Confirm passphrase"
663+msgid "Passcodes match"
635msgstr ""
664msgstr ""
636
665
637−#: qml/Wizard/Pages/passwd-confirm.qml:50
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
638−msgid "Confirm passcode"
667+msgid "Passcodes do not match"
639msgstr ""
668msgstr ""
640
669
641−#: qml/Wizard/Pages/passwd-confirm.qml:53
670+#: qml/Wizard/Pages/passcode-set.qml:62
642−#: qml/Wizard/Pages/passwd-confirm.qml:54
671+msgid "Passcode must be 4 characters long"
643−msgid "Please try again."
644msgstr ""
672msgstr ""
645
673
646−#: qml/Wizard/Pages/passwd-set.qml:61
674+#: qml/Wizard/Pages/password-set.qml:30
647−msgid "Choose your passcode"
675+msgid "Lock Screen Password"
648msgstr ""
676msgstr ""
649
677
650−#: qml/Wizard/Pages/passwd-set.qml:68
678+#: qml/Wizard/Pages/password-set.qml:61
651−msgid "Passphrase must be 4 characters long"
679+msgid "Enter at least 8 characters"
652msgstr ""
680msgstr ""
653
681
654−#. Translators: This is the arrow for "Back" buttons
682+#: qml/Wizard/Pages/password-set.qml:73
655−#: qml/Wizard/StackButton.qml:39
656−#, qt-format
657−msgid "〈 %1"
683+msgid "Choose password"
658msgstr ""
684msgstr ""
659
685
660−#. Translators: This is the arrow for "Forward" buttons
686+#: qml/Wizard/Pages/password-set.qml:103
661−#: qml/Wizard/StackButton.qml:42
687+msgid "Confirm password"
662−#, qt-format
688+msgstr ""
663−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"
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+
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"
664msgstr ""
736msgstr ""
665
737
666#~ msgid "Top edge"
738#~ msgid "Top edge"
po/cs.po+520−250
@@ -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-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+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,24 +15,24 @@ 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-02-17 05:43+0000\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
19+"X-Generator: Launchpad (build 17958)\n"
20"Language: cs\n"
20"Language: cs\n"
21
21
22#: plugins/IntegratedLightDM/Greeter.cpp:112
22#: plugins/IntegratedLightDM/Greeter.cpp:112
23msgid "Password: "
23msgid "Password: "
24msgstr "Heslo: "
24msgstr "Heslo: "
25
25
26−#: plugins/Unity/Launcher/launcheritem.cpp:47
26+#: plugins/Unity/Launcher/launcheritem.cpp:48
27−#: plugins/Unity/Launcher/launcheritem.cpp:106
27+#: plugins/Unity/Launcher/launcheritem.cpp:107
28msgid "Pin shortcut"
28msgid "Pin shortcut"
29msgstr "Připíchnout zkratku"
29msgstr "Připíchnout zkratku"
30
30
31−#: plugins/Unity/Launcher/launcheritem.cpp:52
31+#: plugins/Unity/Launcher/launcheritem.cpp:53
32msgid "Quit"
32msgid "Quit"
33msgstr ""
33msgstr ""
34
34
35−#: plugins/Unity/Launcher/launcheritem.cpp:106
35+#: plugins/Unity/Launcher/launcheritem.cpp:107
36msgid "Unpin shortcut"
36msgid "Unpin shortcut"
37msgstr "Odpíchnout zkratku"
37msgstr "Odpíchnout zkratku"
38
38
@@ -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:219
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:183
118msgid "Yes"
100msgid "Yes"
119msgstr "Ano"
101msgstr "Ano"
120
102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:198
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:199
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,25 +113,25 @@ 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:201
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:210
140msgctxt "Button: Restart the system"
122msgctxt "Button: Restart the system"
141msgid "Restart"
123msgid "Restart"
142msgstr "Reboot"
124msgstr "Reboot"
143
125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145msgid "Return to Call"
127msgid "Return to Call"
146msgstr "Vrátit se k hovoru"
128msgstr "Vrátit se k hovoru"
147
129
148−#: qml/Components/Lockscreen.qml:245
130+#: qml/Components/Lockscreen.qml:231
149msgid "Emergency Call"
131msgid "Emergency Call"
150msgstr "Tísňové volání"
132msgstr "Tísňové volání"
151
133
152−#: qml/Components/Lockscreen.qml:277
134+#: qml/Components/Lockscreen.qml:263
153msgid "OK"
135msgid "OK"
154msgstr "OK"
136msgstr "OK"
155
137
@@ -158,6 +140,8 @@ msgid "Apps may have unsaved data:"
158msgstr ""
140msgstr ""
159
141
160#: qml/Components/ModeSwitchWarningDialog.qml:57
142#: qml/Components/ModeSwitchWarningDialog.qml:57
143+msgctxt ""
144+"Re-dock means connect the device again to an external screen/mouse/keyboard"
161msgid "Re-dock, save your work and close these apps to continue."
145msgid "Re-dock, save your work and close these apps to continue."
162msgstr ""
146msgstr ""
163
147
@@ -177,42 +161,58 @@ msgstr ""
177msgid "Close all"
161msgid "Close all"
178msgstr ""
162msgstr ""
179
163
180−#: qml/Dash/DashPageHeader.qml:266
164+#: qml/Dash/DashPageHeader.qml:337
181msgctxt "Button: Open the Ubuntu Store"
165msgctxt "Button: Open the Ubuntu Store"
182msgid "Store"
166msgid "Store"
183msgstr "Obchod"
167msgstr "Obchod"
184
168
185−#: qml/Dash/DashPageHeader.qml:273
169+#: qml/Dash/DashPageHeader.qml:344
186msgctxt "Button: Start a search in the current dash scope"
170msgctxt "Button: Start a search in the current dash scope"
187msgid "Search"
171msgid "Search"
188msgstr "Hledat"
172msgstr "Hledat"
189
173
190−#: qml/Dash/DashPageHeader.qml:283
174+#: qml/Dash/DashPageHeader.qml:354
191msgctxt "Button: Show the current dash scope settings"
175msgctxt "Button: Show the current dash scope settings"
192msgid "Settings"
176msgid "Settings"
193msgstr "Nastavení"
177msgstr "Nastavení"
194
178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196msgid "Remove from Favorites"
180msgid "Remove from Favorites"
197msgstr "Odstranit z oblíbených"
181msgstr "Odstranit z oblíbených"
198
182
199−#: qml/Dash/DashPageHeader.qml:290
183+#: qml/Dash/DashPageHeader.qml:361
200msgid "Add to Favorites"
184msgid "Add to Favorites"
201msgstr "Přidat do oblíbených"
185msgstr "Přidat do oblíbených"
202
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+
203−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
195+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
204msgid "See less"
196msgid "See less"
205msgstr "Zobrazit méně"
197msgstr "Zobrazit méně"
206
198
207−#: qml/Dash/GenericScopeView.qml:587
199+#: qml/Dash/GenericScopeView.qml:570
208msgid "See all"
200msgid "See all"
209msgstr "Zobrazit vše"
201msgstr "Zobrazit vše"
210
202
211−#: qml/Dash/GenericScopeView.qml:649
203+#: qml/Dash/GenericScopeView.qml:627
212msgctxt "Label: Hint for dash search line edit"
204msgctxt "Label: Hint for dash search line edit"
213msgid "Search"
205msgid "Search"
214msgstr "Hledat"
206msgstr "Hledat"
215
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+
216#: qml/Dash/Previews/PreviewActionCombo.qml:35
216#: qml/Dash/Previews/PreviewActionCombo.qml:35
217msgid "More..."
217msgid "More..."
218msgstr "Více..."
218msgstr "Více..."
@@ -234,7 +234,7 @@ msgstr "Ohodnoťte to"
234msgid "Add a review"
234msgid "Add a review"
235msgstr "Přidat recenzi"
235msgstr "Přidat recenzi"
236
236
237−#: qml/Dash/Previews/PreviewSharing.qml:50
237+#: qml/Dash/Previews/PreviewSharing.qml:66
238msgid "Preview Share Item"
238msgid "Preview Share Item"
239msgstr ""
239msgstr ""
240
240
@@ -262,13 +262,13 @@ msgstr "Domů"
262msgid "Also installed"
262msgid "Also installed"
263msgstr "Také nainstalováno"
263msgstr "Také nainstalováno"
264
264
265−#: qml/DisabledScreenNotice.qml:87
265+#: qml/DisabledScreenNotice.qml:104
266msgid ""
266msgid ""
267"Your device is now connected to an external display. Use this screen as a "
267"Your device is now connected to an external display. Use this screen as a "
268−"touch pad to interact with the mouse."
268+"touch pad to interact with the pointer."
269msgstr ""
269msgstr ""
270
270
271−#: qml/Greeter/CoverPage.qml:107
271+#: qml/Greeter/CoverPage.qml:118
272msgid "Unlock"
272msgid "Unlock"
273msgstr "Odemknout"
273msgstr "Odemknout"
274
274
@@ -280,11 +280,11 @@ msgstr "Znovu"
280msgid "Tap to unlock"
280msgid "Tap to unlock"
281msgstr "Klepnout pro odemčení"
281msgstr "Klepnout pro odemčení"
282
282
283−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
283+#: qml/Greeter/NarrowView.qml:54
284msgid "Sorry, incorrect passphrase."
284msgid "Sorry, incorrect passphrase."
285msgstr "Zadali jste špatné heslo."
285msgstr "Zadali jste špatné heslo."
286
286
287−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
287+#: qml/Greeter/NarrowView.qml:55
288msgid "Sorry, incorrect passcode."
288msgid "Sorry, incorrect passcode."
289msgstr "Zadali jste špatné heslo."
289msgstr "Zadali jste špatné heslo."
290
290
@@ -313,7 +313,7 @@ msgstr ""
313msgid "Enter %1"
313msgid "Enter %1"
314msgstr "Vložte %1"
314msgstr "Vložte %1"
315
315
316−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
316+#: qml/Greeter/NarrowView.qml:117
317msgid "Enter passphrase"
317msgid "Enter passphrase"
318msgstr "Vložte heslo"
318msgstr "Vložte heslo"
319
319
@@ -351,11 +351,11 @@ msgstr "Klepnutím se vrátíte k hovoru..."
351msgid "Conference"
351msgid "Conference"
352msgstr "Konferenční hovor"
352msgstr "Konferenční hovor"
353
353
354−#: qml/Panel/Indicators/MenuItemFactory.qml:753
354+#: qml/Panel/Indicators/MenuItemFactory.qml:761
355msgid "Nothing is playing"
355msgid "Nothing is playing"
356msgstr "Nic se nepřehrává"
356msgstr "Nic se nepřehrává"
357
357
358−#: qml/Panel/Indicators/MenuItemFactory.qml:882
358+#: qml/Panel/Indicators/MenuItemFactory.qml:890
359#, qt-format
359#, qt-format
360msgid "%1 hour"
360msgid "%1 hour"
361msgid_plural "%1 hours"
361msgid_plural "%1 hours"
@@ -363,7 +363,7 @@ msgstr[0] "%1 hodina"
363msgstr[1] "%1 hodiny"
363msgstr[1] "%1 hodiny"
364msgstr[2] "%1 hodin"
364msgstr[2] "%1 hodin"
365
365
366−#: qml/Panel/Indicators/MenuItemFactory.qml:886
366+#: qml/Panel/Indicators/MenuItemFactory.qml:894
367#, qt-format
367#, qt-format
368msgid "%1 minute"
368msgid "%1 minute"
369msgid_plural "%1 minutes"
369msgid_plural "%1 minutes"
@@ -371,7 +371,7 @@ msgstr[0] "%1 minuta"
371msgstr[1] "%1 minuty"
371msgstr[1] "%1 minuty"
372msgstr[2] "%1 minut"
372msgstr[2] "%1 minut"
373
373
374−#: qml/Panel/Indicators/MenuItemFactory.qml:891
374+#: qml/Panel/Indicators/MenuItemFactory.qml:899
375#, qt-format
375#, qt-format
376msgid "%1 second"
376msgid "%1 second"
377msgid_plural "%1 seconds"
377msgid_plural "%1 seconds"
@@ -379,37 +379,37 @@ msgstr[0] "%1 sekunda"
379msgstr[1] "%1 sekundy"
379msgstr[1] "%1 sekundy"
380msgstr[2] "%1 sekund"
380msgstr[2] "%1 sekund"
381
381
382−#: qml/Panel/Indicators/MenuItemFactory.qml:894
382+#: qml/Panel/Indicators/MenuItemFactory.qml:902
383msgid "0 seconds"
383msgid "0 seconds"
384msgstr "0 sekund"
384msgstr "0 sekund"
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:896
387+#: qml/Panel/Indicators/MenuItemFactory.qml:904
388#, qt-format
388#, qt-format
389msgid "%1 remaining"
389msgid "%1 remaining"
390msgstr "Zbývá %1"
390msgstr "Zbývá %1"
391
391
392−#: qml/Panel/Indicators/MenuItemFactory.qml:902
392+#: qml/Panel/Indicators/MenuItemFactory.qml:910
393msgid "In queue…"
393msgid "In queue…"
394msgstr "Ve frontě..."
394msgstr "Ve frontě..."
395
395
396−#: qml/Panel/Indicators/MenuItemFactory.qml:906
396+#: qml/Panel/Indicators/MenuItemFactory.qml:914
397msgid "Downloading"
397msgid "Downloading"
398msgstr "Stahování"
398msgstr "Stahování"
399
399
400−#: qml/Panel/Indicators/MenuItemFactory.qml:908
400+#: qml/Panel/Indicators/MenuItemFactory.qml:916
401msgid "Paused, tap to resume"
401msgid "Paused, tap to resume"
402msgstr "Pauza, pro pokračování klepněte"
402msgstr "Pauza, pro pokračování klepněte"
403
403
404−#: qml/Panel/Indicators/MenuItemFactory.qml:910
404+#: qml/Panel/Indicators/MenuItemFactory.qml:918
405msgid "Canceled"
405msgid "Canceled"
406msgstr "Zrušeno"
406msgstr "Zrušeno"
407
407
408−#: qml/Panel/Indicators/MenuItemFactory.qml:912
408+#: qml/Panel/Indicators/MenuItemFactory.qml:920
409msgid "Finished"
409msgid "Finished"
410msgstr "Dokončeno"
410msgstr "Dokončeno"
411
411
412−#: qml/Panel/Indicators/MenuItemFactory.qml:914
412+#: qml/Panel/Indicators/MenuItemFactory.qml:922
413msgid "Failed, tap to retry"
413msgid "Failed, tap to retry"
414msgstr "Nezdařilo se, opakujte klepnutím"
414msgstr "Nezdařilo se, opakujte klepnutím"
415
415
@@ -429,259 +429,324 @@ msgctxt "Button: Call back on phone"
429msgid "Call back"
429msgid "Call back"
430msgstr ""
430msgstr ""
431
431
432−#: qml/Panel/Indicators/ModemInfoItem.qml:105
432+#: qml/Stages/SideStage.qml:76
433−msgid "Unlock SIM"
433+msgid "Drag using 3 fingers any application from one window to the other"
434−msgstr "Odemknout SIM"
434+msgstr ""
435−
436−#: qml/Panel/Indicators/RoamingIndication.qml:27
437−msgid "Roaming"
438−msgstr "Roaming"
439−
440−#: qml/Tutorial/TutorialBottom.qml:28
441−msgid "Open special menus"
442−msgstr "Otevřít speciální menu"
443−
444−#: qml/Tutorial/TutorialBottom.qml:29
445−msgid "Swipe up from the bottom edge."
446−msgstr "Potáhněte prstem z dola nahoru."
447
435
448−#: qml/Tutorial/TutorialBottomFinish.qml:24
436+#: qml/Tutorial/TutorialBottom.qml:78
449−msgid "This action does different things for different apps"
437+msgid "Swipe up to add a contact"
450−msgstr "Tato akce vyvolá různé reakce v rozdílných aplikacích"
438+msgstr ""
451
439
452−#: qml/Tutorial/TutorialBottomFinish.qml:25
440+#: qml/Tutorial/TutorialBottom.qml:80
453−msgid "Tap here to finish."
441+msgid "Swipe up for favorite calculations"
454−msgstr "Klepněte zde pro dokončení."
442+msgstr ""
455
443
456−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
444+#: qml/Tutorial/TutorialBottom.qml:82
457−#: qml/Tutorial/TutorialRight.qml:144
445+msgid "Swipe up for recent calls"
458−msgid "Tap here to continue."
446+msgstr ""
459−msgstr "Klepněte zde pro pokračování."
460
447
461−#: qml/Tutorial/TutorialLeft.qml:26
448+#: qml/Tutorial/TutorialBottom.qml:84
462−msgid "Open the launcher"
449+msgid "Swipe up to create a message"
463−msgstr "Otevřete launcher"
450+msgstr ""
464
451
465−#: qml/Tutorial/TutorialLeft.qml:27
452+#: qml/Tutorial/TutorialBottom.qml:85
466−msgid "Short swipe from the left edge."
453+msgid "Swipe up to manage the app"
467−msgstr "Potáhněte krátce z levého okraje."
454+msgstr ""
468
455
469−#: qml/Tutorial/TutorialLeftFinish.qml:24
456+#: qml/Tutorial/TutorialLeft.qml:47
470−msgid "These are the shortcuts to favorite apps"
457+msgid "Swipe from the left edge to open the launcher"
471−msgstr "Zde jsou odkazy na vaše oblíbené aplikace"
458+msgstr ""
472
459
473−#: qml/Tutorial/TutorialPage.qml:178
460+#: qml/Tutorial/TutorialLeftLong.qml:47
474−msgid "You almost got it!"
461+msgid "Long swipe from the left edge to open the Today scope"
475−msgstr "Už to skoro máte!"
462+msgstr ""
476
463
477−#: qml/Tutorial/TutorialPage.qml:195
464+#: qml/Tutorial/TutorialRight.qml:54
478−msgid "Try again."
465+msgid "Hover your mouse on the right edge to view your open apps"
479−msgstr "Zkuste to znovu."
466+msgstr ""
480
467
481−#: qml/Tutorial/TutorialRight.qml:31
468+#: qml/Tutorial/TutorialRight.qml:55
482−msgid "To view open apps"
469+msgid "Short or long swipe from the right edge to view your open apps"
483−msgstr "K zobrazení otevřených aplikací"
470+msgstr ""
484
471
485−#: qml/Tutorial/TutorialRight.qml:32
472+#: qml/Tutorial/TutorialTop.qml:53
486−msgid "Long swipe from the right edge."
473+msgid "Swipe from the top right edge to open the notification bar"
487−msgstr "Potáhněte dlouho z pravého okraje."
474+msgstr ""
488
475
489−#: qml/Tutorial/TutorialRight.qml:122
476+#: qml/Tutorial/TutorialTop.qml:54
490−msgid "View all your running tasks."
477+msgid "Swipe from the top edge to open the notification bar"
491−msgstr "Zobrazíte všechny běžící procesy."
478+msgstr ""
492
479
493−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
494msgctxt "Button: Go back one page in the Wizard"
481msgctxt "Button: Go back one page in the Wizard"
495msgid "Back"
482msgid "Back"
496msgstr "Zpět"
483msgstr "Zpět"
497
484
498#: qml/Wizard/Pages/10-welcome.qml:27
485#: qml/Wizard/Pages/10-welcome.qml:27
499−msgid "Hi!"
486+msgid "Language"
500−msgstr "Ahoj!"
487+msgstr ""
501
488
502−#: qml/Wizard/Pages/10-welcome.qml:44
489+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
503−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"
504msgstr ""
496msgstr ""
505
497
506−#: qml/Wizard/Pages/10-welcome.qml:52
498+#: qml/Wizard/Pages/30-wifi.qml:29
507−msgid "Let’s get started."
499+msgid "Connect to Wi‑Fi"
508−msgstr "Začněme."
500+msgstr "Připojte se k Wi-Fi"
509
501
510−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
502+#: qml/Wizard/Pages/30-wifi.qml:130
511−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
503+msgid "Connected"
512−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
513−#: qml/Wizard/Pages/passwd-set.qml:90
514−msgid "Continue"
515−msgstr "Pokračovat"
504+msgstr ""
516
505
517−#: qml/Wizard/Pages/20-sim.qml:25
506+#: qml/Wizard/Pages/30-wifi.qml:163
518−msgid "Add a SIM card and restart your device"
507+msgid "Available Wi-Fi networks"
519−msgstr "Vložte SIM kartu a restartujte své zařízení"
508+msgstr ""
520
509
521−#: qml/Wizard/Pages/20-sim.qml:59
510+#: qml/Wizard/Pages/30-wifi.qml:164
522−msgid "Without it, you won’t be able to make calls or use text messaging."
511+msgid "No available Wi-Fi networks"
523−msgstr "Bez ni nebudete moci telefonovat nebo posílat textové zprávy."
512+msgstr ""
524
513
525−#: 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
526msgid "Skip"
516msgid "Skip"
527msgstr "Přeskočit"
517msgstr "Přeskočit"
528
518
529−#: qml/Wizard/Pages/30-passwd-type.qml:39
519+#: qml/Wizard/Pages/40-location.qml:27
530−msgid "Lock security"
520+msgid "Location Services"
531−msgstr "Bezpečnostní uzamčení"
521+msgstr ""
532
522
533−#: qml/Wizard/Pages/30-passwd-type.qml:79
523+#: qml/Wizard/Pages/40-location.qml:83
534−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)"
535msgstr ""
527msgstr ""
536
528
537−#: qml/Wizard/Pages/30-passwd-type.qml:102
529+#: qml/Wizard/Pages/40-location.qml:105
538−msgctxt "Label: Type of security method"
530+#, qt-format
539−msgid "Swipe"
531+msgid "By selecting this option you agree to the Nokia HERE %1."
540−msgstr "Potažením prstu"
532+msgstr ""
541
533
542−#: qml/Wizard/Pages/30-passwd-type.qml:103
534+#: qml/Wizard/Pages/40-location.qml:106
543−msgctxt "Label: Description of security method"
535+msgctxt "part of: Nokia HERE terms and conditions"
544−msgid "No security"
536+msgid "terms and conditions"
545−msgstr "Bez zabezpečení"
537+msgstr ""
538+
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 ""
546
554
547−#: qml/Wizard/Pages/30-passwd-type.qml:105
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
548msgctxt "Label: Type of security method"
572msgctxt "Label: Type of security method"
549−msgid "Passcode"
573+msgid "Create new password"
550−msgstr "Číselné heslo"
574+msgstr ""
551
575
552−#: qml/Wizard/Pages/30-passwd-type.qml:106
576+#: qml/Wizard/Pages/70-passwd-type.qml:103
553−msgctxt "Label: Description of security method"
577+msgctxt "Label: Type of security method"
554−msgid "4 digits only"
578+msgid "Create passcode (numbers only)"
555−msgstr "Pouze 4 čísla"
579+msgstr ""
556
580
557−#: qml/Wizard/Pages/30-passwd-type.qml:108
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
558msgctxt "Label: Type of security method"
582msgctxt "Label: Type of security method"
559−msgid "Passphrase"
583+msgid "No lock code"
560−msgstr "Heslo"
584+msgstr ""
561
585
562−#: qml/Wizard/Pages/30-passwd-type.qml:109
586+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
563−msgctxt "Label: Description of security method"
587+msgid "Privacy Policy"
564−msgid "Numbers and letters"
565−msgstr "Čísla a písmena"
588+msgstr ""
566
589
567−#: qml/Wizard/Pages/40-wifi.qml:29
590+#: qml/Wizard/Pages/75-report-check.qml:26
568−msgid "Connect to Wi‑Fi"
591+msgid "Help Us Improve"
569−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 ""
570
597
571−#: qml/Wizard/Pages/40-wifi.qml:168
598+#: qml/Wizard/Pages/75-report-check.qml:60
572−msgid "Available networks…"
599+msgid "Privacy policy"
573−msgstr "Dostupné sítě..."
600+msgstr ""
601+
602+#: qml/Wizard/Pages/80-finished.qml:89
603+msgid "Welcome to Ubuntu"
604+msgstr ""
574
605
575−#: qml/Wizard/Pages/40-wifi.qml:169
606+#: qml/Wizard/Pages/80-finished.qml:104
576−msgid "No available networks."
607+msgid "You are ready to use your device now"
577−msgstr "Žádná dostupná síť."
608+msgstr ""
578
609
579−#: qml/Wizard/Pages/50-location.qml:27
610+#: qml/Wizard/Pages/80-finished.qml:124
580−msgid "Location"
611+msgid "Get Started"
581−msgstr "Umístění"
612+msgstr ""
582
613
583−#: qml/Wizard/Pages/50-location.qml:62
614+#: qml/Wizard/Pages/here-terms.qml:25
584−msgid "Let the phone detect your location:"
615+msgid "Terms & Conditions"
585−msgstr "Povolte telefonu zjistit, kde se zrovna nacházíte:"
616+msgstr "Pravidla a podmínky"
586
617
587−#: qml/Wizard/Pages/50-location.qml:69
618+#: qml/Wizard/Pages/here-terms.qml:69
588−msgid "Using GPS only (less accurate)"
619+msgid "Your device uses positioning technologies provided by HERE."
589−msgstr "Používat pouze GPS (méně přesné)"
620+msgstr ""
590
621
591−#: qml/Wizard/Pages/50-location.qml:86
622+#: qml/Wizard/Pages/here-terms.qml:81
592−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
623+msgid ""
593−msgstr "Používat GPS, anonymní Wi-Fi a datovou síť (doporučeno)"
624+"To provide you with positioning services and to improve their quality, HERE "
625+"collects information about nearby cell towers and Wi-Fi hotspots around your "
626+"current location whenever your position is being found."
627+msgstr ""
594
628
595−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
596−#: qml/Wizard/Pages/50-location.qml:103
629+#: qml/Wizard/Pages/here-terms.qml:93
597msgid ""
630msgid ""
598−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
631+"The information collected is used to analyze the service and to improve the "
599−"conditions</a>."
632+"use of service, but not to identify you personally."
600msgstr ""
633msgstr ""
601−"Zvolením této možnosti souhlasíte s <a href='#'>pravidly a podmínkami</a> "
602−"Nokia HERE."
603
634
604−#: qml/Wizard/Pages/50-location.qml:112
635+#: qml/Wizard/Pages/here-terms.qml:106
605−msgid "Not at all"
636+#, qt-format
606−msgstr "V žádném případě"
637+msgid "By continuing, you agree to the HERE platform %1 and %2."
638+msgstr ""
607
639
608−#: qml/Wizard/Pages/50-location.qml:124
640+#: qml/Wizard/Pages/here-terms.qml:107
609−msgid "You can change your mind later in <b>System Settings</b>."
641+msgid "Service Terms"
610msgstr ""
642msgstr ""
611−"Pokud změníte názor, můžete nastavení změnit v <b>Nastavení systému</b>."
612
643
613−#: qml/Wizard/Pages/60-reporting.qml:26
644+#: qml/Wizard/Pages/passcode-confirm.qml:43
614−msgid "Improving your experience"
645+#: qml/Wizard/Pages/passcode-desktop.qml:80
615−msgstr "Zlepšete své zkušenosti"
646+msgid "Confirm passcode"
647+msgstr "Potvrdit číselné heslo"
616
648
617−#: qml/Wizard/Pages/60-reporting.qml:46
649+#: qml/Wizard/Pages/passcode-confirm.qml:45
618−msgid ""
650+msgid "Incorrect passcode."
619−"Your phone is set up to automatically report errors to Canonical and its "
620−"partners, the makers of the operating system."
621msgstr ""
651msgstr ""
622−"Váš telefon je nastaven tak, aby automaticky odesílal informace o chybách "
623−"společnosti Canonical a partnerům, kteří stvořili tento operační systém."
624
652
625−#: qml/Wizard/Pages/60-reporting.qml:53
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
626−msgid ""
654+msgctxt "Enter the passcode again"
627−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
655+msgid "Please re-enter."
628−"Privacy</b>"
656+msgstr ""
657+
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
659+msgid "Lock Screen Passcode"
629msgstr ""
660msgstr ""
630−"To může být vypnuto v <b>Nastavení systému</b> v <b>Zabezpečení a "
631−"soukromí</b>"
632
661
633−#: qml/Wizard/Pages/80-finished.qml:24
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
634−msgid "All done"
663+msgid "Enter 4 numbers to setup your passcode"
635−msgstr "Vše je hotovo"
664+msgstr ""
636
665
637−#: qml/Wizard/Pages/80-finished.qml:39
666+#: qml/Wizard/Pages/passcode-desktop.qml:65
638−msgid "Nice work!"
667+#: qml/Wizard/Pages/passcode-set.qml:54
668+msgid "Choose passcode"
639−msgstr "Skvělá práce!"
669+msgstr ""
640
670
641−#: qml/Wizard/Pages/80-finished.qml:46
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
642−msgid "Your device is now ready to use."
672+msgid "Passcode too short"
643msgstr ""
673msgstr ""
644
674
645−#: qml/Wizard/Pages/80-finished.qml:53
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
646−msgid "Finish"
676+msgid "Passcodes match"
647−msgstr "Dokončit"
677+msgstr ""
648
678
649−#: qml/Wizard/Pages/here-terms.qml:27
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
650−msgid "Terms & Conditions"
680+msgid "Passcodes do not match"
651−msgstr "Pravidla a podmínky"
681+msgstr ""
652
682
653−#: qml/Wizard/Pages/passwd-confirm.qml:49
683+#: qml/Wizard/Pages/passcode-set.qml:62
654−msgid "Confirm passphrase"
684+msgid "Passcode must be 4 characters long"
655−msgstr "Potvrdit heslo"
685+msgstr ""
656
686
657−#: qml/Wizard/Pages/passwd-confirm.qml:50
687+#: qml/Wizard/Pages/password-set.qml:30
658−msgid "Confirm passcode"
688+msgid "Lock Screen Password"
659−msgstr "Potvrdit číselné heslo"
689+msgstr ""
660
690
661−#: qml/Wizard/Pages/passwd-confirm.qml:53
691+#: qml/Wizard/Pages/password-set.qml:61
662−#: qml/Wizard/Pages/passwd-confirm.qml:54
692+msgid "Enter at least 8 characters"
663−msgid "Please try again."
693+msgstr ""
664−msgstr "Zkuste to, prosím, znovu."
665
694
666−#: qml/Wizard/Pages/passwd-set.qml:61
695+#: qml/Wizard/Pages/password-set.qml:73
667−msgid "Choose your passcode"
696+msgid "Choose password"
668−msgstr "Zvolte své heslo"
697+msgstr ""
669
698
670−#: qml/Wizard/Pages/passwd-set.qml:68
699+#: qml/Wizard/Pages/password-set.qml:103
671−msgid "Passphrase must be 4 characters long"
700+msgid "Confirm password"
672−msgstr "Heslo musí být alespoň 4 znaky dlouhé"
701+msgstr ""
673
702
674−#. Translators: This is the arrow for "Back" buttons
675−#: qml/Wizard/StackButton.qml:39
703+#: qml/Wizard/Pages/sim.qml:27
676−#, qt-format
704+msgid "No SIM card installed"
677−msgid "〈 %1"
678−msgstr "〈 %1"
705+msgstr ""
679
706
680−#. 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 "Reboot"
718+
719+#: qml/Wizard/Pages/sim.qml:78
720+msgid "You won’t be able to make calls or use text messaging without a SIM."
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+
681−#: qml/Wizard/StackButton.qml:42
731+#: qml/Wizard/PasswordMeter.qml:89
682−#, qt-format
732+msgid "Passwords do not match"
733+msgstr ""
734+
735+#: qml/Wizard/PasswordMeter.qml:93
683−msgid "%1 〉"
736+msgid "Strong password"
684−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 ""
685
750
686#~ msgid "Try swiping from the right edge to unlock the phone"
751#~ msgid "Try swiping from the right edge to unlock the phone"
687#~ 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."
@@ -731,18 +796,210 @@ msgstr "%1 〉"
731#~ msgid "Swipe up again to close the settings screen"
796#~ msgid "Swipe up again to close the settings screen"
732#~ 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í"
733
798
799+#~ msgid "Store"
800+#~ msgstr "Obchod"
801+
802+#~ msgctxt "Title: Reboot/Shut down dialog"
803+#~ msgid "Shut down"
804+#~ msgstr "Vypnout"
805+
806+#~ msgid "Are you sure you want to shut down?"
807+#~ msgstr "Jste si jistí, že chcete zařízení vypnout?"
808+
809+#~ msgctxt "Button: Reboot the system"
810+#~ msgid "Reboot"
811+#~ msgstr "Restartovat"
812+
813+#~ msgctxt "Button: Shut down the system"
814+#~ msgid "Shut down"
815+#~ msgstr "Vypnout"
816+
734#~ msgid "Please re-enter"
817#~ msgid "Please re-enter"
735#~ msgstr "Vložte znovu"
818#~ msgstr "Vložte znovu"
736
819
820+#~ msgid "Unlock SIM"
821+#~ msgstr "Odemknout SIM"
822+
823+#~ msgid "Roaming"
824+#~ msgstr "Roaming"
825+
826+#~ msgid "This action does different things for different apps"
827+#~ msgstr "Tato akce vyvolá různé reakce v rozdílných aplikacích"
828+
829+#~ msgid "Tap here to finish."
830+#~ msgstr "Klepněte zde pro dokončení."
831+
832+#~ msgid "Open special menus"
833+#~ msgstr "Otevřít speciální menu"
834+
835+#~ msgid "Swipe up from the bottom edge."
836+#~ msgstr "Potáhněte prstem z dola nahoru."
837+
838+#~ msgid "Tap here to continue."
839+#~ msgstr "Klepněte zde pro pokračování."
840+
841+#~ msgid "These are the shortcuts to favorite apps"
842+#~ msgstr "Zde jsou odkazy na vaše oblíbené aplikace"
843+
844+#~ msgid "Open the launcher"
845+#~ msgstr "Otevřete launcher"
846+
847+#~ msgid "Short swipe from the left edge."
848+#~ msgstr "Potáhněte krátce z levého okraje."
849+
850+#~ msgid "You almost got it!"
851+#~ msgstr "Už to skoro máte!"
852+
853+#~ msgid "Try again."
854+#~ msgstr "Zkuste to znovu."
855+
856+#~ msgid "To view open apps"
857+#~ msgstr "K zobrazení otevřených aplikací"
858+
859+#~ msgid "Long swipe from the right edge."
860+#~ msgstr "Potáhněte dlouho z pravého okraje."
861+
862+#~ msgid "View all your running tasks."
863+#~ msgstr "Zobrazíte všechny běžící procesy."
864+
865+#~ msgid "Hi!"
866+#~ msgstr "Ahoj!"
867+
737#~ msgid "Welcome to your Ubuntu phone."
868#~ msgid "Welcome to your Ubuntu phone."
738#~ msgstr "Vítejte ve vašem Ubuntu telefonu."
869#~ msgstr "Vítejte ve vašem Ubuntu telefonu."
739
870
871+#~ msgid "Let’s get started."
872+#~ msgstr "Začněme."
873+
874+#~ msgid "Continue"
875+#~ msgstr "Pokračovat"
876+
877+#~ msgid "Add a SIM card and restart your device"
878+#~ msgstr "Vložte SIM kartu a restartujte své zařízení"
879+
880+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
881+#~ msgstr "Bez ni nebudete moci telefonovat nebo posílat textové zprávy."
882+
883+#~ msgid "Lock security"
884+#~ msgstr "Bezpečnostní uzamčení"
885+
740#~ msgid "Please select how you’d like to unlock your phone."
886#~ msgid "Please select how you’d like to unlock your phone."
741#~ msgstr "Zvolte, prosím, jak chcete svůj telefon odemykat."
887#~ msgstr "Zvolte, prosím, jak chcete svůj telefon odemykat."
742
888
889+#~ msgctxt "Label: Type of security method"
890+#~ msgid "Swipe"
891+#~ msgstr "Potažením prstu"
892+
893+#~ msgctxt "Label: Description of security method"
894+#~ msgid "No security"
895+#~ msgstr "Bez zabezpečení"
896+
897+#~ msgctxt "Label: Type of security method"
898+#~ msgid "Passcode"
899+#~ msgstr "Číselné heslo"
900+
901+#~ msgctxt "Label: Description of security method"
902+#~ msgid "4 digits only"
903+#~ msgstr "Pouze 4 čísla"
904+
905+#~ msgctxt "Label: Type of security method"
906+#~ msgid "Passphrase"
907+#~ msgstr "Heslo"
908+
909+#~ msgctxt "Label: Description of security method"
910+#~ msgid "Numbers and letters"
911+#~ msgstr "Čísla a písmena"
912+
913+#~ msgid "Available networks…"
914+#~ msgstr "Dostupné sítě..."
915+
916+#~ msgid "No available networks."
917+#~ msgstr "Žádná dostupná síť."
918+
919+#~ msgid "Location"
920+#~ msgstr "Umístění"
921+
922+#~ msgid "Let the phone detect your location:"
923+#~ msgstr "Povolte telefonu zjistit, kde se zrovna nacházíte:"
924+
925+#~ msgid "Using GPS only (less accurate)"
926+#~ msgstr "Používat pouze GPS (méně přesné)"
927+
928+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
929+#~ msgstr "Používat GPS, anonymní Wi-Fi a datovou síť (doporučeno)"
930+
931+#~ msgid ""
932+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
933+#~ "conditions</a>."
934+#~ msgstr ""
935+#~ "Zvolením této možnosti souhlasíte s <a href='#'>pravidly a podmínkami</a> "
936+#~ "Nokia HERE."
937+
938+#~ msgid "Not at all"
939+#~ msgstr "V žádném případě"
940+
941+#~ msgid "You can change your mind later in <b>System Settings</b>."
942+#~ msgstr ""
943+#~ "Pokud změníte názor, můžete nastavení změnit v <b>Nastavení systému</b>."
944+
945+#~ msgid "Improving your experience"
946+#~ msgstr "Zlepšete své zkušenosti"
947+
948+#~ msgid ""
949+#~ "Your phone is set up to automatically report errors to Canonical and its "
950+#~ "partners, the makers of the operating system."
951+#~ msgstr ""
952+#~ "Váš telefon je nastaven tak, aby automaticky odesílal informace o chybách "
953+#~ "společnosti Canonical a partnerům, kteří stvořili tento operační systém."
954+
955+#~ msgid ""
956+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
957+#~ "Privacy</b>"
958+#~ msgstr ""
959+#~ "To může být vypnuto v <b>Nastavení systému</b> v <b>Zabezpečení a "
960+#~ "soukromí</b>"
961+
962+#~ msgid "All done"
963+#~ msgstr "Vše je hotovo"
964+
965+#~ msgid "Nice work!"
966+#~ msgstr "Skvělá práce!"
967+
743#~ msgid "Your phone is now ready to use."
968#~ msgid "Your phone is now ready to use."
744#~ msgstr "Váš telefon je nyní připraven k použití."
969#~ msgstr "Váš telefon je nyní připraven k použití."
745
970
971+#~ msgid "Finish"
972+#~ msgstr "Dokončit"
973+
974+#~ msgid "Confirm passphrase"
975+#~ msgstr "Potvrdit heslo"
976+
977+#~ msgid "Please try again."
978+#~ msgstr "Zkuste to, prosím, znovu."
979+
980+#~ msgid "Choose your passcode"
981+#~ msgstr "Zvolte své heslo"
982+
983+#~ msgid "Passphrase must be 4 characters long"
984+#~ msgstr "Heslo musí být alespoň 4 znaky dlouhé"
985+
986+#, qt-format
987+#~ msgid "〈 %1"
988+#~ msgstr "〈 %1"
989+
990+#, qt-format
991+#~ msgid "%1 〉"
992+#~ msgstr "%1 〉"
993+
994+#~ msgid "Log out"
995+#~ msgstr "Odhlásit se"
996+
997+#~ msgid "Reboot"
998+#~ msgstr "Restartovat"
999+
1000+#~ msgid "Shut down"
1001+#~ msgstr "Vypnout"
1002+
746#~ msgid "%a %d %b %H:%M"
1003#~ msgid "%a %d %b %H:%M"
747#~ msgstr "%a %b. %d %H:%M"
1004#~ msgstr "%a %b. %d %H:%M"
748
1005
@@ -772,3 +1029,16 @@ msgstr "%1 〉"
772
1029
773#~ msgid "%a %d %b %l:%M %p"
1030#~ msgid "%a %d %b %l:%M %p"
774#~ msgstr "%a %b. %d %l:%M %p"
1031#~ msgstr "%a %b. %d %l:%M %p"
1032+
1033+#~ msgid "Settings"
1034+#~ msgstr "Nastavení"
1035+
1036+#~ msgid ""
1037+#~ "You have now mastered the edge gestures and can start using the "
1038+#~ "phone<br><br>Tap on the screen to start"
1039+#~ msgstr ""
1040+#~ "Odteď umíte gesta a můžete začít telefon používat.<br><br>Pokračujte dotykem "
1041+#~ "na obrazovku."
1042+
1043+#~ msgid "Power off"
1044+#~ msgstr "Vypnutí"
po/cy.po+495−250

This diff is too big to show here.

po/da.po+496−251

This diff is too big to show here.

po/de.po+510−259

This diff is too big to show here.

po/el.po+498−256

This diff is too big to show here.

po/en_AU.po+510−261

This diff is too big to show here.

po/en_GB.po+511−262

This diff is too big to show here.

po/eo.po+352−213

This diff is too big to show here.

po/es.po+519−265

This diff is too big to show here.

po/eu.po+495−253

This diff is too big to show here.

po/fa.po+516−262

This diff is too big to show here.

po/fi.po+509−258

This diff is too big to show here.

po/fo.po+269−197

This diff is too big to show here.

po/fr.po+534−267

This diff is too big to show here.

po/ga.po+481−249

This diff is too big to show here.

po/gd.po+533−264

This diff is too big to show here.

po/gl.po+509−258

This diff is too big to show here.

po/gv.po+272−200

This diff is too big to show here.

po/he.po+420−231

This diff is too big to show here.

po/hi.po+269−197

This diff is too big to show here.

po/hr.po+508−253

This diff is too big to show here.

po/hu.po+532−267

This diff is too big to show here.

po/hy.po+280−202

This diff is too big to show here.

po/ia.po+508−256

This diff is too big to show here.

po/id.po+280−202

This diff is too big to show here.

po/is.po+280−202

This diff is too big to show here.

po/it.po+524−266

This diff is too big to show here.

po/ja.po+292−202

This diff is too big to show here.

po/km.po+352−216

This diff is too big to show here.

po/kn.po+269−197

This diff is too big to show here.

po/ko.po+503−252

This diff is too big to show here.

po/ku.po+280−199

This diff is too big to show here.

po/ky.po+269−197

This diff is too big to show here.

po/lo.po+269−197

This diff is too big to show here.

po/lt.po+269−197

This diff is too big to show here.

po/lv.po+493−251

This diff is too big to show here.

po/ml.po+269−197

This diff is too big to show here.

po/mr.po+269−197

This diff is too big to show here.

po/ms.po+496−254

This diff is too big to show here.

po/my.po+282−200

This diff is too big to show here.

po/nb.po+514−262

This diff is too big to show here.

po/ne.po+269−197

This diff is too big to show here.

po/nl.po+515−259

This diff is too big to show here.

po/nn.po+269−197

This diff is too big to show here.

po/oc.po+269−197

This diff is too big to show here.

po/or.po+269−197

This diff is too big to show here.

po/pa.po+495−253

This diff is too big to show here.

po/pl.po+502−261

This diff is too big to show here.

po/pt.po+521−269

This diff is too big to show here.

po/pt_BR.po+495−253

This diff is too big to show here.

po/ro.po+497−255

This diff is too big to show here.

po/ru.po+495−255

This diff is too big to show here.

po/shn.po+269−197

This diff is too big to show here.

po/si.po+272−200

This diff is too big to show here.

po/sk.po+608−328

This diff is too big to show here.

po/sl.po+496−258

This diff is too big to show here.

po/sq.po+414−229

This diff is too big to show here.

po/sr.po+553−294

This diff is too big to show here.

po/sv.po+515−263

This diff is too big to show here.

po/sw.po+428−233

This diff is too big to show here.

po/ta.po+269−197

This diff is too big to show here.

po/te.po+269−197

This diff is too big to show here.

po/th.po+269−197

This diff is too big to show here.

po/tr.po+495−253

This diff is too big to show here.

po/ug.po+476−248

This diff is too big to show here.

po/uk.po+524−266

This diff is too big to show here.

po/unity8.pot+267−195

This diff is too big to show here.

po/ur.po+269−197

This diff is too big to show here.

po/uz.po+269−197

This diff is too big to show here.

po/vi.po+269−197

This diff is too big to show here.

po/wo.po+495−253

This diff is too big to show here.

po/xh.po+269−197

This diff is too big to show here.

po/zh_CN.po+500−255

This diff is too big to show here.

po/zh_HK.po+269−197

This diff is too big to show here.

po/zh_TW.po+503−252

This diff is too big to show here.

qml/Components/Dialogs.qml+6−47

This diff is too big to show here.

qml/Components/EdgeBarrier.qml+1−1

This diff is too big to show here.

qml/Components/Header.qml+1

This diff is too big to show here.

qml/Components/InputMethod.qml+5−10

This diff is too big to show here.

qml/Components/Lockscreen.qml+82−96

This diff is too big to show here.

qml/Components/ModeSwitchWarningDialog.qml+1−1

This diff is too big to show here.

qml/Components/PassphraseLockscreen.qml+5−4

This diff is too big to show here.

qml/Components/PhysicalKeysMapper.qml+24

This diff is too big to show here.

qml/Components/PinLockscreen.qml+22−1

This diff is too big to show here.

qml/Components/ShellDialog.qml+10

This diff is too big to show here.

qml/Components/Showable.qml+10

This diff is too big to show here.

qml/Components/Unity8Settings.qmldeleted−50

This diff is too big to show here.

qml/Dash/CardCarousel.qml−1

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+2−26

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+11−11

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+144−131

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.

qml/Dash/Filters/FilterWidget.qmlnew file+29

This diff is too big to show here.

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

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+93−89

This diff is too big to show here.

qml/Dash/PageHeaderExtraPanel.qmlnew file+176

This diff is too big to show here.

qml/Dash/PreviewListView.qmldeleted−140

This diff is too big to show here.

qml/Dash/PreviewView.qmlnew file+76

This diff is too big to show here.

qml/Dash/Previews/Preview.qml−4

This diff is too big to show here.

qml/Dash/Previews/PreviewAudioPlayback.qml+5−1

This diff is too big to show here.

qml/Dash/Previews/PreviewExpandable.qml−1

This diff is too big to show here.

qml/Dash/Previews/PreviewHeader.qml+37−9

This diff is too big to show here.

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

This diff is too big to show here.

qml/Dash/Previews/PreviewPayments.qml+1−3

This diff is too big to show here.

qml/Dash/Previews/PreviewRatingDisplay.qml−1

This diff is too big to show here.

qml/Dash/Previews/PreviewRatingEdit.qml−1

This diff is too big to show here.

qml/Dash/Previews/PreviewSharing.qml+17−7

This diff is too big to show here.

qml/Dash/Previews/PreviewWidget.qml−3

This diff is too big to show here.

qml/Dash/Previews/PreviewWidgetFactory.qml−4

This diff is too big to show here.

qml/Dash/ScopesList.qml+1−1

This diff is too big to show here.

qml/Dash/ScopesListCategoryItem.qml+8−4

This diff is too big to show here.

qml/DeviceConfiguration.qml+54−16

This diff is too big to show here.

qml/Greeter/CoverPage.qml+13−2

This diff is too big to show here.

qml/Greeter/Greeter.qml+17−7

This diff is too big to show here.

qml/Greeter/Infographics.qml+2−1

This diff is too big to show here.

qml/Greeter/NarrowView.qml+14−1

This diff is too big to show here.

qml/Launcher/Launcher.qml+144−12

This diff is too big to show here.

qml/Launcher/LauncherDelegate.qml+55−20

This diff is too big to show here.

qml/Launcher/LauncherPanel.qml+149−74

This diff is too big to show here.

qml/Launcher/graphics/launcher-app-focus-ring.svgnew file+12

This diff is too big to show here.

qml/Notifications/Notification.qml+15−17

This diff is too big to show here.

qml/Notifications/Notifications.qml+2

This diff is too big to show here.

qml/Notifications/OptionToggle.qml+1−1

This diff is too big to show here.

qml/OrientedShell.qml+71−21

This diff is too big to show here.

qml/Panel/Handle.qml+2−2

This diff is too big to show here.

qml/Panel/IndicatorItem.qml+3−10

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+23−6

This diff is too big to show here.

qml/Panel/Indicators/ModemInfoItem.qmldeleted−111

This diff is too big to show here.

qml/Panel/Indicators/RoamingIndication.qmldeleted−40

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+2−4

This diff is too big to show here.

qml/Panel/MenuContent.qml+1−1

This diff is too big to show here.

qml/Panel/Panel.qml+5−1

This diff is too big to show here.

qml/ScopeTool.qml−8

This diff is too big to show here.

qml/Shell.qml+137−55

This diff is too big to show here.

qml/Stages/AbstractStage.qml+8−2

This diff is too big to show here.

qml/Stages/ApplicationWindow.qml+7−3

This diff is too big to show here.

qml/Stages/DesktopSpread.qml+64−17

This diff is too big to show here.

qml/Stages/DesktopSpreadDelegate.qml+15−1

This diff is too big to show here.

qml/Stages/DesktopStage.qml+103−37

This diff is too big to show here.

qml/Stages/PhoneStage.qml+92−9

This diff is too big to show here.

qml/Stages/SideStage.qmlnew file+118

This diff is too big to show here.

qml/Stages/Splash.qml+4−2

This diff is too big to show here.

qml/Stages/SpreadDelegate.qml+31−1

This diff is too big to show here.

qml/Stages/StagedFullscreenPolicy.qmlnew file+58

This diff is too big to show here.

qml/Stages/SurfaceContainer.qml+14

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+487−174

This diff is too big to show here.

qml/Stages/TransformedTabletSpreadDelegate.qml+84−56

This diff is too big to show here.

qml/Stages/WindowDecoration.qml+1−1

This diff is too big to show here.

qml/Stages/WindowResizeArea.qml+10−7

This diff is too big to show here.

qml/Stages/WindowedFullscreenPolicy.qmlnew file+41

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.

qml/Tutorial/TutorialLeftFinish.qml → qml/Wizard/WizardTextField.qmlrenamed+5−21

This diff is too big to show here.

src/CMakeLists.txt+1−1

This diff is too big to show here.

src/CachingNetworkManagerFactory.cpp+2−2

This diff is too big to show here.

src/CachingNetworkManagerFactory.h+3−2

This diff is too big to show here.

src/Dash/CMakeLists.txt+1−1

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.

tests/autopilot/unity8/dash.py+1−2

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_helpers.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+59

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+178−26

This diff is too big to show here.

tests/mocks/GSettings.1.0/fake_gsettings.h+61−18

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModel.cpp−14

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/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.

tests/mocks/Ubuntu/SystemSettings/TimeDate/MockTimeDate.qmlnew file+25

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+21−3

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationInfo.h+6−2

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationManager.cpp+13−26

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationManager.h−8

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurface.cpp+38−2

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurface.h+12−4

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.cpp+28−5

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/Session.cpp+26−1

This diff is too big to show here.

tests/mocks/Unity/Application/Session.h+7

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/SurfaceManager.h+3−3

This diff is too big to show here.

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

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+2−1

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+14−3

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/Launcher/MockLauncherModel.cpp+2

This diff is too big to show here.

tests/mocks/Unity/Unity.qmltypes+33−50

This diff is too big to show here.

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

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_previewstack.cppdeleted−68

This diff is too big to show here.

tests/mocks/Unity/fake_previewstack.hdeleted−52

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_scope.cpp+59−29

This diff is too big to show here.

tests/mocks/Unity/fake_scope.h+23−9

This diff is too big to show here.

tests/mocks/Unity/fake_unity_plugin.cpp+8−2

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/fake_valueslidervalues.hnew file+36

This diff is too big to show here.

tests/mocks/Utils/CMakeLists.txt+4−2

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+16−2

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+55−4

This diff is too big to show here.

tests/plugins/AccountsService/PropertiesServer.h+9−2

This diff is too big to show here.

tests/plugins/AccountsService/UscServer.cppnew file+28

This diff is too big to show here.

tests/plugins/AccountsService/UscServer.hnew file+39

This diff is too big to show here.

tests/plugins/AccountsService/client.cpp+168−13

This diff is too big to show here.

tests/plugins/AccountsService/interfaces.xml+29

This diff is too big to show here.

tests/plugins/AccountsService/server.cpp+12

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/Dash/cardcreator/1.res+4−6

This diff is too big to show here.

tests/plugins/Dash/cardcreator/1.res.cardcreatornew file+119

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/10.res.cardcreatornew file+137

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/11.res.cardcreatornew file+210

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/2.res.cardcreatornew file+136

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/3.res.cardcreatornew file+137

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/4.res.cardcreatornew file+109

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/5.res.cardcreatornew file+156

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/6.res.cardcreatornew file+126

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/7.res.cardcreatornew file+149

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/8.res.cardcreatornew file+107

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/9.res.cardcreatornew file+119

This diff is too big to show here.

tests/plugins/Dash/cardcreatortest.cpp+32−22

This diff is too big to show here.

tests/plugins/Dash/cardcreatortest.qml+4−4

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+25

This diff is too big to show here.

tests/plugins/IntegratedLightDM/integrated.cppnew file+88

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/launchermodeltest.cpp+1

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Utils/DeviceConfigParserTest.cppnew file+70

This diff is too big to show here.

tests/qmltests/CMakeLists.txt+6−1

This diff is too big to show here.

tests/qmltests/Components/tst_Lockscreen.qml+14−7

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/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+58

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_PreviewAudioPlayback.qml+12−3

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewHeader.qml+18−1

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewSharing.qml+17−3

This diff is too big to show here.

tests/qmltests/Dash/tst_CardTool.qml+4−4

This diff is too big to show here.

tests/qmltests/Dash/tst_Dash.qml+89

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_GenericScopeView.qml+3−31

This diff is too big to show here.

tests/qmltests/Dash/tst_PreviewListView.qml → tests/qmltests/Dash/tst_PreviewView.qmlrenamed+23−16

This diff is too big to show here.

tests/qmltests/Greeter/tst_Greeter.qml+8−1

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Launcher/tst_Launcher.qml+254−18

This diff is too big to show here.

tests/qmltests/Notifications/tst_Notifications.qml+13−8

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+1

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/Indicators/tst_MenuItemFactory.qml+2−4

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorItem.qml+16−17

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Stages/tst_PhoneStage.qml+19−6

This diff is too big to show here.

tests/qmltests/Stages/tst_SpreadDelegate.qml+7

This diff is too big to show here.

tests/qmltests/Stages/tst_TabletStage.qml+162−1

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+626−192

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/tst_DeviceConfiguration.qmlnew file+49

This diff is too big to show here.

tests/qmltests/tst_OrientedShell.qml+157−36

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+386−69

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qml−22

This diff is too big to show here.

tests/utils/modules/Unity/Test/UnityTestCase.qml+67−11

This diff is too big to show here.