on xenial help sign in
Merge
commit65b4e9e786832cc69ab65f44adc6b9875aacab24 authorAlbert Astals Cid <albert.astals@canonical.com> dateMon 9 May 2016, 10:43 (10 years ago) parentde9d0971307e23
568 files changed+54948−28605
CMakeLists.txt+2−1 CODING+2 data/com.canonical.Unity8.gschema.xml+5 data/devices.conf+30 data/unity8-dash.desktop.in−1 data/unity8.conf+6−10 debian/bileto_pre_release_hook+5 debian/changelog+221 debian/control+10−7 debian/rules−8 debian/unity8-private.install+2−1 debian/unity8.install+1 doc/devices.conf+15 libs/UbuntuGestures/Timer.h+5 libs/UbuntuGestures/TouchRegistry.cpp+15−10 plugins/AccountsService/AccountsService.cpp+72−4 plugins/AccountsService/AccountsService.h+21−3 plugins/AccountsService/AccountsService.qmltypes+5 plugins/AccountsService/AccountsServiceDBusAdaptor.cpp+12−2 plugins/AccountsService/CMakeLists.txt+5 plugins/AccountsService/com.canonical.unity.AccountsService.xml+5 plugins/CMakeLists.txt+2−1 plugins/Cursor/Cursor.qmltypes+78 plugins/Dash/CardCreator.js+48−1 plugins/Dash/CardSocialActions.qml+94 plugins/Dash/ScopeStyle.qml+1−1 plugins/Dash/listviewwithpageheader.cpp+29−12 plugins/Dash/listviewwithpageheader.h+2−1 plugins/Dash/qmldir+1 plugins/GlobalShortcut/GlobalShortcut.qmltypes+31 plugins/ScreenGrabber/CMakeLists.txt−13 plugins/ScreenGrabber/qmldir−3 plugins/ScreenGrabber/screengrabber.cpp−117 plugins/ScreenGrabber/screengrabber.h−49 plugins/ScreenshotDirectory/CMakeLists.txt+9 plugins/ScreenGrabber/ScreenGrabber.qmltypes → plugins/ScreenshotDirectory/ScreenGrabber.qmltypes plugins/ScreenshotDirectory/ScreenshotDirectory.cpp+64 plugins/ScreenshotDirectory/ScreenshotDirectory.h+39 plugins/ScreenGrabber/plugin.cpp → plugins/ScreenshotDirectory/plugin.cpp+5−7 plugins/ScreenGrabber/plugin.h → plugins/ScreenshotDirectory/plugin.h+5−7 plugins/ScreenshotDirectory/qmldir+2 plugins/SessionBroadcast/CMakeLists.txt+5 plugins/SessionBroadcast/SessionBroadcast.cpp+5−1 plugins/SessionBroadcast/SessionBroadcast.h+3 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+3−5 plugins/Unity/InputInfo/InputInfo.qmltypes+71 plugins/Unity/Launcher/CMakeLists.txt+2 plugins/Unity/Launcher/asadapter.cpp+6−2 plugins/Unity/Platform/Platform.qmltypes+20 plugins/Unity/Session/CMakeLists.txt+2 plugins/Unity/Session/dbusunitysessionservice.cpp+8−7 plugins/Utils/CMakeLists.txt+2−2 plugins/Utils/Utils.qmltypes+2−2 plugins/Utils/deviceconfigparser.cpp+8 plugins/Utils/deviceconfigparser.h+1 plugins/Utils/globalfunctions.cpp+56 plugins/Utils/globalfunctions.h+42 plugins/Utils/plugin.cpp+11−10 plugins/Utils/plugin.h−1 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/windowscreenshotprovider.cpp−59 plugins/Utils/windowstatestorage.cpp+36−4 plugins/Utils/windowstatestorage.h+3 plugins/WindowManager/CMakeLists.txt+13 plugins/WindowManager/TopLevelSurfaceList.cpp+486 plugins/WindowManager/TopLevelSurfaceList.h+223 plugins/WindowManager/WindowManagerPlugin.cpp+28 plugins/WindowManager/WindowManagerPlugin.h+32 plugins/WindowManager/qmldir+2 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+293−187 po/am.po+499−255 po/ar.po+466−232 po/ast.po+494−258 po/az.po+272−185 po/be.po+486−241 po/bg.po+261−183 po/bn.po+350−203 po/br.po+496−257 po/bs.po+487−239 po/ca.po+488−245 po/ca@valencia.po+395−222 po/ce.po+261−183 po/ckb.po+261−183 po/cs.po+487−239 po/cy.po+487−236 po/da.po+488−237 po/de.po+513−256 po/el.po+517−256 po/en_AU.po+506−256 po/en_GB.po+507−257 po/eo.po+306−194 po/es.po+514−258 po/eu.po+487−239 po/fa.po+510−250 po/fi.po+510−259 po/fo.po+261−183 po/fr.po+529−265 po/ga.po+472−237 po/gd.po+532−261 po/gl.po+514−260 po/gv.po+272−188 po/he.po+412−217 po/hi.po+261−183 po/hr.po+576−251 po/hu.po+515−261 po/hy.po+268−187 po/ia.po+514−251 po/id.po+272−188 po/is.po+272−188 po/it.po+517−253 po/ja.po+284−188 po/km.po+356−217 po/kn.po+261−183 po/ko.po+489−249 po/ku.po+272−185 po/ky.po+261−183 po/lo.po+261−183 po/lt.po+261−183 po/lv.po+485−237 po/ml.po+261−183 po/mr.po+261−183 po/ms.po+487−242 po/my.po+269−184 po/nb.po+509−258 po/ne.po+261−183 po/nl.po+505−248 po/nn.po+261−183 po/oc.po+590−263 po/or.po+261−183 po/pa.po+487−239 po/pl.po+520−261 po/pt.po+517−264 po/pt_BR.po+498−250 po/ro.po+489−241 po/ru.po+493−244 po/shn.po+261−183 po/si.po+264−186 po/sk.po+552−250 po/sl.po+507−254 po/sq.po+412−220 po/sr.po+506−254 po/sv.po+510−257 po/sw.po+420−219 po/ta.po+261−183 po/te.po+261−183 po/th.po+261−183 po/tr.po+488−240 po/ug.po+469−235 po/uk.po+518−259 po/unity8.pot+260−182 po/ur.po+261−183 po/uz.po+261−183 po/vi.po+261−183 po/wo.po+487−239 po/xh.po+261−183 po/zh_CN.po+495−249 po/zh_HK.po+269−185 po/zh_TW.po+489−244 qml/Components/Dialogs.qml+8−52 qml/Components/InputMethod.qml+4−1 qml/Components/ScreenGrabber.qml → qml/Components/ItemGrabber.qml+27−17 qml/Tutorial/TutorialLeftFinish.qml → qml/Components/ItemSnapshot.qml+24−20 qml/Components/KeymapSwitcher.qml+65 qml/Components/Lockscreen.qml+2−2 qml/Components/NotificationAudio.qml+11−10 qml/Components/PanelState/PanelState.qml+2−1 qml/Components/PinLockscreen.qml+2−1 qml/Components/PinPadButton.qml+17−2 qml/Components/ShellDialog.qml+3−1 qml/Components/Showable.qml+10 qml/Components/UbuntuShapeForItem.qml+1 qml/Components/Unity8Settings.qml−50 qml/Components/VirtualTouchPad.qml+1−1 qml/Components/WindowControlButtons.qml+8−6 qml/Dash/CardGrid.qml+1 qml/Dash/CardHorizontalList.qml+1 qml/Dash/CardTool.qml+23−7 qml/Dash/CardVerticalJournal.qml+1 qml/Dash/Dash.qml+8−8 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+140−131 qml/Dash/DashRenderer.qml+6 qml/Dash/Filters/FilterExpandableWidget.qml+96 qml/Dash/Filters/FilterOptionSelector.qml+91 qml/Dash/Filters/FilterRangeInput.qml+136 qml/Dash/Filters/FilterValueSlider.qml+87 plugins/Utils/windowscreenshotprovider.h → qml/Dash/Filters/FilterWidget.qml+12−11 qml/Dash/Filters/FilterWidgetFactory.qml+81 qml/Dash/FiltersPopover.qml+105 qml/Dash/GenericScopeView.qml+88−49 qml/Dash/PageHeaderExtraPanel.qml+176 qml/Dash/Previews/Preview.qml+4−1 qml/Dash/Previews/PreviewActionCombo.qml+1−1 qml/Dash/Previews/PreviewActions.qml+8−7 qml/Dash/Previews/PreviewIconActions.qml+15 qml/Dash/Previews/PreviewZoomableImage.qml+13−8 qml/DisabledScreenNotice.qml+4−4 qml/Greeter/Greeter.qml+22−11 qml/Launcher/Launcher.qml+2−4 qml/Launcher/LauncherDelegate.qml+9−11 qml/Launcher/LauncherPanel.qml+52−35 qml/Launcher/graphics/quicklist_tooltip@30.png qml/Notifications/Notification.qml+128−124 qml/Notifications/NotificationButton.qml+72 qml/Notifications/NotificationMenuItemFactory.qml+5−11 qml/Notifications/Notifications.qml+4−3 qml/Notifications/OptionToggle.qml+12−10 qml/Notifications/ShapedIcon.qml+1 qml/Notifications/SwipeToAct.qml+16−20 qml/Notifications/grip-large.svg−150 qml/OrientedShell.qml+52−27 qml/Panel/IndicatorItem.qml−7 qml/Panel/IndicatorItemRow.qml+5−2 qml/Panel/Indicators/MenuItemFactory.qml+24−5 qml/Panel/Indicators/client/IndicatorsClient.qml+1−1 qml/Panel/IndicatorsMenu.qml+22−15 qml/Panel/Panel.qml+4−3 qml/Rotation/HalfLoopRotationAnimation.qml+2−1 qml/Rotation/ImmediateRotationAction.qml+11−22 qml/Rotation/NinetyRotationAnimation.qml+14−16 qml/Rotation/RotationStates.qml+25−5 qml/Rotation/UpdateShellTransformations.qml+42 qml/Shell.qml+122−118 qml/Stages/AbstractStage.qml+15−4 qml/Stages/Animations/BaseSessionAnimation.qml−96 qml/Stages/Animations/SwipeFromBottomAnimation.qml−53 qml/Stages/ApplicationWindow.qml+116−76 qml/Stages/DecoratedWindow.qml+6−6 qml/Stages/DesktopSpread.qml+22−18 qml/Stages/DesktopSpreadDelegate.qml+4−3 qml/Stages/DesktopStage.qml+247−110 qml/Stages/PhoneStage.qml+166−94 qml/Stages/PromptSurfaceAnimations.qml+81 qml/Stages/SessionContainer.qml−180 qml/Stages/ShimStage.qml−1 qml/Stages/SideStage.qml+118 qml/Stages/SpreadDelegate.qml+14−4 qml/Stages/StagedFullscreenPolicy.qml+56 qml/Stages/SurfaceContainer.qml+97−39 qml/Stages/TabletSideStageTouchGesture.qml+154 qml/Stages/TabletStage.qml+585−288 qml/Stages/TopLevelSurfaceRepeater.qml+52 qml/Stages/TransformedSpreadDelegate.qml+4−4 qml/Stages/TransformedTabletSpreadDelegate.qml+94−60 qml/Stages/WindowDecoration.qml+4−3 qml/Stages/WindowResizeArea.qml+2−2 qml/Stages/WindowedFullscreenPolicy.qml+39 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 tests/plugins/ScreenGrabber/grabber.qml → qml/Wizard/WizardTextField.qml+6−12 src/Dash/main.cpp+5 src/MouseTouchAdaptor.cpp+53−9 src/MouseTouchAdaptor.h+5−3 src/SecondaryWindow.cpp+9 src/ShellApplication.cpp+6 src/ShellView.cpp+6−2 src/main.cpp+5 src/qmldebuggerutils.h+33 tests/autopilot/unity8/settings_wizard/__init__.py−555 tests/autopilot/unity8/settings_wizard/fixture_setup.py−58 tests/autopilot/unity8/settings_wizard/ofono_helper.py−116 tests/autopilot/unity8/settings_wizard/tests/__init__.py tests/autopilot/unity8/settings_wizard/tests/test_settings_wizard.py−99 tests/autopilot/unity8/shell/emulators.py−2 tests/autopilot/unity8/shell/tests/test_tutorial.py−57 tests/autopilot/unity8/tutorial.py−73 tests/libs/UbuntuGestures/tst_TouchRegistry.cpp+60−1 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+126−38 tests/mocks/GSettings.1.0/fake_gsettings.h+51−26 tests/mocks/MeeGo/QOfono/MockOfonoSimManager.qml+1 tests/mocks/QMenuModel/QDBusActionGroup.qml+5−5 tests/mocks/QtMultimedia/audio.cpp+13 tests/mocks/QtMultimedia/audio.h+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 qml/Components/WindowScreenshot.qml → tests/mocks/Ubuntu/SystemSettings/TimeDate/MockTimeDate.qml+3−13 tests/mocks/Ubuntu/SystemSettings/TimeDate/qmldir+2 tests/mocks/Unity/Application/ApplicationInfo.cpp+191−100 tests/mocks/Unity/Application/ApplicationInfo.h+44−25 tests/mocks/Unity/Application/ApplicationManager.cpp+119−97 tests/mocks/Unity/Application/ApplicationManager.h+12−22 tests/mocks/Unity/Application/ApplicationScreenshotProvider.cpp−79 tests/mocks/Unity/Application/ApplicationScreenshotProvider.h−34 tests/mocks/Unity/Application/ApplicationTestInterface.cpp−117 tests/mocks/Unity/Application/ApplicationTestInterface.h−45 tests/mocks/Unity/Application/CMakeLists.txt+3−5 tests/mocks/Unity/Application/MirSurface.cpp+204−11 tests/mocks/Unity/Application/MirSurface.h+62−11 tests/mocks/Unity/Application/MirSurfaceItem.cpp+41−12 tests/mocks/Unity/Application/MirSurfaceItem.h+2 tests/mocks/Unity/Application/MirSurfaceListModel.cpp+121 tests/mocks/Unity/Application/MirSurfaceListModel.h+56 tests/mocks/Unity/Application/ObjectListModel.h+2 tests/mocks/Unity/Application/Session.cpp−184 tests/mocks/Unity/Application/Session.h−97 tests/mocks/Unity/Application/SessionManager.cpp−55 tests/mocks/Unity/Application/SessionModel.h−35 tests/mocks/Unity/Application/SurfaceManager.cpp+16−9 tests/mocks/Unity/Application/SurfaceManager.h+5−2 tests/mocks/Unity/Application/UbuntuKeyboardInfo.cpp−2 tests/mocks/Unity/Application/UbuntuKeyboardInfo.h−9 tests/mocks/Unity/Application/VirtualKeyboard.cpp+2−3 tests/mocks/Unity/Application/VirtualKeyboard.h+1−1 tests/mocks/Unity/Application/plugin.cpp+33−38 tests/mocks/Unity/Application/resources/MirSurfaceItem.qml+59 tests/mocks/Unity/CMakeLists.txt+16−1 tests/mocks/Unity/Indicators/ModelActionRootState.qml+26−4 tests/mocks/Unity/InputInfo/qinputdeviceinfo_mock.cpp+1−1 tests/mocks/Unity/Notifications/MockNotificationModel.cpp+6−11 tests/mocks/Unity/fake_categories.cpp+4−1 tests/mocks/Unity/fake_expandablefilterwidget.cpp+53 tests/mocks/Unity/fake_expandablefilterwidget.h+48 tests/mocks/Unity/fake_filters.cpp+136 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_rangeinputfilter.cpp+167 tests/mocks/Unity/fake_rangeinputfilter.h+79 tests/mocks/Unity/fake_resultsmodel.cpp+2 tests/mocks/Unity/fake_scope.cpp+54−27 tests/mocks/Unity/fake_scope.h+20−7 tests/mocks/Unity/fake_unity_plugin.cpp+7 tests/mocks/Unity/fake_valuesliderfilter.cpp+84 tests/mocks/Unity/fake_valuesliderfilter.h+55 tests/mocks/Unity/fake_valueslidervalues.cpp+51 tests/mocks/Unity/Application/SessionManager.h → tests/mocks/Unity/fake_valueslidervalues.h+11−19 tests/mocks/Utils/CMakeLists.txt+7−3 tests/mocks/Utils/Utils.qmltypes+2−2 tests/mocks/Utils/plugin.cpp+15−11 tests/mocks/Utils/plugin.h−1 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+40−1 tests/plugins/AccountsService/PropertiesServer.h+7−1 tests/plugins/AccountsService/client.cpp+105−4 tests/plugins/AccountsService/interfaces.xml+13 tests/plugins/AccountsService/types.h+25 tests/plugins/CMakeLists.txt−1 tests/plugins/Dash/cardcreator/1.res+1−1 tests/plugins/Dash/cardcreator/1.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/10.res+1−1 tests/plugins/Dash/cardcreator/10.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/11.res+1−1 tests/plugins/Dash/cardcreator/11.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/12.res+120 tests/plugins/Dash/cardcreator/12.res.cardcreator+119 tests/plugins/Dash/cardcreator/12.tst+4 tests/plugins/Dash/cardcreator/2.res+1−1 tests/plugins/Dash/cardcreator/2.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/3.res+1−1 tests/plugins/Dash/cardcreator/3.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/4.res+1−1 tests/plugins/Dash/cardcreator/4.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/5.res+1−1 tests/plugins/Dash/cardcreator/5.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/6.res+1−1 tests/plugins/Dash/cardcreator/6.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/7.res+1−1 tests/plugins/Dash/cardcreator/7.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/8.res+1−1 tests/plugins/Dash/cardcreator/8.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/9.res+1−1 tests/plugins/Dash/cardcreator/9.res.cardcreator+1−1 tests/plugins/Dash/listviewwithpageheadersectiontest.cpp+15 tests/plugins/Dash/listviewwithpageheadertest.cpp+15 tests/plugins/Dash/listviewwithpageheadertestsection.qml+1−1 tests/plugins/Dash/tst_ScopeStyle.qml+1−1 tests/plugins/IntegratedLightDM/CMakeLists.txt+1 tests/plugins/IntegratedLightDM/dbus.cpp+3−5 tests/plugins/IntegratedLightDM/integrated.cpp+5−8 tests/plugins/IntegratedLightDM/pam.cpp+3−1 tests/plugins/ScreenGrabber/CMakeLists.txt−14 tests/plugins/ScreenGrabber/ScreenGrabberTest.cpp−77 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/CMakeLists.txt+2 tests/plugins/Unity/Launcher/launchermodeltest.cpp+8−6 tests/plugins/Unity/Session/CMakeLists.txt+2 tests/qmltests/CMakeLists.txt+5−1 tests/qmltests/Components/tst_Dialogs.qml+4−2 tests/qmltests/Components/tst_PhysicalKeysMapper.qml+3−3 tests/qmltests/Dash/CardHelpers.js+9−7 tests/qmltests/Dash/Filters/tst_FilterExpandableWidget.qml+99 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+59 tests/qmltests/Dash/Previews/tst_Preview.qml+1 tests/qmltests/Dash/Previews/tst_PreviewActions.qml+100−17 tests/qmltests/Dash/Previews/tst_PreviewIconActions.qml+14−4 tests/qmltests/Dash/Previews/tst_PreviewImageGallery.qml+3−2 tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+17 tests/qmltests/Dash/tst_Card.qml+48−13 tests/qmltests/Dash/tst_DashContent.qml+165−152 tests/qmltests/Dash/tst_DashPageHeader.qml+24−15 tests/qmltests/Dash/tst_DashShell.qml+6−2 tests/qmltests/Dash/tst_GenericScopeView.qml+3−3 tests/qmltests/Greeter/tst_Greeter.qml+10−3 tests/qmltests/Greeter/tst_NarrowView.qml+3−1 tests/qmltests/Launcher/tst_Launcher.qml+5−2 tests/qmltests/Notifications/tst_Notifications.qml+53−52 tests/qmltests/Notifications/tst_OptionToggle.qml+10−1 tests/qmltests/Notifications/tst_SwipeToAct.qml+11−1 tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+15−6 tests/qmltests/Panel/IndicatorTest.qml+2−1 tests/qmltests/Panel/tst_ActiveCallHint.qml+3−2 tests/qmltests/Panel/tst_IndicatorItem.qml−3 tests/qmltests/Panel/tst_IndicatorItemRow.qml+1−2 tests/qmltests/Panel/tst_IndicatorsMenu.qml−1 tests/qmltests/Panel/tst_Panel.qml+2−2 tests/qmltests/Stages/ApplicationCheckBox.qml+103−58 tests/qmltests/Stages/RecursingChildSessionControl.qml+10−61 tests/qmltests/Stages/SurfaceManagerControls.qml+6−7 tests/qmltests/Stages/tst_ApplicationWindow.qml+73−59 tests/qmltests/Stages/tst_DesktopStage.qml+256−168 tests/qmltests/Stages/tst_PhoneStage.qml+272−82 tests/qmltests/Stages/tst_SessionContainer.qml−331 tests/qmltests/Stages/tst_SpreadDelegate.qml+3−2 tests/qmltests/Stages/tst_SurfaceContainer.qml+242−46 tests/qmltests/Stages/tst_TabletStage.qml+390−84 tests/qmltests/Stages/tst_WindowResizeArea.qml+7 tests/qmltests/Tutorial/tst_Tutorial.qml+628−198 tests/qmltests/Wizard/tst_Wizard.qml+127−214 tests/qmltests/tst_OrientedShell.qml+241−95 tests/qmltests/tst_Shell.qml+361−146 tests/qmltests/tst_ShellWithPin.qml+9−35 tests/utils/modules/Unity/Test/UnityTestCase.qml+165−14
CMakeLists.txt+2−1
@@ -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=15)
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)
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.
data/com.canonical.Unity8.gschema.xml+5
@@ -27,6 +27,11 @@
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>
3035 <key type="b" name="autohide-launcher">
3136 <default>true</default>
3237 <summary>Autohide the launcher</summary>
data/devices.confnew file+30
@@ -0,0 +1,30 @@
1+# This file can hold multiple device configs. Devices are separated by sections.
2+#
3+# SupportedOrientations holds a list of all enabled orientations. A standard
4+# phone will usually have Portrait,Landcape,InvertedLandscape in order to
5+# disable upside down usage.
6+#
7+# PrimaryOrientation gives the orientation the device will start up with
8+# when there is no orientations sensor input available (yet) or lock to
9+# when an application specifies to be locked to PrimaryOrientation.
10+#
11+# The other Orientation settings can be used to re-map the orientations.
12+# A device might be used with different orientations than how the screen
13+# is physically mounted on the hardware.
14+#
15+# Category can be phone, tablet, or desktop. This option determines
16+# whether the side stage is shown (tablet) or not (phone). Using
17+# desktop will load the shell in windowed mode. Note that the user
18+# can override/change this by connecting input hardware or change
19+# user settings.
20+#
21+# Any options not listed will default to the values of the example below.
22+
23+# [devicename]
24+# SupportedOrientations=Portrait,InvertedPortrait,Landscape,InvertedLandscape
25+# PrimaryOrientation=PrimaryOrienation
26+# PortraitOrientation=Portrait
27+# InvertedPortraitOrientation=InvertedPortrait
28+# LandscapeOrientation=Landscape
29+# InvertedLandscapeOrientation=InvertedLandscape
30+# Category=phone
data/unity8-dash.desktop.in−1
@@ -7,4 +7,3 @@ Terminal=false
77Icon=@CMAKE_INSTALL_PREFIX@/@SHELL_APP_DIR@/Dash/unity8-dash.png
88NoDisplay=true
99X-Ubuntu-Touch=true
10−X-Ubuntu-Supported-Orientations=primary
data/unity8.conf+6−10
@@ -44,22 +44,18 @@ pre-start script
4444 fi
4545
4646 initctl set-env --global MIR_SERVER_PROMPT_FILE=1
47+
48+ # Disable Qt's stuttering 'touch compression' to fix scrolling smoothness
49+ # issues (LP: #1486341, LP: #1556763). As a bonus, this eliminates most of
50+ # the lag seen in the indicator panel pull-down (LP: #1488327) and also
51+ # reduces lag seen in apps:
52+ initctl set-env --global QML_NO_TOUCH_COMPRESSION=1
4753end script
4854
4955exec ${BINARY:-unity8} $ARGS
5056
5157post-start script
5258 initctl emit --no-wait indicator-services-start
53−
54− # Disable Qt's stuttering 'touch compression' to fix scrolling smoothness
55− # issues (LP: #1486341). As a bonus, this eliminates most of the
56− # lag seen in the indicator panel pull-down (LP: #1488327) and also
57− # reduces lag seen in apps:
58− initctl set-env --global QML_NO_TOUCH_COMPRESSION=1
59−
60− # For twice the fun and half the latency, try this (Warning: not all
61− # devices are fast enough to keep up smoothly yet)...
62− # initctl set-env MIR_SERVER_NBUFFERS=2
6359end script
6460
6561post-stop script
debian/bileto_pre_release_hooknew file+5
@@ -0,0 +1,5 @@
1+#!/bin/sh
2+
3+set -eux
4+
5+sh ./po/update-unity-pot
debian/changelog+221
@@ -1,3 +1,224 @@
1+unity8 (8.12+16.04.20160504.2-0ubuntu1) xenial; urgency=medium
2+
3+ [ Albert Astals Cid ]
4+ * Expandable Filter Widget
5+ * Pass the category correctly
6+
7+ [ Albert Astals Cid, CI Train Bot ]
8+ * Make the previewActions react to the actions model changing (LP:
9+ #1485887)
10+ * Reload Preview Zoomable Image source if it gets updated
11+ * Update the icon also to the original one if that's what the scope
12+ wants
13+
14+ [ Andrea Cimitan ]
15+ * Add social actions to cards
16+
17+ [ CI Train Bot ]
18+ * Resync trunk.
19+
20+ -- Pawel Stolowski <ci-train-bot@canonical.com> Wed, 04 May 2016 18:09:33 +0000
21+
22+unity8 (8.12+16.04.20160429.2-0ubuntu1) xenial; urgency=medium
23+
24+ [ CI Train Bot ]
25+ * Resync trunk.
26+
27+ [ Daniel d'Andrada ]
28+ * Ensure shell transformations use bindings as OrientedShell can get
29+ resized
30+ * Make shell rotation animation work on multimonitor scenarios.
31+ * Refactor screenshotting code and make it work in multimonitor
32+ scenarios
33+
34+ [ Gerry Boland, Nick Dedekind ]
35+ * Indicators: set menu height binding while fully open/closed, fixes
36+ dynamic grid unit bug.
37+
38+ [ Michael Zanetti ]
39+ * Call the dash sizing hack when units.gu changes
40+ * Temporary means to override GUs on the internal screen
41+ * reduce some paint layers.
42+
43+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 29 Apr 2016 20:07:37 +0000
44+
45+unity8 (8.12+16.04.20160427.3-0ubuntu1) xenial; urgency=medium
46+
47+ [ Albert Astals Cid ]
48+ * Add env var to enable js debugging/profiling even if not built on
49+ debug mode
50+ * Better error message if the item does not exist
51+ * CardCreator: Remove ShaderEffectSource (LP: #1544875)
52+ * Compile with Qt 5.6 (LP: #1565632)
53+ * LVWPH: Account for contentHeight not really being "all" of the
54+ content height (LP: #1569976)
55+ * NotificationAudio: We don't need weird "ifdef" for multimedia 5.6 vs
56+ 5.0 roles anymore
57+ * See all/less -> Show all/less (LP: #1349471)
58+ * Stabilize test_superTabToCycleLauncher
59+ * Take into account that sectionItem height can change
60+ * Turn verify intro tryCompareFunction
61+ * forceLayout before calling positionViewAtIndex (LP: #1553475)
62+ * rootObject can be null for a small moment after setSource is called
63+ (LP: #1560501)
64+
65+ [ CI Train Bot ]
66+ * Resync trunk.
67+
68+ [ Daniel van Vugt ]
69+ * Reinstate the touch performance/smoothness fix (LP: #1486341, LP:
70+ #1556763). (LP: #1556763, #1486341)
71+
72+ [ Josh Arenson ]
73+ * Change the color of the activity pulse to blue (LP: #1568082)
74+ * Make scope filter settings button the same color as other foreground
75+ elements (LP: #1563357)
76+
77+ [ Lukáš Tinkl ]
78+ * Drop OOBE wizard autopilot tests
79+ * Fix labels in desktop spread
80+ * Fix upcoming event ETAs falling out of sync (LP: #1557571)
81+ * Hide the close button for dash (LP: #1550056, #1564347)
82+ * Notifications visual update, close button on mouse hover (LP:
83+ #1564343)
84+ * Shell visual update
85+ * Stabilize wizard tests
86+ * Unity8 windows now cascade instead of opening all in the top left
87+ corner (LP: #1513813)
88+
89+ [ Michael Terry ]
90+ * Fix some unreliable test code.
91+ * Ignore Home Key presses when the greeter is up. (LP: #1565818)
92+
93+ [ Michael Zanetti ]
94+ * Drop the rotation lock for the dash (LP: #1465331, #1574165)
95+ * improve the pin lockscreen
96+ * install devices.conf by default
97+
98+ [ Ted Gould ]
99+ * Switch to using uid/pwdent for getting username
100+
101+ -- Michael Terry <michael.terry@canonical.com> Wed, 27 Apr 2016 15:01:28 +0000
102+
103+unity8 (8.12+16.04.20160421.1-0ubuntu1) xenial; urgency=medium
104+
105+ [ Daniel d'Andrada ]
106+ * Refactor keymap switching code
107+ * Surface-based window management
108+ * Use Item.grabToImage() instead of qtmir's ApplicationScreenshot
109+ provider
110+
111+ [ Michael Zanetti ]
112+ * Fixes for programmatically closing Applications
113+
114+ [ Robert Bruce Park ]
115+ * Use new bileto_pre_release_hook
116+
117+ -- Gerry Boland <ci-train-bot@canonical.com> Thu, 21 Apr 2016 13:48:02 +0000
118+
119+unity8 (8.12+16.04.20160414.1-0ubuntu1) xenial; urgency=medium
120+
121+ [ Michael Terry ]
122+ * Make sure that usageMode is set on startup, fixing a problem with
123+ the tutorial not noticing that it is running on a desktop. (LP:
124+ #1564351)
125+
126+ [ Michael Zanetti ]
127+ * make the edge drag area width configurable (LP: #1559512)
128+
129+ -- Michael Zanetti <michael.zanetti@canonical.com> Thu, 14 Apr 2016 21:20:28 +0000
130+
131+unity8 (8.12+16.04.20160401-0ubuntu1) xenial; urgency=medium
132+
133+ * Add missing Testsuite header
134+ * Skip the failing test until we have a working solution for bug
135+ #1564571 (LP: #1564571)
136+
137+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 01 Apr 2016 08:32:16 +0000
138+
139+unity8 (8.12+16.04.20160330-0ubuntu1) xenial; urgency=medium
140+
141+ [ Albert Astals Cid ]
142+ * Use tutorialLeftLoader instead of tutorialLeft
143+
144+ [ CI Train Bot ]
145+ * Update translation template
146+
147+ [ Lukáš Tinkl ]
148+ * Fix the last chance popup colors/theme
149+
150+ [ Michael Terry ]
151+ * Adjust text for desktop right edge tutorial to be accurate. (LP:
152+ #1563103)
153+ * Fix OOBE wizard not setting your name. (LP: #1562872)
154+ * Fix showing "Retry" in password prompt when turning on screen in
155+ tablet mode.
156+
157+ -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 30 Mar 2016 07:46:51 +0000
158+
159+unity8 (8.12+16.04.20160323.2-0ubuntu1) xenial; urgency=medium
160+
161+ [ Michael Terry ]
162+ *
163+ * Fix setting OSK layout in OOBE wizard
164+ * Stop the left edge tutorial from being shown when the bottom edge
165+ tutorial wants to be shown after receiving a call.
166+
167+ [ Albert Astals Cid ]
168+ * Filter implementation with Option Selector filter as the only filter
169+ * Get the engine from the parent context
170+ * Implement the API changes due to filters
171+ * Match design visuals for the new dash navigation/page header popup
172+ * New Dash Navigation UX
173+ * Range Input filter
174+ * Value slider filter
175+ * Workaround SDK ListItem bug
176+
177+ [ Albert Astals Cid, Lukáš Tinkl ]
178+ * Fix various tests
179+
180+ [ CI Train Bot ]
181+ * Resync trunk.
182+ * Update translation template
183+
184+ [ Lukáš Tinkl, Michael Terry ]
185+ * New first-run wizard for the phone (part of the OOBE effort) (LP:
186+ #1536688, #1536617, #1543790, #1555222)
187+
188+ [ Lukáš Tinkl, Michał Sawicz ]
189+ * Keymap switching support (LP: #1524400, #1412492, #1491340)
190+
191+ [ Michael Terry, Michael Zanetti ]
192+ * Redesign the first-boot edge tutorial
193+
194+ [ Michael Zanetti ]
195+ * disabling some tests that are flaky in adt but can't be made fail on
196+ our machines
197+
198+ [ Michael Zanetti, Michał Sawicz ]
199+ * Change the behavior alond with the switch in indicator-display (LP:
200+ #1538591)
201+
202+ [ Michael Zanetti, Michał Sawicz, Nick Dedekind ]
203+ * Add support for low shell chrome. (LP: #1535397)
204+ * Sidestage load/unload redesign (LP: #1544479)
205+
206+ -- Michael Zanetti <michael.zanetti@canonical.com> Wed, 23 Mar 2016 09:53:17 +0000
207+
208+unity8 (8.11+16.04.20160318.1-0ubuntu1) xenial; urgency=medium
209+
210+ [ CI Train Bot ]
211+ * Update translation template
212+
213+ [ Lukáš Tinkl ]
214+ * Fix notifications with the new UITK color schemes (LP: #1554616,
215+ #1556523)
216+
217+ [ Lukáš Tinkl, Michael Zanetti, Nick Dedekind ]
218+ * more fixes for the new theme palette (LP: #1554616, #1557534)
219+
220+ -- Michael Zanetti <michael.zanetti@canonical.com> Fri, 18 Mar 2016 17:12:53 +0000
221+
1222unity8 (8.11+16.04.20160310.4-0ubuntu1) xenial; urgency=medium
2223
3224 [ Albert Astals Cid ]
debian/control+10−7
@@ -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),
1616 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.107),
33+ libunity-api-dev (>= 7.111),
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],
@@ -65,6 +66,7 @@ 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
@@ -101,7 +103,7 @@ Depends: dmz-cursor-theme,
101103 qml-module-qt-labs-folderlistmodel,
102104 qml-module-qtquick-xmllistmodel,
103105 qml-module-qtsysteminfo,
104− qtdeclarative5-qtmir-plugin (>= 0.4.5),
106+ qtdeclarative5-qtmir-plugin (>= 0.4.8),
105107 qtdeclarative5-ubuntu-telephony0.1,
106108 qtdeclarative5-ubuntu-web-plugin,
107109 ubuntu-system-settings,
@@ -111,7 +113,8 @@ Depends: dmz-cursor-theme,
111113 unity8-private | unity-launcher-impl,
112114 ${misc:Depends},
113115 ${shlibs:Depends},
114−Recommends: unity-scope-click,
116+Recommends: indicator-session,
117+ unity-scope-click,
115118 unity-scope-mediascanner2,
116119Breaks: indicator-network (<< 0.5.1+14.10.20141014),
117120 ubuntu-touch-session (<< 0.107),
@@ -130,10 +133,10 @@ Depends: qml-module-qtquick-layouts,
130133 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
131134 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
132135 ubuntu-thumbnailer-impl-0,
133− unity-application-impl-13,
136+ unity-application-impl-15,
134137 unity-notifications-impl-3,
135138 unity-plugin-scopes | unity-scopes-impl,
136− unity-scopes-impl-10,
139+ unity-scopes-impl-12,
137140 unity8-fake-env | unity-application-impl,
138141 ${misc:Depends},
139142Breaks: unity8 (<< 7.86),
@@ -176,7 +179,7 @@ Pre-Depends: ${misc:Pre-Depends},
176179Depends: ${misc:Depends},
177180 ${shlibs:Depends},
178181Provides: unity-application-impl,
179− unity-application-impl-13,
182+ unity-application-impl-15,
180183Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
181184Description: Fake environment for running Unity 8 shell
182185 Provides fake implementations of some QML modules used by Unity 8 shell
debian/rules−8
@@ -36,11 +36,3 @@ override_dh_makeshlibs:
3636# libMockLightDM-qml.so links against liblightdm-qt5-2.so which doesn't exist
3737override_dh_shlibdeps:
3838 dh_shlibdeps -XlibMockLightDM-qml.so
39−
40−override_dh_auto_clean:
41− dh_auto_clean
42− # only run under "CI Train"
43− if [ -n "$(SILONAME)" -a -x /usr/bin/bzr ]; then \
44− ./po/update-unity-pot; \
45− bzr commit --message "Update translation template" po/unity8.pot; \
46− fi
debian/unity8-private.install+2−1
@@ -8,12 +8,13 @@ usr/lib/*/unity8/qml/Greeter
88usr/lib/*/unity8/qml/IntegratedLightDM
99usr/lib/*/unity8/qml/Lights
1010usr/lib/*/unity8/qml/Powerd
11−usr/lib/*/unity8/qml/ScreenGrabber
11+usr/lib/*/unity8/qml/ScreenshotDirectory
1212usr/lib/*/unity8/qml/SessionBroadcast
1313usr/lib/*/unity8/qml/Ubuntu
1414usr/lib/*/unity8/qml/Unity
1515usr/lib/*/unity8/qml/UInput
1616usr/lib/*/unity8/qml/Utils
17+usr/lib/*/unity8/qml/WindowManager
1718usr/lib/*/unity8/qml/Wizard
1819usr/share/accountsservice/interfaces
1920usr/share/dbus-1/interfaces
debian/unity8.install+1
@@ -2,6 +2,7 @@ var/lib/unity8/version
22data/unity8-dash.conf usr/share/upstart/sessions/
33data/unity8-filewatcher.conf usr/share/upstart/sessions/
44data/unity8.conf usr/share/upstart/sessions/
5+data/devices.conf etc/ubuntu/
56usr/bin/unity8
67usr/bin/unity8-dash
78usr/share/applications/unity8-dash.desktop
doc/devices.conf+15
@@ -28,3 +28,18 @@ InvertedPortraitOrientation=InvertedPortrait
2828LandscapeOrientation=Landscape
2929InvertedLandscapeOrientation=InvertedLandscape
3030Category=phone
31+
32+# Example for the Nexus 7
33+# This device has the screen mounted in portrait, but we run it as a landscape
34+# device and we want the side stage on it.
35+[flo]
36+PrimaryOrientation=LandscapeOrienation
37+Category=tablet
38+
39+# Example for the Nexus 4
40+# The screen is already mounted the way we want it, so no special config
41+# required. However, we don't want the phone to rotate upside down, so lets
42+# restrict that.
43+[mako]
44+SupportedOrientations=Portrait,Landscape,InvertedLandscape
45+Category=phone
libs/UbuntuGestures/Timer.h+5
@@ -35,6 +35,11 @@ public:
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+72−4
@@ -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,6 +22,8 @@
2422#include <QStringList>
2523#include <QDebug>
2624
25+#include <glib.h>
26+
2727#define IFACE_ACCOUNTS_USER QStringLiteral("org.freedesktop.Accounts.User")
2828#define IFACE_LOCATION_HERE QStringLiteral("com.ubuntu.location.providers.here.AccountsService")
2929#define IFACE_UBUNTU_INPUT QStringLiteral("com.ubuntu.AccountsService.Input")
@@ -34,9 +34,12 @@
3434
3535#define PROP_BACKGROUND_FILE QStringLiteral("BackgroundFile")
3636#define PROP_DEMO_EDGES QStringLiteral("demo-edges")
37+#define PROP_DEMO_EDGES_COMPLETED QStringLiteral("DemoEdgesCompleted")
38+#define PROP_EMAIL QStringLiteral("Email")
3739#define PROP_ENABLE_INDICATORS_WHILE_LOCKED QStringLiteral("EnableIndicatorsWhileLocked")
3840#define PROP_ENABLE_LAUNCHER_WHILE_LOCKED QStringLiteral("EnableLauncherWhileLocked")
3941#define PROP_FAILED_LOGINS QStringLiteral("FailedLogins")
42+#define PROP_INPUT_SOURCES QStringLiteral("InputSources")
4043#define PROP_LICENSE_ACCEPTED QStringLiteral("LicenseAccepted")
4144#define PROP_LICENSE_BASE_PATH QStringLiteral("LicenseBasePath")
4245#define PROP_MOUSE_CURSOR_SPEED QStringLiteral("MouseCursorSpeed")
@@ -44,6 +47,7 @@
4447#define PROP_MOUSE_PRIMARY_BUTTON QStringLiteral("MousePrimaryButton")
4548#define PROP_MOUSE_SCROLL_SPEED QStringLiteral("MouseScrollSpeed")
4649#define PROP_PASSWORD_DISPLAY_HINT QStringLiteral("PasswordDisplayHint")
50+#define PROP_REAL_NAME QStringLiteral("RealName")
4751#define PROP_STATS_WELCOME_SCREEN QStringLiteral("StatsWelcomeScreen")
4852#define PROP_TOUCHPAD_CURSOR_SPEED QStringLiteral("TouchpadCursorSpeed")
4953#define PROP_TOUCHPAD_DISABLE_WHILE_TYPING QStringLiteral("TouchpadDisableWhileTyping")
@@ -54,6 +58,10 @@
5458#define PROP_TOUCHPAD_TAP_TO_CLICK QStringLiteral("TouchpadTapToClick")
5559#define PROP_TOUCHPAD_TWO_FINGER_SCROLL QStringLiteral("TouchpadTwoFingerScroll")
5660
61+using StringMap = QMap<QString,QString>;
62+using StringMapList = QList<StringMap>;
63+Q_DECLARE_METATYPE(StringMapList)
64+
5765
5866QVariant primaryButtonConverter(const QVariant &value)
5967{
@@ -80,6 +88,9 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
8088 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged, this, &AccountsService::onMaybeChanged);
8189
8290 registerProperty(IFACE_ACCOUNTS_USER, PROP_BACKGROUND_FILE, QStringLiteral("backgroundFileChanged"));
91+ registerProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL, QStringLiteral("emailChanged"));
92+ registerProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME, QStringLiteral("realNameChanged"));
93+ registerProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES, QStringLiteral("keymapsChanged"));
8394 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED, QStringLiteral("hereEnabledChanged"));
8495 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH, QStringLiteral("hereLicensePathChanged"));
8596 registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED, QStringLiteral("enableLauncherWhileLockedChanged"));
@@ -87,6 +98,7 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
8798 registerProperty(IFACE_UBUNTU_SECURITY, PROP_PASSWORD_DISPLAY_HINT, QStringLiteral("passwordDisplayHintChanged"));
8899 registerProperty(IFACE_UBUNTU_SECURITY_OLD, PROP_STATS_WELCOME_SCREEN, QStringLiteral("statsWelcomeScreenChanged"));
89100 registerProperty(IFACE_UNITY, PROP_DEMO_EDGES, QStringLiteral("demoEdgesChanged"));
101+ registerProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, QStringLiteral("demoEdgesCompletedChanged"));
90102 registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS, QStringLiteral("failedLoginsChanged"));
91103
92104 registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_CURSOR_SPEED,
@@ -116,7 +128,7 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
116128 registerProxy(IFACE_UBUNTU_INPUT, PROP_TOUCHPAD_TWO_FINGER_SCROLL,
117129 m_unityInput, QStringLiteral("setTouchpadTwoFingerScroll"));
118130
119− setUser(!user.isEmpty() ? user : QString::fromUtf8(qgetenv("USER")));
131+ setUser(!user.isEmpty() ? user : QString::fromUtf8(g_get_user_name()));
120132}
121133
122134QString AccountsService::user() const
@@ -150,6 +162,20 @@ void AccountsService::setDemoEdges(bool demoEdges)
150162 setProperty(IFACE_UNITY, PROP_DEMO_EDGES, demoEdges);
151163}
152164
165+QStringList AccountsService::demoEdgesCompleted() const
166+{
167+ auto value = getProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED);
168+ return value.toStringList();
169+}
170+
171+void AccountsService::markDemoEdgeCompleted(const QString &edge)
172+{
173+ auto currentList = demoEdgesCompleted();
174+ if (!currentList.contains(edge)) {
175+ setProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, currentList << edge);
176+ }
177+}
178+
153179bool AccountsService::enableLauncherWhileLocked() const
154180{
155181 auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED);
@@ -206,6 +232,48 @@ bool AccountsService::hereLicensePathValid() const
206232 return !value.toString().isNull();
207233}
208234
235+QString AccountsService::realName() const
236+{
237+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME);
238+ return value.toString();
239+}
240+
241+void AccountsService::setRealName(const QString &realName)
242+{
243+ setProperty(IFACE_ACCOUNTS_USER, PROP_REAL_NAME, realName);
244+}
245+
246+QString AccountsService::email() const
247+{
248+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL);
249+ return value.toString();
250+}
251+
252+void AccountsService::setEmail(const QString &email)
253+{
254+ setProperty(IFACE_ACCOUNTS_USER, PROP_EMAIL, email);
255+}
256+
257+QStringList AccountsService::keymaps() const
258+{
259+ auto value = getProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES);
260+ QDBusArgument arg = value.value<QDBusArgument>();
261+ StringMapList maps = qdbus_cast<StringMapList>(arg);
262+ QStringList simplifiedMaps;
263+
264+ Q_FOREACH(const StringMap &map, maps) {
265+ Q_FOREACH(const QString &entry, map) {
266+ simplifiedMaps.append(entry);
267+ }
268+ }
269+
270+ if (!simplifiedMaps.isEmpty()) {
271+ return simplifiedMaps;
272+ }
273+
274+ return {QStringLiteral("us")};
275+}
276+
209277uint AccountsService::failedLogins() const
210278{
211279 return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS).toUInt();
plugins/AccountsService/AccountsService.h+21−3
@@ -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− * Authors: Michael Terry <michael.terry@canonical.com>
1715 */
1816
1917#ifndef UNITY_ACCOUNTSSERVICE_H
@@ -22,6 +20,7 @@
2220#include <QHash>
2321#include <QObject>
2422#include <QString>
23+#include <QStringList>
2524#include <QVariant>
2625
2726class AccountsServiceDBusAdaptor;
@@ -39,6 +38,9 @@ class AccountsService: public QObject
3938 READ demoEdges
4039 WRITE setDemoEdges
4140 NOTIFY demoEdgesChanged)
41+ Q_PROPERTY (QStringList demoEdgesCompleted
42+ READ demoEdgesCompleted
43+ NOTIFY demoEdgesCompletedChanged)
4244 Q_PROPERTY (bool enableLauncherWhileLocked
4345 READ enableLauncherWhileLocked
4446 NOTIFY enableLauncherWhileLockedChanged)
@@ -68,6 +70,11 @@ class AccountsService: public QObject
6870 Q_PROPERTY(bool hereLicensePathValid // qml sees a null string as "", so we use proxy setting for that
6971 READ hereLicensePathValid
7072 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)
7178
7279public:
7380 enum PasswordDisplayHint {
@@ -82,6 +89,8 @@ public:
8289 void setUser(const QString &user);
8390 bool demoEdges() const;
8491 void setDemoEdges(bool demoEdges);
92+ QStringList demoEdgesCompleted() const;
93+ Q_INVOKABLE void markDemoEdgeCompleted(const QString &edge);
8594 bool enableLauncherWhileLocked() const;
8695 bool enableIndicatorsWhileLocked() const;
8796 QString backgroundFile() const;
@@ -93,10 +102,16 @@ public:
93102 void setHereEnabled(bool enabled);
94103 QString hereLicensePath() const;
95104 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;
96110
97111Q_SIGNALS:
98112 void userChanged();
99113 void demoEdgesChanged();
114+ void demoEdgesCompletedChanged();
100115 void enableLauncherWhileLockedChanged();
101116 void enableIndicatorsWhileLockedChanged();
102117 void backgroundFileChanged();
@@ -105,6 +120,9 @@ Q_SIGNALS:
105120 void failedLoginsChanged();
106121 void hereEnabledChanged();
107122 void hereLicensePathChanged();
123+ void realNameChanged();
124+ void emailChanged();
125+ void keymapsChanged();
108126
109127private Q_SLOTS:
110128 void onPropertiesChanged(const QString &user, const QString &interface, const QStringList &changed);
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+12−2
@@ -57,8 +57,18 @@ QDBusPendingCall AccountsServiceDBusAdaptor::setUserPropertyAsync(const QString
5757{
5858 QDBusInterface *iface = getUserInterface(user);
5959 if (iface != nullptr && iface->isValid()) {
60− // The value needs to be carefully wrapped
61− 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+ }
6272 }
6373 return QDBusPendingCall::fromCompletedCall(QDBusMessage::createError(QDBusError::Other, QStringLiteral("Invalid Interface")));
6474}
plugins/AccountsService/CMakeLists.txt+5
@@ -1,4 +1,5 @@
11add_definitions(-DSM_BUSNAME=systemBus)
2+include_directories(${GLIB_INCLUDE_DIRS})
23
34add_library(AccountsService-qml MODULE
45 AccountsService.cpp
@@ -8,6 +9,10 @@ add_library(AccountsService-qml MODULE
89
910qt5_use_modules(AccountsService-qml DBus Qml)
1011
12+target_link_libraries(AccountsService-qml
13+ ${GLIB_LIBRARIES}
14+ )
15+
1116add_unity8_plugin(AccountsService 0.1 AccountsService TARGETS AccountsService-qml)
1217
1318set(DBUS_IFACE_DIR "${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces")
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/CMakeLists.txt+2−1
@@ -19,10 +19,11 @@ add_subdirectory(IntegratedLightDM)
1919add_subdirectory(Lights)
2020add_subdirectory(Dash)
2121add_subdirectory(Powerd)
22+add_subdirectory(ScreenshotDirectory)
2223add_subdirectory(SessionBroadcast)
23−add_subdirectory(ScreenGrabber)
2424add_subdirectory(Ubuntu)
2525add_subdirectory(UInput)
2626add_subdirectory(Unity)
2727add_subdirectory(Utils)
28+add_subdirectory(WindowManager)
2829add_subdirectory(Wizard)
plugins/Cursor/Cursor.qmltypesnew file+78
@@ -0,0 +1,78 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Cursor 1.0 plugins'
8+
9+Module {
10+ Component {
11+ name: "MirMousePointerInterface"
12+ defaultProperty: "data"
13+ prototype: "QQuickItem"
14+ Property { name: "cursorName"; type: "string"; isReadonly: true }
15+ Property { name: "themeName"; type: "string"; isReadonly: true }
16+ Property { name: "hotspotX"; type: "double"; isReadonly: true }
17+ Property { name: "hotspotY"; type: "double"; isReadonly: true }
18+ Signal {
19+ name: "cursorNameChanged"
20+ Parameter { name: "name"; type: "string" }
21+ }
22+ Signal {
23+ name: "themeNameChanged"
24+ Parameter { name: "name"; type: "string" }
25+ }
26+ Signal {
27+ name: "hotspotXChanged"
28+ Parameter { name: "value"; type: "double" }
29+ }
30+ Signal {
31+ name: "hotspotYChanged"
32+ Parameter { name: "value"; type: "double" }
33+ }
34+ Method {
35+ name: "handleMouseEvent"
36+ Parameter { name: "timestamp"; type: "ulong" }
37+ Parameter { name: "movement"; type: "QPointF" }
38+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
39+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
40+ }
41+ Method {
42+ name: "handleWheelEvent"
43+ Parameter { name: "timestamp"; type: "ulong" }
44+ Parameter { name: "angleDelta"; type: "QPoint" }
45+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
46+ }
47+ }
48+ Component {
49+ name: "MousePointer"
50+ defaultProperty: "data"
51+ prototype: "MirMousePointerInterface"
52+ exports: ["Cursor/MousePointer 1.0"]
53+ exportMetaObjectRevisions: [0]
54+ Signal {
55+ name: "pushedLeftBoundary"
56+ Parameter { name: "amount"; type: "double" }
57+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
58+ }
59+ Signal {
60+ name: "pushedRightBoundary"
61+ Parameter { name: "amount"; type: "double" }
62+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
63+ }
64+ Method {
65+ name: "handleMouseEvent"
66+ Parameter { name: "timestamp"; type: "ulong" }
67+ Parameter { name: "movement"; type: "QPointF" }
68+ Parameter { name: "buttons"; type: "Qt::MouseButtons" }
69+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
70+ }
71+ Method {
72+ name: "handleWheelEvent"
73+ Parameter { name: "timestamp"; type: "ulong" }
74+ Parameter { name: "angleDelta"; type: "QPoint" }
75+ Parameter { name: "modifiers"; type: "Qt::KeyboardModifiers" }
76+ }
77+ }
78+}
plugins/Dash/CardCreator.js+48−1
@@ -343,6 +343,17 @@ var kAttributesRowCode = 'CardAttributes { \n\
343343 model: cardData && cardData["attributes"]; \n\
344344 }\n';
345345
346+// %1 is used as anchors of socialActionsRow
347+// %2 is used as color of socialActionsRow
348+var kSocialActionsRowCode = 'CardSocialActions { \n\
349+ id: socialActionsRow; \n\
350+ objectName: "socialActionsRow"; \n\
351+ anchors { %1 } \n\
352+ color: %2; \n\
353+ model: cardData && cardData["socialActions"]; \n\
354+ onClicked: root.action(actionId); \n\
355+ }\n';
356+
346357// %1 is used as top anchor of summary
347358// %2 is used as topMargin anchor of summary
348359// %3 is used as color of summary
@@ -428,9 +439,11 @@ function cardString(template, components, isCardTool, artShapeStyle) {
428439 var hasSubtitle = hasTitle && components["subtitle"] || false;
429440 var hasHeaderRow = hasMascot && hasTitle;
430441 var hasAttributes = hasTitle && components["attributes"] && components["attributes"]["field"] || false;
442+ var hasSocialActions = hasTitle && components["social-actions"] || false;
431443 var isAudio = template["quick-preview-type"] === "audio";
432444 var asynchronous = isCardTool ? "false" : "true";
433445
446+ code += 'signal action(var actionId);\n';
434447 if (isAudio) {
435448 // For now we only support audio cards with [optional] art, title, subtitle
436449 // in horizontal mode
@@ -850,6 +863,38 @@ function cardString(template, components, isCardTool, artShapeStyle) {
850863 code += kSummaryLabelCode.arg(summaryTopAnchor).arg(summaryTopMargin).arg(summaryColor);
851864 }
852865
866+// <<<<<<< TREE
867+// if (artShapeStyle != "shadow" && artShapeStyle != "icon") {
868+// var touchdownAnchors;
869+// =======
870+ if (hasSocialActions) {
871+ var socialAnchors;
872+ var socialTopAnchor;
873+
874+ if (hasSummary) socialTopAnchor = 'summary.bottom;';
875+ else if (isHorizontal && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
876+ else if (headerAsOverlay && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
877+ else if (hasHeaderRow) socialTopAnchor = 'row.bottom;';
878+ else if (hasTitleContainer) socialTopAnchor = 'headerTitleContainer.bottom;';
879+ else if (hasMascot) socialTopAnchor = 'mascotImage.bottom;';
880+ else if (hasAttributes) socialTopAnchor = 'attributesRow.bottom;';
881+ else if (hasSubtitle) socialTopAnchor = 'subtitleLabel.bottom;';
882+ else if (hasTitle) socialTopAnchor = 'titleLabel.bottom;';
883+ else if (hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
884+ else socialTopAnchor = 'parent.top';
885+
886+ socialAnchors = 'top: ' + socialTopAnchor + ' left: parent.left; right: parent.right; topMargin: units.gu(1);'
887+
888+ var socialColor;
889+ if (hasBackground) {
890+ socialColor = summaryColorWithBackground;
891+ } else {
892+ socialColor = 'root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText';
893+ }
894+
895+ code += kSocialActionsRowCode.arg(socialAnchors).arg(socialColor);
896+ }
897+
853898 if (artShapeStyle != "shadow" && artShapeStyle != "icon") {
854899 var touchdownAnchors;
855900 if (hasBackground) {
@@ -863,7 +908,9 @@ function cardString(template, components, isCardTool, artShapeStyle) {
863908 }
864909
865910 var implicitHeight = 'implicitHeight: ';
866− if (hasSummary) {
911+ if (hasSocialActions) {
912+ implicitHeight += 'socialActionsRow.y + socialActionsRow.height + units.gu(1);\n';
913+ } else if (hasSummary) {
867914 implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
868915 } else if (isAudio) {
869916 implicitHeight += 'audioButton.height;\n';
plugins/Dash/CardSocialActions.qmlnew file+94
@@ -0,0 +1,94 @@
1+/*
2+ * Copyright 2016 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.4
18+import QtQuick.Layouts 1.1
19+import Ubuntu.Components 1.3
20+
21+Column {
22+ id: socialActions
23+ spacing: units.gu(0.5)
24+
25+ property alias model: repeater.model
26+ property color color: theme.palette.normal.baseText
27+
28+ signal clicked(var actionId)
29+
30+ Rectangle {
31+ id: divider
32+ visible: repeater.count > 0
33+ anchors {
34+ left: parent.left;
35+ right: parent.right;
36+ leftMargin:units.dp(1);
37+ rightMargin: units.dp(1);
38+ }
39+ color: Qt.darker(theme.palette.normal.background, 1.12)
40+ height: visible ? units.dp(1) : 0
41+ }
42+
43+ Row {
44+ id: row
45+ anchors {
46+ left: parent.left
47+ right: parent.right
48+ leftMargin: units.gu(1)
49+ rightMargin: units.gu(1)
50+ }
51+ spacing: units.gu(2)
52+ readonly property int visibleItems: {
53+ if (width <= units.gu(12)) // small card
54+ return 2;
55+ else if (width <= units.gu(21)) // medium card
56+ return 3;
57+ else // large or horizontal card
58+ return 4;
59+ }
60+
61+ Repeater {
62+ id: repeater
63+ delegate: Loader {
64+ height: units.gu(2)
65+ active: index < row.visibleItems
66+ sourceComponent: AbstractButton {
67+ objectName: "delegate" + index
68+ height: units.gu(2)
69+ width: icon.width
70+ Icon {
71+ id: icon
72+ objectName: "icon"
73+
74+ readonly property url urlIcon: modelData && modelData["icon"] || ""
75+ readonly property url urlTemporaryIcon: "temporaryIcon" in modelData && modelData["temporaryIcon"] || ""
76+
77+ height: units.gu(2)
78+ // FIXME Workaround for bug https://bugs.launchpad.net/ubuntu/+source/ubuntu-ui-toolkit/+bug/1421293
79+ width: implicitWidth > 0 && implicitHeight > 0 ? (implicitWidth / implicitHeight * height) : implicitWidth
80+ source: urlIcon
81+ color: socialActions.color
82+
83+ onUrlIconChanged: {
84+ if (urlIcon) source = urlIcon
85+ }
86+ }
87+
88+ onClicked: socialActions.clicked(modelData["id"]);
89+ onPressedChanged: if (pressed && icon.urlTemporaryIcon != "") icon.source = icon.urlTemporaryIcon
90+ }
91+ }
92+ }
93+ }
94+}
plugins/Dash/ScopeStyle.qml+1−1
@@ -58,7 +58,7 @@ QtObject {
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/listviewwithpageheader.cpp+29−12
@@ -285,7 +285,7 @@ void ListViewWithPageHeader::setSectionDelegate(QQmlComponent *delegate)
285285
286286 m_sectionDelegate = delegate;
287287
288− m_topSectionItem = getSectionItem(QString());
288+ m_topSectionItem = getSectionItem(QString(), false /*watchGeometry*/);
289289 m_topSectionItem->setZ(3);
290290 QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
291291 connect(m_topSectionItem, &QQuickItem::heightChanged, this, &ListViewWithPageHeader::stickyHeaderHeightChanged);
@@ -514,6 +514,11 @@ qreal ListViewWithPageHeader::minYExtent() const
514514 return m_minYExtent;
515515}
516516
517+qreal ListViewWithPageHeader::maxYExtent() const
518+{
519+ return height() - contentHeight();
520+}
521+
517522void ListViewWithPageHeader::componentComplete()
518523{
519524 if (m_delegateModel)
@@ -700,8 +705,10 @@ void ListViewWithPageHeader::reallyReleaseItem(ListItem *listItem)
700705
701706void ListViewWithPageHeader::releaseItem(ListItem *listItem)
702707{
703− QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(listItem->m_item);
704− itemPrivate->removeItemChangeListener(this, QQuickItemPrivate::Geometry);
708+ QQuickItemPrivate::get(listItem->m_item)->removeItemChangeListener(this, QQuickItemPrivate::Geometry);
709+ if (listItem->sectionItem()) {
710+ QQuickItemPrivate::get(listItem->sectionItem())->removeItemChangeListener(this, QQuickItemPrivate::Geometry);
711+ }
705712 m_itemsToRelease << listItem;
706713}
707714
@@ -744,7 +751,7 @@ QQuickItem *ListViewWithPageHeader::getSectionItem(int modelIndex, bool alreadyI
744751 return getSectionItem(section);
745752}
746753
747−QQuickItem *ListViewWithPageHeader::getSectionItem(const QString &sectionText)
754+QQuickItem *ListViewWithPageHeader::getSectionItem(const QString &sectionText, bool watchGeometry)
748755{
749756 QQuickItem *sectionItem = nullptr;
750757
@@ -768,7 +775,9 @@ QQuickItem *ListViewWithPageHeader::getSectionItem(const QString &sectionText)
768775 }
769776 m_sectionDelegate->completeCreate();
770777
771− // TODO attach to sectionItem so we can accomodate to it changing its height
778+ if (watchGeometry) {
779+ QQuickItemPrivate::get(sectionItem)->addItemChangeListener(this, QQuickItemPrivate::Geometry);
780+ }
772781
773782 return sectionItem;
774783}
@@ -1126,15 +1135,23 @@ void ListViewWithPageHeader::contentYAnimationRunningChanged(bool running)
11261135 }
11271136}
11281137
1129−void ListViewWithPageHeader::itemGeometryChanged(QQuickItem * /*item*/, const QRectF &newGeometry, const QRectF &oldGeometry)
1138+void ListViewWithPageHeader::itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry)
11301139{
11311140 const qreal heightDiff = newGeometry.height() - oldGeometry.height();
11321141 if (heightDiff != 0) {
1133− if (!m_inContentHeightKeepHeaderShown && oldGeometry.y() + oldGeometry.height() + m_clipItem->y() <= contentY() && !m_visibleItems.isEmpty()) {
1142+ if (!m_visibleItems.isEmpty()) {
11341143 ListItem *firstItem = m_visibleItems.first();
1135− firstItem->setY(firstItem->y() - heightDiff);
1136− adjustMinYExtent();
1137− layout();
1144+ const auto prevFirstItemY = firstItem->y();
1145+ if (!m_inContentHeightKeepHeaderShown && oldGeometry.y() + oldGeometry.height() + m_clipItem->y() <= contentY()) {
1146+ firstItem->setY(firstItem->y() - heightDiff);
1147+ } else if (item == firstItem->sectionItem()) {
1148+ firstItem->setY(firstItem->y() + heightDiff);
1149+ }
1150+
1151+ if (firstItem->y() != prevFirstItemY) {
1152+ adjustMinYExtent();
1153+ layout();
1154+ }
11381155 }
11391156 refill();
11401157 adjustMinYExtent();
@@ -1186,7 +1203,7 @@ void ListViewWithPageHeader::headerHeightChanged(qreal newHeaderHeight, qreal ol
11861203
11871204void ListViewWithPageHeader::adjustMinYExtent()
11881205{
1189− if (m_visibleItems.isEmpty() || contentHeight() < height()) {
1206+ if (m_visibleItems.isEmpty() || (contentHeight() + m_minYExtent < height())) {
11901207 m_minYExtent = 0;
11911208 } else {
11921209 qreal nonCreatedHeight = 0;
@@ -1368,7 +1385,7 @@ void ListViewWithPageHeader::updatePolish()
13681385
13691386 m_contentHeightDirty = false;
13701387 adjustMinYExtent();
1371− if (contentHeight < height()) {
1388+ if (contentHeight + m_minYExtent < height()) {
13721389 // need this since in the previous call to adjustMinYExtent contentHeight is not set yet
13731390 m_minYExtent = 0;
13741391 }
plugins/Dash/listviewwithpageheader.h+2−1
@@ -115,6 +115,7 @@ protected:
115115 void componentComplete() override;
116116 void viewportMoved(Qt::Orientations orient) override;
117117 qreal minYExtent() const override;
118+ qreal maxYExtent() const override;
118119 void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override;
119120 void itemImplicitHeightChanged(QQuickItem *item) override;
120121 void updatePolish() override;
@@ -166,7 +167,7 @@ private:
166167 void reallyReleaseItem(ListItem *item);
167168 void updateWatchedRoles();
168169 QQuickItem *getSectionItem(int modelIndex, bool alreadyInserted);
169− QQuickItem *getSectionItem(const QString &sectionText);
170+ QQuickItem *getSectionItem(const QString &sectionText, bool watchGeometry = true);
170171 void updateSectionItem(int modelIndex);
171172 void initializeValuesForEmptyList();
172173
plugins/Dash/qmldir+1
@@ -5,6 +5,7 @@ singleton CardCreatorCache 0.1 CardCreatorCache.qml
55singleton DashAudioPlayer 0.1 DashAudioPlayer.qml
66ScopeStyle 0.1 ScopeStyle.qml
77CardAttributes 0.1 CardAttributes.qml
8+CardSocialActions 0.1 CardSocialActions.qml
89CroppedImageMinimumSourceSize 0.1 CroppedImageMinimumSourceSize.qml
910AudioProgressBar 0.1 AudioProgressBar.qml
1011CardAudioProgress 0.1 CardAudioProgress.qml
plugins/GlobalShortcut/GlobalShortcut.qmltypesnew file+31
@@ -0,0 +1,31 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable GlobalShortcut 1.0 plugins'
8+
9+Module {
10+ Component {
11+ name: "GlobalShortcut"
12+ defaultProperty: "data"
13+ prototype: "QQuickItem"
14+ exports: ["GlobalShortcut/GlobalShortcut 1.0"]
15+ exportMetaObjectRevisions: [0]
16+ Property { name: "shortcut"; type: "QVariant" }
17+ Property { name: "active"; type: "bool" }
18+ Signal {
19+ name: "shortcutChanged"
20+ Parameter { name: "shortcut"; type: "QVariant" }
21+ }
22+ Signal {
23+ name: "triggered"
24+ Parameter { name: "shortcut"; type: "string" }
25+ }
26+ Signal {
27+ name: "activeChanged"
28+ Parameter { name: "active"; type: "bool" }
29+ }
30+ }
31+}
plugins/ScreenGrabber/CMakeLists.txtdeleted−13
@@ -1,13 +0,0 @@
1−include_directories(
2− ${CMAKE_CURRENT_BINARY_DIR}
3−)
4−
5−set(SCREENGRABBERSOURCES
6− screengrabber.cpp
7− plugin.cpp
8−)
9−
10−add_library(ScreenGrabber-qml MODULE ${SCREENGRABBERSOURCES})
11−qt5_use_modules(ScreenGrabber-qml Qml Gui Quick Concurrent)
12−
13−add_unity8_plugin(ScreenGrabber 0.1 ScreenGrabber TARGETS ScreenGrabber-qml)
plugins/ScreenGrabber/qmldirdeleted−3
@@ -1,3 +0,0 @@
1−module ScreenGrabber
2−plugin ScreenGrabber-qml
3−typeinfo ScreenGrabber.qmltypes
plugins/ScreenGrabber/screengrabber.cppdeleted−117
@@ -1,117 +0,0 @@
1−/*
2− * Copyright (C) 2014-2015 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#include "screengrabber.h"
18−
19−#include <QDir>
20−#include <QDateTime>
21−#include <QStandardPaths>
22−#include <QTemporaryDir>
23−#include <QtGui/QImage>
24−#include <QtGui/QGuiApplication>
25−#include <QtQuick/QQuickWindow>
26−
27−#include <QDebug>
28−
29−QString saveScreenshot(const QImage &screenshot, const QString &filename, const QString &format, int quality)
30−{
31− if (screenshot.save(filename, format.toLatin1().data(), quality)) {
32− return filename;
33− } else {
34− qWarning() << "ScreenGrabber: failed to save snapshot!";
35− }
36− return QString();
37−}
38−
39−ScreenGrabber::ScreenGrabber(QObject *parent)
40− : QObject(parent)
41−{
42− QObject::connect(&m_watcher,
43− &QFutureWatcher<QString>::finished,
44− this,
45− &ScreenGrabber::onScreenshotSaved);
46−
47− QDir screenshotsDir;
48− if (qEnvironmentVariableIsSet("UNITY_TESTING")) {
49− qDebug() << "Using test environment";
50− QTemporaryDir tDir;
51− tDir.setAutoRemove(false);
52− screenshotsDir = tDir.path();
53− } else {
54− qDebug() << "Using real environment";
55− screenshotsDir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
56− }
57− screenshotsDir.mkpath(QStringLiteral("Screenshots"));
58− screenshotsDir.cd(QStringLiteral("Screenshots"));
59− if (screenshotsDir.exists()) {
60− fileNamePrefix = screenshotsDir.absolutePath();
61− fileNamePrefix.append("/screenshot");
62− } else {
63− qWarning() << "ScreenGrabber: failed to create directory at: " << screenshotsDir.absolutePath();
64− }
65−}
66−
67−void ScreenGrabber::captureAndSave(int angle)
68−{
69− if (fileNamePrefix.isEmpty())
70− {
71− qWarning() << "ScreenShotter: no directory to save screenshot";
72− return;
73− }
74−
75− const QWindowList windows = QGuiApplication::topLevelWindows();
76− if (windows.empty())
77− {
78− qWarning() << "ScreenShotter: no top level windows found!";
79− return;
80− }
81−
82− QQuickWindow *main_window = qobject_cast<QQuickWindow *>(windows[0]);
83− if (!main_window)
84− {
85− qWarning() << "ScreenShotter: can only take screenshots of QQuickWindows";
86− return;
87− }
88−
89− const QImage screenshot = main_window->grabWindow().transformed(QTransform().rotate(angle));
90− const QString filename = makeFileName();
91− qDebug() << "Saving screenshot to" << filename;
92− QFuture<QString> saveFuture(QtConcurrent::run(saveScreenshot, screenshot, filename, getFormat(), screenshotQuality));
93− m_watcher.setFuture(saveFuture);
94−}
95−
96−void ScreenGrabber::onScreenshotSaved()
97−{
98− const QString filename = m_watcher.future().result();
99− if (!filename.isEmpty()) {
100− Q_EMIT screenshotSaved(filename);
101− }
102−}
103−
104−QString ScreenGrabber::makeFileName() const
105−{
106− QString fileName(fileNamePrefix);
107− fileName.append(QDateTime::currentDateTime().toString(QStringLiteral("yyyyMMdd_hhmmsszzz")));
108− fileName.append(".");
109− fileName.append(getFormat());
110− return fileName;
111−}
112−
113−QString ScreenGrabber::getFormat() const
114−{
115− //TODO: This should be configurable (perhaps through gsettings?)
116− return QStringLiteral("png");
117−}
plugins/ScreenGrabber/screengrabber.hdeleted−49
@@ -1,49 +0,0 @@
1−/*
2− * Copyright (C) 2014-2015 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#ifndef SNAPSHOTTER_H
18−#define SNAPSHOTTER_H
19−
20−#include <QObject>
21−#include <QString>
22−#include <QtConcurrent>
23−
24−class ScreenGrabber: public QObject
25−{
26− Q_OBJECT
27−
28−public:
29− explicit ScreenGrabber(QObject *parent = 0);
30− ~ScreenGrabber() = default;
31−
32−public Q_SLOTS:
33− void captureAndSave(int angle = 0);
34−
35−Q_SIGNALS:
36− void screenshotSaved(const QString &filename);
37−
38−private Q_SLOTS:
39− void onScreenshotSaved();
40−
41−private:
42− QString makeFileName() const;
43− QString getFormat() const;
44− QString fileNamePrefix;
45− int screenshotQuality = -1; // default quality for the format
46− QFutureWatcher<QString> m_watcher;
47−};
48−
49−#endif
plugins/ScreenshotDirectory/CMakeLists.txtnew file+9
@@ -0,0 +1,9 @@
1+set(PLUGIN_SOURCES
2+ ScreenshotDirectory.cpp
3+ plugin.cpp
4+)
5+
6+add_library(ScreenshotDirectory-qml MODULE ${PLUGIN_SOURCES})
7+qt5_use_modules(ScreenshotDirectory-qml Qml Gui Quick)
8+
9+add_unity8_plugin(ScreenshotDirectory 0.1 ScreenshotDirectory TARGETS ScreenshotDirectory-qml)
plugins/ScreenGrabber/ScreenGrabber.qmltypes → plugins/ScreenshotDirectory/ScreenGrabber.qmltypesrenamed

The content is the same.

plugins/ScreenshotDirectory/ScreenshotDirectory.cppnew file+64
@@ -0,0 +1,64 @@
1+/*
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "ScreenshotDirectory.h"
18+
19+#include <QDir>
20+#include <QDateTime>
21+#include <QStandardPaths>
22+#include <QTemporaryDir>
23+
24+#include <QDebug>
25+
26+ScreenshotDirectory::ScreenshotDirectory(QObject *parent)
27+ : QObject(parent)
28+{
29+ QDir screenshotsDir;
30+ if (qEnvironmentVariableIsSet("UNITY_TESTING")) {
31+ QTemporaryDir tDir;
32+ tDir.setAutoRemove(false);
33+ screenshotsDir = tDir.path();
34+ } else {
35+ screenshotsDir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
36+ }
37+ screenshotsDir.mkpath(QStringLiteral("Screenshots"));
38+ screenshotsDir.cd(QStringLiteral("Screenshots"));
39+ if (screenshotsDir.exists()) {
40+ m_fileNamePrefix = screenshotsDir.absolutePath();
41+ m_fileNamePrefix.append("/screenshot");
42+ } else {
43+ qWarning() << "ScreenshotDirectory: failed to create directory at:" << screenshotsDir.absolutePath();
44+ }
45+}
46+
47+QString ScreenshotDirectory::makeFileName() const
48+{
49+ if (m_fileNamePrefix.isEmpty()) {
50+ return QString();
51+ }
52+
53+ QString fileName(m_fileNamePrefix);
54+ fileName.append(QDateTime::currentDateTime().toString(QStringLiteral("yyyyMMdd_hhmmsszzz")));
55+ fileName.append(".");
56+ fileName.append(format());
57+ return fileName;
58+}
59+
60+QString ScreenshotDirectory::format() const
61+{
62+ //TODO: This should be configurable (perhaps through gsettings?)
63+ return QStringLiteral("png");
64+}
plugins/ScreenshotDirectory/ScreenshotDirectory.hnew file+39
@@ -0,0 +1,39 @@
1+/*
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef SCREENSHOTDIRECTORY_H
18+#define SCREENSHOTDIRECTORY_H
19+
20+#include <QObject>
21+#include <QString>
22+
23+class ScreenshotDirectory: public QObject
24+{
25+ Q_OBJECT
26+
27+public:
28+ explicit ScreenshotDirectory(QObject *parent = 0);
29+ ~ScreenshotDirectory() = default;
30+
31+public Q_SLOTS:
32+ QString makeFileName() const;
33+
34+private:
35+ QString format() const;
36+ QString m_fileNamePrefix;
37+};
38+
39+#endif // SCREENSHOTDIRECTORY_H
plugins/ScreenGrabber/plugin.cpp → plugins/ScreenshotDirectory/plugin.cpprenamed+5−7
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014,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,17 +12,15 @@
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: Alberto Aguirre <alberto.aguirre@canonical.com>
1715 */
1816
1917#include "plugin.h"
20−#include "screengrabber.h"
18+#include "ScreenshotDirectory.h"
2119
2220#include <QtQml/qqml.h>
2321
24−void ScreenGrabberPlugin::registerTypes(const char *uri)
22+void ScreenshotDirectoryPlugin::registerTypes(const char *uri)
2523{
26− Q_ASSERT(uri == QLatin1String("ScreenGrabber"));
27− qmlRegisterType<ScreenGrabber>(uri, 0, 1, "ScreenGrabber");
24+ Q_ASSERT(uri == QLatin1String("ScreenshotDirectory"));
25+ qmlRegisterType<ScreenshotDirectory>(uri, 0, 1, "ScreenshotDirectory");
2826}
plugins/ScreenGrabber/plugin.h → plugins/ScreenshotDirectory/plugin.hrenamed+5−7
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014,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,16 +12,14 @@
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: Alberto Aguirre <alberto.aguirre@canonical.com>
1715 */
1816
19−#ifndef SCREENGRABBER_PLUGIN_H
20−#define SCREENGRABBER_PLUGIN_H
17+#ifndef SCREENSHOTDIRECTORY_PLUGIN_H
18+#define SCREENSHOTDIRECTORY_PLUGIN_H
2119
2220#include <QtQml/QQmlExtensionPlugin>
2321
24−class ScreenGrabberPlugin : public QQmlExtensionPlugin
22+class ScreenshotDirectoryPlugin : public QQmlExtensionPlugin
2523{
2624 Q_OBJECT
2725 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
@@ -30,4 +28,4 @@ public:
3028 void registerTypes(const char *uri) override;
3129};
3230
33−#endif // SCREENGRABBER_PLUGIN_H
31+#endif // SCREENSHOTDIRECTORY_PLUGIN_H
plugins/ScreenshotDirectory/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module ScreenshotDirectory
2+plugin ScreenshotDirectory-qml
plugins/SessionBroadcast/CMakeLists.txt+5
@@ -1,3 +1,4 @@
1+include_directories(${GLIB_INCLUDE_DIRS})
12add_definitions(-DSM_BUSNAME=systemBus)
23
34add_library(SessionBroadcast-qml MODULE
@@ -7,4 +8,8 @@ add_library(SessionBroadcast-qml MODULE
78
89qt5_use_modules(SessionBroadcast-qml DBus Qml)
910
11+target_link_libraries(SessionBroadcast-qml
12+ ${GLIB_LIBRARIES}
13+ )
14+
1015add_unity8_plugin(SessionBroadcast 0.1 SessionBroadcast TARGETS SessionBroadcast-qml)
plugins/SessionBroadcast/SessionBroadcast.cpp+5−1
@@ -19,9 +19,13 @@
1919#include "SessionBroadcast.h"
2020#include <QDBusConnection>
2121
22+#include <glib.h>
23+
2224SessionBroadcast::SessionBroadcast(QObject* parent)
2325 : QObject(parent)
2426{
27+ m_username = QString::fromUtf8(g_get_user_name());
28+
2529 auto connection = QDBusConnection::SM_BUSNAME();
2630
2731 connection.connect(QStringLiteral("com.canonical.Unity.Greeter.Broadcast"),
@@ -35,7 +39,7 @@ SessionBroadcast::SessionBroadcast(QObject* parent)
3539void SessionBroadcast::onShowHome(const QString &username)
3640{
3741 // Only listen to requests meant for us
38− if (username == qgetenv("USER")) {
42+ if (username == m_username) {
3943 Q_EMIT showHome();
4044 }
4145}
plugins/SessionBroadcast/SessionBroadcast.h+3
@@ -36,6 +36,9 @@ Q_SIGNALS:
3636
3737private Q_SLOTS:
3838 void onShowHome(const QString &username);
39+
40+private:
41+ QString m_username;
3942};
4043
4144#endif
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+3−5
@@ -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"
@@ -286,12 +284,12 @@ 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())) {
296294 new_indicator->setProfile(QStringLiteral("desktop"));
297295 } else {
plugins/Unity/InputInfo/InputInfo.qmltypesnew file+71
@@ -0,0 +1,71 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Unity.InputInfo 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "QDeclarativeInputDeviceModel"
12+ prototype: "QAbstractListModel"
13+ exports: ["Unity.InputInfo/InputDeviceModel 0.1"]
14+ exportMetaObjectRevisions: [0]
15+ Property { name: "deviceFilter"; type: "QInputDevice::InputType" }
16+ Property { name: "count"; type: "int"; isReadonly: true }
17+ Signal {
18+ name: "deviceAdded"
19+ Parameter { name: "devicePath"; type: "string" }
20+ }
21+ Signal {
22+ name: "deviceRemoved"
23+ Parameter { name: "devicePath"; type: "string" }
24+ }
25+ Signal {
26+ name: "deviceFilterChanged"
27+ Parameter { name: "filter"; type: "QInputDevice::InputType" }
28+ }
29+ Method { name: "updateDeviceList" }
30+ Method {
31+ name: "indexOf"
32+ type: "int"
33+ Parameter { name: "devicePath"; type: "string" }
34+ }
35+ Method {
36+ name: "get"
37+ type: "QInputDevice*"
38+ Parameter { name: "index"; type: "int" }
39+ }
40+ }
41+ Component {
42+ name: "QInputDevice"
43+ prototype: "QObject"
44+ exports: ["Unity.InputInfo/InputInfo 0.1"]
45+ exportMetaObjectRevisions: [0]
46+ Enum {
47+ name: "InputType"
48+ values: {
49+ "Unknown": 0,
50+ "Button": 1,
51+ "Mouse": 2,
52+ "TouchPad": 4,
53+ "TouchScreen": 8,
54+ "Keyboard": 16,
55+ "Switch": 32
56+ }
57+ }
58+ Enum {
59+ name: "InputTypeFlags"
60+ values: {
61+ "Unknown": 0,
62+ "Button": 1,
63+ "Mouse": 2,
64+ "TouchPad": 4,
65+ "TouchScreen": 8,
66+ "Keyboard": 16,
67+ "Switch": 32
68+ }
69+ }
70+ }
71+}
plugins/Unity/Launcher/CMakeLists.txt+2
@@ -7,6 +7,7 @@ include_directories(
77 ${CMAKE_CURRENT_SOURCE_DIR}
88 ${CMAKE_SOURCE_DIR}/plugins/AccountsService
99 ${GSETTINGS_QT_INCLUDE_DIRS}
10+ ${GLIB_INCLUDE_DIRS}
1011 ${libunity8-private_SOURCE_DIR}
1112)
1213
@@ -34,6 +35,7 @@ add_library(UnityLauncher-qml MODULE
3435target_link_libraries(UnityLauncher-qml
3536 unity8-private
3637 ${GSETTINGS_QT_LDFLAGS}
38+ ${GLIB_LIBRARIES}
3739 )
3840
3941qt5_use_modules(UnityLauncher-qml DBus Qml Gui)
plugins/Unity/Launcher/asadapter.cpp+6−2
@@ -18,14 +18,18 @@
1818#include "launcheritem.h"
1919#include "AccountsServiceDBusAdaptor.h"
2020
21+#include <glib.h>
22+
2123#include <QDebug>
2224
2325ASAdapter::ASAdapter()
2426{
2527 m_accounts = new AccountsServiceDBusAdaptor();
26− m_user = qgetenv("USER");
28+
29+ m_user = QString::fromUtf8(g_get_user_name());
30+
2731 if (m_user.isEmpty()) {
28− qWarning() << "$USER not valid. Account Service integration will not work.";
32+ qWarning() << "username not valid. Account Service integration will not work.";
2933 }
3034}
3135
plugins/Unity/Platform/Platform.qmltypesnew file+20
@@ -0,0 +1,20 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Unity.Platform 1.0 plugins'
8+
9+Module {
10+ Component {
11+ name: "Platform"
12+ prototype: "QObject"
13+ exports: ["Unity.Platform/Platform 1.0"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Property { name: "chassis"; type: "string"; isReadonly: true }
18+ Property { name: "isPC"; type: "bool"; isReadonly: true }
19+ }
20+}
plugins/Unity/Session/CMakeLists.txt+2
@@ -2,6 +2,7 @@ include_directories(
22 ${CMAKE_CURRENT_SOURCE_DIR}
33 ${CMAKE_CURRENT_BINARY_DIR}
44 ${GIO_INCLUDE_DIRS}
5+ ${GLIB_INCLUDE_DIRS}
56 ${libunity8-private_SOURCE_DIR}
67)
78
@@ -19,6 +20,7 @@ qt5_use_modules(UnitySession-qml DBus Qml)
1920target_link_libraries(UnitySession-qml
2021 unity8-private
2122 ${GIO_LDFLAGS}
23+ ${GLIB_LIBRARIES}
2224 )
2325
2426# export the qmldir and qmltypes files
plugins/Unity/Session/dbusunitysessionservice.cpp+8−7
@@ -30,6 +30,9 @@
3030#include <QDateTime>
3131#include <QDBusUnixFileDescriptor>
3232
33+// Glib
34+#include <glib.h>
35+
3336#define LOGIN1_SERVICE QStringLiteral("org.freedesktop.login1")
3437#define LOGIN1_PATH QStringLiteral("/org/freedesktop/login1")
3538#define LOGIN1_IFACE QStringLiteral("org.freedesktop.login1.Manager")
@@ -295,12 +298,7 @@ bool DBusUnitySessionService::CanLock() const
295298
296299QString DBusUnitySessionService::UserName() const
297300{
298− struct passwd *p = getpwuid(geteuid());
299− if (p) {
300− return QString::fromUtf8(p->pw_name);
301− }
302−
303− return QString();
301+ return QString::fromUtf8(g_get_user_name());
304302}
305303
306304QString DBusUnitySessionService::RealName() const
@@ -336,6 +334,9 @@ void DBusUnitySessionService::PromptLock()
336334
337335void DBusUnitySessionService::Lock()
338336{
337+ // signal u8 to show the lockscreen/greeter
338+ PromptLock();
339+
339340 // lock the session using the org.freedesktop.DisplayManager system DBUS service
340341 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
341342 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
@@ -348,7 +349,7 @@ void DBusUnitySessionService::Lock()
348349 connect(watcher, &QDBusPendingCallWatcher::finished,
349350 this, [this](QDBusPendingCallWatcher* watcher) {
350351
351− QDBusPendingReply<QVariant> reply = *watcher;
352+ QDBusPendingReply<void> reply = *watcher;
352353 watcher->deleteLater();
353354 if (reply.isError()) {
354355 qWarning() << "Lock call failed" << reply.error().message();
plugins/Utils/CMakeLists.txt+2−2
@@ -17,13 +17,13 @@ set(QMLPLUGIN_SRC
1717 unitysortfilterproxymodelqml.cpp
1818 Timer.cpp
1919 unitymenumodelpaths.cpp
20− windowkeysfilter.cpp
21− windowscreenshotprovider.cpp
20+ windowinputfilter.cpp
2221 easingcurve.cpp
2322 windowstatestorage.cpp
2423 timezoneFormatter.cpp
2524 inputeventgenerator.cpp
2625 deviceconfigparser.cpp
26+ globalfunctions.cpp
2727 plugin.cpp
2828 )
2929
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.cpp+8
@@ -23,6 +23,7 @@
2323
2424DeviceConfigParser::DeviceConfigParser(QObject *parent): QObject(parent)
2525{
26+ // Local files have highest priority
2627 QString path;
2728 Q_FOREACH (const QString &standardPath, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) {
2829 if (QFileInfo(standardPath + "/devices.conf").exists()) {
@@ -31,9 +32,16 @@ DeviceConfigParser::DeviceConfigParser(QObject *parent): QObject(parent)
3132 }
3233 }
3334
35+ // Check if there is an override in the device tarball (/system/etc/)
36+ if (path.isEmpty() && QFileInfo::exists("/system/etc/ubuntu/devices.conf")) {
37+ path = "/system/etc/ubuntu/devices.conf";
38+ }
39+
40+ // No higher priority files found. Use standard of /etc/
3441 if (path.isEmpty()) {
3542 path = "/etc/ubuntu/devices.conf";
3643 }
44+
3745 qDebug() << "Using" << path << "as device configuration file";
3846 m_config = new QSettings(path, QSettings::IniFormat, this);
3947}
plugins/Utils/deviceconfigparser.h+1
@@ -25,6 +25,7 @@ class DeviceConfigParser: public QObject
2525 Q_OBJECT
2626 Q_PROPERTY(QString name READ name WRITE setName NOTIFY changed)
2727
28+ // NOTE: When changing this properties, also update the examples in docs and data
2829 Q_PROPERTY(Qt::ScreenOrientation primaryOrientation READ primaryOrientation NOTIFY changed)
2930 Q_PROPERTY(Qt::ScreenOrientations supportedOrientations READ supportedOrientations NOTIFY changed)
3031 Q_PROPERTY(Qt::ScreenOrientation landscapeOrientation READ landscapeOrientation NOTIFY changed)
plugins/Utils/globalfunctions.cppnew file+56
@@ -0,0 +1,56 @@
1+/*
2+ * Copyright 2015 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+*/
16+
17+#include "globalfunctions.h"
18+
19+#pragma GCC diagnostic push
20+#pragma GCC diagnostic ignored "-pedantic"
21+#include <private/qquickitem_p.h>
22+#pragma GCC diagnostic pop
23+#include <QQmlEngine>
24+
25+GlobalFunctions::GlobalFunctions(QObject *parent)
26+ : QObject(parent)
27+{
28+}
29+
30+QQuickItem *GlobalFunctions::itemAt(QQuickItem* parent, int x, int y, QJSValue matcher)
31+{
32+ if (!parent) return nullptr;
33+ QList<QQuickItem *> children = QQuickItemPrivate::get(parent)->paintOrderChildItems();
34+
35+ for (int i = children.count() - 1; i >= 0; --i) {
36+ QQuickItem *child = children.at(i);
37+
38+ // Map coordinates to the child element's coordinate space
39+ QPointF point = parent->mapToItem(child, QPointF(x, y));
40+ if (child->isVisible() && point.x() >= 0
41+ && child->width() >= point.x()
42+ && point.y() >= 0
43+ && child->height() >= point.y()) {
44+ if (!matcher.isCallable()) return child;
45+
46+ QQmlEngine* engine = qmlEngine(child);
47+ if (!engine) return child;
48+
49+ QJSValue newObj = engine->newQObject(child);
50+ if (matcher.call(QJSValueList() << newObj).toBool()) {
51+ return child;
52+ }
53+ }
54+ }
55+ return nullptr;
56+}
plugins/Utils/globalfunctions.hnew file+42
@@ -0,0 +1,42 @@
1+/*
2+ * Copyright 2015 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+*/
16+
17+#ifndef GLOBALFUNCTIONS_H
18+#define GLOBALFUNCTIONS_H
19+
20+#include <QObject>
21+#include <QJSValue>
22+class QQuickItem;
23+
24+/**
25+ * @brief The GlobalFunctions class
26+ *
27+ * This singleton class exposes utility functions to QML
28+ *
29+ */
30+class GlobalFunctions : public QObject
31+{
32+ Q_OBJECT
33+public:
34+ explicit GlobalFunctions(QObject *parent = 0);
35+
36+ static Q_INVOKABLE QQuickItem* itemAt(QQuickItem* parent,
37+ int x,
38+ int y,
39+ QJSValue matcher);
40+};
41+
42+#endif // GLOBALFUNCTIONS_H
plugins/Utils/plugin.cpp+11−10
@@ -30,14 +30,14 @@
3030#include "qlimitproxymodelqml.h"
3131#include "unitysortfilterproxymodelqml.h"
3232#include "unitymenumodelpaths.h"
33−#include "windowkeysfilter.h"
34−#include "windowscreenshotprovider.h"
33+#include "windowinputfilter.h"
3534#include "windowstatestorage.h"
3635#include "constants.h"
3736#include "timezoneFormatter.h"
3837#include "applicationsfiltermodel.h"
3938#include "inputeventgenerator.h"
4039#include "deviceconfigparser.h"
40+#include "globalfunctions.h"
4141
4242static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
4343{
@@ -53,6 +53,13 @@ static QObject *createConstants(QQmlEngine *engine, QJSEngine *scriptEngine)
5353 return new Constants();
5454}
5555
56+static QObject *createGlobalFunctions(QQmlEngine *engine, QJSEngine *scriptEngine)
57+{
58+ Q_UNUSED(engine)
59+ Q_UNUSED(scriptEngine)
60+ return new GlobalFunctions();
61+}
62+
5663void UtilsPlugin::registerTypes(const char *uri)
5764{
5865 Q_ASSERT(uri == QLatin1String("Utils"));
@@ -61,7 +68,7 @@ void UtilsPlugin::registerTypes(const char *uri)
6168 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1, "LimitProxyModel");
6269 qmlRegisterType<UnitySortFilterProxyModelQML>(uri, 0, 1, "UnitySortFilterProxyModel");
6370 qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
64− qmlRegisterType<WindowKeysFilter>(uri, 0, 1, "WindowKeysFilter");
71+ qmlRegisterType<WindowInputFilter>(uri, 0, 1, "WindowInputFilter");
6572 qmlRegisterType<EasingCurve>(uri, 0, 1, "EasingCurve");
6673 qmlRegisterSingletonType<WindowStateStorage>(uri, 0, 1, "WindowStateStorage", createWindowStateStorage);
6774 qmlRegisterType<InputWatcher>(uri, 0, 1, "InputWatcher");
@@ -72,11 +79,5 @@ void UtilsPlugin::registerTypes(const char *uri)
7279 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
7380 qmlRegisterType<InputEventGenerator>(uri, 0, 1, "InputEventGenerator");
7481 qmlRegisterType<DeviceConfigParser>(uri, 0, 1, "DeviceConfigParser");
75−}
76−
77−void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
78−{
79− QQmlExtensionPlugin::initializeEngine(engine, uri);
80−
81− engine->addImageProvider(QStringLiteral("window"), new WindowScreenshotProvider);
82+ qmlRegisterSingletonType<GlobalFunctions>(uri, 0, 1, "Functions", createGlobalFunctions);
8283}
plugins/Utils/plugin.h−1
@@ -29,7 +29,6 @@ class UtilsPlugin : public QQmlExtensionPlugin
2929
3030public:
3131 void registerTypes(const char *uri) override;
32− void initializeEngine(QQmlEngine *engine, const char *uri) override;
3332};
3433
3534#endif
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/windowscreenshotprovider.cppdeleted−59
@@ -1,59 +0,0 @@
1−/*
2− * Copyright (C) 2015 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−#include "windowscreenshotprovider.h"
18−
19−#include <QGuiApplication>
20−#include <QQuickWindow>
21−
22−WindowScreenshotProvider::WindowScreenshotProvider()
23− : QQuickImageProvider(QQmlImageProviderBase::Image, 0)
24−{
25−}
26−
27−// A very simple implementation where we assume that there's only one window and that it's a
28−// QQuickWindow. Thus the id parameter is irrelevant.
29−//
30−// Idea: Make the id contain the objectName of the QQuickWindow once we care about a multi-display
31−// compositor?
32−// Strictly speaking that could be the actual QWindow::winId(), but that's mostly a
33−// meaningless arbitrary number.
34−QImage WindowScreenshotProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize)
35−{
36− Q_UNUSED(id);
37− Q_UNUSED(requestedSize);
38−
39− QWindowList windows = QGuiApplication::topLevelWindows();
40−
41− if (windows.count() != 1) {
42− size->rwidth() = 0;
43− size->rheight() = 0;
44− return QImage();
45− }
46−
47− QQuickWindow *quickWindow = qobject_cast<QQuickWindow *>(windows[0]);
48−
49− if (!quickWindow) {
50− size->rwidth() = 0;
51− size->rheight() = 0;
52− return QImage();
53− }
54−
55− QImage image = quickWindow->grabWindow();
56− size->rwidth() = image.width();
57− size->rheight() = image.height();
58− return image;
59−}
plugins/Utils/windowstatestorage.cpp+36−4
@@ -23,9 +23,14 @@
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/WindowManager/CMakeLists.txtnew file+13
@@ -0,0 +1,13 @@
1+set(WINDOWMANAGER_SRC
2+ TopLevelSurfaceList.cpp
3+ WindowManagerPlugin.cpp
4+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
5+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h
6+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h
7+ )
8+
9+add_library(windowmanager-qml SHARED ${WINDOWMANAGER_SRC})
10+
11+qt5_use_modules(windowmanager-qml Qml Quick Gui)
12+
13+add_unity8_plugin(WindowManager 0.1 WindowManager TARGETS windowmanager-qml)
plugins/WindowManager/TopLevelSurfaceList.cppnew file+486
@@ -0,0 +1,486 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "TopLevelSurfaceList.h"
18+
19+// unity-api
20+#include <unity/shell/application/ApplicationInfoInterface.h>
21+#include <unity/shell/application/MirSurfaceInterface.h>
22+#include <unity/shell/application/MirSurfaceListInterface.h>
23+
24+#include <QMetaObject>
25+
26+Q_LOGGING_CATEGORY(UNITY_TOPSURFACELIST, "unity.topsurfacelist", QtDebugMsg)
27+
28+#define DEBUG_MSG qCDebug(UNITY_TOPSURFACELIST).nospace().noquote() << __func__
29+
30+using namespace unity::shell::application;
31+
32+TopLevelSurfaceList::TopLevelSurfaceList(QObject *parent) :
33+ QAbstractListModel(parent)
34+{
35+ DEBUG_MSG << "()";
36+}
37+
38+TopLevelSurfaceList::~TopLevelSurfaceList()
39+{
40+ DEBUG_MSG << "()";
41+}
42+
43+int TopLevelSurfaceList::rowCount(const QModelIndex &parent) const
44+{
45+ return !parent.isValid() ? m_surfaceList.size() : 0;
46+}
47+
48+QVariant TopLevelSurfaceList::data(const QModelIndex& index, int role) const
49+{
50+ if (index.row() < 0 || index.row() >= m_surfaceList.size())
51+ return QVariant();
52+
53+ if (role == SurfaceRole) {
54+ MirSurfaceInterface *surface = m_surfaceList.at(index.row()).surface;
55+ return QVariant::fromValue(surface);
56+ } else if (role == ApplicationRole) {
57+ return QVariant::fromValue(m_surfaceList.at(index.row()).application);
58+ } else if (role == IdRole) {
59+ return QVariant::fromValue(m_surfaceList.at(index.row()).id);
60+ } else {
61+ return QVariant();
62+ }
63+}
64+
65+void TopLevelSurfaceList::raise(MirSurfaceInterface *surface)
66+{
67+ if (!surface)
68+ return;
69+
70+ DEBUG_MSG << "(MirSurface[" << (void*)surface << "])";
71+
72+ int i = indexOf(surface);
73+ if (i != -1) {
74+ raiseId(m_surfaceList.at(i).id);
75+ }
76+}
77+
78+void TopLevelSurfaceList::appendPlaceholder(ApplicationInfoInterface *application)
79+{
80+ DEBUG_MSG << "(" << application->appId() << ")";
81+
82+ appendSurfaceHelper(nullptr, application);
83+}
84+
85+void TopLevelSurfaceList::appendSurface(MirSurfaceInterface *surface, ApplicationInfoInterface *application)
86+{
87+ Q_ASSERT(surface != nullptr);
88+
89+ bool filledPlaceholder = false;
90+ for (int i = 0; i < m_surfaceList.count() && !filledPlaceholder; ++i) {
91+ ModelEntry &entry = m_surfaceList[i];
92+ if (entry.application == application && entry.surface == nullptr) {
93+ entry.surface = surface;
94+ connectSurface(surface);
95+ DEBUG_MSG << " appId=" << application->appId() << " surface=" << surface
96+ << ", filling out placeholder. after: " << toString();
97+ Q_EMIT dataChanged(index(i) /* topLeft */, index(i) /* bottomRight */, QVector<int>() << SurfaceRole);
98+ filledPlaceholder = true;
99+ }
100+ }
101+
102+ if (!filledPlaceholder) {
103+ DEBUG_MSG << " appId=" << application->appId() << " surface=" << surface << ", adding new row";
104+ appendSurfaceHelper(surface, application);
105+ }
106+}
107+
108+void TopLevelSurfaceList::appendSurfaceHelper(MirSurfaceInterface *surface, ApplicationInfoInterface *application)
109+{
110+ if (m_modelState == IdleState) {
111+ m_modelState = InsertingState;
112+ beginInsertRows(QModelIndex(), m_surfaceList.size() /*first*/, m_surfaceList.size() /*last*/);
113+ } else {
114+ Q_ASSERT(m_modelState == ResettingState);
115+ // No point in signaling anything if we're resetting the whole model
116+ }
117+
118+ int id = generateId();
119+ m_surfaceList.append(ModelEntry(surface, application, id));
120+ if (surface) {
121+ connectSurface(surface);
122+ }
123+
124+ if (m_modelState == InsertingState) {
125+ endInsertRows();
126+ Q_EMIT countChanged();
127+ Q_EMIT listChanged();
128+ m_modelState = IdleState;
129+ }
130+
131+ DEBUG_MSG << " after " << toString();
132+}
133+
134+void TopLevelSurfaceList::connectSurface(MirSurfaceInterface *surface)
135+{
136+ connect(surface, &MirSurfaceInterface::focusedChanged, this, [this, surface](bool focused){
137+ if (focused) {
138+ this->raise(surface);
139+ }
140+ });
141+ connect(surface, &MirSurfaceInterface::liveChanged, this, [this, surface](bool live){
142+ if (!live) {
143+ onSurfaceDied(surface);
144+ }
145+ });
146+ connect(surface, &QObject::destroyed, this, [this, surface](){ this->onSurfaceDestroyed(surface); });
147+}
148+
149+void TopLevelSurfaceList::onSurfaceDied(MirSurfaceInterface *surface)
150+{
151+ int i = indexOf(surface);
152+ if (i == -1) {
153+ return;
154+ }
155+
156+ auto application = m_surfaceList[i].application;
157+
158+ // can't be starting if it already has a surface
159+ Q_ASSERT(application->state() != ApplicationInfoInterface::Starting);
160+
161+ if (application->state() == ApplicationInfoInterface::Running) {
162+ m_surfaceList[i].removeOnceSurfaceDestroyed = true;
163+ } else {
164+ // assume it got killed by the out-of-memory daemon.
165+ //
166+ // So leave entry in the model and only remove its surface, so shell can display a screenshot
167+ // in its place.
168+ m_surfaceList[i].removeOnceSurfaceDestroyed = false;
169+ }
170+}
171+
172+void TopLevelSurfaceList::onSurfaceDestroyed(MirSurfaceInterface *surface)
173+{
174+ int i = indexOf(surface);
175+ if (i == -1) {
176+ return;
177+ }
178+
179+ if (m_surfaceList[i].removeOnceSurfaceDestroyed) {
180+ removeAt(i);
181+ } else {
182+ m_surfaceList[i].surface = nullptr;
183+ Q_EMIT dataChanged(index(i) /* topLeft */, index(i) /* bottomRight */, QVector<int>() << SurfaceRole);
184+ DEBUG_MSG << " Removed surface from entry. After: " << toString();
185+ }
186+}
187+
188+void TopLevelSurfaceList::removeAt(int index)
189+{
190+ if (m_modelState == IdleState) {
191+ beginRemoveRows(QModelIndex(), index, index);
192+ m_modelState = RemovingState;
193+ } else {
194+ Q_ASSERT(m_modelState == ResettingState);
195+ // No point in signaling anything if we're resetting the whole model
196+ }
197+
198+ m_surfaceList.removeAt(index);
199+
200+ if (m_modelState == RemovingState) {
201+ endRemoveRows();
202+ Q_EMIT countChanged();
203+ Q_EMIT listChanged();
204+ m_modelState = IdleState;
205+ }
206+
207+ DEBUG_MSG << " after " << toString();
208+}
209+
210+int TopLevelSurfaceList::indexOf(MirSurfaceInterface *surface)
211+{
212+ for (int i = 0; i < m_surfaceList.count(); ++i) {
213+ if (m_surfaceList.at(i).surface == surface) {
214+ return i;
215+ }
216+ }
217+ return -1;
218+}
219+
220+void TopLevelSurfaceList::move(int from, int to)
221+{
222+ if (from == to) return;
223+ DEBUG_MSG << " from=" << from << " to=" << to;
224+
225+ if (from >= 0 && from < m_surfaceList.size() && to >= 0 && to < m_surfaceList.size()) {
226+ QModelIndex parent;
227+ /* When moving an item down, the destination index needs to be incremented
228+ by one, as explained in the documentation:
229+ http://qt-project.org/doc/qt-5.0/qtcore/qabstractitemmodel.html#beginMoveRows */
230+
231+ Q_ASSERT(m_modelState == IdleState);
232+ m_modelState = MovingState;
233+
234+ beginMoveRows(parent, from, from, parent, to + (to > from ? 1 : 0));
235+ m_surfaceList.move(from, to);
236+ endMoveRows();
237+ Q_EMIT listChanged();
238+
239+ m_modelState = IdleState;
240+
241+ DEBUG_MSG << " after " << toString();
242+ }
243+}
244+
245+MirSurfaceInterface *TopLevelSurfaceList::surfaceAt(int index) const
246+{
247+ if (index >=0 && index < m_surfaceList.count()) {
248+ return m_surfaceList[index].surface;
249+ } else {
250+ return nullptr;
251+ }
252+}
253+
254+ApplicationInfoInterface *TopLevelSurfaceList::applicationAt(int index) const
255+{
256+ if (index >=0 && index < m_surfaceList.count()) {
257+ return m_surfaceList[index].application;
258+ } else {
259+ return nullptr;
260+ }
261+}
262+
263+int TopLevelSurfaceList::idAt(int index) const
264+{
265+ if (index >=0 && index < m_surfaceList.count()) {
266+ return m_surfaceList[index].id;
267+ } else {
268+ return 0;
269+ }
270+}
271+
272+int TopLevelSurfaceList::indexForId(int id) const
273+{
274+ for (int i = 0; i < m_surfaceList.count(); ++i) {
275+ if (m_surfaceList[i].id == id) {
276+ return i;
277+ }
278+ }
279+ return -1;
280+}
281+
282+void TopLevelSurfaceList::doRaiseId(int id)
283+{
284+ int fromIndex = indexForId(id);
285+ if (fromIndex != -1) {
286+ move(fromIndex, 0 /* toIndex */);
287+ }
288+}
289+
290+void TopLevelSurfaceList::raiseId(int id)
291+{
292+ if (m_modelState == IdleState) {
293+ DEBUG_MSG << "(id=" << id << ") - do it now.";
294+ doRaiseId(id);
295+ } else {
296+ DEBUG_MSG << "(id=" << id << ") - Model busy (modelState=" << m_modelState << "). Try again in the next event loop.";
297+ // The model has just signalled some change. If we have a Repeater responding to this update, it will get nuts
298+ // if we perform yet another model change straight away.
299+ //
300+ // A bad sympton of this problem is a Repeater.itemAt(index) call returning null event though Repeater.count says
301+ // the index is definitely within bounds.
302+ QMetaObject::invokeMethod(this, "raiseId", Qt::QueuedConnection, Q_ARG(int, id));
303+ }
304+}
305+
306+int TopLevelSurfaceList::generateId()
307+{
308+ int id = m_nextId;
309+ m_nextId = nextFreeId(m_nextId + 1);
310+ Q_EMIT nextIdChanged();
311+ return id;
312+}
313+
314+int TopLevelSurfaceList::nextFreeId(int candidateId)
315+{
316+ if (candidateId > m_maxId) {
317+ return nextFreeId(1);
318+ } else {
319+ if (indexForId(candidateId) == -1) {
320+ // it's indeed free
321+ return candidateId;
322+ } else {
323+ return nextFreeId(candidateId + 1);
324+ }
325+ }
326+}
327+
328+QString TopLevelSurfaceList::toString()
329+{
330+ QString str;
331+ for (int i = 0; i < m_surfaceList.count(); ++i) {
332+ auto item = m_surfaceList.at(i);
333+
334+ QString itemStr = QString("(index=%1,appId=%2,surface=0x%3,id=%4)")
335+ .arg(i)
336+ .arg(item.application->appId())
337+ .arg((qintptr)item.surface, 0, 16)
338+ .arg(item.id);
339+
340+ if (i > 0) {
341+ str.append(",");
342+ }
343+ str.append(itemStr);
344+ }
345+ return str;
346+}
347+
348+void TopLevelSurfaceList::addApplication(ApplicationInfoInterface *application)
349+{
350+ DEBUG_MSG << "(" << application->appId() << ")";
351+ Q_ASSERT(!m_applications.contains(application));
352+ m_applications.append(application);
353+
354+ MirSurfaceListInterface *surfaceList = application->surfaceList();
355+
356+ if (application->state() != ApplicationInfoInterface::Stopped) {
357+ if (surfaceList->count() == 0) {
358+ appendPlaceholder(application);
359+ } else {
360+ for (int i = 0; i < surfaceList->count(); ++i) {
361+ appendSurface(surfaceList->get(i), application);
362+ }
363+ }
364+ }
365+
366+ connect(surfaceList, &QAbstractItemModel::rowsInserted, this,
367+ [this, application, surfaceList](const QModelIndex & /*parent*/, int first, int last)
368+ {
369+ for (int i = last; i >= first; --i) {
370+ this->appendSurface(surfaceList->get(i), application);
371+ }
372+ });
373+}
374+
375+void TopLevelSurfaceList::removeApplication(ApplicationInfoInterface *application)
376+{
377+ DEBUG_MSG << "(" << application->appId() << ")";
378+ Q_ASSERT(m_applications.contains(application));
379+
380+ MirSurfaceListInterface *surfaceList = application->surfaceList();
381+
382+ disconnect(surfaceList, 0, this, 0);
383+
384+ Q_ASSERT(m_modelState == IdleState);
385+ m_modelState = RemovingState;
386+
387+ int i = 0;
388+ while (i < m_surfaceList.count()) {
389+ if (m_surfaceList.at(i).application == application) {
390+ beginRemoveRows(QModelIndex(), i, i);
391+ m_surfaceList.removeAt(i);
392+ endRemoveRows();
393+ Q_EMIT countChanged();
394+ Q_EMIT listChanged();
395+ } else {
396+ ++i;
397+ }
398+ }
399+
400+ m_modelState = IdleState;
401+
402+ DEBUG_MSG << " after " << toString();
403+
404+ m_applications.removeAll(application);
405+}
406+
407+QAbstractListModel *TopLevelSurfaceList::applicationsModel() const
408+{
409+ return m_applicationsModel;
410+}
411+
412+void TopLevelSurfaceList::setApplicationsModel(QAbstractListModel* value)
413+{
414+ if (m_applicationsModel == value) {
415+ return;
416+ }
417+
418+ DEBUG_MSG << "(" << value << ")";
419+
420+ Q_ASSERT(m_modelState == IdleState);
421+ m_modelState = ResettingState;
422+
423+ beginResetModel();
424+
425+ if (m_applicationsModel) {
426+ m_surfaceList.clear();
427+ m_applications.clear();
428+ disconnect(m_applicationsModel, 0, this, 0);
429+ }
430+
431+ m_applicationsModel = value;
432+
433+ if (m_applicationsModel) {
434+ findApplicationRole();
435+
436+ connect(m_applicationsModel, &QAbstractItemModel::rowsInserted,
437+ this, [this](const QModelIndex &/*parent*/, int first, int last) {
438+ for (int i = first; i <= last; ++i) {
439+ auto application = getApplicationFromModelAt(i);
440+ addApplication(application);
441+ }
442+ });
443+
444+ connect(m_applicationsModel, &QAbstractItemModel::rowsAboutToBeRemoved,
445+ this, [this](const QModelIndex &/*parent*/, int first, int last) {
446+ for (int i = first; i <= last; ++i) {
447+ auto application = getApplicationFromModelAt(i);
448+ removeApplication(application);
449+ }
450+ });
451+
452+ for (int i = 0; i < m_applicationsModel->rowCount(); ++i) {
453+ auto application = getApplicationFromModelAt(i);
454+ addApplication(application);
455+ }
456+ }
457+
458+ endResetModel();
459+ m_modelState = IdleState;
460+}
461+
462+ApplicationInfoInterface *TopLevelSurfaceList::getApplicationFromModelAt(int index)
463+{
464+ QModelIndex modelIndex = m_applicationsModel->index(index);
465+
466+ QVariant variant = m_applicationsModel->data(modelIndex, m_applicationRole);
467+
468+ // variant.value<ApplicationInfoInterface*>() returns null for some reason.
469+ return static_cast<ApplicationInfoInterface*>(variant.value<QObject*>());
470+}
471+
472+void TopLevelSurfaceList::findApplicationRole()
473+{
474+ QHash<int, QByteArray> namesHash = m_applicationsModel->roleNames();
475+
476+ m_applicationRole = -1;
477+ for (auto i = namesHash.begin(); i != namesHash.end() && m_applicationRole == -1; ++i) {
478+ if (i.value() == "application") {
479+ m_applicationRole = i.key();
480+ }
481+ }
482+
483+ if (m_applicationRole == -1) {
484+ qFatal("TopLevelSurfaceList: applicationsModel must have a \"application\" role.");
485+ }
486+}
plugins/WindowManager/TopLevelSurfaceList.hnew file+223
@@ -0,0 +1,223 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef TOPLEVELSURFACELIST_H
18+#define TOPLEVELSURFACELIST_H
19+
20+#include <QAbstractListModel>
21+#include <QList>
22+#include <QLoggingCategory>
23+
24+Q_DECLARE_LOGGING_CATEGORY(UNITY_TOPSURFACELIST)
25+
26+namespace unity {
27+ namespace shell {
28+ namespace application {
29+ class ApplicationInfoInterface;
30+ class MirSurfaceInterface;
31+ }
32+ }
33+}
34+
35+/**
36+ * @brief A model of top-level surfaces
37+ *
38+ * It's an abstraction of top-level application windows.
39+ *
40+ * When an entry first appears, it normaly doesn't have a surface yet, meaning that the application is
41+ * still starting up. A shell should then display a splash screen or saved screenshot of the application
42+ * until its surface comes up.
43+ *
44+ * As applications can have multiple surfaces and you can also have entries without surfaces at all,
45+ * the only way to unambiguously refer to an entry in this model is through its id.
46+ */
47+class TopLevelSurfaceList : public QAbstractListModel
48+{
49+
50+ Q_OBJECT
51+
52+ /**
53+ * @brief A list model of applications.
54+ *
55+ * It's expected to have a role called "application" which returns a ApplicationInfoInterface
56+ */
57+ Q_PROPERTY(QAbstractListModel* applicationsModel READ applicationsModel
58+ WRITE setApplicationsModel
59+ NOTIFY applicationsModelChanged)
60+
61+ /**
62+ * @brief Number of top-level surfaces in this model
63+ *
64+ * This is the same as rowCount, added in order to keep compatibility with QML ListModels.
65+ */
66+ Q_PROPERTY(int count READ rowCount NOTIFY countChanged)
67+
68+ /**
69+ The id to be used on the next entry created
70+ Useful for tests
71+ */
72+ Q_PROPERTY(int nextId READ nextId NOTIFY nextIdChanged)
73+public:
74+
75+ /**
76+ * @brief The Roles supported by the model
77+ *
78+ * SurfaceRole - A MirSurfaceInterface. It will be null if the application is still starting up
79+ * ApplicationRole - An ApplicationInfoInterface
80+ * IdRole - A unique identifier for this entry. Useful to unambiguosly track elements as they move around in the list
81+ */
82+ enum Roles {
83+ SurfaceRole = Qt::UserRole,
84+ ApplicationRole = Qt::UserRole + 1,
85+ IdRole = Qt::UserRole + 2,
86+ };
87+
88+ explicit TopLevelSurfaceList(QObject *parent = nullptr);
89+ virtual ~TopLevelSurfaceList();
90+
91+ // QAbstractItemModel methods
92+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
93+ QVariant data(const QModelIndex& index, int role) const override;
94+ QHash<int, QByteArray> roleNames() const override {
95+ QHash<int, QByteArray> roleNames { {SurfaceRole, "surface"},
96+ {ApplicationRole, "application"},
97+ {IdRole, "id"} };
98+ return roleNames;
99+ }
100+
101+ int nextId() const { return m_nextId; }
102+
103+ QAbstractListModel *applicationsModel() const;
104+ void setApplicationsModel(QAbstractListModel*);
105+
106+public Q_SLOTS:
107+ /**
108+ * @brief Returns the surface at the given index
109+ *
110+ * It will be a nullptr if the application is still starting up and thus hasn't yet created
111+ * and drawn into a surface.
112+ */
113+ unity::shell::application::MirSurfaceInterface *surfaceAt(int index) const;
114+
115+ /**
116+ * @brief Returns the application at the given index
117+ */
118+ unity::shell::application::ApplicationInfoInterface *applicationAt(int index) const;
119+
120+ /**
121+ * @brief Returns the unique id of the element at the given index
122+ */
123+ int idAt(int index) const;
124+
125+ /**
126+ * @brief Returns the index where the row with the given id is located
127+ *
128+ * Returns -1 if there's no row with the given id.
129+ */
130+ int indexForId(int id) const;
131+
132+ /**
133+ * @brief Raises the row with the given id to index 0
134+ */
135+ void raiseId(int id);
136+
137+ void doRaiseId(int id);
138+
139+Q_SIGNALS:
140+ void countChanged();
141+
142+ /**
143+ * @brief Emitted when the list changes
144+ *
145+ * Emitted when model gains an element, loses an element or when elements exchange positions.
146+ */
147+ void listChanged();
148+
149+ void nextIdChanged();
150+
151+ void applicationsModelChanged();
152+
153+private:
154+ void addApplication(unity::shell::application::ApplicationInfoInterface *application);
155+ void removeApplication(unity::shell::application::ApplicationInfoInterface *application);
156+
157+ int indexOf(unity::shell::application::MirSurfaceInterface *surface);
158+ void raise(unity::shell::application::MirSurfaceInterface *surface);
159+ void move(int from, int to);
160+ void appendSurfaceHelper(unity::shell::application::MirSurfaceInterface *surface,
161+ unity::shell::application::ApplicationInfoInterface *application);
162+ void connectSurface(unity::shell::application::MirSurfaceInterface *surface);
163+ int generateId();
164+ int nextFreeId(int candidateId);
165+ QString toString();
166+ void onSurfaceDestroyed(unity::shell::application::MirSurfaceInterface *surface);
167+ void onSurfaceDied(unity::shell::application::MirSurfaceInterface *surface);
168+ void removeAt(int index);
169+ void findApplicationRole();
170+
171+ unity::shell::application::ApplicationInfoInterface *getApplicationFromModelAt(int index);
172+
173+ /*
174+ Placeholder for a future surface from a starting or running application.
175+ Enables shell to give immediate feedback to the user by showing, eg,
176+ a splash screen.
177+
178+ It's a model row containing a null surface and the given application.
179+ */
180+ void appendPlaceholder(unity::shell::application::ApplicationInfoInterface *application);
181+
182+ /*
183+ Adds a model row with the given surface and application
184+
185+ Alternatively, if a placeholder exists for the given application it's
186+ filled with the given surface instead.
187+ */
188+ void appendSurface(unity::shell::application::MirSurfaceInterface *surface,
189+ unity::shell::application::ApplicationInfoInterface *application);
190+
191+ struct ModelEntry {
192+ ModelEntry(unity::shell::application::MirSurfaceInterface *surface, unity::shell::application::ApplicationInfoInterface *application, int id)
193+ : surface(surface), application(application), id(id) {}
194+ unity::shell::application::MirSurfaceInterface *surface;
195+ unity::shell::application::ApplicationInfoInterface *application;
196+ int id;
197+ bool removeOnceSurfaceDestroyed{false};
198+ };
199+
200+ QList<ModelEntry> m_surfaceList;
201+ int m_nextId{1};
202+ static const int m_maxId{1000000};
203+
204+ // applications that are being monitored
205+ QList<unity::shell::application::ApplicationInfoInterface *> m_applications;
206+
207+ QAbstractListModel* m_applicationsModel{nullptr};
208+ int m_applicationRole{-1};
209+
210+ enum ModelState {
211+ IdleState,
212+ InsertingState,
213+ RemovingState,
214+ MovingState,
215+ ResettingState
216+ };
217+ ModelState m_modelState{IdleState};
218+};
219+
220+Q_DECLARE_METATYPE(TopLevelSurfaceList*)
221+Q_DECLARE_METATYPE(QAbstractListModel*)
222+
223+#endif // TOPLEVELSURFACELIST_H
plugins/WindowManager/WindowManagerPlugin.cppnew file+28
@@ -0,0 +1,28 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "WindowManagerPlugin.h"
18+
19+#include "TopLevelSurfaceList.h"
20+
21+#include <QtQml>
22+
23+void WindowManagerPlugin::registerTypes(const char *uri)
24+{
25+ qmlRegisterType<TopLevelSurfaceList>(uri, 0, 1, "TopLevelSurfaceList");
26+
27+ qRegisterMetaType<QAbstractListModel*>("QAbstractListModel*");
28+}
plugins/WindowManager/WindowManagerPlugin.hnew file+32
@@ -0,0 +1,32 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef WINDOWMANAGER_PLUGIN_H
18+#define WINDOWMANAGER_PLUGIN_H
19+
20+#include <QtQml/QQmlEngine>
21+#include <QtQml/QQmlExtensionPlugin>
22+
23+class WindowManagerPlugin : public QQmlExtensionPlugin
24+{
25+ Q_OBJECT
26+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
27+
28+public:
29+ void registerTypes(const char *uri) override;
30+};
31+
32+#endif // WINDOWMANAGER_PLUGIN_H
plugins/WindowManager/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module WindowManager
2+plugin windowmanager-qml
plugins/Wizard/CMakeLists.txt+7−1
@@ -1,10 +1,16 @@
1+include_directories(${GLIB_INCLUDE_DIRS} ${GEONAMES_INCLUDE_DIRS})
2+
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+293−187
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+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,8 +15,8 @@ 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-03-13 05:50+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -73,64 +73,46 @@ 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:217
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:182
11496msgid "Yes"
11597msgstr "Yeey"
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr "Cayla"
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
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:200
129111msgctxt "Button: Power off the system"
130112msgid "Power off"
131113msgstr "Timmi hayis"
132114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:209
134116msgctxt "Button: Restart the system"
135117msgid "Restart"
136118msgstr "Wadir-qimbis"
@@ -173,42 +155,58 @@ msgstr ""
173155msgid "Close all"
174156msgstr "Inkih alif"
175157
176−#: qml/Dash/DashPageHeader.qml:270
158+#: qml/Dash/DashPageHeader.qml:337
177159msgctxt "Button: Open the Ubuntu Store"
178160msgid "Store"
179161msgstr ""
180162
181−#: qml/Dash/DashPageHeader.qml:277
163+#: qml/Dash/DashPageHeader.qml:344
182164msgctxt "Button: Start a search in the current dash scope"
183165msgid "Search"
184166msgstr "Goranto"
185167
186−#: qml/Dash/DashPageHeader.qml:287
168+#: qml/Dash/DashPageHeader.qml:354
187169msgctxt "Button: Show the current dash scope settings"
188170msgid "Settings"
189171msgstr "Massosu"
190172
191−#: qml/Dash/DashPageHeader.qml:294
173+#: qml/Dash/DashPageHeader.qml:361
192174msgid "Remove from Favorites"
193175msgstr ""
194176
195−#: qml/Dash/DashPageHeader.qml:294
177+#: qml/Dash/DashPageHeader.qml:361
196178msgid "Add to Favorites"
197179msgstr ""
198180
199−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
200−msgid "See less"
181+#: qml/Dash/FiltersPopover.qml:60
182+msgid "Refine your results"
201183msgstr ""
202184
203−#: qml/Dash/GenericScopeView.qml:567
204−msgid "See all"
185+#: qml/Dash/FiltersPopover.qml:69
186+msgid "Reset"
205187msgstr ""
206188
207−#: qml/Dash/GenericScopeView.qml:629
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190+msgid "Show less"
191+msgstr ""
192+
193+#: qml/Dash/GenericScopeView.qml:579
194+msgid "Show all"
195+msgstr ""
196+
197+#: qml/Dash/GenericScopeView.qml:636
208198msgctxt "Label: Hint for dash search line edit"
209199msgid "Search"
210200msgstr "Goranto"
211201
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+
212210#: qml/Dash/Previews/PreviewActionCombo.qml:35
213211msgid "More..."
214212msgstr ""
@@ -276,11 +274,11 @@ msgstr "Qagis"
276274msgid "Tap to unlock"
277275msgstr ""
278276
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
280278msgid "Sorry, incorrect passphrase."
281279msgstr ""
282280
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
284282msgid "Sorry, incorrect passcode."
285283msgstr ""
286284
@@ -305,7 +303,7 @@ msgstr ""
305303msgid "Enter %1"
306304msgstr "%1 culus"
307305
308−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
309307msgid "Enter passphrase"
310308msgstr "Tatur-maxco culus"
311309
@@ -331,7 +329,7 @@ msgstr ""
331329msgid "Sorry, incorrect passcode"
332330msgstr ""
333331
334−#: qml/Notifications/NotificationMenuItemFactory.qml:129
332+#: qml/Notifications/NotificationMenuItemFactory.qml:124
335333msgid "Show password"
336334msgstr "Cuumita uybulluy"
337335
@@ -343,62 +341,62 @@ msgstr ""
343341msgid "Conference"
344342msgstr "Koboxu"
345343
346−#: qml/Panel/Indicators/MenuItemFactory.qml:752
344+#: qml/Panel/Indicators/MenuItemFactory.qml:762
347345msgid "Nothing is playing"
348346msgstr ""
349347
350−#: qml/Panel/Indicators/MenuItemFactory.qml:881
348+#: qml/Panel/Indicators/MenuItemFactory.qml:891
351349#, qt-format
352350msgid "%1 hour"
353351msgid_plural "%1 hours"
354352msgstr[0] "%1 saaqata"
355353msgstr[1] "%1 saaqata"
356354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:885
355+#: qml/Panel/Indicators/MenuItemFactory.qml:895
358356#, qt-format
359357msgid "%1 minute"
360358msgid_plural "%1 minutes"
361359msgstr[0] "%1 miniti"
362360msgstr[1] "%1 miniti"
363361
364−#: qml/Panel/Indicators/MenuItemFactory.qml:890
362+#: qml/Panel/Indicators/MenuItemFactory.qml:900
365363#, qt-format
366364msgid "%1 second"
367365msgid_plural "%1 seconds"
368366msgstr[0] "%1 nammayye"
369367msgstr[1] "%1 nammayye"
370368
371−#: qml/Panel/Indicators/MenuItemFactory.qml:893
369+#: qml/Panel/Indicators/MenuItemFactory.qml:903
372370msgid "0 seconds"
373371msgstr "0 nammayye"
374372
375373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
376−#: qml/Panel/Indicators/MenuItemFactory.qml:895
374+#: qml/Panel/Indicators/MenuItemFactory.qml:905
377375#, qt-format
378376msgid "%1 remaining"
379377msgstr "%1 raaqe"
380378
381−#: qml/Panel/Indicators/MenuItemFactory.qml:901
379+#: qml/Panel/Indicators/MenuItemFactory.qml:911
382380msgid "In queue…"
383381msgstr ""
384382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:905
383+#: qml/Panel/Indicators/MenuItemFactory.qml:915
386384msgid "Downloading"
387385msgstr "Qulluumah"
388386
389−#: qml/Panel/Indicators/MenuItemFactory.qml:907
387+#: qml/Panel/Indicators/MenuItemFactory.qml:917
390388msgid "Paused, tap to resume"
391389msgstr ""
392390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:909
391+#: qml/Panel/Indicators/MenuItemFactory.qml:919
394392msgid "Canceled"
395393msgstr "Bayteh"
396394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:911
395+#: qml/Panel/Indicators/MenuItemFactory.qml:921
398396msgid "Finished"
399397msgstr "Duudumteh"
400398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:913
399+#: qml/Panel/Indicators/MenuItemFactory.qml:923
402400msgid "Failed, tap to retry"
403401msgstr ""
404402
@@ -418,244 +416,352 @@ msgctxt "Button: Call back on phone"
418416msgid "Call back"
419417msgstr ""
420418
421−#: qml/Tutorial/TutorialBottom.qml:28
422−msgid "Open special menus"
419+#: qml/Stages/SideStage.qml:76
420+msgid "Drag using 3 fingers any application from one window to the other"
423421msgstr ""
424422
425−#: qml/Tutorial/TutorialBottom.qml:29
426−msgid "Swipe up from the bottom edge."
423+#: qml/Tutorial/TutorialBottom.qml:78
424+msgid "Swipe up to add a contact"
427425msgstr ""
428426
429−#: qml/Tutorial/TutorialBottomFinish.qml:24
430−msgid "This action does different things for different apps"
427+#: qml/Tutorial/TutorialBottom.qml:80
428+msgid "Swipe up for favorite calculations"
431429msgstr ""
432430
433−#: qml/Tutorial/TutorialBottomFinish.qml:25
434−msgid "Tap here to finish."
431+#: qml/Tutorial/TutorialBottom.qml:82
432+msgid "Swipe up for recent calls"
435433msgstr ""
436434
437−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
438−#: qml/Tutorial/TutorialRight.qml:144
439−msgid "Tap here to continue."
435+#: qml/Tutorial/TutorialBottom.qml:84
436+msgid "Swipe up to create a message"
440437msgstr ""
441438
442−#: qml/Tutorial/TutorialLeft.qml:26
443−msgid "Open the launcher"
439+#: qml/Tutorial/TutorialBottom.qml:85
440+msgid "Swipe up to manage the app"
444441msgstr ""
445442
446−#: qml/Tutorial/TutorialLeft.qml:27
447−msgid "Short swipe from the left edge."
443+#: qml/Tutorial/TutorialLeftLong.qml:47
444+msgid "Long swipe from the left edge to open the Today scope"
448445msgstr ""
449446
450−#: qml/Tutorial/TutorialLeftFinish.qml:24
451−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"
452449msgstr ""
453450
454−#: qml/Tutorial/TutorialPage.qml:178
455−msgid "You almost got it!"
451+#: qml/Tutorial/TutorialRight.qml:55
452+msgid "Push your mouse against the right edge to view your open apps"
456453msgstr ""
457454
458−#: qml/Tutorial/TutorialPage.qml:195
459−msgid "Try again."
455+#: qml/Tutorial/TutorialRight.qml:56
456+msgid "Short or long swipe from the right edge to view your open apps"
460457msgstr ""
461458
462−#: qml/Tutorial/TutorialRight.qml:31
463−msgid "To view open apps"
459+#: qml/Tutorial/TutorialTop.qml:53
460+msgid "Swipe from the top right edge to open the notification bar"
464461msgstr ""
465462
466−#: qml/Tutorial/TutorialRight.qml:32
467−msgid "Long swipe from the right edge."
463+#: qml/Tutorial/TutorialTop.qml:54
464+msgid "Swipe from the top edge to open the notification bar"
468465msgstr ""
469466
470−#: qml/Tutorial/TutorialRight.qml:122
471−msgid "View all your running tasks."
472−msgstr ""
473−
474−#: qml/Wizard/Page.qml:89
467+#: qml/Wizard/Page.qml:54
475468msgctxt "Button: Go back one page in the Wizard"
476469msgid "Back"
477470msgstr "Derre"
478471
479472#: qml/Wizard/Pages/10-welcome.qml:27
480−msgid "Hi!"
481−msgstr "Nagaale!"
473+msgid "Language"
474+msgstr ""
482475
483−#: qml/Wizard/Pages/10-welcome.qml:44
484−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"
485483msgstr ""
486484
487−#: qml/Wizard/Pages/10-welcome.qml:52
488−msgid "Let’s get started."
489−msgstr "Hayya qimbisnay."
485+#: qml/Wizard/Pages/30-wifi.qml:29
486+msgid "Connect to Wi‑Fi"
487+msgstr ""
490488
491−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
492−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
493−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
494−#: qml/Wizard/Pages/passwd-set.qml:90
495−msgid "Continue"
496−msgstr "Tatur"
489+#: qml/Wizard/Pages/30-wifi.qml:130
490+msgid "Connected"
491+msgstr ""
497492
498−#: qml/Wizard/Pages/20-sim.qml:25
499−msgid "Add a SIM card and restart your device"
493+#: qml/Wizard/Pages/30-wifi.qml:163
494+msgid "Available Wi-Fi networks"
500495msgstr ""
501496
502−#: qml/Wizard/Pages/20-sim.qml:59
503−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"
504499msgstr ""
505500
506−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502+#: qml/Wizard/Pages/sim.qml:101
507503msgid "Skip"
508504msgstr "Kaqit"
509505
510−#: qml/Wizard/Pages/30-passwd-type.qml:39
511−msgid "Lock security"
506+#: qml/Wizard/Pages/40-location.qml:27
507+msgid "Location Services"
508+msgstr ""
509+
510+#: qml/Wizard/Pages/40-location.qml:83
511+msgid ""
512+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
513+"(recommended)"
514+msgstr ""
515+
516+#: qml/Wizard/Pages/40-location.qml:105
517+#, qt-format
518+msgid "By selecting this option you agree to the Nokia HERE %1."
512519msgstr ""
513520
514−#: qml/Wizard/Pages/30-passwd-type.qml:79
515−msgid "Please select how you’d like to unlock your device."
521+#: qml/Wizard/Pages/40-location.qml:106
522+msgctxt "part of: Nokia HERE terms and conditions"
523+msgid "terms and conditions"
516524msgstr ""
517525
518−#: qml/Wizard/Pages/30-passwd-type.qml:102
519−msgctxt "Label: Type of security method"
520−msgid "Swipe"
521−msgstr "Uysuttuc"
526+#: qml/Wizard/Pages/40-location.qml:160
527+msgid "GPS only"
528+msgstr ""
529+
530+#: qml/Wizard/Pages/40-location.qml:214
531+msgid "Don't use my location"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:260
535+msgid "You can change it later in System Settings."
536+msgstr ""
537+
538+#: qml/Wizard/Pages/50-timezone.qml:29
539+msgid "Time Zone"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/50-timezone.qml:178
543+msgid "Enter your city"
544+msgstr ""
522545
523−#: qml/Wizard/Pages/30-passwd-type.qml:103
524−msgctxt "Label: Description of security method"
525−msgid "No security"
546+#: qml/Wizard/Pages/60-account.qml:24
547+msgid "Personalize Your Device"
526548msgstr ""
527549
528−#: qml/Wizard/Pages/30-passwd-type.qml:105
550+#: qml/Wizard/Pages/60-account.qml:48
551+msgid "Preferred Name"
552+msgstr ""
553+
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
555+msgid "Lock Screen"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
529559msgctxt "Label: Type of security method"
530−msgid "Passcode"
560+msgid "Create new password"
531561msgstr ""
532562
533−#: qml/Wizard/Pages/30-passwd-type.qml:106
534−msgctxt "Label: Description of security method"
535−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)"
536566msgstr ""
537567
538−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
539569msgctxt "Label: Type of security method"
540−msgid "Passphrase"
570+msgid "No lock code"
541571msgstr ""
542572
543−#: qml/Wizard/Pages/30-passwd-type.qml:109
544−msgctxt "Label: Description of security method"
545−msgid "Numbers and letters"
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
574+msgid "Privacy Policy"
546575msgstr ""
547576
548−#: qml/Wizard/Pages/40-wifi.qml:29
549−msgid "Connect to Wi‑Fi"
577+#: qml/Wizard/Pages/75-report-check.qml:26
578+msgid "Help Us Improve"
550579msgstr ""
551580
552−#: qml/Wizard/Pages/40-wifi.qml:168
553−msgid "Available networks…"
581+#: qml/Wizard/Pages/75-report-check.qml:59
582+msgid "Improve system performance by sending us crashes and error reports."
554583msgstr ""
555584
556−#: qml/Wizard/Pages/40-wifi.qml:169
557−msgid "No available networks."
585+#: qml/Wizard/Pages/75-report-check.qml:60
586+msgid "Privacy policy"
558587msgstr ""
559588
560−#: qml/Wizard/Pages/50-location.qml:27
561−msgid "Location"
589+#: qml/Wizard/Pages/80-finished.qml:89
590+msgid "Welcome to Ubuntu"
562591msgstr ""
563592
564−#: qml/Wizard/Pages/50-location.qml:62
565−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"
566595msgstr ""
567596
568−#: qml/Wizard/Pages/50-location.qml:69
569−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"
570603msgstr ""
571604
572−#: qml/Wizard/Pages/50-location.qml:86
573−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."
574607msgstr ""
575608
576−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
577−#: qml/Wizard/Pages/50-location.qml:103
609+#: qml/Wizard/Pages/here-terms.qml:81
578610msgid ""
579−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
580−"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."
581614msgstr ""
582615
583−#: qml/Wizard/Pages/50-location.qml:112
584−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."
585620msgstr ""
586621
587−#: qml/Wizard/Pages/50-location.qml:124
588−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."
589625msgstr ""
590626
591−#: qml/Wizard/Pages/60-reporting.qml:26
592−msgid "Improving your experience"
627+#: qml/Wizard/Pages/here-terms.qml:107
628+msgid "Service Terms"
593629msgstr ""
594630
595−#: qml/Wizard/Pages/60-reporting.qml:46
596−msgid ""
597−"Your phone is set up to automatically report errors to Canonical and its "
598−"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"
599634msgstr ""
600635
601−#: qml/Wizard/Pages/60-reporting.qml:53
602−msgid ""
603−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
604−"Privacy</b>"
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
637+msgid "Incorrect passcode."
605638msgstr ""
606639
607−#: qml/Wizard/Pages/80-finished.qml:24
608−msgid "All done"
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
641+msgctxt "Enter the passcode again"
642+msgid "Please re-enter."
609643msgstr ""
610644
611−#: qml/Wizard/Pages/80-finished.qml:39
612−msgid "Nice work!"
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
646+msgid "Lock Screen Passcode"
613647msgstr ""
614648
615−#: qml/Wizard/Pages/80-finished.qml:46
616−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"
617651msgstr ""
618652
619−#: qml/Wizard/Pages/80-finished.qml:53
620−msgid "Finish"
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
621656msgstr ""
622657
623−#: qml/Wizard/Pages/here-terms.qml:27
624−msgid "Terms & Conditions"
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
659+msgid "Passcode too short"
625660msgstr ""
626661
627−#: qml/Wizard/Pages/passwd-confirm.qml:49
628−msgid "Confirm passphrase"
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
663+msgid "Passcodes match"
629664msgstr ""
630665
631−#: qml/Wizard/Pages/passwd-confirm.qml:50
632−msgid "Confirm passcode"
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
667+msgid "Passcodes do not match"
633668msgstr ""
634669
635−#: qml/Wizard/Pages/passwd-confirm.qml:53
636−#: qml/Wizard/Pages/passwd-confirm.qml:54
637−msgid "Please try again."
670+#: qml/Wizard/Pages/passcode-set.qml:62
671+msgid "Passcode must be 4 characters long"
638672msgstr ""
639673
640−#: qml/Wizard/Pages/passwd-set.qml:61
641−msgid "Choose your passcode"
674+#: qml/Wizard/Pages/password-set.qml:30
675+msgid "Lock Screen Password"
642676msgstr ""
643677
644−#: qml/Wizard/Pages/passwd-set.qml:68
645−msgid "Passphrase must be 4 characters long"
678+#: qml/Wizard/Pages/password-set.qml:61
679+msgid "Enter at least 8 characters"
646680msgstr ""
647681
648−#. Translators: This is the arrow for "Back" buttons
649−#: qml/Wizard/StackButton.qml:39
650−#, qt-format
651−msgid "〈 %1"
682+#: qml/Wizard/Pages/password-set.qml:73
683+msgid "Choose password"
652684msgstr ""
653685
654−#. Translators: This is the arrow for "Forward" buttons
655−#: qml/Wizard/StackButton.qml:42
656−#, qt-format
657−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"
658704msgstr ""
659705
706+#: qml/Wizard/Pages/sim.qml:78
707+msgid "You won’t be able to make calls or use text messaging without a SIM."
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:90
711+msgid "To proceed with no SIM tap Skip."
712+msgstr ""
713+
714+#: qml/Wizard/PasswordMeter.qml:87
715+msgid "Passwords match"
716+msgstr ""
717+
718+#: qml/Wizard/PasswordMeter.qml:89
719+msgid "Passwords do not match"
720+msgstr ""
721+
722+#: qml/Wizard/PasswordMeter.qml:93
723+msgid "Strong password"
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:95
727+msgid "Fair password"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:97
731+msgid "Weak password"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:99
735+msgid "Very weak password"
736+msgstr ""
737+
738+#~ msgctxt "Title: Reboot/Shut down dialog"
739+#~ msgid "Shut down"
740+#~ msgstr "Bargus"
741+
742+#~ msgid "Are you sure you want to shut down?"
743+#~ msgstr "Bargussuh digga maay litoo?"
744+
745+#~ msgctxt "Button: Shut down the system"
746+#~ msgid "Shut down"
747+#~ msgstr "Bargus"
748+
749+#~ msgctxt "Button: Reboot the system"
750+#~ msgid "Reboot"
751+#~ msgstr "Wadir-ugus"
752+
753+#~ msgctxt "Label: Type of security method"
754+#~ msgid "Swipe"
755+#~ msgstr "Uysuttuc"
756+
757+#~ msgid "Hi!"
758+#~ msgstr "Nagaale!"
759+
660760#~ msgid "Welcome to your Ubuntu phone."
661761#~ msgstr "Ubuntu Telefoonul arcib"
762+
763+#~ msgid "Let’s get started."
764+#~ msgstr "Hayya qimbisnay."
765+
766+#~ msgid "Continue"
767+#~ msgstr "Tatur"
po/am.po+499−255
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-03-10 22:48+0000\n"
11−"PO-Revision-Date: 2015-11-19 19:27+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+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-03-13 05:50+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -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:217
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:182
11496msgid "Yes"
11597msgstr "አዎ"
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr "ሐይል"
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
123105msgid ""
124106"Are you sure you would like\n"
125107"to power off?"
@@ -127,12 +109,12 @@ msgstr ""
127109"በእርግጥ ሐይሉን ማጥፋት\n"
128110"ይፈልጋሉ?"
129111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:200
131113msgctxt "Button: Power off the system"
132114msgid "Power off"
133115msgstr "ሐይል ማጥፊያ"
134116
135−#: qml/Components/Dialogs.qml:244
117+#: qml/Components/Dialogs.qml:209
136118msgctxt "Button: Restart the system"
137119msgid "Restart"
138120msgstr "እንደገና ማስጀመሪያ"
@@ -157,7 +139,7 @@ msgstr "መተግበሪያው ያልተቀመጠ ዳታ ይዟል:"
157139msgctxt ""
158140"Re-dock means connect the device again to an external screen/mouse/keyboard"
159141msgid "Re-dock, save your work and close these apps to continue."
160−msgstr ""
142+msgstr "እንደገና-ማሳረፊያ: ስራዎትን ያስቀምጡ እና ይዝጉ መተግበሪያው እንዲቀጥል"
161143
162144#: qml/Components/ModeSwitchWarningDialog.qml:63
163145msgid "Or force close now (unsaved data will be lost)."
@@ -175,42 +157,58 @@ msgstr "አሁን እንደገና መገናኛ!"
175157msgid "Close all"
176158msgstr "ሁሉንም መዝጊያ"
177159
178−#: qml/Dash/DashPageHeader.qml:270
160+#: qml/Dash/DashPageHeader.qml:337
179161msgctxt "Button: Open the Ubuntu Store"
180162msgid "Store"
181163msgstr "ማስቀመጫ"
182164
183−#: qml/Dash/DashPageHeader.qml:277
165+#: qml/Dash/DashPageHeader.qml:344
184166msgctxt "Button: Start a search in the current dash scope"
185167msgid "Search"
186168msgstr "መፈለጊያ"
187169
188−#: qml/Dash/DashPageHeader.qml:287
170+#: qml/Dash/DashPageHeader.qml:354
189171msgctxt "Button: Show the current dash scope settings"
190172msgid "Settings"
191173msgstr "ማሰናጃዎች"
192174
193−#: qml/Dash/DashPageHeader.qml:294
175+#: qml/Dash/DashPageHeader.qml:361
194176msgid "Remove from Favorites"
195177msgstr "ከምወዳቸው ማስወገጃ"
196178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198180msgid "Add to Favorites"
199181msgstr "ወደምወዳቸው መጨመሪያ"
200182
201−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
202−msgid "See less"
203−msgstr "አነስተኛ መመልከቻ"
183+#: qml/Dash/FiltersPopover.qml:60
184+msgid "Refine your results"
185+msgstr "የ እርስዎን ውጤቶች እንደገና ማጣሪያ"
204186
205−#: qml/Dash/GenericScopeView.qml:567
206−msgid "See all"
207−msgstr "ሁሉንም መመልከቻ"
187+#: qml/Dash/FiltersPopover.qml:69
188+msgid "Reset"
189+msgstr "እንደ ነበረ መመለሻ"
190+
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192+msgid "Show less"
193+msgstr ""
208194
209−#: qml/Dash/GenericScopeView.qml:629
195+#: qml/Dash/GenericScopeView.qml:579
196+msgid "Show all"
197+msgstr ""
198+
199+#: qml/Dash/GenericScopeView.qml:636
210200msgctxt "Label: Hint for dash search line edit"
211201msgid "Search"
212202msgstr "መፈለጊያ"
213203
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+
214212#: qml/Dash/Previews/PreviewActionCombo.qml:35
215213msgid "More..."
216214msgstr "ተጨማሪ..."
@@ -264,7 +262,7 @@ msgstr "እንዲሁም የተገጠሙ"
264262msgid ""
265263"Your device is now connected to an external display. Use this screen as a "
266264"touch pad to interact with the pointer."
267−msgstr ""
265+msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ መጠቀሚያ"
268266
269267#: qml/Greeter/CoverPage.qml:118
270268msgid "Unlock"
@@ -278,11 +276,11 @@ msgstr "እንደገና ይሞክሩ"
278276msgid "Tap to unlock"
279277msgstr "ለመክፈት መታ ያድርጉ"
280278
281−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
282280msgid "Sorry, incorrect passphrase."
283281msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
284282
285−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
286284msgid "Sorry, incorrect passcode."
287285msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
288286
@@ -311,7 +309,7 @@ msgstr ""
311309msgid "Enter %1"
312310msgstr "ማስገቢያ %1"
313311
314−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
312+#: qml/Greeter/NarrowView.qml:117
315313msgid "Enter passphrase"
316314msgstr "የ ማለፊያ ሀረግ ያስገቡ"
317315
@@ -337,7 +335,7 @@ msgstr "እባክዎን እንደገና-ያስገቡ"
337335msgid "Sorry, incorrect passcode"
338336msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
339337
340−#: qml/Notifications/NotificationMenuItemFactory.qml:129
338+#: qml/Notifications/NotificationMenuItemFactory.qml:124
341339msgid "Show password"
342340msgstr "የመግቢያ ቃል ማሳያ"
343341
@@ -349,62 +347,62 @@ msgstr "ወደ ጥሪው ለመመለስ መታ ያድርጉ..."
349347msgid "Conference"
350348msgstr "ስብሰባ"
351349
352−#: qml/Panel/Indicators/MenuItemFactory.qml:752
350+#: qml/Panel/Indicators/MenuItemFactory.qml:762
353351msgid "Nothing is playing"
354352msgstr "ምንም አይጫወትም"
355353
356−#: qml/Panel/Indicators/MenuItemFactory.qml:881
354+#: qml/Panel/Indicators/MenuItemFactory.qml:891
357355#, qt-format
358356msgid "%1 hour"
359357msgid_plural "%1 hours"
360358msgstr[0] "%1 ሰአት"
361359msgstr[1] "%1 ሰአቶች"
362360
363−#: qml/Panel/Indicators/MenuItemFactory.qml:885
361+#: qml/Panel/Indicators/MenuItemFactory.qml:895
364362#, qt-format
365363msgid "%1 minute"
366364msgid_plural "%1 minutes"
367365msgstr[0] "%1 ደቂቃ"
368366msgstr[1] "%1 ደቂቃዎች"
369367
370−#: qml/Panel/Indicators/MenuItemFactory.qml:890
368+#: qml/Panel/Indicators/MenuItemFactory.qml:900
371369#, qt-format
372370msgid "%1 second"
373371msgid_plural "%1 seconds"
374372msgstr[0] "%1 ሰከንድ"
375373msgstr[1] "%1 ሰከንዶች"
376374
377−#: qml/Panel/Indicators/MenuItemFactory.qml:893
375+#: qml/Panel/Indicators/MenuItemFactory.qml:903
378376msgid "0 seconds"
379377msgstr "0 ሰከንዶች"
380378
381379#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
382−#: qml/Panel/Indicators/MenuItemFactory.qml:895
380+#: qml/Panel/Indicators/MenuItemFactory.qml:905
383381#, qt-format
384382msgid "%1 remaining"
385383msgstr "%1 የቀረው"
386384
387−#: qml/Panel/Indicators/MenuItemFactory.qml:901
385+#: qml/Panel/Indicators/MenuItemFactory.qml:911
388386msgid "In queue…"
389387msgstr "ወረፋ በመጠበቅ ላይ…"
390388
391−#: qml/Panel/Indicators/MenuItemFactory.qml:905
389+#: qml/Panel/Indicators/MenuItemFactory.qml:915
392390msgid "Downloading"
393391msgstr "በማውረድ ላይ"
394392
395−#: qml/Panel/Indicators/MenuItemFactory.qml:907
393+#: qml/Panel/Indicators/MenuItemFactory.qml:917
396394msgid "Paused, tap to resume"
397395msgstr "ማስቆሚያ: ለመቀጠል መታ ያድርጉ"
398396
399−#: qml/Panel/Indicators/MenuItemFactory.qml:909
397+#: qml/Panel/Indicators/MenuItemFactory.qml:919
400398msgid "Canceled"
401399msgstr "ተሰርዟል"
402400
403−#: qml/Panel/Indicators/MenuItemFactory.qml:911
401+#: qml/Panel/Indicators/MenuItemFactory.qml:921
404402msgid "Finished"
405403msgstr "ጨርሷል"
406404
407−#: qml/Panel/Indicators/MenuItemFactory.qml:913
405+#: qml/Panel/Indicators/MenuItemFactory.qml:923
408406msgid "Failed, tap to retry"
409407msgstr "አልተቻለም: እንደገና ለመሞከር መታ ያድርጉ"
410408
@@ -424,247 +422,326 @@ msgctxt "Button: Call back on phone"
424422msgid "Call back"
425423msgstr "መልሶ መደወያ"
426424
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."
433−msgstr "ከ ታች ጠርዝ በኩል ወደ ላይ ይጥረጉ"
425+#: qml/Stages/SideStage.qml:76
426+msgid "Drag using 3 fingers any application from one window to the other"
427+msgstr "መጎተቻ 3 ጣቶች በ መጠቀም ማንኛውንም መተግበሪያ ከ አንድ መስኮት ወደ ሌላ"
434428
435−#: qml/Tutorial/TutorialBottomFinish.qml:24
436−msgid "This action does different things for different apps"
437−msgstr "ይህ ተግባር ለተለያዩ መተግበሪያዎች የተለያየ ነገር ይሰራል"
429+#: qml/Tutorial/TutorialBottom.qml:78
430+msgid "Swipe up to add a contact"
431+msgstr "ወደ ላይ ይጥረጉ ግንኙነት ለ መጨመር"
438432
439−#: qml/Tutorial/TutorialBottomFinish.qml:25
440−msgid "Tap here to finish."
441−msgstr "እዚህ መታ ይድርጉ ለመጨረስ"
433+#: qml/Tutorial/TutorialBottom.qml:80
434+msgid "Swipe up for favorite calculations"
435+msgstr "ወደ ላይ ይጥረጉ የሚወዱትን ለማስላት"
442436
443−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
444−#: qml/Tutorial/TutorialRight.qml:144
445−msgid "Tap here to continue."
446−msgstr "እዚህ መታ ይድርጉ ለመቀጠል"
437+#: qml/Tutorial/TutorialBottom.qml:82
438+msgid "Swipe up for recent calls"
439+msgstr "ወደ ላይ ይጥረጉ ለ ቅርብ ጊዜ ጥሪዎች"
447440
448−#: qml/Tutorial/TutorialLeft.qml:26
449−msgid "Open the launcher"
450−msgstr "ማስጀመሪያውን መክፈቻ"
441+#: qml/Tutorial/TutorialBottom.qml:84
442+msgid "Swipe up to create a message"
443+msgstr "ወደ ላይ ይጥረጉ መልእክት ለ መፍጠር"
451444
452−#: qml/Tutorial/TutorialLeft.qml:27
453−msgid "Short swipe from the left edge."
454−msgstr "ከ ግራ ጠርዝ በኩል በትንሹ ይጥረጉ"
445+#: qml/Tutorial/TutorialBottom.qml:85
446+msgid "Swipe up to manage the app"
447+msgstr "ወደ ላይ ይጥረጉ መተግበሪያ ለማስተዳደር"
455448
456−#: qml/Tutorial/TutorialLeftFinish.qml:24
457−msgid "These are the shortcuts to favorite apps"
458−msgstr "እነዚህ አቋራጮች ናቸው እርስዎ ለሚወዷቸው መተግበሪያዎች"
449+#: qml/Tutorial/TutorialLeftLong.qml:47
450+msgid "Long swipe from the left edge to open the Today scope"
451+msgstr "በ ረጅሙ ከ ግራ ጠርዝ በኩል ይጥረጉ የ ዛሬን ክልል ለ መክፈት"
459452
460−#: qml/Tutorial/TutorialPage.qml:178
461−msgid "You almost got it!"
462−msgstr "እርስዎ አሁን እያገኙት ነው!"
453+#: qml/Tutorial/TutorialLeft.qml:47
454+msgid "Swipe from the left edge to open the launcher"
455+msgstr "ከ ግራ ጠርዝ በኩል ይጥረጉ ማስጀመሪያውን ለ መክፈት"
463456
464−#: qml/Tutorial/TutorialPage.qml:195
465−msgid "Try again."
466−msgstr "እንደገና ይሞክሩ"
457+#: qml/Tutorial/TutorialRight.qml:55
458+msgid "Push your mouse against the right edge to view your open apps"
459+msgstr ""
467460
468−#: qml/Tutorial/TutorialRight.qml:31
469−msgid "To view open apps"
470−msgstr "ለመመልከት መተግበሪያዎች ይክፈቱ"
461+#: qml/Tutorial/TutorialRight.qml:56
462+msgid "Short or long swipe from the right edge to view your open apps"
463+msgstr "በ አጭሩ ወይንም በ ረጅሙ ይጥረጉ ከ ቀኝ ጠረዝ በኩል የ ተከፈቱ መተግበሪያዎችን ለማየት"
471464
472−#: qml/Tutorial/TutorialRight.qml:32
473−msgid "Long swipe from the right edge."
474−msgstr "ከ ቀኝ ጠርዝ በኩል በረጅሙ ይጥረጉ"
465+#: qml/Tutorial/TutorialTop.qml:53
466+msgid "Swipe from the top right edge to open the notification bar"
467+msgstr "ከ ላይ ቀኝ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
475468
476−#: qml/Tutorial/TutorialRight.qml:122
477−msgid "View all your running tasks."
478−msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
469+#: qml/Tutorial/TutorialTop.qml:54
470+msgid "Swipe from the top edge to open the notification bar"
471+msgstr "ከ ላይ ጠርዝ በኩል ይጥረጉ የ ማስታወቂያ መደርደሪያ ለ መክፈት"
479472
480−#: qml/Wizard/Page.qml:89
473+#: qml/Wizard/Page.qml:54
481474msgctxt "Button: Go back one page in the Wizard"
482475msgid "Back"
483476msgstr "ወደ ኋላ"
484477
485478#: qml/Wizard/Pages/10-welcome.qml:27
486−msgid "Hi!"
487−msgstr "ሰላም"
488−
489−#: qml/Wizard/Pages/10-welcome.qml:44
490−msgid "Welcome to your Ubuntu device."
491−msgstr "እንኳን ድህና መጡ ወደ ኡቡንቱ"
492−
493−#: qml/Wizard/Pages/10-welcome.qml:52
494−msgid "Let’s get started."
495−msgstr "ስራ እንጀምር"
496−
497−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
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"
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"
502489msgstr "ይቀጥሉ"
503490
504−#: qml/Wizard/Pages/20-sim.qml:25
505−msgid "Add a SIM card and restart your device"
506−msgstr "የ ሲም ካርድ ይጨምሩ እና አካሉን እንደገና ያስነሱ"
491+#: qml/Wizard/Pages/30-wifi.qml:29
492+msgid "Connect to Wi‑Fi"
493+msgstr "ወደ ዋይ‑ፋይ መገናኛ"
494+
495+#: qml/Wizard/Pages/30-wifi.qml:130
496+msgid "Connected"
497+msgstr "ተገናኝቷል"
507498
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−msgstr "ያለ እሱ ጥሪ መፈጸም ወይንም የ ጽሁፍ መልእክት መላክ አይችሉም"
499+#: qml/Wizard/Pages/30-wifi.qml:163
500+msgid "Available Wi-Fi networks"
501+msgstr "ዝግጁ የ ዋይ-ፋይ ኔትዎርኮች"
511502
512−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
503+#: qml/Wizard/Pages/30-wifi.qml:164
504+msgid "No available Wi-Fi networks"
505+msgstr "ምንም ዝግጁ ዋይ-ፋይ ኔትዎርኮች አልተገኙም"
506+
507+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
508+#: qml/Wizard/Pages/sim.qml:101
513509msgid "Skip"
514510msgstr "መዝለያ"
515511
516−#: qml/Wizard/Pages/30-passwd-type.qml:39
517−msgid "Lock security"
518−msgstr "ደህንነት መቆለፊያ"
512+#: qml/Wizard/Pages/40-location.qml:27
513+msgid "Location Services"
514+msgstr "የ አካባቢ ግልጋሎት"
519515
520−#: qml/Wizard/Pages/30-passwd-type.qml:79
521−msgid "Please select how you’d like to unlock your device."
522−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 እና ተንቀሳቃሽ ኔትዎርክ ሳይታወቁ አካባቢ ለማግኘት (ይመከራሉ)"
523521
524−#: qml/Wizard/Pages/30-passwd-type.qml:102
525−msgctxt "Label: Type of security method"
526−msgid "Swipe"
527−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."
528526
529−#: qml/Wizard/Pages/30-passwd-type.qml:103
530−msgctxt "Label: Description of security method"
531−msgid "No security"
532−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 "ስምምነት እና ሁኔታዎች"
533531
534−#: qml/Wizard/Pages/30-passwd-type.qml:105
535−msgctxt "Label: Type of security method"
536−msgid "Passcode"
537−msgstr "ማለፊያ ኮድ"
532+#: qml/Wizard/Pages/40-location.qml:160
533+msgid "GPS only"
534+msgstr "ጂፒኤስ ብቻ"
538535
539−#: qml/Wizard/Pages/30-passwd-type.qml:106
540−msgctxt "Label: Description of security method"
541−msgid "4 digits only"
542−msgstr "4 ዲጂት ብቻ"
536+#: qml/Wizard/Pages/40-location.qml:214
537+msgid "Don't use my location"
538+msgstr "የ እኔን አካባቢ አትጠቀም"
543539
544−#: qml/Wizard/Pages/30-passwd-type.qml:108
545−msgctxt "Label: Type of security method"
546−msgid "Passphrase"
547−msgstr "የማለፊያ ሐረግ"
540+#: qml/Wizard/Pages/40-location.qml:260
541+msgid "You can change it later in System Settings."
542+msgstr "እርስዎ በኋላ በ ስርአት ማሰናጃ ውስጥ መቀየር ይችላሉ"
548543
549−#: qml/Wizard/Pages/30-passwd-type.qml:109
550−msgctxt "Label: Description of security method"
551−msgid "Numbers and letters"
552−msgstr "ቁጥሮች እና ፊደሎች"
544+#: qml/Wizard/Pages/50-timezone.qml:29
545+msgid "Time Zone"
546+msgstr "የ ሰአት ክልል"
553547
554−#: qml/Wizard/Pages/40-wifi.qml:29
555−msgid "Connect to Wi‑Fi"
556−msgstr "ወደ ዋይ‑ፋይ መገናኛ"
548+#: qml/Wizard/Pages/50-timezone.qml:178
549+msgid "Enter your city"
550+msgstr "የ እርስዎን ከተማ ያስገቡ"
551+
552+#: qml/Wizard/Pages/60-account.qml:24
553+msgid "Personalize Your Device"
554+msgstr "የ እርስዎን አካል የ ግልዎ ያድርጉ"
555+
556+#: qml/Wizard/Pages/60-account.qml:48
557+msgid "Preferred Name"
558+msgstr "የመረጡት ስም"
559+
560+#: qml/Wizard/Pages/70-passwd-type.qml:39
561+msgid "Lock Screen"
562+msgstr "መመልከቻውን መቆለፊያ"
557563
558−#: qml/Wizard/Pages/40-wifi.qml:168
559−msgid "Available networks…"
560−msgstr "ዝግጁ ኔትዎርኮች…"
564+#: qml/Wizard/Pages/70-passwd-type.qml:101
565+msgctxt "Label: Type of security method"
566+msgid "Create new password"
567+msgstr "አዲስ የ መግቢያ ቃል መፍጠሪያ"
561568
562−#: qml/Wizard/Pages/40-wifi.qml:169
563−msgid "No available networks."
564−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 "አዲስ የ ማለፊያ ኮድ መፍጠሪያ (ቁጥር ብቻ)"
565573
566−#: qml/Wizard/Pages/50-location.qml:27
567−msgid "Location"
568−msgstr "አካባቢ"
574+#: qml/Wizard/Pages/70-passwd-type.qml:105
575+msgctxt "Label: Type of security method"
576+msgid "No lock code"
577+msgstr "ምንም መቆለፊያ ኮድ አልተገኘም"
569578
570−#: qml/Wizard/Pages/50-location.qml:62
571−msgid "Let the phone detect your location:"
572−msgstr "እባክዎን እርስዎ ያሉበትን አካባቢ ስልኩ እራሱ ይፈልግ:"
579+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
580+msgid "Privacy Policy"
581+msgstr "የ ግላዊነት መመሪያ"
573582
574−#: qml/Wizard/Pages/50-location.qml:69
575−msgid "Using GPS only (less accurate)"
576−msgstr "ጂፒኤስን ብቻ መጠቀሚያ(በጣም ቅርብ)"
583+#: qml/Wizard/Pages/75-report-check.qml:26
584+msgid "Help Us Improve"
585+msgstr "እንድንሻሻል ይርዱን"
577586
578−#: qml/Wizard/Pages/50-location.qml:86
579−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
580−msgstr "ይጠቀሙ ጂፒኤስ ግልጽ ያልሆነ ዋይ-ፋይ እና ተንቀሳቃሽ ኔትዎርክ መረጃ (ይመከራሉ)"
587+#: qml/Wizard/Pages/75-report-check.qml:59
588+msgid "Improve system performance by sending us crashes and error reports."
589+msgstr "የ ስርአቱን አፈጻጸም ለማሻሻል የ ግጭት እና የ ስህተት መልእክቶች ይላኩልን"
581590
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
584−msgid ""
585−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
586−"conditions</a>."
587−msgstr "ይህን ምርጫ በመምረጥ ተስማምቻለሁ ከ Nokia HERE <a href='#'>ውሎች እና ሁኔታዎች ጋር</a>."
591+#: qml/Wizard/Pages/75-report-check.qml:60
592+msgid "Privacy policy"
593+msgstr "የ ግላዊነት መመሪያ"
588594
589−#: qml/Wizard/Pages/50-location.qml:112
590−msgid "Not at all"
591−msgstr "አይደለም"
595+#: qml/Wizard/Pages/80-finished.qml:89
596+msgid "Welcome to Ubuntu"
597+msgstr "እንኳን ደህና መጡ ወደ ኡቡንቱ"
592598
593−#: qml/Wizard/Pages/50-location.qml:124
594−msgid "You can change your mind later in <b>System Settings</b>."
595−msgstr "እርስዎ በኋላ መቀየር ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b>."
599+#: qml/Wizard/Pages/80-finished.qml:104
600+msgid "You are ready to use your device now"
601+msgstr "የ እርስዎን አካል ለ መጠቀም አሁን ዝግጁ ነው"
596602
597−#: qml/Wizard/Pages/60-reporting.qml:26
598−msgid "Improving your experience"
599−msgstr "የ እርስዎን ልምምድ ማሻሻያ"
603+#: qml/Wizard/Pages/80-finished.qml:124
604+msgid "Get Started"
605+msgstr "እንጀምር"
600606
601−#: qml/Wizard/Pages/60-reporting.qml:46
607+#: qml/Wizard/Pages/here-terms.qml:25
608+msgid "Terms & Conditions"
609+msgstr "ውሎች & ሁኔታዎች"
610+
611+#: qml/Wizard/Pages/here-terms.qml:69
612+msgid "Your device uses positioning technologies provided by HERE."
613+msgstr "የ እርስዎ አካል ይጠቀማል ያሉበትን አካባቢ ቴክኖሎጂ የቀረበውን በ HERE."
614+
615+#: qml/Wizard/Pages/here-terms.qml:81
602616msgid ""
603−"Your phone is set up to automatically report errors to Canonical and its "
604−"partners, the makers of the operating system."
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."
605620msgstr ""
606−"የ እርስዎ ስልክ ራሱ በራሱ የ ስህተት መግለጫዎች ወደ Canonical and its partners, የ መስሪያ ስርአት "
607−"አምራቾች"
621+"እርስዎ ያሉበትን አካባቢ ግልጋሎት ለ መስጠት እና ለማሻሻል: HERE መረጃ ይሰበስባል በቅርብ ያሉ የ ሴል ምሶሶዎች እና "
622+"ዋይ-ፋይ hotspots እርስዎ አሁን ያሉበትን አካባቢ ሲታወቅ"
608623
609−#: qml/Wizard/Pages/60-reporting.qml:53
624+#: qml/Wizard/Pages/here-terms.qml:93
610625msgid ""
611−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
612−"Privacy</b>"
613−msgstr ""
614−"ይህን ግልጋሎት ማሰናከል ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b> under <b>Security &amp; Privacy</b>"
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 "የ ተሰበሰበው መረጃ የሚጠቅመው ግልጋሎት ለማሻሻል ነው: ነገር ግን እርስዎን በ ግል ለ መለየት አይደለም"
615629
616−#: qml/Wizard/Pages/80-finished.qml:24
617−msgid "All done"
618−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."
619634
620−#: qml/Wizard/Pages/80-finished.qml:39
621−msgid "Nice work!"
622−msgstr "ጥሩ ሰርተዋል!"
635+#: qml/Wizard/Pages/here-terms.qml:107
636+msgid "Service Terms"
637+msgstr "የ ግልጋሎት ስምምነቶች"
623638
624−#: qml/Wizard/Pages/80-finished.qml:46
625−msgid "Your device is now ready to use."
626−msgstr "የ እርስዎ አካል አሁን ዝግጁ ነው"
639+#: qml/Wizard/Pages/passcode-confirm.qml:43
640+#: qml/Wizard/Pages/passcode-desktop.qml:80
641+msgid "Confirm passcode"
642+msgstr "የማለፊያ ኮድ ማረጋገጫ"
627643
628−#: qml/Wizard/Pages/80-finished.qml:53
629−msgid "Finish"
630−msgstr "መጨረሻ"
644+#: qml/Wizard/Pages/passcode-confirm.qml:45
645+msgid "Incorrect passcode."
646+msgstr "የ ተሳሳተ የማለፊያ ኮድ"
631647
632−#: qml/Wizard/Pages/here-terms.qml:27
633−msgid "Terms & Conditions"
634−msgstr "ውሎች & ሁኔታዎች"
648+#: qml/Wizard/Pages/passcode-confirm.qml:45
649+msgctxt "Enter the passcode again"
650+msgid "Please re-enter."
651+msgstr "እባክዎን እንደገና-ያስገቡ"
635652
636−#: qml/Wizard/Pages/passwd-confirm.qml:49
637−msgid "Confirm passphrase"
638−msgstr "የ ማለፊያ ሐረግ ማረጋገጫ"
653+#: qml/Wizard/Pages/passcode-desktop.qml:30
654+msgid "Lock Screen Passcode"
655+msgstr "የ መመልከቻው መቆለፊያ የ ማለፊያ ኮድ"
639656
640−#: qml/Wizard/Pages/passwd-confirm.qml:50
641−msgid "Confirm passcode"
642−msgstr "የማለፊያ ኮድ ማረጋገጫ"
657+#: qml/Wizard/Pages/passcode-desktop.qml:56
658+msgid "Enter 4 numbers to setup your passcode"
659+msgstr "ያስገቡ 4 ቁጥሮች የ እርስዎን የ ማለፊያ ኮድ ለማሰናዳት"
643660
644−#: qml/Wizard/Pages/passwd-confirm.qml:53
645−#: qml/Wizard/Pages/passwd-confirm.qml:54
646−msgid "Please try again."
647−msgstr "እባክዎን እንደገና ይሞክሩ"
661+#: qml/Wizard/Pages/passcode-desktop.qml:65
662+#: qml/Wizard/Pages/passcode-set.qml:54
663+msgid "Choose passcode"
664+msgstr "የ ማለፊያ ኮድ ይምረጡ"
648665
649−#: qml/Wizard/Pages/passwd-set.qml:61
650−msgid "Choose your passcode"
651−msgstr "የ እርስዎን የማለፊያ ኮድ ይምረጡ"
666+#: qml/Wizard/Pages/passcode-desktop.qml:105
667+msgid "Passcode too short"
668+msgstr "የ ማለፊያ ኮዱ በጣም አጭር ነው"
652669
653−#: qml/Wizard/Pages/passwd-set.qml:68
654−msgid "Passphrase must be 4 characters long"
655−msgstr "የ ማለፊያ ሀረግ ቢያንስ 4 ባህሪዎች መሆን አለበት"
670+#: qml/Wizard/Pages/passcode-desktop.qml:107
671+msgid "Passcodes match"
672+msgstr "የ ማለፊያ ኮዶቹ ተመሳሳይ ናቸው"
656673
657−#. Translators: This is the arrow for "Back" buttons
658−#: qml/Wizard/StackButton.qml:39
659−#, qt-format
660−msgid "〈 %1"
661−msgstr "〈 %1"
674+#: qml/Wizard/Pages/passcode-desktop.qml:109
675+msgid "Passcodes do not match"
676+msgstr "የ ማለፊያ ኮዶቹ አይመሳሰሉም"
662677
663−#. Translators: This is the arrow for "Forward" buttons
664−#: qml/Wizard/StackButton.qml:42
665−#, qt-format
666−msgid "%1 〉"
667−msgstr "%1 〉"
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 "በጣም ደካማ የ መግቢያ ቃል"
668745
669746#~ msgid "Top edge"
670747#~ msgstr "የላይ ጠርዝ"
@@ -696,6 +773,12 @@ msgstr "%1 〉"
696773#~ msgid "Search"
697774#~ msgstr "መፈለጊያ"
698775
776+#~ msgid "See less"
777+#~ msgstr "አነስተኛ መመልከቻ"
778+
779+#~ msgid "See all"
780+#~ msgstr "ሁሉንም መመልከቻ"
781+
699782#~ msgid "Skip intro"
700783#~ msgstr "መግቢያውን መዝለያ"
701784
@@ -735,6 +818,9 @@ msgstr "%1 〉"
735818#~ msgid "Log out"
736819#~ msgstr "መውጫ"
737820
821+#~ msgid "Are you sure you want to shut down?"
822+#~ msgstr "በእርግጥ ማጥፋት ይፈልጋሉ?"
823+
738824#~ msgid "Shut down"
739825#~ msgstr "ማጥፊያ"
740826
@@ -756,24 +842,188 @@ msgstr "%1 〉"
756842#~ msgid "Roaming"
757843#~ msgstr "ማዘዋወሪያ"
758844
759−#~ msgid "Restart"
760−#~ msgstr "እንደገና ማስጀመሪያ"
761−
762845#~ msgid "Manage Scopes"
763846#~ msgstr "የ ክልል አስተዳዳሪ"
764847
765848#~ msgid "Please re-enter"
766849#~ msgstr "እባክዎን እንደገና-ያስገቡ"
767850
851+#~ msgid "Lock security"
852+#~ msgstr "ደህንነት መቆለፊያ"
853+
768854#~ msgid "Please select how you’d like to unlock your phone."
769855#~ msgstr "እባክዎን የ እርስዎን ስልክ እንዴት እንደሚከፍቱ ይምረጡ"
770856
857+#~ msgid "Improving your experience"
858+#~ msgstr "የ እርስዎን ልምምድ ማሻሻያ"
859+
860+#~ msgid "Available networks…"
861+#~ msgstr "ዝግጁ ኔትዎርኮች…"
862+
863+#~ msgid "No available networks."
864+#~ msgstr "ዝግጁ ኔትዎርኮች አልተገኙም"
865+
866+#~ msgid "Location"
867+#~ msgstr "አካባቢ"
868+
869+#~ msgid ""
870+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
871+#~ "Privacy</b>"
872+#~ msgstr ""
873+#~ "ይህን ግልጋሎት ማሰናከል ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b> under <b>Security &amp; Privacy</b>"
874+
875+#~ msgid "Nice work!"
876+#~ msgstr "ጥሩ ሰርተዋል!"
877+
878+#~ msgid "All done"
879+#~ msgstr "ሁሉም ተፈጽሟል"
880+
881+#~ msgid "Finish"
882+#~ msgstr "መጨረሻ"
883+
771884#~ msgid "Your phone is now ready to use."
772885#~ msgstr "ስልኩ አሁን ለመጠቀም ዝግጁ ነው"
773886
887+#~ msgid "Confirm passphrase"
888+#~ msgstr "የ ማለፊያ ሐረግ ማረጋገጫ"
889+
890+#~ msgid "Please try again."
891+#~ msgstr "እባክዎን እንደገና ይሞክሩ"
892+
893+#~ msgid "Add a SIM card and restart your device"
894+#~ msgstr "የ ሲም ካርድ ይጨምሩ እና አካሉን እንደገና ያስነሱ"
895+
896+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
897+#~ msgstr "ያለ እሱ ጥሪ መፈጸም ወይንም የ ጽሁፍ መልእክት መላክ አይችሉም"
898+
899+#~ msgid "Hi!"
900+#~ msgstr "ሰላም"
901+
774902#~ msgid "Welcome to your Ubuntu phone."
775903#~ msgstr "እንኳን ደህና መጡ ወደ እርስዎ ኡቡንቱ ስልክ"
776904
905+#~ msgid "Let’s get started."
906+#~ msgstr "ስራ እንጀምር"
907+
908+#~ msgid "Continue"
909+#~ msgstr "ይቀጥሉ"
910+
911+#~ msgid "Passphrase must be 4 characters long"
912+#~ msgstr "የ ማለፊያ ሀረግ ቢያንስ 4 ባህሪዎች መሆን አለበት"
913+
914+#~ msgid "Choose your passcode"
915+#~ msgstr "የ እርስዎን የማለፊያ ኮድ ይምረጡ"
916+
917+#~ msgid "Let the phone detect your location:"
918+#~ msgstr "እባክዎን እርስዎ ያሉበትን አካባቢ ስልኩ እራሱ ይፈልግ:"
919+
920+#, qt-format
921+#~ msgid "〈 %1"
922+#~ msgstr "〈 %1"
923+
924+#, qt-format
925+#~ msgid "%1 〉"
926+#~ msgstr "%1 〉"
927+
928+#~ msgid "You can change your mind later in <b>System Settings</b>."
929+#~ msgstr "እርስዎ በኋላ መቀየር ይችላሉ ከ <b>ስርአት ማሰናጃዎች</b>."
930+
931+#~ msgid "Not at all"
932+#~ msgstr "አይደለም"
933+
934+#~ msgid "Using GPS only (less accurate)"
935+#~ msgstr "ጂፒኤስን ብቻ መጠቀሚያ(በጣም ቅርብ)"
936+
937+#~ msgid ""
938+#~ "Your phone is set up to automatically report errors to Canonical and its "
939+#~ "partners, the makers of the operating system."
940+#~ msgstr ""
941+#~ "የ እርስዎ ስልክ ራሱ በራሱ የ ስህተት መግለጫዎች ወደ Canonical and its partners, የ መስሪያ ስርአት "
942+#~ "አምራቾች"
943+
944+#~ msgid ""
945+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
946+#~ "conditions</a>."
947+#~ msgstr "ይህን ምርጫ በመምረጥ ተስማምቻለሁ ከ Nokia HERE <a href='#'>ውሎች እና ሁኔታዎች ጋር</a>."
948+
949+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
950+#~ msgstr "ይጠቀሙ ጂፒኤስ ግልጽ ያልሆነ ዋይ-ፋይ እና ተንቀሳቃሽ ኔትዎርክ መረጃ (ይመከራሉ)"
951+
952+#~ msgid "This action does different things for different apps"
953+#~ msgstr "ይህ ተግባር ለተለያዩ መተግበሪያዎች የተለያየ ነገር ይሰራል"
954+
955+#~ msgid "Tap here to finish."
956+#~ msgstr "እዚህ መታ ይድርጉ ለመጨረስ"
957+
958+#~ msgid "Short swipe from the left edge."
959+#~ msgstr "ከ ግራ ጠርዝ በኩል በትንሹ ይጥረጉ"
960+
961+#~ msgid "Open the launcher"
962+#~ msgstr "ማስጀመሪያውን መክፈቻ"
963+
964+#~ msgid "Tap here to continue."
965+#~ msgstr "እዚህ መታ ይድርጉ ለመቀጠል"
966+
967+#~ msgid "These are the shortcuts to favorite apps"
968+#~ msgstr "እነዚህ አቋራጮች ናቸው እርስዎ ለሚወዷቸው መተግበሪያዎች"
969+
970+#~ msgid "Swipe up from the bottom edge."
971+#~ msgstr "ከ ታች ጠርዝ በኩል ወደ ላይ ይጥረጉ"
972+
973+#~ msgid "Open special menus"
974+#~ msgstr "የተለዩ ዝርዝሮች መክፈቻ"
975+
976+#~ msgid "To view open apps"
977+#~ msgstr "ለመመልከት መተግበሪያዎች ይክፈቱ"
978+
979+#~ msgid "Try again."
980+#~ msgstr "እንደገና ይሞክሩ"
981+
982+#~ msgid "You almost got it!"
983+#~ msgstr "እርስዎ አሁን እያገኙት ነው!"
984+
985+#~ msgid "Long swipe from the right edge."
986+#~ msgstr "ከ ቀኝ ጠርዝ በኩል በረጅሙ ይጥረጉ"
987+
988+#~ msgid "View all your running tasks."
989+#~ msgstr "እርስዎ የሚያስኬዱትን ተግባሮች በሙሉ መመልከቻ"
990+
991+#~ msgctxt "Button: Shut down the system"
992+#~ msgid "Shut down"
993+#~ msgstr "ማጥፊያ"
994+
995+#~ msgctxt "Title: Reboot/Shut down dialog"
996+#~ msgid "Shut down"
997+#~ msgstr "ማጥፊያ"
998+
999+#~ msgctxt "Button: Reboot the system"
1000+#~ msgid "Reboot"
1001+#~ msgstr "እንደገና ማስነሻ"
1002+
1003+#~ msgctxt "Label: Type of security method"
1004+#~ msgid "Passcode"
1005+#~ msgstr "ማለፊያ ኮድ"
1006+
1007+#~ msgctxt "Label: Description of security method"
1008+#~ msgid "No security"
1009+#~ msgstr "ደህንነት አልተገኘም"
1010+
1011+#~ msgctxt "Label: Description of security method"
1012+#~ msgid "4 digits only"
1013+#~ msgstr "4 ዲጂት ብቻ"
1014+
1015+#~ msgctxt "Label: Type of security method"
1016+#~ msgid "Swipe"
1017+#~ msgstr "መጥረጊያ"
1018+
1019+#~ msgctxt "Label: Type of security method"
1020+#~ msgid "Passphrase"
1021+#~ msgstr "የማለፊያ ሐረግ"
1022+
1023+#~ msgctxt "Label: Description of security method"
1024+#~ msgid "Numbers and letters"
1025+#~ msgstr "ቁጥሮች እና ፊደሎች"
1026+
7771027#~ msgid "%a %d %b %H:%M"
7781028#~ msgstr "%a %d %b %ሰ:%ደ"
7791029
@@ -807,11 +1057,5 @@ msgstr "%1 〉"
8071057#~ msgid "Call back"
8081058#~ msgstr "መልሶ መደወያ"
8091059
810−#~ msgid "Re-dock, save your work and close these apps to continue."
811−#~ msgstr "እንደገና-ማሳረፊያ: ስራዎትን ያስቀምጡ እና ይዝጉ መተግበሪያው እንዲቀጥል"
812−
813−#~ msgid ""
814−#~ "Your device is now connected to an external display. Use this screen as a "
815−#~ "touch pad to interact with the mouse."
816−#~ msgstr ""
817−#~ "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ ከ አይጥ ጋር ተባብሮ ይሰራል"
1060+#~ msgid "Hover your mouse on the right edge to view your open apps"
1061+#~ msgstr "የ እርስዎን አይጥ ወደ ቀኝ ጠርዝ በኩል ሲያደርጉ የ ተከፈቱ መተግበሪያዎች መመልከቻ"
po/ar.po+466−232
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+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,8 +16,8 @@ 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-03-13 05:50+0000\n"
20−"X-Generator: Launchpad (build 17939)\n"
19+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
20+"X-Generator: Launchpad (build 17995)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -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:217
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:182
121103msgid "Yes"
122104msgstr "نعم"
123105
124−#: qml/Components/Dialogs.qml:232
106+#: qml/Components/Dialogs.qml:197
125107msgctxt "Title: Power off/Restart dialog"
126108msgid "Power"
127109msgstr "الطاقة"
128110
129−#: qml/Components/Dialogs.qml:233
111+#: qml/Components/Dialogs.qml:198
130112msgid ""
131113"Are you sure you would like\n"
132114"to power off?"
@@ -134,12 +116,12 @@ msgstr ""
134116"هل أنت متأكد من رغبتك\n"
135117"في إيقاف التشغيل؟"
136118
137−#: qml/Components/Dialogs.qml:235
119+#: qml/Components/Dialogs.qml:200
138120msgctxt "Button: Power off the system"
139121msgid "Power off"
140122msgstr "إيقاف التشغيل"
141123
142−#: qml/Components/Dialogs.qml:244
124+#: qml/Components/Dialogs.qml:209
143125msgctxt "Button: Restart the system"
144126msgid "Restart"
145127msgstr "إعادة التشغيل"
@@ -182,42 +164,58 @@ msgstr ""
182164msgid "Close all"
183165msgstr ""
184166
185−#: qml/Dash/DashPageHeader.qml:270
167+#: qml/Dash/DashPageHeader.qml:337
186168msgctxt "Button: Open the Ubuntu Store"
187169msgid "Store"
188170msgstr "المتجر"
189171
190−#: qml/Dash/DashPageHeader.qml:277
172+#: qml/Dash/DashPageHeader.qml:344
191173msgctxt "Button: Start a search in the current dash scope"
192174msgid "Search"
193175msgstr "بحث"
194176
195−#: qml/Dash/DashPageHeader.qml:287
177+#: qml/Dash/DashPageHeader.qml:354
196178msgctxt "Button: Show the current dash scope settings"
197179msgid "Settings"
198180msgstr "الإعدادات"
199181
200−#: qml/Dash/DashPageHeader.qml:294
182+#: qml/Dash/DashPageHeader.qml:361
201183msgid "Remove from Favorites"
202184msgstr "حذف من المفضلات"
203185
204−#: qml/Dash/DashPageHeader.qml:294
186+#: qml/Dash/DashPageHeader.qml:361
205187msgid "Add to Favorites"
206188msgstr "إضافة إلى المفضلات"
207189
208−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
209−msgid "See less"
210−msgstr "شاهد أقل"
190+#: qml/Dash/FiltersPopover.qml:60
191+msgid "Refine your results"
192+msgstr ""
211193
212−#: qml/Dash/GenericScopeView.qml:567
213−msgid "See all"
214−msgstr "عرض الكل"
194+#: qml/Dash/FiltersPopover.qml:69
195+msgid "Reset"
196+msgstr ""
215197
216−#: qml/Dash/GenericScopeView.qml:629
198+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
199+msgid "Show less"
200+msgstr ""
201+
202+#: qml/Dash/GenericScopeView.qml:579
203+msgid "Show all"
204+msgstr ""
205+
206+#: qml/Dash/GenericScopeView.qml:636
217207msgctxt "Label: Hint for dash search line edit"
218208msgid "Search"
219209msgstr "بحث"
220210
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+
221219#: qml/Dash/Previews/PreviewActionCombo.qml:35
222220msgid "More..."
223221msgstr "المزيد..."
@@ -285,11 +283,11 @@ msgstr "إعادة المحاولة"
285283msgid "Tap to unlock"
286284msgstr "انقر لفك القفل"
287285
288−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
286+#: qml/Greeter/NarrowView.qml:54
289287msgid "Sorry, incorrect passphrase."
290288msgstr "عذرًا، عبارة سرّية خاطئة."
291289
292−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
290+#: qml/Greeter/NarrowView.qml:55
293291msgid "Sorry, incorrect passcode."
294292msgstr "عذرًا، رمز سرّي خاطيء."
295293
@@ -318,7 +316,7 @@ msgstr ""
318316msgid "Enter %1"
319317msgstr "أدخِل %1"
320318
321−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
319+#: qml/Greeter/NarrowView.qml:117
322320msgid "Enter passphrase"
323321msgstr "أدخِل العبارة السرية"
324322
@@ -344,7 +342,7 @@ msgstr "برجاء إعادة إدخالها"
344342msgid "Sorry, incorrect passcode"
345343msgstr "نأسف، الرمز السري غير صحيح"
346344
347−#: qml/Notifications/NotificationMenuItemFactory.qml:129
345+#: qml/Notifications/NotificationMenuItemFactory.qml:124
348346msgid "Show password"
349347msgstr "عرض كلمة السر"
350348
@@ -356,11 +354,11 @@ msgstr "انقر للعودة إلى المكالمة..."
356354msgid "Conference"
357355msgstr "مؤتمر"
358356
359−#: qml/Panel/Indicators/MenuItemFactory.qml:752
357+#: qml/Panel/Indicators/MenuItemFactory.qml:762
360358msgid "Nothing is playing"
361359msgstr "لا شيء مُشغّل"
362360
363−#: qml/Panel/Indicators/MenuItemFactory.qml:881
361+#: qml/Panel/Indicators/MenuItemFactory.qml:891
364362#, qt-format
365363msgid "%1 hour"
366364msgid_plural "%1 hours"
@@ -371,7 +369,7 @@ msgstr[3] "%1 ساعات"
371369msgstr[4] "%1 ساعة"
372370msgstr[5] "%1 ساعة"
373371
374−#: qml/Panel/Indicators/MenuItemFactory.qml:885
372+#: qml/Panel/Indicators/MenuItemFactory.qml:895
375373#, qt-format
376374msgid "%1 minute"
377375msgid_plural "%1 minutes"
@@ -382,7 +380,7 @@ msgstr[3] "%1 دقائق"
382380msgstr[4] "%1 دقيقة"
383381msgstr[5] "%1 دقيقة"
384382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:890
383+#: qml/Panel/Indicators/MenuItemFactory.qml:900
386384#, qt-format
387385msgid "%1 second"
388386msgid_plural "%1 seconds"
@@ -393,37 +391,37 @@ msgstr[3] "%1 ثوان"
393391msgstr[4] "%1 ثانية"
394392msgstr[5] "%1 ثانية"
395393
396−#: qml/Panel/Indicators/MenuItemFactory.qml:893
394+#: qml/Panel/Indicators/MenuItemFactory.qml:903
397395msgid "0 seconds"
398396msgstr "أقل من ثانية"
399397
400398#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
401−#: qml/Panel/Indicators/MenuItemFactory.qml:895
399+#: qml/Panel/Indicators/MenuItemFactory.qml:905
402400#, qt-format
403401msgid "%1 remaining"
404402msgstr "باق %1"
405403
406−#: qml/Panel/Indicators/MenuItemFactory.qml:901
404+#: qml/Panel/Indicators/MenuItemFactory.qml:911
407405msgid "In queue…"
408406msgstr "في الانتظار..."
409407
410−#: qml/Panel/Indicators/MenuItemFactory.qml:905
408+#: qml/Panel/Indicators/MenuItemFactory.qml:915
411409msgid "Downloading"
412410msgstr "التنزيل"
413411
414−#: qml/Panel/Indicators/MenuItemFactory.qml:907
412+#: qml/Panel/Indicators/MenuItemFactory.qml:917
415413msgid "Paused, tap to resume"
416414msgstr "مُلبث، انقر للاستئناف"
417415
418−#: qml/Panel/Indicators/MenuItemFactory.qml:909
416+#: qml/Panel/Indicators/MenuItemFactory.qml:919
419417msgid "Canceled"
420418msgstr "تم إلغائه"
421419
422−#: qml/Panel/Indicators/MenuItemFactory.qml:911
420+#: qml/Panel/Indicators/MenuItemFactory.qml:921
423421msgid "Finished"
424422msgstr "انتهى"
425423
426−#: qml/Panel/Indicators/MenuItemFactory.qml:913
424+#: qml/Panel/Indicators/MenuItemFactory.qml:923
427425msgid "Failed, tap to retry"
428426msgstr "فشل، انقل لإعادة المحاولة"
429427
@@ -443,252 +441,323 @@ msgctxt "Button: Call back on phone"
443441msgid "Call back"
444442msgstr ""
445443
446−#: qml/Tutorial/TutorialBottom.qml:28
447−msgid "Open special menus"
448−msgstr "فتح قوائم خاصة"
449−
450−#: qml/Tutorial/TutorialBottom.qml:29
451−msgid "Swipe up from the bottom edge."
452−msgstr "اسحب لأعلى من الحافة السفلى."
444+#: qml/Stages/SideStage.qml:76
445+msgid "Drag using 3 fingers any application from one window to the other"
446+msgstr ""
453447
454−#: qml/Tutorial/TutorialBottomFinish.qml:24
455−msgid "This action does different things for different apps"
456−msgstr "هذا الإجراء يقوم بأشياء مختلفة على التطبيقات المختلفة"
448+#: qml/Tutorial/TutorialBottom.qml:78
449+msgid "Swipe up to add a contact"
450+msgstr ""
457451
458−#: qml/Tutorial/TutorialBottomFinish.qml:25
459−msgid "Tap here to finish."
460−msgstr "انقر هنا للإنهاء."
452+#: qml/Tutorial/TutorialBottom.qml:80
453+msgid "Swipe up for favorite calculations"
454+msgstr ""
461455
462−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
463−#: qml/Tutorial/TutorialRight.qml:144
464−msgid "Tap here to continue."
465−msgstr "انقر هنا للمتابعة."
456+#: qml/Tutorial/TutorialBottom.qml:82
457+msgid "Swipe up for recent calls"
458+msgstr ""
466459
467−#: qml/Tutorial/TutorialLeft.qml:26
468−msgid "Open the launcher"
460+#: qml/Tutorial/TutorialBottom.qml:84
461+msgid "Swipe up to create a message"
469462msgstr ""
470463
471−#: qml/Tutorial/TutorialLeft.qml:27
472−msgid "Short swipe from the left edge."
473−msgstr "اسحب سحبة قصيرة من الحافة اليسرى."
464+#: qml/Tutorial/TutorialBottom.qml:85
465+msgid "Swipe up to manage the app"
466+msgstr ""
474467
475−#: qml/Tutorial/TutorialLeftFinish.qml:24
476−msgid "These are the shortcuts to favorite apps"
477−msgstr "هذه اختصارات للتطبيقات المُفضلة"
468+#: qml/Tutorial/TutorialLeftLong.qml:47
469+msgid "Long swipe from the left edge to open the Today scope"
470+msgstr ""
478471
479−#: qml/Tutorial/TutorialPage.qml:178
480−msgid "You almost got it!"
481−msgstr "انت حصلت على ذلك تقريبا!"
472+#: qml/Tutorial/TutorialLeft.qml:47
473+msgid "Swipe from the left edge to open the launcher"
474+msgstr ""
482475
483−#: qml/Tutorial/TutorialPage.qml:195
484−msgid "Try again."
485−msgstr "حاول مجددًا."
476+#: qml/Tutorial/TutorialRight.qml:55
477+msgid "Push your mouse against the right edge to view your open apps"
478+msgstr ""
486479
487−#: qml/Tutorial/TutorialRight.qml:31
488−msgid "To view open apps"
480+#: qml/Tutorial/TutorialRight.qml:56
481+msgid "Short or long swipe from the right edge to view your open apps"
489482msgstr ""
490483
491−#: qml/Tutorial/TutorialRight.qml:32
492−msgid "Long swipe from the right edge."
493−msgstr "سحبة طويلة من الحافة اليمنى."
484+#: qml/Tutorial/TutorialTop.qml:53
485+msgid "Swipe from the top right edge to open the notification bar"
486+msgstr ""
494487
495−#: qml/Tutorial/TutorialRight.qml:122
496−msgid "View all your running tasks."
497−msgstr "عرض جميع المهام النشطة."
488+#: qml/Tutorial/TutorialTop.qml:54
489+msgid "Swipe from the top edge to open the notification bar"
490+msgstr ""
498491
499−#: qml/Wizard/Page.qml:89
492+#: qml/Wizard/Page.qml:54
500493msgctxt "Button: Go back one page in the Wizard"
501494msgid "Back"
502495msgstr "عودة"
503496
504497#: qml/Wizard/Pages/10-welcome.qml:27
505−msgid "Hi!"
506−msgstr "أهلا!"
498+msgid "Language"
499+msgstr ""
507500
508−#: qml/Wizard/Pages/10-welcome.qml:44
509−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"
510508msgstr ""
511509
512−#: qml/Wizard/Pages/10-welcome.qml:52
513−msgid "Let’s get started."
514−msgstr "هيا بنا نبدأ."
510+#: qml/Wizard/Pages/30-wifi.qml:29
511+msgid "Connect to Wi‑Fi"
512+msgstr "اتصل بالواي فاي"
515513
516−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
517−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
518−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
519−#: qml/Wizard/Pages/passwd-set.qml:90
520−msgid "Continue"
521−msgstr "متابعة"
514+#: qml/Wizard/Pages/30-wifi.qml:130
515+msgid "Connected"
516+msgstr ""
522517
523−#: qml/Wizard/Pages/20-sim.qml:25
524−msgid "Add a SIM card and restart your device"
525−msgstr "أدخِل شريحة SIM ثم أعِد تشغيل الجهاز"
518+#: qml/Wizard/Pages/30-wifi.qml:163
519+msgid "Available Wi-Fi networks"
520+msgstr ""
526521
527−#: qml/Wizard/Pages/20-sim.qml:59
528−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"
529524msgstr ""
530−"بدونها لن تتمكن من إجراء أي مكالمات هاتفية أو استخدام الرسائل النصية."
531525
532−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
526+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
527+#: qml/Wizard/Pages/sim.qml:101
533528msgid "Skip"
534529msgstr "تخطي"
535530
536−#: qml/Wizard/Pages/30-passwd-type.qml:39
537−msgid "Lock security"
538−msgstr "قِفل الأمان"
531+#: qml/Wizard/Pages/40-location.qml:27
532+msgid "Location Services"
533+msgstr ""
539534
540−#: qml/Wizard/Pages/30-passwd-type.qml:79
541−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)"
542539msgstr ""
543540
544−#: qml/Wizard/Pages/30-passwd-type.qml:102
545−msgctxt "Label: Type of security method"
546−msgid "Swipe"
547−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 ""
550+
551+#: qml/Wizard/Pages/40-location.qml:160
552+msgid "GPS only"
553+msgstr ""
554+
555+#: qml/Wizard/Pages/40-location.qml:214
556+msgid "Don't use my location"
557+msgstr ""
558+
559+#: qml/Wizard/Pages/40-location.qml:260
560+msgid "You can change it later in System Settings."
561+msgstr ""
548562
549−#: qml/Wizard/Pages/30-passwd-type.qml:103
550−msgctxt "Label: Description of security method"
551−msgid "No security"
552−msgstr "بدون أمان"
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 ""
553570
554−#: qml/Wizard/Pages/30-passwd-type.qml:105
571+#: qml/Wizard/Pages/60-account.qml:24
572+msgid "Personalize Your Device"
573+msgstr ""
574+
575+#: qml/Wizard/Pages/60-account.qml:48
576+msgid "Preferred Name"
577+msgstr ""
578+
579+#: qml/Wizard/Pages/70-passwd-type.qml:39
580+msgid "Lock Screen"
581+msgstr ""
582+
583+#: qml/Wizard/Pages/70-passwd-type.qml:101
555584msgctxt "Label: Type of security method"
556−msgid "Passcode"
557−msgstr "رمز سري"
585+msgid "Create new password"
586+msgstr ""
558587
559−#: qml/Wizard/Pages/30-passwd-type.qml:106
560−msgctxt "Label: Description of security method"
561−msgid "4 digits only"
562−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 ""
563592
564−#: qml/Wizard/Pages/30-passwd-type.qml:108
593+#: qml/Wizard/Pages/70-passwd-type.qml:105
565594msgctxt "Label: Type of security method"
566−msgid "Passphrase"
567−msgstr "عبارة سرية"
595+msgid "No lock code"
596+msgstr ""
568597
569−#: qml/Wizard/Pages/30-passwd-type.qml:109
570−msgctxt "Label: Description of security method"
571−msgid "Numbers and letters"
572−msgstr "أرقام وحروف"
598+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
599+msgid "Privacy Policy"
600+msgstr ""
573601
574−#: qml/Wizard/Pages/40-wifi.qml:29
575−msgid "Connect to Wi‑Fi"
576−msgstr "اتصل بالواي فاي"
602+#: qml/Wizard/Pages/75-report-check.qml:26
603+msgid "Help Us Improve"
604+msgstr ""
577605
578−#: qml/Wizard/Pages/40-wifi.qml:168
579−msgid "Available networks…"
580−msgstr "الشبكات المتاحة..."
606+#: qml/Wizard/Pages/75-report-check.qml:59
607+msgid "Improve system performance by sending us crashes and error reports."
608+msgstr ""
581609
582−#: qml/Wizard/Pages/40-wifi.qml:169
583−msgid "No available networks."
584−msgstr "لا توجد شبكات متاحة."
610+#: qml/Wizard/Pages/75-report-check.qml:60
611+msgid "Privacy policy"
612+msgstr ""
585613
586−#: qml/Wizard/Pages/50-location.qml:27
587−msgid "Location"
588−msgstr "الموقع"
614+#: qml/Wizard/Pages/80-finished.qml:89
615+msgid "Welcome to Ubuntu"
616+msgstr ""
589617
590−#: qml/Wizard/Pages/50-location.qml:62
591−msgid "Let the phone detect your location:"
592−msgstr "دع هاتفك يحدد موقعك:"
618+#: qml/Wizard/Pages/80-finished.qml:104
619+msgid "You are ready to use your device now"
620+msgstr ""
621+
622+#: qml/Wizard/Pages/80-finished.qml:124
623+msgid "Get Started"
624+msgstr ""
625+
626+#: qml/Wizard/Pages/here-terms.qml:25
627+msgid "Terms & Conditions"
628+msgstr "الشروط والأحكام"
593629
594−#: qml/Wizard/Pages/50-location.qml:69
595−msgid "Using GPS only (less accurate)"
596−msgstr "باستخدام نظام تحديد المواقع (GPS) فقط (أقل دقّة)"
630+#: qml/Wizard/Pages/here-terms.qml:69
631+msgid "Your device uses positioning technologies provided by HERE."
632+msgstr ""
597633
598−#: qml/Wizard/Pages/50-location.qml:86
599−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
634+#: qml/Wizard/Pages/here-terms.qml:81
635+msgid ""
636+"To provide you with positioning services and to improve their quality, HERE "
637+"collects information about nearby cell towers and Wi-Fi hotspots around your "
638+"current location whenever your position is being found."
600639msgstr ""
601−"باستخدام نظام تحديد المواقع (GPS)، والواي فاي، وبيانات الشبكة الخلوية "
602−"(مستحسن)"
603640
604−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
605−#: qml/Wizard/Pages/50-location.qml:103
641+#: qml/Wizard/Pages/here-terms.qml:93
606642msgid ""
607−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
608−"conditions</a>."
643+"The information collected is used to analyze the service and to improve the "
644+"use of service, but not to identify you personally."
609645msgstr ""
610−"باختيارك لهذا الخيار فإنك توافق على <a href='#'>الشروط والأحكام</a> الخاصة "
611−"بـ Nokia HERE."
612646
613−#: qml/Wizard/Pages/50-location.qml:112
614−msgid "Not at all"
647+#: qml/Wizard/Pages/here-terms.qml:106
648+#, qt-format
649+msgid "By continuing, you agree to the HERE platform %1 and %2."
615650msgstr ""
616651
617−#: qml/Wizard/Pages/50-location.qml:124
618−msgid "You can change your mind later in <b>System Settings</b>."
619−msgstr "يمكنك تغيير رأيك في وقت لاحق عن طريق <b>إعدادات النظام</b>."
652+#: qml/Wizard/Pages/here-terms.qml:107
653+msgid "Service Terms"
654+msgstr ""
620655
621−#: qml/Wizard/Pages/60-reporting.qml:26
622−msgid "Improving your experience"
623−msgstr "تحسين تجربتك"
656+#: qml/Wizard/Pages/passcode-confirm.qml:43
657+#: qml/Wizard/Pages/passcode-desktop.qml:80
658+msgid "Confirm passcode"
659+msgstr "تأكيد الرمز السري"
624660
625−#: qml/Wizard/Pages/60-reporting.qml:46
626−msgid ""
627−"Your phone is set up to automatically report errors to Canonical and its "
628−"partners, the makers of the operating system."
661+#: qml/Wizard/Pages/passcode-confirm.qml:45
662+msgid "Incorrect passcode."
629663msgstr ""
630−"هاتفك مُعدّ لإرسال تقارير آلية بالأخطاء إلى كانونيكال وشركائها (صانعي نظام "
631−"التشغيل)."
632664
633−#: qml/Wizard/Pages/60-reporting.qml:53
634−msgid ""
635−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
636−"Privacy</b>"
665+#: qml/Wizard/Pages/passcode-confirm.qml:45
666+msgctxt "Enter the passcode again"
667+msgid "Please re-enter."
668+msgstr ""
669+
670+#: qml/Wizard/Pages/passcode-desktop.qml:30
671+msgid "Lock Screen Passcode"
637672msgstr ""
638−"يمكن تعطيل ذلك بالذهاب إلى <b>إعدادات النظام</b> من خلال <b>الأمان "
639−"والخصوصية</b>"
640673
641−#: qml/Wizard/Pages/80-finished.qml:24
642−msgid "All done"
643−msgstr "تم ذلك"
674+#: qml/Wizard/Pages/passcode-desktop.qml:56
675+msgid "Enter 4 numbers to setup your passcode"
676+msgstr ""
644677
645−#: qml/Wizard/Pages/80-finished.qml:39
646−msgid "Nice work!"
647−msgstr "عمل جيد!"
678+#: qml/Wizard/Pages/passcode-desktop.qml:65
679+#: qml/Wizard/Pages/passcode-set.qml:54
680+msgid "Choose passcode"
681+msgstr ""
648682
649−#: qml/Wizard/Pages/80-finished.qml:46
650−msgid "Your device is now ready to use."
683+#: qml/Wizard/Pages/passcode-desktop.qml:105
684+msgid "Passcode too short"
651685msgstr ""
652686
653−#: qml/Wizard/Pages/80-finished.qml:53
654−msgid "Finish"
655−msgstr "إنهاء"
687+#: qml/Wizard/Pages/passcode-desktop.qml:107
688+msgid "Passcodes match"
689+msgstr ""
656690
657−#: qml/Wizard/Pages/here-terms.qml:27
658−msgid "Terms & Conditions"
659−msgstr "الشروط والأحكام"
691+#: qml/Wizard/Pages/passcode-desktop.qml:109
692+msgid "Passcodes do not match"
693+msgstr ""
660694
661−#: qml/Wizard/Pages/passwd-confirm.qml:49
662−msgid "Confirm passphrase"
663−msgstr "تأكيد العبارة السرية"
695+#: qml/Wizard/Pages/passcode-set.qml:62
696+msgid "Passcode must be 4 characters long"
697+msgstr ""
664698
665−#: qml/Wizard/Pages/passwd-confirm.qml:50
666−msgid "Confirm passcode"
667−msgstr "تأكيد الرمز السري"
699+#: qml/Wizard/Pages/password-set.qml:30
700+msgid "Lock Screen Password"
701+msgstr ""
668702
669−#: qml/Wizard/Pages/passwd-confirm.qml:53
670−#: qml/Wizard/Pages/passwd-confirm.qml:54
671−msgid "Please try again."
672−msgstr "حاول مجددا."
703+#: qml/Wizard/Pages/password-set.qml:61
704+msgid "Enter at least 8 characters"
705+msgstr ""
673706
674−#: qml/Wizard/Pages/passwd-set.qml:61
675−msgid "Choose your passcode"
676−msgstr "اختر الرمز السري خاصتك"
707+#: qml/Wizard/Pages/password-set.qml:73
708+msgid "Choose password"
709+msgstr ""
677710
678−#: qml/Wizard/Pages/passwd-set.qml:68
679−msgid "Passphrase must be 4 characters long"
680−msgstr "يجب أن تحتوي العبارة السرية على 4 أحرف على الأقل"
711+#: qml/Wizard/Pages/password-set.qml:103
712+msgid "Confirm password"
713+msgstr ""
681714
682−#. Translators: This is the arrow for "Back" buttons
683−#: qml/Wizard/StackButton.qml:39
684−#, qt-format
685−msgid "〈 %1"
715+#: qml/Wizard/Pages/sim.qml:27
716+msgid "No SIM card installed"
686717msgstr ""
687718
688−#. Translators: This is the arrow for "Forward" buttons
689−#: qml/Wizard/StackButton.qml:42
690−#, qt-format
691−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"
692761msgstr ""
693762
694763#~ msgid "Confirm"
@@ -740,6 +809,9 @@ msgstr ""
740809#~ msgid "Well done"
741810#~ msgstr "أحسنت!"
742811
812+#~ msgid "See less"
813+#~ msgstr "شاهد أقل"
814+
743815#~ msgid ""
744816#~ "You have now mastered the edge gestures and can start using the "
745817#~ "phone<br><br>Tap on the screen to start"
@@ -777,20 +849,182 @@ msgstr ""
777849#~ msgid "Tomorrow %H:%M"
778850#~ msgstr "غدًا %H:%M"
779851
852+#~ msgid "Are you sure you want to shut down?"
853+#~ msgstr "هل أنت متأكد من رغبتك في إطفاء الجهاز؟"
854+
855+#~ msgctxt "Button: Shut down the system"
856+#~ msgid "Shut down"
857+#~ msgstr "إطفاء الجهاز"
858+
859+#~ msgctxt "Title: Reboot/Shut down dialog"
860+#~ msgid "Shut down"
861+#~ msgstr "إطفاء الجهاز"
862+
863+#~ msgctxt "Button: Reboot the system"
864+#~ msgid "Reboot"
865+#~ msgstr "إعادة التشغيل"
866+
867+#~ msgid "See all"
868+#~ msgstr "عرض الكل"
869+
780870#~ msgid "Please re-enter"
781871#~ msgstr "برجاء إعادة إدخالها"
782872
873+#~ msgid "This action does different things for different apps"
874+#~ msgstr "هذا الإجراء يقوم بأشياء مختلفة على التطبيقات المختلفة"
875+
876+#~ msgid "These are the shortcuts to favorite apps"
877+#~ msgstr "هذه اختصارات للتطبيقات المُفضلة"
878+
783879#~ msgid "Roaming"
784880#~ msgstr "التجوال"
785881
882+#~ msgid "Short swipe from the left edge."
883+#~ msgstr "اسحب سحبة قصيرة من الحافة اليسرى."
884+
885+#~ msgid "Tap here to continue."
886+#~ msgstr "انقر هنا للمتابعة."
887+
888+#~ msgid "Swipe up from the bottom edge."
889+#~ msgstr "اسحب لأعلى من الحافة السفلى."
890+
891+#~ msgid "Open special menus"
892+#~ msgstr "فتح قوائم خاصة"
893+
894+#~ msgid "Tap here to finish."
895+#~ msgstr "انقر هنا للإنهاء."
896+
897+#~ msgid "Long swipe from the right edge."
898+#~ msgstr "سحبة طويلة من الحافة اليمنى."
899+
900+#~ msgid "View all your running tasks."
901+#~ msgstr "عرض جميع المهام النشطة."
902+
903+#~ msgid "Confirm passphrase"
904+#~ msgstr "تأكيد العبارة السرية"
905+
906+#~ msgid "Try again."
907+#~ msgstr "حاول مجددًا."
908+
909+#~ msgid "Please try again."
910+#~ msgstr "حاول مجددا."
911+
912+#~ msgid "Lock security"
913+#~ msgstr "قِفل الأمان"
914+
915+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
916+#~ msgstr ""
917+#~ "بدونها لن تتمكن من إجراء أي مكالمات هاتفية أو استخدام الرسائل النصية."
918+
919+#~ msgid "Add a SIM card and restart your device"
920+#~ msgstr "أدخِل شريحة SIM ثم أعِد تشغيل الجهاز"
921+
922+#~ msgid "Hi!"
923+#~ msgstr "أهلا!"
924+
786925#~ msgid "Welcome to your Ubuntu phone."
787926#~ msgstr "مرحبا بك في أوبونتو للهواتف."
788927
928+#~ msgid "Let’s get started."
929+#~ msgstr "هيا بنا نبدأ."
930+
931+#~ msgid "Continue"
932+#~ msgstr "متابعة"
933+
934+#~ msgid "Choose your passcode"
935+#~ msgstr "اختر الرمز السري خاصتك"
936+
937+#~ msgid "Passphrase must be 4 characters long"
938+#~ msgstr "يجب أن تحتوي العبارة السرية على 4 أحرف على الأقل"
939+
940+#~ msgid "Available networks…"
941+#~ msgstr "الشبكات المتاحة..."
942+
789943#~ msgid "Please select how you’d like to unlock your phone."
790944#~ msgstr "رجاءً اختر الطريقة التي ترغب بأن توصد هاتفك بها."
791945
946+#~ msgctxt "Label: Description of security method"
947+#~ msgid "No security"
948+#~ msgstr "بدون أمان"
949+
950+#~ msgctxt "Label: Type of security method"
951+#~ msgid "Swipe"
952+#~ msgstr "سحبة"
953+
954+#~ msgctxt "Label: Description of security method"
955+#~ msgid "4 digits only"
956+#~ msgstr "4 أرقام فقط"
957+
958+#~ msgctxt "Label: Type of security method"
959+#~ msgid "Passcode"
960+#~ msgstr "رمز سري"
961+
962+#~ msgid "No available networks."
963+#~ msgstr "لا توجد شبكات متاحة."
964+
965+#~ msgctxt "Label: Type of security method"
966+#~ msgid "Passphrase"
967+#~ msgstr "عبارة سرية"
968+
969+#~ msgctxt "Label: Description of security method"
970+#~ msgid "Numbers and letters"
971+#~ msgstr "أرقام وحروف"
972+
973+#~ msgid "Improving your experience"
974+#~ msgstr "تحسين تجربتك"
975+
976+#~ msgid "You can change your mind later in <b>System Settings</b>."
977+#~ msgstr "يمكنك تغيير رأيك في وقت لاحق عن طريق <b>إعدادات النظام</b>."
978+
979+#~ msgid "Location"
980+#~ msgstr "الموقع"
981+
982+#~ msgid "Let the phone detect your location:"
983+#~ msgstr "دع هاتفك يحدد موقعك:"
984+
985+#~ msgid "Using GPS only (less accurate)"
986+#~ msgstr "باستخدام نظام تحديد المواقع (GPS) فقط (أقل دقّة)"
987+
988+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
989+#~ msgstr ""
990+#~ "باستخدام نظام تحديد المواقع (GPS)، والواي فاي، وبيانات الشبكة الخلوية "
991+#~ "(مستحسن)"
992+
993+#~ msgid ""
994+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
995+#~ "Privacy</b>"
996+#~ msgstr ""
997+#~ "يمكن تعطيل ذلك بالذهاب إلى <b>إعدادات النظام</b> من خلال <b>الأمان "
998+#~ "والخصوصية</b>"
999+
1000+#~ msgid "Nice work!"
1001+#~ msgstr "عمل جيد!"
1002+
1003+#~ msgid "All done"
1004+#~ msgstr "تم ذلك"
1005+
1006+#~ msgid "Finish"
1007+#~ msgstr "إنهاء"
1008+
7921009#~ msgid "Your phone is now ready to use."
7931010#~ msgstr "هاتفك جاهز الآن للاستخدام."
7941011
1012+#~ msgid "You almost got it!"
1013+#~ msgstr "انت حصلت على ذلك تقريبا!"
1014+
1015+#~ msgid ""
1016+#~ "Your phone is set up to automatically report errors to Canonical and its "
1017+#~ "partners, the makers of the operating system."
1018+#~ msgstr ""
1019+#~ "هاتفك مُعدّ لإرسال تقارير آلية بالأخطاء إلى كانونيكال وشركائها (صانعي نظام "
1020+#~ "التشغيل)."
1021+
7951022#~ msgid "Unlock SIM"
7961023#~ msgstr "فتح قفل بطاقة SIM"
1024+
1025+#~ msgid ""
1026+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1027+#~ "conditions</a>."
1028+#~ msgstr ""
1029+#~ "باختيارك لهذا الخيار فإنك توافق على <a href='#'>الشروط والأحكام</a> الخاصة "
1030+#~ "بـ Nokia HERE."
po/ast.po+494−258
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-03-10 22:48+0000\n"
11−"PO-Revision-Date: 2016-03-12 00:17+0000\n"
12−"Last-Translator: enolp <enolp@softastur.org>\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11+"PO-Revision-Date: 2016-04-17 16:57+0000\n"
12+"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-03-13 05:50+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -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:217
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:182
11597msgid "Yes"
11698msgstr "Sí"
11799
118−#: qml/Components/Dialogs.qml:232
100+#: qml/Components/Dialogs.qml:197
119101msgctxt "Title: Power off/Restart dialog"
120102msgid "Power"
121103msgstr "Apagáu"
122104
123−#: qml/Components/Dialogs.qml:233
105+#: qml/Components/Dialogs.qml:198
124106msgid ""
125107"Are you sure you would like\n"
126108"to power off?"
@@ -128,12 +110,12 @@ msgstr ""
128110"¿De xuru que te prestaría\n"
129111"apagar?"
130112
131−#: qml/Components/Dialogs.qml:235
113+#: qml/Components/Dialogs.qml:200
132114msgctxt "Button: Power off the system"
133115msgid "Power off"
134116msgstr "Apagar"
135117
136−#: qml/Components/Dialogs.qml:244
118+#: qml/Components/Dialogs.qml:209
137119msgctxt "Button: Restart the system"
138120msgid "Restart"
139121msgstr "Reaniciar"
@@ -176,42 +158,58 @@ msgstr "Reconeutar agora."
176158msgid "Close all"
177159msgstr "Zarrar too"
178160
179−#: qml/Dash/DashPageHeader.qml:270
161+#: qml/Dash/DashPageHeader.qml:337
180162msgctxt "Button: Open the Ubuntu Store"
181163msgid "Store"
182164msgstr "Tienda"
183165
184−#: qml/Dash/DashPageHeader.qml:277
166+#: qml/Dash/DashPageHeader.qml:344
185167msgctxt "Button: Start a search in the current dash scope"
186168msgid "Search"
187169msgstr "Guetar"
188170
189−#: qml/Dash/DashPageHeader.qml:287
171+#: qml/Dash/DashPageHeader.qml:354
190172msgctxt "Button: Show the current dash scope settings"
191173msgid "Settings"
192174msgstr "Axustes"
193175
194−#: qml/Dash/DashPageHeader.qml:294
176+#: qml/Dash/DashPageHeader.qml:361
195177msgid "Remove from Favorites"
196178msgstr "Desaniciar de favoritos"
197179
198−#: qml/Dash/DashPageHeader.qml:294
180+#: qml/Dash/DashPageHeader.qml:361
199181msgid "Add to Favorites"
200182msgstr "Amestar a favoritos"
201183
202−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
203−msgid "See less"
204−msgstr "Ver menos"
184+#: qml/Dash/FiltersPopover.qml:60
185+msgid "Refine your results"
186+msgstr ""
205187
206−#: qml/Dash/GenericScopeView.qml:567
207−msgid "See all"
208−msgstr "Ver too"
188+#: qml/Dash/FiltersPopover.qml:69
189+msgid "Reset"
190+msgstr "Reafitar"
209191
210−#: qml/Dash/GenericScopeView.qml:629
192+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
193+msgid "Show less"
194+msgstr ""
195+
196+#: qml/Dash/GenericScopeView.qml:579
197+msgid "Show all"
198+msgstr ""
199+
200+#: qml/Dash/GenericScopeView.qml:636
211201msgctxt "Label: Hint for dash search line edit"
212202msgid "Search"
213203msgstr "Guetar"
214204
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+
215213#: qml/Dash/Previews/PreviewActionCombo.qml:35
216214msgid "More..."
217215msgstr "Más…"
@@ -279,11 +277,11 @@ msgstr "Reintentar"
279277msgid "Tap to unlock"
280278msgstr "Calca pa desbloquiar"
281279
282−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
280+#: qml/Greeter/NarrowView.qml:54
283281msgid "Sorry, incorrect passphrase."
284282msgstr "Perdón, fras de pasu incorreuta"
285283
286−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
284+#: qml/Greeter/NarrowView.qml:55
287285msgid "Sorry, incorrect passcode."
288286msgstr "Perdón, códigu de pasu incorreutu."
289287
@@ -312,7 +310,7 @@ msgstr ""
312310msgid "Enter %1"
313311msgstr "Introduz %1"
314312
315−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
313+#: qml/Greeter/NarrowView.qml:117
316314msgid "Enter passphrase"
317315msgstr "Introduz la fras de pasu"
318316
@@ -338,7 +336,7 @@ msgstr "Vuelve a escribila"
338336msgid "Sorry, incorrect passcode"
339337msgstr "Sentímoslo, códigu de pasu incorreutu"
340338
341−#: qml/Notifications/NotificationMenuItemFactory.qml:129
339+#: qml/Notifications/NotificationMenuItemFactory.qml:124
342340msgid "Show password"
343341msgstr "Amosar contraseña"
344342
@@ -350,62 +348,62 @@ msgstr "Toca pa tornar a la llamada..."
350348msgid "Conference"
351349msgstr "Conferencia"
352350
353−#: qml/Panel/Indicators/MenuItemFactory.qml:752
351+#: qml/Panel/Indicators/MenuItemFactory.qml:762
354352msgid "Nothing is playing"
355353msgstr "Nun ta reproduciéndose nada"
356354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:881
355+#: qml/Panel/Indicators/MenuItemFactory.qml:891
358356#, qt-format
359357msgid "%1 hour"
360358msgid_plural "%1 hours"
361359msgstr[0] "%1 hora"
362360msgstr[1] "%1 hores"
363361
364−#: qml/Panel/Indicators/MenuItemFactory.qml:885
362+#: qml/Panel/Indicators/MenuItemFactory.qml:895
365363#, qt-format
366364msgid "%1 minute"
367365msgid_plural "%1 minutes"
368366msgstr[0] "%1 minutu"
369367msgstr[1] "%1 minutos"
370368
371−#: qml/Panel/Indicators/MenuItemFactory.qml:890
369+#: qml/Panel/Indicators/MenuItemFactory.qml:900
372370#, qt-format
373371msgid "%1 second"
374372msgid_plural "%1 seconds"
375373msgstr[0] "%1 segundu"
376374msgstr[1] "%1 segundos"
377375
378−#: qml/Panel/Indicators/MenuItemFactory.qml:893
376+#: qml/Panel/Indicators/MenuItemFactory.qml:903
379377msgid "0 seconds"
380378msgstr "0 segundos"
381379
382380#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
383−#: qml/Panel/Indicators/MenuItemFactory.qml:895
381+#: qml/Panel/Indicators/MenuItemFactory.qml:905
384382#, qt-format
385383msgid "%1 remaining"
386384msgstr "Queden %1"
387385
388−#: qml/Panel/Indicators/MenuItemFactory.qml:901
386+#: qml/Panel/Indicators/MenuItemFactory.qml:911
389387msgid "In queue…"
390388msgstr "Na cola..."
391389
392−#: qml/Panel/Indicators/MenuItemFactory.qml:905
390+#: qml/Panel/Indicators/MenuItemFactory.qml:915
393391msgid "Downloading"
394392msgstr "Baxando"
395393
396−#: qml/Panel/Indicators/MenuItemFactory.qml:907
394+#: qml/Panel/Indicators/MenuItemFactory.qml:917
397395msgid "Paused, tap to resume"
398396msgstr "Posáu, toca pa reanudar"
399397
400−#: qml/Panel/Indicators/MenuItemFactory.qml:909
398+#: qml/Panel/Indicators/MenuItemFactory.qml:919
401399msgid "Canceled"
402400msgstr "Encaboxáu"
403401
404−#: qml/Panel/Indicators/MenuItemFactory.qml:911
402+#: qml/Panel/Indicators/MenuItemFactory.qml:921
405403msgid "Finished"
406404msgstr "Finó"
407405
408−#: qml/Panel/Indicators/MenuItemFactory.qml:913
406+#: qml/Panel/Indicators/MenuItemFactory.qml:923
409407msgid "Failed, tap to retry"
410408msgstr "Falló, toca pa reintentar"
411409
@@ -425,251 +423,324 @@ msgctxt "Button: Call back on phone"
425423msgid "Call back"
426424msgstr "Devolver llamada"
427425
428−#: qml/Tutorial/TutorialBottom.qml:28
429−msgid "Open special menus"
430−msgstr "Abrir menús especiales"
431−
432−#: qml/Tutorial/TutorialBottom.qml:29
433−msgid "Swipe up from the bottom edge."
434−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 ""
435429
436−#: qml/Tutorial/TutorialBottomFinish.qml:24
437−msgid "This action does different things for different apps"
438−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 ""
439433
440−#: qml/Tutorial/TutorialBottomFinish.qml:25
441−msgid "Tap here to finish."
442−msgstr "Toca equí pa finar."
434+#: qml/Tutorial/TutorialBottom.qml:80
435+msgid "Swipe up for favorite calculations"
436+msgstr ""
443437
444−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
445−#: qml/Tutorial/TutorialRight.qml:144
446−msgid "Tap here to continue."
447−msgstr "Toca equí pa siguir."
438+#: qml/Tutorial/TutorialBottom.qml:82
439+msgid "Swipe up for recent calls"
440+msgstr ""
448441
449−#: qml/Tutorial/TutorialLeft.qml:26
450−msgid "Open the launcher"
451−msgstr "Abrir el llanzador"
442+#: qml/Tutorial/TutorialBottom.qml:84
443+msgid "Swipe up to create a message"
444+msgstr ""
452445
453−#: qml/Tutorial/TutorialLeft.qml:27
454−msgid "Short swipe from the left edge."
455−msgstr "Esliza un poco dende'l berbesu esquierdu."
446+#: qml/Tutorial/TutorialBottom.qml:85
447+msgid "Swipe up to manage the app"
448+msgstr ""
456449
457−#: qml/Tutorial/TutorialLeftFinish.qml:24
458−msgid "These are the shortcuts to favorite apps"
459−msgstr "Estos son los atayos a les aplicaciones favorites"
450+#: qml/Tutorial/TutorialLeftLong.qml:47
451+msgid "Long swipe from the left edge to open the Today scope"
452+msgstr ""
460453
461−#: qml/Tutorial/TutorialPage.qml:178
462−msgid "You almost got it!"
463−msgstr "¡Yá cuasi finamos!"
454+#: qml/Tutorial/TutorialLeft.qml:47
455+msgid "Swipe from the left edge to open the launcher"
456+msgstr ""
464457
465−#: qml/Tutorial/TutorialPage.qml:195
466−msgid "Try again."
467−msgstr "Intentar de nueves"
458+#: qml/Tutorial/TutorialRight.qml:55
459+msgid "Push your mouse against the right edge to view your open apps"
460+msgstr ""
468461
469−#: qml/Tutorial/TutorialRight.qml:31
470−msgid "To view open apps"
471−msgstr "Pa ver aplicaciones abiertes"
462+#: qml/Tutorial/TutorialRight.qml:56
463+msgid "Short or long swipe from the right edge to view your open apps"
464+msgstr ""
472465
473−#: qml/Tutorial/TutorialRight.qml:32
474−msgid "Long swipe from the right edge."
475−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 ""
476469
477−#: qml/Tutorial/TutorialRight.qml:122
478−msgid "View all your running tasks."
479−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 ""
480473
481−#: qml/Wizard/Page.qml:89
474+#: qml/Wizard/Page.qml:54
482475msgctxt "Button: Go back one page in the Wizard"
483476msgid "Back"
484477msgstr "Atrás"
485478
486479#: qml/Wizard/Pages/10-welcome.qml:27
487−msgid "Hi!"
488−msgstr "¡Hola!"
489−
490−#: qml/Wizard/Pages/10-welcome.qml:44
491−msgid "Welcome to your Ubuntu device."
492−msgstr "Bienllegáu/ada al to preséu d'Ubuntu."
493−
494−#: qml/Wizard/Pages/10-welcome.qml:52
495−msgid "Let’s get started."
496−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"
497495
498−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
499−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
500−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
501−#: qml/Wizard/Pages/passwd-set.qml:90
502−msgid "Continue"
503−msgstr "Siguir"
496+#: qml/Wizard/Pages/30-wifi.qml:130
497+msgid "Connected"
498+msgstr "Coneutáu"
504499
505−#: qml/Wizard/Pages/20-sim.qml:25
506−msgid "Add a SIM card and restart your device"
507−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"
508503
509−#: qml/Wizard/Pages/20-sim.qml:59
510−msgid "Without it, you won’t be able to make calls or use text messaging."
511−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"
512507
513−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
508+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
509+#: qml/Wizard/Pages/sim.qml:101
514510msgid "Skip"
515511msgstr "Saltar"
516512
517−#: qml/Wizard/Pages/30-passwd-type.qml:39
518−msgid "Lock security"
519−msgstr "Seguranza del bloquéu"
513+#: qml/Wizard/Pages/40-location.qml:27
514+msgid "Location Services"
515+msgstr ""
520516
521−#: qml/Wizard/Pages/30-passwd-type.qml:79
522−msgid "Please select how you’d like to unlock your device."
523−msgstr "Esbilla cómo te prestaría desbloquiar el to preséu, por favor."
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)"
521+msgstr ""
524522
525−#: qml/Wizard/Pages/30-passwd-type.qml:102
526−msgctxt "Label: Type of security method"
527−msgid "Swipe"
528−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 ""
529527
530−#: qml/Wizard/Pages/30-passwd-type.qml:103
531−msgctxt "Label: Description of security method"
532−msgid "No security"
533−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 ""
532+
533+#: qml/Wizard/Pages/40-location.qml:160
534+msgid "GPS only"
535+msgstr ""
536+
537+#: qml/Wizard/Pages/40-location.qml:214
538+msgid "Don't use my location"
539+msgstr ""
540+
541+#: qml/Wizard/Pages/40-location.qml:260
542+msgid "You can change it later in System Settings."
543+msgstr ""
544+
545+#: qml/Wizard/Pages/50-timezone.qml:29
546+msgid "Time Zone"
547+msgstr "Estaya horaria"
548+
549+#: qml/Wizard/Pages/50-timezone.qml:178
550+msgid "Enter your city"
551+msgstr "Escribe la ciudá"
552+
553+#: qml/Wizard/Pages/60-account.qml:24
554+msgid "Personalize Your Device"
555+msgstr "Personaliza'l preséu"
556+
557+#: qml/Wizard/Pages/60-account.qml:48
558+msgid "Preferred Name"
559+msgstr "Nome preferíu"
560+
561+#: qml/Wizard/Pages/70-passwd-type.qml:39
562+msgid "Lock Screen"
563+msgstr "Bloquiar pantalla"
534564
535−#: qml/Wizard/Pages/30-passwd-type.qml:105
565+#: qml/Wizard/Pages/70-passwd-type.qml:101
536566msgctxt "Label: Type of security method"
537−msgid "Passcode"
538−msgstr "Códigu de pasu"
567+msgid "Create new password"
568+msgstr ""
539569
540−#: qml/Wizard/Pages/30-passwd-type.qml:106
541−msgctxt "Label: Description of security method"
542−msgid "4 digits only"
543−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 ""
544574
545−#: qml/Wizard/Pages/30-passwd-type.qml:108
575+#: qml/Wizard/Pages/70-passwd-type.qml:105
546576msgctxt "Label: Type of security method"
547−msgid "Passphrase"
548−msgstr "Fras de pasu"
577+msgid "No lock code"
578+msgstr ""
549579
550−#: qml/Wizard/Pages/30-passwd-type.qml:109
551−msgctxt "Label: Description of security method"
552−msgid "Numbers and letters"
553−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 ""
554583
555−#: qml/Wizard/Pages/40-wifi.qml:29
556−msgid "Connect to Wi‑Fi"
557−msgstr "Coneutase al WiFi"
584+#: qml/Wizard/Pages/75-report-check.qml:26
585+msgid "Help Us Improve"
586+msgstr ""
587+
588+#: qml/Wizard/Pages/75-report-check.qml:59
589+msgid "Improve system performance by sending us crashes and error reports."
590+msgstr ""
591+
592+#: qml/Wizard/Pages/75-report-check.qml:60
593+msgid "Privacy policy"
594+msgstr ""
558595
559−#: qml/Wizard/Pages/40-wifi.qml:168
560−msgid "Available networks…"
561−msgstr "Redes disponibles..."
596+#: qml/Wizard/Pages/80-finished.qml:89
597+msgid "Welcome to Ubuntu"
598+msgstr "Bienveníu/a a Ubuntu"
562599
563−#: qml/Wizard/Pages/40-wifi.qml:169
564−msgid "No available networks."
565−msgstr "Nun hai redes disponibles"
600+#: qml/Wizard/Pages/80-finished.qml:104
601+msgid "You are ready to use your device now"
602+msgstr ""
566603
567−#: qml/Wizard/Pages/50-location.qml:27
568−msgid "Location"
569−msgstr "Allugamientu"
604+#: qml/Wizard/Pages/80-finished.qml:124
605+msgid "Get Started"
606+msgstr "Primeros pasos"
570607
571−#: qml/Wizard/Pages/50-location.qml:62
572−msgid "Let the phone detect your location:"
573−msgstr "Dexar al teléfonu deteutar l'allugamientu:"
608+#: qml/Wizard/Pages/here-terms.qml:25
609+msgid "Terms & Conditions"
610+msgstr "Términos y condiciones"
574611
575−#: qml/Wizard/Pages/50-location.qml:69
576−msgid "Using GPS only (less accurate)"
577−msgstr "Namái usando GPS (menos precisión)"
612+#: qml/Wizard/Pages/here-terms.qml:69
613+msgid "Your device uses positioning technologies provided by HERE."
614+msgstr ""
578615
579−#: qml/Wizard/Pages/50-location.qml:86
580−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
616+#: qml/Wizard/Pages/here-terms.qml:81
617+msgid ""
618+"To provide you with positioning services and to improve their quality, HERE "
619+"collects information about nearby cell towers and Wi-Fi hotspots around your "
620+"current location whenever your position is being found."
581621msgstr ""
582−"Usando GPS, Wi-fi anónimes ya información de redes móviles (aconseyao)"
583622
584−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
585−#: qml/Wizard/Pages/50-location.qml:103
623+#: qml/Wizard/Pages/here-terms.qml:93
586624msgid ""
587−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
588−"conditions</a>."
625+"The information collected is used to analyze the service and to improve the "
626+"use of service, but not to identify you personally."
589627msgstr ""
590−"Esbillando esta opción aceutes los <a href='#'>términos y condiciones</a> de "
591−"Nokia HERE."
592628
593−#: qml/Wizard/Pages/50-location.qml:112
594−msgid "Not at all"
595−msgstr "De nengún mou"
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 ""
596633
597−#: qml/Wizard/Pages/50-location.qml:124
598−msgid "You can change your mind later in <b>System Settings</b>."
599−msgstr "Pues cambialo dempués n'<b>Axustes del sistema</b>."
634+#: qml/Wizard/Pages/here-terms.qml:107
635+msgid "Service Terms"
636+msgstr ""
600637
601−#: qml/Wizard/Pages/60-reporting.qml:26
602−msgid "Improving your experience"
603−msgstr "Ameyorando la to esperiencia"
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"
604642
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."
643+#: qml/Wizard/Pages/passcode-confirm.qml:45
644+msgid "Incorrect passcode."
609645msgstr ""
610−"El teléfonu ta configuráu pa informar automáticamente de los fallos a "
611−"Canonical y asociaos, los fabricantes del sistema operativu."
612646
613−#: qml/Wizard/Pages/60-reporting.qml:53
614−msgid ""
615−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
616−"Privacy</b>"
647+#: qml/Wizard/Pages/passcode-confirm.qml:45
648+msgctxt "Enter the passcode again"
649+msgid "Please re-enter."
617650msgstr ""
618−"Esto pue deshabilitase nos <b>Axustes del sistema</b> en <b>Seguranza y "
619−"privacidá</b>"
620651
621−#: qml/Wizard/Pages/80-finished.qml:24
622−msgid "All done"
623−msgstr "Too fecho"
652+#: qml/Wizard/Pages/passcode-desktop.qml:30
653+msgid "Lock Screen Passcode"
654+msgstr ""
624655
625−#: qml/Wizard/Pages/80-finished.qml:39
626−msgid "Nice work!"
627−msgstr "¡Bon trabayu!"
656+#: qml/Wizard/Pages/passcode-desktop.qml:56
657+msgid "Enter 4 numbers to setup your passcode"
658+msgstr ""
628659
629−#: qml/Wizard/Pages/80-finished.qml:46
630−msgid "Your device is now ready to use."
631−msgstr "Agora'l to preséu ta preparáu pa usase."
660+#: qml/Wizard/Pages/passcode-desktop.qml:65
661+#: qml/Wizard/Pages/passcode-set.qml:54
662+msgid "Choose passcode"
663+msgstr ""
632664
633−#: qml/Wizard/Pages/80-finished.qml:53
634−msgid "Finish"
635−msgstr "Finar"
665+#: qml/Wizard/Pages/passcode-desktop.qml:105
666+msgid "Passcode too short"
667+msgstr ""
636668
637−#: qml/Wizard/Pages/here-terms.qml:27
638−msgid "Terms & Conditions"
639−msgstr "Términos y condiciones"
669+#: qml/Wizard/Pages/passcode-desktop.qml:107
670+msgid "Passcodes match"
671+msgstr ""
640672
641−#: qml/Wizard/Pages/passwd-confirm.qml:49
642−msgid "Confirm passphrase"
643−msgstr "Confirmar frase de pasu"
673+#: qml/Wizard/Pages/passcode-desktop.qml:109
674+msgid "Passcodes do not match"
675+msgstr ""
644676
645−#: qml/Wizard/Pages/passwd-confirm.qml:50
646−msgid "Confirm passcode"
647−msgstr "Confirmar códigu de pasu"
677+#: qml/Wizard/Pages/passcode-set.qml:62
678+msgid "Passcode must be 4 characters long"
679+msgstr ""
680+
681+#: qml/Wizard/Pages/password-set.qml:30
682+msgid "Lock Screen Password"
683+msgstr ""
648684
649−#: qml/Wizard/Pages/passwd-confirm.qml:53
650−#: qml/Wizard/Pages/passwd-confirm.qml:54
651−msgid "Please try again."
652−msgstr "Por favor, vuelvi a intentalo."
685+#: qml/Wizard/Pages/password-set.qml:61
686+msgid "Enter at least 8 characters"
687+msgstr ""
653688
654−#: qml/Wizard/Pages/passwd-set.qml:61
655−msgid "Choose your passcode"
656−msgstr "Escueyi'l to códigu de pasu"
689+#: qml/Wizard/Pages/password-set.qml:73
690+msgid "Choose password"
691+msgstr ""
657692
658−#: qml/Wizard/Pages/passwd-set.qml:68
659−msgid "Passphrase must be 4 characters long"
660−msgstr "La fras de pasu tien de ser 4 caráuteres de llargor"
693+#: qml/Wizard/Pages/password-set.qml:103
694+msgid "Confirm password"
695+msgstr "Confirmar contraseña"
661696
662−#. Translators: This is the arrow for "Back" buttons
663−#: qml/Wizard/StackButton.qml:39
664−#, qt-format
665−msgid "〈 %1"
666−msgstr "〈 %1"
697+#: qml/Wizard/Pages/sim.qml:27
698+msgid "No SIM card installed"
699+msgstr ""
667700
668−#. Translators: This is the arrow for "Forward" buttons
669−#: qml/Wizard/StackButton.qml:42
670−#, qt-format
671−msgid "%1 〉"
672−msgstr "%1 〉"
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"
673744
674745#~ msgid "Skip intro"
675746#~ msgstr "Omitir la intro"
@@ -721,6 +792,9 @@ msgstr "%1 〉"
721792#~ msgid "Search"
722793#~ msgstr "Guetar"
723794
795+#~ msgid "See less"
796+#~ msgstr "Ver menos"
797+
724798#~ msgid ""
725799#~ "You have now mastered the edge gestures and can start using the "
726800#~ "phone<br><br>Tap on the screen to start"
@@ -728,6 +802,9 @@ msgstr "%1 〉"
728802#~ "Agora yá domines los xestos de los berbesos y pues entamar a usar el "
729803#~ "teléfonu<br><br>Toca la pantalla pa comenzar"
730804
805+#~ msgid "See all"
806+#~ msgstr "Ver too"
807+
731808#~ msgid "Power"
732809#~ msgstr "Enerxía"
733810
@@ -764,24 +841,195 @@ msgstr "%1 〉"
764841#~ msgid "Roaming"
765842#~ msgstr "Roaming"
766843
767−#~ msgid "Restart"
768−#~ msgstr "Reaniciar"
769−
770844#~ msgid "Manage Scopes"
771845#~ msgstr "Xestionar ámbitos"
772846
847+#~ msgid "Continue"
848+#~ msgstr "Siguir"
849+
850+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
851+#~ msgstr "Ensin ella, nun vas poder facer llamaes nin unviar mensaxes."
852+
853+#~ msgid "You can change your mind later in <b>System Settings</b>."
854+#~ msgstr "Pues cambialo dempués n'<b>Axustes del sistema</b>."
855+
856+#~ msgid "Available networks…"
857+#~ msgstr "Redes disponibles..."
858+
859+#~ msgid "No available networks."
860+#~ msgstr "Nun hai redes disponibles"
861+
862+#~ msgid "Using GPS only (less accurate)"
863+#~ msgstr "Namái usando GPS (menos precisión)"
864+
865+#~ msgid ""
866+#~ "Your phone is set up to automatically report errors to Canonical and its "
867+#~ "partners, the makers of the operating system."
868+#~ msgstr ""
869+#~ "El teléfonu ta configuráu pa informar automáticamente de los fallos a "
870+#~ "Canonical y asociaos, los fabricantes del sistema operativu."
871+
872+#~ msgid "All done"
873+#~ msgstr "Too fecho"
874+
875+#~ msgid "Finish"
876+#~ msgstr "Finar"
877+
878+#~ msgid "Not at all"
879+#~ msgstr "De nengún mou"
880+
881+#, qt-format
882+#~ msgid "〈 %1"
883+#~ msgstr "〈 %1"
884+
885+#, qt-format
886+#~ msgid "%1 〉"
887+#~ msgstr "%1 〉"
888+
889+#~ msgid "Open the launcher"
890+#~ msgstr "Abrir el llanzador"
891+
892+#~ msgid "Tap here to continue."
893+#~ msgstr "Toca equí pa siguir."
894+
895+#~ msgid "Open special menus"
896+#~ msgstr "Abrir menús especiales"
897+
898+#~ msgid "Tap here to finish."
899+#~ msgstr "Toca equí pa finar."
900+
901+#~ msgctxt "Button: Shut down the system"
902+#~ msgid "Shut down"
903+#~ msgstr "Apagar"
904+
905+#~ msgctxt "Button: Reboot the system"
906+#~ msgid "Reboot"
907+#~ msgstr "Reaniciar"
908+
909+#~ msgid "These are the shortcuts to favorite apps"
910+#~ msgstr "Estos son los atayos a les aplicaciones favorites"
911+
912+#~ msgctxt "Label: Type of security method"
913+#~ msgid "Passcode"
914+#~ msgstr "Códigu de pasu"
915+
916+#~ msgid "To view open apps"
917+#~ msgstr "Pa ver aplicaciones abiertes"
918+
919+#~ msgid "Are you sure you want to shut down?"
920+#~ msgstr "¿De xuru que quies apagar?"
921+
922+#~ msgctxt "Title: Reboot/Shut down dialog"
923+#~ msgid "Shut down"
924+#~ msgstr "Apagáu"
925+
773926#~ msgid "Please re-enter"
774927#~ msgstr "Por favor, reintroduzla"
775928
929+#~ msgid "This action does different things for different apps"
930+#~ msgstr "Esta aición fai coses distintes p'aplicaciones estremaes"
931+
932+#~ msgid "Swipe up from the bottom edge."
933+#~ msgstr "Esliza dende'l berbesu d'embaxo."
934+
935+#~ msgid "Long swipe from the right edge."
936+#~ msgstr "Eslizamientu llargu dende'l berbesu drechu."
937+
938+#~ msgid "View all your running tasks."
939+#~ msgstr "Mira toles tos aplicaciones n'execución."
940+
941+#~ msgid "Try again."
942+#~ msgstr "Intentar de nueves"
943+
944+#~ msgid "You almost got it!"
945+#~ msgstr "¡Yá cuasi finamos!"
946+
947+#~ msgid "Short swipe from the left edge."
948+#~ msgstr "Esliza un poco dende'l berbesu esquierdu."
949+
950+#~ msgid "Hi!"
951+#~ msgstr "¡Hola!"
952+
953+#~ msgid "Lock security"
954+#~ msgstr "Seguranza del bloquéu"
955+
956+#~ msgid "Add a SIM card and restart your device"
957+#~ msgstr "Amiesta una tarxeta SIM y reanicia'l to preséu"
958+
776959#~ msgid "Please select how you’d like to unlock your phone."
777960#~ msgstr "Por favor, esbilla como te prestaría desbloquiar el teléfonu."
778961
962+#~ msgctxt "Label: Description of security method"
963+#~ msgid "No security"
964+#~ msgstr "Ensin seguranza"
965+
966+#~ msgctxt "Label: Type of security method"
967+#~ msgid "Swipe"
968+#~ msgstr "Eslizar"
969+
779970#~ msgid "Welcome to your Ubuntu phone."
780971#~ msgstr "Bienllegáu/ada al to teléfonu d'Ubuntu"
781972
973+#~ msgid "Let’s get started."
974+#~ msgstr "Entamemos."
975+
976+#~ msgctxt "Label: Description of security method"
977+#~ msgid "4 digits only"
978+#~ msgstr "Namái 4 díxitos"
979+
980+#~ msgid "Let the phone detect your location:"
981+#~ msgstr "Dexar al teléfonu deteutar l'allugamientu:"
982+
983+#~ msgid "Location"
984+#~ msgstr "Allugamientu"
985+
986+#~ msgctxt "Label: Type of security method"
987+#~ msgid "Passphrase"
988+#~ msgstr "Fras de pasu"
989+
990+#~ msgctxt "Label: Description of security method"
991+#~ msgid "Numbers and letters"
992+#~ msgstr "Númberos y lletres"
993+
994+#~ msgid "Improving your experience"
995+#~ msgstr "Ameyorando la to esperiencia"
996+
997+#~ msgid ""
998+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
999+#~ "Privacy</b>"
1000+#~ msgstr ""
1001+#~ "Esto pue deshabilitase nos <b>Axustes del sistema</b> en <b>Seguranza y "
1002+#~ "privacidá</b>"
1003+
1004+#~ msgid "Nice work!"
1005+#~ msgstr "¡Bon trabayu!"
1006+
1007+#~ msgid ""
1008+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1009+#~ "conditions</a>."
1010+#~ msgstr ""
1011+#~ "Esbillando esta opción aceutes los <a href='#'>términos y condiciones</a> de "
1012+#~ "Nokia HERE."
1013+
1014+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
1015+#~ msgstr ""
1016+#~ "Usando GPS, Wi-fi anónimes ya información de redes móviles (aconseyao)"
1017+
7821018#~ msgid "Your phone is now ready to use."
7831019#~ msgstr "El teléfonu yá ta tresnáu pa usase."
7841020
1021+#~ msgid "Confirm passphrase"
1022+#~ msgstr "Confirmar frase de pasu"
1023+
1024+#~ msgid "Passphrase must be 4 characters long"
1025+#~ msgstr "La fras de pasu tien de ser 4 caráuteres de llargor"
1026+
1027+#~ msgid "Choose your passcode"
1028+#~ msgstr "Escueyi'l to códigu de pasu"
1029+
1030+#~ msgid "Please try again."
1031+#~ msgstr "Por favor, vuelvi a intentalo."
1032+
7851033#~ msgid "%a %H:%M"
7861034#~ msgstr "%a %H:%M"
7871035
@@ -814,15 +1062,3 @@ msgstr "%1 〉"
8141062
8151063#~ msgid "Call back"
8161064#~ msgstr "Devolver llamada"
817−
818−#~ msgid "Re-dock, save your work and close these apps to continue."
819−#~ msgstr ""
820−#~ "Pa siguir coneuta nuevamente'l preséu, guarda'l trabayu y zarra estes "
821−#~ "aplicaciones."
822−
823−#~ msgid ""
824−#~ "Your device is now connected to an external display. Use this screen as a "
825−#~ "touch pad to interact with the mouse."
826−#~ msgstr ""
827−#~ "Agora'l to preséu ta coneutáu a una pantalla esterna. Usa esta pantalla como "
828−#~ "panel táutil pa interactuar col mur."
po/az.po+272−185
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
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,8 +15,8 @@ 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-03-13 05:50+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -73,64 +73,46 @@ 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:217
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:182
11496msgid "Yes"
11597msgstr "Hə"
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr ""
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
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:200
129111msgctxt "Button: Power off the system"
130112msgid "Power off"
131113msgstr ""
132114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:209
134116msgctxt "Button: Restart the system"
135117msgid "Restart"
136118msgstr ""
@@ -173,42 +155,58 @@ msgstr ""
173155msgid "Close all"
174156msgstr ""
175157
176−#: qml/Dash/DashPageHeader.qml:270
158+#: qml/Dash/DashPageHeader.qml:337
177159msgctxt "Button: Open the Ubuntu Store"
178160msgid "Store"
179161msgstr ""
180162
181−#: qml/Dash/DashPageHeader.qml:277
163+#: qml/Dash/DashPageHeader.qml:344
182164msgctxt "Button: Start a search in the current dash scope"
183165msgid "Search"
184166msgstr ""
185167
186−#: qml/Dash/DashPageHeader.qml:287
168+#: qml/Dash/DashPageHeader.qml:354
187169msgctxt "Button: Show the current dash scope settings"
188170msgid "Settings"
189171msgstr ""
190172
191−#: qml/Dash/DashPageHeader.qml:294
173+#: qml/Dash/DashPageHeader.qml:361
192174msgid "Remove from Favorites"
193175msgstr "Seçilmişlәrdәn çıxart"
194176
195−#: qml/Dash/DashPageHeader.qml:294
177+#: qml/Dash/DashPageHeader.qml:361
196178msgid "Add to Favorites"
197179msgstr "Seçilmişlәrә әlavә et"
198180
199−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
200−msgid "See less"
201−msgstr "Daha azını gör"
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 ""
202188
203−#: qml/Dash/GenericScopeView.qml:567
204−msgid "See all"
205−msgstr "Hamısını gör"
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190+msgid "Show less"
191+msgstr ""
192+
193+#: qml/Dash/GenericScopeView.qml:579
194+msgid "Show all"
195+msgstr ""
206196
207−#: qml/Dash/GenericScopeView.qml:629
197+#: qml/Dash/GenericScopeView.qml:636
208198msgctxt "Label: Hint for dash search line edit"
209199msgid "Search"
210200msgstr ""
211201
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+
212210#: qml/Dash/Previews/PreviewActionCombo.qml:35
213211msgid "More..."
214212msgstr "Daha çox..."
@@ -276,11 +274,11 @@ msgstr ""
276274msgid "Tap to unlock"
277275msgstr ""
278276
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
280278msgid "Sorry, incorrect passphrase."
281279msgstr "Bağışlayın, açar söz yanlışdır."
282280
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
284282msgid "Sorry, incorrect passcode."
285283msgstr "Təəssüf ki, açar kod yanlışdır."
286284
@@ -309,7 +307,7 @@ msgstr ""
309307msgid "Enter %1"
310308msgstr ""
311309
312−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
310+#: qml/Greeter/NarrowView.qml:117
313311msgid "Enter passphrase"
314312msgstr ""
315313
@@ -335,7 +333,7 @@ msgstr ""
335333msgid "Sorry, incorrect passcode"
336334msgstr ""
337335
338−#: qml/Notifications/NotificationMenuItemFactory.qml:129
336+#: qml/Notifications/NotificationMenuItemFactory.qml:124
339337msgid "Show password"
340338msgstr "Şifrәni göstәr"
341339
@@ -347,62 +345,62 @@ msgstr "Zəngə qayıtmaq üçün toxunun..."
347345msgid "Conference"
348346msgstr "Konfrans"
349347
350−#: qml/Panel/Indicators/MenuItemFactory.qml:752
348+#: qml/Panel/Indicators/MenuItemFactory.qml:762
351349msgid "Nothing is playing"
352350msgstr ""
353351
354−#: qml/Panel/Indicators/MenuItemFactory.qml:881
352+#: qml/Panel/Indicators/MenuItemFactory.qml:891
355353#, qt-format
356354msgid "%1 hour"
357355msgid_plural "%1 hours"
358356msgstr[0] ""
359357msgstr[1] ""
360358
361−#: qml/Panel/Indicators/MenuItemFactory.qml:885
359+#: qml/Panel/Indicators/MenuItemFactory.qml:895
362360#, qt-format
363361msgid "%1 minute"
364362msgid_plural "%1 minutes"
365363msgstr[0] ""
366364msgstr[1] ""
367365
368−#: qml/Panel/Indicators/MenuItemFactory.qml:890
366+#: qml/Panel/Indicators/MenuItemFactory.qml:900
369367#, qt-format
370368msgid "%1 second"
371369msgid_plural "%1 seconds"
372370msgstr[0] ""
373371msgstr[1] ""
374372
375−#: qml/Panel/Indicators/MenuItemFactory.qml:893
373+#: qml/Panel/Indicators/MenuItemFactory.qml:903
376374msgid "0 seconds"
377375msgstr ""
378376
379377#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
380−#: qml/Panel/Indicators/MenuItemFactory.qml:895
378+#: qml/Panel/Indicators/MenuItemFactory.qml:905
381379#, qt-format
382380msgid "%1 remaining"
383381msgstr ""
384382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:901
383+#: qml/Panel/Indicators/MenuItemFactory.qml:911
386384msgid "In queue…"
387385msgstr "Növbədədir..."
388386
389−#: qml/Panel/Indicators/MenuItemFactory.qml:905
387+#: qml/Panel/Indicators/MenuItemFactory.qml:915
390388msgid "Downloading"
391389msgstr "Endirilir"
392390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:907
391+#: qml/Panel/Indicators/MenuItemFactory.qml:917
394392msgid "Paused, tap to resume"
395393msgstr "Dayandırıldı. Davam etmək üçün toxunun"
396394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:909
395+#: qml/Panel/Indicators/MenuItemFactory.qml:919
398396msgid "Canceled"
399397msgstr "İmtina edildi"
400398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:911
399+#: qml/Panel/Indicators/MenuItemFactory.qml:921
402400msgid "Finished"
403401msgstr "Bitdi"
404402
405−#: qml/Panel/Indicators/MenuItemFactory.qml:913
403+#: qml/Panel/Indicators/MenuItemFactory.qml:923
406404msgid "Failed, tap to retry"
407405msgstr "Alınmadı. Yenidәn cәhd etmək üçün toxunun"
408406
@@ -422,243 +420,323 @@ msgctxt "Button: Call back on phone"
422420msgid "Call back"
423421msgstr ""
424422
425−#: qml/Tutorial/TutorialBottom.qml:28
426−msgid "Open special menus"
427−msgstr ""
428−
429−#: qml/Tutorial/TutorialBottom.qml:29
430−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"
431425msgstr ""
432426
433−#: qml/Tutorial/TutorialBottomFinish.qml:24
434−msgid "This action does different things for different apps"
427+#: qml/Tutorial/TutorialBottom.qml:78
428+msgid "Swipe up to add a contact"
435429msgstr ""
436430
437−#: qml/Tutorial/TutorialBottomFinish.qml:25
438−msgid "Tap here to finish."
431+#: qml/Tutorial/TutorialBottom.qml:80
432+msgid "Swipe up for favorite calculations"
439433msgstr ""
440434
441−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
442−#: qml/Tutorial/TutorialRight.qml:144
443−msgid "Tap here to continue."
435+#: qml/Tutorial/TutorialBottom.qml:82
436+msgid "Swipe up for recent calls"
444437msgstr ""
445438
446−#: qml/Tutorial/TutorialLeft.qml:26
447−msgid "Open the launcher"
439+#: qml/Tutorial/TutorialBottom.qml:84
440+msgid "Swipe up to create a message"
448441msgstr ""
449442
450−#: qml/Tutorial/TutorialLeft.qml:27
451−msgid "Short swipe from the left edge."
443+#: qml/Tutorial/TutorialBottom.qml:85
444+msgid "Swipe up to manage the app"
452445msgstr ""
453446
454−#: qml/Tutorial/TutorialLeftFinish.qml:24
455−msgid "These are the shortcuts to favorite apps"
447+#: qml/Tutorial/TutorialLeftLong.qml:47
448+msgid "Long swipe from the left edge to open the Today scope"
456449msgstr ""
457450
458−#: qml/Tutorial/TutorialPage.qml:178
459−msgid "You almost got it!"
451+#: qml/Tutorial/TutorialLeft.qml:47
452+msgid "Swipe from the left edge to open the launcher"
460453msgstr ""
461454
462−#: qml/Tutorial/TutorialPage.qml:195
463−msgid "Try again."
455+#: qml/Tutorial/TutorialRight.qml:55
456+msgid "Push your mouse against the right edge to view your open apps"
464457msgstr ""
465458
466−#: qml/Tutorial/TutorialRight.qml:31
467−msgid "To view open apps"
459+#: qml/Tutorial/TutorialRight.qml:56
460+msgid "Short or long swipe from the right edge to view your open apps"
468461msgstr ""
469462
470−#: qml/Tutorial/TutorialRight.qml:32
471−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"
472465msgstr ""
473466
474−#: qml/Tutorial/TutorialRight.qml:122
475−msgid "View all your running tasks."
467+#: qml/Tutorial/TutorialTop.qml:54
468+msgid "Swipe from the top edge to open the notification bar"
476469msgstr ""
477470
478−#: qml/Wizard/Page.qml:89
471+#: qml/Wizard/Page.qml:54
479472msgctxt "Button: Go back one page in the Wizard"
480473msgid "Back"
481474msgstr ""
482475
483476#: qml/Wizard/Pages/10-welcome.qml:27
484−msgid "Hi!"
477+msgid "Language"
485478msgstr ""
486479
487−#: qml/Wizard/Pages/10-welcome.qml:44
488−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"
489487msgstr ""
490488
491−#: qml/Wizard/Pages/10-welcome.qml:52
492−msgid "Let’s get started."
489+#: qml/Wizard/Pages/30-wifi.qml:29
490+msgid "Connect to Wi‑Fi"
493491msgstr ""
494492
495−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
496−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
497−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
498−#: qml/Wizard/Pages/passwd-set.qml:90
499−msgid "Continue"
493+#: qml/Wizard/Pages/30-wifi.qml:130
494+msgid "Connected"
500495msgstr ""
501496
502−#: qml/Wizard/Pages/20-sim.qml:25
503−msgid "Add a SIM card and restart your device"
497+#: qml/Wizard/Pages/30-wifi.qml:163
498+msgid "Available Wi-Fi networks"
504499msgstr ""
505500
506−#: qml/Wizard/Pages/20-sim.qml:59
507−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"
508503msgstr ""
509504
510−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
505+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
506+#: qml/Wizard/Pages/sim.qml:101
511507msgid "Skip"
512508msgstr ""
513509
514−#: qml/Wizard/Pages/30-passwd-type.qml:39
515−msgid "Lock security"
510+#: qml/Wizard/Pages/40-location.qml:27
511+msgid "Location Services"
516512msgstr ""
517513
518−#: qml/Wizard/Pages/30-passwd-type.qml:79
519−msgid "Please select how you’d like to unlock your device."
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)"
520518msgstr ""
521519
522−#: qml/Wizard/Pages/30-passwd-type.qml:102
523−msgctxt "Label: Type of security method"
524−msgid "Swipe"
520+#: qml/Wizard/Pages/40-location.qml:105
521+#, qt-format
522+msgid "By selecting this option you agree to the Nokia HERE %1."
523+msgstr ""
524+
525+#: qml/Wizard/Pages/40-location.qml:106
526+msgctxt "part of: Nokia HERE terms and conditions"
527+msgid "terms and conditions"
528+msgstr ""
529+
530+#: qml/Wizard/Pages/40-location.qml:160
531+msgid "GPS only"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:214
535+msgid "Don't use my location"
536+msgstr ""
537+
538+#: qml/Wizard/Pages/40-location.qml:260
539+msgid "You can change it later in System Settings."
540+msgstr ""
541+
542+#: qml/Wizard/Pages/50-timezone.qml:29
543+msgid "Time Zone"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/50-timezone.qml:178
547+msgid "Enter your city"
525548msgstr ""
526549
527−#: qml/Wizard/Pages/30-passwd-type.qml:103
528−msgctxt "Label: Description of security method"
529−msgid "No security"
550+#: qml/Wizard/Pages/60-account.qml:24
551+msgid "Personalize Your Device"
530552msgstr ""
531553
532−#: qml/Wizard/Pages/30-passwd-type.qml:105
554+#: qml/Wizard/Pages/60-account.qml:48
555+msgid "Preferred Name"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/70-passwd-type.qml:39
559+msgid "Lock Screen"
560+msgstr ""
561+
562+#: qml/Wizard/Pages/70-passwd-type.qml:101
533563msgctxt "Label: Type of security method"
534−msgid "Passcode"
564+msgid "Create new password"
535565msgstr ""
536566
537−#: qml/Wizard/Pages/30-passwd-type.qml:106
538−msgctxt "Label: Description of security method"
539−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)"
540570msgstr ""
541571
542−#: qml/Wizard/Pages/30-passwd-type.qml:108
572+#: qml/Wizard/Pages/70-passwd-type.qml:105
543573msgctxt "Label: Type of security method"
544−msgid "Passphrase"
574+msgid "No lock code"
545575msgstr ""
546576
547−#: qml/Wizard/Pages/30-passwd-type.qml:109
548−msgctxt "Label: Description of security method"
549−msgid "Numbers and letters"
577+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
578+msgid "Privacy Policy"
550579msgstr ""
551580
552−#: qml/Wizard/Pages/40-wifi.qml:29
553−msgid "Connect to Wi‑Fi"
581+#: qml/Wizard/Pages/75-report-check.qml:26
582+msgid "Help Us Improve"
554583msgstr ""
555584
556−#: qml/Wizard/Pages/40-wifi.qml:168
557−msgid "Available networks…"
585+#: qml/Wizard/Pages/75-report-check.qml:59
586+msgid "Improve system performance by sending us crashes and error reports."
558587msgstr ""
559588
560−#: qml/Wizard/Pages/40-wifi.qml:169
561−msgid "No available networks."
589+#: qml/Wizard/Pages/75-report-check.qml:60
590+msgid "Privacy policy"
562591msgstr ""
563592
564−#: qml/Wizard/Pages/50-location.qml:27
565−msgid "Location"
593+#: qml/Wizard/Pages/80-finished.qml:89
594+msgid "Welcome to Ubuntu"
566595msgstr ""
567596
568−#: qml/Wizard/Pages/50-location.qml:62
569−msgid "Let the phone detect your location:"
597+#: qml/Wizard/Pages/80-finished.qml:104
598+msgid "You are ready to use your device now"
570599msgstr ""
571600
572−#: qml/Wizard/Pages/50-location.qml:69
573−msgid "Using GPS only (less accurate)"
601+#: qml/Wizard/Pages/80-finished.qml:124
602+msgid "Get Started"
574603msgstr ""
575604
576−#: qml/Wizard/Pages/50-location.qml:86
577−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
605+#: qml/Wizard/Pages/here-terms.qml:25
606+msgid "Terms & Conditions"
607+msgstr ""
608+
609+#: qml/Wizard/Pages/here-terms.qml:69
610+msgid "Your device uses positioning technologies provided by HERE."
578611msgstr ""
579612
580−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
581−#: qml/Wizard/Pages/50-location.qml:103
613+#: qml/Wizard/Pages/here-terms.qml:81
582614msgid ""
583−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
584−"conditions</a>."
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."
585618msgstr ""
586619
587−#: qml/Wizard/Pages/50-location.qml:112
588−msgid "Not at all"
620+#: qml/Wizard/Pages/here-terms.qml:93
621+msgid ""
622+"The information collected is used to analyze the service and to improve the "
623+"use of service, but not to identify you personally."
589624msgstr ""
590625
591−#: qml/Wizard/Pages/50-location.qml:124
592−msgid "You can change your mind later in <b>System Settings</b>."
626+#: qml/Wizard/Pages/here-terms.qml:106
627+#, qt-format
628+msgid "By continuing, you agree to the HERE platform %1 and %2."
593629msgstr ""
594630
595−#: qml/Wizard/Pages/60-reporting.qml:26
596−msgid "Improving your experience"
631+#: qml/Wizard/Pages/here-terms.qml:107
632+msgid "Service Terms"
597633msgstr ""
598634
599−#: qml/Wizard/Pages/60-reporting.qml:46
600−msgid ""
601−"Your phone is set up to automatically report errors to Canonical and its "
602−"partners, the makers of the operating system."
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:53
606−msgid ""
607−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
608−"Privacy</b>"
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
641+msgid "Incorrect passcode."
609642msgstr ""
610643
611−#: qml/Wizard/Pages/80-finished.qml:24
612−msgid "All done"
644+#: qml/Wizard/Pages/passcode-confirm.qml:45
645+msgctxt "Enter the passcode again"
646+msgid "Please re-enter."
613647msgstr ""
614648
615−#: qml/Wizard/Pages/80-finished.qml:39
616−msgid "Nice work!"
649+#: qml/Wizard/Pages/passcode-desktop.qml:30
650+msgid "Lock Screen Passcode"
617651msgstr ""
618652
619−#: qml/Wizard/Pages/80-finished.qml:46
620−msgid "Your device is now ready to use."
653+#: qml/Wizard/Pages/passcode-desktop.qml:56
654+msgid "Enter 4 numbers to setup your passcode"
621655msgstr ""
622656
623−#: qml/Wizard/Pages/80-finished.qml:53
624−msgid "Finish"
657+#: qml/Wizard/Pages/passcode-desktop.qml:65
658+#: qml/Wizard/Pages/passcode-set.qml:54
659+msgid "Choose passcode"
625660msgstr ""
626661
627−#: qml/Wizard/Pages/here-terms.qml:27
628−msgid "Terms & Conditions"
662+#: qml/Wizard/Pages/passcode-desktop.qml:105
663+msgid "Passcode too short"
629664msgstr ""
630665
631−#: qml/Wizard/Pages/passwd-confirm.qml:49
632−msgid "Confirm passphrase"
666+#: qml/Wizard/Pages/passcode-desktop.qml:107
667+msgid "Passcodes match"
633668msgstr ""
634669
635−#: qml/Wizard/Pages/passwd-confirm.qml:50
636−msgid "Confirm passcode"
670+#: qml/Wizard/Pages/passcode-desktop.qml:109
671+msgid "Passcodes do not match"
637672msgstr ""
638673
639−#: qml/Wizard/Pages/passwd-confirm.qml:53
640−#: qml/Wizard/Pages/passwd-confirm.qml:54
641−msgid "Please try again."
674+#: qml/Wizard/Pages/passcode-set.qml:62
675+msgid "Passcode must be 4 characters long"
642676msgstr ""
643677
644−#: qml/Wizard/Pages/passwd-set.qml:61
645−msgid "Choose your passcode"
678+#: qml/Wizard/Pages/password-set.qml:30
679+msgid "Lock Screen Password"
646680msgstr ""
647681
648−#: qml/Wizard/Pages/passwd-set.qml:68
649−msgid "Passphrase must be 4 characters long"
682+#: qml/Wizard/Pages/password-set.qml:61
683+msgid "Enter at least 8 characters"
650684msgstr ""
651685
652−#. Translators: This is the arrow for "Back" buttons
653−#: qml/Wizard/StackButton.qml:39
654−#, qt-format
655−msgid "〈 %1"
686+#: qml/Wizard/Pages/password-set.qml:73
687+msgid "Choose password"
656688msgstr ""
657689
658−#. Translators: This is the arrow for "Forward" buttons
659−#: qml/Wizard/StackButton.qml:42
660−#, qt-format
661−msgid "%1 〉"
690+#: qml/Wizard/Pages/password-set.qml:103
691+msgid "Confirm password"
692+msgstr ""
693+
694+#: qml/Wizard/Pages/sim.qml:27
695+msgid "No SIM card installed"
696+msgstr ""
697+
698+#: qml/Wizard/Pages/sim.qml:54
699+msgid "SIM card added"
700+msgstr ""
701+
702+#: qml/Wizard/Pages/sim.qml:55
703+msgid "You must restart the device to access the mobile network."
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:59
707+msgid "Restart"
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:78
711+msgid "You won’t be able to make calls or use text messaging without a SIM."
712+msgstr ""
713+
714+#: qml/Wizard/Pages/sim.qml:90
715+msgid "To proceed with no SIM tap Skip."
716+msgstr ""
717+
718+#: qml/Wizard/PasswordMeter.qml:87
719+msgid "Passwords match"
720+msgstr ""
721+
722+#: qml/Wizard/PasswordMeter.qml:89
723+msgid "Passwords do not match"
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:93
727+msgid "Strong password"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:95
731+msgid "Fair password"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:97
735+msgid "Weak password"
736+msgstr ""
737+
738+#: qml/Wizard/PasswordMeter.qml:99
739+msgid "Very weak password"
662740msgstr ""
663741
664742#~ msgid "Confirm"
@@ -698,6 +776,9 @@ msgstr ""
698776#~ msgid "Power off"
699777#~ msgstr "Söndür"
700778
779+#~ msgid "See all"
780+#~ msgstr "Hamısını gör"
781+
701782#~ msgid "All"
702783#~ msgstr "Hamısı"
703784
@@ -716,6 +797,9 @@ msgstr ""
716797#~ msgid "Log out"
717798#~ msgstr "Çıxış"
718799
800+#~ msgid "Are you sure you want to shut down?"
801+#~ msgstr "Sistemi söndürmәk istәdiyinizә әminsiniz?"
802+
719803#~ msgid "Shut down"
720804#~ msgstr "Sistemi Söndür"
721805
@@ -744,5 +828,8 @@ msgstr ""
744828#~ msgid "Settings"
745829#~ msgstr "Tənzimləmələr"
746830
831+#~ msgid "See less"
832+#~ msgstr "Daha azını gör"
833+
747834#~ msgid "Type or say a command"
748835#~ msgstr "Bir әmr söyləyin və ya yazın"
po/be.po+486−241
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+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,8 +16,8 @@ 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-03-13 05:50+0000\n"
20−"X-Generator: Launchpad (build 17939)\n"
19+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
20+"X-Generator: Launchpad (build 17995)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -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:217
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:182
119101msgid "Yes"
120102msgstr "Так"
121103
122−#: qml/Components/Dialogs.qml:232
104+#: qml/Components/Dialogs.qml:197
123105msgctxt "Title: Power off/Restart dialog"
124106msgid "Power"
125107msgstr "Сілкаванне"
126108
127−#: qml/Components/Dialogs.qml:233
109+#: qml/Components/Dialogs.qml:198
128110msgid ""
129111"Are you sure you would like\n"
130112"to power off?"
@@ -132,12 +114,12 @@ msgstr ""
132114"Вы ўпэўнены, што хочаце\n"
133115"выключыць камп'ютэр?"
134116
135−#: qml/Components/Dialogs.qml:235
117+#: qml/Components/Dialogs.qml:200
136118msgctxt "Button: Power off the system"
137119msgid "Power off"
138120msgstr "Выключыць"
139121
140−#: qml/Components/Dialogs.qml:244
122+#: qml/Components/Dialogs.qml:209
141123msgctxt "Button: Restart the system"
142124msgid "Restart"
143125msgstr "Перазапуск"
@@ -180,42 +162,58 @@ msgstr "Перападлучыцца зараз!"
180162msgid "Close all"
181163msgstr "Зачыніць усё"
182164
183−#: qml/Dash/DashPageHeader.qml:270
165+#: qml/Dash/DashPageHeader.qml:337
184166msgctxt "Button: Open the Ubuntu Store"
185167msgid "Store"
186168msgstr "Крама"
187169
188−#: qml/Dash/DashPageHeader.qml:277
170+#: qml/Dash/DashPageHeader.qml:344
189171msgctxt "Button: Start a search in the current dash scope"
190172msgid "Search"
191173msgstr "Пошук"
192174
193−#: qml/Dash/DashPageHeader.qml:287
175+#: qml/Dash/DashPageHeader.qml:354
194176msgctxt "Button: Show the current dash scope settings"
195177msgid "Settings"
196178msgstr "Налады"
197179
198−#: qml/Dash/DashPageHeader.qml:294
180+#: qml/Dash/DashPageHeader.qml:361
199181msgid "Remove from Favorites"
200182msgstr "Выдаліць з абранага"
201183
202−#: qml/Dash/DashPageHeader.qml:294
184+#: qml/Dash/DashPageHeader.qml:361
203185msgid "Add to Favorites"
204186msgstr "Дадаць да абранага"
205187
206−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
207−msgid "See less"
208−msgstr "Карацей"
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 ""
209195
210−#: qml/Dash/GenericScopeView.qml:567
211−msgid "See all"
212−msgstr "Больш падрабязна"
196+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
197+msgid "Show less"
198+msgstr ""
213199
214−#: qml/Dash/GenericScopeView.qml:629
200+#: qml/Dash/GenericScopeView.qml:579
201+msgid "Show all"
202+msgstr ""
203+
204+#: qml/Dash/GenericScopeView.qml:636
215205msgctxt "Label: Hint for dash search line edit"
216206msgid "Search"
217207msgstr "Пошук"
218208
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+
219217#: qml/Dash/Previews/PreviewActionCombo.qml:35
220218msgid "More..."
221219msgstr "Болей…"
@@ -283,11 +281,11 @@ msgstr "Паспрабаваць зноў"
283281msgid "Tap to unlock"
284282msgstr "Націсніце, каб разблакаваць"
285283
286−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
284+#: qml/Greeter/NarrowView.qml:54
287285msgid "Sorry, incorrect passphrase."
288286msgstr "Даруйце, няслушны пароль."
289287
290−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
288+#: qml/Greeter/NarrowView.qml:55
291289msgid "Sorry, incorrect passcode."
292290msgstr "Даруйце, няслушны код."
293291
@@ -316,7 +314,7 @@ msgstr ""
316314msgid "Enter %1"
317315msgstr "Увядзіце %1"
318316
319−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
317+#: qml/Greeter/NarrowView.qml:117
320318msgid "Enter passphrase"
321319msgstr "Увядзіце пароль"
322320
@@ -342,7 +340,7 @@ msgstr "Калі ласка, паўтарыце ўвод"
342340msgid "Sorry, incorrect passcode"
343341msgstr "Даруйце, некарэктны код"
344342
345−#: qml/Notifications/NotificationMenuItemFactory.qml:129
343+#: qml/Notifications/NotificationMenuItemFactory.qml:124
346344msgid "Show password"
347345msgstr "Паказаць пароль"
348346
@@ -354,11 +352,11 @@ msgstr "Націсніце, каб вярнуцца да выкліку..."
354352msgid "Conference"
355353msgstr "Канферэнцыя"
356354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:752
355+#: qml/Panel/Indicators/MenuItemFactory.qml:762
358356msgid "Nothing is playing"
359357msgstr "Нічога не грае"
360358
361−#: qml/Panel/Indicators/MenuItemFactory.qml:881
359+#: qml/Panel/Indicators/MenuItemFactory.qml:891
362360#, qt-format
363361msgid "%1 hour"
364362msgid_plural "%1 hours"
@@ -366,7 +364,7 @@ msgstr[0] "%1 гадзіна"
366364msgstr[1] "%1 гадзіны"
367365msgstr[2] "%1 гадзінаў"
368366
369−#: qml/Panel/Indicators/MenuItemFactory.qml:885
367+#: qml/Panel/Indicators/MenuItemFactory.qml:895
370368#, qt-format
371369msgid "%1 minute"
372370msgid_plural "%1 minutes"
@@ -374,7 +372,7 @@ msgstr[0] "%1 хвіліна"
374372msgstr[1] "%1 хвіліны"
375373msgstr[2] "%1 хвілінаў"
376374
377−#: qml/Panel/Indicators/MenuItemFactory.qml:890
375+#: qml/Panel/Indicators/MenuItemFactory.qml:900
378376#, qt-format
379377msgid "%1 second"
380378msgid_plural "%1 seconds"
@@ -382,37 +380,37 @@ msgstr[0] "%1 секунда"
382380msgstr[1] "%1 секунды"
383381msgstr[2] "%1 секундаў"
384382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:893
383+#: qml/Panel/Indicators/MenuItemFactory.qml:903
386384msgid "0 seconds"
387385msgstr "0 секунд"
388386
389387#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
390−#: qml/Panel/Indicators/MenuItemFactory.qml:895
388+#: qml/Panel/Indicators/MenuItemFactory.qml:905
391389#, qt-format
392390msgid "%1 remaining"
393391msgstr "%1 засталося"
394392
395−#: qml/Panel/Indicators/MenuItemFactory.qml:901
393+#: qml/Panel/Indicators/MenuItemFactory.qml:911
396394msgid "In queue…"
397395msgstr "У чарзе..."
398396
399−#: qml/Panel/Indicators/MenuItemFactory.qml:905
397+#: qml/Panel/Indicators/MenuItemFactory.qml:915
400398msgid "Downloading"
401399msgstr "Запампоўка"
402400
403−#: qml/Panel/Indicators/MenuItemFactory.qml:907
401+#: qml/Panel/Indicators/MenuItemFactory.qml:917
404402msgid "Paused, tap to resume"
405403msgstr "Прыпынена, націсніце для працягу"
406404
407−#: qml/Panel/Indicators/MenuItemFactory.qml:909
405+#: qml/Panel/Indicators/MenuItemFactory.qml:919
408406msgid "Canceled"
409407msgstr "Скасавана"
410408
411−#: qml/Panel/Indicators/MenuItemFactory.qml:911
409+#: qml/Panel/Indicators/MenuItemFactory.qml:921
412410msgid "Finished"
413411msgstr "Скончана"
414412
415−#: qml/Panel/Indicators/MenuItemFactory.qml:913
413+#: qml/Panel/Indicators/MenuItemFactory.qml:923
416414msgid "Failed, tap to retry"
417415msgstr "Не атрымалася, націсніце, каб паўтарыць спробу"
418416
@@ -432,251 +430,324 @@ msgctxt "Button: Call back on phone"
432430msgid "Call back"
433431msgstr "Патэлефанаваць"
434432
435−#: qml/Tutorial/TutorialBottom.qml:28
436−msgid "Open special menus"
437−msgstr "Адкрыць спецыяльныя меню"
438−
439−#: qml/Tutorial/TutorialBottom.qml:29
440−msgid "Swipe up from the bottom edge."
441−msgstr "Правесці уверх ад ніжняга краю."
433+#: qml/Stages/SideStage.qml:76
434+msgid "Drag using 3 fingers any application from one window to the other"
435+msgstr ""
442436
443−#: qml/Tutorial/TutorialBottomFinish.qml:24
444−msgid "This action does different things for different apps"
445−msgstr "Гэта дзеянне мае розныя наступствы для розных праграм"
437+#: qml/Tutorial/TutorialBottom.qml:78
438+msgid "Swipe up to add a contact"
439+msgstr ""
446440
447−#: qml/Tutorial/TutorialBottomFinish.qml:25
448−msgid "Tap here to finish."
449−msgstr "Націсніце тут, каб завяршыць."
441+#: qml/Tutorial/TutorialBottom.qml:80
442+msgid "Swipe up for favorite calculations"
443+msgstr ""
450444
451−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
452−#: qml/Tutorial/TutorialRight.qml:144
453−msgid "Tap here to continue."
454−msgstr "Націсніце тут, каб працягнуць."
445+#: qml/Tutorial/TutorialBottom.qml:82
446+msgid "Swipe up for recent calls"
447+msgstr ""
455448
456−#: qml/Tutorial/TutorialLeft.qml:26
457−msgid "Open the launcher"
458−msgstr "Адкрыць панэль запуску"
449+#: qml/Tutorial/TutorialBottom.qml:84
450+msgid "Swipe up to create a message"
451+msgstr ""
459452
460−#: qml/Tutorial/TutorialLeft.qml:27
461−msgid "Short swipe from the left edge."
462−msgstr "Кароткі рух з левага краю."
453+#: qml/Tutorial/TutorialBottom.qml:85
454+msgid "Swipe up to manage the app"
455+msgstr ""
463456
464−#: qml/Tutorial/TutorialLeftFinish.qml:24
465−msgid "These are the shortcuts to favorite apps"
466−msgstr "Гэта скарачэнні для абраных праграм"
457+#: qml/Tutorial/TutorialLeftLong.qml:47
458+msgid "Long swipe from the left edge to open the Today scope"
459+msgstr ""
467460
468−#: qml/Tutorial/TutorialPage.qml:178
469−msgid "You almost got it!"
470−msgstr "Амаль усё!"
461+#: qml/Tutorial/TutorialLeft.qml:47
462+msgid "Swipe from the left edge to open the launcher"
463+msgstr ""
471464
472−#: qml/Tutorial/TutorialPage.qml:195
473−msgid "Try again."
474−msgstr "Паспрабуйце яшчэ."
465+#: qml/Tutorial/TutorialRight.qml:55
466+msgid "Push your mouse against the right edge to view your open apps"
467+msgstr ""
475468
476−#: qml/Tutorial/TutorialRight.qml:31
477−msgid "To view open apps"
478−msgstr "Паглядзець адкрытыя праграмы"
469+#: qml/Tutorial/TutorialRight.qml:56
470+msgid "Short or long swipe from the right edge to view your open apps"
471+msgstr ""
479472
480−#: qml/Tutorial/TutorialRight.qml:32
481−msgid "Long swipe from the right edge."
482−msgstr "Доўгі рух ад правага краю."
473+#: qml/Tutorial/TutorialTop.qml:53
474+msgid "Swipe from the top right edge to open the notification bar"
475+msgstr ""
483476
484−#: qml/Tutorial/TutorialRight.qml:122
485−msgid "View all your running tasks."
486−msgstr "Паказаць усе запушчаныя задачы."
477+#: qml/Tutorial/TutorialTop.qml:54
478+msgid "Swipe from the top edge to open the notification bar"
479+msgstr ""
487480
488−#: qml/Wizard/Page.qml:89
481+#: qml/Wizard/Page.qml:54
489482msgctxt "Button: Go back one page in the Wizard"
490483msgid "Back"
491484msgstr "Вярнуцца"
492485
493486#: qml/Wizard/Pages/10-welcome.qml:27
494−msgid "Hi!"
495−msgstr "Вітай!"
487+msgid "Language"
488+msgstr ""
496489
497−#: qml/Wizard/Pages/10-welcome.qml:44
498−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"
499497msgstr ""
500498
501−#: qml/Wizard/Pages/10-welcome.qml:52
502−msgid "Let’s get started."
503−msgstr "Пачнем."
499+#: qml/Wizard/Pages/30-wifi.qml:29
500+msgid "Connect to Wi‑Fi"
501+msgstr "Злучыцца з Wi-Fi"
504502
505−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
506−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
507−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
508−#: qml/Wizard/Pages/passwd-set.qml:90
509−msgid "Continue"
510−msgstr "Працягнуць"
503+#: qml/Wizard/Pages/30-wifi.qml:130
504+msgid "Connected"
505+msgstr ""
511506
512−#: qml/Wizard/Pages/20-sim.qml:25
513−msgid "Add a SIM card and restart your device"
514−msgstr "Дадайце SIM-карту і перазагрузіце Вашую прыладу"
507+#: qml/Wizard/Pages/30-wifi.qml:163
508+msgid "Available Wi-Fi networks"
509+msgstr ""
515510
516−#: qml/Wizard/Pages/20-sim.qml:59
517−msgid "Without it, you won’t be able to make calls or use text messaging."
518−msgstr "Без яе Вы не зможаце тэлефанаваць ці адпраўляць паведамленні."
511+#: qml/Wizard/Pages/30-wifi.qml:164
512+msgid "No available Wi-Fi networks"
513+msgstr ""
519514
520−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
515+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
516+#: qml/Wizard/Pages/sim.qml:101
521517msgid "Skip"
522518msgstr "Прапусціць"
523519
524−#: qml/Wizard/Pages/30-passwd-type.qml:39
525−msgid "Lock security"
526−msgstr "Блакіроўка"
520+#: qml/Wizard/Pages/40-location.qml:27
521+msgid "Location Services"
522+msgstr ""
527523
528−#: qml/Wizard/Pages/30-passwd-type.qml:79
529−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)"
530528msgstr ""
531529
532−#: qml/Wizard/Pages/30-passwd-type.qml:102
533−msgctxt "Label: Type of security method"
534−msgid "Swipe"
535−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 ""
536539
537−#: qml/Wizard/Pages/30-passwd-type.qml:103
538−msgctxt "Label: Description of security method"
539−msgid "No security"
540−msgstr "Без бяспекі"
540+#: qml/Wizard/Pages/40-location.qml:160
541+msgid "GPS only"
542+msgstr ""
541543
542−#: qml/Wizard/Pages/30-passwd-type.qml:105
544+#: qml/Wizard/Pages/40-location.qml:214
545+msgid "Don't use my location"
546+msgstr ""
547+
548+#: qml/Wizard/Pages/40-location.qml:260
549+msgid "You can change it later in System Settings."
550+msgstr ""
551+
552+#: qml/Wizard/Pages/50-timezone.qml:29
553+msgid "Time Zone"
554+msgstr ""
555+
556+#: qml/Wizard/Pages/50-timezone.qml:178
557+msgid "Enter your city"
558+msgstr ""
559+
560+#: qml/Wizard/Pages/60-account.qml:24
561+msgid "Personalize Your Device"
562+msgstr ""
563+
564+#: qml/Wizard/Pages/60-account.qml:48
565+msgid "Preferred Name"
566+msgstr ""
567+
568+#: qml/Wizard/Pages/70-passwd-type.qml:39
569+msgid "Lock Screen"
570+msgstr ""
571+
572+#: qml/Wizard/Pages/70-passwd-type.qml:101
543573msgctxt "Label: Type of security method"
544−msgid "Passcode"
545−msgstr "Код-пароль"
574+msgid "Create new password"
575+msgstr ""
546576
547−#: qml/Wizard/Pages/30-passwd-type.qml:106
548−msgctxt "Label: Description of security method"
549−msgid "4 digits only"
550−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 ""
551581
552−#: qml/Wizard/Pages/30-passwd-type.qml:108
582+#: qml/Wizard/Pages/70-passwd-type.qml:105
553583msgctxt "Label: Type of security method"
554−msgid "Passphrase"
555−msgstr "Пароль"
584+msgid "No lock code"
585+msgstr ""
556586
557−#: qml/Wizard/Pages/30-passwd-type.qml:109
558−msgctxt "Label: Description of security method"
559−msgid "Numbers and letters"
560−msgstr "Літары і лічбы"
587+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
588+msgid "Privacy Policy"
589+msgstr ""
561590
562−#: qml/Wizard/Pages/40-wifi.qml:29
563−msgid "Connect to Wi‑Fi"
564−msgstr "Злучыцца з Wi-Fi"
591+#: qml/Wizard/Pages/75-report-check.qml:26
592+msgid "Help Us Improve"
593+msgstr ""
565594
566−#: qml/Wizard/Pages/40-wifi.qml:168
567−msgid "Available networks…"
568−msgstr "Даступныя сеткі..."
595+#: qml/Wizard/Pages/75-report-check.qml:59
596+msgid "Improve system performance by sending us crashes and error reports."
597+msgstr ""
569598
570−#: qml/Wizard/Pages/40-wifi.qml:169
571−msgid "No available networks."
572−msgstr "Няма даступных сетак."
599+#: qml/Wizard/Pages/75-report-check.qml:60
600+msgid "Privacy policy"
601+msgstr ""
573602
574−#: qml/Wizard/Pages/50-location.qml:27
575−msgid "Location"
576−msgstr "Месца"
603+#: qml/Wizard/Pages/80-finished.qml:89
604+msgid "Welcome to Ubuntu"
605+msgstr ""
577606
578−#: qml/Wizard/Pages/50-location.qml:62
579−msgid "Let the phone detect your location:"
580−msgstr "Дазволіць тэлефону вызначаць месцазнаходжанне:"
607+#: qml/Wizard/Pages/80-finished.qml:104
608+msgid "You are ready to use your device now"
609+msgstr ""
581610
582−#: qml/Wizard/Pages/50-location.qml:69
583−msgid "Using GPS only (less accurate)"
584−msgstr "З дапамогай толькі GPS (найменш дакладна)"
611+#: qml/Wizard/Pages/80-finished.qml:124
612+msgid "Get Started"
613+msgstr ""
585614
586−#: qml/Wizard/Pages/50-location.qml:86
587−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
615+#: qml/Wizard/Pages/here-terms.qml:25
616+msgid "Terms & Conditions"
617+msgstr "Умовы карыстання"
618+
619+#: qml/Wizard/Pages/here-terms.qml:69
620+msgid "Your device uses positioning technologies provided by HERE."
588621msgstr ""
589−"На аснове GPS, ананімізаванага Wi-Fi і дадзеных сотавай сеткі (рэкамендуецца)"
590622
591−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
592−#: qml/Wizard/Pages/50-location.qml:103
623+#: qml/Wizard/Pages/here-terms.qml:81
593624msgid ""
594−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
595−"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."
596628msgstr ""
597−"Выбарам гэтага варыянту дзеянняў вы згаджаецеся з <a href='#'> умовамі "
598−"прадстаўлення паслуг Nokia HERE</a>."
599629
600−#: qml/Wizard/Pages/50-location.qml:112
601−msgid "Not at all"
602−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 ""
603635
604−#: qml/Wizard/Pages/50-location.qml:124
605−msgid "You can change your mind later in <b>System Settings</b>."
606−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 ""
607640
608−#: qml/Wizard/Pages/60-reporting.qml:26
609−msgid "Improving your experience"
610−msgstr "Спрашчэнне вашай працы"
641+#: qml/Wizard/Pages/here-terms.qml:107
642+msgid "Service Terms"
643+msgstr ""
611644
612−#: qml/Wizard/Pages/60-reporting.qml:46
613−msgid ""
614−"Your phone is set up to automatically report errors to Canonical and its "
615−"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."
616652msgstr ""
617−"Ваш тэлефон настроены на аўтаматычную адпраўку справаздач пра памылкі ў "
618−"Canonical і партнёрскія установы, вытворцам аперацыйнай сістэмы."
619653
620−#: qml/Wizard/Pages/60-reporting.qml:53
621−msgid ""
622−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
623−"Privacy</b>"
654+#: qml/Wizard/Pages/passcode-confirm.qml:45
655+msgctxt "Enter the passcode again"
656+msgid "Please re-enter."
624657msgstr ""
625−"Гэтае можна адключыць у <b>Сістэмных наладках</b>, дзе <b>Бяспека &amp; "
626−"канфедэнцыйнасці</b>"
627658
628−#: qml/Wizard/Pages/80-finished.qml:24
629−msgid "All done"
630−msgstr "Зроблена"
659+#: qml/Wizard/Pages/passcode-desktop.qml:30
660+msgid "Lock Screen Passcode"
661+msgstr ""
631662
632−#: qml/Wizard/Pages/80-finished.qml:39
633−msgid "Nice work!"
634−msgstr "Выдатная праца!"
663+#: qml/Wizard/Pages/passcode-desktop.qml:56
664+msgid "Enter 4 numbers to setup your passcode"
665+msgstr ""
635666
636−#: qml/Wizard/Pages/80-finished.qml:46
637−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"
638670msgstr ""
639671
640−#: qml/Wizard/Pages/80-finished.qml:53
641−msgid "Finish"
642−msgstr "Скончыць"
672+#: qml/Wizard/Pages/passcode-desktop.qml:105
673+msgid "Passcode too short"
674+msgstr ""
643675
644−#: qml/Wizard/Pages/here-terms.qml:27
645−msgid "Terms & Conditions"
646−msgstr "Умовы карыстання"
676+#: qml/Wizard/Pages/passcode-desktop.qml:107
677+msgid "Passcodes match"
678+msgstr ""
647679
648−#: qml/Wizard/Pages/passwd-confirm.qml:49
649−msgid "Confirm passphrase"
650−msgstr "Пацвердзіце пароль"
680+#: qml/Wizard/Pages/passcode-desktop.qml:109
681+msgid "Passcodes do not match"
682+msgstr ""
651683
652−#: qml/Wizard/Pages/passwd-confirm.qml:50
653−msgid "Confirm passcode"
654−msgstr "Пацвердзіце код-пароль"
684+#: qml/Wizard/Pages/passcode-set.qml:62
685+msgid "Passcode must be 4 characters long"
686+msgstr ""
655687
656−#: qml/Wizard/Pages/passwd-confirm.qml:53
657−#: qml/Wizard/Pages/passwd-confirm.qml:54
658−msgid "Please try again."
659−msgstr "Калі ласка, паспрабуйце яшчэ раз."
688+#: qml/Wizard/Pages/password-set.qml:30
689+msgid "Lock Screen Password"
690+msgstr ""
660691
661−#: qml/Wizard/Pages/passwd-set.qml:61
662−msgid "Choose your passcode"
663−msgstr "Выберыце код"
692+#: qml/Wizard/Pages/password-set.qml:61
693+msgid "Enter at least 8 characters"
694+msgstr ""
664695
665−#: qml/Wizard/Pages/passwd-set.qml:68
666−msgid "Passphrase must be 4 characters long"
667−msgstr "Код мусіць складацца з 4 сімвалаў"
696+#: qml/Wizard/Pages/password-set.qml:73
697+msgid "Choose password"
698+msgstr ""
668699
669−#. Translators: This is the arrow for "Back" buttons
670−#: qml/Wizard/StackButton.qml:39
671−#, qt-format
672−msgid "〈 %1"
673−msgstr "〈 %1"
700+#: qml/Wizard/Pages/password-set.qml:103
701+msgid "Confirm password"
702+msgstr ""
674703
675−#. Translators: This is the arrow for "Forward" buttons
676−#: qml/Wizard/StackButton.qml:42
677−#, qt-format
678−msgid "%1 〉"
679−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 ""
680751
681752#~ msgid "Reboot"
682753#~ msgstr "Перазагрузіць"
@@ -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
@@ -743,20 +817,97 @@ msgstr "%1 〉"
743817#~ msgid "Skip intro"
744818#~ msgstr "Прапусціць уводзіны"
745819
820+#~ msgid "See all"
821+#~ msgstr "Больш падрабязна"
822+
823+#~ msgid "See less"
824+#~ msgstr "Карацей"
825+
746826#~ msgid "Store"
747827#~ msgstr "Крама"
748828
829+#~ msgid "Add a SIM card and restart your device"
830+#~ msgstr "Дадайце SIM-карту і перазагрузіце Вашую прыладу"
831+
832+#~ msgid "Hi!"
833+#~ msgstr "Вітай!"
834+
749835#~ msgid "Welcome to your Ubuntu phone."
750836#~ msgstr "Вітаем Вас у сістэме тэлефона Ubuntu."
751837
838+#~ msgid "Let’s get started."
839+#~ msgstr "Пачнем."
840+
841+#~ msgid "Continue"
842+#~ msgstr "Працягнуць"
843+
752844#~ msgid "Please select how you’d like to unlock your phone."
753845#~ msgstr "Калі ласка, абярыце спосаб разблакавання тэлефона."
754846
847+#~ msgid "Using GPS only (less accurate)"
848+#~ msgstr "З дапамогай толькі GPS (найменш дакладна)"
849+
850+#~ msgid "Available networks…"
851+#~ msgstr "Даступныя сеткі..."
852+
853+#~ msgid "No available networks."
854+#~ msgstr "Няма даступных сетак."
855+
856+#~ msgid "Location"
857+#~ msgstr "Месца"
858+
859+#~ msgid "Let the phone detect your location:"
860+#~ msgstr "Дазволіць тэлефону вызначаць месцазнаходжанне:"
861+
862+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
863+#~ msgstr ""
864+#~ "На аснове GPS, ананімізаванага Wi-Fi і дадзеных сотавай сеткі (рэкамендуецца)"
865+
866+#~ msgid "Improving your experience"
867+#~ msgstr "Спрашчэнне вашай працы"
868+
869+#~ msgid ""
870+#~ "Your phone is set up to automatically report errors to Canonical and its "
871+#~ "partners, the makers of the operating system."
872+#~ msgstr ""
873+#~ "Ваш тэлефон настроены на аўтаматычную адпраўку справаздач пра памылкі ў "
874+#~ "Canonical і партнёрскія установы, вытворцам аперацыйнай сістэмы."
875+
876+#~ msgid "Nice work!"
877+#~ msgstr "Выдатная праца!"
878+
879+#~ msgid "All done"
880+#~ msgstr "Зроблена"
881+
882+#~ msgid "Finish"
883+#~ msgstr "Скончыць"
884+
755885#~ msgid "Your phone is now ready to use."
756886#~ msgstr "Цяпер Вашым тэлефонам можна карыстацца."
757887
758−#~ msgid "Restart"
759−#~ msgstr "Перазапусціць"
888+#~ msgid ""
889+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
890+#~ "conditions</a>."
891+#~ msgstr ""
892+#~ "Выбарам гэтага варыянту дзеянняў вы згаджаецеся з <a href='#'> умовамі "
893+#~ "прадстаўлення паслуг Nokia HERE</a>."
894+
895+#~ msgid "Not at all"
896+#~ msgstr "Не дазваляць"
897+
898+#, qt-format
899+#~ msgid "〈 %1"
900+#~ msgstr "〈 %1"
901+
902+#~ msgid "Confirm passphrase"
903+#~ msgstr "Пацвердзіце пароль"
904+
905+#, qt-format
906+#~ msgid "%1 〉"
907+#~ msgstr "%1 〉"
908+
909+#~ msgid "Please try again."
910+#~ msgstr "Калі ласка, паспрабуйце яшчэ раз."
760911
761912#~ msgid "Close"
762913#~ msgstr "Закрыць"
@@ -778,6 +929,103 @@ msgstr "%1 〉"
778929#~ msgid "Please re-enter"
779930#~ msgstr "Калі ласка, паўтарыце ўвод"
780931
932+#~ msgid "Lock security"
933+#~ msgstr "Блакіроўка"
934+
935+#~ msgid "You can change your mind later in <b>System Settings</b>."
936+#~ msgstr "Пасля змяніць налады можна з дапамогай <b>Сістэмных наладкаў</b>."
937+
938+#~ msgid ""
939+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
940+#~ "Privacy</b>"
941+#~ msgstr ""
942+#~ "Гэтае можна адключыць у <b>Сістэмных наладках</b>, дзе <b>Бяспека &amp; "
943+#~ "канфедэнцыйнасці</b>"
944+
945+#~ msgid "Choose your passcode"
946+#~ msgstr "Выберыце код"
947+
948+#~ msgctxt "Button: Shut down the system"
949+#~ msgid "Shut down"
950+#~ msgstr "Выключыць"
951+
952+#~ msgctxt "Title: Reboot/Shut down dialog"
953+#~ msgid "Shut down"
954+#~ msgstr "Выключыць"
955+
956+#~ msgctxt "Button: Reboot the system"
957+#~ msgid "Reboot"
958+#~ msgstr "Перазагрузіць"
959+
960+#~ msgid "Swipe up from the bottom edge."
961+#~ msgstr "Правесці уверх ад ніжняга краю."
962+
963+#~ msgid "Open special menus"
964+#~ msgstr "Адкрыць спецыяльныя меню"
965+
966+#~ msgid "Tap here to finish."
967+#~ msgstr "Націсніце тут, каб завяршыць."
968+
969+#~ msgid "This action does different things for different apps"
970+#~ msgstr "Гэта дзеянне мае розныя наступствы для розных праграм"
971+
972+#~ msgid "To view open apps"
973+#~ msgstr "Паглядзець адкрытыя праграмы"
974+
975+#~ msgid "You almost got it!"
976+#~ msgstr "Амаль усё!"
977+
978+#~ msgid "Short swipe from the left edge."
979+#~ msgstr "Кароткі рух з левага краю."
980+
981+#~ msgid "Long swipe from the right edge."
982+#~ msgstr "Доўгі рух ад правага краю."
983+
984+#~ msgid "View all your running tasks."
985+#~ msgstr "Паказаць усе запушчаныя задачы."
986+
987+#~ msgid "Try again."
988+#~ msgstr "Паспрабуйце яшчэ."
989+
990+#~ msgid "Open the launcher"
991+#~ msgstr "Адкрыць панэль запуску"
992+
993+#~ msgid "Tap here to continue."
994+#~ msgstr "Націсніце тут, каб працягнуць."
995+
996+#~ msgid "These are the shortcuts to favorite apps"
997+#~ msgstr "Гэта скарачэнні для абраных праграм"
998+
999+#~ msgctxt "Label: Description of security method"
1000+#~ msgid "No security"
1001+#~ msgstr "Без бяспекі"
1002+
1003+#~ msgctxt "Label: Type of security method"
1004+#~ msgid "Swipe"
1005+#~ msgstr "Рух"
1006+
1007+#~ msgctxt "Label: Description of security method"
1008+#~ msgid "4 digits only"
1009+#~ msgstr "Толькі 4 лічбы"
1010+
1011+#~ msgctxt "Label: Type of security method"
1012+#~ msgid "Passphrase"
1013+#~ msgstr "Пароль"
1014+
1015+#~ msgctxt "Label: Description of security method"
1016+#~ msgid "Numbers and letters"
1017+#~ msgstr "Літары і лічбы"
1018+
1019+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
1020+#~ msgstr "Без яе Вы не зможаце тэлефанаваць ці адпраўляць паведамленні."
1021+
1022+#~ msgid "Passphrase must be 4 characters long"
1023+#~ msgstr "Код мусіць складацца з 4 сімвалаў"
1024+
1025+#~ msgctxt "Label: Type of security method"
1026+#~ msgid "Passcode"
1027+#~ msgstr "Код-пароль"
1028+
7811029#~ msgid "%a %l:%M %p"
7821030#~ msgstr "%a a %H:%M"
7831031
@@ -810,6 +1058,3 @@ msgstr "%1 〉"
8101058
8111059#~ msgid "Call back"
8121060#~ msgstr "Зваротны выклік"
813−
814−#~ msgid "Re-dock, save your work and close these apps to continue."
815−#~ msgstr "Захавайце сваю працу і зачыніце прылады, каб працягнуць."
po/bg.po+261−183
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
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,8 +15,8 @@ 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-03-13 05:50+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -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:217
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:182
11496msgid "Yes"
11597msgstr ""
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr ""
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
123105msgid ""
124106"Are you sure you would like\n"
125107"to power off?"
@@ -127,12 +109,12 @@ msgstr ""
127109"Искате ли да \n"
128110"изключите захранването на устройството?"
129111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:200
131113msgctxt "Button: Power off the system"
132114msgid "Power off"
133115msgstr ""
134116
135−#: qml/Components/Dialogs.qml:244
117+#: qml/Components/Dialogs.qml:209
136118msgctxt "Button: Restart the system"
137119msgid "Restart"
138120msgstr ""
@@ -175,42 +157,58 @@ msgstr ""
175157msgid "Close all"
176158msgstr ""
177159
178−#: qml/Dash/DashPageHeader.qml:270
160+#: qml/Dash/DashPageHeader.qml:337
179161msgctxt "Button: Open the Ubuntu Store"
180162msgid "Store"
181163msgstr ""
182164
183−#: qml/Dash/DashPageHeader.qml:277
165+#: qml/Dash/DashPageHeader.qml:344
184166msgctxt "Button: Start a search in the current dash scope"
185167msgid "Search"
186168msgstr ""
187169
188−#: qml/Dash/DashPageHeader.qml:287
170+#: qml/Dash/DashPageHeader.qml:354
189171msgctxt "Button: Show the current dash scope settings"
190172msgid "Settings"
191173msgstr ""
192174
193−#: qml/Dash/DashPageHeader.qml:294
175+#: qml/Dash/DashPageHeader.qml:361
194176msgid "Remove from Favorites"
195177msgstr ""
196178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198180msgid "Add to Favorites"
199181msgstr ""
200182
201−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
202−msgid "See less"
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:579 qml/Dash/GenericScopeView.qml:764
192+msgid "Show less"
203193msgstr ""
204194
205−#: qml/Dash/GenericScopeView.qml:567
206−msgid "See all"
195+#: qml/Dash/GenericScopeView.qml:579
196+msgid "Show all"
207197msgstr ""
208198
209−#: qml/Dash/GenericScopeView.qml:629
199+#: qml/Dash/GenericScopeView.qml:636
210200msgctxt "Label: Hint for dash search line edit"
211201msgid "Search"
212202msgstr ""
213203
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+
214212#: qml/Dash/Previews/PreviewActionCombo.qml:35
215213msgid "More..."
216214msgstr ""
@@ -278,11 +276,11 @@ msgstr ""
278276msgid "Tap to unlock"
279277msgstr ""
280278
281−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
282280msgid "Sorry, incorrect passphrase."
283281msgstr ""
284282
285−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
286284msgid "Sorry, incorrect passcode."
287285msgstr ""
288286
@@ -307,7 +305,7 @@ msgstr ""
307305msgid "Enter %1"
308306msgstr ""
309307
310−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
308+#: qml/Greeter/NarrowView.qml:117
311309msgid "Enter passphrase"
312310msgstr ""
313311
@@ -333,7 +331,7 @@ msgstr ""
333331msgid "Sorry, incorrect passcode"
334332msgstr ""
335333
336−#: qml/Notifications/NotificationMenuItemFactory.qml:129
334+#: qml/Notifications/NotificationMenuItemFactory.qml:124
337335msgid "Show password"
338336msgstr "Покажи паролата"
339337
@@ -345,62 +343,62 @@ msgstr ""
345343msgid "Conference"
346344msgstr ""
347345
348−#: qml/Panel/Indicators/MenuItemFactory.qml:752
346+#: qml/Panel/Indicators/MenuItemFactory.qml:762
349347msgid "Nothing is playing"
350348msgstr ""
351349
352−#: qml/Panel/Indicators/MenuItemFactory.qml:881
350+#: qml/Panel/Indicators/MenuItemFactory.qml:891
353351#, qt-format
354352msgid "%1 hour"
355353msgid_plural "%1 hours"
356354msgstr[0] ""
357355msgstr[1] ""
358356
359−#: qml/Panel/Indicators/MenuItemFactory.qml:885
357+#: qml/Panel/Indicators/MenuItemFactory.qml:895
360358#, qt-format
361359msgid "%1 minute"
362360msgid_plural "%1 minutes"
363361msgstr[0] ""
364362msgstr[1] ""
365363
366−#: qml/Panel/Indicators/MenuItemFactory.qml:890
364+#: qml/Panel/Indicators/MenuItemFactory.qml:900
367365#, qt-format
368366msgid "%1 second"
369367msgid_plural "%1 seconds"
370368msgstr[0] ""
371369msgstr[1] ""
372370
373−#: qml/Panel/Indicators/MenuItemFactory.qml:893
371+#: qml/Panel/Indicators/MenuItemFactory.qml:903
374372msgid "0 seconds"
375373msgstr ""
376374
377375#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
378−#: qml/Panel/Indicators/MenuItemFactory.qml:895
376+#: qml/Panel/Indicators/MenuItemFactory.qml:905
379377#, qt-format
380378msgid "%1 remaining"
381379msgstr ""
382380
383−#: qml/Panel/Indicators/MenuItemFactory.qml:901
381+#: qml/Panel/Indicators/MenuItemFactory.qml:911
384382msgid "In queue…"
385383msgstr ""
386384
387−#: qml/Panel/Indicators/MenuItemFactory.qml:905
385+#: qml/Panel/Indicators/MenuItemFactory.qml:915
388386msgid "Downloading"
389387msgstr ""
390388
391−#: qml/Panel/Indicators/MenuItemFactory.qml:907
389+#: qml/Panel/Indicators/MenuItemFactory.qml:917
392390msgid "Paused, tap to resume"
393391msgstr ""
394392
395−#: qml/Panel/Indicators/MenuItemFactory.qml:909
393+#: qml/Panel/Indicators/MenuItemFactory.qml:919
396394msgid "Canceled"
397395msgstr ""
398396
399−#: qml/Panel/Indicators/MenuItemFactory.qml:911
397+#: qml/Panel/Indicators/MenuItemFactory.qml:921
400398msgid "Finished"
401399msgstr ""
402400
403−#: qml/Panel/Indicators/MenuItemFactory.qml:913
401+#: qml/Panel/Indicators/MenuItemFactory.qml:923
404402msgid "Failed, tap to retry"
405403msgstr ""
406404
@@ -420,243 +418,323 @@ msgctxt "Button: Call back on phone"
420418msgid "Call back"
421419msgstr ""
422420
423−#: qml/Tutorial/TutorialBottom.qml:28
424−msgid "Open special menus"
421+#: qml/Stages/SideStage.qml:76
422+msgid "Drag using 3 fingers any application from one window to the other"
425423msgstr ""
426424
427−#: qml/Tutorial/TutorialBottom.qml:29
428−msgid "Swipe up from the bottom edge."
425+#: qml/Tutorial/TutorialBottom.qml:78
426+msgid "Swipe up to add a contact"
429427msgstr ""
430428
431−#: qml/Tutorial/TutorialBottomFinish.qml:24
432−msgid "This action does different things for different apps"
429+#: qml/Tutorial/TutorialBottom.qml:80
430+msgid "Swipe up for favorite calculations"
433431msgstr ""
434432
435−#: qml/Tutorial/TutorialBottomFinish.qml:25
436−msgid "Tap here to finish."
433+#: qml/Tutorial/TutorialBottom.qml:82
434+msgid "Swipe up for recent calls"
437435msgstr ""
438436
439−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
440−#: qml/Tutorial/TutorialRight.qml:144
441−msgid "Tap here to continue."
437+#: qml/Tutorial/TutorialBottom.qml:84
438+msgid "Swipe up to create a message"
442439msgstr ""
443440
444−#: qml/Tutorial/TutorialLeft.qml:26
445−msgid "Open the launcher"
441+#: qml/Tutorial/TutorialBottom.qml:85
442+msgid "Swipe up to manage the app"
446443msgstr ""
447444
448−#: qml/Tutorial/TutorialLeft.qml:27
449−msgid "Short swipe from the left edge."
445+#: qml/Tutorial/TutorialLeftLong.qml:47
446+msgid "Long swipe from the left edge to open the Today scope"
450447msgstr ""
451448
452−#: qml/Tutorial/TutorialLeftFinish.qml:24
453−msgid "These are the shortcuts to favorite apps"
449+#: qml/Tutorial/TutorialLeft.qml:47
450+msgid "Swipe from the left edge to open the launcher"
454451msgstr ""
455452
456−#: qml/Tutorial/TutorialPage.qml:178
457−msgid "You almost got it!"
453+#: qml/Tutorial/TutorialRight.qml:55
454+msgid "Push your mouse against the right edge to view your open apps"
458455msgstr ""
459456
460−#: qml/Tutorial/TutorialPage.qml:195
461−msgid "Try again."
457+#: qml/Tutorial/TutorialRight.qml:56
458+msgid "Short or long swipe from the right edge to view your open apps"
462459msgstr ""
463460
464−#: qml/Tutorial/TutorialRight.qml:31
465−msgid "To view open apps"
461+#: qml/Tutorial/TutorialTop.qml:53
462+msgid "Swipe from the top right edge to open the notification bar"
466463msgstr ""
467464
468−#: qml/Tutorial/TutorialRight.qml:32
469−msgid "Long swipe from the right edge."
465+#: qml/Tutorial/TutorialTop.qml:54
466+msgid "Swipe from the top edge to open the notification bar"
470467msgstr ""
471468
472−#: qml/Tutorial/TutorialRight.qml:122
473−msgid "View all your running tasks."
474−msgstr ""
475−
476−#: qml/Wizard/Page.qml:89
469+#: qml/Wizard/Page.qml:54
477470msgctxt "Button: Go back one page in the Wizard"
478471msgid "Back"
479472msgstr ""
480473
481474#: qml/Wizard/Pages/10-welcome.qml:27
482−msgid "Hi!"
475+msgid "Language"
483476msgstr ""
484477
485−#: qml/Wizard/Pages/10-welcome.qml:44
486−msgid "Welcome to your Ubuntu device."
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"
487485msgstr ""
488486
489−#: qml/Wizard/Pages/10-welcome.qml:52
490−msgid "Let’s get started."
487+#: qml/Wizard/Pages/30-wifi.qml:29
488+msgid "Connect to Wi‑Fi"
491489msgstr ""
492490
493−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
494−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
495−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
496−#: qml/Wizard/Pages/passwd-set.qml:90
497−msgid "Continue"
491+#: qml/Wizard/Pages/30-wifi.qml:130
492+msgid "Connected"
498493msgstr ""
499494
500−#: qml/Wizard/Pages/20-sim.qml:25
501−msgid "Add a SIM card and restart your device"
495+#: qml/Wizard/Pages/30-wifi.qml:163
496+msgid "Available Wi-Fi networks"
502497msgstr ""
503498
504−#: qml/Wizard/Pages/20-sim.qml:59
505−msgid "Without it, you won’t be able to make calls or use text messaging."
499+#: qml/Wizard/Pages/30-wifi.qml:164
500+msgid "No available Wi-Fi networks"
506501msgstr ""
507502
508−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
503+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
504+#: qml/Wizard/Pages/sim.qml:101
509505msgid "Skip"
510506msgstr ""
511507
512−#: qml/Wizard/Pages/30-passwd-type.qml:39
513−msgid "Lock security"
508+#: qml/Wizard/Pages/40-location.qml:27
509+msgid "Location Services"
514510msgstr ""
515511
516−#: qml/Wizard/Pages/30-passwd-type.qml:79
517−msgid "Please select how you’d like to unlock your device."
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)"
518516msgstr ""
519517
520−#: qml/Wizard/Pages/30-passwd-type.qml:102
521−msgctxt "Label: Type of security method"
522−msgid "Swipe"
518+#: qml/Wizard/Pages/40-location.qml:105
519+#, qt-format
520+msgid "By selecting this option you agree to the Nokia HERE %1."
521+msgstr ""
522+
523+#: qml/Wizard/Pages/40-location.qml:106
524+msgctxt "part of: Nokia HERE terms and conditions"
525+msgid "terms and conditions"
526+msgstr ""
527+
528+#: qml/Wizard/Pages/40-location.qml:160
529+msgid "GPS only"
530+msgstr ""
531+
532+#: qml/Wizard/Pages/40-location.qml:214
533+msgid "Don't use my location"
534+msgstr ""
535+
536+#: qml/Wizard/Pages/40-location.qml:260
537+msgid "You can change it later in System Settings."
538+msgstr ""
539+
540+#: qml/Wizard/Pages/50-timezone.qml:29
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"
523550msgstr ""
524551
525−#: qml/Wizard/Pages/30-passwd-type.qml:103
526−msgctxt "Label: Description of security method"
527−msgid "No security"
552+#: qml/Wizard/Pages/60-account.qml:48
553+msgid "Preferred Name"
528554msgstr ""
529555
530−#: qml/Wizard/Pages/30-passwd-type.qml:105
556+#: qml/Wizard/Pages/70-passwd-type.qml:39
557+msgid "Lock Screen"
558+msgstr ""
559+
560+#: qml/Wizard/Pages/70-passwd-type.qml:101
531561msgctxt "Label: Type of security method"
532−msgid "Passcode"
562+msgid "Create new password"
533563msgstr ""
534564
535−#: qml/Wizard/Pages/30-passwd-type.qml:106
536−msgctxt "Label: Description of security method"
537−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)"
538568msgstr ""
539569
540−#: qml/Wizard/Pages/30-passwd-type.qml:108
570+#: qml/Wizard/Pages/70-passwd-type.qml:105
541571msgctxt "Label: Type of security method"
542−msgid "Passphrase"
572+msgid "No lock code"
543573msgstr ""
544574
545−#: qml/Wizard/Pages/30-passwd-type.qml:109
546−msgctxt "Label: Description of security method"
547−msgid "Numbers and letters"
575+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
576+msgid "Privacy Policy"
548577msgstr ""
549578
550−#: qml/Wizard/Pages/40-wifi.qml:29
551−msgid "Connect to Wi‑Fi"
579+#: qml/Wizard/Pages/75-report-check.qml:26
580+msgid "Help Us Improve"
581+msgstr ""
582+
583+#: qml/Wizard/Pages/75-report-check.qml:59
584+msgid "Improve system performance by sending us crashes and error reports."
585+msgstr ""
586+
587+#: qml/Wizard/Pages/75-report-check.qml:60
588+msgid "Privacy policy"
552589msgstr ""
553590
554−#: qml/Wizard/Pages/40-wifi.qml:168
555−msgid "Available networks…"
591+#: qml/Wizard/Pages/80-finished.qml:89
592+msgid "Welcome to Ubuntu"
556593msgstr ""
557594
558−#: qml/Wizard/Pages/40-wifi.qml:169
559−msgid "No available networks."
595+#: qml/Wizard/Pages/80-finished.qml:104
596+msgid "You are ready to use your device now"
560597msgstr ""
561598
562−#: qml/Wizard/Pages/50-location.qml:27
563−msgid "Location"
599+#: qml/Wizard/Pages/80-finished.qml:124
600+msgid "Get Started"
564601msgstr ""
565602
566−#: qml/Wizard/Pages/50-location.qml:62
567−msgid "Let the phone detect your location:"
603+#: qml/Wizard/Pages/here-terms.qml:25
604+msgid "Terms & Conditions"
568605msgstr ""
569606
570−#: qml/Wizard/Pages/50-location.qml:69
571−msgid "Using GPS only (less accurate)"
607+#: qml/Wizard/Pages/here-terms.qml:69
608+msgid "Your device uses positioning technologies provided by HERE."
572609msgstr ""
573610
574−#: qml/Wizard/Pages/50-location.qml:86
575−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
611+#: qml/Wizard/Pages/here-terms.qml:81
612+msgid ""
613+"To provide you with positioning services and to improve their quality, HERE "
614+"collects information about nearby cell towers and Wi-Fi hotspots around your "
615+"current location whenever your position is being found."
576616msgstr ""
577617
578−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
579−#: qml/Wizard/Pages/50-location.qml:103
618+#: qml/Wizard/Pages/here-terms.qml:93
580619msgid ""
581−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
582−"conditions</a>."
620+"The information collected is used to analyze the service and to improve the "
621+"use of service, but not to identify you personally."
583622msgstr ""
584623
585−#: qml/Wizard/Pages/50-location.qml:112
586−msgid "Not at all"
624+#: qml/Wizard/Pages/here-terms.qml:106
625+#, qt-format
626+msgid "By continuing, you agree to the HERE platform %1 and %2."
587627msgstr ""
588628
589−#: qml/Wizard/Pages/50-location.qml:124
590−msgid "You can change your mind later in <b>System Settings</b>."
629+#: qml/Wizard/Pages/here-terms.qml:107
630+msgid "Service Terms"
591631msgstr ""
592632
593−#: qml/Wizard/Pages/60-reporting.qml:26
594−msgid "Improving your experience"
633+#: qml/Wizard/Pages/passcode-confirm.qml:43
634+#: qml/Wizard/Pages/passcode-desktop.qml:80
635+msgid "Confirm passcode"
595636msgstr ""
596637
597−#: qml/Wizard/Pages/60-reporting.qml:46
598−msgid ""
599−"Your phone is set up to automatically report errors to Canonical and its "
600−"partners, the makers of the operating system."
638+#: qml/Wizard/Pages/passcode-confirm.qml:45
639+msgid "Incorrect passcode."
601640msgstr ""
602641
603−#: qml/Wizard/Pages/60-reporting.qml:53
604−msgid ""
605−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
606−"Privacy</b>"
642+#: qml/Wizard/Pages/passcode-confirm.qml:45
643+msgctxt "Enter the passcode again"
644+msgid "Please re-enter."
607645msgstr ""
608646
609−#: qml/Wizard/Pages/80-finished.qml:24
610−msgid "All done"
647+#: qml/Wizard/Pages/passcode-desktop.qml:30
648+msgid "Lock Screen Passcode"
611649msgstr ""
612650
613−#: qml/Wizard/Pages/80-finished.qml:39
614−msgid "Nice work!"
651+#: qml/Wizard/Pages/passcode-desktop.qml:56
652+msgid "Enter 4 numbers to setup your passcode"
615653msgstr ""
616654
617−#: qml/Wizard/Pages/80-finished.qml:46
618−msgid "Your device is now ready to use."
655+#: qml/Wizard/Pages/passcode-desktop.qml:65
656+#: qml/Wizard/Pages/passcode-set.qml:54
657+msgid "Choose passcode"
619658msgstr ""
620659
621−#: qml/Wizard/Pages/80-finished.qml:53
622−msgid "Finish"
660+#: qml/Wizard/Pages/passcode-desktop.qml:105
661+msgid "Passcode too short"
623662msgstr ""
624663
625−#: qml/Wizard/Pages/here-terms.qml:27
626−msgid "Terms & Conditions"
664+#: qml/Wizard/Pages/passcode-desktop.qml:107
665+msgid "Passcodes match"
627666msgstr ""
628667
629−#: qml/Wizard/Pages/passwd-confirm.qml:49
630−msgid "Confirm passphrase"
668+#: qml/Wizard/Pages/passcode-desktop.qml:109
669+msgid "Passcodes do not match"
631670msgstr ""
632671
633−#: qml/Wizard/Pages/passwd-confirm.qml:50
634−msgid "Confirm passcode"
672+#: qml/Wizard/Pages/passcode-set.qml:62
673+msgid "Passcode must be 4 characters long"
635674msgstr ""
636675
637−#: qml/Wizard/Pages/passwd-confirm.qml:53
638−#: qml/Wizard/Pages/passwd-confirm.qml:54
639−msgid "Please try again."
676+#: qml/Wizard/Pages/password-set.qml:30
677+msgid "Lock Screen Password"
640678msgstr ""
641679
642−#: qml/Wizard/Pages/passwd-set.qml:61
643−msgid "Choose your passcode"
680+#: qml/Wizard/Pages/password-set.qml:61
681+msgid "Enter at least 8 characters"
644682msgstr ""
645683
646−#: qml/Wizard/Pages/passwd-set.qml:68
647−msgid "Passphrase must be 4 characters long"
684+#: qml/Wizard/Pages/password-set.qml:73
685+msgid "Choose password"
648686msgstr ""
649687
650−#. Translators: This is the arrow for "Back" buttons
651−#: qml/Wizard/StackButton.qml:39
652−#, qt-format
653−msgid "〈 %1"
688+#: qml/Wizard/Pages/password-set.qml:103
689+msgid "Confirm password"
654690msgstr ""
655691
656−#. Translators: This is the arrow for "Forward" buttons
657−#: qml/Wizard/StackButton.qml:42
658−#, qt-format
659−msgid "%1 〉"
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"
660738msgstr ""
661739
662740#~ msgid "Confirm"
po/bn.po+350−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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+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,8 +15,8 @@ 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-03-13 05:50+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -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:217
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:182
11496msgid "Yes"
11597msgstr "হ্যাঁ"
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr ""
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
123105msgid ""
124106"Are you sure you would like\n"
125107"to power off?"
@@ -127,12 +109,12 @@ msgstr ""
127109"আপনি নিশ্চিত যে আপনি\n"
128110"বন্ধ করতে চান?"
129111
130−#: qml/Components/Dialogs.qml:235
112+#: qml/Components/Dialogs.qml:200
131113msgctxt "Button: Power off the system"
132114msgid "Power off"
133115msgstr "বন্ধ করুন"
134116
135−#: qml/Components/Dialogs.qml:244
117+#: qml/Components/Dialogs.qml:209
136118msgctxt "Button: Restart the system"
137119msgid "Restart"
138120msgstr "পুনরায় চালু"
@@ -175,42 +157,58 @@ msgstr ""
175157msgid "Close all"
176158msgstr ""
177159
178−#: qml/Dash/DashPageHeader.qml:270
160+#: qml/Dash/DashPageHeader.qml:337
179161msgctxt "Button: Open the Ubuntu Store"
180162msgid "Store"
181163msgstr "স্টোর"
182164
183−#: qml/Dash/DashPageHeader.qml:277
165+#: qml/Dash/DashPageHeader.qml:344
184166msgctxt "Button: Start a search in the current dash scope"
185167msgid "Search"
186168msgstr "খুঁজুন"
187169
188−#: qml/Dash/DashPageHeader.qml:287
170+#: qml/Dash/DashPageHeader.qml:354
189171msgctxt "Button: Show the current dash scope settings"
190172msgid "Settings"
191173msgstr "সেটিংস"
192174
193−#: qml/Dash/DashPageHeader.qml:294
175+#: qml/Dash/DashPageHeader.qml:361
194176msgid "Remove from Favorites"
195177msgstr "পছন্দ থেকে মুছে ফেলুন"
196178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198180msgid "Add to Favorites"
199181msgstr "পছন্দতে যোগ করুন"
200182
201−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
202−msgid "See less"
203−msgstr "কম দেখুন"
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:579 qml/Dash/GenericScopeView.qml:764
192+msgid "Show less"
193+msgstr ""
204194
205−#: qml/Dash/GenericScopeView.qml:567
206−msgid "See all"
207−msgstr "সব দেখুন"
195+#: qml/Dash/GenericScopeView.qml:579
196+msgid "Show all"
197+msgstr ""
208198
209−#: qml/Dash/GenericScopeView.qml:629
199+#: qml/Dash/GenericScopeView.qml:636
210200msgctxt "Label: Hint for dash search line edit"
211201msgid "Search"
212202msgstr "খুঁজুন"
213203
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+
214212#: qml/Dash/Previews/PreviewActionCombo.qml:35
215213msgid "More..."
216214msgstr "আরো..."
@@ -278,11 +276,11 @@ msgstr ""
278276msgid "Tap to unlock"
279277msgstr "লক খোলার জন্য চাপ দিন"
280278
281−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
279+#: qml/Greeter/NarrowView.qml:54
282280msgid "Sorry, incorrect passphrase."
283281msgstr "দুঃখিত, পাসওয়ার্ডটি ভুল হয়েছে।"
284282
285−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
283+#: qml/Greeter/NarrowView.qml:55
286284msgid "Sorry, incorrect passcode."
287285msgstr "দুঃখিত, পাসকোডটি ভুল হয়েছে।"
288286
@@ -308,7 +306,7 @@ msgstr "ভুল পাসকোড প্রদান করলে, আপন
308306msgid "Enter %1"
309307msgstr "%1 লিখুন"
310308
311−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
309+#: qml/Greeter/NarrowView.qml:117
312310msgid "Enter passphrase"
313311msgstr "পাসওয়ার্ড লিখুন"
314312
@@ -334,7 +332,7 @@ msgstr "অনুগ্রহ করে আবার লিখুন"
334332msgid "Sorry, incorrect passcode"
335333msgstr "দুঃখিত, পাসকোড ভুল হয়েছে"
336334
337−#: qml/Notifications/NotificationMenuItemFactory.qml:129
335+#: qml/Notifications/NotificationMenuItemFactory.qml:124
338336msgid "Show password"
339337msgstr "পাসওয়ার্ড দেখান"
340338
@@ -346,62 +344,62 @@ msgstr "কলে ফিরে যেতে চাপ দিন..."
346344msgid "Conference"
347345msgstr "কনফারেন্স"
348346
349−#: qml/Panel/Indicators/MenuItemFactory.qml:752
347+#: qml/Panel/Indicators/MenuItemFactory.qml:762
350348msgid "Nothing is playing"
351349msgstr "কোন কিছু বাজছে না।"
352350
353−#: qml/Panel/Indicators/MenuItemFactory.qml:881
351+#: qml/Panel/Indicators/MenuItemFactory.qml:891
354352#, qt-format
355353msgid "%1 hour"
356354msgid_plural "%1 hours"
357355msgstr[0] "%1 ঘণ্টা"
358356msgstr[1] "%1 ঘণ্টা"
359357
360−#: qml/Panel/Indicators/MenuItemFactory.qml:885
358+#: qml/Panel/Indicators/MenuItemFactory.qml:895
361359#, qt-format
362360msgid "%1 minute"
363361msgid_plural "%1 minutes"
364362msgstr[0] "%1 মিনিট"
365363msgstr[1] "%1 মিনিট"
366364
367−#: qml/Panel/Indicators/MenuItemFactory.qml:890
365+#: qml/Panel/Indicators/MenuItemFactory.qml:900
368366#, qt-format
369367msgid "%1 second"
370368msgid_plural "%1 seconds"
371369msgstr[0] "%1 সেকেন্ড"
372370msgstr[1] "%1 সেকেন্ড"
373371
374−#: qml/Panel/Indicators/MenuItemFactory.qml:893
372+#: qml/Panel/Indicators/MenuItemFactory.qml:903
375373msgid "0 seconds"
376374msgstr "0 সেকেন্ড"
377375
378376#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
379−#: qml/Panel/Indicators/MenuItemFactory.qml:895
377+#: qml/Panel/Indicators/MenuItemFactory.qml:905
380378#, qt-format
381379msgid "%1 remaining"
382380msgstr "%1 বাকি"
383381
384−#: qml/Panel/Indicators/MenuItemFactory.qml:901
382+#: qml/Panel/Indicators/MenuItemFactory.qml:911
385383msgid "In queue…"
386384msgstr "অপেক্ষায় রয়েছে..."
387385
388−#: qml/Panel/Indicators/MenuItemFactory.qml:905
386+#: qml/Panel/Indicators/MenuItemFactory.qml:915
389387msgid "Downloading"
390388msgstr "ডাউনলোড হচ্ছে"
391389
392−#: qml/Panel/Indicators/MenuItemFactory.qml:907
390+#: qml/Panel/Indicators/MenuItemFactory.qml:917
393391msgid "Paused, tap to resume"
394392msgstr "থামানো, শুরু করতে চাপ দিন"
395393
396−#: qml/Panel/Indicators/MenuItemFactory.qml:909
394+#: qml/Panel/Indicators/MenuItemFactory.qml:919
397395msgid "Canceled"
398396msgstr "বাতিল হয়েছে"
399397
400−#: qml/Panel/Indicators/MenuItemFactory.qml:911
398+#: qml/Panel/Indicators/MenuItemFactory.qml:921
401399msgid "Finished"
402400msgstr "শেষ"
403401
404−#: qml/Panel/Indicators/MenuItemFactory.qml:913
402+#: qml/Panel/Indicators/MenuItemFactory.qml:923
405403msgid "Failed, tap to retry"
406404msgstr "ব্যার্থ হয়েছে, পুনরায় চেষ্টা করতে চাপ দিন"
407405
@@ -421,251 +419,379 @@ msgctxt "Button: Call back on phone"
421419msgid "Call back"
422420msgstr "কল ব্যাক"
423421
424−#: qml/Tutorial/TutorialBottom.qml:28
425−msgid "Open special menus"
422+#: qml/Stages/SideStage.qml:76
423+msgid "Drag using 3 fingers any application from one window to the other"
426424msgstr ""
427425
428−#: qml/Tutorial/TutorialBottom.qml:29
429−msgid "Swipe up from the bottom edge."
430−msgstr "নিচের প্রান্ত হতে উপরের দিকে সোয়াইপ করুন।"
431−
432−#: qml/Tutorial/TutorialBottomFinish.qml:24
433−msgid "This action does different things for different apps"
434−msgstr "এই কাজটি বিভিন্ন অ্যাপের জন্য ভিন্ন ভিন্ন ভাবে কাজ করে।"
426+#: qml/Tutorial/TutorialBottom.qml:78
427+msgid "Swipe up to add a contact"
428+msgstr ""
435429
436−#: qml/Tutorial/TutorialBottomFinish.qml:25
437−msgid "Tap here to finish."
430+#: qml/Tutorial/TutorialBottom.qml:80
431+msgid "Swipe up for favorite calculations"
438432msgstr ""
439433
440−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
441−#: qml/Tutorial/TutorialRight.qml:144
442−msgid "Tap here to continue."
443−msgstr "অগ্রসর হওয়ার জন্য এখানে চাপ দিন।"
434+#: qml/Tutorial/TutorialBottom.qml:82
435+msgid "Swipe up for recent calls"
436+msgstr ""
444437
445−#: qml/Tutorial/TutorialLeft.qml:26
446−msgid "Open the launcher"
447−msgstr "লঞ্চার খুলুন"
438+#: qml/Tutorial/TutorialBottom.qml:84
439+msgid "Swipe up to create a message"
440+msgstr ""
448441
449−#: qml/Tutorial/TutorialLeft.qml:27
450−msgid "Short swipe from the left edge."
442+#: qml/Tutorial/TutorialBottom.qml:85
443+msgid "Swipe up to manage the app"
451444msgstr ""
452445
453−#: qml/Tutorial/TutorialLeftFinish.qml:24
454−msgid "These are the shortcuts to favorite apps"
455−msgstr "এগুলো আপনার প্রিয় অ্যাপেরর শর্টকাট"
446+#: qml/Tutorial/TutorialLeftLong.qml:47
447+msgid "Long swipe from the left edge to open the Today scope"
448+msgstr ""
456449
457−#: qml/Tutorial/TutorialPage.qml:178
458−msgid "You almost got it!"
459−msgstr "আপনি প্রায় পেরে গেছেন!"
450+#: qml/Tutorial/TutorialLeft.qml:47
451+msgid "Swipe from the left edge to open the launcher"
452+msgstr ""
460453
461−#: qml/Tutorial/TutorialPage.qml:195
462−msgid "Try again."
463−msgstr "আবার চেষ্টা করুন"
454+#: qml/Tutorial/TutorialRight.qml:55
455+msgid "Push your mouse against the right edge to view your open apps"
456+msgstr ""
464457
465−#: qml/Tutorial/TutorialRight.qml:31
466−msgid "To view open apps"
467−msgstr "সচল অ্যাপগুলো দেখার জন্য"
458+#: qml/Tutorial/TutorialRight.qml:56
459+msgid "Short or long swipe from the right edge to view your open apps"
460+msgstr ""
468461
469−#: qml/Tutorial/TutorialRight.qml:32
470−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"
471464msgstr ""
472465
473−#: qml/Tutorial/TutorialRight.qml:122
474−msgid "View all your running tasks."
466+#: qml/Tutorial/TutorialTop.qml:54
467+msgid "Swipe from the top edge to open the notification bar"
475468msgstr ""
476469
477−#: qml/Wizard/Page.qml:89
470+#: qml/Wizard/Page.qml:54
478471msgctxt "Button: Go back one page in the Wizard"
479472msgid "Back"
480473msgstr ""
481474
482475#: qml/Wizard/Pages/10-welcome.qml:27
483−msgid "Hi!"
476+msgid "Language"
484477msgstr ""
485478
486−#: qml/Wizard/Pages/10-welcome.qml:44
487−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"
488486msgstr ""
489487
490−#: qml/Wizard/Pages/10-welcome.qml:52
491−msgid "Let’s get started."
492−msgstr "আসুন শুরু করা যাক।"
488+#: qml/Wizard/Pages/30-wifi.qml:29
489+msgid "Connect to Wi‑Fi"
490+msgstr ""
493491
494−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
495−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
496−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
497−#: qml/Wizard/Pages/passwd-set.qml:90
498−msgid "Continue"
499−msgstr "পরবর্তী"
492+#: qml/Wizard/Pages/30-wifi.qml:130
493+msgid "Connected"
494+msgstr ""
500495
501−#: qml/Wizard/Pages/20-sim.qml:25
502−msgid "Add a SIM card and restart your device"
503−msgstr "সিম কার্ড যোগ করুন এবং ফোন পুনরায় চালু করুন।"
496+#: qml/Wizard/Pages/30-wifi.qml:163
497+msgid "Available Wi-Fi networks"
498+msgstr ""
504499
505−#: qml/Wizard/Pages/20-sim.qml:59
506−msgid "Without it, you won’t be able to make calls or use text messaging."
507−msgstr "এটি ছাড়া, আপনি ফোন কল বা টেক্সট মেসেজ ব্যবহার করতে পারবেন না।"
500+#: qml/Wizard/Pages/30-wifi.qml:164
501+msgid "No available Wi-Fi networks"
502+msgstr ""
508503
509−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
504+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
505+#: qml/Wizard/Pages/sim.qml:101
510506msgid "Skip"
511507msgstr "এড়িয়ে যান"
512508
513−#: qml/Wizard/Pages/30-passwd-type.qml:39
514−msgid "Lock security"
515−msgstr "নিরাপত্তা লক"
509+#: qml/Wizard/Pages/40-location.qml:27
510+msgid "Location Services"
511+msgstr ""
516512
517−#: qml/Wizard/Pages/30-passwd-type.qml:79
518−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)"
519517msgstr ""
520518
521−#: qml/Wizard/Pages/30-passwd-type.qml:102
522−msgctxt "Label: Type of security method"
523−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"
524527msgstr ""
525528
526−#: qml/Wizard/Pages/30-passwd-type.qml:103
527−msgctxt "Label: Description of security method"
528−msgid "No security"
529−msgstr "কোন নিরাপত্তা নেই"
529+#: qml/Wizard/Pages/40-location.qml:160
530+msgid "GPS only"
531+msgstr ""
532+
533+#: qml/Wizard/Pages/40-location.qml:214
534+msgid "Don't use my location"
535+msgstr ""
530536
531−#: qml/Wizard/Pages/30-passwd-type.qml:105
537+#: qml/Wizard/Pages/40-location.qml:260
538+msgid "You can change it later in System Settings."
539+msgstr ""
540+
541+#: qml/Wizard/Pages/50-timezone.qml:29
542+msgid "Time Zone"
543+msgstr ""
544+
545+#: qml/Wizard/Pages/50-timezone.qml:178
546+msgid "Enter your city"
547+msgstr ""
548+
549+#: qml/Wizard/Pages/60-account.qml:24
550+msgid "Personalize Your Device"
551+msgstr ""
552+
553+#: qml/Wizard/Pages/60-account.qml:48
554+msgid "Preferred Name"
555+msgstr ""
556+
557+#: qml/Wizard/Pages/70-passwd-type.qml:39
558+msgid "Lock Screen"
559+msgstr ""
560+
561+#: qml/Wizard/Pages/70-passwd-type.qml:101
532562msgctxt "Label: Type of security method"
533−msgid "Passcode"
534−msgstr "পাসকোড"
563+msgid "Create new password"
564+msgstr ""
535565
536−#: qml/Wizard/Pages/30-passwd-type.qml:106
537−msgctxt "Label: Description of security method"
538−msgid "4 digits only"
539−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 ""
540570
541−#: qml/Wizard/Pages/30-passwd-type.qml:108
571+#: qml/Wizard/Pages/70-passwd-type.qml:105
542572msgctxt "Label: Type of security method"
543−msgid "Passphrase"
573+msgid "No lock code"
544574msgstr ""
545575
546−#: qml/Wizard/Pages/30-passwd-type.qml:109
547−msgctxt "Label: Description of security method"
548−msgid "Numbers and letters"
576+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
577+msgid "Privacy Policy"
549578msgstr ""
550579
551−#: qml/Wizard/Pages/40-wifi.qml:29
552−msgid "Connect to Wi‑Fi"
580+#: qml/Wizard/Pages/75-report-check.qml:26
581+msgid "Help Us Improve"
553582msgstr ""
554583
555−#: qml/Wizard/Pages/40-wifi.qml:168
556−msgid "Available networks…"
584+#: qml/Wizard/Pages/75-report-check.qml:59
585+msgid "Improve system performance by sending us crashes and error reports."
557586msgstr ""
558587
559−#: qml/Wizard/Pages/40-wifi.qml:169
560−msgid "No available networks."
588+#: qml/Wizard/Pages/75-report-check.qml:60
589+msgid "Privacy policy"
561590msgstr ""
562591
563−#: qml/Wizard/Pages/50-location.qml:27
564−msgid "Location"
592+#: qml/Wizard/Pages/80-finished.qml:89
593+msgid "Welcome to Ubuntu"
565594msgstr ""
566595
567−#: qml/Wizard/Pages/50-location.qml:62
568−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"
569598msgstr ""
570599
571−#: qml/Wizard/Pages/50-location.qml:69
572−msgid "Using GPS only (less accurate)"
600+#: qml/Wizard/Pages/80-finished.qml:124
601+msgid "Get Started"
573602msgstr ""
574603
575−#: qml/Wizard/Pages/50-location.qml:86
576−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
604+#: qml/Wizard/Pages/here-terms.qml:25
605+msgid "Terms & Conditions"
577606msgstr ""
578607
579−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
580−#: 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
581613msgid ""
582−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
583−"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."
584617msgstr ""
585618
586−#: qml/Wizard/Pages/50-location.qml:112
587−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."
588623msgstr ""
589624
590−#: qml/Wizard/Pages/50-location.qml:124
591−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."
592628msgstr ""
593629
594−#: qml/Wizard/Pages/60-reporting.qml:26
595−msgid "Improving your experience"
630+#: qml/Wizard/Pages/here-terms.qml:107
631+msgid "Service Terms"
596632msgstr ""
597633
598−#: qml/Wizard/Pages/60-reporting.qml:46
599−msgid ""
600−"Your phone is set up to automatically report errors to Canonical and its "
601−"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"
602637msgstr ""
603638
604−#: qml/Wizard/Pages/60-reporting.qml:53
605−msgid ""
606−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
607−"Privacy</b>"
639+#: qml/Wizard/Pages/passcode-confirm.qml:45
640+msgid "Incorrect passcode."
608641msgstr ""
609642
610−#: qml/Wizard/Pages/80-finished.qml:24
611−msgid "All done"
643+#: qml/Wizard/Pages/passcode-confirm.qml:45
644+msgctxt "Enter the passcode again"
645+msgid "Please re-enter."
612646msgstr ""
613647
614−#: qml/Wizard/Pages/80-finished.qml:39
615−msgid "Nice work!"
648+#: qml/Wizard/Pages/passcode-desktop.qml:30
649+msgid "Lock Screen Passcode"
616650msgstr ""
617651
618−#: qml/Wizard/Pages/80-finished.qml:46
619−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"
620654msgstr ""
621655
622−#: qml/Wizard/Pages/80-finished.qml:53
623−msgid "Finish"
656+#: qml/Wizard/Pages/passcode-desktop.qml:65
657+#: qml/Wizard/Pages/passcode-set.qml:54
658+msgid "Choose passcode"
624659msgstr ""
625660
626−#: qml/Wizard/Pages/here-terms.qml:27
627−msgid "Terms & Conditions"
661+#: qml/Wizard/Pages/passcode-desktop.qml:105
662+msgid "Passcode too short"
628663msgstr ""
629664
630−#: qml/Wizard/Pages/passwd-confirm.qml:49
631−msgid "Confirm passphrase"
665+#: qml/Wizard/Pages/passcode-desktop.qml:107
666+msgid "Passcodes match"
632667msgstr ""
633668
634−#: qml/Wizard/Pages/passwd-confirm.qml:50
635−msgid "Confirm passcode"
669+#: qml/Wizard/Pages/passcode-desktop.qml:109
670+msgid "Passcodes do not match"
636671msgstr ""
637672
638−#: qml/Wizard/Pages/passwd-confirm.qml:53
639−#: qml/Wizard/Pages/passwd-confirm.qml:54
640−msgid "Please try again."
673+#: qml/Wizard/Pages/passcode-set.qml:62
674+msgid "Passcode must be 4 characters long"
641675msgstr ""
642676
643−#: qml/Wizard/Pages/passwd-set.qml:61
644−msgid "Choose your passcode"
677+#: qml/Wizard/Pages/password-set.qml:30
678+msgid "Lock Screen Password"
645679msgstr ""
646680
647−#: qml/Wizard/Pages/passwd-set.qml:68
648−msgid "Passphrase must be 4 characters long"
681+#: qml/Wizard/Pages/password-set.qml:61
682+msgid "Enter at least 8 characters"
649683msgstr ""
650684
651−#. Translators: This is the arrow for "Back" buttons
652−#: qml/Wizard/StackButton.qml:39
653−#, qt-format
654−msgid "〈 %1"
685+#: qml/Wizard/Pages/password-set.qml:73
686+msgid "Choose password"
655687msgstr ""
656688
657−#. Translators: This is the arrow for "Forward" buttons
658−#: qml/Wizard/StackButton.qml:42
659−#, qt-format
660−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."
661703msgstr ""
662704
705+#: qml/Wizard/Pages/sim.qml:59
706+msgid "Restart"
707+msgstr "পুনরায় চালু"
708+
709+#: qml/Wizard/Pages/sim.qml:78
710+msgid "You won’t be able to make calls or use text messaging without a SIM."
711+msgstr ""
712+
713+#: qml/Wizard/Pages/sim.qml:90
714+msgid "To proceed with no SIM tap Skip."
715+msgstr ""
716+
717+#: qml/Wizard/PasswordMeter.qml:87
718+msgid "Passwords match"
719+msgstr ""
720+
721+#: qml/Wizard/PasswordMeter.qml:89
722+msgid "Passwords do not match"
723+msgstr ""
724+
725+#: qml/Wizard/PasswordMeter.qml:93
726+msgid "Strong password"
727+msgstr ""
728+
729+#: qml/Wizard/PasswordMeter.qml:95
730+msgid "Fair password"
731+msgstr ""
732+
733+#: qml/Wizard/PasswordMeter.qml:97
734+msgid "Weak password"
735+msgstr ""
736+
737+#: qml/Wizard/PasswordMeter.qml:99
738+msgid "Very weak password"
739+msgstr ""
740+
741+#~ msgctxt "Button: Reboot the system"
742+#~ msgid "Reboot"
743+#~ msgstr "পুনরায় চালু করুন"
744+
745+#~ msgid "See all"
746+#~ msgstr "সব দেখুন"
747+
748+#~ msgid "See less"
749+#~ msgstr "কম দেখুন"
750+
751+#~ msgid "This action does different things for different apps"
752+#~ msgstr "এই কাজটি বিভিন্ন অ্যাপের জন্য ভিন্ন ভিন্ন ভাবে কাজ করে।"
753+
754+#~ msgid "To view open apps"
755+#~ msgstr "সচল অ্যাপগুলো দেখার জন্য"
756+
663757#~ msgid "Welcome to your Ubuntu phone."
664758#~ msgstr "আপনার উবুন্টু ফোনে স্বাগতম।"
665759
760+#~ msgid "Try again."
761+#~ msgstr "আবার চেষ্টা করুন"
762+
763+#~ msgid "You almost got it!"
764+#~ msgstr "আপনি প্রায় পেরে গেছেন!"
765+
766+#~ msgid "Open the launcher"
767+#~ msgstr "লঞ্চার খুলুন"
768+
769+#~ msgctxt "Label: Type of security method"
770+#~ msgid "Passcode"
771+#~ msgstr "পাসকোড"
772+
773+#~ msgid "Add a SIM card and restart your device"
774+#~ msgstr "সিম কার্ড যোগ করুন এবং ফোন পুনরায় চালু করুন।"
775+
776+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
777+#~ msgstr "এটি ছাড়া, আপনি ফোন কল বা টেক্সট মেসেজ ব্যবহার করতে পারবেন না।"
778+
779+#~ msgid "Tap here to continue."
780+#~ msgstr "অগ্রসর হওয়ার জন্য এখানে চাপ দিন।"
781+
782+#~ msgid "Swipe up from the bottom edge."
783+#~ msgstr "নিচের প্রান্ত হতে উপরের দিকে সোয়াইপ করুন।"
784+
785+#~ msgctxt "Label: Description of security method"
786+#~ msgid "No security"
787+#~ msgstr "কোন নিরাপত্তা নেই"
788+
666789#~ msgid "Log out"
667790#~ msgstr "লগ অাউট"
668791
792+#~ msgid "Are you sure you want to shut down?"
793+#~ msgstr "আপনি কি কম্পিউটার বন্ধ করতে চান?"
794+
669795#~ msgid "Reboot"
670796#~ msgstr "পুনরায় চালু করুন"
671797
@@ -675,9 +801,6 @@ msgstr ""
675801#~ msgid "Power off"
676802#~ msgstr "বন্ধ করুন"
677803
678−#~ msgid "Restart"
679−#~ msgstr "পুনরায় চালু"
680−
681804#~ msgid "Top edge"
682805#~ msgstr "উপরের প্রান্ত"
683806
@@ -729,5 +852,29 @@ msgstr ""
729852#~ msgid "Please re-enter"
730853#~ msgstr "অনুগ্রহ করে আবার লিখুন"
731854
855+#~ msgctxt "Button: Shut down the system"
856+#~ msgid "Shut down"
857+#~ msgstr "বন্ধ করুন"
858+
859+#~ msgctxt "Title: Reboot/Shut down dialog"
860+#~ msgid "Shut down"
861+#~ msgstr "বন্ধ করুন"
862+
863+#~ msgid "Let’s get started."
864+#~ msgstr "আসুন শুরু করা যাক।"
865+
866+#~ msgid "These are the shortcuts to favorite apps"
867+#~ msgstr "এগুলো আপনার প্রিয় অ্যাপেরর শর্টকাট"
868+
869+#~ msgid "Lock security"
870+#~ msgstr "নিরাপত্তা লক"
871+
732872#~ msgid "Please select how you’d like to unlock your phone."
733873#~ msgstr "আপনি কিভাবে ফোনের লক খুলতে চান তা নির্ধারণ করুন।"
874+
875+#~ msgctxt "Label: Description of security method"
876+#~ msgid "4 digits only"
877+#~ msgstr "কেবল মাত্র ৪টি সংখ্যা"
878+
879+#~ msgid "Continue"
880+#~ msgstr "পরবর্তী"
po/br.po+496−257
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-03-10 22:48+0000\n"
11−"PO-Revision-Date: 2016-02-22 12:29+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
11+"PO-Revision-Date: 2016-04-27 12:20+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-03-13 05:50+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -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:217
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:182
118100msgid "Yes"
119101msgstr "Ya"
120102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:197
122104msgctxt "Title: Power off/Restart dialog"
123105msgid "Power"
124106msgstr "Enaouiñ"
125107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:198
127109msgid ""
128110"Are you sure you would like\n"
129111"to power off?"
@@ -131,12 +113,12 @@ 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:200
135117msgctxt "Button: Power off the system"
136118msgid "Power off"
137119msgstr "Lazhañ"
138120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:209
140122msgctxt "Button: Restart the system"
141123msgid "Restart"
142124msgstr "Adloc'hañ"
@@ -162,6 +144,8 @@ msgctxt ""
162144"Re-dock means connect the device again to an external screen/mouse/keyboard"
163145msgid "Re-dock, save your work and close these apps to continue."
164146msgstr ""
147+"Adkevreit ouzh ar savlec'h degemer, enrollot ho labour ha serrit an arloadoù-"
148+"mañ evit kenderc'hel."
165149
166150#: qml/Components/ModeSwitchWarningDialog.qml:63
167151msgid "Or force close now (unsaved data will be lost)."
@@ -180,42 +164,58 @@ msgstr "Adkevreañ bremañ !"
180164msgid "Close all"
181165msgstr "Serriñ pep tra"
182166
183−#: qml/Dash/DashPageHeader.qml:270
167+#: qml/Dash/DashPageHeader.qml:337
184168msgctxt "Button: Open the Ubuntu Store"
185169msgid "Store"
186170msgstr "Stal"
187171
188−#: qml/Dash/DashPageHeader.qml:277
172+#: qml/Dash/DashPageHeader.qml:344
189173msgctxt "Button: Start a search in the current dash scope"
190174msgid "Search"
191175msgstr "Klask"
192176
193−#: qml/Dash/DashPageHeader.qml:287
177+#: qml/Dash/DashPageHeader.qml:354
194178msgctxt "Button: Show the current dash scope settings"
195179msgid "Settings"
196180msgstr "Arventennoù"
197181
198−#: qml/Dash/DashPageHeader.qml:294
182+#: qml/Dash/DashPageHeader.qml:361
199183msgid "Remove from Favorites"
200184msgstr "Lemel eus ar sinedoù"
201185
202−#: qml/Dash/DashPageHeader.qml:294
186+#: qml/Dash/DashPageHeader.qml:361
203187msgid "Add to Favorites"
204188msgstr "Ouzhpennañ d'ar sinedoù"
205189
206−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
207−msgid "See less"
208−msgstr "Gwelet nebeutoc'h"
190+#: qml/Dash/FiltersPopover.qml:60
191+msgid "Refine your results"
192+msgstr "Purañ ho tisoc'hoù"
209193
210−#: qml/Dash/GenericScopeView.qml:567
211−msgid "See all"
212−msgstr "Gwelet pep tra"
194+#: qml/Dash/FiltersPopover.qml:69
195+msgid "Reset"
196+msgstr "Adderaouekaat"
213197
214−#: qml/Dash/GenericScopeView.qml:629
198+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
199+msgid "Show less"
200+msgstr ""
201+
202+#: qml/Dash/GenericScopeView.qml:579
203+msgid "Show all"
204+msgstr ""
205+
206+#: qml/Dash/GenericScopeView.qml:636
215207msgctxt "Label: Hint for dash search line edit"
216208msgid "Search"
217209msgstr "Klask"
218210
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+
219219#: qml/Dash/Previews/PreviewActionCombo.qml:35
220220msgid "More..."
221221msgstr "Muioc'h..."
@@ -283,11 +283,11 @@ msgstr "Esaeañ en-dro"
283283msgid "Tap to unlock"
284284msgstr "Pouezañ evit dibrennañ"
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 "Siwazh, frazenn-dremen direizh"
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 "Siwazh, kod-tremen direizh"
293293
@@ -316,7 +316,7 @@ msgstr ""
316316msgid "Enter %1"
317317msgstr "Merkañ %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 "Merkañ ar frazenn-dremen"
322322
@@ -342,7 +342,7 @@ msgstr "Adverkañ, mar plij"
342342msgid "Sorry, incorrect passcode"
343343msgstr "Digarezit, kod-tremen direizh"
344344
345−#: qml/Notifications/NotificationMenuItemFactory.qml:129
345+#: qml/Notifications/NotificationMenuItemFactory.qml:124
346346msgid "Show password"
347347msgstr "Diskouez ar ger-tremen"
348348
@@ -354,62 +354,62 @@ msgstr "Touchit evit distreiñ d'ar bellgomzadenn..."
354354msgid "Conference"
355355msgstr "Kendiviz"
356356
357−#: qml/Panel/Indicators/MenuItemFactory.qml:752
357+#: qml/Panel/Indicators/MenuItemFactory.qml:762
358358msgid "Nothing is playing"
359359msgstr "Ne lenner netra bremañ"
360360
361−#: qml/Panel/Indicators/MenuItemFactory.qml:881
361+#: qml/Panel/Indicators/MenuItemFactory.qml:891
362362#, qt-format
363363msgid "%1 hour"
364364msgid_plural "%1 hours"
365365msgstr[0] "%1 eur"
366366msgstr[1] "%1 eur"
367367
368−#: qml/Panel/Indicators/MenuItemFactory.qml:885
368+#: qml/Panel/Indicators/MenuItemFactory.qml:895
369369#, qt-format
370370msgid "%1 minute"
371371msgid_plural "%1 minutes"
372372msgstr[0] "%1 vunutenn"
373373msgstr[1] "%1 vunutenn"
374374
375−#: qml/Panel/Indicators/MenuItemFactory.qml:890
375+#: qml/Panel/Indicators/MenuItemFactory.qml:900
376376#, qt-format
377377msgid "%1 second"
378378msgid_plural "%1 seconds"
379379msgstr[0] "%1 eilenn"
380380msgstr[1] "%1 eilenn"
381381
382−#: qml/Panel/Indicators/MenuItemFactory.qml:893
382+#: qml/Panel/Indicators/MenuItemFactory.qml:903
383383msgid "0 seconds"
384384msgstr "0 eilenn"
385385
386386#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
387−#: qml/Panel/Indicators/MenuItemFactory.qml:895
387+#: qml/Panel/Indicators/MenuItemFactory.qml:905
388388#, qt-format
389389msgid "%1 remaining"
390390msgstr "%1 o chom"
391391
392−#: qml/Panel/Indicators/MenuItemFactory.qml:901
392+#: qml/Panel/Indicators/MenuItemFactory.qml:911
393393msgid "In queue…"
394394msgstr "El lostennad..."
395395
396−#: qml/Panel/Indicators/MenuItemFactory.qml:905
396+#: qml/Panel/Indicators/MenuItemFactory.qml:915
397397msgid "Downloading"
398398msgstr "O pellgargañ"
399399
400−#: qml/Panel/Indicators/MenuItemFactory.qml:907
400+#: qml/Panel/Indicators/MenuItemFactory.qml:917
401401msgid "Paused, tap to resume"
402402msgstr "Ehanet, touchit evit adkregiñ"
403403
404−#: qml/Panel/Indicators/MenuItemFactory.qml:909
404+#: qml/Panel/Indicators/MenuItemFactory.qml:919
405405msgid "Canceled"
406406msgstr "Nullet"
407407
408−#: qml/Panel/Indicators/MenuItemFactory.qml:911
408+#: qml/Panel/Indicators/MenuItemFactory.qml:921
409409msgid "Finished"
410410msgstr "Echu"
411411
412−#: qml/Panel/Indicators/MenuItemFactory.qml:913
412+#: qml/Panel/Indicators/MenuItemFactory.qml:923
413413msgid "Failed, tap to retry"
414414msgstr "C'hwitet, touchit evit adkregiñ"
415415
@@ -429,251 +429,324 @@ msgctxt "Button: Call back on phone"
429429msgid "Call back"
430430msgstr "Gervel en-dro"
431431
432−#: qml/Tutorial/TutorialBottom.qml:28
433−msgid "Open special menus"
434−msgstr "Digeriñ al lañserioù ispisial"
435−
436−#: qml/Tutorial/TutorialBottom.qml:29
437−msgid "Swipe up from the bottom edge."
438−msgstr "Riklit war-du an nec'h adalek an traoñ"
432+#: qml/Stages/SideStage.qml:76
433+msgid "Drag using 3 fingers any application from one window to the other"
434+msgstr ""
439435
440−#: qml/Tutorial/TutorialBottomFinish.qml:24
441−msgid "This action does different things for different apps"
442−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"
443439
444−#: qml/Tutorial/TutorialBottomFinish.qml:25
445−msgid "Tap here to finish."
446−msgstr "Pouezañ amañ evit echuiñ."
440+#: qml/Tutorial/TutorialBottom.qml:80
441+msgid "Swipe up for favorite calculations"
442+msgstr ""
447443
448−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
449−#: qml/Tutorial/TutorialRight.qml:144
450−msgid "Tap here to continue."
451−msgstr "Pouzañ amañ evit kenderc'hel"
444+#: qml/Tutorial/TutorialBottom.qml:82
445+msgid "Swipe up for recent calls"
446+msgstr ""
452447
453−#: qml/Tutorial/TutorialLeft.qml:26
454−msgid "Open the launcher"
455−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"
456451
457−#: qml/Tutorial/TutorialLeft.qml:27
458−msgid "Short swipe from the left edge."
459−msgstr "Riklik dousik adalek ar bord kleiz."
452+#: qml/Tutorial/TutorialBottom.qml:85
453+msgid "Swipe up to manage the app"
454+msgstr ""
460455
461−#: qml/Tutorial/TutorialLeftFinish.qml:24
462−msgid "These are the shortcuts to favorite apps"
463−msgstr "Berradennoù war-du hoc'h arloadoù gwellañ-deuet eo ar re-mañ"
456+#: qml/Tutorial/TutorialLeftLong.qml:47
457+msgid "Long swipe from the left edge to open the Today scope"
458+msgstr ""
464459
465−#: qml/Tutorial/TutorialPage.qml:178
466−msgid "You almost got it!"
467−msgstr "Deuet eo ganeoc'h pe dost ?"
460+#: qml/Tutorial/TutorialLeft.qml:47
461+msgid "Swipe from the left edge to open the launcher"
462+msgstr ""
468463
469−#: qml/Tutorial/TutorialPage.qml:195
470−msgid "Try again."
471−msgstr "Esaeit en-dro."
464+#: qml/Tutorial/TutorialRight.qml:55
465+msgid "Push your mouse against the right edge to view your open apps"
466+msgstr ""
472467
473−#: qml/Tutorial/TutorialRight.qml:31
474−msgid "To view open apps"
475−msgstr "Evit gwelet an arloadoù digor"
468+#: qml/Tutorial/TutorialRight.qml:56
469+msgid "Short or long swipe from the right edge to view your open apps"
470+msgstr ""
476471
477−#: qml/Tutorial/TutorialRight.qml:32
478−msgid "Long swipe from the right edge."
479−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 ""
480475
481−#: qml/Tutorial/TutorialRight.qml:122
482−msgid "View all your running tasks."
483−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 ""
484479
485−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
486481msgctxt "Button: Go back one page in the Wizard"
487482msgid "Back"
488483msgstr "Distreiñ"
489484
490485#: qml/Wizard/Pages/10-welcome.qml:27
491−msgid "Hi!"
492−msgstr "Salud deoc'h !"
493−
494−#: qml/Wizard/Pages/10-welcome.qml:44
495−msgid "Welcome to your Ubuntu device."
496−msgstr "Donemat en ho penveg Ubuntu"
497−
498−#: qml/Wizard/Pages/10-welcome.qml:52
499−msgid "Let’s get started."
500−msgstr "Krogomp ganti."
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"
501501
502−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
503−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
504−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
505−#: qml/Wizard/Pages/passwd-set.qml:90
506−msgid "Continue"
507−msgstr "Kenderc'hel"
502+#: qml/Wizard/Pages/30-wifi.qml:130
503+msgid "Connected"
504+msgstr "Kevreet"
508505
509−#: qml/Wizard/Pages/20-sim.qml:25
510−msgid "Add a SIM card and restart your device"
511−msgstr "Lakait ur gartenn SIM hag adloc'hit ho penveg"
506+#: qml/Wizard/Pages/30-wifi.qml:163
507+msgid "Available Wi-Fi networks"
508+msgstr "Rouedadoù Wi-Fi da gaout"
512509
513−#: qml/Wizard/Pages/20-sim.qml:59
514−msgid "Without it, you won’t be able to make calls or use text messaging."
515−msgstr "Ne vioc'h ket evit pellgomz pe kas kemennadennoù hepti."
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"
516513
517−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
514+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515+#: qml/Wizard/Pages/sim.qml:101
518516msgid "Skip"
519517msgstr "Tremen hebiou"
520518
521−#: qml/Wizard/Pages/30-passwd-type.qml:39
522−msgid "Lock security"
523−msgstr "Surentez ar prennañ"
519+#: qml/Wizard/Pages/40-location.qml:27
520+msgid "Location Services"
521+msgstr "Servijoù lec'hiañ"
524522
525−#: qml/Wizard/Pages/30-passwd-type.qml:79
526−msgid "Please select how you’d like to unlock your device."
527−msgstr "Diuzit penaos e fell deoc'h dibrennañ ho penveg, mar plij."
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)"
527+msgstr ""
528528
529−#: qml/Wizard/Pages/30-passwd-type.qml:102
530−msgctxt "Label: Type of security method"
531−msgid "Swipe"
532−msgstr "Riklañ"
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 ""
533533
534−#: qml/Wizard/Pages/30-passwd-type.qml:103
535−msgctxt "Label: Description of security method"
536−msgid "No security"
537−msgstr "Tamm surentez ebet"
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"
538538
539−#: qml/Wizard/Pages/30-passwd-type.qml:105
539+#: qml/Wizard/Pages/40-location.qml:160
540+msgid "GPS only"
541+msgstr "GPS hepken"
542+
543+#: qml/Wizard/Pages/40-location.qml:214
544+msgid "Don't use my location"
545+msgstr "Arabat implijout ma lec'h"
546+
547+#: qml/Wizard/Pages/40-location.qml:260
548+msgid "You can change it later in System Settings."
549+msgstr ""
550+
551+#: qml/Wizard/Pages/50-timezone.qml:29
552+msgid "Time Zone"
553+msgstr "Gwerzhid-eur"
554+
555+#: qml/Wizard/Pages/50-timezone.qml:178
556+msgid "Enter your city"
557+msgstr "Skrivit ho kêr"
558+
559+#: qml/Wizard/Pages/60-account.qml:24
560+msgid "Personalize Your Device"
561+msgstr "Personelaat ho penveg"
562+
563+#: qml/Wizard/Pages/60-account.qml:48
564+msgid "Preferred Name"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/70-passwd-type.qml:39
568+msgid "Lock Screen"
569+msgstr "Prennañ ar skramm"
570+
571+#: qml/Wizard/Pages/70-passwd-type.qml:101
540572msgctxt "Label: Type of security method"
541−msgid "Passcode"
542−msgstr "Kod-tremen"
573+msgid "Create new password"
574+msgstr "Krouiñ ur ger-tremen nevez"
543575
544−#: qml/Wizard/Pages/30-passwd-type.qml:106
545−msgctxt "Label: Description of security method"
546−msgid "4 digits only"
547−msgstr "4 sifr hepken"
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)"
548580
549−#: qml/Wizard/Pages/30-passwd-type.qml:108
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
550582msgctxt "Label: Type of security method"
551−msgid "Passphrase"
552−msgstr "Frazenn-dremen"
583+msgid "No lock code"
584+msgstr "N'eus kod prennañ ebet"
553585
554−#: qml/Wizard/Pages/30-passwd-type.qml:109
555−msgctxt "Label: Description of security method"
556−msgid "Numbers and letters"
557−msgstr "Sifroù ha lizherennoù"
586+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
587+msgid "Privacy Policy"
588+msgstr "Reolennoù prevezded"
558589
559−#: qml/Wizard/Pages/40-wifi.qml:29
560−msgid "Connect to Wi‑Fi"
561−msgstr "Kevreañ ouzh ar Wi-Fi"
590+#: qml/Wizard/Pages/75-report-check.qml:26
591+msgid "Help Us Improve"
592+msgstr "Sikourit ac'hanomp da wellaat"
562593
563−#: qml/Wizard/Pages/40-wifi.qml:168
564−msgid "Available networks…"
565−msgstr "Rouedadoù a c'haller kaout..."
594+#: qml/Wizard/Pages/75-report-check.qml:59
595+msgid "Improve system performance by sending us crashes and error reports."
596+msgstr ""
566597
567−#: qml/Wizard/Pages/40-wifi.qml:169
568−msgid "No available networks."
569−msgstr "N'eus rouedad ebet da gaout."
598+#: qml/Wizard/Pages/75-report-check.qml:60
599+msgid "Privacy policy"
600+msgstr "Reolennoù buhez prevez"
570601
571−#: qml/Wizard/Pages/50-location.qml:27
572−msgid "Location"
573−msgstr "Lec'h"
602+#: qml/Wizard/Pages/80-finished.qml:89
603+msgid "Welcome to Ubuntu"
604+msgstr "Donemat en Ubuntu"
574605
575−#: qml/Wizard/Pages/50-location.qml:62
576−msgid "Let the phone detect your location:"
577−msgstr "Lezel ar pellgomzer da gavout pelec'h emaoc'h :"
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"
578609
579−#: qml/Wizard/Pages/50-location.qml:69
580−msgid "Using GPS only (less accurate)"
581−msgstr "Implijout ar GPS hepken (n'eo ket ken resis)"
610+#: qml/Wizard/Pages/80-finished.qml:124
611+msgid "Get Started"
612+msgstr "Kregiñ ganti"
613+
614+#: qml/Wizard/Pages/here-terms.qml:25
615+msgid "Terms & Conditions"
616+msgstr "Penndivizoù implij"
582617
583−#: qml/Wizard/Pages/50-location.qml:86
584−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
618+#: qml/Wizard/Pages/here-terms.qml:69
619+msgid "Your device uses positioning technologies provided by HERE."
585620msgstr ""
586−"Implijout ar GPS, Wi-Fi dizanv pe titouroù ar rouedad kelligel (aliet)"
587621
588−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
589−#: qml/Wizard/Pages/50-location.qml:103
622+#: qml/Wizard/Pages/here-terms.qml:81
590623msgid ""
591−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
592−"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."
593627msgstr ""
594−"Pa ziuzit an dibarzh-mañ ez asantit da <a href='#'>zivizoù implij</a> Nokia."
595628
596−#: qml/Wizard/Pages/50-location.qml:112
597−msgid "Not at all"
598−msgstr "Tamm ebet"
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 ""
599634
600−#: qml/Wizard/Pages/50-location.qml:124
601−msgid "You can change your mind later in <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."
602638msgstr ""
603−"Gallout a rit cheñch soñj diwezhatoc'h en <b>Arventennoù ar reizhad</b>."
604639
605−#: qml/Wizard/Pages/60-reporting.qml:26
606−msgid "Improving your experience"
607−msgstr "Gwellaat ho skiant-prenet"
640+#: qml/Wizard/Pages/here-terms.qml:107
641+msgid "Service Terms"
642+msgstr "Divizoù servij"
608643
609−#: qml/Wizard/Pages/60-reporting.qml:46
610−msgid ""
611−"Your phone is set up to automatically report errors to Canonical and its "
612−"partners, the makers of the operating system."
613−msgstr ""
614−"Arventennet eo ho pellgomzer evit titourañ ent emgefre ar fazioù da "
615−"gCanonical ha d'e gevelerien, ar re o deus savet ar reizhiad korvoiñ."
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"
616648
617−#: qml/Wizard/Pages/60-reporting.qml:53
618−msgid ""
619−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
620−"Privacy</b>"
621−msgstr ""
622−"Gallout a ra bezañ diweredekaet e-barzh <b>Arventennoù ar reizhiad</b> "
623−"dindan <b>Surentez &amp; Prevezded</b>"
649+#: qml/Wizard/Pages/passcode-confirm.qml:45
650+msgid "Incorrect passcode."
651+msgstr "Kod direizh"
624652
625−#: qml/Wizard/Pages/80-finished.qml:24
626−msgid "All done"
627−msgstr "Echu penn-da-benn"
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."
628657
629−#: qml/Wizard/Pages/80-finished.qml:39
630−msgid "Nice work!"
631−msgstr "Gwellat labour !"
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
659+msgid "Lock Screen Passcode"
660+msgstr "Kod da brennañ ar skramm"
632661
633−#: qml/Wizard/Pages/80-finished.qml:46
634−msgid "Your device is now ready to use."
635−msgstr "Prest eo ho penveg da vezañ implijet bremañ."
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
663+msgid "Enter 4 numbers to setup your passcode"
664+msgstr "Skrivit 4 sifr evit lakaat ho kod"
636665
637−#: qml/Wizard/Pages/80-finished.qml:53
638−msgid "Finish"
639−msgstr "Echuiñ"
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"
640670
641−#: qml/Wizard/Pages/here-terms.qml:27
642−msgid "Terms & Conditions"
643−msgstr "Penndivizoù implij"
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
672+msgid "Passcode too short"
673+msgstr "Kod re verr"
644674
645−#: qml/Wizard/Pages/passwd-confirm.qml:49
646−msgid "Confirm passphrase"
647−msgstr "Kadarnaat ar frazenn-dremen"
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
676+msgid "Passcodes match"
677+msgstr "klotañ a ra ar c'hodoù an eil gant egile"
648678
649−#: qml/Wizard/Pages/passwd-confirm.qml:50
650−msgid "Confirm passcode"
651−msgstr "Kadarnaat ar c'hod-tremen"
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
680+msgid "Passcodes do not match"
681+msgstr "Ne glot ket ar c'hodoù an eil gant egile"
652682
653−#: qml/Wizard/Pages/passwd-confirm.qml:53
654−#: qml/Wizard/Pages/passwd-confirm.qml:54
655−msgid "Please try again."
656−msgstr "Esaeit en-dro, mar plij."
683+#: qml/Wizard/Pages/passcode-set.qml:62
684+msgid "Passcode must be 4 characters long"
685+msgstr "4 arouezenn a rank bezañ ar c'hod"
657686
658−#: qml/Wizard/Pages/passwd-set.qml:61
659−msgid "Choose your passcode"
660−msgstr "Choaz ho kod-tremen"
687+#: qml/Wizard/Pages/password-set.qml:30
688+msgid "Lock Screen Password"
689+msgstr "Ger-tremen da brennañ ar skramm"
661690
662−#: qml/Wizard/Pages/passwd-set.qml:68
663−msgid "Passphrase must be 4 characters long"
664−msgstr "4 arouezenn a rank bezañ er frazenn-dremen"
691+#: qml/Wizard/Pages/password-set.qml:61
692+msgid "Enter at least 8 characters"
693+msgstr "Skrivit 8 arouezenn da vihanañ"
665694
666−#. Translators: This is the arrow for "Back" buttons
667−#: qml/Wizard/StackButton.qml:39
668−#, qt-format
669−msgid "〈 %1"
670−msgstr "〈 %1"
695+#: qml/Wizard/Pages/password-set.qml:73
696+msgid "Choose password"
697+msgstr "Choaz ur ger-tremen"
671698
672−#. Translators: This is the arrow for "Forward" buttons
673−#: qml/Wizard/StackButton.qml:42
674−#, qt-format
675−msgid "%1 〉"
676−msgstr "%1 〉"
699+#: qml/Wizard/Pages/password-set.qml:103
700+msgid "Confirm password"
701+msgstr "Kadarnaat ar ger-tremen"
702+
703+#: qml/Wizard/Pages/sim.qml:27
704+msgid "No SIM card installed"
705+msgstr "N'eus kartenn SIM ebet"
706+
707+#: qml/Wizard/Pages/sim.qml:54
708+msgid "SIM card added"
709+msgstr "Lakaet ez eus bet ur gartenn SIM"
710+
711+#: qml/Wizard/Pages/sim.qml:55
712+msgid "You must restart the device to access the mobile network."
713+msgstr ""
714+
715+#: qml/Wizard/Pages/sim.qml:59
716+msgid "Restart"
717+msgstr "Adloc'hañ"
718+
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 "Klotañ a ra ar gerioù-tremen an eil gant egile"
730+
731+#: qml/Wizard/PasswordMeter.qml:89
732+msgid "Passwords do not match"
733+msgstr "Ne glot ket ar gerioù-tremen"
734+
735+#: qml/Wizard/PasswordMeter.qml:93
736+msgid "Strong password"
737+msgstr "Ger-tremen sur"
738+
739+#: qml/Wizard/PasswordMeter.qml:95
740+msgid "Fair password"
741+msgstr "Ger-tremen reizh"
742+
743+#: qml/Wizard/PasswordMeter.qml:97
744+msgid "Weak password"
745+msgstr "Ger-tremen diasur"
746+
747+#: qml/Wizard/PasswordMeter.qml:99
748+msgid "Very weak password"
749+msgstr "Ger-tremen diasur-kenañ"
677750
678751#~ msgid "Close"
679752#~ msgstr "Serriñ"
@@ -690,6 +763,9 @@ msgstr "%1 〉"
690763#~ msgid "Right edge"
691764#~ msgstr "Bord dehoù"
692765
766+#~ msgid "See less"
767+#~ msgstr "Gwelet nebeutoc'h"
768+
693769#~ msgid ""
694770#~ "You have now mastered the edge gestures and can start using the "
695771#~ "phone<br><br>Tap on the screen to start"
@@ -735,6 +811,9 @@ msgstr "%1 〉"
735811#~ msgid "Type or say a command"
736812#~ msgstr "Skrivit pe lavarit un urzhiad"
737813
814+#~ msgid "See all"
815+#~ msgstr "Gwelet pep tra"
816+
738817#~ msgid "Store"
739818#~ msgstr "Enrollañ"
740819
@@ -762,6 +841,9 @@ msgstr "%1 〉"
762841#~ msgid "Log out"
763842#~ msgstr "Digevreañ"
764843
844+#~ msgid "Are you sure you want to shut down?"
845+#~ msgstr "Ha sur oc'h e fell deoc'h lazhañ ar benveg ?"
846+
765847#~ msgid "Reboot"
766848#~ msgstr "Adloc'hañ"
767849
@@ -771,25 +853,193 @@ msgstr "%1 〉"
771853#~ msgid "Settings"
772854#~ msgstr "Arventennoù"
773855
774−#~ msgid "Restart"
775−#~ msgstr "Adloc'hañ"
776−
777856#~ msgid "Manage Scopes"
778857#~ msgstr "Merañ ar c'hefluskerioù enklask"
779858
780859#~ msgid "Please re-enter"
781860#~ msgstr "Adverkañ, mar plij"
782861
862+#~ msgid "Lock security"
863+#~ msgstr "Surentez ar prennañ"
864+
865+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
866+#~ msgstr "Ne vioc'h ket evit pellgomz pe kas kemennadennoù hepti."
867+
868+#~ msgid "Add a SIM card and restart your device"
869+#~ msgstr "Lakait ur gartenn SIM hag adloc'hit ho penveg"
870+
783871#~ msgid "Please select how you’d like to unlock your phone."
784872#~ msgstr ""
785873#~ "Diuzit e peseurt mod e fell deoc'h dibrennañ ho pellgomzer, mar plij."
786874
875+#~ msgid "Hi!"
876+#~ msgstr "Salud deoc'h !"
877+
878+#~ msgid "Let’s get started."
879+#~ msgstr "Krogomp ganti."
880+
881+#~ msgid "Continue"
882+#~ msgstr "Kenderc'hel"
883+
787884#~ msgid "Welcome to your Ubuntu phone."
788885#~ msgstr "Deuet-mat oc'h en ho pellgomzer Ubuntu."
789886
887+#~ msgid "Available networks…"
888+#~ msgstr "Rouedadoù a c'haller kaout..."
889+
890+#~ msgid "No available networks."
891+#~ msgstr "N'eus rouedad ebet da gaout."
892+
893+#~ msgid "Location"
894+#~ msgstr "Lec'h"
895+
896+#~ msgid "You can change your mind later in <b>System Settings</b>."
897+#~ msgstr ""
898+#~ "Gallout a rit cheñch soñj diwezhatoc'h en <b>Arventennoù ar reizhad</b>."
899+
900+#~ msgid ""
901+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
902+#~ "Privacy</b>"
903+#~ msgstr ""
904+#~ "Gallout a ra bezañ diweredekaet e-barzh <b>Arventennoù ar reizhiad</b> "
905+#~ "dindan <b>Surentez &amp; Prevezded</b>"
906+
907+#~ msgid ""
908+#~ "Your phone is set up to automatically report errors to Canonical and its "
909+#~ "partners, the makers of the operating system."
910+#~ msgstr ""
911+#~ "Arventennet eo ho pellgomzer evit titourañ ent emgefre ar fazioù da "
912+#~ "gCanonical ha d'e gevelerien, ar re o deus savet ar reizhiad korvoiñ."
913+
914+#~ msgid "All done"
915+#~ msgstr "Echu penn-da-benn"
916+
917+#~ msgid "Improving your experience"
918+#~ msgstr "Gwellaat ho skiant-prenet"
919+
920+#~ msgid ""
921+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
922+#~ "conditions</a>."
923+#~ msgstr ""
924+#~ "Pa ziuzit an dibarzh-mañ ez asantit da <a href='#'>zivizoù implij</a> Nokia."
925+
926+#~ msgid "Not at all"
927+#~ msgstr "Tamm ebet"
928+
929+#~ msgid "Let the phone detect your location:"
930+#~ msgstr "Lezel ar pellgomzer da gavout pelec'h emaoc'h :"
931+
932+#~ msgid "Using GPS only (less accurate)"
933+#~ msgstr "Implijout ar GPS hepken (n'eo ket ken resis)"
934+
935+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
936+#~ msgstr ""
937+#~ "Implijout ar GPS, Wi-Fi dizanv pe titouroù ar rouedad kelligel (aliet)"
938+
939+#~ msgid "Nice work!"
940+#~ msgstr "Gwellat labour !"
941+
942+#~ msgid "Finish"
943+#~ msgstr "Echuiñ"
944+
945+#~ msgid "Confirm passphrase"
946+#~ msgstr "Kadarnaat ar frazenn-dremen"
947+
948+#, qt-format
949+#~ msgid "〈 %1"
950+#~ msgstr "〈 %1"
951+
952+#~ msgid "Choose your passcode"
953+#~ msgstr "Choaz ho kod-tremen"
954+
955+#~ msgid "Passphrase must be 4 characters long"
956+#~ msgstr "4 arouezenn a rank bezañ er frazenn-dremen"
957+
958+#~ msgid "Please try again."
959+#~ msgstr "Esaeit en-dro, mar plij."
960+
790961#~ msgid "Your phone is now ready to use."
791962#~ msgstr "Prest eo ho pellgomzer da vezañ implijet bremañ."
792963
964+#, qt-format
965+#~ msgid "%1 〉"
966+#~ msgstr "%1 〉"
967+
968+#~ msgid "This action does different things for different apps"
969+#~ msgstr "An ober-mañ a ra meur a dra evit meur a arload"
970+
971+#~ msgid "Open special menus"
972+#~ msgstr "Digeriñ al lañserioù ispisial"
973+
974+#~ msgid "Tap here to finish."
975+#~ msgstr "Pouezañ amañ evit echuiñ."
976+
977+#~ msgid "To view open apps"
978+#~ msgstr "Evit gwelet an arloadoù digor"
979+
980+#~ msgid "Long swipe from the right edge."
981+#~ msgstr "Riklit pell adalek ar bord dehoù."
982+
983+#~ msgid "View all your running tasks."
984+#~ msgstr "Gwelet an holl drevelloù a ya en-dro."
985+
986+#~ msgid "Try again."
987+#~ msgstr "Esaeit en-dro."
988+
989+#~ msgid "You almost got it!"
990+#~ msgstr "Deuet eo ganeoc'h pe dost ?"
991+
992+#~ msgid "Short swipe from the left edge."
993+#~ msgstr "Riklik dousik adalek ar bord kleiz."
994+
995+#~ msgid "Open the launcher"
996+#~ msgstr "Digeriñ al lañser"
997+
998+#~ msgid "Tap here to continue."
999+#~ msgstr "Pouzañ amañ evit kenderc'hel"
1000+
1001+#~ msgid "These are the shortcuts to favorite apps"
1002+#~ msgstr "Berradennoù war-du hoc'h arloadoù gwellañ-deuet eo ar re-mañ"
1003+
1004+#~ msgid "Swipe up from the bottom edge."
1005+#~ msgstr "Riklit war-du an nec'h adalek an traoñ"
1006+
1007+#~ msgctxt "Button: Shut down the system"
1008+#~ msgid "Shut down"
1009+#~ msgstr "Lazhañ ar benveg"
1010+
1011+#~ msgctxt "Title: Reboot/Shut down dialog"
1012+#~ msgid "Shut down"
1013+#~ msgstr "Lazhañ ar benveg"
1014+
1015+#~ msgctxt "Button: Reboot the system"
1016+#~ msgid "Reboot"
1017+#~ msgstr "Adloc'hañ"
1018+
1019+#~ msgctxt "Label: Type of security method"
1020+#~ msgid "Passcode"
1021+#~ msgstr "Kod-tremen"
1022+
1023+#~ msgctxt "Label: Description of security method"
1024+#~ msgid "No security"
1025+#~ msgstr "Tamm surentez ebet"
1026+
1027+#~ msgctxt "Label: Type of security method"
1028+#~ msgid "Swipe"
1029+#~ msgstr "Riklañ"
1030+
1031+#~ msgctxt "Label: Description of security method"
1032+#~ msgid "4 digits only"
1033+#~ msgstr "4 sifr hepken"
1034+
1035+#~ msgctxt "Label: Type of security method"
1036+#~ msgid "Passphrase"
1037+#~ msgstr "Frazenn-dremen"
1038+
1039+#~ msgctxt "Label: Description of security method"
1040+#~ msgid "Numbers and letters"
1041+#~ msgstr "Sifroù ha lizherennoù"
1042+
7931043#~ msgid "%a %d %b %H:%M"
7941044#~ msgstr "%a %b %d %H:%M"
7951045
@@ -822,14 +1072,3 @@ msgstr "%1 〉"
8221072
8231073#~ msgid "Call back"
8241074#~ msgstr "Gervel en-dro"
825−
826−#~ msgid ""
827−#~ "Your device is now connected to an external display. Use this screen as a "
828−#~ "touch pad to interact with the mouse."
829−#~ msgstr ""
830−#~ "N'eo ket kevreet ho penveg ouzh un diskwel diavaez. Implijit ar skramm-mañ "
831−#~ "da douch evit ober gant al logodenn."
832−
833−#~ msgid "Re-dock, save your work and close these apps to continue."
834−#~ msgstr ""
835−#~ "Adlugit, enrollit ho labour ha serrit an arloadoù-mañ evit kenderc'hel."
po/bs.po+487−239
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
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,8 +16,8 @@ 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-03-13 05:50+0000\n"
20−"X-Generator: Launchpad (build 17939)\n"
19+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
20+"X-Generator: Launchpad (build 17995)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -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:217
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:182
11698msgid "Yes"
11799msgstr "Da"
118100
119−#: qml/Components/Dialogs.qml:232
101+#: qml/Components/Dialogs.qml:197
120102msgctxt "Title: Power off/Restart dialog"
121103msgid "Power"
122104msgstr "Napajanje"
123105
124−#: qml/Components/Dialogs.qml:233
106+#: qml/Components/Dialogs.qml:198
125107msgid ""
126108"Are you sure you would like\n"
127109"to power off?"
@@ -129,12 +111,12 @@ msgstr ""
129111"Da li ste sigurni da želite\n"
130112"isključiti?"
131113
132−#: qml/Components/Dialogs.qml:235
114+#: qml/Components/Dialogs.qml:200
133115msgctxt "Button: Power off the system"
134116msgid "Power off"
135117msgstr "Isključi"
136118
137−#: qml/Components/Dialogs.qml:244
119+#: qml/Components/Dialogs.qml:209
138120msgctxt "Button: Restart the system"
139121msgid "Restart"
140122msgstr "Restartuj"
@@ -179,42 +161,58 @@ msgstr "Ponovo poveži sada"
179161msgid "Close all"
180162msgstr "Zatvori sve"
181163
182−#: qml/Dash/DashPageHeader.qml:270
164+#: qml/Dash/DashPageHeader.qml:337
183165msgctxt "Button: Open the Ubuntu Store"
184166msgid "Store"
185167msgstr "Trgovina"
186168
187−#: qml/Dash/DashPageHeader.qml:277
169+#: qml/Dash/DashPageHeader.qml:344
188170msgctxt "Button: Start a search in the current dash scope"
189171msgid "Search"
190172msgstr "Pretraživanje"
191173
192−#: qml/Dash/DashPageHeader.qml:287
174+#: qml/Dash/DashPageHeader.qml:354
193175msgctxt "Button: Show the current dash scope settings"
194176msgid "Settings"
195177msgstr "Podešavanja"
196178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198180msgid "Remove from Favorites"
199181msgstr "Ukloni iz Omiljenih"
200182
201−#: qml/Dash/DashPageHeader.qml:294
183+#: qml/Dash/DashPageHeader.qml:361
202184msgid "Add to Favorites"
203185msgstr "Dodaj u Omiljene"
204186
205−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
206−msgid "See less"
207−msgstr "Pogledati manje"
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:579 qml/Dash/GenericScopeView.qml:764
196+msgid "Show less"
197+msgstr ""
208198
209−#: qml/Dash/GenericScopeView.qml:567
210−msgid "See all"
211−msgstr "Pogledati sve"
199+#: qml/Dash/GenericScopeView.qml:579
200+msgid "Show all"
201+msgstr ""
212202
213−#: qml/Dash/GenericScopeView.qml:629
203+#: qml/Dash/GenericScopeView.qml:636
214204msgctxt "Label: Hint for dash search line edit"
215205msgid "Search"
216206msgstr "Pretraži"
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 "Više..."
@@ -282,11 +280,11 @@ msgstr "Ponovi"
282280msgid "Tap to unlock"
283281msgstr "Kucnite za otključavanje"
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 "Izvinite, pogrešna pristupna fraza."
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 "Izvinite, pogrešan pristupni kod."
292290
@@ -315,7 +313,7 @@ msgstr ""
315313msgid "Enter %1"
316314msgstr "Unesite %1"
317315
318−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
316+#: qml/Greeter/NarrowView.qml:117
319317msgid "Enter passphrase"
320318msgstr "Unesite propusnu frazu"
321319
@@ -341,7 +339,7 @@ msgstr "Molim ponovo unesite"
341339msgid "Sorry, incorrect passcode"
342340msgstr "Izvinite, netačan pristupni kod"
343341
344−#: qml/Notifications/NotificationMenuItemFactory.qml:129
342+#: qml/Notifications/NotificationMenuItemFactory.qml:124
345343msgid "Show password"
346344msgstr "Prikaži šifru"
347345
@@ -353,11 +351,11 @@ msgstr "Kucnite da uzvratite poziv..."
353351msgid "Conference"
354352msgstr "Savjetovanje"
355353
356−#: qml/Panel/Indicators/MenuItemFactory.qml:752
354+#: qml/Panel/Indicators/MenuItemFactory.qml:762
357355msgid "Nothing is playing"
358356msgstr "Ništa nije pokrenuto"
359357
360−#: qml/Panel/Indicators/MenuItemFactory.qml:881
358+#: qml/Panel/Indicators/MenuItemFactory.qml:891
361359#, qt-format
362360msgid "%1 hour"
363361msgid_plural "%1 hours"
@@ -365,7 +363,7 @@ msgstr[0] "%1 sat"
365363msgstr[1] "%1 sata"
366364msgstr[2] "%1 sati"
367365
368−#: qml/Panel/Indicators/MenuItemFactory.qml:885
366+#: qml/Panel/Indicators/MenuItemFactory.qml:895
369367#, qt-format
370368msgid "%1 minute"
371369msgid_plural "%1 minutes"
@@ -373,7 +371,7 @@ msgstr[0] "%1 minut"
373371msgstr[1] "%1 minuta"
374372msgstr[2] "%1 minuta"
375373
376−#: qml/Panel/Indicators/MenuItemFactory.qml:890
374+#: qml/Panel/Indicators/MenuItemFactory.qml:900
377375#, qt-format
378376msgid "%1 second"
379377msgid_plural "%1 seconds"
@@ -381,37 +379,37 @@ msgstr[0] "%1 sekunda"
381379msgstr[1] "%1 sekunde"
382380msgstr[2] "%1 sekundi"
383381
384−#: qml/Panel/Indicators/MenuItemFactory.qml:893
382+#: qml/Panel/Indicators/MenuItemFactory.qml:903
385383msgid "0 seconds"
386384msgstr "0 sekundi"
387385
388386#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
389−#: qml/Panel/Indicators/MenuItemFactory.qml:895
387+#: qml/Panel/Indicators/MenuItemFactory.qml:905
390388#, qt-format
391389msgid "%1 remaining"
392390msgstr "%1 preostalo"
393391
394−#: qml/Panel/Indicators/MenuItemFactory.qml:901
392+#: qml/Panel/Indicators/MenuItemFactory.qml:911
395393msgid "In queue…"
396394msgstr "U red..."
397395
398−#: qml/Panel/Indicators/MenuItemFactory.qml:905
396+#: qml/Panel/Indicators/MenuItemFactory.qml:915
399397msgid "Downloading"
400398msgstr "Preuzimanje"
401399
402−#: qml/Panel/Indicators/MenuItemFactory.qml:907
400+#: qml/Panel/Indicators/MenuItemFactory.qml:917
403401msgid "Paused, tap to resume"
404402msgstr "Pauzirano, kucnuti za nastavak"
405403
406−#: qml/Panel/Indicators/MenuItemFactory.qml:909
404+#: qml/Panel/Indicators/MenuItemFactory.qml:919
407405msgid "Canceled"
408406msgstr "Otkazano"
409407
410−#: qml/Panel/Indicators/MenuItemFactory.qml:911
408+#: qml/Panel/Indicators/MenuItemFactory.qml:921
411409msgid "Finished"
412410msgstr "Završeno"
413411
414−#: qml/Panel/Indicators/MenuItemFactory.qml:913
412+#: qml/Panel/Indicators/MenuItemFactory.qml:923
415413msgid "Failed, tap to retry"
416414msgstr "Neuspjelo, kucnuti za ponavljanje"
417415
@@ -431,252 +429,324 @@ msgctxt "Button: Call back on phone"
431429msgid "Call back"
432430msgstr "Uzvrati poziv"
433431
434−#: qml/Tutorial/TutorialBottom.qml:28
435−msgid "Open special menus"
436−msgstr "Otvorite posebne menije"
437−
438−#: qml/Tutorial/TutorialBottom.qml:29
439−msgid "Swipe up from the bottom edge."
440−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 ""
441435
442−#: qml/Tutorial/TutorialBottomFinish.qml:24
443−msgid "This action does different things for different apps"
444−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 ""
445439
446−#: qml/Tutorial/TutorialBottomFinish.qml:25
447−msgid "Tap here to finish."
448−msgstr "Kucnite ovdje za kraj."
440+#: qml/Tutorial/TutorialBottom.qml:80
441+msgid "Swipe up for favorite calculations"
442+msgstr ""
449443
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 "Kucnite ovdje za nastavak."
444+#: qml/Tutorial/TutorialBottom.qml:82
445+msgid "Swipe up for recent calls"
446+msgstr ""
454447
455−#: qml/Tutorial/TutorialLeft.qml:26
456−msgid "Open the launcher"
457−msgstr "Otvorite pokretač"
448+#: qml/Tutorial/TutorialBottom.qml:84
449+msgid "Swipe up to create a message"
450+msgstr ""
458451
459−#: qml/Tutorial/TutorialLeft.qml:27
460−msgid "Short swipe from the left edge."
461−msgstr "Kratko prevlačenje od lijeve ivice."
452+#: qml/Tutorial/TutorialBottom.qml:85
453+msgid "Swipe up to manage the app"
454+msgstr ""
462455
463−#: qml/Tutorial/TutorialLeftFinish.qml:24
464−msgid "These are the shortcuts to favorite apps"
465−msgstr "Ovo su kratice za omiljene aplikacije"
456+#: qml/Tutorial/TutorialLeftLong.qml:47
457+msgid "Long swipe from the left edge to open the Today scope"
458+msgstr ""
466459
467−#: qml/Tutorial/TutorialPage.qml:178
468−msgid "You almost got it!"
469−msgstr "Skoro ste uspjeli!"
460+#: qml/Tutorial/TutorialLeft.qml:47
461+msgid "Swipe from the left edge to open the launcher"
462+msgstr ""
470463
471−#: qml/Tutorial/TutorialPage.qml:195
472−msgid "Try again."
473−msgstr "Pokušajte ponovo."
464+#: qml/Tutorial/TutorialRight.qml:55
465+msgid "Push your mouse against the right edge to view your open apps"
466+msgstr ""
474467
475−#: qml/Tutorial/TutorialRight.qml:31
476−msgid "To view open apps"
477−msgstr "Za pregled pokrenutih aplikacija"
468+#: qml/Tutorial/TutorialRight.qml:56
469+msgid "Short or long swipe from the right edge to view your open apps"
470+msgstr ""
478471
479−#: qml/Tutorial/TutorialRight.qml:32
480−msgid "Long swipe from the right edge."
481−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 ""
482475
483−#: qml/Tutorial/TutorialRight.qml:122
484−msgid "View all your running tasks."
485−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 ""
486479
487−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
488481msgctxt "Button: Go back one page in the Wizard"
489482msgid "Back"
490483msgstr "Nazad"
491484
492485#: qml/Wizard/Pages/10-welcome.qml:27
493−msgid "Hi!"
494−msgstr "Ćao!"
486+msgid "Language"
487+msgstr ""
495488
496−#: qml/Wizard/Pages/10-welcome.qml:44
497−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"
498496msgstr ""
499497
500−#: qml/Wizard/Pages/10-welcome.qml:52
501−msgid "Let’s get started."
502−msgstr "Započnimo"
498+#: qml/Wizard/Pages/30-wifi.qml:29
499+msgid "Connect to Wi‑Fi"
500+msgstr "Povezati na Wi-Fi"
503501
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 "Nastavite"
502+#: qml/Wizard/Pages/30-wifi.qml:130
503+msgid "Connected"
504+msgstr ""
510505
511−#: qml/Wizard/Pages/20-sim.qml:25
512−msgid "Add a SIM card and restart your device"
513−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 ""
514509
515−#: qml/Wizard/Pages/20-sim.qml:59
516−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"
517512msgstr ""
518−"Bez nje, nećete biti u mogućnosti da uspostavite pozive ili koristite "
519−"tekstualne poruke."
520513
521−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
514+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515+#: qml/Wizard/Pages/sim.qml:101
522516msgid "Skip"
523517msgstr "Preskočite"
524518
525−#: qml/Wizard/Pages/30-passwd-type.qml:39
526−msgid "Lock security"
527−msgstr "Sigurnost zaključavanja"
519+#: qml/Wizard/Pages/40-location.qml:27
520+msgid "Location Services"
521+msgstr ""
528522
529−#: qml/Wizard/Pages/30-passwd-type.qml:79
530−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)"
531527msgstr ""
532528
533−#: qml/Wizard/Pages/30-passwd-type.qml:102
534−msgctxt "Label: Type of security method"
535−msgid "Swipe"
536−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 ""
537542
538−#: qml/Wizard/Pages/30-passwd-type.qml:103
539−msgctxt "Label: Description of security method"
540−msgid "No security"
541−msgstr "Bez sigurnosti"
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 ""
542550
543−#: qml/Wizard/Pages/30-passwd-type.qml:105
551+#: qml/Wizard/Pages/50-timezone.qml:29
552+msgid "Time Zone"
553+msgstr ""
554+
555+#: qml/Wizard/Pages/50-timezone.qml:178
556+msgid "Enter your city"
557+msgstr ""
558+
559+#: qml/Wizard/Pages/60-account.qml:24
560+msgid "Personalize Your Device"
561+msgstr ""
562+
563+#: qml/Wizard/Pages/60-account.qml:48
564+msgid "Preferred Name"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/70-passwd-type.qml:39
568+msgid "Lock Screen"
569+msgstr ""
570+
571+#: qml/Wizard/Pages/70-passwd-type.qml:101
544572msgctxt "Label: Type of security method"
545−msgid "Passcode"
546−msgstr "Pristupni kod"
573+msgid "Create new password"
574+msgstr ""
547575
548−#: qml/Wizard/Pages/30-passwd-type.qml:106
549−msgctxt "Label: Description of security method"
550−msgid "4 digits only"
551−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 ""
552580
553−#: qml/Wizard/Pages/30-passwd-type.qml:108
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
554582msgctxt "Label: Type of security method"
555−msgid "Passphrase"
556−msgstr "Pristupna fraza"
583+msgid "No lock code"
584+msgstr ""
557585
558−#: qml/Wizard/Pages/30-passwd-type.qml:109
559−msgctxt "Label: Description of security method"
560−msgid "Numbers and letters"
561−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 ""
562589
563−#: qml/Wizard/Pages/40-wifi.qml:29
564−msgid "Connect to Wi‑Fi"
565−msgstr "Povezati na Wi-Fi"
590+#: qml/Wizard/Pages/75-report-check.qml:26
591+msgid "Help Us Improve"
592+msgstr ""
566593
567−#: qml/Wizard/Pages/40-wifi.qml:168
568−msgid "Available networks…"
569−msgstr "Dostupne mreže..."
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:169
572−msgid "No available networks."
573−msgstr "Nema dostupnih mreža."
598+#: qml/Wizard/Pages/75-report-check.qml:60
599+msgid "Privacy policy"
600+msgstr ""
574601
575−#: qml/Wizard/Pages/50-location.qml:27
576−msgid "Location"
577−msgstr "Lokacija"
602+#: qml/Wizard/Pages/80-finished.qml:89
603+msgid "Welcome to Ubuntu"
604+msgstr ""
578605
579−#: qml/Wizard/Pages/50-location.qml:62
580−msgid "Let the phone detect your location:"
581−msgstr "Dopustite da telefon otkrije Vašu lokaciju:"
606+#: qml/Wizard/Pages/80-finished.qml:104
607+msgid "You are ready to use your device now"
608+msgstr ""
582609
583−#: qml/Wizard/Pages/50-location.qml:69
584−msgid "Using GPS only (less accurate)"
585−msgstr "Samo pomoću GPS (manje precizno)"
610+#: qml/Wizard/Pages/80-finished.qml:124
611+msgid "Get Started"
612+msgstr ""
586613
587−#: qml/Wizard/Pages/50-location.qml:86
588−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
589−msgstr "Pomoću GPS, anonimnog Wi-Fi i podataka mobilne mreže (preporučeno)"
614+#: qml/Wizard/Pages/here-terms.qml:25
615+msgid "Terms & Conditions"
616+msgstr "Uslovi i odredbe"
590617
591−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
592−#: qml/Wizard/Pages/50-location.qml:103
618+#: qml/Wizard/Pages/here-terms.qml:69
619+msgid "Your device uses positioning technologies provided by HERE."
620+msgstr ""
621+
622+#: qml/Wizard/Pages/here-terms.qml:81
593623msgid ""
594−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
595−"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."
596627msgstr ""
597−"Birajući ovu opciju prihvatate za Nokia OVDJE <a href='#'>terms and "
598−"conditions</a>."
599628
600−#: qml/Wizard/Pages/50-location.qml:112
601−msgid "Not at all"
602−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 ""
603634
604−#: qml/Wizard/Pages/50-location.qml:124
605−msgid "You can change your mind later in <b>System Settings</b>."
606−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 ""
607639
608−#: qml/Wizard/Pages/60-reporting.qml:26
609−msgid "Improving your experience"
610−msgstr "Poboljšavajući vaše iskustvo"
640+#: qml/Wizard/Pages/here-terms.qml:107
641+msgid "Service Terms"
642+msgstr ""
611643
612−#: qml/Wizard/Pages/60-reporting.qml:46
613−msgid ""
614−"Your phone is set up to automatically report errors to Canonical and its "
615−"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."
616651msgstr ""
617−"Vaš telefon je podešen da automatski prijavljuje greške Canonical i "
618−"njegovim partnerima, tvorcima operativnog sistema."
619652
620−#: qml/Wizard/Pages/60-reporting.qml:53
621−msgid ""
622−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
623−"Privacy</b>"
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
654+msgctxt "Enter the passcode again"
655+msgid "Please re-enter."
624656msgstr ""
625−"Ovo može biti isključeno u <b>System Settings</b> under <b>Security &amp; "
626−"Privacy</b>"
627657
628−#: qml/Wizard/Pages/80-finished.qml:24
629−msgid "All done"
630−msgstr "Sve urađeno"
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
659+msgid "Lock Screen Passcode"
660+msgstr ""
631661
632−#: qml/Wizard/Pages/80-finished.qml:39
633−msgid "Nice work!"
634−msgstr "Dobro urađeno!"
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
663+msgid "Enter 4 numbers to setup your passcode"
664+msgstr ""
635665
636−#: qml/Wizard/Pages/80-finished.qml:46
637−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"
638669msgstr ""
639670
640−#: qml/Wizard/Pages/80-finished.qml:53
641−msgid "Finish"
642−msgstr "Završiti"
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
672+msgid "Passcode too short"
673+msgstr ""
643674
644−#: qml/Wizard/Pages/here-terms.qml:27
645−msgid "Terms & Conditions"
646−msgstr "Uslovi i odredbe"
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
676+msgid "Passcodes match"
677+msgstr ""
647678
648−#: qml/Wizard/Pages/passwd-confirm.qml:49
649−msgid "Confirm passphrase"
650−msgstr "Potvrditi pristupnu rečenicu"
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
680+msgid "Passcodes do not match"
681+msgstr ""
651682
652−#: qml/Wizard/Pages/passwd-confirm.qml:50
653−msgid "Confirm passcode"
654−msgstr "Potvrdi pristupni kod"
683+#: qml/Wizard/Pages/passcode-set.qml:62
684+msgid "Passcode must be 4 characters long"
685+msgstr ""
686+
687+#: qml/Wizard/Pages/password-set.qml:30
688+msgid "Lock Screen Password"
689+msgstr ""
655690
656−#: qml/Wizard/Pages/passwd-confirm.qml:53
657−#: qml/Wizard/Pages/passwd-confirm.qml:54
658−msgid "Please try again."
659−msgstr "Molimo pokušajte ponovo."
691+#: qml/Wizard/Pages/password-set.qml:61
692+msgid "Enter at least 8 characters"
693+msgstr ""
660694
661−#: qml/Wizard/Pages/passwd-set.qml:61
662−msgid "Choose your passcode"
663−msgstr "Izaberite vaš pristupni kod"
695+#: qml/Wizard/Pages/password-set.qml:73
696+msgid "Choose password"
697+msgstr ""
664698
665−#: qml/Wizard/Pages/passwd-set.qml:68
666−msgid "Passphrase must be 4 characters long"
667−msgstr "Pristupna fraza mora sadržavati 4 slova"
699+#: qml/Wizard/Pages/password-set.qml:103
700+msgid "Confirm password"
701+msgstr ""
668702
669−#. Translators: This is the arrow for "Back" buttons
670−#: qml/Wizard/StackButton.qml:39
671−#, qt-format
672−msgid "〈 %1"
673−msgstr "〈 %1"
703+#: qml/Wizard/Pages/sim.qml:27
704+msgid "No SIM card installed"
705+msgstr ""
674706
675−#. Translators: This is the arrow for "Forward" buttons
676−#: qml/Wizard/StackButton.qml:42
677−#, qt-format
678−msgid "%1 〉"
679−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 ""
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 ""
680750
681751#~ msgid "Top edge"
682752#~ msgstr "Gornja ivica"
@@ -690,23 +760,201 @@ msgstr "%1 〉"
690760#~ msgid "Right edge"
691761#~ msgstr "Desna ivica"
692762
763+#~ msgid "Are you sure you want to shut down?"
764+#~ msgstr "Da li ste sigurni da želite ugasiti?"
765+
766+#~ msgctxt "Button: Shut down the system"
767+#~ msgid "Shut down"
768+#~ msgstr "Gašenje sistema"
769+
770+#~ msgid "See all"
771+#~ msgstr "Pogledati sve"
772+
773+#~ msgid "See less"
774+#~ msgstr "Pogledati manje"
775+
693776#~ msgid "Please re-enter"
694777#~ msgstr "Molimo ponovo unesite"
695778
779+#~ msgid "This action does different things for different apps"
780+#~ msgstr "Ova radnja čini različite stvari za različite aplikacije"
781+
696782#~ msgid "Unlock SIM"
697783#~ msgstr "Otključajte SIM"
698784
699785#~ msgid "Roaming"
700786#~ msgstr "Roaming"
701787
788+#~ msgid "Tap here to continue."
789+#~ msgstr "Kucnite ovdje za nastavak."
790+
791+#~ msgid "These are the shortcuts to favorite apps"
792+#~ msgstr "Ovo su kratice za omiljene aplikacije"
793+
794+#~ msgid "Swipe up from the bottom edge."
795+#~ msgstr "Prevucite od donje ivice."
796+
797+#~ msgid "Open special menus"
798+#~ msgstr "Otvorite posebne menije"
799+
800+#~ msgid "Tap here to finish."
801+#~ msgstr "Kucnite ovdje za kraj."
802+
803+#~ msgid "Long swipe from the right edge."
804+#~ msgstr "Dugo prevlačenje od desne ivice."
805+
806+#~ msgid "View all your running tasks."
807+#~ msgstr "Pogledajte sve pokrenute zadatke."
808+
809+#~ msgid "Hi!"
810+#~ msgstr "Ćao!"
811+
702812#~ msgid "Welcome to your Ubuntu phone."
703813#~ msgstr "Dobrodošli u vaš Ubuntu telefon."
704814
815+#~ msgid "To view open apps"
816+#~ msgstr "Za pregled pokrenutih aplikacija"
817+
818+#~ msgid "Try again."
819+#~ msgstr "Pokušajte ponovo."
820+
821+#~ msgid "You almost got it!"
822+#~ msgstr "Skoro ste uspjeli!"
823+
824+#~ msgid "Short swipe from the left edge."
825+#~ msgstr "Kratko prevlačenje od lijeve ivice."
826+
827+#~ msgid "Open the launcher"
828+#~ msgstr "Otvorite pokretač"
829+
830+#~ msgid "Lock security"
831+#~ msgstr "Sigurnost zaključavanja"
832+
833+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
834+#~ msgstr ""
835+#~ "Bez nje, nećete biti u mogućnosti da uspostavite pozive ili koristite "
836+#~ "tekstualne poruke."
837+
838+#~ msgid "Add a SIM card and restart your device"
839+#~ msgstr "Dodajte SIM karticu i restartujte vaš uređaj"
840+
705841#~ msgid "Please select how you’d like to unlock your phone."
706842#~ msgstr "Molimo izaberite kako biste željeli da otključavate vaš telefon."
707843
844+#~ msgctxt "Label: Description of security method"
845+#~ msgid "No security"
846+#~ msgstr "Bez sigurnosti"
847+
848+#~ msgctxt "Label: Type of security method"
849+#~ msgid "Swipe"
850+#~ msgstr "Prevlačenje"
851+
852+#~ msgctxt "Label: Type of security method"
853+#~ msgid "Passcode"
854+#~ msgstr "Pristupni kod"
855+
856+#~ msgid "Let’s get started."
857+#~ msgstr "Započnimo"
858+
859+#~ msgid "Continue"
860+#~ msgstr "Nastavite"
861+
862+#~ msgctxt "Label: Description of security method"
863+#~ msgid "4 digits only"
864+#~ msgstr "samo 4 cifre"
865+
866+#~ msgid "Let the phone detect your location:"
867+#~ msgstr "Dopustite da telefon otkrije Vašu lokaciju:"
868+
869+#~ msgid "Available networks…"
870+#~ msgstr "Dostupne mreže..."
871+
872+#~ msgid "No available networks."
873+#~ msgstr "Nema dostupnih mreža."
874+
875+#~ msgid "Location"
876+#~ msgstr "Lokacija"
877+
878+#~ msgid "Using GPS only (less accurate)"
879+#~ msgstr "Samo pomoću GPS (manje precizno)"
880+
881+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
882+#~ msgstr "Pomoću GPS, anonimnog Wi-Fi i podataka mobilne mreže (preporučeno)"
883+
884+#~ msgctxt "Label: Description of security method"
885+#~ msgid "Numbers and letters"
886+#~ msgstr "Brojevi i slova"
887+
888+#~ msgid "Improving your experience"
889+#~ msgstr "Poboljšavajući vaše iskustvo"
890+
891+#~ msgid "You can change your mind later in <b>System Settings</b>."
892+#~ msgstr "Možete se predomisliti kasnije u <b>System Settings</b>."
893+
894+#~ msgid ""
895+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
896+#~ "Privacy</b>"
897+#~ msgstr ""
898+#~ "Ovo može biti isključeno u <b>System Settings</b> under <b>Security &amp; "
899+#~ "Privacy</b>"
900+
901+#~ msgid ""
902+#~ "Your phone is set up to automatically report errors to Canonical and its "
903+#~ "partners, the makers of the operating system."
904+#~ msgstr ""
905+#~ "Vaš telefon je podešen da automatski prijavljuje greške Canonical i "
906+#~ "njegovim partnerima, tvorcima operativnog sistema."
907+
908+#~ msgid "Nice work!"
909+#~ msgstr "Dobro urađeno!"
910+
911+#~ msgid "All done"
912+#~ msgstr "Sve urađeno"
913+
914+#~ msgid "Finish"
915+#~ msgstr "Završiti"
916+
917+#~ msgid ""
918+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
919+#~ "conditions</a>."
920+#~ msgstr ""
921+#~ "Birajući ovu opciju prihvatate za Nokia OVDJE <a href='#'>terms and "
922+#~ "conditions</a>."
923+
924+#~ msgid "Not at all"
925+#~ msgstr "Nipošto"
926+
708927#~ msgid "Your phone is now ready to use."
709928#~ msgstr "Vaš telefon je sada spreman za upotrebu."
710929
711−#~ msgid "Re-dock, save your work and close these apps to continue."
712−#~ msgstr "Postavi opet, snimi svoj rad i zatvori ove aplikacije za nastavak."
930+#~ msgid "Confirm passphrase"
931+#~ msgstr "Potvrditi pristupnu rečenicu"
932+
933+#, qt-format
934+#~ msgid "〈 %1"
935+#~ msgstr "〈 %1"
936+
937+#, qt-format
938+#~ msgid "%1 〉"
939+#~ msgstr "%1 〉"
940+
941+#~ msgid "Choose your passcode"
942+#~ msgstr "Izaberite vaš pristupni kod"
943+
944+#~ msgid "Please try again."
945+#~ msgstr "Molimo pokušajte ponovo."
946+
947+#~ msgid "Passphrase must be 4 characters long"
948+#~ msgstr "Pristupna fraza mora sadržavati 4 slova"
949+
950+#~ msgctxt "Label: Type of security method"
951+#~ msgid "Passphrase"
952+#~ msgstr "Pristupna fraza"
953+
954+#~ msgctxt "Title: Reboot/Shut down dialog"
955+#~ msgid "Shut down"
956+#~ msgstr "Ugasi"
957+
958+#~ msgctxt "Button: Reboot the system"
959+#~ msgid "Reboot"
960+#~ msgstr "Ponovo pokreni"
po/ca.po+488−245
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
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,8 +15,8 @@ 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-03-13 05:50+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -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:217
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:182
118100msgid "Yes"
119101msgstr "Sí"
120102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:197
122104msgctxt "Title: Power off/Restart dialog"
123105msgid "Power"
124106msgstr "Energia"
125107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:198
127109msgid ""
128110"Are you sure you would like\n"
129111"to power off?"
@@ -131,12 +113,12 @@ msgstr ""
131113"Segur que voleu\n"
132114"apagar?"
133115
134−#: qml/Components/Dialogs.qml:235
116+#: qml/Components/Dialogs.qml:200
135117msgctxt "Button: Power off the system"
136118msgid "Power off"
137119msgstr "Apaga"
138120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:209
140122msgctxt "Button: Restart the system"
141123msgid "Restart"
142124msgstr "Reinicia"
@@ -179,42 +161,58 @@ msgstr "Torna a connectar"
179161msgid "Close all"
180162msgstr "Tanca-ho tot"
181163
182−#: qml/Dash/DashPageHeader.qml:270
164+#: qml/Dash/DashPageHeader.qml:337
183165msgctxt "Button: Open the Ubuntu Store"
184166msgid "Store"
185167msgstr "Botiga"
186168
187−#: qml/Dash/DashPageHeader.qml:277
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:287
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:294
179+#: qml/Dash/DashPageHeader.qml:361
198180msgid "Remove from Favorites"
199181msgstr "Suprimeix dels preferits"
200182
201−#: qml/Dash/DashPageHeader.qml:294
183+#: qml/Dash/DashPageHeader.qml:361
202184msgid "Add to Favorites"
203185msgstr "Afegeix als preferits"
204186
205−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
206−msgid "See less"
207−msgstr "Mostra'n menys"
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 ""
208194
209−#: qml/Dash/GenericScopeView.qml:567
210−msgid "See all"
211−msgstr "Mostra-ho tot"
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
196+msgid "Show less"
197+msgstr ""
212198
213−#: qml/Dash/GenericScopeView.qml:629
199+#: qml/Dash/GenericScopeView.qml:579
200+msgid "Show all"
201+msgstr ""
202+
203+#: qml/Dash/GenericScopeView.qml:636
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 "Cerques recents"
211+
212+#: qml/Dash/PageHeaderExtraPanel.qml:66
213+msgid "Clear All"
214+msgstr "Neteja-ho tot"
215+
218216#: qml/Dash/Previews/PreviewActionCombo.qml:35
219217msgid "More..."
220218msgstr "Més..."
@@ -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
@@ -343,7 +341,7 @@ msgstr "Torneu-ho a introduir"
343341msgid "Sorry, incorrect passcode"
344342msgstr "El codi d'accés no és correcte"
345343
346−#: qml/Notifications/NotificationMenuItemFactory.qml:129
344+#: qml/Notifications/NotificationMenuItemFactory.qml:124
347345msgid "Show password"
348346msgstr "Mostra la contrasenya"
349347
@@ -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:752
356+#: qml/Panel/Indicators/MenuItemFactory.qml:762
359357msgid "Nothing is playing"
360358msgstr "No s'està reproduint res"
361359
362−#: qml/Panel/Indicators/MenuItemFactory.qml:881
360+#: qml/Panel/Indicators/MenuItemFactory.qml:891
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:885
367+#: qml/Panel/Indicators/MenuItemFactory.qml:895
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:890
374+#: qml/Panel/Indicators/MenuItemFactory.qml:900
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:893
381+#: qml/Panel/Indicators/MenuItemFactory.qml:903
384382msgid "0 seconds"
385383msgstr "0 segons"
386384
387385#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
388−#: qml/Panel/Indicators/MenuItemFactory.qml:895
386+#: qml/Panel/Indicators/MenuItemFactory.qml:905
389387#, qt-format
390388msgid "%1 remaining"
391389msgstr "Resta %1"
392390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:901
391+#: qml/Panel/Indicators/MenuItemFactory.qml:911
394392msgid "In queue…"
395393msgstr "A la cua..."
396394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:905
395+#: qml/Panel/Indicators/MenuItemFactory.qml:915
398396msgid "Downloading"
399397msgstr "S'està baixant"
400398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:907
399+#: qml/Panel/Indicators/MenuItemFactory.qml:917
402400msgid "Paused, tap to resume"
403401msgstr "En pausa, feu un toc per continuar"
404402
405−#: qml/Panel/Indicators/MenuItemFactory.qml:909
403+#: qml/Panel/Indicators/MenuItemFactory.qml:919
406404msgid "Canceled"
407405msgstr "S'ha cancel·lat"
408406
409−#: qml/Panel/Indicators/MenuItemFactory.qml:911
407+#: qml/Panel/Indicators/MenuItemFactory.qml:921
410408msgid "Finished"
411409msgstr "S'ha finalitzat"
412410
413−#: qml/Panel/Indicators/MenuItemFactory.qml:913
411+#: qml/Panel/Indicators/MenuItemFactory.qml:923
414412msgid "Failed, tap to retry"
415413msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
416414
@@ -430,253 +428,324 @@ msgctxt "Button: Call back on phone"
430428msgid "Call back"
431429msgstr "Retorna la trucada"
432430
433−#: qml/Tutorial/TutorialBottom.qml:28
434−msgid "Open special menus"
435−msgstr "Obre els menús especials"
436−
437−#: qml/Tutorial/TutorialBottom.qml:29
438−msgid "Swipe up from the bottom edge."
439−msgstr "Llisqueu el dit des de la vora inferior."
431+#: qml/Stages/SideStage.qml:76
432+msgid "Drag using 3 fingers any application from one window to the other"
433+msgstr ""
440434
441−#: qml/Tutorial/TutorialBottomFinish.qml:24
442−msgid "This action does different things for different apps"
443−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 ""
444438
445−#: qml/Tutorial/TutorialBottomFinish.qml:25
446−msgid "Tap here to finish."
447−msgstr "Feu un toc per finalitzar."
439+#: qml/Tutorial/TutorialBottom.qml:80
440+msgid "Swipe up for favorite calculations"
441+msgstr ""
448442
449−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
450−#: qml/Tutorial/TutorialRight.qml:144
451−msgid "Tap here to continue."
452−msgstr "Feu un toc per continuar."
443+#: qml/Tutorial/TutorialBottom.qml:82
444+msgid "Swipe up for recent calls"
445+msgstr ""
453446
454−#: qml/Tutorial/TutorialLeft.qml:26
455−msgid "Open the launcher"
456−msgstr "Obre el llançador"
447+#: qml/Tutorial/TutorialBottom.qml:84
448+msgid "Swipe up to create a message"
449+msgstr ""
457450
458−#: qml/Tutorial/TutorialLeft.qml:27
459−msgid "Short swipe from the left edge."
460−msgstr "Lliscament curt des de la vora esquerra."
451+#: qml/Tutorial/TutorialBottom.qml:85
452+msgid "Swipe up to manage the app"
453+msgstr ""
461454
462−#: qml/Tutorial/TutorialLeftFinish.qml:24
463−msgid "These are the shortcuts to favorite apps"
464−msgstr "Aquestes són les dreceres a les aplicacions preferides"
455+#: qml/Tutorial/TutorialLeftLong.qml:47
456+msgid "Long swipe from the left edge to open the Today scope"
457+msgstr ""
465458
466−#: qml/Tutorial/TutorialPage.qml:178
467−msgid "You almost got it!"
468−msgstr "Ja gairebé ho teniu!"
459+#: qml/Tutorial/TutorialLeft.qml:47
460+msgid "Swipe from the left edge to open the launcher"
461+msgstr ""
469462
470−#: qml/Tutorial/TutorialPage.qml:195
471−msgid "Try again."
472−msgstr "Torneu-ho a provar."
463+#: qml/Tutorial/TutorialRight.qml:55
464+msgid "Push your mouse against the right edge to view your open apps"
465+msgstr ""
473466
474−#: qml/Tutorial/TutorialRight.qml:31
475−msgid "To view open apps"
476−msgstr "Per veure les aplicacions obertes"
467+#: qml/Tutorial/TutorialRight.qml:56
468+msgid "Short or long swipe from the right edge to view your open apps"
469+msgstr ""
477470
478−#: qml/Tutorial/TutorialRight.qml:32
479−msgid "Long swipe from the right edge."
480−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 ""
481474
482−#: qml/Tutorial/TutorialRight.qml:122
483−msgid "View all your running tasks."
484−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 ""
485478
486−#: qml/Wizard/Page.qml:89
479+#: qml/Wizard/Page.qml:54
487480msgctxt "Button: Go back one page in the Wizard"
488481msgid "Back"
489482msgstr "Enrere"
490483
491484#: qml/Wizard/Pages/10-welcome.qml:27
492−msgid "Hi!"
493−msgstr "Hola!"
485+msgid "Language"
486+msgstr ""
494487
495−#: qml/Wizard/Pages/10-welcome.qml:44
496−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"
497495msgstr ""
498496
499−#: qml/Wizard/Pages/10-welcome.qml:52
500−msgid "Let’s get started."
501−msgstr "Comencem."
497+#: qml/Wizard/Pages/30-wifi.qml:29
498+msgid "Connect to Wi‑Fi"
499+msgstr "Connecta't a la Wi-Fi"
502500
503−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
504−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
505−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
506−#: qml/Wizard/Pages/passwd-set.qml:90
507−msgid "Continue"
508−msgstr "Continua"
501+#: qml/Wizard/Pages/30-wifi.qml:130
502+msgid "Connected"
503+msgstr ""
509504
510−#: qml/Wizard/Pages/20-sim.qml:25
511−msgid "Add a SIM card and restart your device"
512−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 ""
513508
514−#: qml/Wizard/Pages/20-sim.qml:59
515−msgid "Without it, you won’t be able to make calls or use text messaging."
516−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 ""
517512
518−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
513+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
514+#: qml/Wizard/Pages/sim.qml:101
519515msgid "Skip"
520516msgstr "Omet"
521517
522−#: qml/Wizard/Pages/30-passwd-type.qml:39
523−msgid "Lock security"
524−msgstr "Seguretat del bloqueig"
518+#: qml/Wizard/Pages/40-location.qml:27
519+msgid "Location Services"
520+msgstr ""
525521
526−#: qml/Wizard/Pages/30-passwd-type.qml:79
527−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)"
528526msgstr ""
529527
530−#: qml/Wizard/Pages/30-passwd-type.qml:102
531−msgctxt "Label: Type of security method"
532−msgid "Swipe"
533−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 ""
534532
535−#: qml/Wizard/Pages/30-passwd-type.qml:103
536−msgctxt "Label: Description of security method"
537−msgid "No security"
538−msgstr "Sense seguretat"
533+#: qml/Wizard/Pages/40-location.qml:106
534+msgctxt "part of: Nokia HERE terms and conditions"
535+msgid "terms and conditions"
536+msgstr ""
539537
540−#: qml/Wizard/Pages/30-passwd-type.qml:105
538+#: qml/Wizard/Pages/40-location.qml:160
539+msgid "GPS only"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/40-location.qml:214
543+msgid "Don't use my location"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/40-location.qml:260
547+msgid "You can change it later in System Settings."
548+msgstr ""
549+
550+#: qml/Wizard/Pages/50-timezone.qml:29
551+msgid "Time Zone"
552+msgstr ""
553+
554+#: qml/Wizard/Pages/50-timezone.qml:178
555+msgid "Enter your city"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/60-account.qml:24
559+msgid "Personalize Your Device"
560+msgstr ""
561+
562+#: qml/Wizard/Pages/60-account.qml:48
563+msgid "Preferred Name"
564+msgstr ""
565+
566+#: qml/Wizard/Pages/70-passwd-type.qml:39
567+msgid "Lock Screen"
568+msgstr ""
569+
570+#: qml/Wizard/Pages/70-passwd-type.qml:101
541571msgctxt "Label: Type of security method"
542−msgid "Passcode"
543−msgstr "Codi d'accés"
572+msgid "Create new password"
573+msgstr ""
544574
545−#: qml/Wizard/Pages/30-passwd-type.qml:106
546−msgctxt "Label: Description of security method"
547−msgid "4 digits only"
548−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 ""
549579
550−#: qml/Wizard/Pages/30-passwd-type.qml:108
580+#: qml/Wizard/Pages/70-passwd-type.qml:105
551581msgctxt "Label: Type of security method"
552−msgid "Passphrase"
553−msgstr "Contrasenya"
582+msgid "No lock code"
583+msgstr ""
554584
555−#: qml/Wizard/Pages/30-passwd-type.qml:109
556−msgctxt "Label: Description of security method"
557−msgid "Numbers and letters"
558−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 ""
559588
560−#: qml/Wizard/Pages/40-wifi.qml:29
561−msgid "Connect to Wi‑Fi"
562−msgstr "Connecta't a la Wi-Fi"
589+#: qml/Wizard/Pages/75-report-check.qml:26
590+msgid "Help Us Improve"
591+msgstr ""
563592
564−#: qml/Wizard/Pages/40-wifi.qml:168
565−msgid "Available networks…"
566−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 ""
567596
568−#: qml/Wizard/Pages/40-wifi.qml:169
569−msgid "No available networks."
570−msgstr "No hi ha xarxes disponibles"
597+#: qml/Wizard/Pages/75-report-check.qml:60
598+msgid "Privacy policy"
599+msgstr ""
571600
572−#: qml/Wizard/Pages/50-location.qml:27
573−msgid "Location"
574−msgstr "Ubicació"
601+#: qml/Wizard/Pages/80-finished.qml:89
602+msgid "Welcome to Ubuntu"
603+msgstr ""
575604
576−#: qml/Wizard/Pages/50-location.qml:62
577−msgid "Let the phone detect your location:"
578−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 ""
579608
580−#: qml/Wizard/Pages/50-location.qml:69
581−msgid "Using GPS only (less accurate)"
582−msgstr "Utilitza només el GPS (menys precís)"
609+#: qml/Wizard/Pages/80-finished.qml:124
610+msgid "Get Started"
611+msgstr ""
583612
584−#: qml/Wizard/Pages/50-location.qml:86
585−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."
586619msgstr ""
587−"Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
588−"(recomanat)"
589620
590−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
591−#: qml/Wizard/Pages/50-location.qml:103
621+#: qml/Wizard/Pages/here-terms.qml:81
592622msgid ""
593−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
594−"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."
595626msgstr ""
596−"Si seleccioneu aquesta opció, accepteu <a href='#'>les condicions generals "
597−"del servei Nokia HERE</a>."
598627
599−#: qml/Wizard/Pages/50-location.qml:112
600−msgid "Not at all"
601−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 ""
602633
603−#: qml/Wizard/Pages/50-location.qml:124
604−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."
605637msgstr ""
606−"Podeu canviar-ho més endavant a l'aplicació <b>Paràmetres del sistema</b>"
607638
608−#: qml/Wizard/Pages/60-reporting.qml:26
609−msgid "Improving your experience"
610−msgstr "Millora de l'experiència"
639+#: qml/Wizard/Pages/here-terms.qml:107
640+msgid "Service Terms"
641+msgstr ""
611642
612−#: qml/Wizard/Pages/60-reporting.qml:46
613−msgid ""
614−"Your phone is set up to automatically report errors to Canonical and its "
615−"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."
616650msgstr ""
617−"Aquest telèfon està configurat per enviar errors de manera automàtica a "
618−"Canonical i associats, els creadors del sistema operatiu."
619651
620−#: qml/Wizard/Pages/60-reporting.qml:53
621−msgid ""
622−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
623−"Privacy</b>"
652+#: qml/Wizard/Pages/passcode-confirm.qml:45
653+msgctxt "Enter the passcode again"
654+msgid "Please re-enter."
624655msgstr ""
625−"Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
626−"<b>Seguretat i privadesa</b>"
627656
628−#: qml/Wizard/Pages/80-finished.qml:24
629−msgid "All done"
630−msgstr "Tot fet"
657+#: qml/Wizard/Pages/passcode-desktop.qml:30
658+msgid "Lock Screen Passcode"
659+msgstr ""
631660
632−#: qml/Wizard/Pages/80-finished.qml:39
633−msgid "Nice work!"
634−msgstr "Bona feina!"
661+#: qml/Wizard/Pages/passcode-desktop.qml:56
662+msgid "Enter 4 numbers to setup your passcode"
663+msgstr ""
635664
636−#: qml/Wizard/Pages/80-finished.qml:46
637−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"
638668msgstr ""
639669
640−#: qml/Wizard/Pages/80-finished.qml:53
641−msgid "Finish"
642−msgstr "Finalitza"
670+#: qml/Wizard/Pages/passcode-desktop.qml:105
671+msgid "Passcode too short"
672+msgstr ""
643673
644−#: qml/Wizard/Pages/here-terms.qml:27
645−msgid "Terms & Conditions"
646−msgstr "Condicions generals"
674+#: qml/Wizard/Pages/passcode-desktop.qml:107
675+msgid "Passcodes match"
676+msgstr ""
647677
648−#: qml/Wizard/Pages/passwd-confirm.qml:49
649−msgid "Confirm passphrase"
650−msgstr "Confirmeu la contrasenya"
678+#: qml/Wizard/Pages/passcode-desktop.qml:109
679+msgid "Passcodes do not match"
680+msgstr ""
651681
652−#: qml/Wizard/Pages/passwd-confirm.qml:50
653−msgid "Confirm passcode"
654−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 ""
655685
656−#: qml/Wizard/Pages/passwd-confirm.qml:53
657−#: qml/Wizard/Pages/passwd-confirm.qml:54
658−msgid "Please try again."
659−msgstr "Torneu-ho a intentar."
686+#: qml/Wizard/Pages/password-set.qml:30
687+msgid "Lock Screen Password"
688+msgstr ""
660689
661−#: qml/Wizard/Pages/passwd-set.qml:61
662−msgid "Choose your passcode"
663−msgstr "Trieu el codi d'accés"
690+#: qml/Wizard/Pages/password-set.qml:61
691+msgid "Enter at least 8 characters"
692+msgstr ""
664693
665−#: qml/Wizard/Pages/passwd-set.qml:68
666−msgid "Passphrase must be 4 characters long"
667−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 ""
668697
669−#. Translators: This is the arrow for "Back" buttons
670−#: qml/Wizard/StackButton.qml:39
671−#, qt-format
672−msgid "〈 %1"
673−msgstr "〈 %1"
698+#: qml/Wizard/Pages/password-set.qml:103
699+msgid "Confirm password"
700+msgstr ""
674701
675−#. Translators: This is the arrow for "Forward" buttons
676−#: qml/Wizard/StackButton.qml:42
677−#, qt-format
678−msgid "%1 〉"
679−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 ""
680749
681750#~ msgid "Confirm"
682751#~ msgstr "Confirma"
@@ -732,6 +801,9 @@ msgstr "%1 〉"
732801#~ msgstr ""
733802#~ "Proveu de lliscar el dit des de la vora dreta per desblocar el telèfon"
734803
804+#~ msgid "See less"
805+#~ msgstr "Mostra'n menys"
806+
735807#~ msgid ""
736808#~ "You have now mastered the edge gestures and can start using the "
737809#~ "phone<br><br>Tap on the screen to start"
@@ -739,6 +811,9 @@ msgstr "%1 〉"
739811#~ "Ja heu après com utilitzar els gestos de les vores per fer servir el "
740812#~ "telèfon<br><br>Feu un toc a la pantalla per començar"
741813
814+#~ msgid "See all"
815+#~ msgstr "Mostra-ho tot"
816+
742817#~ msgid "Unlock SIM"
743818#~ msgstr "Desbloca la SIM"
744819
@@ -772,27 +847,200 @@ msgstr "%1 〉"
772847#~ msgid "Power off"
773848#~ msgstr "Apaga"
774849
850+#~ msgid "Are you sure you want to shut down?"
851+#~ msgstr "Segur que voleu apagar?"
852+
775853#~ msgid "Shut down"
776854#~ msgstr "Apaga"
777855
778−#~ msgid "Restart"
779−#~ msgstr "Reinicia"
780−
781856#~ msgid "Please re-enter"
782857#~ msgstr "Torneu-ho a introduir"
783858
784859#~ msgid "Manage Scopes"
785860#~ msgstr "Gestioneu les lents"
786861
862+#~ msgid "Add a SIM card and restart your device"
863+#~ msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
864+
865+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
866+#~ msgstr "Sense ella, no podreu fer trucades o enviar missatges de text."
867+
868+#~ msgid "Hi!"
869+#~ msgstr "Hola!"
870+
787871#~ msgid "Welcome to your Ubuntu phone."
788872#~ msgstr "Us donem la benvinguda al vostre telèfon Ubuntu."
789873
874+#~ msgid "Let’s get started."
875+#~ msgstr "Comencem."
876+
877+#~ msgid "Continue"
878+#~ msgstr "Continua"
879+
880+#~ msgid "Lock security"
881+#~ msgstr "Seguretat del bloqueig"
882+
790883#~ msgid "Please select how you’d like to unlock your phone."
791884#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
792885
886+#~ msgid "Improving your experience"
887+#~ msgstr "Millora de l'experiència"
888+
889+#~ msgid "Available networks…"
890+#~ msgstr "Xarxes disponibles..."
891+
892+#~ msgid "No available networks."
893+#~ msgstr "No hi ha xarxes disponibles"
894+
895+#~ msgid "Location"
896+#~ msgstr "Ubicació"
897+
898+#~ msgid ""
899+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
900+#~ "Privacy</b>"
901+#~ msgstr ""
902+#~ "Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
903+#~ "<b>Seguretat i privadesa</b>"
904+
905+#~ msgid ""
906+#~ "Your phone is set up to automatically report errors to Canonical and its "
907+#~ "partners, the makers of the operating system."
908+#~ msgstr ""
909+#~ "Aquest telèfon està configurat per enviar errors de manera automàtica a "
910+#~ "Canonical i associats, els creadors del sistema operatiu."
911+
912+#~ msgid "Finish"
913+#~ msgstr "Finalitza"
914+
793915#~ msgid "Your phone is now ready to use."
794916#~ msgstr "Ja podeu utilitzar el vostre telèfon."
795917
918+#~ msgid "Confirm passphrase"
919+#~ msgstr "Confirmeu la contrasenya"
920+
921+#~ msgid "Please try again."
922+#~ msgstr "Torneu-ho a intentar."
923+
924+#~ msgid "Nice work!"
925+#~ msgstr "Bona feina!"
926+
927+#~ msgid "All done"
928+#~ msgstr "Tot fet"
929+
930+#~ msgid "Choose your passcode"
931+#~ msgstr "Trieu el codi d'accés"
932+
933+#, qt-format
934+#~ msgid "%1 〉"
935+#~ msgstr "%1 〉"
936+
937+#~ msgid "Passphrase must be 4 characters long"
938+#~ msgstr "La contrasenya ha de tenir 4 caràcters com a mínim"
939+
940+#, qt-format
941+#~ msgid "〈 %1"
942+#~ msgstr "〈 %1"
943+
944+#~ msgid "Let the phone detect your location:"
945+#~ msgstr "Fes que el telèfon detecti la meva ubicació:"
946+
947+#~ msgid "Using GPS only (less accurate)"
948+#~ msgstr "Utilitza només el GPS (menys precís)"
949+
950+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
951+#~ msgstr ""
952+#~ "Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
953+#~ "(recomanat)"
954+
955+#~ msgid "You can change your mind later in <b>System Settings</b>."
956+#~ msgstr ""
957+#~ "Podeu canviar-ho més endavant a l'aplicació <b>Paràmetres del sistema</b>"
958+
959+#~ msgid ""
960+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
961+#~ "conditions</a>."
962+#~ msgstr ""
963+#~ "Si seleccioneu aquesta opció, accepteu <a href='#'>les condicions generals "
964+#~ "del servei Nokia HERE</a>."
965+
966+#~ msgid "Not at all"
967+#~ msgstr "No"
968+
969+#~ msgid "You almost got it!"
970+#~ msgstr "Ja gairebé ho teniu!"
971+
972+#~ msgid "Open the launcher"
973+#~ msgstr "Obre el llançador"
974+
975+#~ msgid "Tap here to continue."
976+#~ msgstr "Feu un toc per continuar."
977+
978+#~ msgid "Open special menus"
979+#~ msgstr "Obre els menús especials"
980+
981+#~ msgid "To view open apps"
982+#~ msgstr "Per veure les aplicacions obertes"
983+
984+#~ msgid "Long swipe from the right edge."
985+#~ msgstr "Lliscament llarg des de la vora dreta."
986+
987+#~ msgid "View all your running tasks."
988+#~ msgstr "Mostra totes les tasques en execució."
989+
990+#~ msgid "This action does different things for different apps"
991+#~ msgstr "Aquesta acció fa coses diferents depenent de l'aplicació"
992+
993+#~ msgid "Try again."
994+#~ msgstr "Torneu-ho a provar."
995+
996+#~ msgid "Short swipe from the left edge."
997+#~ msgstr "Lliscament curt des de la vora esquerra."
998+
999+#~ msgid "These are the shortcuts to favorite apps"
1000+#~ msgstr "Aquestes són les dreceres a les aplicacions preferides"
1001+
1002+#~ msgid "Swipe up from the bottom edge."
1003+#~ msgstr "Llisqueu el dit des de la vora inferior."
1004+
1005+#~ msgid "Tap here to finish."
1006+#~ msgstr "Feu un toc per finalitzar."
1007+
1008+#~ msgctxt "Label: Description of security method"
1009+#~ msgid "4 digits only"
1010+#~ msgstr "Només 4 dígits"
1011+
1012+#~ msgctxt "Button: Shut down the system"
1013+#~ msgid "Shut down"
1014+#~ msgstr "Apaga"
1015+
1016+#~ msgctxt "Title: Reboot/Shut down dialog"
1017+#~ msgid "Shut down"
1018+#~ msgstr "Apaga"
1019+
1020+#~ msgctxt "Button: Reboot the system"
1021+#~ msgid "Reboot"
1022+#~ msgstr "Reinicia"
1023+
1024+#~ msgctxt "Label: Type of security method"
1025+#~ msgid "Swipe"
1026+#~ msgstr "Lliscament amb el dit"
1027+
1028+#~ msgctxt "Label: Type of security method"
1029+#~ msgid "Passcode"
1030+#~ msgstr "Codi d'accés"
1031+
1032+#~ msgctxt "Label: Description of security method"
1033+#~ msgid "No security"
1034+#~ msgstr "Sense seguretat"
1035+
1036+#~ msgctxt "Label: Type of security method"
1037+#~ msgid "Passphrase"
1038+#~ msgstr "Contrasenya"
1039+
1040+#~ msgctxt "Label: Description of security method"
1041+#~ msgid "Numbers and letters"
1042+#~ msgstr "Números i lletres"
1043+
7961044#~ msgid "Yesterday %l:%M %p"
7971045#~ msgstr "Ahir %l.%M %p"
7981046
@@ -825,8 +1073,3 @@ msgstr "%1 〉"
8251073
8261074#~ msgid "Call back"
8271075#~ msgstr "Retorna la trucada"
828−
829−#~ msgid "Re-dock, save your work and close these apps to continue."
830−#~ msgstr ""
831−#~ "Torneu a connectar, deseu la feina i tanqueu aquestes aplicacions per "
832−#~ "continuar."
po/ca@valencia.po+395−222
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
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,8 +15,8 @@ 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-03-13 05:51+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:55+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -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:217
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:182
118100msgid "Yes"
119101msgstr "Sí"
120102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:197
122104msgctxt "Title: Power off/Restart dialog"
123105msgid "Power"
124106msgstr ""
125107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:198
127109msgid ""
128110"Are you sure you would like\n"
129111"to power off?"
@@ -131,12 +113,12 @@ msgstr ""
131113"Segur que voleu\n"
132114"apagar?"
133115
134−#: qml/Components/Dialogs.qml:235
116+#: qml/Components/Dialogs.qml:200
135117msgctxt "Button: Power off the system"
136118msgid "Power off"
137119msgstr ""
138120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:209
140122msgctxt "Button: Restart the system"
141123msgid "Restart"
142124msgstr ""
@@ -179,42 +161,58 @@ msgstr ""
179161msgid "Close all"
180162msgstr ""
181163
182−#: qml/Dash/DashPageHeader.qml:270
164+#: qml/Dash/DashPageHeader.qml:337
183165msgctxt "Button: Open the Ubuntu Store"
184166msgid "Store"
185167msgstr ""
186168
187−#: qml/Dash/DashPageHeader.qml:277
169+#: qml/Dash/DashPageHeader.qml:344
188170msgctxt "Button: Start a search in the current dash scope"
189171msgid "Search"
190172msgstr ""
191173
192−#: qml/Dash/DashPageHeader.qml:287
174+#: qml/Dash/DashPageHeader.qml:354
193175msgctxt "Button: Show the current dash scope settings"
194176msgid "Settings"
195177msgstr ""
196178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198180msgid "Remove from Favorites"
199181msgstr "Suprimeix dels preferits"
200182
201−#: qml/Dash/DashPageHeader.qml:294
183+#: qml/Dash/DashPageHeader.qml:361
202184msgid "Add to Favorites"
203185msgstr "Afig als preferits"
204186
205−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
206−msgid "See less"
207−msgstr "Mostra'n menys"
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:579 qml/Dash/GenericScopeView.qml:764
196+msgid "Show less"
197+msgstr ""
208198
209−#: qml/Dash/GenericScopeView.qml:567
210−msgid "See all"
211−msgstr "Mostra-ho tot"
199+#: qml/Dash/GenericScopeView.qml:579
200+msgid "Show all"
201+msgstr ""
212202
213−#: qml/Dash/GenericScopeView.qml:629
203+#: qml/Dash/GenericScopeView.qml:636
214204msgctxt "Label: Hint for dash search line edit"
215205msgid "Search"
216206msgstr ""
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..."
@@ -282,11 +280,11 @@ msgstr ""
282280msgid "Tap to unlock"
283281msgstr ""
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
@@ -343,7 +341,7 @@ msgstr ""
343341msgid "Sorry, incorrect passcode"
344342msgstr "El codi d'accés no és correcte"
345343
346−#: qml/Notifications/NotificationMenuItemFactory.qml:129
344+#: qml/Notifications/NotificationMenuItemFactory.qml:124
347345msgid "Show password"
348346msgstr "Mostra la contrasenya"
349347
@@ -355,62 +353,62 @@ msgstr "Feu un toc per tornar a la cridada..."
355353msgid "Conference"
356354msgstr "Conferència"
357355
358−#: qml/Panel/Indicators/MenuItemFactory.qml:752
356+#: qml/Panel/Indicators/MenuItemFactory.qml:762
359357msgid "Nothing is playing"
360358msgstr "No s'està reproduint res"
361359
362−#: qml/Panel/Indicators/MenuItemFactory.qml:881
360+#: qml/Panel/Indicators/MenuItemFactory.qml:891
363361#, qt-format
364362msgid "%1 hour"
365363msgid_plural "%1 hours"
366364msgstr[0] ""
367365msgstr[1] ""
368366
369−#: qml/Panel/Indicators/MenuItemFactory.qml:885
367+#: qml/Panel/Indicators/MenuItemFactory.qml:895
370368#, qt-format
371369msgid "%1 minute"
372370msgid_plural "%1 minutes"
373371msgstr[0] ""
374372msgstr[1] ""
375373
376−#: qml/Panel/Indicators/MenuItemFactory.qml:890
374+#: qml/Panel/Indicators/MenuItemFactory.qml:900
377375#, qt-format
378376msgid "%1 second"
379377msgid_plural "%1 seconds"
380378msgstr[0] ""
381379msgstr[1] ""
382380
383−#: qml/Panel/Indicators/MenuItemFactory.qml:893
381+#: qml/Panel/Indicators/MenuItemFactory.qml:903
384382msgid "0 seconds"
385383msgstr ""
386384
387385#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
388−#: qml/Panel/Indicators/MenuItemFactory.qml:895
386+#: qml/Panel/Indicators/MenuItemFactory.qml:905
389387#, qt-format
390388msgid "%1 remaining"
391389msgstr ""
392390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:901
391+#: qml/Panel/Indicators/MenuItemFactory.qml:911
394392msgid "In queue…"
395393msgstr "A la cua..."
396394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:905
395+#: qml/Panel/Indicators/MenuItemFactory.qml:915
398396msgid "Downloading"
399397msgstr "S'està baixant"
400398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:907
399+#: qml/Panel/Indicators/MenuItemFactory.qml:917
402400msgid "Paused, tap to resume"
403401msgstr "En pausa, feu un toc per continuar"
404402
405−#: qml/Panel/Indicators/MenuItemFactory.qml:909
403+#: qml/Panel/Indicators/MenuItemFactory.qml:919
406404msgid "Canceled"
407405msgstr "S'ha cancel·lat"
408406
409−#: qml/Panel/Indicators/MenuItemFactory.qml:911
407+#: qml/Panel/Indicators/MenuItemFactory.qml:921
410408msgid "Finished"
411409msgstr "S'ha finalitzat"
412410
413−#: qml/Panel/Indicators/MenuItemFactory.qml:913
411+#: qml/Panel/Indicators/MenuItemFactory.qml:923
414412msgid "Failed, tap to retry"
415413msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
416414
@@ -430,253 +428,324 @@ msgctxt "Button: Call back on phone"
430428msgid "Call back"
431429msgstr ""
432430
433−#: qml/Tutorial/TutorialBottom.qml:28
434−msgid "Open special menus"
435−msgstr ""
436−
437−#: qml/Tutorial/TutorialBottom.qml:29
438−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"
439433msgstr ""
440434
441−#: qml/Tutorial/TutorialBottomFinish.qml:24
442−msgid "This action does different things for different apps"
435+#: qml/Tutorial/TutorialBottom.qml:78
436+msgid "Swipe up to add a contact"
443437msgstr ""
444438
445−#: qml/Tutorial/TutorialBottomFinish.qml:25
446−msgid "Tap here to finish."
439+#: qml/Tutorial/TutorialBottom.qml:80
440+msgid "Swipe up for favorite calculations"
447441msgstr ""
448442
449−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
450−#: qml/Tutorial/TutorialRight.qml:144
451−msgid "Tap here to continue."
443+#: qml/Tutorial/TutorialBottom.qml:82
444+msgid "Swipe up for recent calls"
452445msgstr ""
453446
454−#: qml/Tutorial/TutorialLeft.qml:26
455−msgid "Open the launcher"
447+#: qml/Tutorial/TutorialBottom.qml:84
448+msgid "Swipe up to create a message"
456449msgstr ""
457450
458−#: qml/Tutorial/TutorialLeft.qml:27
459−msgid "Short swipe from the left edge."
451+#: qml/Tutorial/TutorialBottom.qml:85
452+msgid "Swipe up to manage the app"
460453msgstr ""
461454
462−#: qml/Tutorial/TutorialLeftFinish.qml:24
463−msgid "These are the shortcuts to favorite apps"
455+#: qml/Tutorial/TutorialLeftLong.qml:47
456+msgid "Long swipe from the left edge to open the Today scope"
464457msgstr ""
465458
466−#: qml/Tutorial/TutorialPage.qml:178
467−msgid "You almost got it!"
459+#: qml/Tutorial/TutorialLeft.qml:47
460+msgid "Swipe from the left edge to open the launcher"
468461msgstr ""
469462
470−#: qml/Tutorial/TutorialPage.qml:195
471−msgid "Try again."
463+#: qml/Tutorial/TutorialRight.qml:55
464+msgid "Push your mouse against the right edge to view your open apps"
472465msgstr ""
473466
474−#: qml/Tutorial/TutorialRight.qml:31
475−msgid "To view open apps"
467+#: qml/Tutorial/TutorialRight.qml:56
468+msgid "Short or long swipe from the right edge to view your open apps"
476469msgstr ""
477470
478−#: qml/Tutorial/TutorialRight.qml:32
479−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"
480473msgstr ""
481474
482−#: qml/Tutorial/TutorialRight.qml:122
483−msgid "View all your running tasks."
475+#: qml/Tutorial/TutorialTop.qml:54
476+msgid "Swipe from the top edge to open the notification bar"
484477msgstr ""
485478
486−#: qml/Wizard/Page.qml:89
479+#: qml/Wizard/Page.qml:54
487480msgctxt "Button: Go back one page in the Wizard"
488481msgid "Back"
489482msgstr ""
490483
491484#: qml/Wizard/Pages/10-welcome.qml:27
492−msgid "Hi!"
493−msgstr "Hola!"
485+msgid "Language"
486+msgstr ""
494487
495−#: qml/Wizard/Pages/10-welcome.qml:44
496−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"
497495msgstr ""
498496
499−#: qml/Wizard/Pages/10-welcome.qml:52
500−msgid "Let’s get started."
501−msgstr "Comencem."
497+#: qml/Wizard/Pages/30-wifi.qml:29
498+msgid "Connect to Wi‑Fi"
499+msgstr "Connecta't a la Wi-Fi"
502500
503−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
504−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
505−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
506−#: qml/Wizard/Pages/passwd-set.qml:90
507−msgid "Continue"
508−msgstr "Continua"
501+#: qml/Wizard/Pages/30-wifi.qml:130
502+msgid "Connected"
503+msgstr ""
509504
510−#: qml/Wizard/Pages/20-sim.qml:25
511−msgid "Add a SIM card and restart your device"
512−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 ""
513508
514−#: qml/Wizard/Pages/20-sim.qml:59
515−msgid "Without it, you won’t be able to make calls or use text messaging."
516−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 ""
517512
518−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
513+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
514+#: qml/Wizard/Pages/sim.qml:101
519515msgid "Skip"
520516msgstr "Omet"
521517
522−#: qml/Wizard/Pages/30-passwd-type.qml:39
523−msgid "Lock security"
524−msgstr "Seguretat del bloqueig"
518+#: qml/Wizard/Pages/40-location.qml:27
519+msgid "Location Services"
520+msgstr ""
525521
526−#: qml/Wizard/Pages/30-passwd-type.qml:79
527−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)"
528526msgstr ""
529527
530−#: qml/Wizard/Pages/30-passwd-type.qml:102
531−msgctxt "Label: Type of security method"
532−msgid "Swipe"
528+#: qml/Wizard/Pages/40-location.qml:105
529+#, qt-format
530+msgid "By selecting this option you agree to the Nokia HERE %1."
533531msgstr ""
534532
535−#: qml/Wizard/Pages/30-passwd-type.qml:103
536−msgctxt "Label: Description of security method"
537−msgid "No security"
533+#: qml/Wizard/Pages/40-location.qml:106
534+msgctxt "part of: Nokia HERE terms and conditions"
535+msgid "terms and conditions"
538536msgstr ""
539537
540−#: qml/Wizard/Pages/30-passwd-type.qml:105
538+#: qml/Wizard/Pages/40-location.qml:160
539+msgid "GPS only"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/40-location.qml:214
543+msgid "Don't use my location"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/40-location.qml:260
547+msgid "You can change it later in System Settings."
548+msgstr ""
549+
550+#: qml/Wizard/Pages/50-timezone.qml:29
551+msgid "Time Zone"
552+msgstr ""
553+
554+#: qml/Wizard/Pages/50-timezone.qml:178
555+msgid "Enter your city"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/60-account.qml:24
559+msgid "Personalize Your Device"
560+msgstr ""
561+
562+#: qml/Wizard/Pages/60-account.qml:48
563+msgid "Preferred Name"
564+msgstr ""
565+
566+#: qml/Wizard/Pages/70-passwd-type.qml:39
567+msgid "Lock Screen"
568+msgstr ""
569+
570+#: qml/Wizard/Pages/70-passwd-type.qml:101
541571msgctxt "Label: Type of security method"
542−msgid "Passcode"
572+msgid "Create new password"
543573msgstr ""
544574
545−#: qml/Wizard/Pages/30-passwd-type.qml:106
546−msgctxt "Label: Description of security method"
547−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)"
548578msgstr ""
549579
550−#: qml/Wizard/Pages/30-passwd-type.qml:108
580+#: qml/Wizard/Pages/70-passwd-type.qml:105
551581msgctxt "Label: Type of security method"
552−msgid "Passphrase"
582+msgid "No lock code"
553583msgstr ""
554584
555−#: qml/Wizard/Pages/30-passwd-type.qml:109
556−msgctxt "Label: Description of security method"
557−msgid "Numbers and letters"
585+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
586+msgid "Privacy Policy"
558587msgstr ""
559588
560−#: qml/Wizard/Pages/40-wifi.qml:29
561−msgid "Connect to Wi‑Fi"
562−msgstr "Connecta't a la Wi-Fi"
589+#: qml/Wizard/Pages/75-report-check.qml:26
590+msgid "Help Us Improve"
591+msgstr ""
563592
564−#: qml/Wizard/Pages/40-wifi.qml:168
565−msgid "Available networks…"
566−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 ""
567596
568−#: qml/Wizard/Pages/40-wifi.qml:169
569−msgid "No available networks."
570−msgstr "No hi ha xarxes disponibles"
597+#: qml/Wizard/Pages/75-report-check.qml:60
598+msgid "Privacy policy"
599+msgstr ""
571600
572−#: qml/Wizard/Pages/50-location.qml:27
573−msgid "Location"
574−msgstr "Ubicació"
601+#: qml/Wizard/Pages/80-finished.qml:89
602+msgid "Welcome to Ubuntu"
603+msgstr ""
604+
605+#: qml/Wizard/Pages/80-finished.qml:104
606+msgid "You are ready to use your device now"
607+msgstr ""
575608
576−#: qml/Wizard/Pages/50-location.qml:62
577−msgid "Let the phone detect your location:"
578−msgstr "Fes que el telèfon detecti la meua ubicació:"
609+#: qml/Wizard/Pages/80-finished.qml:124
610+msgid "Get Started"
611+msgstr ""
579612
580−#: qml/Wizard/Pages/50-location.qml:69
581−msgid "Using GPS only (less accurate)"
582−msgstr "Utilitza només el GPS (menys precís)"
613+#: qml/Wizard/Pages/here-terms.qml:25
614+msgid "Terms & Conditions"
615+msgstr "Condicions generals"
583616
584−#: qml/Wizard/Pages/50-location.qml:86
585−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
617+#: qml/Wizard/Pages/here-terms.qml:69
618+msgid "Your device uses positioning technologies provided by HERE."
586619msgstr ""
587−"Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
588−"(recomanat)"
589620
590−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
591−#: qml/Wizard/Pages/50-location.qml:103
621+#: qml/Wizard/Pages/here-terms.qml:81
592622msgid ""
593−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
594−"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."
595626msgstr ""
596−"Si seleccioneu esta opció, accepteu <a href='#'>les condicions generals del "
597−"servei Nokia HERE</a>."
598627
599−#: qml/Wizard/Pages/50-location.qml:112
600−msgid "Not at all"
601−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 ""
602633
603−#: qml/Wizard/Pages/50-location.qml:124
604−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."
605637msgstr ""
606−"Podeu canviar-ho més avant a l'aplicació <b>Paràmetres del sistema</b>"
607638
608−#: qml/Wizard/Pages/60-reporting.qml:26
609−msgid "Improving your experience"
610−msgstr "Millora de l'experiència"
639+#: qml/Wizard/Pages/here-terms.qml:107
640+msgid "Service Terms"
641+msgstr ""
611642
612−#: qml/Wizard/Pages/60-reporting.qml:46
613−msgid ""
614−"Your phone is set up to automatically report errors to Canonical and its "
615−"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."
616650msgstr ""
617−"Este telèfon està configurat per enviar errors de manera automàtica a "
618−"Canonical i associats, els creadors del sistema operatiu."
619651
620−#: qml/Wizard/Pages/60-reporting.qml:53
621−msgid ""
622−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
623−"Privacy</b>"
652+#: qml/Wizard/Pages/passcode-confirm.qml:45
653+msgctxt "Enter the passcode again"
654+msgid "Please re-enter."
624655msgstr ""
625−"Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
626−"<b>Seguretat i privadesa</b>"
627656
628−#: qml/Wizard/Pages/80-finished.qml:24
629−msgid "All done"
630−msgstr "Tot fet"
657+#: qml/Wizard/Pages/passcode-desktop.qml:30
658+msgid "Lock Screen Passcode"
659+msgstr ""
631660
632−#: qml/Wizard/Pages/80-finished.qml:39
633−msgid "Nice work!"
634−msgstr "Bona faena!"
661+#: qml/Wizard/Pages/passcode-desktop.qml:56
662+msgid "Enter 4 numbers to setup your passcode"
663+msgstr ""
635664
636−#: qml/Wizard/Pages/80-finished.qml:46
637−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"
638668msgstr ""
639669
640−#: qml/Wizard/Pages/80-finished.qml:53
641−msgid "Finish"
642−msgstr "Finalitza"
670+#: qml/Wizard/Pages/passcode-desktop.qml:105
671+msgid "Passcode too short"
672+msgstr ""
643673
644−#: qml/Wizard/Pages/here-terms.qml:27
645−msgid "Terms & Conditions"
646−msgstr "Condicions generals"
674+#: qml/Wizard/Pages/passcode-desktop.qml:107
675+msgid "Passcodes match"
676+msgstr ""
677+
678+#: qml/Wizard/Pages/passcode-desktop.qml:109
679+msgid "Passcodes do not match"
680+msgstr ""
647681
648−#: qml/Wizard/Pages/passwd-confirm.qml:49
649−msgid "Confirm passphrase"
650−msgstr "Confirmeu la contrasenya"
682+#: qml/Wizard/Pages/passcode-set.qml:62
683+msgid "Passcode must be 4 characters long"
684+msgstr ""
651685
652−#: qml/Wizard/Pages/passwd-confirm.qml:50
653−msgid "Confirm passcode"
654−msgstr "Confirmeu el codi d'accés"
686+#: qml/Wizard/Pages/password-set.qml:30
687+msgid "Lock Screen Password"
688+msgstr ""
655689
656−#: qml/Wizard/Pages/passwd-confirm.qml:53
657−#: qml/Wizard/Pages/passwd-confirm.qml:54
658−msgid "Please try again."
659−msgstr "Torneu-ho a intentar."
690+#: qml/Wizard/Pages/password-set.qml:61
691+msgid "Enter at least 8 characters"
692+msgstr ""
660693
661−#: qml/Wizard/Pages/passwd-set.qml:61
662−msgid "Choose your passcode"
663−msgstr "Trieu el codi d'accés"
694+#: qml/Wizard/Pages/password-set.qml:73
695+msgid "Choose password"
696+msgstr ""
664697
665−#: qml/Wizard/Pages/passwd-set.qml:68
666−msgid "Passphrase must be 4 characters long"
667−msgstr "La contrasenya ha de tindre 4 caràcters com a mínim"
698+#: qml/Wizard/Pages/password-set.qml:103
699+msgid "Confirm password"
700+msgstr ""
668701
669−#. Translators: This is the arrow for "Back" buttons
670−#: qml/Wizard/StackButton.qml:39
671−#, qt-format
672−msgid "〈 %1"
673−msgstr "〈 %1"
702+#: qml/Wizard/Pages/sim.qml:27
703+msgid "No SIM card installed"
704+msgstr ""
674705
675−#. Translators: This is the arrow for "Forward" buttons
676−#: qml/Wizard/StackButton.qml:42
677−#, qt-format
678−msgid "%1 〉"
679−msgstr "%1 〉"
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 ""
680749
681750#~ msgid "Log out"
682751#~ msgstr "Ix"
@@ -684,6 +753,9 @@ msgstr "%1 〉"
684753#~ msgid "Shut down"
685754#~ msgstr "Apaga"
686755
756+#~ msgid "Are you sure you want to shut down?"
757+#~ msgstr "Segur que voleu apagar?"
758+
687759#~ msgid "Reboot"
688760#~ msgstr "Reinicia"
689761
@@ -693,9 +765,6 @@ msgstr "%1 〉"
693765#~ msgid "Power off"
694766#~ msgstr "Apaga"
695767
696−#~ msgid "Restart"
697−#~ msgstr "Reinicia"
698−
699768#~ msgid "Skip intro"
700769#~ msgstr "Omet la introducció"
701770
@@ -732,6 +801,12 @@ msgstr "%1 〉"
732801#~ msgid "Well done"
733802#~ msgstr "Enhorabona!"
734803
804+#~ msgid "See less"
805+#~ msgstr "Mostra'n menys"
806+
807+#~ msgid "See all"
808+#~ msgstr "Mostra-ho tot"
809+
735810#~ msgid "Search"
736811#~ msgstr "Cerca"
737812
@@ -774,15 +849,113 @@ msgstr "%1 〉"
774849#~ msgid "Please re-enter"
775850#~ msgstr "Torneu-ho a introduir"
776851
852+#~ msgid "Hi!"
853+#~ msgstr "Hola!"
854+
777855#~ msgid "Welcome to your Ubuntu phone."
778856#~ msgstr "Vos donem la benvinguda al vostre telèfon Ubuntu."
779857
858+#~ msgid "Let’s get started."
859+#~ msgstr "Comencem."
860+
861+#~ msgid "Continue"
862+#~ msgstr "Continua"
863+
864+#~ msgid "Add a SIM card and restart your device"
865+#~ msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
866+
867+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
868+#~ msgstr "Sense ella, no podreu fer cridades o enviar missatges de text."
869+
870+#~ msgid "Lock security"
871+#~ msgstr "Seguretat del bloqueig"
872+
780873#~ msgid "Please select how you’d like to unlock your phone."
781874#~ msgstr "Seleccioneu com voleu desblocar el telèfon."
782875
876+#~ msgid "Available networks…"
877+#~ msgstr "Xarxes disponibles..."
878+
879+#~ msgid "No available networks."
880+#~ msgstr "No hi ha xarxes disponibles"
881+
882+#~ msgid "Location"
883+#~ msgstr "Ubicació"
884+
885+#~ msgid "Let the phone detect your location:"
886+#~ msgstr "Fes que el telèfon detecti la meua ubicació:"
887+
888+#~ msgid "Using GPS only (less accurate)"
889+#~ msgstr "Utilitza només el GPS (menys precís)"
890+
891+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
892+#~ msgstr ""
893+#~ "Utilitza GPS, Wi-Fi anonimitzada i informació de la xarxa telefònica "
894+#~ "(recomanat)"
895+
896+#~ msgid ""
897+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
898+#~ "conditions</a>."
899+#~ msgstr ""
900+#~ "Si seleccioneu esta opció, accepteu <a href='#'>les condicions generals del "
901+#~ "servei Nokia HERE</a>."
902+
903+#~ msgid "Not at all"
904+#~ msgstr "No"
905+
906+#~ msgid "You can change your mind later in <b>System Settings</b>."
907+#~ msgstr ""
908+#~ "Podeu canviar-ho més avant a l'aplicació <b>Paràmetres del sistema</b>"
909+
910+#~ msgid "Improving your experience"
911+#~ msgstr "Millora de l'experiència"
912+
913+#~ msgid ""
914+#~ "Your phone is set up to automatically report errors to Canonical and its "
915+#~ "partners, the makers of the operating system."
916+#~ msgstr ""
917+#~ "Este telèfon està configurat per enviar errors de manera automàtica a "
918+#~ "Canonical i associats, els creadors del sistema operatiu."
919+
920+#~ msgid ""
921+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
922+#~ "Privacy</b>"
923+#~ msgstr ""
924+#~ "Podeu inhabilitar-ho a <b>Configuració del sistema</b>, a la secció "
925+#~ "<b>Seguretat i privadesa</b>"
926+
927+#~ msgid "All done"
928+#~ msgstr "Tot fet"
929+
930+#~ msgid "Nice work!"
931+#~ msgstr "Bona faena!"
932+
783933#~ msgid "Your phone is now ready to use."
784934#~ msgstr "Ja podeu utilitzar el vostre telèfon."
785935
936+#~ msgid "Finish"
937+#~ msgstr "Finalitza"
938+
939+#~ msgid "Confirm passphrase"
940+#~ msgstr "Confirmeu la contrasenya"
941+
942+#~ msgid "Please try again."
943+#~ msgstr "Torneu-ho a intentar."
944+
945+#~ msgid "Choose your passcode"
946+#~ msgstr "Trieu el codi d'accés"
947+
948+#~ msgid "Passphrase must be 4 characters long"
949+#~ msgstr "La contrasenya ha de tindre 4 caràcters com a mínim"
950+
951+#, qt-format
952+#~ msgid "〈 %1"
953+#~ msgstr "〈 %1"
954+
955+#, qt-format
956+#~ msgid "%1 〉"
957+#~ msgstr "%1 〉"
958+
786959#~ msgid "Type or say a command"
787960#~ msgstr "Escriviu o pronuncieu una ordre"
788961
po/ce.po+261−183
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+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,8 +15,8 @@ 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-03-13 05:50+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -73,64 +73,46 @@ 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:217
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:182
11496msgid "Yes"
11597msgstr ""
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr ""
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
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:200
129111msgctxt "Button: Power off the system"
130112msgid "Power off"
131113msgstr ""
132114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:209
134116msgctxt "Button: Restart the system"
135117msgid "Restart"
136118msgstr ""
@@ -173,42 +155,58 @@ msgstr ""
173155msgid "Close all"
174156msgstr ""
175157
176−#: qml/Dash/DashPageHeader.qml:270
158+#: qml/Dash/DashPageHeader.qml:337
177159msgctxt "Button: Open the Ubuntu Store"
178160msgid "Store"
179161msgstr ""
180162
181−#: qml/Dash/DashPageHeader.qml:277
163+#: qml/Dash/DashPageHeader.qml:344
182164msgctxt "Button: Start a search in the current dash scope"
183165msgid "Search"
184166msgstr ""
185167
186−#: qml/Dash/DashPageHeader.qml:287
168+#: qml/Dash/DashPageHeader.qml:354
187169msgctxt "Button: Show the current dash scope settings"
188170msgid "Settings"
189171msgstr ""
190172
191−#: qml/Dash/DashPageHeader.qml:294
173+#: qml/Dash/DashPageHeader.qml:361
192174msgid "Remove from Favorites"
193175msgstr ""
194176
195−#: qml/Dash/DashPageHeader.qml:294
177+#: qml/Dash/DashPageHeader.qml:361
196178msgid "Add to Favorites"
197179msgstr ""
198180
199−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
200−msgid "See less"
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:579 qml/Dash/GenericScopeView.qml:764
190+msgid "Show less"
201191msgstr ""
202192
203−#: qml/Dash/GenericScopeView.qml:567
204−msgid "See all"
193+#: qml/Dash/GenericScopeView.qml:579
194+msgid "Show all"
205195msgstr ""
206196
207−#: qml/Dash/GenericScopeView.qml:629
197+#: qml/Dash/GenericScopeView.qml:636
208198msgctxt "Label: Hint for dash search line edit"
209199msgid "Search"
210200msgstr ""
211201
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+
212210#: qml/Dash/Previews/PreviewActionCombo.qml:35
213211msgid "More..."
214212msgstr ""
@@ -276,11 +274,11 @@ msgstr ""
276274msgid "Tap to unlock"
277275msgstr ""
278276
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
280278msgid "Sorry, incorrect passphrase."
281279msgstr ""
282280
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
284282msgid "Sorry, incorrect passcode."
285283msgstr ""
286284
@@ -305,7 +303,7 @@ msgstr ""
305303msgid "Enter %1"
306304msgstr ""
307305
308−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
309307msgid "Enter passphrase"
310308msgstr ""
311309
@@ -331,7 +329,7 @@ msgstr ""
331329msgid "Sorry, incorrect passcode"
332330msgstr ""
333331
334−#: qml/Notifications/NotificationMenuItemFactory.qml:129
332+#: qml/Notifications/NotificationMenuItemFactory.qml:124
335333msgid "Show password"
336334msgstr ""
337335
@@ -343,62 +341,62 @@ msgstr ""
343341msgid "Conference"
344342msgstr ""
345343
346−#: qml/Panel/Indicators/MenuItemFactory.qml:752
344+#: qml/Panel/Indicators/MenuItemFactory.qml:762
347345msgid "Nothing is playing"
348346msgstr ""
349347
350−#: qml/Panel/Indicators/MenuItemFactory.qml:881
348+#: qml/Panel/Indicators/MenuItemFactory.qml:891
351349#, qt-format
352350msgid "%1 hour"
353351msgid_plural "%1 hours"
354352msgstr[0] ""
355353msgstr[1] ""
356354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:885
355+#: qml/Panel/Indicators/MenuItemFactory.qml:895
358356#, qt-format
359357msgid "%1 minute"
360358msgid_plural "%1 minutes"
361359msgstr[0] ""
362360msgstr[1] ""
363361
364−#: qml/Panel/Indicators/MenuItemFactory.qml:890
362+#: qml/Panel/Indicators/MenuItemFactory.qml:900
365363#, qt-format
366364msgid "%1 second"
367365msgid_plural "%1 seconds"
368366msgstr[0] ""
369367msgstr[1] ""
370368
371−#: qml/Panel/Indicators/MenuItemFactory.qml:893
369+#: qml/Panel/Indicators/MenuItemFactory.qml:903
372370msgid "0 seconds"
373371msgstr ""
374372
375373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
376−#: qml/Panel/Indicators/MenuItemFactory.qml:895
374+#: qml/Panel/Indicators/MenuItemFactory.qml:905
377375#, qt-format
378376msgid "%1 remaining"
379377msgstr ""
380378
381−#: qml/Panel/Indicators/MenuItemFactory.qml:901
379+#: qml/Panel/Indicators/MenuItemFactory.qml:911
382380msgid "In queue…"
383381msgstr ""
384382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:905
383+#: qml/Panel/Indicators/MenuItemFactory.qml:915
386384msgid "Downloading"
387385msgstr ""
388386
389−#: qml/Panel/Indicators/MenuItemFactory.qml:907
387+#: qml/Panel/Indicators/MenuItemFactory.qml:917
390388msgid "Paused, tap to resume"
391389msgstr ""
392390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:909
391+#: qml/Panel/Indicators/MenuItemFactory.qml:919
394392msgid "Canceled"
395393msgstr ""
396394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:911
395+#: qml/Panel/Indicators/MenuItemFactory.qml:921
398396msgid "Finished"
399397msgstr ""
400398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:913
399+#: qml/Panel/Indicators/MenuItemFactory.qml:923
402400msgid "Failed, tap to retry"
403401msgstr ""
404402
@@ -418,241 +416,321 @@ msgctxt "Button: Call back on phone"
418416msgid "Call back"
419417msgstr ""
420418
421−#: qml/Tutorial/TutorialBottom.qml:28
422−msgid "Open special menus"
419+#: qml/Stages/SideStage.qml:76
420+msgid "Drag using 3 fingers any application from one window to the other"
423421msgstr ""
424422
425−#: qml/Tutorial/TutorialBottom.qml:29
426−msgid "Swipe up from the bottom edge."
423+#: qml/Tutorial/TutorialBottom.qml:78
424+msgid "Swipe up to add a contact"
427425msgstr ""
428426
429−#: qml/Tutorial/TutorialBottomFinish.qml:24
430−msgid "This action does different things for different apps"
427+#: qml/Tutorial/TutorialBottom.qml:80
428+msgid "Swipe up for favorite calculations"
431429msgstr ""
432430
433−#: qml/Tutorial/TutorialBottomFinish.qml:25
434−msgid "Tap here to finish."
431+#: qml/Tutorial/TutorialBottom.qml:82
432+msgid "Swipe up for recent calls"
435433msgstr ""
436434
437−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
438−#: qml/Tutorial/TutorialRight.qml:144
439−msgid "Tap here to continue."
435+#: qml/Tutorial/TutorialBottom.qml:84
436+msgid "Swipe up to create a message"
440437msgstr ""
441438
442−#: qml/Tutorial/TutorialLeft.qml:26
443−msgid "Open the launcher"
439+#: qml/Tutorial/TutorialBottom.qml:85
440+msgid "Swipe up to manage the app"
444441msgstr ""
445442
446−#: qml/Tutorial/TutorialLeft.qml:27
447−msgid "Short swipe from the left edge."
443+#: qml/Tutorial/TutorialLeftLong.qml:47
444+msgid "Long swipe from the left edge to open the Today scope"
448445msgstr ""
449446
450−#: qml/Tutorial/TutorialLeftFinish.qml:24
451−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"
452449msgstr ""
453450
454−#: qml/Tutorial/TutorialPage.qml:178
455−msgid "You almost got it!"
451+#: qml/Tutorial/TutorialRight.qml:55
452+msgid "Push your mouse against the right edge to view your open apps"
456453msgstr ""
457454
458−#: qml/Tutorial/TutorialPage.qml:195
459−msgid "Try again."
455+#: qml/Tutorial/TutorialRight.qml:56
456+msgid "Short or long swipe from the right edge to view your open apps"
460457msgstr ""
461458
462−#: qml/Tutorial/TutorialRight.qml:31
463−msgid "To view open apps"
459+#: qml/Tutorial/TutorialTop.qml:53
460+msgid "Swipe from the top right edge to open the notification bar"
464461msgstr ""
465462
466−#: qml/Tutorial/TutorialRight.qml:32
467−msgid "Long swipe from the right edge."
463+#: qml/Tutorial/TutorialTop.qml:54
464+msgid "Swipe from the top edge to open the notification bar"
468465msgstr ""
469466
470−#: qml/Tutorial/TutorialRight.qml:122
471−msgid "View all your running tasks."
472−msgstr ""
473−
474−#: qml/Wizard/Page.qml:89
467+#: qml/Wizard/Page.qml:54
475468msgctxt "Button: Go back one page in the Wizard"
476469msgid "Back"
477470msgstr ""
478471
479472#: qml/Wizard/Pages/10-welcome.qml:27
480−msgid "Hi!"
473+msgid "Language"
481474msgstr ""
482475
483−#: qml/Wizard/Pages/10-welcome.qml:44
484−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"
485483msgstr ""
486484
487−#: qml/Wizard/Pages/10-welcome.qml:52
488−msgid "Let’s get started."
485+#: qml/Wizard/Pages/30-wifi.qml:29
486+msgid "Connect to Wi‑Fi"
489487msgstr ""
490488
491−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
492−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
493−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
494−#: qml/Wizard/Pages/passwd-set.qml:90
495−msgid "Continue"
489+#: qml/Wizard/Pages/30-wifi.qml:130
490+msgid "Connected"
496491msgstr ""
497492
498−#: qml/Wizard/Pages/20-sim.qml:25
499−msgid "Add a SIM card and restart your device"
493+#: qml/Wizard/Pages/30-wifi.qml:163
494+msgid "Available Wi-Fi networks"
500495msgstr ""
501496
502−#: qml/Wizard/Pages/20-sim.qml:59
503−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"
504499msgstr ""
505500
506−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502+#: qml/Wizard/Pages/sim.qml:101
507503msgid "Skip"
508504msgstr ""
509505
510−#: qml/Wizard/Pages/30-passwd-type.qml:39
511−msgid "Lock security"
506+#: qml/Wizard/Pages/40-location.qml:27
507+msgid "Location Services"
512508msgstr ""
513509
514−#: qml/Wizard/Pages/30-passwd-type.qml:79
515−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)"
516514msgstr ""
517515
518−#: qml/Wizard/Pages/30-passwd-type.qml:102
519−msgctxt "Label: Type of security method"
520−msgid "Swipe"
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 ""
525+
526+#: qml/Wizard/Pages/40-location.qml:160
527+msgid "GPS only"
528+msgstr ""
529+
530+#: qml/Wizard/Pages/40-location.qml:214
531+msgid "Don't use my location"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:260
535+msgid "You can change it later in System Settings."
536+msgstr ""
537+
538+#: qml/Wizard/Pages/50-timezone.qml:29
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"
521548msgstr ""
522549
523−#: qml/Wizard/Pages/30-passwd-type.qml:103
524−msgctxt "Label: Description of security method"
525−msgid "No security"
550+#: qml/Wizard/Pages/60-account.qml:48
551+msgid "Preferred Name"
526552msgstr ""
527553
528−#: qml/Wizard/Pages/30-passwd-type.qml:105
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
555+msgid "Lock Screen"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
529559msgctxt "Label: Type of security method"
530−msgid "Passcode"
560+msgid "Create new password"
531561msgstr ""
532562
533−#: qml/Wizard/Pages/30-passwd-type.qml:106
534−msgctxt "Label: Description of security method"
535−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)"
536566msgstr ""
537567
538−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
539569msgctxt "Label: Type of security method"
540−msgid "Passphrase"
570+msgid "No lock code"
541571msgstr ""
542572
543−#: qml/Wizard/Pages/30-passwd-type.qml:109
544−msgctxt "Label: Description of security method"
545−msgid "Numbers and letters"
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
574+msgid "Privacy Policy"
546575msgstr ""
547576
548−#: qml/Wizard/Pages/40-wifi.qml:29
549−msgid "Connect to Wi‑Fi"
577+#: qml/Wizard/Pages/75-report-check.qml:26
578+msgid "Help Us Improve"
579+msgstr ""
580+
581+#: qml/Wizard/Pages/75-report-check.qml:59
582+msgid "Improve system performance by sending us crashes and error reports."
583+msgstr ""
584+
585+#: qml/Wizard/Pages/75-report-check.qml:60
586+msgid "Privacy policy"
550587msgstr ""
551588
552−#: qml/Wizard/Pages/40-wifi.qml:168
553−msgid "Available networks…"
589+#: qml/Wizard/Pages/80-finished.qml:89
590+msgid "Welcome to Ubuntu"
554591msgstr ""
555592
556−#: qml/Wizard/Pages/40-wifi.qml:169
557−msgid "No available networks."
593+#: qml/Wizard/Pages/80-finished.qml:104
594+msgid "You are ready to use your device now"
558595msgstr ""
559596
560−#: qml/Wizard/Pages/50-location.qml:27
561−msgid "Location"
597+#: qml/Wizard/Pages/80-finished.qml:124
598+msgid "Get Started"
562599msgstr ""
563600
564−#: qml/Wizard/Pages/50-location.qml:62
565−msgid "Let the phone detect your location:"
601+#: qml/Wizard/Pages/here-terms.qml:25
602+msgid "Terms & Conditions"
566603msgstr ""
567604
568−#: qml/Wizard/Pages/50-location.qml:69
569−msgid "Using GPS only (less accurate)"
605+#: qml/Wizard/Pages/here-terms.qml:69
606+msgid "Your device uses positioning technologies provided by HERE."
570607msgstr ""
571608
572−#: qml/Wizard/Pages/50-location.qml:86
573−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
609+#: qml/Wizard/Pages/here-terms.qml:81
610+msgid ""
611+"To provide you with positioning services and to improve their quality, HERE "
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
574614msgstr ""
575615
576−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
577−#: qml/Wizard/Pages/50-location.qml:103
616+#: qml/Wizard/Pages/here-terms.qml:93
578617msgid ""
579−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
580−"conditions</a>."
618+"The information collected is used to analyze the service and to improve the "
619+"use of service, but not to identify you personally."
581620msgstr ""
582621
583−#: qml/Wizard/Pages/50-location.qml:112
584−msgid "Not at all"
622+#: qml/Wizard/Pages/here-terms.qml:106
623+#, qt-format
624+msgid "By continuing, you agree to the HERE platform %1 and %2."
585625msgstr ""
586626
587−#: qml/Wizard/Pages/50-location.qml:124
588−msgid "You can change your mind later in <b>System Settings</b>."
627+#: qml/Wizard/Pages/here-terms.qml:107
628+msgid "Service Terms"
589629msgstr ""
590630
591−#: qml/Wizard/Pages/60-reporting.qml:26
592−msgid "Improving your experience"
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
633+msgid "Confirm passcode"
593634msgstr ""
594635
595−#: qml/Wizard/Pages/60-reporting.qml:46
596−msgid ""
597−"Your phone is set up to automatically report errors to Canonical and its "
598−"partners, the makers of the operating system."
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
637+msgid "Incorrect passcode."
599638msgstr ""
600639
601−#: qml/Wizard/Pages/60-reporting.qml:53
602−msgid ""
603−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
604−"Privacy</b>"
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
641+msgctxt "Enter the passcode again"
642+msgid "Please re-enter."
605643msgstr ""
606644
607−#: qml/Wizard/Pages/80-finished.qml:24
608−msgid "All done"
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
646+msgid "Lock Screen Passcode"
609647msgstr ""
610648
611−#: qml/Wizard/Pages/80-finished.qml:39
612−msgid "Nice work!"
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
650+msgid "Enter 4 numbers to setup your passcode"
613651msgstr ""
614652
615−#: qml/Wizard/Pages/80-finished.qml:46
616−msgid "Your device is now ready to use."
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
617656msgstr ""
618657
619−#: qml/Wizard/Pages/80-finished.qml:53
620−msgid "Finish"
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
659+msgid "Passcode too short"
621660msgstr ""
622661
623−#: qml/Wizard/Pages/here-terms.qml:27
624−msgid "Terms & Conditions"
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
663+msgid "Passcodes match"
625664msgstr ""
626665
627−#: qml/Wizard/Pages/passwd-confirm.qml:49
628−msgid "Confirm passphrase"
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
667+msgid "Passcodes do not match"
629668msgstr ""
630669
631−#: qml/Wizard/Pages/passwd-confirm.qml:50
632−msgid "Confirm passcode"
670+#: qml/Wizard/Pages/passcode-set.qml:62
671+msgid "Passcode must be 4 characters long"
633672msgstr ""
634673
635−#: qml/Wizard/Pages/passwd-confirm.qml:53
636−#: qml/Wizard/Pages/passwd-confirm.qml:54
637−msgid "Please try again."
674+#: qml/Wizard/Pages/password-set.qml:30
675+msgid "Lock Screen Password"
638676msgstr ""
639677
640−#: qml/Wizard/Pages/passwd-set.qml:61
641−msgid "Choose your passcode"
678+#: qml/Wizard/Pages/password-set.qml:61
679+msgid "Enter at least 8 characters"
642680msgstr ""
643681
644−#: qml/Wizard/Pages/passwd-set.qml:68
645−msgid "Passphrase must be 4 characters long"
682+#: qml/Wizard/Pages/password-set.qml:73
683+msgid "Choose password"
646684msgstr ""
647685
648−#. Translators: This is the arrow for "Back" buttons
649−#: qml/Wizard/StackButton.qml:39
650−#, qt-format
651−msgid "〈 %1"
686+#: qml/Wizard/Pages/password-set.qml:103
687+msgid "Confirm password"
652688msgstr ""
653689
654−#. Translators: This is the arrow for "Forward" buttons
655−#: qml/Wizard/StackButton.qml:42
656−#, qt-format
657−msgid "%1 〉"
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"
658736msgstr ""
po/ckb.po+261−183
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+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,8 +15,8 @@ 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-03-13 05:51+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:55+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -73,64 +73,46 @@ 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:217
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:182
11496msgid "Yes"
11597msgstr ""
11698
117−#: qml/Components/Dialogs.qml:232
99+#: qml/Components/Dialogs.qml:197
118100msgctxt "Title: Power off/Restart dialog"
119101msgid "Power"
120102msgstr ""
121103
122−#: qml/Components/Dialogs.qml:233
104+#: qml/Components/Dialogs.qml:198
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:200
129111msgctxt "Button: Power off the system"
130112msgid "Power off"
131113msgstr ""
132114
133−#: qml/Components/Dialogs.qml:244
115+#: qml/Components/Dialogs.qml:209
134116msgctxt "Button: Restart the system"
135117msgid "Restart"
136118msgstr ""
@@ -173,42 +155,58 @@ msgstr ""
173155msgid "Close all"
174156msgstr ""
175157
176−#: qml/Dash/DashPageHeader.qml:270
158+#: qml/Dash/DashPageHeader.qml:337
177159msgctxt "Button: Open the Ubuntu Store"
178160msgid "Store"
179161msgstr ""
180162
181−#: qml/Dash/DashPageHeader.qml:277
163+#: qml/Dash/DashPageHeader.qml:344
182164msgctxt "Button: Start a search in the current dash scope"
183165msgid "Search"
184166msgstr ""
185167
186−#: qml/Dash/DashPageHeader.qml:287
168+#: qml/Dash/DashPageHeader.qml:354
187169msgctxt "Button: Show the current dash scope settings"
188170msgid "Settings"
189171msgstr ""
190172
191−#: qml/Dash/DashPageHeader.qml:294
173+#: qml/Dash/DashPageHeader.qml:361
192174msgid "Remove from Favorites"
193175msgstr ""
194176
195−#: qml/Dash/DashPageHeader.qml:294
177+#: qml/Dash/DashPageHeader.qml:361
196178msgid "Add to Favorites"
197179msgstr ""
198180
199−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
200−msgid "See less"
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:579 qml/Dash/GenericScopeView.qml:764
190+msgid "Show less"
201191msgstr ""
202192
203−#: qml/Dash/GenericScopeView.qml:567
204−msgid "See all"
193+#: qml/Dash/GenericScopeView.qml:579
194+msgid "Show all"
205195msgstr ""
206196
207−#: qml/Dash/GenericScopeView.qml:629
197+#: qml/Dash/GenericScopeView.qml:636
208198msgctxt "Label: Hint for dash search line edit"
209199msgid "Search"
210200msgstr ""
211201
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+
212210#: qml/Dash/Previews/PreviewActionCombo.qml:35
213211msgid "More..."
214212msgstr ""
@@ -276,11 +274,11 @@ msgstr ""
276274msgid "Tap to unlock"
277275msgstr ""
278276
279−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
277+#: qml/Greeter/NarrowView.qml:54
280278msgid "Sorry, incorrect passphrase."
281279msgstr ""
282280
283−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
281+#: qml/Greeter/NarrowView.qml:55
284282msgid "Sorry, incorrect passcode."
285283msgstr ""
286284
@@ -305,7 +303,7 @@ msgstr ""
305303msgid "Enter %1"
306304msgstr ""
307305
308−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
306+#: qml/Greeter/NarrowView.qml:117
309307msgid "Enter passphrase"
310308msgstr ""
311309
@@ -331,7 +329,7 @@ msgstr ""
331329msgid "Sorry, incorrect passcode"
332330msgstr ""
333331
334−#: qml/Notifications/NotificationMenuItemFactory.qml:129
332+#: qml/Notifications/NotificationMenuItemFactory.qml:124
335333msgid "Show password"
336334msgstr "تێپەڕەوشە پیشان بدە"
337335
@@ -343,62 +341,62 @@ msgstr ""
343341msgid "Conference"
344342msgstr ""
345343
346−#: qml/Panel/Indicators/MenuItemFactory.qml:752
344+#: qml/Panel/Indicators/MenuItemFactory.qml:762
347345msgid "Nothing is playing"
348346msgstr ""
349347
350−#: qml/Panel/Indicators/MenuItemFactory.qml:881
348+#: qml/Panel/Indicators/MenuItemFactory.qml:891
351349#, qt-format
352350msgid "%1 hour"
353351msgid_plural "%1 hours"
354352msgstr[0] ""
355353msgstr[1] ""
356354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:885
355+#: qml/Panel/Indicators/MenuItemFactory.qml:895
358356#, qt-format
359357msgid "%1 minute"
360358msgid_plural "%1 minutes"
361359msgstr[0] ""
362360msgstr[1] ""
363361
364−#: qml/Panel/Indicators/MenuItemFactory.qml:890
362+#: qml/Panel/Indicators/MenuItemFactory.qml:900
365363#, qt-format
366364msgid "%1 second"
367365msgid_plural "%1 seconds"
368366msgstr[0] ""
369367msgstr[1] ""
370368
371−#: qml/Panel/Indicators/MenuItemFactory.qml:893
369+#: qml/Panel/Indicators/MenuItemFactory.qml:903
372370msgid "0 seconds"
373371msgstr ""
374372
375373#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
376−#: qml/Panel/Indicators/MenuItemFactory.qml:895
374+#: qml/Panel/Indicators/MenuItemFactory.qml:905
377375#, qt-format
378376msgid "%1 remaining"
379377msgstr ""
380378
381−#: qml/Panel/Indicators/MenuItemFactory.qml:901
379+#: qml/Panel/Indicators/MenuItemFactory.qml:911
382380msgid "In queue…"
383381msgstr ""
384382
385−#: qml/Panel/Indicators/MenuItemFactory.qml:905
383+#: qml/Panel/Indicators/MenuItemFactory.qml:915
386384msgid "Downloading"
387385msgstr ""
388386
389−#: qml/Panel/Indicators/MenuItemFactory.qml:907
387+#: qml/Panel/Indicators/MenuItemFactory.qml:917
390388msgid "Paused, tap to resume"
391389msgstr ""
392390
393−#: qml/Panel/Indicators/MenuItemFactory.qml:909
391+#: qml/Panel/Indicators/MenuItemFactory.qml:919
394392msgid "Canceled"
395393msgstr ""
396394
397−#: qml/Panel/Indicators/MenuItemFactory.qml:911
395+#: qml/Panel/Indicators/MenuItemFactory.qml:921
398396msgid "Finished"
399397msgstr ""
400398
401−#: qml/Panel/Indicators/MenuItemFactory.qml:913
399+#: qml/Panel/Indicators/MenuItemFactory.qml:923
402400msgid "Failed, tap to retry"
403401msgstr ""
404402
@@ -418,243 +416,323 @@ msgctxt "Button: Call back on phone"
418416msgid "Call back"
419417msgstr ""
420418
421−#: qml/Tutorial/TutorialBottom.qml:28
422−msgid "Open special menus"
419+#: qml/Stages/SideStage.qml:76
420+msgid "Drag using 3 fingers any application from one window to the other"
423421msgstr ""
424422
425−#: qml/Tutorial/TutorialBottom.qml:29
426−msgid "Swipe up from the bottom edge."
423+#: qml/Tutorial/TutorialBottom.qml:78
424+msgid "Swipe up to add a contact"
427425msgstr ""
428426
429−#: qml/Tutorial/TutorialBottomFinish.qml:24
430−msgid "This action does different things for different apps"
427+#: qml/Tutorial/TutorialBottom.qml:80
428+msgid "Swipe up for favorite calculations"
431429msgstr ""
432430
433−#: qml/Tutorial/TutorialBottomFinish.qml:25
434−msgid "Tap here to finish."
431+#: qml/Tutorial/TutorialBottom.qml:82
432+msgid "Swipe up for recent calls"
435433msgstr ""
436434
437−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
438−#: qml/Tutorial/TutorialRight.qml:144
439−msgid "Tap here to continue."
435+#: qml/Tutorial/TutorialBottom.qml:84
436+msgid "Swipe up to create a message"
440437msgstr ""
441438
442−#: qml/Tutorial/TutorialLeft.qml:26
443−msgid "Open the launcher"
439+#: qml/Tutorial/TutorialBottom.qml:85
440+msgid "Swipe up to manage the app"
444441msgstr ""
445442
446−#: qml/Tutorial/TutorialLeft.qml:27
447−msgid "Short swipe from the left edge."
443+#: qml/Tutorial/TutorialLeftLong.qml:47
444+msgid "Long swipe from the left edge to open the Today scope"
448445msgstr ""
449446
450−#: qml/Tutorial/TutorialLeftFinish.qml:24
451−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"
452449msgstr ""
453450
454−#: qml/Tutorial/TutorialPage.qml:178
455−msgid "You almost got it!"
451+#: qml/Tutorial/TutorialRight.qml:55
452+msgid "Push your mouse against the right edge to view your open apps"
456453msgstr ""
457454
458−#: qml/Tutorial/TutorialPage.qml:195
459−msgid "Try again."
455+#: qml/Tutorial/TutorialRight.qml:56
456+msgid "Short or long swipe from the right edge to view your open apps"
460457msgstr ""
461458
462−#: qml/Tutorial/TutorialRight.qml:31
463−msgid "To view open apps"
459+#: qml/Tutorial/TutorialTop.qml:53
460+msgid "Swipe from the top right edge to open the notification bar"
464461msgstr ""
465462
466−#: qml/Tutorial/TutorialRight.qml:32
467−msgid "Long swipe from the right edge."
463+#: qml/Tutorial/TutorialTop.qml:54
464+msgid "Swipe from the top edge to open the notification bar"
468465msgstr ""
469466
470−#: qml/Tutorial/TutorialRight.qml:122
471−msgid "View all your running tasks."
472−msgstr ""
473−
474−#: qml/Wizard/Page.qml:89
467+#: qml/Wizard/Page.qml:54
475468msgctxt "Button: Go back one page in the Wizard"
476469msgid "Back"
477470msgstr ""
478471
479472#: qml/Wizard/Pages/10-welcome.qml:27
480−msgid "Hi!"
473+msgid "Language"
481474msgstr ""
482475
483−#: qml/Wizard/Pages/10-welcome.qml:44
484−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"
485483msgstr ""
486484
487−#: qml/Wizard/Pages/10-welcome.qml:52
488−msgid "Let’s get started."
485+#: qml/Wizard/Pages/30-wifi.qml:29
486+msgid "Connect to Wi‑Fi"
489487msgstr ""
490488
491−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
492−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
493−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
494−#: qml/Wizard/Pages/passwd-set.qml:90
495−msgid "Continue"
489+#: qml/Wizard/Pages/30-wifi.qml:130
490+msgid "Connected"
496491msgstr ""
497492
498−#: qml/Wizard/Pages/20-sim.qml:25
499−msgid "Add a SIM card and restart your device"
493+#: qml/Wizard/Pages/30-wifi.qml:163
494+msgid "Available Wi-Fi networks"
500495msgstr ""
501496
502−#: qml/Wizard/Pages/20-sim.qml:59
503−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"
504499msgstr ""
505500
506−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502+#: qml/Wizard/Pages/sim.qml:101
507503msgid "Skip"
508504msgstr ""
509505
510−#: qml/Wizard/Pages/30-passwd-type.qml:39
511−msgid "Lock security"
506+#: qml/Wizard/Pages/40-location.qml:27
507+msgid "Location Services"
512508msgstr ""
513509
514−#: qml/Wizard/Pages/30-passwd-type.qml:79
515−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)"
516514msgstr ""
517515
518−#: qml/Wizard/Pages/30-passwd-type.qml:102
519−msgctxt "Label: Type of security method"
520−msgid "Swipe"
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 ""
525+
526+#: qml/Wizard/Pages/40-location.qml:160
527+msgid "GPS only"
528+msgstr ""
529+
530+#: qml/Wizard/Pages/40-location.qml:214
531+msgid "Don't use my location"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:260
535+msgid "You can change it later in System Settings."
536+msgstr ""
537+
538+#: qml/Wizard/Pages/50-timezone.qml:29
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"
521548msgstr ""
522549
523−#: qml/Wizard/Pages/30-passwd-type.qml:103
524−msgctxt "Label: Description of security method"
525−msgid "No security"
550+#: qml/Wizard/Pages/60-account.qml:48
551+msgid "Preferred Name"
526552msgstr ""
527553
528−#: qml/Wizard/Pages/30-passwd-type.qml:105
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
555+msgid "Lock Screen"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
529559msgctxt "Label: Type of security method"
530−msgid "Passcode"
560+msgid "Create new password"
531561msgstr ""
532562
533−#: qml/Wizard/Pages/30-passwd-type.qml:106
534−msgctxt "Label: Description of security method"
535−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)"
536566msgstr ""
537567
538−#: qml/Wizard/Pages/30-passwd-type.qml:108
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
539569msgctxt "Label: Type of security method"
540−msgid "Passphrase"
570+msgid "No lock code"
541571msgstr ""
542572
543−#: qml/Wizard/Pages/30-passwd-type.qml:109
544−msgctxt "Label: Description of security method"
545−msgid "Numbers and letters"
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
574+msgid "Privacy Policy"
546575msgstr ""
547576
548−#: qml/Wizard/Pages/40-wifi.qml:29
549−msgid "Connect to Wi‑Fi"
577+#: qml/Wizard/Pages/75-report-check.qml:26
578+msgid "Help Us Improve"
579+msgstr ""
580+
581+#: qml/Wizard/Pages/75-report-check.qml:59
582+msgid "Improve system performance by sending us crashes and error reports."
583+msgstr ""
584+
585+#: qml/Wizard/Pages/75-report-check.qml:60
586+msgid "Privacy policy"
550587msgstr ""
551588
552−#: qml/Wizard/Pages/40-wifi.qml:168
553−msgid "Available networks…"
589+#: qml/Wizard/Pages/80-finished.qml:89
590+msgid "Welcome to Ubuntu"
554591msgstr ""
555592
556−#: qml/Wizard/Pages/40-wifi.qml:169
557−msgid "No available networks."
593+#: qml/Wizard/Pages/80-finished.qml:104
594+msgid "You are ready to use your device now"
558595msgstr ""
559596
560−#: qml/Wizard/Pages/50-location.qml:27
561−msgid "Location"
597+#: qml/Wizard/Pages/80-finished.qml:124
598+msgid "Get Started"
562599msgstr ""
563600
564−#: qml/Wizard/Pages/50-location.qml:62
565−msgid "Let the phone detect your location:"
601+#: qml/Wizard/Pages/here-terms.qml:25
602+msgid "Terms & Conditions"
566603msgstr ""
567604
568−#: qml/Wizard/Pages/50-location.qml:69
569−msgid "Using GPS only (less accurate)"
605+#: qml/Wizard/Pages/here-terms.qml:69
606+msgid "Your device uses positioning technologies provided by HERE."
570607msgstr ""
571608
572−#: qml/Wizard/Pages/50-location.qml:86
573−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
609+#: qml/Wizard/Pages/here-terms.qml:81
610+msgid ""
611+"To provide you with positioning services and to improve their quality, HERE "
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
574614msgstr ""
575615
576−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
577−#: qml/Wizard/Pages/50-location.qml:103
616+#: qml/Wizard/Pages/here-terms.qml:93
578617msgid ""
579−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
580−"conditions</a>."
618+"The information collected is used to analyze the service and to improve the "
619+"use of service, but not to identify you personally."
581620msgstr ""
582621
583−#: qml/Wizard/Pages/50-location.qml:112
584−msgid "Not at all"
622+#: qml/Wizard/Pages/here-terms.qml:106
623+#, qt-format
624+msgid "By continuing, you agree to the HERE platform %1 and %2."
585625msgstr ""
586626
587−#: qml/Wizard/Pages/50-location.qml:124
588−msgid "You can change your mind later in <b>System Settings</b>."
627+#: qml/Wizard/Pages/here-terms.qml:107
628+msgid "Service Terms"
589629msgstr ""
590630
591−#: qml/Wizard/Pages/60-reporting.qml:26
592−msgid "Improving your experience"
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
633+msgid "Confirm passcode"
593634msgstr ""
594635
595−#: qml/Wizard/Pages/60-reporting.qml:46
596−msgid ""
597−"Your phone is set up to automatically report errors to Canonical and its "
598−"partners, the makers of the operating system."
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
637+msgid "Incorrect passcode."
599638msgstr ""
600639
601−#: qml/Wizard/Pages/60-reporting.qml:53
602−msgid ""
603−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
604−"Privacy</b>"
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
641+msgctxt "Enter the passcode again"
642+msgid "Please re-enter."
605643msgstr ""
606644
607−#: qml/Wizard/Pages/80-finished.qml:24
608−msgid "All done"
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
646+msgid "Lock Screen Passcode"
609647msgstr ""
610648
611−#: qml/Wizard/Pages/80-finished.qml:39
612−msgid "Nice work!"
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
650+msgid "Enter 4 numbers to setup your passcode"
613651msgstr ""
614652
615−#: qml/Wizard/Pages/80-finished.qml:46
616−msgid "Your device is now ready to use."
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
617656msgstr ""
618657
619−#: qml/Wizard/Pages/80-finished.qml:53
620−msgid "Finish"
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
659+msgid "Passcode too short"
621660msgstr ""
622661
623−#: qml/Wizard/Pages/here-terms.qml:27
624−msgid "Terms & Conditions"
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
663+msgid "Passcodes match"
625664msgstr ""
626665
627−#: qml/Wizard/Pages/passwd-confirm.qml:49
628−msgid "Confirm passphrase"
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
667+msgid "Passcodes do not match"
629668msgstr ""
630669
631−#: qml/Wizard/Pages/passwd-confirm.qml:50
632−msgid "Confirm passcode"
670+#: qml/Wizard/Pages/passcode-set.qml:62
671+msgid "Passcode must be 4 characters long"
633672msgstr ""
634673
635−#: qml/Wizard/Pages/passwd-confirm.qml:53
636−#: qml/Wizard/Pages/passwd-confirm.qml:54
637−msgid "Please try again."
674+#: qml/Wizard/Pages/password-set.qml:30
675+msgid "Lock Screen Password"
638676msgstr ""
639677
640−#: qml/Wizard/Pages/passwd-set.qml:61
641−msgid "Choose your passcode"
678+#: qml/Wizard/Pages/password-set.qml:61
679+msgid "Enter at least 8 characters"
642680msgstr ""
643681
644−#: qml/Wizard/Pages/passwd-set.qml:68
645−msgid "Passphrase must be 4 characters long"
682+#: qml/Wizard/Pages/password-set.qml:73
683+msgid "Choose password"
646684msgstr ""
647685
648−#. Translators: This is the arrow for "Back" buttons
649−#: qml/Wizard/StackButton.qml:39
650−#, qt-format
651−msgid "〈 %1"
686+#: qml/Wizard/Pages/password-set.qml:103
687+msgid "Confirm password"
652688msgstr ""
653689
654−#. Translators: This is the arrow for "Forward" buttons
655−#: qml/Wizard/StackButton.qml:42
656−#, qt-format
657−msgid "%1 〉"
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"
658736msgstr ""
659737
660738#~ msgid "Top edge"
po/cs.po+487−239
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+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,8 +15,8 @@ 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-03-13 05:50+0000\n"
19−"X-Generator: Launchpad (build 17939)\n"
18+"X-Launchpad-Export-Date: 2016-05-06 04:54+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020"Language: cs\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -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:217
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:182
118100msgid "Yes"
119101msgstr "Ano"
120102
121−#: qml/Components/Dialogs.qml:232
103+#: qml/Components/Dialogs.qml:197
122104msgctxt "Title: Power off/Restart dialog"
123105msgid "Power"
124106msgstr "Vypnutí"
125107
126−#: qml/Components/Dialogs.qml:233
108+#: qml/Components/Dialogs.qml:198
127109msgid ""
128110"Are you sure you would like\n"
129111"to power off?"
@@ -131,12 +113,12 @@ msgstr ""
131113"Jste si jistí, že chcete\n"
132114"telefon vypnout?"
133115
134−#: qml/Components/Dialogs.qml:235
116+#: qml/Components/Dialogs.qml:200
135117msgctxt "Button: Power off the system"
136118msgid "Power off"
137119msgstr "Vypnutí"
138120
139−#: qml/Components/Dialogs.qml:244
121+#: qml/Components/Dialogs.qml:209
140122msgctxt "Button: Restart the system"
141123msgid "Restart"
142124msgstr "Reboot"
@@ -179,42 +161,58 @@ msgstr ""
179161msgid "Close all"
180162msgstr ""
181163
182−#: qml/Dash/DashPageHeader.qml:270
164+#: qml/Dash/DashPageHeader.qml:337
183165msgctxt "Button: Open the Ubuntu Store"
184166msgid "Store"
185167msgstr "Obchod"
186168
187−#: qml/Dash/DashPageHeader.qml:277
169+#: qml/Dash/DashPageHeader.qml:344
188170msgctxt "Button: Start a search in the current dash scope"
189171msgid "Search"
190172msgstr "Hledat"
191173
192−#: qml/Dash/DashPageHeader.qml:287
174+#: qml/Dash/DashPageHeader.qml:354
193175msgctxt "Button: Show the current dash scope settings"
194176msgid "Settings"
195177msgstr "Nastavení"
196178
197−#: qml/Dash/DashPageHeader.qml:294
179+#: qml/Dash/DashPageHeader.qml:361
198180msgid "Remove from Favorites"
199181msgstr "Odstranit z oblíbených"
200182
201−#: qml/Dash/DashPageHeader.qml:294
183+#: qml/Dash/DashPageHeader.qml:361
202184msgid "Add to Favorites"
203185msgstr "Přidat do oblíbených"
204186
205−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
206−msgid "See less"
207−msgstr "Zobrazit méně"
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:579 qml/Dash/GenericScopeView.qml:764
196+msgid "Show less"
197+msgstr ""
208198
209−#: qml/Dash/GenericScopeView.qml:567
210−msgid "See all"
211−msgstr "Zobrazit vše"
199+#: qml/Dash/GenericScopeView.qml:579
200+msgid "Show all"
201+msgstr ""
212202
213−#: qml/Dash/GenericScopeView.qml:629
203+#: qml/Dash/GenericScopeView.qml:636
214204msgctxt "Label: Hint for dash search line edit"
215205msgid "Search"
216206msgstr "Hledat"
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 "Více..."
@@ -282,11 +280,11 @@ msgstr "Znovu"
282280msgid "Tap to unlock"
283281msgstr "Klepnout pro odemčení"
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 "Zadali jste špatné heslo."
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 "Zadali jste špatné heslo."
292290
@@ -315,7 +313,7 @@ msgstr ""
315313msgid "Enter %1"
316314msgstr "Vložte %1"
317315
318−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
316+#: qml/Greeter/NarrowView.qml:117
319317msgid "Enter passphrase"
320318msgstr "Vložte heslo"
321319
@@ -341,7 +339,7 @@ msgstr ""
341339msgid "Sorry, incorrect passcode"
342340msgstr "Špatné heslo"
343341
344−#: qml/Notifications/NotificationMenuItemFactory.qml:129
342+#: qml/Notifications/NotificationMenuItemFactory.qml:124
345343msgid "Show password"
346344msgstr "Zobrazit heslo"
347345
@@ -353,11 +351,11 @@ msgstr "Klepnutím se vrátíte k hovoru..."
353351msgid "Conference"
354352msgstr "Konferenční hovor"
355353
356−#: qml/Panel/Indicators/MenuItemFactory.qml:752
354+#: qml/Panel/Indicators/MenuItemFactory.qml:762
357355msgid "Nothing is playing"
358356msgstr "Nic se nepřehrává"
359357
360−#: qml/Panel/Indicators/MenuItemFactory.qml:881
358+#: qml/Panel/Indicators/MenuItemFactory.qml:891
361359#, qt-format
362360msgid "%1 hour"
363361msgid_plural "%1 hours"
@@ -365,7 +363,7 @@ msgstr[0] "%1 hodina"
365363msgstr[1] "%1 hodiny"
366364msgstr[2] "%1 hodin"
367365
368−#: qml/Panel/Indicators/MenuItemFactory.qml:885
366+#: qml/Panel/Indicators/MenuItemFactory.qml:895
369367#, qt-format
370368msgid "%1 minute"
371369msgid_plural "%1 minutes"
@@ -373,7 +371,7 @@ msgstr[0] "%1 minuta"
373371msgstr[1] "%1 minuty"
374372msgstr[2] "%1 minut"
375373
376−#: qml/Panel/Indicators/MenuItemFactory.qml:890
374+#: qml/Panel/Indicators/MenuItemFactory.qml:900
377375#, qt-format
378376msgid "%1 second"
379377msgid_plural "%1 seconds"
@@ -381,37 +379,37 @@ msgstr[0] "%1 sekunda"
381379msgstr[1] "%1 sekundy"
382380msgstr[2] "%1 sekund"
383381
384−#: qml/Panel/Indicators/MenuItemFactory.qml:893
382+#: qml/Panel/Indicators/MenuItemFactory.qml:903
385383msgid "0 seconds"
386384msgstr "0 sekund"
387385
388386#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
389−#: qml/Panel/Indicators/MenuItemFactory.qml:895
387+#: qml/Panel/Indicators/MenuItemFactory.qml:905
390388#, qt-format
391389msgid "%1 remaining"
392390msgstr "Zbývá %1"
393391
394−#: qml/Panel/Indicators/MenuItemFactory.qml:901
392+#: qml/Panel/Indicators/MenuItemFactory.qml:911
395393msgid "In queue…"
396394msgstr "Ve frontě..."
397395
398−#: qml/Panel/Indicators/MenuItemFactory.qml:905
396+#: qml/Panel/Indicators/MenuItemFactory.qml:915
399397msgid "Downloading"
400398msgstr "Stahování"
401399
402−#: qml/Panel/Indicators/MenuItemFactory.qml:907
400+#: qml/Panel/Indicators/MenuItemFactory.qml:917
403401msgid "Paused, tap to resume"
404402msgstr "Pauza, pro pokračování klepněte"
405403
406−#: qml/Panel/Indicators/MenuItemFactory.qml:909
404+#: qml/Panel/Indicators/MenuItemFactory.qml:919
407405msgid "Canceled"
408406msgstr "Zrušeno"
409407
410−#: qml/Panel/Indicators/MenuItemFactory.qml:911
408+#: qml/Panel/Indicators/MenuItemFactory.qml:921
411409msgid "Finished"
412410msgstr "Dokončeno"
413411
414−#: qml/Panel/Indicators/MenuItemFactory.qml:913
412+#: qml/Panel/Indicators/MenuItemFactory.qml:923
415413msgid "Failed, tap to retry"
416414msgstr "Nezdařilo se, opakujte klepnutím"
417415
@@ -431,251 +429,324 @@ msgctxt "Button: Call back on phone"
431429msgid "Call back"
432430msgstr ""
433431
434−#: qml/Tutorial/TutorialBottom.qml:28
435−msgid "Open special menus"
436−msgstr "Otevřít speciální menu"
437−
438−#: qml/Tutorial/TutorialBottom.qml:29
439−msgid "Swipe up from the bottom edge."
440−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 ""
441435
442−#: qml/Tutorial/TutorialBottomFinish.qml:24
443−msgid "This action does different things for different apps"
444−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 ""
445439
446−#: qml/Tutorial/TutorialBottomFinish.qml:25
447−msgid "Tap here to finish."
448−msgstr "Klepněte zde pro dokončení."
440+#: qml/Tutorial/TutorialBottom.qml:80
441+msgid "Swipe up for favorite calculations"
442+msgstr ""
449443
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 "Klepněte zde pro pokračování."
444+#: qml/Tutorial/TutorialBottom.qml:82
445+msgid "Swipe up for recent calls"
446+msgstr ""
454447
455−#: qml/Tutorial/TutorialLeft.qml:26
456−msgid "Open the launcher"
457−msgstr "Otevřete launcher"
448+#: qml/Tutorial/TutorialBottom.qml:84
449+msgid "Swipe up to create a message"
450+msgstr ""
458451
459−#: qml/Tutorial/TutorialLeft.qml:27
460−msgid "Short swipe from the left edge."
461−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 ""
462455
463−#: qml/Tutorial/TutorialLeftFinish.qml:24
464−msgid "These are the shortcuts to favorite apps"
465−msgstr "Zde jsou odkazy na vaše oblíbené aplikace"
456+#: qml/Tutorial/TutorialLeftLong.qml:47
457+msgid "Long swipe from the left edge to open the Today scope"
458+msgstr ""
466459
467−#: qml/Tutorial/TutorialPage.qml:178
468−msgid "You almost got it!"
469−msgstr "Už to skoro máte!"
460+#: qml/Tutorial/TutorialLeft.qml:47
461+msgid "Swipe from the left edge to open the launcher"
462+msgstr ""
470463
471−#: qml/Tutorial/TutorialPage.qml:195
472−msgid "Try again."
473−msgstr "Zkuste to znovu."
464+#: qml/Tutorial/TutorialRight.qml:55
465+msgid "Push your mouse against the right edge to view your open apps"
466+msgstr ""
474467
475−#: qml/Tutorial/TutorialRight.qml:31
476−msgid "To view open apps"
477−msgstr "K zobrazení otevřených aplikací"
468+#: qml/Tutorial/TutorialRight.qml:56
469+msgid "Short or long swipe from the right edge to view your open apps"
470+msgstr ""
478471
479−#: qml/Tutorial/TutorialRight.qml:32
480−msgid "Long swipe from the right edge."
481−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 ""
482475
483−#: qml/Tutorial/TutorialRight.qml:122
484−msgid "View all your running tasks."
485−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 ""
486479
487−#: qml/Wizard/Page.qml:89
480+#: qml/Wizard/Page.qml:54
488481msgctxt "Button: Go back one page in the Wizard"
489482msgid "Back"
490483msgstr "Zpět"
491484
492485#: qml/Wizard/Pages/10-welcome.qml:27
493−msgid "Hi!"
494−msgstr "Ahoj!"
486+msgid "Language"
487+msgstr ""
495488
496−#: qml/Wizard/Pages/10-welcome.qml:44
497−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"
498496msgstr ""
499497
500−#: qml/Wizard/Pages/10-welcome.qml:52
501−msgid "Let’s get started."
502−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"
503501
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 "Pokračovat"
502+#: qml/Wizard/Pages/30-wifi.qml:130
503+msgid "Connected"
504+msgstr ""
510505
511−#: qml/Wizard/Pages/20-sim.qml:25
512−msgid "Add a SIM card and restart your device"
513−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 ""
514509
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 "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 ""
518513
519−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
514+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
515+#: qml/Wizard/Pages/sim.qml:101
520516msgid "Skip"
521517msgstr "Přeskočit"
522518
523−#: qml/Wizard/Pages/30-passwd-type.qml:39
524−msgid "Lock security"
525−msgstr "Bezpečnostní uzamčení"
519+#: qml/Wizard/Pages/40-location.qml:27
520+msgid "Location Services"
521+msgstr ""
526522
527−#: qml/Wizard/Pages/30-passwd-type.qml:79
528−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)"
529527msgstr ""
530528
531−#: qml/Wizard/Pages/30-passwd-type.qml:102
532−msgctxt "Label: Type of security method"
533−msgid "Swipe"
534−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 ""
535533
536−#: qml/Wizard/Pages/30-passwd-type.qml:103
537−msgctxt "Label: Description of security method"
538−msgid "No security"
539−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 ""
540538
541−#: qml/Wizard/Pages/30-passwd-type.qml:105
539+#: qml/Wizard/Pages/40-location.qml:160
540+msgid "GPS only"
541+msgstr ""
542+
543+#: qml/Wizard/Pages/40-location.qml:214
544+msgid "Don't use my location"
545+msgstr ""
546+
547+#: qml/Wizard/Pages/40-location.qml:260
548+msgid "You can change it later in System Settings."
549+msgstr ""
550+
551+#: qml/Wizard/Pages/50-timezone.qml:29
552+msgid "Time Zone"
553+msgstr ""
554+
555+#: qml/Wizard/Pages/50-timezone.qml:178
556+msgid "Enter your city"
557+msgstr ""
558+
559+#: qml/Wizard/Pages/60-account.qml:24
560+msgid "Personalize Your Device"
561+msgstr ""
562+
563+#: qml/Wizard/Pages/60-account.qml:48
564+msgid "Preferred Name"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/70-passwd-type.qml:39
568+msgid "Lock Screen"
569+msgstr ""
570+
571+#: qml/Wizard/Pages/70-passwd-type.qml:101
542572msgctxt "Label: Type of security method"
543−msgid "Passcode"
544−msgstr "Číselné heslo"
573+msgid "Create new password"
574+msgstr ""
545575
546−#: qml/Wizard/Pages/30-passwd-type.qml:106
547−msgctxt "Label: Description of security method"
548−msgid "4 digits only"
549−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 ""
550580
551−#: qml/Wizard/Pages/30-passwd-type.qml:108
581+#: qml/Wizard/Pages/70-passwd-type.qml:105
552582msgctxt "Label: Type of security method"
553−msgid "Passphrase"
554−msgstr "Heslo"
583+msgid "No lock code"
584+msgstr ""
555585
556−#: qml/Wizard/Pages/30-passwd-type.qml:109
557−msgctxt "Label: Description of security method"
558−msgid "Numbers and letters"
559−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 ""
560589
561−#: qml/Wizard/Pages/40-wifi.qml:29
562−msgid "Connect to Wi‑Fi"
563−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 ""
564597
565−#: qml/Wizard/Pages/40-wifi.qml:168
566−msgid "Available networks…"
567−msgstr "Dostupné sítě..."
598+#: qml/Wizard/Pages/75-report-check.qml:60
599+msgid "Privacy policy"
600+msgstr ""
568601
569−#: qml/Wizard/Pages/40-wifi.qml:169
570−msgid "No available networks."
571−msgstr "Žádná dostupná síť."
602+#: qml/Wizard/Pages/80-finished.qml:89
603+msgid "Welcome to Ubuntu"
604+msgstr ""
572605
573−#: qml/Wizard/Pages/50-location.qml:27
574−msgid "Location"
575−msgstr "Umístění"
606+#: qml/Wizard/Pages/80-finished.qml:104
607+msgid "You are ready to use your device now"
608+msgstr ""
576609
577−#: qml/Wizard/Pages/50-location.qml:62
578−msgid "Let the phone detect your location:"
579−msgstr "Povolte telefonu zjistit, kde se zrovna nacházíte:"
610+#: qml/Wizard/Pages/80-finished.qml:124
611+msgid "Get Started"
612+msgstr ""
580613
581−#: qml/Wizard/Pages/50-location.qml:69
582−msgid "Using GPS only (less accurate)"
583−msgstr "Používat pouze GPS (méně přesné)"
614+#: qml/Wizard/Pages/here-terms.qml:25
615+msgid "Terms & Conditions"
616+msgstr "Pravidla a podmínky"
584617
585−#: qml/Wizard/Pages/50-location.qml:86
586−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
587−msgstr "Používat GPS, anonymní Wi-Fi a datovou síť (doporučeno)"
618+#: qml/Wizard/Pages/here-terms.qml:69
619+msgid "Your device uses positioning technologies provided by HERE."
620+msgstr ""
588621
589−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
590−#: qml/Wizard/Pages/50-location.qml:103
622+#: qml/Wizard/Pages/here-terms.qml:81
591623msgid ""
592−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
593−"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."
594627msgstr ""
595−"Zvolením této možnosti souhlasíte s <a href='#'>pravidly a podmínkami</a> "
596−"Nokia HERE."
597628
598−#: qml/Wizard/Pages/50-location.qml:112
599−msgid "Not at all"
600−msgstr "V žádném případě"
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 ""
601634
602−#: qml/Wizard/Pages/50-location.qml:124
603−msgid "You can change your mind later in <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."
604638msgstr ""
605−"Pokud změníte názor, můžete nastavení změnit v <b>Nastavení systému</b>."
606639
607−#: qml/Wizard/Pages/60-reporting.qml:26
608−msgid "Improving your experience"
609−msgstr "Zlepšete své zkušenosti"
640+#: qml/Wizard/Pages/here-terms.qml:107
641+msgid "Service Terms"
642+msgstr ""
610643
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."
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"
648+
649+#: qml/Wizard/Pages/passcode-confirm.qml:45
650+msgid "Incorrect passcode."
615651msgstr ""
616−"Váš telefon je nastaven tak, aby automaticky odesílal informace o chybách "
617−"společnosti Canonical a partnerům, kteří stvořili tento operační systém."
618652
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>"
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
654+msgctxt "Enter the passcode again"
655+msgid "Please re-enter."
623656msgstr ""
624−"To může být vypnuto v <b>Nastavení systému</b> v <b>Zabezpečení a "
625−"soukromí</b>"
626657
627−#: qml/Wizard/Pages/80-finished.qml:24
628−msgid "All done"
629−msgstr "Vše je hotovo"
658+#: qml/Wizard/Pages/passcode-desktop.qml:30
659+msgid "Lock Screen Passcode"
660+msgstr ""
630661
631−#: qml/Wizard/Pages/80-finished.qml:39
632−msgid "Nice work!"
633−msgstr "Skvělá práce!"
662+#: qml/Wizard/Pages/passcode-desktop.qml:56
663+msgid "Enter 4 numbers to setup your passcode"
664+msgstr ""
634665
635−#: qml/Wizard/Pages/80-finished.qml:46
636−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"
637669msgstr ""
638670
639−#: qml/Wizard/Pages/80-finished.qml:53
640−msgid "Finish"
641−msgstr "Dokončit"
671+#: qml/Wizard/Pages/passcode-desktop.qml:105
672+msgid "Passcode too short"
673+msgstr ""
642674
643−#: qml/Wizard/Pages/here-terms.qml:27
644−msgid "Terms & Conditions"
645−msgstr "Pravidla a podmínky"
675+#: qml/Wizard/Pages/passcode-desktop.qml:107
676+msgid "Passcodes match"
677+msgstr ""
646678
647−#: qml/Wizard/Pages/passwd-confirm.qml:49
648−msgid "Confirm passphrase"
649−msgstr "Potvrdit heslo"
679+#: qml/Wizard/Pages/passcode-desktop.qml:109
680+msgid "Passcodes do not match"
681+msgstr ""
650682
651−#: qml/Wizard/Pages/passwd-confirm.qml:50
652−msgid "Confirm passcode"
653−msgstr "Potvrdit číselné heslo"
683+#: qml/Wizard/Pages/passcode-set.qml:62
684+msgid "Passcode must be 4 characters long"
685+msgstr ""
654686
655−#: qml/Wizard/Pages/passwd-confirm.qml:53
656−#: qml/Wizard/Pages/passwd-confirm.qml:54
657−msgid "Please try again."
658−msgstr "Zkuste to, prosím, znovu."
687+#: qml/Wizard/Pages/password-set.qml:30
688+msgid "Lock Screen Password"
689+msgstr ""
659690
660−#: qml/Wizard/Pages/passwd-set.qml:61
661−msgid "Choose your passcode"
662−msgstr "Zvolte své heslo"
691+#: qml/Wizard/Pages/password-set.qml:61
692+msgid "Enter at least 8 characters"
693+msgstr ""
663694
664−#: qml/Wizard/Pages/passwd-set.qml:68
665−msgid "Passphrase must be 4 characters long"
666−msgstr "Heslo musí být alespoň 4 znaky dlouhé"
695+#: qml/Wizard/Pages/password-set.qml:73
696+msgid "Choose password"
697+msgstr ""
667698
668−#. Translators: This is the arrow for "Back" buttons
669−#: qml/Wizard/StackButton.qml:39
670−#, qt-format
671−msgid "〈 %1"
672−msgstr "〈 %1"
699+#: qml/Wizard/Pages/password-set.qml:103
700+msgid "Confirm password"
701+msgstr ""
673702
674−#. Translators: This is the arrow for "Forward" buttons
675−#: qml/Wizard/StackButton.qml:42
676−#, qt-format
677−msgid "%1 〉"
678−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 "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 ""
679750
680751#~ msgid "Try swiping from the right edge to unlock the phone"
681752#~ msgstr "Pokuste se odemknout telefon potažením prstu z pravého okraje."
@@ -725,9 +796,30 @@ msgstr "%1 〉"
725796#~ msgid "Swipe up again to close the settings screen"
726797#~ msgstr "Přetažením nahoru dojde k uzavření obrazovky nastavení"
727798
799+#~ msgid "See all"
800+#~ msgstr "Zobrazit vše"
801+
802+#~ msgid "See less"
803+#~ msgstr "Zobrazit méně"
804+
728805#~ msgid "Store"
729806#~ msgstr "Obchod"
730807
808+#~ msgctxt "Title: Reboot/Shut down dialog"
809+#~ msgid "Shut down"
810+#~ msgstr "Vypnout"
811+
812+#~ msgid "Are you sure you want to shut down?"
813+#~ msgstr "Jste si jistí, že chcete zařízení vypnout?"
814+
815+#~ msgctxt "Button: Reboot the system"
816+#~ msgid "Reboot"
817+#~ msgstr "Restartovat"
818+
819+#~ msgctxt "Button: Shut down the system"
820+#~ msgid "Shut down"
821+#~ msgstr "Vypnout"
822+
731823#~ msgid "Please re-enter"
732824#~ msgstr "Vložte znovu"
733825
@@ -737,15 +829,174 @@ msgstr "%1 〉"
737829#~ msgid "Roaming"
738830#~ msgstr "Roaming"
739831
832+#~ msgid "This action does different things for different apps"
833+#~ msgstr "Tato akce vyvolá různé reakce v rozdílných aplikacích"
834+
835+#~ msgid "Tap here to finish."
836+#~ msgstr "Klepněte zde pro dokončení."
837+
838+#~ msgid "Open special menus"
839+#~ msgstr "Otevřít speciální menu"
840+
841+#~ msgid "Swipe up from the bottom edge."
842+#~ msgstr "Potáhněte prstem z dola nahoru."
843+
844+#~ msgid "Tap here to continue."
845+#~ msgstr "Klepněte zde pro pokračování."
846+
847+#~ msgid "These are the shortcuts to favorite apps"
848+#~ msgstr "Zde jsou odkazy na vaše oblíbené aplikace"
849+
850+#~ msgid "Open the launcher"
851+#~ msgstr "Otevřete launcher"
852+
853+#~ msgid "Short swipe from the left edge."
854+#~ msgstr "Potáhněte krátce z levého okraje."
855+
856+#~ msgid "You almost got it!"
857+#~ msgstr "Už to skoro máte!"
858+
859+#~ msgid "Try again."
860+#~ msgstr "Zkuste to znovu."
861+
862+#~ msgid "To view open apps"
863+#~ msgstr "K zobrazení otevřených aplikací"
864+
865+#~ msgid "Long swipe from the right edge."
866+#~ msgstr "Potáhněte dlouho z pravého okraje."
867+
868+#~ msgid "View all your running tasks."
869+#~ msgstr "Zobrazíte všechny běžící procesy."
870+
871+#~ msgid "Hi!"
872+#~ msgstr "Ahoj!"
873+
740874#~ msgid "Welcome to your Ubuntu phone."
741875#~ msgstr "Vítejte ve vašem Ubuntu telefonu."
742876
877+#~ msgid "Let’s get started."
878+#~ msgstr "Začněme."
879+
880+#~ msgid "Continue"
881+#~ msgstr "Pokračovat"
882+
883+#~ msgid "Add a SIM card and restart your device"
884+#~ msgstr "Vložte SIM kartu a restartujte své zařízení"
885+
886+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
887+#~ msgstr "Bez ni nebudete moci telefonovat nebo posílat textové zprávy."
888+
889+#~ msgid "Lock security"
890+#~ msgstr "Bezpečnostní uzamčení"
891+
743892#~ msgid "Please select how you’d like to unlock your phone."
744893#~ msgstr "Zvolte, prosím, jak chcete svůj telefon odemykat."
745894
895+#~ msgctxt "Label: Type of security method"
896+#~ msgid "Swipe"
897+#~ msgstr "Potažením prstu"
898+
899+#~ msgctxt "Label: Description of security method"
900+#~ msgid "No security"
901+#~ msgstr "Bez zabezpečení"
902+
903+#~ msgctxt "Label: Type of security method"
904+#~ msgid "Passcode"
905+#~ msgstr "Číselné heslo"
906+
907+#~ msgctxt "Label: Description of security method"
908+#~ msgid "4 digits only"
909+#~ msgstr "Pouze 4 čísla"
910+
911+#~ msgctxt "Label: Type of security method"
912+#~ msgid "Passphrase"
913+#~ msgstr "Heslo"
914+
915+#~ msgctxt "Label: Description of security method"
916+#~ msgid "Numbers and letters"
917+#~ msgstr "Čísla a písmena"
918+
919+#~ msgid "Available networks…"
920+#~ msgstr "Dostupné sítě..."
921+
922+#~ msgid "No available networks."
923+#~ msgstr "Žádná dostupná síť."
924+
925+#~ msgid "Location"
926+#~ msgstr "Umístění"
927+
928+#~ msgid "Let the phone detect your location:"
929+#~ msgstr "Povolte telefonu zjistit, kde se zrovna nacházíte:"
930+
931+#~ msgid "Using GPS only (less accurate)"
932+#~ msgstr "Používat pouze GPS (méně přesné)"
933+
934+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
935+#~ msgstr "Používat GPS, anonymní Wi-Fi a datovou síť (doporučeno)"
936+
937+#~ msgid ""
938+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
939+#~ "conditions</a>."
940+#~ msgstr ""
941+#~ "Zvolením této možnosti souhlasíte s <a href='#'>pravidly a podmínkami</a> "
942+#~ "Nokia HERE."
943+
944+#~ msgid "Not at all"
945+#~ msgstr "V žádném případě"
946+
947+#~ msgid "You can change your mind later in <b>System Settings</b>."
948+#~ msgstr ""
949+#~ "Pokud změníte názor, můžete nastavení změnit v <b>Nastavení systému</b>."
950+
951+#~ msgid "Improving your experience"
952+#~ msgstr "Zlepšete své zkušenosti"
953+
954+#~ msgid ""
955+#~ "Your phone is set up to automatically report errors to Canonical and its "
956+#~ "partners, the makers of the operating system."
957+#~ msgstr ""
958+#~ "Váš telefon je nastaven tak, aby automaticky odesílal informace o chybách "
959+#~ "společnosti Canonical a partnerům, kteří stvořili tento operační systém."
960+
961+#~ msgid ""
962+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
963+#~ "Privacy</b>"
964+#~ msgstr ""
965+#~ "To může být vypnuto v <b>Nastavení systému</b> v <b>Zabezpečení a "
966+#~ "soukromí</b>"
967+
968+#~ msgid "All done"
969+#~ msgstr "Vše je hotovo"
970+
971+#~ msgid "Nice work!"
972+#~ msgstr "Skvělá práce!"
973+
746974#~ msgid "Your phone is now ready to use."
747975#~ msgstr "Váš telefon je nyní připraven k použití."
748976
977+#~ msgid "Finish"
978+#~ msgstr "Dokončit"
979+
980+#~ msgid "Confirm passphrase"
981+#~ msgstr "Potvrdit heslo"
982+
983+#~ msgid "Please try again."
984+#~ msgstr "Zkuste to, prosím, znovu."
985+
986+#~ msgid "Choose your passcode"
987+#~ msgstr "Zvolte své heslo"
988+
989+#~ msgid "Passphrase must be 4 characters long"
990+#~ msgstr "Heslo musí být alespoň 4 znaky dlouhé"
991+
992+#, qt-format
993+#~ msgid "〈 %1"
994+#~ msgstr "〈 %1"
995+
996+#, qt-format
997+#~ msgid "%1 〉"
998+#~ msgstr "%1 〉"
999+
7491000#~ msgid "Log out"
7501001#~ msgstr "Odhlásit se"
7511002
@@ -785,9 +1036,6 @@ msgstr "%1 〉"
7851036#~ msgid "%a %d %b %l:%M %p"
7861037#~ msgstr "%a %b. %d %l:%M %p"
7871038
788−#~ msgid "Restart"
789−#~ msgstr "Reboot"
790−
7911039#~ msgid "Settings"
7921040#~ msgstr "Nastavení"
7931041
po/cy.po+487−236
@@ -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-03-10 22:48+0000\n"
10+"POT-Creation-Date: 2016-05-04 18:09+0000\n"
1111"PO-Revision-Date: 2015-07-31 13:21+0000\n"
1212"Last-Translator: Owen Llywelyn <owen.llywelyn@gmail.com>\n"
1313"Language-Team: Welsh <cy@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
1818"2 : 3;\n"
19−"X-Launchpad-Export-Date: 2016-03-13 05:51+0000\n"
20−"X-Generator: Launchpad (build 17939)\n"
19+"X-Launchpad-Export-Date: 2016-05-06 04:55+0000\n"
20+"X-Generator: Launchpad (build 17995)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -78,53 +78,35 @@ msgctxt "Button: Log out from the system"
7878msgid "Log Out"
7979msgstr "Allgofnodi"
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:217
82+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
83+#: qml/Wizard/Pages/passcode-set.qml:32
8384msgid "Cancel"
8485msgstr "Diddymu"
8586
8687#: qml/Components/Dialogs.qml:173
87−msgctxt "Title: Reboot/Shut down dialog"
88−msgid "Shut down"
89−msgstr "Diffodd"
90−
91−#: qml/Components/Dialogs.qml:174
92−msgid "Are you sure you want to shut down?"
93−msgstr "Ydych chi'n sicr eich bod am ddiffodd?"
94−
95−#: qml/Components/Dialogs.qml:176
96−msgctxt "Button: Reboot the system"
97−msgid "Reboot"
98−msgstr "Ailgychwyn"
99−
100−#: qml/Components/Dialogs.qml:185
101−msgctxt "Button: Shut down the system"
102−msgid "Shut down"
103−msgstr "Diffodd"
104−
105−#: qml/Components/Dialogs.qml:207
10688msgctxt "Title: Reboot dialog"
10789msgid "Reboot"
10890msgstr "Ailgychwyn"
10991
110−#: qml/Components/Dialogs.qml:208
92+#: qml/Components/Dialogs.qml:174
11193msgid "Are you sure you want to reboot?"
11294msgstr "Ydych chi'n sicr eich bod am ailgychwyn?"
11395
114−#: qml/Components/Dialogs.qml:210
96+#: qml/Components/Dialogs.qml:176
11597msgid "No"
11698msgstr "Na"
11799
118−#: qml/Components/Dialogs.qml:217
100+#: qml/Components/Dialogs.qml:182
119101msgid "Yes"
120102msgstr "Ydw"
121103
122−#: qml/Components/Dialogs.qml:232
104+#: qml/Components/Dialogs.qml:197
123105msgctxt "Title: Power off/Restart dialog"
124106msgid "Power"
125107msgstr "Pŵer"
126108
127−#: qml/Components/Dialogs.qml:233
109+#: qml/Components/Dialogs.qml:198
128110msgid ""
129111"Are you sure you would like\n"
130112"to power off?"
@@ -132,12 +114,12 @@ msgstr ""
132114"Ydych chi'n sicr eich bod am\n"
133115"ddiffodd y pŵer?"
134116
135−#: qml/Components/Dialogs.qml:235
117+#: qml/Components/Dialogs.qml:200
136118msgctxt "Button: Power off the system"
137119msgid "Power off"
138120msgstr "Diffodd y pŵer"
139121
140−#: qml/Components/Dialogs.qml:244
122+#: qml/Components/Dialogs.qml:209
141123msgctxt "Button: Restart the system"
142124msgid "Restart"
143125msgstr "Ailgychwyn"
@@ -180,42 +162,58 @@ msgstr ""
180162msgid "Close all"
181163msgstr ""
182164
183−#: qml/Dash/DashPageHeader.qml:270
165+#: qml/Dash/DashPageHeader.qml:337
184166msgctxt "Button: Open the Ubuntu Store"
185167msgid "Store"
186168msgstr "Marchnad"
187169
188−#: qml/Dash/DashPageHeader.qml:277
170+#: qml/Dash/DashPageHeader.qml:344
189171msgctxt "Button: Start a search in the current dash scope"
190172msgid "Search"
191173msgstr "Chwilio"
192174
193−#: qml/Dash/DashPageHeader.qml:287
175+#: qml/Dash/DashPageHeader.qml:354
194176msgctxt "Button: Show the current dash scope settings"
195177msgid "Settings"
196178msgstr "Gosodiadau"
197179
198−#: qml/Dash/DashPageHeader.qml:294
180+#: qml/Dash/DashPageHeader.qml:361
199181msgid "Remove from Favorites"
200182msgstr "Tynnu o Ffefrynnau"
201183
202−#: qml/Dash/DashPageHeader.qml:294
184+#: qml/Dash/DashPageHeader.qml:361
203185msgid "Add to Favorites"
204186msgstr "Ychwanegu at Ffefrynnau"
205187
206−#: qml/Dash/GenericScopeView.qml:567 qml/Dash/GenericScopeView.qml:725
207−msgid "See less"
208−msgstr "Gweld llai"
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:579 qml/Dash/GenericScopeView.qml:764
197+msgid "Show less"
198+msgstr ""
209199
210−#: qml/Dash/GenericScopeView.qml:567
211−msgid "See all"
212−msgstr "Gweld y cyfan"
200+#: qml/Dash/GenericScopeView.qml:579
201+msgid "Show all"
202+msgstr ""
213203
214−#: qml/Dash/GenericScopeView.qml:629
204+#: qml/Dash/GenericScopeView.qml:636
215205msgctxt "Label: Hint for dash search line edit"
216206msgid "Search"
217207msgstr "Chwilio"
218208
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+
219217#: qml/Dash/Previews/PreviewActionCombo.qml:35
220218msgid "More..."
221219msgstr "Mwy..."
@@ -283,11 +281,11 @@ msgstr "Ailgynnig"
283281msgid "Tap to unlock"
284282msgstr "Tapiwch i ddatgloi"
285283
286−#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
284+#: qml/Greeter/NarrowView.qml:54
287285msgid "Sorry, incorrect passphrase."
288286msgstr "Cyfrinair anghywir"
289287
290−#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
288+#: qml/Greeter/NarrowView.qml:55
291289msgid "Sorry, incorrect passcode."
292290msgstr "Cod cyfrinachol anghywir"
293291
@@ -316,7 +314,7 @@ msgstr ""
316314msgid "Enter %1"
317315msgstr "Rhowch %1"
318316
319−#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
317+#: qml/Greeter/NarrowView.qml:117
320318msgid "Enter passphrase"
321319msgstr "Rhowch gyfrinair"
322320
@@ -342,7 +340,7 @@ msgstr "Ceisiwch eto"
342340msgid "Sorry, incorrect passcode"
343341msgstr "Cod cyfrinachol anghywir"
344342
345−#: qml/Notifications/NotificationMenuItemFactory.qml:129
343+#: qml/Notifications/NotificationMenuItemFactory.qml:124
346344msgid "Show password"
347345msgstr "Dangos cyfrinair"
348346
@@ -354,11 +352,11 @@ msgstr "Tapiwch i ffonio nôl"
354352msgid "Conference"
355353msgstr "Cydalwad"
356354
357−#: qml/Panel/Indicators/MenuItemFactory.qml:752
355+#: qml/Panel/Indicators/MenuItemFactory.qml:762
358356msgid "Nothing is playing"
359357msgstr "Dim byd yn chwarae"
360358
361−#: qml/Panel/Indicators/MenuItemFactory.qml:881
359+#: qml/Panel/Indicators/MenuItemFactory.qml:891
362360#, qt-format
363361msgid "%1 hour"
364362msgid_plural "%1 hours"
@@ -367,7 +365,7 @@ msgstr[1] "%1 awr"
367365msgstr[2] "%1 awr"
368366msgstr[3] "%1 awr"
369367
370−#: qml/Panel/Indicators/MenuItemFactory.qml:885
368+#: qml/Panel/Indicators/MenuItemFactory.qml:895
371369#, qt-format
372370msgid "%1 minute"
373371msgid_plural "%1 minutes"
@@ -376,7 +374,7 @@ msgstr[1] "%1 munud"
376374msgstr[2] "%1 munud"
377375msgstr[3] "%1 munud"
378376
379−#: qml/Panel/Indicators/MenuItemFactory.qml:890
377+#: qml/Panel/Indicators/MenuItemFactory.qml:900
380378#, qt-format
381379msgid "%1 second"
382380msgid_plural "%1 seconds"
@@ -385,37 +383,37 @@ msgstr[1] "%1 eiliad"
385383msgstr[2] "%1 eiliad"
386384msgstr[3] "%1 eiliad"
387385
388−#: qml/Panel/Indicators/MenuItemFactory.qml:893
386+#: qml/Panel/Indicators/MenuItemFactory.qml:903
389387msgid "0 seconds"
390388msgstr "0 eiliad"
391389
392390#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
393−#: qml/Panel/Indicators/MenuItemFactory.qml:895
391+#: qml/Panel/Indicators/MenuItemFactory.qml:905
394392#, qt-format
395393msgid "%1 remaining"
396394msgstr "%1 yn weddill"
397395
398−#: qml/Panel/Indicators/MenuItemFactory.qml:901
396+#: qml/Panel/Indicators/MenuItemFactory.qml:911
399397msgid "In queue…"
400398msgstr "Mewn ciw..."
401399
402−#: qml/Panel/Indicators/MenuItemFactory.qml:905
400+#: qml/Panel/Indicators/MenuItemFactory.qml:915
403401msgid "Downloading"
404402msgstr "Yn llwytho i lawr"
405403
406−#: qml/Panel/Indicators/MenuItemFactory.qml:907
404+#: qml/Panel/Indicators/MenuItemFactory.qml:917
407405msgid "Paused, tap to resume"
408406msgstr "Seibiwyd, tapiwch i ailafael ynddi"
409407
410−#: qml/Panel/Indicators/MenuItemFactory.qml:909
408+#: qml/Panel/Indicators/MenuItemFactory.qml:919
411409msgid "Canceled"
412410msgstr "Diddymwyd"
413411
414−#: qml/Panel/Indicators/MenuItemFactory.qml:911
412+#: qml/Panel/Indicators/MenuItemFactory.qml:921
415413msgid "Finished"
416414msgstr "Wedi gorffen"
417415
418−#: qml/Panel/Indicators/MenuItemFactory.qml:913
416+#: qml/Panel/Indicators/MenuItemFactory.qml:923
419417msgid "Failed, tap to retry"
420418msgstr "Methwyd, tapiwch i geisio eto"
421419
@@ -435,251 +433,324 @@ msgctxt "Button: Call back on phone"
435433msgid "Call back"
436434msgstr ""
437435
438−#: qml/Tutorial/TutorialBottom.qml:28
439−msgid "Open special menus"
440−msgstr "Agor dewislenni arbennig"
441−
442−#: qml/Tutorial/TutorialBottom.qml:29
443−msgid "Swipe up from the bottom edge."
444−msgstr "Trawiwch i fyny o'r ymyl gwaelod."
436+#: qml/Stages/SideStage.qml:76
437+msgid "Drag using 3 fingers any application from one window to the other"
438+msgstr ""
445439
446−#: qml/Tutorial/TutorialBottomFinish.qml:24
447−msgid "This action does different things for different apps"
448−msgstr "Mae'r weithred hon yn gwneud pethau gwahanol mewn apiau gwahanol"
440+#: qml/Tutorial/TutorialBottom.qml:78
441+msgid "Swipe up to add a contact"
442+msgstr ""
449443
450−#: qml/Tutorial/TutorialBottomFinish.qml:25
451−msgid "Tap here to finish."
452−msgstr "Tapiwch yma i orffen"
444+#: qml/Tutorial/TutorialBottom.qml:80
445+msgid "Swipe up for favorite calculations"
446+msgstr ""
453447
454−#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
455−#: qml/Tutorial/TutorialRight.qml:144
456−msgid "Tap here to continue."
457−msgstr "Tapiwch yma i barhau."
448+#: qml/Tutorial/TutorialBottom.qml:82
449+msgid "Swipe up for recent calls"
450+msgstr ""
458451
459−#: qml/Tutorial/TutorialLeft.qml:26
460−msgid "Open the launcher"
461−msgstr "Agor y lansiwr"
452+#: qml/Tutorial/TutorialBottom.qml:84
453+msgid "Swipe up to create a message"
454+msgstr ""
462455
463−#: qml/Tutorial/TutorialLeft.qml:27
464−msgid "Short swipe from the left edge."
465−msgstr "Trawiad byr o'r ymyl chwith."
456+#: qml/Tutorial/TutorialBottom.qml:85
457+msgid "Swipe up to manage the app"
458+msgstr ""
466459
467−#: qml/Tutorial/TutorialLeftFinish.qml:24
468−msgid "These are the shortcuts to favorite apps"
469−msgstr "Rhain yw'r llwybrau byr i'ch hoff apiau"
460+#: qml/Tutorial/TutorialLeftLong.qml:47
461+msgid "Long swipe from the left edge to open the Today scope"
462+msgstr ""
470463
471−#: qml/Tutorial/TutorialPage.qml:178
472−msgid "You almost got it!"
473−msgstr "Bron â bod!"
464+#: qml/Tutorial/TutorialLeft.qml:47
465+msgid "Swipe from the left edge to open the launcher"
466+msgstr ""
474467
475−#: qml/Tutorial/TutorialPage.qml:195
476−msgid "Try again."
477−msgstr "Ceisiwch eto."
468+#: qml/Tutorial/TutorialRight.qml:55
469+msgid "Push your mouse against the right edge to view your open apps"
470+msgstr ""
478471
479−#: qml/Tutorial/TutorialRight.qml:31
480−msgid "To view open apps"
481−msgstr "I weld apiau sydd ar agor"
472+#: qml/Tutorial/TutorialRight.qml:56
473+msgid "Short or long swipe from the right edge to view your open apps"
474+msgstr ""
482475
483−#: qml/Tutorial/TutorialRight.qml:32
484−msgid "Long swipe from the right edge."
485−msgstr "Trawiad hir o'r ymyl dde."
476+#: qml/Tutorial/TutorialTop.qml:53
477+msgid "Swipe from the top right edge to open the notification bar"
478+msgstr ""
486479
487−#: qml/Tutorial/TutorialRight.qml:122
488−msgid "View all your running tasks."
489−msgstr "Gweld pob tasg sy'n rhedeg."
480+#: qml/Tutorial/TutorialTop.qml:54
481+msgid "Swipe from the top edge to open the notification bar"
482+msgstr ""
490483
491−#: qml/Wizard/Page.qml:89
484+#: qml/Wizard/Page.qml:54
492485msgctxt "Button: Go back one page in the Wizard"
493486msgid "Back"
494487msgstr "Nôl"
495488
496489#: qml/Wizard/Pages/10-welcome.qml:27
497−msgid "Hi!"
498−msgstr "Shwmae!"
490+msgid "Language"
491+msgstr ""
499492
500−#: qml/Wizard/Pages/10-welcome.qml:44
501−msgid "Welcome to your Ubuntu device."
493+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
494+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
495+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
496+#: qml/Wizard/Pages/75-report-check.qml:84
497+#: qml/Wizard/Pages/passcode-desktop.qml:124
498+#: qml/Wizard/Pages/password-set.qml:141
499+msgid "Next"
502500msgstr ""
503501
504−#: qml/Wizard/Pages/10-welcome.qml:52
505−msgid "Let’s get started."
506−msgstr "Beth am gychwyn."
502+#: qml/Wizard/Pages/30-wifi.qml:29
503+msgid "Connect to Wi‑Fi"
504+msgstr "Cysylltu â diwifr"
507505
508−#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
509−#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
510−#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
511−#: qml/Wizard/Pages/passwd-set.qml:90
512−msgid "Continue"
513−msgstr "Parhau"
506+#: qml/Wizard/Pages/30-wifi.qml:130
507+msgid "Connected"
508+msgstr ""
514509
515−#: qml/Wizard/Pages/20-sim.qml:25
516−msgid "Add a SIM card and restart your device"
517−msgstr "Ychwanegwch gerdyn SIM ac ailgychwyn y ddyfais"
510+#: qml/Wizard/Pages/30-wifi.qml:163
511+msgid "Available Wi-Fi networks"
512+msgstr ""
518513
519−#: qml/Wizard/Pages/20-sim.qml:59
520−msgid "Without it, you won’t be able to make calls or use text messaging."
521−msgstr "Hebddo bydd dim modd gwneud galwadau na defnyddio negeseuon testun."
514+#: qml/Wizard/Pages/30-wifi.qml:164
515+msgid "No available Wi-Fi networks"
516+msgstr ""
522517
523−#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
518+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
519+#: qml/Wizard/Pages/sim.qml:101
524520msgid "Skip"
525521msgstr "Neidio"
526522
527−#: qml/Wizard/Pages/30-passwd-type.qml:39
528−msgid "Lock security"
529−msgstr "Diogelwch cloi"
523+#: qml/Wizard/Pages/40-location.qml:27
524+msgid "Location Services"
525+msgstr ""
526+
527+#: qml/Wizard/Pages/40-location.qml:83
528+msgid ""
529+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
530+"(recommended)"
531+msgstr ""
532+
533+#: qml/Wizard/Pages/40-location.qml:105
534+#, qt-format
535+msgid "By selecting this option you agree to the Nokia HERE %1."
536+msgstr ""
530537
531−#: qml/Wizard/Pages/30-passwd-type.qml:79
532−msgid "Please select how you’d like to unlock your device."
538+#: qml/Wizard/Pages/40-location.qml:106
539+msgctxt "part of: Nokia HERE terms and conditions"
540+msgid "terms and conditions"
533541msgstr ""
534542
535−#: qml/Wizard/Pages/30-passwd-type.qml:102
536−msgctxt "Label: Type of security method"
537−msgid "Swipe"
538−msgstr "Trawio"
543+#: qml/Wizard/Pages/40-location.qml:160
544+msgid "GPS only"
545+msgstr ""
546+
547+#: qml/Wizard/Pages/40-location.qml:214
548+msgid "Don't use my location"
549+msgstr ""
550+
551+#: qml/Wizard/Pages/40-location.qml:260
552+msgid "You can change it later in System Settings."
553+msgstr ""
554+
555+#: qml/Wizard/Pages/50-timezone.qml:29
556+msgid "Time Zone"
557+msgstr ""
558+
559+#: qml/Wizard/Pages/50-timezone.qml:178
560+msgid "Enter your city"
561+msgstr ""
562+
563+#: qml/Wizard/Pages/60-account.qml:24
564+msgid "Personalize Your Device"
565+msgstr ""
566+
567+#: qml/Wizard/Pages/60-account.qml:48
568+msgid "Preferred Name"
569+msgstr ""
539570
540−#: qml/Wizard/Pages/30-passwd-type.qml:103
541−msgctxt "Label: Description of security method"
542−msgid "No security"
543−msgstr "Dim diogelwch"
571+#: qml/Wizard/Pages/70-passwd-type.qml:39
572+msgid "Lock Screen"
573+msgstr ""
544574
545−#: qml/Wizard/Pages/30-passwd-type.qml:105
575+#: qml/Wizard/Pages/70-passwd-type.qml:101
546576msgctxt "Label: Type of security method"
547−msgid "Passcode"
548−msgstr "Cod cyfrinachol"
577+msgid "Create new password"
578+msgstr ""
549579
550−#: qml/Wizard/Pages/30-passwd-type.qml:106
551−msgctxt "Label: Description of security method"
552−msgid "4 digits only"
553−msgstr "4 digid yn unig"
580+#: qml/Wizard/Pages/70-passwd-type.qml:103
581+msgctxt "Label: Type of security method"
582+msgid "Create passcode (numbers only)"
583+msgstr ""
554584
555−#: qml/Wizard/Pages/30-passwd-type.qml:108
585+#: qml/Wizard/Pages/70-passwd-type.qml:105
556586msgctxt "Label: Type of security method"
557−msgid "Passphrase"
558−msgstr "Cyfrinair"
587+msgid "No lock code"
588+msgstr ""
559589
560−#: qml/Wizard/Pages/30-passwd-type.qml:109
561−msgctxt "Label: Description of security method"
562−msgid "Numbers and letters"
563−msgstr "Rhifau a llythrennau"
590+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
591+msgid "Privacy Policy"
592+msgstr ""
564593
565−#: qml/Wizard/Pages/40-wifi.qml:29
566−msgid "Connect to Wi‑Fi"
567−msgstr "Cysylltu â diwifr"
594+#: qml/Wizard/Pages/75-report-check.qml:26
595+msgid "Help Us Improve"
596+msgstr ""
597+
598+#: qml/Wizard/Pages/75-report-check.qml:59
599+msgid "Improve system performance by sending us crashes and error reports."
600+msgstr ""
568601
569−#: qml/Wizard/Pages/40-wifi.qml:168
570−msgid "Available networks…"
571−msgstr "Rhwydweithiau sydd ar gael..."
602+#: qml/Wizard/Pages/75-report-check.qml:60
603+msgid "Privacy policy"
604+msgstr ""
572605
573−#: qml/Wizard/Pages/40-wifi.qml:169
574−msgid "No available networks."
575−msgstr "Dim rhwydweithiau ar gael"
606+#: qml/Wizard/Pages/80-finished.qml:89
607+msgid "Welcome to Ubuntu"
608+msgstr ""
576609
577−#: qml/Wizard/Pages/50-location.qml:27
578−msgid "Location"
579−msgstr "Lleoliad"
610+#: qml/Wizard/Pages/80-finished.qml:104
611+msgid "You are ready to use your device now"
612+msgstr ""
580613
581−#: qml/Wizard/Pages/50-location.qml:62
582−msgid "Let the phone detect your location:"
583−msgstr "Caniatáu'r ffôn i ganfod eich lleoliad:"
614+#: qml/Wizard/Pages/80-finished.qml:124
615+msgid "Get Started"
616+msgstr ""
584617
585−#: qml/Wizard/Pages/50-location.qml:69
586−msgid "Using GPS only (less accurate)"
587−msgstr "Defnyddio GPS yn unig (llai cywir)"
618+#: qml/Wizard/Pages/here-terms.qml:25
619+msgid "Terms & Conditions"
620+msgstr "Amodau a Thelerau"
588621
589−#: qml/Wizard/Pages/50-location.qml:86
590−msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
622+#: qml/Wizard/Pages/here-terms.qml:69
623+msgid "Your device uses positioning technologies provided by HERE."
591624msgstr ""
592−"Defnyddio GPS, diwifr dienw a gwybodaeth rhwydwaith cellog (argymellir hwn)"
593625
594−#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
595−#: qml/Wizard/Pages/50-location.qml:103
626+#: qml/Wizard/Pages/here-terms.qml:81
596627msgid ""
597−"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
598−"conditions</a>."
628+"To provide you with positioning services and to improve their quality, HERE "
629+"collects information about nearby cell towers and Wi-Fi hotspots around your "
630+"current location whenever your position is being found."
599631msgstr ""
600−"Drwy ddewis yr opsiwn yma rydych yn cytuno i <a href='#'>dermau ac "
601−"amodau</a> Nokia HERE."
602632
603−#: qml/Wizard/Pages/50-location.qml:112
604−msgid "Not at all"
605−msgstr "Dim o gwbl"
633+#: qml/Wizard/Pages/here-terms.qml:93
634+msgid ""
635+"The information collected is used to analyze the service and to improve the "
636+"use of service, but not to identify you personally."
637+msgstr ""
606638
607−#: qml/Wizard/Pages/50-location.qml:124
608−msgid "You can change your mind later in <b>System Settings</b>."
609−msgstr "Gallwch newid hwn eto yn <b>Gosodiadau System</b>."
639+#: qml/Wizard/Pages/here-terms.qml:106
640+#, qt-format
641+msgid "By continuing, you agree to the HERE platform %1 and %2."
642+msgstr ""
610643
611−#: qml/Wizard/Pages/60-reporting.qml:26
612−msgid "Improving your experience"
613−msgstr "Gwella eich profiad"
644+#: qml/Wizard/Pages/here-terms.qml:107
645+msgid "Service Terms"
646+msgstr ""
614647
615−#: qml/Wizard/Pages/60-reporting.qml:46
616−msgid ""
617−"Your phone is set up to automatically report errors to Canonical and its "
618−"partners, the makers of the operating system."
648+#: qml/Wizard/Pages/passcode-confirm.qml:43
649+#: qml/Wizard/Pages/passcode-desktop.qml:80
650+msgid "Confirm passcode"
651+msgstr "Cadarnhau cod cyfrinachol"
652+
653+#: qml/Wizard/Pages/passcode-confirm.qml:45
654+msgid "Incorrect passcode."
619655msgstr ""
620−"Cyfluniwyd eich ffôn i adrodd gwallau i Canonical a'i bartneriaid, "
621−"gwneuthurwyr y system weithredu."
622656
623−#: qml/Wizard/Pages/60-reporting.qml:53
624−msgid ""
625−"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
626−"Privacy</b>"
657+#: qml/Wizard/Pages/passcode-confirm.qml:45
658+msgctxt "Enter the passcode again"
659+msgid "Please re-enter."
627660msgstr ""
628−"Gellir analluogi hwn yn <b>Gosodiadau System</b> dan <b>Diogelwch a "
629−"Phreifatwydd</b>"
630661
631−#: qml/Wizard/Pages/80-finished.qml:24
632−msgid "All done"
633−msgstr "Wedi gorffen"
662+#: qml/Wizard/Pages/passcode-desktop.qml:30
663+msgid "Lock Screen Passcode"
664+msgstr ""
634665
635−#: qml/Wizard/Pages/80-finished.qml:39
636−msgid "Nice work!"
637−msgstr "Da iawn!"
666+#: qml/Wizard/Pages/passcode-desktop.qml:56
667+msgid "Enter 4 numbers to setup your passcode"
668+msgstr ""
638669
639−#: qml/Wizard/Pages/80-finished.qml:46
640−msgid "Your device is now ready to use."
670+#: qml/Wizard/Pages/passcode-desktop.qml:65
671+#: qml/Wizard/Pages/passcode-set.qml:54
672+msgid "Choose passcode"
641673msgstr ""
642674
643−#: qml/Wizard/Pages/80-finished.qml:53
644−msgid "Finish"
645−msgstr "Gorffen"
675+#: qml/Wizard/Pages/passcode-desktop.qml:105
676+msgid "Passcode too short"
677+msgstr ""
646678
647−#: qml/Wizard/Pages/here-terms.qml:27
648−msgid "Terms & Conditions"
649−msgstr "Amodau a Thelerau"
679+#: qml/Wizard/Pages/passcode-desktop.qml:107
680+msgid "Passcodes match"
681+msgstr ""
650682
651−#: qml/Wizard/Pages/passwd-confirm.qml:49
652−msgid "Confirm passphrase"
653−msgstr "Cadarnhau cyfrinair"
683+#: qml/Wizard/Pages/passcode-desktop.qml:109
684+msgid "Passcodes do not match"
685+msgstr ""
654686
655−#: qml/Wizard/Pages/passwd-confirm.qml:50
656−msgid "Confirm passcode"
657−msgstr "Cadarnhau cod cyfrinachol"
687+#: qml/Wizard/Pages/passcode-set.qml:62
688+msgid "Passcode must be 4 characters long"
689+msgstr ""
690+
691+#: qml/Wizard/Pages/password-set.qml:30
692+msgid "Lock Screen Password"
693+msgstr ""
658694
659−#: qml/Wizard/Pages/passwd-confirm.qml:53
660−#: qml/Wizard/Pages/passwd-confirm.qml:54
661−msgid "Please try again."
662−msgstr "Rhowch gynnig arall arni"
695+#: qml/Wizard/Pages/password-set.qml:61
696+msgid "Enter at least 8 characters"
697+msgstr ""
663698
664−#: qml/Wizard/Pages/passwd-set.qml:61
665−msgid "Choose your passcode"
666−msgstr "Dewiswch eich cod cyfrinachol"
699+#: qml/Wizard/Pages/password-set.qml:73
700+msgid "Choose password"
701+msgstr ""
667702
668−#: qml/Wizard/Pages/passwd-set.qml:68
669−msgid "Passphrase must be 4 characters long"
670−msgstr "Dylai cyfrinair fod yn bedwar nod"
703+#: qml/Wizard/Pages/password-set.qml:103
704+msgid "Confirm password"
705+msgstr ""
671706
672−#. Translators: This is the arrow for "Back" buttons
673−#: qml/Wizard/StackButton.qml:39
674−#, qt-format
675−msgid "〈 %1"
676−msgstr "〈 %1"
707+#: qml/Wizard/Pages/sim.qml:27
708+msgid "No SIM card installed"
709+msgstr ""
677710
678−#. Translators: This is the arrow for "Forward" buttons
679−#: qml/Wizard/StackButton.qml:42
680−#, qt-format
681−msgid "%1 〉"
682−msgstr "%1 〉"
711+#: qml/Wizard/Pages/sim.qml:54
712+msgid "SIM card added"
713+msgstr ""
714+
715+#: qml/Wizard/Pages/sim.qml:55
716+msgid "You must restart the device to access the mobile network."
717+msgstr ""
718+
719+#: qml/Wizard/Pages/sim.qml:59
720+msgid "Restart"
721+msgstr ""
722+
723+#: qml/Wizard/Pages/sim.qml:78
724+msgid "You won’t be able to make calls or use text messaging without a SIM."
725+msgstr ""
726+
727+#: qml/Wizard/Pages/sim.qml:90
728+msgid "To proceed with no SIM tap Skip."
729+msgstr ""
730+
731+#: qml/Wizard/PasswordMeter.qml:87
732+msgid "Passwords match"
733+msgstr ""
734+
735+#: qml/Wizard/PasswordMeter.qml:89
736+msgid "Passwords do not match"
737+msgstr ""
738+
739+#: qml/Wizard/PasswordMeter.qml:93
740+msgid "Strong password"
741+msgstr ""
742+
743+#: qml/Wizard/PasswordMeter.qml:95
744+msgid "Fair password"
745+msgstr ""
746+
747+#: qml/Wizard/PasswordMeter.qml:97
748+msgid "Weak password"
749+msgstr ""
750+
751+#: qml/Wizard/PasswordMeter.qml:99
752+msgid "Very weak password"
753+msgstr ""
683754
684755#~ msgid "%a %l:%M %p"
685756#~ msgstr "%a %l:%M %p"
@@ -711,17 +782,197 @@ msgstr "%1 〉"
711782#~ msgid "Tomorrow %H:%M"
712783#~ msgstr "Yfory %H:%M"
713784
785+#~ msgid "Are you sure you want to shut down?"
786+#~ msgstr "Ydych chi'n sicr eich bod am ddiffodd?"
787+
788+#~ msgctxt "Button: Shut down the system"
789+#~ msgid "Shut down"
790+#~ msgstr "Diffodd"
791+
792+#~ msgctxt "Title: Reboot/Shut down dialog"
793+#~ msgid "Shut down"
794+#~ msgstr "Diffodd"
795+
796+#~ msgctxt "Button: Reboot the system"
797+#~ msgid "Reboot"
798+#~ msgstr "Ailgychwyn"
799+
800+#~ msgid "See all"
801+#~ msgstr "Gweld y cyfan"
802+
803+#~ msgid "See less"
804+#~ msgstr "Gweld llai"
805+
806+#~ msgid "This action does different things for different apps"
807+#~ msgstr "Mae'r weithred hon yn gwneud pethau gwahanol mewn apiau gwahanol"
808+
714809#~ msgid "Unlock SIM"
715810#~ msgstr "Datgloi SIM"
716811
717812#~ msgid "Roaming"
718813#~ msgstr "Crwydrol"
719814
815+#~ msgid "Try again."
816+#~ msgstr "Ceisiwch eto."
817+
818+#~ msgid "Short swipe from the left edge."
819+#~ msgstr "Trawiad byr o'r ymyl chwith."
820+
821+#~ msgid "Open the launcher"
822+#~ msgstr "Agor y lansiwr"
823+
824+#~ msgid "Tap here to continue."
825+#~ msgstr "Tapiwch yma i barhau."
826+
827+#~ msgid "These are the shortcuts to favorite apps"
828+#~ msgstr "Rhain yw'r llwybrau byr i'ch hoff apiau"
829+
830+#~ msgid "Swipe up from the bottom edge."
831+#~ msgstr "Trawiwch i fyny o'r ymyl gwaelod."
832+
833+#~ msgid "Open special menus"
834+#~ msgstr "Agor dewislenni arbennig"
835+
836+#~ msgid "Tap here to finish."
837+#~ msgstr "Tapiwch yma i orffen"
838+
839+#~ msgid "You almost got it!"
840+#~ msgstr "Bron â bod!"
841+
842+#~ msgid "To view open apps"
843+#~ msgstr "I weld apiau sydd ar agor"
844+
845+#~ msgid "Without it, you won’t be able to make calls or use text messaging."
846+#~ msgstr "Hebddo bydd dim modd gwneud galwadau na defnyddio negeseuon testun."
847+
848+#~ msgid "Add a SIM card and restart your device"
849+#~ msgstr "Ychwanegwch gerdyn SIM ac ailgychwyn y ddyfais"
850+
851+#~ msgid "View all your running tasks."
852+#~ msgstr "Gweld pob tasg sy'n rhedeg."
853+
854+#~ msgid "Long swipe from the right edge."
855+#~ msgstr "Trawiad hir o'r ymyl dde."
856+
857+#~ msgid "Hi!"
858+#~ msgstr "Shwmae!"
859+
860+#~ msgid "Let’s get started."
861+#~ msgstr "Beth am gychwyn."
862+
863+#~ msgid "Continue"
864+#~ msgstr "Parhau"
865+
720866#~ msgid "Welcome to your Ubuntu phone."
721867#~ msgstr "Croeso i'ch ffôn Ubuntu."
722868
869+#~ msgid "Lock security"
870+#~ msgstr "Diogelwch cloi"
871+
723872#~ msgid "Please select how you’d like to unlock your phone."
724873#~ msgstr "Dewiswch sut yr hoffech ddatgloi'r ffôn."
725874
875+#~ msgctxt "Label: Description of security method"
876+#~ msgid "No security"
877+#~ msgstr "Dim diogelwch"
878+
879+#~ msgctxt "Label: Type of security method"
880+#~ msgid "Swipe"
881+#~ msgstr "Trawio"
882+
883+#~ msgctxt "Label: Description of security method"
884+#~ msgid "4 digits only"
885+#~ msgstr "4 digid yn unig"
886+
887+#~ msgctxt "Label: Type of security method"
888+#~ msgid "Passcode"
889+#~ msgstr "Cod cyfrinachol"
890+
891+#~ msgctxt "Label: Type of security method"
892+#~ msgid "Passphrase"
893+#~ msgstr "Cyfrinair"
894+
895+#~ msgctxt "Label: Description of security method"
896+#~ msgid "Numbers and letters"
897+#~ msgstr "Rhifau a llythrennau"
898+
899+#~ msgid "Improving your experience"
900+#~ msgstr "Gwella eich profiad"
901+
902+#~ msgid "You can change your mind later in <b>System Settings</b>."
903+#~ msgstr "Gallwch newid hwn eto yn <b>Gosodiadau System</b>."
904+
905+#~ msgid ""
906+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
907+#~ "conditions</a>."
908+#~ msgstr ""
909+#~ "Drwy ddewis yr opsiwn yma rydych yn cytuno i <a href='#'>dermau ac "
910+#~ "amodau</a> Nokia HERE."
911+
912+#~ msgid "Not at all"
913+#~ msgstr "Dim o gwbl"
914+
915+#~ msgid "Available networks…"
916+#~ msgstr "Rhwydweithiau sydd ar gael..."
917+
918+#~ msgid "No available networks."
919+#~ msgstr "Dim rhwydweithiau ar gael"
920+
921+#~ msgid "Location"
922+#~ msgstr "Lleoliad"
923+
924+#~ msgid "Let the phone detect your location:"
925+#~ msgstr "Caniatáu'r ffôn i ganfod eich lleoliad:"
926+
927+#~ msgid "Using GPS only (less accurate)"
928+#~ msgstr "Defnyddio GPS yn unig (llai cywir)"
929+
930+#~ msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
931+#~ msgstr ""
932+#~ "Defnyddio GPS, diwifr dienw a gwybodaeth rhwydwaith cellog (argymellir hwn)"
933+
934+#~ msgid ""
935+#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
936+#~ "Privacy</b>"
937+#~ msgstr ""
938+#~ "Gellir analluogi hwn yn <b>Gosodiadau System</b> dan <b>Diogelwch a "
939+#~ "Phreifatwydd</b>"
940+
941+#~ msgid ""
942+#~ "Your phone is set up to automatically report errors to Canonical and its "
943+#~ "partners, the makers of the operating system."
944+#~ msgstr ""
945+#~ "Cyfluniwyd eich ffôn i adrodd gwallau i Canonical a'i bartneriaid, "
946+#~ "gwneuthurwyr y system weithredu."
947+
948+#~ msgid "Nice work!"
949+#~ msgstr "Da iawn!"
950+
951+#~ msgid "All done"
952+#~ msgstr "Wedi gorffen"
953+
954+#~ msgid "Finish"
955+#~ msgstr "Gorffen"
956+
726957#~ msgid "Your phone is now ready to use."
727958#~ msgstr "Mae eich ffôn yn barod i'w ddefnyddio"
959+
960+#~ msgid "Confirm passphrase"
961+#~ msgstr "Cadarnhau cyfrinair"
962+
963+#~ msgid "Please try again."
964+#~ msgstr "Rhowch gynnig arall arni"
965+
966+#, qt-format
967+#~ msgid "〈 %1"
968+#~ msgstr "〈 %1"
969+
970+#, qt-format
971+#~ msgid "%1 〉"
972+#~ msgstr "%1 〉"
973+
974+#~ msgid "Choose your passcode"
975+#~ msgstr "Dewiswch eich cod cyfrinachol"
976+
977+#~ msgid "Passphrase must be 4 characters long"
978+#~ msgstr "Dylai cyfrinair fod yn bedwar nod"
po/da.po+488−237

This diff is too big to show here.

po/de.po+513−256

This diff is too big to show here.

po/el.po+517−256

This diff is too big to show here.

po/en_AU.po+506−256

This diff is too big to show here.

po/en_GB.po+507−257

This diff is too big to show here.

po/eo.po+306−194

This diff is too big to show here.

po/es.po+514−258

This diff is too big to show here.

po/eu.po+487−239

This diff is too big to show here.

po/fa.po+510−250

This diff is too big to show here.

po/fi.po+510−259

This diff is too big to show here.

po/fo.po+261−183

This diff is too big to show here.

po/fr.po+529−265

This diff is too big to show here.

po/ga.po+472−237

This diff is too big to show here.

po/gd.po+532−261

This diff is too big to show here.

po/gl.po+514−260

This diff is too big to show here.

po/gv.po+272−188

This diff is too big to show here.

po/he.po+412−217

This diff is too big to show here.

po/hi.po+261−183

This diff is too big to show here.

po/hr.po+576−251

This diff is too big to show here.

po/hu.po+515−261

This diff is too big to show here.

po/hy.po+268−187

This diff is too big to show here.

po/ia.po+514−251

This diff is too big to show here.

po/id.po+272−188

This diff is too big to show here.

po/is.po+272−188

This diff is too big to show here.

po/it.po+517−253

This diff is too big to show here.

po/ja.po+284−188

This diff is too big to show here.

po/km.po+356−217

This diff is too big to show here.

po/kn.po+261−183

This diff is too big to show here.

po/ko.po+489−249

This diff is too big to show here.

po/ku.po+272−185

This diff is too big to show here.

po/ky.po+261−183

This diff is too big to show here.

po/lo.po+261−183

This diff is too big to show here.

po/lt.po+261−183

This diff is too big to show here.

po/lv.po+485−237

This diff is too big to show here.

po/ml.po+261−183

This diff is too big to show here.

po/mr.po+261−183

This diff is too big to show here.

po/ms.po+487−242

This diff is too big to show here.

po/my.po+269−184

This diff is too big to show here.

po/nb.po+509−258

This diff is too big to show here.

po/ne.po+261−183

This diff is too big to show here.

po/nl.po+505−248

This diff is too big to show here.

po/nn.po+261−183

This diff is too big to show here.

po/oc.po+590−263

This diff is too big to show here.

po/or.po+261−183

This diff is too big to show here.

po/pa.po+487−239

This diff is too big to show here.

po/pl.po+520−261

This diff is too big to show here.

po/pt.po+517−264

This diff is too big to show here.

po/pt_BR.po+498−250

This diff is too big to show here.

po/ro.po+489−241

This diff is too big to show here.

po/ru.po+493−244

This diff is too big to show here.

po/shn.po+261−183

This diff is too big to show here.

po/si.po+264−186

This diff is too big to show here.

po/sk.po+552−250

This diff is too big to show here.

po/sl.po+507−254

This diff is too big to show here.

po/sq.po+412−220

This diff is too big to show here.

po/sr.po+506−254

This diff is too big to show here.

po/sv.po+510−257

This diff is too big to show here.

po/sw.po+420−219

This diff is too big to show here.

po/ta.po+261−183

This diff is too big to show here.

po/te.po+261−183

This diff is too big to show here.

po/th.po+261−183

This diff is too big to show here.

po/tr.po+488−240

This diff is too big to show here.

po/ug.po+469−235

This diff is too big to show here.

po/uk.po+518−259

This diff is too big to show here.

po/unity8.pot+260−182

This diff is too big to show here.

po/ur.po+261−183

This diff is too big to show here.

po/uz.po+261−183

This diff is too big to show here.

po/vi.po+261−183

This diff is too big to show here.

po/wo.po+487−239

This diff is too big to show here.

po/xh.po+261−183

This diff is too big to show here.

po/zh_CN.po+495−249

This diff is too big to show here.

po/zh_HK.po+269−185

This diff is too big to show here.

po/zh_TW.po+489−244

This diff is too big to show here.

qml/Components/Dialogs.qml+8−52

This diff is too big to show here.

qml/Components/InputMethod.qml+4−1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

qml/Components/KeymapSwitcher.qmlnew file+65

This diff is too big to show here.

qml/Components/Lockscreen.qml+2−2

This diff is too big to show here.

qml/Components/NotificationAudio.qml+11−10

This diff is too big to show here.

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

This diff is too big to show here.

qml/Components/PinLockscreen.qml+2−1

This diff is too big to show here.

qml/Components/PinPadButton.qml+17−2

This diff is too big to show here.

qml/Components/ShellDialog.qml+3−1

This diff is too big to show here.

qml/Components/Showable.qml+10

This diff is too big to show here.

qml/Components/UbuntuShapeForItem.qml+1

This diff is too big to show here.

qml/Components/Unity8Settings.qmldeleted−50

This diff is too big to show here.

qml/Components/VirtualTouchPad.qml+1−1

This diff is too big to show here.

qml/Components/WindowControlButtons.qml+8−6

This diff is too big to show here.

qml/Dash/CardGrid.qml+1

This diff is too big to show here.

qml/Dash/CardHorizontalList.qml+1

This diff is too big to show here.

qml/Dash/CardTool.qml+23−7

This diff is too big to show here.

qml/Dash/CardVerticalJournal.qml+1

This diff is too big to show here.

qml/Dash/Dash.qml+8−8

This diff is too big to show here.

qml/Dash/DashContent.qml+2−2

This diff is too big to show here.

qml/Dash/DashNavigation.qml+159−78

This diff is too big to show here.

qml/Dash/DashNavigationButton.qmldeleted−233

This diff is too big to show here.

qml/Dash/DashNavigationHeader.qmlnew file+73

This diff is too big to show here.

qml/Dash/DashNavigationList.qml+33−85

This diff is too big to show here.

qml/Dash/DashPageHeader.qml+140−131

This diff is too big to show here.

qml/Dash/DashRenderer.qml+6

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

qml/Dash/FiltersPopover.qmlnew file+105

This diff is too big to show here.

qml/Dash/GenericScopeView.qml+88−49

This diff is too big to show here.

qml/Dash/PageHeaderExtraPanel.qmlnew file+176

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

qml/Dash/Previews/PreviewIconActions.qml+15

This diff is too big to show here.

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

This diff is too big to show here.

qml/DisabledScreenNotice.qml+4−4

This diff is too big to show here.

qml/Greeter/Greeter.qml+22−11

This diff is too big to show here.

qml/Launcher/Launcher.qml+2−4

This diff is too big to show here.

qml/Launcher/LauncherDelegate.qml+9−11

This diff is too big to show here.

qml/Launcher/LauncherPanel.qml+52−35

This diff is too big to show here.

qml/Launcher/graphics/quicklist_tooltip@30.png

Binary file not shown.

qml/Notifications/Notification.qml+128−124

This diff is too big to show here.

qml/Notifications/NotificationButton.qmlnew file+72

This diff is too big to show here.

qml/Notifications/NotificationMenuItemFactory.qml+5−11

This diff is too big to show here.

qml/Notifications/Notifications.qml+4−3

This diff is too big to show here.

qml/Notifications/OptionToggle.qml+12−10

This diff is too big to show here.

qml/Notifications/ShapedIcon.qml+1

This diff is too big to show here.

qml/Notifications/SwipeToAct.qml+16−20

This diff is too big to show here.

qml/Notifications/grip-large.svgdeleted−150

This diff is too big to show here.

qml/OrientedShell.qml+52−27

This diff is too big to show here.

qml/Panel/IndicatorItem.qml−7

This diff is too big to show here.

qml/Panel/IndicatorItemRow.qml+5−2

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

qml/Panel/IndicatorsMenu.qml+22−15

This diff is too big to show here.

qml/Panel/Panel.qml+4−3

This diff is too big to show here.

qml/Rotation/HalfLoopRotationAnimation.qml+2−1

This diff is too big to show here.

qml/Rotation/ImmediateRotationAction.qml+11−22

This diff is too big to show here.

qml/Rotation/NinetyRotationAnimation.qml+14−16

This diff is too big to show here.

qml/Rotation/RotationStates.qml+25−5

This diff is too big to show here.

qml/Rotation/UpdateShellTransformations.qmlnew file+42

This diff is too big to show here.

qml/Shell.qml+122−118

This diff is too big to show here.

qml/Stages/AbstractStage.qml+15−4

This diff is too big to show here.

qml/Stages/Animations/BaseSessionAnimation.qmldeleted−96

This diff is too big to show here.

qml/Stages/Animations/SwipeFromBottomAnimation.qmldeleted−53

This diff is too big to show here.

qml/Stages/ApplicationWindow.qml+116−76

This diff is too big to show here.

qml/Stages/DecoratedWindow.qml+6−6

This diff is too big to show here.

qml/Stages/DesktopSpread.qml+22−18

This diff is too big to show here.

qml/Stages/DesktopSpreadDelegate.qml+4−3

This diff is too big to show here.

qml/Stages/DesktopStage.qml+247−110

This diff is too big to show here.

qml/Stages/PhoneStage.qml+166−94

This diff is too big to show here.

qml/Stages/PromptSurfaceAnimations.qmlnew file+81

This diff is too big to show here.

qml/Stages/SessionContainer.qmldeleted−180

This diff is too big to show here.

qml/Stages/ShimStage.qml−1

This diff is too big to show here.

qml/Stages/SideStage.qmlnew file+118

This diff is too big to show here.

qml/Stages/SpreadDelegate.qml+14−4

This diff is too big to show here.

qml/Stages/StagedFullscreenPolicy.qmlnew file+56

This diff is too big to show here.

qml/Stages/SurfaceContainer.qml+97−39

This diff is too big to show here.

qml/Stages/TabletSideStageTouchGesture.qmlnew file+154

This diff is too big to show here.

qml/Stages/TabletStage.qml+585−288

This diff is too big to show here.

qml/Stages/TopLevelSurfaceRepeater.qmlnew file+52

This diff is too big to show here.

qml/Stages/TransformedSpreadDelegate.qml+4−4

This diff is too big to show here.

qml/Stages/TransformedTabletSpreadDelegate.qml+94−60

This diff is too big to show here.

qml/Stages/WindowDecoration.qml+4−3

This diff is too big to show here.

qml/Stages/WindowResizeArea.qml+2−2

This diff is too big to show here.

qml/Stages/WindowedFullscreenPolicy.qmlnew file+39

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

qml/Tutorial/Arrow.qmldeleted−56

This diff is too big to show here.

qml/Tutorial/InactivityTimer.qmlnew file+62

This diff is too big to show here.

qml/Tutorial/Slider.qmldeleted−123

This diff is too big to show here.

qml/Tutorial/Tutorial.qml+39−14

This diff is too big to show here.

qml/Tutorial/TutorialBottom.qml+86−66

This diff is too big to show here.

qml/Tutorial/TutorialBottomFinish.qmldeleted−41

This diff is too big to show here.

qml/Tutorial/TutorialContent.qml+227−55

This diff is too big to show here.

qml/Tutorial/TutorialLeft.qml+21−68

This diff is too big to show here.

qml/Tutorial/TutorialLeftLong.qmlnew file+54

This diff is too big to show here.

qml/Tutorial/TutorialPage.qml+62−186

This diff is too big to show here.

qml/Tutorial/TutorialRight.qml+31−192

This diff is too big to show here.

qml/Tutorial/TutorialTop.qmlnew file+61

This diff is too big to show here.

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

This diff is too big to show here.

qml/Tutorial/graphics/background1.pngnew file

Binary file not shown.

qml/Tutorial/graphics/background2.pngnew file

Binary file not shown.

qml/Tutorial/graphics/camera.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/chevron.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/dialer.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/facebook.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/gallery.pngdeleted

Binary file not shown.

qml/Tutorial/graphics/tick.pngdeleted

Binary file not shown.

qml/Wizard/CheckableSetting.qml+11−3

This diff is too big to show here.

qml/Wizard/Page.qml+261−44

This diff is too big to show here.

qml/Wizard/Pages.qml+75−31

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

qml/Wizard/PasswordMeter.qmlnew file+106

This diff is too big to show here.

qml/Wizard/StackButton.qml+7−12

This diff is too big to show here.

qml/Wizard/Wizard.qml−9

This diff is too big to show here.

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

This diff is too big to show here.

src/Dash/main.cpp+5

This diff is too big to show here.

src/MouseTouchAdaptor.cpp+53−9

This diff is too big to show here.

src/MouseTouchAdaptor.h+5−3

This diff is too big to show here.

src/SecondaryWindow.cpp+9

This diff is too big to show here.

src/ShellApplication.cpp+6

This diff is too big to show here.

src/ShellView.cpp+6−2

This diff is too big to show here.

src/main.cpp+5

This diff is too big to show here.

src/qmldebuggerutils.hnew file+33

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

No changes to the content.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/autopilot/unity8/tutorial.pydeleted−73

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.qmltypes+5

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.cpp+13

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.h+5

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceListModel.cppnew file+121

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/fake_resultsmodel.cpp+2

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/fake_unity_plugin.cpp+7

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Utils/plugin.h−1

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.cpp+13

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.h+4

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/AccountsService/interfaces.xml+13

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/CMakeLists.txt−1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadersectiontest.cpp+15

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertest.cpp+15

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/IntegratedLightDM/CMakeLists.txt+1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/ScreenGrabber/CMakeLists.txtdeleted−14

This diff is too big to show here.

tests/plugins/ScreenGrabber/ScreenGrabberTest.cppdeleted−77

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/CMakeLists.txt+5−1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorItem.qml−3

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorsMenu.qml−1

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Stages/tst_SessionContainer.qmldeleted−331

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Stages/tst_WindowResizeArea.qml+7

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/tst_OrientedShell.qml+241−95

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+361−146

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qml+9−35

This diff is too big to show here.

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

This diff is too big to show here.