on xenial help sign in
merge trunk
commit919186f3f07d090832f4757b32b605cf356abc2b authorMichael Zanetti <michael.zanetti@canonical.com> dateThu 21 Apr 2016, 17:51 (10 years ago) parenta0c800091c104f
514 files changed+53881−26348
CMakeLists.txt+3−2 CODING+2 cmake/modules/QmlTest.cmake+1−1 data/com.canonical.Unity8.gschema.xml+16 data/unity8-dash.conf+1 debian/changelog+258 debian/control+19−15 debian/tests/autopilot.sh+13 debian/tests/control+5 debian/unity8-common.udev+2 debian/unity8-doc.install+1 doc/devices.conf+30 libs/UbuntuGestures/Timer.h+5 libs/UbuntuGestures/TouchRegistry.cpp+15−10 plugins/AccountsService/AccountsService.cpp+243−330 plugins/AccountsService/AccountsService.h+46−23 plugins/AccountsService/AccountsService.qmltypes+5 plugins/AccountsService/AccountsServiceDBusAdaptor.cpp+23−6 plugins/AccountsService/AccountsServiceDBusAdaptor.h+5−6 plugins/AccountsService/com.canonical.unity.AccountsService.xml+5 plugins/Cursor/Cursor.qmltypes+78 plugins/Dash/AudioProgressBar.qml+1 plugins/Dash/CardCreator.js+69−34 plugins/Dash/CardCreatorCache.qml+3−3 plugins/Dash/ScopeStyle.qml+1−1 plugins/Dash/plugin.cpp+6−6 plugins/GlobalShortcut/GlobalShortcut.qmltypes+31 plugins/GlobalShortcut/globalshortcutregistry.cpp+4−4 plugins/IntegratedLightDM/liblightdm/CMakeLists.txt+16−3 plugins/IntegratedLightDM/liblightdm/UsersModel.cpp+4−18 plugins/IntegratedLightDM/liblightdm/UsersModel.h+1−1 plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+43−9 plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.h+15−3 plugins/ScreenGrabber/screengrabber.cpp−2 plugins/Ubuntu/Gestures/CMakeLists.txt+1 plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+43−5 plugins/Ubuntu/Gestures/DirectionalDragArea.h+8 plugins/Ubuntu/Gestures/DirectionalDragArea_p.h+2 plugins/Ubuntu/Gestures/Gestures.qmltypes+86−45 plugins/Ubuntu/Gestures/TouchGestureArea.cpp+875 plugins/Ubuntu/Gestures/TouchGestureArea.h+229 plugins/Ubuntu/Gestures/plugin.cpp+3 plugins/Unity/Indicators/indicatorsmanager.cpp+5−7 plugins/Unity/Indicators/rootstateparser.h+1 plugins/Unity/InputInfo/InputInfo.qmltypes+71 plugins/Unity/Launcher/desktopfilehandler.cpp+2−2 plugins/Unity/Launcher/launcheritem.cpp+1 plugins/Unity/Launcher/launcheritem.h+1−1 plugins/Unity/Launcher/launchermodel.cpp+15−5 plugins/Unity/Launcher/launchermodel.h+1−1 plugins/Unity/Platform/Platform.qmltypes+20 plugins/Unity/Session/dbusunitysessionservice.cpp+4−1 plugins/Utils/CMakeLists.txt+3−1 plugins/Utils/Utils.qmltypes+2−2 plugins/Utils/deviceconfigparser.cpp+150 plugins/Utils/deviceconfigparser.h+62 plugins/Utils/globalfunctions.cpp+56 plugins/Utils/globalfunctions.h+42 plugins/Utils/plugin.cpp+13−2 plugins/Utils/timezoneFormatter.cpp+10 plugins/Utils/timezoneFormatter.h+1 plugins/Utils/windowkeysfilter.cpp → plugins/Utils/windowinputfilter.cpp+14−16 plugins/Utils/windowkeysfilter.h → plugins/Utils/windowinputfilter.h+11−11 plugins/Utils/windowstatestorage.cpp+36−4 plugins/Utils/windowstatestorage.h+3 plugins/Wizard/CMakeLists.txt+7−1 plugins/Wizard/LocalePlugin.cpp+291 plugins/Wizard/LocalePlugin.h+58 plugins/Wizard/PageList.cpp+4−4 plugins/Wizard/Status.cpp+143 plugins/Wizard/Status.h+60 plugins/Wizard/System.cpp+5−4 plugins/Wizard/System.h+3−2 plugins/Wizard/plugin.cpp+7−8 plugins/Wizard/plugin.h+1−2 plugins/Wizard/timezonemodel.cpp+244 plugins/Wizard/timezonemodel.h+80 po/aa.po+303−203 po/am.po+511−259 po/ar.po+474−246 po/ast.po+506−264 po/az.po+280−199 po/be.po+495−253 po/bg.po+269−197 po/bn.po+358−217 po/br.po+507−262 po/bs.po+497−252 po/ca.po+496−256 po/ca@valencia.po+403−236 po/ce.po+269−197 po/ckb.po+269−197 po/cs.po+520−250 po/cy.po+495−250 po/da.po+496−251 po/de.po+510−259 po/el.po+498−256 po/en_AU.po+510−261 po/en_GB.po+511−262 po/eo.po+352−213 po/es.po+519−265 po/eu.po+495−253 po/fa.po+516−262 po/fi.po+509−258 po/fo.po+269−197 po/fr.po+534−267 po/ga.po+481−249 po/gd.po+533−264 po/gl.po+509−258 po/gv.po+272−200 po/he.po+420−231 po/hi.po+269−197 po/hr.po+508−253 po/hu.po+532−267 po/hy.po+280−202 po/ia.po+508−256 po/id.po+280−202 po/is.po+280−202 po/it.po+524−266 po/ja.po+292−202 po/km.po+352−216 po/kn.po+269−197 po/ko.po+503−252 po/ku.po+280−199 po/ky.po+269−197 po/lo.po+269−197 po/lt.po+269−197 po/lv.po+493−251 po/ml.po+269−197 po/mr.po+269−197 po/ms.po+496−254 po/my.po+282−200 po/nb.po+514−262 po/ne.po+269−197 po/nl.po+515−259 po/nn.po+269−197 po/oc.po+269−197 po/or.po+269−197 po/pa.po+495−253 po/pl.po+502−261 po/pt.po+521−269 po/pt_BR.po+495−253 po/ro.po+497−255 po/ru.po+495−255 po/shn.po+269−197 po/si.po+272−200 po/sk.po+608−328 po/sl.po+496−258 po/sq.po+414−229 po/sr.po+553−294 po/sv.po+515−263 po/sw.po+428−233 po/ta.po+269−197 po/te.po+269−197 po/th.po+269−197 po/tr.po+495−253 po/ug.po+476−248 po/uk.po+524−266 po/unity8.pot+267−195 po/ur.po+269−197 po/uz.po+269−197 po/vi.po+269−197 po/wo.po+495−253 po/xh.po+269−197 po/zh_CN.po+500−255 po/zh_HK.po+269−197 po/zh_TW.po+503−252 qml/Components/Dialogs.qml+6−47 qml/Components/EdgeBarrier.qml+1−1 qml/Components/Header.qml+1 qml/Components/InputMethod.qml+5−10 qml/Components/Lockscreen.qml+82−96 qml/Components/ModeSwitchWarningDialog.qml+1−1 qml/Components/PassphraseLockscreen.qml+5−4 qml/Components/PhysicalKeysMapper.qml+24 qml/Components/PinLockscreen.qml+22−1 qml/Components/ShellDialog.qml+10 qml/Components/Showable.qml+10 qml/Components/Unity8Settings.qml−50 qml/Dash/CardCarousel.qml−1 qml/Dash/CardGrid.qml−1 qml/Dash/CardHorizontalList.qml−1 qml/Dash/CardTool.qml+2−26 qml/Dash/CardVerticalJournal.qml−1 qml/Dash/Dash.qml+11−11 qml/Dash/DashContent.qml+2−2 qml/Dash/DashNavigation.qml+159−78 qml/Dash/DashNavigationButton.qml−233 qml/Dash/DashNavigationHeader.qml+73 qml/Dash/DashNavigationList.qml+33−85 qml/Dash/DashPageHeader.qml+144−131 qml/Dash/Filters/FilterOptionSelector.qml+91 qml/Dash/Filters/FilterRangeInput.qml+136 qml/Dash/Filters/FilterValueSlider.qml+87 qml/Dash/Filters/FilterWidget.qml+29 qml/Dash/Filters/FilterWidgetFactory.qml+80 qml/Dash/FiltersPopover.qml+105 qml/Dash/GenericScopeView.qml+93−89 qml/Dash/PageHeaderExtraPanel.qml+176 qml/Dash/PreviewListView.qml−140 qml/Dash/PreviewView.qml+76 qml/Dash/Previews/Preview.qml−4 qml/Dash/Previews/PreviewAudioPlayback.qml+5−1 qml/Dash/Previews/PreviewExpandable.qml−1 qml/Dash/Previews/PreviewHeader.qml+37−9 qml/Dash/Previews/PreviewOverlay.qml+1−1 qml/Dash/Previews/PreviewPayments.qml+1−3 qml/Dash/Previews/PreviewRatingDisplay.qml−1 qml/Dash/Previews/PreviewRatingEdit.qml−1 qml/Dash/Previews/PreviewSharing.qml+17−7 qml/Dash/Previews/PreviewWidget.qml−3 qml/Dash/Previews/PreviewWidgetFactory.qml−4 qml/Dash/ScopesList.qml+1−1 qml/Dash/ScopesListCategoryItem.qml+8−4 qml/DeviceConfiguration.qml+54−16 qml/Greeter/CoverPage.qml+13−2 qml/Greeter/Greeter.qml+17−7 qml/Greeter/Infographics.qml+2−1 qml/Greeter/NarrowView.qml+14−1 qml/Launcher/Launcher.qml+144−12 qml/Launcher/LauncherDelegate.qml+55−20 qml/Launcher/LauncherPanel.qml+149−74 qml/Launcher/graphics/launcher-app-focus-ring.svg+12 qml/Notifications/Notification.qml+15−17 qml/Notifications/Notifications.qml+2 qml/Notifications/OptionToggle.qml+1−1 qml/OrientedShell.qml+71−21 qml/Panel/Handle.qml+2−2 qml/Panel/IndicatorItem.qml+3−10 qml/Panel/IndicatorItemRow.qml+5−2 qml/Panel/Indicators/MenuItemFactory.qml+23−6 qml/Panel/Indicators/ModemInfoItem.qml−111 qml/Panel/Indicators/RoamingIndication.qml−40 qml/Panel/Indicators/client/IndicatorsClient.qml+1−1 qml/Panel/IndicatorsMenu.qml+2−4 qml/Panel/MenuContent.qml+1−1 qml/Panel/Panel.qml+5−1 qml/ScopeTool.qml−8 qml/Shell.qml+137−55 qml/Stages/AbstractStage.qml+8−2 qml/Stages/ApplicationWindow.qml+7−3 qml/Stages/DesktopSpread.qml+64−17 qml/Stages/DesktopSpreadDelegate.qml+15−1 qml/Stages/DesktopStage.qml+103−37 qml/Stages/PhoneStage.qml+92−9 qml/Stages/SideStage.qml+118 qml/Stages/Splash.qml+4−2 qml/Stages/SpreadDelegate.qml+31−1 qml/Stages/StagedFullscreenPolicy.qml+58 qml/Stages/SurfaceContainer.qml+14 qml/Stages/TabletSideStageTouchGesture.qml+154 qml/Stages/TabletStage.qml+487−174 qml/Stages/TransformedTabletSpreadDelegate.qml+84−56 qml/Stages/WindowDecoration.qml+1−1 qml/Stages/WindowResizeArea.qml+10−7 qml/Stages/WindowedFullscreenPolicy.qml+41 qml/Stages/graphics/sidestage_drag.svg+207 qml/Stages/graphics/sidestage_open.svg+181 qml/Tutorial/Arrow.qml−56 qml/Tutorial/InactivityTimer.qml+62 qml/Tutorial/Slider.qml−123 qml/Tutorial/Tutorial.qml+39−14 qml/Tutorial/TutorialBottom.qml+86−66 qml/Tutorial/TutorialBottomFinish.qml−41 qml/Tutorial/TutorialContent.qml+227−55 qml/Tutorial/TutorialLeft.qml+21−68 qml/Tutorial/TutorialLeftLong.qml+54 qml/Tutorial/TutorialPage.qml+62−186 qml/Tutorial/TutorialRight.qml+31−192 qml/Tutorial/TutorialTop.qml+61 qml/Tutorial/graphics/arrow.svg+19 qml/Tutorial/graphics/background1.png qml/Tutorial/graphics/background2.png qml/Tutorial/graphics/camera.png qml/Tutorial/graphics/chevron.png qml/Tutorial/graphics/dialer.png qml/Tutorial/graphics/facebook.png qml/Tutorial/graphics/gallery.png qml/Tutorial/graphics/tick.png qml/Wizard/CheckableSetting.qml+11−3 qml/Wizard/Page.qml+261−44 qml/Wizard/Pages.qml+75−31 qml/Wizard/Pages/10-welcome.qml+128−48 qml/Wizard/Pages/20-sim.qml−77 qml/Wizard/Pages/30-passwd-type.qml−140 qml/Wizard/Pages/30-wifi.qml+210 qml/Wizard/Pages/40-location.qml+290 qml/Wizard/Pages/40-wifi.qml−219 qml/Wizard/Pages/50-location.qml−150 qml/Wizard/Pages/50-timezone.qml+275 qml/Wizard/Pages/60-reporting.qml → qml/Wizard/Pages/60-account.qml+30−20 qml/Wizard/Pages/70-passwd-type.qml+166 qml/Wizard/Pages/75-report-check.qml+91 qml/Wizard/Pages/80-finished.qml+94−16 qml/Wizard/Pages/data/Desktop_header_bkg.png qml/Wizard/Pages/data/Desktop_splash_screen_bkg.png qml/Wizard/Pages/data/Phone_header_bkg.png qml/Wizard/Pages/data/Phone_splash_screen_bkg.png qml/Wizard/Pages/data/Tick@30.png qml/Wizard/Pages/data/meet_ubuntu_simcard@30.png qml/Wizard/Pages/data/timezonemap/map.png qml/Wizard/Pages/data/timezonemap/pin.png qml/Wizard/Pages/data/timezonemap/timezone_-1.png qml/Wizard/Pages/data/timezonemap/timezone_-10.png qml/Wizard/Pages/data/timezonemap/timezone_-11.png qml/Wizard/Pages/data/timezonemap/timezone_-2.png qml/Wizard/Pages/data/timezonemap/timezone_-3.5.png qml/Wizard/Pages/data/timezonemap/timezone_-3.png qml/Wizard/Pages/data/timezonemap/timezone_-4.5.png qml/Wizard/Pages/data/timezonemap/timezone_-4.png qml/Wizard/Pages/data/timezonemap/timezone_-5.png qml/Wizard/Pages/data/timezonemap/timezone_-6.png qml/Wizard/Pages/data/timezonemap/timezone_-7.png qml/Wizard/Pages/data/timezonemap/timezone_-8.png qml/Wizard/Pages/data/timezonemap/timezone_-9.5.png qml/Wizard/Pages/data/timezonemap/timezone_-9.png qml/Wizard/Pages/data/timezonemap/timezone_0.png qml/Wizard/Pages/data/timezonemap/timezone_1.png qml/Wizard/Pages/data/timezonemap/timezone_10.5.png qml/Wizard/Pages/data/timezonemap/timezone_10.png qml/Wizard/Pages/data/timezonemap/timezone_11.png qml/Wizard/Pages/data/timezonemap/timezone_12.75.png qml/Wizard/Pages/data/timezonemap/timezone_12.png qml/Wizard/Pages/data/timezonemap/timezone_13.png qml/Wizard/Pages/data/timezonemap/timezone_2.png qml/Wizard/Pages/data/timezonemap/timezone_3.5.png qml/Wizard/Pages/data/timezonemap/timezone_3.png qml/Wizard/Pages/data/timezonemap/timezone_4.5.png qml/Wizard/Pages/data/timezonemap/timezone_4.png qml/Wizard/Pages/data/timezonemap/timezone_5.5.png qml/Wizard/Pages/data/timezonemap/timezone_5.75.png qml/Wizard/Pages/data/timezonemap/timezone_5.png qml/Wizard/Pages/data/timezonemap/timezone_6.5.png qml/Wizard/Pages/data/timezonemap/timezone_6.png qml/Wizard/Pages/data/timezonemap/timezone_7.png qml/Wizard/Pages/data/timezonemap/timezone_8.5.png qml/Wizard/Pages/data/timezonemap/timezone_8.png qml/Wizard/Pages/data/timezonemap/timezone_9.5.png qml/Wizard/Pages/data/timezonemap/timezone_9.png qml/Wizard/Pages/here-terms.qml+71−66 qml/Wizard/Pages/passwd-confirm.qml → qml/Wizard/Pages/passcode-confirm.qml+13−30 qml/Wizard/Pages/passcode-desktop.qml+132 qml/Wizard/Pages/passwd-set.qml → qml/Wizard/Pages/passcode-set.qml+13−29 qml/Wizard/Pages/password-set.qml+149 qml/Wizard/Pages/sim.qml+108 qml/Wizard/PasswordMeter.qml+106 qml/Wizard/StackButton.qml+7−12 qml/Wizard/Wizard.qml−9 qml/Tutorial/TutorialLeftFinish.qml → qml/Wizard/WizardTextField.qml+5−21 src/CMakeLists.txt+1−1 src/CachingNetworkManagerFactory.cpp+2−2 src/CachingNetworkManagerFactory.h+3−2 src/Dash/CMakeLists.txt+1−1 src/MouseTouchAdaptor.cpp+53−9 src/MouseTouchAdaptor.h+5−3 tests/autopilot/unity8/dash.py+1−2 tests/autopilot/unity8/shell/emulators.py−2 tests/autopilot/unity8/shell/tests/test_helpers.py−2 tests/autopilot/unity8/shell/tests/test_tutorial.py−57 tests/autopilot/unity8/tutorial.py−73 tests/libs/UbuntuGestures/tst_TouchRegistry.cpp+59 tests/mocks/AccountsService/AccountsService.cpp+60−3 tests/mocks/AccountsService/AccountsService.h+30−5 tests/mocks/AccountsService/AccountsService.qmltypes+5 tests/mocks/GSettings.1.0/fake_gsettings.cpp+178−26 tests/mocks/GSettings.1.0/fake_gsettings.h+61−18 tests/mocks/IntegratedLightDM/liblightdm/UsersModel.cpp−14 tests/mocks/MeeGo/QOfono/MockOfonoSimManager.qml+1 tests/mocks/QMenuModel/QDBusActionGroup.qml+5−5 tests/mocks/Ubuntu/Connectivity/plugin.cpp+1 tests/mocks/Ubuntu/SystemSettings/CMakeLists.txt+2 tests/mocks/Ubuntu/SystemSettings/Diagnostics/CMakeLists.txt+1 qml/Tutorial/Tick.qml → tests/mocks/Ubuntu/SystemSettings/Diagnostics/MockDiagnostics.qml+4−9 tests/mocks/Ubuntu/SystemSettings/Diagnostics/qmldir+2 tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/MockKeyboardPlugin.qml+21 tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/MockLanguagePlugin.qml+2−2 tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/qmldir+1 tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/MockSecurityPrivacy.cpp+1−1 tests/mocks/Ubuntu/SystemSettings/TimeDate/CMakeLists.txt+1 tests/mocks/Ubuntu/SystemSettings/TimeDate/MockTimeDate.qml+25 tests/mocks/Ubuntu/SystemSettings/TimeDate/qmldir+2 tests/mocks/Unity/Application/ApplicationInfo.cpp+21−3 tests/mocks/Unity/Application/ApplicationInfo.h+6−2 tests/mocks/Unity/Application/ApplicationManager.cpp+13−26 tests/mocks/Unity/Application/ApplicationManager.h−8 tests/mocks/Unity/Application/MirSurface.cpp+38−2 tests/mocks/Unity/Application/MirSurface.h+12−4 tests/mocks/Unity/Application/MirSurfaceItem.cpp+28−5 tests/mocks/Unity/Application/MirSurfaceItem.h+2 tests/mocks/Unity/Application/Session.cpp+26−1 tests/mocks/Unity/Application/Session.h+7 tests/mocks/Unity/Application/SurfaceManager.cpp+8−9 tests/mocks/Unity/Application/SurfaceManager.h+3−3 tests/mocks/Unity/Application/VirtualKeyboard.cpp+3−2 tests/mocks/Unity/Application/VirtualKeyboard.h+1−1 tests/mocks/Unity/Application/plugin.cpp+2−1 tests/mocks/Unity/Application/resources/MirSurfaceItem.qml+59 tests/mocks/Unity/CMakeLists.txt+14−3 tests/mocks/Unity/Indicators/ModelActionRootState.qml+26−4 tests/mocks/Unity/Launcher/MockLauncherModel.cpp+2 tests/mocks/Unity/Unity.qmltypes+33−50 tests/mocks/Unity/fake_filters.cpp+125 tests/mocks/Unity/fake_filters.h+46 tests/mocks/Unity/fake_navigation.cpp+9−10 tests/mocks/Unity/fake_optionselectorfilter.cpp+65 tests/mocks/Unity/fake_optionselectorfilter.h+52 tests/mocks/Unity/fake_optionselectoroptions.cpp+77 tests/mocks/Unity/fake_optionselectoroptions.h+47 tests/mocks/Unity/fake_previewstack.cpp−68 tests/mocks/Unity/fake_previewstack.h−52 tests/mocks/Unity/fake_rangeinputfilter.cpp+167 tests/mocks/Unity/fake_rangeinputfilter.h+79 tests/mocks/Unity/fake_scope.cpp+59−29 tests/mocks/Unity/fake_scope.h+23−9 tests/mocks/Unity/fake_unity_plugin.cpp+8−2 tests/mocks/Unity/fake_valuesliderfilter.cpp+84 tests/mocks/Unity/fake_valuesliderfilter.h+55 tests/mocks/Unity/fake_valueslidervalues.cpp+51 tests/mocks/Unity/fake_valueslidervalues.h+36 tests/mocks/Utils/CMakeLists.txt+4−2 tests/mocks/Utils/Utils.qmltypes+2−2 tests/mocks/Utils/plugin.cpp+16−2 tests/mocks/Utils/windowstatestorage.cpp+13 tests/mocks/Utils/windowstatestorage.h+4 tests/mocks/Wizard/CMakeLists.txt+6−1 tests/mocks/Wizard/MockSystem.cpp+4−2 tests/mocks/Wizard/MockSystem.h+2−2 tests/mocks/Wizard/mockplugin.cpp+7−8 tests/plugins/AccountsService/CMakeLists.txt+7−1 tests/plugins/AccountsService/PropertiesServer.cpp+55−4 tests/plugins/AccountsService/PropertiesServer.h+9−2 tests/plugins/AccountsService/UscServer.cpp+28 tests/plugins/AccountsService/UscServer.h+39 tests/plugins/AccountsService/client.cpp+168−13 tests/plugins/AccountsService/interfaces.xml+29 tests/plugins/AccountsService/server.cpp+12 tests/plugins/AccountsService/types.h+25 tests/plugins/Dash/cardcreator/1.res+4−6 tests/plugins/Dash/cardcreator/1.res.cardcreator+119 tests/plugins/Dash/cardcreator/10.res+3−5 tests/plugins/Dash/cardcreator/10.res.cardcreator+137 tests/plugins/Dash/cardcreator/11.res+5−7 tests/plugins/Dash/cardcreator/11.res.cardcreator+210 tests/plugins/Dash/cardcreator/2.res+3−5 tests/plugins/Dash/cardcreator/2.res.cardcreator+136 tests/plugins/Dash/cardcreator/3.res+3−5 tests/plugins/Dash/cardcreator/3.res.cardcreator+137 tests/plugins/Dash/cardcreator/4.res+3−5 tests/plugins/Dash/cardcreator/4.res.cardcreator+109 tests/plugins/Dash/cardcreator/5.res+5−7 tests/plugins/Dash/cardcreator/5.res.cardcreator+156 tests/plugins/Dash/cardcreator/6.res+2−4 tests/plugins/Dash/cardcreator/6.res.cardcreator+126 tests/plugins/Dash/cardcreator/7.res+3−5 tests/plugins/Dash/cardcreator/7.res.cardcreator+149 tests/plugins/Dash/cardcreator/8.res+3−5 tests/plugins/Dash/cardcreator/8.res.cardcreator+107 tests/plugins/Dash/cardcreator/9.res+4−5 tests/plugins/Dash/cardcreator/9.res.cardcreator+119 tests/plugins/Dash/cardcreatortest.cpp+32−22 tests/plugins/Dash/cardcreatortest.qml+4−4 tests/plugins/Dash/tst_ScopeStyle.qml+1−1 tests/plugins/IntegratedLightDM/CMakeLists.txt+25 tests/plugins/IntegratedLightDM/integrated.cpp+88 tests/plugins/Ubuntu/Gestures/CMakeLists.txt+7−1 tests/plugins/Ubuntu/Gestures/GestureTest.cpp+44 tests/plugins/Ubuntu/Gestures/GestureTest.h+13−1 tests/plugins/Ubuntu/Gestures/tst_DirectionalDragArea.cpp−56 tests/plugins/Ubuntu/Gestures/tst_FloatingFlickable.cpp+2 tests/plugins/Ubuntu/Gestures/tst_TouchGestureArea.cpp+270 tests/plugins/Ubuntu/Gestures/tst_TouchGestureArea.qml+90 tests/plugins/Unity/Launcher/launchermodeltest.cpp+1 tests/plugins/Utils/CMakeLists.txt+7−1 tests/plugins/Utils/DeviceConfigParserTest.cpp+70 tests/qmltests/CMakeLists.txt+6−1 tests/qmltests/Components/tst_Lockscreen.qml+14−7 tests/qmltests/Components/tst_PhysicalKeysMapper.qml+3−3 tests/qmltests/Dash/Filters/tst_FilterOptionSelector.qml+96 tests/qmltests/Dash/Filters/tst_FilterRangeInput.qml+247 tests/qmltests/Dash/Filters/tst_FilterValueSlider.qml+101 tests/qmltests/Dash/Filters/tst_FilterWidgetFactory.qml+58 tests/qmltests/Dash/Previews/tst_Preview.qml+1 tests/qmltests/Dash/Previews/tst_PreviewAudioPlayback.qml+12−3 tests/qmltests/Dash/Previews/tst_PreviewHeader.qml+18−1 tests/qmltests/Dash/Previews/tst_PreviewSharing.qml+17−3 tests/qmltests/Dash/tst_CardTool.qml+4−4 tests/qmltests/Dash/tst_Dash.qml+89 tests/qmltests/Dash/tst_DashContent.qml+165−152 tests/qmltests/Dash/tst_DashPageHeader.qml+24−15 tests/qmltests/Dash/tst_GenericScopeView.qml+3−31 tests/qmltests/Dash/tst_PreviewListView.qml → tests/qmltests/Dash/tst_PreviewView.qml+23−16 tests/qmltests/Greeter/tst_Greeter.qml+8−1 tests/qmltests/Greeter/tst_NarrowView.qml+12−1 tests/qmltests/Launcher/tst_Launcher.qml+254−18 tests/qmltests/Notifications/tst_Notifications.qml+13−8 tests/qmltests/Notifications/tst_OptionToggle.qml+1−1 tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+1 tests/qmltests/Panel/IndicatorTest.qml+2−1 tests/qmltests/Panel/Indicators/tst_MenuItemFactory.qml+2−4 tests/qmltests/Panel/tst_IndicatorItem.qml+16−17 tests/qmltests/Panel/tst_IndicatorItemRow.qml+1−2 tests/qmltests/Panel/tst_IndicatorsMenu.qml−1 tests/qmltests/Panel/tst_Panel.qml+2 tests/qmltests/Stages/tst_DesktopStage.qml+2−3 tests/qmltests/Stages/tst_PhoneStage.qml+19−6 tests/qmltests/Stages/tst_SpreadDelegate.qml+7 tests/qmltests/Stages/tst_TabletStage.qml+162−1 tests/qmltests/Stages/tst_WindowResizeArea.qml+7 tests/qmltests/Tutorial/tst_Tutorial.qml+626−192 tests/qmltests/Wizard/tst_Wizard.qml+126−214 tests/qmltests/tst_DeviceConfiguration.qml+49 tests/qmltests/tst_OrientedShell.qml+157−36 tests/qmltests/tst_Shell.qml+386−69 tests/qmltests/tst_ShellWithPin.qml−22 tests/utils/modules/Unity/Test/UnityTestCase.qml+67−11
CMakeLists.txt+3−2
@@ -57,7 +57,8 @@ find_package(Qt5DBus 5.4 REQUIRED)
5757find_package(Qt5Concurrent 5.4 REQUIRED)
5858find_package(Qt5Sql 5.4 REQUIRED)
5959
60−pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=13)
60+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=14)
61+pkg_check_modules(GEONAMES REQUIRED geonames>=0.2)
6162pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
6263pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
6364pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
@@ -131,7 +132,7 @@ if(NOT QUIET_LOGGER)
131132 set(STDOUT_LOGGER "-o" "-,txt")
132133endif()
133134
134−execute_process(COMMAND arch OUTPUT_VARIABLE ARCH)
135+execute_process(COMMAND dpkg-architecture -qDEB_HOST_ARCH OUTPUT_VARIABLE ARCH)
135136if (NOT ARCH MATCHES "arm*")
136137 set(ENABLE_TOUCH_EMULATION true)
137138 add_definitions(-DUNITY8_ENABLE_TOUCH_EMULATION)
CODING+2
@@ -54,6 +54,8 @@ $ ./run.sh -p OR -k
5454Notes
5555-----
5656- to navigate, utilize the mouse left button as you would your finger
57+- a three point drag (for side stage operations) can be performed by using
58+ the Shift+Control+Alt (all together) keyboard modifiers while using the mouse.
5759- to get the translations work, currently you have to do make install to
5860 put the *.mo files into correct structure. We'll look for a better solution
5961 later.
cmake/modules/QmlTest.cmake+1−1
@@ -183,7 +183,7 @@ function(add_manual_test COMPONENT_NAME TARGET)
183183 cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
184184 mangle_arguments()
185185
186− bake_arguments("${QMLTEST_ARG_PREFIX}" args -qmljsdebugger=port:3768)
186+ bake_arguments("${QMLTEST_ARG_PREFIX}" args -qmljsdebugger=port:3768,3800)
187187
188188 set(qmltry_command
189189 $<TARGET_FILE:${TARGET}>
data/com.canonical.Unity8.gschema.xml+16
@@ -27,6 +27,22 @@
2727 <summary>Maximum push needed to overcome edge barrier</summary>
2828 <description>How much you have to push (in grid units) the mouse against an edge barrier when sensibility is 1.</description>
2929 </key>
30+ <key type="u" name="edge-drag-width">
31+ <default>2</default>
32+ <summary>The width of the edge drag areas</summary>
33+ <description>How big (in grid units) the edge-drag sensitive area should be.</description>
34+ </key>
35+ <key type="b" name="autohide-launcher">
36+ <default>true</default>
37+ <summary>Autohide the launcher</summary>
38+ <description>This will only be applied in windowed mode. In staged mode, the launcher will always hide.</description>
39+ </key>
40+ <key type="u" name="launcher-width">
41+ <default>8</default>
42+ <range min="6" max="12"/>
43+ <summary>Width of the launcher in grid units.</summary>
44+ <description>Changes the width of the launcher in all usage modes.</description>
45+ </key>
3046 </schema>
3147
3248 <schema path="/com/canonical/unity8/greeter/" id="com.canonical.Unity8.Greeter" gettext-domain="unity8">
data/unity8-dash.conf+1
@@ -14,6 +14,7 @@ kill timeout 120
1414oom score 50
1515
1616respawn
17+respawn limit unlimited
1718
1819env APP_ID=unity8-dash
1920
debian/changelog+258
@@ -1,3 +1,261 @@
1+unity8 (8.12+16.04.20160414.1-0ubuntu1) xenial; urgency=medium
2+
3+ [ Michael Terry ]
4+ * Make sure that usageMode is set on startup, fixing a problem with
5+ the tutorial not noticing that it is running on a desktop. (LP:
6+ #1564351)
7+
8+ [ Michael Zanetti ]
9+ * make the edge drag area width configurable (LP: #1559512)
10+
11+ -- Michael Zanetti <michael.zanetti@canonical.com> Thu, 14 Apr 2016 21:20:28 +0000
12+
13+unity8 (8.12+16.04.20160401-0ubuntu1) xenial; urgency=medium
14+
15+ * Add missing Testsuite header
16+ * Skip the failing test until we have a working solution for bug
17+ #1564571 (LP: #1564571)
18+
19+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 01 Apr 2016 08:32:16 +0000
20+
21+unity8 (8.12+16.04.20160330-0ubuntu1) xenial; urgency=medium
22+
23+ [ Albert Astals Cid ]
24+ * Use tutorialLeftLoader instead of tutorialLeft
25+
26+ [ CI Train Bot ]
27+ * Update translation template
28+
29+ [ Lukáš Tinkl ]
30+ * Fix the last chance popup colors/theme
31+
32+ [ Michael Terry ]
33+ * Adjust text for desktop right edge tutorial to be accurate. (LP:
34+ #1563103)
35+ * Fix OOBE wizard not setting your name. (LP: #1562872)
36+ * Fix showing "Retry" in password prompt when turning on screen in
37+ tablet mode.
38+
39+ -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 30 Mar 2016 07:46:51 +0000
40+
41+unity8 (8.12+16.04.20160323.2-0ubuntu1) xenial; urgency=medium
42+
43+ [ Michael Terry ]
44+ *
45+ * Fix setting OSK layout in OOBE wizard
46+ * Stop the left edge tutorial from being shown when the bottom edge
47+ tutorial wants to be shown after receiving a call.
48+
49+ [ Albert Astals Cid ]
50+ * Filter implementation with Option Selector filter as the only filter
51+ * Get the engine from the parent context
52+ * Implement the API changes due to filters
53+ * Match design visuals for the new dash navigation/page header popup
54+ * New Dash Navigation UX
55+ * Range Input filter
56+ * Value slider filter
57+ * Workaround SDK ListItem bug
58+
59+ [ Albert Astals Cid, Lukáš Tinkl ]
60+ * Fix various tests
61+
62+ [ CI Train Bot ]
63+ * Resync trunk.
64+ * Update translation template
65+
66+ [ Lukáš Tinkl, Michael Terry ]
67+ * New first-run wizard for the phone (part of the OOBE effort) (LP:
68+ #1536688, #1536617, #1543790, #1555222)
69+
70+ [ Lukáš Tinkl, Michał Sawicz ]
71+ * Keymap switching support (LP: #1524400, #1412492, #1491340)
72+
73+ [ Michael Terry, Michael Zanetti ]
74+ * Redesign the first-boot edge tutorial
75+
76+ [ Michael Zanetti ]
77+ * disabling some tests that are flaky in adt but can't be made fail on
78+ our machines
79+
80+ [ Michael Zanetti, Michał Sawicz ]
81+ * Change the behavior alond with the switch in indicator-display (LP:
82+ #1538591)
83+
84+ [ Michael Zanetti, Michał Sawicz, Nick Dedekind ]
85+ * Add support for low shell chrome. (LP: #1535397)
86+ * Sidestage load/unload redesign (LP: #1544479)
87+
88+ -- Michael Zanetti <michael.zanetti@canonical.com> Wed, 23 Mar 2016 09:53:17 +0000
89+
90+unity8 (8.11+16.04.20160318.1-0ubuntu1) xenial; urgency=medium
91+
92+ [ CI Train Bot ]
93+ * Update translation template
94+
95+ [ Lukáš Tinkl ]
96+ * Fix notifications with the new UITK color schemes (LP: #1554616,
97+ #1556523)
98+
99+ [ Lukáš Tinkl, Michael Zanetti, Nick Dedekind ]
100+ * more fixes for the new theme palette (LP: #1554616, #1557534)
101+
102+ -- Michael Zanetti <michael.zanetti@canonical.com> Fri, 18 Mar 2016 17:12:53 +0000
103+
104+unity8 (8.11+16.04.20160310.4-0ubuntu1) xenial; urgency=medium
105+
106+ [ Albert Astals Cid ]
107+ * Add context for Re-dock as asked by translators (LP: #1534608)
108+ * Add emblem to the preview header widget (LP: #1424720)
109+ * Add haptics to ScopesListCategoryItem buttons
110+ * Audio Cards: Make some of the image loading async (LP: #1533432)
111+ * Do not create fallback code for the card tool fake card (LP:
112+ #1545865)
113+ * Fix resizing the dash bringing temp scopes size out of sync (LP:
114+ #1543130)
115+ * Minor fixes for unity-scope-tool
116+ * Resolve title alignment on card creator time instead of on runtime
117+ * Use fixedHeaderHeight only in the non cardtool cards
118+ * Use the new undeprecated connectivityqt::Connectivity
119+ * asynchronous is only false on the fake card in cardtool
120+ * clazy fixes
121+
122+ [ Albert Astals Cid, CI Train Bot ]
123+ * click scope: Add the else branch so we reset the card size in all
124+ situations
125+
126+ [ Andrea Cimitan ]
127+ * PreviewSharing widget now accepts both string and array of
128+ widgetData["share-data"]["uri"] (LP: #1549056)
129+ * Update AP tests for new single preview
130+ * Use Text.Wrap for body notification text (LP: #1544909)
131+
132+ [ Andrea Cimitan, Lukáš Tinkl, Michael Zanetti, Nick Dedekind ]
133+ * some fixes for the new palette (LP: #1554616)
134+
135+ [ CI Train Bot ]
136+ * Resync trunk.
137+ * Update translation template
138+
139+ [ CI Train Bot, Daniel d'Andrada ]
140+ * Ensure the QML engine doesn't delete our mock MirSurfaces on its
141+ own.
142+
143+ [ Daniel d'Andrada ]
144+ * tst_Shell: Remove unused qml items
145+
146+ [ Josh Arenson ]
147+ * Allow the shell to blacklist input devices and force the OSK shown.
148+ (LP: #1542224)
149+
150+ [ Lukáš Tinkl ]
151+ * Disallow resizing windows up, past the Panel (LP: #1544766)
152+ * Elide the window title not to let it overflow into the indicators
153+ area (LP: #1535767)
154+ * Enable the PIN lockscreen to be used with a HW keyboard (LP:
155+ #1550359)
156+ * Fix tiny windows when switching stages
157+ * Provide a range of ports to QML JS Debugger
158+ * Watch for launcher item icon changes (LP: #1543290)
159+
160+ [ Michael Terry ]
161+ * Proxy more mouse and touchpad properties to USC (LP: #1540398) (LP:
162+ #1543344, #1540398)
163+ * Refactor the AccountsService plugin and make it slightly faster.
164+ * To let the user log in if a mouse is connected, hide the greeter
165+ cover page on a mouse click (but NOT a touch click). (LP: #1540497)
166+ * Watch AccountsService for changes to the user's real name. This was
167+ preventing us from noticing when the user set their name in the
168+ welcome wizard.
169+
170+ [ Michael Zanetti ]
171+ * Allow alt+tabbing in staged mode too (LP: #1540502)
172+ * Allow invoking the staged mode spreads by mouse right edge pushes
173+ too (LP: #1540392)
174+ * Allow loading the device configuration from an external file
175+ * Implement Launcher's keyboard navigation and updated pip design
176+ * Make launcher scalable, allow it locking (LP: #1511015)
177+ * Properly parent launcher items in all cases (LP: #1495732)
178+ * Read inputMethod surface from the new property int QtMir (LP:
179+ #1545286)
180+ * Some visual updates and rotation lock for the virtual touchpad (LP:
181+ #1549087)
182+ * Visual updates for the windowed spread (LP: #1488148)
183+ * stabilize swipeAwayGreeter()
184+
185+ [ Michał Sawicz ]
186+ * Add udev rules to make sure we have access to uinput
187+ * Make dash respawn indefinitely (LP: #1550056)
188+ * Use dpkg-architecture, not arch, to disable touch emulation
189+
190+ [ Vesa Rautiainen ]
191+ * Fixing the vertical position of desktop spread item icon.
192+
193+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 10 Mar 2016 22:44:16 +0000
194+
195+unity8 (8.11+16.04.20160308-0ubuntu1) xenial; urgency=medium
196+
197+ [ Albert Astals Cid ]
198+ * Make these tests pass with the new SDK
199+
200+ [ Andrea Cimitan, Nick Dedekind ]
201+ * replace selected.backgroundText with normal.backgroundText in
202+ Splash, Notifications, Wizard
203+
204+ [ CI Train Bot ]
205+ * Update translation template
206+
207+ [ Michał Sawicz, Nick Dedekind ]
208+ * Fixed colours palette value set. Moved ModemItem to USC.
209+
210+ [ Michał Sawicz, Tim Peeters ]
211+ * Update headers for Dash and Splash to work properly with the new UI
212+ toolkit release.
213+
214+ [ Zoltán Balogh, Zsombor Egri ]
215+ * Use SuruDark theme instead of the deprecated SuruGradient.
216+
217+ -- Zoltan Balogh <zoltan.balogh@canonical.com> Tue, 08 Mar 2016 20:59:34 +0000
218+
219+unity8 (8.11+16.04.20160307-0ubuntu1) xenial; urgency=medium
220+
221+ [ CI Train Bot ]
222+ * Resync trunk.
223+ * Update translation template
224+
225+ [ Rodney Dawes ]
226+ * Re-enable the purchaseCancelled signal.
227+
228+ -- Rodney Dawes <ci-train-bot@canonical.com> Mon, 07 Mar 2016 14:12:08 +0000
229+
230+unity8 (8.11+16.04.20160301-0ubuntu1) xenial; urgency=medium
231+
232+ [ Albert Astals Cid ]
233+ * Hook the new scope.activationInProgress property (LP: #1537132)
234+
235+ [ Andrea Cimitan ]
236+ * Updated the Preview view to use a single PreviewModel instead old
237+ PreviewStack, using a Loader instead ListView (LP: #1541967)
238+
239+ [ CI Train Bot ]
240+ * Resync trunk.
241+ * Update translation template
242+
243+ [ Michał Sawicz ]
244+ * Add autopilot as DEP-8 tests added: debian/tests/autopilot.sh
245+
246+ -- Pawel Stolowski <ci-train-bot@canonical.com> Tue, 01 Mar 2016 10:28:52 +0000
247+
248+unity8 (8.11+16.04.20160216.1-0ubuntu1) xenial; urgency=medium
249+
250+ [ Albert Astals Cid ]
251+ * Make the audio previews create a playlist (LP: #1540477)
252+
253+ [ CI Train Bot ]
254+ * Resync trunk. added: po/aa.po
255+ * Update translation template
256+
257+ -- Pawel Stolowski <ci-train-bot@canonical.com> Tue, 16 Feb 2016 03:24:46 +0000
258+
1259unity8 (8.11+16.04.20160212-0ubuntu1) xenial; urgency=medium
2260
3261 [ Albert Astals Cid ]
debian/control+19−15
@@ -8,13 +8,14 @@ Build-Depends: cmake,
88 doxyqml,
99# To allow cross-compiling to work, we also must append :native
1010# to g++ so we don't try to run armhf g++
11−# on an x86 CPU for eaxmple, when cross-compiling.
11+# on an x86 CPU for example, when cross-compiling.
1212 g++:native,
1313 libandroid-properties-dev,
1414 graphviz,
1515 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
16− libconnectivity-qt1-dev,
16+ libconnectivity-qt1-dev (>= 0.7.1),
1717 libevdev-dev,
18+ libgeonames-dev (>= 0.2),
1819 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
1920 libgl1-mesa-dri,
2021 libgles2-mesa-dev[armhf],
@@ -29,7 +30,7 @@ Build-Depends: cmake,
2930 libqt5xmlpatterns5-dev,
3031 libsystemsettings-dev,
3132 libudev-dev,
32− libunity-api-dev (>= 7.106),
33+ libunity-api-dev (>= 7.108),
3334 libusermetricsoutput1-dev,
3435# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
3536 libx11-dev[!armhf],
@@ -54,8 +55,8 @@ Build-Depends: cmake,
5455 qtdeclarative5-private-dev (>= 5.4),
5556 qtdeclarative5-qtmultimedia-plugin (>= 5.4.1-1ubuntu19~overlay2),
5657 qtdeclarative5-ubuntu-content1,
57− qtdeclarative5-ubuntu-settings-components (>= 0.6),
58− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1676) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1676),
58+ qtdeclarative5-ubuntu-settings-components (>= 0.7),
59+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
5960 qtdeclarative5-ubuntu-web-plugin,
6061 ttf-ubuntu-font-family,
6162Standards-Version: 3.9.4
@@ -65,12 +66,13 @@ Homepage: http://launchpad.net/unity
6566# and sync up the code again.
6667Vcs-Bzr: https://code.launchpad.net/unity8
6768Vcs-Browser: https://bazaar.launchpad.net/~unity-team/unity8/trunk
69+XS-Testsuite: autopkgtest
6870X-Ubuntu-Use-Langpack: yes
6971
7072Package: indicators-client
7173Architecture: amd64 armhf i386
7274Depends: qmenumodel-qml (>= 0.2.9),
73− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1627) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1627),
75+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
7476 unity8 (= ${binary:Version}),
7577 ${misc:Depends},
7678 ${shlibs:Depends},
@@ -101,8 +103,7 @@ Depends: dmz-cursor-theme,
101103 qml-module-qt-labs-folderlistmodel,
102104 qml-module-qtquick-xmllistmodel,
103105 qml-module-qtsysteminfo,
104− qtdeclarative5-gsettings1.0,
105− qtdeclarative5-qtmir-plugin (>= 0.4.5),
106+ qtdeclarative5-qtmir-plugin (>= 0.4.8),
106107 qtdeclarative5-ubuntu-telephony0.1,
107108 qtdeclarative5-ubuntu-web-plugin,
108109 ubuntu-system-settings,
@@ -112,7 +113,8 @@ Depends: dmz-cursor-theme,
112113 unity8-private | unity-launcher-impl,
113114 ${misc:Depends},
114115 ${shlibs:Depends},
115−Recommends: unity-scope-click,
116+Recommends: indicator-session,
117+ unity-scope-click,
116118 unity-scope-mediascanner2,
117119Breaks: indicator-network (<< 0.5.1+14.10.20141014),
118120 ubuntu-touch-session (<< 0.107),
@@ -126,15 +128,15 @@ Description: Unity 8 shell
126128Package: unity8-common
127129Architecture: all
128130Depends: qml-module-qtquick-layouts,
129− qtdeclarative5-ubuntu-settings-components (>= 0.6),
131+ qtdeclarative5-ubuntu-settings-components (>= 0.7),
130132 qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
131− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1627) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1627),
133+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
132134 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
133135 ubuntu-thumbnailer-impl-0,
134− unity-application-impl-13,
136+ unity-application-impl-14,
135137 unity-notifications-impl-3,
136138 unity-plugin-scopes | unity-scopes-impl,
137− unity-scopes-impl-9,
139+ unity-scopes-impl-11,
138140 unity8-fake-env | unity-application-impl,
139141 ${misc:Depends},
140142Breaks: unity8 (<< 7.86),
@@ -158,7 +160,7 @@ Depends: autopilot-qt5 (>= 1.4),
158160 python3-fixtures,
159161 python3-gi,
160162 qttestability-autopilot (>= 1.4),
161− ubuntu-ui-toolkit-autopilot (>= 1.2.1485+15.04.20150417.1-0ubuntu1),
163+ ubuntu-ui-toolkit-autopilot (>= 1.3.1845),
162164 unity-scope-click,
163165 unity8 (= ${source:Version}),
164166 unity8-fake-env (= ${source:Version}),
@@ -177,7 +179,7 @@ Pre-Depends: ${misc:Pre-Depends},
177179Depends: ${misc:Depends},
178180 ${shlibs:Depends},
179181Provides: unity-application-impl,
180− unity-application-impl-13,
182+ unity-application-impl-14,
181183Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
182184Description: Fake environment for running Unity 8 shell
183185 Provides fake implementations of some QML modules used by Unity 8 shell
@@ -192,6 +194,8 @@ Depends: accountsservice-ubuntu-schemas (>= 0.0.5),
192194 libhardware2,
193195 pay-service,
194196 unity-schemas (>= 7.3.1+14.10.20140915),
197+ qtdeclarative5-gsettings1.0,
198+ qml-module-qtmultimedia,
195199 ${misc:Depends},
196200 ${shlibs:Depends},
197201Provides: unity-launcher-impl,
debian/tests/autopilot.shnew file+13
@@ -0,0 +1,13 @@
1+#!/bin/sh
2+
3+# log all commands and abort on error
4+set -xe
5+
6+if [ ! -f /system/build.prop ]; then
7+ echo "WARNING: Skipping autopilot test, will only run on devices at the moment."
8+ exit 0
9+fi
10+
11+initctl --session stop unity8
12+autopilot3 run --verbose --format xml --output "${ADT_ARTIFACTS}/unity8.xml" unity8
13+initctl --session start unity8
debian/tests/control+5
@@ -3,3 +3,8 @@ Restrictions: allow-stderr
33Depends: @,
44 @builddeps@,
55 xvfb,
6+
7+Tests: autopilot.sh
8+Restrictions: allow-stderr,
9+ isolation-machine,
10+Depends: unity8-autopilot,
debian/unity8-common.udevnew file+2
@@ -0,0 +1,2 @@
1+# Make local foreground session able to inject input
2+KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess"
debian/unity8-doc.install+1
@@ -1 +1,2 @@
1+doc/devices.conf usr/share/doc/unity8/
12usr/share/doc/unity8/*
doc/devices.confnew file+30
@@ -0,0 +1,30 @@
1+# This file can hold multiple device configs. Devices are separated by sections.
2+#
3+# SupportedOrientations holds a list of all enabled orientations. A standard
4+# phone will usually have Portrait,Landcape,InvertedLandscape in order to
5+# disable upside down usage.
6+#
7+# PrimaryOrientation gives the orientation the device will start up with
8+# when there is no orientations sensor input available (yet) or lock to
9+# when an application specifies to be locked to PrimaryOrientation.
10+#
11+# The other Orientation settings can be used to re-map the orientations.
12+# A device might be used with different orientations than how the screen
13+# is physically mounted on the hardware.
14+#
15+# Category can be phone, tablet, or desktop. This option determines
16+# whether the side stage is shown (tablet) or not (phone). Using
17+# desktop will load the shell in windowed mode. Note that the user
18+# can override/change this by connecting input hardware or change
19+# user settings.
20+#
21+# Any options not listed will default to the values of the example below.
22+
23+[devicename]
24+SupportedOrientations=Portrait,InvertedPortrait,Landscape,InvertedLandscape
25+PrimaryOrientation=PrimaryOrienation
26+PortraitOrientation=Portrait
27+InvertedPortraitOrientation=InvertedPortrait
28+LandscapeOrientation=Landscape
29+InvertedLandscapeOrientation=InvertedLandscape
30+Category=phone
libs/UbuntuGestures/Timer.h+5
@@ -35,6 +35,11 @@ public:
3535 virtual int interval() const = 0;
3636 virtual void setInterval(int msecs) = 0;
3737 virtual void start() { m_isRunning = true; }
38+ virtual void start(int msecs)
39+ {
40+ setInterval(msecs);
41+ start();
42+ }
3843 virtual void stop() { m_isRunning = false; }
3944 bool isRunning() const { return m_isRunning; }
4045 virtual bool isSingleShot() const = 0;
libs/UbuntuGestures/TouchRegistry.cpp+15−10
@@ -359,10 +359,6 @@ void TouchRegistry::removeCandidateOwnerForTouchByIndex(Pool<TouchRegistry::Touc
359359
360360void TouchRegistry::requestTouchOwnership(int id, QQuickItem *candidate)
361361{
362− #if TOUCHREGISTRY_DEBUG
363− UG_DEBUG << "requestTouchOwnership id " << id << "candidate" << candidate;
364− #endif
365−
366362 Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(id);
367363 if (!touchInfo) { qFatal("TouchRegistry: Failed to find TouchInfo"); }
368364
@@ -379,6 +375,9 @@ void TouchRegistry::requestTouchOwnership(int id, QQuickItem *candidate)
379375 break;
380376 }
381377 }
378+ #if TOUCHREGISTRY_DEBUG
379+ UG_DEBUG << "requestTouchOwnership id " << id << "candidate" << candidate << "index: " << candidateIndex;
380+ #endif
382381
383382 // add it as a candidate if not present yet
384383 if (candidateIndex < 0) {
@@ -533,16 +532,22 @@ void TouchRegistry::TouchInfo::notifyCandidatesOfOwnershipResolution()
533532 << " gained) to candidate" << candidates[0].item;
534533 #endif
535534
536− TouchOwnershipEvent gainedOwnershipEvent(id, true /*gained*/);
537− QCoreApplication::sendEvent(candidates[0].item, &gainedOwnershipEvent);
535+ // need to take a copy of the item list in case
536+ // we call back in to remove candidate during the lost ownership event.
537+ QList<QPointer<QQuickItem>> items;
538+ Q_FOREACH(const CandidateInfo& info, candidates) {
539+ items << info.item;
540+ }
538541
542+ TouchOwnershipEvent gainedOwnershipEvent(id, true /*gained*/);
543+ QCoreApplication::sendEvent(items[0], &gainedOwnershipEvent);
539544
540545 TouchOwnershipEvent lostOwnershipEvent(id, false /*gained*/);
541− for (int i = 1; i < candidates.count(); ++i) {
546+ for (int i = 1; i < items.count(); ++i) {
542547 #if TOUCHREGISTRY_DEBUG
543− UG_DEBUG << "sending TouchWonershipEvent(id =" << id << " lost) to candidate"
544− << candidates[i].item;
548+ UG_DEBUG << "sending TouchOwnershipEvent(id =" << id << " lost) to candidate"
549+ << items[i];
545550 #endif
546− QCoreApplication::sendEvent(candidates[i].item, &lostOwnershipEvent);
551+ QCoreApplication::sendEvent(items[i], &lostOwnershipEvent);
547552 }
548553}
plugins/AccountsService/AccountsService.cpp+243−330
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013, 2015 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -12,8 +12,6 @@
1212 *
1313 * You should have received a copy of the GNU General Public License
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Author: Michael Terry <michael.terry@canonical.com>
1715 */
1816
1917#include "AccountsService.h"
@@ -24,17 +22,60 @@
2422#include <QStringList>
2523#include <QDebug>
2624
25+#define IFACE_ACCOUNTS_USER QStringLiteral("org.freedesktop.Accounts.User")
26+#define IFACE_LOCATION_HERE QStringLiteral("com.ubuntu.location.providers.here.AccountsService")
27+#define IFACE_UBUNTU_INPUT QStringLiteral("com.ubuntu.AccountsService.Input")
28+#define IFACE_UBUNTU_SECURITY QStringLiteral("com.ubuntu.AccountsService.SecurityPrivacy")
29+#define IFACE_UBUNTU_SECURITY_OLD QStringLiteral("com.ubuntu.touch.AccountsService.SecurityPrivacy")
30+#define IFACE_UNITY QStringLiteral("com.canonical.unity.AccountsService")
31+#define IFACE_UNITY_PRIVATE QStringLiteral("com.canonical.unity.AccountsService.Private")
32+
33+#define PROP_BACKGROUND_FILE QStringLiteral("BackgroundFile")
34+#define PROP_DEMO_EDGES QStringLiteral("demo-edges")
35+#define PROP_DEMO_EDGES_COMPLETED QStringLiteral("DemoEdgesCompleted")
36+#define PROP_EMAIL QStringLiteral("Email")
37+#define PROP_ENABLE_INDICATORS_WHILE_LOCKED QStringLiteral("EnableIndicatorsWhileLocked")
38+#define PROP_ENABLE_LAUNCHER_WHILE_LOCKED QStringLiteral("EnableLauncherWhileLocked")
39+#define PROP_FAILED_LOGINS QStringLiteral("FailedLogins")
40+#define PROP_INPUT_SOURCES QStringLiteral("InputSources")
41+#define PROP_LICENSE_ACCEPTED QStringLiteral("LicenseAccepted")
42+#define PROP_LICENSE_BASE_PATH QStringLiteral("LicenseBasePath")
43+#define PROP_MOUSE_CURSOR_SPEED QStringLiteral("MouseCursorSpeed")
44+#define PROP_MOUSE_DOUBLE_CLICK_SPEED QStringLiteral("MouseDoubleClickSpeed")
45+#define PROP_MOUSE_PRIMARY_BUTTON QStringLiteral("MousePrimaryButton")
46+#define PROP_MOUSE_SCROLL_SPEED QStringLiteral("MouseScrollSpeed")
47+#define PROP_PASSWORD_DISPLAY_HINT QStringLiteral("PasswordDisplayHint")
48+#define PROP_REAL_NAME QStringLiteral("RealName")
49+#define PROP_STATS_WELCOME_SCREEN QStringLiteral("StatsWelcomeScreen")
50+#define PROP_TOUCHPAD_CURSOR_SPEED QStringLiteral("TouchpadCursorSpeed")
51+#define PROP_TOUCHPAD_DISABLE_WHILE_TYPING QStringLiteral("TouchpadDisableWhileTyping")
52+#define PROP_TOUCHPAD_DISABLE_WITH_MOUSE QStringLiteral("TouchpadDisableWithMouse")
53+#define PROP_TOUCHPAD_DOUBLE_CLICK_SPEED QStringLiteral("TouchpadDoubleClickSpeed")
54+#define PROP_TOUCHPAD_PRIMARY_BUTTON QStringLiteral("TouchpadPrimaryButton")
55+#define PROP_TOUCHPAD_SCROLL_SPEED QStringLiteral("TouchpadScrollSpeed")
56+#define PROP_TOUCHPAD_TAP_TO_CLICK QStringLiteral("TouchpadTapToClick")
57+#define PROP_TOUCHPAD_TWO_FINGER_SCROLL QStringLiteral("TouchpadTwoFingerScroll")
58+
59+using StringMap = QMap<QString,QString>;
60+using StringMapList = QList<StringMap>;
61+Q_DECLARE_METATYPE(StringMapList)
62+
63+
64+QVariant primaryButtonConverter(const QVariant &value)
65+{
66+ QString stringValue = value.toString();
67+ if (stringValue == "left") {
68+ return QVariant::fromValue(0);
69+ } else if (stringValue == "right") {
70+ return QVariant::fromValue(1); // Mir is less clear on this -- any non-zero value is the same
71+ } else {
72+ return QVariant::fromValue(0); // default to left
73+ }
74+}
75+
2776AccountsService::AccountsService(QObject* parent, const QString &user)
28− : QObject(parent),
29− m_service(new AccountsServiceDBusAdaptor(this)),
30− m_demoEdges(false),
31− m_enableLauncherWhileLocked(false),
32− m_enableIndicatorsWhileLocked(false),
33− m_statsWelcomeScreen(false),
34− m_passwordDisplayHint(Keyboard),
35− m_failedLogins(0),
36− m_hereEnabled(false),
37− m_hereLicensePath() // null means not set yet
77+ : QObject(parent)
78+ , m_service(new AccountsServiceDBusAdaptor(this))
3879{
3980 m_unityInput = new QDBusInterface(QStringLiteral("com.canonical.Unity.Input"),
4081 QStringLiteral("/com/canonical/Unity/Input"),
@@ -44,6 +85,47 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
4485 connect(m_service, &AccountsServiceDBusAdaptor::propertiesChanged, this, &AccountsService::onPropertiesChanged);
4586 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged, this, &AccountsService::onMaybeChanged);
4687
88+ registerProperty(IFACE_ACCOUNTS_USER, PROP_BACKGROUND_FILE, QStringLiteral("backgroundFileChanged"));
89+ registerProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL, QStringLiteral("emailChanged"));
90+ registerProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME, QStringLiteral("realNameChanged"));
91+ registerProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES, QStringLiteral("keymapsChanged"));
92+ registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED, QStringLiteral("hereEnabledChanged"));
93+ registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH, QStringLiteral("hereLicensePathChanged"));
94+ registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED, QStringLiteral("enableLauncherWhileLockedChanged"));
95+ registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_INDICATORS_WHILE_LOCKED, QStringLiteral("enableIndicatorsWhileLockedChanged"));
96+ registerProperty(IFACE_UBUNTU_SECURITY, PROP_PASSWORD_DISPLAY_HINT, QStringLiteral("passwordDisplayHintChanged"));
97+ registerProperty(IFACE_UBUNTU_SECURITY_OLD, PROP_STATS_WELCOME_SCREEN, QStringLiteral("statsWelcomeScreenChanged"));
98+ registerProperty(IFACE_UNITY, PROP_DEMO_EDGES, QStringLiteral("demoEdgesChanged"));
99+ registerProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, QStringLiteral("demoEdgesCompletedChanged"));
100+ registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS, QStringLiteral("failedLoginsChanged"));
101+
102+ registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_CURSOR_SPEED,
103+ m_unityInput, QStringLiteral("setMouseCursorSpeed"));
104+ registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_DOUBLE_CLICK_SPEED,
105+ m_unityInput, QStringLiteral("setMouseDoubleClickSpeed"));
106+ registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_PRIMARY_BUTTON,
107+ m_unityInput, QStringLiteral("setMousePrimaryButton"),
108+ primaryButtonConverter);
109+ registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_SCROLL_SPEED,
110+ m_unityInput, QStringLiteral("setMouseScrollSpeed"));
111+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_CURSOR_SPEED,
112+ m_unityInput, QStringLiteral("setTouchpadCursorSpeed"));
113+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_SCROLL_SPEED,
114+ m_unityInput, QStringLiteral("setTouchpadScrollSpeed"));
115+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_DISABLE_WHILE_TYPING,
116+ m_unityInput, QStringLiteral("setTouchpadDisableWhileTyping"));
117+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_DISABLE_WITH_MOUSE,
118+ m_unityInput, QStringLiteral("setTouchpadDisableWithMouse"));
119+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_DOUBLE_CLICK_SPEED,
120+ m_unityInput, QStringLiteral("setTouchpadDoubleClickSpeed"));
121+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_PRIMARY_BUTTON,
122+ m_unityInput, QStringLiteral("setTouchpadPrimaryButton"),
123+ primaryButtonConverter);
124+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_TAP_TO_CLICK,
125+ m_unityInput, QStringLiteral("setTouchpadTapToClick"));
126+ registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_TWO_FINGER_SCROLL,
127+ m_unityInput, QStringLiteral("setTouchpadTwoFingerScroll"));
128+
47129 setUser(!user.isEmpty() ? user : QString::fromUtf8(qgetenv("USER")));
48130}
49131
@@ -57,410 +139,256 @@ void AccountsService::setUser(const QString &user)
57139 if (user.isEmpty() || m_user == user)
58140 return;
59141
142+ bool wasEmpty = m_user.isEmpty();
143+
60144 m_user = user;
61145 Q_EMIT userChanged();
62146
63− updateDemoEdges(false);
64− updateEnableLauncherWhileLocked(false);
65− updateEnableIndicatorsWhileLocked(false);
66− updateBackgroundFile(false);
67− updateMouseCursorSpeed();
68− updateTouchpadCursorSpeed();
69− updateStatsWelcomeScreen(false);
70− updatePasswordDisplayHint(false);
71− updateFailedLogins(false);
72− updateHereEnabled(false);
73− updateHereLicensePath(false);
147+ // Do the first update synchronously, as a cheap way to block rendering
148+ // until we have the right values on bootup.
149+ refresh(!wasEmpty);
74150}
75151
76152bool AccountsService::demoEdges() const
77153{
78− return m_demoEdges;
154+ auto value = getProperty(IFACE_UNITY, PROP_DEMO_EDGES);
155+ return value.toBool();
79156}
80157
81158void AccountsService::setDemoEdges(bool demoEdges)
82159{
83− if (m_demoEdges != demoEdges) {
84− m_demoEdges = demoEdges;
85− m_service->setUserPropertyAsync(m_user, QStringLiteral("com.canonical.unity.AccountsService"), QStringLiteral("demo-edges"), demoEdges);
160+ setProperty(IFACE_UNITY, PROP_DEMO_EDGES, demoEdges);
161+}
162+
163+QStringList AccountsService::demoEdgesCompleted() const
164+{
165+ auto value = getProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED);
166+ return value.toStringList();
167+}
86168
87− Q_EMIT demoEdgesChanged();
169+void AccountsService::markDemoEdgeCompleted(const QString &edge)
170+{
171+ auto currentList = demoEdgesCompleted();
172+ if (!currentList.contains(edge)) {
173+ setProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, currentList << edge);
88174 }
89175}
90176
91177bool AccountsService::enableLauncherWhileLocked() const
92178{
93− return m_enableLauncherWhileLocked;
179+ auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED);
180+ return value.toBool();
94181}
95182
96183bool AccountsService::enableIndicatorsWhileLocked() const
97184{
98− return m_enableIndicatorsWhileLocked;
185+ auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_INDICATORS_WHILE_LOCKED);
186+ return value.toBool();
99187}
100188
101189QString AccountsService::backgroundFile() const
102190{
103− return m_backgroundFile;
191+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_BACKGROUND_FILE);
192+ return value.toString();
104193}
105194
106195bool AccountsService::statsWelcomeScreen() const
107196{
108− return m_statsWelcomeScreen;
197+ auto value = getProperty(IFACE_UBUNTU_SECURITY_OLD, PROP_STATS_WELCOME_SCREEN);
198+ return value.toBool();
109199}
110200
111201AccountsService::PasswordDisplayHint AccountsService::passwordDisplayHint() const
112202{
113− return m_passwordDisplayHint;
203+ auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_PASSWORD_DISPLAY_HINT);
204+ return (PasswordDisplayHint)value.toInt();
114205}
115206
116207bool AccountsService::hereEnabled() const
117208{
118− return m_hereEnabled;
209+ auto value = getProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED);
210+ return value.toBool();
119211}
120212
121213void AccountsService::setHereEnabled(bool enabled)
122214{
123− if (m_hereEnabled != enabled) {
124− m_hereEnabled = enabled;
125− m_service->setUserPropertyAsync(m_user, QStringLiteral("com.ubuntu.location.providers.here.AccountsService"), QStringLiteral("LicenseAccepted"), enabled);
126−
127− Q_EMIT hereEnabledChanged();
128− }
215+ setProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED, enabled);
129216}
130217
131218QString AccountsService::hereLicensePath() const
132219{
133− return m_hereLicensePath;
220+ auto value = getProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH);
221+ QString hereLicensePath = value.toString();
222+ if (hereLicensePath.isEmpty() || !QFile::exists(hereLicensePath))
223+ hereLicensePath = QStringLiteral("");
224+ return hereLicensePath;
134225}
135226
136227bool AccountsService::hereLicensePathValid() const
137228{
138− return !m_hereLicensePath.isNull();
229+ auto value = getProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH);
230+ return !value.toString().isNull();
139231}
140232
141−void AccountsService::updateDemoEdges(bool async)
233+QString AccountsService::realName() const
142234{
143− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
144− QStringLiteral("com.canonical.unity.AccountsService"),
145− QStringLiteral("demo-edges"));
146− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
147−
148− connect(watcher, &QDBusPendingCallWatcher::finished,
149− this, [this](QDBusPendingCallWatcher* watcher) {
150−
151− QDBusPendingReply<QDBusVariant> reply = *watcher;
152− watcher->deleteLater();
153− if (reply.isError()) {
154− qWarning() << "Failed to get 'demo-edges' property - " << reply.error().message();
155− return;
156− }
157−
158− auto demoEdges = reply.value().variant().toBool();
159− if (m_demoEdges != demoEdges) {
160− m_demoEdges = demoEdges;
161− Q_EMIT demoEdgesChanged();
162− }
163− });
164− if (!async) {
165− watcher->waitForFinished();
166− delete watcher;
167− }
235+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME);
236+ return value.toString();
168237}
169238
170−void AccountsService::updateEnableLauncherWhileLocked(bool async)
239+void AccountsService::setRealName(const QString &realName)
171240{
172− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
173− QStringLiteral("com.ubuntu.AccountsService.SecurityPrivacy"),
174− QStringLiteral("EnableLauncherWhileLocked"));
175− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
176−
177− connect(watcher, &QDBusPendingCallWatcher::finished,
178− this, [this](QDBusPendingCallWatcher* watcher) {
179−
180− QDBusPendingReply<QVariant> reply = *watcher;
181− watcher->deleteLater();
182− if (reply.isError()) {
183− qWarning() << "Failed to get 'EnableLauncherWhileLocked' property - " << reply.error().message();
184− return;
185− }
186−
187− const bool enableLauncherWhileLocked = reply.value().toBool();
188− if (m_enableLauncherWhileLocked != enableLauncherWhileLocked) {
189− m_enableLauncherWhileLocked = enableLauncherWhileLocked;
190− Q_EMIT enableLauncherWhileLockedChanged();
191− }
192− });
193− if (!async) {
194− watcher->waitForFinished();
195− delete watcher;
196− }
241+ setProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME, realName);
197242}
198243
199−void AccountsService::updateEnableIndicatorsWhileLocked(bool async)
244+QString AccountsService::email() const
200245{
201− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
202− QStringLiteral("com.ubuntu.AccountsService.SecurityPrivacy"),
203− QStringLiteral("EnableIndicatorsWhileLocked"));
204− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
205−
206− connect(watcher, &QDBusPendingCallWatcher::finished,
207− this, [this](QDBusPendingCallWatcher* watcher) {
208−
209− QDBusPendingReply<QVariant> reply = *watcher;
210− watcher->deleteLater();
211− if (reply.isError()) {
212− qWarning() << "Failed to get 'EnableIndicatorsWhileLocked' property - " << reply.error().message();
213− return;
214− }
215−
216− const bool enableIndicatorsWhileLocked = reply.value().toBool();
217− if (m_enableIndicatorsWhileLocked != enableIndicatorsWhileLocked) {
218− m_enableIndicatorsWhileLocked = enableIndicatorsWhileLocked;
219− Q_EMIT enableIndicatorsWhileLockedChanged();
220− }
221− });
222− if (!async) {
223− watcher->waitForFinished();
224− delete watcher;
225− }
246+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL);
247+ return value.toString();
226248}
227249
228−void AccountsService::updateBackgroundFile(bool async)
250+void AccountsService::setEmail(const QString &email)
229251{
230− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
231− QStringLiteral("org.freedesktop.Accounts.User"),
232− QStringLiteral("BackgroundFile"));
233− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
234−
235− connect(watcher, &QDBusPendingCallWatcher::finished,
236− this, [this](QDBusPendingCallWatcher* watcher) {
252+ setProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL, email);
253+}
237254
238− QDBusPendingReply<QVariant> reply = *watcher;
239− watcher->deleteLater();
240− if (reply.isError()) {
241− qWarning() << "Failed to get 'BackgroundFile' property - " << reply.error().message();
242− return;
255+QStringList AccountsService::keymaps() const
256+{
257+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES);
258+ QDBusArgument arg = value.value<QDBusArgument>();
259+ StringMapList maps = qdbus_cast<StringMapList>(arg);
260+ QStringList simplifiedMaps;
261+
262+ Q_FOREACH(const StringMap &map, maps) {
263+ Q_FOREACH(const QString &entry, map) {
264+ simplifiedMaps.append(entry);
243265 }
266+ }
244267
245− const QString backgroundFile = reply.value().toString();
246− if (m_backgroundFile != backgroundFile) {
247− m_backgroundFile = backgroundFile;
248− Q_EMIT backgroundFileChanged();
249− }
250− });
251− if (!async) {
252− watcher->waitForFinished();
253− delete watcher;
268+ if (!simplifiedMaps.isEmpty()) {
269+ return simplifiedMaps;
254270 }
271+
272+ return {QStringLiteral("us")};
255273}
256274
257−void AccountsService::updateMouseCursorSpeed()
275+uint AccountsService::failedLogins() const
258276{
259− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
260− QStringLiteral("com.ubuntu.AccountsService.Input"),
261− QStringLiteral("MouseCursorSpeed"));
262− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
263−
264− connect(watcher, &QDBusPendingCallWatcher::finished,
265− this, [this](QDBusPendingCallWatcher* watcher) {
266−
267− QDBusPendingReply<QVariant> reply = *watcher;
268− watcher->deleteLater();
269− if (reply.isError()) {
270− qWarning() << "Failed to get 'MouseCursorSpeed' property - " << reply.error().message();
271− return;
272− }
273−
274− // Merely proxy this along to USC. We don't care about keeping a copy
275− // or exporting it internally.
276− m_unityInput->asyncCall(QStringLiteral("setMouseCursorSpeed"), reply.value());
277− });
277+ return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS).toUInt();
278278}
279279
280−void AccountsService::updateTouchpadCursorSpeed()
280+void AccountsService::setFailedLogins(uint failedLogins)
281281{
282− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
283− QStringLiteral("com.ubuntu.AccountsService.Input"),
284− QStringLiteral("TouchpadCursorSpeed"));
285− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
286−
287− connect(watcher, &QDBusPendingCallWatcher::finished,
288− this, [this](QDBusPendingCallWatcher* watcher) {
282+ setProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS, failedLogins);
283+}
289284
290− QDBusPendingReply<QVariant> reply = *watcher;
291− watcher->deleteLater();
292− if (reply.isError()) {
293− qWarning() << "Failed to get 'TouchpadCursorSpeed' property - " << reply.error().message();
294− return;
295− }
285+// ====================================================
286+// Everything below this line is generic helper methods
287+// ====================================================
296288
297− // Merely proxy this along to USC. We don't care about keeping a copy
298− // or exporting it internally.
299− m_unityInput->asyncCall(QStringLiteral("setTouchpadCursorSpeed"), reply.value());
300− });
289+void AccountsService::emitChangedForProperty(const QString &interface, const QString &property)
290+{
291+ QString signalName = m_properties[interface][property].signal;
292+ QMetaObject::invokeMethod(this, signalName.toUtf8().data());
301293}
302294
303−void AccountsService::updateStatsWelcomeScreen(bool async)
295+QVariant AccountsService::getProperty(const QString &interface, const QString &property) const
304296{
305− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
306− QStringLiteral("com.ubuntu.touch.AccountsService.SecurityPrivacy"),
307− QStringLiteral("StatsWelcomeScreen"));
308− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
309−
310− connect(watcher, &QDBusPendingCallWatcher::finished,
311− this, [this](QDBusPendingCallWatcher* watcher) {
312−
313− QDBusPendingReply<QVariant> reply = *watcher;
314− watcher->deleteLater();
315− if (reply.isError()) {
316− qWarning() << "Failed to get 'StatsWelcomeScreen' property - " << reply.error().message();
317− return;
318− }
319−
320− const bool statsWelcomeScreen = reply.value().toBool();
321− if (m_statsWelcomeScreen != statsWelcomeScreen) {
322− m_statsWelcomeScreen = statsWelcomeScreen;
323− Q_EMIT statsWelcomeScreenChanged();
324− }
325− });
326− if (!async) {
327− watcher->waitForFinished();
328− delete watcher;
329− }
297+ return m_properties[interface][property].value;
330298}
331299
332−void AccountsService::updatePasswordDisplayHint(bool async)
300+void AccountsService::setProperty(const QString &interface, const QString &property, const QVariant &value)
333301{
334− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
335− QStringLiteral("com.ubuntu.AccountsService.SecurityPrivacy"),
336− QStringLiteral("PasswordDisplayHint"));
337− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
338−
339− connect(watcher, &QDBusPendingCallWatcher::finished,
340− this, [this](QDBusPendingCallWatcher* watcher) {
341−
342− QDBusPendingReply<QVariant> reply = *watcher;
343− watcher->deleteLater();
344− if (reply.isError()) {
345− qWarning() << "Failed to get 'PasswordDisplayHint' property - " << reply.error().message();
346− return;
347− }
348−
349− const PasswordDisplayHint passwordDisplayHint = (PasswordDisplayHint)reply.value().toInt();
350− if (m_passwordDisplayHint != passwordDisplayHint) {
351− m_passwordDisplayHint = passwordDisplayHint;
352− Q_EMIT passwordDisplayHintChanged();
353− }
354− });
355− if (!async) {
356− watcher->waitForFinished();
357− delete watcher;
302+ if (m_properties[interface][property].value != value) {
303+ m_properties[interface][property].value = value;
304+ m_service->setUserPropertyAsync(m_user, interface, property, value);
305+ emitChangedForProperty(interface, property);
358306 }
359307}
360308
361−void AccountsService::updateFailedLogins(bool async)
309+void AccountsService::updateCache(const QString &interface, const QString &property, const QVariant &value)
362310{
363− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
364− QStringLiteral("com.canonical.unity.AccountsService.Private"),
365− QStringLiteral("FailedLogins"));
366− QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
367−
368− connect(watcher, &QDBusPendingCallWatcher::finished,
369− this, [this](QDBusPendingCallWatcher* watcher) {
370−
371− QDBusPendingReply<QVariant> reply = *watcher;
372− watcher->deleteLater();
373− if (reply.isError()) {
374− qWarning() << "Failed to get 'FailedLogins' property - " << reply.error().message();
375− return;
311+ PropertyInfo &info = m_properties[interface][property];
312+
313+ if (info.proxyInterface) {
314+ QVariant finalValue;
315+ if (info.proxyConverter) {
316+ finalValue = info.proxyConverter(value);
317+ } else {
318+ finalValue = value;
376319 }
320+ info.proxyInterface->asyncCall(info.proxyMethod, finalValue);
321+ return; // don't bother saving a copy
322+ }
377323
378− const uint failedLogins = reply.value().toUInt();
379− if (m_failedLogins != failedLogins) {
380− m_failedLogins = failedLogins;
381− Q_EMIT failedLoginsChanged();
382− }
383− });
384− if (!async) {
385− watcher->waitForFinished();
386− delete watcher;
324+ if (info.value != value) {
325+ info.value = value;
326+ emitChangedForProperty(interface, property);
387327 }
388328}
389329
390−void AccountsService::updateHereEnabled(bool async)
330+void AccountsService::updateProperty(const QString &interface, const QString &property)
391331{
392332 QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
393− QStringLiteral("com.ubuntu.location.providers.here.AccountsService"),
394− QStringLiteral("LicenseAccepted"));
333+ interface,
334+ property);
395335 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
396336
397337 connect(watcher, &QDBusPendingCallWatcher::finished,
398− this, [this](QDBusPendingCallWatcher* watcher) {
338+ this, [this, interface, property](QDBusPendingCallWatcher* watcher) {
399339
400340 QDBusPendingReply<QVariant> reply = *watcher;
401341 watcher->deleteLater();
402342 if (reply.isError()) {
403− qWarning() << "Failed to get 'LicenseAccepted' property - " << reply.error().message();
343+ qWarning() << "Failed to get '" << property << "' property:" << reply.error().message();
404344 return;
405345 }
406346
407− const bool hereEnabled = reply.value().toBool();
408− if (m_hereEnabled != hereEnabled) {
409− m_hereEnabled = hereEnabled;
410− Q_EMIT hereEnabledChanged();
411− }
347+ updateCache(interface, property, reply.value());
412348 });
413− if (!async) {
414− watcher->waitForFinished();
415− delete watcher;
416− }
417349}
418350
419−void AccountsService::updateHereLicensePath(bool async)
351+void AccountsService::updateAllProperties(const QString &interface, bool async)
420352{
421− QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
422− QStringLiteral("com.ubuntu.location.providers.here.AccountsService"),
423− QStringLiteral("LicenseBasePath"));
353+ QDBusPendingCall pendingReply = m_service->getAllPropertiesAsync(m_user,
354+ interface);
424355 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
425356
426357 connect(watcher, &QDBusPendingCallWatcher::finished,
427− this, [this](QDBusPendingCallWatcher* watcher) {
358+ this, [this, interface](QDBusPendingCallWatcher* watcher) {
428359
429− QDBusPendingReply<QVariant> reply = *watcher;
360+ QDBusPendingReply< QHash<QString, QVariant> > reply = *watcher;
430361 watcher->deleteLater();
431362 if (reply.isError()) {
432− qWarning() << "Failed to get 'LicenseBasePath' property - " << reply.error().message();
363+ qWarning() << "Failed to get all properties for" << interface << ":" << reply.error().message();
433364 return;
434365 }
435366
436− QString hereLicensePath = reply.value().toString();
437− if (hereLicensePath.isEmpty() || !QFile::exists(hereLicensePath))
438− hereLicensePath = QLatin1String("");
439−
440− if (m_hereLicensePath.isNull() || m_hereLicensePath != hereLicensePath) {
441− m_hereLicensePath = hereLicensePath;
442− Q_EMIT hereLicensePathChanged();
367+ auto valueHash = reply.value();
368+ auto i = valueHash.constBegin();
369+ while (i != valueHash.constEnd()) {
370+ updateCache(interface, i.key(), i.value());
371+ ++i;
443372 }
444373 });
445374 if (!async) {
446375 watcher->waitForFinished();
447− delete watcher;
448376 }
449377}
450378
451−uint AccountsService::failedLogins() const
379+void AccountsService::registerProxy(const QString &interface, const QString &property, QDBusInterface *iface, const QString &method, ProxyConverter converter)
452380{
453− return m_failedLogins;
381+ registerProperty(interface, property, nullptr);
382+
383+ m_properties[interface][property].proxyInterface = iface;
384+ m_properties[interface][property].proxyMethod = method;
385+ m_properties[interface][property].proxyConverter = converter;
454386}
455387
456−void AccountsService::setFailedLogins(uint failedLogins)
388+void AccountsService::registerProperty(const QString &interface, const QString &property, const QString &signal)
457389{
458− if (m_failedLogins != failedLogins) {
459− m_failedLogins = failedLogins;
460− m_service->setUserPropertyAsync(m_user, QStringLiteral("com.canonical.unity.AccountsService.Private"), QStringLiteral("FailedLogins"), failedLogins);
461−
462− Q_EMIT failedLoginsChanged();
463− }
390+ m_properties[interface][property] = PropertyInfo();
391+ m_properties[interface][property].signal = signal;
464392}
465393
466394void AccountsService::onPropertiesChanged(const QString &user, const QString &interface, const QStringList &changed)
@@ -469,42 +397,13 @@ void AccountsService::onPropertiesChanged(const QString &user, const QString &in
469397 return;
470398 }
471399
472− if (interface == QLatin1String("com.canonical.unity.AccountsService")) {
473− if (changed.contains(QStringLiteral("demo-edges"))) {
474− updateDemoEdges();
475− }
476− } else if (interface == QLatin1String("com.canonical.unity.AccountsService.Private")) {
477− if (changed.contains(QStringLiteral("FailedLogins"))) {
478− updateFailedLogins();
479− }
480− } else if (interface == QLatin1String("com.ubuntu.AccountsService.Input")) {
481− if (changed.contains(QStringLiteral("MouseCursorSpeed"))) {
482− updateMouseCursorSpeed();
483− }
484− if (changed.contains(QStringLiteral("TouchpadCursorSpeed"))) {
485− updateTouchpadCursorSpeed();
486− }
487− } else if (interface == QLatin1String("com.ubuntu.touch.AccountsService.SecurityPrivacy")) {
488− if (changed.contains(QStringLiteral("StatsWelcomeScreen"))) {
489− updateStatsWelcomeScreen();
490− }
491− } else if (interface == QLatin1String("com.ubuntu.AccountsService.SecurityPrivacy")) {
492− if (changed.contains(QStringLiteral("PasswordDisplayHint"))) {
493− updatePasswordDisplayHint();
494− }
495− if (changed.contains(QStringLiteral("EnableLauncherWhileLocked"))) {
496− updateEnableLauncherWhileLocked();
497− }
498− if (changed.contains(QStringLiteral("EnableIndicatorsWhileLocked"))) {
499− updateEnableIndicatorsWhileLocked();
500− }
501− } else if (interface == QLatin1String("com.ubuntu.location.providers.here.AccountsService")) {
502− if (changed.contains(QStringLiteral("LicenseAccepted"))) {
503− updateHereEnabled();
504− }
505− if (changed.contains(QStringLiteral("LicenseBasePath"))) {
506− updateHereLicensePath();
400+ auto propHash = m_properties.value(interface);
401+ auto i = propHash.constBegin();
402+ while (i != propHash.constEnd()) {
403+ if (changed.contains(i.key())) {
404+ updateProperty(interface, i.key());
507405 }
406+ ++i;
508407 }
509408}
510409
@@ -514,6 +413,20 @@ void AccountsService::onMaybeChanged(const QString &user)
514413 return;
515414 }
516415
517− // Standard properties might have changed
518− updateBackgroundFile();
416+ // Any of the standard properties might have changed!
417+ auto propHash = m_properties.value(IFACE_ACCOUNTS_USER);
418+ auto i = propHash.constBegin();
419+ while (i != propHash.constEnd()) {
420+ updateProperty(IFACE_ACCOUNTS_USER, i.key());
421+ ++i;
422+ }
423+}
424+
425+void AccountsService::refresh(bool async)
426+{
427+ auto i = m_properties.constBegin();
428+ while (i != m_properties.constEnd()) {
429+ updateAllProperties(i.key(), async);
430+ ++i;
431+ }
519432}
plugins/AccountsService/AccountsService.h+46−23
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013, 2015 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -12,15 +12,16 @@
1212 *
1313 * You should have received a copy of the GNU General Public License
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors: Michael Terry <michael.terry@canonical.com>
1715 */
1816
1917#ifndef UNITY_ACCOUNTSSERVICE_H
2018#define UNITY_ACCOUNTSSERVICE_H
2119
20+#include <QHash>
2221#include <QObject>
2322#include <QString>
23+#include <QStringList>
24+#include <QVariant>
2425
2526class AccountsServiceDBusAdaptor;
2627class QDBusInterface;
@@ -37,6 +38,9 @@ class AccountsService: public QObject
3738 READ demoEdges
3839 WRITE setDemoEdges
3940 NOTIFY demoEdgesChanged)
41+ Q_PROPERTY (QStringList demoEdgesCompleted
42+ READ demoEdgesCompleted
43+ NOTIFY demoEdgesCompletedChanged)
4044 Q_PROPERTY (bool enableLauncherWhileLocked
4145 READ enableLauncherWhileLocked
4246 NOTIFY enableLauncherWhileLockedChanged)
@@ -66,6 +70,11 @@ class AccountsService: public QObject
6670 Q_PROPERTY(bool hereLicensePathValid // qml sees a null string as "", so we use proxy setting for that
6771 READ hereLicensePathValid
6872 NOTIFY hereLicensePathChanged)
73+ Q_PROPERTY(QString realName READ realName WRITE setRealName NOTIFY realNameChanged)
74+ Q_PROPERTY(QString email READ email WRITE setEmail NOTIFY emailChanged)
75+ Q_PROPERTY(QStringList keymaps
76+ READ keymaps
77+ NOTIFY keymapsChanged)
6978
7079public:
7180 enum PasswordDisplayHint {
@@ -80,6 +89,8 @@ public:
8089 void setUser(const QString &user);
8190 bool demoEdges() const;
8291 void setDemoEdges(bool demoEdges);
92+ QStringList demoEdgesCompleted() const;
93+ Q_INVOKABLE void markDemoEdgeCompleted(const QString &edge);
8394 bool enableLauncherWhileLocked() const;
8495 bool enableIndicatorsWhileLocked() const;
8596 QString backgroundFile() const;
@@ -91,10 +102,16 @@ public:
91102 void setHereEnabled(bool enabled);
92103 QString hereLicensePath() const;
93104 bool hereLicensePathValid() const;
105+ QString realName() const;
106+ void setRealName(const QString &realName);
107+ QString email() const;
108+ void setEmail(const QString &email);
109+ QStringList keymaps() const;
94110
95111Q_SIGNALS:
96112 void userChanged();
97113 void demoEdgesChanged();
114+ void demoEdgesCompletedChanged();
98115 void enableLauncherWhileLockedChanged();
99116 void enableIndicatorsWhileLockedChanged();
100117 void backgroundFileChanged();
@@ -103,36 +120,42 @@ Q_SIGNALS:
103120 void failedLoginsChanged();
104121 void hereEnabledChanged();
105122 void hereLicensePathChanged();
123+ void realNameChanged();
124+ void emailChanged();
125+ void keymapsChanged();
106126
107127private Q_SLOTS:
108128 void onPropertiesChanged(const QString &user, const QString &interface, const QStringList &changed);
109129 void onMaybeChanged(const QString &user);
110130
111131private:
112− void updateDemoEdges(bool async = true);
113− void updateEnableLauncherWhileLocked(bool async = true);
114− void updateEnableIndicatorsWhileLocked(bool async = true);
115− void updateBackgroundFile(bool async = true);
116− void updateMouseCursorSpeed();
117− void updateTouchpadCursorSpeed();
118− void updateStatsWelcomeScreen(bool async = true);
119− void updatePasswordDisplayHint(bool async = true);
120− void updateFailedLogins(bool async = true);
121− void updateHereEnabled(bool async = true);
122− void updateHereLicensePath(bool async = true);
132+ typedef QVariant (*ProxyConverter)(const QVariant &);
133+
134+ void refresh(bool async);
135+ void registerProperty(const QString &interface, const QString &property, const QString &signal);
136+ void registerProxy(const QString &interface, const QString &property, QDBusInterface *iface, const QString &method, ProxyConverter converter = nullptr);
137+
138+ void updateAllProperties(const QString &interface, bool async);
139+ void updateProperty(const QString &interface, const QString &property);
140+ void updateCache(const QString &interface, const QString &property, const QVariant &value);
123141
142+ void setProperty(const QString &interface, const QString &property, const QVariant &value);
143+ QVariant getProperty(const QString &interface, const QString &property) const;
144+
145+ void emitChangedForProperty(const QString &interface, const QString &property);
146+
147+ struct PropertyInfo {
148+ QVariant value{};
149+ QString signal{};
150+ QDBusInterface *proxyInterface{};
151+ QString proxyMethod{};
152+ ProxyConverter proxyConverter{};
153+ };
154+ typedef QHash< QString, QHash<QString, PropertyInfo> > PropertyHash;
155+ PropertyHash m_properties;
124156 AccountsServiceDBusAdaptor *m_service;
125157 QDBusInterface *m_unityInput;
126158 QString m_user;
127− bool m_demoEdges;
128− bool m_enableLauncherWhileLocked;
129− bool m_enableIndicatorsWhileLocked;
130− QString m_backgroundFile;
131− bool m_statsWelcomeScreen;
132− PasswordDisplayHint m_passwordDisplayHint;
133− uint m_failedLogins;
134− bool m_hereEnabled;
135− QString m_hereLicensePath;
136159};
137160
138161#endif
plugins/AccountsService/AccountsService.qmltypes+5
@@ -23,6 +23,7 @@ Module {
2323 }
2424 Property { name: "user"; type: "string" }
2525 Property { name: "demoEdges"; type: "bool" }
26+ Property { name: "demoEdgesCompleted"; type: "QStringList"; isReadonly: true }
2627 Property { name: "enableLauncherWhileLocked"; type: "bool"; isReadonly: true }
2728 Property { name: "enableIndicatorsWhileLocked"; type: "bool"; isReadonly: true }
2829 Property { name: "backgroundFile"; type: "string"; isReadonly: true }
@@ -32,5 +33,9 @@ Module {
3233 Property { name: "hereEnabled"; type: "bool" }
3334 Property { name: "hereLicensePath"; type: "string"; isReadonly: true }
3435 Property { name: "hereLicensePathValid"; type: "bool"; isReadonly: true }
36+ Method {
37+ name: "markDemoEdgeCompleted"
38+ Parameter { name: "edge"; type: "string" }
39+ }
3540 }
3641}
plugins/AccountsService/AccountsServiceDBusAdaptor.cpp+23−6
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -12,8 +12,6 @@
1212 *
1313 * You should have received a copy of the GNU General Public License
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Author: Michael Terry <michael.terry@canonical.com>
1715 */
1816
1917#include "AccountsServiceDBusAdaptor.h"
@@ -37,6 +35,15 @@ AccountsServiceDBusAdaptor::AccountsServiceDBusAdaptor(QObject* parent)
3735 connection, this);
3836}
3937
38+QDBusPendingReply<QVariantMap> AccountsServiceDBusAdaptor::getAllPropertiesAsync(const QString &user, const QString &interface)
39+{
40+ QDBusInterface *iface = getUserInterface(user);
41+ if (iface != nullptr && iface->isValid()) {
42+ return iface->asyncCall(QStringLiteral("GetAll"), interface);
43+ }
44+ return QDBusPendingReply<QVariantMap>(QDBusMessage::createError(QDBusError::Other, QStringLiteral("Invalid Interface")));
45+}
46+
4047QDBusPendingReply<QVariant> AccountsServiceDBusAdaptor::getUserPropertyAsync(const QString &user, const QString &interface, const QString &property)
4148{
4249 QDBusInterface *iface = getUserInterface(user);
@@ -50,8 +57,18 @@ QDBusPendingCall AccountsServiceDBusAdaptor::setUserPropertyAsync(const QString
5057{
5158 QDBusInterface *iface = getUserInterface(user);
5259 if (iface != nullptr && iface->isValid()) {
53− // The value needs to be carefully wrapped
54− return iface->asyncCall(QStringLiteral("Set"), interface, property, QVariant::fromValue(QDBusVariant(value)));
60+ if (interface == QStringLiteral("org.freedesktop.Accounts.User")) {
61+ // Standard AccountsService properties use special set methods.
62+ // It will not let you use the usual DBus property setters.
63+ QDBusInterface accountsIface(iface->service(),
64+ iface->path(),
65+ interface,
66+ iface->connection());
67+ return accountsIface.asyncCall(QStringLiteral("Set") + property, value);
68+ } else {
69+ // The value needs to be carefully wrapped
70+ return iface->asyncCall(QStringLiteral("Set"), interface, property, QVariant::fromValue(QDBusVariant(value)));
71+ }
5572 }
5673 return QDBusPendingCall::fromCompletedCall(QDBusMessage::createError(QDBusError::Other, QStringLiteral("Invalid Interface")));
5774}
@@ -80,7 +97,7 @@ void AccountsServiceDBusAdaptor::maybeChangedSlot()
8097 m_ignoreNextChanged = false;
8198}
8299
83−QString AccountsServiceDBusAdaptor::getUserForPath(const QString &path)
100+QString AccountsServiceDBusAdaptor::getUserForPath(const QString &path) const
84101{
85102 QMap<QString, QDBusInterface *>::const_iterator i;
86103 for (i = m_users.constBegin(); i != m_users.constEnd(); ++i) {
plugins/AccountsService/AccountsServiceDBusAdaptor.h+5−6
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -12,8 +12,6 @@
1212 *
1313 * You should have received a copy of the GNU General Public License
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors: Michael Terry <michael.terry@canonical.com>
1715 */
1816
1917#ifndef UNITY_ACCOUNTSSERVICEDBUSADAPTOR_H
@@ -35,8 +33,9 @@ public:
3533 explicit AccountsServiceDBusAdaptor(QObject *parent = 0);
3634 ~AccountsServiceDBusAdaptor() = default;
3735
38− Q_INVOKABLE QDBusPendingReply<QVariant> getUserPropertyAsync(const QString &user, const QString &interface, const QString &property);
39− Q_INVOKABLE QDBusPendingCall setUserPropertyAsync(const QString &user, const QString &interface, const QString &property, const QVariant &value);
36+ QDBusPendingReply<QVariantMap> getAllPropertiesAsync(const QString &user, const QString &interface);
37+ QDBusPendingReply<QVariant> getUserPropertyAsync(const QString &user, const QString &interface, const QString &property);
38+ QDBusPendingCall setUserPropertyAsync(const QString &user, const QString &interface, const QString &property, const QVariant &value);
4039
4140Q_SIGNALS:
4241 void propertiesChanged(const QString &user, const QString &interface, const QStringList &changed);
@@ -48,7 +47,7 @@ private Q_SLOTS:
4847
4948private:
5049 QDBusInterface *getUserInterface(const QString &user);
51− QString getUserForPath(const QString &path);
50+ QString getUserForPath(const QString &path) const;
5251
5352 QDBusInterface *m_accountsManager;
5453 QMap<QString, QDBusInterface *> m_users;
plugins/AccountsService/com.canonical.unity.AccountsService.xml+5
@@ -14,6 +14,11 @@
1414 <annotation name="org.freedesktop.Accounts.DefaultValue" value="true"/>
1515 </property>
1616
17+ <!-- List of tutorial pages that have been completed by the user -->
18+ <property name="DemoEdgesCompleted" type="as" access="readwrite">
19+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="[]"/>
20+ </property>
21+
1722 <property name="LauncherItems" type="aa{sv}" access="readwrite">
1823 <annotation name="org.freedesktop.Accounts.DefaultValue" value="[{'defaults': <true>}]"/>
1924 </property>
plugins/Cursor/Cursor.qmltypesnew file+78
@@ -0,0 +1,78 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Cursor 1.0 plugins'
8+
9+Module {
10+ Component {
11+ name: "MirMousePointerInterface"
12+ defaultProperty: "data"
13+ prototype: "QQuickItem"
14+ Property { name: "cursorName"; type: "string"; isReadonly: true }
15+ Property { name: "themeName"; type: "string"; isReadonly: true }
16+ Property { name: "hotspotX"; type: "double"; isReadonly: true }
17+ Property { name: "hotspotY"; type: "double"; isReadonly: true }
18+ Signal {
19+ name: "cursorNameChanged"
20+ Parameter { name: "name"; type: "string" }
21+ }
22+ Signal {
23+ name: "themeNameChanged"
24+ Parameter { name: "name"; type: "string" }
25+ }
26+ Signal {
27+ name: "hotspotXChanged"
28+ Parameter { name: "value"; type: "double" }
29+ }
30+ Signal {
31+ name: "hotspotYChanged"
32+ Parameter { name: "value"; type: "double" }
33+ }
34+ Method {
35+ name: "handleMouseEvent"
36+ Parameter { name: "timestamp"; type: "ulong" }
37+ Parameter { name: "movement"; type: "QPointF" }
38+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
39+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
40+ }
41+ Method {
42+ name: "handleWheelEvent"
43+ Parameter { name: "timestamp"; type: "ulong" }
44+ Parameter { name: "angleDelta"; type: "QPoint" }
45+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
46+ }
47+ }
48+ Component {
49+ name: "MousePointer"
50+ defaultProperty: "data"
51+ prototype: "MirMousePointerInterface"
52+ exports: ["Cursor/MousePointer 1.0"]
53+ exportMetaObjectRevisions: [0]
54+ Signal {
55+ name: "pushedLeftBoundary"
56+ Parameter { name: "amount"; type: "double" }
57+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
58+ }
59+ Signal {
60+ name: "pushedRightBoundary"
61+ Parameter { name: "amount"; type: "double" }
62+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
63+ }
64+ Method {
65+ name: "handleMouseEvent"
66+ Parameter { name: "timestamp"; type: "ulong" }
67+ Parameter { name: "movement"; type: "QPointF" }
68+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
69+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
70+ }
71+ Method {
72+ name: "handleWheelEvent"
73+ Parameter { name: "timestamp"; type: "ulong" }
74+ Parameter { name: "angleDelta"; type: "QPoint" }
75+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
76+ }
77+ }
78+}
plugins/Dash/AudioProgressBar.qml+1
@@ -31,6 +31,7 @@ Item {
3131 anchors { left: parent.left; right: parent.right }
3232 height: units.dp(6)
3333 source: "graphics/music_progress_bg.png"
34+ asynchronous: true
3435 sourceSize.width: width
3536 sourceSize.height: height
3637 }
plugins/Dash/CardCreator.js+69−34
@@ -18,12 +18,13 @@
1818
1919// %1 is the template["card-background"]["elements"][0]
2020// %2 is the template["card-background"]["elements"][1]
21−// %3 is the template["card-background"] string
21+// %3 is whether the loader should be asynchronous or not
22+// %4 is the template["card-background"] string
2223var kBackgroundLoaderCode = 'Loader {\n\
2324 id: backgroundLoader; \n\
2425 objectName: "backgroundLoader"; \n\
2526 anchors.fill: parent; \n\
26− asynchronous: root.asynchronous; \n\
27+ asynchronous: %3; \n\
2728 visible: status == Loader.Ready; \n\
2829 sourceComponent: UbuntuShape { \n\
2930 objectName: "background"; \n\
@@ -46,7 +47,7 @@ var kBackgroundLoaderCode = 'Loader {\n\
4647 objectName: "backgroundImage"; \n\
4748 source: { \n\
4849 if (cardData && typeof cardData["background"] === "string") return cardData["background"]; \n\
49− else return %3; \n\
50+ else return %4; \n\
5051 } \n\
5152 } \n\
5253 function getColor(index) { \n\
@@ -63,8 +64,9 @@ var kBackgroundLoaderCode = 'Loader {\n\
6364// %3 is used as image height
6465// %4 is used for artShapeSource.hideSource and inner Loader visible
6566// %5 is used as aspect ratio fallback
66−// %6 is injected as code to artImage
67−// %7 is used as image fallback
67+// %6 is whether the loader should be asynchronous or not
68+// %7 is injected as code to artImage
69+// %8 is used as image fallback
6870var kArtShapeHolderCode = 'Item { \n\
6971 id: artShapeHolder; \n\
7072 height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height; \n\
@@ -73,9 +75,9 @@ var kArtShapeHolderCode = 'Item { \n\
7375 Loader { \n\
7476 id: artShapeLoader; \n\
7577 objectName: "artShapeLoader"; \n\
76− readonly property string cardArt: cardData && cardData["art"] || %7; \n\
78+ readonly property string cardArt: cardData && cardData["art"] || %8; \n\
7779 active: cardArt != ""; \n\
78− asynchronous: root.asynchronous; \n\
80+ asynchronous: %6; \n\
7981 visible: status == Loader.Ready; \n\
8082 sourceComponent: Item { \n\
8183 id: artShape; \n\
@@ -132,10 +134,10 @@ var kArtShapeHolderCode = 'Item { \n\
132134 id: artImage; \n\
133135 objectName: "artImage"; \n\
134136 source: artShapeLoader.cardArt; \n\
135− asynchronous: root.asynchronous; \n\
137+ asynchronous: %6; \n\
136138 width: %2; \n\
137139 height: %3; \n\
138− %6 \n\
140+ %7 \n\
139141 } \n\
140142 } \n\
141143 } \n\
@@ -144,6 +146,7 @@ var kArtShapeHolderCode = 'Item { \n\
144146// %1 is anchors.fill
145147// %2 is width
146148// %3 is height
149+// %4 is whether the icon should be asynchronous or not
147150var kAudioButtonCode = 'AbstractButton { \n\
148151 id: audioButton; \n\
149152 anchors.fill: %1; \n\
@@ -169,6 +172,7 @@ var kAudioButtonCode = 'AbstractButton { \n\
169172 opacity: 0.9; \n\
170173 name: DashAudioPlayer.playing && AudioUrlComparer.compare(parent.source, DashAudioPlayer.currentSource) ? "media-playback-pause" : "media-playback-start"; \n\
171174 color: "white"; \n\
175+ asynchronous: %4; \n\
172176 } \n\
173177 onClicked: { \n\
174178 if (AudioUrlComparer.compare(source, DashAudioPlayer.currentSource)) { \n\
@@ -187,12 +191,14 @@ var kAudioButtonCode = 'AbstractButton { \n\
187191 } \n\
188192 }';
189193
194+// %1 is whether the loader should be asynchronous or not
195+// %2 is the header height code
190196var kOverlayLoaderCode = 'Loader { \n\
191197 id: overlayLoader; \n\
192− readonly property real overlayHeight: (fixedHeaderHeight > 0 ? fixedHeaderHeight : headerHeight) + units.gu(2); \n\
198+ readonly property real overlayHeight: %2 + units.gu(2); \n\
193199 anchors.fill: artShapeHolder; \n\
194200 active: artShapeLoader.active && artShapeLoader.item && artShapeLoader.item.image.status === Image.Ready || false; \n\
195− asynchronous: root.asynchronous; \n\
201+ asynchronous: %1; \n\
196202 visible: showHeader && status == Loader.Ready; \n\
197203 sourceComponent: UbuntuShapeOverlay { \n\
198204 id: overlay; \n\
@@ -211,17 +217,19 @@ function kHeaderRowCodeGenerator() {
211217 objectName: "outerRow"; \n\
212218 property real margins: units.gu(1); \n\
213219 spacing: margins; \n\
214− height: root.fixedHeaderHeight != -1 ? root.fixedHeaderHeight : implicitHeight; \n\
220+ %2\
215221 anchors { %1 } \n\
216222 anchors.right: parent.right; \n\
217223 anchors.margins: margins; \n\
218224 anchors.rightMargin: 0; \n\
219225 data: [ \n\
220− %2 \n\
226+ %3 \n\
221227 ] \n\
222228 }\n';
223229 var args = Array.prototype.slice.call(arguments);
224− var code = kHeaderRowCodeTemplate.arg(args.shift()).arg(args.join(',\n'));
230+ var isCardTool = args.shift();
231+ var heightCode = isCardTool ? "" : "height: root.fixedHeaderHeight; \n";
232+ var code = kHeaderRowCodeTemplate.arg(args.shift()).arg(heightCode).arg(args.join(',\n'));
225233 return code;
226234}
227235
@@ -242,10 +250,11 @@ function kHeaderContainerCodeGenerator() {
242250}
243251
244252// %1 is used as anchors of mascotShapeLoader
253+// %2 is whether the loader should be asynchronous or not
245254var kMascotShapeLoaderCode = 'Loader { \n\
246255 id: mascotShapeLoader; \n\
247256 objectName: "mascotShapeLoader"; \n\
248− asynchronous: root.asynchronous; \n\
257+ asynchronous: %2; \n\
249258 active: mascotImage.status === Image.Ready; \n\
250259 visible: showHeader && active && status == Loader.Ready; \n\
251260 width: units.gu(6); \n\
@@ -275,6 +284,7 @@ var kMascotImageCode = 'CroppedImageMinimumSourceSize { \n\
275284// %2 is used as color of titleLabel
276285// %3 is used as extra condition for visible of titleLabel
277286// %4 is used as title width
287+// %5 is used as horizontal alignment
278288var kTitleLabelCode = 'Label { \n\
279289 id: titleLabel; \n\
280290 objectName: "titleLabel"; \n\
@@ -289,7 +299,7 @@ var kTitleLabelCode = 'Label { \n\
289299 width: %4; \n\
290300 text: root.title; \n\
291301 font.weight: cardData && cardData["subtitle"] ? Font.DemiBold : Font.Normal; \n\
292− horizontalAlignment: root.titleAlignment; \n\
302+ horizontalAlignment: %5; \n\
293303 }\n';
294304
295305// %1 is used as extra anchors of emblemIcon
@@ -398,7 +408,7 @@ function sanitizeColor(colorString) {
398408 return colorString;
399409}
400410
401−function cardString(template, components) {
411+function cardString(template, components, isCardTool) {
402412 var code;
403413
404414 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
@@ -410,16 +420,16 @@ function cardString(template, components) {
410420 property string backgroundShapeStyle: "inset"; \n\
411421 property real fontScale: 1.0; \n\
412422 property var scopeStyle: null; \n\
413− property int titleAlignment: Text.AlignLeft; \n\
414− property int fixedHeaderHeight: -1; \n\
423+ %2\
415424 property size fixedArtShapeSize: Qt.size(-1, -1); \n\
416425 readonly property string title: cardData && cardData["title"] || ""; \n\
417− property bool asynchronous: true; \n\
418426 property bool showHeader: true; \n\
419427 implicitWidth: childrenRect.width; \n\
420428 enabled: %1; \n\
421429 \n'.arg(templateInteractive);
422430
431+ code = code.arg(isCardTool ? "" : "property int fixedHeaderHeight: -1; \n");
432+
423433 var hasArt = components["art"] && components["art"]["field"] || false;
424434 var hasSummary = components["summary"] || false;
425435 var isConciergeMode = components["art"] && components["art"]["conciergeMode"] || false;
@@ -435,6 +445,7 @@ function cardString(template, components) {
435445 var hasHeaderRow = hasMascot && hasTitle;
436446 var hasAttributes = hasTitle && components["attributes"] && components["attributes"]["field"] || false;
437447 var isAudio = template["quick-preview-type"] === "audio";
448+ var asynchronous = isCardTool ? "false" : "true";
438449
439450 if (isAudio) {
440451 // For now we only support audio cards with [optional] art, title, subtitle
@@ -468,7 +479,7 @@ function cardString(template, components) {
468479 backgroundElements1 = '"%1"'.arg(element1);
469480 }
470481 }
471− code += kBackgroundLoaderCode.arg(backgroundElements0).arg(backgroundElements1).arg(templateCardBackground);
482+ code += kBackgroundLoaderCode.arg(backgroundElements0).arg(backgroundElements1).arg(asynchronous).arg(templateCardBackground);
472483 }
473484
474485 if (hasArt) {
@@ -497,23 +508,31 @@ function cardString(template, components) {
497508 if (isNaN(aspectRatio)) {
498509 aspectRatio = 1;
499510 }
500− var fallback = components["art"] && components["art"]["fallback"] || "";
511+ var fallback = !isCardTool && components["art"] && components["art"]["fallback"] || "";
501512 fallback = encodeURI(fallback);
502513 var fallbackStatusCode = "";
503514 var fallbackURICode = '""';
504515 if (fallback !== "") {
505516 // fallbackStatusCode has %6 in it because we want to substitute it for fallbackURICode
506− // which in kArtShapeHolderCode is %7
507− fallbackStatusCode += 'onStatusChanged: if (status === Image.Error) source = %7;';
517+ // which in kArtShapeHolderCode is %8
518+ fallbackStatusCode += 'onStatusChanged: if (status === Image.Error) source = %8;';
508519 fallbackURICode = 'decodeURI("%1")'.arg(fallback);
509520 }
510− code += kArtShapeHolderCode.arg(artAnchors).arg(widthCode).arg(heightCode).arg(isConciergeMode ? "false" : "true").arg(aspectRatio).arg(fallbackStatusCode).arg(fallbackURICode);
521+ code += kArtShapeHolderCode.arg(artAnchors)
522+ .arg(widthCode)
523+ .arg(heightCode)
524+ .arg(isConciergeMode ? "false" : "true")
525+ .arg(aspectRatio)
526+ .arg(asynchronous)
527+ .arg(fallbackStatusCode)
528+ .arg(fallbackURICode);
511529 } else {
512530 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
513531 }
514532
515533 if (headerAsOverlay) {
516− code += kOverlayLoaderCode;
534+ var headerHeightCode = isCardTool ? "headerHeight" : "root.fixedHeaderHeight";
535+ code += kOverlayLoaderCode.arg(asynchronous).arg(headerHeightCode);
517536 }
518537
519538 var headerVerticalAnchors;
@@ -595,11 +614,11 @@ function cardString(template, components) {
595614 }
596615
597616 if (useMascotShape) {
598− mascotShapeCode = kMascotShapeLoaderCode.arg(mascotAnchors);
617+ mascotShapeCode = kMascotShapeLoaderCode.arg(mascotAnchors).arg(asynchronous);
599618 }
600619
601620 var mascotImageVisible = useMascotShape ? 'false' : 'showHeader';
602− var fallback = components["mascot"] && components["mascot"]["fallback"] || "";
621+ var fallback = !isCardTool && components["mascot"] && components["mascot"]["fallback"] || "";
603622 fallback = encodeURI(fallback);
604623 var fallbackStatusCode = "";
605624 var fallbackURICode = '""';
@@ -715,9 +734,24 @@ function cardString(template, components) {
715734 }
716735 }
717736
737+ var titleAlignment = "Text.AlignHCenter";
738+ if (template["card-layout"] === "horizontal"
739+ || typeof components["title"] !== "object"
740+ || components["title"]["align"] === "left") titleAlignment = "Text.AlignLeft";
741+ var keys = ["mascot", "emblem", "subtitle", "attributes", "summary"];
742+ for (var key in keys) {
743+ key = keys[key];
744+ try {
745+ if (typeof components[key] === "string"
746+ || typeof components[key]["field"] === "string") titleAlignment = "Text.AlignLeft";
747+ } catch (e) {
748+ continue;
749+ }
750+ }
751+
718752 // code for different elements
719753 var titleLabelVisibleExtra = (headerAsOverlay ? '&& overlayLoader.active': '');
720− var titleCode = kTitleLabelCode.arg(titleAnchors).arg(titleColor).arg(titleLabelVisibleExtra).arg(titleWidth);
754+ var titleCode = kTitleLabelCode.arg(titleAnchors).arg(titleColor).arg(titleLabelVisibleExtra).arg(titleWidth).arg(titleAlignment);
721755 var subtitleCode;
722756 var attributesCode;
723757
@@ -759,7 +793,7 @@ function cardString(template, components) {
759793 if (mascotShapeCode != '') {
760794 rowCode.unshift(mascotShapeCode);
761795 }
762− code += kHeaderRowCodeGenerator(headerVerticalAnchors + headerLeftAnchor, rowCode)
796+ code += kHeaderRowCodeGenerator(isCardTool, headerVerticalAnchors + headerLeftAnchor, rowCode)
763797 } else {
764798 code += mascotShapeCode + mascotCode + titleSubtitleCode;
765799 }
@@ -783,9 +817,10 @@ function cardString(template, components) {
783817 } else {
784818 audioButtonAnchorsFill = 'undefined';
785819 audioButtonWidth = 'height';
786− audioButtonHeight = '(root.fixedHeaderHeight > 0 ? root.fixedHeaderHeight : headerHeight) + 2 * units.gu(1)';
820+ audioButtonHeight = isCardTool ? 'headerHeight + 2 * units.gu(1)'
821+ : 'root.fixedHeaderHeight + 2 * units.gu(1)';
787822 }
788− code += kAudioButtonCode.arg(audioButtonAnchorsFill).arg(audioButtonWidth).arg(audioButtonHeight);
823+ code += kAudioButtonCode.arg(audioButtonAnchorsFill).arg(audioButtonWidth).arg(audioButtonHeight).arg(asynchronous);
789824 }
790825
791826 if (hasSummary) {
@@ -854,13 +889,13 @@ function cardString(template, components) {
854889 return code;
855890}
856891
857−function createCardComponent(parent, template, components, identifier) {
892+function createCardComponent(parent, template, components, isCardTool, identifier) {
858893 var imports = 'import QtQuick 2.4; \n\
859894 import Ubuntu.Components 1.3; \n\
860895 import Ubuntu.Settings.Components 0.1; \n\
861896 import Dash 0.1;\n\
862897 import Utils 0.1;\n';
863− var card = cardString(template, components);
898+ var card = cardString(template, components, isCardTool);
864899 var code = imports + 'Component {\n' + card + '}\n';
865900
866901 try {
plugins/Dash/CardCreatorCache.qml+3−3
@@ -23,16 +23,16 @@ QtObject {
2323
2424 property var cache: new Object();
2525
26− function getCardComponent(template, components) {
26+ function getCardComponent(template, components, isCardTool) {
2727 if (template === undefined || components === undefined)
2828 return undefined;
2929
3030 var tString = JSON.stringify(template);
3131 var cString = JSON.stringify(components);
32− var allString = tString + cString;
32+ var allString = tString + cString + isCardTool;
3333 var component = cache[allString];
3434 if (component === undefined) {
35− component = CardCreator.createCardComponent(root, template, components, allString);
35+ component = CardCreator.createCardComponent(root, template, components, isCardTool, allString);
3636 cache[allString] = component;
3737 }
3838 return component;
plugins/Dash/ScopeStyle.qml+1−1
@@ -58,7 +58,7 @@ QtObject {
5858 readonly property url headerLogo: "logo" in d.headerStyle ? d.headerStyle["logo"] : ""
5959
6060 /// Background style for the header
61− readonly property url headerBackground: "background" in d.headerStyle ? d.headerStyle["background"] : "color:///#f5f5f5"
61+ readonly property url headerBackground: "background" in d.headerStyle ? d.headerStyle["background"] : "color:///#ffffff"
6262
6363 /// Foreground color for the header
6464 readonly property color headerForeground: "foreground-color" in d.headerStyle ? d.headerStyle["foreground-color"] : foreground
plugins/Dash/plugin.cpp+6−6
@@ -28,12 +28,12 @@
2828static QUrl oauthCleanedUrl(QUrl u)
2929{
3030 QUrlQuery q(u);
31− q.removeQueryItem("oauth_nonce");
32− q.removeQueryItem("oauth_timestamp");
33− q.removeQueryItem("oauth_consumer_key");
34− q.removeQueryItem("oauth_signature_method");
35− q.removeQueryItem("oauth_version");
36− q.removeQueryItem("oauth_signature");
31+ q.removeQueryItem(QStringLiteral("oauth_nonce"));
32+ q.removeQueryItem(QStringLiteral("oauth_timestamp"));
33+ q.removeQueryItem(QStringLiteral("oauth_consumer_key"));
34+ q.removeQueryItem(QStringLiteral("oauth_signature_method"));
35+ q.removeQueryItem(QStringLiteral("oauth_version"));
36+ q.removeQueryItem(QStringLiteral("oauth_signature"));
3737 u.setQuery(q);
3838 return u;
3939}
plugins/GlobalShortcut/GlobalShortcut.qmltypesnew file+31
@@ -0,0 +1,31 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable GlobalShortcut 1.0 plugins'
8+
9+Module {
10+ Component {
11+ name: "GlobalShortcut"
12+ defaultProperty: "data"
13+ prototype: "QQuickItem"
14+ exports: ["GlobalShortcut/GlobalShortcut 1.0"]
15+ exportMetaObjectRevisions: [0]
16+ Property { name: "shortcut"; type: "QVariant" }
17+ Property { name: "active"; type: "bool" }
18+ Signal {
19+ name: "shortcutChanged"
20+ Parameter { name: "shortcut"; type: "QVariant" }
21+ }
22+ Signal {
23+ name: "triggered"
24+ Parameter { name: "shortcut"; type: "string" }
25+ }
26+ Signal {
27+ name: "activeChanged"
28+ Parameter { name: "active"; type: "bool" }
29+ }
30+ }
31+}
plugins/GlobalShortcut/globalshortcutregistry.cpp+4−4
@@ -35,13 +35,13 @@ GlobalShortcutList GlobalShortcutRegistry::shortcuts() const
3535
3636bool GlobalShortcutRegistry::hasShortcut(const QVariant &seq) const
3737{
38− return m_shortcuts.keys().contains(seq);
38+ return m_shortcuts.contains(seq);
3939}
4040
4141void GlobalShortcutRegistry::addShortcut(const QVariant &seq, GlobalShortcut *sc)
4242{
4343 if (sc) {
44− if (!m_shortcuts.keys().contains(seq)) { // create a new entry
44+ if (!m_shortcuts.contains(seq)) { // create a new entry
4545 m_shortcuts.insert(seq, {sc});
4646 } else { // append to an existing one
4747 auto shortcuts = m_shortcuts[seq];
@@ -75,8 +75,8 @@ bool GlobalShortcutRegistry::eventFilter(QObject *obj, QEvent *event)
7575
7676 if (event->type() == QEvent::KeyPress) {
7777 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
78− QKeySequence seq = QKeySequence(keyEvent->key() + keyEvent->modifiers());
79− if (m_shortcuts.keys().contains(seq)) {
78+ int seq = keyEvent->key() + keyEvent->modifiers();
79+ if (m_shortcuts.contains(seq)) {
8080 const auto shortcuts = m_shortcuts.value(seq);
8181 Q_FOREACH(const auto &shortcut, shortcuts) {
8282 if (shortcut) {
plugins/IntegratedLightDM/liblightdm/CMakeLists.txt+16−3
@@ -5,13 +5,16 @@ set(LibLightDM_SOURCES
55 UsersModel.cpp
66 GreeterPrivate.cpp
77 UsersModelPrivate.cpp
8+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
89 ${CMAKE_SOURCE_DIR}/plugins/Utils/qvariantlistmodel.cpp
910 )
1011
1112add_library(integratedLightDM STATIC ${LibLightDM_SOURCES})
13+add_library(integratedLightDMSession STATIC ${LibLightDM_SOURCES})
1214add_library(MockLightDM-demo-shared SHARED ${LibLightDM_SOURCES})
1315
1416include_directories(
17+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService
1518 ${CMAKE_CURRENT_BINARY_DIR}
1619 ${GLIB_INCLUDE_DIRS}
1720 ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
@@ -22,17 +25,27 @@ target_link_libraries(integratedLightDM
2225 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
2326 -lpam
2427)
28+target_link_libraries(integratedLightDMSession
29+ ${GLIB_LIBRARIES}
30+ ${LIBUSERMETRICSOUTPUT_LDFLAGS}
31+ -lpam
32+)
2533target_link_libraries(MockLightDM-demo-shared
2634 ${GLIB_LIBRARIES}
2735 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
2836 -lpam
2937)
3038
31−qt5_use_modules(integratedLightDM Concurrent Gui)
32−qt5_use_modules(MockLightDM-demo-shared Concurrent Gui)
39+qt5_use_modules(integratedLightDM Concurrent DBus Gui)
40+qt5_use_modules(integratedLightDMSession Concurrent DBus Gui)
41+qt5_use_modules(MockLightDM-demo-shared Concurrent DBus Gui)
3342
34−set_target_properties(integratedLightDM PROPERTIES COMPILE_FLAGS -fPIC)
43+set_target_properties(integratedLightDM PROPERTIES
44+ COMPILE_FLAGS "-DSM_BUSNAME=systemBus -fPIC")
45+set_target_properties(integratedLightDMSession PROPERTIES
46+ COMPILE_FLAGS "-DSM_BUSNAME=sessionBus -fPIC")
3547set_target_properties(MockLightDM-demo-shared PROPERTIES
48+ COMPILE_FLAGS "-DSM_BUSNAME=systemBus"
3649 OUTPUT_NAME lightdm-qt5-2)
3750
3851install(TARGETS MockLightDM-demo-shared
plugins/IntegratedLightDM/liblightdm/UsersModel.cpp+4−18
@@ -54,24 +54,10 @@ UsersModel::UsersModel(QObject *parent) :
5454 roles[ImagePathRole] = "imagePath";
5555 setRoleNames(roles);
5656
57− // Now modify our mock user backgrounds
58− QDir bgdir = QDir(QStringLiteral("/usr/share/demo-assets/shell/backgrounds/"));
59− QStringList backgrounds = bgdir.entryList(QDir::Files | QDir::NoDotAndDotDot);
60−
61− for (int i = 0, j = 0; i < d->entries.size(); i++) {
62− Entry &entry = d->entries[i];
63− if (entry.background.isNull() && !backgrounds.isEmpty()) {
64− entry.background = bgdir.filePath(backgrounds[j++]);
65− if (j >= backgrounds.length()) {
66− j = 0;
67− }
68− }
69− }
70−}
71−
72−UsersModel::~UsersModel()
73−{
74− delete d_ptr;
57+ connect(d_ptr, &UsersModelPrivate::dataChanged, this, [this](int i) {
58+ QModelIndex index = createIndex(i, 0);
59+ Q_EMIT dataChanged(index, index);
60+ });
7561}
7662
7763int UsersModel::rowCount(const QModelIndex &parent) const
plugins/IntegratedLightDM/liblightdm/UsersModel.h+1−1
@@ -41,7 +41,7 @@ class Q_DECL_EXPORT UsersModel : public QAbstractListModel
4141
4242public:
4343 explicit UsersModel(QObject *parent = 0);
44− virtual ~UsersModel();
44+ virtual ~UsersModel() = default;
4545
4646 enum UserModelRoles {NameRole = Qt::UserRole,
4747 RealNameRole,
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+43−9
@@ -18,7 +18,11 @@
1818
1919#include "UsersModelPrivate.h"
2020
21+#include "AccountsServiceDBusAdaptor.h"
22+#include "UsersModel.h"
23+
2124#include <glib.h>
25+#include <QDebug>
2226#include <QDir>
2327#include <QSettings>
2428#include <QStringList>
@@ -27,7 +31,9 @@ namespace QLightDM
2731{
2832
2933UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
30− : q_ptr(parent)
34+ : QObject(parent),
35+ q_ptr(parent),
36+ m_service(new AccountsServiceDBusAdaptor(this))
3137{
3238 QFileInfo demoFile(QDir::homePath() + "/.unity8-greeter-demo");
3339 QString currentUser = g_get_user_name();
@@ -43,15 +49,43 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
4349 entries.append({user, name, 0, 0, false, false, 0, 0});
4450 }
4551 } else {
46− // If we were using the actual liblightdm, we could just ask it
47− // for the user's real name. But we aren't. We *should* ask
48− // AccountsService for the real name, like liblightdm does internally,
49− // but this is close enough since AS and passwd are always in sync.
50− QString realName = QString::fromUtf8(g_get_real_name()); // gets name from passwd entry
51− if (realName == QStringLiteral("Unknown")) { // glib doesn't translate this string
52− realName.clear();
52+ entries.append({currentUser, 0, 0, 0, false, false, 0, 0});
53+
54+ connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged,
55+ this, [this](const QString &user) {
56+ if (user == entries[0].username) {
57+ updateName(true);
58+ }
59+ });
60+ updateName(false);
61+ }
62+}
63+
64+void UsersModelPrivate::updateName(bool async)
65+{
66+ auto pendingReply = m_service->getUserPropertyAsync(entries[0].username,
67+ QStringLiteral("org.freedesktop.Accounts.User"),
68+ QStringLiteral("RealName"));
69+ auto *watcher = new QDBusPendingCallWatcher(pendingReply, this);
70+
71+ connect(watcher, &QDBusPendingCallWatcher::finished,
72+ this, [this](QDBusPendingCallWatcher* watcher) {
73+
74+ QDBusPendingReply<QVariant> reply = *watcher;
75+ watcher->deleteLater();
76+ if (reply.isError()) {
77+ qWarning() << "Failed to get 'RealName' property - " << reply.error().message();
78+ return;
79+ }
80+
81+ const QString realName = reply.value().toString();
82+ if (entries[0].real_name != realName) {
83+ entries[0].real_name = realName;
84+ Q_EMIT dataChanged(0);
5385 }
54− entries.append({currentUser, realName, 0, 0, false, false, 0, 0});
86+ });
87+ if (!async) {
88+ watcher->waitForFinished();
5589 }
5690}
5791
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.h+15−3
@@ -19,8 +19,11 @@
1919#ifndef UNITY_MOCK_USERSMODEL_PRIVATE_H
2020#define UNITY_MOCK_USERSMODEL_PRIVATE_H
2121
22−#include <QtCore/QList>
23−#include <QtCore/QString>
22+#include <QList>
23+#include <QObject>
24+#include <QString>
25+
26+class AccountsServiceDBusAdaptor;
2427
2528namespace QLightDM
2629{
@@ -39,19 +42,28 @@ public:
3942 QString infographic;
4043};
4144
42−class UsersModelPrivate
45+class UsersModelPrivate : public QObject
4346{
47+ Q_OBJECT
48+
4449public:
4550 explicit UsersModelPrivate(UsersModel *parent = 0);
4651 virtual ~UsersModelPrivate() = default;
4752
4853 QList<Entry> entries;
4954
55+Q_SIGNALS:
56+ void dataChanged(int);
57+
5058protected:
5159 UsersModel * const q_ptr;
5260
5361private:
5462 Q_DECLARE_PUBLIC(UsersModel)
63+
64+ void updateName(bool async);
65+
66+ AccountsServiceDBusAdaptor *m_service;
5567};
5668
5769}
plugins/ScreenGrabber/screengrabber.cpp−2
@@ -46,12 +46,10 @@ ScreenGrabber::ScreenGrabber(QObject *parent)
4646
4747 QDir screenshotsDir;
4848 if (qEnvironmentVariableIsSet("UNITY_TESTING")) {
49− qDebug() << "Using test environment";
5049 QTemporaryDir tDir;
5150 tDir.setAutoRemove(false);
5251 screenshotsDir = tDir.path();
5352 } else {
54− qDebug() << "Using real environment";
5553 screenshotsDir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
5654 }
5755 screenshotsDir.mkpath(QStringLiteral("Screenshots"));
plugins/Ubuntu/Gestures/CMakeLists.txt+1
@@ -11,6 +11,7 @@ set(UbuntuGesturesQml_SOURCES
1111 PressedOutsideNotifier.cpp
1212 TouchDispatcher.cpp
1313 TouchGate.cpp
14+ TouchGestureArea.cpp
1415)
1516
1617add_definitions(-DUBUNTUGESTURESQML_LIBRARY)
plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+43−5
@@ -194,6 +194,26 @@ void DirectionalDragArea::setImmediateRecognition(bool enabled)
194194 }
195195}
196196
197+bool DirectionalDragArea::monitorOnly() const
198+{
199+ return d->monitorOnly;
200+}
201+
202+void DirectionalDragArea::setMonitorOnly(bool monitorOnly)
203+{
204+ if (d->monitorOnly != monitorOnly) {
205+ d->monitorOnly = monitorOnly;
206+
207+ if (monitorOnly && d->status == DirectionalDragAreaPrivate::Undecided) {
208+ TouchRegistry::instance()->removeCandidateOwnerForTouch(d->touchId, this);
209+ // We still wanna know when it ends for keeping the composition time window up-to-date
210+ TouchRegistry::instance()->addTouchWatcher(d->touchId, this);
211+ }
212+
213+ Q_EMIT monitorOnlyChanged(monitorOnly);
214+ }
215+}
216+
197217void DirectionalDragArea::removeTimeConstraints()
198218{
199219 d->setMaxTime(60 * 60 * 1000);
@@ -260,7 +280,10 @@ void DirectionalDragAreaPrivate::unownedTouchEvent(UnownedTouchEvent *unownedTou
260280 unownedTouchEvent_undecided(unownedTouchEvent);
261281 break;
262282 default: // Recognized:
263− // do nothing
283+ if (monitorOnly) {
284+ // Treat unowned event as if we owned it, but we are really just watching it
285+ touchEvent_recognized(event);
286+ }
264287 break;
265288 }
266289
@@ -311,7 +334,9 @@ void DirectionalDragAreaPrivate::unownedTouchEvent_undecided(UnownedTouchEvent *
311334 }
312335
313336 if (movedFarEnoughAlongGestureAxis()) {
314− TouchRegistry::instance()->requestTouchOwnership(touchId, q);
337+ if (!monitorOnly) {
338+ TouchRegistry::instance()->requestTouchOwnership(touchId, q);
339+ }
315340 setStatus(Recognized);
316341 setPublicPos(touchPoint->pos());
317342 setPublicScenePos(touchScenePos);
@@ -411,12 +436,21 @@ void DirectionalDragAreaPrivate::touchEvent_absent(QTouchEvent *event)
411436 if (recognitionIsDisabled()) {
412437 // Behave like a dumb TouchArea
413438 ddaDebug("Gesture recognition is disabled. Requesting touch ownership immediately.");
414− TouchRegistry::instance()->requestTouchOwnership(touchId, q);
415439 setStatus(Recognized);
416− event->accept();
440+ if (monitorOnly) {
441+ watchPressedTouchPoints(touchPoints);
442+ event->ignore();
443+ } else {
444+ TouchRegistry::instance()->requestTouchOwnership(touchId, q);
445+ event->accept();
446+ }
417447 } else {
418448 // just monitor the touch points for now.
419− TouchRegistry::instance()->addCandidateOwnerForTouch(touchId, q);
449+ if (monitorOnly) {
450+ watchPressedTouchPoints(touchPoints);
451+ } else {
452+ TouchRegistry::instance()->addCandidateOwnerForTouch(touchId, q);
453+ }
420454
421455 setStatus(Undecided);
422456 // Let the item below have it. We will monitor it and grab it later if a gesture
@@ -606,6 +640,9 @@ void DirectionalDragAreaPrivate::setStatus(Status newStatus)
606640 Q_EMIT q->pressedChanged(true);
607641 break;
608642 case Recognized:
643+ if (oldStatus == WaitingForTouch) { // for immediate recognition
644+ Q_EMIT q->pressedChanged(true);
645+ }
609646 Q_EMIT q->draggingChanged(true);
610647 break;
611648 default:
@@ -890,5 +927,6 @@ DirectionalDragAreaPrivate::DirectionalDragAreaPrivate(DirectionalDragArea *q)
890927 , recognitionTimer(nullptr)
891928 , timeSource(new RealTimeSource)
892929 , activeTouches(timeSource)
930+ , monitorOnly(false)
893931{
894932}
plugins/Ubuntu/Gestures/DirectionalDragArea.h+8
@@ -77,6 +77,10 @@ class UBUNTUGESTURESQML_EXPORT DirectionalDragArea : public QQuickItem {
7777 WRITE setImmediateRecognition
7878 NOTIFY immediateRecognitionChanged)
7979
80+ // Whether we are merely monitoring touch events (in which case, we don't
81+ // claim ownership of the touch).
82+ Q_PROPERTY(bool monitorOnly READ monitorOnly WRITE setMonitorOnly NOTIFY monitorOnlyChanged)
83+
8084 Q_ENUMS(Direction)
8185public:
8286 DirectionalDragArea(QQuickItem *parent = 0);
@@ -100,6 +104,9 @@ public:
100104 bool immediateRecognition() const;
101105 void setImmediateRecognition(bool enabled);
102106
107+ bool monitorOnly() const;
108+ void setMonitorOnly(bool monitorOnly);
109+
103110 bool event(QEvent *e) override;
104111
105112 /*
@@ -123,6 +130,7 @@ Q_SIGNALS:
123130 void touchSceneXChanged(qreal value);
124131 void touchSceneYChanged(qreal value);
125132 void immediateRecognitionChanged(bool value);
133+ void monitorOnlyChanged(bool value);
126134
127135protected:
128136 void touchEvent(QTouchEvent *event) override;
plugins/Ubuntu/Gestures/DirectionalDragArea_p.h+2
@@ -160,6 +160,8 @@ public:
160160
161161 ActiveTouchesInfo activeTouches;
162162
163+ bool monitorOnly;
164+
163165Q_SIGNALS:
164166 void statusChanged(Status value);
165167};
plugins/Ubuntu/Gestures/Gestures.qmltypes+86−45
@@ -34,7 +34,8 @@ Module {
3434 "Leftwards": 1,
3535 "Downwards": 2,
3636 "Upwards": 3,
37− "Horizontal": 4
37+ "Horizontal": 4,
38+ "Vertical": 5
3839 }
3940 }
4041 Method {
@@ -59,14 +60,6 @@ Module {
5960 prototype: "QQuickItem"
6061 exports: ["Ubuntu.Gestures/DirectionalDragArea 0.1"]
6162 exportMetaObjectRevisions: [0]
62− Enum {
63− name: "Status"
64− values: {
65− "WaitingForTouch": 0,
66− "Undecided": 1,
67− "Recognized": 2
68− }
69− }
7063 Property { name: "direction"; type: "Direction::Type" }
7164 Property { name: "distance"; type: "double"; isReadonly: true }
7265 Property { name: "sceneDistance"; type: "double"; isReadonly: true }
@@ -74,24 +67,19 @@ Module {
7467 Property { name: "touchY"; type: "double"; isReadonly: true }
7568 Property { name: "touchSceneX"; type: "double"; isReadonly: true }
7669 Property { name: "touchSceneY"; type: "double"; isReadonly: true }
77− Property { name: "status"; type: "Status"; isReadonly: true }
7870 Property { name: "dragging"; type: "bool"; isReadonly: true }
79− Property { name: "maxDeviation"; type: "double" }
80− Property { name: "wideningAngle"; type: "double" }
81− Property { name: "distanceThreshold"; type: "double" }
82− Property { name: "minSpeed"; type: "double" }
83− Property { name: "maxSilenceTime"; type: "int" }
84− Property { name: "compositionTime"; type: "int" }
71+ Property { name: "pressed"; type: "bool"; isReadonly: true }
72+ Property { name: "immediateRecognition"; type: "bool" }
8573 Signal {
8674 name: "directionChanged"
8775 Parameter { name: "direction"; type: "Direction::Type" }
8876 }
8977 Signal {
90− name: "statusChanged"
91− Parameter { name: "value"; type: "Status" }
78+ name: "draggingChanged"
79+ Parameter { name: "value"; type: "bool" }
9280 }
9381 Signal {
94− name: "draggingChanged"
82+ name: "pressedChanged"
9583 Parameter { name: "value"; type: "bool" }
9684 }
9785 Signal {
@@ -102,30 +90,6 @@ Module {
10290 name: "sceneDistanceChanged"
10391 Parameter { name: "value"; type: "double" }
10492 }
105− Signal {
106− name: "maxDeviationChanged"
107− Parameter { name: "value"; type: "double" }
108− }
109− Signal {
110− name: "wideningAngleChanged"
111− Parameter { name: "value"; type: "double" }
112− }
113− Signal {
114− name: "distanceThresholdChanged"
115− Parameter { name: "value"; type: "double" }
116− }
117− Signal {
118− name: "minSpeedChanged"
119− Parameter { name: "value"; type: "double" }
120− }
121− Signal {
122− name: "maxSilenceTimeChanged"
123− Parameter { name: "value"; type: "int" }
124− }
125− Signal {
126− name: "compositionTimeChanged"
127− Parameter { name: "value"; type: "int" }
128− }
12993 Signal {
13094 name: "touchXChanged"
13195 Parameter { name: "value"; type: "double" }
@@ -142,7 +106,35 @@ Module {
142106 name: "touchSceneYChanged"
143107 Parameter { name: "value"; type: "double" }
144108 }
145− Signal { name: "tapped" }
109+ Signal {
110+ name: "immediateRecognitionChanged"
111+ Parameter { name: "value"; type: "bool" }
112+ }
113+ Method { name: "removeTimeConstraints" }
114+ }
115+ Component {
116+ name: "FloatingFlickable"
117+ defaultProperty: "data"
118+ prototype: "QQuickItem"
119+ exports: ["Ubuntu.Gestures/FloatingFlickable 0.1"]
120+ exportMetaObjectRevisions: [0]
121+ Property { name: "contentWidth"; type: "double" }
122+ Property { name: "contentHeight"; type: "double" }
123+ Property { name: "contentX"; type: "double" }
124+ Property { name: "contentY"; type: "double" }
125+ Property { name: "direction"; type: "Direction::Type" }
126+ }
127+ Component {
128+ name: "GestureTouchPoint"
129+ prototype: "QObject"
130+ exports: ["Ubuntu.Gestures/GestureTouchPoint 0.1"]
131+ isCreatable: false
132+ exportMetaObjectRevisions: [0]
133+ Property { name: "pointId"; type: "int"; isReadonly: true }
134+ Property { name: "pressed"; type: "bool"; isReadonly: true }
135+ Property { name: "x"; type: "double"; isReadonly: true }
136+ Property { name: "y"; type: "double"; isReadonly: true }
137+ Property { name: "dragging"; type: "bool"; isReadonly: true }
146138 }
147139 Component {
148140 name: "PressedOutsideNotifier"
@@ -163,6 +155,55 @@ Module {
163155 name: "targetItemChanged"
164156 Parameter { name: "item"; type: "QQuickItem"; isPointer: true }
165157 }
166− Signal { name: "pressed" }
158+ }
159+ Component {
160+ name: "TouchGestureArea"
161+ defaultProperty: "data"
162+ prototype: "QQuickItem"
163+ exports: ["Ubuntu.Gestures/TouchGestureArea 0.1"]
164+ exportMetaObjectRevisions: [0]
165+ Enum {
166+ name: "Status"
167+ values: {
168+ "WaitingForTouch": 0,
169+ "Undecided": 1,
170+ "Recognized": 2,
171+ "Rejected": 3
172+ }
173+ }
174+ Property { name: "touchPoints"; type: "GestureTouchPoint"; isList: true; isReadonly: true }
175+ Property { name: "dragging"; type: "bool"; isReadonly: true }
176+ Property { name: "minimumTouchPoints"; type: "int" }
177+ Property { name: "maximumTouchPoints"; type: "int" }
178+ Signal {
179+ name: "statusChanged"
180+ Parameter { name: "status"; type: "Status" }
181+ }
182+ Signal { name: "touchPointsUpdated" }
183+ Signal {
184+ name: "draggingChanged"
185+ Parameter { name: "dragging"; type: "bool" }
186+ }
187+ Signal {
188+ name: "minimumTouchPointsChanged"
189+ Parameter { name: "value"; type: "bool" }
190+ }
191+ Signal {
192+ name: "maximumTouchPointsChanged"
193+ Parameter { name: "value"; type: "bool" }
194+ }
195+ Signal {
196+ name: "pressed"
197+ Parameter { name: "points"; type: "QList<QObject*>" }
198+ }
199+ Signal {
200+ name: "released"
201+ Parameter { name: "points"; type: "QList<QObject*>" }
202+ }
203+ Signal {
204+ name: "updated"
205+ Parameter { name: "points"; type: "QList<QObject*>" }
206+ }
207+ Signal { name: "clicked" }
167208 }
168209}
plugins/Ubuntu/Gestures/TouchGestureArea.cppnew file+875
@@ -0,0 +1,875 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "TouchGestureArea.h"
18+
19+// local
20+#include "TouchOwnershipEvent.h"
21+#include "TouchRegistry.h"
22+#include "UnownedTouchEvent.h"
23+
24+#include <QGuiApplication>
25+#include <QStyleHints>
26+#include <private/qquickwindow_p.h>
27+
28+#define TOUCHGESTUREAREA_DEBUG 0
29+
30+// TODO - understand more about why we lose touch event releases.
31+// Workaround for now is to monitor all the touch points from first touch till
32+// all have been released; no matter if we've rejected the gesture.
33+
34+namespace {
35+
36+struct InternalStatus {
37+ enum Status {
38+ WaitingForTouch,
39+ WaitingForMoreTouches,
40+ WaitingForOwnership, //Recognizing,
41+ Recognized,
42+ WaitingForRejection,
43+ Rejected
44+ };
45+};
46+
47+TouchGestureArea::Status internalStatusToGestureStatus(int internalStatus) {
48+ switch (internalStatus) {
49+ case InternalStatus::WaitingForTouch: return TouchGestureArea::WaitingForTouch;
50+ case InternalStatus::WaitingForMoreTouches: return TouchGestureArea::Undecided;
51+ case InternalStatus::WaitingForOwnership: return TouchGestureArea::Undecided;
52+ case InternalStatus::Recognized: return TouchGestureArea::Recognized;
53+ case InternalStatus::WaitingForRejection: return TouchGestureArea::Recognized;
54+ case InternalStatus::Rejected: return TouchGestureArea::Rejected;
55+ }
56+ return TouchGestureArea::WaitingForTouch;
57+}
58+
59+}
60+
61+#if TOUCHGESTUREAREA_DEBUG
62+#define tgaDebug(params) qDebug().nospace() << "[TGA(" << qPrintable(objectName()) << ")] " << params
63+#include "DebugHelpers.h"
64+
65+namespace {
66+
67+const char *statusToString(int status)
68+{
69+ if (status == InternalStatus::WaitingForTouch) {
70+ return "WaitingForTouch";
71+ } else if (status == InternalStatus::WaitingForMoreTouches) {
72+ return "WaitingForMoreTouches";
73+ } else if (status == InternalStatus::WaitingForOwnership) {
74+ return "WaitingForOwnership";
75+ } else if (status == InternalStatus::Rejected) {
76+ return "Rejected";
77+ } else if (status == InternalStatus::WaitingForRejection) {
78+ return "WaitingForRejection";
79+ } else {
80+ return "Recognized";
81+ }
82+ return "Unknown";
83+}
84+
85+QString touchState(Qt::TouchPointState state) {
86+ switch (state) {
87+ case Qt::TouchPointPressed: return "pressed";
88+ case Qt::TouchPointMoved: return "moved";
89+ case Qt::TouchPointStationary: return "stationary";
90+ case Qt::TouchPointReleased: return "released";
91+ break;
92+ }
93+ return "unknown";
94+}
95+
96+QString touchesString(const QList<QObject*> touches) {
97+ QString str;
98+ Q_FOREACH(QObject* object, touches) {
99+ GestureTouchPoint* touchPoint = qobject_cast<GestureTouchPoint*>(object);
100+ if (touchPoint) {
101+ str += QStringLiteral("[%1 @ (%2, %3)], ").arg(touchPoint->id())
102+ .arg(touchPoint->x())
103+ .arg(touchPoint->y());
104+ }
105+ }
106+ return str;
107+}
108+
109+QString touchEventString(QTouchEvent* event) {
110+ if (!event) return QString();
111+ QString str;
112+ Q_FOREACH(const auto& touchPoint, event->touchPoints()) {
113+ str += QStringLiteral("[%1:%2 @ (%3, %4)], ").arg(touchPoint.id())
114+ .arg(touchState(touchPoint.state()))
115+ .arg(touchPoint.pos().x())
116+ .arg(touchPoint.pos().y());
117+ }
118+ return str;
119+}
120+
121+
122+} // namespace {
123+#else // TOUCHGESTUREAREA_DEBUG
124+#define tgaDebug(params) ((void)0)
125+#endif // TOUCHGESTUREAREA_DEBUG
126+
127+TouchGestureArea::TouchGestureArea(QQuickItem* parent)
128+ : QQuickItem(parent)
129+ , m_status(WaitingForTouch)
130+ , m_recognitionTimer(nullptr)
131+ , m_dragging(false)
132+ , m_minimumTouchPoints(1)
133+ , m_maximumTouchPoints(INT_MAX)
134+ , m_recognitionPeriod(50)
135+ , m_releaseRejectPeriod(100)
136+{
137+ setRecognitionTimer(new UbuntuGestures::Timer(this));
138+ m_recognitionTimer->setInterval(m_recognitionPeriod);
139+ m_recognitionTimer->setSingleShot(true);
140+}
141+
142+TouchGestureArea::~TouchGestureArea()
143+{
144+ clearTouchLists();
145+ qDeleteAll(m_liveTouchPoints);
146+ m_liveTouchPoints.clear();
147+ qDeleteAll(m_cachedTouchPoints);
148+ m_cachedTouchPoints.clear();
149+}
150+
151+bool TouchGestureArea::event(QEvent *event)
152+{
153+ // Process unowned touch events (handles update/release for incomplete gestures)
154+ if (event->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
155+ touchOwnershipEvent(static_cast<TouchOwnershipEvent *>(event));
156+ return true;
157+ } else if (event->type() == UnownedTouchEvent::unownedTouchEventType()) {
158+ unownedTouchEvent(static_cast<UnownedTouchEvent *>(event)->touchEvent());
159+ return true;
160+ }
161+
162+ return QQuickItem::event(event);
163+}
164+
165+void TouchGestureArea::touchOwnershipEvent(TouchOwnershipEvent *event)
166+{
167+ int touchId = event->touchId();
168+ tgaDebug("touchOwnershipEvent - id:" << touchId << ", gained:" << event->gained());
169+
170+ if (event->gained()) {
171+ grabTouchPoints(QVector<int>() << touchId);
172+ m_candidateTouches.remove(touchId);
173+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
174+ m_watchedTouches.insert(touchId);
175+
176+ if (m_watchedTouches.count() >= m_minimumTouchPoints) {
177+ setInternalStatus(InternalStatus::Recognized);
178+ }
179+ } else {
180+ rejectGesture();
181+ }
182+}
183+
184+void TouchGestureArea::touchEvent(QTouchEvent *event)
185+{
186+ if (!isEnabled() || !isVisible()) {
187+ tgaDebug(QString("NOT ENABLED touchEvent(%1) %2").arg(statusToString(m_status)).arg(touchEventString(event)));
188+ QQuickItem::touchEvent(event);
189+ return;
190+ }
191+
192+ tgaDebug(QString("touchEvent(%1) %2").arg(statusToString(m_status)).arg(touchEventString(event)));
193+
194+ switch (m_status) {
195+ case InternalStatus::WaitingForTouch:
196+ touchEvent_waitingForTouch(event);
197+ break;
198+ case InternalStatus::WaitingForMoreTouches:
199+ touchEvent_waitingForMoreTouches(event);
200+ break;
201+ case InternalStatus::WaitingForOwnership:
202+ touchEvent_waitingForOwnership(event);
203+ break;
204+ case InternalStatus::Recognized:
205+ case InternalStatus::WaitingForRejection:
206+ touchEvent_recognized(event);
207+ break;
208+ case InternalStatus::Rejected:
209+ touchEvent_rejected(event);
210+ break;
211+ default: // Recognized:
212+ break;
213+ }
214+
215+ updateTouchPoints(event);
216+}
217+
218+void TouchGestureArea::touchEvent_waitingForTouch(QTouchEvent *event)
219+{
220+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
221+ Qt::TouchPointState touchPointState = touchPoint.state();
222+ int touchId = touchPoint.id();
223+
224+ if (touchPointState == Qt::TouchPointPressed) {
225+ if (!m_candidateTouches.contains(touchId)) {
226+ TouchRegistry::instance()->addCandidateOwnerForTouch(touchId, this);
227+ m_candidateTouches.insert(touchId);
228+ }
229+ }
230+ }
231+ event->ignore();
232+
233+ if (m_candidateTouches.count() > m_maximumTouchPoints) {
234+ rejectGesture();
235+ } else if (m_candidateTouches.count() >= m_minimumTouchPoints) {
236+ setInternalStatus(InternalStatus::WaitingForOwnership);
237+
238+ QSet<int> tmpCandidates(m_candidateTouches);
239+ Q_FOREACH(int candidateTouchId, tmpCandidates) {
240+ TouchRegistry::instance()->requestTouchOwnership(candidateTouchId, this);
241+ }
242+ // We accept the gesture; so don't pass to lower items
243+ event->accept();
244+ } else if (m_candidateTouches.count() > 0) {
245+ setInternalStatus(InternalStatus::WaitingForMoreTouches);
246+ }
247+}
248+
249+void TouchGestureArea::touchEvent_waitingForMoreTouches(QTouchEvent *event)
250+{
251+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
252+ Qt::TouchPointState touchPointState = touchPoint.state();
253+ int touchId = touchPoint.id();
254+
255+ if (touchPointState == Qt::TouchPointPressed) {
256+ if (!m_candidateTouches.contains(touchId)) {
257+ TouchRegistry::instance()->addCandidateOwnerForTouch(touchId, this);
258+ m_candidateTouches.insert(touchId);
259+ }
260+ }
261+ }
262+ event->ignore();
263+
264+ if (m_candidateTouches.count() > m_maximumTouchPoints) {
265+ rejectGesture();
266+ } else if (m_candidateTouches.count() >= m_minimumTouchPoints) {
267+ setInternalStatus(InternalStatus::WaitingForOwnership);
268+
269+ QSet<int> tmpCandidates(m_candidateTouches);
270+ Q_FOREACH(int candidateTouchId, tmpCandidates) {
271+ TouchRegistry::instance()->requestTouchOwnership(candidateTouchId, this);
272+ }
273+ // We accept the gesture; so don't pass to lower items
274+ event->accept();
275+ }
276+}
277+
278+void TouchGestureArea::touchEvent_waitingForOwnership(QTouchEvent *event)
279+{
280+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
281+ Qt::TouchPointState touchPointState = touchPoint.state();
282+ int touchId = touchPoint.id();
283+
284+ if (touchPointState == Qt::TouchPointPressed) {
285+ if (!m_watchedTouches.contains(touchId)) {
286+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
287+ m_watchedTouches.insert(touchId);
288+ }
289+ }
290+ }
291+}
292+
293+void TouchGestureArea::touchEvent_recognized(QTouchEvent *event)
294+{
295+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
296+ Qt::TouchPointState touchPointState = touchPoint.state();
297+ int touchId = touchPoint.id();
298+
299+ if (touchPointState == Qt::TouchPointPressed) {
300+ if (!m_watchedTouches.contains(touchId)) {
301+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
302+ m_watchedTouches.insert(touchId);
303+ }
304+ }
305+ }
306+
307+ if (m_watchedTouches.count() > m_maximumTouchPoints) {
308+ rejectGesture();
309+ } else if (m_watchedTouches.count() >= m_minimumTouchPoints &&
310+ m_status==InternalStatus::WaitingForRejection) {
311+ setInternalStatus(InternalStatus::Recognized);
312+ }
313+}
314+
315+void TouchGestureArea::touchEvent_rejected(QTouchEvent *event)
316+{
317+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
318+ Qt::TouchPointState touchPointState = touchPoint.state();
319+ int touchId = touchPoint.id();
320+
321+ if (touchPointState == Qt::TouchPointPressed) {
322+ if (!m_watchedTouches.contains(touchId)) {
323+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
324+ m_watchedTouches.insert(touchId);
325+ }
326+ }
327+ }
328+}
329+
330+void TouchGestureArea::unownedTouchEvent(QTouchEvent *unownedTouchEvent)
331+{
332+ tgaDebug(QString("unownedTouchEvent(%1) %2").arg(statusToString(m_status)).arg(touchEventString(unownedTouchEvent)));
333+
334+ // Only monitor unowned touch events for presses/releases
335+ if ((unownedTouchEvent->touchPointStates() & (Qt::TouchPointPressed|Qt::TouchPointReleased)) == 0) {
336+ return;
337+ }
338+
339+ switch (m_status) {
340+ case InternalStatus::WaitingForTouch:
341+ break;
342+ case InternalStatus::WaitingForMoreTouches:
343+ unownedTouchEvent_waitingForMoreTouches(unownedTouchEvent);
344+ // do nothing
345+ break;
346+ case InternalStatus::WaitingForOwnership:
347+ unownedTouchEvent_waitingForOwnership(unownedTouchEvent);
348+ break;
349+ case InternalStatus::Recognized:
350+ case InternalStatus::WaitingForRejection:
351+ unownedTouchEvent_recognised(unownedTouchEvent);
352+ break;
353+ case InternalStatus::Rejected:
354+ unownedTouchEvent_rejected(unownedTouchEvent);
355+ break;
356+ default:
357+ break;
358+ }
359+
360+ updateTouchPoints(unownedTouchEvent);
361+}
362+
363+void TouchGestureArea::unownedTouchEvent_waitingForMoreTouches(QTouchEvent *event)
364+{
365+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
366+ Qt::TouchPointState touchPointState = touchPoint.state();
367+ int touchId = touchPoint.id();
368+
369+ if (touchPointState == Qt::TouchPointReleased) {
370+ if (m_candidateTouches.contains(touchId)) {
371+ TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, this);
372+ m_candidateTouches.remove(touchId);
373+ }
374+ }
375+ }
376+
377+ if (m_candidateTouches.count() == 0) {
378+ setInternalStatus(InternalStatus::WaitingForTouch);
379+ }
380+}
381+
382+void TouchGestureArea::unownedTouchEvent_waitingForOwnership(QTouchEvent *event)
383+{
384+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
385+ Qt::TouchPointState touchPointState = touchPoint.state();
386+ int touchId = touchPoint.id();
387+
388+ if (touchPointState == Qt::TouchPointReleased) {
389+ if (m_candidateTouches.contains(touchId)) {
390+ TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, this);
391+ m_candidateTouches.remove(touchId);
392+ }
393+ if (m_watchedTouches.contains(touchId)) {
394+ m_watchedTouches.remove(touchId);
395+ }
396+ }
397+ }
398+
399+ if (m_candidateTouches.count() + m_watchedTouches.count() == 0) {
400+ setInternalStatus(InternalStatus::WaitingForTouch);
401+ }
402+}
403+
404+void TouchGestureArea::unownedTouchEvent_recognised(QTouchEvent *event)
405+{
406+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
407+ Qt::TouchPointState touchPointState = touchPoint.state();
408+ int touchId = touchPoint.id();
409+
410+ if (touchPointState == Qt::TouchPointReleased) {
411+ if (m_watchedTouches.contains(touchId)) {
412+ m_watchedTouches.remove(touchId);
413+ }
414+ }
415+ }
416+
417+ if (m_watchedTouches.count() < m_minimumTouchPoints && m_status==InternalStatus::Recognized) {
418+ setInternalStatus(InternalStatus::WaitingForRejection);
419+ }
420+}
421+
422+void TouchGestureArea::unownedTouchEvent_rejected(QTouchEvent *event)
423+{
424+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, event->touchPoints()) {
425+ Qt::TouchPointState touchPointState = touchPoint.state();
426+ int touchId = touchPoint.id();
427+
428+ if (touchPointState == Qt::TouchPointPressed) {
429+ if (!m_watchedTouches.contains(touchId)) {
430+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
431+ m_watchedTouches.insert(touchId);
432+ }
433+ }
434+ if (touchPointState == Qt::TouchPointReleased) {
435+ if (m_watchedTouches.contains(touchId)) {
436+ m_watchedTouches.remove(touchId);
437+ }
438+ }
439+ }
440+
441+ if (m_watchedTouches.count() == 0) {
442+ setInternalStatus(InternalStatus::WaitingForTouch);
443+ }
444+}
445+
446+void TouchGestureArea::updateTouchPoints(QTouchEvent *touchEvent)
447+{
448+ bool added = false;
449+ bool ended = false;
450+ bool moved = false;
451+
452+ const int dragThreshold = qApp->styleHints()->startDragDistance();
453+ const int dragVelocity = qApp->styleHints()->startDragVelocity();
454+
455+ clearTouchLists();
456+ bool updateable = m_status != InternalStatus::WaitingForRejection;
457+
458+ Q_FOREACH(const QTouchEvent::TouchPoint& touchPoint, touchEvent->touchPoints()) {
459+ Qt::TouchPointState touchPointState = touchPoint.state();
460+ int touchId = touchPoint.id();
461+
462+ if (touchPointState & Qt::TouchPointReleased) {
463+ GestureTouchPoint* gtp = m_liveTouchPoints.value(touchId);
464+ if (!gtp) continue;
465+
466+ gtp->setPos(touchPoint.pos());
467+ gtp->setPressed(false);
468+ m_releasedTouchPoints.append(gtp);
469+ m_liveTouchPoints.remove(touchId);
470+
471+ if (updateable) {
472+ if (m_cachedTouchPoints.contains(touchId)) {
473+ GestureTouchPoint* cachedPoint = m_cachedTouchPoints.take(touchId);
474+ cachedPoint->deleteLater();
475+ }
476+ }
477+ ended = true;
478+ } else {
479+ GestureTouchPoint* gtp = m_liveTouchPoints.value(touchPoint.id(), nullptr);
480+ if (!gtp) {
481+ gtp = addTouchPoint(&touchPoint);
482+ m_pressedTouchPoints.append(gtp);
483+
484+ if (updateable) {
485+ if (m_cachedTouchPoints.contains(touchId)) {
486+ m_cachedTouchPoints[touchId]->setPos(touchPoint.pos());
487+ } else {
488+ m_cachedTouchPoints[touchId] = new GestureTouchPoint(*gtp);
489+ }
490+ }
491+ added = true;
492+ } else if (touchPointState & Qt::TouchPointMoved) {
493+ gtp->setPos(touchPoint.pos());
494+ m_movedTouchPoints.append(gtp);
495+ moved = true;
496+
497+ const QPointF &currentPos = touchPoint.scenePos();
498+ const QPointF &startPos = touchPoint.startScenePos();
499+
500+ bool overDragThreshold = false;
501+ bool supportsVelocity = (touchEvent->device()->capabilities() & QTouchDevice::Velocity) && dragVelocity;
502+ overDragThreshold |= qAbs(currentPos.x() - startPos.x()) > dragThreshold ||
503+ qAbs(currentPos.y() - startPos.y()) > dragThreshold;
504+ if (supportsVelocity) {
505+ QVector2D velocityVec = touchPoint.velocity();
506+ overDragThreshold |= qAbs(velocityVec.x()) > dragVelocity;
507+ overDragThreshold |= qAbs(velocityVec.y()) > dragVelocity;
508+ }
509+
510+ if (overDragThreshold) {
511+ gtp->setDragging(true);
512+ }
513+
514+ if (updateable) {
515+ if (m_cachedTouchPoints.contains(touchId)) {
516+ m_cachedTouchPoints[touchId]->setPos(touchPoint.pos());
517+ if (overDragThreshold) {
518+ m_cachedTouchPoints[touchId]->setDragging(true);
519+ }
520+ }
521+ }
522+ }
523+ }
524+ }
525+
526+ if (updateable) {
527+ if (!dragging() && m_status == InternalStatus::Recognized) {
528+ bool allWantDrag = !m_liveTouchPoints.isEmpty();
529+ Q_FOREACH(auto point, m_liveTouchPoints) {
530+ allWantDrag &= point->dragging();
531+ }
532+ // only dragging if all points are dragging.
533+ if (allWantDrag) {
534+ setDragging(true);
535+ }
536+ }
537+
538+ if (ended) {
539+ if (m_liveTouchPoints.isEmpty()) {
540+ if (!dragging()) Q_EMIT clicked();
541+ setDragging(false);
542+ }
543+ tgaDebug("Released " << touchesString(m_releasedTouchPoints));
544+ Q_EMIT released(m_releasedTouchPoints);
545+ }
546+ if (added) {
547+ tgaDebug("Pressed " << touchesString(m_pressedTouchPoints));
548+ Q_EMIT pressed(m_pressedTouchPoints);
549+ }
550+ if (moved) {
551+ tgaDebug("Updated " << touchesString(m_movedTouchPoints));
552+ Q_EMIT updated(m_movedTouchPoints);
553+ }
554+ if (added || ended || moved) {
555+ Q_EMIT touchPointsUpdated();
556+ }
557+ }
558+}
559+
560+void TouchGestureArea::clearTouchLists()
561+{
562+ Q_FOREACH (QObject *gtp, m_releasedTouchPoints) {
563+ delete gtp;
564+ }
565+ m_releasedTouchPoints.clear();
566+ m_pressedTouchPoints.clear();
567+ m_movedTouchPoints.clear();
568+}
569+
570+void TouchGestureArea::setInternalStatus(uint newStatus)
571+{
572+ if (newStatus == m_status)
573+ return;
574+
575+ uint oldStatus = m_status;
576+
577+ m_status = newStatus;
578+ Q_EMIT statusChanged(status());
579+
580+ if (oldStatus == InternalStatus::WaitingForMoreTouches || oldStatus == InternalStatus::WaitingForRejection) {
581+ m_recognitionTimer->stop();
582+ }
583+
584+ tgaDebug(statusToString(oldStatus) << " -> " << statusToString(newStatus));
585+
586+ switch (newStatus) {
587+ case InternalStatus::WaitingForTouch:
588+ resyncCachedTouchPoints();
589+ break;
590+ case InternalStatus::WaitingForMoreTouches:
591+ m_recognitionTimer->start(m_recognitionPeriod);
592+ break;
593+ case InternalStatus::Recognized:
594+ resyncCachedTouchPoints();
595+ break;
596+ case InternalStatus::WaitingForRejection:
597+ m_recognitionTimer->start(m_releaseRejectPeriod);
598+ break;
599+ case InternalStatus::Rejected:
600+ resyncCachedTouchPoints();
601+ break;
602+ default:
603+ // no-op
604+ break;
605+ }
606+}
607+
608+void TouchGestureArea::setRecognitionTimer(UbuntuGestures::AbstractTimer *timer)
609+{
610+ int interval = 0;
611+ bool timerWasRunning = false;
612+ bool wasSingleShot = false;
613+
614+ // can be null when called from the constructor
615+ if (m_recognitionTimer) {
616+ interval = m_recognitionTimer->interval();
617+ timerWasRunning = m_recognitionTimer->isRunning();
618+ if (m_recognitionTimer->parent() == this) {
619+ delete m_recognitionTimer;
620+ }
621+ }
622+
623+ m_recognitionTimer = timer;
624+ timer->setInterval(interval);
625+ timer->setSingleShot(wasSingleShot);
626+ connect(timer, SIGNAL(timeout()),
627+ this, SLOT(rejectGesture()));
628+ if (timerWasRunning) {
629+ m_recognitionTimer->start();
630+ }
631+}
632+
633+int TouchGestureArea::status() const
634+{
635+ return internalStatusToGestureStatus(m_status);
636+}
637+
638+bool TouchGestureArea::dragging() const
639+{
640+ return m_dragging;
641+}
642+
643+QQmlListProperty<GestureTouchPoint> TouchGestureArea::touchPoints()
644+{
645+ return QQmlListProperty<GestureTouchPoint>(this,
646+ 0,
647+ nullptr,
648+ TouchGestureArea::touchPoint_count,
649+ TouchGestureArea::touchPoint_at,
650+ 0);
651+}
652+
653+int TouchGestureArea::minimumTouchPoints() const
654+{
655+ return m_minimumTouchPoints;
656+}
657+
658+void TouchGestureArea::setMinimumTouchPoints(int value)
659+{
660+ if (m_minimumTouchPoints != value) {
661+ m_minimumTouchPoints = value;
662+ Q_EMIT minimumTouchPointsChanged(value);
663+ }
664+}
665+
666+int TouchGestureArea::maximumTouchPoints() const
667+{
668+ return m_maximumTouchPoints;
669+}
670+
671+void TouchGestureArea::setMaximumTouchPoints(int value)
672+{
673+ if (m_maximumTouchPoints != value) {
674+ m_maximumTouchPoints = value;
675+ Q_EMIT maximumTouchPointsChanged(value);
676+ }
677+}
678+
679+int TouchGestureArea::recognitionPeriod() const
680+{
681+ return m_recognitionPeriod;
682+}
683+
684+void TouchGestureArea::setRecognitionPeriod(int value)
685+{
686+ if (value != m_recognitionPeriod) {
687+ m_recognitionPeriod = value;
688+ Q_EMIT recognitionPeriodChanged(value);
689+ }
690+}
691+
692+int TouchGestureArea::releaseRejectPeriod() const
693+{
694+ return m_releaseRejectPeriod;
695+}
696+
697+void TouchGestureArea::setReleaseRejectPeriod(int value)
698+{
699+ if (value != m_releaseRejectPeriod) {
700+ m_releaseRejectPeriod = value;
701+ Q_EMIT releaseRejectPeriodChanged(value);
702+ }
703+}
704+
705+void TouchGestureArea::rejectGesture()
706+{
707+ tgaDebug("rejectGesture");
708+ ungrabTouchPoints();
709+
710+ Q_FOREACH(int touchId, m_candidateTouches) {
711+ TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, this);
712+ }
713+
714+ // Monitor the candidates
715+ Q_FOREACH(int touchId, m_candidateTouches) {
716+ TouchRegistry::instance()->addTouchWatcher(touchId, this);
717+ m_watchedTouches.insert(touchId);
718+ }
719+ m_candidateTouches.clear();
720+
721+ if (m_watchedTouches.count() == 0) {
722+ setInternalStatus(InternalStatus::WaitingForTouch);
723+ } else {
724+ setInternalStatus(InternalStatus::Rejected);
725+ }
726+}
727+
728+void TouchGestureArea::resyncCachedTouchPoints()
729+{
730+ clearTouchLists();
731+
732+ bool added = false;
733+ bool ended = false;
734+ bool moved = false;
735+ bool wantsDrag = false;
736+
737+ // list of deletes
738+ QMutableHashIterator<int, GestureTouchPoint*> removeIter(m_cachedTouchPoints);
739+ while(removeIter.hasNext()) {
740+ removeIter.next();
741+ if (!m_liveTouchPoints.contains(removeIter.key())) {
742+ m_releasedTouchPoints.append(removeIter.value());
743+ removeIter.remove();
744+ ended = true;
745+ }
746+ }
747+
748+ // list of adds/moves
749+ Q_FOREACH(GestureTouchPoint* touchPoint, m_liveTouchPoints) {
750+ if (m_cachedTouchPoints.contains(touchPoint->id())) {
751+ GestureTouchPoint* cachedPoint = m_cachedTouchPoints[touchPoint->id()];
752+
753+ if (*cachedPoint != *touchPoint) {
754+ *cachedPoint = *touchPoint;
755+ m_movedTouchPoints.append(touchPoint);
756+ moved = true;
757+ }
758+ } else {
759+ m_cachedTouchPoints.insert(touchPoint->id(), new GestureTouchPoint(*touchPoint));
760+ m_pressedTouchPoints.append(touchPoint);
761+ added = true;
762+ }
763+ }
764+
765+ if (wantsDrag && !dragging()) {
766+ setDragging(true);
767+ }
768+
769+ if (ended) {
770+ if (m_cachedTouchPoints.isEmpty()) {
771+ if (!dragging()) Q_EMIT clicked();
772+ setDragging(false);
773+ }
774+ tgaDebug("Cached Release " << touchesString(m_releasedTouchPoints));
775+ Q_EMIT released(m_releasedTouchPoints);
776+ }
777+ if (added) {
778+ tgaDebug("Cached Press " << touchesString(m_pressedTouchPoints));
779+ Q_EMIT pressed(m_pressedTouchPoints);
780+ }
781+ if (moved) {
782+ tgaDebug("Cached Update " << touchesString(m_movedTouchPoints));
783+ Q_EMIT updated(m_movedTouchPoints);
784+ }
785+ if (added || ended || moved) Q_EMIT touchPointsUpdated();
786+}
787+
788+int TouchGestureArea::touchPoint_count(QQmlListProperty<GestureTouchPoint> *list)
789+{
790+ TouchGestureArea *q = static_cast<TouchGestureArea*>(list->object);
791+ return q->m_cachedTouchPoints.count();
792+}
793+
794+GestureTouchPoint *TouchGestureArea::touchPoint_at(QQmlListProperty<GestureTouchPoint> *list, int index)
795+{
796+ TouchGestureArea *q = static_cast<TouchGestureArea*>(list->object);
797+ return (q->m_cachedTouchPoints.begin()+index).value();
798+}
799+
800+GestureTouchPoint* TouchGestureArea::addTouchPoint(QTouchEvent::TouchPoint const* tp)
801+{
802+ GestureTouchPoint* gtp = new GestureTouchPoint();
803+ gtp->setId(tp->id());
804+ gtp->setPressed(true);
805+ gtp->setPos(tp->pos());
806+ m_liveTouchPoints.insert(tp->id(), gtp);
807+ return gtp;
808+}
809+
810+void TouchGestureArea::itemChange(ItemChange change, const ItemChangeData &value)
811+{
812+ if (change == QQuickItem::ItemSceneChange) {
813+ if (value.window != nullptr) {
814+ value.window->installEventFilter(TouchRegistry::instance());
815+ }
816+ }
817+}
818+
819+void TouchGestureArea::setDragging(bool dragging)
820+{
821+ if (m_dragging == dragging)
822+ return;
823+
824+ tgaDebug("setDragging " << dragging);
825+
826+ m_dragging = dragging;
827+ Q_EMIT draggingChanged(m_dragging);
828+}
829+
830+void GestureTouchPoint::setId(int id)
831+{
832+ if (m_id == id)
833+ return;
834+ m_id = id;
835+ Q_EMIT idChanged();
836+}
837+
838+void GestureTouchPoint::setPressed(bool pressed)
839+{
840+ if (m_pressed == pressed)
841+ return;
842+ m_pressed = pressed;
843+ Q_EMIT pressedChanged();
844+}
845+
846+void GestureTouchPoint::setX(qreal x)
847+{
848+ if (m_x == x)
849+ return;
850+ m_x = x;
851+ Q_EMIT xChanged();
852+}
853+
854+void GestureTouchPoint::setY(qreal y)
855+{
856+ if (m_y == y)
857+ return;
858+ m_y = y;
859+ Q_EMIT yChanged();
860+}
861+
862+void GestureTouchPoint::setDragging(bool dragging)
863+{
864+ if (m_dragging == dragging)
865+ return;
866+
867+ m_dragging = dragging;
868+ Q_EMIT draggingChanged();
869+}
870+
871+void GestureTouchPoint::setPos(const QPointF &pos)
872+{
873+ setX(pos.x());
874+ setY(pos.y());
875+}
plugins/Ubuntu/Gestures/TouchGestureArea.hnew file+229
@@ -0,0 +1,229 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef TOUCHGESTUREAREA_H
18+#define TOUCHGESTUREAREA_H
19+
20+#include "UbuntuGesturesQmlGlobal.h"
21+
22+#include <QQuickItem>
23+
24+// lib UbuntuGestures
25+#include <Timer.h>
26+
27+class TouchOwnershipEvent;
28+class UnownedTouchEvent;
29+
30+class GestureTouchPoint : public QObject
31+{
32+ Q_OBJECT
33+ Q_PROPERTY(int id READ id NOTIFY idChanged)
34+ Q_PROPERTY(bool pressed READ pressed NOTIFY pressedChanged)
35+ Q_PROPERTY(qreal x READ x NOTIFY xChanged)
36+ Q_PROPERTY(qreal y READ y NOTIFY yChanged)
37+ Q_PROPERTY(bool dragging READ dragging NOTIFY draggingChanged)
38+public:
39+ GestureTouchPoint()
40+ : m_id(-1)
41+ , m_pressed(false)
42+ , m_x(0)
43+ , m_y(0)
44+ , m_dragging(false)
45+ {
46+ }
47+
48+ GestureTouchPoint(const GestureTouchPoint& other)
49+ : QObject(nullptr)
50+ {
51+ operator=(other);
52+ }
53+
54+ int id() const { return m_id; }
55+ void setId(int id);
56+
57+ bool pressed() const { return m_pressed; }
58+ void setPressed(bool pressed);
59+
60+ qreal x() const { return m_x; }
61+ void setX(qreal x);
62+
63+ qreal y() const { return m_y; }
64+ void setY(qreal y);
65+
66+ bool dragging() const { return m_dragging; }
67+ void setDragging(bool dragging);
68+
69+ GestureTouchPoint& operator=(const GestureTouchPoint& rhs) {
70+ if (&rhs == this) return *this;
71+ m_id = rhs.m_id;
72+ m_pressed = rhs.m_pressed;
73+ m_x = rhs.m_x;
74+ m_y = rhs.m_y;
75+ m_dragging = rhs.m_dragging;
76+ return *this;
77+ }
78+
79+ bool operator=(const GestureTouchPoint& rhs) const {
80+ if (&rhs == this) return true;
81+ return m_id == rhs.m_id &&
82+ m_pressed == rhs.m_pressed &&
83+ m_x == rhs.m_x &&
84+ m_y == rhs.m_y &&
85+ m_dragging == rhs.m_dragging;
86+ }
87+ bool operator!=(const GestureTouchPoint& rhs) const { return !operator=(rhs); }
88+
89+ void setPos(const QPointF &pos);
90+
91+Q_SIGNALS:
92+ void idChanged();
93+ void pressedChanged();
94+ void xChanged();
95+ void yChanged();
96+ void draggingChanged();
97+
98+private:
99+ int m_id;
100+ bool m_pressed;
101+ qreal m_x;
102+ qreal m_y;
103+ bool m_dragging;
104+};
105+
106+/*
107+ An area that detects multi-finger gestures.
108+
109+ We can use this to detect gestures contstrained by a minimim and/or maximum number of touch points.
110+ This components uses the touch registry to apply for ownership of touch points.
111+ This way we can use the component in conjuntion with the directional drag area to compete for ownwership
112+ or gestures; unlike the MultiPointTouchArea.
113+ */
114+class UBUNTUGESTURESQML_EXPORT TouchGestureArea : public QQuickItem
115+{
116+ Q_OBJECT
117+ Q_ENUMS(Status)
118+
119+ Q_PROPERTY(int status READ status NOTIFY statusChanged)
120+ Q_PROPERTY(bool dragging READ dragging NOTIFY draggingChanged)
121+ Q_PROPERTY(QQmlListProperty<GestureTouchPoint> touchPoints READ touchPoints NOTIFY touchPointsUpdated)
122+
123+ Q_PROPERTY(int minimumTouchPoints READ minimumTouchPoints WRITE setMinimumTouchPoints NOTIFY minimumTouchPointsChanged)
124+ Q_PROPERTY(int maximumTouchPoints READ maximumTouchPoints WRITE setMaximumTouchPoints NOTIFY maximumTouchPointsChanged)
125+
126+ // Time(ms) the component will wait for after receiving an initial touch to recognise a gesutre before rejecting it.
127+ Q_PROPERTY(int recognitionPeriod READ recognitionPeriod WRITE setRecognitionPeriod NOTIFY recognitionPeriodChanged)
128+ // Time(ms) the component will allow a recognised gesture to intermitently release a touch point before rejecting the gesture.
129+ // This is so we will not immediately reject a gesture if there are fleeting touch point releases while dragging.
130+ Q_PROPERTY(int releaseRejectPeriod READ releaseRejectPeriod WRITE setReleaseRejectPeriod NOTIFY releaseRejectPeriodChanged)
131+
132+public:
133+ // Describes the state of the touch gesture area.
134+ enum Status {
135+ WaitingForTouch,
136+ Undecided,
137+ Recognized,
138+ Rejected
139+ };
140+ TouchGestureArea(QQuickItem* parent = NULL);
141+ ~TouchGestureArea();
142+
143+ bool event(QEvent *e) override;
144+
145+ void setRecognitionTimer(UbuntuGestures::AbstractTimer *timer);
146+
147+ int status() const;
148+ bool dragging() const;
149+ QQmlListProperty<GestureTouchPoint> touchPoints();
150+
151+ int minimumTouchPoints() const;
152+ void setMinimumTouchPoints(int value);
153+
154+ int maximumTouchPoints() const;
155+ void setMaximumTouchPoints(int value);
156+
157+ int recognitionPeriod() const;
158+ void setRecognitionPeriod(int value);
159+
160+ int releaseRejectPeriod() const;
161+ void setReleaseRejectPeriod(int value);
162+
163+Q_SIGNALS:
164+ void statusChanged(int status);
165+
166+ void touchPointsUpdated();
167+ void draggingChanged(bool dragging);
168+ void minimumTouchPointsChanged(bool value);
169+ void maximumTouchPointsChanged(bool value);
170+ void recognitionPeriodChanged(bool value);
171+ void releaseRejectPeriodChanged(bool value);
172+
173+ void pressed(const QList<QObject*>& points);
174+ void released(const QList<QObject*>& points);
175+ void updated(const QList<QObject*>& points);
176+ void clicked();
177+
178+protected:
179+ void itemChange(ItemChange change, const ItemChangeData &value);
180+
181+private Q_SLOTS:
182+ void rejectGesture();
183+
184+private:
185+ void touchEvent(QTouchEvent *event) override;
186+ void touchEvent_waitingForTouch(QTouchEvent *event);
187+ void touchEvent_waitingForMoreTouches(QTouchEvent *event);
188+ void touchEvent_waitingForOwnership(QTouchEvent *event);
189+ void touchEvent_recognized(QTouchEvent *event);
190+ void touchEvent_rejected(QTouchEvent *event);
191+
192+ void unownedTouchEvent(QTouchEvent *unownedTouchEvent);
193+ void unownedTouchEvent_waitingForMoreTouches(QTouchEvent *unownedTouchEvent);
194+ void unownedTouchEvent_waitingForOwnership(QTouchEvent *unownedTouchEvent);
195+ void unownedTouchEvent_recognised(QTouchEvent *unownedTouchEvent);
196+ void unownedTouchEvent_rejected(QTouchEvent *unownedTouchEvent);
197+
198+ void touchOwnershipEvent(TouchOwnershipEvent *event);
199+ void updateTouchPoints(QTouchEvent *event);
200+
201+ GestureTouchPoint* addTouchPoint(const QTouchEvent::TouchPoint *tp);
202+ void clearTouchLists();
203+ void setDragging(bool dragging);
204+ void setInternalStatus(uint status);
205+ void resyncCachedTouchPoints();
206+
207+ static int touchPoint_count(QQmlListProperty<GestureTouchPoint> *list);
208+ static GestureTouchPoint* touchPoint_at(QQmlListProperty<GestureTouchPoint> *list, int index);
209+
210+ uint m_status;
211+ QSet<int> m_candidateTouches;
212+ QSet<int> m_watchedTouches;
213+ UbuntuGestures::AbstractTimer *m_recognitionTimer;
214+
215+ bool m_dragging;
216+ QHash<int, GestureTouchPoint*> m_liveTouchPoints;
217+ QHash<int, GestureTouchPoint*> m_cachedTouchPoints;
218+ QList<QObject*> m_releasedTouchPoints;
219+ QList<QObject*> m_pressedTouchPoints;
220+ QList<QObject*> m_movedTouchPoints;
221+ int m_minimumTouchPoints;
222+ int m_maximumTouchPoints;
223+ int m_recognitionPeriod;
224+ int m_releaseRejectPeriod;
225+};
226+
227+QML_DECLARE_TYPE(GestureTouchPoint)
228+
229+#endif // TOUCHGESTUREAREA_H
plugins/Ubuntu/Gestures/plugin.cpp+3
@@ -21,6 +21,7 @@
2121#include "FloatingFlickable.h"
2222#include "PressedOutsideNotifier.h"
2323#include "TouchGate.h"
24+#include "TouchGestureArea.h"
2425
2526#include <qqml.h>
2627
@@ -38,4 +39,6 @@ void UbuntuGesturesQmlPlugin::registerTypes(const char *uri)
3839 qmlRegisterType<FloatingFlickable>(uri, 0, 1, "FloatingFlickable");
3940 qmlRegisterType<PressedOutsideNotifier>(uri, 0, 1, "PressedOutsideNotifier");
4041 qmlRegisterType<TouchGate>(uri, 0, 1, "TouchGate");
42+ qmlRegisterType<TouchGestureArea>(uri, 0, 1, "TouchGestureArea");
43+ qmlRegisterUncreatableType<GestureTouchPoint>(uri, 0, 1, "GestureTouchPoint", "Cannot create GestureTouchPoints");
4144}
plugins/Unity/Indicators/indicatorsmanager.cpp+5−7
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -12,8 +12,6 @@
1212 *
1313 * You should have received a copy of the GNU General Public License
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Author: Nick Dedekind <nick.dedekind@canonical.com>
1715 */
1816
1917#include "indicatorsmanager.h"
@@ -116,7 +114,7 @@ void IndicatorsManager::loadFile(const QFileInfo& file_info)
116114 QSettings indicator_settings(file_info.absoluteFilePath(), QSettings::IniFormat, this);
117115 const QString name = indicator_settings.value(QStringLiteral("Indicator Service/Name")).toString();
118116
119− if (m_platform.isPC() && name == "indicator-keyboard") {
117+ if (m_platform.isPC() && name == QLatin1String("indicator-keyboard")) {
120118 return; // convergence: skip this indicator until it works in Mir
121119 }
122120
@@ -286,14 +284,14 @@ Indicator::Ptr IndicatorsManager::indicator(const QString& indicator_name)
286284 new_indicator->init(data->m_fileInfo.fileName(), settings);
287285
288286 // convergence:
289− // 1) enable session indicator conditionally, typically when running in a multisession/multiuser environment
287+ // 1) enable session indicator
290288 // 2) on a PC, switch the battery/power indicator to desktop mode,
291289 // can't control brightness for now and phone-on-desktop broken (FIXME)
292290 //
293291 // The rest of the indicators respect their default profile (which is "phone", even on desktop PCs)
294− if ((new_indicator->identifier() == QStringLiteral("indicator-session") && m_platform.isMultiSession())
292+ if ((new_indicator->identifier() == QStringLiteral("indicator-session"))
295293 || (new_indicator->identifier() == QStringLiteral("indicator-power") && m_platform.isPC())) {
296− new_indicator->setProfile("desktop");
294+ new_indicator->setProfile(QStringLiteral("desktop"));
297295 } else {
298296 new_indicator->setProfile(m_profile);
299297 }
plugins/Unity/Indicators/rootstateparser.h+1
@@ -23,6 +23,7 @@
2323
2424class UNITYINDICATORS_EXPORT RootStateParser : public ActionStateParser
2525{
26+Q_OBJECT
2627public:
2728 RootStateParser(QObject* parent = nullptr);
2829 virtual QVariant toQVariant(GVariant* state) const override;
plugins/Unity/InputInfo/InputInfo.qmltypesnew file+71
@@ -0,0 +1,71 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Unity.InputInfo 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "QDeclarativeInputDeviceModel"
12+ prototype: "QAbstractListModel"
13+ exports: ["Unity.InputInfo/InputDeviceModel 0.1"]
14+ exportMetaObjectRevisions: [0]
15+ Property { name: "deviceFilter"; type: "QInputDevice::InputType" }
16+ Property { name: "count"; type: "int"; isReadonly: true }
17+ Signal {
18+ name: "deviceAdded"
19+ Parameter { name: "devicePath"; type: "string" }
20+ }
21+ Signal {
22+ name: "deviceRemoved"
23+ Parameter { name: "devicePath"; type: "string" }
24+ }
25+ Signal {
26+ name: "deviceFilterChanged"
27+ Parameter { name: "filter"; type: "QInputDevice::InputType" }
28+ }
29+ Method { name: "updateDeviceList" }
30+ Method {
31+ name: "indexOf"
32+ type: "int"
33+ Parameter { name: "devicePath"; type: "string" }
34+ }
35+ Method {
36+ name: "get"
37+ type: "QInputDevice*"
38+ Parameter { name: "index"; type: "int" }
39+ }
40+ }
41+ Component {
42+ name: "QInputDevice"
43+ prototype: "QObject"
44+ exports: ["Unity.InputInfo/InputInfo 0.1"]
45+ exportMetaObjectRevisions: [0]
46+ Enum {
47+ name: "InputType"
48+ values: {
49+ "Unknown": 0,
50+ "Button": 1,
51+ "Mouse": 2,
52+ "TouchPad": 4,
53+ "TouchScreen": 8,
54+ "Keyboard": 16,
55+ "Switch": 32
56+ }
57+ }
58+ Enum {
59+ name: "InputTypeFlags"
60+ values: {
61+ "Unknown": 0,
62+ "Button": 1,
63+ "Mouse": 2,
64+ "TouchPad": 4,
65+ "TouchScreen": 8,
66+ "Keyboard": 16,
67+ "Switch": 32
68+ }
69+ }
70+ }
71+}
plugins/Unity/Launcher/desktopfilehandler.cpp+2−2
@@ -146,9 +146,9 @@ QString DesktopFileHandler::icon() const
146146 QString iconString = settings.value(QStringLiteral("Icon")).toString();
147147 QString pathString = settings.value(QStringLiteral("Path")).toString();
148148
149− if (QFileInfo(iconString).exists()) {
149+ if (QFileInfo::exists(iconString)) {
150150 return QFileInfo(iconString).absoluteFilePath();
151− } else if (QFileInfo(pathString + '/' + iconString).exists()) {
151+ } else if (QFileInfo::exists(pathString + '/' + iconString)) {
152152 return pathString + '/' + iconString;
153153 }
154154 return "image://theme/" + iconString;
plugins/Unity/Launcher/launcheritem.cpp+1
@@ -37,6 +37,7 @@ LauncherItem::LauncherItem(const QString &appId, const QString &name, const QStr
3737 m_alerting(false),
3838 m_quickList(new QuickListModel(this))
3939{
40+ Q_ASSERT(parent != nullptr);
4041 QuickListEntry nameAction;
4142 nameAction.setActionId(QStringLiteral("launch_item"));
4243 nameAction.setText(m_name);
plugins/Unity/Launcher/launcheritem.h+1−1
@@ -32,7 +32,7 @@ class LauncherItem: public LauncherItemInterface
3232{
3333 Q_OBJECT
3434public:
35− LauncherItem(const QString &appId, const QString &name, const QString &icon, QObject *parent = 0);
35+ LauncherItem(const QString &appId, const QString &name, const QString &icon, QObject *parent);
3636
3737 QString appId() const override;
3838 QString name() const override;
plugins/Unity/Launcher/launchermodel.cpp+15−5
@@ -103,7 +103,7 @@ void LauncherModel::setAlerting(const QString &appId, bool alerting) {
103103 LauncherItem *item = m_list.at(index);
104104 if (!item->focused()) {
105105 item->setAlerting(alerting);
106− Q_EMIT dataChanged(modelIndex, modelIndex, QVector<int>() << RoleAlerting);
106+ Q_EMIT dataChanged(modelIndex, modelIndex, {RoleAlerting});
107107 }
108108 }
109109}
@@ -389,7 +389,8 @@ void LauncherModel::countVisibleChanged(const QString &appId, bool countVisible)
389389 if (countVisible && desktopFile.isValid()) {
390390 LauncherItem *item = new LauncherItem(appId,
391391 desktopFile.displayName(),
392− desktopFile.icon());
392+ desktopFile.icon(),
393+ this);
393394 item->setCountVisible(true);
394395 beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
395396 m_list.append(item);
@@ -414,10 +415,19 @@ void LauncherModel::refresh()
414415 } else {
415416 int idx = m_list.indexOf(item);
416417 item->setName(desktopFile.displayName());
417− item->setIcon(desktopFile.icon());
418418 item->setPinned(item->pinned()); // update pinned text if needed
419419 item->setRunning(item->running());
420− Q_EMIT dataChanged(index(idx), index(idx), {RoleName, RoleIcon, RoleRunning});
420+ Q_EMIT dataChanged(index(idx), index(idx), {RoleName, RoleRunning});
421+
422+ const QString oldIcon = item->icon();
423+ if (oldIcon == desktopFile.icon()) { // same icon file, perhaps different contents, simulate changing the icon name to force reload
424+ item->setIcon(QString());
425+ Q_EMIT dataChanged(index(idx), index(idx), {RoleIcon});
426+ }
427+
428+ // now set the icon for real
429+ item->setIcon(desktopFile.icon());
430+ Q_EMIT dataChanged(index(idx), index(idx), {RoleIcon});
421431 }
422432 }
423433
@@ -489,7 +499,7 @@ void LauncherModel::alert(const QString &appId)
489499 if (idx >= 0) {
490500 LauncherItem *item = m_list.at(idx);
491501 setAlerting(item->appId(), true);
492− Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleAlerting);
502+ Q_EMIT dataChanged(index(idx), index(idx), {RoleAlerting});
493503 }
494504}
495505
plugins/Unity/Launcher/launchermodel.h+1−1
@@ -38,7 +38,7 @@ class LauncherModel: public LauncherModelInterface
3838 Q_OBJECT
3939
4040public:
41− LauncherModel(QObject *parent = 0);
41+ LauncherModel(QObject *parent = nullptr);
4242 ~LauncherModel();
4343
4444 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
plugins/Unity/Platform/Platform.qmltypesnew file+20
@@ -0,0 +1,20 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Unity.Platform 1.0 plugins'
8+
9+Module {
10+ Component {
11+ name: "Platform"
12+ prototype: "QObject"
13+ exports: ["Unity.Platform/Platform 1.0"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Property { name: "chassis"; type: "string"; isReadonly: true }
18+ Property { name: "isPC"; type: "bool"; isReadonly: true }
19+ }
20+}
plugins/Unity/Session/dbusunitysessionservice.cpp+4−1
@@ -336,6 +336,9 @@ void DBusUnitySessionService::PromptLock()
336336
337337void DBusUnitySessionService::Lock()
338338{
339+ // signal u8 to show the lockscreen/greeter
340+ PromptLock();
341+
339342 // lock the session using the org.freedesktop.DisplayManager system DBUS service
340343 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
341344 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
@@ -348,7 +351,7 @@ void DBusUnitySessionService::Lock()
348351 connect(watcher, &QDBusPendingCallWatcher::finished,
349352 this, [this](QDBusPendingCallWatcher* watcher) {
350353
351− QDBusPendingReply<QVariant> reply = *watcher;
354+ QDBusPendingReply<void> reply = *watcher;
352355 watcher->deleteLater();
353356 if (reply.isError()) {
354357 qWarning() << "Lock call failed" << reply.error().message();
plugins/Utils/CMakeLists.txt+3−1
@@ -17,12 +17,14 @@ set(QMLPLUGIN_SRC
1717 unitysortfilterproxymodelqml.cpp
1818 Timer.cpp
1919 unitymenumodelpaths.cpp
20− windowkeysfilter.cpp
20+ windowinputfilter.cpp
2121 windowscreenshotprovider.cpp
2222 easingcurve.cpp
2323 windowstatestorage.cpp
2424 timezoneFormatter.cpp
2525 inputeventgenerator.cpp
26+ deviceconfigparser.cpp
27+ globalfunctions.cpp
2628 plugin.cpp
2729 )
2830
plugins/Utils/Utils.qmltypes+2−2
@@ -147,10 +147,10 @@ Module {
147147 }
148148 }
149149 Component {
150− name: "WindowKeysFilter"
150+ name: "WindowInputFilter"
151151 defaultProperty: "data"
152152 prototype: "QQuickItem"
153− exports: ["Utils/WindowKeysFilter 0.1"]
153+ exports: ["Utils/WindowInputFilter 0.1"]
154154 exportMetaObjectRevisions: [0]
155155 }
156156 Component {
plugins/Utils/deviceconfigparser.cppnew file+150
@@ -0,0 +1,150 @@
1+/*
2+ * Copyright 2016 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "deviceconfigparser.h"
18+
19+#include <QSettings>
20+#include <QFileInfo>
21+#include <QDebug>
22+#include <QStandardPaths>
23+
24+DeviceConfigParser::DeviceConfigParser(QObject *parent): QObject(parent)
25+{
26+ QString path;
27+ Q_FOREACH (const QString &standardPath, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) {
28+ if (QFileInfo(standardPath + "/devices.conf").exists()) {
29+ path = standardPath + "/devices.conf";
30+ break;
31+ }
32+ }
33+
34+ if (path.isEmpty()) {
35+ path = "/etc/ubuntu/devices.conf";
36+ }
37+ qDebug() << "Using" << path << "as device configuration file";
38+ m_config = new QSettings(path, QSettings::IniFormat, this);
39+}
40+
41+QString DeviceConfigParser::name() const
42+{
43+ return m_name;
44+}
45+
46+void DeviceConfigParser::setName(const QString &name)
47+{
48+ if (m_name == name) {
49+ return;
50+ }
51+ m_name = name;
52+ Q_EMIT changed();
53+}
54+
55+Qt::ScreenOrientation DeviceConfigParser::primaryOrientation() const
56+{
57+ return stringToOrientation(readOrientationFromConfig("PrimaryOrientation"), Qt::PrimaryOrientation);
58+}
59+
60+Qt::ScreenOrientations DeviceConfigParser::supportedOrientations() const
61+{
62+ QStringList values = readOrientationsFromConfig("SupportedOrientations");
63+ if (values.isEmpty()) {
64+ return Qt::PortraitOrientation
65+ | Qt::InvertedPortraitOrientation
66+ | Qt::LandscapeOrientation
67+ | Qt::InvertedLandscapeOrientation;
68+ }
69+
70+ Qt::ScreenOrientations ret = Qt::PrimaryOrientation;
71+ Q_FOREACH(const QString &orientationString, values) {
72+ ret |= stringToOrientation(orientationString, Qt::PrimaryOrientation);
73+ }
74+ return ret;
75+}
76+
77+Qt::ScreenOrientation DeviceConfigParser::landscapeOrientation() const
78+{
79+ return stringToOrientation(readOrientationFromConfig("LandscapeOrientation"), Qt::LandscapeOrientation);
80+}
81+
82+Qt::ScreenOrientation DeviceConfigParser::invertedLandscapeOrientation() const
83+{
84+ return stringToOrientation(readOrientationFromConfig("InvertedLandscapeOrientation"), Qt::InvertedLandscapeOrientation);
85+}
86+
87+Qt::ScreenOrientation DeviceConfigParser::portraitOrientation() const
88+{
89+ return stringToOrientation(readOrientationFromConfig("PortraitOrientation"), Qt::PortraitOrientation);
90+}
91+
92+Qt::ScreenOrientation DeviceConfigParser::invertedPortraitOrientation() const
93+{
94+ return stringToOrientation(readOrientationFromConfig("InvertedPortraitOrientation"), Qt::InvertedPortraitOrientation);
95+}
96+
97+QString DeviceConfigParser::category() const
98+{
99+ QStringList supportedValues = {"phone", "tablet", "desktop"};
100+ m_config->beginGroup(m_name);
101+ QString value = m_config->value("Category", "phone").toString();
102+ if (!supportedValues.contains(value)) {
103+ qWarning().nospace().noquote() << "Unknown option \"" << value << "\" in " << m_config->fileName()
104+ << ". Supported options are: " << supportedValues.join(", ") << ".";
105+ return "phone";
106+ }
107+ m_config->endGroup();
108+ return value;
109+}
110+
111+QStringList DeviceConfigParser::readOrientationsFromConfig(const QString &key) const
112+{
113+ m_config->beginGroup(m_name);
114+
115+ QStringList ret;
116+ if (m_config->contains(key)) {
117+ ret = m_config->value(key).toStringList();
118+ }
119+
120+ m_config->endGroup();
121+ return ret;
122+}
123+
124+QString DeviceConfigParser::readOrientationFromConfig(const QString &key) const
125+{
126+ QStringList ret = readOrientationsFromConfig(key);
127+ return ret.count() > 0 ? ret.first() : QString();
128+}
129+
130+Qt::ScreenOrientation DeviceConfigParser::stringToOrientation(const QString &orientationString, Qt::ScreenOrientation defaultValue) const
131+{
132+ if (orientationString == "Landscape") {
133+ return Qt::LandscapeOrientation;
134+ }
135+ if (orientationString == "InvertedLandscape") {
136+ return Qt::InvertedLandscapeOrientation;
137+ }
138+ if (orientationString == "Portrait") {
139+ return Qt::PortraitOrientation;
140+ }
141+ if (orientationString == "InvertedPortrait") {
142+ return Qt::InvertedPortraitOrientation;
143+ }
144+ if (!orientationString.isEmpty()) {
145+ // Some option we don't know. Give some hint on what went wrong.
146+ qWarning().nospace().noquote() << "Unknown option \"" << orientationString << "\" in " << m_config->fileName()
147+ << ". Supported options are: Landscape, InvertedLandscape, Portrait and InvertedPortrait.";
148+ }
149+ return defaultValue;
150+}
plugins/Utils/deviceconfigparser.hnew file+62
@@ -0,0 +1,62 @@
1+/*
2+ * Copyright 2016 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef DEVICECONFIGPARSER_H
18+#define DEVICECONFIGPARSER_H
19+
20+#include <QObject>
21+#include <QSettings>
22+
23+class DeviceConfigParser: public QObject
24+{
25+ Q_OBJECT
26+ Q_PROPERTY(QString name READ name WRITE setName NOTIFY changed)
27+
28+ Q_PROPERTY(Qt::ScreenOrientation primaryOrientation READ primaryOrientation NOTIFY changed)
29+ Q_PROPERTY(Qt::ScreenOrientations supportedOrientations READ supportedOrientations NOTIFY changed)
30+ Q_PROPERTY(Qt::ScreenOrientation landscapeOrientation READ landscapeOrientation NOTIFY changed)
31+ Q_PROPERTY(Qt::ScreenOrientation invertedLandscapeOrientation READ invertedLandscapeOrientation NOTIFY changed)
32+ Q_PROPERTY(Qt::ScreenOrientation portraitOrientation READ portraitOrientation NOTIFY changed)
33+ Q_PROPERTY(Qt::ScreenOrientation invertedPortraitOrientation READ invertedPortraitOrientation NOTIFY changed)
34+ Q_PROPERTY(QString category READ category NOTIFY changed)
35+
36+public:
37+ DeviceConfigParser(QObject *parent = nullptr);
38+
39+ QString name() const;
40+ void setName(const QString &name);
41+
42+ Qt::ScreenOrientation primaryOrientation() const;
43+ Qt::ScreenOrientations supportedOrientations() const;
44+ Qt::ScreenOrientation landscapeOrientation() const;
45+ Qt::ScreenOrientation invertedLandscapeOrientation() const;
46+ Qt::ScreenOrientation portraitOrientation() const;
47+ Qt::ScreenOrientation invertedPortraitOrientation() const;
48+ QString category() const;
49+
50+Q_SIGNALS:
51+ void changed();
52+
53+private:
54+ QString m_name;
55+ QSettings *m_config;
56+
57+ QStringList readOrientationsFromConfig(const QString &key) const;
58+ QString readOrientationFromConfig(const QString &key) const;
59+ Qt::ScreenOrientation stringToOrientation(const QString &orientationString, Qt::ScreenOrientation defaultValue) const;
60+};
61+
62+#endif
plugins/Utils/globalfunctions.cppnew file+56
@@ -0,0 +1,56 @@
1+/*
2+ * Copyright 2015 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+*/
16+
17+#include "globalfunctions.h"
18+
19+#pragma GCC diagnostic push
20+#pragma GCC diagnostic ignored "-pedantic"
21+#include <private/qquickitem_p.h>
22+#pragma GCC diagnostic pop
23+#include <QQmlEngine>
24+
25+GlobalFunctions::GlobalFunctions(QObject *parent)
26+ : QObject(parent)
27+{
28+}
29+
30+QQuickItem *GlobalFunctions::itemAt(QQuickItem* parent, int x, int y, QJSValue matcher)
31+{
32+ if (!parent) return nullptr;
33+ QList<QQuickItem *> children = QQuickItemPrivate::get(parent)->paintOrderChildItems();
34+
35+ for (int i = children.count() - 1; i >= 0; --i) {
36+ QQuickItem *child = children.at(i);
37+
38+ // Map coordinates to the child element's coordinate space
39+ QPointF point = parent->mapToItem(child, QPointF(x, y));
40+ if (child->isVisible() && point.x() >= 0
41+ && child->width() >= point.x()
42+ && point.y() >= 0
43+ && child->height() >= point.y()) {
44+ if (!matcher.isCallable()) return child;
45+
46+ QQmlEngine* engine = qmlEngine(child);
47+ if (!engine) return child;
48+
49+ QJSValue newObj = engine->newQObject(child);
50+ if (matcher.call(QJSValueList() << newObj).toBool()) {
51+ return child;
52+ }
53+ }
54+ }
55+ return nullptr;
56+}
plugins/Utils/globalfunctions.hnew file+42
@@ -0,0 +1,42 @@
1+/*
2+ * Copyright 2015 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+*/
16+
17+#ifndef GLOBALFUNCTIONS_H
18+#define GLOBALFUNCTIONS_H
19+
20+#include <QObject>
21+#include <QJSValue>
22+class QQuickItem;
23+
24+/**
25+ * @brief The GlobalFunctions class
26+ *
27+ * This singleton class exposes utility functions to QML
28+ *
29+ */
30+class GlobalFunctions : public QObject
31+{
32+ Q_OBJECT
33+public:
34+ explicit GlobalFunctions(QObject *parent = 0);
35+
36+ static Q_INVOKABLE QQuickItem* itemAt(QQuickItem* parent,
37+ int x,
38+ int y,
39+ QJSValue matcher);
40+};
41+
42+#endif // GLOBALFUNCTIONS_H
plugins/Utils/plugin.cpp+13−2
@@ -30,13 +30,15 @@
3030#include "qlimitproxymodelqml.h"
3131#include "unitysortfilterproxymodelqml.h"
3232#include "unitymenumodelpaths.h"
33−#include "windowkeysfilter.h"
33+#include "windowinputfilter.h"
3434#include "windowscreenshotprovider.h"
3535#include "windowstatestorage.h"
3636#include "constants.h"
3737#include "timezoneFormatter.h"
3838#include "applicationsfiltermodel.h"
3939#include "inputeventgenerator.h"
40+#include "deviceconfigparser.h"
41+#include "globalfunctions.h"
4042
4143static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
4244{
@@ -52,6 +54,13 @@ static QObject *createConstants(QQmlEngine *engine, QJSEngine *scriptEngine)
5254 return new Constants();
5355}
5456
57+static QObject *createGlobalFunctions(QQmlEngine *engine, QJSEngine *scriptEngine)
58+{
59+ Q_UNUSED(engine)
60+ Q_UNUSED(scriptEngine)
61+ return new GlobalFunctions();
62+}
63+
5564void UtilsPlugin::registerTypes(const char *uri)
5665{
5766 Q_ASSERT(uri == QLatin1String("Utils"));
@@ -60,7 +69,7 @@ void UtilsPlugin::registerTypes(const char *uri)
6069 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1, "LimitProxyModel");
6170 qmlRegisterType<UnitySortFilterProxyModelQML>(uri, 0, 1, "UnitySortFilterProxyModel");
6271 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
63− qmlRegisterType<WindowKeysFilter>(uri, 0, 1, "WindowKeysFilter");
72+ qmlRegisterType<WindowInputFilter>(uri, 0, 1, "WindowInputFilter");
6473 qmlRegisterType<EasingCurve>(uri, 0, 1, "EasingCurve");
6574 qmlRegisterSingletonType<WindowStateStorage>(uri, 0, 1, "WindowStateStorage", createWindowStateStorage);
6675 qmlRegisterType<InputWatcher>(uri, 0, 1, "InputWatcher");
@@ -70,6 +79,8 @@ void UtilsPlugin::registerTypes(const char *uri)
7079 qmlRegisterType<ActiveFocusLogger>(uri, 0, 1, "ActiveFocusLogger");
7180 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
7281 qmlRegisterType<InputEventGenerator>(uri, 0, 1, "InputEventGenerator");
82+ qmlRegisterType<DeviceConfigParser>(uri, 0, 1, "DeviceConfigParser");
83+ qmlRegisterSingletonType<GlobalFunctions>(uri, 0, 1, "Functions", createGlobalFunctions);
7384}
7485
7586void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
plugins/Utils/timezoneFormatter.cpp+10
@@ -33,3 +33,13 @@ QString TimezoneFormatter::currentTimeInTimezone(const QVariant &tzId) const
3333 }
3434 return QString();
3535}
36+
37+QString TimezoneFormatter::currentTimeInTimezoneWithAbbrev(const QVariant &tzId) const
38+{
39+ QTimeZone tz(tzId.toByteArray());
40+ if (tz.isValid()) {
41+ const QDateTime now = QDateTime::currentDateTime().toTimeZone(tz);
42+ return QStringLiteral("%1 %2").arg(now.time().toString(QStringLiteral("h:mm"))).arg(tz.abbreviation(now));
43+ }
44+ return QString();
45+}
plugins/Utils/timezoneFormatter.h+1
@@ -27,6 +27,7 @@ public:
2727 ~TimezoneFormatter() = default;
2828
2929 Q_INVOKABLE QString currentTimeInTimezone(const QVariant &tzId) const;
30+ Q_INVOKABLE QString currentTimeInTimezoneWithAbbrev(const QVariant &tzId) const;
3031};
3132
3233#endif
plugins/Utils/windowkeysfilter.cpp → plugins/Utils/windowinputfilter.cpprenamed+14−16
@@ -16,36 +16,34 @@
1616 * Author: Daniel d'Andrada <daniel.dandrada@canonical.com>
1717 */
1818
19−#include "windowkeysfilter.h"
19+#include "windowinputfilter.h"
2020
2121#include <QQuickWindow>
2222
23−WindowKeysFilter::WindowKeysFilter(QQuickItem *parent)
23+WindowInputFilter::WindowInputFilter(QQuickItem *parent)
2424 : QQuickItem(parent),
25− m_currentEventTimestamp(0)
25+ m_lastInputTimestamp(0)
2626{
2727 connect(this, &QQuickItem::windowChanged,
28− this, &WindowKeysFilter::setupFilterOnWindow);
28+ this, &WindowInputFilter::setupFilterOnWindow);
2929}
3030
31−bool WindowKeysFilter::eventFilter(QObject *watched, QEvent *event)
31+bool WindowInputFilter::eventFilter(QObject *watched, QEvent *event)
3232{
3333 Q_ASSERT(!m_filteredWindow.isNull());
3434 Q_ASSERT(watched == static_cast<QObject*>(m_filteredWindow.data()));
3535 Q_UNUSED(watched);
3636
37+ QInputEvent *inputEvent = dynamic_cast<QInputEvent*>(event);
38+ if (inputEvent) {
39+ m_lastInputTimestamp = inputEvent->timestamp();
40+ Q_EMIT lastInputTimestampChanged();
41+ }
42+
3743 if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) {
3844 // Let QML see this event and decide if it does not want it
3945 event->accept();
40−
41− m_currentEventTimestamp = static_cast<QInputEvent*>(event)->timestamp();
42− Q_EMIT currentEventTimestampChanged();
43−
4446 QCoreApplication::sendEvent(this, event);
45−
46− m_currentEventTimestamp = 0;
47− Q_EMIT currentEventTimestampChanged();
48−
4947 return event->isAccepted();
5048 } else {
5149 // Not interested
@@ -53,7 +51,7 @@ bool WindowKeysFilter::eventFilter(QObject *watched, QEvent *event)
5351 }
5452}
5553
56−void WindowKeysFilter::setupFilterOnWindow(QQuickWindow *window)
54+void WindowInputFilter::setupFilterOnWindow(QQuickWindow *window)
5755{
5856 if (!m_filteredWindow.isNull()) {
5957 m_filteredWindow->removeEventFilter(this);
@@ -66,7 +64,7 @@ void WindowKeysFilter::setupFilterOnWindow(QQuickWindow *window)
6664 }
6765}
6866
69−ulong WindowKeysFilter::currentEventTimestamp() const
67+ulong WindowInputFilter::lastInputTimestamp() const
7068{
71− return m_currentEventTimestamp;
69+ return m_lastInputTimestamp;
7270}
plugins/Utils/windowkeysfilter.h → plugins/Utils/windowinputfilter.hrenamed+11−11
@@ -16,8 +16,8 @@
1616 * Author: Daniel d'Andrada <daniel.dandrada@canonical.com>
1717 */
1818
19−#ifndef UNITY_WINDOWKEYSFILTER_H
20−#define UNITY_WINDOWKEYSFILTER_H
19+#ifndef UNITY_WINDOWINPUTFILTER_H
20+#define UNITY_WINDOWINPUTFILTER_H
2121
2222#include <QQuickItem>
2323#include <QPointer>
@@ -29,30 +29,30 @@
2929 accepted ones will be filtered out. Events are accepted by default, so make sure you reject
3030 the keys you're not interested in.
3131
32− If more than one WindowKeysFilter exist in the same QML scene (and thus in the same QQuickWindow)
32+ If more than one WindowInputFilter exist in the same QML scene (and thus in the same QQuickWindow)
3333 they will be called in the order of creation, which can be tricky to assess. So the best practice
34− is to have at most one WindowKeysFilter per QML scene.
34+ is to have at most one WindowInputFilter per QML scene.
3535 */
36−class WindowKeysFilter : public QQuickItem
36+class WindowInputFilter : public QQuickItem
3737{
3838 Q_OBJECT
39− Q_PROPERTY(ulong currentEventTimestamp READ currentEventTimestamp NOTIFY currentEventTimestampChanged)
39+ Q_PROPERTY(ulong lastInputTimestamp READ lastInputTimestamp NOTIFY lastInputTimestampChanged)
4040public:
41− WindowKeysFilter(QQuickItem *parent = 0);
41+ WindowInputFilter(QQuickItem *parent = 0);
4242
4343 bool eventFilter(QObject *watched, QEvent *event) override;
4444
45− ulong currentEventTimestamp() const;
45+ ulong lastInputTimestamp() const;
4646
4747Q_SIGNALS:
48− void currentEventTimestampChanged();
48+ void lastInputTimestampChanged();
4949
5050private Q_SLOTS:
5151 void setupFilterOnWindow(QQuickWindow *window);
5252
5353private:
5454 QPointer<QQuickWindow> m_filteredWindow;
55− ulong m_currentEventTimestamp;
55+ ulong m_lastInputTimestamp;
5656};
5757
58−#endif // UNITY_WINDOWKEYSFILTER_H
58+#endif // UNITY_WINDOWINPUTFILTER_H
plugins/Utils/windowstatestorage.cpp+36−4
@@ -23,9 +23,14 @@
2323#include <QSqlError>
2424#include <QSqlResult>
2525#include <QRect>
26+#include <unity/shell/application/ApplicationInfoInterface.h>
2627
2728QMutex WindowStateStorage::s_mutex;
2829
30+inline QString sanitiseString(QString string) {
31+ return string.remove("\"").remove("'").remove("\\");
32+}
33+
2934WindowStateStorage::WindowStateStorage(QObject *parent):
3035 QObject(parent)
3136{
@@ -50,7 +55,7 @@ WindowStateStorage::~WindowStateStorage()
5055void WindowStateStorage::saveState(const QString &windowId, WindowStateStorage::WindowState state)
5156{
5257 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO state (windowId, state) values ('%1', '%2');")
53− .arg(windowId)
58+ .arg(sanitiseString(windowId))
5459 .arg((int)state);
5560
5661 saveValue(queryString);
@@ -59,7 +64,7 @@ void WindowStateStorage::saveState(const QString &windowId, WindowStateStorage::
5964WindowStateStorage::WindowState WindowStateStorage::getState(const QString &windowId, WindowStateStorage::WindowState defaultValue) const
6065{
6166 const QString queryString = QStringLiteral("SELECT * FROM state WHERE windowId = '%1';")
62− .arg(windowId);
67+ .arg(sanitiseString(windowId));
6368
6469 QSqlQuery query = getValue(queryString);
6570
@@ -72,7 +77,7 @@ WindowStateStorage::WindowState WindowStateStorage::getState(const QString &wind
7277void WindowStateStorage::saveGeometry(const QString &windowId, const QRect rect)
7378{
7479 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO geometry (windowId, x, y, width, height) values ('%1', '%2', '%3', '%4', '%5');")
75− .arg(windowId)
80+ .arg(sanitiseString(windowId))
7681 .arg(rect.x())
7782 .arg(rect.y())
7883 .arg(rect.width())
@@ -81,6 +86,28 @@ void WindowStateStorage::saveGeometry(const QString &windowId, const QRect rect)
8186 saveValue(queryString);
8287}
8388
89+void WindowStateStorage::saveStage(const QString &appId, int stage)
90+{
91+ const QString queryString = QStringLiteral("INSERT OR REPLACE INTO stage (appId, stage) values ('%1', '%2');")
92+ .arg(sanitiseString(appId))
93+ .arg((int)stage);
94+
95+ saveValue(queryString);
96+}
97+
98+int WindowStateStorage::getStage(const QString &appId) const
99+{
100+ const QString queryString = QStringLiteral("SELECT * FROM stage WHERE appId = '%1';")
101+ .arg(sanitiseString(appId));
102+
103+ QSqlQuery query = getValue(queryString);
104+
105+ if (!query.first()) {
106+ return unity::shell::application::ApplicationInfoInterface::MainStage;
107+ }
108+ return query.value("stage").toInt();
109+}
110+
84111void WindowStateStorage::executeAsyncQuery(const QString &queryString)
85112{
86113 QMutexLocker l(&s_mutex);
@@ -97,7 +124,7 @@ void WindowStateStorage::executeAsyncQuery(const QString &queryString)
97124QRect WindowStateStorage::getGeometry(const QString &windowId, const QRect defaultValue) const
98125{
99126 QString queryString = QStringLiteral("SELECT * FROM geometry WHERE windowId = '%1';")
100− .arg(windowId);
127+ .arg(sanitiseString(windowId));
101128
102129 QSqlQuery query = getValue(queryString);
103130
@@ -124,6 +151,11 @@ void WindowStateStorage::initdb()
124151 QSqlQuery query;
125152 query.exec(QStringLiteral("CREATE TABLE state(windowId TEXT UNIQUE, state INTEGER);"));
126153 }
154+
155+ if (!m_db.tables().contains(QStringLiteral("stage"))) {
156+ QSqlQuery query;
157+ query.exec(QStringLiteral("CREATE TABLE stage(appId TEXT UNIQUE, stage INTEGER);"));
158+ }
127159}
128160
129161void WindowStateStorage::saveValue(const QString &queryString)
plugins/Utils/windowstatestorage.h+3
@@ -38,6 +38,9 @@ public:
3838 Q_INVOKABLE void saveGeometry(const QString &windowId, const QRect rect);
3939 Q_INVOKABLE QRect getGeometry(const QString &windowId, const QRect defaultValue) const;
4040
41+ Q_INVOKABLE void saveStage(const QString &appId, int stage);
42+ Q_INVOKABLE int getStage(const QString &appId) const;
43+
4144private:
4245 void initdb();
4346
plugins/Wizard/CMakeLists.txt+7−1
@@ -1,10 +1,16 @@
1+include_directories(${GLIB_INCLUDE_DIRS} ${GEONAMES_INCLUDE_DIRS})
2+
13add_library(Wizard-qml MODULE
24 plugin.cpp
35 PageList.cpp
46 System.cpp
7+ LocalePlugin.cpp
8+ timezonemodel.cpp
9+ Status.cpp
510)
611
7−qt5_use_modules(Wizard-qml DBus Qml)
12+qt5_use_modules(Wizard-qml DBus Qml Concurrent)
13+target_link_libraries(Wizard-qml ${GLIB_LDFLAGS} ${GEONAMES_LDFLAGS})
814add_unity8_plugin(Wizard 0.1 Wizard TARGETS Wizard-qml)
915
1016set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
plugins/Wizard/LocalePlugin.cppnew file+291
@@ -0,0 +1,291 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include <QLocale>
18+#include <QStringList>
19+
20+#include <libintl.h>
21+
22+#include "LocalePlugin.h"
23+
24+class LocalePrivate {
25+public:
26+ LocalePrivate() {
27+ m_mccCodes = QHash<int, QString>
28+ ({{202,"gr"},
29+ {204,"nl"},
30+ {206,"be"},
31+ {208,"fr"},
32+ {212,"mc"},
33+ {213,"ad"},
34+ {214,"es"},
35+ {216,"hu"},
36+ {218,"ba"},
37+ {219,"hr"},
38+ {220,"rs"},
39+ {222,"it"},
40+ {226,"ro"},
41+ {228,"ch"},
42+ {230,"cz"},
43+ {231,"sk"},
44+ {232,"at"},
45+ {234,"gb"},
46+ {235,"gb"},
47+ {238,"dk"},
48+ {240,"se"},
49+ {242,"no"},
50+ {244,"fi"},
51+ {246,"lt"},
52+ {247,"lv"},
53+ {248,"ee"},
54+ {250,"ru"},
55+ {255,"ua"},
56+ {257,"by"},
57+ {259,"md"},
58+ {260,"pl"},
59+ {262,"de"},
60+ {266,"gi"},
61+ {268,"pt"},
62+ {270,"lu"},
63+ {272,"ie"},
64+ {274,"is"},
65+ {276,"al"},
66+ {278,"mt"},
67+ {280,"cy"},
68+ {282,"ge"},
69+ {283,"am"},
70+ {284,"bg"},
71+ {286,"tr"},
72+ {288,"fo"},
73+ {289,"ge"},
74+ {290,"gl"},
75+ {292,"sm"},
76+ {293,"si"},
77+ {294,"mk"},
78+ {295,"li"},
79+ {297,"me"},
80+ {302,"ca"},
81+ {308,"pm"},
82+ {310,"gu"},
83+ {310,"us"},
84+ {311,"gu"},
85+ {311,"us"},
86+ {312,"us"},
87+ {316,"us"},
88+ {330,"pr"},
89+ {334,"mx"},
90+ {338,"jm"},
91+ {340,"fg"},
92+ {340,"gp"},
93+ {340,"mq"},
94+ {342,"bb"},
95+ {344,"ag"},
96+ {346,"ky"},
97+ {348,"vg"},
98+ {350,"bm"},
99+ {352,"gd"},
100+ {354,"ms"},
101+ {356,"kn"},
102+ {358,"lc"},
103+ {360,"vc"},
104+ {362,"an"},
105+ {362,"cw"},
106+ {363,"aw"},
107+ {364,"bs"},
108+ {365,"ai"},
109+ {366,"dm"},
110+ {368,"cu"},
111+ {370,"do"},
112+ {372,"ht"},
113+ {374,"tt"},
114+ {376,"tc"},
115+ {376,"vi"},
116+ {400,"az"},
117+ {401,"kz"},
118+ {402,"bt"},
119+ {404,"in"},
120+ {405,"in"},
121+ {410,"pk"},
122+ {412,"af"},
123+ {413,"lk"},
124+ {414,"mm"},
125+ {415,"lb"},
126+ {416,"jo"},
127+ {417,"sy"},
128+ {418,"iq"},
129+ {419,"kw"},
130+ {420,"sa"},
131+ {421,"ye"},
132+ {422,"om"},
133+ {424,"ae"},
134+ {425,"il"},
135+ {425,"ps"},
136+ {426,"bh"},
137+ {427,"qa"},
138+ {428,"mn"},
139+ {429,"np"},
140+ {430,"ae"},
141+ {431,"ae"},
142+ {432,"ir"},
143+ {434,"uz"},
144+ {436,"tk"},
145+ {437,"kg"},
146+ {438,"tm"},
147+ {440,"jp"},
148+ {441,"jp"},
149+ {450,"kr"},
150+ {452,"vn"},
151+ {454,"hk"},
152+ {455,"mo"},
153+ {456,"kh"},
154+ {457,"la"},
155+ {460,"cn"},
156+ {466,"tw"},
157+ {467,"kp"},
158+ {470,"bd"},
159+ {472,"mv"},
160+ {502,"my"},
161+ {505,"au"},
162+ {510,"id"},
163+ {514,"tp"},
164+ {515,"ph"},
165+ {520,"th"},
166+ {525,"sg"},
167+ {528,"bn"},
168+ {530,"nz"},
169+ {537,"pg"},
170+ {539,"to"},
171+ {540,"sb"},
172+ {541,"vu"},
173+ {542,"fj"},
174+ {544,"as"},
175+ {545,"ki"},
176+ {546,"nc"},
177+ {547,"pf"},
178+ {548,"ck"},
179+ {549,"ws"},
180+ {550,"fm"},
181+ {552,"pw"},
182+ {553,"tv"},
183+ {555,"nu"},
184+ {602,"eg"},
185+ {603,"dz"},
186+ {604,"ma"},
187+ {605,"tn"},
188+ {606,"ly"},
189+ {607,"gm"},
190+ {608,"sn"},
191+ {609,"mr"},
192+ {610,"ml"},
193+ {611,"gn"},
194+ {612,"ci"},
195+ {613,"bf"},
196+ {614,"ne"},
197+ {615,"tg"},
198+ {616,"bj"},
199+ {617,"mu"},
200+ {618,"lr"},
201+ {619,"sl"},
202+ {620,"gh"},
203+ {621,"ng"},
204+ {622,"td"},
205+ {623,"cf"},
206+ {624,"cm"},
207+ {625,"cv"},
208+ {626,"st"},
209+ {627,"gq"},
210+ {628,"ga"},
211+ {629,"cg"},
212+ {630,"cd"},
213+ {631,"ao"},
214+ {632,"gw"},
215+ {633,"sc"},
216+ {634,"sd"},
217+ {635,"rw"},
218+ {636,"et"},
219+ {637,"so"},
220+ {638,"dj"},
221+ {639,"ke"},
222+ {640,"tz"},
223+ {641,"ug"},
224+ {642,"bi"},
225+ {643,"mz"},
226+ {645,"zm"},
227+ {646,"mg"},
228+ {647,"re"},
229+ {648,"zw"},
230+ {649,"na"},
231+ {650,"mw"},
232+ {651,"ls"},
233+ {652,"bw"},
234+ {653,"sz"},
235+ {654,"km"},
236+ {655,"za"},
237+ {657,"er"},
238+ {659,"ss"},
239+ {702,"bz"},
240+ {704,"gt"},
241+ {706,"sv"},
242+ {708,"hn"},
243+ {710,"ni"},
244+ {712,"cr"},
245+ {714,"pa"},
246+ {716,"pe"},
247+ {722,"ar"},
248+ {724,"br"},
249+ {730,"cl"},
250+ {732,"co"},
251+ {734,"ve"},
252+ {736,"bo"},
253+ {738,"gy"},
254+ {740,"ec"},
255+ {744,"py"},
256+ {746,"sr"},
257+ {748,"uy"},
258+ {750,"fk"}}
259+ );
260+ }
261+
262+ QString mccToCountryCode(int mcc) const {
263+ return m_mccCodes.value(mcc, "us").toUpper();
264+ }
265+
266+private:
267+ // MCC = Mobile Country Code, see https://en.wikipedia.org/wiki/Mobile_country_code
268+ QHash<int,QString> m_mccCodes;
269+};
270+
271+Q_GLOBAL_STATIC(LocalePrivate, d)
272+
273+LocaleAttached::LocaleAttached(QObject* parent)
274+ : QObject(parent)
275+{
276+}
277+
278+QString LocaleAttached::mccToCountryCode(int mcc) const
279+{
280+ return d->mccToCountryCode(mcc);
281+}
282+
283+LocalePlugin::LocalePlugin(QObject* parent)
284+ : QObject(parent)
285+{
286+}
287+
288+LocaleAttached* LocalePlugin::qmlAttachedProperties(QObject* parent)
289+{
290+ return new LocaleAttached(parent);
291+}
plugins/Wizard/LocalePlugin.hnew file+58
@@ -0,0 +1,58 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef LOCALE_PLUGIN_H
18+#define LOCALE_PLUGIN_H
19+
20+#include <QObject>
21+#include <QString>
22+#include <QJsonObject>
23+#include <QtQml>
24+
25+class LocaleAttached: public QObject
26+{
27+ Q_OBJECT
28+protected:
29+ explicit LocaleAttached(QObject *parent = 0);
30+
31+public:
32+ Q_INVOKABLE QString mccToCountryCode(int mcc) const;
33+
34+ friend class LocalePlugin;
35+};
36+
37+/**
38+ * A simplified wrapper around QLocale.
39+ *
40+ * The wrapper is implemented as an attached property, which makes it possible
41+ * to use it as if its methods were static:
42+ *
43+ * @code
44+ * var langs = LocalePlugin.languages();
45+ * @endcode
46+ */
47+class LocalePlugin: public QObject
48+{
49+ Q_OBJECT
50+public:
51+ explicit LocalePlugin(QObject *parent = 0);
52+
53+ static LocaleAttached* qmlAttachedProperties(QObject *parent);
54+};
55+
56+QML_DECLARE_TYPEINFO(LocalePlugin, QML_HAS_ATTACHED_PROPERTIES)
57+
58+#endif // LOCALE_PLUGIN_H
plugins/Wizard/PageList.cpp+4−4
@@ -40,20 +40,20 @@ PageList::PageList(QObject *parent)
4040 m_index(-1),
4141 m_pages()
4242{
43− QString qmlSuffix = QStringLiteral(".qml");
44− QString disabledSuffix = QStringLiteral(".disabled");
43+ const QString qmlSuffix = QStringLiteral(".qml");
44+ const QString disabledSuffix = QStringLiteral(".disabled");
4545 QSet<QString> disabledPages;
4646 QStringList dataDirs;
4747
4848 if (!isRunningInstalled() && getenv("WIZARD_TESTING") == nullptr) {
49− dataDirs = QStringList() << qmlDirectory();
49+ dataDirs << qmlDirectory();
5050 } else {
5151 dataDirs = shellDataDirs();
5252 }
5353
5454 Q_FOREACH(const QString &dataDir, dataDirs) {
5555 QDir dir(dataDir + "/Wizard/Pages");
56− QStringList entries = dir.entryList(QStringList(QStringLiteral("[0-9]*")), QDir::Files | QDir::Readable);
56+ const QStringList entries = dir.entryList(QStringList(QStringLiteral("[0-9]*")), QDir::Files | QDir::Readable);
5757 Q_FOREACH(const QString &entry, entries) {
5858 if (!m_pages.contains(entry) && entry.endsWith(qmlSuffix))
5959 m_pages.insert(entry, dir.absoluteFilePath(entry));
plugins/Wizard/Status.cppnew file+143
@@ -0,0 +1,143 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include <QDebug>
18+#include <QDBusConnection>
19+
20+#include "Status.h"
21+
22+Status::Status()
23+{
24+ initNM();
25+ initUPower();
26+}
27+
28+void Status::initNM()
29+{
30+ m_nmIface = new QDBusInterface("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager", "org.freedesktop.NetworkManager",
31+ QDBusConnection::systemBus(), this);
32+
33+ QDBusConnection::systemBus().connect("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager", "org.freedesktop.NetworkManager", "PropertiesChanged",
34+ this, SLOT(onNMPropertiesChanged(QVariantMap)));
35+}
36+
37+void Status::onNMPropertiesChanged(const QVariantMap &changedProps)
38+{
39+ if (changedProps.contains("State") || changedProps.contains("Connectivity")) {
40+ Q_EMIT onlineChanged();
41+ Q_EMIT networkIconChanged();
42+ }
43+
44+ if (changedProps.contains("PrimaryConnection") || changedProps.contains("SpecificObject") || changedProps.contains("Strength")) {
45+ Q_EMIT networkIconChanged();
46+ }
47+}
48+
49+bool Status::online() const
50+{
51+ if (!m_nmIface->isValid())
52+ return false;
53+
54+ return m_nmIface->property("State").toUInt() == 70;
55+}
56+
57+QString Status::networkIcon()
58+{
59+ QString iconName = QStringLiteral("nm-no-connection");
60+
61+ if (!online()) {
62+ return iconName;
63+ }
64+
65+ const QString primaryConn = m_nmIface->property("PrimaryConnection").value<QDBusObjectPath>().path();
66+ const QString primaryConnType = m_nmIface->property("PrimaryConnectionType").toString();
67+
68+ if (primaryConn.isEmpty()) {
69+ qWarning() << "Empty primary connection";
70+ return iconName;
71+ }
72+
73+ if (primaryConnType == "802-11-wireless") {
74+ QDBusInterface activeConn("org.freedesktop.NetworkManager", primaryConn, "org.freedesktop.NetworkManager.Connection.Active", QDBusConnection::systemBus());
75+
76+ if (activeConn.isValid()) {
77+ const QString apPath = activeConn.property("SpecificObject").value<QDBusObjectPath>().path();
78+
79+ if (apPath.isEmpty()) {
80+ qWarning() << "No AP path";
81+ return iconName;
82+ }
83+
84+ QDBusConnection::systemBus().connect("org.freedesktop.NetworkManager", primaryConn, "org.freedesktop.NetworkManager.Connection.Active", "PropertiesChanged",
85+ this, SLOT(onNMPropertiesChanged(QVariantMap)));
86+
87+ QDBusInterface ap("org.freedesktop.NetworkManager", apPath, "org.freedesktop.NetworkManager.AccessPoint", QDBusConnection::systemBus());
88+
89+ if (!ap.isValid()) {
90+ qWarning() << "Invalid AP";
91+ return iconName;
92+ }
93+
94+ QDBusConnection::systemBus().connect("org.freedesktop.NetworkManager", apPath, "org.freedesktop.NetworkManager.AccessPoint", "PropertiesChanged",
95+ this, SLOT(onNMPropertiesChanged(QVariantMap)));
96+
97+ const uint strength = ap.property("Strength").toUInt();
98+ const uint flags = ap.property("Flags").toUInt();
99+
100+ if (strength == 0) {
101+ iconName = "nm-signal-00";
102+ } else if (strength <= 25) {
103+ iconName = "nm-signal-25";
104+ } else if (strength <= 50) {
105+ iconName = "nm-signal-50";
106+ } else if (strength <= 75) {
107+ iconName = "nm-signal-75";
108+ } else if (strength <= 100) {
109+ iconName = "nm-signal-100";
110+ }
111+
112+ if (flags >= 1) {
113+ iconName += "-secure";
114+ }
115+ }
116+ }
117+
118+ return iconName;
119+}
120+
121+void Status::initUPower()
122+{
123+ m_upowerIface = new QDBusInterface("org.freedesktop.UPower", "/org/freedesktop/UPower/devices/DisplayDevice", "org.freedesktop.UPower.Device",
124+ QDBusConnection::systemBus(), this);
125+ QDBusConnection::systemBus().connect("org.freedesktop.UPower", "/org/freedesktop/UPower/devices/DisplayDevice", "org.freedesktop.DBus.Properties",
126+ "PropertiesChanged", this, SLOT(onUPowerPropertiesChanged(QString,QVariantMap,QStringList)));
127+}
128+
129+void Status::onUPowerPropertiesChanged(const QString &iface, const QVariantMap &changedProps, const QStringList &invalidatedProps)
130+{
131+ Q_UNUSED(iface)
132+ Q_UNUSED(invalidatedProps)
133+
134+ if (changedProps.contains("IconName")) {
135+ Q_EMIT batteryIconChanged();
136+ }
137+}
138+
139+QString Status::batteryIcon() const
140+{
141+ const QString iconName = m_upowerIface->property("IconName").toString();
142+ return iconName;
143+}
plugins/Wizard/Status.hnew file+60
@@ -0,0 +1,60 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef WIZARD_STATUS_H
18+#define WIZARD_STATUS_H
19+
20+#include <QObject>
21+#include <QString>
22+#include <QDBusInterface>
23+
24+class Status: public QObject
25+{
26+ Q_OBJECT
27+ Q_PROPERTY(bool online READ online NOTIFY onlineChanged)
28+ Q_PROPERTY(QString networkIcon READ networkIcon NOTIFY networkIconChanged)
29+ Q_PROPERTY(QString batteryIcon READ batteryIcon NOTIFY batteryIconChanged)
30+public:
31+ Status();
32+ ~Status() = default;
33+
34+ bool online() const;
35+ QString networkIcon();
36+
37+ QString batteryIcon() const;
38+
39+Q_SIGNALS:
40+ void networkIconChanged();
41+ void onlineChanged();
42+ void batteryIconChanged();
43+
44+private Q_SLOTS:
45+ void onNMPropertiesChanged(const QVariantMap &changedProps);
46+ void onUPowerPropertiesChanged(const QString &iface, const QVariantMap &changedProps, const QStringList &invalidatedProps);
47+
48+private:
49+ Q_DISABLE_COPY(Status)
50+
51+ // network status
52+ void initNM();
53+ QDBusInterface * m_nmIface = nullptr;
54+
55+ // battery status
56+ void initUPower();
57+ QDBusInterface * m_upowerIface = nullptr;
58+};
59+
60+#endif
plugins/Wizard/System.cpp+5−4
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical Ltd.
2+ * Copyright (C) 2014-2015 Canonical Ltd.
33 *
44 * This program is free software: you can redistribute it and/or modify it
55 * under the terms of the GNU General Public License version 3, as published
@@ -25,10 +25,10 @@
2525#include <QLocale>
2626#include <QMap>
2727#include <QProcess>
28+#include <QDebug>
2829
2930System::System()
30− : QObject(),
31− m_fsWatcher()
31+ : QObject()
3232{
3333 // Register the argument needed for UpdateActivationEnvironment below
3434 qDBusRegisterMetaType<QMap<QString,QString>>();
@@ -88,7 +88,7 @@ void System::setSessionVariable(const QString &variable, const QString &value)
8888 QDBusConnection::sessionBus().asyncCall(msg);
8989}
9090
91−void System::updateSessionLanguage(const QString &locale)
91+void System::updateSessionLocale(const QString &locale)
9292{
9393 const QString language = locale.split(QStringLiteral("."))[0];
9494
@@ -106,5 +106,6 @@ void System::updateSessionLanguage(const QString &locale)
106106 initctl stop smart-scopes-proxy; \
107107 initctl emit --no-wait indicator-services-start; \
108108 initctl restart --no-wait maliit-server; \
109+ initctl restart --no-wait indicator-messages; \
109110 initctl restart --no-wait unity8-dash\""));
110111}
plugins/Wizard/System.h+3−2
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical Ltd.
2+ * Copyright (C) 2014-2015 Canonical Ltd.
33 *
44 * This program is free software: you can redistribute it and/or modify it
55 * under the terms of the GNU General Public License version 3, as published
@@ -28,12 +28,13 @@ class System : public QObject
2828
2929public:
3030 System();
31+ ~System() = default;
3132
3233 bool wizardEnabled() const;
3334 void setWizardEnabled(bool enabled);
3435
3536public Q_SLOTS:
36− void updateSessionLanguage(const QString &locale);
37+ void updateSessionLocale(const QString &locale);
3738
3839Q_SIGNALS:
3940 void wizardEnabledChanged();
plugins/Wizard/plugin.cpp+7−8
@@ -17,19 +17,18 @@
1717#include "plugin.h"
1818#include "PageList.h"
1919#include "System.h"
20+#include "timezonemodel.h"
21+#include "LocalePlugin.h"
22+#include "Status.h"
2023
2124#include <QtQml/qqml.h>
2225
23−static QObject *system_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
24−{
25− Q_UNUSED(engine)
26− Q_UNUSED(scriptEngine)
27− return new System();
28−}
29−
3026void WizardPlugin::registerTypes(const char *uri)
3127{
3228 Q_ASSERT(uri == QLatin1String("Wizard"));
3329 qmlRegisterType<PageList>(uri, 0, 1, "PageList");
34− qmlRegisterSingletonType<System>(uri, 0, 1, "System", system_provider);
30+ qmlRegisterSingletonType<System>(uri, 0, 1, "System", [](QQmlEngine*, QJSEngine*) -> QObject* { return new System; });
31+ qmlRegisterSingletonType<Status>(uri, 0, 1, "Status", [](QQmlEngine*, QJSEngine*) -> QObject* { return new Status; });
32+ qmlRegisterType<TimeZoneLocationModel>(uri, 0, 1, "TimeZoneModel");
33+ qmlRegisterType<LocalePlugin>(uri, 0, 1, "LocalePlugin");
3534}
plugins/Wizard/plugin.h+1−2
@@ -17,13 +17,12 @@
1717#ifndef WIZARD_PLUGIN_H
1818#define WIZARD_PLUGIN_H
1919
20−#include <QtQml/QQmlEngine>
2120#include <QtQml/QQmlExtensionPlugin>
2221
2322class WizardPlugin : public QQmlExtensionPlugin
2423{
2524 Q_OBJECT
26− Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
25+ Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
2726
2827public:
2928 void registerTypes(const char *uri) override;
plugins/Wizard/timezonemodel.cppnew file+244
@@ -0,0 +1,244 @@
1+/*
2+ * Copyright (C) 2016 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include <QDebug>
18+
19+#include <glib.h>
20+#include <glib-object.h>
21+
22+#include "LocalePlugin.h"
23+#include "timezonemodel.h"
24+
25+TimeZoneLocationModel::TimeZoneLocationModel(QObject *parent):
26+ QAbstractListModel(parent),
27+ m_listUpdating(false),
28+ m_cancellable(nullptr)
29+{
30+ m_roleNames[Qt::DisplayRole] = "displayName";
31+ m_roleNames[TimeZoneRole] = "timeZone";
32+ m_roleNames[CityRole] = "city";
33+ m_roleNames[CountryRole] = "country";
34+ m_roleNames[OffsetRole] = "offset";
35+ m_roleNames[LatitudeRole] = "latitude";
36+ m_roleNames[LongitudeRole] = "longitude";
37+}
38+
39+int TimeZoneLocationModel::rowCount(const QModelIndex &parent) const
40+{
41+ if (parent.isValid()) {
42+ return 0;
43+ } else if (m_filter.isEmpty()) {
44+ return m_countryLocations.count();
45+ } else {
46+ return m_locations.count();
47+ }
48+}
49+
50+QVariant TimeZoneLocationModel::data(const QModelIndex &index, int role) const
51+{
52+ GeonamesCity *city;
53+ if (m_filter.isEmpty()) {
54+ city = m_countryLocations.value(index.row());
55+ } else {
56+ city = m_locations.value(index.row());
57+ }
58+ if (!city)
59+ return QVariant();
60+
61+ switch (role) {
62+ case Qt::DisplayRole:
63+ return QStringLiteral("%1, %2, %3").arg(geonames_city_get_name(city))
64+ .arg(geonames_city_get_state(city))
65+ .arg(geonames_city_get_country(city));
66+ case SimpleRole:
67+ return QStringLiteral("%1, %2").arg(geonames_city_get_name(city))
68+ .arg(geonames_city_get_country(city));
69+ case TimeZoneRole:
70+ return geonames_city_get_timezone(city);
71+ case CountryRole:
72+ return geonames_city_get_country(city);
73+ case CityRole:
74+ return geonames_city_get_name(city);
75+ case OffsetRole: {
76+ QTimeZone tmp(geonames_city_get_timezone(city));
77+ return static_cast<double>(tmp.standardTimeOffset(QDateTime::currentDateTime())) / 3600;
78+ }
79+ case LatitudeRole:
80+ return geonames_city_get_latitude(city);
81+ case LongitudeRole:
82+ return geonames_city_get_longitude(city);
83+ default:
84+ qWarning() << Q_FUNC_INFO << "Unknown role";
85+ return QVariant();
86+ }
87+}
88+
89+QHash<int, QByteArray> TimeZoneLocationModel::roleNames() const
90+{
91+ return m_roleNames;
92+}
93+
94+void TimeZoneLocationModel::setModel(const QList<GeonamesCity *> &locations)
95+{
96+ beginResetModel();
97+
98+ Q_FOREACH(GeonamesCity *city, m_locations) {
99+ geonames_city_free(city);
100+ }
101+
102+ m_locations = locations;
103+ endResetModel();
104+}
105+
106+void TimeZoneLocationModel::filterFinished(GObject *source_object,
107+ GAsyncResult *res,
108+ gpointer user_data)
109+{
110+ Q_UNUSED(source_object);
111+
112+ g_autofree gint *cities = nullptr;
113+ guint cities_len = 0;
114+ g_autoptr(GError) error = nullptr;
115+
116+ cities = geonames_query_cities_finish(res, &cities_len, &error);
117+ if (error) {
118+ if (!g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
119+ TimeZoneLocationModel *model = static_cast<TimeZoneLocationModel *>(user_data);
120+ g_clear_object(&model->m_cancellable);
121+ model->setListUpdating(false);
122+ qWarning() << "Could not filter timezones:" << error->message;
123+ }
124+ return;
125+ }
126+
127+ QList<GeonamesCity *> locations;
128+
129+ for (guint i = 0; i < cities_len; ++i) {
130+ GeonamesCity *city = geonames_get_city(cities[i]);
131+ if (city) {
132+ locations.append(city);
133+ }
134+ }
135+
136+ TimeZoneLocationModel *model = static_cast<TimeZoneLocationModel *>(user_data);
137+
138+ g_clear_object(&model->m_cancellable);
139+
140+ model->setModel(locations);
141+ model->setListUpdating(false);
142+}
143+
144+bool TimeZoneLocationModel::listUpdating() const
145+{
146+ return m_listUpdating;
147+}
148+
149+void TimeZoneLocationModel::setListUpdating(bool listUpdating)
150+{
151+ if (m_listUpdating != listUpdating) {
152+ m_listUpdating = listUpdating;
153+ Q_EMIT listUpdatingChanged();
154+ }
155+}
156+
157+QString TimeZoneLocationModel::filter() const
158+{
159+ return m_filter;
160+}
161+
162+void TimeZoneLocationModel::setFilter(const QString &filter)
163+{
164+ if (filter != m_filter) {
165+ m_filter = filter;
166+ Q_EMIT filterChanged();
167+ }
168+
169+ setListUpdating(true);
170+
171+ if (m_cancellable) {
172+ g_cancellable_cancel(m_cancellable);
173+ g_clear_object(&m_cancellable);
174+ }
175+
176+ setModel(QList<GeonamesCity *>());
177+
178+ if (filter.isEmpty()) {
179+ setListUpdating(false);
180+ return;
181+ }
182+
183+ m_cancellable = g_cancellable_new();
184+ geonames_query_cities(filter.toUtf8().data(),
185+ GEONAMES_QUERY_DEFAULT,
186+ m_cancellable,
187+ filterFinished,
188+ this);
189+}
190+
191+QString TimeZoneLocationModel::country() const
192+{
193+ return m_country;
194+}
195+
196+static bool citycmp(GeonamesCity *a, GeonamesCity *b)
197+{
198+ return geonames_city_get_population(b) < geonames_city_get_population(a);
199+}
200+
201+void TimeZoneLocationModel::setCountry(const QString &country)
202+{
203+ if (m_country == country)
204+ return;
205+
206+ beginResetModel();
207+
208+ m_country = country;
209+
210+ Q_FOREACH(GeonamesCity *city, m_countryLocations) {
211+ geonames_city_free(city);
212+ }
213+ m_countryLocations.clear();
214+
215+ gint num_cities = geonames_get_n_cities();
216+ for (gint i = 0; i < num_cities; i++) {
217+ GeonamesCity *city = geonames_get_city(i);
218+ if (city && m_country == geonames_city_get_country_code(city)) {
219+ m_countryLocations.append(city);
220+ }
221+ }
222+
223+ std::sort(m_countryLocations.begin(), m_countryLocations.end(), citycmp);
224+
225+ endResetModel();
226+
227+ Q_EMIT countryChanged(country);
228+}
229+
230+TimeZoneLocationModel::~TimeZoneLocationModel()
231+{
232+ if (m_cancellable) {
233+ g_cancellable_cancel(m_cancellable);
234+ g_clear_object(&m_cancellable);
235+ }
236+
237+ Q_FOREACH(GeonamesCity *city, m_countryLocations) {
238+ geonames_city_free(city);
239+ }
240+
241+ Q_FOREACH(GeonamesCity *city, m_locations) {
242+ geonames_city_free(city);
243+ }
244+}
plugins/Wizard/timezonemodel.hnew file+80
@@ -0,0 +1,80 @@
1+/*
2+ * Copyright (C) 2016 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef TIMEZONEMODEL_H
18+#define TIMEZONEMODEL_H
19+
20+#include <geonames.h>
21+#include <glib.h>
22+#include <QAbstractListModel>
23+
24+class TimeZoneLocationModel: public QAbstractListModel
25+{
26+ Q_OBJECT
27+ Q_PROPERTY(bool listUpdating READ listUpdating NOTIFY listUpdatingChanged)
28+ Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged)
29+ Q_PROPERTY(QString country READ country WRITE setCountry NOTIFY countryChanged)
30+ Q_ENUMS(Roles)
31+
32+public:
33+ explicit TimeZoneLocationModel(QObject *parent = nullptr);
34+ ~TimeZoneLocationModel();
35+
36+ enum Roles {
37+ TimeZoneRole = Qt::UserRole + 1,
38+ CityRole,
39+ CountryRole,
40+ SimpleRole,
41+ OffsetRole,
42+ LatitudeRole,
43+ LongitudeRole
44+ };
45+
46+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
47+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
48+ QHash<int, QByteArray> roleNames() const override;
49+
50+ bool listUpdating() const;
51+
52+ QString filter() const;
53+ void setFilter(const QString &filter);
54+
55+ QString country() const;
56+ void setCountry(const QString &country);
57+
58+Q_SIGNALS:
59+ void listUpdatingChanged();
60+ void filterChanged();
61+ void countryChanged(const QString &country);
62+
63+private:
64+ void setModel(const QList<GeonamesCity *> &locations);
65+ void setListUpdating(bool listUpdating);
66+ static void filterFinished(GObject *source_object,
67+ GAsyncResult *res,
68+ gpointer user_data);
69+
70+
71+ bool m_listUpdating;
72+ QString m_filter;
73+ QString m_country;
74+ GCancellable *m_cancellable;
75+ QHash<int, QByteArray> m_roleNames;
76+ QList<GeonamesCity *> m_locations;
77+ QList<GeonamesCity *> m_countryLocations;
78+};
79+
80+#endif
po/aa.po+303−203
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2016-02-12 10:18+0000\n"
1212"Last-Translator: Charif AYFARAH <ayfarah@ymail.com>\n"
1313"Language-Team: Afar <aa@li.org>\n"
@@ -15,23 +15,23 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:42+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19+"X-Generator: Launchpad (build 17958)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Cuumita "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
2727msgid "Pin shortcut"
2828msgstr ""
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
3131msgid "Quit"
3232msgstr "Kat"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
3535msgid "Unpin shortcut"
3636msgstr ""
3737
@@ -73,77 +73,59 @@ msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr "Eweq"
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
77−#: qml/Components/Dialogs.qml:253
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
7879msgid "Cancel"
7980msgstr "Bayis"
8081
8182#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr "Bargus"
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr "Bargussuh digga maay litoo?"
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr "Wadir-ugus"
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr "Bargus"
99−
100−#: qml/Components/Dialogs.qml:207
10183msgctxt "Title: Reboot dialog"
10284msgid "Reboot"
10385msgstr "Wadir-ugus"
10486
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
10688msgid "Are you sure you want to reboot?"
10789msgstr "Wadir-ugussuh digga maay litoo?"
10890
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
11092msgid "No"
11193msgstr "Maleey"
11294
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:183
11496msgid "Yes"
11597msgstr "Yeey"
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr "Cayla"
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:199
123105msgid ""
124106"Are you sure you would like\n"
125107"to power off?"
126108msgstr "Timmi haytuh digga maay litoo?"
127109
128−#: qml/Components/Dialogs.qml:235
110+#: qml/Components/Dialogs.qml:201
129111msgctxt "Button: Power off the system"
130112msgid "Power off"
131113msgstr "Timmi hayis"
132114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:210
134116msgctxt "Button: Restart the system"
135117msgid "Restart"
136118msgstr "Wadir-qimbis"
137119
138−#: qml/Components/Lockscreen.qml:245
120+#: qml/Components/Lockscreen.qml:231
139121msgid "Return to Call"
140122msgstr "Seecol gacis"
141123
142−#: qml/Components/Lockscreen.qml:245
124+#: qml/Components/Lockscreen.qml:231
143125msgid "Emergency Call"
144126msgstr ""
145127
146−#: qml/Components/Lockscreen.qml:277
128+#: qml/Components/Lockscreen.qml:263
147129msgid "OK"
148130msgstr "Hayya"
149131
@@ -152,6 +134,8 @@ msgid "Apps may have unsaved data:"
152134msgstr ""
153135
154136#: qml/Components/ModeSwitchWarningDialog.qml:57
137+msgctxt ""
138+"Re-dock means connect the device again to an external screen/mouse/keyboard"
155139msgid "Re-dock, save your work and close these apps to continue."
156140msgstr ""
157141
@@ -171,42 +155,58 @@ msgstr ""
171155msgid "Close all"
172156msgstr "Inkih alif"
173157
174−#: qml/Dash/DashPageHeader.qml:266
158+#: qml/Dash/DashPageHeader.qml:337
175159msgctxt "Button: Open the Ubuntu Store"
176160msgid "Store"
177161msgstr ""
178162
179−#: qml/Dash/DashPageHeader.qml:273
163+#: qml/Dash/DashPageHeader.qml:344
180164msgctxt "Button: Start a search in the current dash scope"
181165msgid "Search"
182166msgstr "Goranto"
183167
184−#: qml/Dash/DashPageHeader.qml:283
168+#: qml/Dash/DashPageHeader.qml:354
185169msgctxt "Button: Show the current dash scope settings"
186170msgid "Settings"
187171msgstr "Massosu"
188172
189−#: qml/Dash/DashPageHeader.qml:290
173+#: qml/Dash/DashPageHeader.qml:361
190174msgid "Remove from Favorites"
191175msgstr ""
192176
193−#: qml/Dash/DashPageHeader.qml:290
177+#: qml/Dash/DashPageHeader.qml:361
194178msgid "Add to Favorites"
195179msgstr ""
196180
197−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
181+#: qml/Dash/FiltersPopover.qml:60
182+msgid "Refine your results"
183+msgstr ""
184+
185+#: qml/Dash/FiltersPopover.qml:69
186+msgid "Reset"
187+msgstr ""
188+
189+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198190msgid "See less"
199191msgstr ""
200192
201−#: qml/Dash/GenericScopeView.qml:587
193+#: qml/Dash/GenericScopeView.qml:570
202194msgid "See all"
203195msgstr ""
204196
205−#: qml/Dash/GenericScopeView.qml:649
197+#: qml/Dash/GenericScopeView.qml:627
206198msgctxt "Label: Hint for dash search line edit"
207199msgid "Search"
208200msgstr "Goranto"
209201
202+#: qml/Dash/PageHeaderExtraPanel.qml:55
203+msgid "Recent Searches"
204+msgstr ""
205+
206+#: qml/Dash/PageHeaderExtraPanel.qml:66
207+msgid "Clear All"
208+msgstr ""
209+
210210#: qml/Dash/Previews/PreviewActionCombo.qml:35
211211msgid "More..."
212212msgstr ""
@@ -228,7 +228,7 @@ msgstr ""
228228msgid "Add a review"
229229msgstr ""
230230
231−#: qml/Dash/Previews/PreviewSharing.qml:50
231+#: qml/Dash/Previews/PreviewSharing.qml:66
232232msgid "Preview Share Item"
233233msgstr ""
234234
@@ -256,13 +256,13 @@ msgstr "Dabqi"
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:87
259+#: qml/DisabledScreenNotice.qml:104
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262−"touch pad to interact with the mouse."
262+"touch pad to interact with the pointer."
263263msgstr ""
264264
265−#: qml/Greeter/CoverPage.qml:107
265+#: qml/Greeter/CoverPage.qml:118
266266msgid "Unlock"
267267msgstr ""
268268
@@ -274,11 +274,11 @@ msgstr "Qagis"
274274msgid "Tap to unlock"
275275msgstr ""
276276
277−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
278278msgid "Sorry, incorrect passphrase."
279279msgstr ""
280280
281−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
282282msgid "Sorry, incorrect passcode."
283283msgstr ""
284284
@@ -303,7 +303,7 @@ msgstr ""
303303msgid "Enter %1"
304304msgstr "%1 culus"
305305
306−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
307307msgid "Enter passphrase"
308308msgstr "Tatur-maxco culus"
309309
@@ -341,62 +341,62 @@ msgstr ""
341341msgid "Conference"
342342msgstr "Koboxu"
343343
344−#: qml/Panel/Indicators/MenuItemFactory.qml:753
344+#: qml/Panel/Indicators/MenuItemFactory.qml:761
345345msgid "Nothing is playing"
346346msgstr ""
347347
348−#: qml/Panel/Indicators/MenuItemFactory.qml:882
348+#: qml/Panel/Indicators/MenuItemFactory.qml:890
349349#, qt-format
350350msgid "%1 hour"
351351msgid_plural "%1 hours"
352352msgstr[0] "%1 saaqata"
353353msgstr[1] "%1 saaqata"
354354
355−#: qml/Panel/Indicators/MenuItemFactory.qml:886
355+#: qml/Panel/Indicators/MenuItemFactory.qml:894
356356#, qt-format
357357msgid "%1 minute"
358358msgid_plural "%1 minutes"
359359msgstr[0] "%1 miniti"
360360msgstr[1] "%1 miniti"
361361
362−#: qml/Panel/Indicators/MenuItemFactory.qml:891
362+#: qml/Panel/Indicators/MenuItemFactory.qml:899
363363#, qt-format
364364msgid "%1 second"
365365msgid_plural "%1 seconds"
366366msgstr[0] "%1 nammayye"
367367msgstr[1] "%1 nammayye"
368368
369−#: qml/Panel/Indicators/MenuItemFactory.qml:894
369+#: qml/Panel/Indicators/MenuItemFactory.qml:902
370370msgid "0 seconds"
371371msgstr "0 nammayye"
372372
373373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
374−#: qml/Panel/Indicators/MenuItemFactory.qml:896
374+#: qml/Panel/Indicators/MenuItemFactory.qml:904
375375#, qt-format
376376msgid "%1 remaining"
377377msgstr "%1 raaqe"
378378
379−#: qml/Panel/Indicators/MenuItemFactory.qml:902
379+#: qml/Panel/Indicators/MenuItemFactory.qml:910
380380msgid "In queue…"
381381msgstr ""
382382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:906
383+#: qml/Panel/Indicators/MenuItemFactory.qml:914
384384msgid "Downloading"
385385msgstr "Qulluumah"
386386
387−#: qml/Panel/Indicators/MenuItemFactory.qml:908
387+#: qml/Panel/Indicators/MenuItemFactory.qml:916
388388msgid "Paused, tap to resume"
389389msgstr ""
390390
391−#: qml/Panel/Indicators/MenuItemFactory.qml:910
391+#: qml/Panel/Indicators/MenuItemFactory.qml:918
392392msgid "Canceled"
393393msgstr "Bayteh"
394394
395−#: qml/Panel/Indicators/MenuItemFactory.qml:912
395+#: qml/Panel/Indicators/MenuItemFactory.qml:920
396396msgid "Finished"
397397msgstr "Duudumteh"
398398
399−#: qml/Panel/Indicators/MenuItemFactory.qml:914
399+#: qml/Panel/Indicators/MenuItemFactory.qml:922
400400msgid "Failed, tap to retry"
401401msgstr ""
402402
@@ -416,252 +416,352 @@ msgctxt "Button: Call back on phone"
416416msgid "Call back"
417417msgstr ""
418418
419−#: qml/Panel/Indicators/ModemInfoItem.qml:105
420−msgid "Unlock SIM"
421−msgstr ""
422−
423−#: qml/Panel/Indicators/RoamingIndication.qml:27
424−msgid "Roaming"
425−msgstr ""
426−
427−#: qml/Tutorial/TutorialBottom.qml:28
428−msgid "Open special menus"
429−msgstr ""
430−
431−#: qml/Tutorial/TutorialBottom.qml:29
432−msgid "Swipe up from the bottom edge."
419+#: qml/Stages/SideStage.qml:76
420+msgid "Drag using 3 fingers any application from one window to the other"
433421msgstr ""
434422
435−#: qml/Tutorial/TutorialBottomFinish.qml:24
436−msgid "This action does different things for different apps"
423+#: qml/Tutorial/TutorialBottom.qml:78
424+msgid "Swipe up to add a contact"
437425msgstr ""
438426
439−#: qml/Tutorial/TutorialBottomFinish.qml:25
440−msgid "Tap here to finish."
427+#: qml/Tutorial/TutorialBottom.qml:80
428+msgid "Swipe up for favorite calculations"
441429msgstr ""
442430
443−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
444−#: qml/Tutorial/TutorialRight.qml:144
445−msgid "Tap here to continue."
431+#: qml/Tutorial/TutorialBottom.qml:82
432+msgid "Swipe up for recent calls"
446433msgstr ""
447434
448−#: qml/Tutorial/TutorialLeft.qml:26
449−msgid "Open the launcher"
435+#: qml/Tutorial/TutorialBottom.qml:84
436+msgid "Swipe up to create a message"
450437msgstr ""
451438
452−#: qml/Tutorial/TutorialLeft.qml:27
453−msgid "Short swipe from the left edge."
439+#: qml/Tutorial/TutorialBottom.qml:85
440+msgid "Swipe up to manage the app"
454441msgstr ""
455442
456−#: qml/Tutorial/TutorialLeftFinish.qml:24
457−msgid "These are the shortcuts to favorite apps"
443+#: qml/Tutorial/TutorialLeft.qml:47
444+msgid "Swipe from the left edge to open the launcher"
458445msgstr ""
459446
460−#: qml/Tutorial/TutorialPage.qml:178
461−msgid "You almost got it!"
447+#: qml/Tutorial/TutorialLeftLong.qml:47
448+msgid "Long swipe from the left edge to open the Today scope"
462449msgstr ""
463450
464−#: qml/Tutorial/TutorialPage.qml:195
465−msgid "Try again."
451+#: qml/Tutorial/TutorialRight.qml:54
452+msgid "Hover your mouse on the right edge to view your open apps"
466453msgstr ""
467454
468−#: qml/Tutorial/TutorialRight.qml:31
469−msgid "To view open apps"
455+#: qml/Tutorial/TutorialRight.qml:55
456+msgid "Short or long swipe from the right edge to view your open apps"
470457msgstr ""
471458
472−#: qml/Tutorial/TutorialRight.qml:32
473−msgid "Long swipe from the right edge."
459+#: qml/Tutorial/TutorialTop.qml:53
460+msgid "Swipe from the top right edge to open the notification bar"
474461msgstr ""
475462
476−#: qml/Tutorial/TutorialRight.qml:122
477−msgid "View all your running tasks."
463+#: qml/Tutorial/TutorialTop.qml:54
464+msgid "Swipe from the top edge to open the notification bar"
478465msgstr ""
479466
480−#: qml/Wizard/Page.qml:89
467+#: qml/Wizard/Page.qml:54
481468msgctxt "Button: Go back one page in the Wizard"
482469msgid "Back"
483470msgstr "Derre"
484471
485472#: qml/Wizard/Pages/10-welcome.qml:27
486−msgid "Hi!"
487−msgstr "Nagaale!"
473+msgid "Language"
474+msgstr ""
488475
489−#: qml/Wizard/Pages/10-welcome.qml:44
490−msgid "Welcome to your Ubuntu device."
476+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
477+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
478+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479+#: qml/Wizard/Pages/75-report-check.qml:84
480+#: qml/Wizard/Pages/passcode-desktop.qml:124
481+#: qml/Wizard/Pages/password-set.qml:141
482+msgid "Next"
491483msgstr ""
492484
493−#: qml/Wizard/Pages/10-welcome.qml:52
494−msgid "Let’s get started."
495−msgstr "Hayya qimbisnay."
485+#: qml/Wizard/Pages/30-wifi.qml:29
486+msgid "Connect to Wi‑Fi"
487+msgstr ""
496488
497−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
498−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
499−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
500−#: qml/Wizard/Pages/passwd-set.qml:90
501−msgid "Continue"
502−msgstr "Tatur"
489+#: qml/Wizard/Pages/30-wifi.qml:130
490+msgid "Connected"
491+msgstr ""
503492
504−#: qml/Wizard/Pages/20-sim.qml:25
505−msgid "Add a SIM card and restart your device"
493+#: qml/Wizard/Pages/30-wifi.qml:163
494+msgid "Available Wi-Fi networks"
506495msgstr ""
507496
508−#: qml/Wizard/Pages/20-sim.qml:59
509−msgid "Without it, you won’t be able to make calls or use text messaging."
497+#: qml/Wizard/Pages/30-wifi.qml:164
498+msgid "No available Wi-Fi networks"
510499msgstr ""
511500
512−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502+#: qml/Wizard/Pages/sim.qml:101
513503msgid "Skip"
514504msgstr "Kaqit"
515505
516−#: qml/Wizard/Pages/30-passwd-type.qml:39
517−msgid "Lock security"
506+#: qml/Wizard/Pages/40-location.qml:27
507+msgid "Location Services"
518508msgstr ""
519509
520−#: qml/Wizard/Pages/30-passwd-type.qml:79
521−msgid "Please select how you’d like to unlock your device."
510+#: qml/Wizard/Pages/40-location.qml:83
511+msgid ""
512+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
513+"(recommended)"
522514msgstr ""
523515
524−#: qml/Wizard/Pages/30-passwd-type.qml:102
525−msgctxt "Label: Type of security method"
526−msgid "Swipe"
527−msgstr "Uysuttuc"
516+#: qml/Wizard/Pages/40-location.qml:105
517+#, qt-format
518+msgid "By selecting this option you agree to the Nokia HERE %1."
519+msgstr ""
520+
521+#: qml/Wizard/Pages/40-location.qml:106
522+msgctxt "part of: Nokia HERE terms and conditions"
523+msgid "terms and conditions"
524+msgstr ""
528525
529−#: qml/Wizard/Pages/30-passwd-type.qml:103
530−msgctxt "Label: Description of security method"
531−msgid "No security"
526+#: qml/Wizard/Pages/40-location.qml:160
527+msgid "GPS only"
532528msgstr ""
533529
534−#: qml/Wizard/Pages/30-passwd-type.qml:105
530+#: qml/Wizard/Pages/40-location.qml:214
531+msgid "Don't use my location"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:260
535+msgid "You can change it later in System Settings."
536+msgstr ""
537+
538+#: qml/Wizard/Pages/50-timezone.qml:29
539+msgid "Time Zone"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/50-timezone.qml:178
543+msgid "Enter your city"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/60-account.qml:24
547+msgid "Personalize Your Device"
548+msgstr ""
549+
550+#: qml/Wizard/Pages/60-account.qml:48
551+msgid "Preferred Name"
552+msgstr ""
553+
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
555+msgid "Lock Screen"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
535559msgctxt "Label: Type of security method"
536−msgid "Passcode"
560+msgid "Create new password"
537561msgstr ""
538562
539−#: qml/Wizard/Pages/30-passwd-type.qml:106
540−msgctxt "Label: Description of security method"
541−msgid "4 digits only"
563+#: qml/Wizard/Pages/70-passwd-type.qml:103
564+msgctxt "Label: Type of security method"
565+msgid "Create passcode (numbers only)"
542566msgstr ""
543567
544−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
545569msgctxt "Label: Type of security method"
546−msgid "Passphrase"
570+msgid "No lock code"
547571msgstr ""
548572
549−#: qml/Wizard/Pages/30-passwd-type.qml:109
550−msgctxt "Label: Description of security method"
551−msgid "Numbers and letters"
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
574+msgid "Privacy Policy"
552575msgstr ""
553576
554−#: qml/Wizard/Pages/40-wifi.qml:29
555−msgid "Connect to Wi‑Fi"
577+#: qml/Wizard/Pages/75-report-check.qml:26
578+msgid "Help Us Improve"
556579msgstr ""
557580
558−#: qml/Wizard/Pages/40-wifi.qml:168
559−msgid "Available networks…"
581+#: qml/Wizard/Pages/75-report-check.qml:59
582+msgid "Improve system performance by sending us crashes and error reports."
560583msgstr ""
561584
562−#: qml/Wizard/Pages/40-wifi.qml:169
563−msgid "No available networks."
585+#: qml/Wizard/Pages/75-report-check.qml:60
586+msgid "Privacy policy"
564587msgstr ""
565588
566−#: qml/Wizard/Pages/50-location.qml:27
567−msgid "Location"
589+#: qml/Wizard/Pages/80-finished.qml:89
590+msgid "Welcome to Ubuntu"
568591msgstr ""
569592
570−#: qml/Wizard/Pages/50-location.qml:62
571−msgid "Let the phone detect your location:"
593+#: qml/Wizard/Pages/80-finished.qml:104
594+msgid "You are ready to use your device now"
572595msgstr ""
573596
574−#: qml/Wizard/Pages/50-location.qml:69
575−msgid "Using GPS only (less accurate)"
597+#: qml/Wizard/Pages/80-finished.qml:124
598+msgid "Get Started"
576599msgstr ""
577600
578−#: qml/Wizard/Pages/50-location.qml:86
579−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
601+#: qml/Wizard/Pages/here-terms.qml:25
602+msgid "Terms & Conditions"
603+msgstr ""
604+
605+#: qml/Wizard/Pages/here-terms.qml:69
606+msgid "Your device uses positioning technologies provided by HERE."
580607msgstr ""
581608
582−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
583−#: qml/Wizard/Pages/50-location.qml:103
609+#: qml/Wizard/Pages/here-terms.qml:81
584610msgid ""
585−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
586−"conditions</a>."
611+"To provide you with positioning services and to improve their quality, HERE "
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
587614msgstr ""
588615
589−#: qml/Wizard/Pages/50-location.qml:112
590−msgid "Not at all"
616+#: qml/Wizard/Pages/here-terms.qml:93
617+msgid ""
618+"The information collected is used to analyze the service and to improve the "
619+"use of service, but not to identify you personally."
591620msgstr ""
592621
593−#: qml/Wizard/Pages/50-location.qml:124
594−msgid "You can change your mind later in <b>System Settings</b>."
622+#: qml/Wizard/Pages/here-terms.qml:106
623+#, qt-format
624+msgid "By continuing, you agree to the HERE platform %1 and %2."
595625msgstr ""
596626
597−#: qml/Wizard/Pages/60-reporting.qml:26
598−msgid "Improving your experience"
627+#: qml/Wizard/Pages/here-terms.qml:107
628+msgid "Service Terms"
599629msgstr ""
600630
601−#: qml/Wizard/Pages/60-reporting.qml:46
602−msgid ""
603−"Your phone is set up to automatically report errors to Canonical and its "
604−"partners, the makers of the operating system."
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
633+msgid "Confirm passcode"
605634msgstr ""
606635
607−#: qml/Wizard/Pages/60-reporting.qml:53
608−msgid ""
609−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
610−"Privacy</b>"
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
637+msgid "Incorrect passcode."
611638msgstr ""
612639
613−#: qml/Wizard/Pages/80-finished.qml:24
614−msgid "All done"
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
641+msgctxt "Enter the passcode again"
642+msgid "Please re-enter."
615643msgstr ""
616644
617−#: qml/Wizard/Pages/80-finished.qml:39
618−msgid "Nice work!"
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
646+msgid "Lock Screen Passcode"
619647msgstr ""
620648
621−#: qml/Wizard/Pages/80-finished.qml:46
622−msgid "Your device is now ready to use."
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
650+msgid "Enter 4 numbers to setup your passcode"
623651msgstr ""
624652
625−#: qml/Wizard/Pages/80-finished.qml:53
626−msgid "Finish"
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
627656msgstr ""
628657
629−#: qml/Wizard/Pages/here-terms.qml:27
630−msgid "Terms & Conditions"
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
659+msgid "Passcode too short"
631660msgstr ""
632661
633−#: qml/Wizard/Pages/passwd-confirm.qml:49
634−msgid "Confirm passphrase"
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
663+msgid "Passcodes match"
635664msgstr ""
636665
637−#: qml/Wizard/Pages/passwd-confirm.qml:50
638−msgid "Confirm passcode"
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
667+msgid "Passcodes do not match"
639668msgstr ""
640669
641−#: qml/Wizard/Pages/passwd-confirm.qml:53
642−#: qml/Wizard/Pages/passwd-confirm.qml:54
643−msgid "Please try again."
670+#: qml/Wizard/Pages/passcode-set.qml:62
671+msgid "Passcode must be 4 characters long"
644672msgstr ""
645673
646−#: qml/Wizard/Pages/passwd-set.qml:61
647−msgid "Choose your passcode"
674+#: qml/Wizard/Pages/password-set.qml:30
675+msgid "Lock Screen Password"
648676msgstr ""
649677
650−#: qml/Wizard/Pages/passwd-set.qml:68
651−msgid "Passphrase must be 4 characters long"
678+#: qml/Wizard/Pages/password-set.qml:61
679+msgid "Enter at least 8 characters"
652680msgstr ""
653681
654−#. Translators: This is the arrow for "Back" buttons
655−#: qml/Wizard/StackButton.qml:39
656−#, qt-format
657−msgid "〈 %1"
682+#: qml/Wizard/Pages/password-set.qml:73
683+msgid "Choose password"
658684msgstr ""
659685
660−#. Translators: This is the arrow for "Forward" buttons
661−#: qml/Wizard/StackButton.qml:42
662−#, qt-format
663−msgid "%1 〉"
686+#: qml/Wizard/Pages/password-set.qml:103
687+msgid "Confirm password"
688+msgstr ""
689+
690+#: qml/Wizard/Pages/sim.qml:27
691+msgid "No SIM card installed"
692+msgstr ""
693+
694+#: qml/Wizard/Pages/sim.qml:54
695+msgid "SIM card added"
696+msgstr ""
697+
698+#: qml/Wizard/Pages/sim.qml:55
699+msgid "You must restart the device to access the mobile network."
700+msgstr ""
701+
702+#: qml/Wizard/Pages/sim.qml:59
703+msgid "Restart"
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:78
707+msgid "You won’t be able to make calls or use text messaging without a SIM."
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:90
711+msgid "To proceed with no SIM tap Skip."
712+msgstr ""
713+
714+#: qml/Wizard/PasswordMeter.qml:87
715+msgid "Passwords match"
716+msgstr ""
717+
718+#: qml/Wizard/PasswordMeter.qml:89
719+msgid "Passwords do not match"
720+msgstr ""
721+
722+#: qml/Wizard/PasswordMeter.qml:93
723+msgid "Strong password"
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:95
727+msgid "Fair password"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:97
731+msgid "Weak password"
664732msgstr ""
665733
734+#: qml/Wizard/PasswordMeter.qml:99
735+msgid "Very weak password"
736+msgstr ""
737+
738+#~ msgctxt "Title: Reboot/Shut down dialog"
739+#~ msgid "Shut down"
740+#~ msgstr "Bargus"
741+
742+#~ msgid "Are you sure you want to shut down?"
743+#~ msgstr "Bargussuh digga maay litoo?"
744+
745+#~ msgctxt "Button: Shut down the system"
746+#~ msgid "Shut down"
747+#~ msgstr "Bargus"
748+
749+#~ msgctxt "Button: Reboot the system"
750+#~ msgid "Reboot"
751+#~ msgstr "Wadir-ugus"
752+
753+#~ msgctxt "Label: Type of security method"
754+#~ msgid "Swipe"
755+#~ msgstr "Uysuttuc"
756+
757+#~ msgid "Hi!"
758+#~ msgstr "Nagaale!"
759+
666760#~ msgid "Welcome to your Ubuntu phone."
667761#~ msgstr "Ubuntu Telefoonul arcib"
762+
763+#~ msgid "Let’s get started."
764+#~ msgstr "Hayya qimbisnay."
765+
766+#~ msgid "Continue"
767+#~ msgstr "Tatur"
po/am.po+511−259
@@ -7,31 +7,31 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
11−"PO-Revision-Date: 2015-11-19 19:27+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
11+"PO-Revision-Date: 2016-03-24 19:07+0000\n"
1212"Last-Translator: samson <Unknown>\n"
1313"Language-Team: Amharic <am@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:42+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-03-25 05:54+0000\n"
19+"X-Generator: Launchpad (build 17967)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "የ መግቢያ ቃል: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
2727msgid "Pin shortcut"
2828msgstr "አቋራጭ ማጣበቂያ"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
3131msgid "Quit"
3232msgstr "ማጥፊያ"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
3535msgid "Unpin shortcut"
3636msgstr "አቋራጭ መለያያ"
3737
@@ -73,53 +73,35 @@ msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr "መውጫ"
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
77−#: qml/Components/Dialogs.qml:253
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
7879msgid "Cancel"
7980msgstr "መሰረዣ"
8081
8182#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr "ማጥፊያ"
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr "በእርግጥ ማጥፋት ይፈልጋሉ?"
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr "እንደገና ማስነሻ"
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr "ማጥፊያ"
99−
100−#: qml/Components/Dialogs.qml:207
10183msgctxt "Title: Reboot dialog"
10284msgid "Reboot"
10385msgstr "እንደገና ማስነሻ"
10486
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
10688msgid "Are you sure you want to reboot?"
10789msgstr "በእርግጥ እንደገና ማስነሳት ይፈልጋሉ?"
10890
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
11092msgid "No"
11193msgstr "አይ"
11294
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:183
11496msgid "Yes"
11597msgstr "አዎ"
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr "ሐይል"
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:199
123105msgid ""
124106"Are you sure you would like\n"
125107"to power off?"
@@ -127,25 +109,25 @@ msgstr ""
127109"በእርግጥ ሐይሉን ማጥፋት\n"
128110"ይፈልጋሉ?"
129111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:201
131113msgctxt "Button: Power off the system"
132114msgid "Power off"
133115msgstr "ሐይል ማጥፊያ"
134116
135−#: qml/Components/Dialogs.qml:244
117+#: qml/Components/Dialogs.qml:210
136118msgctxt "Button: Restart the system"
137119msgid "Restart"
138120msgstr "እንደገና ማስጀመሪያ"
139121
140−#: qml/Components/Lockscreen.qml:245
122+#: qml/Components/Lockscreen.qml:231
141123msgid "Return to Call"
142124msgstr "ወደ ጥሪ መመለሻ"
143125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145127msgid "Emergency Call"
146128msgstr "የ ድንገተኛ ጥሪ"
147129
148−#: qml/Components/Lockscreen.qml:277
130+#: qml/Components/Lockscreen.qml:263
149131msgid "OK"
150132msgstr "እሺ"
151133
@@ -154,6 +136,8 @@ msgid "Apps may have unsaved data:"
154136msgstr "መተግበሪያው ያልተቀመጠ ዳታ ይዟል:"
155137
156138#: qml/Components/ModeSwitchWarningDialog.qml:57
139+msgctxt ""
140+"Re-dock means connect the device again to an external screen/mouse/keyboard"
157141msgid "Re-dock, save your work and close these apps to continue."
158142msgstr "እንደገና-ማሳረፊያ: ስራዎትን ያስቀምጡ እና ይዝጉ መተግበሪያው እንዲቀጥል"
159143
@@ -173,42 +157,58 @@ msgstr "አሁን እንደገና መገናኛ!"
173157msgid "Close all"
174158msgstr "ሁሉንም መዝጊያ"
175159
176−#: qml/Dash/DashPageHeader.qml:266
160+#: qml/Dash/DashPageHeader.qml:337
177161msgctxt "Button: Open the Ubuntu Store"
178162msgid "Store"
179163msgstr "ማስቀመጫ"
180164
181−#: qml/Dash/DashPageHeader.qml:273
165+#: qml/Dash/DashPageHeader.qml:344
182166msgctxt "Button: Start a search in the current dash scope"
183167msgid "Search"
184168msgstr "መፈለጊያ"
185169
186−#: qml/Dash/DashPageHeader.qml:283
170+#: qml/Dash/DashPageHeader.qml:354
187171msgctxt "Button: Show the current dash scope settings"
188172msgid "Settings"
189173msgstr "ማሰናጃዎች"
190174
191−#: qml/Dash/DashPageHeader.qml:290
175+#: qml/Dash/DashPageHeader.qml:361
192176msgid "Remove from Favorites"
193177msgstr "ከምወዳቸው ማስወገጃ"
194178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196180msgid "Add to Favorites"
197181msgstr "ወደምወዳቸው መጨመሪያ"
198182
199−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
183+#: qml/Dash/FiltersPopover.qml:60
184+msgid "Refine your results"
185+msgstr "የ እርስዎን ውጤቶች እንደገና ማጣሪያ"
186+
187+#: qml/Dash/FiltersPopover.qml:69
188+msgid "Reset"
189+msgstr "እንደ ነበረ መመለሻ"
190+
191+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
200192msgid "See less"
201193msgstr "አነስተኛ መመልከቻ"
202194
203−#: qml/Dash/GenericScopeView.qml:587
195+#: qml/Dash/GenericScopeView.qml:570
204196msgid "See all"
205197msgstr "ሁሉንም መመልከቻ"
206198
207−#: qml/Dash/GenericScopeView.qml:649
199+#: qml/Dash/GenericScopeView.qml:627
208200msgctxt "Label: Hint for dash search line edit"
209201msgid "Search"
210202msgstr "መፈለጊያ"
211203
204+#: qml/Dash/PageHeaderExtraPanel.qml:55
205+msgid "Recent Searches"
206+msgstr "የ ቅርብ ጊዜ ፍለጋዎች"
207+
208+#: qml/Dash/PageHeaderExtraPanel.qml:66
209+msgid "Clear All"
210+msgstr "ሁሉንም ማጽጃ"
211+
212212#: qml/Dash/Previews/PreviewActionCombo.qml:35
213213msgid "More..."
214214msgstr "ተጨማሪ..."
@@ -230,7 +230,7 @@ msgstr "ለዚህ ደረጃ ይስጡ"
230230msgid "Add a review"
231231msgstr "ግምገማ መጨመሪያ"
232232
233−#: qml/Dash/Previews/PreviewSharing.qml:50
233+#: qml/Dash/Previews/PreviewSharing.qml:66
234234msgid "Preview Share Item"
235235msgstr "የሚካፈሉትን እቃ ቅድመ እይታ"
236236
@@ -258,14 +258,13 @@ msgstr "ቤት"
258258msgid "Also installed"
259259msgstr "እንዲሁም የተገጠሙ"
260260
261−#: qml/DisabledScreenNotice.qml:87
261+#: qml/DisabledScreenNotice.qml:104
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264−"touch pad to interact with the mouse."
265−msgstr ""
266−"የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ ከ አይጥ ጋር ተባብሮ ይሰራል"
264+"touch pad to interact with the pointer."
265+msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ መጠቀሚያ"
267266
268−#: qml/Greeter/CoverPage.qml:107
267+#: qml/Greeter/CoverPage.qml:118
269268msgid "Unlock"
270269msgstr "መክፈቻ"
271270
@@ -277,11 +276,11 @@ msgstr "እንደገና ይሞክሩ"
277276msgid "Tap to unlock"
278277msgstr "ለመክፈት መታ ያድርጉ"
279278
280−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
281280msgid "Sorry, incorrect passphrase."
282281msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
283282
284−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
285284msgid "Sorry, incorrect passcode."
286285msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
287286
@@ -310,7 +309,7 @@ msgstr ""
310309msgid "Enter %1"
311310msgstr "ማስገቢያ %1"
312311
313−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
312+#: qml/Greeter/NarrowView.qml:117
314313msgid "Enter passphrase"
315314msgstr "የ ማለፊያ ሀረግ ያስገቡ"
316315
@@ -348,62 +347,62 @@ msgstr "ወደ ጥሪው ለመመለስ መታ ያድርጉ..."
348347msgid "Conference"
349348msgstr "ስብሰባ"
350349
351−#: qml/Panel/Indicators/MenuItemFactory.qml:753
350+#: qml/Panel/Indicators/MenuItemFactory.qml:761
352351msgid "Nothing is playing"
353352msgstr "ምንም አይጫወትም"
354353
355−#: qml/Panel/Indicators/MenuItemFactory.qml:882
354+#: qml/Panel/Indicators/MenuItemFactory.qml:890
356355#, qt-format
357356msgid "%1 hour"
358357msgid_plural "%1 hours"
359358msgstr[0] "%1 ሰአት"
360359msgstr[1] "%1 ሰአቶች"
361360
362−#: qml/Panel/Indicators/MenuItemFactory.qml:886
361+#: qml/Panel/Indicators/MenuItemFactory.qml:894
363362#, qt-format
364363msgid "%1 minute"
365364msgid_plural "%1 minutes"
366365msgstr[0] "%1 ደቂቃ"
367366msgstr[1] "%1 ደቂቃዎች"
368367
369−#: qml/Panel/Indicators/MenuItemFactory.qml:891
368+#: qml/Panel/Indicators/MenuItemFactory.qml:899
370369#, qt-format
371370msgid "%1 second"
372371msgid_plural "%1 seconds"
373372msgstr[0] "%1 ሰከንድ"
374373msgstr[1] "%1 ሰከንዶች"
375374
376−#: qml/Panel/Indicators/MenuItemFactory.qml:894
375+#: qml/Panel/Indicators/MenuItemFactory.qml:902
377376msgid "0 seconds"
378377msgstr "0 ሰከንዶች"
379378
380379#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
381−#: qml/Panel/Indicators/MenuItemFactory.qml:896
380+#: qml/Panel/Indicators/MenuItemFactory.qml:904
382381#, qt-format
383382msgid "%1 remaining"
384383msgstr "%1 የቀረው"
385384
386−#: qml/Panel/Indicators/MenuItemFactory.qml:902
385+#: qml/Panel/Indicators/MenuItemFactory.qml:910
387386msgid "In queue…"
388387msgstr "ወረፋ በመጠበቅ ላይ…"
389388
390−#: qml/Panel/Indicators/MenuItemFactory.qml:906
389+#: qml/Panel/Indicators/MenuItemFactory.qml:914
391390msgid "Downloading"
392391msgstr "በማውረድ ላይ"
393392
394−#: qml/Panel/Indicators/MenuItemFactory.qml:908
393+#: qml/Panel/Indicators/MenuItemFactory.qml:916
395394msgid "Paused, tap to resume"
396395msgstr "ማስቆሚያ: ለመቀጠል መታ ያድርጉ"
397396
398−#: qml/Panel/Indicators/MenuItemFactory.qml:910
397+#: qml/Panel/Indicators/MenuItemFactory.qml:918
399398msgid "Canceled"
400399msgstr "ተሰርዟል"
401400
402−#: qml/Panel/Indicators/MenuItemFactory.qml:912
401+#: qml/Panel/Indicators/MenuItemFactory.qml:920
403402msgid "Finished"
404403msgstr "ጨርሷል"
405404
406−#: qml/Panel/Indicators/MenuItemFactory.qml:914
405+#: qml/Panel/Indicators/MenuItemFactory.qml:922
407406msgid "Failed, tap to retry"
408407msgstr "አልተቻለም: እንደገና ለመሞከር መታ ያድርጉ"
409408
@@ -423,255 +422,326 @@ msgctxt "Button: Call back on phone"
423422msgid "Call back"
424423msgstr "መልሶ መደወያ"
425424
426−#: qml/Panel/Indicators/ModemInfoItem.qml:105
427−msgid "Unlock SIM"
428−msgstr "ሲም መክፈቻ"
429−
430−#: qml/Panel/Indicators/RoamingIndication.qml:27
431−msgid "Roaming"
432−msgstr "ማዘዋወሪያ"
425+#: qml/Stages/SideStage.qml:76
426+msgid "Drag using 3 fingers any application from one window to the other"
427+msgstr "መጎተቻ 3 ጣቶች በ መጠቀም ማንኛውንም መተግበሪያ ከ አንድ መስኮት ወደ ሌላ"
433428
434−#: qml/Tutorial/TutorialBottom.qml:28
435−msgid "Open special menus"
436−msgstr "የተለዩ ዝርዝሮች መክፈቻ"
429+#: qml/Tutorial/TutorialBottom.qml:78
430+msgid "Swipe up to add a contact"
431+msgstr "ወደ ላይ ይጥረጉ ግንኙነት ለ መጨመር"
437432
438−#: qml/Tutorial/TutorialBottom.qml:29
439−msgid "Swipe up from the bottom edge."
440−msgstr "ከ ታች ጠርዝ በኩል ወደ ላይ ይጥረጉ"
433+#: qml/Tutorial/TutorialBottom.qml:80
434+msgid "Swipe up for favorite calculations"
435+msgstr "ወደ ላይ ይጥረጉ የሚወዱትን ለማስላት"
441436
442−#: qml/Tutorial/TutorialBottomFinish.qml:24
443−msgid "This action does different things for different apps"
444−msgstr "ይህ ተግባር ለተለያዩ መተግበሪያዎች የተለያየ ነገር ይሰራል"
437+#: qml/Tutorial/TutorialBottom.qml:82
438+msgid "Swipe up for recent calls"
439+msgstr "ወደ ላይ ይጥረጉ ለ ቅርብ ጊዜ ጥሪዎች"
445440
446−#: qml/Tutorial/TutorialBottomFinish.qml:25
447−msgid "Tap here to finish."
448−msgstr "እዚህ መታ ይድርጉ ለመጨረስ"
441+#: qml/Tutorial/TutorialBottom.qml:84
442+msgid "Swipe up to create a message"
443+msgstr "ወደ ላይ ይጥረጉ መልእክት ለ መፍጠር"
449444
450−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
451−#: qml/Tutorial/TutorialRight.qml:144
452−msgid "Tap here to continue."
453−msgstr "እዚህ መታ ይድርጉ ለመቀጠል"
445+#: qml/Tutorial/TutorialBottom.qml:85
446+msgid "Swipe up to manage the app"
447+msgstr "ወደ ላይ ይጥረጉ መተግበሪያ ለማስተዳደር"
454448
455−#: qml/Tutorial/TutorialLeft.qml:26
456−msgid "Open the launcher"
457−msgstr "ማስጀመሪያውን መክፈቻ"
449+#: qml/Tutorial/TutorialLeft.qml:47
450+msgid "Swipe from the left edge to open the launcher"
451+msgstr "ከ ግራ ጠርዝ በኩል ይጥረጉ ማስጀመሪያውን ለ መክፈት"
458452
459−#: qml/Tutorial/TutorialLeft.qml:27
460−msgid "Short swipe from the left edge."
461−msgstr "ከ ግራ ጠርዝ በኩል በትንሹ ይጥረጉ"
453+#: qml/Tutorial/TutorialLeftLong.qml:47
454+msgid "Long swipe from the left edge to open the Today scope"
455+msgstr "በ ረጅሙ ከ ግራ ጠርዝ በኩል ይጥረጉ የ ዛሬን ክልል ለ መክፈት"
462456
463−#: qml/Tutorial/TutorialLeftFinish.qml:24
464−msgid "These are the shortcuts to favorite apps"
465−msgstr "እነዚህ አቋራጮች ናቸው እርስዎ ለሚወዷቸው መተግበሪያዎች"
457+#: qml/Tutorial/TutorialRight.qml:54
458+msgid "Hover your mouse on the right edge to view your open apps"
459+msgstr "የ እርስዎን አይጥ ወደ ቀኝ ጠርዝ በኩል ሲያደርጉ የ ተከፈቱ መተግበሪያዎች መመልከቻ"
466460
467−#: qml/Tutorial/TutorialPage.qml:178
468−msgid "You almost got it!"
469−msgstr "እርስዎ አሁን እያገኙት ነው!"
470−
471−#: qml/Tutorial/TutorialPage.qml:195
472−msgid "Try again."
473−msgstr "እንደገና ይሞክሩ"
461+#: qml/Tutorial/TutorialRight.qml:55
462+msgid "Short or long swipe from the right edge to view your open apps"
463+msgstr "በ አጭሩ ወይንም በ ረጅሙ ይጥረጉ ከ ቀኝ ጠረዝ በኩል የ ተከፈቱ መተግበሪያዎችን ለማየት"
474464
475−#: qml/Tutorial/TutorialRight.qml:31
476−msgid "To view open apps"
477−msgstr "ለመመልከት መተግበሪያዎች ይክፈቱ"
465+#: qml/Tutorial/TutorialTop.qml:53
466+msgid "Swipe from the top right edge to open the notification bar"
467+msgstr "ከ ላይ ቀኝ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
478468
479−#: qml/Tutorial/TutorialRight.qml:32
480−msgid "Long swipe from the right edge."
481−msgstr "ከ ቀኝ ጠርዝ በኩል በረጅሙ ይጥረጉ"
469+#: qml/Tutorial/TutorialTop.qml:54
470+msgid "Swipe from the top edge to open the notification bar"
471+msgstr "ከ ላይ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
482472
483−#: qml/Tutorial/TutorialRight.qml:122
484−msgid "View all your running tasks."
485−msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
486−
487−#: qml/Wizard/Page.qml:89
473+#: qml/Wizard/Page.qml:54
488474msgctxt "Button: Go back one page in the Wizard"
489475msgid "Back"
490476msgstr "ወደ ኋላ"
491477
492478#: qml/Wizard/Pages/10-welcome.qml:27
493−msgid "Hi!"
494−msgstr "ሰላም"
495−
496−#: qml/Wizard/Pages/10-welcome.qml:44
497−msgid "Welcome to your Ubuntu device."
498−msgstr ""
479+msgid "Language"
480+msgstr "ቋንቋ"
481+
482+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
483+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
484+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
485+#: qml/Wizard/Pages/75-report-check.qml:84
486+#: qml/Wizard/Pages/passcode-desktop.qml:124
487+#: qml/Wizard/Pages/password-set.qml:141
488+msgid "Next"
489+msgstr "ይቀጥሉ"
499490
500−#: qml/Wizard/Pages/10-welcome.qml:52
501−msgid "Let’s get started."
502−msgstr "ስራ እንጀምር"
491+#: qml/Wizard/Pages/30-wifi.qml:29
492+msgid "Connect to Wi‑Fi"
493+msgstr "ወደ ዋይ‑ፋይ መገናኛ"
503494
504−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
505−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
506−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
507−#: qml/Wizard/Pages/passwd-set.qml:90
508−msgid "Continue"
509−msgstr "ይቀጥሉ"
495+#: qml/Wizard/Pages/30-wifi.qml:130
496+msgid "Connected"
497+msgstr "ተገናኝቷል"
510498
511−#: qml/Wizard/Pages/20-sim.qml:25
512−msgid "Add a SIM card and restart your device"
513−msgstr "የ ሲም ካርድ ይጨምሩ እና አካሉን እንደገና ያስነሱ"
499+#: qml/Wizard/Pages/30-wifi.qml:163
500+msgid "Available Wi-Fi networks"
501+msgstr "ዝግጁ የ ዋይ-ፋይ ኔትዎርኮች"
514502
515−#: qml/Wizard/Pages/20-sim.qml:59
516−msgid "Without it, you won’t be able to make calls or use text messaging."
517−msgstr "ያለ እሱ ጥሪ መፈጸም ወይንም የ ጽሁፍ መልእክት መላክ አይችሉም"
503+#: qml/Wizard/Pages/30-wifi.qml:164
504+msgid "No available Wi-Fi networks"
505+msgstr "ምንም ዝግጁ ዋይ-ፋይ ኔትዎርኮች አልተገኙም"
518506
519−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
507+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
508+#: qml/Wizard/Pages/sim.qml:101
520509msgid "Skip"
521510msgstr "መዝለያ"
522511
523−#: qml/Wizard/Pages/30-passwd-type.qml:39
524−msgid "Lock security"
525−msgstr "ደህንነት መቆለፊያ"
512+#: qml/Wizard/Pages/40-location.qml:27
513+msgid "Location Services"
514+msgstr "የ አካባቢ ግልጋሎት"
526515
527−#: qml/Wizard/Pages/30-passwd-type.qml:79
528−msgid "Please select how you’d like to unlock your device."
529−msgstr ""
516+#: qml/Wizard/Pages/40-location.qml:83
517+msgid ""
518+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
519+"(recommended)"
520+msgstr "ይጠቀሙ ጂፒኤስ: ዋይ-ፋይ: hotspots እና ተንቀሳቃሽ ኔትዎርክ ሳይታወቁ አካባቢ ለማግኘት (ይመከራሉ)"
530521
531−#: qml/Wizard/Pages/30-passwd-type.qml:102
532−msgctxt "Label: Type of security method"
533−msgid "Swipe"
534−msgstr "መጥረጊያ"
522+#: qml/Wizard/Pages/40-location.qml:105
523+#, qt-format
524+msgid "By selecting this option you agree to the Nokia HERE %1."
525+msgstr "ይህን ምርጫ በ መምረጥ እርስዎ ተስማምተዋል ከ Nokia HERE %1."
535526
536−#: qml/Wizard/Pages/30-passwd-type.qml:103
537−msgctxt "Label: Description of security method"
538−msgid "No security"
539−msgstr "ደህንነት አልተገኘም"
527+#: qml/Wizard/Pages/40-location.qml:106
528+msgctxt "part of: Nokia HERE terms and conditions"
529+msgid "terms and conditions"
530+msgstr "ስምምነት እና ሁኔታዎች"
540531
541−#: qml/Wizard/Pages/30-passwd-type.qml:105
542−msgctxt "Label: Type of security method"
543−msgid "Passcode"
544−msgstr "ማለፊያ ኮድ"
532+#: qml/Wizard/Pages/40-location.qml:160
533+msgid "GPS only"
534+msgstr "ጂፒኤስ ብቻ"
545535
546−#: qml/Wizard/Pages/30-passwd-type.qml:106
547−msgctxt "Label: Description of security method"
548−msgid "4 digits only"
549−msgstr "4 ዲጂት ብቻ"
536+#: qml/Wizard/Pages/40-location.qml:214
537+msgid "Don't use my location"
538+msgstr "የ እኔን አካባቢ አትጠቀም"
550539
551−#: qml/Wizard/Pages/30-passwd-type.qml:108
552−msgctxt "Label: Type of security method"
553−msgid "Passphrase"
554−msgstr "የማለፊያ ሐረግ"
540+#: qml/Wizard/Pages/40-location.qml:260
541+msgid "You can change it later in System Settings."
542+msgstr "እርስዎ በኋላ በ ስርአት ማሰናጃ ውስጥ መቀየር ይችላሉ"
555543
556−#: qml/Wizard/Pages/30-passwd-type.qml:109
557−msgctxt "Label: Description of security method"
558−msgid "Numbers and letters"
559−msgstr "ቁጥሮች እና ፊደሎች"
544+#: qml/Wizard/Pages/50-timezone.qml:29
545+msgid "Time Zone"
546+msgstr "የ ሰአት ክልል"
560547
561−#: qml/Wizard/Pages/40-wifi.qml:29
562−msgid "Connect to Wi‑Fi"
563−msgstr "ወደ ዋይ‑ፋይ መገናኛ"
548+#: qml/Wizard/Pages/50-timezone.qml:178
549+msgid "Enter your city"
550+msgstr "የ እርስዎን ከተማ ያስገቡ"
564551
565−#: qml/Wizard/Pages/40-wifi.qml:168
566−msgid "Available networks…"
567−msgstr "ዝግጁ ኔትዎርኮች…"
552+#: qml/Wizard/Pages/60-account.qml:24
553+msgid "Personalize Your Device"
554+msgstr "የ እርስዎን አካል የ ግልዎ ያድርጉ"
568555
569−#: qml/Wizard/Pages/40-wifi.qml:169
570−msgid "No available networks."
571−msgstr "ዝግጁ ኔትዎርኮች አልተገኙም"
556+#: qml/Wizard/Pages/60-account.qml:48
557+msgid "Preferred Name"
558+msgstr "የመረጡት ስም"
572559
573−#: qml/Wizard/Pages/50-location.qml:27
574−msgid "Location"
575−msgstr "አካባቢ"
560+#: qml/Wizard/Pages/70-passwd-type.qml:39
561+msgid "Lock Screen"
562+msgstr "መመልከቻውን መቆለፊያ"
576563
577−#: qml/Wizard/Pages/50-location.qml:62
578−msgid "Let the phone detect your location:"
579−msgstr "እባክዎን እርስዎ ያሉበትን አካባቢ ስልኩ እራሱ ይፈልግ:"
564+#: qml/Wizard/Pages/70-passwd-type.qml:101
565+msgctxt "Label: Type of security method"
566+msgid "Create new password"
567+msgstr "አዲስ የ መግቢያ ቃል መፍጠሪያ"
580568
581−#: qml/Wizard/Pages/50-location.qml:69
582−msgid "Using GPS only (less accurate)"
583−msgstr "ጂፒኤስን ብቻ መጠቀሚያ(በጣም ቅርብ)"
569+#: qml/Wizard/Pages/70-passwd-type.qml:103
570+msgctxt "Label: Type of security method"
571+msgid "Create passcode (numbers only)"
572+msgstr "አዲስ የ ማለፊያ ኮድ መፍጠሪያ (ቁጥር ብቻ)"
584573
585−#: qml/Wizard/Pages/50-location.qml:86
586−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
587−msgstr "ይጠቀሙ ጂፒኤስ ግልጽ ያልሆነ ዋይ-ፋይ እና ተንቀሳቃሽ ኔትዎርክ መረጃ (ይመከራሉ)"
574+#: qml/Wizard/Pages/70-passwd-type.qml:105
575+msgctxt "Label: Type of security method"
576+msgid "No lock code"
577+msgstr "ምንም መቆለፊያ ኮድ አልተገኘም"
588578
589−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
590−#: qml/Wizard/Pages/50-location.qml:103
591−msgid ""
592−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
593−"conditions</a>."
594−msgstr "ይህን ምርጫ በመምረጥ ተስማምቻለሁ ከ Nokia HERE <a href='#'>ውሎች እና ሁኔታዎች ጋር</a>."
579+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
580+msgid "Privacy Policy"
581+msgstr "የ ግላዊነት መመሪያ"
595582
596−#: qml/Wizard/Pages/50-location.qml:112
597−msgid "Not at all"
598−msgstr "አይደለም"
583+#: qml/Wizard/Pages/75-report-check.qml:26
584+msgid "Help Us Improve"
585+msgstr "እንድንሻሻል ይርዱን"
599586
600−#: qml/Wizard/Pages/50-location.qml:124
601−msgid "You can change your mind later in <b>System Settings</b>."
602−msgstr "እርስዎ በኋላ መቀየር ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b>."
587+#: qml/Wizard/Pages/75-report-check.qml:59
588+msgid "Improve system performance by sending us crashes and error reports."
589+msgstr "የ ስርአቱን አፈጻጸም ለማሻሻል የ ግጭት እና የ ስህተት መልእክቶች ይላኩልን"
603590
604−#: qml/Wizard/Pages/60-reporting.qml:26
605−msgid "Improving your experience"
606−msgstr "የ እርስዎን ልምምድ ማሻሻያ"
591+#: qml/Wizard/Pages/75-report-check.qml:60
592+msgid "Privacy policy"
593+msgstr "የ ግላዊነት መመሪያ"
607594
608−#: qml/Wizard/Pages/60-reporting.qml:46
609−msgid ""
610−"Your phone is set up to automatically report errors to Canonical and its "
611−"partners, the makers of the operating system."
612−msgstr ""
613−"የ እርስዎ ስልክ ራሱ በራሱ የ ስህተት መግለጫዎች ወደ Canonical and its partners, የ መስሪያ ስርአት "
614−"አምራቾች"
595+#: qml/Wizard/Pages/80-finished.qml:89
596+msgid "Welcome to Ubuntu"
597+msgstr "እንኳን ደህና መጡ ወደ ኡቡንቱ"
615598
616−#: qml/Wizard/Pages/60-reporting.qml:53
617−msgid ""
618−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
619−"Privacy</b>"
620−msgstr ""
621−"ይህን ግልጋሎት ማሰናከል ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b> under <b>Security &amp; Privacy</b>"
599+#: qml/Wizard/Pages/80-finished.qml:104
600+msgid "You are ready to use your device now"
601+msgstr "የ እርስዎን አካል ለ መጠቀም አሁን ዝግጁ ነው"
622602
623−#: qml/Wizard/Pages/80-finished.qml:24
624−msgid "All done"
625−msgstr "ሁሉም ተፈጽሟል"
603+#: qml/Wizard/Pages/80-finished.qml:124
604+msgid "Get Started"
605+msgstr "እንጀምር"
626606
627−#: qml/Wizard/Pages/80-finished.qml:39
628−msgid "Nice work!"
629−msgstr "ጥሩ ሰርተዋል!"
607+#: qml/Wizard/Pages/here-terms.qml:25
608+msgid "Terms & Conditions"
609+msgstr "ውሎች & ሁኔታዎች"
610+
611+#: qml/Wizard/Pages/here-terms.qml:69
612+msgid "Your device uses positioning technologies provided by HERE."
613+msgstr "የ እርስዎ አካል ይጠቀማል ያሉበትን አካባቢ ቴክኖሎጂ የቀረበውን በ HERE."
630614
631−#: qml/Wizard/Pages/80-finished.qml:46
632−msgid "Your device is now ready to use."
615+#: qml/Wizard/Pages/here-terms.qml:81
616+msgid ""
617+"To provide you with positioning services and to improve their quality, HERE "
618+"collects information about nearby cell towers and Wi-Fi hotspots around your "
619+"current location whenever your position is being found."
633620msgstr ""
621+"እርስዎ ያሉበትን አካባቢ ግልጋሎት ለ መስጠት እና ለማሻሻል: HERE መረጃ ይሰበስባል በቅርብ ያሉ የ ሴል ምሶሶዎች እና "
622+"ዋይ-ፋይ hotspots እርስዎ አሁን ያሉበትን አካባቢ ሲታወቅ"
634623
635−#: qml/Wizard/Pages/80-finished.qml:53
636−msgid "Finish"
637−msgstr "መጨረሻ"
624+#: qml/Wizard/Pages/here-terms.qml:93
625+msgid ""
626+"The information collected is used to analyze the service and to improve the "
627+"use of service, but not to identify you personally."
628+msgstr "የ ተሰበሰበው መረጃ የሚጠቅመው ግልጋሎት ለማሻሻል ነው: ነገር ግን እርስዎን በ ግል ለ መለየት አይደለም"
638629
639−#: qml/Wizard/Pages/here-terms.qml:27
640−msgid "Terms & Conditions"
641−msgstr "ውሎች & ሁኔታዎች"
630+#: qml/Wizard/Pages/here-terms.qml:106
631+#, qt-format
632+msgid "By continuing, you agree to the HERE platform %1 and %2."
633+msgstr "በ መቀጠል እርስዎ ተስማምተዋል ከ HERE platform %1 እና %2."
642634
643−#: qml/Wizard/Pages/passwd-confirm.qml:49
644−msgid "Confirm passphrase"
645−msgstr "የ ማለፊያ ሐረግ ማረጋገጫ"
635+#: qml/Wizard/Pages/here-terms.qml:107
636+msgid "Service Terms"
637+msgstr "የ ግልጋሎት ስምምነቶች"
646638
647−#: qml/Wizard/Pages/passwd-confirm.qml:50
639+#: qml/Wizard/Pages/passcode-confirm.qml:43
640+#: qml/Wizard/Pages/passcode-desktop.qml:80
648641msgid "Confirm passcode"
649642msgstr "የማለፊያ ኮድ ማረጋገጫ"
650643
651−#: qml/Wizard/Pages/passwd-confirm.qml:53
652−#: qml/Wizard/Pages/passwd-confirm.qml:54
653−msgid "Please try again."
654−msgstr "እባክዎን እንደገና ይሞክሩ"
644+#: qml/Wizard/Pages/passcode-confirm.qml:45
645+msgid "Incorrect passcode."
646+msgstr "የ ተሳሳተ የማለፊያ ኮድ"
655647
656−#: qml/Wizard/Pages/passwd-set.qml:61
657−msgid "Choose your passcode"
658−msgstr "የ እርስዎን የማለፊያ ኮድ ይምረጡ"
648+#: qml/Wizard/Pages/passcode-confirm.qml:45
649+msgctxt "Enter the passcode again"
650+msgid "Please re-enter."
651+msgstr "እባክዎን እንደገና-ያስገቡ"
659652
660−#: qml/Wizard/Pages/passwd-set.qml:68
661−msgid "Passphrase must be 4 characters long"
662−msgstr "የ ማለፊያ ሀረግ ቢያንስ 4 ባህሪዎች መሆን አለበት"
653+#: qml/Wizard/Pages/passcode-desktop.qml:30
654+msgid "Lock Screen Passcode"
655+msgstr "የ መመልከቻው መቆለፊያ የ ማለፊያ ኮድ"
663656
664−#. Translators: This is the arrow for "Back" buttons
665−#: qml/Wizard/StackButton.qml:39
666−#, qt-format
667−msgid "〈 %1"
668−msgstr "〈 %1"
657+#: qml/Wizard/Pages/passcode-desktop.qml:56
658+msgid "Enter 4 numbers to setup your passcode"
659+msgstr "ያስገቡ 4 ቁጥሮች የ እርስዎን የ ማለፊያ ኮድ ለማሰናዳት"
669660
670−#. Translators: This is the arrow for "Forward" buttons
671−#: qml/Wizard/StackButton.qml:42
672−#, qt-format
673−msgid "%1 〉"
674−msgstr "%1 〉"
661+#: qml/Wizard/Pages/passcode-desktop.qml:65
662+#: qml/Wizard/Pages/passcode-set.qml:54
663+msgid "Choose passcode"
664+msgstr "የ ማለፊያ ኮድ ይምረጡ"
665+
666+#: qml/Wizard/Pages/passcode-desktop.qml:105
667+msgid "Passcode too short"
668+msgstr "የ ማለፊያ ኮዱ በጣም አጭር ነው"
669+
670+#: qml/Wizard/Pages/passcode-desktop.qml:107
671+msgid "Passcodes match"
672+msgstr "የ ማለፊያ ኮዶቹ ተመሳሳይ ናቸው"
673+
674+#: qml/Wizard/Pages/passcode-desktop.qml:109
675+msgid "Passcodes do not match"
676+msgstr "የ ማለፊያ ኮዶቹ አይመሳሰሉም"
677+
678+#: qml/Wizard/Pages/passcode-set.qml:62
679+msgid "Passcode must be 4 characters long"
680+msgstr "የ ማለፊያ ኮድ 4 ባህሪዎች መሆን አለበት"
681+
682+#: qml/Wizard/Pages/password-set.qml:30
683+msgid "Lock Screen Password"
684+msgstr "የ መመልከቻ መቆለፊያ የ መግቢያ ቃል"
685+
686+#: qml/Wizard/Pages/password-set.qml:61
687+msgid "Enter at least 8 characters"
688+msgstr "ያስገቡ ቢያንስ 8 ባህሪዎች"
689+
690+#: qml/Wizard/Pages/password-set.qml:73
691+msgid "Choose password"
692+msgstr "የ መግቢያ ቃል ይምረጡ"
693+
694+#: qml/Wizard/Pages/password-set.qml:103
695+msgid "Confirm password"
696+msgstr "የ መግቢያ ቃሉን ያረጋግጡ"
697+
698+#: qml/Wizard/Pages/sim.qml:27
699+msgid "No SIM card installed"
700+msgstr "ምንም ሲም ካርድ አልተገጠመም"
701+
702+#: qml/Wizard/Pages/sim.qml:54
703+msgid "SIM card added"
704+msgstr "ሲም ካርድ ተጨምሯል"
705+
706+#: qml/Wizard/Pages/sim.qml:55
707+msgid "You must restart the device to access the mobile network."
708+msgstr "እርስዎ አካሉን እንደገና ማስጀመር አለብዎት ተንቀሳቃሽ ኔትዎርክ ጋር ለ መድረስ"
709+
710+#: qml/Wizard/Pages/sim.qml:59
711+msgid "Restart"
712+msgstr "እንደገና ማስጀመሪያ"
713+
714+#: qml/Wizard/Pages/sim.qml:78
715+msgid "You won’t be able to make calls or use text messaging without a SIM."
716+msgstr "ያለ ሲም ካርድ እርስዎ ጥሪ መፈጸም ወይንም በ ጽሁፍ መልእክት መላክ አይችሉም"
717+
718+#: qml/Wizard/Pages/sim.qml:90
719+msgid "To proceed with no SIM tap Skip."
720+msgstr "ያለ ሲም ለ መቀጠል መዝለያውን መታ ያድርጉ"
721+
722+#: qml/Wizard/PasswordMeter.qml:87
723+msgid "Passwords match"
724+msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ ናቸው"
725+
726+#: qml/Wizard/PasswordMeter.qml:89
727+msgid "Passwords do not match"
728+msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ አይደሉም"
729+
730+#: qml/Wizard/PasswordMeter.qml:93
731+msgid "Strong password"
732+msgstr "ጠንካራ የ መግቢያ ቃል"
733+
734+#: qml/Wizard/PasswordMeter.qml:95
735+msgid "Fair password"
736+msgstr "ደህና የ መግቢያ ቃል"
737+
738+#: qml/Wizard/PasswordMeter.qml:97
739+msgid "Weak password"
740+msgstr "ደካማ የ መግቢያ ቃል"
741+
742+#: qml/Wizard/PasswordMeter.qml:99
743+msgid "Very weak password"
744+msgstr "በጣም ደካማ የ መግቢያ ቃል"
675745
676746#~ msgid "Top edge"
677747#~ msgstr "የላይ ጠርዝ"
@@ -742,6 +812,9 @@ msgstr "%1 〉"
742812#~ msgid "Log out"
743813#~ msgstr "መውጫ"
744814
815+#~ msgid "Are you sure you want to shut down?"
816+#~ msgstr "በእርግጥ ማጥፋት ይፈልጋሉ?"
817+
745818#~ msgid "Shut down"
746819#~ msgstr "ማጥፊያ"
747820
@@ -751,14 +824,17 @@ msgstr "%1 〉"
751824#~ msgid "Settings"
752825#~ msgstr "ማሰናጃ"
753826
827+#~ msgid "Unlock SIM"
828+#~ msgstr "ሲም መክፈቻ"
829+
754830#~ msgid ""
755831#~ "You have now mastered the edge gestures and can start using the "
756832#~ "phone<br><br>Tap on the screen to start"
757833#~ msgstr ""
758834#~ "አሁን የ ጠርዝ እንቅስቃሴን አውቀዋል እና መጀመር ይችላሉ ስልኩን መጠቀም <br><br>መመልከቻውን መታ ያድርጉ ለመጀመር"
759835
760−#~ msgid "Restart"
761−#~ msgstr "እንደገና ማስጀመሪያ"
836+#~ msgid "Roaming"
837+#~ msgstr "ማዘዋወሪያ"
762838
763839#~ msgid "Manage Scopes"
764840#~ msgstr "የ ክልል አስተዳዳሪ"
@@ -766,15 +842,182 @@ msgstr "%1 〉"
766842#~ msgid "Please re-enter"
767843#~ msgstr "እባክዎን እንደገና-ያስገቡ"
768844
845+#~ msgid "Lock security"
846+#~ msgstr "ደህንነት መቆለፊያ"
847+
769848#~ msgid "Please select how you’d like to unlock your phone."
770849#~ msgstr "እባክዎን የ እርስዎን ስልክ እንዴት እንደሚከፍቱ ይምረጡ"
771850
851+#~ msgid "Improving your experience"
852+#~ msgstr "የ እርስዎን ልምምድ ማሻሻያ"
853+
854+#~ msgid "Available networks…"
855+#~ msgstr "ዝግጁ ኔትዎርኮች…"
856+
857+#~ msgid "No available networks."
858+#~ msgstr "ዝግጁ ኔትዎርኮች አልተገኙም"
859+
860+#~ msgid "Location"
861+#~ msgstr "አካባቢ"
862+
863+#~ msgid ""
864+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
865+#~ "Privacy</b>"
866+#~ msgstr ""
867+#~ "ይህን ግልጋሎት ማሰናከል ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b> under <b>Security &amp; Privacy</b>"
868+
869+#~ msgid "Nice work!"
870+#~ msgstr "ጥሩ ሰርተዋል!"
871+
872+#~ msgid "All done"
873+#~ msgstr "ሁሉም ተፈጽሟል"
874+
875+#~ msgid "Finish"
876+#~ msgstr "መጨረሻ"
877+
772878#~ msgid "Your phone is now ready to use."
773879#~ msgstr "ስልኩ አሁን ለመጠቀም ዝግጁ ነው"
774880
881+#~ msgid "Confirm passphrase"
882+#~ msgstr "የ ማለፊያ ሐረግ ማረጋገጫ"
883+
884+#~ msgid "Please try again."
885+#~ msgstr "እባክዎን እንደገና ይሞክሩ"
886+
887+#~ msgid "Add a SIM card and restart your device"
888+#~ msgstr "የ ሲም ካርድ ይጨምሩ እና አካሉን እንደገና ያስነሱ"
889+
890+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
891+#~ msgstr "ያለ እሱ ጥሪ መፈጸም ወይንም የ ጽሁፍ መልእክት መላክ አይችሉም"
892+
893+#~ msgid "Hi!"
894+#~ msgstr "ሰላም"
895+
775896#~ msgid "Welcome to your Ubuntu phone."
776897#~ msgstr "እንኳን ደህና መጡ ወደ እርስዎ ኡቡንቱ ስልክ"
777898
899+#~ msgid "Let’s get started."
900+#~ msgstr "ስራ እንጀምር"
901+
902+#~ msgid "Continue"
903+#~ msgstr "ይቀጥሉ"
904+
905+#~ msgid "Passphrase must be 4 characters long"
906+#~ msgstr "የ ማለፊያ ሀረግ ቢያንስ 4 ባህሪዎች መሆን አለበት"
907+
908+#~ msgid "Choose your passcode"
909+#~ msgstr "የ እርስዎን የማለፊያ ኮድ ይምረጡ"
910+
911+#~ msgid "Let the phone detect your location:"
912+#~ msgstr "እባክዎን እርስዎ ያሉበትን አካባቢ ስልኩ እራሱ ይፈልግ:"
913+
914+#, qt-format
915+#~ msgid "〈 %1"
916+#~ msgstr "〈 %1"
917+
918+#, qt-format
919+#~ msgid "%1 〉"
920+#~ msgstr "%1 〉"
921+
922+#~ msgid "You can change your mind later in <b>System Settings</b>."
923+#~ msgstr "እርስዎ በኋላ መቀየር ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b>."
924+
925+#~ msgid "Not at all"
926+#~ msgstr "አይደለም"
927+
928+#~ msgid "Using GPS only (less accurate)"
929+#~ msgstr "ጂፒኤስን ብቻ መጠቀሚያ(በጣም ቅርብ)"
930+
931+#~ msgid ""
932+#~ "Your phone is set up to automatically report errors to Canonical and its "
933+#~ "partners, the makers of the operating system."
934+#~ msgstr ""
935+#~ "የ እርስዎ ስልክ ራሱ በራሱ የ ስህተት መግለጫዎች ወደ Canonical and its partners, የ መስሪያ ስርአት "
936+#~ "አምራቾች"
937+
938+#~ msgid ""
939+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
940+#~ "conditions</a>."
941+#~ msgstr "ይህን ምርጫ በመምረጥ ተስማምቻለሁ ከ Nokia HERE <a href='#'>ውሎች እና ሁኔታዎች ጋር</a>."
942+
943+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
944+#~ msgstr "ይጠቀሙ ጂፒኤስ ግልጽ ያልሆነ ዋይ-ፋይ እና ተንቀሳቃሽ ኔትዎርክ መረጃ (ይመከራሉ)"
945+
946+#~ msgid "This action does different things for different apps"
947+#~ msgstr "ይህ ተግባር ለተለያዩ መተግበሪያዎች የተለያየ ነገር ይሰራል"
948+
949+#~ msgid "Tap here to finish."
950+#~ msgstr "እዚህ መታ ይድርጉ ለመጨረስ"
951+
952+#~ msgid "Short swipe from the left edge."
953+#~ msgstr "ከ ግራ ጠርዝ በኩል በትንሹ ይጥረጉ"
954+
955+#~ msgid "Open the launcher"
956+#~ msgstr "ማስጀመሪያውን መክፈቻ"
957+
958+#~ msgid "Tap here to continue."
959+#~ msgstr "እዚህ መታ ይድርጉ ለመቀጠል"
960+
961+#~ msgid "These are the shortcuts to favorite apps"
962+#~ msgstr "እነዚህ አቋራጮች ናቸው እርስዎ ለሚወዷቸው መተግበሪያዎች"
963+
964+#~ msgid "Swipe up from the bottom edge."
965+#~ msgstr "ከ ታች ጠርዝ በኩል ወደ ላይ ይጥረጉ"
966+
967+#~ msgid "Open special menus"
968+#~ msgstr "የተለዩ ዝርዝሮች መክፈቻ"
969+
970+#~ msgid "To view open apps"
971+#~ msgstr "ለመመልከት መተግበሪያዎች ይክፈቱ"
972+
973+#~ msgid "Try again."
974+#~ msgstr "እንደገና ይሞክሩ"
975+
976+#~ msgid "You almost got it!"
977+#~ msgstr "እርስዎ አሁን እያገኙት ነው!"
978+
979+#~ msgid "Long swipe from the right edge."
980+#~ msgstr "ከ ቀኝ ጠርዝ በኩል በረጅሙ ይጥረጉ"
981+
982+#~ msgid "View all your running tasks."
983+#~ msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
984+
985+#~ msgctxt "Button: Shut down the system"
986+#~ msgid "Shut down"
987+#~ msgstr "ማጥፊያ"
988+
989+#~ msgctxt "Title: Reboot/Shut down dialog"
990+#~ msgid "Shut down"
991+#~ msgstr "ማጥፊያ"
992+
993+#~ msgctxt "Button: Reboot the system"
994+#~ msgid "Reboot"
995+#~ msgstr "እንደገና ማስነሻ"
996+
997+#~ msgctxt "Label: Type of security method"
998+#~ msgid "Passcode"
999+#~ msgstr "ማለፊያ ኮድ"
1000+
1001+#~ msgctxt "Label: Description of security method"
1002+#~ msgid "No security"
1003+#~ msgstr "ደህንነት አልተገኘም"
1004+
1005+#~ msgctxt "Label: Description of security method"
1006+#~ msgid "4 digits only"
1007+#~ msgstr "4 ዲጂት ብቻ"
1008+
1009+#~ msgctxt "Label: Type of security method"
1010+#~ msgid "Swipe"
1011+#~ msgstr "መጥረጊያ"
1012+
1013+#~ msgctxt "Label: Type of security method"
1014+#~ msgid "Passphrase"
1015+#~ msgstr "የማለፊያ ሐረግ"
1016+
1017+#~ msgctxt "Label: Description of security method"
1018+#~ msgid "Numbers and letters"
1019+#~ msgstr "ቁጥሮች እና ፊደሎች"
1020+
7781021#~ msgid "%a %d %b %H:%M"
7791022#~ msgstr "%a %d %b %ሰ:%ደ"
7801023
@@ -807,3 +1050,12 @@ msgstr "%1 〉"
8071050
8081051#~ msgid "Call back"
8091052#~ msgstr "መልሶ መደወያ"
1053+
1054+#~ msgid "Welcome to your Ubuntu device."
1055+#~ msgstr "እንኳን ድህና መጡ ወደ ኡቡንቱ"
1056+
1057+#~ msgid "Please select how you’d like to unlock your device."
1058+#~ msgstr "እባክዎን የ እርስዎን አካል እንዴት እንደሚከፈት ይምረጡ"
1059+
1060+#~ msgid "Your device is now ready to use."
1061+#~ msgstr "የ እርስዎ አካል አሁን ዝግጁ ነው"
po/ar.po+474−246
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2015-07-29 09:41+0000\n"
1212"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
1313"Language-Team: Arabic <ar@li.org>\n"
@@ -16,23 +16,23 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
1818"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2016-02-17 05:42+0000\n"
20−"X-Generator: Launchpad (build 17925)\n"
19+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
20+"X-Generator: Launchpad (build 17958)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
2424msgstr "كلمة السر: "
2525
26−#: plugins/Unity/Launcher/launcheritem.cpp:47
27−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:48
27+#: plugins/Unity/Launcher/launcheritem.cpp:107
2828msgid "Pin shortcut"
2929msgstr "تثبيت الاختصار"
3030
31−#: plugins/Unity/Launcher/launcheritem.cpp:52
31+#: plugins/Unity/Launcher/launcheritem.cpp:53
3232msgid "Quit"
3333msgstr "خروج"
3434
35−#: plugins/Unity/Launcher/launcheritem.cpp:106
35+#: plugins/Unity/Launcher/launcheritem.cpp:107
3636msgid "Unpin shortcut"
3737msgstr "إزالة تثبيت الاختصار"
3838
@@ -80,53 +80,35 @@ msgctxt "Button: Log out from the system"
8080msgid "Log Out"
8181msgstr "خروج"
8282
83−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
84−#: qml/Components/Dialogs.qml:253
83+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
84+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
85+#: qml/Wizard/Pages/passcode-set.qml:32
8586msgid "Cancel"
8687msgstr "إلغاء"
8788
8889#: qml/Components/Dialogs.qml:173
89−msgctxt "Title: Reboot/Shut down dialog"
90−msgid "Shut down"
91−msgstr "إطفاء الجهاز"
92−
93−#: qml/Components/Dialogs.qml:174
94−msgid "Are you sure you want to shut down?"
95−msgstr "هل أنت متأكد من رغبتك في إطفاء الجهاز؟"
96−
97−#: qml/Components/Dialogs.qml:176
98−msgctxt "Button: Reboot the system"
99−msgid "Reboot"
100−msgstr "إعادة التشغيل"
101−
102−#: qml/Components/Dialogs.qml:185
103−msgctxt "Button: Shut down the system"
104−msgid "Shut down"
105−msgstr "إطفاء الجهاز"
106−
107−#: qml/Components/Dialogs.qml:207
10890msgctxt "Title: Reboot dialog"
10991msgid "Reboot"
11092msgstr "إعادة التشغيل"
11193
112−#: qml/Components/Dialogs.qml:208
94+#: qml/Components/Dialogs.qml:174
11395msgid "Are you sure you want to reboot?"
11496msgstr "هل أنت متأكد من رغبتك في إعادة تشغيل الجهاز؟"
11597
116−#: qml/Components/Dialogs.qml:210
98+#: qml/Components/Dialogs.qml:176
11799msgid "No"
118100msgstr "لا"
119101
120−#: qml/Components/Dialogs.qml:217
102+#: qml/Components/Dialogs.qml:183
121103msgid "Yes"
122104msgstr "نعم"
123105
124−#: qml/Components/Dialogs.qml:232
106+#: qml/Components/Dialogs.qml:198
125107msgctxt "Title: Power off/Restart dialog"
126108msgid "Power"
127109msgstr "الطاقة"
128110
129−#: qml/Components/Dialogs.qml:233
111+#: qml/Components/Dialogs.qml:199
130112msgid ""
131113"Are you sure you would like\n"
132114"to power off?"
@@ -134,25 +116,25 @@ msgstr ""
134116"هل أنت متأكد من رغبتك\n"
135117"في إيقاف التشغيل؟"
136118
137−#: qml/Components/Dialogs.qml:235
119+#: qml/Components/Dialogs.qml:201
138120msgctxt "Button: Power off the system"
139121msgid "Power off"
140122msgstr "إيقاف التشغيل"
141123
142−#: qml/Components/Dialogs.qml:244
124+#: qml/Components/Dialogs.qml:210
143125msgctxt "Button: Restart the system"
144126msgid "Restart"
145127msgstr "إعادة التشغيل"
146128
147−#: qml/Components/Lockscreen.qml:245
129+#: qml/Components/Lockscreen.qml:231
148130msgid "Return to Call"
149131msgstr "العودة إلى المكالمة"
150132
151−#: qml/Components/Lockscreen.qml:245
133+#: qml/Components/Lockscreen.qml:231
152134msgid "Emergency Call"
153135msgstr "مكالمة طوارئ"
154136
155−#: qml/Components/Lockscreen.qml:277
137+#: qml/Components/Lockscreen.qml:263
156138msgid "OK"
157139msgstr "موافق"
158140
@@ -161,6 +143,8 @@ msgid "Apps may have unsaved data:"
161143msgstr ""
162144
163145#: qml/Components/ModeSwitchWarningDialog.qml:57
146+msgctxt ""
147+"Re-dock means connect the device again to an external screen/mouse/keyboard"
164148msgid "Re-dock, save your work and close these apps to continue."
165149msgstr ""
166150
@@ -180,42 +164,58 @@ msgstr ""
180164msgid "Close all"
181165msgstr ""
182166
183−#: qml/Dash/DashPageHeader.qml:266
167+#: qml/Dash/DashPageHeader.qml:337
184168msgctxt "Button: Open the Ubuntu Store"
185169msgid "Store"
186170msgstr "المتجر"
187171
188−#: qml/Dash/DashPageHeader.qml:273
172+#: qml/Dash/DashPageHeader.qml:344
189173msgctxt "Button: Start a search in the current dash scope"
190174msgid "Search"
191175msgstr "بحث"
192176
193−#: qml/Dash/DashPageHeader.qml:283
177+#: qml/Dash/DashPageHeader.qml:354
194178msgctxt "Button: Show the current dash scope settings"
195179msgid "Settings"
196180msgstr "الإعدادات"
197181
198−#: qml/Dash/DashPageHeader.qml:290
182+#: qml/Dash/DashPageHeader.qml:361
199183msgid "Remove from Favorites"
200184msgstr "حذف من المفضلات"
201185
202−#: qml/Dash/DashPageHeader.qml:290
186+#: qml/Dash/DashPageHeader.qml:361
203187msgid "Add to Favorites"
204188msgstr "إضافة إلى المفضلات"
205189
206−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
190+#: qml/Dash/FiltersPopover.qml:60
191+msgid "Refine your results"
192+msgstr ""
193+
194+#: qml/Dash/FiltersPopover.qml:69
195+msgid "Reset"
196+msgstr ""
197+
198+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
207199msgid "See less"
208200msgstr "شاهد أقل"
209201
210−#: qml/Dash/GenericScopeView.qml:587
202+#: qml/Dash/GenericScopeView.qml:570
211203msgid "See all"
212204msgstr "عرض الكل"
213205
214−#: qml/Dash/GenericScopeView.qml:649
206+#: qml/Dash/GenericScopeView.qml:627
215207msgctxt "Label: Hint for dash search line edit"
216208msgid "Search"
217209msgstr "بحث"
218210
211+#: qml/Dash/PageHeaderExtraPanel.qml:55
212+msgid "Recent Searches"
213+msgstr ""
214+
215+#: qml/Dash/PageHeaderExtraPanel.qml:66
216+msgid "Clear All"
217+msgstr ""
218+
219219#: qml/Dash/Previews/PreviewActionCombo.qml:35
220220msgid "More..."
221221msgstr "المزيد..."
@@ -237,7 +237,7 @@ msgstr "قيّم ذلك"
237237msgid "Add a review"
238238msgstr "أضف تعليق"
239239
240−#: qml/Dash/Previews/PreviewSharing.qml:50
240+#: qml/Dash/Previews/PreviewSharing.qml:66
241241msgid "Preview Share Item"
242242msgstr ""
243243
@@ -265,13 +265,13 @@ msgstr "الرئيسية"
265265msgid "Also installed"
266266msgstr "أيضا تم تثبيت"
267267
268−#: qml/DisabledScreenNotice.qml:87
268+#: qml/DisabledScreenNotice.qml:104
269269msgid ""
270270"Your device is now connected to an external display. Use this screen as a "
271−"touch pad to interact with the mouse."
271+"touch pad to interact with the pointer."
272272msgstr ""
273273
274−#: qml/Greeter/CoverPage.qml:107
274+#: qml/Greeter/CoverPage.qml:118
275275msgid "Unlock"
276276msgstr "فك القفل"
277277
@@ -283,11 +283,11 @@ msgstr "إعادة المحاولة"
283283msgid "Tap to unlock"
284284msgstr "انقر لفك القفل"
285285
286−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
286+#: qml/Greeter/NarrowView.qml:54
287287msgid "Sorry, incorrect passphrase."
288288msgstr "عذرًا، عبارة سرّية خاطئة."
289289
290−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
290+#: qml/Greeter/NarrowView.qml:55
291291msgid "Sorry, incorrect passcode."
292292msgstr "عذرًا، رمز سرّي خاطيء."
293293
@@ -316,7 +316,7 @@ msgstr ""
316316msgid "Enter %1"
317317msgstr "أدخِل %1"
318318
319−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
319+#: qml/Greeter/NarrowView.qml:117
320320msgid "Enter passphrase"
321321msgstr "أدخِل العبارة السرية"
322322
@@ -354,11 +354,11 @@ msgstr "انقر للعودة إلى المكالمة..."
354354msgid "Conference"
355355msgstr "مؤتمر"
356356
357−#: qml/Panel/Indicators/MenuItemFactory.qml:753
357+#: qml/Panel/Indicators/MenuItemFactory.qml:761
358358msgid "Nothing is playing"
359359msgstr "لا شيء مُشغّل"
360360
361−#: qml/Panel/Indicators/MenuItemFactory.qml:882
361+#: qml/Panel/Indicators/MenuItemFactory.qml:890
362362#, qt-format
363363msgid "%1 hour"
364364msgid_plural "%1 hours"
@@ -369,7 +369,7 @@ msgstr[3] "%1 ساعات"
369369msgstr[4] "%1 ساعة"
370370msgstr[5] "%1 ساعة"
371371
372−#: qml/Panel/Indicators/MenuItemFactory.qml:886
372+#: qml/Panel/Indicators/MenuItemFactory.qml:894
373373#, qt-format
374374msgid "%1 minute"
375375msgid_plural "%1 minutes"
@@ -380,7 +380,7 @@ msgstr[3] "%1 دقائق"
380380msgstr[4] "%1 دقيقة"
381381msgstr[5] "%1 دقيقة"
382382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:891
383+#: qml/Panel/Indicators/MenuItemFactory.qml:899
384384#, qt-format
385385msgid "%1 second"
386386msgid_plural "%1 seconds"
@@ -391,37 +391,37 @@ msgstr[3] "%1 ثوان"
391391msgstr[4] "%1 ثانية"
392392msgstr[5] "%1 ثانية"
393393
394−#: qml/Panel/Indicators/MenuItemFactory.qml:894
394+#: qml/Panel/Indicators/MenuItemFactory.qml:902
395395msgid "0 seconds"
396396msgstr "أقل من ثانية"
397397
398398#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
399−#: qml/Panel/Indicators/MenuItemFactory.qml:896
399+#: qml/Panel/Indicators/MenuItemFactory.qml:904
400400#, qt-format
401401msgid "%1 remaining"
402402msgstr "باق %1"
403403
404−#: qml/Panel/Indicators/MenuItemFactory.qml:902
404+#: qml/Panel/Indicators/MenuItemFactory.qml:910
405405msgid "In queue…"
406406msgstr "في الانتظار..."
407407
408−#: qml/Panel/Indicators/MenuItemFactory.qml:906
408+#: qml/Panel/Indicators/MenuItemFactory.qml:914
409409msgid "Downloading"
410410msgstr "التنزيل"
411411
412−#: qml/Panel/Indicators/MenuItemFactory.qml:908
412+#: qml/Panel/Indicators/MenuItemFactory.qml:916
413413msgid "Paused, tap to resume"
414414msgstr "مُلبث، انقر للاستئناف"
415415
416−#: qml/Panel/Indicators/MenuItemFactory.qml:910
416+#: qml/Panel/Indicators/MenuItemFactory.qml:918
417417msgid "Canceled"
418418msgstr "تم إلغائه"
419419
420−#: qml/Panel/Indicators/MenuItemFactory.qml:912
420+#: qml/Panel/Indicators/MenuItemFactory.qml:920
421421msgid "Finished"
422422msgstr "انتهى"
423423
424−#: qml/Panel/Indicators/MenuItemFactory.qml:914
424+#: qml/Panel/Indicators/MenuItemFactory.qml:922
425425msgid "Failed, tap to retry"
426426msgstr "فشل، انقل لإعادة المحاولة"
427427
@@ -441,260 +441,323 @@ msgctxt "Button: Call back on phone"
441441msgid "Call back"
442442msgstr ""
443443
444−#: qml/Panel/Indicators/ModemInfoItem.qml:105
445−msgid "Unlock SIM"
446−msgstr "فتح قفل بطاقة SIM"
447−
448−#: qml/Panel/Indicators/RoamingIndication.qml:27
449−msgid "Roaming"
450−msgstr "التجوال"
451−
452−#: qml/Tutorial/TutorialBottom.qml:28
453−msgid "Open special menus"
454−msgstr "فتح قوائم خاصة"
455−
456−#: qml/Tutorial/TutorialBottom.qml:29
457−msgid "Swipe up from the bottom edge."
458−msgstr "اسحب لأعلى من الحافة السفلى."
444+#: qml/Stages/SideStage.qml:76
445+msgid "Drag using 3 fingers any application from one window to the other"
446+msgstr ""
459447
460−#: qml/Tutorial/TutorialBottomFinish.qml:24
461−msgid "This action does different things for different apps"
462−msgstr "هذا الإجراء يقوم بأشياء مختلفة على التطبيقات المختلفة"
448+#: qml/Tutorial/TutorialBottom.qml:78
449+msgid "Swipe up to add a contact"
450+msgstr ""
463451
464−#: qml/Tutorial/TutorialBottomFinish.qml:25
465−msgid "Tap here to finish."
466−msgstr "انقر هنا للإنهاء."
452+#: qml/Tutorial/TutorialBottom.qml:80
453+msgid "Swipe up for favorite calculations"
454+msgstr ""
467455
468−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
469−#: qml/Tutorial/TutorialRight.qml:144
470−msgid "Tap here to continue."
471−msgstr "انقر هنا للمتابعة."
456+#: qml/Tutorial/TutorialBottom.qml:82
457+msgid "Swipe up for recent calls"
458+msgstr ""
472459
473−#: qml/Tutorial/TutorialLeft.qml:26
474−msgid "Open the launcher"
460+#: qml/Tutorial/TutorialBottom.qml:84
461+msgid "Swipe up to create a message"
475462msgstr ""
476463
477−#: qml/Tutorial/TutorialLeft.qml:27
478−msgid "Short swipe from the left edge."
479−msgstr "اسحب سحبة قصيرة من الحافة اليسرى."
464+#: qml/Tutorial/TutorialBottom.qml:85
465+msgid "Swipe up to manage the app"
466+msgstr ""
480467
481−#: qml/Tutorial/TutorialLeftFinish.qml:24
482−msgid "These are the shortcuts to favorite apps"
483−msgstr "هذه اختصارات للتطبيقات المُفضلة"
468+#: qml/Tutorial/TutorialLeft.qml:47
469+msgid "Swipe from the left edge to open the launcher"
470+msgstr ""
484471
485−#: qml/Tutorial/TutorialPage.qml:178
486−msgid "You almost got it!"
487−msgstr "انت حصلت على ذلك تقريبا!"
472+#: qml/Tutorial/TutorialLeftLong.qml:47
473+msgid "Long swipe from the left edge to open the Today scope"
474+msgstr ""
488475
489−#: qml/Tutorial/TutorialPage.qml:195
490−msgid "Try again."
491−msgstr "حاول مجددًا."
476+#: qml/Tutorial/TutorialRight.qml:54
477+msgid "Hover your mouse on the right edge to view your open apps"
478+msgstr ""
492479
493−#: qml/Tutorial/TutorialRight.qml:31
494−msgid "To view open apps"
480+#: qml/Tutorial/TutorialRight.qml:55
481+msgid "Short or long swipe from the right edge to view your open apps"
495482msgstr ""
496483
497−#: qml/Tutorial/TutorialRight.qml:32
498−msgid "Long swipe from the right edge."
499−msgstr "سحبة طويلة من الحافة اليمنى."
484+#: qml/Tutorial/TutorialTop.qml:53
485+msgid "Swipe from the top right edge to open the notification bar"
486+msgstr ""
500487
501−#: qml/Tutorial/TutorialRight.qml:122
502−msgid "View all your running tasks."
503−msgstr "عرض جميع المهام النشطة."
488+#: qml/Tutorial/TutorialTop.qml:54
489+msgid "Swipe from the top edge to open the notification bar"
490+msgstr ""
504491
505−#: qml/Wizard/Page.qml:89
492+#: qml/Wizard/Page.qml:54
506493msgctxt "Button: Go back one page in the Wizard"
507494msgid "Back"
508495msgstr "عودة"
509496
510497#: qml/Wizard/Pages/10-welcome.qml:27
511−msgid "Hi!"
512−msgstr "أهلا!"
498+msgid "Language"
499+msgstr ""
513500
514−#: qml/Wizard/Pages/10-welcome.qml:44
515−msgid "Welcome to your Ubuntu device."
501+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
502+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
503+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
504+#: qml/Wizard/Pages/75-report-check.qml:84
505+#: qml/Wizard/Pages/passcode-desktop.qml:124
506+#: qml/Wizard/Pages/password-set.qml:141
507+msgid "Next"
516508msgstr ""
517509
518−#: qml/Wizard/Pages/10-welcome.qml:52
519−msgid "Let’s get started."
520−msgstr "هيا بنا نبدأ."
510+#: qml/Wizard/Pages/30-wifi.qml:29
511+msgid "Connect to Wi‑Fi"
512+msgstr "اتصل بالواي فاي"
521513
522−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
523−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
524−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
525−#: qml/Wizard/Pages/passwd-set.qml:90
526−msgid "Continue"
527−msgstr "متابعة"
514+#: qml/Wizard/Pages/30-wifi.qml:130
515+msgid "Connected"
516+msgstr ""
528517
529−#: qml/Wizard/Pages/20-sim.qml:25
530−msgid "Add a SIM card and restart your device"
531−msgstr "أدخِل شريحة SIM ثم أعِد تشغيل الجهاز"
518+#: qml/Wizard/Pages/30-wifi.qml:163
519+msgid "Available Wi-Fi networks"
520+msgstr ""
532521
533−#: qml/Wizard/Pages/20-sim.qml:59
534−msgid "Without it, you won’t be able to make calls or use text messaging."
522+#: qml/Wizard/Pages/30-wifi.qml:164
523+msgid "No available Wi-Fi networks"
535524msgstr ""
536−"بدونها لن تتمكن من إجراء أي مكالمات هاتفية أو استخدام الرسائل النصية."
537525
538−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
526+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
527+#: qml/Wizard/Pages/sim.qml:101
539528msgid "Skip"
540529msgstr "تخطي"
541530
542−#: qml/Wizard/Pages/30-passwd-type.qml:39
543−msgid "Lock security"
544−msgstr "قِفل الأمان"
531+#: qml/Wizard/Pages/40-location.qml:27
532+msgid "Location Services"
533+msgstr ""
545534
546−#: qml/Wizard/Pages/30-passwd-type.qml:79
547−msgid "Please select how you’d like to unlock your device."
535+#: qml/Wizard/Pages/40-location.qml:83
536+msgid ""
537+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
538+"(recommended)"
548539msgstr ""
549540
550−#: qml/Wizard/Pages/30-passwd-type.qml:102
551−msgctxt "Label: Type of security method"
552−msgid "Swipe"
553−msgstr "سحبة"
541+#: qml/Wizard/Pages/40-location.qml:105
542+#, qt-format
543+msgid "By selecting this option you agree to the Nokia HERE %1."
544+msgstr ""
545+
546+#: qml/Wizard/Pages/40-location.qml:106
547+msgctxt "part of: Nokia HERE terms and conditions"
548+msgid "terms and conditions"
549+msgstr ""
554550
555−#: qml/Wizard/Pages/30-passwd-type.qml:103
556−msgctxt "Label: Description of security method"
557−msgid "No security"
558−msgstr "بدون أمان"
551+#: qml/Wizard/Pages/40-location.qml:160
552+msgid "GPS only"
553+msgstr ""
554+
555+#: qml/Wizard/Pages/40-location.qml:214
556+msgid "Don't use my location"
557+msgstr ""
559558
560−#: qml/Wizard/Pages/30-passwd-type.qml:105
559+#: qml/Wizard/Pages/40-location.qml:260
560+msgid "You can change it later in System Settings."
561+msgstr ""
562+
563+#: qml/Wizard/Pages/50-timezone.qml:29
564+msgid "Time Zone"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/50-timezone.qml:178
568+msgid "Enter your city"
569+msgstr ""
570+
571+#: qml/Wizard/Pages/60-account.qml:24
572+msgid "Personalize Your Device"
573+msgstr ""
574+
575+#: qml/Wizard/Pages/60-account.qml:48
576+msgid "Preferred Name"
577+msgstr ""
578+
579+#: qml/Wizard/Pages/70-passwd-type.qml:39
580+msgid "Lock Screen"
581+msgstr ""
582+
583+#: qml/Wizard/Pages/70-passwd-type.qml:101
561584msgctxt "Label: Type of security method"
562−msgid "Passcode"
563−msgstr "رمز سري"
585+msgid "Create new password"
586+msgstr ""
564587
565−#: qml/Wizard/Pages/30-passwd-type.qml:106
566−msgctxt "Label: Description of security method"
567−msgid "4 digits only"
568−msgstr "4 أرقام فقط"
588+#: qml/Wizard/Pages/70-passwd-type.qml:103
589+msgctxt "Label: Type of security method"
590+msgid "Create passcode (numbers only)"
591+msgstr ""
569592
570−#: qml/Wizard/Pages/30-passwd-type.qml:108
593+#: qml/Wizard/Pages/70-passwd-type.qml:105
571594msgctxt "Label: Type of security method"
572−msgid "Passphrase"
573−msgstr "عبارة سرية"
595+msgid "No lock code"
596+msgstr ""
574597
575−#: qml/Wizard/Pages/30-passwd-type.qml:109
576−msgctxt "Label: Description of security method"
577−msgid "Numbers and letters"
578−msgstr "أرقام وحروف"
598+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
599+msgid "Privacy Policy"
600+msgstr ""
579601
580−#: qml/Wizard/Pages/40-wifi.qml:29
581−msgid "Connect to Wi‑Fi"
582−msgstr "اتصل بالواي فاي"
602+#: qml/Wizard/Pages/75-report-check.qml:26
603+msgid "Help Us Improve"
604+msgstr ""
583605
584−#: qml/Wizard/Pages/40-wifi.qml:168
585−msgid "Available networks…"
586−msgstr "الشبكات المتاحة..."
606+#: qml/Wizard/Pages/75-report-check.qml:59
607+msgid "Improve system performance by sending us crashes and error reports."
608+msgstr ""
587609
588−#: qml/Wizard/Pages/40-wifi.qml:169
589−msgid "No available networks."
590−msgstr "لا توجد شبكات متاحة."
610+#: qml/Wizard/Pages/75-report-check.qml:60
611+msgid "Privacy policy"
612+msgstr ""
591613
592−#: qml/Wizard/Pages/50-location.qml:27
593−msgid "Location"
594−msgstr "الموقع"
614+#: qml/Wizard/Pages/80-finished.qml:89
615+msgid "Welcome to Ubuntu"
616+msgstr ""
595617
596−#: qml/Wizard/Pages/50-location.qml:62
597−msgid "Let the phone detect your location:"
598−msgstr "دع هاتفك يحدد موقعك:"
618+#: qml/Wizard/Pages/80-finished.qml:104
619+msgid "You are ready to use your device now"
620+msgstr ""
599621
600−#: qml/Wizard/Pages/50-location.qml:69
601−msgid "Using GPS only (less accurate)"
602−msgstr "باستخدام نظام تحديد المواقع (GPS) فقط (أقل دقّة)"
622+#: qml/Wizard/Pages/80-finished.qml:124
623+msgid "Get Started"
624+msgstr ""
603625
604−#: qml/Wizard/Pages/50-location.qml:86
605−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
626+#: qml/Wizard/Pages/here-terms.qml:25
627+msgid "Terms & Conditions"
628+msgstr "الشروط والأحكام"
629+
630+#: qml/Wizard/Pages/here-terms.qml:69
631+msgid "Your device uses positioning technologies provided by HERE."
606632msgstr ""
607−"باستخدام نظام تحديد المواقع (GPS)، والواي فاي، وبيانات الشبكة الخلوية "
608−"(مستحسن)"
609633
610−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
611−#: qml/Wizard/Pages/50-location.qml:103
634+#: qml/Wizard/Pages/here-terms.qml:81
612635msgid ""
613−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
614−"conditions</a>."
636+"To provide you with positioning services and to improve their quality, HERE "
637+"collects information about nearby cell towers and Wi-Fi hotspots around your "
638+"current location whenever your position is being found."
615639msgstr ""
616−"باختيارك لهذا الخيار فإنك توافق على <a href='#'>الشروط والأحكام</a> الخاصة "
617−"بـ Nokia HERE."
618640
619−#: qml/Wizard/Pages/50-location.qml:112
620−msgid "Not at all"
641+#: qml/Wizard/Pages/here-terms.qml:93
642+msgid ""
643+"The information collected is used to analyze the service and to improve the "
644+"use of service, but not to identify you personally."
621645msgstr ""
622646
623−#: qml/Wizard/Pages/50-location.qml:124
624−msgid "You can change your mind later in <b>System Settings</b>."
625−msgstr "يمكنك تغيير رأيك في وقت لاحق عن طريق <b>إعدادات النظام</b>."
647+#: qml/Wizard/Pages/here-terms.qml:106
648+#, qt-format
649+msgid "By continuing, you agree to the HERE platform %1 and %2."
650+msgstr ""
626651
627−#: qml/Wizard/Pages/60-reporting.qml:26
628−msgid "Improving your experience"
629−msgstr "تحسين تجربتك"
652+#: qml/Wizard/Pages/here-terms.qml:107
653+msgid "Service Terms"
654+msgstr ""
630655
631−#: qml/Wizard/Pages/60-reporting.qml:46
632−msgid ""
633−"Your phone is set up to automatically report errors to Canonical and its "
634−"partners, the makers of the operating system."
656+#: qml/Wizard/Pages/passcode-confirm.qml:43
657+#: qml/Wizard/Pages/passcode-desktop.qml:80
658+msgid "Confirm passcode"
659+msgstr "تأكيد الرمز السري"
660+
661+#: qml/Wizard/Pages/passcode-confirm.qml:45
662+msgid "Incorrect passcode."
635663msgstr ""
636−"هاتفك مُعدّ لإرسال تقارير آلية بالأخطاء إلى كانونيكال وشركائها (صانعي نظام "
637−"التشغيل)."
638664
639−#: qml/Wizard/Pages/60-reporting.qml:53
640−msgid ""
641−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
642−"Privacy</b>"
665+#: qml/Wizard/Pages/passcode-confirm.qml:45
666+msgctxt "Enter the passcode again"
667+msgid "Please re-enter."
643668msgstr ""
644−"يمكن تعطيل ذلك بالذهاب إلى <b>إعدادات النظام</b> من خلال <b>الأمان "
645−"والخصوصية</b>"
646669
647−#: qml/Wizard/Pages/80-finished.qml:24
648−msgid "All done"
649−msgstr "تم ذلك"
670+#: qml/Wizard/Pages/passcode-desktop.qml:30
671+msgid "Lock Screen Passcode"
672+msgstr ""
650673
651−#: qml/Wizard/Pages/80-finished.qml:39
652−msgid "Nice work!"
653−msgstr "عمل جيد!"
674+#: qml/Wizard/Pages/passcode-desktop.qml:56
675+msgid "Enter 4 numbers to setup your passcode"
676+msgstr ""
654677
655−#: qml/Wizard/Pages/80-finished.qml:46
656−msgid "Your device is now ready to use."
678+#: qml/Wizard/Pages/passcode-desktop.qml:65
679+#: qml/Wizard/Pages/passcode-set.qml:54
680+msgid "Choose passcode"
657681msgstr ""
658682
659−#: qml/Wizard/Pages/80-finished.qml:53
660−msgid "Finish"
661−msgstr "إنهاء"
683+#: qml/Wizard/Pages/passcode-desktop.qml:105
684+msgid "Passcode too short"
685+msgstr ""
662686
663−#: qml/Wizard/Pages/here-terms.qml:27
664−msgid "Terms & Conditions"
665−msgstr "الشروط والأحكام"
687+#: qml/Wizard/Pages/passcode-desktop.qml:107
688+msgid "Passcodes match"
689+msgstr ""
666690
667−#: qml/Wizard/Pages/passwd-confirm.qml:49
668−msgid "Confirm passphrase"
669−msgstr "تأكيد العبارة السرية"
691+#: qml/Wizard/Pages/passcode-desktop.qml:109
692+msgid "Passcodes do not match"
693+msgstr ""
670694
671−#: qml/Wizard/Pages/passwd-confirm.qml:50
672−msgid "Confirm passcode"
673−msgstr "تأكيد الرمز السري"
695+#: qml/Wizard/Pages/passcode-set.qml:62
696+msgid "Passcode must be 4 characters long"
697+msgstr ""
698+
699+#: qml/Wizard/Pages/password-set.qml:30
700+msgid "Lock Screen Password"
701+msgstr ""
674702
675−#: qml/Wizard/Pages/passwd-confirm.qml:53
676−#: qml/Wizard/Pages/passwd-confirm.qml:54
677−msgid "Please try again."
678−msgstr "حاول مجددا."
703+#: qml/Wizard/Pages/password-set.qml:61
704+msgid "Enter at least 8 characters"
705+msgstr ""
679706
680−#: qml/Wizard/Pages/passwd-set.qml:61
681−msgid "Choose your passcode"
682−msgstr "اختر الرمز السري خاصتك"
707+#: qml/Wizard/Pages/password-set.qml:73
708+msgid "Choose password"
709+msgstr ""
683710
684−#: qml/Wizard/Pages/passwd-set.qml:68
685−msgid "Passphrase must be 4 characters long"
686−msgstr "يجب أن تحتوي العبارة السرية على 4 أحرف على الأقل"
711+#: qml/Wizard/Pages/password-set.qml:103
712+msgid "Confirm password"
713+msgstr ""
687714
688−#. Translators: This is the arrow for "Back" buttons
689−#: qml/Wizard/StackButton.qml:39
690−#, qt-format
691−msgid "〈 %1"
715+#: qml/Wizard/Pages/sim.qml:27
716+msgid "No SIM card installed"
692717msgstr ""
693718
694−#. Translators: This is the arrow for "Forward" buttons
695−#: qml/Wizard/StackButton.qml:42
696−#, qt-format
697−msgid "%1 〉"
719+#: qml/Wizard/Pages/sim.qml:54
720+msgid "SIM card added"
721+msgstr ""
722+
723+#: qml/Wizard/Pages/sim.qml:55
724+msgid "You must restart the device to access the mobile network."
725+msgstr ""
726+
727+#: qml/Wizard/Pages/sim.qml:59
728+msgid "Restart"
729+msgstr ""
730+
731+#: qml/Wizard/Pages/sim.qml:78
732+msgid "You won’t be able to make calls or use text messaging without a SIM."
733+msgstr ""
734+
735+#: qml/Wizard/Pages/sim.qml:90
736+msgid "To proceed with no SIM tap Skip."
737+msgstr ""
738+
739+#: qml/Wizard/PasswordMeter.qml:87
740+msgid "Passwords match"
741+msgstr ""
742+
743+#: qml/Wizard/PasswordMeter.qml:89
744+msgid "Passwords do not match"
745+msgstr ""
746+
747+#: qml/Wizard/PasswordMeter.qml:93
748+msgid "Strong password"
749+msgstr ""
750+
751+#: qml/Wizard/PasswordMeter.qml:95
752+msgid "Fair password"
753+msgstr ""
754+
755+#: qml/Wizard/PasswordMeter.qml:97
756+msgid "Weak password"
757+msgstr ""
758+
759+#: qml/Wizard/PasswordMeter.qml:99
760+msgid "Very weak password"
698761msgstr ""
699762
700763#~ msgid "Confirm"
@@ -783,14 +846,179 @@ msgstr ""
783846#~ msgid "Tomorrow %H:%M"
784847#~ msgstr "غدًا %H:%M"
785848
849+#~ msgid "Are you sure you want to shut down?"
850+#~ msgstr "هل أنت متأكد من رغبتك في إطفاء الجهاز؟"
851+
852+#~ msgctxt "Button: Shut down the system"
853+#~ msgid "Shut down"
854+#~ msgstr "إطفاء الجهاز"
855+
856+#~ msgctxt "Title: Reboot/Shut down dialog"
857+#~ msgid "Shut down"
858+#~ msgstr "إطفاء الجهاز"
859+
860+#~ msgctxt "Button: Reboot the system"
861+#~ msgid "Reboot"
862+#~ msgstr "إعادة التشغيل"
863+
786864#~ msgid "Please re-enter"
787865#~ msgstr "برجاء إعادة إدخالها"
788866
867+#~ msgid "This action does different things for different apps"
868+#~ msgstr "هذا الإجراء يقوم بأشياء مختلفة على التطبيقات المختلفة"
869+
870+#~ msgid "These are the shortcuts to favorite apps"
871+#~ msgstr "هذه اختصارات للتطبيقات المُفضلة"
872+
873+#~ msgid "Roaming"
874+#~ msgstr "التجوال"
875+
876+#~ msgid "Short swipe from the left edge."
877+#~ msgstr "اسحب سحبة قصيرة من الحافة اليسرى."
878+
879+#~ msgid "Tap here to continue."
880+#~ msgstr "انقر هنا للمتابعة."
881+
882+#~ msgid "Swipe up from the bottom edge."
883+#~ msgstr "اسحب لأعلى من الحافة السفلى."
884+
885+#~ msgid "Open special menus"
886+#~ msgstr "فتح قوائم خاصة"
887+
888+#~ msgid "Tap here to finish."
889+#~ msgstr "انقر هنا للإنهاء."
890+
891+#~ msgid "Long swipe from the right edge."
892+#~ msgstr "سحبة طويلة من الحافة اليمنى."
893+
894+#~ msgid "View all your running tasks."
895+#~ msgstr "عرض جميع المهام النشطة."
896+
897+#~ msgid "Confirm passphrase"
898+#~ msgstr "تأكيد العبارة السرية"
899+
900+#~ msgid "Try again."
901+#~ msgstr "حاول مجددًا."
902+
903+#~ msgid "Please try again."
904+#~ msgstr "حاول مجددا."
905+
906+#~ msgid "Lock security"
907+#~ msgstr "قِفل الأمان"
908+
909+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
910+#~ msgstr ""
911+#~ "بدونها لن تتمكن من إجراء أي مكالمات هاتفية أو استخدام الرسائل النصية."
912+
913+#~ msgid "Add a SIM card and restart your device"
914+#~ msgstr "أدخِل شريحة SIM ثم أعِد تشغيل الجهاز"
915+
916+#~ msgid "Hi!"
917+#~ msgstr "أهلا!"
918+
789919#~ msgid "Welcome to your Ubuntu phone."
790920#~ msgstr "مرحبا بك في أوبونتو للهواتف."
791921
922+#~ msgid "Let’s get started."
923+#~ msgstr "هيا بنا نبدأ."
924+
925+#~ msgid "Continue"
926+#~ msgstr "متابعة"
927+
928+#~ msgid "Choose your passcode"
929+#~ msgstr "اختر الرمز السري خاصتك"
930+
931+#~ msgid "Passphrase must be 4 characters long"
932+#~ msgstr "يجب أن تحتوي العبارة السرية على 4 أحرف على الأقل"
933+
934+#~ msgid "Available networks…"
935+#~ msgstr "الشبكات المتاحة..."
936+
792937#~ msgid "Please select how you’d like to unlock your phone."
793938#~ msgstr "رجاءً اختر الطريقة التي ترغب بأن توصد هاتفك بها."
794939
940+#~ msgctxt "Label: Description of security method"
941+#~ msgid "No security"
942+#~ msgstr "بدون أمان"
943+
944+#~ msgctxt "Label: Type of security method"
945+#~ msgid "Swipe"
946+#~ msgstr "سحبة"
947+
948+#~ msgctxt "Label: Description of security method"
949+#~ msgid "4 digits only"
950+#~ msgstr "4 أرقام فقط"
951+
952+#~ msgctxt "Label: Type of security method"
953+#~ msgid "Passcode"
954+#~ msgstr "رمز سري"
955+
956+#~ msgid "No available networks."
957+#~ msgstr "لا توجد شبكات متاحة."
958+
959+#~ msgctxt "Label: Type of security method"
960+#~ msgid "Passphrase"
961+#~ msgstr "عبارة سرية"
962+
963+#~ msgctxt "Label: Description of security method"
964+#~ msgid "Numbers and letters"
965+#~ msgstr "أرقام وحروف"
966+
967+#~ msgid "Improving your experience"
968+#~ msgstr "تحسين تجربتك"
969+
970+#~ msgid "You can change your mind later in <b>System Settings</b>."
971+#~ msgstr "يمكنك تغيير رأيك في وقت لاحق عن طريق <b>إعدادات النظام</b>."
972+
973+#~ msgid "Location"
974+#~ msgstr "الموقع"
975+
976+#~ msgid "Let the phone detect your location:"
977+#~ msgstr "دع هاتفك يحدد موقعك:"
978+
979+#~ msgid "Using GPS only (less accurate)"
980+#~ msgstr "باستخدام نظام تحديد المواقع (GPS) فقط (أقل دقّة)"
981+
982+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
983+#~ msgstr ""
984+#~ "باستخدام نظام تحديد المواقع (GPS)، والواي فاي، وبيانات الشبكة الخلوية "
985+#~ "(مستحسن)"
986+
987+#~ msgid ""
988+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
989+#~ "Privacy</b>"
990+#~ msgstr ""
991+#~ "يمكن تعطيل ذلك بالذهاب إلى <b>إعدادات النظام</b> من خلال <b>الأمان "
992+#~ "والخصوصية</b>"
993+
994+#~ msgid "Nice work!"
995+#~ msgstr "عمل جيد!"
996+
997+#~ msgid "All done"
998+#~ msgstr "تم ذلك"
999+
1000+#~ msgid "Finish"
1001+#~ msgstr "إنهاء"
1002+
7951003#~ msgid "Your phone is now ready to use."
7961004#~ msgstr "هاتفك جاهز الآن للاستخدام."
1005+
1006+#~ msgid "You almost got it!"
1007+#~ msgstr "انت حصلت على ذلك تقريبا!"
1008+
1009+#~ msgid ""
1010+#~ "Your phone is set up to automatically report errors to Canonical and its "
1011+#~ "partners, the makers of the operating system."
1012+#~ msgstr ""
1013+#~ "هاتفك مُعدّ لإرسال تقارير آلية بالأخطاء إلى كانونيكال وشركائها (صانعي نظام "
1014+#~ "التشغيل)."
1015+
1016+#~ msgid "Unlock SIM"
1017+#~ msgstr "فتح قفل بطاقة SIM"
1018+
1019+#~ msgid ""
1020+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1021+#~ "conditions</a>."
1022+#~ msgstr ""
1023+#~ "باختيارك لهذا الخيار فإنك توافق على <a href='#'>الشروط والأحكام</a> الخاصة "
1024+#~ "بـ Nokia HERE."
po/ast.po+506−264
@@ -7,31 +7,31 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
11−"PO-Revision-Date: 2015-10-06 12:07+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
11+"PO-Revision-Date: 2016-04-17 16:57+0000\n"
1212"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
1313"Language-Team: Asturian <ast@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-04-18 05:42+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Contraseña: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
2727msgid "Pin shortcut"
2828msgstr "Anclar atayu"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
3131msgid "Quit"
3232msgstr "Colar"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
3535msgid "Unpin shortcut"
3636msgstr "Desanclar atayu"
3737
@@ -74,53 +74,35 @@ msgctxt "Button: Log out from the system"
7474msgid "Log Out"
7575msgstr "Zarrar sesión"
7676
77−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
78−#: qml/Components/Dialogs.qml:253
77+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
78+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
79+#: qml/Wizard/Pages/passcode-set.qml:32
7980msgid "Cancel"
8081msgstr "Encaboxar"
8182
8283#: qml/Components/Dialogs.qml:173
83−msgctxt "Title: Reboot/Shut down dialog"
84−msgid "Shut down"
85−msgstr "Apagáu"
86−
87−#: qml/Components/Dialogs.qml:174
88−msgid "Are you sure you want to shut down?"
89−msgstr "¿De xuru que quies apagar?"
90−
91−#: qml/Components/Dialogs.qml:176
92−msgctxt "Button: Reboot the system"
93−msgid "Reboot"
94−msgstr "Reaniciar"
95−
96−#: qml/Components/Dialogs.qml:185
97−msgctxt "Button: Shut down the system"
98−msgid "Shut down"
99−msgstr "Apagar"
100−
101−#: qml/Components/Dialogs.qml:207
10284msgctxt "Title: Reboot dialog"
10385msgid "Reboot"
10486msgstr "Reaniciu"
10587
106−#: qml/Components/Dialogs.qml:208
88+#: qml/Components/Dialogs.qml:174
10789msgid "Are you sure you want to reboot?"
10890msgstr "¿De xuru que quies reaniciar?"
10991
110−#: qml/Components/Dialogs.qml:210
92+#: qml/Components/Dialogs.qml:176
11193msgid "No"
11294msgstr "Non"
11395
114−#: qml/Components/Dialogs.qml:217
96+#: qml/Components/Dialogs.qml:183
11597msgid "Yes"
11698msgstr "Sí"
11799
118−#: qml/Components/Dialogs.qml:232
100+#: qml/Components/Dialogs.qml:198
119101msgctxt "Title: Power off/Restart dialog"
120102msgid "Power"
121103msgstr "Apagáu"
122104
123−#: qml/Components/Dialogs.qml:233
105+#: qml/Components/Dialogs.qml:199
124106msgid ""
125107"Are you sure you would like\n"
126108"to power off?"
@@ -128,88 +110,106 @@ msgstr ""
128110"¿De xuru que te prestaría\n"
129111"apagar?"
130112
131−#: qml/Components/Dialogs.qml:235
113+#: qml/Components/Dialogs.qml:201
132114msgctxt "Button: Power off the system"
133115msgid "Power off"
134116msgstr "Apagar"
135117
136−#: qml/Components/Dialogs.qml:244
118+#: qml/Components/Dialogs.qml:210
137119msgctxt "Button: Restart the system"
138120msgid "Restart"
139121msgstr "Reaniciar"
140122
141−#: qml/Components/Lockscreen.qml:245
123+#: qml/Components/Lockscreen.qml:231
142124msgid "Return to Call"
143125msgstr "Tornar a la llamada"
144126
145−#: qml/Components/Lockscreen.qml:245
127+#: qml/Components/Lockscreen.qml:231
146128msgid "Emergency Call"
147129msgstr "Llamada d'emerxencia"
148130
149−#: qml/Components/Lockscreen.qml:277
131+#: qml/Components/Lockscreen.qml:263
150132msgid "OK"
151133msgstr "Aceutar"
152134
153135#: qml/Components/ModeSwitchWarningDialog.qml:32
154136msgid "Apps may have unsaved data:"
155−msgstr ""
137+msgstr "Apps que pueden tener datos sin guardar:"
156138
157139#: qml/Components/ModeSwitchWarningDialog.qml:57
140+msgctxt ""
141+"Re-dock means connect the device again to an external screen/mouse/keyboard"
158142msgid "Re-dock, save your work and close these apps to continue."
159143msgstr ""
160144
161145#: qml/Components/ModeSwitchWarningDialog.qml:63
162146msgid "Or force close now (unsaved data will be lost)."
163−msgstr ""
147+msgstr "O fuerza salir agora (perderás tolos datos sin guardar)."
164148
165149#: qml/Components/ModeSwitchWarningDialog.qml:75
166150msgid "OK, I will reconnect"
167−msgstr ""
151+msgstr "D'alcuerdu, reconeutaré"
168152
169153#: qml/Components/ModeSwitchWarningDialog.qml:76
170154msgid "Reconnect now!"
171−msgstr ""
155+msgstr "Reconeutar agora."
172156
173157#: qml/Components/ModeSwitchWarningDialog.qml:88
174158msgid "Close all"
175−msgstr ""
159+msgstr "Zarrar too"
176160
177−#: qml/Dash/DashPageHeader.qml:266
161+#: qml/Dash/DashPageHeader.qml:337
178162msgctxt "Button: Open the Ubuntu Store"
179163msgid "Store"
180164msgstr "Tienda"
181165
182−#: qml/Dash/DashPageHeader.qml:273
166+#: qml/Dash/DashPageHeader.qml:344
183167msgctxt "Button: Start a search in the current dash scope"
184168msgid "Search"
185169msgstr "Guetar"
186170
187−#: qml/Dash/DashPageHeader.qml:283
171+#: qml/Dash/DashPageHeader.qml:354
188172msgctxt "Button: Show the current dash scope settings"
189173msgid "Settings"
190174msgstr "Axustes"
191175
192−#: qml/Dash/DashPageHeader.qml:290
176+#: qml/Dash/DashPageHeader.qml:361
193177msgid "Remove from Favorites"
194178msgstr "Desaniciar de favoritos"
195179
196−#: qml/Dash/DashPageHeader.qml:290
180+#: qml/Dash/DashPageHeader.qml:361
197181msgid "Add to Favorites"
198182msgstr "Amestar a favoritos"
199183
200−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
184+#: qml/Dash/FiltersPopover.qml:60
185+msgid "Refine your results"
186+msgstr ""
187+
188+#: qml/Dash/FiltersPopover.qml:69
189+msgid "Reset"
190+msgstr "Reafitar"
191+
192+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
201193msgid "See less"
202194msgstr "Ver menos"
203195
204−#: qml/Dash/GenericScopeView.qml:587
196+#: qml/Dash/GenericScopeView.qml:570
205197msgid "See all"
206198msgstr "Ver too"
207199
208−#: qml/Dash/GenericScopeView.qml:649
200+#: qml/Dash/GenericScopeView.qml:627
209201msgctxt "Label: Hint for dash search line edit"
210202msgid "Search"
211203msgstr "Guetar"
212204
205+#: qml/Dash/PageHeaderExtraPanel.qml:55
206+msgid "Recent Searches"
207+msgstr ""
208+
209+#: qml/Dash/PageHeaderExtraPanel.qml:66
210+msgid "Clear All"
211+msgstr "Llimpiar too"
212+
213213#: qml/Dash/Previews/PreviewActionCombo.qml:35
214214msgid "More..."
215215msgstr "Más…"
@@ -231,9 +231,9 @@ msgstr "Valorar esto"
231231msgid "Add a review"
232232msgstr "Amestar una reseña"
233233
234−#: qml/Dash/Previews/PreviewSharing.qml:50
234+#: qml/Dash/Previews/PreviewSharing.qml:66
235235msgid "Preview Share Item"
236−msgstr ""
236+msgstr "Entever l'elementu compartíu"
237237
238238#: qml/Dash/PullToRefreshScopeStyle.qml:55
239239msgid "Pull to refresh…"
@@ -259,13 +259,13 @@ msgstr "Aniciu"
259259msgid "Also installed"
260260msgstr "Tamién instalaos"
261261
262−#: qml/DisabledScreenNotice.qml:87
262+#: qml/DisabledScreenNotice.qml:104
263263msgid ""
264264"Your device is now connected to an external display. Use this screen as a "
265−"touch pad to interact with the mouse."
265+"touch pad to interact with the pointer."
266266msgstr ""
267267
268−#: qml/Greeter/CoverPage.qml:107
268+#: qml/Greeter/CoverPage.qml:118
269269msgid "Unlock"
270270msgstr "Desbloquiar"
271271
@@ -277,11 +277,11 @@ msgstr "Reintentar"
277277msgid "Tap to unlock"
278278msgstr "Calca pa desbloquiar"
279279
280−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
280+#: qml/Greeter/NarrowView.qml:54
281281msgid "Sorry, incorrect passphrase."
282282msgstr "Perdón, fras de pasu incorreuta"
283283
284−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
284+#: qml/Greeter/NarrowView.qml:55
285285msgid "Sorry, incorrect passcode."
286286msgstr "Perdón, códigu de pasu incorreutu."
287287
@@ -310,7 +310,7 @@ msgstr ""
310310msgid "Enter %1"
311311msgstr "Introduz %1"
312312
313−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
313+#: qml/Greeter/NarrowView.qml:117
314314msgid "Enter passphrase"
315315msgstr "Introduz la fras de pasu"
316316
@@ -348,62 +348,62 @@ msgstr "Toca pa tornar a la llamada..."
348348msgid "Conference"
349349msgstr "Conferencia"
350350
351−#: qml/Panel/Indicators/MenuItemFactory.qml:753
351+#: qml/Panel/Indicators/MenuItemFactory.qml:761
352352msgid "Nothing is playing"
353353msgstr "Nun ta reproduciéndose nada"
354354
355−#: qml/Panel/Indicators/MenuItemFactory.qml:882
355+#: qml/Panel/Indicators/MenuItemFactory.qml:890
356356#, qt-format
357357msgid "%1 hour"
358358msgid_plural "%1 hours"
359359msgstr[0] "%1 hora"
360360msgstr[1] "%1 hores"
361361
362−#: qml/Panel/Indicators/MenuItemFactory.qml:886
362+#: qml/Panel/Indicators/MenuItemFactory.qml:894
363363#, qt-format
364364msgid "%1 minute"
365365msgid_plural "%1 minutes"
366366msgstr[0] "%1 minutu"
367367msgstr[1] "%1 minutos"
368368
369−#: qml/Panel/Indicators/MenuItemFactory.qml:891
369+#: qml/Panel/Indicators/MenuItemFactory.qml:899
370370#, qt-format
371371msgid "%1 second"
372372msgid_plural "%1 seconds"
373373msgstr[0] "%1 segundu"
374374msgstr[1] "%1 segundos"
375375
376−#: qml/Panel/Indicators/MenuItemFactory.qml:894
376+#: qml/Panel/Indicators/MenuItemFactory.qml:902
377377msgid "0 seconds"
378378msgstr "0 segundos"
379379
380380#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
381−#: qml/Panel/Indicators/MenuItemFactory.qml:896
381+#: qml/Panel/Indicators/MenuItemFactory.qml:904
382382#, qt-format
383383msgid "%1 remaining"
384384msgstr "Queden %1"
385385
386−#: qml/Panel/Indicators/MenuItemFactory.qml:902
386+#: qml/Panel/Indicators/MenuItemFactory.qml:910
387387msgid "In queue…"
388388msgstr "Na cola..."
389389
390−#: qml/Panel/Indicators/MenuItemFactory.qml:906
390+#: qml/Panel/Indicators/MenuItemFactory.qml:914
391391msgid "Downloading"
392392msgstr "Baxando"
393393
394−#: qml/Panel/Indicators/MenuItemFactory.qml:908
394+#: qml/Panel/Indicators/MenuItemFactory.qml:916
395395msgid "Paused, tap to resume"
396396msgstr "Posáu, toca pa reanudar"
397397
398−#: qml/Panel/Indicators/MenuItemFactory.qml:910
398+#: qml/Panel/Indicators/MenuItemFactory.qml:918
399399msgid "Canceled"
400400msgstr "Encaboxáu"
401401
402−#: qml/Panel/Indicators/MenuItemFactory.qml:912
402+#: qml/Panel/Indicators/MenuItemFactory.qml:920
403403msgid "Finished"
404404msgstr "Finó"
405405
406−#: qml/Panel/Indicators/MenuItemFactory.qml:914
406+#: qml/Panel/Indicators/MenuItemFactory.qml:922
407407msgid "Failed, tap to retry"
408408msgstr "Falló, toca pa reintentar"
409409
@@ -411,7 +411,7 @@ msgstr "Falló, toca pa reintentar"
411411#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
412412msgctxt "Button: Send a reply message"
413413msgid "Send"
414−msgstr ""
414+msgstr "Unviar"
415415
416416#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
417417msgctxt "Label: Hint in message indicator line edit"
@@ -421,261 +421,326 @@ msgstr "Responder"
421421#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
422422msgctxt "Button: Call back on phone"
423423msgid "Call back"
424−msgstr ""
425−
426−#: qml/Panel/Indicators/ModemInfoItem.qml:105
427−msgid "Unlock SIM"
428−msgstr "Desbloquiar SIM"
424+msgstr "Devolver llamada"
429425
430−#: qml/Panel/Indicators/RoamingIndication.qml:27
431−msgid "Roaming"
432−msgstr "Roaming"
433−
434−#: qml/Tutorial/TutorialBottom.qml:28
435−msgid "Open special menus"
436−msgstr "Abrir menús especiales"
437−
438−#: qml/Tutorial/TutorialBottom.qml:29
439−msgid "Swipe up from the bottom edge."
440−msgstr "Esliza dende'l berbesu d'embaxo."
426+#: qml/Stages/SideStage.qml:76
427+msgid "Drag using 3 fingers any application from one window to the other"
428+msgstr ""
441429
442−#: qml/Tutorial/TutorialBottomFinish.qml:24
443−msgid "This action does different things for different apps"
444−msgstr "Esta aición fai coses distintes p'aplicaciones estremaes"
430+#: qml/Tutorial/TutorialBottom.qml:78
431+msgid "Swipe up to add a contact"
432+msgstr ""
445433
446−#: qml/Tutorial/TutorialBottomFinish.qml:25
447−msgid "Tap here to finish."
448−msgstr "Toca equí pa finar."
434+#: qml/Tutorial/TutorialBottom.qml:80
435+msgid "Swipe up for favorite calculations"
436+msgstr ""
449437
450−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
451−#: qml/Tutorial/TutorialRight.qml:144
452−msgid "Tap here to continue."
453−msgstr "Toca equí pa siguir."
438+#: qml/Tutorial/TutorialBottom.qml:82
439+msgid "Swipe up for recent calls"
440+msgstr ""
454441
455−#: qml/Tutorial/TutorialLeft.qml:26
456−msgid "Open the launcher"
457−msgstr "Abrir el llanzador"
442+#: qml/Tutorial/TutorialBottom.qml:84
443+msgid "Swipe up to create a message"
444+msgstr ""
458445
459−#: qml/Tutorial/TutorialLeft.qml:27
460−msgid "Short swipe from the left edge."
461−msgstr "Esliza un poco dende'l berbesu esquierdu."
446+#: qml/Tutorial/TutorialBottom.qml:85
447+msgid "Swipe up to manage the app"
448+msgstr ""
462449
463−#: qml/Tutorial/TutorialLeftFinish.qml:24
464−msgid "These are the shortcuts to favorite apps"
465−msgstr "Estos son los atayos a les aplicaciones favorites"
450+#: qml/Tutorial/TutorialLeft.qml:47
451+msgid "Swipe from the left edge to open the launcher"
452+msgstr ""
466453
467−#: qml/Tutorial/TutorialPage.qml:178
468−msgid "You almost got it!"
469−msgstr "¡Yá cuasi finamos!"
454+#: qml/Tutorial/TutorialLeftLong.qml:47
455+msgid "Long swipe from the left edge to open the Today scope"
456+msgstr ""
470457
471−#: qml/Tutorial/TutorialPage.qml:195
472−msgid "Try again."
473−msgstr "Intentar de nueves"
458+#: qml/Tutorial/TutorialRight.qml:54
459+msgid "Hover your mouse on the right edge to view your open apps"
460+msgstr ""
474461
475−#: qml/Tutorial/TutorialRight.qml:31
476−msgid "To view open apps"
477−msgstr "Pa ver aplicaciones abiertes"
462+#: qml/Tutorial/TutorialRight.qml:55
463+msgid "Short or long swipe from the right edge to view your open apps"
464+msgstr ""
478465
479−#: qml/Tutorial/TutorialRight.qml:32
480−msgid "Long swipe from the right edge."
481−msgstr "Eslizamientu llargu dende'l berbesu drechu."
466+#: qml/Tutorial/TutorialTop.qml:53
467+msgid "Swipe from the top right edge to open the notification bar"
468+msgstr ""
482469
483−#: qml/Tutorial/TutorialRight.qml:122
484−msgid "View all your running tasks."
485−msgstr "Mira toles tos aplicaciones n'execución."
470+#: qml/Tutorial/TutorialTop.qml:54
471+msgid "Swipe from the top edge to open the notification bar"
472+msgstr ""
486473
487−#: qml/Wizard/Page.qml:89
474+#: qml/Wizard/Page.qml:54
488475msgctxt "Button: Go back one page in the Wizard"
489476msgid "Back"
490477msgstr "Atrás"
491478
492479#: qml/Wizard/Pages/10-welcome.qml:27
493−msgid "Hi!"
494−msgstr "¡Hola!"
495−
496−#: qml/Wizard/Pages/10-welcome.qml:44
497−msgid "Welcome to your Ubuntu device."
498−msgstr ""
499−
500−#: qml/Wizard/Pages/10-welcome.qml:52
501−msgid "Let’s get started."
502−msgstr "Entamemos."
480+msgid "Language"
481+msgstr "Llingua"
482+
483+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
484+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
485+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
486+#: qml/Wizard/Pages/75-report-check.qml:84
487+#: qml/Wizard/Pages/passcode-desktop.qml:124
488+#: qml/Wizard/Pages/password-set.qml:141
489+msgid "Next"
490+msgstr "Siguiente"
491+
492+#: qml/Wizard/Pages/30-wifi.qml:29
493+msgid "Connect to Wi‑Fi"
494+msgstr "Coneutase al WiFi"
503495
504−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
505−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
506−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
507−#: qml/Wizard/Pages/passwd-set.qml:90
508−msgid "Continue"
509−msgstr "Siguir"
496+#: qml/Wizard/Pages/30-wifi.qml:130
497+msgid "Connected"
498+msgstr "Coneutáu"
510499
511−#: qml/Wizard/Pages/20-sim.qml:25
512−msgid "Add a SIM card and restart your device"
513−msgstr "Amiesta una tarxeta SIM y reanicia'l to preséu"
500+#: qml/Wizard/Pages/30-wifi.qml:163
501+msgid "Available Wi-Fi networks"
502+msgstr "Redes Wi-Fi disponibles"
514503
515−#: qml/Wizard/Pages/20-sim.qml:59
516−msgid "Without it, you won’t be able to make calls or use text messaging."
517−msgstr "Ensin ella, nun vas poder facer llamaes nin unviar mensaxes."
504+#: qml/Wizard/Pages/30-wifi.qml:164
505+msgid "No available Wi-Fi networks"
506+msgstr "Nun hai redes Wi-Fi disponibles"
518507
519−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
508+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
509+#: qml/Wizard/Pages/sim.qml:101
520510msgid "Skip"
521511msgstr "Saltar"
522512
523−#: qml/Wizard/Pages/30-passwd-type.qml:39
524−msgid "Lock security"
525−msgstr "Seguranza del bloquéu"
513+#: qml/Wizard/Pages/40-location.qml:27
514+msgid "Location Services"
515+msgstr ""
526516
527−#: qml/Wizard/Pages/30-passwd-type.qml:79
528−msgid "Please select how you’d like to unlock your device."
517+#: qml/Wizard/Pages/40-location.qml:83
518+msgid ""
519+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
520+"(recommended)"
529521msgstr ""
530522
531−#: qml/Wizard/Pages/30-passwd-type.qml:102
532−msgctxt "Label: Type of security method"
533−msgid "Swipe"
534−msgstr "Eslizar"
523+#: qml/Wizard/Pages/40-location.qml:105
524+#, qt-format
525+msgid "By selecting this option you agree to the Nokia HERE %1."
526+msgstr ""
535527
536−#: qml/Wizard/Pages/30-passwd-type.qml:103
537−msgctxt "Label: Description of security method"
538−msgid "No security"
539−msgstr "Ensin seguranza"
528+#: qml/Wizard/Pages/40-location.qml:106
529+msgctxt "part of: Nokia HERE terms and conditions"
530+msgid "terms and conditions"
531+msgstr ""
540532
541−#: qml/Wizard/Pages/30-passwd-type.qml:105
533+#: qml/Wizard/Pages/40-location.qml:160
534+msgid "GPS only"
535+msgstr ""
536+
537+#: qml/Wizard/Pages/40-location.qml:214
538+msgid "Don't use my location"
539+msgstr ""
540+
541+#: qml/Wizard/Pages/40-location.qml:260
542+msgid "You can change it later in System Settings."
543+msgstr ""
544+
545+#: qml/Wizard/Pages/50-timezone.qml:29
546+msgid "Time Zone"
547+msgstr "Estaya horaria"
548+
549+#: qml/Wizard/Pages/50-timezone.qml:178
550+msgid "Enter your city"
551+msgstr "Escribe la ciudá"
552+
553+#: qml/Wizard/Pages/60-account.qml:24
554+msgid "Personalize Your Device"
555+msgstr "Personaliza'l preséu"
556+
557+#: qml/Wizard/Pages/60-account.qml:48
558+msgid "Preferred Name"
559+msgstr "Nome preferíu"
560+
561+#: qml/Wizard/Pages/70-passwd-type.qml:39
562+msgid "Lock Screen"
563+msgstr "Bloquiar pantalla"
564+
565+#: qml/Wizard/Pages/70-passwd-type.qml:101
542566msgctxt "Label: Type of security method"
543−msgid "Passcode"
544−msgstr "Códigu de pasu"
567+msgid "Create new password"
568+msgstr ""
545569
546−#: qml/Wizard/Pages/30-passwd-type.qml:106
547−msgctxt "Label: Description of security method"
548−msgid "4 digits only"
549−msgstr "Namái 4 díxitos"
570+#: qml/Wizard/Pages/70-passwd-type.qml:103
571+msgctxt "Label: Type of security method"
572+msgid "Create passcode (numbers only)"
573+msgstr ""
550574
551−#: qml/Wizard/Pages/30-passwd-type.qml:108
575+#: qml/Wizard/Pages/70-passwd-type.qml:105
552576msgctxt "Label: Type of security method"
553−msgid "Passphrase"
554−msgstr "Fras de pasu"
577+msgid "No lock code"
578+msgstr ""
555579
556−#: qml/Wizard/Pages/30-passwd-type.qml:109
557−msgctxt "Label: Description of security method"
558−msgid "Numbers and letters"
559−msgstr "Númberos y lletres"
580+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
581+msgid "Privacy Policy"
582+msgstr ""
560583
561−#: qml/Wizard/Pages/40-wifi.qml:29
562−msgid "Connect to Wi‑Fi"
563−msgstr "Coneutase al WiFi"
584+#: qml/Wizard/Pages/75-report-check.qml:26
585+msgid "Help Us Improve"
586+msgstr ""
564587
565−#: qml/Wizard/Pages/40-wifi.qml:168
566−msgid "Available networks…"
567−msgstr "Redes disponibles..."
588+#: qml/Wizard/Pages/75-report-check.qml:59
589+msgid "Improve system performance by sending us crashes and error reports."
590+msgstr ""
591+
592+#: qml/Wizard/Pages/75-report-check.qml:60
593+msgid "Privacy policy"
594+msgstr ""
568595
569−#: qml/Wizard/Pages/40-wifi.qml:169
570−msgid "No available networks."
571−msgstr "Nun hai redes disponibles"
596+#: qml/Wizard/Pages/80-finished.qml:89
597+msgid "Welcome to Ubuntu"
598+msgstr "Bienveníu/a a Ubuntu"
572599
573−#: qml/Wizard/Pages/50-location.qml:27
574−msgid "Location"
575−msgstr "Allugamientu"
600+#: qml/Wizard/Pages/80-finished.qml:104
601+msgid "You are ready to use your device now"
602+msgstr ""
576603
577−#: qml/Wizard/Pages/50-location.qml:62
578−msgid "Let the phone detect your location:"
579−msgstr "Dexar al teléfonu deteutar l'allugamientu:"
604+#: qml/Wizard/Pages/80-finished.qml:124
605+msgid "Get Started"
606+msgstr "Primeros pasos"
580607
581−#: qml/Wizard/Pages/50-location.qml:69
582−msgid "Using GPS only (less accurate)"
583−msgstr "Namái usando GPS (menos precisión)"
608+#: qml/Wizard/Pages/here-terms.qml:25
609+msgid "Terms & Conditions"
610+msgstr "Términos y condiciones"
584611
585−#: qml/Wizard/Pages/50-location.qml:86
586−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
612+#: qml/Wizard/Pages/here-terms.qml:69
613+msgid "Your device uses positioning technologies provided by HERE."
587614msgstr ""
588−"Usando GPS, Wi-fi anónimes ya información de redes móviles (aconseyao)"
589615
590−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
591−#: qml/Wizard/Pages/50-location.qml:103
616+#: qml/Wizard/Pages/here-terms.qml:81
592617msgid ""
593−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
594−"conditions</a>."
618+"To provide you with positioning services and to improve their quality, HERE "
619+"collects information about nearby cell towers and Wi-Fi hotspots around your "
620+"current location whenever your position is being found."
595621msgstr ""
596−"Esbillando esta opción aceutes los <a href='#'>términos y condiciones</a> de "
597−"Nokia HERE."
598622
599−#: qml/Wizard/Pages/50-location.qml:112
600−msgid "Not at all"
601−msgstr "De nengún mou"
623+#: qml/Wizard/Pages/here-terms.qml:93
624+msgid ""
625+"The information collected is used to analyze the service and to improve the "
626+"use of service, but not to identify you personally."
627+msgstr ""
602628
603−#: qml/Wizard/Pages/50-location.qml:124
604−msgid "You can change your mind later in <b>System Settings</b>."
605−msgstr "Pues cambialo dempués n'<b>Axustes del sistema</b>."
629+#: qml/Wizard/Pages/here-terms.qml:106
630+#, qt-format
631+msgid "By continuing, you agree to the HERE platform %1 and %2."
632+msgstr ""
606633
607−#: qml/Wizard/Pages/60-reporting.qml:26
608−msgid "Improving your experience"
609−msgstr "Ameyorando la to esperiencia"
634+#: qml/Wizard/Pages/here-terms.qml:107
635+msgid "Service Terms"
636+msgstr ""
610637
611−#: qml/Wizard/Pages/60-reporting.qml:46
612−msgid ""
613−"Your phone is set up to automatically report errors to Canonical and its "
614−"partners, the makers of the operating system."
638+#: qml/Wizard/Pages/passcode-confirm.qml:43
639+#: qml/Wizard/Pages/passcode-desktop.qml:80
640+msgid "Confirm passcode"
641+msgstr "Confirmar códigu de pasu"
642+
643+#: qml/Wizard/Pages/passcode-confirm.qml:45
644+msgid "Incorrect passcode."
615645msgstr ""
616−"El teléfonu ta configuráu pa informar automáticamente de los fallos a "
617−"Canonical y asociaos, los fabricantes del sistema operativu."
618646
619−#: qml/Wizard/Pages/60-reporting.qml:53
620−msgid ""
621−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
622−"Privacy</b>"
647+#: qml/Wizard/Pages/passcode-confirm.qml:45
648+msgctxt "Enter the passcode again"
649+msgid "Please re-enter."
623650msgstr ""
624−"Esto pue deshabilitase nos <b>Axustes del sistema</b> en <b>Seguranza y "
625−"privacidá</b>"
626651
627−#: qml/Wizard/Pages/80-finished.qml:24
628−msgid "All done"
629−msgstr "Too fecho"
652+#: qml/Wizard/Pages/passcode-desktop.qml:30
653+msgid "Lock Screen Passcode"
654+msgstr ""
630655
631−#: qml/Wizard/Pages/80-finished.qml:39
632−msgid "Nice work!"
633−msgstr "¡Bon trabayu!"
656+#: qml/Wizard/Pages/passcode-desktop.qml:56
657+msgid "Enter 4 numbers to setup your passcode"
658+msgstr ""
634659
635−#: qml/Wizard/Pages/80-finished.qml:46
636−msgid "Your device is now ready to use."
660+#: qml/Wizard/Pages/passcode-desktop.qml:65
661+#: qml/Wizard/Pages/passcode-set.qml:54
662+msgid "Choose passcode"
637663msgstr ""
638664
639−#: qml/Wizard/Pages/80-finished.qml:53
640−msgid "Finish"
641−msgstr "Finar"
665+#: qml/Wizard/Pages/passcode-desktop.qml:105
666+msgid "Passcode too short"
667+msgstr ""
642668
643−#: qml/Wizard/Pages/here-terms.qml:27
644−msgid "Terms & Conditions"
645−msgstr "Términos y condiciones"
669+#: qml/Wizard/Pages/passcode-desktop.qml:107
670+msgid "Passcodes match"
671+msgstr ""
646672
647−#: qml/Wizard/Pages/passwd-confirm.qml:49
648−msgid "Confirm passphrase"
649−msgstr "Confirmar frase de pasu"
673+#: qml/Wizard/Pages/passcode-desktop.qml:109
674+msgid "Passcodes do not match"
675+msgstr ""
650676
651−#: qml/Wizard/Pages/passwd-confirm.qml:50
652−msgid "Confirm passcode"
653−msgstr "Confirmar códigu de pasu"
677+#: qml/Wizard/Pages/passcode-set.qml:62
678+msgid "Passcode must be 4 characters long"
679+msgstr ""
654680
655−#: qml/Wizard/Pages/passwd-confirm.qml:53
656−#: qml/Wizard/Pages/passwd-confirm.qml:54
657−msgid "Please try again."
658−msgstr "Por favor, vuelvi a intentalo."
681+#: qml/Wizard/Pages/password-set.qml:30
682+msgid "Lock Screen Password"
683+msgstr ""
659684
660−#: qml/Wizard/Pages/passwd-set.qml:61
661−msgid "Choose your passcode"
662−msgstr "Escueyi'l to códigu de pasu"
685+#: qml/Wizard/Pages/password-set.qml:61
686+msgid "Enter at least 8 characters"
687+msgstr ""
663688
664−#: qml/Wizard/Pages/passwd-set.qml:68
665−msgid "Passphrase must be 4 characters long"
666−msgstr "La fras de pasu tien de ser 4 caráuteres de llargor"
689+#: qml/Wizard/Pages/password-set.qml:73
690+msgid "Choose password"
691+msgstr ""
667692
668−#. Translators: This is the arrow for "Back" buttons
669−#: qml/Wizard/StackButton.qml:39
670−#, qt-format
671−msgid "〈 %1"
672−msgstr "〈 %1"
693+#: qml/Wizard/Pages/password-set.qml:103
694+msgid "Confirm password"
695+msgstr "Confirmar contraseña"
673696
674−#. Translators: This is the arrow for "Forward" buttons
675−#: qml/Wizard/StackButton.qml:42
676−#, qt-format
677−msgid "%1 〉"
678−msgstr "%1 〉"
697+#: qml/Wizard/Pages/sim.qml:27
698+msgid "No SIM card installed"
699+msgstr ""
700+
701+#: qml/Wizard/Pages/sim.qml:54
702+msgid "SIM card added"
703+msgstr ""
704+
705+#: qml/Wizard/Pages/sim.qml:55
706+msgid "You must restart the device to access the mobile network."
707+msgstr ""
708+
709+#: qml/Wizard/Pages/sim.qml:59
710+msgid "Restart"
711+msgstr "Reaniciar"
712+
713+#: qml/Wizard/Pages/sim.qml:78
714+msgid "You won’t be able to make calls or use text messaging without a SIM."
715+msgstr ""
716+
717+#: qml/Wizard/Pages/sim.qml:90
718+msgid "To proceed with no SIM tap Skip."
719+msgstr ""
720+
721+#: qml/Wizard/PasswordMeter.qml:87
722+msgid "Passwords match"
723+msgstr ""
724+
725+#: qml/Wizard/PasswordMeter.qml:89
726+msgid "Passwords do not match"
727+msgstr ""
728+
729+#: qml/Wizard/PasswordMeter.qml:93
730+msgid "Strong password"
731+msgstr "Contraseña fuerte"
732+
733+#: qml/Wizard/PasswordMeter.qml:95
734+msgid "Fair password"
735+msgstr "Contraseña aceutable"
736+
737+#: qml/Wizard/PasswordMeter.qml:97
738+msgid "Weak password"
739+msgstr "Contraseña feble"
740+
741+#: qml/Wizard/PasswordMeter.qml:99
742+msgid "Very weak password"
743+msgstr "Contraseña feble enforma"
679744
680745#~ msgid "Skip intro"
681746#~ msgstr "Omitir la intro"
@@ -761,27 +826,204 @@ msgstr "%1 〉"
761826#~ msgid "All"
762827#~ msgstr "Too"
763828
829+#~ msgid "Unlock SIM"
830+#~ msgstr "Desbloquiar SIM"
831+
764832#~ msgid "Store"
765833#~ msgstr "Tienda"
766834
767−#~ msgid "Restart"
768−#~ msgstr "Reaniciar"
835+#~ msgid "Roaming"
836+#~ msgstr "Roaming"
769837
770838#~ msgid "Manage Scopes"
771839#~ msgstr "Xestionar ámbitos"
772840
841+#~ msgid "Continue"
842+#~ msgstr "Siguir"
843+
844+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
845+#~ msgstr "Ensin ella, nun vas poder facer llamaes nin unviar mensaxes."
846+
847+#~ msgid "You can change your mind later in <b>System Settings</b>."
848+#~ msgstr "Pues cambialo dempués n'<b>Axustes del sistema</b>."
849+
850+#~ msgid "Available networks…"
851+#~ msgstr "Redes disponibles..."
852+
853+#~ msgid "No available networks."
854+#~ msgstr "Nun hai redes disponibles"
855+
856+#~ msgid "Using GPS only (less accurate)"
857+#~ msgstr "Namái usando GPS (menos precisión)"
858+
859+#~ msgid ""
860+#~ "Your phone is set up to automatically report errors to Canonical and its "
861+#~ "partners, the makers of the operating system."
862+#~ msgstr ""
863+#~ "El teléfonu ta configuráu pa informar automáticamente de los fallos a "
864+#~ "Canonical y asociaos, los fabricantes del sistema operativu."
865+
866+#~ msgid "All done"
867+#~ msgstr "Too fecho"
868+
869+#~ msgid "Finish"
870+#~ msgstr "Finar"
871+
872+#~ msgid "Not at all"
873+#~ msgstr "De nengún mou"
874+
875+#, qt-format
876+#~ msgid "〈 %1"
877+#~ msgstr "〈 %1"
878+
879+#, qt-format
880+#~ msgid "%1 〉"
881+#~ msgstr "%1 〉"
882+
883+#~ msgid "Open the launcher"
884+#~ msgstr "Abrir el llanzador"
885+
886+#~ msgid "Tap here to continue."
887+#~ msgstr "Toca equí pa siguir."
888+
889+#~ msgid "Open special menus"
890+#~ msgstr "Abrir menús especiales"
891+
892+#~ msgid "Tap here to finish."
893+#~ msgstr "Toca equí pa finar."
894+
895+#~ msgctxt "Button: Shut down the system"
896+#~ msgid "Shut down"
897+#~ msgstr "Apagar"
898+
899+#~ msgctxt "Button: Reboot the system"
900+#~ msgid "Reboot"
901+#~ msgstr "Reaniciar"
902+
903+#~ msgid "These are the shortcuts to favorite apps"
904+#~ msgstr "Estos son los atayos a les aplicaciones favorites"
905+
906+#~ msgctxt "Label: Type of security method"
907+#~ msgid "Passcode"
908+#~ msgstr "Códigu de pasu"
909+
910+#~ msgid "To view open apps"
911+#~ msgstr "Pa ver aplicaciones abiertes"
912+
913+#~ msgid "Are you sure you want to shut down?"
914+#~ msgstr "¿De xuru que quies apagar?"
915+
916+#~ msgctxt "Title: Reboot/Shut down dialog"
917+#~ msgid "Shut down"
918+#~ msgstr "Apagáu"
919+
773920#~ msgid "Please re-enter"
774921#~ msgstr "Por favor, reintroduzla"
775922
923+#~ msgid "This action does different things for different apps"
924+#~ msgstr "Esta aición fai coses distintes p'aplicaciones estremaes"
925+
926+#~ msgid "Swipe up from the bottom edge."
927+#~ msgstr "Esliza dende'l berbesu d'embaxo."
928+
929+#~ msgid "Long swipe from the right edge."
930+#~ msgstr "Eslizamientu llargu dende'l berbesu drechu."
931+
932+#~ msgid "View all your running tasks."
933+#~ msgstr "Mira toles tos aplicaciones n'execución."
934+
935+#~ msgid "Try again."
936+#~ msgstr "Intentar de nueves"
937+
938+#~ msgid "You almost got it!"
939+#~ msgstr "¡Yá cuasi finamos!"
940+
941+#~ msgid "Short swipe from the left edge."
942+#~ msgstr "Esliza un poco dende'l berbesu esquierdu."
943+
944+#~ msgid "Hi!"
945+#~ msgstr "¡Hola!"
946+
947+#~ msgid "Lock security"
948+#~ msgstr "Seguranza del bloquéu"
949+
950+#~ msgid "Add a SIM card and restart your device"
951+#~ msgstr "Amiesta una tarxeta SIM y reanicia'l to preséu"
952+
776953#~ msgid "Please select how you’d like to unlock your phone."
777954#~ msgstr "Por favor, esbilla como te prestaría desbloquiar el teléfonu."
778955
956+#~ msgctxt "Label: Description of security method"
957+#~ msgid "No security"
958+#~ msgstr "Ensin seguranza"
959+
960+#~ msgctxt "Label: Type of security method"
961+#~ msgid "Swipe"
962+#~ msgstr "Eslizar"
963+
779964#~ msgid "Welcome to your Ubuntu phone."
780965#~ msgstr "Bienllegáu/ada al to teléfonu d'Ubuntu"
781966
967+#~ msgid "Let’s get started."
968+#~ msgstr "Entamemos."
969+
970+#~ msgctxt "Label: Description of security method"
971+#~ msgid "4 digits only"
972+#~ msgstr "Namái 4 díxitos"
973+
974+#~ msgid "Let the phone detect your location:"
975+#~ msgstr "Dexar al teléfonu deteutar l'allugamientu:"
976+
977+#~ msgid "Location"
978+#~ msgstr "Allugamientu"
979+
980+#~ msgctxt "Label: Type of security method"
981+#~ msgid "Passphrase"
982+#~ msgstr "Fras de pasu"
983+
984+#~ msgctxt "Label: Description of security method"
985+#~ msgid "Numbers and letters"
986+#~ msgstr "Númberos y lletres"
987+
988+#~ msgid "Improving your experience"
989+#~ msgstr "Ameyorando la to esperiencia"
990+
991+#~ msgid ""
992+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
993+#~ "Privacy</b>"
994+#~ msgstr ""
995+#~ "Esto pue deshabilitase nos <b>Axustes del sistema</b> en <b>Seguranza y "
996+#~ "privacidá</b>"
997+
998+#~ msgid "Nice work!"
999+#~ msgstr "¡Bon trabayu!"
1000+
1001+#~ msgid ""
1002+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1003+#~ "conditions</a>."
1004+#~ msgstr ""
1005+#~ "Esbillando esta opción aceutes los <a href='#'>términos y condiciones</a> de "
1006+#~ "Nokia HERE."
1007+
1008+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
1009+#~ msgstr ""
1010+#~ "Usando GPS, Wi-fi anónimes ya información de redes móviles (aconseyao)"
1011+
7821012#~ msgid "Your phone is now ready to use."
7831013#~ msgstr "El teléfonu yá ta tresnáu pa usase."
7841014
1015+#~ msgid "Confirm passphrase"
1016+#~ msgstr "Confirmar frase de pasu"
1017+
1018+#~ msgid "Passphrase must be 4 characters long"
1019+#~ msgstr "La fras de pasu tien de ser 4 caráuteres de llargor"
1020+
1021+#~ msgid "Choose your passcode"
1022+#~ msgstr "Escueyi'l to códigu de pasu"
1023+
1024+#~ msgid "Please try again."
1025+#~ msgstr "Por favor, vuelvi a intentalo."
1026+
7851027#~ msgid "%a %H:%M"
7861028#~ msgstr "%a %H:%M"
7871029
po/az.po+280−199
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2014-09-03 16:39+0000\n"
1212"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
1313"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,23 +15,23 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19+"X-Generator: Launchpad (build 17958)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Şifrә: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
2727msgid "Pin shortcut"
2828msgstr "Pin qısayolu"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
3535msgid "Unpin shortcut"
3636msgstr "Açma qısayolu"
3737
@@ -73,77 +73,59 @@ msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
77−#: qml/Components/Dialogs.qml:253
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
7879msgid "Cancel"
7980msgstr "İmtina"
8081
8182#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr ""
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr "Sistemi söndürmәk istәdiyinizә әminsiniz?"
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr ""
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr ""
99−
100−#: qml/Components/Dialogs.qml:207
10183msgctxt "Title: Reboot dialog"
10284msgid "Reboot"
10385msgstr ""
10486
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
10688msgid "Are you sure you want to reboot?"
10789msgstr "Yenidәn başlatmaq istәdiyinizә әminsiniz?"
10890
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
11092msgid "No"
11193msgstr "Yox"
11294
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:183
11496msgid "Yes"
11597msgstr "Hə"
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr ""
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:199
123105msgid ""
124106"Are you sure you would like\n"
125107"to power off?"
126108msgstr ""
127109
128−#: qml/Components/Dialogs.qml:235
110+#: qml/Components/Dialogs.qml:201
129111msgctxt "Button: Power off the system"
130112msgid "Power off"
131113msgstr ""
132114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:210
134116msgctxt "Button: Restart the system"
135117msgid "Restart"
136118msgstr ""
137119
138−#: qml/Components/Lockscreen.qml:245
120+#: qml/Components/Lockscreen.qml:231
139121msgid "Return to Call"
140122msgstr ""
141123
142−#: qml/Components/Lockscreen.qml:245
124+#: qml/Components/Lockscreen.qml:231
143125msgid "Emergency Call"
144126msgstr "Zərurət zəngi"
145127
146−#: qml/Components/Lockscreen.qml:277
128+#: qml/Components/Lockscreen.qml:263
147129msgid "OK"
148130msgstr "Oldu"
149131
@@ -152,6 +134,8 @@ msgid "Apps may have unsaved data:"
152134msgstr ""
153135
154136#: qml/Components/ModeSwitchWarningDialog.qml:57
137+msgctxt ""
138+"Re-dock means connect the device again to an external screen/mouse/keyboard"
155139msgid "Re-dock, save your work and close these apps to continue."
156140msgstr ""
157141
@@ -171,42 +155,58 @@ msgstr ""
171155msgid "Close all"
172156msgstr ""
173157
174−#: qml/Dash/DashPageHeader.qml:266
158+#: qml/Dash/DashPageHeader.qml:337
175159msgctxt "Button: Open the Ubuntu Store"
176160msgid "Store"
177161msgstr ""
178162
179−#: qml/Dash/DashPageHeader.qml:273
163+#: qml/Dash/DashPageHeader.qml:344
180164msgctxt "Button: Start a search in the current dash scope"
181165msgid "Search"
182166msgstr ""
183167
184−#: qml/Dash/DashPageHeader.qml:283
168+#: qml/Dash/DashPageHeader.qml:354
185169msgctxt "Button: Show the current dash scope settings"
186170msgid "Settings"
187171msgstr ""
188172
189−#: qml/Dash/DashPageHeader.qml:290
173+#: qml/Dash/DashPageHeader.qml:361
190174msgid "Remove from Favorites"
191175msgstr "Seçilmişlәrdәn çıxart"
192176
193−#: qml/Dash/DashPageHeader.qml:290
177+#: qml/Dash/DashPageHeader.qml:361
194178msgid "Add to Favorites"
195179msgstr "Seçilmişlәrә әlavә et"
196180
197−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
181+#: qml/Dash/FiltersPopover.qml:60
182+msgid "Refine your results"
183+msgstr ""
184+
185+#: qml/Dash/FiltersPopover.qml:69
186+msgid "Reset"
187+msgstr ""
188+
189+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198190msgid "See less"
199191msgstr "Daha azını gör"
200192
201−#: qml/Dash/GenericScopeView.qml:587
193+#: qml/Dash/GenericScopeView.qml:570
202194msgid "See all"
203195msgstr "Hamısını gör"
204196
205−#: qml/Dash/GenericScopeView.qml:649
197+#: qml/Dash/GenericScopeView.qml:627
206198msgctxt "Label: Hint for dash search line edit"
207199msgid "Search"
208200msgstr ""
209201
202+#: qml/Dash/PageHeaderExtraPanel.qml:55
203+msgid "Recent Searches"
204+msgstr ""
205+
206+#: qml/Dash/PageHeaderExtraPanel.qml:66
207+msgid "Clear All"
208+msgstr ""
209+
210210#: qml/Dash/Previews/PreviewActionCombo.qml:35
211211msgid "More..."
212212msgstr "Daha çox..."
@@ -228,7 +228,7 @@ msgstr "Qiymәtlәndir"
228228msgid "Add a review"
229229msgstr "Rəy yaz"
230230
231−#: qml/Dash/Previews/PreviewSharing.qml:50
231+#: qml/Dash/Previews/PreviewSharing.qml:66
232232msgid "Preview Share Item"
233233msgstr ""
234234
@@ -256,13 +256,13 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:87
259+#: qml/DisabledScreenNotice.qml:104
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262−"touch pad to interact with the mouse."
262+"touch pad to interact with the pointer."
263263msgstr ""
264264
265−#: qml/Greeter/CoverPage.qml:107
265+#: qml/Greeter/CoverPage.qml:118
266266msgid "Unlock"
267267msgstr ""
268268
@@ -274,11 +274,11 @@ msgstr ""
274274msgid "Tap to unlock"
275275msgstr ""
276276
277−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
278278msgid "Sorry, incorrect passphrase."
279279msgstr "Bağışlayın, açar söz yanlışdır."
280280
281−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
282282msgid "Sorry, incorrect passcode."
283283msgstr "Təəssüf ki, açar kod yanlışdır."
284284
@@ -307,7 +307,7 @@ msgstr ""
307307msgid "Enter %1"
308308msgstr ""
309309
310−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
310+#: qml/Greeter/NarrowView.qml:117
311311msgid "Enter passphrase"
312312msgstr ""
313313
@@ -345,62 +345,62 @@ msgstr "Zəngə qayıtmaq üçün toxunun..."
345345msgid "Conference"
346346msgstr "Konfrans"
347347
348−#: qml/Panel/Indicators/MenuItemFactory.qml:753
348+#: qml/Panel/Indicators/MenuItemFactory.qml:761
349349msgid "Nothing is playing"
350350msgstr ""
351351
352−#: qml/Panel/Indicators/MenuItemFactory.qml:882
352+#: qml/Panel/Indicators/MenuItemFactory.qml:890
353353#, qt-format
354354msgid "%1 hour"
355355msgid_plural "%1 hours"
356356msgstr[0] ""
357357msgstr[1] ""
358358
359−#: qml/Panel/Indicators/MenuItemFactory.qml:886
359+#: qml/Panel/Indicators/MenuItemFactory.qml:894
360360#, qt-format
361361msgid "%1 minute"
362362msgid_plural "%1 minutes"
363363msgstr[0] ""
364364msgstr[1] ""
365365
366−#: qml/Panel/Indicators/MenuItemFactory.qml:891
366+#: qml/Panel/Indicators/MenuItemFactory.qml:899
367367#, qt-format
368368msgid "%1 second"
369369msgid_plural "%1 seconds"
370370msgstr[0] ""
371371msgstr[1] ""
372372
373−#: qml/Panel/Indicators/MenuItemFactory.qml:894
373+#: qml/Panel/Indicators/MenuItemFactory.qml:902
374374msgid "0 seconds"
375375msgstr ""
376376
377377#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
378−#: qml/Panel/Indicators/MenuItemFactory.qml:896
378+#: qml/Panel/Indicators/MenuItemFactory.qml:904
379379#, qt-format
380380msgid "%1 remaining"
381381msgstr ""
382382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:902
383+#: qml/Panel/Indicators/MenuItemFactory.qml:910
384384msgid "In queue…"
385385msgstr "Növbədədir..."
386386
387−#: qml/Panel/Indicators/MenuItemFactory.qml:906
387+#: qml/Panel/Indicators/MenuItemFactory.qml:914
388388msgid "Downloading"
389389msgstr "Endirilir"
390390
391−#: qml/Panel/Indicators/MenuItemFactory.qml:908
391+#: qml/Panel/Indicators/MenuItemFactory.qml:916
392392msgid "Paused, tap to resume"
393393msgstr "Dayandırıldı. Davam etmək üçün toxunun"
394394
395−#: qml/Panel/Indicators/MenuItemFactory.qml:910
395+#: qml/Panel/Indicators/MenuItemFactory.qml:918
396396msgid "Canceled"
397397msgstr "İmtina edildi"
398398
399−#: qml/Panel/Indicators/MenuItemFactory.qml:912
399+#: qml/Panel/Indicators/MenuItemFactory.qml:920
400400msgid "Finished"
401401msgstr "Bitdi"
402402
403−#: qml/Panel/Indicators/MenuItemFactory.qml:914
403+#: qml/Panel/Indicators/MenuItemFactory.qml:922
404404msgid "Failed, tap to retry"
405405msgstr "Alınmadı. Yenidәn cәhd etmək üçün toxunun"
406406
@@ -420,251 +420,323 @@ msgctxt "Button: Call back on phone"
420420msgid "Call back"
421421msgstr ""
422422
423−#: qml/Panel/Indicators/ModemInfoItem.qml:105
424−msgid "Unlock SIM"
425−msgstr "SIM kilidini aç"
426−
427−#: qml/Panel/Indicators/RoamingIndication.qml:27
428−msgid "Roaming"
429−msgstr "Rominq"
430−
431−#: qml/Tutorial/TutorialBottom.qml:28
432−msgid "Open special menus"
433−msgstr ""
434−
435−#: qml/Tutorial/TutorialBottom.qml:29
436−msgid "Swipe up from the bottom edge."
423+#: qml/Stages/SideStage.qml:76
424+msgid "Drag using 3 fingers any application from one window to the other"
437425msgstr ""
438426
439−#: qml/Tutorial/TutorialBottomFinish.qml:24
440−msgid "This action does different things for different apps"
427+#: qml/Tutorial/TutorialBottom.qml:78
428+msgid "Swipe up to add a contact"
441429msgstr ""
442430
443−#: qml/Tutorial/TutorialBottomFinish.qml:25
444−msgid "Tap here to finish."
431+#: qml/Tutorial/TutorialBottom.qml:80
432+msgid "Swipe up for favorite calculations"
445433msgstr ""
446434
447−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
448−#: qml/Tutorial/TutorialRight.qml:144
449−msgid "Tap here to continue."
435+#: qml/Tutorial/TutorialBottom.qml:82
436+msgid "Swipe up for recent calls"
450437msgstr ""
451438
452−#: qml/Tutorial/TutorialLeft.qml:26
453−msgid "Open the launcher"
439+#: qml/Tutorial/TutorialBottom.qml:84
440+msgid "Swipe up to create a message"
454441msgstr ""
455442
456−#: qml/Tutorial/TutorialLeft.qml:27
457−msgid "Short swipe from the left edge."
443+#: qml/Tutorial/TutorialBottom.qml:85
444+msgid "Swipe up to manage the app"
458445msgstr ""
459446
460−#: qml/Tutorial/TutorialLeftFinish.qml:24
461−msgid "These are the shortcuts to favorite apps"
447+#: qml/Tutorial/TutorialLeft.qml:47
448+msgid "Swipe from the left edge to open the launcher"
462449msgstr ""
463450
464−#: qml/Tutorial/TutorialPage.qml:178
465−msgid "You almost got it!"
451+#: qml/Tutorial/TutorialLeftLong.qml:47
452+msgid "Long swipe from the left edge to open the Today scope"
466453msgstr ""
467454
468−#: qml/Tutorial/TutorialPage.qml:195
469−msgid "Try again."
455+#: qml/Tutorial/TutorialRight.qml:54
456+msgid "Hover your mouse on the right edge to view your open apps"
470457msgstr ""
471458
472−#: qml/Tutorial/TutorialRight.qml:31
473−msgid "To view open apps"
459+#: qml/Tutorial/TutorialRight.qml:55
460+msgid "Short or long swipe from the right edge to view your open apps"
474461msgstr ""
475462
476−#: qml/Tutorial/TutorialRight.qml:32
477−msgid "Long swipe from the right edge."
463+#: qml/Tutorial/TutorialTop.qml:53
464+msgid "Swipe from the top right edge to open the notification bar"
478465msgstr ""
479466
480−#: qml/Tutorial/TutorialRight.qml:122
481−msgid "View all your running tasks."
467+#: qml/Tutorial/TutorialTop.qml:54
468+msgid "Swipe from the top edge to open the notification bar"
482469msgstr ""
483470
484−#: qml/Wizard/Page.qml:89
471+#: qml/Wizard/Page.qml:54
485472msgctxt "Button: Go back one page in the Wizard"
486473msgid "Back"
487474msgstr ""
488475
489476#: qml/Wizard/Pages/10-welcome.qml:27
490−msgid "Hi!"
477+msgid "Language"
491478msgstr ""
492479
493−#: qml/Wizard/Pages/10-welcome.qml:44
494−msgid "Welcome to your Ubuntu device."
480+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
481+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
482+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
483+#: qml/Wizard/Pages/75-report-check.qml:84
484+#: qml/Wizard/Pages/passcode-desktop.qml:124
485+#: qml/Wizard/Pages/password-set.qml:141
486+msgid "Next"
495487msgstr ""
496488
497−#: qml/Wizard/Pages/10-welcome.qml:52
498−msgid "Let’s get started."
489+#: qml/Wizard/Pages/30-wifi.qml:29
490+msgid "Connect to Wi‑Fi"
499491msgstr ""
500492
501−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
502−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
503−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
504−#: qml/Wizard/Pages/passwd-set.qml:90
505−msgid "Continue"
493+#: qml/Wizard/Pages/30-wifi.qml:130
494+msgid "Connected"
506495msgstr ""
507496
508−#: qml/Wizard/Pages/20-sim.qml:25
509−msgid "Add a SIM card and restart your device"
497+#: qml/Wizard/Pages/30-wifi.qml:163
498+msgid "Available Wi-Fi networks"
510499msgstr ""
511500
512−#: qml/Wizard/Pages/20-sim.qml:59
513−msgid "Without it, you won’t be able to make calls or use text messaging."
501+#: qml/Wizard/Pages/30-wifi.qml:164
502+msgid "No available Wi-Fi networks"
514503msgstr ""
515504
516−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
505+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
506+#: qml/Wizard/Pages/sim.qml:101
517507msgid "Skip"
518508msgstr ""
519509
520−#: qml/Wizard/Pages/30-passwd-type.qml:39
521−msgid "Lock security"
510+#: qml/Wizard/Pages/40-location.qml:27
511+msgid "Location Services"
512+msgstr ""
513+
514+#: qml/Wizard/Pages/40-location.qml:83
515+msgid ""
516+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
517+"(recommended)"
518+msgstr ""
519+
520+#: qml/Wizard/Pages/40-location.qml:105
521+#, qt-format
522+msgid "By selecting this option you agree to the Nokia HERE %1."
522523msgstr ""
523524
524−#: qml/Wizard/Pages/30-passwd-type.qml:79
525−msgid "Please select how you’d like to unlock your device."
525+#: qml/Wizard/Pages/40-location.qml:106
526+msgctxt "part of: Nokia HERE terms and conditions"
527+msgid "terms and conditions"
526528msgstr ""
527529
528−#: qml/Wizard/Pages/30-passwd-type.qml:102
529−msgctxt "Label: Type of security method"
530−msgid "Swipe"
530+#: qml/Wizard/Pages/40-location.qml:160
531+msgid "GPS only"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:214
535+msgid "Don't use my location"
536+msgstr ""
537+
538+#: qml/Wizard/Pages/40-location.qml:260
539+msgid "You can change it later in System Settings."
540+msgstr ""
541+
542+#: qml/Wizard/Pages/50-timezone.qml:29
543+msgid "Time Zone"
531544msgstr ""
532545
533−#: qml/Wizard/Pages/30-passwd-type.qml:103
534−msgctxt "Label: Description of security method"
535−msgid "No security"
546+#: qml/Wizard/Pages/50-timezone.qml:178
547+msgid "Enter your city"
536548msgstr ""
537549
538−#: qml/Wizard/Pages/30-passwd-type.qml:105
550+#: qml/Wizard/Pages/60-account.qml:24
551+msgid "Personalize Your Device"
552+msgstr ""
553+
554+#: qml/Wizard/Pages/60-account.qml:48
555+msgid "Preferred Name"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/70-passwd-type.qml:39
559+msgid "Lock Screen"
560+msgstr ""
561+
562+#: qml/Wizard/Pages/70-passwd-type.qml:101
539563msgctxt "Label: Type of security method"
540−msgid "Passcode"
564+msgid "Create new password"
541565msgstr ""
542566
543−#: qml/Wizard/Pages/30-passwd-type.qml:106
544−msgctxt "Label: Description of security method"
545−msgid "4 digits only"
567+#: qml/Wizard/Pages/70-passwd-type.qml:103
568+msgctxt "Label: Type of security method"
569+msgid "Create passcode (numbers only)"
546570msgstr ""
547571
548−#: qml/Wizard/Pages/30-passwd-type.qml:108
572+#: qml/Wizard/Pages/70-passwd-type.qml:105
549573msgctxt "Label: Type of security method"
550−msgid "Passphrase"
574+msgid "No lock code"
551575msgstr ""
552576
553−#: qml/Wizard/Pages/30-passwd-type.qml:109
554−msgctxt "Label: Description of security method"
555−msgid "Numbers and letters"
577+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
578+msgid "Privacy Policy"
556579msgstr ""
557580
558−#: qml/Wizard/Pages/40-wifi.qml:29
559−msgid "Connect to Wi‑Fi"
581+#: qml/Wizard/Pages/75-report-check.qml:26
582+msgid "Help Us Improve"
583+msgstr ""
584+
585+#: qml/Wizard/Pages/75-report-check.qml:59
586+msgid "Improve system performance by sending us crashes and error reports."
587+msgstr ""
588+
589+#: qml/Wizard/Pages/75-report-check.qml:60
590+msgid "Privacy policy"
560591msgstr ""
561592
562−#: qml/Wizard/Pages/40-wifi.qml:168
563−msgid "Available networks…"
593+#: qml/Wizard/Pages/80-finished.qml:89
594+msgid "Welcome to Ubuntu"
564595msgstr ""
565596
566−#: qml/Wizard/Pages/40-wifi.qml:169
567−msgid "No available networks."
597+#: qml/Wizard/Pages/80-finished.qml:104
598+msgid "You are ready to use your device now"
568599msgstr ""
569600
570−#: qml/Wizard/Pages/50-location.qml:27
571−msgid "Location"
601+#: qml/Wizard/Pages/80-finished.qml:124
602+msgid "Get Started"
572603msgstr ""
573604
574−#: qml/Wizard/Pages/50-location.qml:62
575−msgid "Let the phone detect your location:"
605+#: qml/Wizard/Pages/here-terms.qml:25
606+msgid "Terms & Conditions"
576607msgstr ""
577608
578−#: qml/Wizard/Pages/50-location.qml:69
579−msgid "Using GPS only (less accurate)"
609+#: qml/Wizard/Pages/here-terms.qml:69
610+msgid "Your device uses positioning technologies provided by HERE."
580611msgstr ""
581612
582−#: qml/Wizard/Pages/50-location.qml:86
583−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
613+#: qml/Wizard/Pages/here-terms.qml:81
614+msgid ""
615+"To provide you with positioning services and to improve their quality, HERE "
616+"collects information about nearby cell towers and Wi-Fi hotspots around your "
617+"current location whenever your position is being found."
584618msgstr ""
585619
586−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
587−#: qml/Wizard/Pages/50-location.qml:103
620+#: qml/Wizard/Pages/here-terms.qml:93
588621msgid ""
589−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
590−"conditions</a>."
622+"The information collected is used to analyze the service and to improve the "
623+"use of service, but not to identify you personally."
591624msgstr ""
592625
593−#: qml/Wizard/Pages/50-location.qml:112
594−msgid "Not at all"
626+#: qml/Wizard/Pages/here-terms.qml:106
627+#, qt-format
628+msgid "By continuing, you agree to the HERE platform %1 and %2."
595629msgstr ""
596630
597−#: qml/Wizard/Pages/50-location.qml:124
598−msgid "You can change your mind later in <b>System Settings</b>."
631+#: qml/Wizard/Pages/here-terms.qml:107
632+msgid "Service Terms"
599633msgstr ""
600634
601−#: qml/Wizard/Pages/60-reporting.qml:26
602−msgid "Improving your experience"
635+#: qml/Wizard/Pages/passcode-confirm.qml:43
636+#: qml/Wizard/Pages/passcode-desktop.qml:80
637+msgid "Confirm passcode"
603638msgstr ""
604639
605−#: qml/Wizard/Pages/60-reporting.qml:46
606−msgid ""
607−"Your phone is set up to automatically report errors to Canonical and its "
608−"partners, the makers of the operating system."
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
641+msgid "Incorrect passcode."
609642msgstr ""
610643
611−#: qml/Wizard/Pages/60-reporting.qml:53
612−msgid ""
613−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
614−"Privacy</b>"
644+#: qml/Wizard/Pages/passcode-confirm.qml:45
645+msgctxt "Enter the passcode again"
646+msgid "Please re-enter."
615647msgstr ""
616648
617−#: qml/Wizard/Pages/80-finished.qml:24
618−msgid "All done"
649+#: qml/Wizard/Pages/passcode-desktop.qml:30
650+msgid "Lock Screen Passcode"
619651msgstr ""
620652
621−#: qml/Wizard/Pages/80-finished.qml:39
622−msgid "Nice work!"
653+#: qml/Wizard/Pages/passcode-desktop.qml:56
654+msgid "Enter 4 numbers to setup your passcode"
623655msgstr ""
624656
625−#: qml/Wizard/Pages/80-finished.qml:46
626−msgid "Your device is now ready to use."
657+#: qml/Wizard/Pages/passcode-desktop.qml:65
658+#: qml/Wizard/Pages/passcode-set.qml:54
659+msgid "Choose passcode"
627660msgstr ""
628661
629−#: qml/Wizard/Pages/80-finished.qml:53
630−msgid "Finish"
662+#: qml/Wizard/Pages/passcode-desktop.qml:105
663+msgid "Passcode too short"
631664msgstr ""
632665
633−#: qml/Wizard/Pages/here-terms.qml:27
634−msgid "Terms & Conditions"
666+#: qml/Wizard/Pages/passcode-desktop.qml:107
667+msgid "Passcodes match"
635668msgstr ""
636669
637−#: qml/Wizard/Pages/passwd-confirm.qml:49
638−msgid "Confirm passphrase"
670+#: qml/Wizard/Pages/passcode-desktop.qml:109
671+msgid "Passcodes do not match"
639672msgstr ""
640673
641−#: qml/Wizard/Pages/passwd-confirm.qml:50
642−msgid "Confirm passcode"
674+#: qml/Wizard/Pages/passcode-set.qml:62
675+msgid "Passcode must be 4 characters long"
643676msgstr ""
644677
645−#: qml/Wizard/Pages/passwd-confirm.qml:53
646−#: qml/Wizard/Pages/passwd-confirm.qml:54
647−msgid "Please try again."
678+#: qml/Wizard/Pages/password-set.qml:30
679+msgid "Lock Screen Password"
648680msgstr ""
649681
650−#: qml/Wizard/Pages/passwd-set.qml:61
651−msgid "Choose your passcode"
682+#: qml/Wizard/Pages/password-set.qml:61
683+msgid "Enter at least 8 characters"
652684msgstr ""
653685
654−#: qml/Wizard/Pages/passwd-set.qml:68
655−msgid "Passphrase must be 4 characters long"
686+#: qml/Wizard/Pages/password-set.qml:73
687+msgid "Choose password"
656688msgstr ""
657689
658−#. Translators: This is the arrow for "Back" buttons
659−#: qml/Wizard/StackButton.qml:39
660−#, qt-format
661−msgid "〈 %1"
690+#: qml/Wizard/Pages/password-set.qml:103
691+msgid "Confirm password"
662692msgstr ""
663693
664−#. Translators: This is the arrow for "Forward" buttons
665−#: qml/Wizard/StackButton.qml:42
666−#, qt-format
667−msgid "%1 〉"
694+#: qml/Wizard/Pages/sim.qml:27
695+msgid "No SIM card installed"
696+msgstr ""
697+
698+#: qml/Wizard/Pages/sim.qml:54
699+msgid "SIM card added"
700+msgstr ""
701+
702+#: qml/Wizard/Pages/sim.qml:55
703+msgid "You must restart the device to access the mobile network."
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:59
707+msgid "Restart"
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:78
711+msgid "You won’t be able to make calls or use text messaging without a SIM."
712+msgstr ""
713+
714+#: qml/Wizard/Pages/sim.qml:90
715+msgid "To proceed with no SIM tap Skip."
716+msgstr ""
717+
718+#: qml/Wizard/PasswordMeter.qml:87
719+msgid "Passwords match"
720+msgstr ""
721+
722+#: qml/Wizard/PasswordMeter.qml:89
723+msgid "Passwords do not match"
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:93
727+msgid "Strong password"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:95
731+msgid "Fair password"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:97
735+msgid "Weak password"
736+msgstr ""
737+
738+#: qml/Wizard/PasswordMeter.qml:99
739+msgid "Very weak password"
668740msgstr ""
669741
670742#~ msgid "Confirm"
@@ -713,9 +785,18 @@ msgstr ""
713785#~ msgid "Done"
714786#~ msgstr "Başa çatdı"
715787
788+#~ msgid "Unlock SIM"
789+#~ msgstr "SIM kilidini aç"
790+
791+#~ msgid "Roaming"
792+#~ msgstr "Rominq"
793+
716794#~ msgid "Log out"
717795#~ msgstr "Çıxış"
718796
797+#~ msgid "Are you sure you want to shut down?"
798+#~ msgstr "Sistemi söndürmәk istәdiyinizә әminsiniz?"
799+
719800#~ msgid "Shut down"
720801#~ msgstr "Sistemi Söndür"
721802
po/be.po+495−253
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2015-12-13 13:12+0000\n"
1212"Last-Translator: Mikhail_SaTuRn <mikhail_saturn@tut.by>\n"
1313"Language-Team: Belarusian <be@li.org>\n"
@@ -16,23 +16,23 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
20−"X-Generator: Launchpad (build 17925)\n"
19+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
20+"X-Generator: Launchpad (build 17958)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
2424msgstr "Пароль: "
2525
26−#: plugins/Unity/Launcher/launcheritem.cpp:47
27−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:48
27+#: plugins/Unity/Launcher/launcheritem.cpp:107
2828msgid "Pin shortcut"
2929msgstr "Замацаваць кнопку"
3030
31−#: plugins/Unity/Launcher/launcheritem.cpp:52
31+#: plugins/Unity/Launcher/launcheritem.cpp:53
3232msgid "Quit"
3333msgstr "Выйсці"
3434
35−#: plugins/Unity/Launcher/launcheritem.cpp:106
35+#: plugins/Unity/Launcher/launcheritem.cpp:107
3636msgid "Unpin shortcut"
3737msgstr "Адмацаваць кнопку"
3838
@@ -78,53 +78,35 @@ msgctxt "Button: Log out from the system"
7878msgid "Log Out"
7979msgstr "Выйсці"
8080
81−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
82−#: qml/Components/Dialogs.qml:253
81+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
82+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
83+#: qml/Wizard/Pages/passcode-set.qml:32
8384msgid "Cancel"
8485msgstr "Скасаваць"
8586
8687#: qml/Components/Dialogs.qml:173
87−msgctxt "Title: Reboot/Shut down dialog"
88−msgid "Shut down"
89−msgstr "Выключыць"
90−
91−#: qml/Components/Dialogs.qml:174
92−msgid "Are you sure you want to shut down?"
93−msgstr "Вы ўпэўненыя, што жадаеце выключыць прыладу?"
94−
95−#: qml/Components/Dialogs.qml:176
96−msgctxt "Button: Reboot the system"
97−msgid "Reboot"
98−msgstr "Перазагрузіць"
99−
100−#: qml/Components/Dialogs.qml:185
101−msgctxt "Button: Shut down the system"
102−msgid "Shut down"
103−msgstr "Выключыць"
104−
105−#: qml/Components/Dialogs.qml:207
10688msgctxt "Title: Reboot dialog"
10789msgid "Reboot"
10890msgstr "Перазагрузіць"
10991
110−#: qml/Components/Dialogs.qml:208
92+#: qml/Components/Dialogs.qml:174
11193msgid "Are you sure you want to reboot?"
11294msgstr "Вы ўпэўнены, што жадаеце перазагрузіць?"
11395
114−#: qml/Components/Dialogs.qml:210
96+#: qml/Components/Dialogs.qml:176
11597msgid "No"
11698msgstr "Не"
11799
118−#: qml/Components/Dialogs.qml:217
100+#: qml/Components/Dialogs.qml:183
119101msgid "Yes"
120102msgstr "Так"
121103
122−#: qml/Components/Dialogs.qml:232
104+#: qml/Components/Dialogs.qml:198
123105msgctxt "Title: Power off/Restart dialog"
124106msgid "Power"
125107msgstr "Сілкаванне"
126108
127−#: qml/Components/Dialogs.qml:233
109+#: qml/Components/Dialogs.qml:199
128110msgid ""
129111"Are you sure you would like\n"
130112"to power off?"
@@ -132,25 +114,25 @@ msgstr ""
132114"Вы ўпэўнены, што хочаце\n"
133115"выключыць камп'ютэр?"
134116
135−#: qml/Components/Dialogs.qml:235
117+#: qml/Components/Dialogs.qml:201
136118msgctxt "Button: Power off the system"
137119msgid "Power off"
138120msgstr "Выключыць"
139121
140−#: qml/Components/Dialogs.qml:244
122+#: qml/Components/Dialogs.qml:210
141123msgctxt "Button: Restart the system"
142124msgid "Restart"
143125msgstr "Перазапуск"
144126
145−#: qml/Components/Lockscreen.qml:245
127+#: qml/Components/Lockscreen.qml:231
146128msgid "Return to Call"
147129msgstr "Вярнуцца да выкліку"
148130
149−#: qml/Components/Lockscreen.qml:245
131+#: qml/Components/Lockscreen.qml:231
150132msgid "Emergency Call"
151133msgstr "Терміновы выклік"
152134
153−#: qml/Components/Lockscreen.qml:277
135+#: qml/Components/Lockscreen.qml:263
154136msgid "OK"
155137msgstr "Добра"
156138
@@ -159,8 +141,10 @@ msgid "Apps may have unsaved data:"
159141msgstr "Прылады могуць мець незахованыя дадзеныя:"
160142
161143#: qml/Components/ModeSwitchWarningDialog.qml:57
144+msgctxt ""
145+"Re-dock means connect the device again to an external screen/mouse/keyboard"
162146msgid "Re-dock, save your work and close these apps to continue."
163−msgstr "Захавайце сваю працу і зачыніце прылады, каб працягнуць."
147+msgstr ""
164148
165149#: qml/Components/ModeSwitchWarningDialog.qml:63
166150msgid "Or force close now (unsaved data will be lost)."
@@ -178,42 +162,58 @@ msgstr "Перападлучыцца зараз!"
178162msgid "Close all"
179163msgstr "Зачыніць усё"
180164
181−#: qml/Dash/DashPageHeader.qml:266
165+#: qml/Dash/DashPageHeader.qml:337
182166msgctxt "Button: Open the Ubuntu Store"
183167msgid "Store"
184168msgstr "Крама"
185169
186−#: qml/Dash/DashPageHeader.qml:273
170+#: qml/Dash/DashPageHeader.qml:344
187171msgctxt "Button: Start a search in the current dash scope"
188172msgid "Search"
189173msgstr "Пошук"
190174
191−#: qml/Dash/DashPageHeader.qml:283
175+#: qml/Dash/DashPageHeader.qml:354
192176msgctxt "Button: Show the current dash scope settings"
193177msgid "Settings"
194178msgstr "Налады"
195179
196−#: qml/Dash/DashPageHeader.qml:290
180+#: qml/Dash/DashPageHeader.qml:361
197181msgid "Remove from Favorites"
198182msgstr "Выдаліць з абранага"
199183
200−#: qml/Dash/DashPageHeader.qml:290
184+#: qml/Dash/DashPageHeader.qml:361
201185msgid "Add to Favorites"
202186msgstr "Дадаць да абранага"
203187
204−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
188+#: qml/Dash/FiltersPopover.qml:60
189+msgid "Refine your results"
190+msgstr ""
191+
192+#: qml/Dash/FiltersPopover.qml:69
193+msgid "Reset"
194+msgstr ""
195+
196+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
205197msgid "See less"
206198msgstr "Карацей"
207199
208−#: qml/Dash/GenericScopeView.qml:587
200+#: qml/Dash/GenericScopeView.qml:570
209201msgid "See all"
210202msgstr "Больш падрабязна"
211203
212−#: qml/Dash/GenericScopeView.qml:649
204+#: qml/Dash/GenericScopeView.qml:627
213205msgctxt "Label: Hint for dash search line edit"
214206msgid "Search"
215207msgstr "Пошук"
216208
209+#: qml/Dash/PageHeaderExtraPanel.qml:55
210+msgid "Recent Searches"
211+msgstr ""
212+
213+#: qml/Dash/PageHeaderExtraPanel.qml:66
214+msgid "Clear All"
215+msgstr ""
216+
217217#: qml/Dash/Previews/PreviewActionCombo.qml:35
218218msgid "More..."
219219msgstr "Болей…"
@@ -235,7 +235,7 @@ msgstr "Ацаніць"
235235msgid "Add a review"
236236msgstr "Дадаць рэцэнзію"
237237
238−#: qml/Dash/Previews/PreviewSharing.qml:50
238+#: qml/Dash/Previews/PreviewSharing.qml:66
239239msgid "Preview Share Item"
240240msgstr "Праглядзець элемент"
241241
@@ -263,13 +263,13 @@ msgstr "Хатняя папка"
263263msgid "Also installed"
264264msgstr "Таксама ўсталявана"
265265
266−#: qml/DisabledScreenNotice.qml:87
266+#: qml/DisabledScreenNotice.qml:104
267267msgid ""
268268"Your device is now connected to an external display. Use this screen as a "
269−"touch pad to interact with the mouse."
269+"touch pad to interact with the pointer."
270270msgstr ""
271271
272−#: qml/Greeter/CoverPage.qml:107
272+#: qml/Greeter/CoverPage.qml:118
273273msgid "Unlock"
274274msgstr "Разблакаваць"
275275
@@ -281,11 +281,11 @@ msgstr "Паспрабаваць зноў"
281281msgid "Tap to unlock"
282282msgstr "Націсніце, каб разблакаваць"
283283
284−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
284+#: qml/Greeter/NarrowView.qml:54
285285msgid "Sorry, incorrect passphrase."
286286msgstr "Даруйце, няслушны пароль."
287287
288−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
288+#: qml/Greeter/NarrowView.qml:55
289289msgid "Sorry, incorrect passcode."
290290msgstr "Даруйце, няслушны код."
291291
@@ -314,7 +314,7 @@ msgstr ""
314314msgid "Enter %1"
315315msgstr "Увядзіце %1"
316316
317−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
317+#: qml/Greeter/NarrowView.qml:117
318318msgid "Enter passphrase"
319319msgstr "Увядзіце пароль"
320320
@@ -352,11 +352,11 @@ msgstr "Націсніце, каб вярнуцца да выкліку..."
352352msgid "Conference"
353353msgstr "Канферэнцыя"
354354
355−#: qml/Panel/Indicators/MenuItemFactory.qml:753
355+#: qml/Panel/Indicators/MenuItemFactory.qml:761
356356msgid "Nothing is playing"
357357msgstr "Нічога не грае"
358358
359−#: qml/Panel/Indicators/MenuItemFactory.qml:882
359+#: qml/Panel/Indicators/MenuItemFactory.qml:890
360360#, qt-format
361361msgid "%1 hour"
362362msgid_plural "%1 hours"
@@ -364,7 +364,7 @@ msgstr[0] "%1 гадзіна"
364364msgstr[1] "%1 гадзіны"
365365msgstr[2] "%1 гадзінаў"
366366
367−#: qml/Panel/Indicators/MenuItemFactory.qml:886
367+#: qml/Panel/Indicators/MenuItemFactory.qml:894
368368#, qt-format
369369msgid "%1 minute"
370370msgid_plural "%1 minutes"
@@ -372,7 +372,7 @@ msgstr[0] "%1 хвіліна"
372372msgstr[1] "%1 хвіліны"
373373msgstr[2] "%1 хвілінаў"
374374
375−#: qml/Panel/Indicators/MenuItemFactory.qml:891
375+#: qml/Panel/Indicators/MenuItemFactory.qml:899
376376#, qt-format
377377msgid "%1 second"
378378msgid_plural "%1 seconds"
@@ -380,37 +380,37 @@ msgstr[0] "%1 секунда"
380380msgstr[1] "%1 секунды"
381381msgstr[2] "%1 секундаў"
382382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:894
383+#: qml/Panel/Indicators/MenuItemFactory.qml:902
384384msgid "0 seconds"
385385msgstr "0 секунд"
386386
387387#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
388−#: qml/Panel/Indicators/MenuItemFactory.qml:896
388+#: qml/Panel/Indicators/MenuItemFactory.qml:904
389389#, qt-format
390390msgid "%1 remaining"
391391msgstr "%1 засталося"
392392
393−#: qml/Panel/Indicators/MenuItemFactory.qml:902
393+#: qml/Panel/Indicators/MenuItemFactory.qml:910
394394msgid "In queue…"
395395msgstr "У чарзе..."
396396
397−#: qml/Panel/Indicators/MenuItemFactory.qml:906
397+#: qml/Panel/Indicators/MenuItemFactory.qml:914
398398msgid "Downloading"
399399msgstr "Запампоўка"
400400
401−#: qml/Panel/Indicators/MenuItemFactory.qml:908
401+#: qml/Panel/Indicators/MenuItemFactory.qml:916
402402msgid "Paused, tap to resume"
403403msgstr "Прыпынена, націсніце для працягу"
404404
405−#: qml/Panel/Indicators/MenuItemFactory.qml:910
405+#: qml/Panel/Indicators/MenuItemFactory.qml:918
406406msgid "Canceled"
407407msgstr "Скасавана"
408408
409−#: qml/Panel/Indicators/MenuItemFactory.qml:912
409+#: qml/Panel/Indicators/MenuItemFactory.qml:920
410410msgid "Finished"
411411msgstr "Скончана"
412412
413−#: qml/Panel/Indicators/MenuItemFactory.qml:914
413+#: qml/Panel/Indicators/MenuItemFactory.qml:922
414414msgid "Failed, tap to retry"
415415msgstr "Не атрымалася, націсніце, каб паўтарыць спробу"
416416
@@ -430,259 +430,324 @@ msgctxt "Button: Call back on phone"
430430msgid "Call back"
431431msgstr "Патэлефанаваць"
432432
433−#: qml/Panel/Indicators/ModemInfoItem.qml:105
434−msgid "Unlock SIM"
435−msgstr "Разблакаваць SIM"
436−
437−#: qml/Panel/Indicators/RoamingIndication.qml:27
438−msgid "Roaming"
439−msgstr "Роўмінг"
440−
441−#: qml/Tutorial/TutorialBottom.qml:28
442−msgid "Open special menus"
443−msgstr "Адкрыць спецыяльныя меню"
444−
445−#: qml/Tutorial/TutorialBottom.qml:29
446−msgid "Swipe up from the bottom edge."
447−msgstr "Правесці уверх ад ніжняга краю."
433+#: qml/Stages/SideStage.qml:76
434+msgid "Drag using 3 fingers any application from one window to the other"
435+msgstr ""
448436
449−#: qml/Tutorial/TutorialBottomFinish.qml:24
450−msgid "This action does different things for different apps"
451−msgstr "Гэта дзеянне мае розныя наступствы для розных праграм"
437+#: qml/Tutorial/TutorialBottom.qml:78
438+msgid "Swipe up to add a contact"
439+msgstr ""
452440
453−#: qml/Tutorial/TutorialBottomFinish.qml:25
454−msgid "Tap here to finish."
455−msgstr "Націсніце тут, каб завяршыць."
441+#: qml/Tutorial/TutorialBottom.qml:80
442+msgid "Swipe up for favorite calculations"
443+msgstr ""
456444
457−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
458−#: qml/Tutorial/TutorialRight.qml:144
459−msgid "Tap here to continue."
460−msgstr "Націсніце тут, каб працягнуць."
445+#: qml/Tutorial/TutorialBottom.qml:82
446+msgid "Swipe up for recent calls"
447+msgstr ""
461448
462−#: qml/Tutorial/TutorialLeft.qml:26
463−msgid "Open the launcher"
464−msgstr "Адкрыць панэль запуску"
449+#: qml/Tutorial/TutorialBottom.qml:84
450+msgid "Swipe up to create a message"
451+msgstr ""
465452
466−#: qml/Tutorial/TutorialLeft.qml:27
467−msgid "Short swipe from the left edge."
468−msgstr "Кароткі рух з левага краю."
453+#: qml/Tutorial/TutorialBottom.qml:85
454+msgid "Swipe up to manage the app"
455+msgstr ""
469456
470−#: qml/Tutorial/TutorialLeftFinish.qml:24
471−msgid "These are the shortcuts to favorite apps"
472−msgstr "Гэта скарачэнні для абраных праграм"
457+#: qml/Tutorial/TutorialLeft.qml:47
458+msgid "Swipe from the left edge to open the launcher"
459+msgstr ""
473460
474−#: qml/Tutorial/TutorialPage.qml:178
475−msgid "You almost got it!"
476−msgstr "Амаль усё!"
461+#: qml/Tutorial/TutorialLeftLong.qml:47
462+msgid "Long swipe from the left edge to open the Today scope"
463+msgstr ""
477464
478−#: qml/Tutorial/TutorialPage.qml:195
479−msgid "Try again."
480−msgstr "Паспрабуйце яшчэ."
465+#: qml/Tutorial/TutorialRight.qml:54
466+msgid "Hover your mouse on the right edge to view your open apps"
467+msgstr ""
481468
482−#: qml/Tutorial/TutorialRight.qml:31
483−msgid "To view open apps"
484−msgstr "Паглядзець адкрытыя праграмы"
469+#: qml/Tutorial/TutorialRight.qml:55
470+msgid "Short or long swipe from the right edge to view your open apps"
471+msgstr ""
485472
486−#: qml/Tutorial/TutorialRight.qml:32
487−msgid "Long swipe from the right edge."
488−msgstr "Доўгі рух ад правага краю."
473+#: qml/Tutorial/TutorialTop.qml:53
474+msgid "Swipe from the top right edge to open the notification bar"
475+msgstr ""
489476
490−#: qml/Tutorial/TutorialRight.qml:122
491−msgid "View all your running tasks."
492−msgstr "Паказаць усе запушчаныя задачы."
477+#: qml/Tutorial/TutorialTop.qml:54
478+msgid "Swipe from the top edge to open the notification bar"
479+msgstr ""
493480
494−#: qml/Wizard/Page.qml:89
481+#: qml/Wizard/Page.qml:54
495482msgctxt "Button: Go back one page in the Wizard"
496483msgid "Back"
497484msgstr "Вярнуцца"
498485
499486#: qml/Wizard/Pages/10-welcome.qml:27
500−msgid "Hi!"
501−msgstr "Вітай!"
487+msgid "Language"
488+msgstr ""
502489
503−#: qml/Wizard/Pages/10-welcome.qml:44
504−msgid "Welcome to your Ubuntu device."
490+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
491+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
492+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
493+#: qml/Wizard/Pages/75-report-check.qml:84
494+#: qml/Wizard/Pages/passcode-desktop.qml:124
495+#: qml/Wizard/Pages/password-set.qml:141
496+msgid "Next"
505497msgstr ""
506498
507−#: qml/Wizard/Pages/10-welcome.qml:52
508−msgid "Let’s get started."
509−msgstr "Пачнем."
499+#: qml/Wizard/Pages/30-wifi.qml:29
500+msgid "Connect to Wi‑Fi"
501+msgstr "Злучыцца з Wi-Fi"
510502
511−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
512−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
513−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
514−#: qml/Wizard/Pages/passwd-set.qml:90
515−msgid "Continue"
516−msgstr "Працягнуць"
503+#: qml/Wizard/Pages/30-wifi.qml:130
504+msgid "Connected"
505+msgstr ""
517506
518−#: qml/Wizard/Pages/20-sim.qml:25
519−msgid "Add a SIM card and restart your device"
520−msgstr "Дадайце SIM-карту і перазагрузіце Вашую прыладу"
507+#: qml/Wizard/Pages/30-wifi.qml:163
508+msgid "Available Wi-Fi networks"
509+msgstr ""
521510
522−#: qml/Wizard/Pages/20-sim.qml:59
523−msgid "Without it, you won’t be able to make calls or use text messaging."
524−msgstr "Без яе Вы не зможаце тэлефанаваць ці адпраўляць паведамленні."
511+#: qml/Wizard/Pages/30-wifi.qml:164
512+msgid "No available Wi-Fi networks"
513+msgstr ""
525514
526−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
515+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
516+#: qml/Wizard/Pages/sim.qml:101
527517msgid "Skip"
528518msgstr "Прапусціць"
529519
530−#: qml/Wizard/Pages/30-passwd-type.qml:39
531−msgid "Lock security"
532−msgstr "Блакіроўка"
520+#: qml/Wizard/Pages/40-location.qml:27
521+msgid "Location Services"
522+msgstr ""
533523
534−#: qml/Wizard/Pages/30-passwd-type.qml:79
535−msgid "Please select how you’d like to unlock your device."
524+#: qml/Wizard/Pages/40-location.qml:83
525+msgid ""
526+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
527+"(recommended)"
536528msgstr ""
537529
538−#: qml/Wizard/Pages/30-passwd-type.qml:102
539−msgctxt "Label: Type of security method"
540−msgid "Swipe"
541−msgstr "Рух"
530+#: qml/Wizard/Pages/40-location.qml:105
531+#, qt-format
532+msgid "By selecting this option you agree to the Nokia HERE %1."
533+msgstr ""
534+
535+#: qml/Wizard/Pages/40-location.qml:106
536+msgctxt "part of: Nokia HERE terms and conditions"
537+msgid "terms and conditions"
538+msgstr ""
539+
540+#: qml/Wizard/Pages/40-location.qml:160
541+msgid "GPS only"
542+msgstr ""
543+
544+#: qml/Wizard/Pages/40-location.qml:214
545+msgid "Don't use my location"
546+msgstr ""
547+
548+#: qml/Wizard/Pages/40-location.qml:260
549+msgid "You can change it later in System Settings."
550+msgstr ""
542551
543−#: qml/Wizard/Pages/30-passwd-type.qml:103
544−msgctxt "Label: Description of security method"
545−msgid "No security"
546−msgstr "Без бяспекі"
552+#: qml/Wizard/Pages/50-timezone.qml:29
553+msgid "Time Zone"
554+msgstr ""
555+
556+#: qml/Wizard/Pages/50-timezone.qml:178
557+msgid "Enter your city"
558+msgstr ""
559+
560+#: qml/Wizard/Pages/60-account.qml:24
561+msgid "Personalize Your Device"
562+msgstr ""
563+
564+#: qml/Wizard/Pages/60-account.qml:48
565+msgid "Preferred Name"
566+msgstr ""
547567
548−#: qml/Wizard/Pages/30-passwd-type.qml:105
568+#: qml/Wizard/Pages/70-passwd-type.qml:39
569+msgid "Lock Screen"
570+msgstr ""
571+
572+#: qml/Wizard/Pages/70-passwd-type.qml:101
549573msgctxt "Label: Type of security method"
550−msgid "Passcode"
551−msgstr "Код-пароль"
574+msgid "Create new password"
575+msgstr ""
552576
553−#: qml/Wizard/Pages/30-passwd-type.qml:106
554−msgctxt "Label: Description of security method"
555−msgid "4 digits only"
556−msgstr "Толькі 4 лічбы"
577+#: qml/Wizard/Pages/70-passwd-type.qml:103
578+msgctxt "Label: Type of security method"
579+msgid "Create passcode (numbers only)"
580+msgstr ""
557581
558−#: qml/Wizard/Pages/30-passwd-type.qml:108
582+#: qml/Wizard/Pages/70-passwd-type.qml:105
559583msgctxt "Label: Type of security method"
560−msgid "Passphrase"
561−msgstr "Пароль"
584+msgid "No lock code"
585+msgstr ""
562586
563−#: qml/Wizard/Pages/30-passwd-type.qml:109
564−msgctxt "Label: Description of security method"
565−msgid "Numbers and letters"
566−msgstr "Літары і лічбы"
587+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
588+msgid "Privacy Policy"
589+msgstr ""
567590
568−#: qml/Wizard/Pages/40-wifi.qml:29
569−msgid "Connect to Wi‑Fi"
570−msgstr "Злучыцца з Wi-Fi"
591+#: qml/Wizard/Pages/75-report-check.qml:26
592+msgid "Help Us Improve"
593+msgstr ""
571594
572−#: qml/Wizard/Pages/40-wifi.qml:168
573−msgid "Available networks…"
574−msgstr "Даступныя сеткі..."
595+#: qml/Wizard/Pages/75-report-check.qml:59
596+msgid "Improve system performance by sending us crashes and error reports."
597+msgstr ""
575598
576−#: qml/Wizard/Pages/40-wifi.qml:169
577−msgid "No available networks."
578−msgstr "Няма даступных сетак."
599+#: qml/Wizard/Pages/75-report-check.qml:60
600+msgid "Privacy policy"
601+msgstr ""
579602
580−#: qml/Wizard/Pages/50-location.qml:27
581−msgid "Location"
582−msgstr "Месца"
603+#: qml/Wizard/Pages/80-finished.qml:89
604+msgid "Welcome to Ubuntu"
605+msgstr ""
583606
584−#: qml/Wizard/Pages/50-location.qml:62
585−msgid "Let the phone detect your location:"
586−msgstr "Дазволіць тэлефону вызначаць месцазнаходжанне:"
607+#: qml/Wizard/Pages/80-finished.qml:104
608+msgid "You are ready to use your device now"
609+msgstr ""
610+
611+#: qml/Wizard/Pages/80-finished.qml:124
612+msgid "Get Started"
613+msgstr ""
587614
588−#: qml/Wizard/Pages/50-location.qml:69
589−msgid "Using GPS only (less accurate)"
590−msgstr "З дапамогай толькі GPS (найменш дакладна)"
615+#: qml/Wizard/Pages/here-terms.qml:25
616+msgid "Terms & Conditions"
617+msgstr "Умовы карыстання"
591618
592−#: qml/Wizard/Pages/50-location.qml:86
593−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
619+#: qml/Wizard/Pages/here-terms.qml:69
620+msgid "Your device uses positioning technologies provided by HERE."
594621msgstr ""
595−"На аснове GPS, ананімізаванага Wi-Fi і дадзеных сотавай сеткі (рэкамендуецца)"
596622
597−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
598−#: qml/Wizard/Pages/50-location.qml:103
623+#: qml/Wizard/Pages/here-terms.qml:81
599624msgid ""
600−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
601−"conditions</a>."
625+"To provide you with positioning services and to improve their quality, HERE "
626+"collects information about nearby cell towers and Wi-Fi hotspots around your "
627+"current location whenever your position is being found."
602628msgstr ""
603−"Выбарам гэтага варыянту дзеянняў вы згаджаецеся з <a href='#'> умовамі "
604−"прадстаўлення паслуг Nokia HERE</a>."
605629
606−#: qml/Wizard/Pages/50-location.qml:112
607−msgid "Not at all"
608−msgstr "Не дазваляць"
630+#: qml/Wizard/Pages/here-terms.qml:93
631+msgid ""
632+"The information collected is used to analyze the service and to improve the "
633+"use of service, but not to identify you personally."
634+msgstr ""
609635
610−#: qml/Wizard/Pages/50-location.qml:124
611−msgid "You can change your mind later in <b>System Settings</b>."
612−msgstr "Пасля змяніць налады можна з дапамогай <b>Сістэмных наладкаў</b>."
636+#: qml/Wizard/Pages/here-terms.qml:106
637+#, qt-format
638+msgid "By continuing, you agree to the HERE platform %1 and %2."
639+msgstr ""
613640
614−#: qml/Wizard/Pages/60-reporting.qml:26
615−msgid "Improving your experience"
616−msgstr "Спрашчэнне вашай працы"
641+#: qml/Wizard/Pages/here-terms.qml:107
642+msgid "Service Terms"
643+msgstr ""
617644
618−#: qml/Wizard/Pages/60-reporting.qml:46
619−msgid ""
620−"Your phone is set up to automatically report errors to Canonical and its "
621−"partners, the makers of the operating system."
645+#: qml/Wizard/Pages/passcode-confirm.qml:43
646+#: qml/Wizard/Pages/passcode-desktop.qml:80
647+msgid "Confirm passcode"
648+msgstr "Пацвердзіце код-пароль"
649+
650+#: qml/Wizard/Pages/passcode-confirm.qml:45
651+msgid "Incorrect passcode."
622652msgstr ""
623−"Ваш тэлефон настроены на аўтаматычную адпраўку справаздач пра памылкі ў "
624−"Canonical і партнёрскія установы, вытворцам аперацыйнай сістэмы."
625653
626−#: qml/Wizard/Pages/60-reporting.qml:53
627−msgid ""
628−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
629−"Privacy</b>"
654+#: qml/Wizard/Pages/passcode-confirm.qml:45
655+msgctxt "Enter the passcode again"
656+msgid "Please re-enter."
630657msgstr ""
631−"Гэтае можна адключыць у <b>Сістэмных наладках</b>, дзе <b>Бяспека &amp; "
632−"канфедэнцыйнасці</b>"
633658
634−#: qml/Wizard/Pages/80-finished.qml:24
635−msgid "All done"
636−msgstr "Зроблена"
659+#: qml/Wizard/Pages/passcode-desktop.qml:30
660+msgid "Lock Screen Passcode"
661+msgstr ""
637662
638−#: qml/Wizard/Pages/80-finished.qml:39
639−msgid "Nice work!"
640−msgstr "Выдатная праца!"
663+#: qml/Wizard/Pages/passcode-desktop.qml:56
664+msgid "Enter 4 numbers to setup your passcode"
665+msgstr ""
641666
642−#: qml/Wizard/Pages/80-finished.qml:46
643−msgid "Your device is now ready to use."
667+#: qml/Wizard/Pages/passcode-desktop.qml:65
668+#: qml/Wizard/Pages/passcode-set.qml:54
669+msgid "Choose passcode"
644670msgstr ""
645671
646−#: qml/Wizard/Pages/80-finished.qml:53
647−msgid "Finish"
648−msgstr "Скончыць"
672+#: qml/Wizard/Pages/passcode-desktop.qml:105
673+msgid "Passcode too short"
674+msgstr ""
649675
650−#: qml/Wizard/Pages/here-terms.qml:27
651−msgid "Terms & Conditions"
652−msgstr "Умовы карыстання"
676+#: qml/Wizard/Pages/passcode-desktop.qml:107
677+msgid "Passcodes match"
678+msgstr ""
653679
654−#: qml/Wizard/Pages/passwd-confirm.qml:49
655−msgid "Confirm passphrase"
656−msgstr "Пацвердзіце пароль"
680+#: qml/Wizard/Pages/passcode-desktop.qml:109
681+msgid "Passcodes do not match"
682+msgstr ""
657683
658−#: qml/Wizard/Pages/passwd-confirm.qml:50
659−msgid "Confirm passcode"
660−msgstr "Пацвердзіце код-пароль"
684+#: qml/Wizard/Pages/passcode-set.qml:62
685+msgid "Passcode must be 4 characters long"
686+msgstr ""
661687
662−#: qml/Wizard/Pages/passwd-confirm.qml:53
663−#: qml/Wizard/Pages/passwd-confirm.qml:54
664−msgid "Please try again."
665−msgstr "Калі ласка, паспрабуйце яшчэ раз."
688+#: qml/Wizard/Pages/password-set.qml:30
689+msgid "Lock Screen Password"
690+msgstr ""
666691
667−#: qml/Wizard/Pages/passwd-set.qml:61
668−msgid "Choose your passcode"
669−msgstr "Выберыце код"
692+#: qml/Wizard/Pages/password-set.qml:61
693+msgid "Enter at least 8 characters"
694+msgstr ""
670695
671−#: qml/Wizard/Pages/passwd-set.qml:68
672−msgid "Passphrase must be 4 characters long"
673−msgstr "Код мусіць складацца з 4 сімвалаў"
696+#: qml/Wizard/Pages/password-set.qml:73
697+msgid "Choose password"
698+msgstr ""
674699
675−#. Translators: This is the arrow for "Back" buttons
676−#: qml/Wizard/StackButton.qml:39
677−#, qt-format
678−msgid "〈 %1"
679−msgstr "〈 %1"
700+#: qml/Wizard/Pages/password-set.qml:103
701+msgid "Confirm password"
702+msgstr ""
680703
681−#. Translators: This is the arrow for "Forward" buttons
682−#: qml/Wizard/StackButton.qml:42
683−#, qt-format
684−msgid "%1 〉"
685−msgstr "%1 〉"
704+#: qml/Wizard/Pages/sim.qml:27
705+msgid "No SIM card installed"
706+msgstr ""
707+
708+#: qml/Wizard/Pages/sim.qml:54
709+msgid "SIM card added"
710+msgstr ""
711+
712+#: qml/Wizard/Pages/sim.qml:55
713+msgid "You must restart the device to access the mobile network."
714+msgstr ""
715+
716+#: qml/Wizard/Pages/sim.qml:59
717+msgid "Restart"
718+msgstr "Перазапусціць"
719+
720+#: qml/Wizard/Pages/sim.qml:78
721+msgid "You won’t be able to make calls or use text messaging without a SIM."
722+msgstr ""
723+
724+#: qml/Wizard/Pages/sim.qml:90
725+msgid "To proceed with no SIM tap Skip."
726+msgstr ""
727+
728+#: qml/Wizard/PasswordMeter.qml:87
729+msgid "Passwords match"
730+msgstr ""
731+
732+#: qml/Wizard/PasswordMeter.qml:89
733+msgid "Passwords do not match"
734+msgstr ""
735+
736+#: qml/Wizard/PasswordMeter.qml:93
737+msgid "Strong password"
738+msgstr ""
739+
740+#: qml/Wizard/PasswordMeter.qml:95
741+msgid "Fair password"
742+msgstr ""
743+
744+#: qml/Wizard/PasswordMeter.qml:97
745+msgid "Weak password"
746+msgstr ""
747+
748+#: qml/Wizard/PasswordMeter.qml:99
749+msgid "Very weak password"
750+msgstr ""
686751
687752#~ msgid "Reboot"
688753#~ msgstr "Перазагрузіць"
@@ -705,6 +770,12 @@ msgstr "%1 〉"
705770#~ msgid "Confirm"
706771#~ msgstr "Пацвердзіць"
707772
773+#~ msgid "Unlock SIM"
774+#~ msgstr "Разблакаваць SIM"
775+
776+#~ msgid "Roaming"
777+#~ msgstr "Роўмінг"
778+
708779#~ msgid "Try swiping from the right edge to unlock the phone"
709780#~ msgstr "Правядзіце пальцам з правага краю, каб разблакаваць тэлефон"
710781
@@ -723,6 +794,9 @@ msgstr "%1 〉"
723794#~ msgid "Log out"
724795#~ msgstr "Выйсці"
725796
797+#~ msgid "Are you sure you want to shut down?"
798+#~ msgstr "Вы ўпэўненыя, што жадаеце выключыць прыладу?"
799+
726800#~ msgid "Power"
727801#~ msgstr "Сілкаванне"
728802
@@ -746,17 +820,88 @@ msgstr "%1 〉"
746820#~ msgid "Store"
747821#~ msgstr "Крама"
748822
823+#~ msgid "Add a SIM card and restart your device"
824+#~ msgstr "Дадайце SIM-карту і перазагрузіце Вашую прыладу"
825+
826+#~ msgid "Hi!"
827+#~ msgstr "Вітай!"
828+
749829#~ msgid "Welcome to your Ubuntu phone."
750830#~ msgstr "Вітаем Вас у сістэме тэлефона Ubuntu."
751831
832+#~ msgid "Let’s get started."
833+#~ msgstr "Пачнем."
834+
835+#~ msgid "Continue"
836+#~ msgstr "Працягнуць"
837+
752838#~ msgid "Please select how you’d like to unlock your phone."
753839#~ msgstr "Калі ласка, абярыце спосаб разблакавання тэлефона."
754840
841+#~ msgid "Using GPS only (less accurate)"
842+#~ msgstr "З дапамогай толькі GPS (найменш дакладна)"
843+
844+#~ msgid "Available networks…"
845+#~ msgstr "Даступныя сеткі..."
846+
847+#~ msgid "No available networks."
848+#~ msgstr "Няма даступных сетак."
849+
850+#~ msgid "Location"
851+#~ msgstr "Месца"
852+
853+#~ msgid "Let the phone detect your location:"
854+#~ msgstr "Дазволіць тэлефону вызначаць месцазнаходжанне:"
855+
856+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
857+#~ msgstr ""
858+#~ "На аснове GPS, ананімізаванага Wi-Fi і дадзеных сотавай сеткі (рэкамендуецца)"
859+
860+#~ msgid "Improving your experience"
861+#~ msgstr "Спрашчэнне вашай працы"
862+
863+#~ msgid ""
864+#~ "Your phone is set up to automatically report errors to Canonical and its "
865+#~ "partners, the makers of the operating system."
866+#~ msgstr ""
867+#~ "Ваш тэлефон настроены на аўтаматычную адпраўку справаздач пра памылкі ў "
868+#~ "Canonical і партнёрскія установы, вытворцам аперацыйнай сістэмы."
869+
870+#~ msgid "Nice work!"
871+#~ msgstr "Выдатная праца!"
872+
873+#~ msgid "All done"
874+#~ msgstr "Зроблена"
875+
876+#~ msgid "Finish"
877+#~ msgstr "Скончыць"
878+
755879#~ msgid "Your phone is now ready to use."
756880#~ msgstr "Цяпер Вашым тэлефонам можна карыстацца."
757881
758−#~ msgid "Restart"
759−#~ msgstr "Перазапусціць"
882+#~ msgid ""
883+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
884+#~ "conditions</a>."
885+#~ msgstr ""
886+#~ "Выбарам гэтага варыянту дзеянняў вы згаджаецеся з <a href='#'> умовамі "
887+#~ "прадстаўлення паслуг Nokia HERE</a>."
888+
889+#~ msgid "Not at all"
890+#~ msgstr "Не дазваляць"
891+
892+#, qt-format
893+#~ msgid "〈 %1"
894+#~ msgstr "〈 %1"
895+
896+#~ msgid "Confirm passphrase"
897+#~ msgstr "Пацвердзіце пароль"
898+
899+#, qt-format
900+#~ msgid "%1 〉"
901+#~ msgstr "%1 〉"
902+
903+#~ msgid "Please try again."
904+#~ msgstr "Калі ласка, паспрабуйце яшчэ раз."
760905
761906#~ msgid "Close"
762907#~ msgstr "Закрыць"
@@ -778,6 +923,103 @@ msgstr "%1 〉"
778923#~ msgid "Please re-enter"
779924#~ msgstr "Калі ласка, паўтарыце ўвод"
780925
926+#~ msgid "Lock security"
927+#~ msgstr "Блакіроўка"
928+
929+#~ msgid "You can change your mind later in <b>System Settings</b>."
930+#~ msgstr "Пасля змяніць налады можна з дапамогай <b>Сістэмных наладкаў</b>."
931+
932+#~ msgid ""
933+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
934+#~ "Privacy</b>"
935+#~ msgstr ""
936+#~ "Гэтае можна адключыць у <b>Сістэмных наладках</b>, дзе <b>Бяспека &amp; "
937+#~ "канфедэнцыйнасці</b>"
938+
939+#~ msgid "Choose your passcode"
940+#~ msgstr "Выберыце код"
941+
942+#~ msgctxt "Button: Shut down the system"
943+#~ msgid "Shut down"
944+#~ msgstr "Выключыць"
945+
946+#~ msgctxt "Title: Reboot/Shut down dialog"
947+#~ msgid "Shut down"
948+#~ msgstr "Выключыць"
949+
950+#~ msgctxt "Button: Reboot the system"
951+#~ msgid "Reboot"
952+#~ msgstr "Перазагрузіць"
953+
954+#~ msgid "Swipe up from the bottom edge."
955+#~ msgstr "Правесці уверх ад ніжняга краю."
956+
957+#~ msgid "Open special menus"
958+#~ msgstr "Адкрыць спецыяльныя меню"
959+
960+#~ msgid "Tap here to finish."
961+#~ msgstr "Націсніце тут, каб завяршыць."
962+
963+#~ msgid "This action does different things for different apps"
964+#~ msgstr "Гэта дзеянне мае розныя наступствы для розных праграм"
965+
966+#~ msgid "To view open apps"
967+#~ msgstr "Паглядзець адкрытыя праграмы"
968+
969+#~ msgid "You almost got it!"
970+#~ msgstr "Амаль усё!"
971+
972+#~ msgid "Short swipe from the left edge."
973+#~ msgstr "Кароткі рух з левага краю."
974+
975+#~ msgid "Long swipe from the right edge."
976+#~ msgstr "Доўгі рух ад правага краю."
977+
978+#~ msgid "View all your running tasks."
979+#~ msgstr "Паказаць усе запушчаныя задачы."
980+
981+#~ msgid "Try again."
982+#~ msgstr "Паспрабуйце яшчэ."
983+
984+#~ msgid "Open the launcher"
985+#~ msgstr "Адкрыць панэль запуску"
986+
987+#~ msgid "Tap here to continue."
988+#~ msgstr "Націсніце тут, каб працягнуць."
989+
990+#~ msgid "These are the shortcuts to favorite apps"
991+#~ msgstr "Гэта скарачэнні для абраных праграм"
992+
993+#~ msgctxt "Label: Description of security method"
994+#~ msgid "No security"
995+#~ msgstr "Без бяспекі"
996+
997+#~ msgctxt "Label: Type of security method"
998+#~ msgid "Swipe"
999+#~ msgstr "Рух"
1000+
1001+#~ msgctxt "Label: Description of security method"
1002+#~ msgid "4 digits only"
1003+#~ msgstr "Толькі 4 лічбы"
1004+
1005+#~ msgctxt "Label: Type of security method"
1006+#~ msgid "Passphrase"
1007+#~ msgstr "Пароль"
1008+
1009+#~ msgctxt "Label: Description of security method"
1010+#~ msgid "Numbers and letters"
1011+#~ msgstr "Літары і лічбы"
1012+
1013+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
1014+#~ msgstr "Без яе Вы не зможаце тэлефанаваць ці адпраўляць паведамленні."
1015+
1016+#~ msgid "Passphrase must be 4 characters long"
1017+#~ msgstr "Код мусіць складацца з 4 сімвалаў"
1018+
1019+#~ msgctxt "Label: Type of security method"
1020+#~ msgid "Passcode"
1021+#~ msgstr "Код-пароль"
1022+
7811023#~ msgid "%a %l:%M %p"
7821024#~ msgstr "%a a %H:%M"
7831025
po/bg.po+269−197
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2015-04-12 14:43+0000\n"
1212"Last-Translator: George Karavasilev <kokoto-java@ubuntu.com>\n"
1313"Language-Team: Bulgarian <bg@li.org>\n"
@@ -15,23 +15,23 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19+"X-Generator: Launchpad (build 17958)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr ""
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
2727msgid "Pin shortcut"
2828msgstr ""
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
3535msgid "Unpin shortcut"
3636msgstr ""
3737
@@ -73,53 +73,35 @@ msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
77−#: qml/Components/Dialogs.qml:253
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
7879msgid "Cancel"
7980msgstr ""
8081
8182#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr ""
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr ""
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr ""
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr ""
99−
100−#: qml/Components/Dialogs.qml:207
10183msgctxt "Title: Reboot dialog"
10284msgid "Reboot"
10385msgstr ""
10486
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
10688msgid "Are you sure you want to reboot?"
10789msgstr ""
10890
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
11092msgid "No"
11193msgstr ""
11294
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:183
11496msgid "Yes"
11597msgstr ""
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr ""
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:199
123105msgid ""
124106"Are you sure you would like\n"
125107"to power off?"
@@ -127,25 +109,25 @@ msgstr ""
127109"Искате ли да \n"
128110"изключите захранването на устройството?"
129111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:201
131113msgctxt "Button: Power off the system"
132114msgid "Power off"
133115msgstr ""
134116
135−#: qml/Components/Dialogs.qml:244
117+#: qml/Components/Dialogs.qml:210
136118msgctxt "Button: Restart the system"
137119msgid "Restart"
138120msgstr ""
139121
140−#: qml/Components/Lockscreen.qml:245
122+#: qml/Components/Lockscreen.qml:231
141123msgid "Return to Call"
142124msgstr ""
143125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145127msgid "Emergency Call"
146128msgstr "Спешно повикване"
147129
148−#: qml/Components/Lockscreen.qml:277
130+#: qml/Components/Lockscreen.qml:263
149131msgid "OK"
150132msgstr ""
151133
@@ -154,6 +136,8 @@ msgid "Apps may have unsaved data:"
154136msgstr ""
155137
156138#: qml/Components/ModeSwitchWarningDialog.qml:57
139+msgctxt ""
140+"Re-dock means connect the device again to an external screen/mouse/keyboard"
157141msgid "Re-dock, save your work and close these apps to continue."
158142msgstr ""
159143
@@ -173,42 +157,58 @@ msgstr ""
173157msgid "Close all"
174158msgstr ""
175159
176−#: qml/Dash/DashPageHeader.qml:266
160+#: qml/Dash/DashPageHeader.qml:337
177161msgctxt "Button: Open the Ubuntu Store"
178162msgid "Store"
179163msgstr ""
180164
181−#: qml/Dash/DashPageHeader.qml:273
165+#: qml/Dash/DashPageHeader.qml:344
182166msgctxt "Button: Start a search in the current dash scope"
183167msgid "Search"
184168msgstr ""
185169
186−#: qml/Dash/DashPageHeader.qml:283
170+#: qml/Dash/DashPageHeader.qml:354
187171msgctxt "Button: Show the current dash scope settings"
188172msgid "Settings"
189173msgstr ""
190174
191−#: qml/Dash/DashPageHeader.qml:290
175+#: qml/Dash/DashPageHeader.qml:361
192176msgid "Remove from Favorites"
193177msgstr ""
194178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196180msgid "Add to Favorites"
197181msgstr ""
198182
199−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
183+#: qml/Dash/FiltersPopover.qml:60
184+msgid "Refine your results"
185+msgstr ""
186+
187+#: qml/Dash/FiltersPopover.qml:69
188+msgid "Reset"
189+msgstr ""
190+
191+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
200192msgid "See less"
201193msgstr ""
202194
203−#: qml/Dash/GenericScopeView.qml:587
195+#: qml/Dash/GenericScopeView.qml:570
204196msgid "See all"
205197msgstr ""
206198
207−#: qml/Dash/GenericScopeView.qml:649
199+#: qml/Dash/GenericScopeView.qml:627
208200msgctxt "Label: Hint for dash search line edit"
209201msgid "Search"
210202msgstr ""
211203
204+#: qml/Dash/PageHeaderExtraPanel.qml:55
205+msgid "Recent Searches"
206+msgstr ""
207+
208+#: qml/Dash/PageHeaderExtraPanel.qml:66
209+msgid "Clear All"
210+msgstr ""
211+
212212#: qml/Dash/Previews/PreviewActionCombo.qml:35
213213msgid "More..."
214214msgstr ""
@@ -230,7 +230,7 @@ msgstr "Оценете това"
230230msgid "Add a review"
231231msgstr "Добави отзив"
232232
233−#: qml/Dash/Previews/PreviewSharing.qml:50
233+#: qml/Dash/Previews/PreviewSharing.qml:66
234234msgid "Preview Share Item"
235235msgstr ""
236236
@@ -258,13 +258,13 @@ msgstr ""
258258msgid "Also installed"
259259msgstr ""
260260
261−#: qml/DisabledScreenNotice.qml:87
261+#: qml/DisabledScreenNotice.qml:104
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264−"touch pad to interact with the mouse."
264+"touch pad to interact with the pointer."
265265msgstr ""
266266
267−#: qml/Greeter/CoverPage.qml:107
267+#: qml/Greeter/CoverPage.qml:118
268268msgid "Unlock"
269269msgstr ""
270270
@@ -276,11 +276,11 @@ msgstr ""
276276msgid "Tap to unlock"
277277msgstr ""
278278
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
280280msgid "Sorry, incorrect passphrase."
281281msgstr ""
282282
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
284284msgid "Sorry, incorrect passcode."
285285msgstr ""
286286
@@ -305,7 +305,7 @@ msgstr ""
305305msgid "Enter %1"
306306msgstr ""
307307
308−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
308+#: qml/Greeter/NarrowView.qml:117
309309msgid "Enter passphrase"
310310msgstr ""
311311
@@ -343,62 +343,62 @@ msgstr ""
343343msgid "Conference"
344344msgstr ""
345345
346−#: qml/Panel/Indicators/MenuItemFactory.qml:753
346+#: qml/Panel/Indicators/MenuItemFactory.qml:761
347347msgid "Nothing is playing"
348348msgstr ""
349349
350−#: qml/Panel/Indicators/MenuItemFactory.qml:882
350+#: qml/Panel/Indicators/MenuItemFactory.qml:890
351351#, qt-format
352352msgid "%1 hour"
353353msgid_plural "%1 hours"
354354msgstr[0] ""
355355msgstr[1] ""
356356
357−#: qml/Panel/Indicators/MenuItemFactory.qml:886
357+#: qml/Panel/Indicators/MenuItemFactory.qml:894
358358#, qt-format
359359msgid "%1 minute"
360360msgid_plural "%1 minutes"
361361msgstr[0] ""
362362msgstr[1] ""
363363
364−#: qml/Panel/Indicators/MenuItemFactory.qml:891
364+#: qml/Panel/Indicators/MenuItemFactory.qml:899
365365#, qt-format
366366msgid "%1 second"
367367msgid_plural "%1 seconds"
368368msgstr[0] ""
369369msgstr[1] ""
370370
371−#: qml/Panel/Indicators/MenuItemFactory.qml:894
371+#: qml/Panel/Indicators/MenuItemFactory.qml:902
372372msgid "0 seconds"
373373msgstr ""
374374
375375#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
376−#: qml/Panel/Indicators/MenuItemFactory.qml:896
376+#: qml/Panel/Indicators/MenuItemFactory.qml:904
377377#, qt-format
378378msgid "%1 remaining"
379379msgstr ""
380380
381−#: qml/Panel/Indicators/MenuItemFactory.qml:902
381+#: qml/Panel/Indicators/MenuItemFactory.qml:910
382382msgid "In queue…"
383383msgstr ""
384384
385−#: qml/Panel/Indicators/MenuItemFactory.qml:906
385+#: qml/Panel/Indicators/MenuItemFactory.qml:914
386386msgid "Downloading"
387387msgstr ""
388388
389−#: qml/Panel/Indicators/MenuItemFactory.qml:908
389+#: qml/Panel/Indicators/MenuItemFactory.qml:916
390390msgid "Paused, tap to resume"
391391msgstr ""
392392
393−#: qml/Panel/Indicators/MenuItemFactory.qml:910
393+#: qml/Panel/Indicators/MenuItemFactory.qml:918
394394msgid "Canceled"
395395msgstr ""
396396
397−#: qml/Panel/Indicators/MenuItemFactory.qml:912
397+#: qml/Panel/Indicators/MenuItemFactory.qml:920
398398msgid "Finished"
399399msgstr ""
400400
401−#: qml/Panel/Indicators/MenuItemFactory.qml:914
401+#: qml/Panel/Indicators/MenuItemFactory.qml:922
402402msgid "Failed, tap to retry"
403403msgstr ""
404404
@@ -418,251 +418,323 @@ msgctxt "Button: Call back on phone"
418418msgid "Call back"
419419msgstr ""
420420
421−#: qml/Panel/Indicators/ModemInfoItem.qml:105
422−msgid "Unlock SIM"
421+#: qml/Stages/SideStage.qml:76
422+msgid "Drag using 3 fingers any application from one window to the other"
423423msgstr ""
424424
425−#: qml/Panel/Indicators/RoamingIndication.qml:27
426−msgid "Roaming"
425+#: qml/Tutorial/TutorialBottom.qml:78
426+msgid "Swipe up to add a contact"
427427msgstr ""
428428
429−#: qml/Tutorial/TutorialBottom.qml:28
430−msgid "Open special menus"
429+#: qml/Tutorial/TutorialBottom.qml:80
430+msgid "Swipe up for favorite calculations"
431431msgstr ""
432432
433−#: qml/Tutorial/TutorialBottom.qml:29
434−msgid "Swipe up from the bottom edge."
433+#: qml/Tutorial/TutorialBottom.qml:82
434+msgid "Swipe up for recent calls"
435435msgstr ""
436436
437−#: qml/Tutorial/TutorialBottomFinish.qml:24
438−msgid "This action does different things for different apps"
437+#: qml/Tutorial/TutorialBottom.qml:84
438+msgid "Swipe up to create a message"
439439msgstr ""
440440
441−#: qml/Tutorial/TutorialBottomFinish.qml:25
442−msgid "Tap here to finish."
441+#: qml/Tutorial/TutorialBottom.qml:85
442+msgid "Swipe up to manage the app"
443443msgstr ""
444444
445−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
446−#: qml/Tutorial/TutorialRight.qml:144
447−msgid "Tap here to continue."
445+#: qml/Tutorial/TutorialLeft.qml:47
446+msgid "Swipe from the left edge to open the launcher"
448447msgstr ""
449448
450−#: qml/Tutorial/TutorialLeft.qml:26
451−msgid "Open the launcher"
449+#: qml/Tutorial/TutorialLeftLong.qml:47
450+msgid "Long swipe from the left edge to open the Today scope"
452451msgstr ""
453452
454−#: qml/Tutorial/TutorialLeft.qml:27
455−msgid "Short swipe from the left edge."
453+#: qml/Tutorial/TutorialRight.qml:54
454+msgid "Hover your mouse on the right edge to view your open apps"
456455msgstr ""
457456
458−#: qml/Tutorial/TutorialLeftFinish.qml:24
459−msgid "These are the shortcuts to favorite apps"
457+#: qml/Tutorial/TutorialRight.qml:55
458+msgid "Short or long swipe from the right edge to view your open apps"
460459msgstr ""
461460
462−#: qml/Tutorial/TutorialPage.qml:178
463−msgid "You almost got it!"
461+#: qml/Tutorial/TutorialTop.qml:53
462+msgid "Swipe from the top right edge to open the notification bar"
464463msgstr ""
465464
466−#: qml/Tutorial/TutorialPage.qml:195
467−msgid "Try again."
465+#: qml/Tutorial/TutorialTop.qml:54
466+msgid "Swipe from the top edge to open the notification bar"
468467msgstr ""
469468
470−#: qml/Tutorial/TutorialRight.qml:31
471−msgid "To view open apps"
469+#: qml/Wizard/Page.qml:54
470+msgctxt "Button: Go back one page in the Wizard"
471+msgid "Back"
472472msgstr ""
473473
474−#: qml/Tutorial/TutorialRight.qml:32
475−msgid "Long swipe from the right edge."
474+#: qml/Wizard/Pages/10-welcome.qml:27
475+msgid "Language"
476476msgstr ""
477477
478−#: qml/Tutorial/TutorialRight.qml:122
479−msgid "View all your running tasks."
478+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
479+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
480+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
481+#: qml/Wizard/Pages/75-report-check.qml:84
482+#: qml/Wizard/Pages/passcode-desktop.qml:124
483+#: qml/Wizard/Pages/password-set.qml:141
484+msgid "Next"
480485msgstr ""
481486
482−#: qml/Wizard/Page.qml:89
483−msgctxt "Button: Go back one page in the Wizard"
484−msgid "Back"
487+#: qml/Wizard/Pages/30-wifi.qml:29
488+msgid "Connect to Wi‑Fi"
485489msgstr ""
486490
487−#: qml/Wizard/Pages/10-welcome.qml:27
488−msgid "Hi!"
491+#: qml/Wizard/Pages/30-wifi.qml:130
492+msgid "Connected"
489493msgstr ""
490494
491−#: qml/Wizard/Pages/10-welcome.qml:44
492−msgid "Welcome to your Ubuntu device."
495+#: qml/Wizard/Pages/30-wifi.qml:163
496+msgid "Available Wi-Fi networks"
493497msgstr ""
494498
495−#: qml/Wizard/Pages/10-welcome.qml:52
496−msgid "Let’s get started."
499+#: qml/Wizard/Pages/30-wifi.qml:164
500+msgid "No available Wi-Fi networks"
497501msgstr ""
498502
499−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
500−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
501−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
502−#: qml/Wizard/Pages/passwd-set.qml:90
503−msgid "Continue"
503+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
504+#: qml/Wizard/Pages/sim.qml:101
505+msgid "Skip"
504506msgstr ""
505507
506−#: qml/Wizard/Pages/20-sim.qml:25
507−msgid "Add a SIM card and restart your device"
508+#: qml/Wizard/Pages/40-location.qml:27
509+msgid "Location Services"
508510msgstr ""
509511
510−#: qml/Wizard/Pages/20-sim.qml:59
511−msgid "Without it, you won’t be able to make calls or use text messaging."
512+#: qml/Wizard/Pages/40-location.qml:83
513+msgid ""
514+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
515+"(recommended)"
512516msgstr ""
513517
514−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
515−msgid "Skip"
518+#: qml/Wizard/Pages/40-location.qml:105
519+#, qt-format
520+msgid "By selecting this option you agree to the Nokia HERE %1."
516521msgstr ""
517522
518−#: qml/Wizard/Pages/30-passwd-type.qml:39
519−msgid "Lock security"
523+#: qml/Wizard/Pages/40-location.qml:106
524+msgctxt "part of: Nokia HERE terms and conditions"
525+msgid "terms and conditions"
520526msgstr ""
521527
522−#: qml/Wizard/Pages/30-passwd-type.qml:79
523−msgid "Please select how you’d like to unlock your device."
528+#: qml/Wizard/Pages/40-location.qml:160
529+msgid "GPS only"
524530msgstr ""
525531
526−#: qml/Wizard/Pages/30-passwd-type.qml:102
527−msgctxt "Label: Type of security method"
528−msgid "Swipe"
532+#: qml/Wizard/Pages/40-location.qml:214
533+msgid "Don't use my location"
534+msgstr ""
535+
536+#: qml/Wizard/Pages/40-location.qml:260
537+msgid "You can change it later in System Settings."
538+msgstr ""
539+
540+#: qml/Wizard/Pages/50-timezone.qml:29
541+msgid "Time Zone"
542+msgstr ""
543+
544+#: qml/Wizard/Pages/50-timezone.qml:178
545+msgid "Enter your city"
546+msgstr ""
547+
548+#: qml/Wizard/Pages/60-account.qml:24
549+msgid "Personalize Your Device"
550+msgstr ""
551+
552+#: qml/Wizard/Pages/60-account.qml:48
553+msgid "Preferred Name"
529554msgstr ""
530555
531−#: qml/Wizard/Pages/30-passwd-type.qml:103
532−msgctxt "Label: Description of security method"
533−msgid "No security"
556+#: qml/Wizard/Pages/70-passwd-type.qml:39
557+msgid "Lock Screen"
534558msgstr ""
535559
536−#: qml/Wizard/Pages/30-passwd-type.qml:105
560+#: qml/Wizard/Pages/70-passwd-type.qml:101
537561msgctxt "Label: Type of security method"
538−msgid "Passcode"
562+msgid "Create new password"
539563msgstr ""
540564
541−#: qml/Wizard/Pages/30-passwd-type.qml:106
542−msgctxt "Label: Description of security method"
543−msgid "4 digits only"
565+#: qml/Wizard/Pages/70-passwd-type.qml:103
566+msgctxt "Label: Type of security method"
567+msgid "Create passcode (numbers only)"
544568msgstr ""
545569
546−#: qml/Wizard/Pages/30-passwd-type.qml:108
570+#: qml/Wizard/Pages/70-passwd-type.qml:105
547571msgctxt "Label: Type of security method"
548−msgid "Passphrase"
572+msgid "No lock code"
549573msgstr ""
550574
551−#: qml/Wizard/Pages/30-passwd-type.qml:109
552−msgctxt "Label: Description of security method"
553−msgid "Numbers and letters"
575+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
576+msgid "Privacy Policy"
554577msgstr ""
555578
556−#: qml/Wizard/Pages/40-wifi.qml:29
557−msgid "Connect to Wi‑Fi"
579+#: qml/Wizard/Pages/75-report-check.qml:26
580+msgid "Help Us Improve"
558581msgstr ""
559582
560−#: qml/Wizard/Pages/40-wifi.qml:168
561−msgid "Available networks…"
583+#: qml/Wizard/Pages/75-report-check.qml:59
584+msgid "Improve system performance by sending us crashes and error reports."
562585msgstr ""
563586
564−#: qml/Wizard/Pages/40-wifi.qml:169
565−msgid "No available networks."
587+#: qml/Wizard/Pages/75-report-check.qml:60
588+msgid "Privacy policy"
566589msgstr ""
567590
568−#: qml/Wizard/Pages/50-location.qml:27
569−msgid "Location"
591+#: qml/Wizard/Pages/80-finished.qml:89
592+msgid "Welcome to Ubuntu"
570593msgstr ""
571594
572−#: qml/Wizard/Pages/50-location.qml:62
573−msgid "Let the phone detect your location:"
595+#: qml/Wizard/Pages/80-finished.qml:104
596+msgid "You are ready to use your device now"
574597msgstr ""
575598
576−#: qml/Wizard/Pages/50-location.qml:69
577−msgid "Using GPS only (less accurate)"
599+#: qml/Wizard/Pages/80-finished.qml:124
600+msgid "Get Started"
601+msgstr ""
602+
603+#: qml/Wizard/Pages/here-terms.qml:25
604+msgid "Terms & Conditions"
578605msgstr ""
579606
580−#: qml/Wizard/Pages/50-location.qml:86
581−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
607+#: qml/Wizard/Pages/here-terms.qml:69
608+msgid "Your device uses positioning technologies provided by HERE."
582609msgstr ""
583610
584−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
585−#: qml/Wizard/Pages/50-location.qml:103
611+#: qml/Wizard/Pages/here-terms.qml:81
586612msgid ""
587−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
588−"conditions</a>."
613+"To provide you with positioning services and to improve their quality, HERE "
614+"collects information about nearby cell towers and Wi-Fi hotspots around your "
615+"current location whenever your position is being found."
589616msgstr ""
590617
591−#: qml/Wizard/Pages/50-location.qml:112
592−msgid "Not at all"
618+#: qml/Wizard/Pages/here-terms.qml:93
619+msgid ""
620+"The information collected is used to analyze the service and to improve the "
621+"use of service, but not to identify you personally."
593622msgstr ""
594623
595−#: qml/Wizard/Pages/50-location.qml:124
596−msgid "You can change your mind later in <b>System Settings</b>."
624+#: qml/Wizard/Pages/here-terms.qml:106
625+#, qt-format
626+msgid "By continuing, you agree to the HERE platform %1 and %2."
597627msgstr ""
598628
599−#: qml/Wizard/Pages/60-reporting.qml:26
600−msgid "Improving your experience"
629+#: qml/Wizard/Pages/here-terms.qml:107
630+msgid "Service Terms"
601631msgstr ""
602632
603−#: qml/Wizard/Pages/60-reporting.qml:46
604−msgid ""
605−"Your phone is set up to automatically report errors to Canonical and its "
606−"partners, the makers of the operating system."
633+#: qml/Wizard/Pages/passcode-confirm.qml:43
634+#: qml/Wizard/Pages/passcode-desktop.qml:80
635+msgid "Confirm passcode"
607636msgstr ""
608637
609−#: qml/Wizard/Pages/60-reporting.qml:53
610−msgid ""
611−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
612−"Privacy</b>"
638+#: qml/Wizard/Pages/passcode-confirm.qml:45
639+msgid "Incorrect passcode."
613640msgstr ""
614641
615−#: qml/Wizard/Pages/80-finished.qml:24
616−msgid "All done"
642+#: qml/Wizard/Pages/passcode-confirm.qml:45
643+msgctxt "Enter the passcode again"
644+msgid "Please re-enter."
617645msgstr ""
618646
619−#: qml/Wizard/Pages/80-finished.qml:39
620−msgid "Nice work!"
647+#: qml/Wizard/Pages/passcode-desktop.qml:30
648+msgid "Lock Screen Passcode"
621649msgstr ""
622650
623−#: qml/Wizard/Pages/80-finished.qml:46
624−msgid "Your device is now ready to use."
651+#: qml/Wizard/Pages/passcode-desktop.qml:56
652+msgid "Enter 4 numbers to setup your passcode"
625653msgstr ""
626654
627−#: qml/Wizard/Pages/80-finished.qml:53
628−msgid "Finish"
655+#: qml/Wizard/Pages/passcode-desktop.qml:65
656+#: qml/Wizard/Pages/passcode-set.qml:54
657+msgid "Choose passcode"
629658msgstr ""
630659
631−#: qml/Wizard/Pages/here-terms.qml:27
632−msgid "Terms & Conditions"
660+#: qml/Wizard/Pages/passcode-desktop.qml:105
661+msgid "Passcode too short"
633662msgstr ""
634663
635−#: qml/Wizard/Pages/passwd-confirm.qml:49
636−msgid "Confirm passphrase"
664+#: qml/Wizard/Pages/passcode-desktop.qml:107
665+msgid "Passcodes match"
637666msgstr ""
638667
639−#: qml/Wizard/Pages/passwd-confirm.qml:50
640−msgid "Confirm passcode"
668+#: qml/Wizard/Pages/passcode-desktop.qml:109
669+msgid "Passcodes do not match"
641670msgstr ""
642671
643−#: qml/Wizard/Pages/passwd-confirm.qml:53
644−#: qml/Wizard/Pages/passwd-confirm.qml:54
645−msgid "Please try again."
672+#: qml/Wizard/Pages/passcode-set.qml:62
673+msgid "Passcode must be 4 characters long"
646674msgstr ""
647675
648−#: qml/Wizard/Pages/passwd-set.qml:61
649−msgid "Choose your passcode"
676+#: qml/Wizard/Pages/password-set.qml:30
677+msgid "Lock Screen Password"
650678msgstr ""
651679
652−#: qml/Wizard/Pages/passwd-set.qml:68
653−msgid "Passphrase must be 4 characters long"
680+#: qml/Wizard/Pages/password-set.qml:61
681+msgid "Enter at least 8 characters"
654682msgstr ""
655683
656−#. Translators: This is the arrow for "Back" buttons
657−#: qml/Wizard/StackButton.qml:39
658−#, qt-format
659−msgid "〈 %1"
684+#: qml/Wizard/Pages/password-set.qml:73
685+msgid "Choose password"
660686msgstr ""
661687
662−#. Translators: This is the arrow for "Forward" buttons
663−#: qml/Wizard/StackButton.qml:42
664−#, qt-format
665−msgid "%1 〉"
688+#: qml/Wizard/Pages/password-set.qml:103
689+msgid "Confirm password"
690+msgstr ""
691+
692+#: qml/Wizard/Pages/sim.qml:27
693+msgid "No SIM card installed"
694+msgstr ""
695+
696+#: qml/Wizard/Pages/sim.qml:54
697+msgid "SIM card added"
698+msgstr ""
699+
700+#: qml/Wizard/Pages/sim.qml:55
701+msgid "You must restart the device to access the mobile network."
702+msgstr ""
703+
704+#: qml/Wizard/Pages/sim.qml:59
705+msgid "Restart"
706+msgstr ""
707+
708+#: qml/Wizard/Pages/sim.qml:78
709+msgid "You won’t be able to make calls or use text messaging without a SIM."
710+msgstr ""
711+
712+#: qml/Wizard/Pages/sim.qml:90
713+msgid "To proceed with no SIM tap Skip."
714+msgstr ""
715+
716+#: qml/Wizard/PasswordMeter.qml:87
717+msgid "Passwords match"
718+msgstr ""
719+
720+#: qml/Wizard/PasswordMeter.qml:89
721+msgid "Passwords do not match"
722+msgstr ""
723+
724+#: qml/Wizard/PasswordMeter.qml:93
725+msgid "Strong password"
726+msgstr ""
727+
728+#: qml/Wizard/PasswordMeter.qml:95
729+msgid "Fair password"
730+msgstr ""
731+
732+#: qml/Wizard/PasswordMeter.qml:97
733+msgid "Weak password"
734+msgstr ""
735+
736+#: qml/Wizard/PasswordMeter.qml:99
737+msgid "Very weak password"
666738msgstr ""
667739
668740#~ msgid "Confirm"
po/bn.po+358−217
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2015-11-27 19:38+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Bengali <bn@li.org>\n"
@@ -15,23 +15,23 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19+"X-Generator: Launchpad (build 17958)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "পাসওয়ার্ড: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
2727msgid "Pin shortcut"
2828msgstr "পিন"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
3535msgid "Unpin shortcut"
3636msgstr "আনপিন"
3737
@@ -73,53 +73,35 @@ msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
77−#: qml/Components/Dialogs.qml:253
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
7879msgid "Cancel"
7980msgstr "বাতিল"
8081
8182#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr "বন্ধ করুন"
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr "আপনি কি কম্পিউটার বন্ধ করতে চান?"
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr "পুনরায় চালু করুন"
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr "বন্ধ করুন"
99−
100−#: qml/Components/Dialogs.qml:207
10183msgctxt "Title: Reboot dialog"
10284msgid "Reboot"
10385msgstr "পুনরায় চালু"
10486
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
10688msgid "Are you sure you want to reboot?"
10789msgstr "আপনি কি পুনরায় চালু করতে চান?"
10890
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
11092msgid "No"
11193msgstr "না"
11294
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:183
11496msgid "Yes"
11597msgstr "হ্যাঁ"
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr ""
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:199
123105msgid ""
124106"Are you sure you would like\n"
125107"to power off?"
@@ -127,25 +109,25 @@ msgstr ""
127109"আপনি নিশ্চিত যে আপনি\n"
128110"বন্ধ করতে চান?"
129111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:201
131113msgctxt "Button: Power off the system"
132114msgid "Power off"
133115msgstr "বন্ধ করুন"
134116
135−#: qml/Components/Dialogs.qml:244
117+#: qml/Components/Dialogs.qml:210
136118msgctxt "Button: Restart the system"
137119msgid "Restart"
138120msgstr "পুনরায় চালু"
139121
140−#: qml/Components/Lockscreen.qml:245
122+#: qml/Components/Lockscreen.qml:231
141123msgid "Return to Call"
142124msgstr "কল এ ফিরে যান"
143125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145127msgid "Emergency Call"
146128msgstr "জরুরী কল"
147129
148−#: qml/Components/Lockscreen.qml:277
130+#: qml/Components/Lockscreen.qml:263
149131msgid "OK"
150132msgstr "ঠিক আছে"
151133
@@ -154,6 +136,8 @@ msgid "Apps may have unsaved data:"
154136msgstr ""
155137
156138#: qml/Components/ModeSwitchWarningDialog.qml:57
139+msgctxt ""
140+"Re-dock means connect the device again to an external screen/mouse/keyboard"
157141msgid "Re-dock, save your work and close these apps to continue."
158142msgstr ""
159143
@@ -173,42 +157,58 @@ msgstr ""
173157msgid "Close all"
174158msgstr ""
175159
176−#: qml/Dash/DashPageHeader.qml:266
160+#: qml/Dash/DashPageHeader.qml:337
177161msgctxt "Button: Open the Ubuntu Store"
178162msgid "Store"
179163msgstr "স্টোর"
180164
181−#: qml/Dash/DashPageHeader.qml:273
165+#: qml/Dash/DashPageHeader.qml:344
182166msgctxt "Button: Start a search in the current dash scope"
183167msgid "Search"
184168msgstr "খুঁজুন"
185169
186−#: qml/Dash/DashPageHeader.qml:283
170+#: qml/Dash/DashPageHeader.qml:354
187171msgctxt "Button: Show the current dash scope settings"
188172msgid "Settings"
189173msgstr "সেটিংস"
190174
191−#: qml/Dash/DashPageHeader.qml:290
175+#: qml/Dash/DashPageHeader.qml:361
192176msgid "Remove from Favorites"
193177msgstr "পছন্দ থেকে মুছে ফেলুন"
194178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196180msgid "Add to Favorites"
197181msgstr "পছন্দতে যোগ করুন"
198182
199−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
183+#: qml/Dash/FiltersPopover.qml:60
184+msgid "Refine your results"
185+msgstr ""
186+
187+#: qml/Dash/FiltersPopover.qml:69
188+msgid "Reset"
189+msgstr ""
190+
191+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
200192msgid "See less"
201193msgstr "কম দেখুন"
202194
203−#: qml/Dash/GenericScopeView.qml:587
195+#: qml/Dash/GenericScopeView.qml:570
204196msgid "See all"
205197msgstr "সব দেখুন"
206198
207−#: qml/Dash/GenericScopeView.qml:649
199+#: qml/Dash/GenericScopeView.qml:627
208200msgctxt "Label: Hint for dash search line edit"
209201msgid "Search"
210202msgstr "খুঁজুন"
211203
204+#: qml/Dash/PageHeaderExtraPanel.qml:55
205+msgid "Recent Searches"
206+msgstr ""
207+
208+#: qml/Dash/PageHeaderExtraPanel.qml:66
209+msgid "Clear All"
210+msgstr ""
211+
212212#: qml/Dash/Previews/PreviewActionCombo.qml:35
213213msgid "More..."
214214msgstr "আরো..."
@@ -230,7 +230,7 @@ msgstr "রেটিং দিন"
230230msgid "Add a review"
231231msgstr "আপনার মতামত দিন"
232232
233−#: qml/Dash/Previews/PreviewSharing.qml:50
233+#: qml/Dash/Previews/PreviewSharing.qml:66
234234msgid "Preview Share Item"
235235msgstr ""
236236
@@ -258,13 +258,13 @@ msgstr ""
258258msgid "Also installed"
259259msgstr "আরও ইন্সটল করা রয়েছে..."
260260
261−#: qml/DisabledScreenNotice.qml:87
261+#: qml/DisabledScreenNotice.qml:104
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264−"touch pad to interact with the mouse."
264+"touch pad to interact with the pointer."
265265msgstr ""
266266
267−#: qml/Greeter/CoverPage.qml:107
267+#: qml/Greeter/CoverPage.qml:118
268268msgid "Unlock"
269269msgstr "লক খুলুন"
270270
@@ -276,11 +276,11 @@ msgstr ""
276276msgid "Tap to unlock"
277277msgstr "লক খোলার জন্য চাপ দিন"
278278
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
280280msgid "Sorry, incorrect passphrase."
281281msgstr "দুঃখিত, পাসওয়ার্ডটি ভুল হয়েছে।"
282282
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
284284msgid "Sorry, incorrect passcode."
285285msgstr "দুঃখিত, পাসকোডটি ভুল হয়েছে।"
286286
@@ -306,7 +306,7 @@ msgstr "ভুল পাসকোড প্রদান করলে, আপন
306306msgid "Enter %1"
307307msgstr "%1 লিখুন"
308308
309−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
309+#: qml/Greeter/NarrowView.qml:117
310310msgid "Enter passphrase"
311311msgstr "পাসওয়ার্ড লিখুন"
312312
@@ -344,62 +344,62 @@ msgstr "কলে ফিরে যেতে চাপ দিন..."
344344msgid "Conference"
345345msgstr "কনফারেন্স"
346346
347−#: qml/Panel/Indicators/MenuItemFactory.qml:753
347+#: qml/Panel/Indicators/MenuItemFactory.qml:761
348348msgid "Nothing is playing"
349349msgstr "কোন কিছু বাজছে না।"
350350
351−#: qml/Panel/Indicators/MenuItemFactory.qml:882
351+#: qml/Panel/Indicators/MenuItemFactory.qml:890
352352#, qt-format
353353msgid "%1 hour"
354354msgid_plural "%1 hours"
355355msgstr[0] "%1 ঘণ্টা"
356356msgstr[1] "%1 ঘণ্টা"
357357
358−#: qml/Panel/Indicators/MenuItemFactory.qml:886
358+#: qml/Panel/Indicators/MenuItemFactory.qml:894
359359#, qt-format
360360msgid "%1 minute"
361361msgid_plural "%1 minutes"
362362msgstr[0] "%1 মিনিট"
363363msgstr[1] "%1 মিনিট"
364364
365−#: qml/Panel/Indicators/MenuItemFactory.qml:891
365+#: qml/Panel/Indicators/MenuItemFactory.qml:899
366366#, qt-format
367367msgid "%1 second"
368368msgid_plural "%1 seconds"
369369msgstr[0] "%1 সেকেন্ড"
370370msgstr[1] "%1 সেকেন্ড"
371371
372−#: qml/Panel/Indicators/MenuItemFactory.qml:894
372+#: qml/Panel/Indicators/MenuItemFactory.qml:902
373373msgid "0 seconds"
374374msgstr "0 সেকেন্ড"
375375
376376#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
377−#: qml/Panel/Indicators/MenuItemFactory.qml:896
377+#: qml/Panel/Indicators/MenuItemFactory.qml:904
378378#, qt-format
379379msgid "%1 remaining"
380380msgstr "%1 বাকি"
381381
382−#: qml/Panel/Indicators/MenuItemFactory.qml:902
382+#: qml/Panel/Indicators/MenuItemFactory.qml:910
383383msgid "In queue…"
384384msgstr "অপেক্ষায় রয়েছে..."
385385
386−#: qml/Panel/Indicators/MenuItemFactory.qml:906
386+#: qml/Panel/Indicators/MenuItemFactory.qml:914
387387msgid "Downloading"
388388msgstr "ডাউনলোড হচ্ছে"
389389
390−#: qml/Panel/Indicators/MenuItemFactory.qml:908
390+#: qml/Panel/Indicators/MenuItemFactory.qml:916
391391msgid "Paused, tap to resume"
392392msgstr "থামানো, শুরু করতে চাপ দিন"
393393
394−#: qml/Panel/Indicators/MenuItemFactory.qml:910
394+#: qml/Panel/Indicators/MenuItemFactory.qml:918
395395msgid "Canceled"
396396msgstr "বাতিল হয়েছে"
397397
398−#: qml/Panel/Indicators/MenuItemFactory.qml:912
398+#: qml/Panel/Indicators/MenuItemFactory.qml:920
399399msgid "Finished"
400400msgstr "শেষ"
401401
402−#: qml/Panel/Indicators/MenuItemFactory.qml:914
402+#: qml/Panel/Indicators/MenuItemFactory.qml:922
403403msgid "Failed, tap to retry"
404404msgstr "ব্যার্থ হয়েছে, পুনরায় চেষ্টা করতে চাপ দিন"
405405
@@ -419,259 +419,373 @@ msgctxt "Button: Call back on phone"
419419msgid "Call back"
420420msgstr "কল ব্যাক"
421421
422−#: qml/Panel/Indicators/ModemInfoItem.qml:105
423−msgid "Unlock SIM"
424−msgstr "সিম লক খুলুন করুন"
425−
426−#: qml/Panel/Indicators/RoamingIndication.qml:27
427−msgid "Roaming"
428−msgstr "রোমিং"
429−
430−#: qml/Tutorial/TutorialBottom.qml:28
431−msgid "Open special menus"
422+#: qml/Stages/SideStage.qml:76
423+msgid "Drag using 3 fingers any application from one window to the other"
432424msgstr ""
433425
434−#: qml/Tutorial/TutorialBottom.qml:29
435−msgid "Swipe up from the bottom edge."
436−msgstr "নিচের প্রান্ত হতে উপরের দিকে সোয়াইপ করুন।"
437−
438−#: qml/Tutorial/TutorialBottomFinish.qml:24
439−msgid "This action does different things for different apps"
440−msgstr "এই কাজটি বিভিন্ন অ্যাপের জন্য ভিন্ন ভিন্ন ভাবে কাজ করে।"
426+#: qml/Tutorial/TutorialBottom.qml:78
427+msgid "Swipe up to add a contact"
428+msgstr ""
441429
442−#: qml/Tutorial/TutorialBottomFinish.qml:25
443−msgid "Tap here to finish."
430+#: qml/Tutorial/TutorialBottom.qml:80
431+msgid "Swipe up for favorite calculations"
444432msgstr ""
445433
446−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
447−#: qml/Tutorial/TutorialRight.qml:144
448−msgid "Tap here to continue."
449−msgstr "অগ্রসর হওয়ার জন্য এখানে চাপ দিন।"
434+#: qml/Tutorial/TutorialBottom.qml:82
435+msgid "Swipe up for recent calls"
436+msgstr ""
450437
451−#: qml/Tutorial/TutorialLeft.qml:26
452−msgid "Open the launcher"
453−msgstr "লঞ্চার খুলুন"
438+#: qml/Tutorial/TutorialBottom.qml:84
439+msgid "Swipe up to create a message"
440+msgstr ""
454441
455−#: qml/Tutorial/TutorialLeft.qml:27
456−msgid "Short swipe from the left edge."
442+#: qml/Tutorial/TutorialBottom.qml:85
443+msgid "Swipe up to manage the app"
457444msgstr ""
458445
459−#: qml/Tutorial/TutorialLeftFinish.qml:24
460−msgid "These are the shortcuts to favorite apps"
461−msgstr "এগুলো আপনার প্রিয় অ্যাপেরর শর্টকাট"
446+#: qml/Tutorial/TutorialLeft.qml:47
447+msgid "Swipe from the left edge to open the launcher"
448+msgstr ""
462449
463−#: qml/Tutorial/TutorialPage.qml:178
464−msgid "You almost got it!"
465−msgstr "আপনি প্রায় পেরে গেছেন!"
450+#: qml/Tutorial/TutorialLeftLong.qml:47
451+msgid "Long swipe from the left edge to open the Today scope"
452+msgstr ""
466453
467−#: qml/Tutorial/TutorialPage.qml:195
468−msgid "Try again."
469−msgstr "আবার চেষ্টা করুন"
454+#: qml/Tutorial/TutorialRight.qml:54
455+msgid "Hover your mouse on the right edge to view your open apps"
456+msgstr ""
470457
471−#: qml/Tutorial/TutorialRight.qml:31
472−msgid "To view open apps"
473−msgstr "সচল অ্যাপগুলো দেখার জন্য"
458+#: qml/Tutorial/TutorialRight.qml:55
459+msgid "Short or long swipe from the right edge to view your open apps"
460+msgstr ""
474461
475−#: qml/Tutorial/TutorialRight.qml:32
476−msgid "Long swipe from the right edge."
462+#: qml/Tutorial/TutorialTop.qml:53
463+msgid "Swipe from the top right edge to open the notification bar"
477464msgstr ""
478465
479−#: qml/Tutorial/TutorialRight.qml:122
480−msgid "View all your running tasks."
466+#: qml/Tutorial/TutorialTop.qml:54
467+msgid "Swipe from the top edge to open the notification bar"
481468msgstr ""
482469
483−#: qml/Wizard/Page.qml:89
470+#: qml/Wizard/Page.qml:54
484471msgctxt "Button: Go back one page in the Wizard"
485472msgid "Back"
486473msgstr ""
487474
488475#: qml/Wizard/Pages/10-welcome.qml:27
489−msgid "Hi!"
476+msgid "Language"
490477msgstr ""
491478
492−#: qml/Wizard/Pages/10-welcome.qml:44
493−msgid "Welcome to your Ubuntu device."
479+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
480+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
481+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
482+#: qml/Wizard/Pages/75-report-check.qml:84
483+#: qml/Wizard/Pages/passcode-desktop.qml:124
484+#: qml/Wizard/Pages/password-set.qml:141
485+msgid "Next"
494486msgstr ""
495487
496−#: qml/Wizard/Pages/10-welcome.qml:52
497−msgid "Let’s get started."
498−msgstr "আসুন শুরু করা যাক।"
488+#: qml/Wizard/Pages/30-wifi.qml:29
489+msgid "Connect to Wi‑Fi"
490+msgstr ""
499491
500−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
501−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
502−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
503−#: qml/Wizard/Pages/passwd-set.qml:90
504−msgid "Continue"
505−msgstr "পরবর্তী"
492+#: qml/Wizard/Pages/30-wifi.qml:130
493+msgid "Connected"
494+msgstr ""
506495
507−#: qml/Wizard/Pages/20-sim.qml:25
508−msgid "Add a SIM card and restart your device"
509−msgstr "সিম কার্ড যোগ করুন এবং ফোন পুনরায় চালু করুন।"
496+#: qml/Wizard/Pages/30-wifi.qml:163
497+msgid "Available Wi-Fi networks"
498+msgstr ""
510499
511−#: qml/Wizard/Pages/20-sim.qml:59
512−msgid "Without it, you won’t be able to make calls or use text messaging."
513−msgstr "এটি ছাড়া, আপনি ফোন কল বা টেক্সট মেসেজ ব্যবহার করতে পারবেন না।"
500+#: qml/Wizard/Pages/30-wifi.qml:164
501+msgid "No available Wi-Fi networks"
502+msgstr ""
514503
515−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
504+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
505+#: qml/Wizard/Pages/sim.qml:101
516506msgid "Skip"
517507msgstr "এড়িয়ে যান"
518508
519−#: qml/Wizard/Pages/30-passwd-type.qml:39
520−msgid "Lock security"
521−msgstr "নিরাপত্তা লক"
509+#: qml/Wizard/Pages/40-location.qml:27
510+msgid "Location Services"
511+msgstr ""
522512
523−#: qml/Wizard/Pages/30-passwd-type.qml:79
524−msgid "Please select how you’d like to unlock your device."
513+#: qml/Wizard/Pages/40-location.qml:83
514+msgid ""
515+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
516+"(recommended)"
525517msgstr ""
526518
527−#: qml/Wizard/Pages/30-passwd-type.qml:102
528−msgctxt "Label: Type of security method"
529−msgid "Swipe"
519+#: qml/Wizard/Pages/40-location.qml:105
520+#, qt-format
521+msgid "By selecting this option you agree to the Nokia HERE %1."
522+msgstr ""
523+
524+#: qml/Wizard/Pages/40-location.qml:106
525+msgctxt "part of: Nokia HERE terms and conditions"
526+msgid "terms and conditions"
527+msgstr ""
528+
529+#: qml/Wizard/Pages/40-location.qml:160
530+msgid "GPS only"
530531msgstr ""
531532
532−#: qml/Wizard/Pages/30-passwd-type.qml:103
533−msgctxt "Label: Description of security method"
534−msgid "No security"
535−msgstr "কোন নিরাপত্তা নেই"
533+#: qml/Wizard/Pages/40-location.qml:214
534+msgid "Don't use my location"
535+msgstr ""
536536
537−#: qml/Wizard/Pages/30-passwd-type.qml:105
537+#: qml/Wizard/Pages/40-location.qml:260
538+msgid "You can change it later in System Settings."
539+msgstr ""
540+
541+#: qml/Wizard/Pages/50-timezone.qml:29
542+msgid "Time Zone"
543+msgstr ""
544+
545+#: qml/Wizard/Pages/50-timezone.qml:178
546+msgid "Enter your city"
547+msgstr ""
548+
549+#: qml/Wizard/Pages/60-account.qml:24
550+msgid "Personalize Your Device"
551+msgstr ""
552+
553+#: qml/Wizard/Pages/60-account.qml:48
554+msgid "Preferred Name"
555+msgstr ""
556+
557+#: qml/Wizard/Pages/70-passwd-type.qml:39
558+msgid "Lock Screen"
559+msgstr ""
560+
561+#: qml/Wizard/Pages/70-passwd-type.qml:101
538562msgctxt "Label: Type of security method"
539−msgid "Passcode"
540−msgstr "পাসকোড"
563+msgid "Create new password"
564+msgstr ""
541565
542−#: qml/Wizard/Pages/30-passwd-type.qml:106
543−msgctxt "Label: Description of security method"
544−msgid "4 digits only"
545−msgstr "কেবল মাত্র ৪টি সংখ্যা"
566+#: qml/Wizard/Pages/70-passwd-type.qml:103
567+msgctxt "Label: Type of security method"
568+msgid "Create passcode (numbers only)"
569+msgstr ""
546570
547−#: qml/Wizard/Pages/30-passwd-type.qml:108
571+#: qml/Wizard/Pages/70-passwd-type.qml:105
548572msgctxt "Label: Type of security method"
549−msgid "Passphrase"
573+msgid "No lock code"
550574msgstr ""
551575
552−#: qml/Wizard/Pages/30-passwd-type.qml:109
553−msgctxt "Label: Description of security method"
554−msgid "Numbers and letters"
576+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
577+msgid "Privacy Policy"
555578msgstr ""
556579
557−#: qml/Wizard/Pages/40-wifi.qml:29
558−msgid "Connect to Wi‑Fi"
580+#: qml/Wizard/Pages/75-report-check.qml:26
581+msgid "Help Us Improve"
559582msgstr ""
560583
561−#: qml/Wizard/Pages/40-wifi.qml:168
562−msgid "Available networks…"
584+#: qml/Wizard/Pages/75-report-check.qml:59
585+msgid "Improve system performance by sending us crashes and error reports."
563586msgstr ""
564587
565−#: qml/Wizard/Pages/40-wifi.qml:169
566−msgid "No available networks."
588+#: qml/Wizard/Pages/75-report-check.qml:60
589+msgid "Privacy policy"
567590msgstr ""
568591
569−#: qml/Wizard/Pages/50-location.qml:27
570−msgid "Location"
592+#: qml/Wizard/Pages/80-finished.qml:89
593+msgid "Welcome to Ubuntu"
571594msgstr ""
572595
573−#: qml/Wizard/Pages/50-location.qml:62
574−msgid "Let the phone detect your location:"
596+#: qml/Wizard/Pages/80-finished.qml:104
597+msgid "You are ready to use your device now"
575598msgstr ""
576599
577−#: qml/Wizard/Pages/50-location.qml:69
578−msgid "Using GPS only (less accurate)"
600+#: qml/Wizard/Pages/80-finished.qml:124
601+msgid "Get Started"
579602msgstr ""
580603
581−#: qml/Wizard/Pages/50-location.qml:86
582−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
604+#: qml/Wizard/Pages/here-terms.qml:25
605+msgid "Terms & Conditions"
583606msgstr ""
584607
585−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
586−#: qml/Wizard/Pages/50-location.qml:103
608+#: qml/Wizard/Pages/here-terms.qml:69
609+msgid "Your device uses positioning technologies provided by HERE."
610+msgstr ""
611+
612+#: qml/Wizard/Pages/here-terms.qml:81
587613msgid ""
588−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
589−"conditions</a>."
614+"To provide you with positioning services and to improve their quality, HERE "
615+"collects information about nearby cell towers and Wi-Fi hotspots around your "
616+"current location whenever your position is being found."
590617msgstr ""
591618
592−#: qml/Wizard/Pages/50-location.qml:112
593−msgid "Not at all"
619+#: qml/Wizard/Pages/here-terms.qml:93
620+msgid ""
621+"The information collected is used to analyze the service and to improve the "
622+"use of service, but not to identify you personally."
594623msgstr ""
595624
596−#: qml/Wizard/Pages/50-location.qml:124
597−msgid "You can change your mind later in <b>System Settings</b>."
625+#: qml/Wizard/Pages/here-terms.qml:106
626+#, qt-format
627+msgid "By continuing, you agree to the HERE platform %1 and %2."
598628msgstr ""
599629
600−#: qml/Wizard/Pages/60-reporting.qml:26
601−msgid "Improving your experience"
630+#: qml/Wizard/Pages/here-terms.qml:107
631+msgid "Service Terms"
602632msgstr ""
603633
604−#: qml/Wizard/Pages/60-reporting.qml:46
605−msgid ""
606−"Your phone is set up to automatically report errors to Canonical and its "
607−"partners, the makers of the operating system."
634+#: qml/Wizard/Pages/passcode-confirm.qml:43
635+#: qml/Wizard/Pages/passcode-desktop.qml:80
636+msgid "Confirm passcode"
608637msgstr ""
609638
610−#: qml/Wizard/Pages/60-reporting.qml:53
611−msgid ""
612−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
613−"Privacy</b>"
639+#: qml/Wizard/Pages/passcode-confirm.qml:45
640+msgid "Incorrect passcode."
614641msgstr ""
615642
616−#: qml/Wizard/Pages/80-finished.qml:24
617−msgid "All done"
643+#: qml/Wizard/Pages/passcode-confirm.qml:45
644+msgctxt "Enter the passcode again"
645+msgid "Please re-enter."
618646msgstr ""
619647
620−#: qml/Wizard/Pages/80-finished.qml:39
621−msgid "Nice work!"
648+#: qml/Wizard/Pages/passcode-desktop.qml:30
649+msgid "Lock Screen Passcode"
622650msgstr ""
623651
624−#: qml/Wizard/Pages/80-finished.qml:46
625−msgid "Your device is now ready to use."
652+#: qml/Wizard/Pages/passcode-desktop.qml:56
653+msgid "Enter 4 numbers to setup your passcode"
626654msgstr ""
627655
628−#: qml/Wizard/Pages/80-finished.qml:53
629−msgid "Finish"
656+#: qml/Wizard/Pages/passcode-desktop.qml:65
657+#: qml/Wizard/Pages/passcode-set.qml:54
658+msgid "Choose passcode"
630659msgstr ""
631660
632−#: qml/Wizard/Pages/here-terms.qml:27
633−msgid "Terms & Conditions"
661+#: qml/Wizard/Pages/passcode-desktop.qml:105
662+msgid "Passcode too short"
634663msgstr ""
635664
636−#: qml/Wizard/Pages/passwd-confirm.qml:49
637−msgid "Confirm passphrase"
665+#: qml/Wizard/Pages/passcode-desktop.qml:107
666+msgid "Passcodes match"
638667msgstr ""
639668
640−#: qml/Wizard/Pages/passwd-confirm.qml:50
641−msgid "Confirm passcode"
669+#: qml/Wizard/Pages/passcode-desktop.qml:109
670+msgid "Passcodes do not match"
642671msgstr ""
643672
644−#: qml/Wizard/Pages/passwd-confirm.qml:53
645−#: qml/Wizard/Pages/passwd-confirm.qml:54
646−msgid "Please try again."
673+#: qml/Wizard/Pages/passcode-set.qml:62
674+msgid "Passcode must be 4 characters long"
647675msgstr ""
648676
649−#: qml/Wizard/Pages/passwd-set.qml:61
650−msgid "Choose your passcode"
677+#: qml/Wizard/Pages/password-set.qml:30
678+msgid "Lock Screen Password"
651679msgstr ""
652680
653−#: qml/Wizard/Pages/passwd-set.qml:68
654−msgid "Passphrase must be 4 characters long"
681+#: qml/Wizard/Pages/password-set.qml:61
682+msgid "Enter at least 8 characters"
655683msgstr ""
656684
657−#. Translators: This is the arrow for "Back" buttons
658−#: qml/Wizard/StackButton.qml:39
659−#, qt-format
660−msgid "〈 %1"
685+#: qml/Wizard/Pages/password-set.qml:73
686+msgid "Choose password"
661687msgstr ""
662688
663−#. Translators: This is the arrow for "Forward" buttons
664−#: qml/Wizard/StackButton.qml:42
665−#, qt-format
666−msgid "%1 〉"
689+#: qml/Wizard/Pages/password-set.qml:103
690+msgid "Confirm password"
691+msgstr ""
692+
693+#: qml/Wizard/Pages/sim.qml:27
694+msgid "No SIM card installed"
695+msgstr ""
696+
697+#: qml/Wizard/Pages/sim.qml:54
698+msgid "SIM card added"
699+msgstr ""
700+
701+#: qml/Wizard/Pages/sim.qml:55
702+msgid "You must restart the device to access the mobile network."
703+msgstr ""
704+
705+#: qml/Wizard/Pages/sim.qml:59
706+msgid "Restart"
707+msgstr "পুনরায় চালু"
708+
709+#: qml/Wizard/Pages/sim.qml:78
710+msgid "You won’t be able to make calls or use text messaging without a SIM."
711+msgstr ""
712+
713+#: qml/Wizard/Pages/sim.qml:90
714+msgid "To proceed with no SIM tap Skip."
715+msgstr ""
716+
717+#: qml/Wizard/PasswordMeter.qml:87
718+msgid "Passwords match"
719+msgstr ""
720+
721+#: qml/Wizard/PasswordMeter.qml:89
722+msgid "Passwords do not match"
723+msgstr ""
724+
725+#: qml/Wizard/PasswordMeter.qml:93
726+msgid "Strong password"
727+msgstr ""
728+
729+#: qml/Wizard/PasswordMeter.qml:95
730+msgid "Fair password"
667731msgstr ""
668732
733+#: qml/Wizard/PasswordMeter.qml:97
734+msgid "Weak password"
735+msgstr ""
736+
737+#: qml/Wizard/PasswordMeter.qml:99
738+msgid "Very weak password"
739+msgstr ""
740+
741+#~ msgctxt "Button: Reboot the system"
742+#~ msgid "Reboot"
743+#~ msgstr "পুনরায় চালু করুন"
744+
745+#~ msgid "This action does different things for different apps"
746+#~ msgstr "এই কাজটি বিভিন্ন অ্যাপের জন্য ভিন্ন ভিন্ন ভাবে কাজ করে।"
747+
748+#~ msgid "To view open apps"
749+#~ msgstr "সচল অ্যাপগুলো দেখার জন্য"
750+
669751#~ msgid "Welcome to your Ubuntu phone."
670752#~ msgstr "আপনার উবুন্টু ফোনে স্বাগতম।"
671753
754+#~ msgid "Try again."
755+#~ msgstr "আবার চেষ্টা করুন"
756+
757+#~ msgid "You almost got it!"
758+#~ msgstr "আপনি প্রায় পেরে গেছেন!"
759+
760+#~ msgid "Open the launcher"
761+#~ msgstr "লঞ্চার খুলুন"
762+
763+#~ msgctxt "Label: Type of security method"
764+#~ msgid "Passcode"
765+#~ msgstr "পাসকোড"
766+
767+#~ msgid "Add a SIM card and restart your device"
768+#~ msgstr "সিম কার্ড যোগ করুন এবং ফোন পুনরায় চালু করুন।"
769+
770+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
771+#~ msgstr "এটি ছাড়া, আপনি ফোন কল বা টেক্সট মেসেজ ব্যবহার করতে পারবেন না।"
772+
773+#~ msgid "Tap here to continue."
774+#~ msgstr "অগ্রসর হওয়ার জন্য এখানে চাপ দিন।"
775+
776+#~ msgid "Swipe up from the bottom edge."
777+#~ msgstr "নিচের প্রান্ত হতে উপরের দিকে সোয়াইপ করুন।"
778+
779+#~ msgctxt "Label: Description of security method"
780+#~ msgid "No security"
781+#~ msgstr "কোন নিরাপত্তা নেই"
782+
672783#~ msgid "Log out"
673784#~ msgstr "লগ অাউট"
674785
786+#~ msgid "Are you sure you want to shut down?"
787+#~ msgstr "আপনি কি কম্পিউটার বন্ধ করতে চান?"
788+
675789#~ msgid "Reboot"
676790#~ msgstr "পুনরায় চালু করুন"
677791
@@ -681,9 +795,6 @@ msgstr ""
681795#~ msgid "Power off"
682796#~ msgstr "বন্ধ করুন"
683797
684−#~ msgid "Restart"
685−#~ msgstr "পুনরায় চালু"
686−
687798#~ msgid "Top edge"
688799#~ msgstr "উপরের প্রান্ত"
689800
@@ -726,8 +837,38 @@ msgstr ""
726837#~ msgid "Speak Now..."
727838#~ msgstr "এখন বলুন..."
728839
840+#~ msgid "Unlock SIM"
841+#~ msgstr "সিম লক খুলুন করুন"
842+
843+#~ msgid "Roaming"
844+#~ msgstr "রোমিং"
845+
729846#~ msgid "Please re-enter"
730847#~ msgstr "অনুগ্রহ করে আবার লিখুন"
731848
849+#~ msgctxt "Button: Shut down the system"
850+#~ msgid "Shut down"
851+#~ msgstr "বন্ধ করুন"
852+
853+#~ msgctxt "Title: Reboot/Shut down dialog"
854+#~ msgid "Shut down"
855+#~ msgstr "বন্ধ করুন"
856+
857+#~ msgid "Let’s get started."
858+#~ msgstr "আসুন শুরু করা যাক।"
859+
860+#~ msgid "These are the shortcuts to favorite apps"
861+#~ msgstr "এগুলো আপনার প্রিয় অ্যাপেরর শর্টকাট"
862+
863+#~ msgid "Lock security"
864+#~ msgstr "নিরাপত্তা লক"
865+
732866#~ msgid "Please select how you’d like to unlock your phone."
733867#~ msgstr "আপনি কিভাবে ফোনের লক খুলতে চান তা নির্ধারণ করুন।"
868+
869+#~ msgctxt "Label: Description of security method"
870+#~ msgid "4 digits only"
871+#~ msgstr "কেবল মাত্র ৪টি সংখ্যা"
872+
873+#~ msgid "Continue"
874+#~ msgstr "পরবর্তী"
po/br.po+507−262
@@ -7,31 +7,31 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
11−"PO-Revision-Date: 2015-10-05 06:47+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
11+"PO-Revision-Date: 2016-04-18 07:33+0000\n"
1212"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
1313"Language-Team: Breton <br@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-04-19 04:59+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Ger-tremen : "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
2727msgid "Pin shortcut"
2828msgstr "Spilhennañ ar verradenn"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
3131msgid "Quit"
3232msgstr "Mont kuit"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
3535msgid "Unpin shortcut"
3636msgstr "Dispilhennañ ar verradenn"
3737
@@ -77,53 +77,35 @@ msgctxt "Button: Log out from the system"
7777msgid "Log Out"
7878msgstr "Digevreañ"
7979
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
81−#: qml/Components/Dialogs.qml:253
80+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
81+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
82+#: qml/Wizard/Pages/passcode-set.qml:32
8283msgid "Cancel"
8384msgstr "Nullañ"
8485
8586#: qml/Components/Dialogs.qml:173
86−msgctxt "Title: Reboot/Shut down dialog"
87−msgid "Shut down"
88−msgstr "Lazhañ ar benveg"
89−
90−#: qml/Components/Dialogs.qml:174
91−msgid "Are you sure you want to shut down?"
92−msgstr "Ha sur oc'h e fell deoc'h lazhañ ar benveg ?"
93−
94−#: qml/Components/Dialogs.qml:176
95−msgctxt "Button: Reboot the system"
96−msgid "Reboot"
97−msgstr "Adloc'hañ"
98−
99−#: qml/Components/Dialogs.qml:185
100−msgctxt "Button: Shut down the system"
101−msgid "Shut down"
102−msgstr "Lazhañ ar benveg"
103−
104−#: qml/Components/Dialogs.qml:207
10587msgctxt "Title: Reboot dialog"
10688msgid "Reboot"
10789msgstr "Adloc'hañ"
10890
109−#: qml/Components/Dialogs.qml:208
91+#: qml/Components/Dialogs.qml:174
11092msgid "Are you sure you want to reboot?"
11193msgstr "Ha sur oc'h e fell deoc'h adloc'hañ ?"
11294
113−#: qml/Components/Dialogs.qml:210
95+#: qml/Components/Dialogs.qml:176
11496msgid "No"
11597msgstr "N'on ket"
11698
117−#: qml/Components/Dialogs.qml:217
99+#: qml/Components/Dialogs.qml:183
118100msgid "Yes"
119101msgstr "Ya"
120102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:198
122104msgctxt "Title: Power off/Restart dialog"
123105msgid "Power"
124106msgstr "Enaouiñ"
125107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:199
127109msgid ""
128110"Are you sure you would like\n"
129111"to power off?"
@@ -131,88 +113,109 @@ msgstr ""
131113"Ha sur oc'h e fell deoc'h\n"
132114"troc'hañ an tredan ?"
133115
134−#: qml/Components/Dialogs.qml:235
116+#: qml/Components/Dialogs.qml:201
135117msgctxt "Button: Power off the system"
136118msgid "Power off"
137119msgstr "Lazhañ"
138120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:210
140122msgctxt "Button: Restart the system"
141123msgid "Restart"
142124msgstr "Adloc'hañ"
143125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145127msgid "Return to Call"
146128msgstr "Distreiñ d'ar bellgomzadenn"
147129
148−#: qml/Components/Lockscreen.qml:245
130+#: qml/Components/Lockscreen.qml:231
149131msgid "Emergency Call"
150132msgstr "Pellgomzadenn vallus"
151133
152−#: qml/Components/Lockscreen.qml:277
134+#: qml/Components/Lockscreen.qml:263
153135msgid "OK"
154136msgstr "Mat eo"
155137
156138#: qml/Components/ModeSwitchWarningDialog.qml:32
157139msgid "Apps may have unsaved data:"
158−msgstr ""
140+msgstr "Roadennoù ha n'int ket enrollet a c'hall bezañ gant an arloadoù :"
159141
160142#: qml/Components/ModeSwitchWarningDialog.qml:57
143+msgctxt ""
144+"Re-dock means connect the device again to an external screen/mouse/keyboard"
161145msgid "Re-dock, save your work and close these apps to continue."
162146msgstr ""
147+"Adkevreit ouzh ar savlec'h degemer, enrollot ho labour ha serrit an arloadoù-"
148+"mañ evit kenderc'hel."
163149
164150#: qml/Components/ModeSwitchWarningDialog.qml:63
165151msgid "Or force close now (unsaved data will be lost)."
166152msgstr ""
153+"Pe rediañ da serriñ bremañ (kollet e vo ar roadennoù n'int ket bet enrollet)."
167154
168155#: qml/Components/ModeSwitchWarningDialog.qml:75
169156msgid "OK, I will reconnect"
170−msgstr ""
157+msgstr "Mat eo, ez an da adkevreañ"
171158
172159#: qml/Components/ModeSwitchWarningDialog.qml:76
173160msgid "Reconnect now!"
174−msgstr ""
161+msgstr "Adkevreañ bremañ !"
175162
176163#: qml/Components/ModeSwitchWarningDialog.qml:88
177164msgid "Close all"
178−msgstr ""
165+msgstr "Serriñ pep tra"
179166
180−#: qml/Dash/DashPageHeader.qml:266
167+#: qml/Dash/DashPageHeader.qml:337
181168msgctxt "Button: Open the Ubuntu Store"
182169msgid "Store"
183170msgstr "Stal"
184171
185−#: qml/Dash/DashPageHeader.qml:273
172+#: qml/Dash/DashPageHeader.qml:344
186173msgctxt "Button: Start a search in the current dash scope"
187174msgid "Search"
188175msgstr "Klask"
189176
190−#: qml/Dash/DashPageHeader.qml:283
177+#: qml/Dash/DashPageHeader.qml:354
191178msgctxt "Button: Show the current dash scope settings"
192179msgid "Settings"
193180msgstr "Arventennoù"
194181
195−#: qml/Dash/DashPageHeader.qml:290
182+#: qml/Dash/DashPageHeader.qml:361
196183msgid "Remove from Favorites"
197184msgstr "Lemel eus ar sinedoù"
198185
199−#: qml/Dash/DashPageHeader.qml:290
186+#: qml/Dash/DashPageHeader.qml:361
200187msgid "Add to Favorites"
201188msgstr "Ouzhpennañ d'ar sinedoù"
202189
203−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
190+#: qml/Dash/FiltersPopover.qml:60
191+msgid "Refine your results"
192+msgstr ""
193+
194+#: qml/Dash/FiltersPopover.qml:69
195+msgid "Reset"
196+msgstr "Adderaouekaat"
197+
198+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
204199msgid "See less"
205200msgstr "Gwelet nebeutoc'h"
206201
207−#: qml/Dash/GenericScopeView.qml:587
202+#: qml/Dash/GenericScopeView.qml:570
208203msgid "See all"
209204msgstr "Gwelet pep tra"
210205
211−#: qml/Dash/GenericScopeView.qml:649
206+#: qml/Dash/GenericScopeView.qml:627
212207msgctxt "Label: Hint for dash search line edit"
213208msgid "Search"
214209msgstr "Klask"
215210
211+#: qml/Dash/PageHeaderExtraPanel.qml:55
212+msgid "Recent Searches"
213+msgstr "Enklaskoù graet nevez zo"
214+
215+#: qml/Dash/PageHeaderExtraPanel.qml:66
216+msgid "Clear All"
217+msgstr "Diverkañ pep tra"
218+
216219#: qml/Dash/Previews/PreviewActionCombo.qml:35
217220msgid "More..."
218221msgstr "Muioc'h..."
@@ -234,9 +237,9 @@ msgstr "Priziit an dra-mañ"
234237msgid "Add a review"
235238msgstr "Ouzhpennañ un ali"
236239
237−#: qml/Dash/Previews/PreviewSharing.qml:50
240+#: qml/Dash/Previews/PreviewSharing.qml:66
238241msgid "Preview Share Item"
239−msgstr ""
242+msgstr "Rakwelet an elfenn lodet"
240243
241244#: qml/Dash/PullToRefreshScopeStyle.qml:55
242245msgid "Pull to refresh…"
@@ -262,13 +265,13 @@ msgstr "Er gêr"
262265msgid "Also installed"
263266msgstr "Staliet ivez"
264267
265−#: qml/DisabledScreenNotice.qml:87
268+#: qml/DisabledScreenNotice.qml:104
266269msgid ""
267270"Your device is now connected to an external display. Use this screen as a "
268−"touch pad to interact with the mouse."
271+"touch pad to interact with the pointer."
269272msgstr ""
270273
271−#: qml/Greeter/CoverPage.qml:107
274+#: qml/Greeter/CoverPage.qml:118
272275msgid "Unlock"
273276msgstr "Dibrennañ"
274277
@@ -280,11 +283,11 @@ msgstr "Esaeañ en-dro"
280283msgid "Tap to unlock"
281284msgstr "Pouezañ evit dibrennañ"
282285
283−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
286+#: qml/Greeter/NarrowView.qml:54
284287msgid "Sorry, incorrect passphrase."
285288msgstr "Siwazh, frazenn-dremen direizh"
286289
287−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
290+#: qml/Greeter/NarrowView.qml:55
288291msgid "Sorry, incorrect passcode."
289292msgstr "Siwazh, kod-tremen direizh"
290293
@@ -313,7 +316,7 @@ msgstr ""
313316msgid "Enter %1"
314317msgstr "Merkañ %1"
315318
316−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
319+#: qml/Greeter/NarrowView.qml:117
317320msgid "Enter passphrase"
318321msgstr "Merkañ ar frazenn-dremen"
319322
@@ -351,62 +354,62 @@ msgstr "Touchit evit distreiñ d'ar bellgomzadenn..."
351354msgid "Conference"
352355msgstr "Kendiviz"
353356
354−#: qml/Panel/Indicators/MenuItemFactory.qml:753
357+#: qml/Panel/Indicators/MenuItemFactory.qml:761
355358msgid "Nothing is playing"
356359msgstr "Ne lenner netra bremañ"
357360
358−#: qml/Panel/Indicators/MenuItemFactory.qml:882
361+#: qml/Panel/Indicators/MenuItemFactory.qml:890
359362#, qt-format
360363msgid "%1 hour"
361364msgid_plural "%1 hours"
362365msgstr[0] "%1 eur"
363366msgstr[1] "%1 eur"
364367
365−#: qml/Panel/Indicators/MenuItemFactory.qml:886
368+#: qml/Panel/Indicators/MenuItemFactory.qml:894
366369#, qt-format
367370msgid "%1 minute"
368371msgid_plural "%1 minutes"
369372msgstr[0] "%1 vunutenn"
370373msgstr[1] "%1 vunutenn"
371374
372−#: qml/Panel/Indicators/MenuItemFactory.qml:891
375+#: qml/Panel/Indicators/MenuItemFactory.qml:899
373376#, qt-format
374377msgid "%1 second"
375378msgid_plural "%1 seconds"
376379msgstr[0] "%1 eilenn"
377380msgstr[1] "%1 eilenn"
378381
379−#: qml/Panel/Indicators/MenuItemFactory.qml:894
382+#: qml/Panel/Indicators/MenuItemFactory.qml:902
380383msgid "0 seconds"
381384msgstr "0 eilenn"
382385
383386#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
384−#: qml/Panel/Indicators/MenuItemFactory.qml:896
387+#: qml/Panel/Indicators/MenuItemFactory.qml:904
385388#, qt-format
386389msgid "%1 remaining"
387390msgstr "%1 o chom"
388391
389−#: qml/Panel/Indicators/MenuItemFactory.qml:902
392+#: qml/Panel/Indicators/MenuItemFactory.qml:910
390393msgid "In queue…"
391394msgstr "El lostennad..."
392395
393−#: qml/Panel/Indicators/MenuItemFactory.qml:906
396+#: qml/Panel/Indicators/MenuItemFactory.qml:914
394397msgid "Downloading"
395398msgstr "O pellgargañ"
396399
397−#: qml/Panel/Indicators/MenuItemFactory.qml:908
400+#: qml/Panel/Indicators/MenuItemFactory.qml:916
398401msgid "Paused, tap to resume"
399402msgstr "Ehanet, touchit evit adkregiñ"
400403
401−#: qml/Panel/Indicators/MenuItemFactory.qml:910
404+#: qml/Panel/Indicators/MenuItemFactory.qml:918
402405msgid "Canceled"
403406msgstr "Nullet"
404407
405−#: qml/Panel/Indicators/MenuItemFactory.qml:912
408+#: qml/Panel/Indicators/MenuItemFactory.qml:920
406409msgid "Finished"
407410msgstr "Echu"
408411
409−#: qml/Panel/Indicators/MenuItemFactory.qml:914
412+#: qml/Panel/Indicators/MenuItemFactory.qml:922
410413msgid "Failed, tap to retry"
411414msgstr "C'hwitet, touchit evit adkregiñ"
412415
@@ -414,7 +417,7 @@ msgstr "C'hwitet, touchit evit adkregiñ"
414417#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
415418msgctxt "Button: Send a reply message"
416419msgid "Send"
417−msgstr ""
420+msgstr "Kas"
418421
419422#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
420423msgctxt "Label: Hint in message indicator line edit"
@@ -424,261 +427,326 @@ msgstr "Respont"
424427#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
425428msgctxt "Button: Call back on phone"
426429msgid "Call back"
427−msgstr ""
430+msgstr "Gervel en-dro"
428431
429−#: qml/Panel/Indicators/ModemInfoItem.qml:105
430−msgid "Unlock SIM"
431−msgstr "Dibrennañ ar gartenn SIM"
432−
433−#: qml/Panel/Indicators/RoamingIndication.qml:27
434−msgid "Roaming"
435−msgstr "O kantren"
436−
437−#: qml/Tutorial/TutorialBottom.qml:28
438−msgid "Open special menus"
439−msgstr "Digeriñ al lañserioù ispisial"
440−
441−#: qml/Tutorial/TutorialBottom.qml:29
442−msgid "Swipe up from the bottom edge."
443−msgstr "Riklit war-du an nec'h adalek an traoñ"
432+#: qml/Stages/SideStage.qml:76
433+msgid "Drag using 3 fingers any application from one window to the other"
434+msgstr ""
444435
445−#: qml/Tutorial/TutorialBottomFinish.qml:24
446−msgid "This action does different things for different apps"
447−msgstr "An ober-mañ a ra meur a dra evit meur a arload"
436+#: qml/Tutorial/TutorialBottom.qml:78
437+msgid "Swipe up to add a contact"
438+msgstr "Riklit d'an nec'h evit ouzhpennañ un darempred"
448439
449−#: qml/Tutorial/TutorialBottomFinish.qml:25
450−msgid "Tap here to finish."
451−msgstr "Pouezañ amañ evit echuiñ."
440+#: qml/Tutorial/TutorialBottom.qml:80
441+msgid "Swipe up for favorite calculations"
442+msgstr ""
452443
453−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
454−#: qml/Tutorial/TutorialRight.qml:144
455−msgid "Tap here to continue."
456−msgstr "Pouzañ amañ evit kenderc'hel"
444+#: qml/Tutorial/TutorialBottom.qml:82
445+msgid "Swipe up for recent calls"
446+msgstr ""
457447
458−#: qml/Tutorial/TutorialLeft.qml:26
459−msgid "Open the launcher"
460−msgstr "Digeriñ al lañser"
448+#: qml/Tutorial/TutorialBottom.qml:84
449+msgid "Swipe up to create a message"
450+msgstr "Riklit d'an nec'h evit krouiñ ur gemennadenn"
461451
462−#: qml/Tutorial/TutorialLeft.qml:27
463−msgid "Short swipe from the left edge."
464−msgstr "Riklik dousik adalek ar bord kleiz."
452+#: qml/Tutorial/TutorialBottom.qml:85
453+msgid "Swipe up to manage the app"
454+msgstr ""
465455
466−#: qml/Tutorial/TutorialLeftFinish.qml:24
467−msgid "These are the shortcuts to favorite apps"
468−msgstr "Berradennoù war-du hoc'h arloadoù gwellañ-deuet eo ar re-mañ"
456+#: qml/Tutorial/TutorialLeft.qml:47
457+msgid "Swipe from the left edge to open the launcher"
458+msgstr ""
469459
470−#: qml/Tutorial/TutorialPage.qml:178
471−msgid "You almost got it!"
472−msgstr "Deuet eo ganeoc'h pe dost ?"
460+#: qml/Tutorial/TutorialLeftLong.qml:47
461+msgid "Long swipe from the left edge to open the Today scope"
462+msgstr ""
473463
474−#: qml/Tutorial/TutorialPage.qml:195
475−msgid "Try again."
476−msgstr "Esaeit en-dro."
464+#: qml/Tutorial/TutorialRight.qml:54
465+msgid "Hover your mouse on the right edge to view your open apps"
466+msgstr ""
477467
478−#: qml/Tutorial/TutorialRight.qml:31
479−msgid "To view open apps"
480−msgstr "Evit gwelet an arloadoù digor"
468+#: qml/Tutorial/TutorialRight.qml:55
469+msgid "Short or long swipe from the right edge to view your open apps"
470+msgstr ""
481471
482−#: qml/Tutorial/TutorialRight.qml:32
483−msgid "Long swipe from the right edge."
484−msgstr "Riklit pell adalek ar bord dehoù."
472+#: qml/Tutorial/TutorialTop.qml:53
473+msgid "Swipe from the top right edge to open the notification bar"
474+msgstr ""
485475
486−#: qml/Tutorial/TutorialRight.qml:122
487−msgid "View all your running tasks."
488−msgstr "Gwelet an holl drevelloù a ya en-dro."
476+#: qml/Tutorial/TutorialTop.qml:54
477+msgid "Swipe from the top edge to open the notification bar"
478+msgstr ""
489479
490−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
491481msgctxt "Button: Go back one page in the Wizard"
492482msgid "Back"
493483msgstr "Distreiñ"
494484
495485#: qml/Wizard/Pages/10-welcome.qml:27
496−msgid "Hi!"
497−msgstr "Salud deoc'h !"
486+msgid "Language"
487+msgstr "Yezh"
488+
489+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
490+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
491+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492+#: qml/Wizard/Pages/75-report-check.qml:84
493+#: qml/Wizard/Pages/passcode-desktop.qml:124
494+#: qml/Wizard/Pages/password-set.qml:141
495+msgid "Next"
496+msgstr "War-lerc'h"
497+
498+#: qml/Wizard/Pages/30-wifi.qml:29
499+msgid "Connect to Wi‑Fi"
500+msgstr "Kevreañ ouzh ar Wi-Fi"
501+
502+#: qml/Wizard/Pages/30-wifi.qml:130
503+msgid "Connected"
504+msgstr "Kevreet"
505+
506+#: qml/Wizard/Pages/30-wifi.qml:163
507+msgid "Available Wi-Fi networks"
508+msgstr "Rouedadoù Wi-Fi da gaout"
509+
510+#: qml/Wizard/Pages/30-wifi.qml:164
511+msgid "No available Wi-Fi networks"
512+msgstr "N'eus ket rouedadoù Wi-Fi da gaout"
513+
514+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515+#: qml/Wizard/Pages/sim.qml:101
516+msgid "Skip"
517+msgstr "Tremen hebiou"
498518
499−#: qml/Wizard/Pages/10-welcome.qml:44
500−msgid "Welcome to your Ubuntu device."
519+#: qml/Wizard/Pages/40-location.qml:27
520+msgid "Location Services"
521+msgstr "Servijoù lec'hiañ"
522+
523+#: qml/Wizard/Pages/40-location.qml:83
524+msgid ""
525+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
526+"(recommended)"
501527msgstr ""
502528
503−#: qml/Wizard/Pages/10-welcome.qml:52
504−msgid "Let’s get started."
505−msgstr "Krogomp ganti."
529+#: qml/Wizard/Pages/40-location.qml:105
530+#, qt-format
531+msgid "By selecting this option you agree to the Nokia HERE %1."
532+msgstr ""
506533
507−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
508−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
509−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
510−#: qml/Wizard/Pages/passwd-set.qml:90
511−msgid "Continue"
512−msgstr "Kenderc'hel"
534+#: qml/Wizard/Pages/40-location.qml:106
535+msgctxt "part of: Nokia HERE terms and conditions"
536+msgid "terms and conditions"
537+msgstr "penndivizoù implij"
513538
514−#: qml/Wizard/Pages/20-sim.qml:25
515−msgid "Add a SIM card and restart your device"
516−msgstr "Lakait ur gartenn SIM hag adloc'hit ho penveg"
539+#: qml/Wizard/Pages/40-location.qml:160
540+msgid "GPS only"
541+msgstr "GPS hepken"
517542
518−#: qml/Wizard/Pages/20-sim.qml:59
519−msgid "Without it, you won’t be able to make calls or use text messaging."
520−msgstr "Ne vioc'h ket evit pellgomz pe kas kemennadennoù hepti."
543+#: qml/Wizard/Pages/40-location.qml:214
544+msgid "Don't use my location"
545+msgstr "Arabat implijout ma lec'h"
521546
522−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
523−msgid "Skip"
524−msgstr "Tremen hebiou"
547+#: qml/Wizard/Pages/40-location.qml:260
548+msgid "You can change it later in System Settings."
549+msgstr ""
550+
551+#: qml/Wizard/Pages/50-timezone.qml:29
552+msgid "Time Zone"
553+msgstr "Gwerzhid-eur"
554+
555+#: qml/Wizard/Pages/50-timezone.qml:178
556+msgid "Enter your city"
557+msgstr "Skrivit ho kêr"
525558
526−#: qml/Wizard/Pages/30-passwd-type.qml:39
527−msgid "Lock security"
528−msgstr "Surentez ar prennañ"
559+#: qml/Wizard/Pages/60-account.qml:24
560+msgid "Personalize Your Device"
561+msgstr "Personelaat ho penveg"
529562
530−#: qml/Wizard/Pages/30-passwd-type.qml:79
531−msgid "Please select how you’d like to unlock your device."
563+#: qml/Wizard/Pages/60-account.qml:48
564+msgid "Preferred Name"
532565msgstr ""
533566
534−#: qml/Wizard/Pages/30-passwd-type.qml:102
567+#: qml/Wizard/Pages/70-passwd-type.qml:39
568+msgid "Lock Screen"
569+msgstr "Prennañ ar skramm"
570+
571+#: qml/Wizard/Pages/70-passwd-type.qml:101
535572msgctxt "Label: Type of security method"
536−msgid "Swipe"
537−msgstr "Riklañ"
573+msgid "Create new password"
574+msgstr "Krouiñ ur ger-tremen nevez"
538575
539−#: qml/Wizard/Pages/30-passwd-type.qml:103
540−msgctxt "Label: Description of security method"
541−msgid "No security"
542−msgstr "Tamm surentez ebet"
576+#: qml/Wizard/Pages/70-passwd-type.qml:103
577+msgctxt "Label: Type of security method"
578+msgid "Create passcode (numbers only)"
579+msgstr "Krouiñ ur c'hod (difroù hepken)"
543580
544−#: qml/Wizard/Pages/30-passwd-type.qml:105
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
545582msgctxt "Label: Type of security method"
546−msgid "Passcode"
547−msgstr "Kod-tremen"
583+msgid "No lock code"
584+msgstr "N'eus kod prennañ ebet"
548585
549−#: qml/Wizard/Pages/30-passwd-type.qml:106
550−msgctxt "Label: Description of security method"
551−msgid "4 digits only"
552−msgstr "4 sifr hepken"
586+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
587+msgid "Privacy Policy"
588+msgstr "Reolennoù prevezded"
553589
554−#: qml/Wizard/Pages/30-passwd-type.qml:108
555−msgctxt "Label: Type of security method"
556−msgid "Passphrase"
557−msgstr "Frazenn-dremen"
590+#: qml/Wizard/Pages/75-report-check.qml:26
591+msgid "Help Us Improve"
592+msgstr "Sikourit ac'hanomp da wellaat"
558593
559−#: qml/Wizard/Pages/30-passwd-type.qml:109
560−msgctxt "Label: Description of security method"
561−msgid "Numbers and letters"
562−msgstr "Sifroù ha lizherennoù"
594+#: qml/Wizard/Pages/75-report-check.qml:59
595+msgid "Improve system performance by sending us crashes and error reports."
596+msgstr ""
563597
564−#: qml/Wizard/Pages/40-wifi.qml:29
565−msgid "Connect to Wi‑Fi"
566−msgstr "Kevreañ ouzh ar Wi-Fi"
598+#: qml/Wizard/Pages/75-report-check.qml:60
599+msgid "Privacy policy"
600+msgstr "Reolennoù buhez prevez"
567601
568−#: qml/Wizard/Pages/40-wifi.qml:168
569−msgid "Available networks…"
570−msgstr "Rouedadoù a c'haller kaout..."
602+#: qml/Wizard/Pages/80-finished.qml:89
603+msgid "Welcome to Ubuntu"
604+msgstr "Donemat en Ubuntu"
571605
572−#: qml/Wizard/Pages/40-wifi.qml:169
573−msgid "No available networks."
574−msgstr "N'eus rouedad ebet da gaout."
606+#: qml/Wizard/Pages/80-finished.qml:104
607+msgid "You are ready to use your device now"
608+msgstr "Bremañ oc'h prest da implijout ho penveg"
575609
576−#: qml/Wizard/Pages/50-location.qml:27
577−msgid "Location"
578−msgstr "Lec'h"
610+#: qml/Wizard/Pages/80-finished.qml:124
611+msgid "Get Started"
612+msgstr "Kregiñ ganti"
579613
580−#: qml/Wizard/Pages/50-location.qml:62
581−msgid "Let the phone detect your location:"
582−msgstr "Lezel ar pellgomzer da gavout pelec'h emaoc'h :"
614+#: qml/Wizard/Pages/here-terms.qml:25
615+msgid "Terms & Conditions"
616+msgstr "Penndivizoù implij"
583617
584−#: qml/Wizard/Pages/50-location.qml:69
585−msgid "Using GPS only (less accurate)"
586−msgstr "Implijout ar GPS hepken (n'eo ket ken resis)"
618+#: qml/Wizard/Pages/here-terms.qml:69
619+msgid "Your device uses positioning technologies provided by HERE."
620+msgstr ""
587621
588−#: qml/Wizard/Pages/50-location.qml:86
589−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
622+#: qml/Wizard/Pages/here-terms.qml:81
623+msgid ""
624+"To provide you with positioning services and to improve their quality, HERE "
625+"collects information about nearby cell towers and Wi-Fi hotspots around your "
626+"current location whenever your position is being found."
590627msgstr ""
591−"Implijout ar GPS, Wi-Fi dizanv pe titouroù ar rouedad kelligel (aliet)"
592628
593−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
594−#: qml/Wizard/Pages/50-location.qml:103
629+#: qml/Wizard/Pages/here-terms.qml:93
595630msgid ""
596−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
597−"conditions</a>."
631+"The information collected is used to analyze the service and to improve the "
632+"use of service, but not to identify you personally."
633+msgstr ""
634+
635+#: qml/Wizard/Pages/here-terms.qml:106
636+#, qt-format
637+msgid "By continuing, you agree to the HERE platform %1 and %2."
598638msgstr ""
599−"Pa ziuzit an dibarzh-mañ ez asantit da <a href='#'>zivizoù implij</a> Nokia."
600639
601−#: qml/Wizard/Pages/50-location.qml:112
602−msgid "Not at all"
603−msgstr "Tamm ebet"
640+#: qml/Wizard/Pages/here-terms.qml:107
641+msgid "Service Terms"
642+msgstr "Divizoù servij"
604643
605−#: qml/Wizard/Pages/50-location.qml:124
606−msgid "You can change your mind later in <b>System Settings</b>."
644+#: qml/Wizard/Pages/passcode-confirm.qml:43
645+#: qml/Wizard/Pages/passcode-desktop.qml:80
646+msgid "Confirm passcode"
647+msgstr "Kadarnaat ar c'hod-tremen"
648+
649+#: qml/Wizard/Pages/passcode-confirm.qml:45
650+msgid "Incorrect passcode."
651+msgstr "Kod direizh"
652+
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
654+msgctxt "Enter the passcode again"
655+msgid "Please re-enter."
656+msgstr "Skrivit adarre, mar plij."
657+
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
659+msgid "Lock Screen Passcode"
660+msgstr "Kod da brennañ ar skramm"
661+
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
663+msgid "Enter 4 numbers to setup your passcode"
607664msgstr ""
608−"Gallout a rit cheñch soñj diwezhatoc'h en <b>Arventennoù ar reizhad</b>."
609665
610−#: qml/Wizard/Pages/60-reporting.qml:26
611−msgid "Improving your experience"
612−msgstr "Gwellaat ho skiant-prenet"
666+#: qml/Wizard/Pages/passcode-desktop.qml:65
667+#: qml/Wizard/Pages/passcode-set.qml:54
668+msgid "Choose passcode"
669+msgstr "Choaz ur c'hod"
613670
614−#: qml/Wizard/Pages/60-reporting.qml:46
615−msgid ""
616−"Your phone is set up to automatically report errors to Canonical and its "
617−"partners, the makers of the operating system."
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
672+msgid "Passcode too short"
673+msgstr "Kod re verr"
674+
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
676+msgid "Passcodes match"
618677msgstr ""
619−"Arventennet eo ho pellgomzer evit titourañ ent emgefre ar fazioù da "
620−"gCanonical ha d'e gevelerien, ar re o deus savet ar reizhiad korvoiñ."
621678
622−#: qml/Wizard/Pages/60-reporting.qml:53
623−msgid ""
624−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
625−"Privacy</b>"
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
680+msgid "Passcodes do not match"
626681msgstr ""
627−"Gallout a ra bezañ diweredekaet e-barzh <b>Arventennoù ar reizhiad</b> "
628−"dindan <b>Surentez &amp; Prevezded</b>"
629682
630−#: qml/Wizard/Pages/80-finished.qml:24
631−msgid "All done"
632−msgstr "Echu penn-da-benn"
683+#: qml/Wizard/Pages/passcode-set.qml:62
684+msgid "Passcode must be 4 characters long"
685+msgstr ""
633686
634−#: qml/Wizard/Pages/80-finished.qml:39
635−msgid "Nice work!"
636−msgstr "Gwellat labour !"
687+#: qml/Wizard/Pages/password-set.qml:30
688+msgid "Lock Screen Password"
689+msgstr "Ger-tremen da brennañ ar skramm"
637690
638−#: qml/Wizard/Pages/80-finished.qml:46
639−msgid "Your device is now ready to use."
691+#: qml/Wizard/Pages/password-set.qml:61
692+msgid "Enter at least 8 characters"
693+msgstr "Skrivit 8 arouezenn da vihanañ"
694+
695+#: qml/Wizard/Pages/password-set.qml:73
696+msgid "Choose password"
697+msgstr "Choaz ur ger-tremen"
698+
699+#: qml/Wizard/Pages/password-set.qml:103
700+msgid "Confirm password"
701+msgstr "Kadarnaat ar ger-tremen"
702+
703+#: qml/Wizard/Pages/sim.qml:27
704+msgid "No SIM card installed"
705+msgstr "N'eus kartenn SIM ebet"
706+
707+#: qml/Wizard/Pages/sim.qml:54
708+msgid "SIM card added"
709+msgstr "Lakaet ez eus bet ur gartenn SIM"
710+
711+#: qml/Wizard/Pages/sim.qml:55
712+msgid "You must restart the device to access the mobile network."
640713msgstr ""
641714
642−#: qml/Wizard/Pages/80-finished.qml:53
643−msgid "Finish"
644−msgstr "Echuiñ"
715+#: qml/Wizard/Pages/sim.qml:59
716+msgid "Restart"
717+msgstr "Adloc'hañ"
645718
646−#: qml/Wizard/Pages/here-terms.qml:27
647−msgid "Terms & Conditions"
648−msgstr "Penndivizoù implij"
719+#: qml/Wizard/Pages/sim.qml:78
720+msgid "You won’t be able to make calls or use text messaging without a SIM."
721+msgstr ""
649722
650−#: qml/Wizard/Pages/passwd-confirm.qml:49
651−msgid "Confirm passphrase"
652−msgstr "Kadarnaat ar frazenn-dremen"
723+#: qml/Wizard/Pages/sim.qml:90
724+msgid "To proceed with no SIM tap Skip."
725+msgstr ""
653726
654−#: qml/Wizard/Pages/passwd-confirm.qml:50
655−msgid "Confirm passcode"
656−msgstr "Kadarnaat ar c'hod-tremen"
727+#: qml/Wizard/PasswordMeter.qml:87
728+msgid "Passwords match"
729+msgstr "Klotañ a ra ar gerioù-tremen an eil gant egile"
657730
658−#: qml/Wizard/Pages/passwd-confirm.qml:53
659−#: qml/Wizard/Pages/passwd-confirm.qml:54
660−msgid "Please try again."
661−msgstr "Esaeit en-dro, mar plij."
731+#: qml/Wizard/PasswordMeter.qml:89
732+msgid "Passwords do not match"
733+msgstr "Ne glot ket ar gerioù-tremen"
662734
663−#: qml/Wizard/Pages/passwd-set.qml:61
664−msgid "Choose your passcode"
665−msgstr "Choaz ho kod-tremen"
735+#: qml/Wizard/PasswordMeter.qml:93
736+msgid "Strong password"
737+msgstr "Ger-tremen sur"
666738
667−#: qml/Wizard/Pages/passwd-set.qml:68
668−msgid "Passphrase must be 4 characters long"
669−msgstr "4 arouezenn a rank bezañ er frazenn-dremen"
739+#: qml/Wizard/PasswordMeter.qml:95
740+msgid "Fair password"
741+msgstr "Ger-tremen reizh"
670742
671−#. Translators: This is the arrow for "Back" buttons
672−#: qml/Wizard/StackButton.qml:39
673−#, qt-format
674−msgid "〈 %1"
675−msgstr "〈 %1"
743+#: qml/Wizard/PasswordMeter.qml:97
744+msgid "Weak password"
745+msgstr "Ger-tremen diasur"
676746
677−#. Translators: This is the arrow for "Forward" buttons
678−#: qml/Wizard/StackButton.qml:42
679−#, qt-format
680−msgid "%1 〉"
681−msgstr "%1 〉"
747+#: qml/Wizard/PasswordMeter.qml:99
748+msgid "Very weak password"
749+msgstr "Ger-tremen diasur-kenañ"
682750
683751#~ msgid "Close"
684752#~ msgstr "Serriñ"
@@ -752,6 +820,12 @@ msgstr "%1 〉"
752820#~ msgid "All"
753821#~ msgstr "An holl anezho"
754822
823+#~ msgid "Unlock SIM"
824+#~ msgstr "Dibrennañ ar gartenn SIM"
825+
826+#~ msgid "Roaming"
827+#~ msgstr "O kantren"
828+
755829#~ msgid "Favorites"
756830#~ msgstr "Gwellañ deuet"
757831
@@ -761,6 +835,9 @@ msgstr "%1 〉"
761835#~ msgid "Log out"
762836#~ msgstr "Digevreañ"
763837
838+#~ msgid "Are you sure you want to shut down?"
839+#~ msgstr "Ha sur oc'h e fell deoc'h lazhañ ar benveg ?"
840+
764841#~ msgid "Reboot"
765842#~ msgstr "Adloc'hañ"
766843
@@ -770,25 +847,193 @@ msgstr "%1 〉"
770847#~ msgid "Settings"
771848#~ msgstr "Arventennoù"
772849
773−#~ msgid "Restart"
774−#~ msgstr "Adloc'hañ"
775−
776850#~ msgid "Manage Scopes"
777851#~ msgstr "Merañ ar c'hefluskerioù enklask"
778852
779853#~ msgid "Please re-enter"
780854#~ msgstr "Adverkañ, mar plij"
781855
856+#~ msgid "Lock security"
857+#~ msgstr "Surentez ar prennañ"
858+
859+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
860+#~ msgstr "Ne vioc'h ket evit pellgomz pe kas kemennadennoù hepti."
861+
862+#~ msgid "Add a SIM card and restart your device"
863+#~ msgstr "Lakait ur gartenn SIM hag adloc'hit ho penveg"
864+
782865#~ msgid "Please select how you’d like to unlock your phone."
783866#~ msgstr ""
784867#~ "Diuzit e peseurt mod e fell deoc'h dibrennañ ho pellgomzer, mar plij."
785868
869+#~ msgid "Hi!"
870+#~ msgstr "Salud deoc'h !"
871+
872+#~ msgid "Let’s get started."
873+#~ msgstr "Krogomp ganti."
874+
875+#~ msgid "Continue"
876+#~ msgstr "Kenderc'hel"
877+
786878#~ msgid "Welcome to your Ubuntu phone."
787879#~ msgstr "Deuet-mat oc'h en ho pellgomzer Ubuntu."
788880
881+#~ msgid "Available networks…"
882+#~ msgstr "Rouedadoù a c'haller kaout..."
883+
884+#~ msgid "No available networks."
885+#~ msgstr "N'eus rouedad ebet da gaout."
886+
887+#~ msgid "Location"
888+#~ msgstr "Lec'h"
889+
890+#~ msgid "You can change your mind later in <b>System Settings</b>."
891+#~ msgstr ""
892+#~ "Gallout a rit cheñch soñj diwezhatoc'h en <b>Arventennoù ar reizhad</b>."
893+
894+#~ msgid ""
895+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
896+#~ "Privacy</b>"
897+#~ msgstr ""
898+#~ "Gallout a ra bezañ diweredekaet e-barzh <b>Arventennoù ar reizhiad</b> "
899+#~ "dindan <b>Surentez &amp; Prevezded</b>"
900+
901+#~ msgid ""
902+#~ "Your phone is set up to automatically report errors to Canonical and its "
903+#~ "partners, the makers of the operating system."
904+#~ msgstr ""
905+#~ "Arventennet eo ho pellgomzer evit titourañ ent emgefre ar fazioù da "
906+#~ "gCanonical ha d'e gevelerien, ar re o deus savet ar reizhiad korvoiñ."
907+
908+#~ msgid "All done"
909+#~ msgstr "Echu penn-da-benn"
910+
911+#~ msgid "Improving your experience"
912+#~ msgstr "Gwellaat ho skiant-prenet"
913+
914+#~ msgid ""
915+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
916+#~ "conditions</a>."
917+#~ msgstr ""
918+#~ "Pa ziuzit an dibarzh-mañ ez asantit da <a href='#'>zivizoù implij</a> Nokia."
919+
920+#~ msgid "Not at all"
921+#~ msgstr "Tamm ebet"
922+
923+#~ msgid "Let the phone detect your location:"
924+#~ msgstr "Lezel ar pellgomzer da gavout pelec'h emaoc'h :"
925+
926+#~ msgid "Using GPS only (less accurate)"
927+#~ msgstr "Implijout ar GPS hepken (n'eo ket ken resis)"
928+
929+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
930+#~ msgstr ""
931+#~ "Implijout ar GPS, Wi-Fi dizanv pe titouroù ar rouedad kelligel (aliet)"
932+
933+#~ msgid "Nice work!"
934+#~ msgstr "Gwellat labour !"
935+
936+#~ msgid "Finish"
937+#~ msgstr "Echuiñ"
938+
939+#~ msgid "Confirm passphrase"
940+#~ msgstr "Kadarnaat ar frazenn-dremen"
941+
942+#, qt-format
943+#~ msgid "〈 %1"
944+#~ msgstr "〈 %1"
945+
946+#~ msgid "Choose your passcode"
947+#~ msgstr "Choaz ho kod-tremen"
948+
949+#~ msgid "Passphrase must be 4 characters long"
950+#~ msgstr "4 arouezenn a rank bezañ er frazenn-dremen"
951+
952+#~ msgid "Please try again."
953+#~ msgstr "Esaeit en-dro, mar plij."
954+
789955#~ msgid "Your phone is now ready to use."
790956#~ msgstr "Prest eo ho pellgomzer da vezañ implijet bremañ."
791957
958+#, qt-format
959+#~ msgid "%1 〉"
960+#~ msgstr "%1 〉"
961+
962+#~ msgid "This action does different things for different apps"
963+#~ msgstr "An ober-mañ a ra meur a dra evit meur a arload"
964+
965+#~ msgid "Open special menus"
966+#~ msgstr "Digeriñ al lañserioù ispisial"
967+
968+#~ msgid "Tap here to finish."
969+#~ msgstr "Pouezañ amañ evit echuiñ."
970+
971+#~ msgid "To view open apps"
972+#~ msgstr "Evit gwelet an arloadoù digor"
973+
974+#~ msgid "Long swipe from the right edge."
975+#~ msgstr "Riklit pell adalek ar bord dehoù."
976+
977+#~ msgid "View all your running tasks."
978+#~ msgstr "Gwelet an holl drevelloù a ya en-dro."
979+
980+#~ msgid "Try again."
981+#~ msgstr "Esaeit en-dro."
982+
983+#~ msgid "You almost got it!"
984+#~ msgstr "Deuet eo ganeoc'h pe dost ?"
985+
986+#~ msgid "Short swipe from the left edge."
987+#~ msgstr "Riklik dousik adalek ar bord kleiz."
988+
989+#~ msgid "Open the launcher"
990+#~ msgstr "Digeriñ al lañser"
991+
992+#~ msgid "Tap here to continue."
993+#~ msgstr "Pouzañ amañ evit kenderc'hel"
994+
995+#~ msgid "These are the shortcuts to favorite apps"
996+#~ msgstr "Berradennoù war-du hoc'h arloadoù gwellañ-deuet eo ar re-mañ"
997+
998+#~ msgid "Swipe up from the bottom edge."
999+#~ msgstr "Riklit war-du an nec'h adalek an traoñ"
1000+
1001+#~ msgctxt "Button: Shut down the system"
1002+#~ msgid "Shut down"
1003+#~ msgstr "Lazhañ ar benveg"
1004+
1005+#~ msgctxt "Title: Reboot/Shut down dialog"
1006+#~ msgid "Shut down"
1007+#~ msgstr "Lazhañ ar benveg"
1008+
1009+#~ msgctxt "Button: Reboot the system"
1010+#~ msgid "Reboot"
1011+#~ msgstr "Adloc'hañ"
1012+
1013+#~ msgctxt "Label: Type of security method"
1014+#~ msgid "Passcode"
1015+#~ msgstr "Kod-tremen"
1016+
1017+#~ msgctxt "Label: Description of security method"
1018+#~ msgid "No security"
1019+#~ msgstr "Tamm surentez ebet"
1020+
1021+#~ msgctxt "Label: Type of security method"
1022+#~ msgid "Swipe"
1023+#~ msgstr "Riklañ"
1024+
1025+#~ msgctxt "Label: Description of security method"
1026+#~ msgid "4 digits only"
1027+#~ msgstr "4 sifr hepken"
1028+
1029+#~ msgctxt "Label: Type of security method"
1030+#~ msgid "Passphrase"
1031+#~ msgstr "Frazenn-dremen"
1032+
1033+#~ msgctxt "Label: Description of security method"
1034+#~ msgid "Numbers and letters"
1035+#~ msgstr "Sifroù ha lizherennoù"
1036+
7921037#~ msgid "%a %d %b %H:%M"
7931038#~ msgstr "%a %b %d %H:%M"
7941039
po/bs.po+497−252
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2015-12-01 20:06+0000\n"
1212"Last-Translator: Kenan Gutić <Unknown>\n"
1313"Language-Team: Bosnian <bs@li.org>\n"
@@ -16,23 +16,23 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
20−"X-Generator: Launchpad (build 17925)\n"
19+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
20+"X-Generator: Launchpad (build 17958)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
2424msgstr "Šifra: "
2525
26−#: plugins/Unity/Launcher/launcheritem.cpp:47
27−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:48
27+#: plugins/Unity/Launcher/launcheritem.cpp:107
2828msgid "Pin shortcut"
2929msgstr "Prikačite prečicu"
3030
31−#: plugins/Unity/Launcher/launcheritem.cpp:52
31+#: plugins/Unity/Launcher/launcheritem.cpp:53
3232msgid "Quit"
3333msgstr "Napusti"
3434
35−#: plugins/Unity/Launcher/launcheritem.cpp:106
35+#: plugins/Unity/Launcher/launcheritem.cpp:107
3636msgid "Unpin shortcut"
3737msgstr "Otkačite prečicu"
3838
@@ -75,53 +75,35 @@ msgctxt "Button: Log out from the system"
7575msgid "Log Out"
7676msgstr "Odjavi se"
7777
78−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
79−#: qml/Components/Dialogs.qml:253
78+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
79+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
80+#: qml/Wizard/Pages/passcode-set.qml:32
8081msgid "Cancel"
8182msgstr "Otkaži"
8283
8384#: qml/Components/Dialogs.qml:173
84−msgctxt "Title: Reboot/Shut down dialog"
85−msgid "Shut down"
86−msgstr "Ugasi"
87−
88−#: qml/Components/Dialogs.qml:174
89−msgid "Are you sure you want to shut down?"
90−msgstr "Da li ste sigurni da želite ugasiti?"
91−
92−#: qml/Components/Dialogs.qml:176
93−msgctxt "Button: Reboot the system"
94−msgid "Reboot"
95−msgstr "Ponovo pokreni"
96−
97−#: qml/Components/Dialogs.qml:185
98−msgctxt "Button: Shut down the system"
99−msgid "Shut down"
100−msgstr "Gašenje sistema"
101−
102−#: qml/Components/Dialogs.qml:207
10385msgctxt "Title: Reboot dialog"
10486msgid "Reboot"
10587msgstr "Ponovo pokreni"
10688
107−#: qml/Components/Dialogs.qml:208
89+#: qml/Components/Dialogs.qml:174
10890msgid "Are you sure you want to reboot?"
10991msgstr "Da li ste sigurni da želite ponovo pokrenuti?"
11092
111−#: qml/Components/Dialogs.qml:210
93+#: qml/Components/Dialogs.qml:176
11294msgid "No"
11395msgstr "Ne"
11496
115−#: qml/Components/Dialogs.qml:217
97+#: qml/Components/Dialogs.qml:183
11698msgid "Yes"
11799msgstr "Da"
118100
119−#: qml/Components/Dialogs.qml:232
101+#: qml/Components/Dialogs.qml:198
120102msgctxt "Title: Power off/Restart dialog"
121103msgid "Power"
122104msgstr "Napajanje"
123105
124−#: qml/Components/Dialogs.qml:233
106+#: qml/Components/Dialogs.qml:199
125107msgid ""
126108"Are you sure you would like\n"
127109"to power off?"
@@ -129,25 +111,25 @@ msgstr ""
129111"Da li ste sigurni da želite\n"
130112"isključiti?"
131113
132−#: qml/Components/Dialogs.qml:235
114+#: qml/Components/Dialogs.qml:201
133115msgctxt "Button: Power off the system"
134116msgid "Power off"
135117msgstr "Isključi"
136118
137−#: qml/Components/Dialogs.qml:244
119+#: qml/Components/Dialogs.qml:210
138120msgctxt "Button: Restart the system"
139121msgid "Restart"
140122msgstr "Restartuj"
141123
142−#: qml/Components/Lockscreen.qml:245
124+#: qml/Components/Lockscreen.qml:231
143125msgid "Return to Call"
144126msgstr "Povratak na Poziv"
145127
146−#: qml/Components/Lockscreen.qml:245
128+#: qml/Components/Lockscreen.qml:231
147129msgid "Emergency Call"
148130msgstr "Hitan Poziv"
149131
150−#: qml/Components/Lockscreen.qml:277
132+#: qml/Components/Lockscreen.qml:263
151133msgid "OK"
152134msgstr "U redu"
153135
@@ -156,8 +138,10 @@ msgid "Apps may have unsaved data:"
156138msgstr "Aplikacije možda imaju podataka koji nisu sačuvani:"
157139
158140#: qml/Components/ModeSwitchWarningDialog.qml:57
141+msgctxt ""
142+"Re-dock means connect the device again to an external screen/mouse/keyboard"
159143msgid "Re-dock, save your work and close these apps to continue."
160−msgstr "Postavi opet, snimi svoj rad i zatvori ove aplikacije za nastavak."
144+msgstr ""
161145
162146#: qml/Components/ModeSwitchWarningDialog.qml:63
163147msgid "Or force close now (unsaved data will be lost)."
@@ -177,42 +161,58 @@ msgstr "Ponovo poveži sada"
177161msgid "Close all"
178162msgstr "Zatvori sve"
179163
180−#: qml/Dash/DashPageHeader.qml:266
164+#: qml/Dash/DashPageHeader.qml:337
181165msgctxt "Button: Open the Ubuntu Store"
182166msgid "Store"
183167msgstr "Trgovina"
184168
185−#: qml/Dash/DashPageHeader.qml:273
169+#: qml/Dash/DashPageHeader.qml:344
186170msgctxt "Button: Start a search in the current dash scope"
187171msgid "Search"
188172msgstr "Pretraživanje"
189173
190−#: qml/Dash/DashPageHeader.qml:283
174+#: qml/Dash/DashPageHeader.qml:354
191175msgctxt "Button: Show the current dash scope settings"
192176msgid "Settings"
193177msgstr "Podešavanja"
194178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196180msgid "Remove from Favorites"
197181msgstr "Ukloni iz Omiljenih"
198182
199−#: qml/Dash/DashPageHeader.qml:290
183+#: qml/Dash/DashPageHeader.qml:361
200184msgid "Add to Favorites"
201185msgstr "Dodaj u Omiljene"
202186
203−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
187+#: qml/Dash/FiltersPopover.qml:60
188+msgid "Refine your results"
189+msgstr ""
190+
191+#: qml/Dash/FiltersPopover.qml:69
192+msgid "Reset"
193+msgstr ""
194+
195+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
204196msgid "See less"
205197msgstr "Pogledati manje"
206198
207−#: qml/Dash/GenericScopeView.qml:587
199+#: qml/Dash/GenericScopeView.qml:570
208200msgid "See all"
209201msgstr "Pogledati sve"
210202
211−#: qml/Dash/GenericScopeView.qml:649
203+#: qml/Dash/GenericScopeView.qml:627
212204msgctxt "Label: Hint for dash search line edit"
213205msgid "Search"
214206msgstr "Pretraži"
215207
208+#: qml/Dash/PageHeaderExtraPanel.qml:55
209+msgid "Recent Searches"
210+msgstr ""
211+
212+#: qml/Dash/PageHeaderExtraPanel.qml:66
213+msgid "Clear All"
214+msgstr ""
215+
216216#: qml/Dash/Previews/PreviewActionCombo.qml:35
217217msgid "More..."
218218msgstr "Više..."
@@ -234,7 +234,7 @@ msgstr "Ocijeni ovo"
234234msgid "Add a review"
235235msgstr "Dodaj recenziju"
236236
237−#: qml/Dash/Previews/PreviewSharing.qml:50
237+#: qml/Dash/Previews/PreviewSharing.qml:66
238238msgid "Preview Share Item"
239239msgstr "Pogledaj stavku koja se dijeli"
240240
@@ -262,13 +262,13 @@ msgstr "Početna"
262262msgid "Also installed"
263263msgstr "Također instalirano"
264264
265−#: qml/DisabledScreenNotice.qml:87
265+#: qml/DisabledScreenNotice.qml:104
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268−"touch pad to interact with the mouse."
268+"touch pad to interact with the pointer."
269269msgstr ""
270270
271−#: qml/Greeter/CoverPage.qml:107
271+#: qml/Greeter/CoverPage.qml:118
272272msgid "Unlock"
273273msgstr "Otključaj"
274274
@@ -280,11 +280,11 @@ msgstr "Ponovi"
280280msgid "Tap to unlock"
281281msgstr "Kucnite za otključavanje"
282282
283−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
283+#: qml/Greeter/NarrowView.qml:54
284284msgid "Sorry, incorrect passphrase."
285285msgstr "Izvinite, pogrešna pristupna fraza."
286286
287−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
287+#: qml/Greeter/NarrowView.qml:55
288288msgid "Sorry, incorrect passcode."
289289msgstr "Izvinite, pogrešan pristupni kod."
290290
@@ -313,7 +313,7 @@ msgstr ""
313313msgid "Enter %1"
314314msgstr "Unesite %1"
315315
316−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
316+#: qml/Greeter/NarrowView.qml:117
317317msgid "Enter passphrase"
318318msgstr "Unesite propusnu frazu"
319319
@@ -351,11 +351,11 @@ msgstr "Kucnite da uzvratite poziv..."
351351msgid "Conference"
352352msgstr "Savjetovanje"
353353
354−#: qml/Panel/Indicators/MenuItemFactory.qml:753
354+#: qml/Panel/Indicators/MenuItemFactory.qml:761
355355msgid "Nothing is playing"
356356msgstr "Ništa nije pokrenuto"
357357
358−#: qml/Panel/Indicators/MenuItemFactory.qml:882
358+#: qml/Panel/Indicators/MenuItemFactory.qml:890
359359#, qt-format
360360msgid "%1 hour"
361361msgid_plural "%1 hours"
@@ -363,7 +363,7 @@ msgstr[0] "%1 sat"
363363msgstr[1] "%1 sata"
364364msgstr[2] "%1 sati"
365365
366−#: qml/Panel/Indicators/MenuItemFactory.qml:886
366+#: qml/Panel/Indicators/MenuItemFactory.qml:894
367367#, qt-format
368368msgid "%1 minute"
369369msgid_plural "%1 minutes"
@@ -371,7 +371,7 @@ msgstr[0] "%1 minut"
371371msgstr[1] "%1 minuta"
372372msgstr[2] "%1 minuta"
373373
374−#: qml/Panel/Indicators/MenuItemFactory.qml:891
374+#: qml/Panel/Indicators/MenuItemFactory.qml:899
375375#, qt-format
376376msgid "%1 second"
377377msgid_plural "%1 seconds"
@@ -379,37 +379,37 @@ msgstr[0] "%1 sekunda"
379379msgstr[1] "%1 sekunde"
380380msgstr[2] "%1 sekundi"
381381
382−#: qml/Panel/Indicators/MenuItemFactory.qml:894
382+#: qml/Panel/Indicators/MenuItemFactory.qml:902
383383msgid "0 seconds"
384384msgstr "0 sekundi"
385385
386386#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
387−#: qml/Panel/Indicators/MenuItemFactory.qml:896
387+#: qml/Panel/Indicators/MenuItemFactory.qml:904
388388#, qt-format
389389msgid "%1 remaining"
390390msgstr "%1 preostalo"
391391
392−#: qml/Panel/Indicators/MenuItemFactory.qml:902
392+#: qml/Panel/Indicators/MenuItemFactory.qml:910
393393msgid "In queue…"
394394msgstr "U red..."
395395
396−#: qml/Panel/Indicators/MenuItemFactory.qml:906
396+#: qml/Panel/Indicators/MenuItemFactory.qml:914
397397msgid "Downloading"
398398msgstr "Preuzimanje"
399399
400−#: qml/Panel/Indicators/MenuItemFactory.qml:908
400+#: qml/Panel/Indicators/MenuItemFactory.qml:916
401401msgid "Paused, tap to resume"
402402msgstr "Pauzirano, kucnuti za nastavak"
403403
404−#: qml/Panel/Indicators/MenuItemFactory.qml:910
404+#: qml/Panel/Indicators/MenuItemFactory.qml:918
405405msgid "Canceled"
406406msgstr "Otkazano"
407407
408−#: qml/Panel/Indicators/MenuItemFactory.qml:912
408+#: qml/Panel/Indicators/MenuItemFactory.qml:920
409409msgid "Finished"
410410msgstr "Završeno"
411411
412−#: qml/Panel/Indicators/MenuItemFactory.qml:914
412+#: qml/Panel/Indicators/MenuItemFactory.qml:922
413413msgid "Failed, tap to retry"
414414msgstr "Neuspjelo, kucnuti za ponavljanje"
415415
@@ -429,260 +429,324 @@ msgctxt "Button: Call back on phone"
429429msgid "Call back"
430430msgstr "Uzvrati poziv"
431431
432−#: qml/Panel/Indicators/ModemInfoItem.qml:105
433−msgid "Unlock SIM"
434−msgstr "Otključajte SIM"
435−
436−#: qml/Panel/Indicators/RoamingIndication.qml:27
437−msgid "Roaming"
438−msgstr "Roaming"
439−
440−#: qml/Tutorial/TutorialBottom.qml:28
441−msgid "Open special menus"
442−msgstr "Otvorite posebne menije"
443−
444−#: qml/Tutorial/TutorialBottom.qml:29
445−msgid "Swipe up from the bottom edge."
446−msgstr "Prevucite od donje ivice."
432+#: qml/Stages/SideStage.qml:76
433+msgid "Drag using 3 fingers any application from one window to the other"
434+msgstr ""
447435
448−#: qml/Tutorial/TutorialBottomFinish.qml:24
449−msgid "This action does different things for different apps"
450−msgstr "Ova radnja čini različite stvari za različite aplikacije"
436+#: qml/Tutorial/TutorialBottom.qml:78
437+msgid "Swipe up to add a contact"
438+msgstr ""
451439
452−#: qml/Tutorial/TutorialBottomFinish.qml:25
453−msgid "Tap here to finish."
454−msgstr "Kucnite ovdje za kraj."
440+#: qml/Tutorial/TutorialBottom.qml:80
441+msgid "Swipe up for favorite calculations"
442+msgstr ""
455443
456−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
457−#: qml/Tutorial/TutorialRight.qml:144
458−msgid "Tap here to continue."
459−msgstr "Kucnite ovdje za nastavak."
444+#: qml/Tutorial/TutorialBottom.qml:82
445+msgid "Swipe up for recent calls"
446+msgstr ""
460447
461−#: qml/Tutorial/TutorialLeft.qml:26
462−msgid "Open the launcher"
463−msgstr "Otvorite pokretač"
448+#: qml/Tutorial/TutorialBottom.qml:84
449+msgid "Swipe up to create a message"
450+msgstr ""
464451
465−#: qml/Tutorial/TutorialLeft.qml:27
466−msgid "Short swipe from the left edge."
467−msgstr "Kratko prevlačenje od lijeve ivice."
452+#: qml/Tutorial/TutorialBottom.qml:85
453+msgid "Swipe up to manage the app"
454+msgstr ""
468455
469−#: qml/Tutorial/TutorialLeftFinish.qml:24
470−msgid "These are the shortcuts to favorite apps"
471−msgstr "Ovo su kratice za omiljene aplikacije"
456+#: qml/Tutorial/TutorialLeft.qml:47
457+msgid "Swipe from the left edge to open the launcher"
458+msgstr ""
472459
473−#: qml/Tutorial/TutorialPage.qml:178
474−msgid "You almost got it!"
475−msgstr "Skoro ste uspjeli!"
460+#: qml/Tutorial/TutorialLeftLong.qml:47
461+msgid "Long swipe from the left edge to open the Today scope"
462+msgstr ""
476463
477−#: qml/Tutorial/TutorialPage.qml:195
478−msgid "Try again."
479−msgstr "Pokušajte ponovo."
464+#: qml/Tutorial/TutorialRight.qml:54
465+msgid "Hover your mouse on the right edge to view your open apps"
466+msgstr ""
480467
481−#: qml/Tutorial/TutorialRight.qml:31
482−msgid "To view open apps"
483−msgstr "Za pregled pokrenutih aplikacija"
468+#: qml/Tutorial/TutorialRight.qml:55
469+msgid "Short or long swipe from the right edge to view your open apps"
470+msgstr ""
484471
485−#: qml/Tutorial/TutorialRight.qml:32
486−msgid "Long swipe from the right edge."
487−msgstr "Dugo prevlačenje od desne ivice."
472+#: qml/Tutorial/TutorialTop.qml:53
473+msgid "Swipe from the top right edge to open the notification bar"
474+msgstr ""
488475
489−#: qml/Tutorial/TutorialRight.qml:122
490−msgid "View all your running tasks."
491−msgstr "Pogledajte sve pokrenute zadatke."
476+#: qml/Tutorial/TutorialTop.qml:54
477+msgid "Swipe from the top edge to open the notification bar"
478+msgstr ""
492479
493−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
494481msgctxt "Button: Go back one page in the Wizard"
495482msgid "Back"
496483msgstr "Nazad"
497484
498485#: qml/Wizard/Pages/10-welcome.qml:27
499−msgid "Hi!"
500−msgstr "Ćao!"
486+msgid "Language"
487+msgstr ""
501488
502−#: qml/Wizard/Pages/10-welcome.qml:44
503−msgid "Welcome to your Ubuntu device."
489+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
490+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
491+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492+#: qml/Wizard/Pages/75-report-check.qml:84
493+#: qml/Wizard/Pages/passcode-desktop.qml:124
494+#: qml/Wizard/Pages/password-set.qml:141
495+msgid "Next"
504496msgstr ""
505497
506−#: qml/Wizard/Pages/10-welcome.qml:52
507−msgid "Let’s get started."
508−msgstr "Započnimo"
498+#: qml/Wizard/Pages/30-wifi.qml:29
499+msgid "Connect to Wi‑Fi"
500+msgstr "Povezati na Wi-Fi"
509501
510−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
511−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
512−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
513−#: qml/Wizard/Pages/passwd-set.qml:90
514−msgid "Continue"
515−msgstr "Nastavite"
502+#: qml/Wizard/Pages/30-wifi.qml:130
503+msgid "Connected"
504+msgstr ""
516505
517−#: qml/Wizard/Pages/20-sim.qml:25
518−msgid "Add a SIM card and restart your device"
519−msgstr "Dodajte SIM karticu i restartujte vaš uređaj"
506+#: qml/Wizard/Pages/30-wifi.qml:163
507+msgid "Available Wi-Fi networks"
508+msgstr ""
520509
521−#: qml/Wizard/Pages/20-sim.qml:59
522−msgid "Without it, you won’t be able to make calls or use text messaging."
510+#: qml/Wizard/Pages/30-wifi.qml:164
511+msgid "No available Wi-Fi networks"
523512msgstr ""
524−"Bez nje, nećete biti u mogućnosti da uspostavite pozive ili koristite "
525−"tekstualne poruke."
526513
527−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
514+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515+#: qml/Wizard/Pages/sim.qml:101
528516msgid "Skip"
529517msgstr "Preskočite"
530518
531−#: qml/Wizard/Pages/30-passwd-type.qml:39
532−msgid "Lock security"
533−msgstr "Sigurnost zaključavanja"
519+#: qml/Wizard/Pages/40-location.qml:27
520+msgid "Location Services"
521+msgstr ""
534522
535−#: qml/Wizard/Pages/30-passwd-type.qml:79
536−msgid "Please select how you’d like to unlock your device."
523+#: qml/Wizard/Pages/40-location.qml:83
524+msgid ""
525+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
526+"(recommended)"
537527msgstr ""
538528
539−#: qml/Wizard/Pages/30-passwd-type.qml:102
540−msgctxt "Label: Type of security method"
541−msgid "Swipe"
542−msgstr "Prevlačenje"
529+#: qml/Wizard/Pages/40-location.qml:105
530+#, qt-format
531+msgid "By selecting this option you agree to the Nokia HERE %1."
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:106
535+msgctxt "part of: Nokia HERE terms and conditions"
536+msgid "terms and conditions"
537+msgstr ""
538+
539+#: qml/Wizard/Pages/40-location.qml:160
540+msgid "GPS only"
541+msgstr ""
542+
543+#: qml/Wizard/Pages/40-location.qml:214
544+msgid "Don't use my location"
545+msgstr ""
543546
544−#: qml/Wizard/Pages/30-passwd-type.qml:103
545−msgctxt "Label: Description of security method"
546−msgid "No security"
547−msgstr "Bez sigurnosti"
547+#: qml/Wizard/Pages/40-location.qml:260
548+msgid "You can change it later in System Settings."
549+msgstr ""
550+
551+#: qml/Wizard/Pages/50-timezone.qml:29
552+msgid "Time Zone"
553+msgstr ""
554+
555+#: qml/Wizard/Pages/50-timezone.qml:178
556+msgid "Enter your city"
557+msgstr ""
558+
559+#: qml/Wizard/Pages/60-account.qml:24
560+msgid "Personalize Your Device"
561+msgstr ""
562+
563+#: qml/Wizard/Pages/60-account.qml:48
564+msgid "Preferred Name"
565+msgstr ""
548566
549−#: qml/Wizard/Pages/30-passwd-type.qml:105
567+#: qml/Wizard/Pages/70-passwd-type.qml:39
568+msgid "Lock Screen"
569+msgstr ""
570+
571+#: qml/Wizard/Pages/70-passwd-type.qml:101
550572msgctxt "Label: Type of security method"
551−msgid "Passcode"
552−msgstr "Pristupni kod"
573+msgid "Create new password"
574+msgstr ""
553575
554−#: qml/Wizard/Pages/30-passwd-type.qml:106
555−msgctxt "Label: Description of security method"
556−msgid "4 digits only"
557−msgstr "samo 4 cifre"
576+#: qml/Wizard/Pages/70-passwd-type.qml:103
577+msgctxt "Label: Type of security method"
578+msgid "Create passcode (numbers only)"
579+msgstr ""
558580
559−#: qml/Wizard/Pages/30-passwd-type.qml:108
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
560582msgctxt "Label: Type of security method"
561−msgid "Passphrase"
562−msgstr "Pristupna fraza"
583+msgid "No lock code"
584+msgstr ""
563585
564−#: qml/Wizard/Pages/30-passwd-type.qml:109
565−msgctxt "Label: Description of security method"
566−msgid "Numbers and letters"
567−msgstr "Brojevi i slova"
586+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
587+msgid "Privacy Policy"
588+msgstr ""
568589
569−#: qml/Wizard/Pages/40-wifi.qml:29
570−msgid "Connect to Wi‑Fi"
571−msgstr "Povezati na Wi-Fi"
590+#: qml/Wizard/Pages/75-report-check.qml:26
591+msgid "Help Us Improve"
592+msgstr ""
593+
594+#: qml/Wizard/Pages/75-report-check.qml:59
595+msgid "Improve system performance by sending us crashes and error reports."
596+msgstr ""
572597
573−#: qml/Wizard/Pages/40-wifi.qml:168
574−msgid "Available networks…"
575−msgstr "Dostupne mreže..."
598+#: qml/Wizard/Pages/75-report-check.qml:60
599+msgid "Privacy policy"
600+msgstr ""
576601
577−#: qml/Wizard/Pages/40-wifi.qml:169
578−msgid "No available networks."
579−msgstr "Nema dostupnih mreža."
602+#: qml/Wizard/Pages/80-finished.qml:89
603+msgid "Welcome to Ubuntu"
604+msgstr ""
580605
581−#: qml/Wizard/Pages/50-location.qml:27
582−msgid "Location"
583−msgstr "Lokacija"
606+#: qml/Wizard/Pages/80-finished.qml:104
607+msgid "You are ready to use your device now"
608+msgstr ""
584609
585−#: qml/Wizard/Pages/50-location.qml:62
586−msgid "Let the phone detect your location:"
587−msgstr "Dopustite da telefon otkrije Vašu lokaciju:"
610+#: qml/Wizard/Pages/80-finished.qml:124
611+msgid "Get Started"
612+msgstr ""
588613
589−#: qml/Wizard/Pages/50-location.qml:69
590−msgid "Using GPS only (less accurate)"
591−msgstr "Samo pomoću GPS (manje precizno)"
614+#: qml/Wizard/Pages/here-terms.qml:25
615+msgid "Terms & Conditions"
616+msgstr "Uslovi i odredbe"
592617
593−#: qml/Wizard/Pages/50-location.qml:86
594−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
595−msgstr "Pomoću GPS, anonimnog Wi-Fi i podataka mobilne mreže (preporučeno)"
618+#: qml/Wizard/Pages/here-terms.qml:69
619+msgid "Your device uses positioning technologies provided by HERE."
620+msgstr ""
596621
597−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
598−#: qml/Wizard/Pages/50-location.qml:103
622+#: qml/Wizard/Pages/here-terms.qml:81
599623msgid ""
600−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
601−"conditions</a>."
624+"To provide you with positioning services and to improve their quality, HERE "
625+"collects information about nearby cell towers and Wi-Fi hotspots around your "
626+"current location whenever your position is being found."
602627msgstr ""
603−"Birajući ovu opciju prihvatate za Nokia OVDJE <a href='#'>terms and "
604−"conditions</a>."
605628
606−#: qml/Wizard/Pages/50-location.qml:112
607−msgid "Not at all"
608−msgstr "Nipošto"
629+#: qml/Wizard/Pages/here-terms.qml:93
630+msgid ""
631+"The information collected is used to analyze the service and to improve the "
632+"use of service, but not to identify you personally."
633+msgstr ""
609634
610−#: qml/Wizard/Pages/50-location.qml:124
611−msgid "You can change your mind later in <b>System Settings</b>."
612−msgstr "Možete se predomisliti kasnije u <b>System Settings</b>."
635+#: qml/Wizard/Pages/here-terms.qml:106
636+#, qt-format
637+msgid "By continuing, you agree to the HERE platform %1 and %2."
638+msgstr ""
613639
614−#: qml/Wizard/Pages/60-reporting.qml:26
615−msgid "Improving your experience"
616−msgstr "Poboljšavajući vaše iskustvo"
640+#: qml/Wizard/Pages/here-terms.qml:107
641+msgid "Service Terms"
642+msgstr ""
617643
618−#: qml/Wizard/Pages/60-reporting.qml:46
619−msgid ""
620−"Your phone is set up to automatically report errors to Canonical and its "
621−"partners, the makers of the operating system."
644+#: qml/Wizard/Pages/passcode-confirm.qml:43
645+#: qml/Wizard/Pages/passcode-desktop.qml:80
646+msgid "Confirm passcode"
647+msgstr "Potvrdi pristupni kod"
648+
649+#: qml/Wizard/Pages/passcode-confirm.qml:45
650+msgid "Incorrect passcode."
622651msgstr ""
623−"Vaš telefon je podešen da automatski prijavljuje greške Canonical i "
624−"njegovim partnerima, tvorcima operativnog sistema."
625652
626−#: qml/Wizard/Pages/60-reporting.qml:53
627−msgid ""
628−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
629−"Privacy</b>"
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
654+msgctxt "Enter the passcode again"
655+msgid "Please re-enter."
630656msgstr ""
631−"Ovo može biti isključeno u <b>System Settings</b> under <b>Security &amp; "
632−"Privacy</b>"
633657
634−#: qml/Wizard/Pages/80-finished.qml:24
635−msgid "All done"
636−msgstr "Sve urađeno"
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
659+msgid "Lock Screen Passcode"
660+msgstr ""
637661
638−#: qml/Wizard/Pages/80-finished.qml:39
639−msgid "Nice work!"
640−msgstr "Dobro urađeno!"
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
663+msgid "Enter 4 numbers to setup your passcode"
664+msgstr ""
641665
642−#: qml/Wizard/Pages/80-finished.qml:46
643−msgid "Your device is now ready to use."
666+#: qml/Wizard/Pages/passcode-desktop.qml:65
667+#: qml/Wizard/Pages/passcode-set.qml:54
668+msgid "Choose passcode"
644669msgstr ""
645670
646−#: qml/Wizard/Pages/80-finished.qml:53
647−msgid "Finish"
648−msgstr "Završiti"
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
672+msgid "Passcode too short"
673+msgstr ""
649674
650−#: qml/Wizard/Pages/here-terms.qml:27
651−msgid "Terms & Conditions"
652−msgstr "Uslovi i odredbe"
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
676+msgid "Passcodes match"
677+msgstr ""
653678
654−#: qml/Wizard/Pages/passwd-confirm.qml:49
655−msgid "Confirm passphrase"
656−msgstr "Potvrditi pristupnu rečenicu"
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
680+msgid "Passcodes do not match"
681+msgstr ""
657682
658−#: qml/Wizard/Pages/passwd-confirm.qml:50
659−msgid "Confirm passcode"
660−msgstr "Potvrdi pristupni kod"
683+#: qml/Wizard/Pages/passcode-set.qml:62
684+msgid "Passcode must be 4 characters long"
685+msgstr ""
661686
662−#: qml/Wizard/Pages/passwd-confirm.qml:53
663−#: qml/Wizard/Pages/passwd-confirm.qml:54
664−msgid "Please try again."
665−msgstr "Molimo pokušajte ponovo."
687+#: qml/Wizard/Pages/password-set.qml:30
688+msgid "Lock Screen Password"
689+msgstr ""
666690
667−#: qml/Wizard/Pages/passwd-set.qml:61
668−msgid "Choose your passcode"
669−msgstr "Izaberite vaš pristupni kod"
691+#: qml/Wizard/Pages/password-set.qml:61
692+msgid "Enter at least 8 characters"
693+msgstr ""
670694
671−#: qml/Wizard/Pages/passwd-set.qml:68
672−msgid "Passphrase must be 4 characters long"
673−msgstr "Pristupna fraza mora sadržavati 4 slova"
695+#: qml/Wizard/Pages/password-set.qml:73
696+msgid "Choose password"
697+msgstr ""
674698
675−#. Translators: This is the arrow for "Back" buttons
676−#: qml/Wizard/StackButton.qml:39
677−#, qt-format
678−msgid "〈 %1"
679−msgstr "〈 %1"
699+#: qml/Wizard/Pages/password-set.qml:103
700+msgid "Confirm password"
701+msgstr ""
680702
681−#. Translators: This is the arrow for "Forward" buttons
682−#: qml/Wizard/StackButton.qml:42
683−#, qt-format
684−msgid "%1 〉"
685−msgstr "%1 〉"
703+#: qml/Wizard/Pages/sim.qml:27
704+msgid "No SIM card installed"
705+msgstr ""
706+
707+#: qml/Wizard/Pages/sim.qml:54
708+msgid "SIM card added"
709+msgstr ""
710+
711+#: qml/Wizard/Pages/sim.qml:55
712+msgid "You must restart the device to access the mobile network."
713+msgstr ""
714+
715+#: qml/Wizard/Pages/sim.qml:59
716+msgid "Restart"
717+msgstr ""
718+
719+#: qml/Wizard/Pages/sim.qml:78
720+msgid "You won’t be able to make calls or use text messaging without a SIM."
721+msgstr ""
722+
723+#: qml/Wizard/Pages/sim.qml:90
724+msgid "To proceed with no SIM tap Skip."
725+msgstr ""
726+
727+#: qml/Wizard/PasswordMeter.qml:87
728+msgid "Passwords match"
729+msgstr ""
730+
731+#: qml/Wizard/PasswordMeter.qml:89
732+msgid "Passwords do not match"
733+msgstr ""
734+
735+#: qml/Wizard/PasswordMeter.qml:93
736+msgid "Strong password"
737+msgstr ""
738+
739+#: qml/Wizard/PasswordMeter.qml:95
740+msgid "Fair password"
741+msgstr ""
742+
743+#: qml/Wizard/PasswordMeter.qml:97
744+msgid "Weak password"
745+msgstr ""
746+
747+#: qml/Wizard/PasswordMeter.qml:99
748+msgid "Very weak password"
749+msgstr ""
686750
687751#~ msgid "Top edge"
688752#~ msgstr "Gornja ivica"
@@ -696,14 +760,195 @@ msgstr "%1 〉"
696760#~ msgid "Right edge"
697761#~ msgstr "Desna ivica"
698762
763+#~ msgid "Are you sure you want to shut down?"
764+#~ msgstr "Da li ste sigurni da želite ugasiti?"
765+
766+#~ msgctxt "Button: Shut down the system"
767+#~ msgid "Shut down"
768+#~ msgstr "Gašenje sistema"
769+
699770#~ msgid "Please re-enter"
700771#~ msgstr "Molimo ponovo unesite"
701772
773+#~ msgid "This action does different things for different apps"
774+#~ msgstr "Ova radnja čini različite stvari za različite aplikacije"
775+
776+#~ msgid "Unlock SIM"
777+#~ msgstr "Otključajte SIM"
778+
779+#~ msgid "Roaming"
780+#~ msgstr "Roaming"
781+
782+#~ msgid "Tap here to continue."
783+#~ msgstr "Kucnite ovdje za nastavak."
784+
785+#~ msgid "These are the shortcuts to favorite apps"
786+#~ msgstr "Ovo su kratice za omiljene aplikacije"
787+
788+#~ msgid "Swipe up from the bottom edge."
789+#~ msgstr "Prevucite od donje ivice."
790+
791+#~ msgid "Open special menus"
792+#~ msgstr "Otvorite posebne menije"
793+
794+#~ msgid "Tap here to finish."
795+#~ msgstr "Kucnite ovdje za kraj."
796+
797+#~ msgid "Long swipe from the right edge."
798+#~ msgstr "Dugo prevlačenje od desne ivice."
799+
800+#~ msgid "View all your running tasks."
801+#~ msgstr "Pogledajte sve pokrenute zadatke."
802+
803+#~ msgid "Hi!"
804+#~ msgstr "Ćao!"
805+
702806#~ msgid "Welcome to your Ubuntu phone."
703807#~ msgstr "Dobrodošli u vaš Ubuntu telefon."
704808
809+#~ msgid "To view open apps"
810+#~ msgstr "Za pregled pokrenutih aplikacija"
811+
812+#~ msgid "Try again."
813+#~ msgstr "Pokušajte ponovo."
814+
815+#~ msgid "You almost got it!"
816+#~ msgstr "Skoro ste uspjeli!"
817+
818+#~ msgid "Short swipe from the left edge."
819+#~ msgstr "Kratko prevlačenje od lijeve ivice."
820+
821+#~ msgid "Open the launcher"
822+#~ msgstr "Otvorite pokretač"
823+
824+#~ msgid "Lock security"
825+#~ msgstr "Sigurnost zaključavanja"
826+
827+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
828+#~ msgstr ""
829+#~ "Bez nje, nećete biti u mogućnosti da uspostavite pozive ili koristite "
830+#~ "tekstualne poruke."
831+
832+#~ msgid "Add a SIM card and restart your device"
833+#~ msgstr "Dodajte SIM karticu i restartujte vaš uređaj"
834+
705835#~ msgid "Please select how you’d like to unlock your phone."
706836#~ msgstr "Molimo izaberite kako biste željeli da otključavate vaš telefon."
707837
838+#~ msgctxt "Label: Description of security method"
839+#~ msgid "No security"
840+#~ msgstr "Bez sigurnosti"
841+
842+#~ msgctxt "Label: Type of security method"
843+#~ msgid "Swipe"
844+#~ msgstr "Prevlačenje"
845+
846+#~ msgctxt "Label: Type of security method"
847+#~ msgid "Passcode"
848+#~ msgstr "Pristupni kod"
849+
850+#~ msgid "Let’s get started."
851+#~ msgstr "Započnimo"
852+
853+#~ msgid "Continue"
854+#~ msgstr "Nastavite"
855+
856+#~ msgctxt "Label: Description of security method"
857+#~ msgid "4 digits only"
858+#~ msgstr "samo 4 cifre"
859+
860+#~ msgid "Let the phone detect your location:"
861+#~ msgstr "Dopustite da telefon otkrije Vašu lokaciju:"
862+
863+#~ msgid "Available networks…"
864+#~ msgstr "Dostupne mreže..."
865+
866+#~ msgid "No available networks."
867+#~ msgstr "Nema dostupnih mreža."
868+
869+#~ msgid "Location"
870+#~ msgstr "Lokacija"
871+
872+#~ msgid "Using GPS only (less accurate)"
873+#~ msgstr "Samo pomoću GPS (manje precizno)"
874+
875+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
876+#~ msgstr "Pomoću GPS, anonimnog Wi-Fi i podataka mobilne mreže (preporučeno)"
877+
878+#~ msgctxt "Label: Description of security method"
879+#~ msgid "Numbers and letters"
880+#~ msgstr "Brojevi i slova"
881+
882+#~ msgid "Improving your experience"
883+#~ msgstr "Poboljšavajući vaše iskustvo"
884+
885+#~ msgid "You can change your mind later in <b>System Settings</b>."
886+#~ msgstr "Možete se predomisliti kasnije u <b>System Settings</b>."
887+
888+#~ msgid ""
889+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
890+#~ "Privacy</b>"
891+#~ msgstr ""
892+#~ "Ovo može biti isključeno u <b>System Settings</b> under <b>Security &amp; "
893+#~ "Privacy</b>"
894+
895+#~ msgid ""
896+#~ "Your phone is set up to automatically report errors to Canonical and its "
897+#~ "partners, the makers of the operating system."
898+#~ msgstr ""
899+#~ "Vaš telefon je podešen da automatski prijavljuje greške Canonical i "
900+#~ "njegovim partnerima, tvorcima operativnog sistema."
901+
902+#~ msgid "Nice work!"
903+#~ msgstr "Dobro urađeno!"
904+
905+#~ msgid "All done"
906+#~ msgstr "Sve urađeno"
907+
908+#~ msgid "Finish"
909+#~ msgstr "Završiti"
910+
911+#~ msgid ""
912+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
913+#~ "conditions</a>."
914+#~ msgstr ""
915+#~ "Birajući ovu opciju prihvatate za Nokia OVDJE <a href='#'>terms and "
916+#~ "conditions</a>."
917+
918+#~ msgid "Not at all"
919+#~ msgstr "Nipošto"
920+
708921#~ msgid "Your phone is now ready to use."
709922#~ msgstr "Vaš telefon je sada spreman za upotrebu."
923+
924+#~ msgid "Confirm passphrase"
925+#~ msgstr "Potvrditi pristupnu rečenicu"
926+
927+#, qt-format
928+#~ msgid "〈 %1"
929+#~ msgstr "〈 %1"
930+
931+#, qt-format
932+#~ msgid "%1 〉"
933+#~ msgstr "%1 〉"
934+
935+#~ msgid "Choose your passcode"
936+#~ msgstr "Izaberite vaš pristupni kod"
937+
938+#~ msgid "Please try again."
939+#~ msgstr "Molimo pokušajte ponovo."
940+
941+#~ msgid "Passphrase must be 4 characters long"
942+#~ msgstr "Pristupna fraza mora sadržavati 4 slova"
943+
944+#~ msgctxt "Label: Type of security method"
945+#~ msgid "Passphrase"
946+#~ msgstr "Pristupna fraza"
947+
948+#~ msgctxt "Title: Reboot/Shut down dialog"
949+#~ msgid "Shut down"
950+#~ msgstr "Ugasi"
951+
952+#~ msgctxt "Button: Reboot the system"
953+#~ msgid "Reboot"
954+#~ msgstr "Ponovo pokreni"
po/ca.po+496−256
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2015-07-04 09:48+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,23 +15,23 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19+"X-Generator: Launchpad (build 17958)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Contrasenya: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
2727msgid "Pin shortcut"
2828msgstr "Enganxa la drecera"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
3131msgid "Quit"
3232msgstr "Surt"
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
3535msgid "Unpin shortcut"
3636msgstr "Desenganxa la drecera"
3737
@@ -77,53 +77,35 @@ msgctxt "Button: Log out from the system"
7777msgid "Log Out"
7878msgstr "Surt"
7979
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
81−#: qml/Components/Dialogs.qml:253
80+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
81+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
82+#: qml/Wizard/Pages/passcode-set.qml:32
8283msgid "Cancel"
8384msgstr "Cancel·la"
8485
8586#: qml/Components/Dialogs.qml:173
86−msgctxt "Title: Reboot/Shut down dialog"
87−msgid "Shut down"
88−msgstr "Apaga"
89−
90−#: qml/Components/Dialogs.qml:174
91−msgid "Are you sure you want to shut down?"
92−msgstr "Segur que voleu apagar?"
93−
94−#: qml/Components/Dialogs.qml:176
95−msgctxt "Button: Reboot the system"
96−msgid "Reboot"
97−msgstr "Reinicia"
98−
99−#: qml/Components/Dialogs.qml:185
100−msgctxt "Button: Shut down the system"
101−msgid "Shut down"
102−msgstr "Apaga"
103−
104−#: qml/Components/Dialogs.qml:207
10587msgctxt "Title: Reboot dialog"
10688msgid "Reboot"
10789msgstr "Reinicia"
10890
109−#: qml/Components/Dialogs.qml:208
91+#: qml/Components/Dialogs.qml:174
11092msgid "Are you sure you want to reboot?"
11193msgstr "Segur que voleu reiniciar?"
11294
113−#: qml/Components/Dialogs.qml:210
95+#: qml/Components/Dialogs.qml:176
11496msgid "No"
11597msgstr "No"
11698
117−#: qml/Components/Dialogs.qml:217
99+#: qml/Components/Dialogs.qml:183
118100msgid "Yes"
119101msgstr "Sí"
120102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:198
122104msgctxt "Title: Power off/Restart dialog"
123105msgid "Power"
124106msgstr "Energia"
125107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:199
127109msgid ""
128110"Are you sure you would like\n"
129111"to power off?"
@@ -131,25 +113,25 @@ msgstr ""
131113"Segur que voleu\n"
132114"apagar?"
133115
134−#: qml/Components/Dialogs.qml:235
116+#: qml/Components/Dialogs.qml:201
135117msgctxt "Button: Power off the system"
136118msgid "Power off"
137119msgstr "Apaga"
138120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:210
140122msgctxt "Button: Restart the system"
141123msgid "Restart"
142124msgstr "Reinicia"
143125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145127msgid "Return to Call"
146128msgstr "Torna a la trucada"
147129
148−#: qml/Components/Lockscreen.qml:245
130+#: qml/Components/Lockscreen.qml:231
149131msgid "Emergency Call"
150132msgstr "Trucada d'emergència"
151133
152−#: qml/Components/Lockscreen.qml:277
134+#: qml/Components/Lockscreen.qml:263
153135msgid "OK"
154136msgstr "D'acord"
155137
@@ -158,10 +140,10 @@ msgid "Apps may have unsaved data:"
158140msgstr "Pot ser que aquestes aplicacions no hagin desat les dades:"
159141
160142#: qml/Components/ModeSwitchWarningDialog.qml:57
143+msgctxt ""
144+"Re-dock means connect the device again to an external screen/mouse/keyboard"
161145msgid "Re-dock, save your work and close these apps to continue."
162146msgstr ""
163−"Torneu a connectar, deseu la feina i tanqueu aquestes aplicacions per "
164−"continuar."
165147
166148#: qml/Components/ModeSwitchWarningDialog.qml:63
167149msgid "Or force close now (unsaved data will be lost)."
@@ -179,42 +161,58 @@ msgstr "Torna a connectar"
179161msgid "Close all"
180162msgstr "Tanca-ho tot"
181163
182−#: qml/Dash/DashPageHeader.qml:266
164+#: qml/Dash/DashPageHeader.qml:337
183165msgctxt "Button: Open the Ubuntu Store"
184166msgid "Store"
185167msgstr "Botiga"
186168
187−#: qml/Dash/DashPageHeader.qml:273
169+#: qml/Dash/DashPageHeader.qml:344
188170msgctxt "Button: Start a search in the current dash scope"
189171msgid "Search"
190172msgstr "Cerca"
191173
192−#: qml/Dash/DashPageHeader.qml:283
174+#: qml/Dash/DashPageHeader.qml:354
193175msgctxt "Button: Show the current dash scope settings"
194176msgid "Settings"
195177msgstr "Paràmetres"
196178
197−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
198180msgid "Remove from Favorites"
199181msgstr "Suprimeix dels preferits"
200182
201−#: qml/Dash/DashPageHeader.qml:290
183+#: qml/Dash/DashPageHeader.qml:361
202184msgid "Add to Favorites"
203185msgstr "Afegeix als preferits"
204186
205−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
187+#: qml/Dash/FiltersPopover.qml:60
188+msgid "Refine your results"
189+msgstr ""
190+
191+#: qml/Dash/FiltersPopover.qml:69
192+msgid "Reset"
193+msgstr ""
194+
195+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
206196msgid "See less"
207197msgstr "Mostra'n menys"
208198
209−#: qml/Dash/GenericScopeView.qml:587
199+#: qml/Dash/GenericScopeView.qml:570
210200msgid "See all"
211201msgstr "Mostra-ho tot"
212202
213−#: qml/Dash/GenericScopeView.qml:649
203+#: qml/Dash/GenericScopeView.qml:627
214204msgctxt "Label: Hint for dash search line edit"
215205msgid "Search"
216206msgstr "Cerca"
217207
208+#: qml/Dash/PageHeaderExtraPanel.qml:55
209+msgid "Recent Searches"
210+msgstr ""
211+
212+#: qml/Dash/PageHeaderExtraPanel.qml:66
213+msgid "Clear All"
214+msgstr ""
215+
218216#: qml/Dash/Previews/PreviewActionCombo.qml:35
219217msgid "More..."
220218msgstr "Més..."
@@ -236,7 +234,7 @@ msgstr "Puntueu-ho"
236234msgid "Add a review"
237235msgstr "Afegiu una ressenya"
238236
239−#: qml/Dash/Previews/PreviewSharing.qml:50
237+#: qml/Dash/Previews/PreviewSharing.qml:66
240238msgid "Preview Share Item"
241239msgstr ""
242240
@@ -264,13 +262,13 @@ msgstr "Inici"
264262msgid "Also installed"
265263msgstr "També instal·lat"
266264
267−#: qml/DisabledScreenNotice.qml:87
265+#: qml/DisabledScreenNotice.qml:104
268266msgid ""
269267"Your device is now connected to an external display. Use this screen as a "
270−"touch pad to interact with the mouse."
268+"touch pad to interact with the pointer."
271269msgstr ""
272270
273−#: qml/Greeter/CoverPage.qml:107
271+#: qml/Greeter/CoverPage.qml:118
274272msgid "Unlock"
275273msgstr "Desbloca"
276274
@@ -282,11 +280,11 @@ msgstr "Torna-ho a provar"
282280msgid "Tap to unlock"
283281msgstr "Feu un toc per desblocar"
284282
285−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
283+#: qml/Greeter/NarrowView.qml:54
286284msgid "Sorry, incorrect passphrase."
287285msgstr "La contrasenya és incorrecta"
288286
289−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
287+#: qml/Greeter/NarrowView.qml:55
290288msgid "Sorry, incorrect passcode."
291289msgstr "El codi d'accés no és correcte"
292290
@@ -317,7 +315,7 @@ msgstr ""
317315msgid "Enter %1"
318316msgstr "Introduïu: %1"
319317
320−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
318+#: qml/Greeter/NarrowView.qml:117
321319msgid "Enter passphrase"
322320msgstr "Introduïu la contrasenya"
323321
@@ -355,62 +353,62 @@ msgstr "Feu un toc per tornar a la trucada..."
355353msgid "Conference"
356354msgstr "Conferència"
357355
358−#: qml/Panel/Indicators/MenuItemFactory.qml:753
356+#: qml/Panel/Indicators/MenuItemFactory.qml:761
359357msgid "Nothing is playing"
360358msgstr "No s'està reproduint res"
361359
362−#: qml/Panel/Indicators/MenuItemFactory.qml:882
360+#: qml/Panel/Indicators/MenuItemFactory.qml:890
363361#, qt-format
364362msgid "%1 hour"
365363msgid_plural "%1 hours"
366364msgstr[0] "%1 hora"
367365msgstr[1] "%1 hores"
368366
369−#: qml/Panel/Indicators/MenuItemFactory.qml:886
367+#: qml/Panel/Indicators/MenuItemFactory.qml:894
370368#, qt-format
371369msgid "%1 minute"
372370msgid_plural "%1 minutes"
373371msgstr[0] "%1 minut"
374372msgstr[1] "%1 minuts"
375373
376−#: qml/Panel/Indicators/MenuItemFactory.qml:891
374+#: qml/Panel/Indicators/MenuItemFactory.qml:899
377375#, qt-format
378376msgid "%1 second"
379377msgid_plural "%1 seconds"
380378msgstr[0] "%1 segon"
381379msgstr[1] "%1 segons"
382380
383−#: qml/Panel/Indicators/MenuItemFactory.qml:894
381+#: qml/Panel/Indicators/MenuItemFactory.qml:902
384382msgid "0 seconds"
385383msgstr "0 segons"
386384
387385#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
388−#: qml/Panel/Indicators/MenuItemFactory.qml:896
386+#: qml/Panel/Indicators/MenuItemFactory.qml:904
389387#, qt-format
390388msgid "%1 remaining"
391389msgstr "Resta %1"
392390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:902
391+#: qml/Panel/Indicators/MenuItemFactory.qml:910
394392msgid "In queue…"
395393msgstr "A la cua..."
396394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:906
395+#: qml/Panel/Indicators/MenuItemFactory.qml:914
398396msgid "Downloading"
399397msgstr "S'està baixant"
400398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:908
399+#: qml/Panel/Indicators/MenuItemFactory.qml:916
402400msgid "Paused, tap to resume"
403401msgstr "En pausa, feu un toc per continuar"
404402
405−#: qml/Panel/Indicators/MenuItemFactory.qml:910
403+#: qml/Panel/Indicators/MenuItemFactory.qml:918
406404msgid "Canceled"
407405msgstr "S'ha cancel·lat"
408406
409−#: qml/Panel/Indicators/MenuItemFactory.qml:912
407+#: qml/Panel/Indicators/MenuItemFactory.qml:920
410408msgid "Finished"
411409msgstr "S'ha finalitzat"
412410
413−#: qml/Panel/Indicators/MenuItemFactory.qml:914
411+#: qml/Panel/Indicators/MenuItemFactory.qml:922
414412msgid "Failed, tap to retry"
415413msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
416414
@@ -430,261 +428,324 @@ msgctxt "Button: Call back on phone"
430428msgid "Call back"
431429msgstr "Retorna la trucada"
432430
433−#: qml/Panel/Indicators/ModemInfoItem.qml:105
434−msgid "Unlock SIM"
435−msgstr "Desbloca la SIM"
436−
437−#: qml/Panel/Indicators/RoamingIndication.qml:27
438−msgid "Roaming"
439−msgstr "Itinerància"
440−
441−#: qml/Tutorial/TutorialBottom.qml:28
442−msgid "Open special menus"
443−msgstr "Obre els menús especials"
444−
445−#: qml/Tutorial/TutorialBottom.qml:29
446−msgid "Swipe up from the bottom edge."
447−msgstr "Llisqueu el dit des de la vora inferior."
431+#: qml/Stages/SideStage.qml:76
432+msgid "Drag using 3 fingers any application from one window to the other"
433+msgstr ""
448434
449−#: qml/Tutorial/TutorialBottomFinish.qml:24
450−msgid "This action does different things for different apps"
451−msgstr "Aquesta acció fa coses diferents depenent de l'aplicació"
435+#: qml/Tutorial/TutorialBottom.qml:78
436+msgid "Swipe up to add a contact"
437+msgstr ""
452438
453−#: qml/Tutorial/TutorialBottomFinish.qml:25
454−msgid "Tap here to finish."
455−msgstr "Feu un toc per finalitzar."
439+#: qml/Tutorial/TutorialBottom.qml:80
440+msgid "Swipe up for favorite calculations"
441+msgstr ""
456442
457−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
458−#: qml/Tutorial/TutorialRight.qml:144
459−msgid "Tap here to continue."
460−msgstr "Feu un toc per continuar."
443+#: qml/Tutorial/TutorialBottom.qml:82
444+msgid "Swipe up for recent calls"
445+msgstr ""
461446
462−#: qml/Tutorial/TutorialLeft.qml:26
463−msgid "Open the launcher"
464−msgstr "Obre el llançador"
447+#: qml/Tutorial/TutorialBottom.qml:84
448+msgid "Swipe up to create a message"
449+msgstr ""
465450
466−#: qml/Tutorial/TutorialLeft.qml:27
467−msgid "Short swipe from the left edge."
468−msgstr "Lliscament curt des de la vora esquerra."
451+#: qml/Tutorial/TutorialBottom.qml:85
452+msgid "Swipe up to manage the app"
453+msgstr ""
469454
470−#: qml/Tutorial/TutorialLeftFinish.qml:24
471−msgid "These are the shortcuts to favorite apps"
472−msgstr "Aquestes són les dreceres a les aplicacions preferides"
455+#: qml/Tutorial/TutorialLeft.qml:47
456+msgid "Swipe from the left edge to open the launcher"
457+msgstr ""
473458
474−#: qml/Tutorial/TutorialPage.qml:178
475−msgid "You almost got it!"
476−msgstr "Ja gairebé ho teniu!"
459+#: qml/Tutorial/TutorialLeftLong.qml:47
460+msgid "Long swipe from the left edge to open the Today scope"
461+msgstr ""
477462
478−#: qml/Tutorial/TutorialPage.qml:195
479−msgid "Try again."
480−msgstr "Torneu-ho a provar."
463+#: qml/Tutorial/TutorialRight.qml:54
464+msgid "Hover your mouse on the right edge to view your open apps"
465+msgstr ""
481466
482−#: qml/Tutorial/TutorialRight.qml:31
483−msgid "To view open apps"
484−msgstr "Per veure les aplicacions obertes"
467+#: qml/Tutorial/TutorialRight.qml:55
468+msgid "Short or long swipe from the right edge to view your open apps"
469+msgstr ""
485470
486−#: qml/Tutorial/TutorialRight.qml:32
487−msgid "Long swipe from the right edge."
488−msgstr "Lliscament llarg des de la vora dreta."
471+#: qml/Tutorial/TutorialTop.qml:53
472+msgid "Swipe from the top right edge to open the notification bar"
473+msgstr ""
489474
490−#: qml/Tutorial/TutorialRight.qml:122
491−msgid "View all your running tasks."
492−msgstr "Mostra totes les tasques en execució."
475+#: qml/Tutorial/TutorialTop.qml:54
476+msgid "Swipe from the top edge to open the notification bar"
477+msgstr ""
493478
494−#: qml/Wizard/Page.qml:89
479+#: qml/Wizard/Page.qml:54
495480msgctxt "Button: Go back one page in the Wizard"
496481msgid "Back"
497482msgstr "Enrere"
498483
499484#: qml/Wizard/Pages/10-welcome.qml:27
500−msgid "Hi!"
501−msgstr "Hola!"
485+msgid "Language"
486+msgstr ""
502487
503−#: qml/Wizard/Pages/10-welcome.qml:44
504−msgid "Welcome to your Ubuntu device."
488+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
489+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
490+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
491+#: qml/Wizard/Pages/75-report-check.qml:84
492+#: qml/Wizard/Pages/passcode-desktop.qml:124
493+#: qml/Wizard/Pages/password-set.qml:141
494+msgid "Next"
505495msgstr ""
506496
507−#: qml/Wizard/Pages/10-welcome.qml:52
508−msgid "Let’s get started."
509−msgstr "Comencem."
497+#: qml/Wizard/Pages/30-wifi.qml:29
498+msgid "Connect to Wi‑Fi"
499+msgstr "Connecta't a la Wi-Fi"
510500
511−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
512−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
513−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
514−#: qml/Wizard/Pages/passwd-set.qml:90
515−msgid "Continue"
516−msgstr "Continua"
501+#: qml/Wizard/Pages/30-wifi.qml:130
502+msgid "Connected"
503+msgstr ""
517504
518−#: qml/Wizard/Pages/20-sim.qml:25
519−msgid "Add a SIM card and restart your device"
520−msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
505+#: qml/Wizard/Pages/30-wifi.qml:163
506+msgid "Available Wi-Fi networks"
507+msgstr ""
521508
522−#: qml/Wizard/Pages/20-sim.qml:59
523−msgid "Without it, you won’t be able to make calls or use text messaging."
524−msgstr "Sense ella, no podreu fer trucades o enviar missatges de text."
509+#: qml/Wizard/Pages/30-wifi.qml:164
510+msgid "No available Wi-Fi networks"
511+msgstr ""
525512
526−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
513+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
514+#: qml/Wizard/Pages/sim.qml:101
527515msgid "Skip"
528516msgstr "Omet"
529517
530−#: qml/Wizard/Pages/30-passwd-type.qml:39
531−msgid "Lock security"
532−msgstr "Seguretat del bloqueig"
518+#: qml/Wizard/Pages/40-location.qml:27
519+msgid "Location Services"
520+msgstr ""
533521
534−#: qml/Wizard/Pages/30-passwd-type.qml:79
535−msgid "Please select how you’d like to unlock your device."
522+#: qml/Wizard/Pages/40-location.qml:83
523+msgid ""
524+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
525+"(recommended)"
536526msgstr ""
537527
538−#: qml/Wizard/Pages/30-passwd-type.qml:102
539−msgctxt "Label: Type of security method"
540−msgid "Swipe"
541−msgstr "Lliscament amb el dit"
528+#: qml/Wizard/Pages/40-location.qml:105
529+#, qt-format
530+msgid "By selecting this option you agree to the Nokia HERE %1."
531+msgstr ""
532+
533+#: qml/Wizard/Pages/40-location.qml:106
534+msgctxt "part of: Nokia HERE terms and conditions"
535+msgid "terms and conditions"
536+msgstr ""
537+
538+#: qml/Wizard/Pages/40-location.qml:160
539+msgid "GPS only"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/40-location.qml:214
543+msgid "Don't use my location"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/40-location.qml:260
547+msgid "You can change it later in System Settings."
548+msgstr ""
549+
550+#: qml/Wizard/Pages/50-timezone.qml:29
551+msgid "Time Zone"
552+msgstr ""
542553
543−#: qml/Wizard/Pages/30-passwd-type.qml:103
544−msgctxt "Label: Description of security method"
545−msgid "No security"
546−msgstr "Sense seguretat"
554+#: qml/Wizard/Pages/50-timezone.qml:178
555+msgid "Enter your city"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/60-account.qml:24
559+msgid "Personalize Your Device"
560+msgstr ""
561+
562+#: qml/Wizard/Pages/60-account.qml:48
563+msgid "Preferred Name"
564+msgstr ""
565+
566+#: qml/Wizard/Pages/70-passwd-type.qml:39
567+msgid "Lock Screen"
568+msgstr ""
547569
548−#: qml/Wizard/Pages/30-passwd-type.qml:105
570+#: qml/Wizard/Pages/70-passwd-type.qml:101
549571msgctxt "Label: Type of security method"
550−msgid "Passcode"
551−msgstr "Codi d'accés"
572+msgid "Create new password"
573+msgstr ""
552574
553−#: qml/Wizard/Pages/30-passwd-type.qml:106
554−msgctxt "Label: Description of security method"
555−msgid "4 digits only"
556−msgstr "Només 4 dígits"
575+#: qml/Wizard/Pages/70-passwd-type.qml:103
576+msgctxt "Label: Type of security method"
577+msgid "Create passcode (numbers only)"
578+msgstr ""
557579
558−#: qml/Wizard/Pages/30-passwd-type.qml:108
580+#: qml/Wizard/Pages/70-passwd-type.qml:105
559581msgctxt "Label: Type of security method"
560−msgid "Passphrase"
561−msgstr "Contrasenya"
582+msgid "No lock code"
583+msgstr ""
562584
563−#: qml/Wizard/Pages/30-passwd-type.qml:109
564−msgctxt "Label: Description of security method"
565−msgid "Numbers and letters"
566−msgstr "Números i lletres"
585+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
586+msgid "Privacy Policy"
587+msgstr ""
567588
568−#: qml/Wizard/Pages/40-wifi.qml:29
569−msgid "Connect to Wi‑Fi"
570−msgstr "Connecta't a la Wi-Fi"
589+#: qml/Wizard/Pages/75-report-check.qml:26
590+msgid "Help Us Improve"
591+msgstr ""
571592
572−#: qml/Wizard/Pages/40-wifi.qml:168
573−msgid "Available networks…"
574−msgstr "Xarxes disponibles..."
593+#: qml/Wizard/Pages/75-report-check.qml:59
594+msgid "Improve system performance by sending us crashes and error reports."
595+msgstr ""
575596
576−#: qml/Wizard/Pages/40-wifi.qml:169
577−msgid "No available networks."
578−msgstr "No hi ha xarxes disponibles"
597+#: qml/Wizard/Pages/75-report-check.qml:60
598+msgid "Privacy policy"
599+msgstr ""
579600
580−#: qml/Wizard/Pages/50-location.qml:27
581−msgid "Location"
582−msgstr "Ubicació"
601+#: qml/Wizard/Pages/80-finished.qml:89
602+msgid "Welcome to Ubuntu"
603+msgstr ""
583604
584−#: qml/Wizard/Pages/50-location.qml:62
585−msgid "Let the phone detect your location:"
586−msgstr "Fes que el telèfon detecti la meva ubicació:"
605+#: qml/Wizard/Pages/80-finished.qml:104
606+msgid "You are ready to use your device now"
607+msgstr ""
587608
588−#: qml/Wizard/Pages/50-location.qml:69
589−msgid "Using GPS only (less accurate)"
590−msgstr "Utilitza només el GPS (menys precís)"
609+#: qml/Wizard/Pages/80-finished.qml:124
610+msgid "Get Started"
611+msgstr ""
591612
592−#: qml/Wizard/Pages/50-location.qml:86
593−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
613+#: qml/Wizard/Pages/here-terms.qml:25
614+msgid "Terms & Conditions"
615+msgstr "Condicions generals"
616+
617+#: qml/Wizard/Pages/here-terms.qml:69
618+msgid "Your device uses positioning technologies provided by HERE."
594619msgstr ""
595−"Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
596−"(recomanat)"
597620
598−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
599−#: qml/Wizard/Pages/50-location.qml:103
621+#: qml/Wizard/Pages/here-terms.qml:81
600622msgid ""
601−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
602−"conditions</a>."
623+"To provide you with positioning services and to improve their quality, HERE "
624+"collects information about nearby cell towers and Wi-Fi hotspots around your "
625+"current location whenever your position is being found."
603626msgstr ""
604−"Si seleccioneu aquesta opció, accepteu <a href='#'>les condicions generals "
605−"del servei Nokia HERE</a>."
606627
607−#: qml/Wizard/Pages/50-location.qml:112
608−msgid "Not at all"
609−msgstr "No"
628+#: qml/Wizard/Pages/here-terms.qml:93
629+msgid ""
630+"The information collected is used to analyze the service and to improve the "
631+"use of service, but not to identify you personally."
632+msgstr ""
610633
611−#: qml/Wizard/Pages/50-location.qml:124
612−msgid "You can change your mind later in <b>System Settings</b>."
634+#: qml/Wizard/Pages/here-terms.qml:106
635+#, qt-format
636+msgid "By continuing, you agree to the HERE platform %1 and %2."
613637msgstr ""
614−"Podeu canviar-ho més endavant a l'aplicació <b>Paràmetres del sistema</b>"
615638
616−#: qml/Wizard/Pages/60-reporting.qml:26
617−msgid "Improving your experience"
618−msgstr "Millora de l'experiència"
639+#: qml/Wizard/Pages/here-terms.qml:107
640+msgid "Service Terms"
641+msgstr ""
619642
620−#: qml/Wizard/Pages/60-reporting.qml:46
621−msgid ""
622−"Your phone is set up to automatically report errors to Canonical and its "
623−"partners, the makers of the operating system."
643+#: qml/Wizard/Pages/passcode-confirm.qml:43
644+#: qml/Wizard/Pages/passcode-desktop.qml:80
645+msgid "Confirm passcode"
646+msgstr "Confirmeu el codi d'accés"
647+
648+#: qml/Wizard/Pages/passcode-confirm.qml:45
649+msgid "Incorrect passcode."
624650msgstr ""
625−"Aquest telèfon està configurat per enviar errors de manera automàtica a "
626−"Canonical i associats, els creadors del sistema operatiu."
627651
628−#: qml/Wizard/Pages/60-reporting.qml:53
629−msgid ""
630−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
631−"Privacy</b>"
652+#: qml/Wizard/Pages/passcode-confirm.qml:45
653+msgctxt "Enter the passcode again"
654+msgid "Please re-enter."
632655msgstr ""
633−"Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
634−"<b>Seguretat i privadesa</b>"
635656
636−#: qml/Wizard/Pages/80-finished.qml:24
637−msgid "All done"
638−msgstr "Tot fet"
657+#: qml/Wizard/Pages/passcode-desktop.qml:30
658+msgid "Lock Screen Passcode"
659+msgstr ""
639660
640−#: qml/Wizard/Pages/80-finished.qml:39
641−msgid "Nice work!"
642−msgstr "Bona feina!"
661+#: qml/Wizard/Pages/passcode-desktop.qml:56
662+msgid "Enter 4 numbers to setup your passcode"
663+msgstr ""
643664
644−#: qml/Wizard/Pages/80-finished.qml:46
645−msgid "Your device is now ready to use."
665+#: qml/Wizard/Pages/passcode-desktop.qml:65
666+#: qml/Wizard/Pages/passcode-set.qml:54
667+msgid "Choose passcode"
646668msgstr ""
647669
648−#: qml/Wizard/Pages/80-finished.qml:53
649−msgid "Finish"
650−msgstr "Finalitza"
670+#: qml/Wizard/Pages/passcode-desktop.qml:105
671+msgid "Passcode too short"
672+msgstr ""
651673
652−#: qml/Wizard/Pages/here-terms.qml:27
653−msgid "Terms & Conditions"
654−msgstr "Condicions generals"
674+#: qml/Wizard/Pages/passcode-desktop.qml:107
675+msgid "Passcodes match"
676+msgstr ""
655677
656−#: qml/Wizard/Pages/passwd-confirm.qml:49
657−msgid "Confirm passphrase"
658−msgstr "Confirmeu la contrasenya"
678+#: qml/Wizard/Pages/passcode-desktop.qml:109
679+msgid "Passcodes do not match"
680+msgstr ""
659681
660−#: qml/Wizard/Pages/passwd-confirm.qml:50
661−msgid "Confirm passcode"
662−msgstr "Confirmeu el codi d'accés"
682+#: qml/Wizard/Pages/passcode-set.qml:62
683+msgid "Passcode must be 4 characters long"
684+msgstr ""
663685
664−#: qml/Wizard/Pages/passwd-confirm.qml:53
665−#: qml/Wizard/Pages/passwd-confirm.qml:54
666−msgid "Please try again."
667−msgstr "Torneu-ho a intentar."
686+#: qml/Wizard/Pages/password-set.qml:30
687+msgid "Lock Screen Password"
688+msgstr ""
668689
669−#: qml/Wizard/Pages/passwd-set.qml:61
670−msgid "Choose your passcode"
671−msgstr "Trieu el codi d'accés"
690+#: qml/Wizard/Pages/password-set.qml:61
691+msgid "Enter at least 8 characters"
692+msgstr ""
672693
673−#: qml/Wizard/Pages/passwd-set.qml:68
674−msgid "Passphrase must be 4 characters long"
675−msgstr "La contrasenya ha de tenir 4 caràcters com a mínim"
694+#: qml/Wizard/Pages/password-set.qml:73
695+msgid "Choose password"
696+msgstr ""
676697
677−#. Translators: This is the arrow for "Back" buttons
678−#: qml/Wizard/StackButton.qml:39
679−#, qt-format
680−msgid "〈 %1"
681−msgstr "〈 %1"
698+#: qml/Wizard/Pages/password-set.qml:103
699+msgid "Confirm password"
700+msgstr ""
682701
683−#. Translators: This is the arrow for "Forward" buttons
684−#: qml/Wizard/StackButton.qml:42
685−#, qt-format
686−msgid "%1 〉"
687−msgstr "%1 〉"
702+#: qml/Wizard/Pages/sim.qml:27
703+msgid "No SIM card installed"
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:54
707+msgid "SIM card added"
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:55
711+msgid "You must restart the device to access the mobile network."
712+msgstr ""
713+
714+#: qml/Wizard/Pages/sim.qml:59
715+msgid "Restart"
716+msgstr "Reinicia"
717+
718+#: qml/Wizard/Pages/sim.qml:78
719+msgid "You won’t be able to make calls or use text messaging without a SIM."
720+msgstr ""
721+
722+#: qml/Wizard/Pages/sim.qml:90
723+msgid "To proceed with no SIM tap Skip."
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:87
727+msgid "Passwords match"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:89
731+msgid "Passwords do not match"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:93
735+msgid "Strong password"
736+msgstr ""
737+
738+#: qml/Wizard/PasswordMeter.qml:95
739+msgid "Fair password"
740+msgstr ""
741+
742+#: qml/Wizard/PasswordMeter.qml:97
743+msgid "Weak password"
744+msgstr ""
745+
746+#: qml/Wizard/PasswordMeter.qml:99
747+msgid "Very weak password"
748+msgstr ""
688749
689750#~ msgid "Confirm"
690751#~ msgstr "Confirma"
@@ -747,12 +808,18 @@ msgstr "%1 〉"
747808#~ "Ja heu après com utilitzar els gestos de les vores per fer servir el "
748809#~ "telèfon<br><br>Feu un toc a la pantalla per començar"
749810
811+#~ msgid "Unlock SIM"
812+#~ msgstr "Desbloca la SIM"
813+
750814#~ msgid "Store"
751815#~ msgstr "Botiga"
752816
753817#~ msgid "Done"
754818#~ msgstr "Fet"
755819
820+#~ msgid "Roaming"
821+#~ msgstr "Itinerància"
822+
756823#~ msgid "Favorites"
757824#~ msgstr "Preferides"
758825
@@ -774,27 +841,200 @@ msgstr "%1 〉"
774841#~ msgid "Power off"
775842#~ msgstr "Apaga"
776843
844+#~ msgid "Are you sure you want to shut down?"
845+#~ msgstr "Segur que voleu apagar?"
846+
777847#~ msgid "Shut down"
778848#~ msgstr "Apaga"
779849
780−#~ msgid "Restart"
781−#~ msgstr "Reinicia"
782−
783850#~ msgid "Please re-enter"
784851#~ msgstr "Torneu-ho a introduir"
785852
786853#~ msgid "Manage Scopes"
787854#~ msgstr "Gestioneu les lents"
788855
856+#~ msgid "Add a SIM card and restart your device"
857+#~ msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
858+
859+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
860+#~ msgstr "Sense ella, no podreu fer trucades o enviar missatges de text."
861+
862+#~ msgid "Hi!"
863+#~ msgstr "Hola!"
864+
789865#~ msgid "Welcome to your Ubuntu phone."
790866#~ msgstr "Us donem la benvinguda al vostre telèfon Ubuntu."
791867
868+#~ msgid "Let’s get started."
869+#~ msgstr "Comencem."
870+
871+#~ msgid "Continue"
872+#~ msgstr "Continua"
873+
874+#~ msgid "Lock security"
875+#~ msgstr "Seguretat del bloqueig"
876+
792877#~ msgid "Please select how you’d like to unlock your phone."
793878#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
794879
880+#~ msgid "Improving your experience"
881+#~ msgstr "Millora de l'experiència"
882+
883+#~ msgid "Available networks…"
884+#~ msgstr "Xarxes disponibles..."
885+
886+#~ msgid "No available networks."
887+#~ msgstr "No hi ha xarxes disponibles"
888+
889+#~ msgid "Location"
890+#~ msgstr "Ubicació"
891+
892+#~ msgid ""
893+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
894+#~ "Privacy</b>"
895+#~ msgstr ""
896+#~ "Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
897+#~ "<b>Seguretat i privadesa</b>"
898+
899+#~ msgid ""
900+#~ "Your phone is set up to automatically report errors to Canonical and its "
901+#~ "partners, the makers of the operating system."
902+#~ msgstr ""
903+#~ "Aquest telèfon està configurat per enviar errors de manera automàtica a "
904+#~ "Canonical i associats, els creadors del sistema operatiu."
905+
906+#~ msgid "Finish"
907+#~ msgstr "Finalitza"
908+
795909#~ msgid "Your phone is now ready to use."
796910#~ msgstr "Ja podeu utilitzar el vostre telèfon."
797911
912+#~ msgid "Confirm passphrase"
913+#~ msgstr "Confirmeu la contrasenya"
914+
915+#~ msgid "Please try again."
916+#~ msgstr "Torneu-ho a intentar."
917+
918+#~ msgid "Nice work!"
919+#~ msgstr "Bona feina!"
920+
921+#~ msgid "All done"
922+#~ msgstr "Tot fet"
923+
924+#~ msgid "Choose your passcode"
925+#~ msgstr "Trieu el codi d'accés"
926+
927+#, qt-format
928+#~ msgid "%1 〉"
929+#~ msgstr "%1 〉"
930+
931+#~ msgid "Passphrase must be 4 characters long"
932+#~ msgstr "La contrasenya ha de tenir 4 caràcters com a mínim"
933+
934+#, qt-format
935+#~ msgid "〈 %1"
936+#~ msgstr "〈 %1"
937+
938+#~ msgid "Let the phone detect your location:"
939+#~ msgstr "Fes que el telèfon detecti la meva ubicació:"
940+
941+#~ msgid "Using GPS only (less accurate)"
942+#~ msgstr "Utilitza només el GPS (menys precís)"
943+
944+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
945+#~ msgstr ""
946+#~ "Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
947+#~ "(recomanat)"
948+
949+#~ msgid "You can change your mind later in <b>System Settings</b>."
950+#~ msgstr ""
951+#~ "Podeu canviar-ho més endavant a l'aplicació <b>Paràmetres del sistema</b>"
952+
953+#~ msgid ""
954+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
955+#~ "conditions</a>."
956+#~ msgstr ""
957+#~ "Si seleccioneu aquesta opció, accepteu <a href='#'>les condicions generals "
958+#~ "del servei Nokia HERE</a>."
959+
960+#~ msgid "Not at all"
961+#~ msgstr "No"
962+
963+#~ msgid "You almost got it!"
964+#~ msgstr "Ja gairebé ho teniu!"
965+
966+#~ msgid "Open the launcher"
967+#~ msgstr "Obre el llançador"
968+
969+#~ msgid "Tap here to continue."
970+#~ msgstr "Feu un toc per continuar."
971+
972+#~ msgid "Open special menus"
973+#~ msgstr "Obre els menús especials"
974+
975+#~ msgid "To view open apps"
976+#~ msgstr "Per veure les aplicacions obertes"
977+
978+#~ msgid "Long swipe from the right edge."
979+#~ msgstr "Lliscament llarg des de la vora dreta."
980+
981+#~ msgid "View all your running tasks."
982+#~ msgstr "Mostra totes les tasques en execució."
983+
984+#~ msgid "This action does different things for different apps"
985+#~ msgstr "Aquesta acció fa coses diferents depenent de l'aplicació"
986+
987+#~ msgid "Try again."
988+#~ msgstr "Torneu-ho a provar."
989+
990+#~ msgid "Short swipe from the left edge."
991+#~ msgstr "Lliscament curt des de la vora esquerra."
992+
993+#~ msgid "These are the shortcuts to favorite apps"
994+#~ msgstr "Aquestes són les dreceres a les aplicacions preferides"
995+
996+#~ msgid "Swipe up from the bottom edge."
997+#~ msgstr "Llisqueu el dit des de la vora inferior."
998+
999+#~ msgid "Tap here to finish."
1000+#~ msgstr "Feu un toc per finalitzar."
1001+
1002+#~ msgctxt "Label: Description of security method"
1003+#~ msgid "4 digits only"
1004+#~ msgstr "Només 4 dígits"
1005+
1006+#~ msgctxt "Button: Shut down the system"
1007+#~ msgid "Shut down"
1008+#~ msgstr "Apaga"
1009+
1010+#~ msgctxt "Title: Reboot/Shut down dialog"
1011+#~ msgid "Shut down"
1012+#~ msgstr "Apaga"
1013+
1014+#~ msgctxt "Button: Reboot the system"
1015+#~ msgid "Reboot"
1016+#~ msgstr "Reinicia"
1017+
1018+#~ msgctxt "Label: Type of security method"
1019+#~ msgid "Swipe"
1020+#~ msgstr "Lliscament amb el dit"
1021+
1022+#~ msgctxt "Label: Type of security method"
1023+#~ msgid "Passcode"
1024+#~ msgstr "Codi d'accés"
1025+
1026+#~ msgctxt "Label: Description of security method"
1027+#~ msgid "No security"
1028+#~ msgstr "Sense seguretat"
1029+
1030+#~ msgctxt "Label: Type of security method"
1031+#~ msgid "Passphrase"
1032+#~ msgstr "Contrasenya"
1033+
1034+#~ msgctxt "Label: Description of security method"
1035+#~ msgid "Numbers and letters"
1036+#~ msgstr "Números i lletres"
1037+
7981038#~ msgid "Yesterday %l:%M %p"
7991039#~ msgstr "Ahir %l.%M %p"
8001040
po/ca@valencia.po+403−236
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2015-02-22 15:22+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,23 +15,23 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:08+0000\n"
19+"X-Generator: Launchpad (build 17958)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr "Contrasenya: "
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
2727msgid "Pin shortcut"
2828msgstr "Apega la drecera"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
3535msgid "Unpin shortcut"
3636msgstr "Desenganxa la drecera"
3737
@@ -77,53 +77,35 @@ msgctxt "Button: Log out from the system"
7777msgid "Log Out"
7878msgstr ""
7979
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
81−#: qml/Components/Dialogs.qml:253
80+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
81+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
82+#: qml/Wizard/Pages/passcode-set.qml:32
8283msgid "Cancel"
8384msgstr "Cancel·la"
8485
8586#: qml/Components/Dialogs.qml:173
86−msgctxt "Title: Reboot/Shut down dialog"
87−msgid "Shut down"
88−msgstr ""
89−
90−#: qml/Components/Dialogs.qml:174
91−msgid "Are you sure you want to shut down?"
92−msgstr "Segur que voleu apagar?"
93−
94−#: qml/Components/Dialogs.qml:176
95−msgctxt "Button: Reboot the system"
96−msgid "Reboot"
97−msgstr ""
98−
99−#: qml/Components/Dialogs.qml:185
100−msgctxt "Button: Shut down the system"
101−msgid "Shut down"
102−msgstr ""
103−
104−#: qml/Components/Dialogs.qml:207
10587msgctxt "Title: Reboot dialog"
10688msgid "Reboot"
10789msgstr ""
10890
109−#: qml/Components/Dialogs.qml:208
91+#: qml/Components/Dialogs.qml:174
11092msgid "Are you sure you want to reboot?"
11193msgstr "Segur que voleu reiniciar?"
11294
113−#: qml/Components/Dialogs.qml:210
95+#: qml/Components/Dialogs.qml:176
11496msgid "No"
11597msgstr "No"
11698
117−#: qml/Components/Dialogs.qml:217
99+#: qml/Components/Dialogs.qml:183
118100msgid "Yes"
119101msgstr "Sí"
120102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:198
122104msgctxt "Title: Power off/Restart dialog"
123105msgid "Power"
124106msgstr ""
125107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:199
127109msgid ""
128110"Are you sure you would like\n"
129111"to power off?"
@@ -131,25 +113,25 @@ msgstr ""
131113"Segur que voleu\n"
132114"apagar?"
133115
134−#: qml/Components/Dialogs.qml:235
116+#: qml/Components/Dialogs.qml:201
135117msgctxt "Button: Power off the system"
136118msgid "Power off"
137119msgstr ""
138120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:210
140122msgctxt "Button: Restart the system"
141123msgid "Restart"
142124msgstr ""
143125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145127msgid "Return to Call"
146128msgstr "Torna a la cridada"
147129
148−#: qml/Components/Lockscreen.qml:245
130+#: qml/Components/Lockscreen.qml:231
149131msgid "Emergency Call"
150132msgstr "Cridada d'emergència"
151133
152−#: qml/Components/Lockscreen.qml:277
134+#: qml/Components/Lockscreen.qml:263
153135msgid "OK"
154136msgstr "D'acord"
155137
@@ -158,6 +140,8 @@ msgid "Apps may have unsaved data:"
158140msgstr ""
159141
160142#: qml/Components/ModeSwitchWarningDialog.qml:57
143+msgctxt ""
144+"Re-dock means connect the device again to an external screen/mouse/keyboard"
161145msgid "Re-dock, save your work and close these apps to continue."
162146msgstr ""
163147
@@ -177,42 +161,58 @@ msgstr ""
177161msgid "Close all"
178162msgstr ""
179163
180−#: qml/Dash/DashPageHeader.qml:266
164+#: qml/Dash/DashPageHeader.qml:337
181165msgctxt "Button: Open the Ubuntu Store"
182166msgid "Store"
183167msgstr ""
184168
185−#: qml/Dash/DashPageHeader.qml:273
169+#: qml/Dash/DashPageHeader.qml:344
186170msgctxt "Button: Start a search in the current dash scope"
187171msgid "Search"
188172msgstr ""
189173
190−#: qml/Dash/DashPageHeader.qml:283
174+#: qml/Dash/DashPageHeader.qml:354
191175msgctxt "Button: Show the current dash scope settings"
192176msgid "Settings"
193177msgstr ""
194178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196180msgid "Remove from Favorites"
197181msgstr "Suprimeix dels preferits"
198182
199−#: qml/Dash/DashPageHeader.qml:290
183+#: qml/Dash/DashPageHeader.qml:361
200184msgid "Add to Favorites"
201185msgstr "Afig als preferits"
202186
203−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
187+#: qml/Dash/FiltersPopover.qml:60
188+msgid "Refine your results"
189+msgstr ""
190+
191+#: qml/Dash/FiltersPopover.qml:69
192+msgid "Reset"
193+msgstr ""
194+
195+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
204196msgid "See less"
205197msgstr "Mostra'n menys"
206198
207−#: qml/Dash/GenericScopeView.qml:587
199+#: qml/Dash/GenericScopeView.qml:570
208200msgid "See all"
209201msgstr "Mostra-ho tot"
210202
211−#: qml/Dash/GenericScopeView.qml:649
203+#: qml/Dash/GenericScopeView.qml:627
212204msgctxt "Label: Hint for dash search line edit"
213205msgid "Search"
214206msgstr ""
215207
208+#: qml/Dash/PageHeaderExtraPanel.qml:55
209+msgid "Recent Searches"
210+msgstr ""
211+
212+#: qml/Dash/PageHeaderExtraPanel.qml:66
213+msgid "Clear All"
214+msgstr ""
215+
216216#: qml/Dash/Previews/PreviewActionCombo.qml:35
217217msgid "More..."
218218msgstr "Més..."
@@ -234,7 +234,7 @@ msgstr "Puntueu-ho"
234234msgid "Add a review"
235235msgstr "Afegiu una ressenya"
236236
237−#: qml/Dash/Previews/PreviewSharing.qml:50
237+#: qml/Dash/Previews/PreviewSharing.qml:66
238238msgid "Preview Share Item"
239239msgstr ""
240240
@@ -262,13 +262,13 @@ msgstr "Inici"
262262msgid "Also installed"
263263msgstr "També instal·lat"
264264
265−#: qml/DisabledScreenNotice.qml:87
265+#: qml/DisabledScreenNotice.qml:104
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268−"touch pad to interact with the mouse."
268+"touch pad to interact with the pointer."
269269msgstr ""
270270
271−#: qml/Greeter/CoverPage.qml:107
271+#: qml/Greeter/CoverPage.qml:118
272272msgid "Unlock"
273273msgstr "Desbloca"
274274
@@ -280,11 +280,11 @@ msgstr ""
280280msgid "Tap to unlock"
281281msgstr ""
282282
283−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
283+#: qml/Greeter/NarrowView.qml:54
284284msgid "Sorry, incorrect passphrase."
285285msgstr "La contrasenya és incorrecta"
286286
287−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
287+#: qml/Greeter/NarrowView.qml:55
288288msgid "Sorry, incorrect passcode."
289289msgstr "El codi d'accés no és correcte"
290290
@@ -315,7 +315,7 @@ msgstr ""
315315msgid "Enter %1"
316316msgstr "Introduïu: %1"
317317
318−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
318+#: qml/Greeter/NarrowView.qml:117
319319msgid "Enter passphrase"
320320msgstr "Introduïu la contrasenya"
321321
@@ -353,62 +353,62 @@ msgstr "Feu un toc per tornar a la cridada..."
353353msgid "Conference"
354354msgstr "Conferència"
355355
356−#: qml/Panel/Indicators/MenuItemFactory.qml:753
356+#: qml/Panel/Indicators/MenuItemFactory.qml:761
357357msgid "Nothing is playing"
358358msgstr "No s'està reproduint res"
359359
360−#: qml/Panel/Indicators/MenuItemFactory.qml:882
360+#: qml/Panel/Indicators/MenuItemFactory.qml:890
361361#, qt-format
362362msgid "%1 hour"
363363msgid_plural "%1 hours"
364364msgstr[0] ""
365365msgstr[1] ""
366366
367−#: qml/Panel/Indicators/MenuItemFactory.qml:886
367+#: qml/Panel/Indicators/MenuItemFactory.qml:894
368368#, qt-format
369369msgid "%1 minute"
370370msgid_plural "%1 minutes"
371371msgstr[0] ""
372372msgstr[1] ""
373373
374−#: qml/Panel/Indicators/MenuItemFactory.qml:891
374+#: qml/Panel/Indicators/MenuItemFactory.qml:899
375375#, qt-format
376376msgid "%1 second"
377377msgid_plural "%1 seconds"
378378msgstr[0] ""
379379msgstr[1] ""
380380
381−#: qml/Panel/Indicators/MenuItemFactory.qml:894
381+#: qml/Panel/Indicators/MenuItemFactory.qml:902
382382msgid "0 seconds"
383383msgstr ""
384384
385385#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
386−#: qml/Panel/Indicators/MenuItemFactory.qml:896
386+#: qml/Panel/Indicators/MenuItemFactory.qml:904
387387#, qt-format
388388msgid "%1 remaining"
389389msgstr ""
390390
391−#: qml/Panel/Indicators/MenuItemFactory.qml:902
391+#: qml/Panel/Indicators/MenuItemFactory.qml:910
392392msgid "In queue…"
393393msgstr "A la cua..."
394394
395−#: qml/Panel/Indicators/MenuItemFactory.qml:906
395+#: qml/Panel/Indicators/MenuItemFactory.qml:914
396396msgid "Downloading"
397397msgstr "S'està baixant"
398398
399−#: qml/Panel/Indicators/MenuItemFactory.qml:908
399+#: qml/Panel/Indicators/MenuItemFactory.qml:916
400400msgid "Paused, tap to resume"
401401msgstr "En pausa, feu un toc per continuar"
402402
403−#: qml/Panel/Indicators/MenuItemFactory.qml:910
403+#: qml/Panel/Indicators/MenuItemFactory.qml:918
404404msgid "Canceled"
405405msgstr "S'ha cancel·lat"
406406
407−#: qml/Panel/Indicators/MenuItemFactory.qml:912
407+#: qml/Panel/Indicators/MenuItemFactory.qml:920
408408msgid "Finished"
409409msgstr "S'ha finalitzat"
410410
411−#: qml/Panel/Indicators/MenuItemFactory.qml:914
411+#: qml/Panel/Indicators/MenuItemFactory.qml:922
412412msgid "Failed, tap to retry"
413413msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
414414
@@ -428,261 +428,324 @@ msgctxt "Button: Call back on phone"
428428msgid "Call back"
429429msgstr ""
430430
431−#: qml/Panel/Indicators/ModemInfoItem.qml:105
432−msgid "Unlock SIM"
433−msgstr "Desbloca la SIM"
434−
435−#: qml/Panel/Indicators/RoamingIndication.qml:27
436−msgid "Roaming"
437−msgstr "Itinerància"
438−
439−#: qml/Tutorial/TutorialBottom.qml:28
440−msgid "Open special menus"
441−msgstr ""
442−
443−#: qml/Tutorial/TutorialBottom.qml:29
444−msgid "Swipe up from the bottom edge."
431+#: qml/Stages/SideStage.qml:76
432+msgid "Drag using 3 fingers any application from one window to the other"
445433msgstr ""
446434
447−#: qml/Tutorial/TutorialBottomFinish.qml:24
448−msgid "This action does different things for different apps"
435+#: qml/Tutorial/TutorialBottom.qml:78
436+msgid "Swipe up to add a contact"
449437msgstr ""
450438
451−#: qml/Tutorial/TutorialBottomFinish.qml:25
452−msgid "Tap here to finish."
439+#: qml/Tutorial/TutorialBottom.qml:80
440+msgid "Swipe up for favorite calculations"
453441msgstr ""
454442
455−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
456−#: qml/Tutorial/TutorialRight.qml:144
457−msgid "Tap here to continue."
443+#: qml/Tutorial/TutorialBottom.qml:82
444+msgid "Swipe up for recent calls"
458445msgstr ""
459446
460−#: qml/Tutorial/TutorialLeft.qml:26
461−msgid "Open the launcher"
447+#: qml/Tutorial/TutorialBottom.qml:84
448+msgid "Swipe up to create a message"
462449msgstr ""
463450
464−#: qml/Tutorial/TutorialLeft.qml:27
465−msgid "Short swipe from the left edge."
451+#: qml/Tutorial/TutorialBottom.qml:85
452+msgid "Swipe up to manage the app"
466453msgstr ""
467454
468−#: qml/Tutorial/TutorialLeftFinish.qml:24
469−msgid "These are the shortcuts to favorite apps"
455+#: qml/Tutorial/TutorialLeft.qml:47
456+msgid "Swipe from the left edge to open the launcher"
470457msgstr ""
471458
472−#: qml/Tutorial/TutorialPage.qml:178
473−msgid "You almost got it!"
459+#: qml/Tutorial/TutorialLeftLong.qml:47
460+msgid "Long swipe from the left edge to open the Today scope"
474461msgstr ""
475462
476−#: qml/Tutorial/TutorialPage.qml:195
477−msgid "Try again."
463+#: qml/Tutorial/TutorialRight.qml:54
464+msgid "Hover your mouse on the right edge to view your open apps"
478465msgstr ""
479466
480−#: qml/Tutorial/TutorialRight.qml:31
481−msgid "To view open apps"
467+#: qml/Tutorial/TutorialRight.qml:55
468+msgid "Short or long swipe from the right edge to view your open apps"
482469msgstr ""
483470
484−#: qml/Tutorial/TutorialRight.qml:32
485−msgid "Long swipe from the right edge."
471+#: qml/Tutorial/TutorialTop.qml:53
472+msgid "Swipe from the top right edge to open the notification bar"
486473msgstr ""
487474
488−#: qml/Tutorial/TutorialRight.qml:122
489−msgid "View all your running tasks."
475+#: qml/Tutorial/TutorialTop.qml:54
476+msgid "Swipe from the top edge to open the notification bar"
490477msgstr ""
491478
492−#: qml/Wizard/Page.qml:89
479+#: qml/Wizard/Page.qml:54
493480msgctxt "Button: Go back one page in the Wizard"
494481msgid "Back"
495482msgstr ""
496483
497484#: qml/Wizard/Pages/10-welcome.qml:27
498−msgid "Hi!"
499−msgstr "Hola!"
485+msgid "Language"
486+msgstr ""
500487
501−#: qml/Wizard/Pages/10-welcome.qml:44
502−msgid "Welcome to your Ubuntu device."
488+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
489+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
490+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
491+#: qml/Wizard/Pages/75-report-check.qml:84
492+#: qml/Wizard/Pages/passcode-desktop.qml:124
493+#: qml/Wizard/Pages/password-set.qml:141
494+msgid "Next"
503495msgstr ""
504496
505−#: qml/Wizard/Pages/10-welcome.qml:52
506−msgid "Let’s get started."
507−msgstr "Comencem."
497+#: qml/Wizard/Pages/30-wifi.qml:29
498+msgid "Connect to Wi‑Fi"
499+msgstr "Connecta't a la Wi-Fi"
508500
509−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
510−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
511−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
512−#: qml/Wizard/Pages/passwd-set.qml:90
513−msgid "Continue"
514−msgstr "Continua"
501+#: qml/Wizard/Pages/30-wifi.qml:130
502+msgid "Connected"
503+msgstr ""
515504
516−#: qml/Wizard/Pages/20-sim.qml:25
517−msgid "Add a SIM card and restart your device"
518−msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
505+#: qml/Wizard/Pages/30-wifi.qml:163
506+msgid "Available Wi-Fi networks"
507+msgstr ""
519508
520−#: qml/Wizard/Pages/20-sim.qml:59
521−msgid "Without it, you won’t be able to make calls or use text messaging."
522−msgstr "Sense ella, no podreu fer cridades o enviar missatges de text."
509+#: qml/Wizard/Pages/30-wifi.qml:164
510+msgid "No available Wi-Fi networks"
511+msgstr ""
523512
524−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
513+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
514+#: qml/Wizard/Pages/sim.qml:101
525515msgid "Skip"
526516msgstr "Omet"
527517
528−#: qml/Wizard/Pages/30-passwd-type.qml:39
529−msgid "Lock security"
530−msgstr "Seguretat del bloqueig"
518+#: qml/Wizard/Pages/40-location.qml:27
519+msgid "Location Services"
520+msgstr ""
521+
522+#: qml/Wizard/Pages/40-location.qml:83
523+msgid ""
524+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
525+"(recommended)"
526+msgstr ""
531527
532−#: qml/Wizard/Pages/30-passwd-type.qml:79
533−msgid "Please select how you’d like to unlock your device."
528+#: qml/Wizard/Pages/40-location.qml:105
529+#, qt-format
530+msgid "By selecting this option you agree to the Nokia HERE %1."
534531msgstr ""
535532
536−#: qml/Wizard/Pages/30-passwd-type.qml:102
537−msgctxt "Label: Type of security method"
538−msgid "Swipe"
533+#: qml/Wizard/Pages/40-location.qml:106
534+msgctxt "part of: Nokia HERE terms and conditions"
535+msgid "terms and conditions"
536+msgstr ""
537+
538+#: qml/Wizard/Pages/40-location.qml:160
539+msgid "GPS only"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/40-location.qml:214
543+msgid "Don't use my location"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/40-location.qml:260
547+msgid "You can change it later in System Settings."
539548msgstr ""
540549
541−#: qml/Wizard/Pages/30-passwd-type.qml:103
542−msgctxt "Label: Description of security method"
543−msgid "No security"
550+#: qml/Wizard/Pages/50-timezone.qml:29
551+msgid "Time Zone"
544552msgstr ""
545553
546−#: qml/Wizard/Pages/30-passwd-type.qml:105
554+#: qml/Wizard/Pages/50-timezone.qml:178
555+msgid "Enter your city"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/60-account.qml:24
559+msgid "Personalize Your Device"
560+msgstr ""
561+
562+#: qml/Wizard/Pages/60-account.qml:48
563+msgid "Preferred Name"
564+msgstr ""
565+
566+#: qml/Wizard/Pages/70-passwd-type.qml:39
567+msgid "Lock Screen"
568+msgstr ""
569+
570+#: qml/Wizard/Pages/70-passwd-type.qml:101
547571msgctxt "Label: Type of security method"
548−msgid "Passcode"
572+msgid "Create new password"
549573msgstr ""
550574
551−#: qml/Wizard/Pages/30-passwd-type.qml:106
552−msgctxt "Label: Description of security method"
553−msgid "4 digits only"
575+#: qml/Wizard/Pages/70-passwd-type.qml:103
576+msgctxt "Label: Type of security method"
577+msgid "Create passcode (numbers only)"
554578msgstr ""
555579
556−#: qml/Wizard/Pages/30-passwd-type.qml:108
580+#: qml/Wizard/Pages/70-passwd-type.qml:105
557581msgctxt "Label: Type of security method"
558−msgid "Passphrase"
582+msgid "No lock code"
559583msgstr ""
560584
561−#: qml/Wizard/Pages/30-passwd-type.qml:109
562−msgctxt "Label: Description of security method"
563−msgid "Numbers and letters"
585+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
586+msgid "Privacy Policy"
564587msgstr ""
565588
566−#: qml/Wizard/Pages/40-wifi.qml:29
567−msgid "Connect to Wi‑Fi"
568−msgstr "Connecta't a la Wi-Fi"
589+#: qml/Wizard/Pages/75-report-check.qml:26
590+msgid "Help Us Improve"
591+msgstr ""
592+
593+#: qml/Wizard/Pages/75-report-check.qml:59
594+msgid "Improve system performance by sending us crashes and error reports."
595+msgstr ""
596+
597+#: qml/Wizard/Pages/75-report-check.qml:60
598+msgid "Privacy policy"
599+msgstr ""
569600
570−#: qml/Wizard/Pages/40-wifi.qml:168
571−msgid "Available networks…"
572−msgstr "Xarxes disponibles..."
601+#: qml/Wizard/Pages/80-finished.qml:89
602+msgid "Welcome to Ubuntu"
603+msgstr ""
573604
574−#: qml/Wizard/Pages/40-wifi.qml:169
575−msgid "No available networks."
576−msgstr "No hi ha xarxes disponibles"
605+#: qml/Wizard/Pages/80-finished.qml:104
606+msgid "You are ready to use your device now"
607+msgstr ""
577608
578−#: qml/Wizard/Pages/50-location.qml:27
579−msgid "Location"
580−msgstr "Ubicació"
609+#: qml/Wizard/Pages/80-finished.qml:124
610+msgid "Get Started"
611+msgstr ""
581612
582−#: qml/Wizard/Pages/50-location.qml:62
583−msgid "Let the phone detect your location:"
584−msgstr "Fes que el telèfon detecti la meua ubicació:"
613+#: qml/Wizard/Pages/here-terms.qml:25
614+msgid "Terms & Conditions"
615+msgstr "Condicions generals"
585616
586−#: qml/Wizard/Pages/50-location.qml:69
587−msgid "Using GPS only (less accurate)"
588−msgstr "Utilitza només el GPS (menys precís)"
617+#: qml/Wizard/Pages/here-terms.qml:69
618+msgid "Your device uses positioning technologies provided by HERE."
619+msgstr ""
589620
590−#: qml/Wizard/Pages/50-location.qml:86
591−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
621+#: qml/Wizard/Pages/here-terms.qml:81
622+msgid ""
623+"To provide you with positioning services and to improve their quality, HERE "
624+"collects information about nearby cell towers and Wi-Fi hotspots around your "
625+"current location whenever your position is being found."
592626msgstr ""
593−"Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
594−"(recomanat)"
595627
596−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
597−#: qml/Wizard/Pages/50-location.qml:103
628+#: qml/Wizard/Pages/here-terms.qml:93
598629msgid ""
599−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
600−"conditions</a>."
630+"The information collected is used to analyze the service and to improve the "
631+"use of service, but not to identify you personally."
601632msgstr ""
602−"Si seleccioneu esta opció, accepteu <a href='#'>les condicions generals del "
603−"servei Nokia HERE</a>."
604633
605−#: qml/Wizard/Pages/50-location.qml:112
606−msgid "Not at all"
607−msgstr "No"
634+#: qml/Wizard/Pages/here-terms.qml:106
635+#, qt-format
636+msgid "By continuing, you agree to the HERE platform %1 and %2."
637+msgstr ""
608638
609−#: qml/Wizard/Pages/50-location.qml:124
610−msgid "You can change your mind later in <b>System Settings</b>."
639+#: qml/Wizard/Pages/here-terms.qml:107
640+msgid "Service Terms"
611641msgstr ""
612−"Podeu canviar-ho més avant a l'aplicació <b>Paràmetres del sistema</b>"
613642
614−#: qml/Wizard/Pages/60-reporting.qml:26
615−msgid "Improving your experience"
616−msgstr "Millora de l'experiència"
643+#: qml/Wizard/Pages/passcode-confirm.qml:43
644+#: qml/Wizard/Pages/passcode-desktop.qml:80
645+msgid "Confirm passcode"
646+msgstr "Confirmeu el codi d'accés"
617647
618−#: qml/Wizard/Pages/60-reporting.qml:46
619−msgid ""
620−"Your phone is set up to automatically report errors to Canonical and its "
621−"partners, the makers of the operating system."
648+#: qml/Wizard/Pages/passcode-confirm.qml:45
649+msgid "Incorrect passcode."
622650msgstr ""
623−"Este telèfon està configurat per enviar errors de manera automàtica a "
624−"Canonical i associats, els creadors del sistema operatiu."
625651
626−#: qml/Wizard/Pages/60-reporting.qml:53
627−msgid ""
628−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
629−"Privacy</b>"
652+#: qml/Wizard/Pages/passcode-confirm.qml:45
653+msgctxt "Enter the passcode again"
654+msgid "Please re-enter."
630655msgstr ""
631−"Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
632−"<b>Seguretat i privadesa</b>"
633656
634−#: qml/Wizard/Pages/80-finished.qml:24
635−msgid "All done"
636−msgstr "Tot fet"
657+#: qml/Wizard/Pages/passcode-desktop.qml:30
658+msgid "Lock Screen Passcode"
659+msgstr ""
637660
638−#: qml/Wizard/Pages/80-finished.qml:39
639−msgid "Nice work!"
640−msgstr "Bona faena!"
661+#: qml/Wizard/Pages/passcode-desktop.qml:56
662+msgid "Enter 4 numbers to setup your passcode"
663+msgstr ""
641664
642−#: qml/Wizard/Pages/80-finished.qml:46
643−msgid "Your device is now ready to use."
665+#: qml/Wizard/Pages/passcode-desktop.qml:65
666+#: qml/Wizard/Pages/passcode-set.qml:54
667+msgid "Choose passcode"
644668msgstr ""
645669
646−#: qml/Wizard/Pages/80-finished.qml:53
647−msgid "Finish"
648−msgstr "Finalitza"
670+#: qml/Wizard/Pages/passcode-desktop.qml:105
671+msgid "Passcode too short"
672+msgstr ""
649673
650−#: qml/Wizard/Pages/here-terms.qml:27
651−msgid "Terms & Conditions"
652−msgstr "Condicions generals"
674+#: qml/Wizard/Pages/passcode-desktop.qml:107
675+msgid "Passcodes match"
676+msgstr ""
653677
654−#: qml/Wizard/Pages/passwd-confirm.qml:49
655−msgid "Confirm passphrase"
656−msgstr "Confirmeu la contrasenya"
678+#: qml/Wizard/Pages/passcode-desktop.qml:109
679+msgid "Passcodes do not match"
680+msgstr ""
657681
658−#: qml/Wizard/Pages/passwd-confirm.qml:50
659−msgid "Confirm passcode"
660−msgstr "Confirmeu el codi d'accés"
682+#: qml/Wizard/Pages/passcode-set.qml:62
683+msgid "Passcode must be 4 characters long"
684+msgstr ""
661685
662−#: qml/Wizard/Pages/passwd-confirm.qml:53
663−#: qml/Wizard/Pages/passwd-confirm.qml:54
664−msgid "Please try again."
665−msgstr "Torneu-ho a intentar."
686+#: qml/Wizard/Pages/password-set.qml:30
687+msgid "Lock Screen Password"
688+msgstr ""
666689
667−#: qml/Wizard/Pages/passwd-set.qml:61
668−msgid "Choose your passcode"
669−msgstr "Trieu el codi d'accés"
690+#: qml/Wizard/Pages/password-set.qml:61
691+msgid "Enter at least 8 characters"
692+msgstr ""
670693
671−#: qml/Wizard/Pages/passwd-set.qml:68
672−msgid "Passphrase must be 4 characters long"
673−msgstr "La contrasenya ha de tindre 4 caràcters com a mínim"
694+#: qml/Wizard/Pages/password-set.qml:73
695+msgid "Choose password"
696+msgstr ""
674697
675−#. Translators: This is the arrow for "Back" buttons
676−#: qml/Wizard/StackButton.qml:39
677−#, qt-format
678−msgid "〈 %1"
679−msgstr "〈 %1"
698+#: qml/Wizard/Pages/password-set.qml:103
699+msgid "Confirm password"
700+msgstr ""
680701
681−#. Translators: This is the arrow for "Forward" buttons
682−#: qml/Wizard/StackButton.qml:42
683−#, qt-format
684−msgid "%1 〉"
685−msgstr "%1 〉"
702+#: qml/Wizard/Pages/sim.qml:27
703+msgid "No SIM card installed"
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:54
707+msgid "SIM card added"
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:55
711+msgid "You must restart the device to access the mobile network."
712+msgstr ""
713+
714+#: qml/Wizard/Pages/sim.qml:59
715+msgid "Restart"
716+msgstr "Reinicia"
717+
718+#: qml/Wizard/Pages/sim.qml:78
719+msgid "You won’t be able to make calls or use text messaging without a SIM."
720+msgstr ""
721+
722+#: qml/Wizard/Pages/sim.qml:90
723+msgid "To proceed with no SIM tap Skip."
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:87
727+msgid "Passwords match"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:89
731+msgid "Passwords do not match"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:93
735+msgid "Strong password"
736+msgstr ""
737+
738+#: qml/Wizard/PasswordMeter.qml:95
739+msgid "Fair password"
740+msgstr ""
741+
742+#: qml/Wizard/PasswordMeter.qml:97
743+msgid "Weak password"
744+msgstr ""
745+
746+#: qml/Wizard/PasswordMeter.qml:99
747+msgid "Very weak password"
748+msgstr ""
686749
687750#~ msgid "Log out"
688751#~ msgstr "Ix"
@@ -690,6 +753,9 @@ msgstr "%1 〉"
690753#~ msgid "Shut down"
691754#~ msgstr "Apaga"
692755
756+#~ msgid "Are you sure you want to shut down?"
757+#~ msgstr "Segur que voleu apagar?"
758+
693759#~ msgid "Reboot"
694760#~ msgstr "Reinicia"
695761
@@ -699,9 +765,6 @@ msgstr "%1 〉"
699765#~ msgid "Power off"
700766#~ msgstr "Apaga"
701767
702−#~ msgid "Restart"
703−#~ msgstr "Reinicia"
704−
705768#~ msgid "Skip intro"
706769#~ msgstr "Omet la introducció"
707770
@@ -771,18 +834,122 @@ msgstr "%1 〉"
771834#~ msgid "Speaking..."
772835#~ msgstr "S'està parlant..."
773836
837+#~ msgid "Unlock SIM"
838+#~ msgstr "Desbloca la SIM"
839+
840+#~ msgid "Roaming"
841+#~ msgstr "Itinerància"
842+
774843#~ msgid "Please re-enter"
775844#~ msgstr "Torneu-ho a introduir"
776845
846+#~ msgid "Hi!"
847+#~ msgstr "Hola!"
848+
777849#~ msgid "Welcome to your Ubuntu phone."
778850#~ msgstr "Vos donem la benvinguda al vostre telèfon Ubuntu."
779851
852+#~ msgid "Let’s get started."
853+#~ msgstr "Comencem."
854+
855+#~ msgid "Continue"
856+#~ msgstr "Continua"
857+
858+#~ msgid "Add a SIM card and restart your device"
859+#~ msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
860+
861+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
862+#~ msgstr "Sense ella, no podreu fer cridades o enviar missatges de text."
863+
864+#~ msgid "Lock security"
865+#~ msgstr "Seguretat del bloqueig"
866+
780867#~ msgid "Please select how you’d like to unlock your phone."
781868#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
782869
870+#~ msgid "Available networks…"
871+#~ msgstr "Xarxes disponibles..."
872+
873+#~ msgid "No available networks."
874+#~ msgstr "No hi ha xarxes disponibles"
875+
876+#~ msgid "Location"
877+#~ msgstr "Ubicació"
878+
879+#~ msgid "Let the phone detect your location:"
880+#~ msgstr "Fes que el telèfon detecti la meua ubicació:"
881+
882+#~ msgid "Using GPS only (less accurate)"
883+#~ msgstr "Utilitza només el GPS (menys precís)"
884+
885+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
886+#~ msgstr ""
887+#~ "Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
888+#~ "(recomanat)"
889+
890+#~ msgid ""
891+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
892+#~ "conditions</a>."
893+#~ msgstr ""
894+#~ "Si seleccioneu esta opció, accepteu <a href='#'>les condicions generals del "
895+#~ "servei Nokia HERE</a>."
896+
897+#~ msgid "Not at all"
898+#~ msgstr "No"
899+
900+#~ msgid "You can change your mind later in <b>System Settings</b>."
901+#~ msgstr ""
902+#~ "Podeu canviar-ho més avant a l'aplicació <b>Paràmetres del sistema</b>"
903+
904+#~ msgid "Improving your experience"
905+#~ msgstr "Millora de l'experiència"
906+
907+#~ msgid ""
908+#~ "Your phone is set up to automatically report errors to Canonical and its "
909+#~ "partners, the makers of the operating system."
910+#~ msgstr ""
911+#~ "Este telèfon està configurat per enviar errors de manera automàtica a "
912+#~ "Canonical i associats, els creadors del sistema operatiu."
913+
914+#~ msgid ""
915+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
916+#~ "Privacy</b>"
917+#~ msgstr ""
918+#~ "Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
919+#~ "<b>Seguretat i privadesa</b>"
920+
921+#~ msgid "All done"
922+#~ msgstr "Tot fet"
923+
924+#~ msgid "Nice work!"
925+#~ msgstr "Bona faena!"
926+
783927#~ msgid "Your phone is now ready to use."
784928#~ msgstr "Ja podeu utilitzar el vostre telèfon."
785929
930+#~ msgid "Finish"
931+#~ msgstr "Finalitza"
932+
933+#~ msgid "Confirm passphrase"
934+#~ msgstr "Confirmeu la contrasenya"
935+
936+#~ msgid "Please try again."
937+#~ msgstr "Torneu-ho a intentar."
938+
939+#~ msgid "Choose your passcode"
940+#~ msgstr "Trieu el codi d'accés"
941+
942+#~ msgid "Passphrase must be 4 characters long"
943+#~ msgstr "La contrasenya ha de tindre 4 caràcters com a mínim"
944+
945+#, qt-format
946+#~ msgid "〈 %1"
947+#~ msgstr "〈 %1"
948+
949+#, qt-format
950+#~ msgid "%1 〉"
951+#~ msgstr "%1 〉"
952+
786953#~ msgid "Type or say a command"
787954#~ msgstr "Escriviu o pronuncieu una ordre"
788955
po/ce.po+269−197
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2015-02-15 04:01+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Chechen <ce@li.org>\n"
@@ -15,23 +15,23 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19+"X-Generator: Launchpad (build 17958)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr ""
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
2727msgid "Pin shortcut"
2828msgstr ""
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
3535msgid "Unpin shortcut"
3636msgstr ""
3737
@@ -73,77 +73,59 @@ msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
77−#: qml/Components/Dialogs.qml:253
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
7879msgid "Cancel"
7980msgstr ""
8081
8182#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr ""
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr ""
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr ""
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr ""
99−
100−#: qml/Components/Dialogs.qml:207
10183msgctxt "Title: Reboot dialog"
10284msgid "Reboot"
10385msgstr ""
10486
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
10688msgid "Are you sure you want to reboot?"
10789msgstr ""
10890
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
11092msgid "No"
11193msgstr ""
11294
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:183
11496msgid "Yes"
11597msgstr ""
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr ""
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:199
123105msgid ""
124106"Are you sure you would like\n"
125107"to power off?"
126108msgstr ""
127109
128−#: qml/Components/Dialogs.qml:235
110+#: qml/Components/Dialogs.qml:201
129111msgctxt "Button: Power off the system"
130112msgid "Power off"
131113msgstr ""
132114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:210
134116msgctxt "Button: Restart the system"
135117msgid "Restart"
136118msgstr ""
137119
138−#: qml/Components/Lockscreen.qml:245
120+#: qml/Components/Lockscreen.qml:231
139121msgid "Return to Call"
140122msgstr ""
141123
142−#: qml/Components/Lockscreen.qml:245
124+#: qml/Components/Lockscreen.qml:231
143125msgid "Emergency Call"
144126msgstr ""
145127
146−#: qml/Components/Lockscreen.qml:277
128+#: qml/Components/Lockscreen.qml:263
147129msgid "OK"
148130msgstr ""
149131
@@ -152,6 +134,8 @@ msgid "Apps may have unsaved data:"
152134msgstr ""
153135
154136#: qml/Components/ModeSwitchWarningDialog.qml:57
137+msgctxt ""
138+"Re-dock means connect the device again to an external screen/mouse/keyboard"
155139msgid "Re-dock, save your work and close these apps to continue."
156140msgstr ""
157141
@@ -171,42 +155,58 @@ msgstr ""
171155msgid "Close all"
172156msgstr ""
173157
174−#: qml/Dash/DashPageHeader.qml:266
158+#: qml/Dash/DashPageHeader.qml:337
175159msgctxt "Button: Open the Ubuntu Store"
176160msgid "Store"
177161msgstr ""
178162
179−#: qml/Dash/DashPageHeader.qml:273
163+#: qml/Dash/DashPageHeader.qml:344
180164msgctxt "Button: Start a search in the current dash scope"
181165msgid "Search"
182166msgstr ""
183167
184−#: qml/Dash/DashPageHeader.qml:283
168+#: qml/Dash/DashPageHeader.qml:354
185169msgctxt "Button: Show the current dash scope settings"
186170msgid "Settings"
187171msgstr ""
188172
189−#: qml/Dash/DashPageHeader.qml:290
173+#: qml/Dash/DashPageHeader.qml:361
190174msgid "Remove from Favorites"
191175msgstr ""
192176
193−#: qml/Dash/DashPageHeader.qml:290
177+#: qml/Dash/DashPageHeader.qml:361
194178msgid "Add to Favorites"
195179msgstr ""
196180
197−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
181+#: qml/Dash/FiltersPopover.qml:60
182+msgid "Refine your results"
183+msgstr ""
184+
185+#: qml/Dash/FiltersPopover.qml:69
186+msgid "Reset"
187+msgstr ""
188+
189+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198190msgid "See less"
199191msgstr ""
200192
201−#: qml/Dash/GenericScopeView.qml:587
193+#: qml/Dash/GenericScopeView.qml:570
202194msgid "See all"
203195msgstr ""
204196
205−#: qml/Dash/GenericScopeView.qml:649
197+#: qml/Dash/GenericScopeView.qml:627
206198msgctxt "Label: Hint for dash search line edit"
207199msgid "Search"
208200msgstr ""
209201
202+#: qml/Dash/PageHeaderExtraPanel.qml:55
203+msgid "Recent Searches"
204+msgstr ""
205+
206+#: qml/Dash/PageHeaderExtraPanel.qml:66
207+msgid "Clear All"
208+msgstr ""
209+
210210#: qml/Dash/Previews/PreviewActionCombo.qml:35
211211msgid "More..."
212212msgstr ""
@@ -228,7 +228,7 @@ msgstr ""
228228msgid "Add a review"
229229msgstr ""
230230
231−#: qml/Dash/Previews/PreviewSharing.qml:50
231+#: qml/Dash/Previews/PreviewSharing.qml:66
232232msgid "Preview Share Item"
233233msgstr ""
234234
@@ -256,13 +256,13 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:87
259+#: qml/DisabledScreenNotice.qml:104
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262−"touch pad to interact with the mouse."
262+"touch pad to interact with the pointer."
263263msgstr ""
264264
265−#: qml/Greeter/CoverPage.qml:107
265+#: qml/Greeter/CoverPage.qml:118
266266msgid "Unlock"
267267msgstr ""
268268
@@ -274,11 +274,11 @@ msgstr ""
274274msgid "Tap to unlock"
275275msgstr ""
276276
277−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
278278msgid "Sorry, incorrect passphrase."
279279msgstr ""
280280
281−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
282282msgid "Sorry, incorrect passcode."
283283msgstr ""
284284
@@ -303,7 +303,7 @@ msgstr ""
303303msgid "Enter %1"
304304msgstr ""
305305
306−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
307307msgid "Enter passphrase"
308308msgstr ""
309309
@@ -341,62 +341,62 @@ msgstr ""
341341msgid "Conference"
342342msgstr ""
343343
344−#: qml/Panel/Indicators/MenuItemFactory.qml:753
344+#: qml/Panel/Indicators/MenuItemFactory.qml:761
345345msgid "Nothing is playing"
346346msgstr ""
347347
348−#: qml/Panel/Indicators/MenuItemFactory.qml:882
348+#: qml/Panel/Indicators/MenuItemFactory.qml:890
349349#, qt-format
350350msgid "%1 hour"
351351msgid_plural "%1 hours"
352352msgstr[0] ""
353353msgstr[1] ""
354354
355−#: qml/Panel/Indicators/MenuItemFactory.qml:886
355+#: qml/Panel/Indicators/MenuItemFactory.qml:894
356356#, qt-format
357357msgid "%1 minute"
358358msgid_plural "%1 minutes"
359359msgstr[0] ""
360360msgstr[1] ""
361361
362−#: qml/Panel/Indicators/MenuItemFactory.qml:891
362+#: qml/Panel/Indicators/MenuItemFactory.qml:899
363363#, qt-format
364364msgid "%1 second"
365365msgid_plural "%1 seconds"
366366msgstr[0] ""
367367msgstr[1] ""
368368
369−#: qml/Panel/Indicators/MenuItemFactory.qml:894
369+#: qml/Panel/Indicators/MenuItemFactory.qml:902
370370msgid "0 seconds"
371371msgstr ""
372372
373373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
374−#: qml/Panel/Indicators/MenuItemFactory.qml:896
374+#: qml/Panel/Indicators/MenuItemFactory.qml:904
375375#, qt-format
376376msgid "%1 remaining"
377377msgstr ""
378378
379−#: qml/Panel/Indicators/MenuItemFactory.qml:902
379+#: qml/Panel/Indicators/MenuItemFactory.qml:910
380380msgid "In queue…"
381381msgstr ""
382382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:906
383+#: qml/Panel/Indicators/MenuItemFactory.qml:914
384384msgid "Downloading"
385385msgstr ""
386386
387−#: qml/Panel/Indicators/MenuItemFactory.qml:908
387+#: qml/Panel/Indicators/MenuItemFactory.qml:916
388388msgid "Paused, tap to resume"
389389msgstr ""
390390
391−#: qml/Panel/Indicators/MenuItemFactory.qml:910
391+#: qml/Panel/Indicators/MenuItemFactory.qml:918
392392msgid "Canceled"
393393msgstr ""
394394
395−#: qml/Panel/Indicators/MenuItemFactory.qml:912
395+#: qml/Panel/Indicators/MenuItemFactory.qml:920
396396msgid "Finished"
397397msgstr ""
398398
399−#: qml/Panel/Indicators/MenuItemFactory.qml:914
399+#: qml/Panel/Indicators/MenuItemFactory.qml:922
400400msgid "Failed, tap to retry"
401401msgstr ""
402402
@@ -416,249 +416,321 @@ msgctxt "Button: Call back on phone"
416416msgid "Call back"
417417msgstr ""
418418
419−#: qml/Panel/Indicators/ModemInfoItem.qml:105
420−msgid "Unlock SIM"
419+#: qml/Stages/SideStage.qml:76
420+msgid "Drag using 3 fingers any application from one window to the other"
421421msgstr ""
422422
423−#: qml/Panel/Indicators/RoamingIndication.qml:27
424−msgid "Roaming"
423+#: qml/Tutorial/TutorialBottom.qml:78
424+msgid "Swipe up to add a contact"
425425msgstr ""
426426
427−#: qml/Tutorial/TutorialBottom.qml:28
428−msgid "Open special menus"
427+#: qml/Tutorial/TutorialBottom.qml:80
428+msgid "Swipe up for favorite calculations"
429429msgstr ""
430430
431−#: qml/Tutorial/TutorialBottom.qml:29
432−msgid "Swipe up from the bottom edge."
431+#: qml/Tutorial/TutorialBottom.qml:82
432+msgid "Swipe up for recent calls"
433433msgstr ""
434434
435−#: qml/Tutorial/TutorialBottomFinish.qml:24
436−msgid "This action does different things for different apps"
435+#: qml/Tutorial/TutorialBottom.qml:84
436+msgid "Swipe up to create a message"
437437msgstr ""
438438
439−#: qml/Tutorial/TutorialBottomFinish.qml:25
440−msgid "Tap here to finish."
439+#: qml/Tutorial/TutorialBottom.qml:85
440+msgid "Swipe up to manage the app"
441441msgstr ""
442442
443−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
444−#: qml/Tutorial/TutorialRight.qml:144
445−msgid "Tap here to continue."
443+#: qml/Tutorial/TutorialLeft.qml:47
444+msgid "Swipe from the left edge to open the launcher"
446445msgstr ""
447446
448−#: qml/Tutorial/TutorialLeft.qml:26
449−msgid "Open the launcher"
447+#: qml/Tutorial/TutorialLeftLong.qml:47
448+msgid "Long swipe from the left edge to open the Today scope"
450449msgstr ""
451450
452−#: qml/Tutorial/TutorialLeft.qml:27
453−msgid "Short swipe from the left edge."
451+#: qml/Tutorial/TutorialRight.qml:54
452+msgid "Hover your mouse on the right edge to view your open apps"
454453msgstr ""
455454
456−#: qml/Tutorial/TutorialLeftFinish.qml:24
457−msgid "These are the shortcuts to favorite apps"
455+#: qml/Tutorial/TutorialRight.qml:55
456+msgid "Short or long swipe from the right edge to view your open apps"
458457msgstr ""
459458
460−#: qml/Tutorial/TutorialPage.qml:178
461−msgid "You almost got it!"
459+#: qml/Tutorial/TutorialTop.qml:53
460+msgid "Swipe from the top right edge to open the notification bar"
462461msgstr ""
463462
464−#: qml/Tutorial/TutorialPage.qml:195
465−msgid "Try again."
463+#: qml/Tutorial/TutorialTop.qml:54
464+msgid "Swipe from the top edge to open the notification bar"
466465msgstr ""
467466
468−#: qml/Tutorial/TutorialRight.qml:31
469−msgid "To view open apps"
467+#: qml/Wizard/Page.qml:54
468+msgctxt "Button: Go back one page in the Wizard"
469+msgid "Back"
470470msgstr ""
471471
472−#: qml/Tutorial/TutorialRight.qml:32
473−msgid "Long swipe from the right edge."
472+#: qml/Wizard/Pages/10-welcome.qml:27
473+msgid "Language"
474474msgstr ""
475475
476−#: qml/Tutorial/TutorialRight.qml:122
477−msgid "View all your running tasks."
476+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
477+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
478+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479+#: qml/Wizard/Pages/75-report-check.qml:84
480+#: qml/Wizard/Pages/passcode-desktop.qml:124
481+#: qml/Wizard/Pages/password-set.qml:141
482+msgid "Next"
478483msgstr ""
479484
480−#: qml/Wizard/Page.qml:89
481−msgctxt "Button: Go back one page in the Wizard"
482−msgid "Back"
485+#: qml/Wizard/Pages/30-wifi.qml:29
486+msgid "Connect to Wi‑Fi"
483487msgstr ""
484488
485−#: qml/Wizard/Pages/10-welcome.qml:27
486−msgid "Hi!"
489+#: qml/Wizard/Pages/30-wifi.qml:130
490+msgid "Connected"
487491msgstr ""
488492
489−#: qml/Wizard/Pages/10-welcome.qml:44
490−msgid "Welcome to your Ubuntu device."
493+#: qml/Wizard/Pages/30-wifi.qml:163
494+msgid "Available Wi-Fi networks"
491495msgstr ""
492496
493−#: qml/Wizard/Pages/10-welcome.qml:52
494−msgid "Let’s get started."
497+#: qml/Wizard/Pages/30-wifi.qml:164
498+msgid "No available Wi-Fi networks"
495499msgstr ""
496500
497−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
498−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
499−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
500−#: qml/Wizard/Pages/passwd-set.qml:90
501−msgid "Continue"
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502+#: qml/Wizard/Pages/sim.qml:101
503+msgid "Skip"
502504msgstr ""
503505
504−#: qml/Wizard/Pages/20-sim.qml:25
505−msgid "Add a SIM card and restart your device"
506+#: qml/Wizard/Pages/40-location.qml:27
507+msgid "Location Services"
506508msgstr ""
507509
508−#: qml/Wizard/Pages/20-sim.qml:59
509−msgid "Without it, you won’t be able to make calls or use text messaging."
510+#: qml/Wizard/Pages/40-location.qml:83
511+msgid ""
512+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
513+"(recommended)"
510514msgstr ""
511515
512−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
513−msgid "Skip"
516+#: qml/Wizard/Pages/40-location.qml:105
517+#, qt-format
518+msgid "By selecting this option you agree to the Nokia HERE %1."
514519msgstr ""
515520
516−#: qml/Wizard/Pages/30-passwd-type.qml:39
517−msgid "Lock security"
521+#: qml/Wizard/Pages/40-location.qml:106
522+msgctxt "part of: Nokia HERE terms and conditions"
523+msgid "terms and conditions"
518524msgstr ""
519525
520−#: qml/Wizard/Pages/30-passwd-type.qml:79
521−msgid "Please select how you’d like to unlock your device."
526+#: qml/Wizard/Pages/40-location.qml:160
527+msgid "GPS only"
522528msgstr ""
523529
524−#: qml/Wizard/Pages/30-passwd-type.qml:102
525−msgctxt "Label: Type of security method"
526−msgid "Swipe"
530+#: qml/Wizard/Pages/40-location.qml:214
531+msgid "Don't use my location"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:260
535+msgid "You can change it later in System Settings."
536+msgstr ""
537+
538+#: qml/Wizard/Pages/50-timezone.qml:29
539+msgid "Time Zone"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/50-timezone.qml:178
543+msgid "Enter your city"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/60-account.qml:24
547+msgid "Personalize Your Device"
548+msgstr ""
549+
550+#: qml/Wizard/Pages/60-account.qml:48
551+msgid "Preferred Name"
527552msgstr ""
528553
529−#: qml/Wizard/Pages/30-passwd-type.qml:103
530−msgctxt "Label: Description of security method"
531−msgid "No security"
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
555+msgid "Lock Screen"
532556msgstr ""
533557
534−#: qml/Wizard/Pages/30-passwd-type.qml:105
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
535559msgctxt "Label: Type of security method"
536−msgid "Passcode"
560+msgid "Create new password"
537561msgstr ""
538562
539−#: qml/Wizard/Pages/30-passwd-type.qml:106
540−msgctxt "Label: Description of security method"
541−msgid "4 digits only"
563+#: qml/Wizard/Pages/70-passwd-type.qml:103
564+msgctxt "Label: Type of security method"
565+msgid "Create passcode (numbers only)"
542566msgstr ""
543567
544−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
545569msgctxt "Label: Type of security method"
546−msgid "Passphrase"
570+msgid "No lock code"
547571msgstr ""
548572
549−#: qml/Wizard/Pages/30-passwd-type.qml:109
550−msgctxt "Label: Description of security method"
551−msgid "Numbers and letters"
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
574+msgid "Privacy Policy"
552575msgstr ""
553576
554−#: qml/Wizard/Pages/40-wifi.qml:29
555−msgid "Connect to Wi‑Fi"
577+#: qml/Wizard/Pages/75-report-check.qml:26
578+msgid "Help Us Improve"
556579msgstr ""
557580
558−#: qml/Wizard/Pages/40-wifi.qml:168
559−msgid "Available networks…"
581+#: qml/Wizard/Pages/75-report-check.qml:59
582+msgid "Improve system performance by sending us crashes and error reports."
560583msgstr ""
561584
562−#: qml/Wizard/Pages/40-wifi.qml:169
563−msgid "No available networks."
585+#: qml/Wizard/Pages/75-report-check.qml:60
586+msgid "Privacy policy"
564587msgstr ""
565588
566−#: qml/Wizard/Pages/50-location.qml:27
567−msgid "Location"
589+#: qml/Wizard/Pages/80-finished.qml:89
590+msgid "Welcome to Ubuntu"
568591msgstr ""
569592
570−#: qml/Wizard/Pages/50-location.qml:62
571−msgid "Let the phone detect your location:"
593+#: qml/Wizard/Pages/80-finished.qml:104
594+msgid "You are ready to use your device now"
572595msgstr ""
573596
574−#: qml/Wizard/Pages/50-location.qml:69
575−msgid "Using GPS only (less accurate)"
597+#: qml/Wizard/Pages/80-finished.qml:124
598+msgid "Get Started"
599+msgstr ""
600+
601+#: qml/Wizard/Pages/here-terms.qml:25
602+msgid "Terms & Conditions"
576603msgstr ""
577604
578−#: qml/Wizard/Pages/50-location.qml:86
579−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
605+#: qml/Wizard/Pages/here-terms.qml:69
606+msgid "Your device uses positioning technologies provided by HERE."
580607msgstr ""
581608
582−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
583−#: qml/Wizard/Pages/50-location.qml:103
609+#: qml/Wizard/Pages/here-terms.qml:81
584610msgid ""
585−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
586−"conditions</a>."
611+"To provide you with positioning services and to improve their quality, HERE "
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
587614msgstr ""
588615
589−#: qml/Wizard/Pages/50-location.qml:112
590−msgid "Not at all"
616+#: qml/Wizard/Pages/here-terms.qml:93
617+msgid ""
618+"The information collected is used to analyze the service and to improve the "
619+"use of service, but not to identify you personally."
591620msgstr ""
592621
593−#: qml/Wizard/Pages/50-location.qml:124
594−msgid "You can change your mind later in <b>System Settings</b>."
622+#: qml/Wizard/Pages/here-terms.qml:106
623+#, qt-format
624+msgid "By continuing, you agree to the HERE platform %1 and %2."
595625msgstr ""
596626
597−#: qml/Wizard/Pages/60-reporting.qml:26
598−msgid "Improving your experience"
627+#: qml/Wizard/Pages/here-terms.qml:107
628+msgid "Service Terms"
599629msgstr ""
600630
601−#: qml/Wizard/Pages/60-reporting.qml:46
602−msgid ""
603−"Your phone is set up to automatically report errors to Canonical and its "
604−"partners, the makers of the operating system."
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
633+msgid "Confirm passcode"
605634msgstr ""
606635
607−#: qml/Wizard/Pages/60-reporting.qml:53
608−msgid ""
609−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
610−"Privacy</b>"
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
637+msgid "Incorrect passcode."
611638msgstr ""
612639
613−#: qml/Wizard/Pages/80-finished.qml:24
614−msgid "All done"
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
641+msgctxt "Enter the passcode again"
642+msgid "Please re-enter."
615643msgstr ""
616644
617−#: qml/Wizard/Pages/80-finished.qml:39
618−msgid "Nice work!"
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
646+msgid "Lock Screen Passcode"
619647msgstr ""
620648
621−#: qml/Wizard/Pages/80-finished.qml:46
622−msgid "Your device is now ready to use."
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
650+msgid "Enter 4 numbers to setup your passcode"
623651msgstr ""
624652
625−#: qml/Wizard/Pages/80-finished.qml:53
626−msgid "Finish"
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
627656msgstr ""
628657
629−#: qml/Wizard/Pages/here-terms.qml:27
630−msgid "Terms & Conditions"
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
659+msgid "Passcode too short"
631660msgstr ""
632661
633−#: qml/Wizard/Pages/passwd-confirm.qml:49
634−msgid "Confirm passphrase"
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
663+msgid "Passcodes match"
635664msgstr ""
636665
637−#: qml/Wizard/Pages/passwd-confirm.qml:50
638−msgid "Confirm passcode"
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
667+msgid "Passcodes do not match"
639668msgstr ""
640669
641−#: qml/Wizard/Pages/passwd-confirm.qml:53
642−#: qml/Wizard/Pages/passwd-confirm.qml:54
643−msgid "Please try again."
670+#: qml/Wizard/Pages/passcode-set.qml:62
671+msgid "Passcode must be 4 characters long"
644672msgstr ""
645673
646−#: qml/Wizard/Pages/passwd-set.qml:61
647−msgid "Choose your passcode"
674+#: qml/Wizard/Pages/password-set.qml:30
675+msgid "Lock Screen Password"
648676msgstr ""
649677
650−#: qml/Wizard/Pages/passwd-set.qml:68
651−msgid "Passphrase must be 4 characters long"
678+#: qml/Wizard/Pages/password-set.qml:61
679+msgid "Enter at least 8 characters"
652680msgstr ""
653681
654−#. Translators: This is the arrow for "Back" buttons
655−#: qml/Wizard/StackButton.qml:39
656−#, qt-format
657−msgid "〈 %1"
682+#: qml/Wizard/Pages/password-set.qml:73
683+msgid "Choose password"
658684msgstr ""
659685
660−#. Translators: This is the arrow for "Forward" buttons
661−#: qml/Wizard/StackButton.qml:42
662−#, qt-format
663−msgid "%1 〉"
686+#: qml/Wizard/Pages/password-set.qml:103
687+msgid "Confirm password"
688+msgstr ""
689+
690+#: qml/Wizard/Pages/sim.qml:27
691+msgid "No SIM card installed"
692+msgstr ""
693+
694+#: qml/Wizard/Pages/sim.qml:54
695+msgid "SIM card added"
696+msgstr ""
697+
698+#: qml/Wizard/Pages/sim.qml:55
699+msgid "You must restart the device to access the mobile network."
700+msgstr ""
701+
702+#: qml/Wizard/Pages/sim.qml:59
703+msgid "Restart"
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:78
707+msgid "You won’t be able to make calls or use text messaging without a SIM."
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:90
711+msgid "To proceed with no SIM tap Skip."
712+msgstr ""
713+
714+#: qml/Wizard/PasswordMeter.qml:87
715+msgid "Passwords match"
716+msgstr ""
717+
718+#: qml/Wizard/PasswordMeter.qml:89
719+msgid "Passwords do not match"
720+msgstr ""
721+
722+#: qml/Wizard/PasswordMeter.qml:93
723+msgid "Strong password"
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:95
727+msgid "Fair password"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:97
731+msgid "Weak password"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:99
735+msgid "Very weak password"
664736msgstr ""
po/ckb.po+269−197
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2014-01-21 11:05+0000\n"
1212"Last-Translator: Aras <aras.noori@gmail.com>\n"
1313"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
@@ -15,23 +15,23 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:08+0000\n"
19+"X-Generator: Launchpad (build 17958)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
2323msgstr ""
2424
25−#: plugins/Unity/Launcher/launcheritem.cpp:47
26−#: plugins/Unity/Launcher/launcheritem.cpp:106
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
2727msgid "Pin shortcut"
2828msgstr ""
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:52
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
3131msgid "Quit"
3232msgstr ""
3333
34−#: plugins/Unity/Launcher/launcheritem.cpp:106
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
3535msgid "Unpin shortcut"
3636msgstr ""
3737
@@ -73,77 +73,59 @@ msgctxt "Button: Log out from the system"
7373msgid "Log Out"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
77−#: qml/Components/Dialogs.qml:253
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
7879msgid "Cancel"
7980msgstr ""
8081
8182#: qml/Components/Dialogs.qml:173
82−msgctxt "Title: Reboot/Shut down dialog"
83−msgid "Shut down"
84−msgstr ""
85−
86−#: qml/Components/Dialogs.qml:174
87−msgid "Are you sure you want to shut down?"
88−msgstr ""
89−
90−#: qml/Components/Dialogs.qml:176
91−msgctxt "Button: Reboot the system"
92−msgid "Reboot"
93−msgstr ""
94−
95−#: qml/Components/Dialogs.qml:185
96−msgctxt "Button: Shut down the system"
97−msgid "Shut down"
98−msgstr ""
99−
100−#: qml/Components/Dialogs.qml:207
10183msgctxt "Title: Reboot dialog"
10284msgid "Reboot"
10385msgstr ""
10486
105−#: qml/Components/Dialogs.qml:208
87+#: qml/Components/Dialogs.qml:174
10688msgid "Are you sure you want to reboot?"
10789msgstr ""
10890
109−#: qml/Components/Dialogs.qml:210
91+#: qml/Components/Dialogs.qml:176
11092msgid "No"
11193msgstr ""
11294
113−#: qml/Components/Dialogs.qml:217
95+#: qml/Components/Dialogs.qml:183
11496msgid "Yes"
11597msgstr ""
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:198
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr ""
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:199
123105msgid ""
124106"Are you sure you would like\n"
125107"to power off?"
126108msgstr ""
127109
128−#: qml/Components/Dialogs.qml:235
110+#: qml/Components/Dialogs.qml:201
129111msgctxt "Button: Power off the system"
130112msgid "Power off"
131113msgstr ""
132114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:210
134116msgctxt "Button: Restart the system"
135117msgid "Restart"
136118msgstr ""
137119
138−#: qml/Components/Lockscreen.qml:245
120+#: qml/Components/Lockscreen.qml:231
139121msgid "Return to Call"
140122msgstr ""
141123
142−#: qml/Components/Lockscreen.qml:245
124+#: qml/Components/Lockscreen.qml:231
143125msgid "Emergency Call"
144126msgstr "هێڵی فریاگوزاری"
145127
146−#: qml/Components/Lockscreen.qml:277
128+#: qml/Components/Lockscreen.qml:263
147129msgid "OK"
148130msgstr ""
149131
@@ -152,6 +134,8 @@ msgid "Apps may have unsaved data:"
152134msgstr ""
153135
154136#: qml/Components/ModeSwitchWarningDialog.qml:57
137+msgctxt ""
138+"Re-dock means connect the device again to an external screen/mouse/keyboard"
155139msgid "Re-dock, save your work and close these apps to continue."
156140msgstr ""
157141
@@ -171,42 +155,58 @@ msgstr ""
171155msgid "Close all"
172156msgstr ""
173157
174−#: qml/Dash/DashPageHeader.qml:266
158+#: qml/Dash/DashPageHeader.qml:337
175159msgctxt "Button: Open the Ubuntu Store"
176160msgid "Store"
177161msgstr ""
178162
179−#: qml/Dash/DashPageHeader.qml:273
163+#: qml/Dash/DashPageHeader.qml:344
180164msgctxt "Button: Start a search in the current dash scope"
181165msgid "Search"
182166msgstr ""
183167
184−#: qml/Dash/DashPageHeader.qml:283
168+#: qml/Dash/DashPageHeader.qml:354
185169msgctxt "Button: Show the current dash scope settings"
186170msgid "Settings"
187171msgstr ""
188172
189−#: qml/Dash/DashPageHeader.qml:290
173+#: qml/Dash/DashPageHeader.qml:361
190174msgid "Remove from Favorites"
191175msgstr ""
192176
193−#: qml/Dash/DashPageHeader.qml:290
177+#: qml/Dash/DashPageHeader.qml:361
194178msgid "Add to Favorites"
195179msgstr ""
196180
197−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
181+#: qml/Dash/FiltersPopover.qml:60
182+msgid "Refine your results"
183+msgstr ""
184+
185+#: qml/Dash/FiltersPopover.qml:69
186+msgid "Reset"
187+msgstr ""
188+
189+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198190msgid "See less"
199191msgstr ""
200192
201−#: qml/Dash/GenericScopeView.qml:587
193+#: qml/Dash/GenericScopeView.qml:570
202194msgid "See all"
203195msgstr ""
204196
205−#: qml/Dash/GenericScopeView.qml:649
197+#: qml/Dash/GenericScopeView.qml:627
206198msgctxt "Label: Hint for dash search line edit"
207199msgid "Search"
208200msgstr ""
209201
202+#: qml/Dash/PageHeaderExtraPanel.qml:55
203+msgid "Recent Searches"
204+msgstr ""
205+
206+#: qml/Dash/PageHeaderExtraPanel.qml:66
207+msgid "Clear All"
208+msgstr ""
209+
210210#: qml/Dash/Previews/PreviewActionCombo.qml:35
211211msgid "More..."
212212msgstr ""
@@ -228,7 +228,7 @@ msgstr "پلە دابنی بۆی"
228228msgid "Add a review"
229229msgstr "پێداچوونەوە زۆر بکە"
230230
231−#: qml/Dash/Previews/PreviewSharing.qml:50
231+#: qml/Dash/Previews/PreviewSharing.qml:66
232232msgid "Preview Share Item"
233233msgstr ""
234234
@@ -256,13 +256,13 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:87
259+#: qml/DisabledScreenNotice.qml:104
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262−"touch pad to interact with the mouse."
262+"touch pad to interact with the pointer."
263263msgstr ""
264264
265−#: qml/Greeter/CoverPage.qml:107
265+#: qml/Greeter/CoverPage.qml:118
266266msgid "Unlock"
267267msgstr ""
268268
@@ -274,11 +274,11 @@ msgstr ""
274274msgid "Tap to unlock"
275275msgstr ""
276276
277−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
278278msgid "Sorry, incorrect passphrase."
279279msgstr ""
280280
281−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
282282msgid "Sorry, incorrect passcode."
283283msgstr ""
284284
@@ -303,7 +303,7 @@ msgstr ""
303303msgid "Enter %1"
304304msgstr ""
305305
306−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
307307msgid "Enter passphrase"
308308msgstr ""
309309
@@ -341,62 +341,62 @@ msgstr ""
341341msgid "Conference"
342342msgstr ""
343343
344−#: qml/Panel/Indicators/MenuItemFactory.qml:753
344+#: qml/Panel/Indicators/MenuItemFactory.qml:761
345345msgid "Nothing is playing"
346346msgstr ""
347347
348−#: qml/Panel/Indicators/MenuItemFactory.qml:882
348+#: qml/Panel/Indicators/MenuItemFactory.qml:890
349349#, qt-format
350350msgid "%1 hour"
351351msgid_plural "%1 hours"
352352msgstr[0] ""
353353msgstr[1] ""
354354
355−#: qml/Panel/Indicators/MenuItemFactory.qml:886
355+#: qml/Panel/Indicators/MenuItemFactory.qml:894
356356#, qt-format
357357msgid "%1 minute"
358358msgid_plural "%1 minutes"
359359msgstr[0] ""
360360msgstr[1] ""
361361
362−#: qml/Panel/Indicators/MenuItemFactory.qml:891
362+#: qml/Panel/Indicators/MenuItemFactory.qml:899
363363#, qt-format
364364msgid "%1 second"
365365msgid_plural "%1 seconds"
366366msgstr[0] ""
367367msgstr[1] ""
368368
369−#: qml/Panel/Indicators/MenuItemFactory.qml:894
369+#: qml/Panel/Indicators/MenuItemFactory.qml:902
370370msgid "0 seconds"
371371msgstr ""
372372
373373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
374−#: qml/Panel/Indicators/MenuItemFactory.qml:896
374+#: qml/Panel/Indicators/MenuItemFactory.qml:904
375375#, qt-format
376376msgid "%1 remaining"
377377msgstr ""
378378
379−#: qml/Panel/Indicators/MenuItemFactory.qml:902
379+#: qml/Panel/Indicators/MenuItemFactory.qml:910
380380msgid "In queue…"
381381msgstr ""
382382
383−#: qml/Panel/Indicators/MenuItemFactory.qml:906
383+#: qml/Panel/Indicators/MenuItemFactory.qml:914
384384msgid "Downloading"
385385msgstr ""
386386
387−#: qml/Panel/Indicators/MenuItemFactory.qml:908
387+#: qml/Panel/Indicators/MenuItemFactory.qml:916
388388msgid "Paused, tap to resume"
389389msgstr ""
390390
391−#: qml/Panel/Indicators/MenuItemFactory.qml:910
391+#: qml/Panel/Indicators/MenuItemFactory.qml:918
392392msgid "Canceled"
393393msgstr ""
394394
395−#: qml/Panel/Indicators/MenuItemFactory.qml:912
395+#: qml/Panel/Indicators/MenuItemFactory.qml:920
396396msgid "Finished"
397397msgstr ""
398398
399−#: qml/Panel/Indicators/MenuItemFactory.qml:914
399+#: qml/Panel/Indicators/MenuItemFactory.qml:922
400400msgid "Failed, tap to retry"
401401msgstr ""
402402
@@ -416,251 +416,323 @@ msgctxt "Button: Call back on phone"
416416msgid "Call back"
417417msgstr ""
418418
419−#: qml/Panel/Indicators/ModemInfoItem.qml:105
420−msgid "Unlock SIM"
419+#: qml/Stages/SideStage.qml:76
420+msgid "Drag using 3 fingers any application from one window to the other"
421421msgstr ""
422422
423−#: qml/Panel/Indicators/RoamingIndication.qml:27
424−msgid "Roaming"
423+#: qml/Tutorial/TutorialBottom.qml:78
424+msgid "Swipe up to add a contact"
425425msgstr ""
426426
427−#: qml/Tutorial/TutorialBottom.qml:28
428−msgid "Open special menus"
427+#: qml/Tutorial/TutorialBottom.qml:80
428+msgid "Swipe up for favorite calculations"
429429msgstr ""
430430
431−#: qml/Tutorial/TutorialBottom.qml:29
432−msgid "Swipe up from the bottom edge."
431+#: qml/Tutorial/TutorialBottom.qml:82
432+msgid "Swipe up for recent calls"
433433msgstr ""
434434
435−#: qml/Tutorial/TutorialBottomFinish.qml:24
436−msgid "This action does different things for different apps"
435+#: qml/Tutorial/TutorialBottom.qml:84
436+msgid "Swipe up to create a message"
437437msgstr ""
438438
439−#: qml/Tutorial/TutorialBottomFinish.qml:25
440−msgid "Tap here to finish."
439+#: qml/Tutorial/TutorialBottom.qml:85
440+msgid "Swipe up to manage the app"
441441msgstr ""
442442
443−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
444−#: qml/Tutorial/TutorialRight.qml:144
445−msgid "Tap here to continue."
443+#: qml/Tutorial/TutorialLeft.qml:47
444+msgid "Swipe from the left edge to open the launcher"
446445msgstr ""
447446
448−#: qml/Tutorial/TutorialLeft.qml:26
449−msgid "Open the launcher"
447+#: qml/Tutorial/TutorialLeftLong.qml:47
448+msgid "Long swipe from the left edge to open the Today scope"
450449msgstr ""
451450
452−#: qml/Tutorial/TutorialLeft.qml:27
453−msgid "Short swipe from the left edge."
451+#: qml/Tutorial/TutorialRight.qml:54
452+msgid "Hover your mouse on the right edge to view your open apps"
454453msgstr ""
455454
456−#: qml/Tutorial/TutorialLeftFinish.qml:24
457−msgid "These are the shortcuts to favorite apps"
455+#: qml/Tutorial/TutorialRight.qml:55
456+msgid "Short or long swipe from the right edge to view your open apps"
458457msgstr ""
459458
460−#: qml/Tutorial/TutorialPage.qml:178
461−msgid "You almost got it!"
459+#: qml/Tutorial/TutorialTop.qml:53
460+msgid "Swipe from the top right edge to open the notification bar"
462461msgstr ""
463462
464−#: qml/Tutorial/TutorialPage.qml:195
465−msgid "Try again."
463+#: qml/Tutorial/TutorialTop.qml:54
464+msgid "Swipe from the top edge to open the notification bar"
466465msgstr ""
467466
468−#: qml/Tutorial/TutorialRight.qml:31
469−msgid "To view open apps"
467+#: qml/Wizard/Page.qml:54
468+msgctxt "Button: Go back one page in the Wizard"
469+msgid "Back"
470470msgstr ""
471471
472−#: qml/Tutorial/TutorialRight.qml:32
473−msgid "Long swipe from the right edge."
472+#: qml/Wizard/Pages/10-welcome.qml:27
473+msgid "Language"
474474msgstr ""
475475
476−#: qml/Tutorial/TutorialRight.qml:122
477−msgid "View all your running tasks."
476+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
477+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
478+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479+#: qml/Wizard/Pages/75-report-check.qml:84
480+#: qml/Wizard/Pages/passcode-desktop.qml:124
481+#: qml/Wizard/Pages/password-set.qml:141
482+msgid "Next"
478483msgstr ""
479484
480−#: qml/Wizard/Page.qml:89
481−msgctxt "Button: Go back one page in the Wizard"
482−msgid "Back"
485+#: qml/Wizard/Pages/30-wifi.qml:29
486+msgid "Connect to Wi‑Fi"
483487msgstr ""
484488
485−#: qml/Wizard/Pages/10-welcome.qml:27
486−msgid "Hi!"
489+#: qml/Wizard/Pages/30-wifi.qml:130
490+msgid "Connected"
487491msgstr ""
488492
489−#: qml/Wizard/Pages/10-welcome.qml:44
490−msgid "Welcome to your Ubuntu device."
493+#: qml/Wizard/Pages/30-wifi.qml:163
494+msgid "Available Wi-Fi networks"
491495msgstr ""
492496
493−#: qml/Wizard/Pages/10-welcome.qml:52
494−msgid "Let’s get started."
497+#: qml/Wizard/Pages/30-wifi.qml:164
498+msgid "No available Wi-Fi networks"
495499msgstr ""
496500
497−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
498−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
499−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
500−#: qml/Wizard/Pages/passwd-set.qml:90
501−msgid "Continue"
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502+#: qml/Wizard/Pages/sim.qml:101
503+msgid "Skip"
502504msgstr ""
503505
504−#: qml/Wizard/Pages/20-sim.qml:25
505−msgid "Add a SIM card and restart your device"
506+#: qml/Wizard/Pages/40-location.qml:27
507+msgid "Location Services"
506508msgstr ""
507509
508−#: qml/Wizard/Pages/20-sim.qml:59
509−msgid "Without it, you won’t be able to make calls or use text messaging."
510+#: qml/Wizard/Pages/40-location.qml:83
511+msgid ""
512+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
513+"(recommended)"
510514msgstr ""
511515
512−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
513−msgid "Skip"
516+#: qml/Wizard/Pages/40-location.qml:105
517+#, qt-format
518+msgid "By selecting this option you agree to the Nokia HERE %1."
514519msgstr ""
515520
516−#: qml/Wizard/Pages/30-passwd-type.qml:39
517−msgid "Lock security"
521+#: qml/Wizard/Pages/40-location.qml:106
522+msgctxt "part of: Nokia HERE terms and conditions"
523+msgid "terms and conditions"
518524msgstr ""
519525
520−#: qml/Wizard/Pages/30-passwd-type.qml:79
521−msgid "Please select how you’d like to unlock your device."
526+#: qml/Wizard/Pages/40-location.qml:160
527+msgid "GPS only"
522528msgstr ""
523529
524−#: qml/Wizard/Pages/30-passwd-type.qml:102
525−msgctxt "Label: Type of security method"
526−msgid "Swipe"
530+#: qml/Wizard/Pages/40-location.qml:214
531+msgid "Don't use my location"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:260
535+msgid "You can change it later in System Settings."
536+msgstr ""
537+
538+#: qml/Wizard/Pages/50-timezone.qml:29
539+msgid "Time Zone"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/50-timezone.qml:178
543+msgid "Enter your city"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/60-account.qml:24
547+msgid "Personalize Your Device"
548+msgstr ""
549+
550+#: qml/Wizard/Pages/60-account.qml:48
551+msgid "Preferred Name"
527552msgstr ""
528553
529−#: qml/Wizard/Pages/30-passwd-type.qml:103
530−msgctxt "Label: Description of security method"
531−msgid "No security"
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
555+msgid "Lock Screen"
532556msgstr ""
533557
534−#: qml/Wizard/Pages/30-passwd-type.qml:105
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
535559msgctxt "Label: Type of security method"
536−msgid "Passcode"
560+msgid "Create new password"
537561msgstr ""
538562
539−#: qml/Wizard/Pages/30-passwd-type.qml:106
540−msgctxt "Label: Description of security method"
541−msgid "4 digits only"
563+#: qml/Wizard/Pages/70-passwd-type.qml:103
564+msgctxt "Label: Type of security method"
565+msgid "Create passcode (numbers only)"
542566msgstr ""
543567
544−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
545569msgctxt "Label: Type of security method"
546−msgid "Passphrase"
570+msgid "No lock code"
547571msgstr ""
548572
549−#: qml/Wizard/Pages/30-passwd-type.qml:109
550−msgctxt "Label: Description of security method"
551−msgid "Numbers and letters"
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
574+msgid "Privacy Policy"
552575msgstr ""
553576
554−#: qml/Wizard/Pages/40-wifi.qml:29
555−msgid "Connect to Wi‑Fi"
577+#: qml/Wizard/Pages/75-report-check.qml:26
578+msgid "Help Us Improve"
556579msgstr ""
557580
558−#: qml/Wizard/Pages/40-wifi.qml:168
559−msgid "Available networks…"
581+#: qml/Wizard/Pages/75-report-check.qml:59
582+msgid "Improve system performance by sending us crashes and error reports."
560583msgstr ""
561584
562−#: qml/Wizard/Pages/40-wifi.qml:169
563−msgid "No available networks."
585+#: qml/Wizard/Pages/75-report-check.qml:60
586+msgid "Privacy policy"
564587msgstr ""
565588
566−#: qml/Wizard/Pages/50-location.qml:27
567−msgid "Location"
589+#: qml/Wizard/Pages/80-finished.qml:89
590+msgid "Welcome to Ubuntu"
568591msgstr ""
569592
570−#: qml/Wizard/Pages/50-location.qml:62
571−msgid "Let the phone detect your location:"
593+#: qml/Wizard/Pages/80-finished.qml:104
594+msgid "You are ready to use your device now"
572595msgstr ""
573596
574−#: qml/Wizard/Pages/50-location.qml:69
575−msgid "Using GPS only (less accurate)"
597+#: qml/Wizard/Pages/80-finished.qml:124
598+msgid "Get Started"
599+msgstr ""
600+
601+#: qml/Wizard/Pages/here-terms.qml:25
602+msgid "Terms & Conditions"
576603msgstr ""
577604
578−#: qml/Wizard/Pages/50-location.qml:86
579−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
605+#: qml/Wizard/Pages/here-terms.qml:69
606+msgid "Your device uses positioning technologies provided by HERE."
580607msgstr ""
581608
582−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
583−#: qml/Wizard/Pages/50-location.qml:103
609+#: qml/Wizard/Pages/here-terms.qml:81
584610msgid ""
585−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
586−"conditions</a>."
611+"To provide you with positioning services and to improve their quality, HERE "
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
587614msgstr ""
588615
589−#: qml/Wizard/Pages/50-location.qml:112
590−msgid "Not at all"
616+#: qml/Wizard/Pages/here-terms.qml:93
617+msgid ""
618+"The information collected is used to analyze the service and to improve the "
619+"use of service, but not to identify you personally."
591620msgstr ""
592621
593−#: qml/Wizard/Pages/50-location.qml:124
594−msgid "You can change your mind later in <b>System Settings</b>."
622+#: qml/Wizard/Pages/here-terms.qml:106
623+#, qt-format
624+msgid "By continuing, you agree to the HERE platform %1 and %2."
595625msgstr ""
596626
597−#: qml/Wizard/Pages/60-reporting.qml:26
598−msgid "Improving your experience"
627+#: qml/Wizard/Pages/here-terms.qml:107
628+msgid "Service Terms"
599629msgstr ""
600630
601−#: qml/Wizard/Pages/60-reporting.qml:46
602−msgid ""
603−"Your phone is set up to automatically report errors to Canonical and its "
604−"partners, the makers of the operating system."
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
633+msgid "Confirm passcode"
605634msgstr ""
606635
607−#: qml/Wizard/Pages/60-reporting.qml:53
608−msgid ""
609−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
610−"Privacy</b>"
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
637+msgid "Incorrect passcode."
611638msgstr ""
612639
613−#: qml/Wizard/Pages/80-finished.qml:24
614−msgid "All done"
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
641+msgctxt "Enter the passcode again"
642+msgid "Please re-enter."
615643msgstr ""
616644
617−#: qml/Wizard/Pages/80-finished.qml:39
618−msgid "Nice work!"
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
646+msgid "Lock Screen Passcode"
619647msgstr ""
620648
621−#: qml/Wizard/Pages/80-finished.qml:46
622−msgid "Your device is now ready to use."
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
650+msgid "Enter 4 numbers to setup your passcode"
623651msgstr ""
624652
625−#: qml/Wizard/Pages/80-finished.qml:53
626−msgid "Finish"
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
627656msgstr ""
628657
629−#: qml/Wizard/Pages/here-terms.qml:27
630−msgid "Terms & Conditions"
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
659+msgid "Passcode too short"
631660msgstr ""
632661
633−#: qml/Wizard/Pages/passwd-confirm.qml:49
634−msgid "Confirm passphrase"
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
663+msgid "Passcodes match"
635664msgstr ""
636665
637−#: qml/Wizard/Pages/passwd-confirm.qml:50
638−msgid "Confirm passcode"
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
667+msgid "Passcodes do not match"
639668msgstr ""
640669
641−#: qml/Wizard/Pages/passwd-confirm.qml:53
642−#: qml/Wizard/Pages/passwd-confirm.qml:54
643−msgid "Please try again."
670+#: qml/Wizard/Pages/passcode-set.qml:62
671+msgid "Passcode must be 4 characters long"
644672msgstr ""
645673
646−#: qml/Wizard/Pages/passwd-set.qml:61
647−msgid "Choose your passcode"
674+#: qml/Wizard/Pages/password-set.qml:30
675+msgid "Lock Screen Password"
648676msgstr ""
649677
650−#: qml/Wizard/Pages/passwd-set.qml:68
651−msgid "Passphrase must be 4 characters long"
678+#: qml/Wizard/Pages/password-set.qml:61
679+msgid "Enter at least 8 characters"
652680msgstr ""
653681
654−#. Translators: This is the arrow for "Back" buttons
655−#: qml/Wizard/StackButton.qml:39
656−#, qt-format
657−msgid "〈 %1"
682+#: qml/Wizard/Pages/password-set.qml:73
683+msgid "Choose password"
658684msgstr ""
659685
660−#. Translators: This is the arrow for "Forward" buttons
661−#: qml/Wizard/StackButton.qml:42
662−#, qt-format
663−msgid "%1 〉"
686+#: qml/Wizard/Pages/password-set.qml:103
687+msgid "Confirm password"
688+msgstr ""
689+
690+#: qml/Wizard/Pages/sim.qml:27
691+msgid "No SIM card installed"
692+msgstr ""
693+
694+#: qml/Wizard/Pages/sim.qml:54
695+msgid "SIM card added"
696+msgstr ""
697+
698+#: qml/Wizard/Pages/sim.qml:55
699+msgid "You must restart the device to access the mobile network."
700+msgstr ""
701+
702+#: qml/Wizard/Pages/sim.qml:59
703+msgid "Restart"
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:78
707+msgid "You won’t be able to make calls or use text messaging without a SIM."
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:90
711+msgid "To proceed with no SIM tap Skip."
712+msgstr ""
713+
714+#: qml/Wizard/PasswordMeter.qml:87
715+msgid "Passwords match"
716+msgstr ""
717+
718+#: qml/Wizard/PasswordMeter.qml:89
719+msgid "Passwords do not match"
720+msgstr ""
721+
722+#: qml/Wizard/PasswordMeter.qml:93
723+msgid "Strong password"
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:95
727+msgid "Fair password"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:97
731+msgid "Weak password"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:99
735+msgid "Very weak password"
664736msgstr ""
665737
666738#~ msgid "Top edge"
po/cs.po+520−250
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-02-12 00:28+0000\n"
10+"POT-Creation-Date: 2016-03-23 10:01+0000\n"
1111"PO-Revision-Date: 2015-07-07 10:44+0000\n"
1212"Last-Translator: Vojtěch Daněk <vdanek@outlook.com>\n"
1313"Language-Team: Czech <cs@li.org>\n"
@@ -15,24 +15,24 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2016-02-17 05:43+0000\n"
19−"X-Generator: Launchpad (build 17925)\n"
18+"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19+"X-Generator: Launchpad (build 17958)\n"
2020"Language: cs\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
2424msgstr "Heslo: "
2525
26−#: plugins/Unity/Launcher/launcheritem.cpp:47
27−#: plugins/Unity/Launcher/launcheritem.cpp:106
26+#: plugins/Unity/Launcher/launcheritem.cpp:48
27+#: plugins/Unity/Launcher/launcheritem.cpp:107
2828msgid "Pin shortcut"
2929msgstr "Připíchnout zkratku"
3030
31−#: plugins/Unity/Launcher/launcheritem.cpp:52
31+#: plugins/Unity/Launcher/launcheritem.cpp:53
3232msgid "Quit"
3333msgstr ""
3434
35−#: plugins/Unity/Launcher/launcheritem.cpp:106
35+#: plugins/Unity/Launcher/launcheritem.cpp:107
3636msgid "Unpin shortcut"
3737msgstr "Odpíchnout zkratku"
3838
@@ -77,53 +77,35 @@ msgctxt "Button: Log out from the system"
7777msgid "Log Out"
7878msgstr "Odhlásit"
7979
80−#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
81−#: qml/Components/Dialogs.qml:253
80+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:219
81+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
82+#: qml/Wizard/Pages/passcode-set.qml:32
8283msgid "Cancel"
8384msgstr "Zrušit"
8485
8586#: qml/Components/Dialogs.qml:173
86−msgctxt "Title: Reboot/Shut down dialog"
87−msgid "Shut down"
88−msgstr "Vypnout"
89−
90−#: qml/Components/Dialogs.qml:174
91−msgid "Are you sure you want to shut down?"
92−msgstr "Jste si jistí, že chcete zařízení vypnout?"
93−
94−#: qml/Components/Dialogs.qml:176
95−msgctxt "Button: Reboot the system"
96−msgid "Reboot"
97−msgstr "Restartovat"
98−
99−#: qml/Components/Dialogs.qml:185
100−msgctxt "Button: Shut down the system"
101−msgid "Shut down"
102−msgstr "Vypnout"
103−
104−#: qml/Components/Dialogs.qml:207
10587msgctxt "Title: Reboot dialog"
10688msgid "Reboot"
10789msgstr "Restartovat"
10890
109−#: qml/Components/Dialogs.qml:208
91+#: qml/Components/Dialogs.qml:174
11092msgid "Are you sure you want to reboot?"
11193msgstr "Jste si jistí, že chcete zařízení restartovat?"
11294
113−#: qml/Components/Dialogs.qml:210
95+#: qml/Components/Dialogs.qml:176
11496msgid "No"
11597msgstr "Ne"
11698
117−#: qml/Components/Dialogs.qml:217
99+#: qml/Components/Dialogs.qml:183
118100msgid "Yes"
119101msgstr "Ano"
120102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:198
122104msgctxt "Title: Power off/Restart dialog"
123105msgid "Power"
124106msgstr "Vypnutí"
125107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:199
127109msgid ""
128110"Are you sure you would like\n"
129111"to power off?"
@@ -131,25 +113,25 @@ msgstr ""
131113"Jste si jistí, že chcete\n"
132114"telefon vypnout?"
133115
134−#: qml/Components/Dialogs.qml:235
116+#: qml/Components/Dialogs.qml:201
135117msgctxt "Button: Power off the system"
136118msgid "Power off"
137119msgstr "Vypnutí"
138120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:210
140122msgctxt "Button: Restart the system"
141123msgid "Restart"
142124msgstr "Reboot"
143125
144−#: qml/Components/Lockscreen.qml:245
126+#: qml/Components/Lockscreen.qml:231
145127msgid "Return to Call"
146128msgstr "Vrátit se k hovoru"
147129
148−#: qml/Components/Lockscreen.qml:245
130+#: qml/Components/Lockscreen.qml:231
149131msgid "Emergency Call"
150132msgstr "Tísňové volání"
151133
152−#: qml/Components/Lockscreen.qml:277
134+#: qml/Components/Lockscreen.qml:263
153135msgid "OK"
154136msgstr "OK"
155137
@@ -158,6 +140,8 @@ msgid "Apps may have unsaved data:"
158140msgstr ""
159141
160142#: qml/Components/ModeSwitchWarningDialog.qml:57
143+msgctxt ""
144+"Re-dock means connect the device again to an external screen/mouse/keyboard"
161145msgid "Re-dock, save your work and close these apps to continue."
162146msgstr ""
163147
@@ -177,42 +161,58 @@ msgstr ""
177161msgid "Close all"
178162msgstr ""
179163
180−#: qml/Dash/DashPageHeader.qml:266
164+#: qml/Dash/DashPageHeader.qml:337
181165msgctxt "Button: Open the Ubuntu Store"
182166msgid "Store"
183167msgstr "Obchod"
184168
185−#: qml/Dash/DashPageHeader.qml:273
169+#: qml/Dash/DashPageHeader.qml:344
186170msgctxt "Button: Start a search in the current dash scope"
187171msgid "Search"
188172msgstr "Hledat"
189173
190−#: qml/Dash/DashPageHeader.qml:283
174+#: qml/Dash/DashPageHeader.qml:354
191175msgctxt "Button: Show the current dash scope settings"
192176msgid "Settings"
193177msgstr "Nastavení"
194178
195−#: qml/Dash/DashPageHeader.qml:290
179+#: qml/Dash/DashPageHeader.qml:361
196180msgid "Remove from Favorites"
197181msgstr "Odstranit z oblíbených"
198182
199−#: qml/Dash/DashPageHeader.qml:290
183+#: qml/Dash/DashPageHeader.qml:361
200184msgid "Add to Favorites"
201185msgstr "Přidat do oblíbených"
202186
203−#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
187+#: qml/Dash/FiltersPopover.qml:60
188+msgid "Refine your results"
189+msgstr ""
190+
191+#: qml/Dash/FiltersPopover.qml:69
192+msgid "Reset"
193+msgstr ""
194+
195+#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
204196msgid "See less"
205197msgstr "Zobrazit méně"
206198
207−#: qml/Dash/GenericScopeView.qml:587
199+#: qml/Dash/GenericScopeView.qml:570
208200msgid "See all"
209201msgstr "Zobrazit vše"
210202
211−#: qml/Dash/GenericScopeView.qml:649
203+#: qml/Dash/GenericScopeView.qml:627
212204msgctxt "Label: Hint for dash search line edit"
213205msgid "Search"
214206msgstr "Hledat"
215207
208+#: qml/Dash/PageHeaderExtraPanel.qml:55
209+msgid "Recent Searches"
210+msgstr ""
211+
212+#: qml/Dash/PageHeaderExtraPanel.qml:66
213+msgid "Clear All"
214+msgstr ""
215+
216216#: qml/Dash/Previews/PreviewActionCombo.qml:35
217217msgid "More..."
218218msgstr "Více..."
@@ -234,7 +234,7 @@ msgstr "Ohodnoťte to"
234234msgid "Add a review"
235235msgstr "Přidat recenzi"
236236
237−#: qml/Dash/Previews/PreviewSharing.qml:50
237+#: qml/Dash/Previews/PreviewSharing.qml:66
238238msgid "Preview Share Item"
239239msgstr ""
240240
@@ -262,13 +262,13 @@ msgstr "Domů"
262262msgid "Also installed"
263263msgstr "Také nainstalováno"
264264
265−#: qml/DisabledScreenNotice.qml:87
265+#: qml/DisabledScreenNotice.qml:104
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268−"touch pad to interact with the mouse."
268+"touch pad to interact with the pointer."
269269msgstr ""
270270
271−#: qml/Greeter/CoverPage.qml:107
271+#: qml/Greeter/CoverPage.qml:118
272272msgid "Unlock"
273273msgstr "Odemknout"
274274
@@ -280,11 +280,11 @@ msgstr "Znovu"
280280msgid "Tap to unlock"
281281msgstr "Klepnout pro odemčení"
282282
283−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
283+#: qml/Greeter/NarrowView.qml:54
284284msgid "Sorry, incorrect passphrase."
285285msgstr "Zadali jste špatné heslo."
286286
287−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
287+#: qml/Greeter/NarrowView.qml:55
288288msgid "Sorry, incorrect passcode."
289289msgstr "Zadali jste špatné heslo."
290290
@@ -313,7 +313,7 @@ msgstr ""
313313msgid "Enter %1"
314314msgstr "Vložte %1"
315315
316−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
316+#: qml/Greeter/NarrowView.qml:117
317317msgid "Enter passphrase"
318318msgstr "Vložte heslo"
319319
@@ -351,11 +351,11 @@ msgstr "Klepnutím se vrátíte k hovoru..."
351351msgid "Conference"
352352msgstr "Konferenční hovor"
353353
354−#: qml/Panel/Indicators/MenuItemFactory.qml:753
354+#: qml/Panel/Indicators/MenuItemFactory.qml:761
355355msgid "Nothing is playing"
356356msgstr "Nic se nepřehrává"
357357
358−#: qml/Panel/Indicators/MenuItemFactory.qml:882
358+#: qml/Panel/Indicators/MenuItemFactory.qml:890
359359#, qt-format
360360msgid "%1 hour"
361361msgid_plural "%1 hours"
@@ -363,7 +363,7 @@ msgstr[0] "%1 hodina"
363363msgstr[1] "%1 hodiny"
364364msgstr[2] "%1 hodin"
365365
366−#: qml/Panel/Indicators/MenuItemFactory.qml:886
366+#: qml/Panel/Indicators/MenuItemFactory.qml:894
367367#, qt-format
368368msgid "%1 minute"
369369msgid_plural "%1 minutes"
@@ -371,7 +371,7 @@ msgstr[0] "%1 minuta"
371371msgstr[1] "%1 minuty"
372372msgstr[2] "%1 minut"
373373
374−#: qml/Panel/Indicators/MenuItemFactory.qml:891
374+#: qml/Panel/Indicators/MenuItemFactory.qml:899
375375#, qt-format
376376msgid "%1 second"
377377msgid_plural "%1 seconds"
@@ -379,37 +379,37 @@ msgstr[0] "%1 sekunda"
379379msgstr[1] "%1 sekundy"
380380msgstr[2] "%1 sekund"
381381
382−#: qml/Panel/Indicators/MenuItemFactory.qml:894
382+#: qml/Panel/Indicators/MenuItemFactory.qml:902
383383msgid "0 seconds"
384384msgstr "0 sekund"
385385
386386#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
387−#: qml/Panel/Indicators/MenuItemFactory.qml:896
387+#: qml/Panel/Indicators/MenuItemFactory.qml:904
388388#, qt-format
389389msgid "%1 remaining"
390390msgstr "Zbývá %1"
391391
392−#: qml/Panel/Indicators/MenuItemFactory.qml:902
392+#: qml/Panel/Indicators/MenuItemFactory.qml:910
393393msgid "In queue…"
394394msgstr "Ve frontě..."
395395
396−#: qml/Panel/Indicators/MenuItemFactory.qml:906
396+#: qml/Panel/Indicators/MenuItemFactory.qml:914
397397msgid "Downloading"
398398msgstr "Stahování"
399399
400−#: qml/Panel/Indicators/MenuItemFactory.qml:908
400+#: qml/Panel/Indicators/MenuItemFactory.qml:916
401401msgid "Paused, tap to resume"
402402msgstr "Pauza, pro pokračování klepněte"
403403
404−#: qml/Panel/Indicators/MenuItemFactory.qml:910
404+#: qml/Panel/Indicators/MenuItemFactory.qml:918
405405msgid "Canceled"
406406msgstr "Zrušeno"
407407
408−#: qml/Panel/Indicators/MenuItemFactory.qml:912
408+#: qml/Panel/Indicators/MenuItemFactory.qml:920
409409msgid "Finished"
410410msgstr "Dokončeno"
411411
412−#: qml/Panel/Indicators/MenuItemFactory.qml:914
412+#: qml/Panel/Indicators/MenuItemFactory.qml:922
413413msgid "Failed, tap to retry"
414414msgstr "Nezdařilo se, opakujte klepnutím"
415415
@@ -429,259 +429,324 @@ msgctxt "Button: Call back on phone"
429429msgid "Call back"
430430msgstr ""
431431
432−#: qml/Panel/Indicators/ModemInfoItem.qml:105
433−msgid "Unlock SIM"
434−msgstr "Odemknout SIM"
435−
436−#: qml/Panel/Indicators/RoamingIndication.qml:27
437−msgid "Roaming"
438−msgstr "Roaming"
439−
440−#: qml/Tutorial/TutorialBottom.qml:28
441−msgid "Open special menus"
442−msgstr "Otevřít speciální menu"
443−
444−#: qml/Tutorial/TutorialBottom.qml:29
445−msgid "Swipe up from the bottom edge."
446−msgstr "Potáhněte prstem z dola nahoru."
432+#: qml/Stages/SideStage.qml:76
433+msgid "Drag using 3 fingers any application from one window to the other"
434+msgstr ""
447435
448−#: qml/Tutorial/TutorialBottomFinish.qml:24
449−msgid "This action does different things for different apps"
450−msgstr "Tato akce vyvolá různé reakce v rozdílných aplikacích"
436+#: qml/Tutorial/TutorialBottom.qml:78
437+msgid "Swipe up to add a contact"
438+msgstr ""
451439
452−#: qml/Tutorial/TutorialBottomFinish.qml:25
453−msgid "Tap here to finish."
454−msgstr "Klepněte zde pro dokončení."
440+#: qml/Tutorial/TutorialBottom.qml:80
441+msgid "Swipe up for favorite calculations"
442+msgstr ""
455443
456−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
457−#: qml/Tutorial/TutorialRight.qml:144
458−msgid "Tap here to continue."
459−msgstr "Klepněte zde pro pokračování."
444+#: qml/Tutorial/TutorialBottom.qml:82
445+msgid "Swipe up for recent calls"
446+msgstr ""
460447
461−#: qml/Tutorial/TutorialLeft.qml:26
462−msgid "Open the launcher"
463−msgstr "Otevřete launcher"
448+#: qml/Tutorial/TutorialBottom.qml:84
449+msgid "Swipe up to create a message"
450+msgstr ""
464451
465−#: qml/Tutorial/TutorialLeft.qml:27
466−msgid "Short swipe from the left edge."
467−msgstr "Potáhněte krátce z levého okraje."
452+#: qml/Tutorial/TutorialBottom.qml:85
453+msgid "Swipe up to manage the app"
454+msgstr ""
468455
469−#: qml/Tutorial/TutorialLeftFinish.qml:24
470−msgid "These are the shortcuts to favorite apps"
471−msgstr "Zde jsou odkazy na vaše oblíbené aplikace"
456+#: qml/Tutorial/TutorialLeft.qml:47
457+msgid "Swipe from the left edge to open the launcher"
458+msgstr ""
472459
473−#: qml/Tutorial/TutorialPage.qml:178
474−msgid "You almost got it!"
475−msgstr "Už to skoro máte!"
460+#: qml/Tutorial/TutorialLeftLong.qml:47
461+msgid "Long swipe from the left edge to open the Today scope"
462+msgstr ""
476463
477−#: qml/Tutorial/TutorialPage.qml:195
478−msgid "Try again."
479−msgstr "Zkuste to znovu."
464+#: qml/Tutorial/TutorialRight.qml:54
465+msgid "Hover your mouse on the right edge to view your open apps"
466+msgstr ""
480467
481−#: qml/Tutorial/TutorialRight.qml:31
482−msgid "To view open apps"
483−msgstr "K zobrazení otevřených aplikací"
468+#: qml/Tutorial/TutorialRight.qml:55
469+msgid "Short or long swipe from the right edge to view your open apps"
470+msgstr ""
484471
485−#: qml/Tutorial/TutorialRight.qml:32
486−msgid "Long swipe from the right edge."
487−msgstr "Potáhněte dlouho z pravého okraje."
472+#: qml/Tutorial/TutorialTop.qml:53
473+msgid "Swipe from the top right edge to open the notification bar"
474+msgstr ""
488475
489−#: qml/Tutorial/TutorialRight.qml:122
490−msgid "View all your running tasks."
491−msgstr "Zobrazíte všechny běžící procesy."
476+#: qml/Tutorial/TutorialTop.qml:54
477+msgid "Swipe from the top edge to open the notification bar"
478+msgstr ""
492479
493−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
494481msgctxt "Button: Go back one page in the Wizard"
495482msgid "Back"
496483msgstr "Zpět"
497484
498485#: qml/Wizard/Pages/10-welcome.qml:27
499−msgid "Hi!"
500−msgstr "Ahoj!"
486+msgid "Language"
487+msgstr ""
501488
502−#: qml/Wizard/Pages/10-welcome.qml:44
503−msgid "Welcome to your Ubuntu device."
489+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
490+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
491+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
492+#: qml/Wizard/Pages/75-report-check.qml:84
493+#: qml/Wizard/Pages/passcode-desktop.qml:124
494+#: qml/Wizard/Pages/password-set.qml:141
495+msgid "Next"
504496msgstr ""
505497
506−#: qml/Wizard/Pages/10-welcome.qml:52
507−msgid "Let’s get started."
508−msgstr "Začněme."
498+#: qml/Wizard/Pages/30-wifi.qml:29
499+msgid "Connect to Wi‑Fi"
500+msgstr "Připojte se k Wi-Fi"
509501
510−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
511−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
512−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
513−#: qml/Wizard/Pages/passwd-set.qml:90
514−msgid "Continue"
515−msgstr "Pokračovat"
502+#: qml/Wizard/Pages/30-wifi.qml:130
503+msgid "Connected"
504+msgstr ""
516505
517−#: qml/Wizard/Pages/20-sim.qml:25
518−msgid "Add a SIM card and restart your device"
519−msgstr "Vložte SIM kartu a restartujte své zařízení"
506+#: qml/Wizard/Pages/30-wifi.qml:163
507+msgid "Available Wi-Fi networks"
508+msgstr ""
520509
521−#: qml/Wizard/Pages/20-sim.qml:59
522−msgid "Without it, you won’t be able to make calls or use text messaging."
523−msgstr "Bez ni nebudete moci telefonovat nebo posílat textové zprávy."
510+#: qml/Wizard/Pages/30-wifi.qml:164
511+msgid "No available Wi-Fi networks"
512+msgstr ""
524513
525−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
514+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515+#: qml/Wizard/Pages/sim.qml:101
526516msgid "Skip"
527517msgstr "Přeskočit"
528518
529−#: qml/Wizard/Pages/30-passwd-type.qml:39
530−msgid "Lock security"
531−msgstr "Bezpečnostní uzamčení"
519+#: qml/Wizard/Pages/40-location.qml:27
520+msgid "Location Services"
521+msgstr ""
532522
533−#: qml/Wizard/Pages/30-passwd-type.qml:79
534−msgid "Please select how you’d like to unlock your device."
523+#: qml/Wizard/Pages/40-location.qml:83
524+msgid ""
525+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
526+"(recommended)"
535527msgstr ""
536528
537−#: qml/Wizard/Pages/30-passwd-type.qml:102
538−msgctxt "Label: Type of security method"
539−msgid "Swipe"
540−msgstr "Potažením prstu"
529+#: qml/Wizard/Pages/40-location.qml:105
530+#, qt-format
531+msgid "By selecting this option you agree to the Nokia HERE %1."
532+msgstr ""
541533
542−#: qml/Wizard/Pages/30-passwd-type.qml:103
543−msgctxt "Label: Description of security method"
544−msgid "No security"
545−msgstr "Bez zabezpečení"
534+#: qml/Wizard/Pages/40-location.qml:106
535+msgctxt "part of: Nokia HERE terms and conditions"
536+msgid "terms and conditions"
537+msgstr ""
538+
539+#: qml/Wizard/Pages/40-location.qml:160
540+msgid "GPS only"
541+msgstr ""
542+
543+#: qml/Wizard/Pages/40-location.qml:214
544+msgid "Don't use my location"
545+msgstr ""
546+
547+#: qml/Wizard/Pages/40-location.qml:260
548+msgid "You can change it later in System Settings."
549+msgstr ""
550+
551+#: qml/Wizard/Pages/50-timezone.qml:29
552+msgid "Time Zone"
553+msgstr ""
546554
547−#: qml/Wizard/Pages/30-passwd-type.qml:105
555+#: qml/Wizard/Pages/50-timezone.qml:178
556+msgid "Enter your city"
557+msgstr ""
558+
559+#: qml/Wizard/Pages/60-account.qml:24
560+msgid "Personalize Your Device"
561+msgstr ""
562+
563+#: qml/Wizard/Pages/60-account.qml:48
564+msgid "Preferred Name"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/70-passwd-type.qml:39
568+msgid "Lock Screen"
569+msgstr ""
570+
571+#: qml/Wizard/Pages/70-passwd-type.qml:101
548572msgctxt "Label: Type of security method"
549−msgid "Passcode"
550−msgstr "Číselné heslo"
573+msgid "Create new password"
574+msgstr ""
551575
552−#: qml/Wizard/Pages/30-passwd-type.qml:106
553−msgctxt "Label: Description of security method"
554−msgid "4 digits only"
555−msgstr "Pouze 4 čísla"
576+#: qml/Wizard/Pages/70-passwd-type.qml:103
577+msgctxt "Label: Type of security method"
578+msgid "Create passcode (numbers only)"
579+msgstr ""
556580
557−#: qml/Wizard/Pages/30-passwd-type.qml:108
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
558582msgctxt "Label: Type of security method"
559−msgid "Passphrase"
560−msgstr "Heslo"
583+msgid "No lock code"
584+msgstr ""
561585
562−#: qml/Wizard/Pages/30-passwd-type.qml:109
563−msgctxt "Label: Description of security method"
564−msgid "Numbers and letters"
565−msgstr "Čísla a písmena"
586+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
587+msgid "Privacy Policy"
588+msgstr ""
566589
567−#: qml/Wizard/Pages/40-wifi.qml:29
568−msgid "Connect to Wi‑Fi"
569−msgstr "Připojte se k Wi-Fi"
590+#: qml/Wizard/Pages/75-report-check.qml:26
591+msgid "Help Us Improve"
592+msgstr ""
593+
594+#: qml/Wizard/Pages/75-report-check.qml:59
595+msgid "Improve system performance by sending us crashes and error reports."
596+msgstr ""
570597
571−#: qml/Wizard/Pages/40-wifi.qml:168
572−msgid "Available networks…"
573−msgstr "Dostupné sítě..."
598+#: qml/Wizard/Pages/75-report-check.qml:60
599+msgid "Privacy policy"
600+msgstr ""
601+
602+#: qml/Wizard/Pages/80-finished.qml:89
603+msgid "Welcome to Ubuntu"
604+msgstr ""
574605
575−#: qml/Wizard/Pages/40-wifi.qml:169
576−msgid "No available networks."
577−msgstr "Žádná dostupná síť."
606+#: qml/Wizard/Pages/80-finished.qml:104
607+msgid "You are ready to use your device now"
608+msgstr ""
578609
579−#: qml/Wizard/Pages/50-location.qml:27
580−msgid "Location"
581−msgstr "Umístění"
610+#: qml/Wizard/Pages/80-finished.qml:124
611+msgid "Get Started"
612+msgstr ""
582613
583−#: qml/Wizard/Pages/50-location.qml:62
584−msgid "Let the phone detect your location:"
585−msgstr "Povolte telefonu zjistit, kde se zrovna nacházíte:"
614+#: qml/Wizard/Pages/here-terms.qml:25
615+msgid "Terms & Conditions"
616+msgstr "Pravidla a podmínky"
586617
587−#: qml/Wizard/Pages/50-location.qml:69
588−msgid "Using GPS only (less accurate)"
589−msgstr "Používat pouze GPS (méně přesné)"
618+#: qml/Wizard/Pages/here-terms.qml:69
619+msgid "Your device uses positioning technologies provided by HERE."
620+msgstr ""
590621
591−#: qml/Wizard/Pages/50-location.qml:86
592−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
593−msgstr "Používat GPS, anonymní Wi-Fi a datovou síť (doporučeno)"
622+#: qml/Wizard/Pages/here-terms.qml:81
623+msgid ""
624+"To provide you with positioning services and to improve their quality, HERE "
625+"collects information about nearby cell towers and Wi-Fi hotspots around your "
626+"current location whenever your position is being found."
627+msgstr ""
594628
595−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
596−#: qml/Wizard/Pages/50-location.qml:103
629+#: qml/Wizard/Pages/here-terms.qml:93
597630msgid ""
598−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
599−"conditions</a>."
631+"The information collected is used to analyze the service and to improve the "
632+"use of service, but not to identify you personally."
600633msgstr ""
601−"Zvolením této možnosti souhlasíte s <a href='#'>pravidly a podmínkami</a> "
602−"Nokia HERE."
603634
604−#: qml/Wizard/Pages/50-location.qml:112
605−msgid "Not at all"
606−msgstr "V žádném případě"
635+#: qml/Wizard/Pages/here-terms.qml:106
636+#, qt-format
637+msgid "By continuing, you agree to the HERE platform %1 and %2."
638+msgstr ""
607639
608−#: qml/Wizard/Pages/50-location.qml:124
609−msgid "You can change your mind later in <b>System Settings</b>."
640+#: qml/Wizard/Pages/here-terms.qml:107
641+msgid "Service Terms"
610642msgstr ""
611−"Pokud změníte názor, můžete nastavení změnit v <b>Nastavení systému</b>."
612643
613−#: qml/Wizard/Pages/60-reporting.qml:26
614−msgid "Improving your experience"
615−msgstr "Zlepšete své zkušenosti"
644+#: qml/Wizard/Pages/passcode-confirm.qml:43
645+#: qml/Wizard/Pages/passcode-desktop.qml:80
646+msgid "Confirm passcode"
647+msgstr "Potvrdit číselné heslo"
616648
617−#: qml/Wizard/Pages/60-reporting.qml:46
618−msgid ""
619−"Your phone is set up to automatically report errors to Canonical and its "
620−"partners, the makers of the operating system."
649+#: qml/Wizard/Pages/passcode-confirm.qml:45
650+msgid "Incorrect passcode."
621651msgstr ""
622−"Váš telefon je nastaven tak, aby automaticky odesílal informace o chybách "
623−"společnosti Canonical a partnerům, kteří stvořili tento operační systém."
624652
625−#: qml/Wizard/Pages/60-reporting.qml:53
626−msgid ""
627−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
628−"Privacy</b>"
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
654+msgctxt "Enter the passcode again"
655+msgid "Please re-enter."
656+msgstr ""
657+
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
659+msgid "Lock Screen Passcode"
629660msgstr ""
630−"To může být vypnuto v <b>Nastavení systému</b> v <b>Zabezpečení a "
631−"soukromí</b>"
632661
633−#: qml/Wizard/Pages/80-finished.qml:24
634−msgid "All done"
635−msgstr "Vše je hotovo"
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
663+msgid "Enter 4 numbers to setup your passcode"
664+msgstr ""
636665
637−#: qml/Wizard/Pages/80-finished.qml:39
638−msgid "Nice work!"
639−msgstr "Skvělá práce!"
666+#: qml/Wizard/Pages/passcode-desktop.qml:65
667+#: qml/Wizard/Pages/passcode-set.qml:54
668+msgid "Choose passcode"
669+msgstr ""
640670
641−#: qml/Wizard/Pages/80-finished.qml:46
642−msgid "Your device is now ready to use."
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
672+msgid "Passcode too short"
643673msgstr ""
644674
645−#: qml/Wizard/Pages/80-finished.qml:53
646−msgid "Finish"
647−msgstr "Dokončit"
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
676+msgid "Passcodes match"
677+msgstr ""
648678
649−#: qml/Wizard/Pages/here-terms.qml:27
650−msgid "Terms & Conditions"
651−msgstr "Pravidla a podmínky"
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
680+msgid "Passcodes do not match"
681+msgstr ""
652682
653−#: qml/Wizard/Pages/passwd-confirm.qml:49
654−msgid "Confirm passphrase"
655−msgstr "Potvrdit heslo"
683+#: qml/Wizard/Pages/passcode-set.qml:62
684+msgid "Passcode must be 4 characters long"
685+msgstr ""
656686
657−#: qml/Wizard/Pages/passwd-confirm.qml:50
658−msgid "Confirm passcode"
659−msgstr "Potvrdit číselné heslo"
687+#: qml/Wizard/Pages/password-set.qml:30
688+msgid "Lock Screen Password"
689+msgstr ""
660690
661−#: qml/Wizard/Pages/passwd-confirm.qml:53
662−#: qml/Wizard/Pages/passwd-confirm.qml:54
663−msgid "Please try again."
664−msgstr "Zkuste to, prosím, znovu."
691+#: qml/Wizard/Pages/password-set.qml:61
692+msgid "Enter at least 8 characters"
693+msgstr ""
665694
666−#: qml/Wizard/Pages/passwd-set.qml:61
667−msgid "Choose your passcode"
668−msgstr "Zvolte své heslo"
695+#: qml/Wizard/Pages/password-set.qml:73
696+msgid "Choose password"
697+msgstr ""
669698
670−#: qml/Wizard/Pages/passwd-set.qml:68
671−msgid "Passphrase must be 4 characters long"
672−msgstr "Heslo musí být alespoň 4 znaky dlouhé"
699+#: qml/Wizard/Pages/password-set.qml:103
700+msgid "Confirm password"
701+msgstr ""
673702
674−#. Translators: This is the arrow for "Back" buttons
675−#: qml/Wizard/StackButton.qml:39
676−#, qt-format
677−msgid "〈 %1"
678−msgstr "〈 %1"
703+#: qml/Wizard/Pages/sim.qml:27
704+msgid "No SIM card installed"
705+msgstr ""
679706
680−#. Translators: This is the arrow for "Forward" buttons
681−#: qml/Wizard/StackButton.qml:42
682−#, qt-format
683−msgid "%1 〉"
684−msgstr "%1 〉"
707+#: qml/Wizard/Pages/sim.qml:54
708+msgid "SIM card added"
709+msgstr ""
710+
711+#: qml/Wizard/Pages/sim.qml:55
712+msgid "You must restart the device to access the mobile network."
713+msgstr ""
714+
715+#: qml/Wizard/Pages/sim.qml:59
716+msgid "Restart"
717+msgstr "Reboot"
718+
719+#: qml/Wizard/Pages/sim.qml:78
720+msgid "You won’t be able to make calls or use text messaging without a SIM."
721+msgstr ""
722+
723+#: qml/Wizard/Pages/sim.qml:90
724+msgid "To proceed with no SIM tap Skip."
725+msgstr ""
726+
727+#: qml/Wizard/PasswordMeter.qml:87
728+msgid "Passwords match"
729+msgstr ""
730+
731+#: qml/Wizard/PasswordMeter.qml:89
732+msgid "Passwords do not match"
733+msgstr ""
734+
735+#: qml/Wizard/PasswordMeter.qml:93
736+msgid "Strong password"
737+msgstr ""
738+
739+#: qml/Wizard/PasswordMeter.qml:95
740+msgid "Fair password"
741+msgstr ""
742+
743+#: qml/Wizard/PasswordMeter.qml:97
744+msgid "Weak password"
745+msgstr ""
746+
747+#: qml/Wizard/PasswordMeter.qml:99
748+msgid "Very weak password"
749+msgstr ""
685750
686751#~ msgid "Try swiping from the right edge to unlock the phone"
687752#~ msgstr "Pokuste se odemknout telefon potažením prstu z pravého okraje."
@@ -731,18 +796,210 @@ msgstr "%1 〉"
731796#~ msgid "Swipe up again to close the settings screen"
732797#~ msgstr "Přetažením nahoru dojde k uzavření obrazovky nastavení"
733798
799+#~ msgid "Store"
800+#~ msgstr "Obchod"
801+
802+#~ msgctxt "Title: Reboot/Shut down dialog"
803+#~ msgid "Shut down"
804+#~ msgstr "Vypnout"
805+
806+#~ msgid "Are you sure you want to shut down?"
807+#~ msgstr "Jste si jistí, že chcete zařízení vypnout?"
808+
809+#~ msgctxt "Button: Reboot the system"
810+#~ msgid "Reboot"
811+#~ msgstr "Restartovat"
812+
813+#~ msgctxt "Button: Shut down the system"
814+#~ msgid "Shut down"
815+#~ msgstr "Vypnout"
816+
734817#~ msgid "Please re-enter"
735818#~ msgstr "Vložte znovu"
736819
820+#~ msgid "Unlock SIM"
821+#~ msgstr "Odemknout SIM"
822+
823+#~ msgid "Roaming"
824+#~ msgstr "Roaming"
825+
826+#~ msgid "This action does different things for different apps"
827+#~ msgstr "Tato akce vyvolá různé reakce v rozdílných aplikacích"
828+
829+#~ msgid "Tap here to finish."
830+#~ msgstr "Klepněte zde pro dokončení."
831+
832+#~ msgid "Open special menus"
833+#~ msgstr "Otevřít speciální menu"
834+
835+#~ msgid "Swipe up from the bottom edge."
836+#~ msgstr "Potáhněte prstem z dola nahoru."
837+
838+#~ msgid "Tap here to continue."
839+#~ msgstr "Klepněte zde pro pokračování."
840+
841+#~ msgid "These are the shortcuts to favorite apps"
842+#~ msgstr "Zde jsou odkazy na vaše oblíbené aplikace"
843+
844+#~ msgid "Open the launcher"
845+#~ msgstr "Otevřete launcher"
846+
847+#~ msgid "Short swipe from the left edge."
848+#~ msgstr "Potáhněte krátce z levého okraje."
849+
850+#~ msgid "You almost got it!"
851+#~ msgstr "Už to skoro máte!"
852+
853+#~ msgid "Try again."
854+#~ msgstr "Zkuste to znovu."
855+
856+#~ msgid "To view open apps"
857+#~ msgstr "K zobrazení otevřených aplikací"
858+
859+#~ msgid "Long swipe from the right edge."
860+#~ msgstr "Potáhněte dlouho z pravého okraje."
861+
862+#~ msgid "View all your running tasks."
863+#~ msgstr "Zobrazíte všechny běžící procesy."
864+
865+#~ msgid "Hi!"
866+#~ msgstr "Ahoj!"
867+
737868#~ msgid "Welcome to your Ubuntu phone."
738869#~ msgstr "Vítejte ve vašem Ubuntu telefonu."
739870
871+#~ msgid "Let’s get started."
872+#~ msgstr "Začněme."
873+
874+#~ msgid "Continue"
875+#~ msgstr "Pokračovat"
876+
877+#~ msgid "Add a SIM card and restart your device"
878+#~ msgstr "Vložte SIM kartu a restartujte své zařízení"
879+
880+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
881+#~ msgstr "Bez ni nebudete moci telefonovat nebo posílat textové zprávy."
882+
883+#~ msgid "Lock security"
884+#~ msgstr "Bezpečnostní uzamčení"
885+
740886#~ msgid "Please select how you’d like to unlock your phone."
741887#~ msgstr "Zvolte, prosím, jak chcete svůj telefon odemykat."
742888
889+#~ msgctxt "Label: Type of security method"
890+#~ msgid "Swipe"
891+#~ msgstr "Potažením prstu"
892+
893+#~ msgctxt "Label: Description of security method"
894+#~ msgid "No security"
895+#~ msgstr "Bez zabezpečení"
896+
897+#~ msgctxt "Label: Type of security method"
898+#~ msgid "Passcode"
899+#~ msgstr "Číselné heslo"
900+
901+#~ msgctxt "Label: Description of security method"
902+#~ msgid "4 digits only"
903+#~ msgstr "Pouze 4 čísla"
904+
905+#~ msgctxt "Label: Type of security method"
906+#~ msgid "Passphrase"
907+#~ msgstr "Heslo"
908+
909+#~ msgctxt "Label: Description of security method"
910+#~ msgid "Numbers and letters"
911+#~ msgstr "Čísla a písmena"
912+
913+#~ msgid "Available networks…"
914+#~ msgstr "Dostupné sítě..."
915+
916+#~ msgid "No available networks."
917+#~ msgstr "Žádná dostupná síť."
918+
919+#~ msgid "Location"
920+#~ msgstr "Umístění"
921+
922+#~ msgid "Let the phone detect your location:"
923+#~ msgstr "Povolte telefonu zjistit, kde se zrovna nacházíte:"
924+
925+#~ msgid "Using GPS only (less accurate)"
926+#~ msgstr "Používat pouze GPS (méně přesné)"
927+
928+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
929+#~ msgstr "Používat GPS, anonymní Wi-Fi a datovou síť (doporučeno)"
930+
931+#~ msgid ""
932+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
933+#~ "conditions</a>."
934+#~ msgstr ""
935+#~ "Zvolením této možnosti souhlasíte s <a href='#'>pravidly a podmínkami</a> "
936+#~ "Nokia HERE."
937+
938+#~ msgid "Not at all"
939+#~ msgstr "V žádném případě"
940+
941+#~ msgid "You can change your mind later in <b>System Settings</b>."
942+#~ msgstr ""
943+#~ "Pokud změníte názor, můžete nastavení změnit v <b>Nastavení systému</b>."
944+
945+#~ msgid "Improving your experience"
946+#~ msgstr "Zlepšete své zkušenosti"
947+
948+#~ msgid ""
949+#~ "Your phone is set up to automatically report errors to Canonical and its "
950+#~ "partners, the makers of the operating system."
951+#~ msgstr ""
952+#~ "Váš telefon je nastaven tak, aby automaticky odesílal informace o chybách "
953+#~ "společnosti Canonical a partnerům, kteří stvořili tento operační systém."
954+
955+#~ msgid ""
956+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
957+#~ "Privacy</b>"
958+#~ msgstr ""
959+#~ "To může být vypnuto v <b>Nastavení systému</b> v <b>Zabezpečení a "
960+#~ "soukromí</b>"
961+
962+#~ msgid "All done"
963+#~ msgstr "Vše je hotovo"
964+
965+#~ msgid "Nice work!"
966+#~ msgstr "Skvělá práce!"
967+
743968#~ msgid "Your phone is now ready to use."
744969#~ msgstr "Váš telefon je nyní připraven k použití."
745970
971+#~ msgid "Finish"
972+#~ msgstr "Dokončit"
973+
974+#~ msgid "Confirm passphrase"
975+#~ msgstr "Potvrdit heslo"
976+
977+#~ msgid "Please try again."
978+#~ msgstr "Zkuste to, prosím, znovu."
979+
980+#~ msgid "Choose your passcode"
981+#~ msgstr "Zvolte své heslo"
982+
983+#~ msgid "Passphrase must be 4 characters long"
984+#~ msgstr "Heslo musí být alespoň 4 znaky dlouhé"
985+
986+#, qt-format
987+#~ msgid "〈 %1"
988+#~ msgstr "〈 %1"
989+
990+#, qt-format
991+#~ msgid "%1 〉"
992+#~ msgstr "%1 〉"
993+
994+#~ msgid "Log out"
995+#~ msgstr "Odhlásit se"
996+
997+#~ msgid "Reboot"
998+#~ msgstr "Restartovat"
999+
1000+#~ msgid "Shut down"
1001+#~ msgstr "Vypnout"
1002+
7461003#~ msgid "%a %d %b %H:%M"
7471004#~ msgstr "%a %b. %d %H:%M"
7481005
@@ -772,3 +1029,16 @@ msgstr "%1 〉"
7721029
7731030#~ msgid "%a %d %b %l:%M %p"
7741031#~ msgstr "%a %b. %d %l:%M %p"
1032+
1033+#~ msgid "Settings"
1034+#~ msgstr "Nastavení"
1035+
1036+#~ msgid ""
1037+#~ "You have now mastered the edge gestures and can start using the "
1038+#~ "phone<br><br>Tap on the screen to start"
1039+#~ msgstr ""
1040+#~ "Odteď umíte gesta a můžete začít telefon používat.<br><br>Pokračujte dotykem "
1041+#~ "na obrazovku."
1042+
1043+#~ msgid "Power off"
1044+#~ msgstr "Vypnutí"
po/cy.po+495−250

This diff is too big to show here.

po/da.po+496−251

This diff is too big to show here.

po/de.po+510−259

This diff is too big to show here.

po/el.po+498−256

This diff is too big to show here.

po/en_AU.po+510−261

This diff is too big to show here.

po/en_GB.po+511−262

This diff is too big to show here.

po/eo.po+352−213

This diff is too big to show here.

po/es.po+519−265

This diff is too big to show here.

po/eu.po+495−253

This diff is too big to show here.

po/fa.po+516−262

This diff is too big to show here.

po/fi.po+509−258

This diff is too big to show here.

po/fo.po+269−197

This diff is too big to show here.

po/fr.po+534−267

This diff is too big to show here.

po/ga.po+481−249

This diff is too big to show here.

po/gd.po+533−264

This diff is too big to show here.

po/gl.po+509−258

This diff is too big to show here.

po/gv.po+272−200

This diff is too big to show here.

po/he.po+420−231

This diff is too big to show here.

po/hi.po+269−197

This diff is too big to show here.

po/hr.po+508−253

This diff is too big to show here.

po/hu.po+532−267

This diff is too big to show here.

po/hy.po+280−202

This diff is too big to show here.

po/ia.po+508−256

This diff is too big to show here.

po/id.po+280−202

This diff is too big to show here.

po/is.po+280−202

This diff is too big to show here.

po/it.po+524−266

This diff is too big to show here.

po/ja.po+292−202

This diff is too big to show here.

po/km.po+352−216

This diff is too big to show here.

po/kn.po+269−197

This diff is too big to show here.

po/ko.po+503−252

This diff is too big to show here.

po/ku.po+280−199

This diff is too big to show here.

po/ky.po+269−197

This diff is too big to show here.

po/lo.po+269−197

This diff is too big to show here.

po/lt.po+269−197

This diff is too big to show here.

po/lv.po+493−251

This diff is too big to show here.

po/ml.po+269−197

This diff is too big to show here.

po/mr.po+269−197

This diff is too big to show here.

po/ms.po+496−254

This diff is too big to show here.

po/my.po+282−200

This diff is too big to show here.

po/nb.po+514−262

This diff is too big to show here.

po/ne.po+269−197

This diff is too big to show here.

po/nl.po+515−259

This diff is too big to show here.

po/nn.po+269−197

This diff is too big to show here.

po/oc.po+269−197

This diff is too big to show here.

po/or.po+269−197

This diff is too big to show here.

po/pa.po+495−253

This diff is too big to show here.

po/pl.po+502−261

This diff is too big to show here.

po/pt.po+521−269

This diff is too big to show here.

po/pt_BR.po+495−253

This diff is too big to show here.

po/ro.po+497−255

This diff is too big to show here.

po/ru.po+495−255

This diff is too big to show here.

po/shn.po+269−197

This diff is too big to show here.

po/si.po+272−200

This diff is too big to show here.

po/sk.po+608−328

This diff is too big to show here.

po/sl.po+496−258

This diff is too big to show here.

po/sq.po+414−229

This diff is too big to show here.

po/sr.po+553−294

This diff is too big to show here.

po/sv.po+515−263

This diff is too big to show here.

po/sw.po+428−233

This diff is too big to show here.

po/ta.po+269−197

This diff is too big to show here.

po/te.po+269−197

This diff is too big to show here.

po/th.po+269−197

This diff is too big to show here.

po/tr.po+495−253

This diff is too big to show here.

po/ug.po+476−248

This diff is too big to show here.

po/uk.po+524−266

This diff is too big to show here.

po/unity8.pot+267−195

This diff is too big to show here.

po/ur.po+269−197

This diff is too big to show here.

po/uz.po+269−197

This diff is too big to show here.

po/vi.po+269−197

This diff is too big to show here.

po/wo.po+495−253

This diff is too big to show here.

po/xh.po+269−197

This diff is too big to show here.

po/zh_CN.po+500−255

This diff is too big to show here.

po/zh_HK.po+269−197

This diff is too big to show here.

po/zh_TW.po+503−252

This diff is too big to show here.

qml/Components/Dialogs.qml+6−47

This diff is too big to show here.

qml/Components/EdgeBarrier.qml+1−1

This diff is too big to show here.

qml/Components/Header.qml+1

This diff is too big to show here.

qml/Components/InputMethod.qml+5−10

This diff is too big to show here.

qml/Components/Lockscreen.qml+82−96

This diff is too big to show here.

qml/Components/ModeSwitchWarningDialog.qml+1−1

This diff is too big to show here.

qml/Components/PassphraseLockscreen.qml+5−4

This diff is too big to show here.

qml/Components/PhysicalKeysMapper.qml+24

This diff is too big to show here.

qml/Components/PinLockscreen.qml+22−1

This diff is too big to show here.

qml/Components/ShellDialog.qml+10

This diff is too big to show here.

qml/Components/Showable.qml+10

This diff is too big to show here.

qml/Components/Unity8Settings.qmldeleted−50

This diff is too big to show here.

qml/Dash/CardCarousel.qml−1

This diff is too big to show here.

qml/Dash/CardGrid.qml−1

This diff is too big to show here.

qml/Dash/CardHorizontalList.qml−1

This diff is too big to show here.

qml/Dash/CardTool.qml+2−26

This diff is too big to show here.

qml/Dash/CardVerticalJournal.qml−1

This diff is too big to show here.

qml/Dash/Dash.qml+11−11

This diff is too big to show here.

qml/Dash/DashContent.qml+2−2

This diff is too big to show here.

qml/Dash/DashNavigation.qml+159−78

This diff is too big to show here.

qml/Dash/DashNavigationButton.qmldeleted−233

This diff is too big to show here.

qml/Dash/DashNavigationHeader.qmlnew file+73

This diff is too big to show here.

qml/Dash/DashNavigationList.qml+33−85

This diff is too big to show here.

qml/Dash/DashPageHeader.qml+144−131

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

qml/Dash/FiltersPopover.qmlnew file+105

This diff is too big to show here.

qml/Dash/GenericScopeView.qml+93−89

This diff is too big to show here.

qml/Dash/PageHeaderExtraPanel.qmlnew file+176

This diff is too big to show here.

qml/Dash/PreviewListView.qmldeleted−140

This diff is too big to show here.

qml/Dash/PreviewView.qmlnew file+76

This diff is too big to show here.

qml/Dash/Previews/Preview.qml−4

This diff is too big to show here.

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

This diff is too big to show here.

qml/Dash/Previews/PreviewExpandable.qml−1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

qml/Dash/Previews/PreviewRatingDisplay.qml−1

This diff is too big to show here.

qml/Dash/Previews/PreviewRatingEdit.qml−1

This diff is too big to show here.

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

This diff is too big to show here.

qml/Dash/Previews/PreviewWidget.qml−3

This diff is too big to show here.

qml/Dash/Previews/PreviewWidgetFactory.qml−4

This diff is too big to show here.

qml/Dash/ScopesList.qml+1−1

This diff is too big to show here.

qml/Dash/ScopesListCategoryItem.qml+8−4

This diff is too big to show here.

qml/DeviceConfiguration.qml+54−16

This diff is too big to show here.

qml/Greeter/CoverPage.qml+13−2

This diff is too big to show here.

qml/Greeter/Greeter.qml+17−7

This diff is too big to show here.

qml/Greeter/Infographics.qml+2−1

This diff is too big to show here.

qml/Greeter/NarrowView.qml+14−1

This diff is too big to show here.

qml/Launcher/Launcher.qml+144−12

This diff is too big to show here.

qml/Launcher/LauncherDelegate.qml+55−20

This diff is too big to show here.

qml/Launcher/LauncherPanel.qml+149−74

This diff is too big to show here.

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

This diff is too big to show here.

qml/Notifications/Notification.qml+15−17

This diff is too big to show here.

qml/Notifications/Notifications.qml+2

This diff is too big to show here.

qml/Notifications/OptionToggle.qml+1−1

This diff is too big to show here.

qml/OrientedShell.qml+71−21

This diff is too big to show here.

qml/Panel/Handle.qml+2−2

This diff is too big to show here.

qml/Panel/IndicatorItem.qml+3−10

This diff is too big to show here.

qml/Panel/IndicatorItemRow.qml+5−2

This diff is too big to show here.

qml/Panel/Indicators/MenuItemFactory.qml+23−6

This diff is too big to show here.

qml/Panel/Indicators/ModemInfoItem.qmldeleted−111

This diff is too big to show here.

qml/Panel/Indicators/RoamingIndication.qmldeleted−40

This diff is too big to show here.

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

This diff is too big to show here.

qml/Panel/IndicatorsMenu.qml+2−4

This diff is too big to show here.

qml/Panel/MenuContent.qml+1−1

This diff is too big to show here.

qml/Panel/Panel.qml+5−1

This diff is too big to show here.

qml/ScopeTool.qml−8

This diff is too big to show here.

qml/Shell.qml+137−55

This diff is too big to show here.

qml/Stages/AbstractStage.qml+8−2

This diff is too big to show here.

qml/Stages/ApplicationWindow.qml+7−3

This diff is too big to show here.

qml/Stages/DesktopSpread.qml+64−17

This diff is too big to show here.

qml/Stages/DesktopSpreadDelegate.qml+15−1

This diff is too big to show here.

qml/Stages/DesktopStage.qml+103−37

This diff is too big to show here.

qml/Stages/PhoneStage.qml+92−9

This diff is too big to show here.

qml/Stages/SideStage.qmlnew file+118

This diff is too big to show here.

qml/Stages/Splash.qml+4−2

This diff is too big to show here.

qml/Stages/SpreadDelegate.qml+31−1

This diff is too big to show here.

qml/Stages/StagedFullscreenPolicy.qmlnew file+58

This diff is too big to show here.

qml/Stages/SurfaceContainer.qml+14

This diff is too big to show here.

qml/Stages/TabletSideStageTouchGesture.qmlnew file+154

This diff is too big to show here.

qml/Stages/TabletStage.qml+487−174

This diff is too big to show here.

qml/Stages/TransformedTabletSpreadDelegate.qml+84−56

This diff is too big to show here.

qml/Stages/WindowDecoration.qml+1−1

This diff is too big to show here.

qml/Stages/WindowResizeArea.qml+10−7

This diff is too big to show here.

qml/Stages/WindowedFullscreenPolicy.qmlnew file+41

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

qml/Tutorial/Arrow.qmldeleted−56

This diff is too big to show here.

qml/Tutorial/InactivityTimer.qmlnew file+62

This diff is too big to show here.

qml/Tutorial/Slider.qmldeleted−123

This diff is too big to show here.

qml/Tutorial/Tutorial.qml+39−14

This diff is too big to show here.

qml/Tutorial/TutorialBottom.qml+86−66

This diff is too big to show here.

qml/Tutorial/TutorialBottomFinish.qmldeleted−41

This diff is too big to show here.

qml/Tutorial/TutorialContent.qml+227−55

This diff is too big to show here.

qml/Tutorial/TutorialLeft.qml+21−68

This diff is too big to show here.

qml/Tutorial/TutorialLeftLong.qmlnew file+54

This diff is too big to show here.

qml/Tutorial/TutorialPage.qml+62−186

This diff is too big to show here.

qml/Tutorial/TutorialRight.qml+31−192

This diff is too big to show here.

qml/Tutorial/TutorialTop.qmlnew file+61

This diff is too big to show here.

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

This diff is too big to show here.

qml/Tutorial/graphics/background1.pngnew file

Binary file not shown.

qml/Tutorial/graphics/background2.pngnew file

Binary file not shown.

qml/Tutorial/graphics/camera.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/chevron.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/dialer.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/facebook.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/gallery.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/tick.pngdeleted

Binary file not shown.

qml/Wizard/CheckableSetting.qml+11−3

This diff is too big to show here.

qml/Wizard/Page.qml+261−44

This diff is too big to show here.

qml/Wizard/Pages.qml+75−31

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

qml/Wizard/PasswordMeter.qmlnew file+106

This diff is too big to show here.

qml/Wizard/StackButton.qml+7−12

This diff is too big to show here.

qml/Wizard/Wizard.qml−9

This diff is too big to show here.

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

This diff is too big to show here.

src/CMakeLists.txt+1−1

This diff is too big to show here.

src/CachingNetworkManagerFactory.cpp+2−2

This diff is too big to show here.

src/CachingNetworkManagerFactory.h+3−2

This diff is too big to show here.

src/Dash/CMakeLists.txt+1−1

This diff is too big to show here.

src/MouseTouchAdaptor.cpp+53−9

This diff is too big to show here.

src/MouseTouchAdaptor.h+5−3

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/autopilot/unity8/tutorial.pydeleted−73

This diff is too big to show here.

tests/libs/UbuntuGestures/tst_TouchRegistry.cpp+59

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.qmltypes+5

This diff is too big to show here.

tests/mocks/GSettings.1.0/fake_gsettings.cpp+178−26

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationInfo.cpp+21−3

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/Session.cpp+26−1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/plugin.cpp+2−1

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/CMakeLists.txt+14−3

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/fake_previewstack.cppdeleted−68

This diff is too big to show here.

tests/mocks/Unity/fake_previewstack.hdeleted−52

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/fake_scope.cpp+59−29

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/fake_valueslidervalues.hnew file+36

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Utils/plugin.cpp+16−2

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.cpp+13

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.h+4

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/AccountsService/PropertiesServer.cpp+55−4

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/AccountsService/interfaces.xml+29

This diff is too big to show here.

tests/plugins/AccountsService/server.cpp+12

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/IntegratedLightDM/CMakeLists.txt+25

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Unity/Launcher/launchermodeltest.cpp+1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/CMakeLists.txt+6−1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewAudioPlayback.qml+12−3

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Dash/tst_Dash.qml+89

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+1

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Panel/Indicators/tst_MenuItemFactory.qml+2−4

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorsMenu.qml−1

This diff is too big to show here.

tests/qmltests/Panel/tst_Panel.qml+2

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Stages/tst_SpreadDelegate.qml+7

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Stages/tst_WindowResizeArea.qml+7

This diff is too big to show here.

tests/qmltests/Tutorial/tst_Tutorial.qml+626−192

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/tst_DeviceConfiguration.qmlnew file+49

This diff is too big to show here.

tests/qmltests/tst_OrientedShell.qml+157−36

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+386−69

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qml−22

This diff is too big to show here.

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

This diff is too big to show here.