on d178986 help sign in
67 files changed+3978−1678
since splitsnapshots
unifiedsplit
Jenkinsfile+29−12 README.md+51 data/CMakeLists.txt+1 data/com.canonical.Unity.gschema.xml+255 data/unity8.conf+33−32 debian/changelog+36 debian/control+15−4 debian/unity8-common.install−1 debian/unity8-schemas.install+1 plugins/Dash/abstractdashview.cpp+1−1 plugins/Dash/listviewwithpageheader.cpp+4−6 plugins/Dash/listviewwithpageheader.h+1−1 plugins/Dash/verticaljournal.cpp+6−8 plugins/Dash/verticaljournal.h+1−1 plugins/Ubuntu/CMakeLists.txt+1−1 plugins/Wizard/CMakeLists.txt+1 plugins/Wizard/Changelog.cpp+58 plugins/Wizard/Changelog.h+52 plugins/Wizard/System.cpp+64−3 plugins/Wizard/System.h+17 plugins/Wizard/plugin.cpp+2 po/ca.po+261−150 po/de.po+246−132 po/es.po+247−134 po/fr.po+280−164 po/pl.po+253−140 po/unity8.pot+159−84 po/zh_TW.po+285−211 qml/Dash/DashBackground.qml+1−1 qml/Dash/Previews/PreviewWidgetFactory.qml−1 qml/Shell.qml+2−1 qml/Stage/Stage.qml+8−2 qml/Stage/WindowResizeArea.qml+4−1 qml/Wizard/Components/InputMethod.qml+9−9 qml/Wizard/Page.qml+5 qml/Wizard/Pages.qml+48−13 qml/Wizard/Pages/10-welcome-update.qml+137 qml/Wizard/Pages/10-welcome.qml+2 qml/Wizard/Pages/11-changelog.qml+95 qml/Wizard/Pages/30-wifi.qml+1 qml/Wizard/Pages/40-location.qml−290 qml/Wizard/Pages/50-timezone.qml+1 qml/Wizard/Pages/60-account.qml+11−10 qml/Wizard/Pages/70-passwd-type.qml+1 qml/Wizard/Pages/75-report-check.qml−91 qml/Wizard/Pages/76-app-update.qml+246 qml/Wizard/Pages/78-firmware-update.qml.disabled+246 qml/Wizard/Pages/77-system-update.qml → qml/Wizard/Pages/79-system-update.qml qml/Wizard/Pages/80-finished.qml+4−2 qml/Wizard/Pages/ClickUpdateDelegate.qml+26 qml/Wizard/Pages/DownloadHandler.qml+204 qml/Wizard/Pages/GlobalUpdateControls.qml+138 qml/Wizard/Pages/UpdateDelegate.qml+389 qml/Wizard/Pages/here-terms.qml−126 qml/Wizard/Pages/passcode-desktop.qml+13−5 qml/Wizard/Pages/password-set.qml+11−4 qml/Wizard/Wizard.qml+5−2 tests/plugins/CMakeLists.txt+1−1 tests/plugins/Ubuntu/CMakeLists.txt+1−1 tests/plugins/Ubuntu/Gestures/GestureTest.cpp+1−1 tests/plugins/Ubuntu/Gestures/tst_TouchGate.cpp+1−1 tests/plugins/Utils/ModelTest.cpp+1−1 tests/qmltests/CMakeLists.txt+2−2 tests/qmltests/Components/tst_DragHandle.cpp+2−2 tests/qmltests/Wizard/tst_Wizard.qml+1−16 tests/utils/CMakeLists.txt+1−1 tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.cpp−9
Jenkinsfile+29−12
@@ -12,25 +12,40 @@ pipeline {
1212 steps {
1313 parallel(
1414 "Build binary - armhf": {
15− node(label: 'xenial-arm64') {
15+ node(label: 'arm64') {
16+ cleanWs(cleanWhenAborted: true, cleanWhenFailure: true, cleanWhenNotBuilt: true, cleanWhenSuccess: true, cleanWhenUnstable: true, deleteDirs: true)
1617 unstash 'source'
1718 sh '''export architecture="armhf"
19+ export DEBBUILDOPTS="-sa"
20+ export SKIP_ARCH_BUILD=false
21+ export SKIP_SOURCE_REMOVAL=true
1822build-binary.sh'''
19− stash(includes: '*.gz,*.bz2,*.xz,*.deb,*.dsc,*.changes,*.buildinfo,lintian.txt', name: 'build')
23+ stash(includes: '*.gz,*.bz2,*.xz,*.deb,*.dsc,*.changes,*.buildinfo,lintian.txt', name: 'build-armhf')
2024 cleanWs(cleanWhenAborted: true, cleanWhenFailure: true, cleanWhenNotBuilt: true, cleanWhenSuccess: true, cleanWhenUnstable: true, deleteDirs: true)
2125 }
2226
2327
2428 },
25− "Build binary - all": {
26− node(label: 'xenial-arm64') {
29+ "Build binary - arm64": {
30+ node(label: 'arm64') {
31+ cleanWs(cleanWhenAborted: true, cleanWhenFailure: true, cleanWhenNotBuilt: true, cleanWhenSuccess: true, cleanWhenUnstable: true, deleteDirs: true)
2732 unstash 'source'
28− sh '''export architecture="armhf"
29− export DEBBUILDOPTS="-A"
33+ sh '''export architecture="arm64"
34+ export DEBBUILDOPTS="-sa"
3035 export SKIP_ARCH_BUILD=false
3136 export SKIP_SOURCE_REMOVAL=true
32− build-binary.sh'''
33− stash(includes: '*.gz,*.bz2,*.xz,*.deb,*.dsc,*.changes,*.buildinfo,lintian.txt', name: 'build-all')
37+ #build-binary.sh'''
38+ stash(includes: '*.gz,*.bz2,*.xz,*.deb,*.dsc,*.changes,*.buildinfo,lintian.txt', name: 'build-arm64')
39+ cleanWs(cleanWhenAborted: true, cleanWhenFailure: true, cleanWhenNotBuilt: true, cleanWhenSuccess: true, cleanWhenUnstable: true, deleteDirs: true)
40+ }
41+ },
42+ "Build binary - amd64": {
43+ node(label: 'amd64') {
44+ cleanWs(cleanWhenAborted: true, cleanWhenFailure: true, cleanWhenNotBuilt: true, cleanWhenSuccess: true, cleanWhenUnstable: true, deleteDirs: true)
45+ unstash 'source'
46+ sh '''export architecture="amd64"
47+ #build-binary.sh'''
48+ stash(includes: '*.gz,*.bz2,*.xz,*.deb,*.dsc,*.changes,*.buildinfo,lintian.txt', name: 'build-amd64')
3449 cleanWs(cleanWhenAborted: true, cleanWhenFailure: true, cleanWhenNotBuilt: true, cleanWhenSuccess: true, cleanWhenUnstable: true, deleteDirs: true)
3550 }
3651 }
@@ -39,11 +54,12 @@ build-binary.sh'''
3954 }
4055 stage('Results') {
4156 steps {
42− unstash 'build'
43− unstash 'build-all'
57+ cleanWs(cleanWhenAborted: true, cleanWhenFailure: true, cleanWhenNotBuilt: true, cleanWhenSuccess: true, cleanWhenUnstable: true, deleteDirs: true)
58+ unstash 'build-armhf'
59+ unstash 'build-arm64'
60+ unstash 'build-amd64'
4461 archiveArtifacts(artifacts: '*.gz,*.bz2,*.xz,*.deb,*.dsc,*.changes,*.buildinfo', fingerprint: true, onlyIfSuccessful: true)
45− sh '''export architecture="armhf"
46−/usr/bin/build-repo.sh'''
62+ sh '''/usr/bin/build-repo.sh'''
4763 }
4864 }
4965 stage('Cleanup') {
@@ -53,3 +69,4 @@ build-binary.sh'''
5369 }
5470 }
5571}
72+
README.mdnew file+51
@@ -0,0 +1,51 @@
1+# Unity8
2+
3+A convergent desktop environment.
4+
5+
6+[![Unity 8](http://ubuntufun.de/wp-content/uploads/2016/05/screenshot20160518_232322980.png)](https://unity8.io)
7+
8+
9+### How to install
10+
11+The latest development preview of Unity8 for desktop can be installed on Ubuntu 16.04 (xenial) and 18.04 (bionic) as follows:
12+
13+1. Run the install script
14+```
15+bash <(wget -qO- https://raw.githubusercontent.com/ubports/unity8-desktop-install-tools/master/install.sh)
16+```
17+2. Reboot, select "unity8" at the login prompt, and enjoy :)
18+
19+
20+**NOTE:** The above installation instructions currently only work on Ubuntu 16.04 (xenial) and 18.04 (bionic). Please be aware that the script will install the latest *development preview* of Unity8 for desktop. ***Expect bugs!*** Only install this preview if you understand the risks and are willing/able to fix your system if the preview breaks anything. You are advised *not* to install this preview onto a production system.
21+
22+See [CODING](CODING) for build instructions.
23+
24+
25+### Where to report issues
26+
27+Issues related to the version of Unity8 for desktop (the latest development preview) installed using the above instructions should be reported on the [Unity8 issue tracker](https://github.com/ubports/unity8/issues) in *this* repository.
28+
29+Note that issues related to the version of Unity8 that currently runs on Ubuntu Touch devices should *NOT* be reported in this repository, but instead should be reported on the [Ubuntu Touch issue tracker](https://github.com/ubports/ubuntu-touch/issues). This will change once Ubuntu Touch moves to the latest version of Unity8.
30+
31+
32+### What works / what does not work
33+
34+*This list is incomplete, please help improve it*
35+
36+What works:
37+- Most Wayland apps work
38+- Many report being able to log in using LightDM, but may require a few attempts
39+
40+Does not work:
41+- Most Xapps don't (yet) work
42+- Proprietary drivers don't (yet) work
43+- Many report being unable to log in using GDM
44+
45+
46+### Get involved
47+
48+* [Kanban-Board](https://github.com/ubports/unity8/projects/1)
49+* If you are interesting in helping us in any way you can join [Unity8 Forum](https://forums.ubports.com/category/36/unity8).
50+* For reporting bugs or filing feature-requests, please use the project’s [issues page](https://github.com/ubports/unity8/issues).
51+* For IM you can join our Telegram group [for Developer users](https://t.me/UBports_Unity8).
data/CMakeLists.txt+1
@@ -31,5 +31,6 @@ install(FILES
3131add_custom_target(pkgversion ALL COMMAND dpkg-parsechangelog -l${CMAKE_SOURCE_DIR}/debian/changelog --show-field version > ${CMAKE_CURRENT_BINARY_DIR}/version)
3232
3333install(FILES com.canonical.Unity8.gschema.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/glib-2.0/schemas)
34+install(FILES com.canonical.Unity.gschema.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/glib-2.0/schemas)
3435install(FILES unity8-dash.url-dispatcher DESTINATION ${CMAKE_INSTALL_DATADIR}/url-dispatcher/urls)
3536install(FILES ${CMAKE_CURRENT_BINARY_DIR}/version DESTINATION ${CMAKE_INSTALL_LOCALSTATEDIR}/lib/unity8)
data/com.canonical.Unity.gschema.xmlnew file+255
@@ -0,0 +1,255 @@
1+<schemalist>
2+ <enum id="form-factor-enum">
3+ <value nick="Automatic" value="0" />
4+ <value nick="Desktop" value="1" />
5+ <value nick="Netbook" value="2" />
6+ <value nick="TV" value="3" />
7+ </enum>
8+ <enum id="home-expanded-enum">
9+ <value nick="Not Expanded" value="0" />
10+ <value nick="Expanded" value="1" />
11+ </enum>
12+ <enum id="launcher-position-enum">
13+ <value nick="Left" value="0" />
14+ <value nick="Bottom" value="1" />
15+ </enum>
16+ <enum id="desktop-type-enum">
17+ <value nick="Ubuntu" value="0" />
18+ <value nick="UbuntuKylin" value="1" />
19+ </enum>
20+
21+ <schema path="/com/canonical/unity/" id="com.canonical.Unity" gettext-domain="unity">
22+ <key enum="form-factor-enum" name="form-factor">
23+ <default>"Automatic"</default>
24+ <summary>The form factor Unity should target.</summary>
25+ <description>The form factor chosen will affect the size and appearance of the Dash, Launcher and also the Window Management behaviour.</description>
26+ </key>
27+ <key enum="home-expanded-enum" name="home-expanded">
28+ <default>"Expanded"</default>
29+ <summary>Whether the home screen should be expanded.</summary>
30+ <description>Whether the home screen should be expanded.</description>
31+ </key>
32+ <key enum="desktop-type-enum" name="desktop-type">
33+ <default>"Ubuntu"</default>
34+ <summary>The current desktop name.</summary>
35+ <description>The current desktop name.</description>
36+ </key>
37+ <key type="i" name="minimize-count">
38+ <default>0</default>
39+ <summary>Number of times a normal window has been minimized.</summary>
40+ <description>This is used to adjust the animation speed by making it progressively faster the more it is used.</description>
41+ </key>
42+ <key type="i" name="minimize-fast-duration">
43+ <default>300</default>
44+ <summary>The duration for the minimize animation when it is at its fastest setting.</summary>
45+ <description>This is the duration that the minimize animation will have when it has been used more than an number of times equal minimize-speed-threshold.</description>
46+ </key>
47+ <key type="i" name="minimize-slow-duration">
48+ <default>800</default>
49+ <summary>The duration for the minimize animation when it is at its slowest setting.</summary>
50+ <description>This is the duration that the minimize animation will have when it has never been used.</description>
51+ </key>
52+ <key type="i" name="minimize-speed-threshold">
53+ <default>100</default>
54+ <summary>The number of minimizations required to reach maximum speed.</summary>
55+ <description>The speed of the minimize animation will progressively get faster as minimize-count approaches this value.</description>
56+ </key>
57+ <key type="b" name="double-click-activate">
58+ <default>true</default>
59+ <summary>Enable/Disable dash result double-click activation.</summary>
60+ <description>This is used to enable/disable double-click result activation in the dash. Double-click to activate, single click preview</description>
61+ </key>
62+ <key type="b" name="integrated-menus">
63+ <default>false</default>
64+ <summary>Enable/Disable the integrated menus in Unity.</summary>
65+ <description>When this is enabled, the application menus will be shown
66+ on the window decoration, otherwise they will be always shown on the
67+ unity top panel</description>
68+ </key>
69+ <key type="u" name="show-menus-now-delay">
70+ <default>180</default>
71+ <range min="0" max="5000"/>
72+ <summary>Delay (in ms) before showing the menus when pressing Alt</summary>
73+ <description>This allows tune the delay before presenting unity menus
74+ (in non always-show-menus mode).</description>
75+ </key>
76+ <key type="b" name="always-show-menus">
77+ <default>false</default>
78+ <summary>Toggle the menu visibility based on mouse hovering.</summary>
79+ <description>When this is enabled, the application menus will be always
80+ shown (on the window decoration or in the unity panel, depending whether
81+ integrated menus are enabled), otherwise they will be shown only when
82+ the mouse cursor is over the relative mouse area.</description>
83+ </key>
84+ <key type="as" name="whitelist-repeated-keys">
85+ <default>[
86+ 'XF86KbdBrightnessUp',
87+ 'XF86KbdBrightnessDown',
88+ 'XF86MonBrightnessUp',
89+ 'XF86MonBrightnessDown',
90+ 'XF86AudioRaiseVolume',
91+ 'XF86AudioLowerVolume'
92+ ]</default>
93+ <summary>List of keycodes that should be processed even if auto-repated.</summary>
94+ <description>These keycodes are processed even if they are auto-repeated.</description>
95+ </key>
96+ <key type="b" name="pam-check-account-type">
97+ <default>false</default>
98+ <summary>Enable/Disable PAM account checking</summary>
99+ <description>Whether PAM should check the result of account modules
100+ when authenticating. Only do this if you have account
101+ configured properly on your system.</description>
102+ </key>
103+ <key type="b" name="lowgfx">
104+ <default>false</default>
105+ <summary>Enable/Disable Low Graphics Mode</summary>
106+ <description>Whether Unity runs in Low Graphics Mode.</description>
107+ </key>
108+ </schema>
109+ <schema path="/com/canonical/unity/interface/" id="com.canonical.Unity.Interface" gettext-domain="unity">
110+ <key type="d" name="text-scale-factor">
111+ <default>1.0</default>
112+ <range min="0.5" max="3.0"/>
113+ <summary>Font scaling for unity and applications.</summary>
114+ <description>This value defines the global font scaling used by both
115+ unity and applications. It will match the current system font scaling.</description>
116+ </key>
117+ <key type="d" name="cursor-scale-factor">
118+ <default>1.0</default>
119+ <range min="0.5" max="3.0"/>
120+ <summary>Mouse cursor scaling.</summary>
121+ <description>This value defines the global mouse cursor scaling used by both
122+ unity and applications. Changing this value allows to use a custom scaling
123+ for the mouse cursor.</description>
124+ </key>
125+ <key type="s" name="app-scale-factor-monitor">
126+ <default>''</default>
127+ <summary>The name of the monitor that controls the global app scaling factor.</summary>
128+ <description>This value defines the monitor that unity will use (if found) as reference
129+ for scaling all the applications.</description>
130+ </key>
131+ <key type="b" name="app-fallback-to-maximum-scale-factor">
132+ <default>true</default>
133+ <summary>Use the maximum per-monitor scale-factor as application scale factor if no target monitor is found.</summary>
134+ <description>When this is enabled, the applications scale factor will match
135+ the scale factor of the monitor with the greater value, in case the monitor
136+ defined in 'app-scale-factor-monitor' is not provided or available.</description>
137+ </key>
138+ </schema>
139+ <schema path="/com/canonical/unity/launcher/" id="com.canonical.Unity.Launcher" gettext-domain="unity">
140+ <key type="as" name="favorites">
141+ <default>[
142+ 'application://ubiquity.desktop',
143+ 'application://org.gnome.Nautilus.desktop',
144+ 'application://firefox.desktop',
145+ 'application://libreoffice-writer.desktop',
146+ 'application://libreoffice-calc.desktop',
147+ 'application://libreoffice-impress.desktop',
148+ 'application://org.gnome.Software.desktop',
149+ 'application://ubuntu-amazon-default.desktop',
150+ 'application://unity-control-center.desktop',
151+ 'unity://running-apps',
152+ 'unity://expo-icon',
153+ 'unity://devices'
154+ ]</default>
155+ <summary>List of items that should be shown by default in the launcher</summary>
156+ <description>These items can be: application://desktop-id.desktop, device://uiid and unity://special-id (including: unity://running-apps (icons of running applications) unity://devices (icons of attached devices), unity://expo-icon (icon of the workspace switcher) and unity://desktop-icon (the show-desktop icon)); the order of this list determines the launcher item's position.</description>
157+ </key>
158+ <key type="as" name="items">
159+ <default>[
160+ 'application:///dialer-app.desktop',
161+ 'application:///messaging-app.desktop',
162+ 'application:///address-book-app.desktop',
163+ 'application:///ubuntu-system-settings.desktop',
164+ 'appid://openstore.openstore-team/openstore/current-user-version',
165+ 'appid://com.ubuntu.camera/camera/current-user-version',
166+ 'appid://com.ubuntu.gallery/gallery/current-user-version',
167+ 'application:///webbrowser-app.desktop'
168+ ]</default>
169+ <summary>List of items that should be shown by default in the launcher</summary>
170+ <description>These items can be: application:///desktop-id.desktop or appid://package/app/current-user-version.</description>
171+ </key>
172+ <key type="s" name="favorite-migration">
173+ <default>''</default>
174+ <summary>Version of last migration done</summary>
175+ <description>This is a detection key for the favorite migration script to know whether the needed migration is done or not.</description>
176+ </key>
177+ <key enum="launcher-position-enum" name="launcher-position">
178+ <default>"Left"</default>
179+ <summary>The position of launcher.</summary>
180+ <description>The position of launcher.</description>
181+ </key>
182+ </schema>
183+ <schema path="/com/canonical/unity/devices/" id="com.canonical.Unity.Devices" gettext-domain="unity">
184+ <key type="as" name="blacklist">
185+ <default>[]</default>
186+ <summary>List of device uuid blacklist from the launcher.</summary>
187+ <description>These devices are not shown in the launcher by default.</description>
188+ </key>
189+ </schema>
190+ <schema path="/com/canonical/unity/dash/" id="com.canonical.Unity.Dash" gettext-domain="unity">
191+ <key type="as" name="scopes">
192+ <default>[ 'home.scope', 'applications.scope', 'files.scope', 'video.scope', 'music.scope', 'photos.scope', 'social.scope' ]</default>
193+ <summary>List of scope ids specifying which scopes should be created and the order to display them in.</summary>
194+ <description>The scopes listed in the scope bar will be ordered according to this list.</description>
195+ </key>
196+ <key type="as" name="favorite-scopes">
197+ <default>[ 'scope://clickscope', 'scope://musicaggregator', 'scope://videoaggregator' ]</default>
198+ <summary>List of scope queries specifying what should be displayed in the dash.</summary>
199+ <description>List of favorite scopes displayed in the dash.</description>
200+ </key>
201+ </schema>
202+ <schema path="/com/canonical/unity/decorations/" id="com.canonical.Unity.Decorations" gettext-domain="unity">
203+ <key type="u" name="grab-wait">
204+ <default>175</default>
205+ <range min="0" max="1000"/>
206+ <summary>Milliseconds to wait before considering a mouse pressure a grab</summary>
207+ <description>The number of ms to wait before starting the window movement (and then
208+ showing the proper mouse cursor, and grabbing the window)</description>
209+ </key>
210+ </schema>
211+ <schema path="/com/canonical/unity/integrated-menus/" id="com.canonical.Unity.IntegratedMenus" gettext-domain="unity">
212+ <key type="u" name="click-movement-threshold">
213+ <default>15</default>
214+ <range min="0" max="30"/>
215+ <summary>Number of pixels to ignore on mouse pressure</summary>
216+ <description>This value define how many pixels the user can move the mouse
217+ when holding the mouse button, before we consider his action a movement
218+ (to grab the window).</description>
219+ </key>
220+ <key type="u" name="double-click-wait">
221+ <default>0</default>
222+ <range min="0" max="300"/>
223+ <summary>Milliseconds to wait before activating a menu after mouse release</summary>
224+ <description>The number of ms to wait after a mouse button release event before considering
225+ it a click. When this value is greater than 0, then it's possible to maximize
226+ a window by double-clicking on its menus if the second click happens before the
227+ specified value of ms is elapsed</description>
228+ </key>
229+ <key type="b" name="unfocused-windows-popup">
230+ <default>true</default>
231+ <summary>Whether to pop-up a menu when clicking over unfocused windows entries</summary>
232+ <description>By disabling this setting you can make unity to only focus a window
233+ when clicking over unfocused menu entries</description>
234+ </key>
235+ </schema>
236+ <schema path="/com/canonical/unity/gestures/" id="com.canonical.Unity.Gestures" gettext-domain="unity">
237+ <key type="b" name="launcher-drag">
238+ <default>true</default>
239+ <summary>Multi-touch gesture to reveal the launcher.</summary>
240+ <description>When this is enabled, a 4 finger swipe from left to right will reveal launcher,
241+ provided that the launcher is set to auto-hide.</description>
242+ </key>
243+ <key type="b" name="dash-tap">
244+ <default>true</default>
245+ <summary>Multi-touch gesture to open the dash.</summary>
246+ <description>When this is enabled, a 4 finger tap will open the dash.</description>
247+ </key>
248+ <key type="b" name="windows-drag-pinch">
249+ <default>true</default>
250+ <summary>Multi-touch gestures to manage the windows.</summary>
251+ <description>When this is enabled, 3 finger gestures such as drag, and pinch, will
252+ help manage the windows.</description>
253+ </key>
254+ </schema>
255+</schemalist>
data/unity8.conf+33−32
@@ -8,31 +8,44 @@ stop on desktop-end
88
99kill timeout 120
1010
11+#
12+# Ensure the shell always gets unthrottled touch events, so that applications
13+# who want full speed low-latency input can get it (LP: #1497105) and so that
14+# apps can use QML touch compression safely (the QML touch compression
15+# algorithm does not support nesting well - LP: #1486341, LP: #1556763 - so
16+# must be fed by the raw input event stream from Unity8).
17+#
18+env QML_NO_TOUCH_COMPRESSION=1
19+
1120respawn
1221expect stop
1322
23+# FIXME Create an autopilot test that makes sure start+stop and restart
24+# work fine at least 2 times
25+
1426pre-start script
1527 # Tell unity-mir to raise SIGSTOP after we start
1628 initctl set-env UNITY_MIR_EMITS_SIGSTOP=1
1729
18− if [ -n "$MIR_SOCKET" ]; then
19− # FIXME Create an autopilot test that makes sure start+stop and restart
20− # work fine at least 2 times
21− # Save original value of MIR_SOCKET in case we are stopped,
22− # as we modify the variable for future jobs, including ourself.
23− UNITY_MIR_SOCKET=$(initctl get-env --global MIR_SOCKET)
24− initctl set-env --global UNITY_MIR_SOCKET=$UNITY_MIR_SOCKET
30+ # Save original value of MIR_SOCKET so that we can restore it when stopped,
31+ # as we modify the variable for future jobs, including ourself.
32+ initctl set-env UNITY_MIR_SOCKET=$MIR_SOCKET
2533
26− # Point unity8 at unity-system-compositor
34+ # Decide where we are going to put our own socket file
35+ if [ -n "$SNAP" ]; then
36+ # In snappy, we want to hard code our path because our apparmor profile
37+ # only lets us put the socket in one place. And consumers expect it
38+ # there.
39+ MIR_SERVER_FILE=/run/user/$(id -u)/mir_socket
40+ else
2741 MIR_SERVER_FILE=$XDG_RUNTIME_DIR/mir_socket
28− initctl set-env MIR_SERVER_FILE=$MIR_SERVER_FILE
29− initctl set-env MIR_SERVER_HOST_SOCKET=$UNITY_MIR_SOCKET
30−
31− # Point all future jobs in this session to our Mir socket instead of
32− # unity-system-compositor's socket.
33− initctl set-env --global MIR_SOCKET=$MIR_SERVER_FILE
34− gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.UpdateActivationEnvironment "@a{ss} {'MIR_SOCKET': '$MIR_SERVER_FILE'}"
3542 fi
43+ initctl set-env MIR_SERVER_FILE=$MIR_SERVER_FILE
44+
45+ # Point all future jobs in this session to our Mir socket instead of
46+ # unity-system-compositor's socket.
47+ initctl set-env --global MIR_SOCKET=$MIR_SERVER_FILE
48+ gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.UpdateActivationEnvironment "@a{ss} {'MIR_SOCKET': '$MIR_SERVER_FILE'}"
3649
3750 # Remove the normal and trusted sockets if still there
3851 if [ -S "$MIR_SERVER_FILE" ]; then
@@ -46,6 +59,7 @@ pre-start script
4659 initctl set-env --global MIR_SERVER_PROMPT_FILE=1
4760
4861 # Disable Qt's stuttering 'touch compression' to fix scrolling smoothness
62+
4963 # issues (LP: #1486341, LP: #1556763). As a bonus, this eliminates most of
5064 # the lag seen in the indicator panel pull-down (LP: #1488327) and also
5165 # reduces lag seen in apps:
@@ -54,7 +68,6 @@ pre-start script
5468 # Workaround for text not rendering correctly
5569 initctl set-env --global QT_ENABLE_GLYPH_CACHE_WORKAROUND=1
5670
57−
5871 if [ "$XDG_SESSION_DESKTOP" = "ubuntu-touch" ]; then
5972 # On Ubuntu Touch, we currently use a trick where we auto-login the
6073 # user without a LightDM greeter at all. In this case, we want to
@@ -66,32 +79,20 @@ pre-start script
6679 fi
6780
6881 # HACK! WORKAROUND FOR HALIUM MISSING UBUNTU_PLATFORM_API
69− initctl set-env --global UBUNTU_PLATFORM_API_BACKEND=test.so.3
70− initctl set-env --global UBUNTU_PLATFORM_API_SENSOR_TEST=/etc/ubuntusensors/test.sensors
82+ if [ ! -f /system/lib/libubuntu_application_api.so ]; then
83+ initctl set-env --global UBUNTU_PLATFORM_API_BACKEND=test.so.3
84+ initctl set-env --global UBUNTU_PLATFORM_API_SENSOR_TEST=/etc/ubuntusensors/test.sensors
85+ fi
7186end script
7287
7388exec ${BINARY:-unity8} --mode=$MODE $ARGS
7489
7590post-start script
76− # If no MIR_SOCKET was defined on launch, we try to set one here
77− if [ -z "$(initctl get-env --global UNITY_MIR_SOCKET)" ]; then
78− if [ -S "$XDG_RUNTIME_DIR/mir_socket" ]; then
79− mir_socket=$XDG_RUNTIME_DIR/mir_socket
80− elif [ -S "/tmp/mir_socket" ]; then
81− mir_socket=/tmp/mir_socket
82− fi
83−
84− if [ -n "$mir_socket" ]; then
85− initctl set-env --global MIR_SOCKET="$mir_socket"
86− fi
87− fi
88−
8991 initctl emit --no-wait indicator-services-start
9092end script
9193
9294post-stop script
9395 initctl set-env --global MIR_SOCKET=$UNITY_MIR_SOCKET
94− initctl unset-env --global UNITY_MIR_SOCKET
9596 initctl unset-env --global MIR_SERVER_PROMPT_FILE
9697 initctl emit application-end
9798end script
debian/changelog+36
@@ -1,3 +1,39 @@
1+unity8 (8.17+ubports5) xenial; urgency=medium
2+
3+ * Yet more papercuts in Wizard update interaction:
4+ * It's not possible to skip the app update page while it's checking for
5+ updates, so make it say "Please wait..." while checking
6+ * Make Changelog page indicate that the next page is loading after the next
7+ button has been clicked. This avoids skipping the app update page.
8+
9+-- Dalton Durst <dalton@ubports.com> Mon, 8 Oct 2018 13:32:13 -0500
10+
11+unity8 (8.17+ubports4) xenial; urgency=medium
12+
13+ * Replace dependency on ubuntu-wallpapers with ubports-wallpapers
14+
15+ -- Dalton Durst <dalton@ubports.com> Fri, 5 Oct 2018 13:28:20 -0500
16+
17+unity8 (8.17+ubports3) xenial; urgency=medium
18+
19+ * Fix papercuts in Wizard update page interaction:
20+ * Remove "Stop" button for app update check
21+ * Make "not connected to internet" message more clear
22+
23+ -- Dalton Durst <dalton@ubports.com> Fri, 28 Sep 2018 14:08:00 -0500
24+
25+unity8 (8.17+ubports2) xenial; urgency=medium
26+
27+ * Fix for https://github.com/ubports/ubuntu-touch/issues/624
28+
29+ -- Dalton Durst <dalton@ubports.com> Fri, 1 Jun 2018 16:14:11 -0500
30+
31+unity8 (8.17+ubports1) UNRELEASED; urgency=medium
32+
33+ * No change rebuild to generate sources in ubports repo
34+
35+ -- Dan Chapman <dan@ubports.com> Tue, 20 Feb 2018 07:09:11 +0000
36+
137unity8 (8.16+ubports) xenial; urgency=medium
238
339 * Imported to UBports
debian/control+15−4
@@ -26,7 +26,6 @@ Build-Depends: cmake,
2626 libhardware-dev,
2727 liblightdm-qt5-3-dev,
2828 libpam0g-dev,
29− libpay2-dev,
3029 libpulse-dev,
3130 libqmenumodel-dev (>= 0.2.10),
3231 libqt5svg5-dev,
@@ -159,12 +158,13 @@ Depends: qml-module-qtquick-layouts,
159158 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
160159 qttranslations5-l10n,
161160 ubuntu-thumbnailer-impl-0,
162− ubuntu-wallpapers,
161+ ubports-wallpapers,
163162 unity-application-impl-22,
164163 unity-notifications-impl-3,
165164 unity-plugin-scopes | unity-scopes-impl,
166165 unity-scopes-impl-12,
167166 unity8-fake-env | unity-application-impl,
167+ unity8-schemas,
168168 ${misc:Depends},
169169Breaks: unity8 (<< 7.86),
170170Replaces: unity8 (<< 7.86),
@@ -219,8 +219,7 @@ Pre-Depends: ${misc:Pre-Depends},
219219Depends: accountsservice-ubuntu-schemas (>= 0.0.7),
220220 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
221221 libhardware2,
222− pay-service,
223− unity-schemas (>= 7.3.1+14.10.20140915),
222+ unity8-schemas,
224223 qtdeclarative5-gsettings1.0,
225224 qml-module-qtmultimedia,
226225 ${misc:Depends},
@@ -233,6 +232,18 @@ Description: Unity 8 private libs
233232 This package contains the private libraries for QML and other components
234233 only used by the shell.
235234
235+
236+Package: unity8-schemas
237+Architecture: all
238+Multi-Arch: foreign
239+Depends: ${misc:Depends},
240+Replaces: unity-schemas (>= 7.3.1+14.10.20140915),
241+Breaks: unity-schemas (>= 7.3.1+14.10.20140915),
242+Description: Unity 8 schemas
243+ The Unity 8 shell is the primary user interface for Ubuntu devices.
244+ .
245+ This package contains the configuration schemas used by unity.
246+
236247Package: unity8-doc
237248Section: doc
238249Architecture: all
debian/unity8-common.install−1
@@ -1,4 +1,3 @@
1−usr/share/glib-2.0/schemas
21usr/share/locale
32usr/share/unity8/Components
43usr/share/unity8/Dash
debian/unity8-schemas.installnew file+1
@@ -0,0 +1 @@
1+usr/share/glib-2.0/schemas
plugins/Dash/abstractdashview.cpp+1−1
@@ -236,7 +236,7 @@ QQuickItem *AbstractDashView::createItem(int modelIndex, bool asynchronous)
236236 return nullptr;
237237
238238 m_asyncRequestedIndex = -1;
239− QObject* object = m_delegateModel->object(modelIndex, asynchronous);
239+ QObject* object = m_delegateModel->object(modelIndex, asynchronous ? QQmlIncubator::Asynchronous : QQmlIncubator::AsynchronousIfNested);
240240 QQuickItem *item = qmlobject_cast<QQuickItem*>(object);
241241 if (!item) {
242242 if (object) {
plugins/Dash/listviewwithpageheader.cpp+4−6
@@ -871,7 +871,7 @@ ListViewWithPageHeader::ListItem *ListViewWithPageHeader::createItem(int modelIn
871871 return nullptr;
872872
873873 m_asyncRequestedIndex = -1;
874− QObject* object = m_delegateModel->object(modelIndex, asynchronous);
874+ QObject* object = m_delegateModel->object(modelIndex, asynchronous ? QQmlIncubator::Asynchronous : QQmlIncubator::AsynchronousIfNested);
875875 QQuickItem *item = qmlobject_cast<QQuickItem*>(object);
876876 if (!item) {
877877 if (object) {
@@ -1141,11 +1141,10 @@ void ListViewWithPageHeader::contentYAnimationRunningChanged(bool running)
11411141 }
11421142}
11431143
1144−/*
1145−void ListViewWithPageHeader::itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry)
1144+void ListViewWithPageHeader::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &oldGeometry)
11461145{
1147− const qreal heightDiff = newGeometry.height() - oldGeometry.height();
1148− if (heightDiff != 0) {
1146+ if (change.heightChange()) {
1147+ const qreal heightDiff = height() - oldGeometry.height();
11491148 if (!m_visibleItems.isEmpty()) {
11501149 ListItem *firstItem = m_visibleItems.first();
11511150 const auto prevFirstItemY = firstItem->y();
@@ -1166,7 +1165,6 @@ void ListViewWithPageHeader::itemGeometryChanged(QQuickItem *item, const QRectF
11661165 m_contentHeightDirty = true;
11671166 }
11681167}
1169−*/
11701168
11711169void ListViewWithPageHeader::itemImplicitHeightChanged(QQuickItem *item)
11721170{
plugins/Dash/listviewwithpageheader.h+1−1
@@ -116,7 +116,7 @@ protected:
116116 void viewportMoved(Qt::Orientations orient) override;
117117 qreal minYExtent() const override;
118118 qreal maxYExtent() const override;
119− //void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override;
119+ void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &oldGeometry) override;
120120 void itemImplicitHeightChanged(QQuickItem *item) override;
121121 void updatePolish() override;
122122
plugins/Dash/verticaljournal.cpp+6−8
@@ -271,11 +271,9 @@ void VerticalJournal::processModelRemoves(const QVector<QQmlChangeSet::Change> &
271271 }
272272}
273273
274−
275−//void VerticalJournal::itemGeometryChanged(QQuickItem * /*item*/, const QRectF &newGeometry, const QRectF &oldGeometry)
276−//{
277−// const qreal heightDiff = newGeometry.height() - oldGeometry.height();
278−// if (heightDiff != 0) {
279−// relayout();
280−// }
281−//}
274+void VerticalJournal::itemGeometryChanged(QQuickItem * /*item*/, QQuickGeometryChange change, const QRectF &)
275+{
276+ if (change.verticalChange()) {
277+ relayout();
278+ }
279+}
plugins/Dash/verticaljournal.h+1−1
@@ -66,7 +66,7 @@ public:
6666 void setColumnWidth(qreal columnWidth);
6767
6868protected:
69−// void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override;
69+ void itemGeometryChanged(QQuickItem * /*item*/, QQuickGeometryChange change, const QRectF &oldGeometry) override;
7070
7171Q_SIGNALS:
7272 void columnWidthChanged();
plugins/Ubuntu/CMakeLists.txt+1−1
@@ -1,4 +1,4 @@
11add_subdirectory(Gestures)
22add_subdirectory(DownloadDaemonListener)
3−add_subdirectory(Payments)
3+#add_subdirectory(Payments)
44add_subdirectory(SystemImage)
plugins/Wizard/CMakeLists.txt+1
@@ -10,6 +10,7 @@ add_library(Wizard-qml MODULE
1010 timezonemodel.cpp
1111 Status.cpp
1212 keyboardLayoutsModel.cpp
13+ Changelog.cpp
1314)
1415
1516qt5_use_modules(Wizard-qml DBus Qml)
plugins/Wizard/Changelog.cppnew file+58
@@ -0,0 +1,58 @@
1+/*
2+ * Copyright (C) 2018 The UBports project
3+ * Written by: Marius Gripsgard <marius@ubports.com>
4+ *
5+ * This program is free software: you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 3, as published
7+ * by the Free Software Foundation.
8+ *
9+ * This program is distributed in the hope that it will be useful, but
10+ * WITHOUT ANY WARRANTY; without even the implied warranties of
11+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
12+ * PURPOSE. See the GNU General Public License for more details.
13+ *
14+ * You should have received a copy of the GNU General Public License along
15+ * with this program. If not, see <http://www.gnu.org/licenses/>.
16+ */
17+
18+#include "Changelog.h"
19+
20+#include <QDir>
21+#include <QFile>
22+#include <QTextStream>
23+
24+Changelog::Changelog()
25+ : QObject()
26+{
27+ readChangelog();
28+ if(QFile::exists(changelogPath()))
29+ m_fsWatcher.addPath(changelogPath());
30+ connect(&m_fsWatcher, &QFileSystemWatcher::fileChanged, this, &Changelog::watcherFileChanged);
31+}
32+
33+QString Changelog::changelogPath()
34+{
35+ return "/usr/share/ubports/changelogs/current";
36+}
37+
38+QString Changelog::text() const
39+{
40+ return m_text;
41+}
42+
43+void Changelog::readChangelog()
44+{
45+ if(!QFile::exists(changelogPath()))
46+ return;
47+ QFile f(changelogPath());
48+ if (!f.open(QFile::ReadOnly | QFile::Text)) return;
49+ QTextStream in(&f);
50+ m_text = in.readAll();
51+ Q_EMIT textChanged();
52+}
53+
54+void Changelog::watcherFileChanged()
55+{
56+ readChangelog();
57+ m_fsWatcher.removePath(changelogPath());
58+}
plugins/Wizard/Changelog.hnew file+52
@@ -0,0 +1,52 @@
1+/*
2+ * Copyright (C) 2018 The UBports project
3+ * Written by: Marius Gripsgard <marius@ubports.com>
4+ *
5+ * This program is free software: you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 3, as published
7+ * by the Free Software Foundation.
8+ *
9+ * This program is distributed in the hope that it will be useful, but
10+ * WITHOUT ANY WARRANTY; without even the implied warranties of
11+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
12+ * PURPOSE. See the GNU General Public License for more details.
13+ *
14+ * You should have received a copy of the GNU General Public License along
15+ * with this program. If not, see <http://www.gnu.org/licenses/>.
16+ */
17+
18+#ifndef WIZARD_CHANGELOG_H
19+#define WIZARD_CHANGELOG_H
20+
21+#include <QFileSystemWatcher>
22+#include <QObject>
23+#include <QString>
24+
25+class Changelog : public QObject
26+{
27+ Q_OBJECT
28+ Q_PROPERTY(QString text READ text NOTIFY textChanged)
29+
30+public:
31+ Changelog();
32+ ~Changelog() = default;
33+
34+ QString text() const;
35+
36+Q_SIGNALS:
37+ void textChanged();
38+
39+private Q_SLOTS:
40+ void watcherFileChanged();
41+
42+private:
43+ Q_DISABLE_COPY(Changelog)
44+
45+ static QString changelogPath();
46+ void readChangelog();
47+
48+ QFileSystemWatcher m_fsWatcher;
49+ QString m_text;
50+};
51+
52+#endif
plugins/Wizard/System.cpp+64−3
@@ -1,4 +1,5 @@
11/*
2+ * Copyright (C) 2018 The UBports project
23 * Copyright (C) 2014-2016 Canonical Ltd.
34 *
45 * This program is free software: you can redistribute it and/or modify it
@@ -46,29 +47,89 @@ QString System::wizardEnabledPath()
4647 return QDir::home().filePath(QStringLiteral(".config/ubuntu-system-settings/wizard-has-run"));
4748}
4849
50+QString System::currentFrameworkPath()
51+{
52+ QFileInfo f("/usr/share/click/frameworks/current");
53+ return f.canonicalFilePath();
54+}
55+
56+/*
57+wizardEnabled and isUpdate logic
58+
59+if wizard-has-run does NOT exist == is new install
60+if wizard-has-run exists but does NOT match current framework == is update
61+if wizard-has-run exists but does match current framework == show no wizard
62+*/
63+
64+bool System::wizardPathExists() {
65+ return QFile::exists(wizardEnabledPath());
66+}
67+
4968bool System::wizardEnabled() const
5069{
51− return !QFile::exists(wizardEnabledPath());
70+ if (!wizardPathExists()) {
71+ return true;
72+ }
73+ return isUpdate();
74+}
75+
76+QString System::readCurrentFramework()
77+{
78+ QFile f(currentFrameworkPath());
79+ if (!f.open(QFile::ReadOnly | QFile::Text)) return "";
80+ QTextStream in(&f);
81+ return in.readAll();
82+}
83+
84+QString System::readWizardEnabled()
85+{
86+ QFile f(wizardEnabledPath());
87+ if (!f.open(QFile::ReadOnly | QFile::Text)) return "";
88+ QTextStream in(&f);
89+ return in.readAll();
90+}
91+
92+QString System::version() const
93+{
94+ return readCurrentFramework();
95+}
96+
97+bool System::isUpdate() const
98+{
99+ if (!wizardPathExists()) {
100+ return false;
101+ }
102+
103+ return readCurrentFramework() != readWizardEnabled();
52104}
53105
54106void System::setWizardEnabled(bool enabled)
55107{
56− if (wizardEnabled() == enabled)
108+ if (wizardEnabled() == enabled && !isUpdate())
57109 return;
58110
59111 if (enabled) {
60112 QFile::remove(wizardEnabledPath());
61113 } else {
62114 QDir(wizardEnabledPath()).mkpath(QStringLiteral(".."));
63− QFile(wizardEnabledPath()).open(QIODevice::WriteOnly);
115+ if (QFile::exists(wizardEnabledPath())) {
116+ QFile::remove(wizardEnabledPath());
117+ }
118+ // For special cases check if wizardEnabledPath is a folder
119+ if (QDir(wizardEnabledPath()).exists()) {
120+ QDir(wizardEnabledPath()).removeRecursively();
121+ }
122+ QFile::copy(currentFrameworkPath(), wizardEnabledPath());
64123 m_fsWatcher.addPath(wizardEnabledPath());
65124 Q_EMIT wizardEnabledChanged();
125+ Q_EMIT isUpdateChanged();
66126 }
67127}
68128
69129void System::watcherFileChanged()
70130{
71131 Q_EMIT wizardEnabledChanged();
132+ Q_EMIT isUpdateChanged();
72133 m_fsWatcher.removePath(wizardEnabledPath());
73134}
74135
plugins/Wizard/System.h+17
@@ -1,4 +1,5 @@
11/*
2+ * Copyright (C) 2018 The UBports project
23 * Copyright (C) 2014-2016 Canonical Ltd.
34 *
45 * This program is free software: you can redistribute it and/or modify it
@@ -18,6 +19,7 @@
1819#define WIZARD_SYSTEM_H
1920
2021#include <QFileSystemWatcher>
22+#include <QVersionNumber>
2123#include <QObject>
2224#include <QString>
2325
@@ -25,12 +27,21 @@ class System : public QObject
2527{
2628 Q_OBJECT
2729 Q_PROPERTY(bool wizardEnabled READ wizardEnabled WRITE setWizardEnabled NOTIFY wizardEnabledChanged)
30+ Q_PROPERTY(QString version READ version NOTIFY versionChanged)
31+ Q_PROPERTY(bool isUpdate READ isUpdate NOTIFY isUpdateChanged)
2832
2933public:
3034 System();
3135 ~System() = default;
3236
37+ /**
38+ * Checks whether the wizard is enabled for first-run or otherwise.
39+ */
3340 bool wizardEnabled() const;
41+
42+ QString version() const;
43+ bool isUpdate() const;
44+
3445 void setWizardEnabled(bool enabled);
3546
3647public Q_SLOTS:
@@ -42,6 +53,8 @@ public Q_SLOTS:
4253
4354Q_SIGNALS:
4455 void wizardEnabledChanged();
56+ void versionChanged();
57+ void isUpdateChanged();
4558
4659private Q_SLOTS:
4760 void watcherFileChanged();
@@ -50,7 +63,11 @@ private:
5063 Q_DISABLE_COPY(System)
5164
5265 static QString wizardEnabledPath();
66+ static QString currentFrameworkPath();
5367 static void setSessionVariable(const QString &variable, const QString &value);
68+ static QString readCurrentFramework();
69+ static QString readWizardEnabled();
70+ static bool wizardPathExists();
5471
5572 QFileSystemWatcher m_fsWatcher;
5673};
plugins/Wizard/plugin.cpp+2
@@ -20,6 +20,7 @@
2020#include "timezonemodel.h"
2121#include "LocalePlugin.h"
2222#include "Status.h"
23+#include "Changelog.h"
2324#include "keyboardLayoutsModel.h"
2425
2526#include <QtQml/qqml.h>
@@ -30,6 +31,7 @@ void WizardPlugin::registerTypes(const char *uri)
3031 qmlRegisterType<PageList>(uri, 0, 1, "PageList");
3132 qmlRegisterSingletonType<System>(uri, 0, 1, "System", [](QQmlEngine*, QJSEngine*) -> QObject* { return new System; });
3233 qmlRegisterSingletonType<Status>(uri, 0, 1, "Status", [](QQmlEngine*, QJSEngine*) -> QObject* { return new Status; });
34+ qmlRegisterSingletonType<Changelog>(uri, 0, 1, "Changelog", [](QQmlEngine*, QJSEngine*) -> QObject* { return new Changelog; });
3335 qmlRegisterType<TimeZoneLocationModel>(uri, 0, 1, "TimeZoneModel");
3436 qmlRegisterType<KeyboardLayoutsModel>(uri, 0, 1, "KeyboardLayoutsModel");
3537 qmlRegisterType<LocalePlugin>(uri, 0, 1, "LocalePlugin");
po/ca.po+261−150
@@ -6,32 +6,34 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-11-16 10:44+0000\n"
11−"PO-Revision-Date: 2016-11-11 06:30+0000\n"
12−"Last-Translator: Walter Garcia-Fontes <walter.garcia@upf.edu>\n"
13−"Language-Team: Catalan <ca@li.org>\n"
9+"Report-Msgid-Bugs-To: \n"
10+"POT-Creation-Date: 2018-10-08 13:29-0500\n"
11+"PO-Revision-Date: 2018-11-20 11:28+0000\n"
12+"Last-Translator: Joan CiberSheep <cibersheep@gmail.com>\n"
13+"Language-Team: Catalan <https://translate.ubports.com/projects/unity8/unity8/"
14+"ca/>\n"
15+"Language: ca\n"
1416"MIME-Version: 1.0\n"
1517"Content-Type: text/plain; charset=UTF-8\n"
1618"Content-Transfer-Encoding: 8bit\n"
1719"Plural-Forms: nplurals=2; plural=n != 1;\n"
20+"X-Generator: Weblate 3.1.1\n"
1821"X-Launchpad-Export-Date: 2016-11-23 06:34+0000\n"
19−"X-Generator: Launchpad (build 18269)\n"
2022
2123#: plugins/LightDM/Greeter.cpp:123
2224msgid "Password: "
2325msgstr "Contrasenya: "
2426
25−#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:108
27+#: plugins/Unity/Launcher/launcheritem.cpp:50
28+#: plugins/Unity/Launcher/launcheritem.cpp:109
2729msgid "Pin shortcut"
2830msgstr "Enganxa la drecera"
2931
30−#: plugins/Unity/Launcher/launcheritem.cpp:54
32+#: plugins/Unity/Launcher/launcheritem.cpp:55
3133msgid "Quit"
3234msgstr "Surt"
3335
34−#: plugins/Unity/Launcher/launcheritem.cpp:108
36+#: plugins/Unity/Launcher/launcheritem.cpp:109
3537msgid "Unpin shortcut"
3638msgstr "Desenganxa la drecera"
3739
@@ -115,7 +117,7 @@ msgstr "ImprPant"
115117
116118#: qml/Components/KeyboardShortcutsOverlay.qml:67
117119msgid "Takes a screenshot."
118−msgstr "Crea una captura de pantalla"
120+msgstr "Crea una captura de pantalla."
119121
120122#: qml/Components/KeyboardShortcutsOverlay.qml:75
121123msgid "Alt + PrtScr"
@@ -123,7 +125,7 @@ msgstr "Alt + ImprPant"
123125
124126#: qml/Components/KeyboardShortcutsOverlay.qml:80
125127msgid "Takes a screenshot of a window."
126−msgstr "Crea una captura de pantalla d'una finestra"
128+msgstr "Crea una captura de pantalla d'una finestra."
127129
128130#: qml/Components/KeyboardShortcutsOverlay.qml:88
129131msgid "Super + Space"
@@ -163,7 +165,7 @@ msgstr "Obre el mode de navegació de teclat del llançador."
163165
164166#: qml/Components/KeyboardShortcutsOverlay.qml:151
165167msgid "Super + Tab"
166−msgstr "Super + Tab"
168+msgstr "Súper + Tab"
167169
168170#: qml/Components/KeyboardShortcutsOverlay.qml:156
169171msgid "Switches applications via the launcher."
@@ -203,7 +205,7 @@ msgstr "Commuta entre aplicacions."
203205
204206#: qml/Components/KeyboardShortcutsOverlay.qml:229
205207msgid "Super + W"
206−msgstr "Super + W"
208+msgstr "Súper + W"
207209
208210#: qml/Components/KeyboardShortcutsOverlay.qml:234
209211msgid "Opens the desktop spread."
@@ -215,7 +217,7 @@ msgstr "Cursor dreta o esquerra"
215217
216218#: qml/Components/KeyboardShortcutsOverlay.qml:247
217219msgid "Moves the focus."
218−msgstr "Mou el focus"
220+msgstr "Mou el focus."
219221
220222#: qml/Components/KeyboardShortcutsOverlay.qml:259
221223msgid "Windows"
@@ -223,7 +225,7 @@ msgstr "Finestres"
223225
224226#: qml/Components/KeyboardShortcutsOverlay.qml:266
225227msgid "Ctrl + Super + D"
226−msgstr "Ctrl + Super + D"
228+msgstr "Ctrl + Súper + D"
227229
228230#: qml/Components/KeyboardShortcutsOverlay.qml:271
229231msgid "Minimizes all windows."
@@ -346,24 +348,24 @@ msgstr "Refineu els resultats"
346348msgid "Reset"
347349msgstr "Restableix"
348350
349−#: qml/Dash/GenericScopeView.qml:545 qml/Dash/GenericScopeView.qml:716
351+#: qml/Dash/GenericScopeView.qml:547 qml/Dash/GenericScopeView.qml:718
350352msgid "Show less"
351353msgstr "Mostra menys"
352354
353−#: qml/Dash/GenericScopeView.qml:545
355+#: qml/Dash/GenericScopeView.qml:547
354356msgid "Show all"
355357msgstr "Mostra-ho tot"
356358
357−#: qml/Dash/GenericScopeView.qml:576
359+#: qml/Dash/GenericScopeView.qml:578
358360msgctxt "Label: Hint for dash search line edit"
359361msgid "Search"
360362msgstr "Cerca"
361363
362−#: qml/Dash/PageHeaderExtraPanel.qml:57
364+#: qml/Dash/PageHeaderExtraPanel.qml:67
363365msgid "Recent Searches"
364366msgstr "Cerques recents"
365367
366−#: qml/Dash/PageHeaderExtraPanel.qml:68
368+#: qml/Dash/PageHeaderExtraPanel.qml:78
367369msgid "Clear All"
368370msgstr "Neteja-ho tot"
369371
@@ -390,11 +392,11 @@ msgstr "Afegiu una ressenya"
390392
391393#: qml/Dash/PullToRefreshScopeStyle.qml:56
392394msgid "Pull to refresh…"
393−msgstr "Estireu per actualitzar..."
395+msgstr "Estireu per actualitzar…"
394396
395397#: qml/Dash/PullToRefreshScopeStyle.qml:61
396398msgid "Release to refresh…"
397−msgstr "Deixeu anar per actualitzar..."
399+msgstr "Deixeu anar per actualitzar…"
398400
399401#: qml/Dash/ScopeSettings/ScopeSettingBoolean.qml:43
400402msgid "Enable location data"
@@ -444,8 +446,8 @@ msgstr ""
444446#, qt-format
445447msgid "Please wait %1 minute and then try again…"
446448msgid_plural "Please wait %1 minutes and then try again…"
447−msgstr[0] "Espereu %1 minut i torneu-ho a intentar..."
448−msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
449+msgstr[0] "Espereu %1 minut i torneu-ho a intentar…"
450+msgstr[1] "Espereu %1 minuts i torneu-ho a intentar…"
449451
450452#: qml/Greeter/Greeter.qml:596
451453msgid "Try again"
@@ -459,7 +461,7 @@ msgstr "Contrasenya"
459461msgid "Passcode"
460462msgstr "Codi d'accés"
461463
462−#: qml/Greeter/LoginList.qml:98
464+#: qml/Greeter/LoginList.qml:98 qml/Wizard/Pages/UpdateDelegate.qml:118
463465msgid "Retry"
464466msgstr "Torna-ho a provar"
465467
@@ -524,9 +526,10 @@ msgstr "Resta %1"
524526
525527#: qml/Panel/Indicators/MenuItemFactory.qml:995
526528msgid "In queue…"
527−msgstr "A la cua..."
529+msgstr "A la cua…"
528530
529531#: qml/Panel/Indicators/MenuItemFactory.qml:999
532+#: qml/Wizard/Pages/UpdateDelegate.qml:226
530533msgid "Downloading"
531534msgstr "S'està baixant"
532535
@@ -569,13 +572,11 @@ msgstr ""
569572
570573#: qml/Tutorial/TutorialLeftLong.qml:49
571574msgid "Long swipe from the left edge to open the Today scope"
572−msgstr ""
573−"Feu una lliscada llarga des de la vora esquerra per obrir l'àmbit Avui"
575+msgstr "Feu una lliscada llarga des de la vora esquerra per obrir l'àmbit Avui"
574576
575577#: qml/Tutorial/TutorialLeft.qml:47
576578msgid "Short swipe from the left edge to open the launcher"
577−msgstr ""
578−"Passeu el dit breument des de la vora esquerra per obrir el llançador"
579+msgstr "Passeu el dit breument des de la vora esquerra per obrir el llançador"
579580
580581#: qml/Tutorial/TutorialRight.qml:55
581582msgid "Push your mouse against the right edge to view your open apps"
@@ -594,25 +595,43 @@ msgstr ""
594595"Passeu el dit des de la vora superior per accedir les notificacions i les "
595596"configuracions ràpides"
596597
597−#: qml/Wizard/Page.qml:54
598+#: qml/Wizard/Page.qml:59
598599msgctxt "Button: Go back one page in the Wizard"
599600msgid "Back"
600601msgstr "Enrere"
601602
602−#: qml/Wizard/Pages/10-welcome.qml:28
603+#: qml/Wizard/Pages/10-welcome.qml:29
603604msgid "Language"
604605msgstr "Llengua"
605606
606−#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
607−#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
608−#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
609−#: qml/Wizard/Pages/70-passwd-type.qml:145
610−#: qml/Wizard/Pages/75-report-check.qml:84
607+#: qml/Wizard/Pages/10-welcome.qml:175
608+#: qml/Wizard/Pages/10-welcome-update.qml:126
609+#: qml/Wizard/Pages/11-changelog.qml:74 qml/Wizard/Pages/20-keyboard.qml:152
610+#: qml/Wizard/Pages/30-wifi.qml:208 qml/Wizard/Pages/50-timezone.qml:272
611+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/70-passwd-type.qml:146
612+#: qml/Wizard/Pages/75-report-check.qml:85
613+#: qml/Wizard/Pages/76-app-update.qml:236
611614#: qml/Wizard/Pages/passcode-desktop.qml:142
612615#: qml/Wizard/Pages/password-set.qml:142
613616msgid "Next"
614617msgstr "Següent"
615618
619+#: qml/Wizard/Pages/10-welcome-update.qml:91
620+msgid "Welcome to "
621+msgstr "Us donem la benvinguda a "
622+
623+#: qml/Wizard/Pages/10-welcome-update.qml:106
624+msgid "We will make sure your device is ready to use "
625+msgstr "Ens assegurarem de que el vostre dispositiu estigui llest per ser usat "
626+
627+#: qml/Wizard/Pages/11-changelog.qml:28
628+msgid "What's new"
629+msgstr "Novetats"
630+
631+#: qml/Wizard/Pages/11-changelog.qml:74
632+msgid "Loading..."
633+msgstr "S'està carregant…"
634+
616635#: qml/Wizard/Pages/20-keyboard.qml:31
617636msgid "Select Keyboard"
618637msgstr "Seleccioneu el teclat"
@@ -625,9 +644,9 @@ msgstr "Llengua del teclat"
625644msgid "Keyboard layout"
626645msgstr "Disposició del teclat"
627646
628−#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
629−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
630−#: qml/Wizard/Pages/sim.qml:101
647+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:208
648+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/76-app-update.qml:240
649+#: qml/Wizard/Pages/79-system-update.qml:152 qml/Wizard/Pages/sim.qml:101
631650msgid "Skip"
632651msgstr "Omet"
633652
@@ -635,57 +654,23 @@ msgstr "Omet"
635654msgid "Connect to Wi‑Fi"
636655msgstr "Connecta't a la Wi-Fi"
637656
638−#: qml/Wizard/Pages/30-wifi.qml:132
657+#: qml/Wizard/Pages/30-wifi.qml:133
639658msgid "Connected"
640659msgstr "Connectat"
641660
642−#: qml/Wizard/Pages/30-wifi.qml:165
661+#: qml/Wizard/Pages/30-wifi.qml:166
643662msgid "Available Wi-Fi networks"
644663msgstr "Xarxes Wi-Fi disponibles"
645664
646−#: qml/Wizard/Pages/30-wifi.qml:166
665+#: qml/Wizard/Pages/30-wifi.qml:167
647666msgid "No available Wi-Fi networks"
648667msgstr "No hi ha xarxes Wi-Fi disponibles"
649668
650−#: qml/Wizard/Pages/40-location.qml:27
651−msgid "Location Services"
652−msgstr "Serveis d'ubicació"
653−
654−#: qml/Wizard/Pages/40-location.qml:83
655−msgid ""
656−"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
657−"(recommended)"
658−msgstr ""
659−"Usa anònimament el GPS, punts d'accés Wi-Fi i la xarxa mòbil per detectar la "
660−"ubicació (recomanat)"
661−
662−#: qml/Wizard/Pages/40-location.qml:105
663−#, qt-format
664−msgid "By selecting this option you agree to the Nokia HERE %1."
665−msgstr "Seleccionant aquesta opció esteu d'acord amb el Nokia HERE %1."
666−
667−#: qml/Wizard/Pages/40-location.qml:106
668−msgctxt "part of: Nokia HERE terms and conditions"
669−msgid "terms and conditions"
670−msgstr "termes i condicions"
671−
672−#: qml/Wizard/Pages/40-location.qml:160
673−msgid "GPS only"
674−msgstr "Sols GPS"
675−
676−#: qml/Wizard/Pages/40-location.qml:214
677−msgid "Don't use my location"
678−msgstr "No usis la meva ubicació"
679−
680−#: qml/Wizard/Pages/40-location.qml:260
681−msgid "You can change it later in System Settings."
682−msgstr "Podeu canviar-ho més tard a Paràmetres del sistema."
683−
684669#: qml/Wizard/Pages/50-timezone.qml:30
685670msgid "Time Zone"
686671msgstr "Fus horari"
687672
688−#: qml/Wizard/Pages/50-timezone.qml:182
673+#: qml/Wizard/Pages/50-timezone.qml:183
689674msgid "Enter your city"
690675msgstr "Entreu la vostra ciutat"
691676
@@ -693,7 +678,7 @@ msgstr "Entreu la vostra ciutat"
693678msgid "Personalize Your Device"
694679msgstr "Personalitzeu el vostre dispositiu"
695680
696−#: qml/Wizard/Pages/60-account.qml:48
681+#: qml/Wizard/Pages/60-account.qml:49
697682msgid "Preferred Name"
698683msgstr "Nom preferit"
699684
@@ -701,22 +686,22 @@ msgstr "Nom preferit"
701686msgid "Lock Screen"
702687msgstr "Bloca la pantalla"
703688
704−#: qml/Wizard/Pages/70-passwd-type.qml:102
689+#: qml/Wizard/Pages/70-passwd-type.qml:103
705690msgctxt "Label: Type of security method"
706691msgid "Create new password"
707692msgstr "Crea una contrasenya nova"
708693
709−#: qml/Wizard/Pages/70-passwd-type.qml:104
694+#: qml/Wizard/Pages/70-passwd-type.qml:105
710695msgctxt "Label: Type of security method"
711696msgid "Create passcode (numbers only)"
712697msgstr "Creeu un codi d'accés (sols números)"
713698
714−#: qml/Wizard/Pages/70-passwd-type.qml:106
699+#: qml/Wizard/Pages/70-passwd-type.qml:107
715700msgctxt "Label: Type of security method"
716701msgid "No lock code"
717702msgstr "No hi ha codi de bloqueig"
718703
719−#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
704+#: qml/Wizard/Pages/75-report-check.qml:26
720705msgid "Privacy Policy"
721706msgstr "Política de privacitat"
722707
@@ -724,20 +709,45 @@ msgstr "Política de privacitat"
724709msgid "Help Us Improve"
725710msgstr "Ajudeu-nos a millorar"
726711
727−#: qml/Wizard/Pages/75-report-check.qml:59
712+#: qml/Wizard/Pages/75-report-check.qml:60
728713msgid "Improve system performance by sending us crashes and error reports."
729714msgstr ""
730715"Milloreu el rendiment del sistema enviant-nos informes de fallades i errors."
731716
732−#: qml/Wizard/Pages/75-report-check.qml:60
717+#: qml/Wizard/Pages/75-report-check.qml:61
733718msgid "Privacy policy"
734719msgstr "Política de privacitat"
735720
736−#: qml/Wizard/Pages/77-system-update.qml:28
721+#: qml/Wizard/Pages/76-app-update.qml:35
722+msgid "Update Apps"
723+msgstr "Actualitza les apps"
724+
725+#: qml/Wizard/Pages/76-app-update.qml:127
726+msgid "This device is not connected to the internet."
727+msgstr "Aquest dispositiu no està connectat a internet."
728+
729+#: qml/Wizard/Pages/76-app-update.qml:128
730+#: qml/Wizard/Pages/76-app-update.qml:134
731+msgid "Use the OpenStore app to check for updates once connected."
732+msgstr "Useu l'aplicació OpenStore per cercar actualitzacions un cop connectat."
733+
734+#: qml/Wizard/Pages/76-app-update.qml:130
735+msgid "Software is up to date"
736+msgstr "El programari està actualitzat"
737+
738+#: qml/Wizard/Pages/76-app-update.qml:133
739+msgid "The update server is not responding."
740+msgstr "El servidor d'actualitzacions no respon."
741+
742+#: qml/Wizard/Pages/76-app-update.qml:238
743+msgid "Please wait..."
744+msgstr "Espereu-vos un moment…"
745+
746+#: qml/Wizard/Pages/79-system-update.qml:28
737747msgid "Update Device"
738748msgstr "Actualitza el dispositiu"
739749
740−#: qml/Wizard/Pages/77-system-update.qml:55
750+#: qml/Wizard/Pages/79-system-update.qml:55
741751msgid ""
742752"There is a system update available and ready to install. Afterwards, the "
743753"device will automatically restart."
@@ -745,73 +755,67 @@ msgstr ""
745755"Hi ha una actualització del sistema disponible i llesta per instal·lar. "
746756"Després, el dispositiu es reiniciarà automàticament."
747757
748−#: qml/Wizard/Pages/77-system-update.qml:76
758+#: qml/Wizard/Pages/79-system-update.qml:76
749759msgctxt "string identifying name of the update"
750760msgid "Ubuntu system"
751761msgstr "Sistema de l'Ubuntu"
752762
753−#: qml/Wizard/Pages/77-system-update.qml:83
763+#: qml/Wizard/Pages/79-system-update.qml:83
754764#, qt-format
755765msgctxt "version of the system update"
756766msgid "Version %1"
757767msgstr "Versió %1"
758768
759−#: qml/Wizard/Pages/77-system-update.qml:102
769+#: qml/Wizard/Pages/79-system-update.qml:102
760770msgid "This could take a few minutes..."
761771msgstr "Això pot trigar uns pocs minuts..."
762772
763−#: qml/Wizard/Pages/77-system-update.qml:116
773+#: qml/Wizard/Pages/79-system-update.qml:116
764774msgid "Install and restart now"
765775msgstr "Instal·la i reinicia ara"
766776
767−#: qml/Wizard/Pages/80-finished.qml:89
777+#: qml/Wizard/Pages/80-finished.qml:91
778+msgid "Welcome Back"
779+msgstr "Us tornam a donar la benvinguda"
780+
781+#: qml/Wizard/Pages/80-finished.qml:91
768782msgid "Welcome to Ubuntu"
769783msgstr "Us donem la benvinguda a l'Ubuntu"
770784
771−#: qml/Wizard/Pages/80-finished.qml:104
785+#: qml/Wizard/Pages/80-finished.qml:106
772786msgid "You are ready to use your device now"
773787msgstr "Ara ja esteu a punt per usar el vostre dispositiu"
774788
775−#: qml/Wizard/Pages/80-finished.qml:124
789+#: qml/Wizard/Pages/80-finished.qml:126
790+msgid "Continue"
791+msgstr "Continua"
792+
793+#: qml/Wizard/Pages/80-finished.qml:126
776794msgid "Get Started"
777795msgstr "Introducció"
778796
779−#: qml/Wizard/Pages/here-terms.qml:25
780−msgid "Terms & Conditions"
781−msgstr "Condicions generals"
797+#: qml/Wizard/Pages/DownloadHandler.qml:174
798+msgid "Installation failed"
799+msgstr "La instal·lació ha fallat"
782800
783−#: qml/Wizard/Pages/here-terms.qml:69
784−msgid "Your device uses positioning technologies provided by HERE."
785−msgstr ""
786−"El vostre dispositiu usa tecnologies de posicionament proveïdes per HERE."
801+#: qml/Wizard/Pages/GlobalUpdateControls.qml:84
802+msgid "Checking for updates…"
803+msgstr "Comprovant si hi ha actualitzacions…"
787804
788−#: qml/Wizard/Pages/here-terms.qml:81
789−msgid ""
790−"To provide you with positioning services and to improve their quality, HERE "
791−"collects information about nearby cell towers and Wi-Fi hotspots around your "
792−"current location whenever your position is being found."
793−msgstr ""
794−"Per proveir-vos de serveis de posicionament i per millorar la seva qualitat, "
795−"HERE recull informació sobre torres de telefonia mòbil i punts d'accés Wi-Fi "
796−"al voltant de la vostra ubicació actual sempre que s'està buscant la vostra "
797−"posició."
798−
799−#: qml/Wizard/Pages/here-terms.qml:93
800−msgid ""
801−"The information collected is used to analyze the service and to improve the "
802−"use of service, but not to identify you personally."
803−msgstr ""
804−"La informació recollida s'usa per analitzar el servei i per millorar l'ús "
805−"del servei, però no per identificar-vos personalment."
806−
807−#: qml/Wizard/Pages/here-terms.qml:106
805+#: qml/Wizard/Pages/GlobalUpdateControls.qml:109
808806#, qt-format
809−msgid "By continuing, you agree to the HERE platform %1 and %2."
810−msgstr "En continuar, esteu d'acord amb la plataforma HERE %1 i %2."
807+msgid "%1 update available"
808+msgid_plural "%1 updates available"
809+msgstr[0] "%1 actualització disponible"
810+msgstr[1] "%1 actualitzacions disponibles"
811+
812+#: qml/Wizard/Pages/GlobalUpdateControls.qml:119
813+msgid "Update all…"
814+msgstr "Actualitza-ho tot…"
811815
812−#: qml/Wizard/Pages/here-terms.qml:107
813−msgid "Service Terms"
814−msgstr "Termes del servei"
816+#: qml/Wizard/Pages/GlobalUpdateControls.qml:121
817+msgid "Update all"
818+msgstr "Actualitza-ho tot"
815819
816820#: qml/Wizard/Pages/passcode-confirm.qml:43
817821#: qml/Wizard/Pages/passcode-desktop.qml:97
@@ -896,6 +900,68 @@ msgstr "No podreu fer trucades o usar la missatgeria de text sense una SIM."
896900msgid "To proceed with no SIM tap Skip."
897901msgstr "Per procedir sense cap SIM toqueu Omet."
898902
903+#: qml/Wizard/Pages/UpdateDelegate.qml:123
904+msgid "Update"
905+msgstr "Actualitza"
906+
907+#: qml/Wizard/Pages/UpdateDelegate.qml:125
908+msgid "Download"
909+msgstr "Descarrega"
910+
911+#: qml/Wizard/Pages/UpdateDelegate.qml:131
912+msgid "Resume"
913+msgstr "Continua"
914+
915+#: qml/Wizard/Pages/UpdateDelegate.qml:138
916+msgid "Pause"
917+msgstr "Pausa"
918+
919+#: qml/Wizard/Pages/UpdateDelegate.qml:142
920+msgid "Install…"
921+msgstr "Instal·la-ho…"
922+
923+#: qml/Wizard/Pages/UpdateDelegate.qml:144
924+msgid "Install"
925+msgstr "Instal·la"
926+
927+#: qml/Wizard/Pages/UpdateDelegate.qml:148
928+msgid "Open"
929+msgstr "Obre"
930+
931+#: qml/Wizard/Pages/UpdateDelegate.qml:216
932+msgid "Installing"
933+msgstr "Instal·lant"
934+
935+#: qml/Wizard/Pages/UpdateDelegate.qml:220
936+msgid "Paused"
937+msgstr "En pausa"
938+
939+#: qml/Wizard/Pages/UpdateDelegate.qml:223
940+msgid "Waiting to download"
941+msgstr "S'està esperant per descarregar"
942+
943+#: qml/Wizard/Pages/UpdateDelegate.qml:279
944+#, qt-format
945+msgid "%1 of %2"
946+msgstr "%1 de %2"
947+
948+#: qml/Wizard/Pages/UpdateDelegate.qml:283
949+msgid "Downloaded"
950+msgstr "Descarregat"
951+
952+#: qml/Wizard/Pages/UpdateDelegate.qml:286
953+msgid "Installed"
954+msgstr "Instal·lat"
955+
956+#: qml/Wizard/Pages/UpdateDelegate.qml:291
957+#, qt-format
958+msgid "Updated %1"
959+msgstr "%1 actualitzat"
960+
961+#: qml/Wizard/Pages/UpdateDelegate.qml:315
962+msgid "Update failed"
963+msgstr "L'actualització ha fallat"
964+
899965#: qml/Wizard/PasswordMeter.qml:87
900966msgid "Password too short"
901967msgstr "La contrasenya es massa curta"
@@ -924,21 +990,71 @@ msgstr "La contrasenya és dèbil"
924990msgid "Very weak password"
925991msgstr "La contrasenya és molt dèbil"
926992
993+#~ msgid "Location Services"
994+#~ msgstr "Serveis d'ubicació"
995+
996+#~ msgid ""
997+#~ "Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
998+#~ "(recommended)"
999+#~ msgstr ""
1000+#~ "Usa anònimament el GPS, punts d'accés Wi-Fi i la xarxa mòbil per detectar "
1001+#~ "la ubicació (recomanat)"
1002+
1003+#~ msgid "By selecting this option you agree to the Nokia HERE %1."
1004+#~ msgstr "Seleccionant aquesta opció esteu d'acord amb el Nokia HERE %1."
1005+
1006+#~ msgctxt "part of: Nokia HERE terms and conditions"
1007+#~ msgid "terms and conditions"
1008+#~ msgstr "termes i condicions"
1009+
1010+#~ msgid "GPS only"
1011+#~ msgstr "Sols GPS"
1012+
1013+#~ msgid "Don't use my location"
1014+#~ msgstr "No usis la meva ubicació"
1015+
1016+#~ msgid "You can change it later in System Settings."
1017+#~ msgstr "Podeu canviar-ho més tard a Paràmetres del sistema."
1018+
1019+#~ msgid "Terms & Conditions"
1020+#~ msgstr "Condicions generals"
1021+
1022+#~ msgid "Your device uses positioning technologies provided by HERE."
1023+#~ msgstr ""
1024+#~ "El vostre dispositiu usa tecnologies de posicionament proveïdes per HERE."
1025+
1026+#~ msgid ""
1027+#~ "To provide you with positioning services and to improve their quality, "
1028+#~ "HERE collects information about nearby cell towers and Wi-Fi hotspots "
1029+#~ "around your current location whenever your position is being found."
1030+#~ msgstr ""
1031+#~ "Per proveir-vos de serveis de posicionament i per millorar la seva "
1032+#~ "qualitat, HERE recull informació sobre torres de telefonia mòbil i punts "
1033+#~ "d'accés Wi-Fi al voltant de la vostra ubicació actual sempre que s'està "
1034+#~ "buscant la vostra posició."
1035+
1036+#~ msgid ""
1037+#~ "The information collected is used to analyze the service and to improve "
1038+#~ "the use of service, but not to identify you personally."
1039+#~ msgstr ""
1040+#~ "La informació recollida s'usa per analitzar el servei i per millorar l'ús "
1041+#~ "del servei, però no per identificar-vos personalment."
1042+
1043+#~ msgid "By continuing, you agree to the HERE platform %1 and %2."
1044+#~ msgstr "En continuar, esteu d'acord amb la plataforma HERE %1 i %2."
1045+
1046+#~ msgid "Service Terms"
1047+#~ msgstr "Termes del servei"
1048+
9271049#~ msgid "Confirm"
9281050#~ msgstr "Confirma"
9291051
9301052#~ msgid "Type or say a command"
9311053#~ msgstr "Escriviu o pronuncieu una ordre"
9321054
933−#~ msgid "Loading. Please Wait..."
934−#~ msgstr "S'està carregant. Espereu-vos un moment..."
935−
9361055#~ msgid "Speak Now..."
9371056#~ msgstr "Parleu..."
9381057
939−#~ msgid "Speaking..."
940−#~ msgstr "S'està parlant..."
941−
9421058#~ msgid "Search"
9431059#~ msgstr "Cerca"
9441060
@@ -956,7 +1072,8 @@ msgstr "La contrasenya és molt dèbil"
9561072
9571073#~ msgid "Try swiping from the top edge to access the indicators"
9581074#~ msgstr ""
959−#~ "Proveu de lliscar el dit des de la vora superior per accedir als indicadors"
1075+#~ "Proveu de lliscar el dit des de la vora superior per accedir als "
1076+#~ "indicadors"
9601077
9611078#~ msgid "Close"
9621079#~ msgstr "Tanca"
@@ -968,8 +1085,8 @@ msgstr "La contrasenya és molt dèbil"
9681085
9691086#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
9701087#~ msgstr ""
971−#~ "Llisqueu el dit des de la vora esquerra per mostrar el llançador i accedir "
972−#~ "ràpidament a les aplicacions"
1088+#~ "Llisqueu el dit des de la vora esquerra per mostrar el llançador i "
1089+#~ "accedir ràpidament a les aplicacions"
9731090
9741091#~ msgid "Skip intro"
9751092#~ msgstr "Omet la introducció"
@@ -1023,7 +1140,6 @@ msgstr "La contrasenya és molt dèbil"
10231140#~ msgid "All"
10241141#~ msgstr "Totes"
10251142
1026−#, qt-format
10271143#~ msgid "Sorry, incorrect %1"
10281144#~ msgstr "Incorrecte (%1)"
10291145
@@ -1058,8 +1174,8 @@ msgstr "La contrasenya és molt dèbil"
10581174#~ msgstr "El codi d'accés no és correcte"
10591175
10601176#~ msgid ""
1061−#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1062−#~ "and all personal data will be deleted."
1177+#~ "If passcode is entered incorrectly, your phone will conduct a factory "
1178+#~ "reset and all personal data will be deleted."
10631179#~ msgstr ""
10641180#~ "Si el codi d'accés s'introdueix de manera incorrecta, el telèfon es "
10651181#~ "reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
@@ -1077,7 +1193,6 @@ msgstr "La contrasenya és molt dèbil"
10771193#~ msgid "Manage Scopes"
10781194#~ msgstr "Gestioneu les lents"
10791195
1080−#, qt-format
10811196#~ msgid "Enter %1"
10821197#~ msgstr "Introduïu: %1"
10831198
@@ -1096,9 +1211,6 @@ msgstr "La contrasenya és molt dèbil"
10961211#~ msgid "Let’s get started."
10971212#~ msgstr "Comencem."
10981213
1099−#~ msgid "Continue"
1100−#~ msgstr "Continua"
1101−
11021214#~ msgid "Lock security"
11031215#~ msgstr "Seguretat del bloqueig"
11041216
@@ -1152,14 +1264,12 @@ msgstr "La contrasenya és molt dèbil"
11521264#~ msgid "Choose your passcode"
11531265#~ msgstr "Trieu el codi d'accés"
11541266
1155−#, qt-format
11561267#~ msgid "%1 〉"
11571268#~ msgstr "%1 〉"
11581269
11591270#~ msgid "Passphrase must be 4 characters long"
11601271#~ msgstr "La contrasenya ha de tenir 4 caràcters com a mínim"
11611272
1162−#, qt-format
11631273#~ msgid "〈 %1"
11641274#~ msgstr "〈 %1"
11651275
@@ -1179,11 +1289,11 @@ msgstr "La contrasenya és molt dèbil"
11791289#~ "Podeu canviar-ho més endavant a l'aplicació <b>Paràmetres del sistema</b>"
11801290
11811291#~ msgid ""
1182−#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1183−#~ "conditions</a>."
1292+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms "
1293+#~ "and conditions</a>."
11841294#~ msgstr ""
1185−#~ "Si seleccioneu aquesta opció, accepteu <a href='#'>les condicions generals "
1186−#~ "del servei Nokia HERE</a>."
1295+#~ "Si seleccioneu aquesta opció, accepteu <a href='#'>les condicions "
1296+#~ "generals del servei Nokia HERE</a>."
11871297
11881298#~ msgid "Not at all"
11891299#~ msgstr "No"
@@ -1320,7 +1430,8 @@ msgstr "La contrasenya és molt dèbil"
13201430#~ "Llisqueu des de la vora superior dreta per obrir la barra de notificacions"
13211431
13221432#~ msgid "Swipe from the top edge to open the notification bar"
1323−#~ msgstr "Llisqueu des de la vora superior per obrir la barra de notificacions"
1433+#~ msgstr ""
1434+#~ "Llisqueu des de la vora superior per obrir la barra de notificacions"
13241435
13251436#~ msgid "Hover your mouse on the right edge to view your open apps"
13261437#~ msgstr "Passeu el ratolí a la vora dreta per veure les aplicacions obertes"
po/de.po+246−132
@@ -6,32 +6,34 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-11-16 10:44+0000\n"
11−"PO-Revision-Date: 2016-09-29 12:06+0000\n"
12−"Last-Translator: Matthias Seidel <matthias.seidel@hamburg.de>\n"
13−"Language-Team: German <de@li.org>\n"
9+"Report-Msgid-Bugs-To: \n"
10+"POT-Creation-Date: 2018-10-08 13:29-0500\n"
11+"PO-Revision-Date: 2018-11-18 20:25+0000\n"
12+"Last-Translator: Florian Leeber <flori@bin.org.in>\n"
13+"Language-Team: German <https://translate.ubports.com/projects/unity8/unity8/"
14+"de/>\n"
15+"Language: de\n"
1416"MIME-Version: 1.0\n"
1517"Content-Type: text/plain; charset=UTF-8\n"
1618"Content-Transfer-Encoding: 8bit\n"
1719"Plural-Forms: nplurals=2; plural=n != 1;\n"
20+"X-Generator: Weblate 3.1.1\n"
1821"X-Launchpad-Export-Date: 2016-11-23 06:35+0000\n"
19−"X-Generator: Launchpad (build 18269)\n"
2022
2123#: plugins/LightDM/Greeter.cpp:123
2224msgid "Password: "
2325msgstr "Passwort: "
2426
25−#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:108
27+#: plugins/Unity/Launcher/launcheritem.cpp:50
28+#: plugins/Unity/Launcher/launcheritem.cpp:109
2729msgid "Pin shortcut"
2830msgstr "Verknüpfung anheften"
2931
30−#: plugins/Unity/Launcher/launcheritem.cpp:54
32+#: plugins/Unity/Launcher/launcheritem.cpp:55
3133msgid "Quit"
3234msgstr "Beenden"
3335
34−#: plugins/Unity/Launcher/launcheritem.cpp:108
36+#: plugins/Unity/Launcher/launcheritem.cpp:109
3537msgid "Unpin shortcut"
3638msgstr "Verknüpfung entfernen"
3739
@@ -346,24 +348,24 @@ msgstr "Ergebnisse verfeinern"
346348msgid "Reset"
347349msgstr "Zurücksetzen"
348350
349−#: qml/Dash/GenericScopeView.qml:545 qml/Dash/GenericScopeView.qml:716
351+#: qml/Dash/GenericScopeView.qml:547 qml/Dash/GenericScopeView.qml:718
350352msgid "Show less"
351353msgstr "Weniger anzeigen"
352354
353−#: qml/Dash/GenericScopeView.qml:545
355+#: qml/Dash/GenericScopeView.qml:547
354356msgid "Show all"
355357msgstr "Alle anzeigen"
356358
357−#: qml/Dash/GenericScopeView.qml:576
359+#: qml/Dash/GenericScopeView.qml:578
358360msgctxt "Label: Hint for dash search line edit"
359361msgid "Search"
360362msgstr "Suchen"
361363
362−#: qml/Dash/PageHeaderExtraPanel.qml:57
364+#: qml/Dash/PageHeaderExtraPanel.qml:67
363365msgid "Recent Searches"
364366msgstr "Letzte Suchanfragen"
365367
366−#: qml/Dash/PageHeaderExtraPanel.qml:68
368+#: qml/Dash/PageHeaderExtraPanel.qml:78
367369msgid "Clear All"
368370msgstr "Alle zurücksetzen"
369371
@@ -459,7 +461,7 @@ msgstr "Passwort"
459461msgid "Passcode"
460462msgstr "PIN"
461463
462−#: qml/Greeter/LoginList.qml:98
464+#: qml/Greeter/LoginList.qml:98 qml/Wizard/Pages/UpdateDelegate.qml:118
463465msgid "Retry"
464466msgstr "Erneut versuchen"
465467
@@ -527,6 +529,7 @@ msgid "In queue…"
527529msgstr "In Warteschlange …"
528530
529531#: qml/Panel/Indicators/MenuItemFactory.qml:999
532+#: qml/Wizard/Pages/UpdateDelegate.qml:226
530533msgid "Downloading"
531534msgstr "Wird heruntergeladen"
532535
@@ -591,25 +594,43 @@ msgstr ""
591594"Wischen von der oberen Kante zeigt Benachrichtigungen und "
592595"Schnelleinstellungen"
593596
594−#: qml/Wizard/Page.qml:54
597+#: qml/Wizard/Page.qml:59
595598msgctxt "Button: Go back one page in the Wizard"
596599msgid "Back"
597600msgstr "Zurück"
598601
599−#: qml/Wizard/Pages/10-welcome.qml:28
602+#: qml/Wizard/Pages/10-welcome.qml:29
600603msgid "Language"
601604msgstr "Sprache"
602605
603−#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
604−#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
605−#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
606−#: qml/Wizard/Pages/70-passwd-type.qml:145
607−#: qml/Wizard/Pages/75-report-check.qml:84
606+#: qml/Wizard/Pages/10-welcome.qml:175
607+#: qml/Wizard/Pages/10-welcome-update.qml:126
608+#: qml/Wizard/Pages/11-changelog.qml:74 qml/Wizard/Pages/20-keyboard.qml:152
609+#: qml/Wizard/Pages/30-wifi.qml:208 qml/Wizard/Pages/50-timezone.qml:272
610+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/70-passwd-type.qml:146
611+#: qml/Wizard/Pages/75-report-check.qml:85
612+#: qml/Wizard/Pages/76-app-update.qml:236
608613#: qml/Wizard/Pages/passcode-desktop.qml:142
609614#: qml/Wizard/Pages/password-set.qml:142
610615msgid "Next"
611616msgstr "Weiter"
612617
618+#: qml/Wizard/Pages/10-welcome-update.qml:91
619+msgid "Welcome to "
620+msgstr "Willkommen bei "
621+
622+#: qml/Wizard/Pages/10-welcome-update.qml:106
623+msgid "We will make sure your device is ready to use "
624+msgstr "Wir werden sicherstellen dass Dein Gerät einsatzbereit ist "
625+
626+#: qml/Wizard/Pages/11-changelog.qml:28
627+msgid "What's new"
628+msgstr "Was gibt es Neues"
629+
630+#: qml/Wizard/Pages/11-changelog.qml:74
631+msgid "Loading..."
632+msgstr "Lade..."
633+
613634#: qml/Wizard/Pages/20-keyboard.qml:31
614635msgid "Select Keyboard"
615636msgstr "Tastatur wählen"
@@ -622,9 +643,9 @@ msgstr "Tastatursprache"
622643msgid "Keyboard layout"
623644msgstr "Tastaturbelegung"
624645
625−#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
626−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
627−#: qml/Wizard/Pages/sim.qml:101
646+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:208
647+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/76-app-update.qml:240
648+#: qml/Wizard/Pages/79-system-update.qml:152 qml/Wizard/Pages/sim.qml:101
628649msgid "Skip"
629650msgstr "Überspringen"
630651
@@ -632,57 +653,23 @@ msgstr "Überspringen"
632653msgid "Connect to Wi‑Fi"
633654msgstr "Mit WLAN verbinden"
634655
635−#: qml/Wizard/Pages/30-wifi.qml:132
656+#: qml/Wizard/Pages/30-wifi.qml:133
636657msgid "Connected"
637658msgstr "Verbunden"
638659
639−#: qml/Wizard/Pages/30-wifi.qml:165
660+#: qml/Wizard/Pages/30-wifi.qml:166
640661msgid "Available Wi-Fi networks"
641662msgstr "Verfügbare Funknetzwerke"
642663
643−#: qml/Wizard/Pages/30-wifi.qml:166
664+#: qml/Wizard/Pages/30-wifi.qml:167
644665msgid "No available Wi-Fi networks"
645666msgstr "Keine Funknetzwerke verfügbar"
646667
647−#: qml/Wizard/Pages/40-location.qml:27
648−msgid "Location Services"
649−msgstr "Standortdienste"
650−
651−#: qml/Wizard/Pages/40-location.qml:83
652−msgid ""
653−"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
654−"(recommended)"
655−msgstr ""
656−"GPS, WLAN-Netzwerke und Mobilfunknetzwerk anonymisiert für die "
657−"Standortbestimmung nutzen (empfohlen)"
658−
659−#: qml/Wizard/Pages/40-location.qml:105
660−#, qt-format
661−msgid "By selecting this option you agree to the Nokia HERE %1."
662−msgstr "Durch Auswahl dieser Option akzeptieren Sie die Nokia-HERE-%1."
663−
664−#: qml/Wizard/Pages/40-location.qml:106
665−msgctxt "part of: Nokia HERE terms and conditions"
666−msgid "terms and conditions"
667−msgstr "Nutzungsbedingungen"
668−
669−#: qml/Wizard/Pages/40-location.qml:160
670−msgid "GPS only"
671−msgstr "Nur GPS"
672−
673−#: qml/Wizard/Pages/40-location.qml:214
674−msgid "Don't use my location"
675−msgstr "Meinen Standort nicht verwenden"
676−
677−#: qml/Wizard/Pages/40-location.qml:260
678−msgid "You can change it later in System Settings."
679−msgstr "Sie können das später in den Systemeinstellungen ändern."
680−
681668#: qml/Wizard/Pages/50-timezone.qml:30
682669msgid "Time Zone"
683670msgstr "Zeitzone"
684671
685−#: qml/Wizard/Pages/50-timezone.qml:182
672+#: qml/Wizard/Pages/50-timezone.qml:183
686673msgid "Enter your city"
687674msgstr "Bitte Ihre Stadt eingeben"
688675
@@ -690,7 +677,7 @@ msgstr "Bitte Ihre Stadt eingeben"
690677msgid "Personalize Your Device"
691678msgstr "Ihr Gerät personalisieren"
692679
693−#: qml/Wizard/Pages/60-account.qml:48
680+#: qml/Wizard/Pages/60-account.qml:49
694681msgid "Preferred Name"
695682msgstr "Bevorzugter Name"
696683
@@ -698,22 +685,22 @@ msgstr "Bevorzugter Name"
698685msgid "Lock Screen"
699686msgstr "Sperrbildschirm"
700687
701−#: qml/Wizard/Pages/70-passwd-type.qml:102
688+#: qml/Wizard/Pages/70-passwd-type.qml:103
702689msgctxt "Label: Type of security method"
703690msgid "Create new password"
704691msgstr "Neues Passwort erstellen"
705692
706−#: qml/Wizard/Pages/70-passwd-type.qml:104
693+#: qml/Wizard/Pages/70-passwd-type.qml:105
707694msgctxt "Label: Type of security method"
708695msgid "Create passcode (numbers only)"
709696msgstr "PIN erstellen (nur Ziffern)"
710697
711−#: qml/Wizard/Pages/70-passwd-type.qml:106
698+#: qml/Wizard/Pages/70-passwd-type.qml:107
712699msgctxt "Label: Type of security method"
713700msgid "No lock code"
714701msgstr "Kein Sperrcode"
715702
716−#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
703+#: qml/Wizard/Pages/75-report-check.qml:26
717704msgid "Privacy Policy"
718705msgstr "Datenschutzerklärung"
719706
@@ -721,21 +708,48 @@ msgstr "Datenschutzerklärung"
721708msgid "Help Us Improve"
722709msgstr "Bei der Verbesserung unterstützen"
723710
724−#: qml/Wizard/Pages/75-report-check.qml:59
711+#: qml/Wizard/Pages/75-report-check.qml:60
725712msgid "Improve system performance by sending us crashes and error reports."
726713msgstr ""
727714"Bei der Systemverbesserung unterstützen, in dem Absturz- und Fehlerberichte "
728715"gesendet werden."
729716
730−#: qml/Wizard/Pages/75-report-check.qml:60
717+#: qml/Wizard/Pages/75-report-check.qml:61
731718msgid "Privacy policy"
732719msgstr "Datenschutzerklärung"
733720
734−#: qml/Wizard/Pages/77-system-update.qml:28
721+#: qml/Wizard/Pages/76-app-update.qml:35
722+msgid "Update Apps"
723+msgstr "Apps updaten"
724+
725+#: qml/Wizard/Pages/76-app-update.qml:127
726+msgid "This device is not connected to the internet."
727+msgstr "Dieses Gerät ist nicht mit dem Internet verbunden."
728+
729+#: qml/Wizard/Pages/76-app-update.qml:128
730+#: qml/Wizard/Pages/76-app-update.qml:134
731+msgid "Use the OpenStore app to check for updates once connected."
732+msgstr ""
733+"Benutze die OpenStore-App um nach Updates zu suchen, sobald Du verbunden "
734+"bist."
735+
736+#: qml/Wizard/Pages/76-app-update.qml:130
737+msgid "Software is up to date"
738+msgstr "Software ist aktuell"
739+
740+#: qml/Wizard/Pages/76-app-update.qml:133
741+msgid "The update server is not responding."
742+msgstr "Der Update-Server antwortet nicht."
743+
744+#: qml/Wizard/Pages/76-app-update.qml:238
745+msgid "Please wait..."
746+msgstr "Bitte warten…"
747+
748+#: qml/Wizard/Pages/79-system-update.qml:28
735749msgid "Update Device"
736750msgstr "Gerät aktualisieren"
737751
738−#: qml/Wizard/Pages/77-system-update.qml:55
752+#: qml/Wizard/Pages/79-system-update.qml:55
739753msgid ""
740754"There is a system update available and ready to install. Afterwards, the "
741755"device will automatically restart."
@@ -743,73 +757,67 @@ msgstr ""
743757"Es ist eine Systemaktualisierung verfügbar und bereit zur Installation. "
744758"Danach wird das Gerät automatisch neu starten."
745759
746−#: qml/Wizard/Pages/77-system-update.qml:76
760+#: qml/Wizard/Pages/79-system-update.qml:76
747761msgctxt "string identifying name of the update"
748762msgid "Ubuntu system"
749763msgstr "Ubuntu-System"
750764
751−#: qml/Wizard/Pages/77-system-update.qml:83
765+#: qml/Wizard/Pages/79-system-update.qml:83
752766#, qt-format
753767msgctxt "version of the system update"
754768msgid "Version %1"
755769msgstr "Version %1"
756770
757−#: qml/Wizard/Pages/77-system-update.qml:102
771+#: qml/Wizard/Pages/79-system-update.qml:102
758772msgid "This could take a few minutes..."
759773msgstr "Das kann ein paar Minuten dauern …"
760774
761−#: qml/Wizard/Pages/77-system-update.qml:116
775+#: qml/Wizard/Pages/79-system-update.qml:116
762776msgid "Install and restart now"
763777msgstr "Jetzt installieren und neu starten"
764778
765−#: qml/Wizard/Pages/80-finished.qml:89
779+#: qml/Wizard/Pages/80-finished.qml:91
780+msgid "Welcome Back"
781+msgstr "Willkommen zurück"
782+
783+#: qml/Wizard/Pages/80-finished.qml:91
766784msgid "Welcome to Ubuntu"
767785msgstr "Willkommen bei Ubuntu"
768786
769−#: qml/Wizard/Pages/80-finished.qml:104
787+#: qml/Wizard/Pages/80-finished.qml:106
770788msgid "You are ready to use your device now"
771789msgstr "Sie können Ihr Gerät nun verwenden"
772790
773−#: qml/Wizard/Pages/80-finished.qml:124
791+#: qml/Wizard/Pages/80-finished.qml:126
792+msgid "Continue"
793+msgstr "Weiter"
794+
795+#: qml/Wizard/Pages/80-finished.qml:126
774796msgid "Get Started"
775797msgstr "Erste Schritte"
776798
777−#: qml/Wizard/Pages/here-terms.qml:25
778−msgid "Terms & Conditions"
779−msgstr "Nutzungsbedingungen"
799+#: qml/Wizard/Pages/DownloadHandler.qml:174
800+msgid "Installation failed"
801+msgstr "Installation fehlgeschlagen"
780802
781−#: qml/Wizard/Pages/here-terms.qml:69
782−msgid "Your device uses positioning technologies provided by HERE."
783−msgstr ""
784−"Das Gerät verwendet Standortermittlungsdienste, die durch HERE "
785−"bereitgestellt werden."
803+#: qml/Wizard/Pages/GlobalUpdateControls.qml:84
804+msgid "Checking for updates…"
805+msgstr "Prüfe auf Updates…"
786806
787−#: qml/Wizard/Pages/here-terms.qml:81
788−msgid ""
789−"To provide you with positioning services and to improve their quality, HERE "
790−"collects information about nearby cell towers and Wi-Fi hotspots around your "
791−"current location whenever your position is being found."
792−msgstr ""
793−"Zur Standortbestimmung und Verbesserung der Qualität dieser, sammelt HERE "
794−"Informationen über Netzwerkstationen und WLAN-Zugangspunkte in der Umgebung, "
795−"sobald eine Position erfasst wurde."
796−
797−#: qml/Wizard/Pages/here-terms.qml:93
798−msgid ""
799−"The information collected is used to analyze the service and to improve the "
800−"use of service, but not to identify you personally."
801−msgstr ""
802−"Die gesammelte Information wird zur Analyse und zur Nutzungsverbesserung des "
803−"Dienstes genutzt. Nicht aber zur persönlichen Identifikation."
804−
805−#: qml/Wizard/Pages/here-terms.qml:106
807+#: qml/Wizard/Pages/GlobalUpdateControls.qml:109
806808#, qt-format
807−msgid "By continuing, you agree to the HERE platform %1 and %2."
808−msgstr "Wenn Sie fortfahren, stimmen Sie den HERE-%1 und -%2 zu."
809+msgid "%1 update available"
810+msgid_plural "%1 updates available"
811+msgstr[0] "%1 Update verfügbar"
812+msgstr[1] "%1 Updates verfügbar"
813+
814+#: qml/Wizard/Pages/GlobalUpdateControls.qml:119
815+msgid "Update all…"
816+msgstr "Alles aktualisieren…"
809817
810−#: qml/Wizard/Pages/here-terms.qml:107
811−msgid "Service Terms"
812−msgstr "Bedingungen des Dienstes"
818+#: qml/Wizard/Pages/GlobalUpdateControls.qml:121
819+msgid "Update all"
820+msgstr "Alles aktualisieren"
813821
814822#: qml/Wizard/Pages/passcode-confirm.qml:43
815823#: qml/Wizard/Pages/passcode-desktop.qml:97
@@ -895,6 +903,68 @@ msgstr "Anrufe oder SMS-Nachrichten sind ohne eine SIM-Karte nicht möglich."
895903msgid "To proceed with no SIM tap Skip."
896904msgstr "Um ohne SIM-Karte fortzufahren, Überspringen drücken."
897905
906+#: qml/Wizard/Pages/UpdateDelegate.qml:123
907+msgid "Update"
908+msgstr "Aktualisieren"
909+
910+#: qml/Wizard/Pages/UpdateDelegate.qml:125
911+msgid "Download"
912+msgstr "Herunterladen"
913+
914+#: qml/Wizard/Pages/UpdateDelegate.qml:131
915+msgid "Resume"
916+msgstr "Fortsetzen"
917+
918+#: qml/Wizard/Pages/UpdateDelegate.qml:138
919+msgid "Pause"
920+msgstr "Unterbrechen"
921+
922+#: qml/Wizard/Pages/UpdateDelegate.qml:142
923+msgid "Install…"
924+msgstr "Installieren…"
925+
926+#: qml/Wizard/Pages/UpdateDelegate.qml:144
927+msgid "Install"
928+msgstr "Installieren"
929+
930+#: qml/Wizard/Pages/UpdateDelegate.qml:148
931+msgid "Open"
932+msgstr "Öffnen"
933+
934+#: qml/Wizard/Pages/UpdateDelegate.qml:216
935+msgid "Installing"
936+msgstr "Installiere"
937+
938+#: qml/Wizard/Pages/UpdateDelegate.qml:220
939+msgid "Paused"
940+msgstr "Unterbrochen"
941+
942+#: qml/Wizard/Pages/UpdateDelegate.qml:223
943+msgid "Waiting to download"
944+msgstr "Warte auf Download"
945+
946+#: qml/Wizard/Pages/UpdateDelegate.qml:279
947+#, qt-format
948+msgid "%1 of %2"
949+msgstr "%1 von %2"
950+
951+#: qml/Wizard/Pages/UpdateDelegate.qml:283
952+msgid "Downloaded"
953+msgstr "Heruntergeladen"
954+
955+#: qml/Wizard/Pages/UpdateDelegate.qml:286
956+msgid "Installed"
957+msgstr "Installiert"
958+
959+#: qml/Wizard/Pages/UpdateDelegate.qml:291
960+#, qt-format
961+msgid "Updated %1"
962+msgstr "%1 aktualisiert"
963+
964+#: qml/Wizard/Pages/UpdateDelegate.qml:315
965+msgid "Update failed"
966+msgstr "Update fehlgeschlagen"
967+
898968#: qml/Wizard/PasswordMeter.qml:87
899969msgid "Password too short"
900970msgstr "Passwort zu kurz"
@@ -923,12 +993,65 @@ msgstr "Schwaches Passwort"
923993msgid "Very weak password"
924994msgstr "Sehr schwaches Passwort"
925995
996+#~ msgid "Location Services"
997+#~ msgstr "Standortdienste"
998+
999+#~ msgid ""
1000+#~ "Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
1001+#~ "(recommended)"
1002+#~ msgstr ""
1003+#~ "GPS, WLAN-Netzwerke und Mobilfunknetzwerk anonymisiert für die "
1004+#~ "Standortbestimmung nutzen (empfohlen)"
1005+
1006+#~ msgid "By selecting this option you agree to the Nokia HERE %1."
1007+#~ msgstr "Durch Auswahl dieser Option akzeptieren Sie die Nokia-HERE-%1."
1008+
1009+#~ msgctxt "part of: Nokia HERE terms and conditions"
1010+#~ msgid "terms and conditions"
1011+#~ msgstr "Nutzungsbedingungen"
1012+
1013+#~ msgid "GPS only"
1014+#~ msgstr "Nur GPS"
1015+
1016+#~ msgid "Don't use my location"
1017+#~ msgstr "Meinen Standort nicht verwenden"
1018+
1019+#~ msgid "You can change it later in System Settings."
1020+#~ msgstr "Sie können das später in den Systemeinstellungen ändern."
1021+
1022+#~ msgid "Terms & Conditions"
1023+#~ msgstr "Nutzungsbedingungen"
1024+
1025+#~ msgid "Your device uses positioning technologies provided by HERE."
1026+#~ msgstr ""
1027+#~ "Das Gerät verwendet Standortermittlungsdienste, die durch HERE "
1028+#~ "bereitgestellt werden."
1029+
1030+#~ msgid ""
1031+#~ "To provide you with positioning services and to improve their quality, "
1032+#~ "HERE collects information about nearby cell towers and Wi-Fi hotspots "
1033+#~ "around your current location whenever your position is being found."
1034+#~ msgstr ""
1035+#~ "Zur Standortbestimmung und Verbesserung der Qualität dieser, sammelt HERE "
1036+#~ "Informationen über Netzwerkstationen und WLAN-Zugangspunkte in der "
1037+#~ "Umgebung, sobald eine Position erfasst wurde."
1038+
1039+#~ msgid ""
1040+#~ "The information collected is used to analyze the service and to improve "
1041+#~ "the use of service, but not to identify you personally."
1042+#~ msgstr ""
1043+#~ "Die gesammelte Information wird zur Analyse und zur Nutzungsverbesserung "
1044+#~ "des Dienstes genutzt. Nicht aber zur persönlichen Identifikation."
1045+
1046+#~ msgid "By continuing, you agree to the HERE platform %1 and %2."
1047+#~ msgstr "Wenn Sie fortfahren, stimmen Sie den HERE-%1 und -%2 zu."
1048+
1049+#~ msgid "Service Terms"
1050+#~ msgstr "Bedingungen des Dienstes"
1051+
9261052#~ msgid "Confirm"
9271053#~ msgstr "Bestätigen"
9281054
929−#~ msgid "Loading. Please Wait..."
930−#~ msgstr "Wird geladen. Bitte warten …"
931−
9321055#~ msgid "Speak Now..."
9331056#~ msgstr "Sprechen Sie jetzt …"
9341057
@@ -953,9 +1076,6 @@ msgstr "Sehr schwaches Passwort"
9531076#~ msgid "Type or say a command"
9541077#~ msgstr "Befehl eingeben oder sprechen"
9551078
956−#~ msgid "Speaking..."
957−#~ msgstr "Sprechen Sie …"
958−
9591079#~ msgid "See less"
9601080#~ msgstr "Weniger ansehen"
9611081
@@ -1009,8 +1129,8 @@ msgstr "Sehr schwaches Passwort"
10091129#~ msgstr "Dies ist Ihr letzter Versuch."
10101130
10111131#~ msgid ""
1012−#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1013−#~ "and all personal data will be deleted."
1132+#~ "If passcode is entered incorrectly, your phone will conduct a factory "
1133+#~ "reset and all personal data will be deleted."
10141134#~ msgstr ""
10151135#~ "Wird die PIN falsch eingegeben, wird das Telefon auf den Werkszustand "
10161136#~ "zurückgesetzt und alle Daten werden gelöscht."
@@ -1019,13 +1139,12 @@ msgstr "Sehr schwaches Passwort"
10191139#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
10201140#~ "reset and all personal data will be deleted."
10211141#~ msgstr ""
1022−#~ "Wird das Passwort falsch eingegeben, wird das Telefon auf den Werkszustand "
1023−#~ "zurückgesetzt und alle Daten werden gelöscht."
1142+#~ "Wird das Passwort falsch eingegeben, wird das Telefon auf den "
1143+#~ "Werkszustand zurückgesetzt und alle Daten werden gelöscht."
10241144
10251145#~ msgid "Sorry, incorrect passcode."
10261146#~ msgstr "Falsche PIN"
10271147
1028−#, qt-format
10291148#~ msgid "Sorry, incorrect %1"
10301149#~ msgstr "%1 falsch"
10311150
@@ -1062,7 +1181,6 @@ msgstr "Sehr schwaches Passwort"
10621181#~ msgid "Enter passcode"
10631182#~ msgstr "PIN eingeben"
10641183
1065−#, qt-format
10661184#~ msgid "Enter %1"
10671185#~ msgstr "%1 eingeben"
10681186
@@ -1081,9 +1199,6 @@ msgstr "Sehr schwaches Passwort"
10811199#~ msgid "Let’s get started."
10821200#~ msgstr "Fangen wir an!"
10831201
1084−#~ msgid "Continue"
1085−#~ msgstr "Weiter"
1086−
10871202#~ msgid "Please select how you’d like to unlock your phone."
10881203#~ msgstr "Bitte wählen Sie aus, wie Sie Ihr Telefon entsperren wollen."
10891204
@@ -1138,11 +1253,9 @@ msgstr "Sehr schwaches Passwort"
11381253#~ msgid "Please try again."
11391254#~ msgstr "Bitte versuchen Sie es erneut."
11401255
1141−#, qt-format
11421256#~ msgid "〈 %1"
11431257#~ msgstr "〈 %1"
11441258
1145−#, qt-format
11461259#~ msgid "%1 〉"
11471260#~ msgstr "%1 〉"
11481261
@@ -1313,7 +1426,8 @@ msgstr "Sehr schwaches Passwort"
13131426
13141427#~ msgid "Swipe from the top right edge to open the notification bar"
13151428#~ msgstr ""
1316−#~ "Vom rechten oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
1429+#~ "Vom rechten oberen Rand her wischen, um die Benachrichtigungsleiste zu "
1430+#~ "öffnen"
13171431
13181432#~ msgid "Swipe from the top edge to open the notification bar"
13191433#~ msgstr ""
@@ -1326,8 +1440,8 @@ msgstr "Sehr schwaches Passwort"
13261440#~ msgstr "Falsche Passphrase."
13271441
13281442#~ msgid ""
1329−#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1330−#~ "conditions</a>."
1443+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms "
1444+#~ "and conditions</a>."
13311445#~ msgstr ""
13321446#~ "Mit dem Auswählen dieser Option stimmen Sie den <a href='#'>allgemeinen "
13331447#~ "Geschäftsbedingungen</a> von HERE zu."
po/es.po+247−134
@@ -6,32 +6,34 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-11-16 10:44+0000\n"
11−"PO-Revision-Date: 2016-03-25 12:02+0000\n"
12−"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
13−"Language-Team: Spanish <es@li.org>\n"
9+"Report-Msgid-Bugs-To: \n"
10+"POT-Creation-Date: 2018-10-08 13:29-0500\n"
11+"PO-Revision-Date: 2018-11-18 20:34+0000\n"
12+"Last-Translator: advocatux <advocatux@airpost.net>\n"
13+"Language-Team: Spanish <https://translate.ubports.com/projects/unity8/unity8/"
14+"es/>\n"
15+"Language: es\n"
1416"MIME-Version: 1.0\n"
1517"Content-Type: text/plain; charset=UTF-8\n"
1618"Content-Transfer-Encoding: 8bit\n"
1719"Plural-Forms: nplurals=2; plural=n != 1;\n"
20+"X-Generator: Weblate 3.1.1\n"
1821"X-Launchpad-Export-Date: 2016-11-23 06:35+0000\n"
19−"X-Generator: Launchpad (build 18269)\n"
2022
2123#: plugins/LightDM/Greeter.cpp:123
2224msgid "Password: "
2325msgstr "Contraseña: "
2426
25−#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:108
27+#: plugins/Unity/Launcher/launcheritem.cpp:50
28+#: plugins/Unity/Launcher/launcheritem.cpp:109
2729msgid "Pin shortcut"
2830msgstr "Anclar"
2931
30−#: plugins/Unity/Launcher/launcheritem.cpp:54
32+#: plugins/Unity/Launcher/launcheritem.cpp:55
3133msgid "Quit"
3234msgstr "Salir"
3335
34−#: plugins/Unity/Launcher/launcheritem.cpp:108
36+#: plugins/Unity/Launcher/launcheritem.cpp:109
3537msgid "Unpin shortcut"
3638msgstr "Desanclar"
3739
@@ -345,24 +347,24 @@ msgstr "Refinar resultados"
345347msgid "Reset"
346348msgstr "Restablecer"
347349
348−#: qml/Dash/GenericScopeView.qml:545 qml/Dash/GenericScopeView.qml:716
350+#: qml/Dash/GenericScopeView.qml:547 qml/Dash/GenericScopeView.qml:718
349351msgid "Show less"
350352msgstr "Mostrar menos"
351353
352−#: qml/Dash/GenericScopeView.qml:545
354+#: qml/Dash/GenericScopeView.qml:547
353355msgid "Show all"
354356msgstr "Mostrar todo"
355357
356−#: qml/Dash/GenericScopeView.qml:576
358+#: qml/Dash/GenericScopeView.qml:578
357359msgctxt "Label: Hint for dash search line edit"
358360msgid "Search"
359361msgstr "Búsqueda"
360362
361−#: qml/Dash/PageHeaderExtraPanel.qml:57
363+#: qml/Dash/PageHeaderExtraPanel.qml:67
362364msgid "Recent Searches"
363365msgstr "Búsquedas recientes"
364366
365−#: qml/Dash/PageHeaderExtraPanel.qml:68
367+#: qml/Dash/PageHeaderExtraPanel.qml:78
366368msgid "Clear All"
367369msgstr "Borrar todo"
368370
@@ -458,7 +460,7 @@ msgstr "Contraseña"
458460msgid "Passcode"
459461msgstr "Código"
460462
461−#: qml/Greeter/LoginList.qml:98
463+#: qml/Greeter/LoginList.qml:98 qml/Wizard/Pages/UpdateDelegate.qml:118
462464msgid "Retry"
463465msgstr "Reintentar"
464466
@@ -526,6 +528,7 @@ msgid "In queue…"
526528msgstr "En espera…"
527529
528530#: qml/Panel/Indicators/MenuItemFactory.qml:999
531+#: qml/Wizard/Pages/UpdateDelegate.qml:226
529532msgid "Downloading"
530533msgstr "Descargando"
531534
@@ -589,25 +592,43 @@ msgstr ""
589592"Deslizar desde el borde superior para acceder a las notificaciones y "
590593"configuración"
591594
592−#: qml/Wizard/Page.qml:54
595+#: qml/Wizard/Page.qml:59
593596msgctxt "Button: Go back one page in the Wizard"
594597msgid "Back"
595598msgstr "Atrás"
596599
597−#: qml/Wizard/Pages/10-welcome.qml:28
600+#: qml/Wizard/Pages/10-welcome.qml:29
598601msgid "Language"
599602msgstr "Idioma"
600603
601−#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
602−#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
603−#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
604−#: qml/Wizard/Pages/70-passwd-type.qml:145
605−#: qml/Wizard/Pages/75-report-check.qml:84
604+#: qml/Wizard/Pages/10-welcome.qml:175
605+#: qml/Wizard/Pages/10-welcome-update.qml:126
606+#: qml/Wizard/Pages/11-changelog.qml:74 qml/Wizard/Pages/20-keyboard.qml:152
607+#: qml/Wizard/Pages/30-wifi.qml:208 qml/Wizard/Pages/50-timezone.qml:272
608+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/70-passwd-type.qml:146
609+#: qml/Wizard/Pages/75-report-check.qml:85
610+#: qml/Wizard/Pages/76-app-update.qml:236
606611#: qml/Wizard/Pages/passcode-desktop.qml:142
607612#: qml/Wizard/Pages/password-set.qml:142
608613msgid "Next"
609614msgstr "Siguiente"
610615
616+#: qml/Wizard/Pages/10-welcome-update.qml:91
617+msgid "Welcome to "
618+msgstr "Bienvenida/o a "
619+
620+#: qml/Wizard/Pages/10-welcome-update.qml:106
621+msgid "We will make sure your device is ready to use "
622+msgstr "Nos aseguraremos de que su dispositivo está listo para usar "
623+
624+#: qml/Wizard/Pages/11-changelog.qml:28
625+msgid "What's new"
626+msgstr "Novedades"
627+
628+#: qml/Wizard/Pages/11-changelog.qml:74
629+msgid "Loading..."
630+msgstr "Cargando..."
631+
611632#: qml/Wizard/Pages/20-keyboard.qml:31
612633msgid "Select Keyboard"
613634msgstr "Seleccione teclado"
@@ -620,9 +641,9 @@ msgstr "Idioma del teclado"
620641msgid "Keyboard layout"
621642msgstr "Disposición de teclado"
622643
623−#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
624−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
625−#: qml/Wizard/Pages/sim.qml:101
644+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:208
645+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/76-app-update.qml:240
646+#: qml/Wizard/Pages/79-system-update.qml:152 qml/Wizard/Pages/sim.qml:101
626647msgid "Skip"
627648msgstr "Omitir"
628649
@@ -630,57 +651,23 @@ msgstr "Omitir"
630651msgid "Connect to Wi‑Fi"
631652msgstr "Conectar con wifi"
632653
633−#: qml/Wizard/Pages/30-wifi.qml:132
654+#: qml/Wizard/Pages/30-wifi.qml:133
634655msgid "Connected"
635656msgstr "Conectado"
636657
637−#: qml/Wizard/Pages/30-wifi.qml:165
658+#: qml/Wizard/Pages/30-wifi.qml:166
638659msgid "Available Wi-Fi networks"
639660msgstr "Redes wifi disponibles"
640661
641−#: qml/Wizard/Pages/30-wifi.qml:166
662+#: qml/Wizard/Pages/30-wifi.qml:167
642663msgid "No available Wi-Fi networks"
643664msgstr "No hay redes wifi disponibles"
644665
645−#: qml/Wizard/Pages/40-location.qml:27
646−msgid "Location Services"
647−msgstr "Servicios de ubicación"
648−
649−#: qml/Wizard/Pages/40-location.qml:83
650−msgid ""
651−"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
652−"(recommended)"
653−msgstr ""
654−"Utilizar GPS, puntos de acceso y redes móviles anónimamente para la "
655−"ubicación (recomendado)"
656−
657−#: qml/Wizard/Pages/40-location.qml:105
658−#, qt-format
659−msgid "By selecting this option you agree to the Nokia HERE %1."
660−msgstr "Al seleccionar esta opción aceptará los %1 de Nokia HERE."
661−
662−#: qml/Wizard/Pages/40-location.qml:106
663−msgctxt "part of: Nokia HERE terms and conditions"
664−msgid "terms and conditions"
665−msgstr "términos y condiciones"
666−
667−#: qml/Wizard/Pages/40-location.qml:160
668−msgid "GPS only"
669−msgstr "Solo GPS"
670−
671−#: qml/Wizard/Pages/40-location.qml:214
672−msgid "Don't use my location"
673−msgstr "No usar mi ubicación"
674−
675−#: qml/Wizard/Pages/40-location.qml:260
676−msgid "You can change it later in System Settings."
677−msgstr "Puede cambiarlo luego en Configuración del sistema."
678−
679666#: qml/Wizard/Pages/50-timezone.qml:30
680667msgid "Time Zone"
681668msgstr "Huso horario"
682669
683−#: qml/Wizard/Pages/50-timezone.qml:182
670+#: qml/Wizard/Pages/50-timezone.qml:183
684671msgid "Enter your city"
685672msgstr "Introduzca su ciudad"
686673
@@ -688,7 +675,7 @@ msgstr "Introduzca su ciudad"
688675msgid "Personalize Your Device"
689676msgstr "Personalice su dispositivo"
690677
691−#: qml/Wizard/Pages/60-account.qml:48
678+#: qml/Wizard/Pages/60-account.qml:49
692679msgid "Preferred Name"
693680msgstr "Nombre preferido"
694681
@@ -696,22 +683,22 @@ msgstr "Nombre preferido"
696683msgid "Lock Screen"
697684msgstr "Bloquear pantalla"
698685
699−#: qml/Wizard/Pages/70-passwd-type.qml:102
686+#: qml/Wizard/Pages/70-passwd-type.qml:103
700687msgctxt "Label: Type of security method"
701688msgid "Create new password"
702689msgstr "Crear contraseña nueva"
703690
704−#: qml/Wizard/Pages/70-passwd-type.qml:104
691+#: qml/Wizard/Pages/70-passwd-type.qml:105
705692msgctxt "Label: Type of security method"
706693msgid "Create passcode (numbers only)"
707694msgstr "Crear código (solo dígitos)"
708695
709−#: qml/Wizard/Pages/70-passwd-type.qml:106
696+#: qml/Wizard/Pages/70-passwd-type.qml:107
710697msgctxt "Label: Type of security method"
711698msgid "No lock code"
712699msgstr "Sin código de bloqueo"
713700
714−#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
701+#: qml/Wizard/Pages/75-report-check.qml:26
715702msgid "Privacy Policy"
716703msgstr "Política de privacidad"
717704
@@ -719,19 +706,46 @@ msgstr "Política de privacidad"
719706msgid "Help Us Improve"
720707msgstr "Ayúdenos a mejorar"
721708
722−#: qml/Wizard/Pages/75-report-check.qml:59
709+#: qml/Wizard/Pages/75-report-check.qml:60
723710msgid "Improve system performance by sending us crashes and error reports."
724711msgstr "Ayúdenos a mejorar el sistema enviándonos los informes de errores."
725712
726−#: qml/Wizard/Pages/75-report-check.qml:60
713+#: qml/Wizard/Pages/75-report-check.qml:61
727714msgid "Privacy policy"
728715msgstr "Política de privacidad"
729716
730−#: qml/Wizard/Pages/77-system-update.qml:28
717+#: qml/Wizard/Pages/76-app-update.qml:35
718+msgid "Update Apps"
719+msgstr "Actualizar aplicaciones"
720+
721+#: qml/Wizard/Pages/76-app-update.qml:127
722+msgid "This device is not connected to the internet."
723+msgstr "Este dispositivo no está conectado a internet."
724+
725+#: qml/Wizard/Pages/76-app-update.qml:128
726+#: qml/Wizard/Pages/76-app-update.qml:134
727+msgid "Use the OpenStore app to check for updates once connected."
728+msgstr ""
729+"Utilice la aplicación del OpenStore para buscar actualizaciones una vez se "
730+"haya conectado."
731+
732+#: qml/Wizard/Pages/76-app-update.qml:130
733+msgid "Software is up to date"
734+msgstr "El software está actualizado"
735+
736+#: qml/Wizard/Pages/76-app-update.qml:133
737+msgid "The update server is not responding."
738+msgstr "El servidor de actualización no responde."
739+
740+#: qml/Wizard/Pages/76-app-update.qml:238
741+msgid "Please wait..."
742+msgstr "Espere..."
743+
744+#: qml/Wizard/Pages/79-system-update.qml:28
731745msgid "Update Device"
732746msgstr "Actualizar dispositivo"
733747
734−#: qml/Wizard/Pages/77-system-update.qml:55
748+#: qml/Wizard/Pages/79-system-update.qml:55
735749msgid ""
736750"There is a system update available and ready to install. Afterwards, the "
737751"device will automatically restart."
@@ -739,72 +753,67 @@ msgstr ""
739753"Hay una actualización del sistema disponible y lista para instalar. Después, "
740754"el dispositivo se reiniciará automáticamente."
741755
742−#: qml/Wizard/Pages/77-system-update.qml:76
756+#: qml/Wizard/Pages/79-system-update.qml:76
743757msgctxt "string identifying name of the update"
744758msgid "Ubuntu system"
745759msgstr "Ubuntu"
746760
747−#: qml/Wizard/Pages/77-system-update.qml:83
761+#: qml/Wizard/Pages/79-system-update.qml:83
748762#, qt-format
749763msgctxt "version of the system update"
750764msgid "Version %1"
751765msgstr "Versión %1"
752766
753−#: qml/Wizard/Pages/77-system-update.qml:102
767+#: qml/Wizard/Pages/79-system-update.qml:102
754768msgid "This could take a few minutes..."
755769msgstr "Esto podría llevar algunos minutos..."
756770
757−#: qml/Wizard/Pages/77-system-update.qml:116
771+#: qml/Wizard/Pages/79-system-update.qml:116
758772msgid "Install and restart now"
759773msgstr "Instalar y reiniciar ahora"
760774
761−#: qml/Wizard/Pages/80-finished.qml:89
775+#: qml/Wizard/Pages/80-finished.qml:91
776+msgid "Welcome Back"
777+msgstr "Bienvenida/o de nuevo"
778+
779+#: qml/Wizard/Pages/80-finished.qml:91
762780msgid "Welcome to Ubuntu"
763781msgstr "Bienvenido a su dispositivo Ubuntu"
764782
765−#: qml/Wizard/Pages/80-finished.qml:104
783+#: qml/Wizard/Pages/80-finished.qml:106
766784msgid "You are ready to use your device now"
767785msgstr "El dispositivo ya está listo"
768786
769−#: qml/Wizard/Pages/80-finished.qml:124
787+#: qml/Wizard/Pages/80-finished.qml:126
788+msgid "Continue"
789+msgstr "Continuar"
790+
791+#: qml/Wizard/Pages/80-finished.qml:126
770792msgid "Get Started"
771793msgstr "Comience"
772794
773−#: qml/Wizard/Pages/here-terms.qml:25
774−msgid "Terms & Conditions"
775−msgstr "Términos y condiciones"
776−
777−#: qml/Wizard/Pages/here-terms.qml:69
778−msgid "Your device uses positioning technologies provided by HERE."
779−msgstr ""
780−"El dispositivo usa tecnologías de posicionamiento provistas por HERE."
781−
782−#: qml/Wizard/Pages/here-terms.qml:81
783−msgid ""
784−"To provide you with positioning services and to improve their quality, HERE "
785−"collects information about nearby cell towers and Wi-Fi hotspots around your "
786−"current location whenever your position is being found."
787−msgstr ""
788−"Para ofrecerle servicios de ubicación y mejorar su calidad, HERE recolecta "
789−"información sobre antenas de telefonía y puntos de acceso cercanos a su "
790−"ubicación cuando se está buscando su posición."
795+#: qml/Wizard/Pages/DownloadHandler.qml:174
796+msgid "Installation failed"
797+msgstr "Instalación fallida"
791798
792−#: qml/Wizard/Pages/here-terms.qml:93
793−msgid ""
794−"The information collected is used to analyze the service and to improve the "
795−"use of service, but not to identify you personally."
796−msgstr ""
797−"La información recolectada se utiliza para analizar y mejorar el servicio, "
798−"pero no para identificarlo personalmente."
799+#: qml/Wizard/Pages/GlobalUpdateControls.qml:84
800+msgid "Checking for updates…"
801+msgstr "Buscando actualizaciones…"
799802
800−#: qml/Wizard/Pages/here-terms.qml:106
803+#: qml/Wizard/Pages/GlobalUpdateControls.qml:109
801804#, qt-format
802−msgid "By continuing, you agree to the HERE platform %1 and %2."
803−msgstr "Si continúa aceptará los %1 y %2 de la plataforma HERE."
805+msgid "%1 update available"
806+msgid_plural "%1 updates available"
807+msgstr[0] "%1 actualización disponible"
808+msgstr[1] "%1 actualizaciones disponibles"
809+
810+#: qml/Wizard/Pages/GlobalUpdateControls.qml:119
811+msgid "Update all…"
812+msgstr "Actualizar todo…"
804813
805−#: qml/Wizard/Pages/here-terms.qml:107
806−msgid "Service Terms"
807−msgstr "Términos del servicio"
814+#: qml/Wizard/Pages/GlobalUpdateControls.qml:121
815+msgid "Update all"
816+msgstr "Actualizar todo"
808817
809818#: qml/Wizard/Pages/passcode-confirm.qml:43
810819#: qml/Wizard/Pages/passcode-desktop.qml:97
@@ -889,6 +898,68 @@ msgstr "Sin SIM no podrá hacer llamadas ni enviar mensajes SMS."
889898msgid "To proceed with no SIM tap Skip."
890899msgstr "Para continuar sin SIM toque en Omitir."
891900
901+#: qml/Wizard/Pages/UpdateDelegate.qml:123
902+msgid "Update"
903+msgstr "Actualizar"
904+
905+#: qml/Wizard/Pages/UpdateDelegate.qml:125
906+msgid "Download"
907+msgstr "Descargar"
908+
909+#: qml/Wizard/Pages/UpdateDelegate.qml:131
910+msgid "Resume"
911+msgstr "Continuar"
912+
913+#: qml/Wizard/Pages/UpdateDelegate.qml:138
914+msgid "Pause"
915+msgstr "Pausar"
916+
917+#: qml/Wizard/Pages/UpdateDelegate.qml:142
918+msgid "Install…"
919+msgstr "Instalar…"
920+
921+#: qml/Wizard/Pages/UpdateDelegate.qml:144
922+msgid "Install"
923+msgstr "Instalar"
924+
925+#: qml/Wizard/Pages/UpdateDelegate.qml:148
926+msgid "Open"
927+msgstr "Abrir"
928+
929+#: qml/Wizard/Pages/UpdateDelegate.qml:216
930+msgid "Installing"
931+msgstr "Instalando"
932+
933+#: qml/Wizard/Pages/UpdateDelegate.qml:220
934+msgid "Paused"
935+msgstr "En pausa"
936+
937+#: qml/Wizard/Pages/UpdateDelegate.qml:223
938+msgid "Waiting to download"
939+msgstr "Esperando para descargar"
940+
941+#: qml/Wizard/Pages/UpdateDelegate.qml:279
942+#, qt-format
943+msgid "%1 of %2"
944+msgstr "%1 de %2"
945+
946+#: qml/Wizard/Pages/UpdateDelegate.qml:283
947+msgid "Downloaded"
948+msgstr "Descargado"
949+
950+#: qml/Wizard/Pages/UpdateDelegate.qml:286
951+msgid "Installed"
952+msgstr "Instalado"
953+
954+#: qml/Wizard/Pages/UpdateDelegate.qml:291
955+#, qt-format
956+msgid "Updated %1"
957+msgstr "Actualizado %1"
958+
959+#: qml/Wizard/Pages/UpdateDelegate.qml:315
960+msgid "Update failed"
961+msgstr "Actualización fallida"
962+
892963#: qml/Wizard/PasswordMeter.qml:87
893964msgid "Password too short"
894965msgstr "La contraseña es demasiado corta"
@@ -917,21 +988,70 @@ msgstr "Contraseña débil"
917988msgid "Very weak password"
918989msgstr "Contraseña muy débil"
919990
991+#~ msgid "Location Services"
992+#~ msgstr "Servicios de ubicación"
993+
994+#~ msgid ""
995+#~ "Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
996+#~ "(recommended)"
997+#~ msgstr ""
998+#~ "Utilizar GPS, puntos de acceso y redes móviles anónimamente para la "
999+#~ "ubicación (recomendado)"
1000+
1001+#~ msgid "By selecting this option you agree to the Nokia HERE %1."
1002+#~ msgstr "Al seleccionar esta opción aceptará los %1 de Nokia HERE."
1003+
1004+#~ msgctxt "part of: Nokia HERE terms and conditions"
1005+#~ msgid "terms and conditions"
1006+#~ msgstr "términos y condiciones"
1007+
1008+#~ msgid "GPS only"
1009+#~ msgstr "Solo GPS"
1010+
1011+#~ msgid "Don't use my location"
1012+#~ msgstr "No usar mi ubicación"
1013+
1014+#~ msgid "You can change it later in System Settings."
1015+#~ msgstr "Puede cambiarlo luego en Configuración del sistema."
1016+
1017+#~ msgid "Terms & Conditions"
1018+#~ msgstr "Términos y condiciones"
1019+
1020+#~ msgid "Your device uses positioning technologies provided by HERE."
1021+#~ msgstr ""
1022+#~ "El dispositivo usa tecnologías de posicionamiento provistas por HERE."
1023+
1024+#~ msgid ""
1025+#~ "To provide you with positioning services and to improve their quality, "
1026+#~ "HERE collects information about nearby cell towers and Wi-Fi hotspots "
1027+#~ "around your current location whenever your position is being found."
1028+#~ msgstr ""
1029+#~ "Para ofrecerle servicios de ubicación y mejorar su calidad, HERE "
1030+#~ "recolecta información sobre antenas de telefonía y puntos de acceso "
1031+#~ "cercanos a su ubicación cuando se está buscando su posición."
1032+
1033+#~ msgid ""
1034+#~ "The information collected is used to analyze the service and to improve "
1035+#~ "the use of service, but not to identify you personally."
1036+#~ msgstr ""
1037+#~ "La información recolectada se utiliza para analizar y mejorar el "
1038+#~ "servicio, pero no para identificarlo personalmente."
1039+
1040+#~ msgid "By continuing, you agree to the HERE platform %1 and %2."
1041+#~ msgstr "Si continúa aceptará los %1 y %2 de la plataforma HERE."
1042+
1043+#~ msgid "Service Terms"
1044+#~ msgstr "Términos del servicio"
1045+
9201046#~ msgid "Confirm"
9211047#~ msgstr "Confirmar"
9221048
9231049#~ msgid "Type or say a command"
9241050#~ msgstr "Escriba o diga una orden"
9251051
926−#~ msgid "Loading. Please Wait..."
927−#~ msgstr "Cargando, espere…"
928−
9291052#~ msgid "Speak Now..."
9301053#~ msgstr "Hable ahora…"
9311054
932−#~ msgid "Speaking..."
933−#~ msgstr "Hablando…"
934−
9351055#~ msgid "Search"
9361056#~ msgstr "Buscar"
9371057
@@ -975,8 +1095,8 @@ msgstr "Contraseña muy débil"
9751095#~ "You have now mastered the edge gestures and can start using the "
9761096#~ "phone<br><br>Tap on the screen to start"
9771097#~ msgstr ""
978−#~ "Ahora domina los gestos de los bordes y puede usar el teléfono<br><br>Toque "
979−#~ "la pantalla para comenzar"
1098+#~ "Ahora domina los gestos de los bordes y puede usar el "
1099+#~ "teléfono<br><br>Toque la pantalla para comenzar"
9801100
9811101#~ msgid "See all"
9821102#~ msgstr "Ver todo"
@@ -1013,8 +1133,8 @@ msgstr "Contraseña muy débil"
10131133#~ "configuración de fábrica y se perderán todos los datos personales."
10141134
10151135#~ msgid ""
1016−#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1017−#~ "and all personal data will be deleted."
1136+#~ "If passcode is entered incorrectly, your phone will conduct a factory "
1137+#~ "reset and all personal data will be deleted."
10181138#~ msgstr ""
10191139#~ "Si se introduce el código incorrectamente, el teléfono volverá a la "
10201140#~ "configuración de fábrica y se perderán todos los datos personales."
@@ -1046,14 +1166,12 @@ msgstr "Contraseña muy débil"
10461166#~ msgid "Sorry, incorrect passphrase."
10471167#~ msgstr "La contraseña es incorrecta."
10481168
1049−#, qt-format
10501169#~ msgid "Sorry, incorrect %1"
10511170#~ msgstr "Incorrecto (%1)"
10521171
10531172#~ msgid "Power"
10541173#~ msgstr "Apagar"
10551174
1056−#, qt-format
10571175#~ msgid "Enter %1"
10581176#~ msgstr "Introduzca %1"
10591177
@@ -1090,9 +1208,6 @@ msgstr "Contraseña muy débil"
10901208#~ msgid "Let’s get started."
10911209#~ msgstr "Comencemos."
10921210
1093−#~ msgid "Continue"
1094−#~ msgstr "Continuar"
1095−
10961211#~ msgid "Available networks…"
10971212#~ msgstr "Redes disponibles…"
10981213
@@ -1116,18 +1231,18 @@ msgstr "Contraseña muy débil"
11161231#~ "Your phone is set up to automatically report errors to Canonical and its "
11171232#~ "partners, the makers of the operating system."
11181233#~ msgstr ""
1119−#~ "El teléfono está configurado para enviar automáticamente informes de error a "
1120−#~ "Canonical y sus socios, los creadores del sistema operativo."
1234+#~ "El teléfono está configurado para enviar automáticamente informes de "
1235+#~ "error a Canonical y sus socios, los creadores del sistema operativo."
11211236
11221237#~ msgid "All done"
11231238#~ msgstr "Hecho"
11241239
11251240#~ msgid ""
1126−#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1127−#~ "conditions</a>."
1241+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms "
1242+#~ "and conditions</a>."
11281243#~ msgstr ""
1129−#~ "Al seleccionar esta opción acepta los <a href='#'>términos y condiciones</a> "
1130−#~ "de Nokia HERE."
1244+#~ "Al seleccionar esta opción acepta los <a href='#'>términos y condiciones</"
1245+#~ "a> de Nokia HERE."
11311246
11321247#~ msgid "Let the phone detect your location:"
11331248#~ msgstr "Permitir que el teléfono detecte su ubicación:"
@@ -1150,7 +1265,6 @@ msgstr "Contraseña muy débil"
11501265#~ msgid "Confirm passphrase"
11511266#~ msgstr "Confirme la contraseña"
11521267
1153−#, qt-format
11541268#~ msgid "〈 %1"
11551269#~ msgstr "〈 %1"
11561270
@@ -1163,7 +1277,6 @@ msgstr "Contraseña muy débil"
11631277#~ msgid "Please try again."
11641278#~ msgstr "Inténtelo de nuevo."
11651279
1166−#, qt-format
11671280#~ msgid "%1 〉"
11681281#~ msgstr "%1 〉"
11691282
po/fr.po+280−164
@@ -6,43 +6,45 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-11-16 10:44+0000\n"
11−"PO-Revision-Date: 2016-10-02 08:06+0000\n"
12−"Last-Translator: Olivier Febwin <febwin@free.fr>\n"
13−"Language-Team: French <fr@li.org>\n"
9+"Report-Msgid-Bugs-To: \n"
10+"POT-Creation-Date: 2018-10-08 13:29-0500\n"
11+"PO-Revision-Date: 2018-11-19 21:16+0000\n"
12+"Last-Translator: Anne Onyme <anneonyme017@tutanota.com>\n"
13+"Language-Team: French <https://translate.ubports.com/projects/unity8/unity8/"
14+"fr/>\n"
15+"Language: fr\n"
1416"MIME-Version: 1.0\n"
1517"Content-Type: text/plain; charset=UTF-8\n"
1618"Content-Transfer-Encoding: 8bit\n"
1719"Plural-Forms: nplurals=2; plural=n > 1;\n"
20+"X-Generator: Weblate 3.1.1\n"
1821"X-Launchpad-Export-Date: 2016-11-23 06:35+0000\n"
19−"X-Generator: Launchpad (build 18269)\n"
2022
2123#: plugins/LightDM/Greeter.cpp:123
2224msgid "Password: "
2325msgstr "Mot de passe : "
2426
25−#: plugins/Unity/Launcher/launcheritem.cpp:49
26−#: plugins/Unity/Launcher/launcheritem.cpp:108
27+#: plugins/Unity/Launcher/launcheritem.cpp:50
28+#: plugins/Unity/Launcher/launcheritem.cpp:109
2729msgid "Pin shortcut"
2830msgstr "Épingler le raccourci"
2931
30−#: plugins/Unity/Launcher/launcheritem.cpp:54
32+#: plugins/Unity/Launcher/launcheritem.cpp:55
3133msgid "Quit"
3234msgstr "Quitter"
3335
34−#: plugins/Unity/Launcher/launcheritem.cpp:108
36+#: plugins/Unity/Launcher/launcheritem.cpp:109
3537msgid "Unpin shortcut"
3638msgstr "Détacher le raccourci"
3739
3840#: qml/Components/Dialogs.qml:149
3941msgctxt "Title: Lock/Log out dialog"
4042msgid "Log out"
41−msgstr "Fermer la session"
43+msgstr "Se déconnecter"
4244
4345#: qml/Components/Dialogs.qml:150
4446msgid "Are you sure you want to log out?"
45−msgstr "Êtes-vous sûr de vouloir vous déconnecter ?"
47+msgstr "Êtes-vous sûr(e) de vouloir vous déconnecter ?"
4648
4749#: qml/Components/Dialogs.qml:152
4850msgctxt "Button: Lock the system"
@@ -52,7 +54,7 @@ msgstr "Verrouiller"
5254#: qml/Components/Dialogs.qml:159
5355msgctxt "Button: Log out from the system"
5456msgid "Log Out"
55−msgstr "Fermer la session"
57+msgstr "Se déconnecter"
5658
5759#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
5860#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
@@ -68,7 +70,7 @@ msgstr "Redémarrer"
6870
6971#: qml/Components/Dialogs.qml:179
7072msgid "Are you sure you want to reboot?"
71−msgstr "Êtes-vous sûr de vouloir redémarrer ?"
73+msgstr "Êtes-vous sûr(e) de vouloir redémarrer ?"
7274
7375#: qml/Components/Dialogs.qml:181
7476msgid "No"
@@ -81,15 +83,15 @@ msgstr "Oui"
8183#: qml/Components/Dialogs.qml:202
8284msgctxt "Title: Power off/Restart dialog"
8385msgid "Power"
84−msgstr "Alimentation"
86+msgstr "Extinction"
8587
8688#: qml/Components/Dialogs.qml:203
8789msgid ""
8890"Are you sure you would like\n"
8991"to power off?"
9092msgstr ""
91−"Êtes-vous sûr de vouloir\n"
92−"couper l'alimentation ?"
93+"Êtes-vous sûr(e) de vouloir\n"
94+"éteindre ?"
9395
9496#: qml/Components/Dialogs.qml:205
9597msgctxt "Button: Power off the system"
@@ -123,7 +125,7 @@ msgstr "Alt + Impécr"
123125
124126#: qml/Components/KeyboardShortcutsOverlay.qml:80
125127msgid "Takes a screenshot of a window."
126−msgstr "Prends une capture d'écran d'une fenêtre."
128+msgstr "Prend une capture d'écran d'une fenêtre."
127129
128130#: qml/Components/KeyboardShortcutsOverlay.qml:88
129131msgid "Super + Space"
@@ -271,7 +273,7 @@ msgstr "Appel d'urgence"
271273
272274#: qml/Components/Lockscreen.qml:244
273275msgid "OK"
274−msgstr "OK"
276+msgstr "Valider"
275277
276278#: qml/Components/MediaServices/VideoPlayerControls.qml:44
277279#, qt-format
@@ -298,12 +300,12 @@ msgstr ""
298300#: qml/Components/ModeSwitchWarningDialog.qml:63
299301msgid "Or force close now (unsaved data will be lost)."
300302msgstr ""
301−"Ou forcer la fermeture maintenant (les données non enregistrées seront "
303+"Ou forcez la fermeture maintenant (les données non enregistrées seront "
302304"perdues)."
303305
304306#: qml/Components/ModeSwitchWarningDialog.qml:75
305307msgid "OK, I will reconnect"
306−msgstr "OK, je vais me reconnecter"
308+msgstr "D'accord, je vais me reconnecter"
307309
308310#: qml/Components/ModeSwitchWarningDialog.qml:76
309311msgid "Reconnect now!"
@@ -348,24 +350,24 @@ msgstr "Affiner vos résultats"
348350msgid "Reset"
349351msgstr "Réinitialiser"
350352
351−#: qml/Dash/GenericScopeView.qml:545 qml/Dash/GenericScopeView.qml:716
353+#: qml/Dash/GenericScopeView.qml:547 qml/Dash/GenericScopeView.qml:718
352354msgid "Show less"
353355msgstr "Afficher plus"
354356
355−#: qml/Dash/GenericScopeView.qml:545
357+#: qml/Dash/GenericScopeView.qml:547
356358msgid "Show all"
357359msgstr "Tout afficher"
358360
359−#: qml/Dash/GenericScopeView.qml:576
361+#: qml/Dash/GenericScopeView.qml:578
360362msgctxt "Label: Hint for dash search line edit"
361363msgid "Search"
362364msgstr "Rechercher"
363365
364−#: qml/Dash/PageHeaderExtraPanel.qml:57
366+#: qml/Dash/PageHeaderExtraPanel.qml:67
365367msgid "Recent Searches"
366368msgstr "Recherches récentes"
367369
368−#: qml/Dash/PageHeaderExtraPanel.qml:68
370+#: qml/Dash/PageHeaderExtraPanel.qml:78
369371msgid "Clear All"
370372msgstr "Tout effacer"
371373
@@ -384,7 +386,7 @@ msgstr "Envoyer"
384386
385387#: qml/Dash/Previews/PreviewRatingInput.qml:109
386388msgid "Rate this"
387−msgstr "Évaluez ceci"
389+msgstr "Évaluer ceci"
388390
389391#: qml/Dash/Previews/PreviewRatingInput.qml:184
390392msgid "Add a review"
@@ -392,11 +394,11 @@ msgstr "Ajouter un avis"
392394
393395#: qml/Dash/PullToRefreshScopeStyle.qml:56
394396msgid "Pull to refresh…"
395−msgstr "Tirer pour actualiser..."
397+msgstr "Tirer pour actualiser…"
396398
397399#: qml/Dash/PullToRefreshScopeStyle.qml:61
398400msgid "Release to refresh…"
399−msgstr "Relâcher pour actualiser..."
401+msgstr "Relâcher pour actualiser…"
400402
401403#: qml/Dash/ScopeSettings/ScopeSettingBoolean.qml:43
402404msgid "Enable location data"
@@ -446,8 +448,8 @@ msgstr ""
446448#, qt-format
447449msgid "Please wait %1 minute and then try again…"
448450msgid_plural "Please wait %1 minutes and then try again…"
449−msgstr[0] "Veuillez patienter %1 minute puis réessayez..."
450−msgstr[1] "Veuillez patienter %1 minutes puis réessayez..."
451+msgstr[0] "Veuillez patienter %1 minute puis réessayez…"
452+msgstr[1] "Veuillez patienter %1 minutes puis réessayez…"
451453
452454#: qml/Greeter/Greeter.qml:596
453455msgid "Try again"
@@ -461,7 +463,7 @@ msgstr "Phrase secrète"
461463msgid "Passcode"
462464msgstr "Code"
463465
464−#: qml/Greeter/LoginList.qml:98
466+#: qml/Greeter/LoginList.qml:98 qml/Wizard/Pages/UpdateDelegate.qml:118
465467msgid "Retry"
466468msgstr "Réessayer"
467469
@@ -526,9 +528,10 @@ msgstr "Il reste %1"
526528
527529#: qml/Panel/Indicators/MenuItemFactory.qml:995
528530msgid "In queue…"
529−msgstr "Dans la file d'attente..."
531+msgstr "Dans la file d'attente…"
530532
531533#: qml/Panel/Indicators/MenuItemFactory.qml:999
534+#: qml/Wizard/Pages/UpdateDelegate.qml:226
532535msgid "Downloading"
533536msgstr "Téléchargement en cours"
534537
@@ -597,25 +600,43 @@ msgstr ""
597600"Faites glisser à partir du bord supérieur pour accéder aux notifications et "
598601"aux réglages rapides"
599602
600−#: qml/Wizard/Page.qml:54
603+#: qml/Wizard/Page.qml:59
601604msgctxt "Button: Go back one page in the Wizard"
602605msgid "Back"
603606msgstr "Précédent"
604607
605−#: qml/Wizard/Pages/10-welcome.qml:28
608+#: qml/Wizard/Pages/10-welcome.qml:29
606609msgid "Language"
607610msgstr "Langue"
608611
609−#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
610−#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
611−#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
612−#: qml/Wizard/Pages/70-passwd-type.qml:145
613−#: qml/Wizard/Pages/75-report-check.qml:84
612+#: qml/Wizard/Pages/10-welcome.qml:175
613+#: qml/Wizard/Pages/10-welcome-update.qml:126
614+#: qml/Wizard/Pages/11-changelog.qml:74 qml/Wizard/Pages/20-keyboard.qml:152
615+#: qml/Wizard/Pages/30-wifi.qml:208 qml/Wizard/Pages/50-timezone.qml:272
616+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/70-passwd-type.qml:146
617+#: qml/Wizard/Pages/75-report-check.qml:85
618+#: qml/Wizard/Pages/76-app-update.qml:236
614619#: qml/Wizard/Pages/passcode-desktop.qml:142
615620#: qml/Wizard/Pages/password-set.qml:142
616621msgid "Next"
617622msgstr "Suivant"
618623
624+#: qml/Wizard/Pages/10-welcome-update.qml:91
625+msgid "Welcome to "
626+msgstr "Bienvenue sur "
627+
628+#: qml/Wizard/Pages/10-welcome-update.qml:106
629+msgid "We will make sure your device is ready to use "
630+msgstr "Nous allons nous assurer que votre appareil est prêt à l'emploi "
631+
632+#: qml/Wizard/Pages/11-changelog.qml:28
633+msgid "What's new"
634+msgstr "Quoi de neuf"
635+
636+#: qml/Wizard/Pages/11-changelog.qml:74
637+msgid "Loading..."
638+msgstr "Chargement..."
639+
619640#: qml/Wizard/Pages/20-keyboard.qml:31
620641msgid "Select Keyboard"
621642msgstr "Sélectionner le clavier"
@@ -628,9 +649,9 @@ msgstr "Langue du clavier"
628649msgid "Keyboard layout"
629650msgstr "Disposition du clavier"
630651
631−#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
632−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
633−#: qml/Wizard/Pages/sim.qml:101
652+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:208
653+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/76-app-update.qml:240
654+#: qml/Wizard/Pages/79-system-update.qml:152 qml/Wizard/Pages/sim.qml:101
634655msgid "Skip"
635656msgstr "Passer"
636657
@@ -638,57 +659,23 @@ msgstr "Passer"
638659msgid "Connect to Wi‑Fi"
639660msgstr "Se connecter au Wi-Fi"
640661
641−#: qml/Wizard/Pages/30-wifi.qml:132
662+#: qml/Wizard/Pages/30-wifi.qml:133
642663msgid "Connected"
643664msgstr "Connecté"
644665
645−#: qml/Wizard/Pages/30-wifi.qml:165
666+#: qml/Wizard/Pages/30-wifi.qml:166
646667msgid "Available Wi-Fi networks"
647668msgstr "Réseaux Wi-Fi disponibles"
648669
649−#: qml/Wizard/Pages/30-wifi.qml:166
670+#: qml/Wizard/Pages/30-wifi.qml:167
650671msgid "No available Wi-Fi networks"
651672msgstr "Aucun réseau Wi-Fi disponible"
652673
653−#: qml/Wizard/Pages/40-location.qml:27
654−msgid "Location Services"
655−msgstr "Services de localisation"
656−
657−#: qml/Wizard/Pages/40-location.qml:83
658−msgid ""
659−"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
660−"(recommended)"
661−msgstr ""
662−"Utiliser le GPS, les points d'accès Wi-Fi et le réseau mobile de manière "
663−"anonyme afin de détecter la position (recommandé)"
664−
665−#: qml/Wizard/Pages/40-location.qml:105
666−#, qt-format
667−msgid "By selecting this option you agree to the Nokia HERE %1."
668−msgstr "En sélectionnant cette option, vous acceptez les %1 de Nokia HERE."
669−
670−#: qml/Wizard/Pages/40-location.qml:106
671−msgctxt "part of: Nokia HERE terms and conditions"
672−msgid "terms and conditions"
673−msgstr "conditions générales d'utilisation"
674−
675−#: qml/Wizard/Pages/40-location.qml:160
676−msgid "GPS only"
677−msgstr "GPS uniquement"
678−
679−#: qml/Wizard/Pages/40-location.qml:214
680−msgid "Don't use my location"
681−msgstr "Ne pas utiliser ma position"
682−
683−#: qml/Wizard/Pages/40-location.qml:260
684−msgid "You can change it later in System Settings."
685−msgstr "Vous pourrez le modifier ultérieurement dans les Paramètres système."
686−
687674#: qml/Wizard/Pages/50-timezone.qml:30
688675msgid "Time Zone"
689676msgstr "Fuseau horaire"
690677
691−#: qml/Wizard/Pages/50-timezone.qml:182
678+#: qml/Wizard/Pages/50-timezone.qml:183
692679msgid "Enter your city"
693680msgstr "Saisir votre ville"
694681
@@ -696,7 +683,7 @@ msgstr "Saisir votre ville"
696683msgid "Personalize Your Device"
697684msgstr "Personnaliser votre appareil"
698685
699−#: qml/Wizard/Pages/60-account.qml:48
686+#: qml/Wizard/Pages/60-account.qml:49
700687msgid "Preferred Name"
701688msgstr "Nom préferé"
702689
@@ -704,22 +691,22 @@ msgstr "Nom préferé"
704691msgid "Lock Screen"
705692msgstr "Verrouiller l'écran"
706693
707−#: qml/Wizard/Pages/70-passwd-type.qml:102
694+#: qml/Wizard/Pages/70-passwd-type.qml:103
708695msgctxt "Label: Type of security method"
709696msgid "Create new password"
710697msgstr "Créer un nouveau mot de passe"
711698
712−#: qml/Wizard/Pages/70-passwd-type.qml:104
699+#: qml/Wizard/Pages/70-passwd-type.qml:105
713700msgctxt "Label: Type of security method"
714701msgid "Create passcode (numbers only)"
715702msgstr "Créer un code (chiffres uniquement)"
716703
717−#: qml/Wizard/Pages/70-passwd-type.qml:106
704+#: qml/Wizard/Pages/70-passwd-type.qml:107
718705msgctxt "Label: Type of security method"
719706msgid "No lock code"
720707msgstr "Aucun code de verrouillage"
721708
722−#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
709+#: qml/Wizard/Pages/75-report-check.qml:26
723710msgid "Privacy Policy"
724711msgstr "Politique de confidentialité"
725712
@@ -727,21 +714,48 @@ msgstr "Politique de confidentialité"
727714msgid "Help Us Improve"
728715msgstr "Aidez-nous à nous améliorer"
729716
730−#: qml/Wizard/Pages/75-report-check.qml:59
717+#: qml/Wizard/Pages/75-report-check.qml:60
731718msgid "Improve system performance by sending us crashes and error reports."
732719msgstr ""
733720"Améliorez les performances du système en nous envoyant les rapports d'erreur "
734721"et en nous signalant les anomalies."
735722
736−#: qml/Wizard/Pages/75-report-check.qml:60
723+#: qml/Wizard/Pages/75-report-check.qml:61
737724msgid "Privacy policy"
738725msgstr "Politique de confidentialité"
739726
740−#: qml/Wizard/Pages/77-system-update.qml:28
727+#: qml/Wizard/Pages/76-app-update.qml:35
728+msgid "Update Apps"
729+msgstr "Mise à jour des applications"
730+
731+#: qml/Wizard/Pages/76-app-update.qml:127
732+msgid "This device is not connected to the internet."
733+msgstr "Cet appareil n'est pas connecté à Internet."
734+
735+#: qml/Wizard/Pages/76-app-update.qml:128
736+#: qml/Wizard/Pages/76-app-update.qml:134
737+msgid "Use the OpenStore app to check for updates once connected."
738+msgstr ""
739+"Utilisez l'application Openstore pour rechercher les mises à jour une fois "
740+"connecté."
741+
742+#: qml/Wizard/Pages/76-app-update.qml:130
743+msgid "Software is up to date"
744+msgstr "Le logiciel est à jour"
745+
746+#: qml/Wizard/Pages/76-app-update.qml:133
747+msgid "The update server is not responding."
748+msgstr "Le serveur de mise à jour ne répond pas."
749+
750+#: qml/Wizard/Pages/76-app-update.qml:238
751+msgid "Please wait..."
752+msgstr "Veuillez patienter…"
753+
754+#: qml/Wizard/Pages/79-system-update.qml:28
741755msgid "Update Device"
742756msgstr "Mettre à jour l'appareil"
743757
744−#: qml/Wizard/Pages/77-system-update.qml:55
758+#: qml/Wizard/Pages/79-system-update.qml:55
745759msgid ""
746760"There is a system update available and ready to install. Afterwards, the "
747761"device will automatically restart."
@@ -749,74 +763,67 @@ msgstr ""
749763"Une mise à jour du système est disponible et prête à être installée. Votre "
750764"appareil redémarrera automatiquement."
751765
752−#: qml/Wizard/Pages/77-system-update.qml:76
766+#: qml/Wizard/Pages/79-system-update.qml:76
753767msgctxt "string identifying name of the update"
754768msgid "Ubuntu system"
755769msgstr "Système Ubuntu"
756770
757−#: qml/Wizard/Pages/77-system-update.qml:83
771+#: qml/Wizard/Pages/79-system-update.qml:83
758772#, qt-format
759773msgctxt "version of the system update"
760774msgid "Version %1"
761775msgstr "Version %1"
762776
763−#: qml/Wizard/Pages/77-system-update.qml:102
777+#: qml/Wizard/Pages/79-system-update.qml:102
764778msgid "This could take a few minutes..."
765779msgstr "Cela pourra prendre quelques minutes…"
766780
767−#: qml/Wizard/Pages/77-system-update.qml:116
781+#: qml/Wizard/Pages/79-system-update.qml:116
768782msgid "Install and restart now"
769783msgstr "Installer et redémarrer maintenant"
770784
771−#: qml/Wizard/Pages/80-finished.qml:89
785+#: qml/Wizard/Pages/80-finished.qml:91
786+msgid "Welcome Back"
787+msgstr "Bon retour parmi nous"
788+
789+#: qml/Wizard/Pages/80-finished.qml:91
772790msgid "Welcome to Ubuntu"
773791msgstr "Bienvenue sur Ubuntu"
774792
775−#: qml/Wizard/Pages/80-finished.qml:104
793+#: qml/Wizard/Pages/80-finished.qml:106
776794msgid "You are ready to use your device now"
777795msgstr "Vous êtes prêt à utiliser votre appareil maintenant"
778796
779−#: qml/Wizard/Pages/80-finished.qml:124
797+#: qml/Wizard/Pages/80-finished.qml:126
798+msgid "Continue"
799+msgstr "Continuer"
800+
801+#: qml/Wizard/Pages/80-finished.qml:126
780802msgid "Get Started"
781803msgstr "Commencer"
782804
783−#: qml/Wizard/Pages/here-terms.qml:25
784−msgid "Terms & Conditions"
785−msgstr "Conditions générales d'utilisation"
786−
787−#: qml/Wizard/Pages/here-terms.qml:69
788−msgid "Your device uses positioning technologies provided by HERE."
789−msgstr ""
790−"Votre appareil utilise des technologies de localisation fournies par HERE."
805+#: qml/Wizard/Pages/DownloadHandler.qml:174
806+msgid "Installation failed"
807+msgstr "L'installation a échoué"
791808
792−#: qml/Wizard/Pages/here-terms.qml:81
793−msgid ""
794−"To provide you with positioning services and to improve their quality, HERE "
795−"collects information about nearby cell towers and Wi-Fi hotspots around your "
796−"current location whenever your position is being found."
797−msgstr ""
798−"Afin de vous offrir des services de localisation et d'améliorer leur "
799−"qualité, HERE collecte des informations sur les tours cellulaires à "
800−"proximité et les points d'accès Wi-Fi autour de votre emplacement actuel "
801−"chaque fois que votre position est trouvée."
809+#: qml/Wizard/Pages/GlobalUpdateControls.qml:84
810+msgid "Checking for updates…"
811+msgstr "Recherche de mises à jour…"
802812
803−#: qml/Wizard/Pages/here-terms.qml:93
804−msgid ""
805−"The information collected is used to analyze the service and to improve the "
806−"use of service, but not to identify you personally."
807−msgstr ""
808−"Les informations recueillies sont utilisées pour analyser le service et pour "
809−"améliorer l'utilisation du service mais pas pour vous identifier "
810−"personnellement."
811−
812−#: qml/Wizard/Pages/here-terms.qml:106
813+#: qml/Wizard/Pages/GlobalUpdateControls.qml:109
813814#, qt-format
814−msgid "By continuing, you agree to the HERE platform %1 and %2."
815−msgstr "En continuant, nous acceptez la %1 et les %2 de la plateforme HERE."
815+msgid "%1 update available"
816+msgid_plural "%1 updates available"
817+msgstr[0] "%1 mise à jour disponible"
818+msgstr[1] "%1 mises à jour disponibles"
816819
817−#: qml/Wizard/Pages/here-terms.qml:107
818−msgid "Service Terms"
819−msgstr "Conditions de service"
820+#: qml/Wizard/Pages/GlobalUpdateControls.qml:119
821+msgid "Update all…"
822+msgstr "Mettre tout à jour…"
823+
824+#: qml/Wizard/Pages/GlobalUpdateControls.qml:121
825+msgid "Update all"
826+msgstr "Mettre tout à jour"
820827
821828#: qml/Wizard/Pages/passcode-confirm.qml:43
822829#: qml/Wizard/Pages/passcode-desktop.qml:97
@@ -901,7 +908,69 @@ msgstr ""
901908
902909#: qml/Wizard/Pages/sim.qml:90
903910msgid "To proceed with no SIM tap Skip."
904−msgstr "Pour poursuivre sans carte SIM, appuyez sur « Passer »"
911+msgstr "Pour poursuivre sans carte SIM, appuyez sur « Passer »."
912+
913+#: qml/Wizard/Pages/UpdateDelegate.qml:123
914+msgid "Update"
915+msgstr "Mettre à jour"
916+
917+#: qml/Wizard/Pages/UpdateDelegate.qml:125
918+msgid "Download"
919+msgstr "Télécharger"
920+
921+#: qml/Wizard/Pages/UpdateDelegate.qml:131
922+msgid "Resume"
923+msgstr "Reprendre"
924+
925+#: qml/Wizard/Pages/UpdateDelegate.qml:138
926+msgid "Pause"
927+msgstr "Pause"
928+
929+#: qml/Wizard/Pages/UpdateDelegate.qml:142
930+msgid "Install…"
931+msgstr "Installer…"
932+
933+#: qml/Wizard/Pages/UpdateDelegate.qml:144
934+msgid "Install"
935+msgstr "Installer"
936+
937+#: qml/Wizard/Pages/UpdateDelegate.qml:148
938+msgid "Open"
939+msgstr "Ouvrir"
940+
941+#: qml/Wizard/Pages/UpdateDelegate.qml:216
942+msgid "Installing"
943+msgstr "Installation en cours"
944+
945+#: qml/Wizard/Pages/UpdateDelegate.qml:220
946+msgid "Paused"
947+msgstr "En pause"
948+
949+#: qml/Wizard/Pages/UpdateDelegate.qml:223
950+msgid "Waiting to download"
951+msgstr "En attente du téléchargement"
952+
953+#: qml/Wizard/Pages/UpdateDelegate.qml:279
954+#, qt-format
955+msgid "%1 of %2"
956+msgstr "%1 de %2"
957+
958+#: qml/Wizard/Pages/UpdateDelegate.qml:283
959+msgid "Downloaded"
960+msgstr "Téléchargé"
961+
962+#: qml/Wizard/Pages/UpdateDelegate.qml:286
963+msgid "Installed"
964+msgstr "Installé"
965+
966+#: qml/Wizard/Pages/UpdateDelegate.qml:291
967+#, qt-format
968+msgid "Updated %1"
969+msgstr "Mis à jour %1"
970+
971+#: qml/Wizard/Pages/UpdateDelegate.qml:315
972+msgid "Update failed"
973+msgstr "Échec de la mise à jour"
905974
906975#: qml/Wizard/PasswordMeter.qml:87
907976msgid "Password too short"
@@ -931,6 +1000,64 @@ msgstr "Mot de passe faible"
9311000msgid "Very weak password"
9321001msgstr "Mot de passe très faible"
9331002
1003+#~ msgid "Location Services"
1004+#~ msgstr "Services de localisation"
1005+
1006+#~ msgid ""
1007+#~ "Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
1008+#~ "(recommended)"
1009+#~ msgstr ""
1010+#~ "Utiliser le GPS, les points d'accès Wi-Fi et le réseau mobile de manière "
1011+#~ "anonyme afin de détecter la position (recommandé)"
1012+
1013+#~ msgid "By selecting this option you agree to the Nokia HERE %1."
1014+#~ msgstr "En sélectionnant cette option, vous acceptez les %1 de Nokia HERE."
1015+
1016+#~ msgctxt "part of: Nokia HERE terms and conditions"
1017+#~ msgid "terms and conditions"
1018+#~ msgstr "conditions générales d'utilisation"
1019+
1020+#~ msgid "GPS only"
1021+#~ msgstr "GPS uniquement"
1022+
1023+#~ msgid "Don't use my location"
1024+#~ msgstr "Ne pas utiliser ma position"
1025+
1026+#~ msgid "You can change it later in System Settings."
1027+#~ msgstr ""
1028+#~ "Vous pourrez le modifier ultérieurement dans les Paramètres système."
1029+
1030+#~ msgid "Terms & Conditions"
1031+#~ msgstr "Conditions générales d'utilisation"
1032+
1033+#~ msgid "Your device uses positioning technologies provided by HERE."
1034+#~ msgstr ""
1035+#~ "Votre appareil utilise des technologies de localisation fournies par HERE."
1036+
1037+#~ msgid ""
1038+#~ "To provide you with positioning services and to improve their quality, "
1039+#~ "HERE collects information about nearby cell towers and Wi-Fi hotspots "
1040+#~ "around your current location whenever your position is being found."
1041+#~ msgstr ""
1042+#~ "Afin de vous offrir des services de localisation et d'améliorer leur "
1043+#~ "qualité, HERE collecte des informations sur les tours cellulaires à "
1044+#~ "proximité et les points d'accès Wi-Fi autour de votre emplacement actuel "
1045+#~ "chaque fois que votre position est trouvée."
1046+
1047+#~ msgid ""
1048+#~ "The information collected is used to analyze the service and to improve "
1049+#~ "the use of service, but not to identify you personally."
1050+#~ msgstr ""
1051+#~ "Les informations recueillies sont utilisées pour analyser le service et "
1052+#~ "pour améliorer l'utilisation du service mais pas pour vous identifier "
1053+#~ "personnellement."
1054+
1055+#~ msgid "By continuing, you agree to the HERE platform %1 and %2."
1056+#~ msgstr "En continuant, nous acceptez la %1 et les %2 de la plateforme HERE."
1057+
1058+#~ msgid "Service Terms"
1059+#~ msgstr "Conditions de service"
1060+
9341061#~ msgid "Skip intro"
9351062#~ msgstr "Passer l'intro"
9361063
@@ -946,12 +1073,6 @@ msgstr "Mot de passe très faible"
9461073#~ msgid "Left edge"
9471074#~ msgstr "Bord gauche"
9481075
949−#~ msgid "Speaking..."
950−#~ msgstr "En cours d'écoute..."
951−
952−#~ msgid "Loading. Please Wait..."
953−#~ msgstr "Chargement. Veuillez patienter…"
954−
9551076#~ msgid "Search"
9561077#~ msgstr "Rechercher"
9571078
@@ -993,8 +1114,8 @@ msgstr "Mot de passe très faible"
9931114
9941115#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
9951116#~ msgstr ""
996−#~ "Faites glisser votre doigt à partir du bord gauche pour afficher le lanceur "
997−#~ "d'applications."
1117+#~ "Faites glisser votre doigt à partir du bord gauche pour afficher le "
1118+#~ "lanceur d'applications."
9981119
9991120#~ msgid "See all"
10001121#~ msgstr "Tout voir"
@@ -1027,25 +1148,24 @@ msgstr "Mot de passe très faible"
10271148#~ msgstr "Ceci sera votre dernière tentative."
10281149
10291150#~ msgid ""
1030−#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1031−#~ "and all personal data will be deleted."
1151+#~ "If passcode is entered incorrectly, your phone will conduct a factory "
1152+#~ "reset and all personal data will be deleted."
10321153#~ msgstr ""
1033−#~ "Si le code est saisi de manière incorrecte, votre téléphone effectuera une "
1034−#~ "réinitialisation aux paramètres d'usine et toutes les données personnelles "
1035−#~ "seront supprimées."
1154+#~ "Si le code est saisi de manière incorrecte, votre téléphone effectuera "
1155+#~ "une réinitialisation aux paramètres d'usine et toutes les données "
1156+#~ "personnelles seront supprimées."
10361157
10371158#~ msgid ""
10381159#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
10391160#~ "reset and all personal data will be deleted."
10401161#~ msgstr ""
10411162#~ "Si la phrase secrète est saisie de manière incorrecte, votre téléphone "
1042−#~ "effectuera une réinitialisation aux paramètres d'usine et toutes les données "
1043−#~ "personnelles seront supprimées."
1163+#~ "effectuera une réinitialisation aux paramètres d'usine et toutes les "
1164+#~ "données personnelles seront supprimées."
10441165
10451166#~ msgid "Roaming"
10461167#~ msgstr "Roaming"
10471168
1048−#, qt-format
10491169#~ msgid "Sorry, incorrect %1"
10501170#~ msgstr "Désolé, %1 incorrect"
10511171
@@ -1085,14 +1205,13 @@ msgstr "Mot de passe très faible"
10851205#~ msgid "Please re-enter"
10861206#~ msgstr "Veuillez ressaisir"
10871207
1088−#, qt-format
10891208#~ msgid "Enter %1"
10901209#~ msgstr "Saisissez %1"
10911210
10921211#~ msgid "Without it, you won’t be able to make calls or use text messaging."
10931212#~ msgstr ""
1094−#~ "Sans elle, vous ne serez pas en mesure de passer des appels ou d'envoyer des "
1095−#~ "SMS."
1213+#~ "Sans elle, vous ne serez pas en mesure de passer des appels ou d'envoyer "
1214+#~ "des SMS."
10961215
10971216#~ msgid "Welcome to your Ubuntu phone."
10981217#~ msgstr "Bienvenue sur votre téléphone Ubuntu."
@@ -1100,15 +1219,13 @@ msgstr "Mot de passe très faible"
11001219#~ msgid "Let’s get started."
11011220#~ msgstr "Commençons."
11021221
1103−#~ msgid "Continue"
1104−#~ msgstr "Continuer"
1105−
11061222#~ msgid "Lock security"
11071223#~ msgstr "Sécurité de verrouillage"
11081224
11091225#~ msgid "Please select how you’d like to unlock your phone."
11101226#~ msgstr ""
1111−#~ "Veuillez sélectionner comment vous souhaitez déverrouiller votre téléphone."
1227+#~ "Veuillez sélectionner comment vous souhaitez déverrouiller votre "
1228+#~ "téléphone."
11121229
11131230#~ msgid "Available networks…"
11141231#~ msgstr "Réseaux disponibles..."
@@ -1139,15 +1256,16 @@ msgstr "Mot de passe très faible"
11391256#~ "Your phone is set up to automatically report errors to Canonical and its "
11401257#~ "partners, the makers of the operating system."
11411258#~ msgstr ""
1142−#~ "Votre téléphone est réglé pour envoyer automatiquement des rapports d'erreur "
1143−#~ "à Canonical et à ses partenaires, les fabricants du système d'exploitation."
1259+#~ "Votre téléphone est réglé pour envoyer automatiquement des rapports "
1260+#~ "d'erreur à Canonical et à ses partenaires, les fabricants du système "
1261+#~ "d'exploitation."
11441262
11451263#~ msgid ""
11461264#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
11471265#~ "Privacy</b>"
11481266#~ msgstr ""
1149−#~ "Ceci peut être désactivé dans les <b>Paramètres système</b> sous <b>Sécurité "
1150−#~ "&amp; vie privée</b>"
1267+#~ "Ceci peut être désactivé dans les <b>Paramètres système</b> sous "
1268+#~ "<b>Sécurité &amp; vie privée</b>"
11511269
11521270#~ msgid "Nice work!"
11531271#~ msgstr "Beau travail !"
@@ -1171,8 +1289,8 @@ msgstr "Mot de passe très faible"
11711289#~ msgstr "Laisser le téléphone détecter votre position :"
11721290
11731291#~ msgid ""
1174−#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1175−#~ "conditions</a>."
1292+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms "
1293+#~ "and conditions</a>."
11761294#~ msgstr ""
11771295#~ "En sélectionnant cette option, vous acceptez les <a href='#'>conditions "
11781296#~ "générales d'utilisation</a> de Nokia HERE."
@@ -1185,11 +1303,9 @@ msgstr "Mot de passe très faible"
11851303#~ "Utilisation des informations du GPS, du Wi-Fi anonymisé et du réseau "
11861304#~ "cellulaire (recommandé)"
11871305
1188−#, qt-format
11891306#~ msgid "〈 %1"
11901307#~ msgstr "〈 %1"
11911308
1192−#, qt-format
11931309#~ msgid "%1 〉"
11941310#~ msgstr "%1 〉"
11951311
@@ -1342,8 +1458,8 @@ msgstr "Mot de passe très faible"
13421458
13431459#~ msgid "Short or long swipe from the right edge to view your open apps"
13441460#~ msgstr ""
1345−#~ "Faites glisser brièvement ou longuement à partir du bord droit pour voir vos "
1346−#~ "applications ouvertes"
1461+#~ "Faites glisser brièvement ou longuement à partir du bord droit pour voir "
1462+#~ "vos applications ouvertes"
13471463
13481464#~ msgid "Swipe up for recent calls"
13491465#~ msgstr "Faites glisser vers le haut pour afficher les appels récents"
po/pl.po+253−140
@@ -6,33 +6,35 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-11-16 10:44+0000\n"
11−"PO-Revision-Date: 2016-11-01 15:06+0000\n"
12−"Last-Translator: Krzysztof Tataradziński <Unknown>\n"
13−"Language-Team: Polish <pl@li.org>\n"
9+"Report-Msgid-Bugs-To: \n"
10+"POT-Creation-Date: 2018-10-08 13:29-0500\n"
11+"PO-Revision-Date: 2018-11-19 22:08+0000\n"
12+"Last-Translator: Daniel Frańczak <danielfranczak5@wp.pl>\n"
13+"Language-Team: Polish <https://translate.ubports.com/projects/unity8/unity8/"
14+"pl/>\n"
15+"Language: pl\n"
1416"MIME-Version: 1.0\n"
1517"Content-Type: text/plain; charset=UTF-8\n"
1618"Content-Transfer-Encoding: 8bit\n"
1719"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
1820"|| n%100>=20) ? 1 : 2;\n"
21+"X-Generator: Weblate 3.1.1\n"
1922"X-Launchpad-Export-Date: 2016-11-23 06:35+0000\n"
20−"X-Generator: Launchpad (build 18269)\n"
2123
2224#: plugins/LightDM/Greeter.cpp:123
2325msgid "Password: "
2426msgstr "Hasło: "
2527
26−#: plugins/Unity/Launcher/launcheritem.cpp:49
27−#: plugins/Unity/Launcher/launcheritem.cpp:108
28+#: plugins/Unity/Launcher/launcheritem.cpp:50
29+#: plugins/Unity/Launcher/launcheritem.cpp:109
2830msgid "Pin shortcut"
2931msgstr "Przypnij skrót"
3032
31−#: plugins/Unity/Launcher/launcheritem.cpp:54
33+#: plugins/Unity/Launcher/launcheritem.cpp:55
3234msgid "Quit"
3335msgstr "Zakończ"
3436
35−#: plugins/Unity/Launcher/launcheritem.cpp:108
37+#: plugins/Unity/Launcher/launcheritem.cpp:109
3638msgid "Unpin shortcut"
3739msgstr "Odepnij skrót"
3840
@@ -182,7 +184,7 @@ msgstr "Soczewki"
182184
183185#: qml/Components/KeyboardShortcutsOverlay.qml:188
184186msgid "Super (Tap)"
185−msgstr ""
187+msgstr "Super (stuknij)"
186188
187189#: qml/Components/KeyboardShortcutsOverlay.qml:193
188190msgid "Opens the Scopes home."
@@ -206,7 +208,7 @@ msgstr "Super + W"
206208
207209#: qml/Components/KeyboardShortcutsOverlay.qml:234
208210msgid "Opens the desktop spread."
209−msgstr ""
211+msgstr "Otwiera rozszerzenie pulpitu."
210212
211213#: qml/Components/KeyboardShortcutsOverlay.qml:242
212214msgid "Cursor Left or Right"
@@ -344,24 +346,24 @@ msgstr "Przefiltruj wyniki"
344346msgid "Reset"
345347msgstr "Reset"
346348
347−#: qml/Dash/GenericScopeView.qml:545 qml/Dash/GenericScopeView.qml:716
349+#: qml/Dash/GenericScopeView.qml:547 qml/Dash/GenericScopeView.qml:718
348350msgid "Show less"
349351msgstr "Pokaż mniej"
350352
351−#: qml/Dash/GenericScopeView.qml:545
353+#: qml/Dash/GenericScopeView.qml:547
352354msgid "Show all"
353355msgstr "Pokaż wszystko"
354356
355−#: qml/Dash/GenericScopeView.qml:576
357+#: qml/Dash/GenericScopeView.qml:578
356358msgctxt "Label: Hint for dash search line edit"
357359msgid "Search"
358360msgstr "Szukaj"
359361
360−#: qml/Dash/PageHeaderExtraPanel.qml:57
362+#: qml/Dash/PageHeaderExtraPanel.qml:67
361363msgid "Recent Searches"
362364msgstr "Ostatnie wyszukiwania"
363365
364−#: qml/Dash/PageHeaderExtraPanel.qml:68
366+#: qml/Dash/PageHeaderExtraPanel.qml:78
365367msgid "Clear All"
366368msgstr "Wyczyść wszystko"
367369
@@ -454,7 +456,7 @@ msgstr "Hasło"
454456msgid "Passcode"
455457msgstr "Kod"
456458
457−#: qml/Greeter/LoginList.qml:98
459+#: qml/Greeter/LoginList.qml:98 qml/Wizard/Pages/UpdateDelegate.qml:118
458460msgid "Retry"
459461msgstr "Ponów"
460462
@@ -464,7 +466,7 @@ msgstr "Zaloguj"
464466
465467#: qml/Greeter/NarrowView.qml:252
466468msgid "Emergency"
467−msgstr ""
469+msgstr "Alarmowe"
468470
469471#: qml/Greeter/SessionsList.qml:122
470472msgid "Select desktop environment"
@@ -525,6 +527,7 @@ msgid "In queue…"
525527msgstr "W kolejce..."
526528
527529#: qml/Panel/Indicators/MenuItemFactory.qml:999
530+#: qml/Wizard/Pages/UpdateDelegate.qml:226
528531msgid "Downloading"
529532msgstr "Pobieranie"
530533
@@ -562,8 +565,7 @@ msgstr "Oddzwoń"
562565
563566#: qml/Stage/SideStage.qml:76
564567msgid "Drag using 3 fingers any application from one window to the other"
565−msgstr ""
566−"Przeciągnij 3 palcami jakąkolwiek aplikację z jednego okna do drugiego"
568+msgstr "Przeciągnij 3 palcami jakąkolwiek aplikację z jednego okna do drugiego"
567569
568570#: qml/Tutorial/TutorialLeftLong.qml:49
569571msgid "Long swipe from the left edge to open the Today scope"
@@ -587,25 +589,43 @@ msgstr ""
587589"Przeciągnij od górnej krawędzi, dotykając palcem wybranej ikony, by otworzyć "
588590"menu powiadomień i szybkich ustawień"
589591
590−#: qml/Wizard/Page.qml:54
592+#: qml/Wizard/Page.qml:59
591593msgctxt "Button: Go back one page in the Wizard"
592594msgid "Back"
593595msgstr "Powrót"
594596
595−#: qml/Wizard/Pages/10-welcome.qml:28
597+#: qml/Wizard/Pages/10-welcome.qml:29
596598msgid "Language"
597599msgstr "Język"
598600
599−#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
600−#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
601−#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
602−#: qml/Wizard/Pages/70-passwd-type.qml:145
603−#: qml/Wizard/Pages/75-report-check.qml:84
601+#: qml/Wizard/Pages/10-welcome.qml:175
602+#: qml/Wizard/Pages/10-welcome-update.qml:126
603+#: qml/Wizard/Pages/11-changelog.qml:74 qml/Wizard/Pages/20-keyboard.qml:152
604+#: qml/Wizard/Pages/30-wifi.qml:208 qml/Wizard/Pages/50-timezone.qml:272
605+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/70-passwd-type.qml:146
606+#: qml/Wizard/Pages/75-report-check.qml:85
607+#: qml/Wizard/Pages/76-app-update.qml:236
604608#: qml/Wizard/Pages/passcode-desktop.qml:142
605609#: qml/Wizard/Pages/password-set.qml:142
606610msgid "Next"
607611msgstr "Dalej"
608612
613+#: qml/Wizard/Pages/10-welcome-update.qml:91
614+msgid "Welcome to "
615+msgstr "Witamy w "
616+
617+#: qml/Wizard/Pages/10-welcome-update.qml:106
618+msgid "We will make sure your device is ready to use "
619+msgstr "Upewnimy się, że Twoje urządzenie jest gotowe do użycia "
620+
621+#: qml/Wizard/Pages/11-changelog.qml:28
622+msgid "What's new"
623+msgstr "Co nowego"
624+
625+#: qml/Wizard/Pages/11-changelog.qml:74
626+msgid "Loading..."
627+msgstr "Ładowanie…"
628+
609629#: qml/Wizard/Pages/20-keyboard.qml:31
610630msgid "Select Keyboard"
611631msgstr "Wybierz układ klawiatury"
@@ -618,9 +638,9 @@ msgstr "Język klawiatury"
618638msgid "Keyboard layout"
619639msgstr "Układ klawiatury"
620640
621−#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
622−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
623−#: qml/Wizard/Pages/sim.qml:101
641+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:208
642+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/76-app-update.qml:240
643+#: qml/Wizard/Pages/79-system-update.qml:152 qml/Wizard/Pages/sim.qml:101
624644msgid "Skip"
625645msgstr "Pomiń"
626646
@@ -628,58 +648,23 @@ msgstr "Pomiń"
628648msgid "Connect to Wi‑Fi"
629649msgstr "Połącz z Wi-Fi"
630650
631−#: qml/Wizard/Pages/30-wifi.qml:132
651+#: qml/Wizard/Pages/30-wifi.qml:133
632652msgid "Connected"
633653msgstr "Połączony"
634654
635−#: qml/Wizard/Pages/30-wifi.qml:165
655+#: qml/Wizard/Pages/30-wifi.qml:166
636656msgid "Available Wi-Fi networks"
637657msgstr "Dostępne sieci Wi-Fi"
638658
639−#: qml/Wizard/Pages/30-wifi.qml:166
659+#: qml/Wizard/Pages/30-wifi.qml:167
640660msgid "No available Wi-Fi networks"
641661msgstr "Brak dostępnych sieci Wi-Fi"
642662
643−#: qml/Wizard/Pages/40-location.qml:27
644−msgid "Location Services"
645−msgstr "Usługi lokalizacji"
646−
647−#: qml/Wizard/Pages/40-location.qml:83
648−msgid ""
649−"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
650−"(recommended)"
651−msgstr ""
652−"Anonimowe ustalanie lokalizacji za pomocą GPS, Wi-Fi oraz GSM (zalecane)"
653−
654−#: qml/Wizard/Pages/40-location.qml:105
655−#, qt-format
656−msgid "By selecting this option you agree to the Nokia HERE %1."
657−msgstr ""
658−"Zaznaczając tę opcję zgadzasz się z postanowieniami zasad użytkowania Nokia "
659−"HERE %1"
660−
661−#: qml/Wizard/Pages/40-location.qml:106
662−msgctxt "part of: Nokia HERE terms and conditions"
663−msgid "terms and conditions"
664−msgstr "Zasady użytkowania"
665−
666−#: qml/Wizard/Pages/40-location.qml:160
667−msgid "GPS only"
668−msgstr "Tylko GPS"
669−
670−#: qml/Wizard/Pages/40-location.qml:214
671−msgid "Don't use my location"
672−msgstr "Nie sprawdzaj mojej lokalizacji"
673−
674−#: qml/Wizard/Pages/40-location.qml:260
675−msgid "You can change it later in System Settings."
676−msgstr "Możesz to później zmienić w ustawianiach systemu"
677−
678663#: qml/Wizard/Pages/50-timezone.qml:30
679664msgid "Time Zone"
680665msgstr "Strefa czasowa"
681666
682−#: qml/Wizard/Pages/50-timezone.qml:182
667+#: qml/Wizard/Pages/50-timezone.qml:183
683668msgid "Enter your city"
684669msgstr "Podaj przybliżoną lokalizację"
685670
@@ -687,7 +672,7 @@ msgstr "Podaj przybliżoną lokalizację"
687672msgid "Personalize Your Device"
688673msgstr "Personalizacja urządzenia"
689674
690−#: qml/Wizard/Pages/60-account.qml:48
675+#: qml/Wizard/Pages/60-account.qml:49
691676msgid "Preferred Name"
692677msgstr "Imię"
693678
@@ -695,22 +680,22 @@ msgstr "Imię"
695680msgid "Lock Screen"
696681msgstr "Blokada ekranu"
697682
698−#: qml/Wizard/Pages/70-passwd-type.qml:102
683+#: qml/Wizard/Pages/70-passwd-type.qml:103
699684msgctxt "Label: Type of security method"
700685msgid "Create new password"
701686msgstr "Hasło"
702687
703−#: qml/Wizard/Pages/70-passwd-type.qml:104
688+#: qml/Wizard/Pages/70-passwd-type.qml:105
704689msgctxt "Label: Type of security method"
705690msgid "Create passcode (numbers only)"
706691msgstr "Kod (tylko cyfry)"
707692
708−#: qml/Wizard/Pages/70-passwd-type.qml:106
693+#: qml/Wizard/Pages/70-passwd-type.qml:107
709694msgctxt "Label: Type of security method"
710695msgid "No lock code"
711696msgstr "Brak zabezpieczeń"
712697
713−#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
698+#: qml/Wizard/Pages/75-report-check.qml:26
714699msgid "Privacy Policy"
715700msgstr "Polityka prywatności"
716701
@@ -718,22 +703,49 @@ msgstr "Polityka prywatności"
718703msgid "Help Us Improve"
719704msgstr "Pomóż ulepszać system"
720705
721−#: qml/Wizard/Pages/75-report-check.qml:59
706+#: qml/Wizard/Pages/75-report-check.qml:60
722707msgid "Improve system performance by sending us crashes and error reports."
723708msgstr ""
724709"Twoje urządzenie może automatycznie wysyłać deweloperom raporty o problemach "
725710"w funkcjonowaniu systemu oraz aplikacji. Dzięki Tobie następna aktualizacja "
726711"może je rozwiązać."
727712
728−#: qml/Wizard/Pages/75-report-check.qml:60
713+#: qml/Wizard/Pages/75-report-check.qml:61
729714msgid "Privacy policy"
730715msgstr "Polityka prywatności"
731716
732−#: qml/Wizard/Pages/77-system-update.qml:28
717+#: qml/Wizard/Pages/76-app-update.qml:35
718+msgid "Update Apps"
719+msgstr "Zaktualizuj aplikacje"
720+
721+#: qml/Wizard/Pages/76-app-update.qml:127
722+msgid "This device is not connected to the internet."
723+msgstr "To urządzenie nie jest podłączone do Internetu."
724+
725+#: qml/Wizard/Pages/76-app-update.qml:128
726+#: qml/Wizard/Pages/76-app-update.qml:134
727+msgid "Use the OpenStore app to check for updates once connected."
728+msgstr ""
729+"Użyj aplikacji OpenStore, aby sprawdzić aktualizacje po podłączeniu do "
730+"Internetu."
731+
732+#: qml/Wizard/Pages/76-app-update.qml:130
733+msgid "Software is up to date"
734+msgstr "Oprogramowanie jest aktualne"
735+
736+#: qml/Wizard/Pages/76-app-update.qml:133
737+msgid "The update server is not responding."
738+msgstr "Serwer aktualizacji nie odpowiada."
739+
740+#: qml/Wizard/Pages/76-app-update.qml:238
741+msgid "Please wait..."
742+msgstr "Proszę czekać…"
743+
744+#: qml/Wizard/Pages/79-system-update.qml:28
733745msgid "Update Device"
734746msgstr "Aktualizacja urządzenia"
735747
736−#: qml/Wizard/Pages/77-system-update.qml:55
748+#: qml/Wizard/Pages/79-system-update.qml:55
737749msgid ""
738750"There is a system update available and ready to install. Afterwards, the "
739751"device will automatically restart."
@@ -741,70 +753,68 @@ msgstr ""
741753"Dostępna jest aktualizacja systemu, która czeka na instalację. Urządzenie "
742754"będzie musiało zostać ponownie uruchomione."
743755
744−#: qml/Wizard/Pages/77-system-update.qml:76
756+#: qml/Wizard/Pages/79-system-update.qml:76
745757msgctxt "string identifying name of the update"
746758msgid "Ubuntu system"
747759msgstr "Ubuntu system"
748760
749−#: qml/Wizard/Pages/77-system-update.qml:83
761+#: qml/Wizard/Pages/79-system-update.qml:83
750762#, qt-format
751763msgctxt "version of the system update"
752764msgid "Version %1"
753765msgstr "Wersja %1"
754766
755−#: qml/Wizard/Pages/77-system-update.qml:102
767+#: qml/Wizard/Pages/79-system-update.qml:102
756768msgid "This could take a few minutes..."
757769msgstr "To może potrwać kilka minut"
758770
759−#: qml/Wizard/Pages/77-system-update.qml:116
771+#: qml/Wizard/Pages/79-system-update.qml:116
760772msgid "Install and restart now"
761773msgstr "Instaluj i uruchom ponownie teraz"
762774
763−#: qml/Wizard/Pages/80-finished.qml:89
775+#: qml/Wizard/Pages/80-finished.qml:91
776+msgid "Welcome Back"
777+msgstr "Witamy spowrotem"
778+
779+#: qml/Wizard/Pages/80-finished.qml:91
764780msgid "Welcome to Ubuntu"
765781msgstr "Witamy w Ubuntu"
766782
767−#: qml/Wizard/Pages/80-finished.qml:104
783+#: qml/Wizard/Pages/80-finished.qml:106
768784msgid "You are ready to use your device now"
769785msgstr "Twoje urządzenie jest gotowe do działania!"
770786
771−#: qml/Wizard/Pages/80-finished.qml:124
787+#: qml/Wizard/Pages/80-finished.qml:126
788+msgid "Continue"
789+msgstr "Kontynuuj"
790+
791+#: qml/Wizard/Pages/80-finished.qml:126
772792msgid "Get Started"
773793msgstr "Rozpocznij"
774794
775−#: qml/Wizard/Pages/here-terms.qml:25
776−msgid "Terms & Conditions"
777−msgstr "Zasady i warunki"
795+#: qml/Wizard/Pages/DownloadHandler.qml:174
796+msgid "Installation failed"
797+msgstr "Instalacja nie powiodła się"
778798
779−#: qml/Wizard/Pages/here-terms.qml:69
780−msgid "Your device uses positioning technologies provided by HERE."
781−msgstr "Twoje urządzenie odnajduje lokalizację za pomocą serwisu HERE."
799+#: qml/Wizard/Pages/GlobalUpdateControls.qml:84
800+msgid "Checking for updates…"
801+msgstr "Sprawdzanie aktualizacji…"
782802
783−#: qml/Wizard/Pages/here-terms.qml:81
784−msgid ""
785−"To provide you with positioning services and to improve their quality, HERE "
786−"collects information about nearby cell towers and Wi-Fi hotspots around your "
787−"current location whenever your position is being found."
788−msgstr ""
789−"Aby była ona jak najdokładniejsza, HERE szuka informacji także o nadajnikach "
790−"sieci GSM oraz sieciach Wi-Fi."
791−
792−#: qml/Wizard/Pages/here-terms.qml:93
793−msgid ""
794−"The information collected is used to analyze the service and to improve the "
795−"use of service, but not to identify you personally."
796−msgstr ""
797−"Dzięki informacjom o dokładnym położeniu usługi lokalizacji działają lepiej. "
798−"Są one anonimowe i nie mają na celu identyfikacji użytkownika."
799−
800−#: qml/Wizard/Pages/here-terms.qml:106
803+#: qml/Wizard/Pages/GlobalUpdateControls.qml:109
801804#, qt-format
802−msgid "By continuing, you agree to the HERE platform %1 and %2."
803−msgstr "Kontynuując akcpetujesz %1 oraz %2."
805+msgid "%1 update available"
806+msgid_plural "%1 updates available"
807+msgstr[0] "Dostępna jest %1 aktualizacja"
808+msgstr[1] "Dostępne są %1 aktualizacje"
809+msgstr[2] "Dostępnych jest %1 aktualizacji"
810+
811+#: qml/Wizard/Pages/GlobalUpdateControls.qml:119
812+msgid "Update all…"
813+msgstr "Zaktualizuj wszystkie…"
804814
805−#: qml/Wizard/Pages/here-terms.qml:107
806−msgid "Service Terms"
807−msgstr "Zasady"
815+#: qml/Wizard/Pages/GlobalUpdateControls.qml:121
816+msgid "Update all"
817+msgstr "Zaktualizuj wszystko"
808818
809819#: qml/Wizard/Pages/passcode-confirm.qml:43
810820#: qml/Wizard/Pages/passcode-desktop.qml:97
@@ -891,6 +901,68 @@ msgstr ""
891901msgid "To proceed with no SIM tap Skip."
892902msgstr "Pomiń, by kontynuować bez karty SIM"
893903
904+#: qml/Wizard/Pages/UpdateDelegate.qml:123
905+msgid "Update"
906+msgstr "Zaktualizuj"
907+
908+#: qml/Wizard/Pages/UpdateDelegate.qml:125
909+msgid "Download"
910+msgstr "Pobierz"
911+
912+#: qml/Wizard/Pages/UpdateDelegate.qml:131
913+msgid "Resume"
914+msgstr "Wznów"
915+
916+#: qml/Wizard/Pages/UpdateDelegate.qml:138
917+msgid "Pause"
918+msgstr "Wstrzymaj"
919+
920+#: qml/Wizard/Pages/UpdateDelegate.qml:142
921+msgid "Install…"
922+msgstr "Zainstaluj…"
923+
924+#: qml/Wizard/Pages/UpdateDelegate.qml:144
925+msgid "Install"
926+msgstr "Zainstaluj"
927+
928+#: qml/Wizard/Pages/UpdateDelegate.qml:148
929+msgid "Open"
930+msgstr "Otwórz"
931+
932+#: qml/Wizard/Pages/UpdateDelegate.qml:216
933+msgid "Installing"
934+msgstr "Instalowanie"
935+
936+#: qml/Wizard/Pages/UpdateDelegate.qml:220
937+msgid "Paused"
938+msgstr "Wstrzymano"
939+
940+#: qml/Wizard/Pages/UpdateDelegate.qml:223
941+msgid "Waiting to download"
942+msgstr "Czekam na pobranie"
943+
944+#: qml/Wizard/Pages/UpdateDelegate.qml:279
945+#, qt-format
946+msgid "%1 of %2"
947+msgstr "%1 z %2"
948+
949+#: qml/Wizard/Pages/UpdateDelegate.qml:283
950+msgid "Downloaded"
951+msgstr "Pobrano"
952+
953+#: qml/Wizard/Pages/UpdateDelegate.qml:286
954+msgid "Installed"
955+msgstr "Zainstalowany"
956+
957+#: qml/Wizard/Pages/UpdateDelegate.qml:291
958+#, qt-format
959+msgid "Updated %1"
960+msgstr "Zaktualizowano %1"
961+
962+#: qml/Wizard/Pages/UpdateDelegate.qml:315
963+msgid "Update failed"
964+msgstr "Aktualizacja nieudana"
965+
894966#: qml/Wizard/PasswordMeter.qml:87
895967msgid "Password too short"
896968msgstr "Hasło zbyt krótkie"
@@ -919,21 +991,69 @@ msgstr "Słabe hasło"
919991msgid "Very weak password"
920992msgstr "Bardzo słabe hasło"
921993
994+#~ msgid "Location Services"
995+#~ msgstr "Usługi lokalizacji"
996+
997+#~ msgid ""
998+#~ "Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
999+#~ "(recommended)"
1000+#~ msgstr ""
1001+#~ "Anonimowe ustalanie lokalizacji za pomocą GPS, Wi-Fi oraz GSM (zalecane)"
1002+
1003+#~ msgid "By selecting this option you agree to the Nokia HERE %1."
1004+#~ msgstr ""
1005+#~ "Zaznaczając tę opcję zgadzasz się z postanowieniami zasad użytkowania "
1006+#~ "Nokia HERE %1"
1007+
1008+#~ msgctxt "part of: Nokia HERE terms and conditions"
1009+#~ msgid "terms and conditions"
1010+#~ msgstr "Zasady użytkowania"
1011+
1012+#~ msgid "GPS only"
1013+#~ msgstr "Tylko GPS"
1014+
1015+#~ msgid "Don't use my location"
1016+#~ msgstr "Nie sprawdzaj mojej lokalizacji"
1017+
1018+#~ msgid "You can change it later in System Settings."
1019+#~ msgstr "Możesz to później zmienić w ustawianiach systemu"
1020+
1021+#~ msgid "Terms & Conditions"
1022+#~ msgstr "Zasady i warunki"
1023+
1024+#~ msgid "Your device uses positioning technologies provided by HERE."
1025+#~ msgstr "Twoje urządzenie odnajduje lokalizację za pomocą serwisu HERE."
1026+
1027+#~ msgid ""
1028+#~ "To provide you with positioning services and to improve their quality, "
1029+#~ "HERE collects information about nearby cell towers and Wi-Fi hotspots "
1030+#~ "around your current location whenever your position is being found."
1031+#~ msgstr ""
1032+#~ "Aby była ona jak najdokładniejsza, HERE szuka informacji także o "
1033+#~ "nadajnikach sieci GSM oraz sieciach Wi-Fi."
1034+
1035+#~ msgid ""
1036+#~ "The information collected is used to analyze the service and to improve "
1037+#~ "the use of service, but not to identify you personally."
1038+#~ msgstr ""
1039+#~ "Dzięki informacjom o dokładnym położeniu usługi lokalizacji działają "
1040+#~ "lepiej. Są one anonimowe i nie mają na celu identyfikacji użytkownika."
1041+
1042+#~ msgid "By continuing, you agree to the HERE platform %1 and %2."
1043+#~ msgstr "Kontynuując akcpetujesz %1 oraz %2."
1044+
1045+#~ msgid "Service Terms"
1046+#~ msgstr "Zasady"
1047+
9221048#~ msgid "Confirm"
9231049#~ msgstr "Potwierdź"
9241050
9251051#~ msgid "Type or say a command"
9261052#~ msgstr "Wpisz lub wypowiedz polecenie"
9271053
928−#~ msgid "Loading. Please Wait..."
929−#~ msgstr "Ładowanie. Proszę czekać..."
930−
9311054#~ msgid "Speak Now..."
9321055#~ msgstr "Mów teraz..."
9331056
934−#~ msgid "Speaking..."
935−#~ msgstr "Rozpoznanie..."
936−
9371057#~ msgid "Search"
9381058#~ msgstr "Szukaj"
9391059
@@ -957,8 +1077,8 @@ msgstr "Bardzo słabe hasło"
9571077
9581078#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
9591079#~ msgstr ""
960−#~ "Przeciągnięcie od lewej krawędzi, uruchamia aktywator szybkiego dostępu do "
961−#~ "aplikacji"
1080+#~ "Przeciągnięcie od lewej krawędzi, uruchamia aktywator szybkiego dostępu "
1081+#~ "do aplikacji"
9621082
9631083#~ msgid "Well done"
9641084#~ msgstr "Udało się!"
@@ -976,8 +1096,8 @@ msgstr "Bardzo słabe hasło"
9761096#~ "You have now mastered the edge gestures and can start using the "
9771097#~ "phone<br><br>Tap on the screen to start"
9781098#~ msgstr ""
979−#~ "Wydawanie poleceń krawędzi zostało opanowane. Urządzenie gotowe do "
980−#~ "pracy.<br><br>Dotknij ekranu by rozpocząć"
1099+#~ "Wydawanie poleceń krawędzi zostało opanowane. Urządzenie gotowe do pracy."
1100+#~ "<br><br>Dotknij ekranu by rozpocząć"
9811101
9821102#~ msgid "See all"
9831103#~ msgstr "Zobacz wszystko"
@@ -986,8 +1106,8 @@ msgstr "Bardzo słabe hasło"
9861106#~ msgstr "Niestety, błędne hasło"
9871107
9881108#~ msgid ""
989−#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
990−#~ "and all personal data will be deleted."
1109+#~ "If passcode is entered incorrectly, your phone will conduct a factory "
1110+#~ "reset and all personal data will be deleted."
9911111#~ msgstr ""
9921112#~ "Jeśli zostanie wprowadzony błędny kod, telefon przywróci ustawienia "
9931113#~ "fabryczne i wszystkie dane osobiste zostaną usunięte."
@@ -1029,11 +1149,9 @@ msgstr "Bardzo słabe hasło"
10291149#~ msgid "Settings"
10301150#~ msgstr "Ustawienia"
10311151
1032−#, qt-format
10331152#~ msgid "Enter %1"
10341153#~ msgstr "Wprowadź %1"
10351154
1036−#, qt-format
10371155#~ msgid "Sorry, incorrect %1"
10381156#~ msgstr "Niestety niepoprawne %1"
10391157
@@ -1062,9 +1180,6 @@ msgstr "Bardzo słabe hasło"
10621180#~ msgid "Let’s get started."
10631181#~ msgstr "Zaczynajmy."
10641182
1065−#~ msgid "Continue"
1066−#~ msgstr "Kontynuuj"
1067−
10681183#~ msgid "This will be your last attempt."
10691184#~ msgstr "To już jest ostatnia próba."
10701185
@@ -1078,11 +1193,11 @@ msgstr "Bardzo słabe hasło"
10781193#~ msgstr "Lokalizacja"
10791194
10801195#~ msgid ""
1081−#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1082−#~ "conditions</a>."
1196+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms "
1197+#~ "and conditions</a>."
10831198#~ msgstr ""
1084−#~ "Zaznaczając tę opcję akceptujesz <a href='#'>warunki i zasady regulaminu</a> "
1085−#~ "Nokia HERE."
1199+#~ "Zaznaczając tę opcję akceptujesz <a href='#'>warunki i zasady regulaminu</"
1200+#~ "a> Nokia HERE."
10861201
10871202#~ msgid "Not at all"
10881203#~ msgstr "Brak zgody"
@@ -1130,11 +1245,9 @@ msgstr "Bardzo słabe hasło"
11301245#~ msgid "Enter passcode"
11311246#~ msgstr "Podaj kod"
11321247
1133−#, qt-format
11341248#~ msgid "〈 %1"
11351249#~ msgstr "〈 %1"
11361250
1137−#, qt-format
11381251#~ msgid "%1 〉"
11391252#~ msgstr "%1 〉"
11401253
@@ -1232,8 +1345,8 @@ msgstr "Bardzo słabe hasło"
12321345#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
12331346#~ "Privacy</b>"
12341347#~ msgstr ""
1235−#~ "Opcję tę można wyłączyć w <b>Ustawieniach systemowych</b>, otwierając menu "
1236−#~ "<b>Prywatność i bezpieczeństwo</b>."
1348+#~ "Opcję tę można wyłączyć w <b>Ustawieniach systemowych</b>, otwierając "
1349+#~ "menu <b>Prywatność i bezpieczeństwo</b>."
12371350
12381351#~ msgid "%a %H:%M"
12391352#~ msgstr "%a %H:%M"
po/unity8.pot+159−84
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2016-11-29 09:43+0000\n"
11+"POT-Creation-Date: 2018-10-08 13:29-0500\n"
1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -449,7 +449,7 @@ msgstr ""
449449msgid "Passcode"
450450msgstr ""
451451
452−#: qml/Greeter/LoginList.qml:98
452+#: qml/Greeter/LoginList.qml:98 qml/Wizard/Pages/UpdateDelegate.qml:118
453453msgid "Retry"
454454msgstr ""
455455
@@ -517,6 +517,7 @@ msgid "In queue…"
517517msgstr ""
518518
519519#: qml/Panel/Indicators/MenuItemFactory.qml:999
520+#: qml/Wizard/Pages/UpdateDelegate.qml:226
520521msgid "Downloading"
521522msgstr ""
522523
@@ -576,25 +577,43 @@ msgstr ""
576577msgid "Swipe from the top edge to access notifications and quick settings"
577578msgstr ""
578579
579−#: qml/Wizard/Page.qml:54
580+#: qml/Wizard/Page.qml:59
580581msgctxt "Button: Go back one page in the Wizard"
581582msgid "Back"
582583msgstr ""
583584
584−#: qml/Wizard/Pages/10-welcome.qml:28
585+#: qml/Wizard/Pages/10-welcome.qml:29
585586msgid "Language"
586587msgstr ""
587588
588−#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
589−#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
590−#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
591−#: qml/Wizard/Pages/70-passwd-type.qml:145
592−#: qml/Wizard/Pages/75-report-check.qml:84
589+#: qml/Wizard/Pages/10-welcome.qml:175
590+#: qml/Wizard/Pages/10-welcome-update.qml:126
591+#: qml/Wizard/Pages/11-changelog.qml:74 qml/Wizard/Pages/20-keyboard.qml:152
592+#: qml/Wizard/Pages/30-wifi.qml:208 qml/Wizard/Pages/50-timezone.qml:272
593+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/70-passwd-type.qml:146
594+#: qml/Wizard/Pages/75-report-check.qml:85
595+#: qml/Wizard/Pages/76-app-update.qml:236
593596#: qml/Wizard/Pages/passcode-desktop.qml:142
594597#: qml/Wizard/Pages/password-set.qml:142
595598msgid "Next"
596599msgstr ""
597600
601+#: qml/Wizard/Pages/10-welcome-update.qml:91
602+msgid "Welcome to "
603+msgstr ""
604+
605+#: qml/Wizard/Pages/10-welcome-update.qml:106
606+msgid "We will make sure your device is ready to use "
607+msgstr ""
608+
609+#: qml/Wizard/Pages/11-changelog.qml:28
610+msgid "What's new"
611+msgstr ""
612+
613+#: qml/Wizard/Pages/11-changelog.qml:74
614+msgid "Loading..."
615+msgstr ""
616+
598617#: qml/Wizard/Pages/20-keyboard.qml:31
599618msgid "Select Keyboard"
600619msgstr ""
@@ -607,9 +626,9 @@ msgstr ""
607626msgid "Keyboard layout"
608627msgstr ""
609628
610−#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
611−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
612−#: qml/Wizard/Pages/sim.qml:101
629+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:208
630+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/76-app-update.qml:240
631+#: qml/Wizard/Pages/79-system-update.qml:152 qml/Wizard/Pages/sim.qml:101
613632msgid "Skip"
614633msgstr ""
615634
@@ -617,55 +636,23 @@ msgstr ""
617636msgid "Connect to Wi‑Fi"
618637msgstr ""
619638
620−#: qml/Wizard/Pages/30-wifi.qml:132
639+#: qml/Wizard/Pages/30-wifi.qml:133
621640msgid "Connected"
622641msgstr ""
623642
624−#: qml/Wizard/Pages/30-wifi.qml:165
643+#: qml/Wizard/Pages/30-wifi.qml:166
625644msgid "Available Wi-Fi networks"
626645msgstr ""
627646
628−#: qml/Wizard/Pages/30-wifi.qml:166
647+#: qml/Wizard/Pages/30-wifi.qml:167
629648msgid "No available Wi-Fi networks"
630649msgstr ""
631650
632−#: qml/Wizard/Pages/40-location.qml:27
633−msgid "Location Services"
634−msgstr ""
635−
636−#: qml/Wizard/Pages/40-location.qml:83
637−msgid ""
638−"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
639−"(recommended)"
640−msgstr ""
641−
642−#: qml/Wizard/Pages/40-location.qml:105
643−#, qt-format
644−msgid "By selecting this option you agree to the Nokia HERE %1."
645−msgstr ""
646−
647−#: qml/Wizard/Pages/40-location.qml:106
648−msgctxt "part of: Nokia HERE terms and conditions"
649−msgid "terms and conditions"
650−msgstr ""
651−
652−#: qml/Wizard/Pages/40-location.qml:160
653−msgid "GPS only"
654−msgstr ""
655−
656−#: qml/Wizard/Pages/40-location.qml:214
657−msgid "Don't use my location"
658−msgstr ""
659−
660−#: qml/Wizard/Pages/40-location.qml:260
661−msgid "You can change it later in System Settings."
662−msgstr ""
663−
664651#: qml/Wizard/Pages/50-timezone.qml:30
665652msgid "Time Zone"
666653msgstr ""
667654
668−#: qml/Wizard/Pages/50-timezone.qml:182
655+#: qml/Wizard/Pages/50-timezone.qml:183
669656msgid "Enter your city"
670657msgstr ""
671658
@@ -673,7 +660,7 @@ msgstr ""
673660msgid "Personalize Your Device"
674661msgstr ""
675662
676−#: qml/Wizard/Pages/60-account.qml:48
663+#: qml/Wizard/Pages/60-account.qml:49
677664msgid "Preferred Name"
678665msgstr ""
679666
@@ -681,22 +668,22 @@ msgstr ""
681668msgid "Lock Screen"
682669msgstr ""
683670
684−#: qml/Wizard/Pages/70-passwd-type.qml:102
671+#: qml/Wizard/Pages/70-passwd-type.qml:103
685672msgctxt "Label: Type of security method"
686673msgid "Create new password"
687674msgstr ""
688675
689−#: qml/Wizard/Pages/70-passwd-type.qml:104
676+#: qml/Wizard/Pages/70-passwd-type.qml:105
690677msgctxt "Label: Type of security method"
691678msgid "Create passcode (numbers only)"
692679msgstr ""
693680
694−#: qml/Wizard/Pages/70-passwd-type.qml:106
681+#: qml/Wizard/Pages/70-passwd-type.qml:107
695682msgctxt "Label: Type of security method"
696683msgid "No lock code"
697684msgstr ""
698685
699−#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
686+#: qml/Wizard/Pages/75-report-check.qml:26
700687msgid "Privacy Policy"
701688msgstr ""
702689
@@ -704,83 +691,109 @@ msgstr ""
704691msgid "Help Us Improve"
705692msgstr ""
706693
707−#: qml/Wizard/Pages/75-report-check.qml:59
694+#: qml/Wizard/Pages/75-report-check.qml:60
708695msgid "Improve system performance by sending us crashes and error reports."
709696msgstr ""
710697
711−#: qml/Wizard/Pages/75-report-check.qml:60
698+#: qml/Wizard/Pages/75-report-check.qml:61
712699msgid "Privacy policy"
713700msgstr ""
714701
715−#: qml/Wizard/Pages/77-system-update.qml:28
702+#: qml/Wizard/Pages/76-app-update.qml:35
703+msgid "Update Apps"
704+msgstr ""
705+
706+#: qml/Wizard/Pages/76-app-update.qml:127
707+msgid "This device is not connected to the internet."
708+msgstr ""
709+
710+#: qml/Wizard/Pages/76-app-update.qml:128
711+#: qml/Wizard/Pages/76-app-update.qml:134
712+msgid "Use the OpenStore app to check for updates once connected."
713+msgstr ""
714+
715+#: qml/Wizard/Pages/76-app-update.qml:130
716+msgid "Software is up to date"
717+msgstr ""
718+
719+#: qml/Wizard/Pages/76-app-update.qml:133
720+msgid "The update server is not responding."
721+msgstr ""
722+
723+#: qml/Wizard/Pages/76-app-update.qml:238
724+msgid "Please wait..."
725+msgstr ""
726+
727+#: qml/Wizard/Pages/79-system-update.qml:28
716728msgid "Update Device"
717729msgstr ""
718730
719−#: qml/Wizard/Pages/77-system-update.qml:55
731+#: qml/Wizard/Pages/79-system-update.qml:55
720732msgid ""
721733"There is a system update available and ready to install. Afterwards, the "
722734"device will automatically restart."
723735msgstr ""
724736
725−#: qml/Wizard/Pages/77-system-update.qml:76
737+#: qml/Wizard/Pages/79-system-update.qml:76
726738msgctxt "string identifying name of the update"
727739msgid "Ubuntu system"
728740msgstr ""
729741
730−#: qml/Wizard/Pages/77-system-update.qml:83
742+#: qml/Wizard/Pages/79-system-update.qml:83
731743#, qt-format
732744msgctxt "version of the system update"
733745msgid "Version %1"
734746msgstr ""
735747
736−#: qml/Wizard/Pages/77-system-update.qml:102
748+#: qml/Wizard/Pages/79-system-update.qml:102
737749msgid "This could take a few minutes..."
738750msgstr ""
739751
740−#: qml/Wizard/Pages/77-system-update.qml:116
752+#: qml/Wizard/Pages/79-system-update.qml:116
741753msgid "Install and restart now"
742754msgstr ""
743755
744−#: qml/Wizard/Pages/80-finished.qml:89
745−msgid "Welcome to Ubuntu"
756+#: qml/Wizard/Pages/80-finished.qml:91
757+msgid "Welcome Back"
746758msgstr ""
747759
748−#: qml/Wizard/Pages/80-finished.qml:104
749−msgid "You are ready to use your device now"
760+#: qml/Wizard/Pages/80-finished.qml:91
761+msgid "Welcome to Ubuntu"
750762msgstr ""
751763
752−#: qml/Wizard/Pages/80-finished.qml:124
753−msgid "Get Started"
764+#: qml/Wizard/Pages/80-finished.qml:106
765+msgid "You are ready to use your device now"
754766msgstr ""
755767
756−#: qml/Wizard/Pages/here-terms.qml:25
757−msgid "Terms & Conditions"
768+#: qml/Wizard/Pages/80-finished.qml:126
769+msgid "Continue"
758770msgstr ""
759771
760−#: qml/Wizard/Pages/here-terms.qml:69
761−msgid "Your device uses positioning technologies provided by HERE."
772+#: qml/Wizard/Pages/80-finished.qml:126
773+msgid "Get Started"
762774msgstr ""
763775
764−#: qml/Wizard/Pages/here-terms.qml:81
765−msgid ""
766−"To provide you with positioning services and to improve their quality, HERE "
767−"collects information about nearby cell towers and Wi-Fi hotspots around your "
768−"current location whenever your position is being found."
776+#: qml/Wizard/Pages/DownloadHandler.qml:174
777+msgid "Installation failed"
769778msgstr ""
770779
771−#: qml/Wizard/Pages/here-terms.qml:93
772−msgid ""
773−"The information collected is used to analyze the service and to improve the "
774−"use of service, but not to identify you personally."
780+#: qml/Wizard/Pages/GlobalUpdateControls.qml:84
781+msgid "Checking for updates…"
775782msgstr ""
776783
777−#: qml/Wizard/Pages/here-terms.qml:106
784+#: qml/Wizard/Pages/GlobalUpdateControls.qml:109
778785#, qt-format
779−msgid "By continuing, you agree to the HERE platform %1 and %2."
786+msgid "%1 update available"
787+msgid_plural "%1 updates available"
788+msgstr[0] ""
789+msgstr[1] ""
790+
791+#: qml/Wizard/Pages/GlobalUpdateControls.qml:119
792+msgid "Update all…"
780793msgstr ""
781794
782−#: qml/Wizard/Pages/here-terms.qml:107
783−msgid "Service Terms"
795+#: qml/Wizard/Pages/GlobalUpdateControls.qml:121
796+msgid "Update all"
784797msgstr ""
785798
786799#: qml/Wizard/Pages/passcode-confirm.qml:43
@@ -866,6 +879,68 @@ msgstr ""
866879msgid "To proceed with no SIM tap Skip."
867880msgstr ""
868881
882+#: qml/Wizard/Pages/UpdateDelegate.qml:123
883+msgid "Update"
884+msgstr ""
885+
886+#: qml/Wizard/Pages/UpdateDelegate.qml:125
887+msgid "Download"
888+msgstr ""
889+
890+#: qml/Wizard/Pages/UpdateDelegate.qml:131
891+msgid "Resume"
892+msgstr ""
893+
894+#: qml/Wizard/Pages/UpdateDelegate.qml:138
895+msgid "Pause"
896+msgstr ""
897+
898+#: qml/Wizard/Pages/UpdateDelegate.qml:142
899+msgid "Install…"
900+msgstr ""
901+
902+#: qml/Wizard/Pages/UpdateDelegate.qml:144
903+msgid "Install"
904+msgstr ""
905+
906+#: qml/Wizard/Pages/UpdateDelegate.qml:148
907+msgid "Open"
908+msgstr ""
909+
910+#: qml/Wizard/Pages/UpdateDelegate.qml:216
911+msgid "Installing"
912+msgstr ""
913+
914+#: qml/Wizard/Pages/UpdateDelegate.qml:220
915+msgid "Paused"
916+msgstr ""
917+
918+#: qml/Wizard/Pages/UpdateDelegate.qml:223
919+msgid "Waiting to download"
920+msgstr ""
921+
922+#: qml/Wizard/Pages/UpdateDelegate.qml:279
923+#, qt-format
924+msgid "%1 of %2"
925+msgstr ""
926+
927+#: qml/Wizard/Pages/UpdateDelegate.qml:283
928+msgid "Downloaded"
929+msgstr ""
930+
931+#: qml/Wizard/Pages/UpdateDelegate.qml:286
932+msgid "Installed"
933+msgstr ""
934+
935+#: qml/Wizard/Pages/UpdateDelegate.qml:291
936+#, qt-format
937+msgid "Updated %1"
938+msgstr ""
939+
940+#: qml/Wizard/Pages/UpdateDelegate.qml:315
941+msgid "Update failed"
942+msgstr ""
943+
869944#: qml/Wizard/PasswordMeter.qml:87
870945msgid "Password too short"
871946msgstr ""
po/zh_TW.po+285−211
@@ -6,35 +6,36 @@
66msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
9−"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-11-16 10:44+0000\n"
11−"PO-Revision-Date: 2016-02-24 04:40+0000\n"
12−"Last-Translator: Po-Hsu Lin <po-hsu.lin@canonical.com>\n"
13−"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
9+"Report-Msgid-Bugs-To: \n"
10+"POT-Creation-Date: 2018-10-08 13:29-0500\n"
11+"PO-Revision-Date: 2018-11-20 05:33+0000\n"
12+"Last-Translator: Louies <louies0623@gmail.com>\n"
13+"Language-Team: Chinese (Traditional) <https://translate.ubports.com/projects/"
14+"unity8/unity8/zh_Hant/>\n"
15+"Language: zh_TW\n"
1416"MIME-Version: 1.0\n"
1517"Content-Type: text/plain; charset=UTF-8\n"
1618"Content-Transfer-Encoding: 8bit\n"
1719"Plural-Forms: nplurals=1; plural=0;\n"
20+"X-Generator: Weblate 3.1.1\n"
1821"X-Launchpad-Export-Date: 2016-11-23 06:36+0000\n"
19−"X-Generator: Launchpad (build 18269)\n"
20−"Language: zh_TW\n"
2122
2223#: plugins/LightDM/Greeter.cpp:123
2324msgid "Password: "
2425msgstr "密碼: "
2526
26−#: plugins/Unity/Launcher/launcheritem.cpp:49
27−#: plugins/Unity/Launcher/launcheritem.cpp:108
27+#: plugins/Unity/Launcher/launcheritem.cpp:50
28+#: plugins/Unity/Launcher/launcheritem.cpp:109
2829msgid "Pin shortcut"
2930msgstr "釘住捷徑"
3031
31−#: plugins/Unity/Launcher/launcheritem.cpp:54
32+#: plugins/Unity/Launcher/launcheritem.cpp:55
3233msgid "Quit"
3334msgstr "結束"
3435
35−#: plugins/Unity/Launcher/launcheritem.cpp:108
36+#: plugins/Unity/Launcher/launcheritem.cpp:109
3637msgid "Unpin shortcut"
37−msgstr "取消捷徑釘選"
38+msgstr "取消釘住捷徑"
3839
3940#: qml/Components/Dialogs.qml:149
4041msgctxt "Title: Lock/Log out dialog"
@@ -69,7 +70,7 @@ msgstr "重新開機"
6970
7071#: qml/Components/Dialogs.qml:179
7172msgid "Are you sure you want to reboot?"
72−msgstr "確定要重新開機?"
73+msgstr "您確定要重新開機?"
7374
7475#: qml/Components/Dialogs.qml:181
7576msgid "No"
@@ -88,7 +89,7 @@ msgstr "電源"
8889msgid ""
8990"Are you sure you would like\n"
9091"to power off?"
91−msgstr "確定要關閉電源?"
92+msgstr "您確定要關閉電源?"
9293
9394#: qml/Components/Dialogs.qml:205
9495msgctxt "Button: Power off the system"
@@ -114,7 +115,7 @@ msgstr "PrtScr"
114115
115116#: qml/Components/KeyboardShortcutsOverlay.qml:67
116117msgid "Takes a screenshot."
117−msgstr "拍攝螢幕節圖"
118+msgstr "拍攝螢幕節圖。"
118119
119120#: qml/Components/KeyboardShortcutsOverlay.qml:75
120121msgid "Alt + PrtScr"
@@ -122,7 +123,7 @@ msgstr "Alt + PrtScr"
122123
123124#: qml/Components/KeyboardShortcutsOverlay.qml:80
124125msgid "Takes a screenshot of a window."
125−msgstr ""
126+msgstr "拍攝視窗節圖。"
126127
127128#: qml/Components/KeyboardShortcutsOverlay.qml:88
128129msgid "Super + Space"
@@ -142,7 +143,7 @@ msgstr "切換到前一個鍵盤配置。"
142143
143144#: qml/Components/KeyboardShortcutsOverlay.qml:118
144145msgid "Launcher"
145−msgstr "啟動器"
146+msgstr "啟動欄"
146147
147148#: qml/Components/KeyboardShortcutsOverlay.qml:125
148149msgid "Super (Hold)"
@@ -150,7 +151,7 @@ msgstr "Super (長按)"
150151
151152#: qml/Components/KeyboardShortcutsOverlay.qml:130
152153msgid "Opens the launcher, displays shortcuts."
153−msgstr ""
154+msgstr "打開啟動欄,顯示快捷見方式。"
154155
155156#: qml/Components/KeyboardShortcutsOverlay.qml:138
156157msgid "Alt + F1"
@@ -158,7 +159,7 @@ msgstr "Alt + F1"
158159
159160#: qml/Components/KeyboardShortcutsOverlay.qml:143
160161msgid "Opens launcher keyboard navigation mode."
161−msgstr ""
162+msgstr "打開啟動欄鍵盤引導模式。"
162163
163164#: qml/Components/KeyboardShortcutsOverlay.qml:151
164165msgid "Super + Tab"
@@ -166,7 +167,7 @@ msgstr "Super + Tab"
166167
167168#: qml/Components/KeyboardShortcutsOverlay.qml:156
168169msgid "Switches applications via the launcher."
169−msgstr ""
170+msgstr "透過啟動欄來切換應用程式。"
170171
171172#: qml/Components/KeyboardShortcutsOverlay.qml:164
172173msgid "Super + 0 to 9"
@@ -174,23 +175,23 @@ msgstr "Super + 0 到 9"
174175
175176#: qml/Components/KeyboardShortcutsOverlay.qml:169
176177msgid "Same as clicking on a launcher icon."
177−msgstr ""
178+msgstr "與按一下啟動欄的圖示相同。"
178179
179180#: qml/Components/KeyboardShortcutsOverlay.qml:181
180181msgid "Scopes"
181−msgstr ""
182+msgstr "範圍"
182183
183184#: qml/Components/KeyboardShortcutsOverlay.qml:188
184185msgid "Super (Tap)"
185−msgstr ""
186+msgstr "Super (輕按)"
186187
187188#: qml/Components/KeyboardShortcutsOverlay.qml:193
188189msgid "Opens the Scopes home."
189−msgstr ""
190+msgstr "打開 \"範圍\" 主頁。"
190191
191192#: qml/Components/KeyboardShortcutsOverlay.qml:209
192193msgid "Switching"
193−msgstr "切換"
194+msgstr "切換中"
194195
195196#: qml/Components/KeyboardShortcutsOverlay.qml:216
196197msgid "Alt + Tab"
@@ -206,15 +207,15 @@ msgstr "Super + W"
206207
207208#: qml/Components/KeyboardShortcutsOverlay.qml:234
208209msgid "Opens the desktop spread."
209−msgstr ""
210+msgstr "打開桌面跨頁。"
210211
211212#: qml/Components/KeyboardShortcutsOverlay.qml:242
212213msgid "Cursor Left or Right"
213−msgstr ""
214+msgstr "游標向左或向右"
214215
215216#: qml/Components/KeyboardShortcutsOverlay.qml:247
216217msgid "Moves the focus."
217−msgstr ""
218+msgstr "移動焦點。"
218219
219220#: qml/Components/KeyboardShortcutsOverlay.qml:259
220221msgid "Windows"
@@ -230,7 +231,7 @@ msgstr "最小化所有視窗。"
230231
231232#: qml/Components/KeyboardShortcutsOverlay.qml:279
232233msgid "Ctrl + Super + Up"
233−msgstr "Ctrl + Super + 上鍵"
234+msgstr "Ctrl + Super + 向上鍵"
234235
235236#: qml/Components/KeyboardShortcutsOverlay.qml:284
236237msgid "Maximizes the current window."
@@ -238,19 +239,19 @@ msgstr "最大化目前的視窗。"
238239
239240#: qml/Components/KeyboardShortcutsOverlay.qml:292
240241msgid "Ctrl + Super + Down"
241−msgstr "Ctrl + Super + 下鍵"
242+msgstr "Ctrl + Super + 向下鍵"
242243
243244#: qml/Components/KeyboardShortcutsOverlay.qml:297
244245msgid "Minimizes or restores the current window."
245−msgstr ""
246+msgstr "最小化或恢復目前的視窗。"
246247
247248#: qml/Components/KeyboardShortcutsOverlay.qml:305
248249msgid "Ctrl + Super + Left or Right"
249−msgstr ""
250+msgstr "Ctrl + Super + 向左鍵或向右鍵"
250251
251252#: qml/Components/KeyboardShortcutsOverlay.qml:310
252253msgid "Semi-maximizes the current window."
253−msgstr ""
254+msgstr "半最大化目前的視窗。"
254255
255256#: qml/Components/KeyboardShortcutsOverlay.qml:318
256257msgid "Alt + F4"
@@ -290,11 +291,11 @@ msgstr "可能未儲存資料的程式:"
290291msgctxt ""
291292"Re-dock means connect the device again to an external screen/mouse/keyboard"
292293msgid "Re-dock, save your work and close these apps to continue."
293−msgstr ""
294+msgstr "重新固定,保存您的工作並關閉這些應用程式以便繼續。"
294295
295296#: qml/Components/ModeSwitchWarningDialog.qml:63
296297msgid "Or force close now (unsaved data will be lost)."
297−msgstr "或強制關閉 (未儲存的資料即將遺失)"
298+msgstr "或強制關閉 (未儲存的資料將會遺失)。"
298299
299300#: qml/Components/ModeSwitchWarningDialog.qml:75
300301msgid "OK, I will reconnect"
@@ -302,7 +303,7 @@ msgstr "好的,我將重新連線"
302303
303304#: qml/Components/ModeSwitchWarningDialog.qml:76
304305msgid "Reconnect now!"
305−msgstr "即刻重新連線!"
306+msgstr "立即重新連線!"
306307
307308#: qml/Components/ModeSwitchWarningDialog.qml:88
308309msgid "Close all"
@@ -310,7 +311,7 @@ msgstr "全部關閉"
310311
311312#: qml/Components/SharingPicker.qml:54
312313msgid "Preview Share Item"
313−msgstr "預覽分享的項目"
314+msgstr "預覽分享項目"
314315
315316#: qml/Dash/DashPageHeader.qml:361
316317msgctxt "Button: Open the Ubuntu Store"
@@ -337,30 +338,30 @@ msgstr "加入到「最愛」"
337338
338339#: qml/Dash/FiltersPopover.qml:61
339340msgid "Refine your results"
340−msgstr "精細篩選結果"
341+msgstr "精細篩選您的結果"
341342
342343#: qml/Dash/FiltersPopover.qml:70
343344msgid "Reset"
344345msgstr "重設"
345346
346−#: qml/Dash/GenericScopeView.qml:545 qml/Dash/GenericScopeView.qml:716
347+#: qml/Dash/GenericScopeView.qml:547 qml/Dash/GenericScopeView.qml:718
347348msgid "Show less"
348349msgstr "顯示較少"
349350
350−#: qml/Dash/GenericScopeView.qml:545
351+#: qml/Dash/GenericScopeView.qml:547
351352msgid "Show all"
352353msgstr "顯示全部"
353354
354−#: qml/Dash/GenericScopeView.qml:576
355+#: qml/Dash/GenericScopeView.qml:578
355356msgctxt "Label: Hint for dash search line edit"
356357msgid "Search"
357358msgstr "搜尋"
358359
359−#: qml/Dash/PageHeaderExtraPanel.qml:57
360+#: qml/Dash/PageHeaderExtraPanel.qml:67
360361msgid "Recent Searches"
361−msgstr "最近的搜尋"
362+msgstr "最近搜尋"
362363
363−#: qml/Dash/PageHeaderExtraPanel.qml:68
364+#: qml/Dash/PageHeaderExtraPanel.qml:78
364365msgid "Clear All"
365366msgstr "全部清除"
366367
@@ -379,7 +380,7 @@ msgstr "發送"
379380
380381#: qml/Dash/Previews/PreviewRatingInput.qml:109
381382msgid "Rate this"
382−msgstr "給予評等"
383+msgstr "給予評分"
383384
384385#: qml/Dash/Previews/PreviewRatingInput.qml:184
385386msgid "Add a review"
@@ -387,11 +388,11 @@ msgstr "新增評論"
387388
388389#: qml/Dash/PullToRefreshScopeStyle.qml:56
389390msgid "Pull to refresh…"
390−msgstr "下拉以重新整理..."
391+msgstr "下拉以重新整理…"
391392
392393#: qml/Dash/PullToRefreshScopeStyle.qml:61
393394msgid "Release to refresh…"
394−msgstr "放開以重新整理..."
395+msgstr "放開以重新整理…"
395396
396397#: qml/Dash/ScopeSettings/ScopeSettingBoolean.qml:43
397398msgid "Enable location data"
@@ -403,17 +404,17 @@ msgstr "管理"
403404
404405#: qml/Dash/ScopesList.qml:104
405406msgid "Home"
406−msgstr "家屋"
407+msgstr "主頁"
407408
408409#: qml/Dash/ScopesList.qml:105
409410msgid "Also installed"
410−msgstr "也有安裝"
411+msgstr "還安裝了"
411412
412413#: qml/DisabledScreenNotice.qml:109
413414msgid ""
414415"Your device is now connected to an external display. Use this screen as a "
415416"touch pad to interact with the pointer."
416−msgstr ""
417+msgstr "您的裝置現在已連接到外接顯示器。使用此螢幕作為觸控板與指標進行交互控制。"
417418
418419#: qml/Greeter/CoverPage.qml:127
419420msgid "Unlock"
@@ -439,17 +440,17 @@ msgstr[0] "請等候 %1 分鐘再試…"
439440
440441#: qml/Greeter/Greeter.qml:596
441442msgid "Try again"
442−msgstr "重試"
443+msgstr "再試一次"
443444
444445#: qml/Greeter/LoginList.qml:70
445446msgid "Passphrase"
446−msgstr ""
447+msgstr "密碼"
447448
448449#: qml/Greeter/LoginList.qml:71
449450msgid "Passcode"
450−msgstr ""
451+msgstr "PIN密碼"
451452
452−#: qml/Greeter/LoginList.qml:98
453+#: qml/Greeter/LoginList.qml:98 qml/Wizard/Pages/UpdateDelegate.qml:118
453454msgid "Retry"
454455msgstr "重試"
455456
@@ -459,11 +460,11 @@ msgstr "登入"
459460
460461#: qml/Greeter/NarrowView.qml:252
461462msgid "Emergency"
462−msgstr ""
463+msgstr "緊急事件"
463464
464465#: qml/Greeter/SessionsList.qml:122
465466msgid "Select desktop environment"
466−msgstr ""
467+msgstr "選擇桌面環境"
467468
468469#: qml/Notifications/NotificationMenuItemFactory.qml:124
469470msgid "Show password"
@@ -471,7 +472,7 @@ msgstr "顯示密碼"
471472
472473#: qml/Panel/ActiveCallHint.qml:79
473474msgid "Tap to return to call..."
474−msgstr "點按可返回通話…"
475+msgstr "點擊可返回通話..."
475476
476477#: qml/Panel/ActiveCallHint.qml:92
477478msgid "Conference"
@@ -479,7 +480,7 @@ msgstr "會議"
479480
480481#: qml/Panel/Indicators/MenuItemFactory.qml:847
481482msgid "Nothing is playing"
482−msgstr "無影音播放中"
483+msgstr "沒有影片音訊正在播放中"
483484
484485#: qml/Panel/Indicators/MenuItemFactory.qml:975
485486#, qt-format
@@ -511,15 +512,16 @@ msgstr "還剩下 %1"
511512
512513#: qml/Panel/Indicators/MenuItemFactory.qml:995
513514msgid "In queue…"
514−msgstr "佇列中…"
515+msgstr "在佇列中…"
515516
516517#: qml/Panel/Indicators/MenuItemFactory.qml:999
518+#: qml/Wizard/Pages/UpdateDelegate.qml:226
517519msgid "Downloading"
518520msgstr "下載中"
519521
520522#: qml/Panel/Indicators/MenuItemFactory.qml:1001
521523msgid "Paused, tap to resume"
522−msgstr "已暫停,點按可繼續"
524+msgstr "已暫停,點擊可繼續"
523525
524526#: qml/Panel/Indicators/MenuItemFactory.qml:1003
525527msgid "Canceled"
@@ -531,7 +533,7 @@ msgstr "已完成"
531533
532534#: qml/Panel/Indicators/MenuItemFactory.qml:1007
533535msgid "Failed, tap to retry"
534−msgstr "失敗,點按可重試"
536+msgstr "已失敗,點擊可重試"
535537
536538#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
537539#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
@@ -551,289 +553,300 @@ msgstr "回撥"
551553
552554#: qml/Stage/SideStage.qml:76
553555msgid "Drag using 3 fingers any application from one window to the other"
554−msgstr ""
556+msgstr "使用3根手指將任何應用程式從一個視窗拖到另一個視窗"
555557
556558#: qml/Tutorial/TutorialLeftLong.qml:49
557559msgid "Long swipe from the left edge to open the Today scope"
558−msgstr ""
560+msgstr "從螢幕左邊邊緣長滑以打開今天的範圍"
559561
560562#: qml/Tutorial/TutorialLeft.qml:47
561563msgid "Short swipe from the left edge to open the launcher"
562−msgstr ""
564+msgstr "從螢幕左邊邊緣短滑動以打開啟動欄"
563565
564566#: qml/Tutorial/TutorialRight.qml:55
565567msgid "Push your mouse against the right edge to view your open apps"
566−msgstr ""
568+msgstr "將滑鼠推入螢幕右邊以查看正在執行的應用程式"
567569
568570#: qml/Tutorial/TutorialRight.qml:56
569571msgid "Swipe from the right edge to view your open apps"
570−msgstr ""
572+msgstr "從螢幕右邊邊緣短滑動以查看正在執行的應用程式"
571573
572574#: qml/Tutorial/TutorialTop.qml:53
573575msgid "Swipe from the top edge to access notifications and quick settings"
574−msgstr ""
576+msgstr "從頂部邊緣輕掃以訪問通知和快速設定"
575577
576−#: qml/Wizard/Page.qml:54
578+#: qml/Wizard/Page.qml:59
577579msgctxt "Button: Go back one page in the Wizard"
578580msgid "Back"
579581msgstr "返回"
580582
581−#: qml/Wizard/Pages/10-welcome.qml:28
583+#: qml/Wizard/Pages/10-welcome.qml:29
582584msgid "Language"
583585msgstr "語言"
584586
585−#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
586−#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
587−#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
588−#: qml/Wizard/Pages/70-passwd-type.qml:145
589−#: qml/Wizard/Pages/75-report-check.qml:84
587+#: qml/Wizard/Pages/10-welcome.qml:175
588+#: qml/Wizard/Pages/10-welcome-update.qml:126
589+#: qml/Wizard/Pages/11-changelog.qml:74 qml/Wizard/Pages/20-keyboard.qml:152
590+#: qml/Wizard/Pages/30-wifi.qml:208 qml/Wizard/Pages/50-timezone.qml:272
591+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/70-passwd-type.qml:146
592+#: qml/Wizard/Pages/75-report-check.qml:85
593+#: qml/Wizard/Pages/76-app-update.qml:236
590594#: qml/Wizard/Pages/passcode-desktop.qml:142
591595#: qml/Wizard/Pages/password-set.qml:142
592596msgid "Next"
593597msgstr "下一個"
594598
599+#: qml/Wizard/Pages/10-welcome-update.qml:91
600+msgid "Welcome to "
601+msgstr "歡迎使用 "
602+
603+#: qml/Wizard/Pages/10-welcome-update.qml:106
604+msgid "We will make sure your device is ready to use "
605+msgstr "我們將確保您的裝置已準備就緒 "
606+
607+#: qml/Wizard/Pages/11-changelog.qml:28
608+msgid "What's new"
609+msgstr "什麼是最新的"
610+
611+#: qml/Wizard/Pages/11-changelog.qml:74
612+msgid "Loading..."
613+msgstr "載入中..."
614+
595615#: qml/Wizard/Pages/20-keyboard.qml:31
596616msgid "Select Keyboard"
597−msgstr ""
617+msgstr "選擇鍵盤"
598618
599619#: qml/Wizard/Pages/20-keyboard.qml:71
600620msgid "Keyboard language"
601−msgstr ""
621+msgstr "鍵盤語言"
602622
603623#: qml/Wizard/Pages/20-keyboard.qml:93
604624msgid "Keyboard layout"
605−msgstr ""
625+msgstr "鍵盤配置"
606626
607−#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
608−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
609−#: qml/Wizard/Pages/sim.qml:101
627+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:208
628+#: qml/Wizard/Pages/60-account.qml:66 qml/Wizard/Pages/76-app-update.qml:240
629+#: qml/Wizard/Pages/79-system-update.qml:152 qml/Wizard/Pages/sim.qml:101
610630msgid "Skip"
611631msgstr "略過"
612632
613633#: qml/Wizard/Pages/30-wifi.qml:31
614634msgid "Connect to Wi‑Fi"
615−msgstr "連接 Wi-Fi"
635+msgstr "連接至 Wi-Fi"
616636
617−#: qml/Wizard/Pages/30-wifi.qml:132
637+#: qml/Wizard/Pages/30-wifi.qml:133
618638msgid "Connected"
619639msgstr "已連線"
620640
621−#: qml/Wizard/Pages/30-wifi.qml:165
641+#: qml/Wizard/Pages/30-wifi.qml:166
622642msgid "Available Wi-Fi networks"
623643msgstr "可用的 Wi-Fi 無線網路"
624644
625−#: qml/Wizard/Pages/30-wifi.qml:166
645+#: qml/Wizard/Pages/30-wifi.qml:167
626646msgid "No available Wi-Fi networks"
627647msgstr "無可用的 Wi-Fi 無線網路"
628648
629−#: qml/Wizard/Pages/40-location.qml:27
630−msgid "Location Services"
631−msgstr "定位服務"
632−
633−#: qml/Wizard/Pages/40-location.qml:83
634−msgid ""
635−"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
636−"(recommended)"
637−msgstr ""
638−
639−#: qml/Wizard/Pages/40-location.qml:105
640−#, qt-format
641−msgid "By selecting this option you agree to the Nokia HERE %1."
642−msgstr ""
643−
644−#: qml/Wizard/Pages/40-location.qml:106
645−msgctxt "part of: Nokia HERE terms and conditions"
646−msgid "terms and conditions"
647−msgstr "條款及條件"
648−
649−#: qml/Wizard/Pages/40-location.qml:160
650−msgid "GPS only"
651−msgstr "僅 GPS"
652−
653−#: qml/Wizard/Pages/40-location.qml:214
654−msgid "Don't use my location"
655−msgstr ""
656−
657−#: qml/Wizard/Pages/40-location.qml:260
658−msgid "You can change it later in System Settings."
659−msgstr ""
660−
661649#: qml/Wizard/Pages/50-timezone.qml:30
662650msgid "Time Zone"
663651msgstr "時區"
664652
665−#: qml/Wizard/Pages/50-timezone.qml:182
653+#: qml/Wizard/Pages/50-timezone.qml:183
666654msgid "Enter your city"
667−msgstr ""
655+msgstr "輸入你的城市"
668656
669657#: qml/Wizard/Pages/60-account.qml:24
670658msgid "Personalize Your Device"
671−msgstr ""
659+msgstr "個人化您的裝置"
672660
673−#: qml/Wizard/Pages/60-account.qml:48
661+#: qml/Wizard/Pages/60-account.qml:49
674662msgid "Preferred Name"
675−msgstr ""
663+msgstr "首選名稱"
676664
677665#: qml/Wizard/Pages/70-passwd-type.qml:40
678666msgid "Lock Screen"
679667msgstr "鎖住螢幕"
680668
681−#: qml/Wizard/Pages/70-passwd-type.qml:102
669+#: qml/Wizard/Pages/70-passwd-type.qml:103
682670msgctxt "Label: Type of security method"
683671msgid "Create new password"
684−msgstr ""
672+msgstr "建立新密碼"
685673
686−#: qml/Wizard/Pages/70-passwd-type.qml:104
674+#: qml/Wizard/Pages/70-passwd-type.qml:105
687675msgctxt "Label: Type of security method"
688676msgid "Create passcode (numbers only)"
689−msgstr ""
677+msgstr "建立PIN密碼 (僅限號碼)"
690678
691−#: qml/Wizard/Pages/70-passwd-type.qml:106
679+#: qml/Wizard/Pages/70-passwd-type.qml:107
692680msgctxt "Label: Type of security method"
693681msgid "No lock code"
694−msgstr ""
682+msgstr "無鎖定碼"
695683
696−#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
684+#: qml/Wizard/Pages/75-report-check.qml:26
697685msgid "Privacy Policy"
698686msgstr "隱私權政策"
699687
700688#: qml/Wizard/Pages/75-report-check.qml:26
701689msgid "Help Us Improve"
702−msgstr ""
690+msgstr "幫助我們改進"
703691
704−#: qml/Wizard/Pages/75-report-check.qml:59
692+#: qml/Wizard/Pages/75-report-check.qml:60
705693msgid "Improve system performance by sending us crashes and error reports."
706−msgstr ""
694+msgstr "向我們發送崩潰和錯誤報表來提高系統的性能。"
707695
708−#: qml/Wizard/Pages/75-report-check.qml:60
696+#: qml/Wizard/Pages/75-report-check.qml:61
709697msgid "Privacy policy"
710698msgstr "隱私權政策"
711699
712−#: qml/Wizard/Pages/77-system-update.qml:28
700+#: qml/Wizard/Pages/76-app-update.qml:35
701+msgid "Update Apps"
702+msgstr "更新應用程式"
703+
704+#: qml/Wizard/Pages/76-app-update.qml:127
705+msgid "This device is not connected to the internet."
706+msgstr "此裝置尚未連接到網路。"
707+
708+#: qml/Wizard/Pages/76-app-update.qml:128
709+#: qml/Wizard/Pages/76-app-update.qml:134
710+msgid "Use the OpenStore app to check for updates once connected."
711+msgstr "連接後,使用Open Store應用程式來檢查更新。"
712+
713+#: qml/Wizard/Pages/76-app-update.qml:130
714+msgid "Software is up to date"
715+msgstr "軟體已是最新的"
716+
717+#: qml/Wizard/Pages/76-app-update.qml:133
718+msgid "The update server is not responding."
719+msgstr "更新服務器沒有回應。"
720+
721+#: qml/Wizard/Pages/76-app-update.qml:238
722+msgid "Please wait..."
723+msgstr "載入中 請稍候..."
724+
725+#: qml/Wizard/Pages/79-system-update.qml:28
713726msgid "Update Device"
714−msgstr ""
727+msgstr "裝置更新"
715728
716−#: qml/Wizard/Pages/77-system-update.qml:55
729+#: qml/Wizard/Pages/79-system-update.qml:55
717730msgid ""
718731"There is a system update available and ready to install. Afterwards, the "
719732"device will automatically restart."
720−msgstr ""
733+msgstr "有一個可用的系統更新, 並準備安裝。稍後裝置將會自動重新啟動。"
721734
722−#: qml/Wizard/Pages/77-system-update.qml:76
735+#: qml/Wizard/Pages/79-system-update.qml:76
723736msgctxt "string identifying name of the update"
724737msgid "Ubuntu system"
725−msgstr ""
738+msgstr "Ubuntu 系統"
726739
727−#: qml/Wizard/Pages/77-system-update.qml:83
740+#: qml/Wizard/Pages/79-system-update.qml:83
728741#, qt-format
729742msgctxt "version of the system update"
730743msgid "Version %1"
731−msgstr ""
744+msgstr "版本 %1"
732745
733−#: qml/Wizard/Pages/77-system-update.qml:102
746+#: qml/Wizard/Pages/79-system-update.qml:102
734747msgid "This could take a few minutes..."
735−msgstr ""
748+msgstr "這可能需要幾分鐘..."
736749
737−#: qml/Wizard/Pages/77-system-update.qml:116
750+#: qml/Wizard/Pages/79-system-update.qml:116
738751msgid "Install and restart now"
739−msgstr ""
752+msgstr "立即安裝並重新啟動"
753+
754+#: qml/Wizard/Pages/80-finished.qml:91
755+msgid "Welcome Back"
756+msgstr "歡迎回來"
740757
741−#: qml/Wizard/Pages/80-finished.qml:89
758+#: qml/Wizard/Pages/80-finished.qml:91
742759msgid "Welcome to Ubuntu"
743760msgstr "歡迎使用 Ubuntu"
744761
745−#: qml/Wizard/Pages/80-finished.qml:104
762+#: qml/Wizard/Pages/80-finished.qml:106
746763msgid "You are ready to use your device now"
747−msgstr ""
764+msgstr "您現在就可以使用您的裝置了"
765+
766+#: qml/Wizard/Pages/80-finished.qml:126
767+msgid "Continue"
768+msgstr "繼續"
748769
749−#: qml/Wizard/Pages/80-finished.qml:124
770+#: qml/Wizard/Pages/80-finished.qml:126
750771msgid "Get Started"
751772msgstr "新手上路"
752773
753−#: qml/Wizard/Pages/here-terms.qml:25
754−msgid "Terms & Conditions"
755−msgstr "使用條款與細則"
756−
757−#: qml/Wizard/Pages/here-terms.qml:69
758−msgid "Your device uses positioning technologies provided by HERE."
759−msgstr ""
760−
761−#: qml/Wizard/Pages/here-terms.qml:81
762−msgid ""
763−"To provide you with positioning services and to improve their quality, HERE "
764−"collects information about nearby cell towers and Wi-Fi hotspots around your "
765−"current location whenever your position is being found."
766−msgstr ""
774+#: qml/Wizard/Pages/DownloadHandler.qml:174
775+msgid "Installation failed"
776+msgstr "安裝失敗"
767777
768−#: qml/Wizard/Pages/here-terms.qml:93
769−msgid ""
770−"The information collected is used to analyze the service and to improve the "
771−"use of service, but not to identify you personally."
772−msgstr ""
778+#: qml/Wizard/Pages/GlobalUpdateControls.qml:84
779+msgid "Checking for updates…"
780+msgstr "正在檢查更新…"
773781
774−#: qml/Wizard/Pages/here-terms.qml:106
782+#: qml/Wizard/Pages/GlobalUpdateControls.qml:109
775783#, qt-format
776−msgid "By continuing, you agree to the HERE platform %1 and %2."
777−msgstr ""
784+msgid "%1 update available"
785+msgid_plural "%1 updates available"
786+msgstr[0] "%1 更新可用"
778787
779−#: qml/Wizard/Pages/here-terms.qml:107
780−msgid "Service Terms"
781−msgstr ""
788+#: qml/Wizard/Pages/GlobalUpdateControls.qml:119
789+msgid "Update all…"
790+msgstr "全部更新…"
791+
792+#: qml/Wizard/Pages/GlobalUpdateControls.qml:121
793+msgid "Update all"
794+msgstr "全部更新"
782795
783796#: qml/Wizard/Pages/passcode-confirm.qml:43
784797#: qml/Wizard/Pages/passcode-desktop.qml:97
785798msgid "Confirm passcode"
786−msgstr "確認通關碼"
799+msgstr "確認PIN密碼"
787800
788801#: qml/Wizard/Pages/passcode-confirm.qml:45
789802msgid "Incorrect passcode."
790−msgstr ""
803+msgstr "密碼不正確。"
791804
792805#: qml/Wizard/Pages/passcode-confirm.qml:45
793806msgctxt "Enter the passcode again"
794807msgid "Please re-enter."
795−msgstr "請重新輸入:"
808+msgstr "請重新輸入。"
796809
797810#: qml/Wizard/Pages/passcode-desktop.qml:31
798811msgid "Lock Screen Passcode"
799−msgstr ""
812+msgstr "螢幕鎖定PIN密碼"
800813
801814#: qml/Wizard/Pages/passcode-desktop.qml:61
802815msgid "Enter 4 numbers to setup your passcode"
803−msgstr ""
816+msgstr "輸入4個號碼來設置您的PIN密碼"
804817
805818#: qml/Wizard/Pages/passcode-desktop.qml:77
806819#: qml/Wizard/Pages/passcode-set.qml:54
807820msgid "Choose passcode"
808−msgstr "選擇通關碼"
821+msgstr "選擇PIN密碼"
809822
810823#: qml/Wizard/Pages/passcode-desktop.qml:127
811824msgid "Passcode too short"
812−msgstr ""
825+msgstr "PIN密碼太短"
813826
814827#: qml/Wizard/Pages/passcode-desktop.qml:129
815828msgid "Passcodes match"
816−msgstr ""
829+msgstr "PIN密碼相同"
817830
818831#: qml/Wizard/Pages/passcode-desktop.qml:131
819832msgid "Passcodes do not match"
820−msgstr ""
833+msgstr "PIN密碼不同"
821834
822835#: qml/Wizard/Pages/passcode-set.qml:62
823836msgid "Passcode must be 4 characters long"
824−msgstr ""
837+msgstr "PIN密碼長度必須為4個字元"
825838
826839#: qml/Wizard/Pages/password-set.qml:31
827840msgid "Lock Screen Password"
828−msgstr ""
841+msgstr "螢幕鎖定密碼"
829842
830843#: qml/Wizard/Pages/password-set.qml:62
831844msgid "Enter at least 8 characters"
832−msgstr ""
845+msgstr "至少輸入8個字元"
833846
834847#: qml/Wizard/Pages/password-set.qml:74
835848msgid "Choose password"
836−msgstr "選擇通關碼"
849+msgstr "選擇密碼"
837850
838851#: qml/Wizard/Pages/password-set.qml:104
839852msgid "Confirm password"
@@ -857,15 +870,77 @@ msgstr "重新啟動"
857870
858871#: qml/Wizard/Pages/sim.qml:78
859872msgid "You won’t be able to make calls or use text messaging without a SIM."
860−msgstr ""
873+msgstr "如果沒有 SIM 卡,您無法使用簡訊或撥打電話。"
861874
862875#: qml/Wizard/Pages/sim.qml:90
863876msgid "To proceed with no SIM tap Skip."
864−msgstr ""
877+msgstr "沒有要使用 SIM 卡, 請點擊 \"略過\"。"
878+
879+#: qml/Wizard/Pages/UpdateDelegate.qml:123
880+msgid "Update"
881+msgstr "更新"
882+
883+#: qml/Wizard/Pages/UpdateDelegate.qml:125
884+msgid "Download"
885+msgstr "下載"
886+
887+#: qml/Wizard/Pages/UpdateDelegate.qml:131
888+msgid "Resume"
889+msgstr "繼續"
890+
891+#: qml/Wizard/Pages/UpdateDelegate.qml:138
892+msgid "Pause"
893+msgstr "暫停"
894+
895+#: qml/Wizard/Pages/UpdateDelegate.qml:142
896+msgid "Install…"
897+msgstr "安裝…"
898+
899+#: qml/Wizard/Pages/UpdateDelegate.qml:144
900+msgid "Install"
901+msgstr "安裝"
902+
903+#: qml/Wizard/Pages/UpdateDelegate.qml:148
904+msgid "Open"
905+msgstr "開啟"
906+
907+#: qml/Wizard/Pages/UpdateDelegate.qml:216
908+msgid "Installing"
909+msgstr "安裝中"
910+
911+#: qml/Wizard/Pages/UpdateDelegate.qml:220
912+msgid "Paused"
913+msgstr "已暫停"
914+
915+#: qml/Wizard/Pages/UpdateDelegate.qml:223
916+msgid "Waiting to download"
917+msgstr "正在等待下載"
918+
919+#: qml/Wizard/Pages/UpdateDelegate.qml:279
920+#, qt-format
921+msgid "%1 of %2"
922+msgstr "%1 / %2"
923+
924+#: qml/Wizard/Pages/UpdateDelegate.qml:283
925+msgid "Downloaded"
926+msgstr "已下載"
927+
928+#: qml/Wizard/Pages/UpdateDelegate.qml:286
929+msgid "Installed"
930+msgstr "已安裝"
931+
932+#: qml/Wizard/Pages/UpdateDelegate.qml:291
933+#, qt-format
934+msgid "Updated %1"
935+msgstr "已更新 %1"
936+
937+#: qml/Wizard/Pages/UpdateDelegate.qml:315
938+msgid "Update failed"
939+msgstr "更新失敗"
865940
866941#: qml/Wizard/PasswordMeter.qml:87
867942msgid "Password too short"
868−msgstr ""
943+msgstr "密碼太短"
869944
870945#: qml/Wizard/PasswordMeter.qml:89
871946msgid "Passwords match"
@@ -873,7 +948,7 @@ msgstr "密碼相同"
873948
874949#: qml/Wizard/PasswordMeter.qml:91
875950msgid "Passwords do not match"
876−msgstr "密碼不符"
951+msgstr "密碼不同"
877952
878953#: qml/Wizard/PasswordMeter.qml:95
879954msgid "Strong password"
@@ -891,18 +966,25 @@ msgstr "密碼強度不足"
891966msgid "Very weak password"
892967msgstr "密碼強度極弱"
893968
969+#~ msgid "Location Services"
970+#~ msgstr "定位服務"
971+
972+#~ msgctxt "part of: Nokia HERE terms and conditions"
973+#~ msgid "terms and conditions"
974+#~ msgstr "條款及條件"
975+
976+#~ msgid "GPS only"
977+#~ msgstr "僅 GPS"
978+
979+#~ msgid "Terms & Conditions"
980+#~ msgstr "使用條款與細則"
981+
894982#~ msgid "Confirm"
895983#~ msgstr "確認"
896984
897−#~ msgid "Loading. Please Wait..."
898−#~ msgstr "載入中。請稍候..."
899−
900985#~ msgid "Speak Now..."
901986#~ msgstr "請說..."
902987
903−#~ msgid "Speaking..."
904−#~ msgstr "說話中..."
905−
906988#~ msgid "Search"
907989#~ msgstr "搜尋"
908990
@@ -986,7 +1068,6 @@ msgstr "密碼強度極弱"
9861068#~ msgid "Done"
9871069#~ msgstr "完成"
9881070
989−#, qt-format
9901071#~ msgid "Sorry, incorrect %1"
9911072#~ msgstr "抱歉,%1不對"
9921073
@@ -1004,7 +1085,6 @@ msgstr "密碼強度極弱"
10041085#~ "reset and all personal data will be deleted."
10051086#~ msgstr "如輸入的密語不對,本電話會進行重設,所有個人資料都會刪除。"
10061087
1007−#, qt-format
10081088#~ msgid "Enter %1"
10091089#~ msgstr "輸入 %1"
10101090
@@ -1024,8 +1104,8 @@ msgstr "密碼強度極弱"
10241104#~ msgstr "抱歉,通關碼不對。"
10251105
10261106#~ msgid ""
1027−#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1028−#~ "and all personal data will be deleted."
1107+#~ "If passcode is entered incorrectly, your phone will conduct a factory "
1108+#~ "reset and all personal data will be deleted."
10291109#~ msgstr "如輸入的通關碼不對,本電話會進行重設,所有個人資料都會刪除。"
10301110
10311111#~ msgid "Enter passcode"
@@ -1082,9 +1162,6 @@ msgstr "密碼強度極弱"
10821162#~ msgid "Let’s get started."
10831163#~ msgstr "讓我們開始吧。"
10841164
1085−#~ msgid "Continue"
1086−#~ msgstr "繼續"
1087−
10881165#~ msgid "Add a SIM card and restart your device"
10891166#~ msgstr "插入 SIM 卡並重新啟動您的裝置"
10901167
@@ -1116,13 +1193,10 @@ msgstr "密碼強度極弱"
11161193#~ msgstr "使用 GPS、匿名化 Wi-Fi 與巢狀行動網路資訊 (建議)"
11171194
11181195#~ msgid ""
1119−#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1120−#~ "conditions</a>."
1196+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms "
1197+#~ "and conditions</a>."
11211198#~ msgstr "選取此項代表您同意 Nokia HERE 的<a href='#'>服務條款與細則</a>。"
11221199
1123−#~ msgid "Not at all"
1124−#~ msgstr "一點也不"
1125−
11261200#~ msgid "You can change your mind later in <b>System Settings</b>."
11271201#~ msgstr "您稍後若改變心意,可以到<b>系統設定</b>中更改。"
11281202
@@ -1132,7 +1206,9 @@ msgstr "密碼強度極弱"
11321206#~ msgid ""
11331207#~ "Your phone is set up to automatically report errors to Canonical and its "
11341208#~ "partners, the makers of the operating system."
1135−#~ msgstr "您的手機已設置為會自動向 Canonical 及其合作夥伴 (作業系統的製作者) 回報錯誤問題。"
1209+#~ msgstr ""
1210+#~ "您的手機已設置為會自動向 Canonical 及其合作夥伴 (作業系統的製作者) 回報錯"
1211+#~ "誤問題。"
11361212
11371213#~ msgid ""
11381214#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
@@ -1163,11 +1239,9 @@ msgstr "密碼強度極弱"
11631239#~ msgid "Passphrase must be 4 characters long"
11641240#~ msgstr "密語必須 4 個字元長"
11651241
1166−#, qt-format
11671242#~ msgid "〈 %1"
11681243#~ msgstr "〈 %1"
11691244
1170−#, qt-format
11711245#~ msgid "%1 〉"
11721246#~ msgstr "%1 〉"
11731247
qml/Dash/DashBackground.qml+1−1
@@ -31,6 +31,6 @@ Rectangle {
3131 source: AccountsService.backgroundFile
3232 anchors.fill: parent
3333 fillMode: Image.PreserveAspectCrop
34− opacity: 0.6
34+ opacity: settings.backgroundOpacity
3535 }
3636}
qml/Dash/Previews/PreviewWidgetFactory.qml−1
@@ -67,7 +67,6 @@ Loader {
6767 case "icon-actions": return "PreviewIconActions.qml";
6868 case "image": return "PreviewZoomableImage.qml";
6969 case "progress": return "PreviewProgress.qml";
70− case "payments": return "PreviewPayments.qml";
7170 case "rating-input": return "PreviewRatingInput.qml";
7271 case "rating-edit": return "PreviewRatingEdit.qml";
7372 case "reviews": return "PreviewRatingDisplay.qml";
qml/Shell.qml+2−1
@@ -1,4 +1,5 @@
11/*
2+ * Copyright (C) 2018 The UBports project
23 * Copyright (C) 2013-2016 Canonical, Ltd.
34 *
45 * This program is free software; you can redistribute it and/or modify
@@ -346,7 +347,7 @@ StyledItem {
346347 hides: [launcher, panel.indicators]
347348 tabletMode: shell.usageScenario != "phone"
348349 launcherOffset: launcher.progress
349− forcedUnlock: wizard.active || shell.mode === "full-shell"
350+ forcedUnlock: wizard.active && !wizard.isUpdate || shell.mode === "full-shell"
350351 background: wallpaperResolver.cachedBackground
351352 hasCustomBackground: wallpaperResolver.hasCustomBackground
352353 allowFingerprint: !dialogs.hasActiveDialog &&
qml/Stage/Stage.qml+8−2
@@ -1726,11 +1726,12 @@ FocusScope {
17261726
17271727 property int scrollAreaWidth: width / 3
17281728 property bool progressiveScrollingEnabled: false
1729+ property bool wasTouchPress: false
17291730
17301731 onMouseXChanged: {
17311732 mouse.accepted = false
17321733
1733− if (hoverMouseArea.pressed) {
1734+ if (hoverMouseArea.pressed || wasTouchPress) {
17341735 return;
17351736 }
17361737
@@ -1766,7 +1767,12 @@ FocusScope {
17661767 }
17671768 }
17681769
1769− onPressed: mouse.accepted = false
1770+ onPressed: {
1771+ mouse.accepted = false;
1772+ wasTouchPress = mouse.source === Qt.MouseEventSynthesizedByQt;
1773+ }
1774+
1775+ onExited: wasTouchPress = false;
17701776 }
17711777
17721778 FloatingFlickable {
qml/Stage/WindowResizeArea.qml+4−1
@@ -101,7 +101,10 @@ MouseArea {
101101 state = WindowStateStorage.WindowStateNormal;
102102 }
103103 windowStateStorage.saveState(root.windowId, state & ~WindowStateStorage.WindowStateMinimized); // clear the minimized bit when saving
104− windowStateStorage.saveGeometry(root.windowId, Qt.rect(priv.normalX, priv.normalY, priv.normalWidth, priv.normalHeight));
104+ // do not store window sizes if they are zero. this happens in staged mode
105+ if ( priv.normalWidth && priv.normalHeight ) {
106+ windowStateStorage.saveGeometry(root.windowId, Qt.rect(priv.normalX, priv.normalY, priv.normalWidth, priv.normalHeight));
107+ }
105108 }
106109
107110 QtObject {
qml/Wizard/Components/InputMethod.qml+9−9
@@ -21,19 +21,19 @@ import Ubuntu.Components 0.1
2121// TODO: try to share this code with that from the unity8 shell
2222
2323Item {
24− id: root
24+ id: inputMethodRoot
2525
2626 Connections {
2727 target: SurfaceManager
2828 onSurfaceCreated: {
2929 if (surface.type == MirSurfaceItem.InputMethod) {
30− root.surface = surface;
30+ inputMethodRoot.surface = surface;
3131 }
3232 }
3333
3434 onSurfaceDestroyed: {
35− if (root.surface == surface) {
36− root.surface = null;
35+ if (inputMethodRoot.surface == surface) {
36+ inputMethodRoot.surface = null;
3737 surface.parent = null;
3838 }
3939 if (!surface.parent) {
@@ -71,7 +71,7 @@ Item {
7171 visible: false
7272 // half-way down because the vkb occupies only the lower half of the surface
7373 // TODO: consider keyboard rotation
74− y: root.parent.height / 2.0
74+ y: inputMethodRoot.parent.height / 2.0
7575 }
7676 }
7777 ]
@@ -89,17 +89,17 @@ Item {
8989 ignoreUnknownSignals: true // don't wanna spam the log when surface is null
9090 onStateChanged: {
9191 if (state == MirSurfaceItem.Minimized) {
92− root.hide();
92+ inputMethodRoot.hide();
9393 } else if (state == MirSurfaceItem.Maximized) {
94− root.show();
94+ inputMethodRoot.show();
9595 }
9696 }
9797 }
9898
9999 onSurfaceChanged: {
100100 if (surface) {
101− surface.parent = root;
102− surface.anchors.fill = root;
101+ surface.parent = inputMethodRoot;
102+ surface.anchors.fill = inputMethodRoot;
103103 }
104104 }
105105
qml/Wizard/Page.qml+5
@@ -1,4 +1,5 @@
11/*
2+ * Copyright (C) 2018 The UBports project
23 * Copyright (C) 2013-2016 Canonical, Ltd.
34 *
45 * This program is free software; you can redistribute it and/or modify
@@ -50,6 +51,10 @@ Item {
5051 property bool skipValid: true
5152 property bool skip: false
5253
54+ // Marks if should be only shown if update or install
55+ property bool onlyOnUpdate: false
56+ property bool onlyOnInstall: false
57+
5358 property bool hasBackButton: true
5459 property string backButtonText: i18n.ctr("Button: Go back one page in the Wizard", "Back")
5560 property bool customBack: false
qml/Wizard/Pages.qml+48−13
@@ -1,4 +1,5 @@
11/*
2+ * Copyright (C) 2018 The UBports project
23 * Copyright (C) 2013-2016 Canonical, Ltd.
34 *
45 * This program is free software; you can redistribute it and/or modify
@@ -18,7 +19,6 @@ import QtQuick 2.4
1819import MeeGo.QOfono 0.2
1920import Ubuntu.Components 1.3
2021import Ubuntu.SystemSettings.SecurityPrivacy 1.0
21−import Ubuntu.SystemSettings.Diagnostics 1.0
2222import Wizard 0.1
2323import "../Components"
2424
@@ -49,11 +49,6 @@ StyledItem {
4949 objectName: "securityPrivacy"
5050 }
5151
52− UbuntuDiagnostics {
53− id: diagnostics
54− objectName: "diagnostics"
55− }
56−
5752 OfonoManager { // need it here for the language and country detection
5853 id: modemManager
5954 readonly property bool gotSimCard: available && ((simManager0.ready && simManager0.present) || (simManager1.ready && simManager1.present))
@@ -105,6 +100,37 @@ StyledItem {
105100 id: pageList
106101 }
107102
103+ ActivityIndicator {
104+ id: pagesSpinner
105+ anchors.centerIn: parent
106+ z: 100
107+ running: false
108+ visible: running
109+
110+ NumberAnimation on opacity {
111+ id: fadeInAnimation
112+ from: 0
113+ to: 1
114+ duration: 200
115+ }
116+
117+ onVisibleChanged: {
118+ if (visible) {
119+ opacity = 0;
120+ fadeInAnimation.start();
121+ }
122+ }
123+ }
124+
125+ Timer {
126+ id: impatientLoadingTimer
127+ interval: 1700
128+ onTriggered: {
129+ console.warn("Impatient timer going off. Fix the wizard, it's too slow at skipping pages.")
130+ pagesSpinner.running = true;
131+ }
132+ }
133+
108134 PageStack {
109135 id: pageStack
110136 objectName: "pageStack"
@@ -139,18 +165,21 @@ StyledItem {
139165
140166 function load(path) {
141167 if (currentPage) {
142− currentPage.enabled = false
168+ currentPage.enabled = false;
143169 }
144170
145171 // First load it invisible, check that we should actually use
146172 // this page, and either skip it or continue.
147− push(path, {"opacity": 0, "enabled": false})
173+ push(path, {"opacity": 0, "enabled": false});
148174
149175 timeout.restart();
176+ impatientLoadingTimer.start();
177+
178+ console.info("Loading page " + currentPage.objectName);
150179
151180 // Check for immediate skip or not. We may have to wait for
152181 // skipValid to be assigned (see Connections object below)
153− checkSkip()
182+ checkSkip();
154183
155184 var isPrimaryPage = !currentPage.customTitle;
156185 if (isPrimaryPage) {
@@ -162,13 +191,19 @@ StyledItem {
162191
163192 function checkSkip() {
164193 if (!currentPage) { // may have had a parse error
165− next()
194+ console.warn("Wizard page skipped due to possible parse error.");
195+ next();
166196 } else if (currentPage.skipValid) {
167197 if (currentPage.skip) {
168− next()
198+ next();
199+ } else if ((currentPage.onlyOnUpdate && !wizard.isUpdate) ||
200+ (currentPage.onlyOnInstall && wizard.isUpdate)) {
201+ next();
169202 } else {
170− currentPage.opacity = 1
171− currentPage.enabled = true
203+ impatientLoadingTimer.stop()
204+ pagesSpinner.running = false;
205+ currentPage.opacity = 1;
206+ currentPage.enabled = true;
172207 timeout.stop();
173208 }
174209 }
qml/Wizard/Pages/10-welcome-update.qmlnew file+137
@@ -0,0 +1,137 @@
1+/*
2+ * Copyright (C) 2018 The UBports project
3+ *
4+ * Written by: Marius Gripsgard <marius@ubports.com>
5+ *
6+ * This program is free software; you can redistribute it and/or modify
7+ * it under the terms of the GNU General Public License as published by
8+ * the Free Software Foundation; version 3.
9+ *
10+ * This program is distributed in the hope that it will be useful,
11+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+ * GNU General Public License for more details.
14+ *
15+ * You should have received a copy of the GNU General Public License
16+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17+ */
18+
19+import QtQuick 2.4
20+import Ubuntu.Components 1.3
21+import Wizard 0.1
22+import ".." as LocalComponents
23+
24+LocalComponents.Page {
25+ objectName: "welcomeUpdate"
26+
27+ hasBackButton: false
28+ customTitle: true
29+ buttonBarVisible: false
30+ onlyOnUpdate: true
31+
32+ Component.onCompleted: {
33+ state = "reanchored";
34+ }
35+
36+ states: State {
37+ name: "reanchored"
38+ AnchorChanges { target: bgImage; anchors.top: parent.top; anchors.bottom: parent.bottom }
39+ AnchorChanges { target: column;
40+ anchors.verticalCenter: parent.verticalCenter;
41+ anchors.top: undefined
42+ }
43+ }
44+
45+ SequentialAnimation {
46+ id: splashAnimation
47+ PauseAnimation { duration: UbuntuAnimation.BriskDuration }
48+ SmoothedAnimation {
49+ target: bgImage
50+ property: "height"
51+ to: units.gu(16)
52+ duration: UbuntuAnimation.BriskDuration
53+ }
54+ NumberAnimation {
55+ target: bgImage
56+ property: 'opacity'
57+ from: 1
58+ to: 0
59+ }
60+ }
61+
62+ Image {
63+ id: bgImage
64+ source: wideMode ? "data/Desktop_splash_screen_bkg.png" : "data/Phone_splash_screen_bkg.png"
65+ scale: Image.PreserveAspectFit
66+ anchors.left: parent.left
67+ anchors.right: parent.right
68+ anchors.bottom: parent.top // outside to let it slide down
69+ visible: opacity > 0
70+ }
71+
72+ Item {
73+ id: column
74+ anchors.leftMargin: leftMargin
75+ anchors.rightMargin: rightMargin
76+ anchors.left: parent.left
77+ anchors.right: parent.right
78+ anchors.top: parent.bottom // outside to let it slide in
79+ height: childrenRect.height
80+ visible: opacity > 0
81+
82+ Label {
83+ id: welcomeLabel
84+ anchors.left: parent.left
85+ anchors.right: parent.right
86+ horizontalAlignment: Text.AlignHCenter
87+ wrapMode: Text.Wrap
88+ fontSize: "x-large"
89+ font.weight: Font.Light
90+ lineHeight: 1.2
91+ text: i18n.tr("Welcome to ") + System.version.split("Base-Version: ")[1]
92+ color: whiteColor
93+ }
94+
95+ Label {
96+ id: welcomeText
97+ anchors.left: parent.left
98+ anchors.right: parent.right
99+ anchors.top: welcomeLabel.bottom
100+ anchors.topMargin: units.gu(2)
101+ horizontalAlignment: Text.AlignHCenter
102+ wrapMode: Text.Wrap
103+ fontSize: "large"
104+ font.weight: Font.Light
105+ lineHeight: 1.2
106+ text: i18n.tr("We will make sure your device is ready to use ") + System.version.split("Base-Version: ")[1]
107+ color: whiteColor
108+ }
109+
110+ Rectangle {
111+ anchors {
112+ top: welcomeText.bottom
113+ horizontalCenter: parent.horizontalCenter
114+ topMargin: units.gu(4)
115+ }
116+ color: "transparent"
117+ border.width: units.dp(1)
118+ border.color: whiteColor
119+ radius: units.dp(4)
120+ width: buttonLabel.paintedWidth + units.gu(6)
121+ height: buttonLabel.paintedHeight + units.gu(1.8)
122+
123+ Label {
124+ id: buttonLabel
125+ color: whiteColor
126+ text: i18n.tr("Next")
127+ fontSize: "medium"
128+ anchors.centerIn: parent
129+ }
130+ AbstractButton {
131+ objectName: "nextButton"
132+ anchors.fill: parent
133+ onClicked: pageStack.next();
134+ }
135+ }
136+ }
137+}
qml/Wizard/Pages/10-welcome.qml+2
@@ -1,4 +1,5 @@
11/*
2+ * Copyright (C) 2018 The UBports project
23 * Copyright (C) 2013-2016 Canonical, Ltd.
34 *
45 * This program is free software; you can redistribute it and/or modify
@@ -27,6 +28,7 @@ LocalComponents.Page {
2728
2829 title: i18n.tr("Language")
2930 forwardButtonSourceComponent: forwardButton
31+ onlyOnInstall: true
3032
3133 UbuntuLanguagePlugin {
3234 id: plugin
qml/Wizard/Pages/11-changelog.qmlnew file+95
@@ -0,0 +1,95 @@
1+/*
2+ * Copyright (C) 2018 The UBports project
3+ *
4+ * Written by: Dalton Durst <dalton@ubports.com>
5+ * Marius Gripsgard <marius@ubports.com>
6+ *
7+ * This program is free software; you can redistribute it and/or modify
8+ * it under the terms of the GNU General Public License as published by
9+ * the Free Software Foundation; version 3.
10+ *
11+ * This program is distributed in the hope that it will be useful,
12+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+ * GNU General Public License for more details.
15+ *
16+ * You should have received a copy of the GNU General Public License
17+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
18+ */
19+
20+import QtQuick 2.4
21+import Ubuntu.Components 1.3
22+import AccountsService 0.1
23+import Wizard 0.1
24+import ".." as LocalComponents
25+
26+LocalComponents.Page {
27+ objectName: "changelogPage"
28+ title: i18n.tr("What's new")
29+ id: changelogPage
30+
31+ // See skipTimer below for information about this hack
32+ property bool loading: false
33+
34+ forwardButtonSourceComponent: forwardButton
35+ onlyOnUpdate: true
36+
37+ ScrollView {
38+ id: scroll
39+
40+ anchors {
41+ fill: content
42+ leftMargin: wideMode ? parent.leftMargin : staticMargin
43+ rightMargin: wideMode ? parent.rightMargin : staticMargin
44+ }
45+
46+ Column {
47+ id: column
48+
49+ width: scroll.width
50+
51+ // Make it appear that the text is hiding behind the header
52+ Item {
53+ height: staticMargin
54+ width: units.gu(1)
55+ }
56+
57+ Label {
58+ anchors {
59+ // Keep the scroll bar from interfering with text
60+ rightMargin: units.gu(1)
61+ }
62+ id: changelogText
63+ width: parent.width
64+ wrapMode: Text.WordWrap
65+ textSize: Label.Medium
66+ text: Changelog.text
67+ }
68+ }
69+ }
70+
71+ Component {
72+ id: forwardButton
73+ LocalComponents.StackButton {
74+ text: loading ? i18n.tr("Loading...") : i18n.tr("Next")
75+ onClicked: {
76+ changelogPage.loading = true;
77+ skipTimer.restart();
78+ }
79+ }
80+ }
81+
82+ // A horrible hack to make sure the UI refreshes before actually skipping
83+ // Without this, people press the Next button multiple times and skip
84+ // multiple pages at once.
85+ Timer {
86+ id: skipTimer
87+ interval: 100
88+ repeat: false
89+ running: false
90+ onTriggered: {
91+ changelogPage.loading = false;
92+ pageStack.next();
93+ }
94+ }
95+}
qml/Wizard/Pages/30-wifi.qml+1
@@ -32,6 +32,7 @@ LocalComponents.Page {
3232 forwardButtonSourceComponent: forwardButton
3333
3434 readonly property bool connected: Connectivity.online
35+ skip: connected
3536
3637 function getExtendedProperty(object, propertyName, defaultValue) {
3738 if (object && object.hasOwnProperty(propertyName)) {
qml/Wizard/Pages/40-location.qmldeleted−290
@@ -1,290 +0,0 @@
1−/*
2− * Copyright (C) 2013-2016 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.4
18−import AccountsService 0.1
19−import QMenuModel 0.1 as QMenuModel
20−import Qt.labs.folderlistmodel 2.1
21−import Ubuntu.Components 1.3
22−import ".." as LocalComponents
23−
24−LocalComponents.Page {
25− objectName: "locationPage"
26−
27− title: i18n.tr("Location Services")
28− forwardButtonSourceComponent: forwardButton
29−
30− readonly property bool pathSet: AccountsService.hereLicensePathValid
31− skipValid: pathSet && (AccountsService.hereLicensePath === "" || termsModel.count > 0)
32− skip: skipValid && (AccountsService.hereLicensePath === "" || termsModel.count === 2) // no files but . and ..
33−
34− FolderListModel {
35− id: termsModel
36− folder: AccountsService.hereLicensePath
37− nameFilters: ["*.html"]
38− showOnlyReadable: true
39− showDotAndDotDot: true // so that count == 0 means we're not done scanning yet
40− }
41−
42− QMenuModel.QDBusActionGroup {
43− id: locationActionGroup
44− objectName: "locationActionGroup"
45− busType: QMenuModel.DBus.SessionBus
46− busName: "com.canonical.indicator.location"
47− objectPath: "/com/canonical/indicator/location"
48− property variant location: action("location-detection-enabled")
49− property variant gps: action("gps-detection-enabled")
50− Component.onCompleted: start()
51− }
52−
53− Item {
54− id: column
55− anchors.fill: content
56− anchors.topMargin: customMargin
57− anchors.leftMargin: wideMode ? parent.leftMargin : 0
58− anchors.rightMargin: wideMode ? parent.rightMargin : 0
59−
60− Item {
61− id: hereCheckGroup
62− anchors {
63− left: parent.left
64− right: parent.right
65− top: parent.top
66− }
67− height: hereCheckLabel.height + hereTermsLabel.height
68−
69− Label {
70− id: hereCheckLabel
71− objectName: "hereCheckLabel"
72− anchors {
73− left: parent.left
74− right: hereTermsCheck.left
75− top: parent.top
76− leftMargin: column.anchors.leftMargin == 0 ? staticMargin : 0
77− rightMargin: units.gu(2)
78− }
79− lineHeight: 1.2
80− wrapMode: Text.WordWrap
81− color: textColor
82− font.weight: checked ? Font.Normal : Font.Light
83− text: i18n.tr("Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location (recommended)")
84− property bool checked: true
85− }
86−
87− Label {
88− id: hereTermsLabel
89− objectName: "hereTermsLabel"
90− anchors {
91− left: parent.left
92− right: hereTermsCheck.left
93− top: hereCheckLabel.bottom
94− topMargin: units.gu(1)
95− leftMargin: column.anchors.leftMargin == 0 ? staticMargin : 0
96− rightMargin: units.gu(2)
97− }
98−
99− wrapMode: Text.WordWrap
100− color: textColor
101− font.weight: Font.Light
102− fontSize: "small"
103− lineHeight: 1.2
104− linkColor: UbuntuColors.orange
105− text: i18n.tr("By selecting this option you agree to the Nokia HERE %1.")
106− .arg("<a href='#'>" + i18n.ctr("part of: Nokia HERE terms and conditions", "terms and conditions") + "</a>")
107− Mouse.forwardTo: hereCheckArea // clicking on the link also selects this group
108− Mouse.priority: Mouse.AfterItem
109− onLinkActivated: {
110− pageStack.load(Qt.resolvedUrl("here-terms.qml"));
111− }
112− }
113−
114− Image {
115− id: hereTermsCheck
116− fillMode: Image.PreserveAspectFit
117− height: units.gu(1.5)
118− source: "data/Tick@30.png"
119− opacity: hereCheckLabel.checked ? 1 : 0
120− anchors.right: parent.right
121− anchors.verticalCenter: hereCheckLabel.verticalCenter
122− anchors.rightMargin: column.anchors.rightMargin == 0 ? staticMargin : 0
123− }
124−
125− MouseArea {
126− id: hereCheckArea
127− anchors.fill: parent
128− z: hereCheckGroup.z - 1 // so that the link can be activated
129− onClicked: {
130− if (!hereCheckLabel.checked) {
131− hereCheckLabel.checked = true;
132− gpsCheckLabel.checked = false;
133− nopeCheckLabel.checked = false;
134− }
135− }
136− }
137− }
138−
139− Rectangle {
140− id: divider
141− anchors.left: parent.left
142− anchors.right: parent.right
143− anchors.top: hereCheckGroup.bottom
144− anchors.topMargin: units.gu(3)
145− height: units.dp(1)
146− color: dividerColor
147− }
148−
149− Label {
150− id: gpsCheckLabel
151− objectName: "gpsCheckLabel"
152− anchors {
153− left: parent.left
154− right: parent.right
155− top: divider.bottom
156− topMargin: units.gu(3)
157− leftMargin: column.anchors.leftMargin == 0 ? staticMargin : 0
158− rightMargin: units.gu(2)
159− }
160− text: i18n.tr("GPS only")
161− wrapMode: Text.WordWrap
162− color: textColor
163− font.weight: checked ? Font.Normal : Font.Light
164− width: content.width
165− property bool checked: false
166−
167− MouseArea {
168− anchors.fill: parent
169− onClicked: {
170− if (!gpsCheckLabel.checked) {
171− hereCheckLabel.checked = false;
172− gpsCheckLabel.checked = true;
173− nopeCheckLabel.checked = false;
174− }
175− }
176− }
177− }
178−
179− Image {
180− fillMode: Image.PreserveAspectFit
181− height: units.gu(1.5)
182− source: "data/Tick@30.png"
183− opacity: gpsCheckLabel.checked ? 1 : 0
184− anchors.right: parent.right
185− anchors.verticalCenter: gpsCheckLabel.verticalCenter
186− anchors.rightMargin: column.anchors.rightMargin == 0 ? staticMargin : 0
187− }
188−
189− Rectangle {
190− id: divider2
191− anchors.left: parent.left
192− anchors.right: parent.right
193− anchors.top: gpsCheckLabel.bottom
194− anchors.topMargin: units.gu(3)
195− height: units.dp(1)
196− color: dividerColor
197− }
198−
199− Label {
200− id: nopeCheckLabel
201− objectName: "nopeCheckLabel"
202− anchors {
203− left: parent.left
204− right: parent.right
205− top: divider2.bottom
206− topMargin: units.gu(3)
207− leftMargin: column.anchors.leftMargin == 0 ? staticMargin : 0
208− rightMargin: units.gu(2)
209− }
210− wrapMode: Text.WordWrap
211− color: textColor
212− font.weight: checked ? Font.Normal : Font.Light
213− width: content.width
214− text: i18n.tr("Don't use my location")
215− property bool checked: false
216−
217− MouseArea {
218− anchors.fill: parent
219− onClicked: {
220− if (!nopeCheckLabel.checked) {
221− hereCheckLabel.checked = false;
222− gpsCheckLabel.checked = false;
223− nopeCheckLabel.checked = true;
224− }
225− }
226− }
227− }
228−
229− Image {
230− fillMode: Image.PreserveAspectFit
231− height: units.gu(1.5)
232− source: "data/Tick@30.png"
233− opacity: nopeCheckLabel.checked ? 1 : 0
234− anchors.right: parent.right
235− anchors.verticalCenter: nopeCheckLabel.verticalCenter
236− anchors.rightMargin: column.anchors.rightMargin == 0 ? staticMargin : 0
237− }
238−
239− Rectangle {
240− id: divider3
241− anchors.left: parent.left
242− anchors.right: parent.right
243− anchors.top: nopeCheckLabel.bottom
244− anchors.topMargin: units.gu(3)
245− height: units.dp(1)
246− color: dividerColor
247− }
248−
249− Label {
250− id: infoLabel
251− anchors {
252− left: parent.left
253− right: parent.right
254− top: divider3.bottom
255− topMargin: units.gu(4)
256− leftMargin: column.anchors.leftMargin == 0 ? staticMargin : 0
257− rightMargin: column.anchors.rightMargin == 0 ? staticMargin : 0
258− }
259− wrapMode: Text.Wrap
260− text: i18n.tr("You can change it later in System Settings.")
261− color: textColor
262− fontSize: "small"
263− font.weight: Font.Light
264− width: content.width
265− }
266− }
267−
268− Component {
269− id: forwardButton
270− LocalComponents.StackButton {
271− text: i18n.tr("Next")
272− onClicked: {
273− var locationOn = gpsCheckLabel.checked || hereCheckLabel.checked;
274− var gpsOn = gpsCheckLabel.checked || hereCheckLabel.checked;
275− var hereOn = hereCheckLabel.checked;
276−
277− // location service doesn't currently listen to updateState
278− // requests, so we activate the actions if needed.
279− if (locationActionGroup.location.state != locationOn) {
280− locationActionGroup.location.activate();
281− }
282− if (locationActionGroup.gps.state != gpsOn) {
283− locationActionGroup.gps.activate();
284− }
285− AccountsService.hereEnabled = hereOn;
286− pageStack.next();
287− }
288− }
289− }
290−}
qml/Wizard/Pages/50-timezone.qml+1
@@ -36,6 +36,7 @@ LocalComponents.Page {
3636
3737 // for testing
3838 readonly property alias tdModule: timeDatePanel
39+ onlyOnInstall: true
3940
4041 function highlightTimezone(offset) {
4142 highlightImage.source = "data/timezonemap/timezone_" + offset + ".png";
qml/Wizard/Pages/60-account.qml+11−10
@@ -24,10 +24,15 @@ LocalComponents.Page {
2424 title: i18n.tr("Personalize Your Device")
2525
2626 forwardButtonSourceComponent: forwardButton
27+ onlyOnInstall: true
2728
28− QtObject {
29− id: d
30− readonly property string validName: nameInput.text.trim()
29+ readonly property string validName: nameInput.text.trim()
30+
31+ function saveNameAndGoNext() {
32+ if (validName) {
33+ AccountsService.realName = validName;
34+ }
35+ pageStack.next();
3136 }
3237
3338 Column {
@@ -56,19 +61,15 @@ LocalComponents.Page {
5661 anchors.left: parent.left
5762 anchors.right: parent.right
5863 inputMethodHints: Qt.ImhNoPredictiveText
64+ onAccepted: saveNameAndGoNext()
5965 }
6066 }
6167
6268 Component {
6369 id: forwardButton
6470 LocalComponents.StackButton {
65− text: d.validName ? i18n.tr("Next") : i18n.tr("Skip")
66− onClicked: {
67− if (d.validName) {
68− AccountsService.realName = d.validName;
69− }
70− pageStack.next();
71− }
71+ text: validName ? i18n.tr("Next") : i18n.tr("Skip")
72+ onClicked: saveNameAndGoNext()
7273 }
7374 }
7475}
qml/Wizard/Pages/70-passwd-type.qml+1
@@ -44,6 +44,7 @@ LocalComponents.Page {
4444 // or this isn't the first time the wizard has been run, etc). We can't
4545 // properly set the password again, so let's not pretend we can.
4646 skip: securityPrivacy.securityType !== UbuntuSecurityPrivacyPanel.Swipe
47+ onlyOnInstall: true
4748
4849 function indexToMethod(index) {
4950 if (index === 0/* || index === 1*/)
qml/Wizard/Pages/75-report-check.qmldeleted−91
@@ -1,91 +0,0 @@
1−/*
2− * Copyright (C) 2015-2016 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.4
18−import Ubuntu.Components 1.3
19−import Ubuntu.Web 0.2
20−import ".." as LocalComponents
21−
22−LocalComponents.Page {
23− id: reportingPage
24− objectName: "reportingPage"
25−
26− title: webview.visible ? i18n.tr("Privacy Policy") : i18n.tr("Help Us Improve")
27− forwardButtonSourceComponent: !webview.visible ? forwardButton : null
28− customBack: true
29− customTitle: webview.visible
30−
31− skip: !diagnostics.reportCrashes // skip the page when the system is configured not to report crashes
32−
33− onBackClicked: {
34− if (webview.visible) {
35− webview.visible = false;
36− } else {
37− pageStack.prev();
38− }
39− }
40−
41− Column {
42− id: column
43− anchors {
44− fill: content
45− leftMargin: leftMargin
46− rightMargin: rightMargin
47− topMargin: customMargin
48− }
49−
50− LocalComponents.CheckableSetting {
51− anchors {
52− left: parent.left
53− right: parent.right
54− }
55−
56− id: reportCheck
57− objectName: "reportCheck"
58− showDivider: false
59− text: i18n.tr("Improve system performance by sending us crashes and error reports.") + "<br><br><a href='#'>" +
60− i18n.tr("Privacy policy") + "</a>"
61− checked: diagnostics.reportCrashes
62− visible: !webview.visible
63− onLinkActivated: {
64− webview.url = "http://www.ubuntu.com/legal/terms-and-policies/privacy-policy";
65− webview.visible = true;
66− }
67− }
68−
69− WebView {
70− id: webview
71− objectName: "webview"
72− anchors.left: parent.left
73− anchors.right: parent.right
74− anchors.leftMargin: -leftMargin
75− anchors.rightMargin: -rightMargin
76− height: parent.height
77− visible: false
78− }
79− }
80−
81− Component {
82− id: forwardButton
83− LocalComponents.StackButton {
84− text: i18n.tr("Next")
85− onClicked: {
86− diagnostics.setReportCrashes(reportCheck.checked);
87− pageStack.next();
88− }
89− }
90− }
91−}
qml/Wizard/Pages/76-app-update.qmlnew file+246
@@ -0,0 +1,246 @@
1+/*
2+ * Copyright (C) 2018 The UBports project
3+ *
4+ * Written by: Dalton Durst <dalton@ubports.com>
5+ * Marius Gripsgard <marius@ubports.com>
6+ *
7+ * This program is free software: you can redistribute it and/or modify it
8+ * under the terms of the GNU General Public License version 3, as published
9+ * by the Free Software Foundation.
10+ *
11+ * This program is distributed in the hope that it will be useful, but
12+ * WITHOUT ANY WARRANTY; without even the implied warranties of
13+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
14+ * PURPOSE. See the GNU General Public License for more details.
15+ *
16+ * You should have received a copy of the GNU General Public License along
17+ * with this program. If not, see <http://www.gnu.org/licenses/>.
18+ */
19+
20+import QMenuModel 0.1
21+import QtQuick 2.4
22+import QtQuick.Layouts 1.1
23+import Ubuntu.Components 1.3
24+import Ubuntu.Components.ListItems 1.3 as ListItem
25+import Ubuntu.Components.Popups 1.3
26+import Ubuntu.SystemSettings.Update 1.0
27+import Ubuntu.Connectivity 1.0
28+import Wizard 0.1
29+import ".." as LocalComponents
30+
31+LocalComponents.Page {
32+ id: appUpdatePage
33+ objectName: "appUpdatePage"
34+
35+ title: i18n.tr("Update Apps")
36+ forwardButtonSourceComponent: forwardButton
37+
38+ property bool batchMode: false
39+ property bool online: NetworkingStatus.online
40+ property bool authenticated: UpdateManager.authenticated
41+
42+ onlyOnUpdate: true
43+
44+ property int updatesCount: {
45+ var count = 0;
46+ if (authenticated) {
47+ count += clickRepeater.count;
48+ }
49+ return count;
50+ }
51+
52+ function check(force) {
53+ UpdateManager.check(UpdateManager.CheckClickIgnoreVersion);
54+ }
55+
56+ DownloadHandler {
57+ id: downloadHandler
58+ updateModel: UpdateManager.model
59+ }
60+
61+ Flickable {
62+ id: scrollWidget
63+ anchors {
64+ fill: content
65+ leftMargin: parent.leftMargin
66+ rightMargin: parent.rightMargin
67+ }
68+ clip: true
69+ contentHeight: scrollWidgetContent.height
70+ boundsBehavior: (contentHeight > scrollWidgetContent.height) ?
71+ Flickable.DragAndOvershootBounds :
72+ Flickable.StopAtBounds
73+ flickableDirection: Flickable.VerticalFlick
74+
75+ Column {
76+ id: scrollWidgetContent
77+ anchors {
78+ left: parent.left
79+ right: parent.right
80+ }
81+
82+ GlobalUpdateControls {
83+ id: g
84+ objectName: "global"
85+ anchors { left: parent.left; right: parent.right }
86+
87+ height: hidden ? 0 : units.gu(8)
88+ clip: true
89+ status: UpdateManager.status
90+ batchMode: appUpdatePage.batchMode
91+ updatesCount: appUpdatePage.updatesCount
92+ online: appUpdatePage.online
93+ onStop: UpdateManager.cancel()
94+
95+ onRequestInstall: {
96+ install();
97+ }
98+ onInstall: {
99+ appUpdatePage.batchMode = true
100+ postClickBatchHandler.target = appUpdatePage;
101+ }
102+ }
103+
104+ Rectangle {
105+ id: overlay
106+ objectName: "overlay"
107+ anchors {
108+ left: parent.left
109+ leftMargin: units.gu(2)
110+ right: parent.right
111+ rightMargin: units.gu(2)
112+ }
113+ visible: placeholder.text
114+ color: theme.palette.normal.background
115+ height: units.gu(10)
116+
117+ Label {
118+ id: placeholder
119+ objectName: "overlayText"
120+ anchors.fill: parent
121+ verticalAlignment: Text.AlignVCenter
122+ horizontalAlignment: Text.AlignHCenter
123+ wrapMode: Text.WordWrap
124+ text: {
125+ var s = UpdateManager.status;
126+ if (!appUpdatePage.online) {
127+ return i18n.tr("This device is not connected to the internet.") + " " +
128+ i18n.tr("Use the OpenStore app to check for updates once connected.");
129+ } else if (s === UpdateManager.StatusIdle && updatesCount === 0) {
130+ return i18n.tr("Software is up to date");
131+ } else if (s === UpdateManager.StatusServerError ||
132+ s === UpdateManager.StatusNetworkError) {
133+ return i18n.tr("The update server is not responding.") + " " +
134+ i18n.tr("Use the OpenStore app to check for updates once connected.");
135+ }
136+ return "";
137+ }
138+ }
139+ }
140+
141+ Column {
142+ id: clickUpdatesCol
143+ objectName: "clickUpdates"
144+ anchors { left: parent.left; right: parent.right }
145+ visible: {
146+ var s = UpdateManager.status;
147+ var haveUpdates = clickRepeater.count > 0;
148+ switch (s) {
149+ case UpdateManager.StatusCheckingImageUpdates:
150+ case UpdateManager.StatusIdle:
151+ return haveUpdates && online && authenticated;
152+ }
153+ return false;
154+ }
155+
156+ Repeater {
157+ id: clickRepeater
158+ model: UpdateManager.clickUpdates
159+
160+ delegate: ClickUpdateDelegate {
161+ objectName: "clickUpdatesDelegate" + index
162+ width: clickUpdatesCol.width
163+ updateState: model.updateState
164+ progress: model.progress
165+ version: remoteVersion
166+ size: model.size
167+ name: title
168+ iconUrl: model.iconUrl
169+ kind: model.kind
170+ error: model.error
171+ signedUrl: signedDownloadUrl
172+
173+ onInstall: downloadHandler.createDownload(model);
174+ onPause: downloadHandler.pauseDownload(model)
175+ onResume: downloadHandler.resumeDownload(model)
176+ onRetry: {
177+ /* This creates a new signed URL with which we can
178+ retry the download. See onSignedUrlChanged. */
179+ UpdateManager.retry(model.identifier,
180+ model.revision);
181+ }
182+
183+ onSignedUrlChanged: {
184+ // If we have a signedUrl, user intend to retry.
185+ if (signedUrl) {
186+ downloadHandler.retryDownload(model);
187+ }
188+ }
189+
190+ Connections {
191+ target: g
192+ onInstall: install()
193+ }
194+
195+ /* If we a downloadId, we expect UDM to restore it
196+ after some time. Workaround for lp:1603770. */
197+ Timer {
198+ id: downloadTimeout
199+ interval: 30000
200+ running: true
201+ onTriggered: {
202+ var s = updateState;
203+ if (model.downloadId
204+ || s === Update.StateQueuedForDownload
205+ || s === Update.StateDownloading) {
206+ downloadHandler.assertDownloadExist(model);
207+ }
208+ }
209+ }
210+ }
211+ }
212+ }
213+ } // Column inside flickable
214+ } // Flickable
215+
216+ Connections {
217+ id: postClickBatchHandler
218+ ignoreUnknownSignals: true
219+ target: null
220+ onUpdatesCountChanged: {
221+ if (target.updatesCount === 0) {
222+ appUpdatePage.batchMode = false;
223+ target = null;
224+ }
225+ }
226+ }
227+
228+ Component.onCompleted: check()
229+
230+ Component {
231+ id: forwardButton
232+ LocalComponents.StackButton {
233+ text: {
234+ var s = UpdateManager.status;
235+ if (s === UpdateManager.StatusIdle && updatesCount === 0) {
236+ return i18n.tr("Next");
237+ } else if (s === UpdateManager.StatusCheckingClickUpdates) {
238+ return i18n.tr("Please wait...")
239+ } else {
240+ return i18n.tr("Skip");
241+ }
242+ }
243+ onClicked: pageStack.next()
244+ }
245+ }
246+}
qml/Wizard/Pages/78-firmware-update.qml.disablednew file+246
@@ -0,0 +1,246 @@
1+/*
2+ * Copyright (C) 2018 The UBports project
3+ *
4+ * Written by: Marius Gripsgard <marius@ubports.com>
5+ *
6+ * This program is free software; you can redistribute it and/or modify
7+ * it under the terms of the GNU General Public License as published by
8+ * the Free Software Foundation; version 3.
9+ *
10+ * This program is distributed in the hope that it will be useful,
11+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+ * GNU General Public License for more details.
14+ *
15+ * You should have received a copy of the GNU General Public License
16+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17+ */
18+
19+import QtQuick 2.4
20+import QtQuick.Layouts 1.1
21+import Ubuntu.Components 1.3
22+import Ubuntu.SystemSettings.Update 1.0
23+import Ubuntu.Connectivity 1.0
24+import Wizard 0.1
25+import ".." as LocalComponents
26+
27+LocalComponents.Page {
28+ id: firmwareUpdatePage
29+ objectName: "firmwareUpdatePage"
30+
31+ title: i18n.tr("Firmware Update")
32+ forwardButtonSourceComponent: forwardButton
33+
34+ skip: !SystemImage.supportsFirmwareUpdate()
35+
36+ property bool online: NetworkingStatus.online
37+ property bool hasUpdate: false
38+ property bool isUpdating: false
39+ property bool isChecking: true
40+ property var partitions: ""
41+
42+ function check() {
43+ if (!SystemImage.supportsFirmwareUpdate()) {
44+ return;
45+ }
46+ firmwareUpdatePage.isChecking = true;
47+ SystemImage.checkForFirmwareUpdate();
48+ }
49+
50+ function flash() {
51+ if (!SystemImage.supportsFirmwareUpdate()) {
52+ return pageStack.next();
53+ }
54+ firmwareUpdatePage.isUpdating = true;
55+ SystemImage.updateFirmware();
56+ }
57+
58+ Connections {
59+ target: SystemImage
60+ onCheckForFirmwareUpdateDone: {
61+ var updateobj = JSON.parse(updateObj);
62+ if (Array.isArray(updateobj) && updateobj.length > 0) {
63+ for (var u in updateobj) {
64+ console.log(u);
65+ if (firmwareUpdatePage.partitions === "") {
66+ firmwareUpdatePage.partitions += updateobj[u].file;
67+ } else {
68+ firmwareUpdatePage.partitions += ", " + updateobj[u].file;
69+ }
70+ }
71+ firmwareUpdatePage.hasUpdate = true;
72+ }
73+ console.log(updateobj);
74+ firmwareUpdatePage.isChecking = false;
75+ }
76+ onUpdateFirmwareDone: {
77+ var updateobj = JSON.parse(updateObj);
78+ if (Array.isArray(updateobj) && updateobj.length === 0) {
79+ // This means success!
80+ firmwareUpdatePage.hasUpdate = false;
81+ firmwareUpdatePage.partitions = "";
82+ System.skipUntilFinishedPage();
83+ SystemImage.reboot();
84+ return;
85+ }
86+ console.log(updateobj);
87+ firmwareUpdatePage.isUpdating = false;
88+ }
89+ }
90+
91+ Column {
92+ id: column
93+ anchors {
94+ fill: content
95+ leftMargin: firmwareUpdatePage.leftMargin
96+ rightMargin: firmwareUpdatePage.rightMargin
97+ topMargin: firmwareUpdatePage.customMargin
98+ }
99+ spacing: units.gu(3)
100+ opacity: spinner.visible ? 0.5 : 1
101+ Behavior on opacity {
102+ UbuntuNumberAnimation {}
103+ }
104+
105+ Label {
106+ visible: !firmwareUpdatePage.isChecking
107+ anchors.horizontalCenter: parent.horizontalCenter
108+ font.weight: Font.Light
109+ wrapMode: Text.Wrap
110+ textSize: Label.Medium
111+ text: firmwareUpdatePage.hasUpdate ? i18n.tr("There is a firmware update available!")
112+ : online ? i18n.tr("Firmware is up to date!")
113+ : i18n.tr("Please connect to the Internet to check for updates.")
114+
115+ }
116+
117+ GridLayout {
118+ rows: 3
119+ columns: 2
120+ rowSpacing: units.gu(1)
121+ columnSpacing: units.gu(2)
122+ anchors.horizontalCenter: parent.horizontalCenter
123+ visible: hasUpdate
124+
125+ Icon {
126+ Layout.rowSpan: 3
127+ Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
128+ width: units.gu(5)
129+ height: width
130+ name: "security-alert"
131+ }
132+
133+ Label {
134+ font.weight: Font.Normal
135+ textSize: Label.Medium
136+ text: i18n.tr("Firmware Update")
137+ }
138+
139+ Label {
140+ font.weight: Font.Light
141+ wrapMode: Text.WordWrap
142+ fontSize: "small"
143+ text: firmwareUpdatePage.partitions
144+ }
145+
146+ Label {
147+ font.weight: Font.Light
148+ fontSize: "small"
149+ text: i18n.tr("The device will automatically restart after installing is done.")
150+ }
151+ }
152+
153+ Rectangle {
154+ anchors.left: parent.left
155+ anchors.leftMargin: 3
156+ anchors.horizontalCenter: parent.horizontalCenter
157+ color: theme.palette.normal.foreground
158+ radius: units.dp(4)
159+ width: buttonLabel.paintedWidth + units.gu(3)
160+ height: buttonLabel.paintedHeight + units.gu(1.8)
161+ visible: hasUpdate
162+
163+ Label {
164+ id: buttonLabel
165+ text: i18n.tr("Install and restart now")
166+ font.weight: Font.Light
167+ anchors.horizontalCenter: parent.horizontalCenter
168+ anchors.centerIn: parent
169+ }
170+
171+ AbstractButton {
172+ id: button
173+ objectName: "installButton"
174+ anchors.fill: parent
175+ anchors.horizontalCenter: parent.horizontalCenter
176+ onClicked: {
177+ firmwareUpdatePage.flash()
178+ }
179+ }
180+
181+ transformOrigin: Item.Top
182+ scale: button.pressed ? 0.98 : 1.0
183+ Behavior on scale {
184+ ScaleAnimator {
185+ duration: UbuntuAnimation.SnapDuration
186+ easing.type: Easing.Linear
187+ }
188+ }
189+ }
190+ }
191+
192+ Column {
193+ id: spinner
194+ anchors.centerIn: firmwareUpdatePage
195+ visible: firmwareUpdatePage.isChecking || firmwareUpdatePage.isUpdating
196+ spacing: units.gu(1)
197+
198+ ActivityIndicator {
199+ anchors.horizontalCenter: parent.horizontalCenter
200+ running: parent.visible
201+ }
202+
203+ Label {
204+ wrapMode: Text.Wrap
205+ width: firmwareUpdatePage.width - units.gu(3)
206+ fontSize: "small"
207+ text: i18n.tr("Downloading and Flashing firmware updates, this could take a few minutes...")
208+ visible: firmwareUpdatePage.isUpdating
209+ }
210+
211+ Label {
212+ wrapMode: Text.Wrap
213+ fontSize: "small"
214+ text: i18n.tr("Checking for firmware update")
215+ visible: firmwareUpdatePage.isChecking
216+ }
217+
218+ Component.onCompleted: {
219+ if (online) {
220+ firmwareUpdatePage.check();
221+ }
222+ else {
223+ firmwareUpdatePage.isChecking = false;
224+ }
225+ }
226+ }
227+
228+ Connections {
229+ target: NetworkingStatus
230+ onOnlineChanged: {
231+ if (online) {
232+ firmwareUpdatePage.check();
233+ } else {
234+ firmwareUpdatePage.isChecking = false;
235+ }
236+ }
237+ }
238+
239+ Component {
240+ id: forwardButton
241+ LocalComponents.StackButton {
242+ text: (!firmwareUpdatePage.hasUpdate && !spinner.visible) ? i18n.tr("Next") : i18n.tr("Skip");
243+ onClicked: pageStack.next();
244+ }
245+ }
246+}
qml/Wizard/Pages/77-system-update.qml → qml/Wizard/Pages/79-system-update.qmlrenamed

The content is the same.

qml/Wizard/Pages/80-finished.qml+4−2
@@ -1,4 +1,5 @@
11/*
2+ * Copyright (C) 2018 The UBports project
23 * Copyright (C) 2013-2016 Canonical, Ltd.
34 *
45 * This program is free software; you can redistribute it and/or modify
@@ -16,6 +17,7 @@
1617
1718import QtQuick 2.4
1819import Ubuntu.Components 1.3
20+import Wizard 0.1
1921import ".." as LocalComponents
2022
2123LocalComponents.Page {
@@ -86,7 +88,7 @@ LocalComponents.Page {
8688 fontSize: "x-large"
8789 font.weight: Font.Light
8890 lineHeight: 1.2
89− text: i18n.tr("Welcome to Ubuntu")
91+ text: (System.isUpdate) ? i18n.tr("Welcome Back") : i18n.tr("Welcome to Ubuntu")
9092 color: whiteColor
9193 }
9294
@@ -121,7 +123,7 @@ LocalComponents.Page {
121123 Label {
122124 id: buttonLabel
123125 color: whiteColor
124− text: i18n.tr("Get Started")
126+ text: (System.isUpdate) ? i18n.tr("Continue") : i18n.tr("Get Started")
125127 fontSize: "medium"
126128 anchors.centerIn: parent
127129 }
qml/Wizard/Pages/ClickUpdateDelegate.qmlnew file+26
@@ -0,0 +1,26 @@
1+/*
2+ * This file is part of system-settings
3+ *
4+ * Copyright (C) 2016 Canonical Ltd.
5+ *
6+ * This program is free software: you can redistribute it and/or modify it
7+ * under the terms of the GNU General Public License version 3, as published
8+ * by the Free Software Foundation.
9+ *
10+ * This program is distributed in the hope that it will be useful, but
11+ * WITHOUT ANY WARRANTY; without even the implied warranties of
12+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
13+ * PURPOSE. See the GNU General Public License for more details.
14+ *
15+ * You should have received a copy of the GNU General Public License along
16+ * with this program. If not, see <http://www.gnu.org/licenses/>.
17+ */
18+
19+import QtQuick 2.4
20+import Ubuntu.SystemSettings.Update 1.0
21+
22+UpdateDelegate {
23+ id: update
24+
25+ property string signedUrl
26+}
qml/Wizard/Pages/DownloadHandler.qmlnew file+204
@@ -0,0 +1,204 @@
1+/*
2+ * This file is part of system-settings
3+ *
4+ * Copyright (C) 2016 Canonical Ltd.
5+ *
6+ * This program is free software: you can redistribute it and/or modify it
7+ * under the terms of the GNU General Public License version 3, as published
8+ * by the Free Software Foundation.
9+ *
10+ * This program is distributed in the hope that it will be useful, but
11+ * WITHOUT ANY WARRANTY; without even the implied warranties of
12+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
13+ * PURPOSE. See the GNU General Public License for more details.
14+ *
15+ * You should have received a copy of the GNU General Public License along
16+ * with this program. If not, see <http://www.gnu.org/licenses/>.
17+ *
18+ */
19+import QtQuick 2.4
20+import Ubuntu.DownloadManager 1.2
21+
22+Item {
23+ id: downloadHandler
24+ property var updateModel
25+ property alias downloads: downloadManager.downloads
26+ property var udm: DownloadManager {
27+ id: downloadManager
28+ onDownloadFinished: {
29+ updateModel.setInstalled(download.metadata.custom.identifier,
30+ download.metadata.custom.revision);
31+ }
32+ onDownloadPaused: {
33+ updateModel.pauseUpdate(download.metadata.custom.identifier,
34+ download.metadata.custom.revision)
35+ }
36+ onDownloadResumed: {
37+ updateModel.resumeUpdate(download.metadata.custom.identifier,
38+ download.metadata.custom.revision)
39+ }
40+ onDownloadCanceled: {
41+ updateModel.cancelUpdate(download.metadata.custom.identifier,
42+ download.metadata.custom.revision)
43+ }
44+ onErrorFound: {
45+ updateModel.setError(download.metadata.custom.identifier,
46+ download.metadata.custom.revision,
47+ download.errorMessage)
48+ }
49+ onDownloadsChanged: restoreDownloads()
50+ Component.onCompleted: restoreDownloads()
51+ }
52+
53+ function downloadAll() {
54+
55+ }
56+
57+ function restoreDownloads() {
58+ var dl;
59+ for (var i = 0; i<downloads.length; i++) {
60+ dl = downloads[i];
61+ if (!dl._bound) {
62+ /* We only bind those signals here, that the UDM does not
63+ receive, i.e. processing and progressChanged. */
64+ dl.progressChanged.connect(onDownloadProgress.bind(dl));
65+ dl.processing.connect(onDownloadProcessing.bind(dl));
66+ dl._bound = true;
67+ }
68+ }
69+ }
70+
71+ function resumeDownload(click) {
72+ var download = getDownloadFor(click);
73+ if (download && !download.downloading && !download.isCompleted) {
74+ download.resume();
75+ }
76+ }
77+
78+ function pauseDownload(click) {
79+ var download = getDownloadFor(click);
80+ if (download && download.downloading) {
81+ download.pause();
82+ }
83+ }
84+
85+ // Return download for a click update.
86+ function getDownloadFor(click) {
87+ var cust;
88+ var dl;
89+
90+ for (var i = 0; i<downloads.length; i++) {
91+ dl = downloads[i];
92+ if (dl.errorMessage || dl.isCompleted) {
93+ // Ignore failed and completed downloads.
94+ continue;
95+ }
96+
97+ cust = downloads[i].metadata.custom;
98+ if (cust.identifier === click.identifier && cust.revision === click.revision) {
99+ return downloads[i];
100+ }
101+ }
102+ return null;
103+ }
104+
105+ function hasExistingDownload(click) {
106+ var existingDownload = getDownloadFor(click);
107+ return (existingDownload !== null &&
108+ !existingDownload.errorMessage &&
109+ !existingDownload.isCompleted);
110+ }
111+
112+ function retryDownload(click) {
113+ return createDownload(click, true);
114+ }
115+
116+ function createDownload(click, useSignedUrl) {
117+ if (hasExistingDownload(click)) {
118+ return null;
119+ }
120+ var downloadUrl = click.downloadUrl;
121+ var metadata = {
122+ "command": click.command,
123+ "title": click.title,
124+ "showInIndicator": false
125+ };
126+ var metadataObj = mdt.createObject(root, metadata);
127+ metadataObj.custom = {
128+ "identifier": click.identifier,
129+ "package-name": click.identifier,
130+ "revision": click.revision,
131+ };
132+
133+ var hdrs = {}
134+ if (useSignedUrl) {
135+ if (!click.signedDownloadUrl) {
136+ console.warn('The signed download URL was empty.');
137+ }
138+ downloadUrl = click.signedDownloadUrl;
139+ } else {
140+ // If we're using an unsigned URL, we need to provide this header.
141+ hdrs["X-Click-Token"] = click.token;
142+ }
143+
144+ var singleDownloadObj = sdl.createObject(root, {
145+ "autoStart": true,
146+ "hash": click.downloadHash,
147+ "algorithm": "sha512",
148+ "headers": hdrs,
149+ "metadata": metadataObj,
150+ "revision": click.revision,
151+ "identifier": click.identifier
152+ });
153+ singleDownloadObj.download(downloadUrl);
154+ return singleDownloadObj;
155+ }
156+
157+ function onDownloadProgress(progress) {
158+ updateModel.setProgress(this.metadata.custom.identifier,
159+ this.metadata.custom.revision,
160+ this.progress);
161+ }
162+
163+ function onDownloadProcessing() {
164+ updateModel.processUpdate(this.metadata.custom.identifier,
165+ this.metadata.custom.revision);
166+ }
167+
168+ /* If a update's model has a downloadId, check if UDM knows it. If not,
169+ treat this as a failure. Workaround for lp:1603770. */
170+ function assertDownloadExist(click) {
171+ if (!getDownloadFor(click)) {
172+ updateModel.setError(
173+ click.identifier, click.revision,
174+ i18n.tr("Installation failed")
175+ );
176+ }
177+ }
178+
179+ Component {
180+ id: sdl
181+ SingleDownload {
182+ id: download
183+ objectName: "singleDownload"
184+ property bool _bound: true
185+
186+ onDownloadIdChanged: {
187+ updateModel.queueUpdate(metadata.custom.identifier,
188+ metadata.custom.revision,
189+ downloadId);
190+ }
191+ onStarted: {
192+ updateModel.startUpdate(metadata.custom.identifier,
193+ metadata.custom.revision);
194+ }
195+ onProgressChanged: onDownloadProgress.call(download)
196+ onProcessing: onDownloadProcessing.call(download)
197+ }
198+ }
199+
200+ Component {
201+ id: mdt
202+ Metadata {}
203+ }
204+}
qml/Wizard/Pages/GlobalUpdateControls.qmlnew file+138
@@ -0,0 +1,138 @@
1+/*
2+ * This file is part of system-settings
3+ *
4+ * Copyright (C) 2016 Canonical Ltd.
5+ *
6+ * This program is free software: you can redistribute it and/or modify it
7+ * under the terms of the GNU General Public License version 3, as published
8+ * by the Free Software Foundation.
9+ *
10+ * This program is distributed in the hope that it will be useful, but
11+ * WITHOUT ANY WARRANTY; without even the implied warranties of
12+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
13+ * PURPOSE. See the GNU General Public License for more details.
14+ *
15+ * You should have received a copy of the GNU General Public License along
16+ * with this program. If not, see <http://www.gnu.org/licenses/>.
17+ */
18+
19+import QtQuick 2.4
20+import QtQuick.Layouts 1.1
21+import Ubuntu.Components 1.3
22+import Ubuntu.Components.ListItems 1.3 as ListItems
23+import Ubuntu.SystemSettings.Update 1.0
24+
25+Item {
26+ id: g
27+
28+ property bool batchMode
29+ property int status // A UpdateManager::Status
30+ property bool requireRestart: false
31+ property int updatesCount: 0
32+ property bool online: false
33+
34+ property bool hidden: {
35+ switch (status) {
36+ case UpdateManager.StatusNetworkError:
37+ case UpdateManager.StatusServerError:
38+ return true;
39+ }
40+ return !online ||
41+ (updatesCount <= 1 && status === UpdateManager.StatusIdle) ||
42+ batchMode
43+ }
44+
45+ signal stop()
46+ signal requestInstall()
47+ signal install()
48+
49+ Behavior on height {
50+ UbuntuNumberAnimation {}
51+ }
52+
53+ RowLayout {
54+ id: checking
55+ spacing: units.gu(2)
56+ anchors {
57+ fill: parent
58+ margins: units.gu(2)
59+ }
60+
61+ Behavior on opacity {
62+ UbuntuNumberAnimation {}
63+ }
64+
65+ opacity: visible ? 1 : 0
66+ visible: {
67+ switch (g.status) {
68+ case UpdateManager.StatusCheckingClickUpdates:
69+ case UpdateManager.StatusCheckingImageUpdates:
70+ case UpdateManager.StatusCheckingAllUpdates:
71+ return true;
72+ }
73+ return false;
74+ }
75+
76+ ActivityIndicator {
77+ running: parent.visible
78+ }
79+
80+ Label {
81+ objectName: "checkLabel"
82+ Layout.fillWidth: true
83+ elide: Text.ElideRight
84+ text: i18n.tr("Checking for updates…")
85+ }
86+ }
87+
88+ RowLayout {
89+ id: install
90+ anchors {
91+ fill: parent
92+ margins: units.gu(2)
93+ }
94+ spacing: units.gu(2)
95+
96+ Behavior on opacity {
97+ UbuntuNumberAnimation {}
98+ }
99+
100+ opacity: visible ? 1 : 0
101+ visible: {
102+ var canInstall = g.status === UpdateManager.StatusIdle;
103+ return canInstall && updatesCount > 1;
104+ }
105+
106+ Label {
107+ objectName: "updatesGlobalInfoLabel"
108+ // // TRANSLATORS: %1 is number of software updates available.
109+ text: i18n.tr("%1 update available",
110+ "%1 updates available",
111+ updatesCount).arg(updatesCount)
112+ Layout.fillWidth: true
113+ }
114+
115+ Button {
116+ objectName: "updatesGlobalInstallButton"
117+ text: {
118+ if (g.requireRestart === true) {
119+ return i18n.tr("Update all…");
120+ } else {
121+ return i18n.tr("Update all");
122+ }
123+ }
124+ onClicked: g.requestInstall()
125+ color: theme.palette.normal.positive
126+ strokeColor: "transparent"
127+ }
128+ }
129+
130+ ListItems.ThinDivider {
131+ visible: !g.hidden
132+ anchors {
133+ left: parent.left
134+ right: parent.right
135+ bottom: parent.bottom
136+ }
137+ }
138+}
qml/Wizard/Pages/UpdateDelegate.qmlnew file+389
@@ -0,0 +1,389 @@
1+/*
2+ * This file is part of system-settings
3+ *
4+ * Copyright (C) 2016 Canonical Ltd.
5+ *
6+ * Contact: Jonas G. Drange <jonas.drange@canonical.com>
7+ *
8+ * This program is free software: you can redistribute it and/or modify it
9+ * under the terms of the GNU General Public License version 3, as published
10+ * by the Free Software Foundation.
11+ *
12+ * This program is distributed in the hope that it will be useful, but
13+ * WITHOUT ANY WARRANTY; without even the implied warranties of
14+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
15+ * PURPOSE. See the GNU General Public License for more details.
16+ *
17+ * You should have received a copy of the GNU General Public License along
18+ * with this program. If not, see <http://www.gnu.org/licenses/>.
19+ *
20+ */
21+
22+import QtQuick 2.4
23+import QtQuick.Layouts 1.1
24+import Ubuntu.Components 1.3
25+import Ubuntu.Components.ListItems 1.3 as ListItems
26+import Ubuntu.Components.Themes 1.3
27+import Ubuntu.SystemSettings.Update 1.0
28+
29+ListItem {
30+ id: update
31+
32+ property int updateState // This is an Update::State
33+ property int kind // This is an Update::Kind
34+ property real size
35+ property string version
36+ property string downloadId
37+ property date updatedAt
38+ property bool launchable: false
39+
40+ property alias name: nameLabel.text
41+ property alias error: errorElementDetail.text
42+ property alias iconUrl: icon.source
43+ property alias progress: progressBar.value
44+
45+ signal retry()
46+ signal download()
47+ signal pause()
48+ signal resume()
49+ signal install()
50+ signal launch()
51+
52+ height: layout.height + (divider.visible ? divider.height : 0)
53+ Behavior on height {
54+ animation: UbuntuNumberAnimation {}
55+ }
56+
57+ SlotsLayout {
58+ id: layout
59+ mainSlot: ColumnLayout {
60+ spacing: units.gu(1)
61+ // Width the parent, minus the icon and some padding
62+ width: parent.width - (icon.width + (layout.padding.top * 3))
63+
64+ RowLayout {
65+ spacing: units.gu(2)
66+
67+ Label {
68+ id: nameLabel
69+ verticalAlignment: Text.AlignVCenter
70+ elide: Text.ElideMiddle
71+ Layout.fillWidth: true
72+ Layout.fillHeight: true
73+ }
74+
75+ Button {
76+ id: button
77+ objectName: "updateButton"
78+ Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
79+ visible: {
80+ switch (updateState) {
81+ case Update.StateInstalled:
82+ return launchable;
83+ default:
84+ return true;
85+ }
86+ }
87+ enabled: {
88+ switch(updateState) {
89+ case Update.StateAvailable:
90+ case Update.StateDownloading:
91+ case Update.StateDownloadingAutomatically:
92+ case Update.StateDownloadPaused:
93+ case Update.StateAutomaticDownloadPaused:
94+ case Update.StateInstallPaused:
95+ case Update.StateDownloaded:
96+ case Update.StateFailed:
97+ return true;
98+
99+ // Enabled if installed and a click app (can launch).
100+ case Update.StateInstalled:
101+ return kind === Update.KindClick;
102+
103+ case Update.StateInstalling:
104+ case Update.StateInstallingAutomatically:
105+ case Update.StateUnavailable:
106+ case Update.StateInstallFinished:
107+ case Update.StateQueuedForDownload:
108+ case Update.StateUnknown:
109+ default:
110+ return false;
111+ }
112+ }
113+ text: {
114+ switch(updateState) {
115+ case Update.StateUnknown:
116+ case Update.StateUnavailable:
117+ case Update.StateFailed:
118+ return i18n.tr("Retry");
119+
120+ case Update.StateAvailable:
121+ case Update.StateQueuedForDownload:
122+ if (update.kind === Update.KindClick) {
123+ return i18n.tr("Update");
124+ } else {
125+ return i18n.tr("Download");
126+ }
127+
128+ case Update.StateDownloadPaused:
129+ case Update.StateAutomaticDownloadPaused:
130+ case Update.StateInstallPaused:
131+ return i18n.tr("Resume");
132+
133+ case Update.StateDownloading:
134+ case Update.StateDownloadingAutomatically:
135+ case Update.StateInstalling:
136+ case Update.StateInstallingAutomatically:
137+ case Update.StateInstallFinished:
138+ return i18n.tr("Pause");
139+
140+ case Update.StateDownloaded:
141+ if (kind === Update.KindImage) {
142+ return i18n.tr("Install…");
143+ } else {
144+ return i18n.tr("Install");
145+ }
146+
147+ case Update.StateInstalled:
148+ return i18n.tr("Open");
149+
150+ default:
151+ console.error("Unknown update state", updateState);
152+ }
153+ }
154+
155+ onClicked: {
156+ switch (updateState) {
157+
158+ // Retries.
159+ case Update.StateUnknown:
160+ case Update.StateUnavailable:
161+ case Update.StateFailed:
162+ update.retry();
163+ break;
164+
165+ case Update.StateDownloadPaused:
166+ case Update.StateAutomaticDownloadPaused:
167+ case Update.StateInstallPaused:
168+ update.resume();
169+ break;
170+
171+ case Update.StateAvailable:
172+ if (kind === Update.KindClick) {
173+ update.install();
174+ } else {
175+ update.download();
176+ }
177+ break;
178+
179+ case Update.StateDownloaded:
180+ update.install();
181+ break;
182+
183+ case Update.StateDownloading:
184+ case Update.StateDownloadingAutomatically:
185+ case Update.StateInstalling:
186+ case Update.StateInstallingAutomatically:
187+ update.pause();
188+ break;
189+
190+ case Update.StateInstalled:
191+ update.launch();
192+ break;
193+ }
194+ }
195+ } // Button
196+ } // Name/button RowLayout
197+
198+ RowLayout {
199+ spacing: units.gu(2)
200+
201+ Label {
202+ id: downloadLabel
203+ objectName: "updateDownloadLabel"
204+
205+ Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
206+
207+ visible: text !== ""
208+
209+ fontSize: "small"
210+ text: {
211+ switch (updateState) {
212+
213+ case Update.StateInstalling:
214+ case Update.StateInstallingAutomatically:
215+ case Update.StateInstallPaused:
216+ return i18n.tr("Installing");
217+
218+ case Update.StateInstallPaused:
219+ case Update.StateDownloadPaused:
220+ return i18n.tr("Paused");
221+
222+ case Update.StateQueuedForDownload:
223+ return i18n.tr("Waiting to download");
224+
225+ case Update.StateDownloading:
226+ return i18n.tr("Downloading");
227+
228+ default:
229+ return "";
230+ }
231+ }
232+ }
233+
234+ Label {
235+ id: statusLabel
236+ objectName: "updateStatusLabel"
237+
238+ visible: text !== ""
239+ Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
240+ Layout.fillWidth: true
241+
242+ horizontalAlignment: Text.AlignRight
243+ fontSize: "small"
244+
245+ text: {
246+
247+ function humanFileSize(bytes, si) {
248+ var thresh = si ? 1000 : 1024;
249+ if(Math.abs(bytes) < thresh) {
250+ return bytes + ' B';
251+ }
252+ var units = si
253+ ? ['kB','MB','GB','TB','PB','EB','ZB','YB']
254+ : ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];
255+ var u = -1;
256+ do {
257+ bytes /= thresh;
258+ ++u;
259+ } while(Math.abs(bytes) >= thresh && u < units.length - 1);
260+ return bytes.toFixed(1)+' '+units[u];
261+ }
262+
263+ switch (updateState) {
264+ case Update.StateAvailable:
265+ return humanFileSize(size, 1000);
266+
267+ case Update.StateDownloading:
268+ case Update.StateDownloadingAutomatically:
269+ case Update.StateDownloadPaused:
270+ case Update.StateAutomaticDownloadPaused:
271+ var down = humanFileSize((size / 100) * progress, 1000);
272+ var left = humanFileSize(size, 1000);
273+ if (progress > 100) {
274+ return left;
275+ } else {
276+ /* TRANSLATORS: %1 is the human readable amount
277+ of bytes downloaded, and %2 is the total to be
278+ downloaded. */
279+ return i18n.tr("%1 of %2").arg(down).arg(left);
280+ }
281+
282+ case Update.StateDownloaded:
283+ return i18n.tr("Downloaded");
284+
285+ case Update.StateInstallFinished:
286+ return i18n.tr("Installed");
287+
288+ case Update.StateInstalled:
289+ /* TRANSLATORS: %1 is the date at which this
290+ update was applied. */
291+ return i18n.tr("Updated %1").arg(
292+ updatedAt.toLocaleDateString(Qt.locale(), "d MMMM")
293+ );
294+ default:
295+ return "";
296+ }
297+ }
298+
299+ /* Seems AlignRight causes a rendering issue that can be
300+ fixed by doing an explicit doLayout. */
301+ Component.onCompleted: doLayout()
302+ }
303+ }
304+
305+ Column {
306+ id: error
307+ objectName: "updateError"
308+ spacing: units.gu(1)
309+ height: childrenRect.height
310+ Layout.fillWidth: true
311+ visible: errorElementDetail.text
312+
313+ Label {
314+ id: errorElementTitle
315+ text: i18n.tr("Update failed")
316+ color: UbuntuColors.red
317+ }
318+
319+ Label {
320+ id: errorElementDetail
321+ anchors { left: parent.left; right: parent.right }
322+ fontSize: "small"
323+ wrapMode: Text.WrapAnywhere
324+ }
325+ } // Error column
326+
327+ ProgressBar {
328+ id: progressBar
329+ objectName: "updateProgressbar"
330+
331+ visible: {
332+ switch (updateState) {
333+ case Update.StateQueuedForDownload:
334+ case Update.StateDownloading:
335+ case Update.StateDownloadPaused:
336+ case Update.StateInstalling:
337+ case Update.StateInstallPaused:
338+ return true;
339+
340+ default:
341+ return false;
342+ }
343+ }
344+ Layout.maximumHeight: units.gu(0.5)
345+ Layout.fillWidth: true
346+ indeterminate: update.progress < 0 || update.progress > 100
347+ minimumValue: 0
348+ maximumValue: 100
349+ showProgressPercentage: false
350+
351+ Behavior on value {
352+ animation: UbuntuNumberAnimation {}
353+ }
354+ } // Progress bar
355+ } // Layout for the rest of the stuff
356+
357+ Item {
358+ SlotsLayout.position: SlotsLayout.Leading;
359+ width: units.gu(4)
360+ height: width
361+
362+ Image {
363+ id: icon
364+ visible: kind === Update.KindImage && !fallback.visible
365+ anchors.fill: parent
366+ asynchronous: true
367+ smooth: true
368+ mipmap: true
369+ }
370+
371+ UbuntuShape {
372+ id: shape
373+ visible: kind !== Update.KindImage && !fallback.visible
374+ anchors.fill: parent
375+ source: icon
376+ }
377+
378+ Image {
379+ id: fallback
380+ visible: icon.status === Image.Error
381+ source : Qt.resolvedUrl("/usr/share/icons/suru/apps/scalable/ubuntu-logo-symbolic.svg")
382+ anchors.fill: parent
383+ asynchronous: true
384+ smooth: true
385+ mipmap: true
386+ }
387+ }
388+ }
389+}
qml/Wizard/Pages/here-terms.qmldeleted−126
@@ -1,126 +0,0 @@
1−/*
2− * Copyright (C) 2014-2016 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.4
18−import Ubuntu.Components 1.3
19−import Ubuntu.Web 0.2
20−import ".." as LocalComponents
21−
22−LocalComponents.Page {
23− objectName: "hereTermsPage"
24−
25− title: i18n.tr("Terms & Conditions")
26− customBack: true
27− customTitle: true
28−
29− onBackClicked: {
30− if (webview.visible) {
31− showBrowser(false);
32− } else {
33− pageStack.prev();
34− }
35− }
36−
37− function showBrowser(show) {
38− if (show) {
39− label1.visible = false;
40− label2.visible = false;
41− label3.visible = false;
42− label4.visible = false;
43− webview.visible = true;
44− } else {
45− webview.visible = false;
46− label1.visible = true;
47− label2.visible = true;
48− label3.visible = true;
49− label4.visible = true;
50− }
51− }
52−
53− Column {
54− id: column
55− anchors.fill: content
56− anchors.leftMargin: staticMargin
57− anchors.rightMargin: wideMode ? parent.rightMargin : staticMargin
58− spacing: units.gu(3)
59−
60− Label {
61− id: label1
62− anchors.left: parent.left
63− anchors.right: parent.right
64− wrapMode: Text.Wrap
65− color: textColor
66− fontSize: "small"
67− font.weight: Font.Light
68− lineHeight: 1.2
69− text: i18n.tr("Your device uses positioning technologies provided by HERE.")
70− }
71−
72− Label {
73− id: label2
74− anchors.left: parent.left
75− anchors.right: parent.right
76− wrapMode: Text.Wrap
77− color: textColor
78− fontSize: "small"
79− font.weight: Font.Light
80− lineHeight: 1.2
81− text: i18n.tr("To provide you with positioning services and to improve their quality, HERE collects information about nearby cell towers and Wi-Fi hotspots around your current location whenever your position is being found.")
82− }
83−
84− Label {
85− id: label3
86− anchors.left: parent.left
87− anchors.right: parent.right
88− wrapMode: Text.Wrap
89− color: textColor
90− fontSize: "small"
91− font.weight: Font.Light
92− lineHeight: 1.2
93− text: i18n.tr("The information collected is used to analyze the service and to improve the use of service, but not to identify you personally.")
94− }
95−
96− Label {
97− id: label4
98− anchors.left: parent.left
99− anchors.right: parent.right
100− wrapMode: Text.Wrap
101− color: textColor
102− fontSize: "small"
103− font.weight: Font.Light
104− lineHeight: 1.2
105− linkColor: UbuntuColors.orange
106− text: i18n.tr("By continuing, you agree to the HERE platform %1 and %2.")
107− .arg("<a href=\"http://here.com/terms/service-terms\">" + i18n.tr("Service Terms") + "</a>")
108− .arg("<a href=\"http://here.com/privacy/privacy-policy\">" + i18n.tr("Privacy Policy") + "</a>");
109− onLinkActivated: {
110− showBrowser(true);
111− webview.url = link;
112− }
113− }
114−
115− WebView {
116− id: webview
117− objectName: "webview"
118− anchors.left: parent.left
119− anchors.right: parent.right
120− anchors.leftMargin: -leftMargin
121− anchors.rightMargin: -rightMargin
122− height: parent.height
123− visible: false
124− }
125− }
126−}
qml/Wizard/Pages/passcode-desktop.qml+13−5
@@ -33,6 +33,12 @@ LocalComponents.Page {
3333
3434 readonly property alias password: passwordField.text
3535 readonly property alias password2: password2Field.text
36+ readonly property bool passwordsMatching: password != "" && password == password2
37+
38+ function savePasswordAndGoNext() {
39+ root.password = password;
40+ pageStack.next();
41+ }
3642
3743 Flickable {
3844 id: column
@@ -105,6 +111,11 @@ LocalComponents.Page {
105111 inputMethodHints: Qt.ImhDigitsOnly
106112 validator: RegExpValidator { regExp: /^\d{4}$/ }
107113 maximumLength: 4
114+ onAccepted: {
115+ if (passwordsMatching) {
116+ savePasswordAndGoNext();
117+ }
118+ }
108119 onActiveFocusChanged: {
109120 if (activeFocus) {
110121 column.contentY = y
@@ -140,11 +151,8 @@ LocalComponents.Page {
140151 id: forwardButton
141152 LocalComponents.StackButton {
142153 text: i18n.tr("Next")
143− enabled: password != "" && password == password2
144− onClicked: {
145− root.password = password;
146− pageStack.next();
147− }
154+ enabled: passwordsMatching
155+ onClicked: savePasswordAndGoNext()
148156 }
149157 }
150158}
qml/Wizard/Pages/password-set.qml+11−4
@@ -35,6 +35,11 @@ LocalComponents.Page {
3535 readonly property alias password2: password2Field.text
3636 readonly property bool passwordsMatching: password == password2 && password.trim().length > 7
3737
38+ function savePasswordAndGoNext() {
39+ root.password = password;
40+ pageStack.next();
41+ }
42+
3843 Flickable {
3944 id: column
4045 clip: true
@@ -114,6 +119,11 @@ LocalComponents.Page {
114119 id: password2Field
115120 objectName: "password2Field"
116121 echoMode: TextInput.Password
122+ onAccepted: {
123+ if (passwordsMatching) {
124+ savePasswordAndGoNext();
125+ }
126+ }
117127 onActiveFocusChanged: {
118128 if (activeFocus) {
119129 column.contentY = pass2Label.y
@@ -141,10 +151,7 @@ LocalComponents.Page {
141151 LocalComponents.StackButton {
142152 text: i18n.tr("Next")
143153 enabled: passwordsMatching
144− onClicked: {
145− root.password = password;
146− pageStack.next();
147− }
154+ onClicked: savePasswordAndGoNext()
148155 }
149156 }
150157}
qml/Wizard/Wizard.qml+5−2
@@ -1,4 +1,5 @@
11/*
2+ * Copyright (C) 2018 The UBports project
23 * Copyright (C) 2013, 2015 Canonical, Ltd.
34 *
45 * This program is free software; you can redistribute it and/or modify
@@ -20,7 +21,7 @@ import Wizard 0.1
2021import "../Components"
2122
2223Showable {
23− id: root
24+ id: wizard
2425
2526 // This is a bool instead of an alias because Loader classes like to emit
2627 // changed signals for 'active' during startup even if they aren't actually
@@ -29,6 +30,8 @@ Showable {
2930 // expected behavior of no emission on startup.
3031 readonly property bool active: loader.active
3132
33+ property bool isUpdate: System.isUpdate
34+
3235 // The wizard should be run at a later time if, for example, unity8 is
3336 // in greeter mode
3437 property bool deferred: false
@@ -49,7 +52,7 @@ Showable {
4952
5053 Connections {
5154 target: loader.item
52− onQuit: root.hide()
55+ onQuit: wizard.hide()
5356 }
5457 }
5558}
tests/plugins/CMakeLists.txt+1−1
@@ -8,5 +8,5 @@ add_subdirectory(LightDM)
88add_subdirectory(SessionBroadcast)
99add_subdirectory(Ubuntu)
1010add_subdirectory(Unity)
11−#add_subdirectory(Utils) #FIXME broken with qt 5.9
11+add_subdirectory(Utils)
1212add_subdirectory(Wizard)
tests/plugins/Ubuntu/CMakeLists.txt+1−1
@@ -1 +1 @@
1−#add_subdirectory(Gestures) #FIXME broken with qt 5.9
1+add_subdirectory(Gestures)
tests/plugins/Ubuntu/Gestures/GestureTest.cpp+1−1
@@ -107,7 +107,7 @@ void GestureTest::sendTouch(qint64 timestamp, int id, QPointF pos,
107107 QCoreApplication::sendEvent(m_view, &touchEvent);
108108
109109 QQuickWindowPrivate *windowPrivate = QQuickWindowPrivate::get(m_view);
110− windowPrivate->flushDelayedTouchEvent();
110+ windowPrivate->flushFrameSynchronousEvents();
111111}
112112
113113void GestureTest::passTime(qint64 timeSpanMs)
tests/plugins/Ubuntu/Gestures/tst_TouchGate.cpp+1−1
@@ -189,7 +189,7 @@ void tst_TouchGate::holdsEventsUntilGainsOwnership()
189189 if (!ownershipAfterTouchEnd) {
190190 touchRegistry->removeCandidateOwnerForTouch(0, candidateItem);
191191 QQuickWindowPrivate *wp = QQuickWindowPrivate::get(testItem->window());
192− wp->flushDelayedTouchEvent();
192+ wp->flushFrameSynchronousEvents();
193193 // TouchGate should now open its flood gates and let testItem get all
194194 // events from touch 0 produced so far
195195 QCOMPARE(testItem->touchEventsReceived.count(), 2);
tests/plugins/Utils/ModelTest.cpp+1−1
@@ -441,7 +441,7 @@ void ModelTest::data()
441441 QVariant textAlignmentVariant = model->data ( model->index ( 0, 0 ), Qt::TextAlignmentRole );
442442 if ( textAlignmentVariant.isValid() ) {
443443 int alignment = textAlignmentVariant.toInt();
444− QCOMPARE( alignment, ( alignment & ( Qt::AlignHorizontal_Mask | Qt::AlignVertical_Mask ) ) );
444+ QCOMPARE( alignment, (int) ( alignment & ( Qt::AlignHorizontal_Mask | Qt::AlignVertical_Mask ) ));
445445 }
446446
447447 // General Purpose roles that should return a QColor
tests/qmltests/CMakeLists.txt+2−2
@@ -1,5 +1,5 @@
11
2−#add_subdirectory(Components) #FIXME broken with qt 5.9
2+add_subdirectory(Components)
33
44add_unity8_qmltest(. OrientedShell)
55add_unity8_qmltest(. DisabledScreenNotice)
@@ -44,7 +44,7 @@ add_unity8_qmltest(Dash/Previews PreviewIconActions)
4444add_unity8_qmltest(Dash/Previews PreviewImageGallery)
4545add_unity8_qmltest(Dash/Previews PreviewInlineVideo)
4646add_unity8_qmltest(Dash/Previews PreviewMediaToolbar)
47−add_unity8_qmltest(Dash/Previews PreviewPayments)
47+#add_unity8_qmltest(Dash/Previews PreviewPayments)
4848add_unity8_qmltest(Dash/Previews PreviewProgress)
4949add_unity8_qmltest(Dash/Previews PreviewRatingDisplay)
5050add_unity8_qmltest(Dash/Previews PreviewRatingDisplayCreationRanges)
tests/qmltests/Components/tst_DragHandle.cpp+2−2
@@ -177,7 +177,7 @@ void tst_DragHandle::flickAndHold(QQuickItem *dragHandle,
177177 QTest::touchEvent(m_view, m_device).release(0, touchPoint.toPoint());
178178
179179 QQuickWindowPrivate *windowPrivate = QQuickWindowPrivate::get(m_view);
180− windowPrivate->flushDelayedTouchEvent();
180+ windowPrivate->flushFrameSynchronousEvents();
181181}
182182
183183void tst_DragHandle::drag(QPointF &touchPoint, const QPointF& direction, qreal distance,
@@ -192,7 +192,7 @@ void tst_DragHandle::drag(QPointF &touchPoint, const QPointF& direction, qreal d
192192 m_fakeTimeSource->m_msecsSinceReference += timeStep;
193193 QTest::touchEvent(m_view, m_device).move(0, touchPoint.toPoint());
194194
195− windowPrivate->flushDelayedTouchEvent();
195+ windowPrivate->flushFrameSynchronousEvents();
196196 }
197197}
198198
tests/qmltests/Wizard/tst_Wizard.qml+1−16
@@ -168,16 +168,13 @@ Item {
168168 return stack.currentPage;
169169 }
170170
171− function goToPage(name, skipSim, skipLocation, skipReporting) {
171+ function goToPage(name, skipSim, skipLocation) {
172172 if (skipSim === undefined) {
173173 skipSim = false;
174174 }
175175 if (skipLocation === undefined) {
176176 skipLocation = false;
177177 }
178− if (skipReporting === undefined) {
179− skipReporting = false;
180− }
181178
182179 var page = waitForPage("languagePage");
183180 if (name === page.objectName) return page;
@@ -222,12 +219,6 @@ Item {
222219 if (name === page.objectName) return page;
223220 tap(findChild(page, "forwardButton"));
224221
225− if (!skipReporting) {
226− page = waitForPage("reportingPage");
227− if (name === page.objectName) return page;
228− tap(findChild(page, "forwardButton"));
229− }
230−
231222 page = waitForPage("finishedPage");
232223 if (name === page.objectName) return page;
233224 waitUntilTransitionsEnd(page);
@@ -334,8 +325,6 @@ Item {
334325 enterPasscode("1111");
335326
336327 // now finish up
337− page = waitForPage("reportingPage");
338− tap(findChild(page, "forwardButton"));
339328 page = waitForPage("systemUpdatePage");
340329 tap(findChild(page, "forwardButton"));
341330 page = waitForPage("finishedPage");
@@ -376,8 +365,6 @@ Item {
376365 tap(continueButton);
377366
378367 // now finish up
379− page = waitForPage("reportingPage");
380− tap(findChild(page, "forwardButton"));
381368 page = waitForPage("systemUpdatePage");
382369 tap(findChild(page, "forwardButton"));
383370 page = waitForPage("finishedPage");
@@ -396,8 +383,6 @@ Item {
396383
397384 // now finish up
398385 tap(findChild(page, "forwardButton"));
399− page = waitForPage("reportingPage");
400− tap(findChild(page, "forwardButton"));
401386 page = waitForPage("systemUpdatePage");
402387 tap(findChild(page, "forwardButton"));
403388 page = waitForPage("finishedPage");
tests/utils/CMakeLists.txt+1−1
@@ -1 +1 @@
1−#add_subdirectory(modules) #FIXME broken with qt 5.9
1+add_subdirectory(modules)
tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.cpp−9
@@ -26,16 +26,7 @@ TouchEventSequenceWrapper::TouchEventSequenceWrapper(QTest::QTouchEventSequence
2626
2727void TouchEventSequenceWrapper::commit(bool processEvents)
2828{
29− // Item might be deleted as a consequence of this event sequence being handled
30− // So store its window beforehand
31− QQuickWindow *window = m_item->window();
32−
3329 m_eventSequence.commit(processEvents);
34−
35− if (window) {
36− QQuickWindowPrivate *wp = QQuickWindowPrivate::get(window);
37− wp->flushDelayedTouchEvent();
38− }
3930}
4031
4132void TouchEventSequenceWrapper::move(int touchId, int x, int y)