on xenial help sign in
merged with trunk
commitf2ce8172038afb8e5458849f81c043489fd32a8d authorNick Dedekind <nick.dedekind@canonical.com> dateThu 29 Sep 2016, 09:28 (10 years ago) parenta8d02ce5ab1ddf
746 files changed+34754−18274
.crossbuilder/post_deploy+1 CMakeLists.txt+3−1 CODING+20−59 build.sh+6−37 data/51-unity8-greeter.conf+2 data/CMakeLists.txt+11 data/unity8-dash.png data/unity8-greeter-init.conf+12 data/unity8-greeter-wrapper+106 data/unity8-greeter.desktop.in+7 data/unity8-greeter.pkla+44 data/unity8.conf+13 debian/changelog+314 debian/control+43−22 debian/rules+3−2 debian/unity8-greeter.install+5 debian/unity8-private.install+2−1 plugins/AccountsService/AccountsService.cpp+41−3 plugins/AccountsService/AccountsService.h+15−4 plugins/AccountsService/com.canonical.unity.AccountsService.xml+4 plugins/CMakeLists.txt+2−1 plugins/Cursor/CMakeLists.txt+6−2 plugins/Cursor/Cursor.qml+29−11 plugins/Cursor/CursorImageInfo.cpp+21−1 plugins/Cursor/CursorImageInfo.h+10 plugins/Cursor/CursorImageProvider.cpp+33−21 plugins/Cursor/CursorImageProvider.h+9−6 plugins/Cursor/MousePointer.cpp+90−13 plugins/Cursor/MousePointer.h+23 plugins/Dash/CMakeLists.txt+4 plugins/Dash/CardCreator.js+110−112 plugins/Dash/CardCreatorCache.qml+3−3 plugins/Dash/DashAudioPlayer.qml+45−21 plugins/Dash/abstractdashview.cpp+13 plugins/Dash/abstractdashview.h+3−4 plugins/Dash/graphics/music_progress_bg.png plugins/Dash/horizontaljournal.cpp+1−4 plugins/Dash/listviewwithpageheader.cpp+13−8 plugins/Dash/organicgrid.cpp+3−4 plugins/Dash/verticaljournal.cpp+12−5 plugins/Dash/verticaljournal.h+3 plugins/ImageCache/CMakeLists.txt+8 plugins/ImageCache/ImageCache.cpp+135 plugins/ImageCache/ImageCache.h+53 plugins/ImageCache/plugin.cpp+39 plugins/ImageCache/plugin.h+31 plugins/ImageCache/qmldir+2 plugins/IntegratedLightDM/CMakeLists.txt−40 plugins/LightDM/CMakeLists.txt+26 plugins/IntegratedLightDM/DBusGreeter.cpp → plugins/LightDM/DBusGreeter.cpp+5−4 plugins/IntegratedLightDM/DBusGreeter.h → plugins/LightDM/DBusGreeter.h plugins/IntegratedLightDM/DBusGreeterList.cpp → plugins/LightDM/DBusGreeterList.cpp plugins/IntegratedLightDM/DBusGreeterList.h → plugins/LightDM/DBusGreeterList.h plugins/LightDM/FullLightDM/CMakeLists.txt+28 plugins/LightDM/FullLightDM/qmldir+3 plugins/IntegratedLightDM/Greeter.cpp → plugins/LightDM/Greeter.cpp+13−2 plugins/IntegratedLightDM/Greeter.h → plugins/LightDM/Greeter.h+5−2 plugins/IntegratedLightDM/GreeterPrivate.h → plugins/LightDM/GreeterPrivate.h plugins/LightDM/IntegratedLightDM/CMakeLists.txt+33 plugins/LightDM/IntegratedLightDM/QLightDM/Greeter+17 plugins/LightDM/IntegratedLightDM/QLightDM/SessionsModel+17 plugins/LightDM/IntegratedLightDM/QLightDM/UsersModel+17 plugins/IntegratedLightDM/liblightdm/CMakeLists.txt → plugins/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txt+4−2 plugins/IntegratedLightDM/liblightdm/Greeter.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/Greeter.cpp−5 plugins/IntegratedLightDM/liblightdm/Greeter.h → plugins/LightDM/IntegratedLightDM/liblightdm/Greeter.h−2 plugins/IntegratedLightDM/liblightdm/GreeterPrivate.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpp+1−2 plugins/IntegratedLightDM/liblightdm/GreeterPrivate.h → plugins/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.h plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cpp+88 plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.h+72 plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cpp+36 plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.h+54 plugins/IntegratedLightDM/liblightdm/UsersModel.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModel.cpp+4−3 plugins/IntegratedLightDM/liblightdm/UsersModel.h → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModel.h+2−1 plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+5−3 plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.h → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.h+2−1 plugins/LightDM/IntegratedLightDM/qmldir+3 plugins/LightDM/SessionsModel.cpp+128 plugins/LightDM/SessionsModel.h+68 plugins/IntegratedLightDM/UsersModel.cpp → plugins/LightDM/UsersModel.cpp plugins/IntegratedLightDM/UsersModel.h → plugins/LightDM/UsersModel.h plugins/IntegratedLightDM/plugin.cpp → plugins/LightDM/plugin.cpp+26−4 plugins/IntegratedLightDM/plugin.h → plugins/LightDM/plugin.h+5−5 plugins/IntegratedLightDM/qmldir → plugins/LightDM/qmldir plugins/Lights/CMakeLists.txt+1 plugins/Lights/android-hardware.h−4 plugins/SessionBroadcast/SessionBroadcast.cpp+35−9 plugins/SessionBroadcast/SessionBroadcast.h+10−3 plugins/Ubuntu/DownloadDaemonListener/CMakeLists.txt+3−2 plugins/Ubuntu/DownloadDaemonListener/DownloadTracker.cpp+2−1 plugins/Ubuntu/DownloadDaemonListener/DownloadTracker.h+2−1 plugins/Ubuntu/DownloadDaemonListener/interface/downloadtrackeradaptor.cpp+2−2 plugins/Ubuntu/DownloadDaemonListener/interface/downloadtrackeradaptor.h+71−4 plugins/Ubuntu/DownloadDaemonListener/interface/metatypes.h+3−6 plugins/Ubuntu/Gestures/AxisVelocityCalculator.cpp+1−1 plugins/Ubuntu/Gestures/AxisVelocityCalculator.h+4−4 plugins/Ubuntu/Gestures/CMakeLists.txt+6−1 plugins/Ubuntu/Gestures/TouchDispatcher.cpp−4 plugins/Ubuntu/Gestures/TouchGate.cpp+6−4 plugins/Ubuntu/Gestures/TouchGate.h+3−2 plugins/Ubuntu/Gestures/TouchGestureArea.cpp+9−7 plugins/Ubuntu/Gestures/TouchGestureArea.h+9−8 plugins/Ubuntu/SystemImage/CMakeLists.txt+5 plugins/Ubuntu/SystemImage/SystemImage.cpp+127−5 plugins/Ubuntu/SystemImage/SystemImage.h+52−2 plugins/Ubuntu/SystemImage/plugin.cpp+3−9 plugins/Ubuntu/SystemImage/plugin.h+1−1 plugins/Unity/Indicators/CMakeLists.txt+4 plugins/Unity/Indicators/actionrootstate.cpp+1−1 plugins/Unity/Indicators/indicatorsmanager.cpp+4−6 plugins/Unity/Launcher/launchermodel.cpp+1−1 plugins/Unity/Session/CMakeLists.txt+2 plugins/Unity/Session/dbusunitysessionservice.cpp+50−18 plugins/Unity/Session/dbusunitysessionservice.h+7 plugins/Utils/CMakeLists.txt+6 plugins/Utils/URLDispatcher.cpp+77 plugins/Utils/URLDispatcher.h+47 plugins/Utils/deviceconfigparser.cpp+1−1 plugins/Utils/globalfunctions.cpp+1−4 plugins/Utils/plugin.cpp+2 plugins/Utils/timezoneFormatter.cpp+1−1 plugins/Utils/windowstatestorage.cpp+10−7 plugins/Utils/windowstatestorage.h+9−4 plugins/WindowManager/CMakeLists.txt+1 plugins/Wizard/CMakeLists.txt+6−3 plugins/Wizard/PageList.cpp+16−1 plugins/Wizard/System.cpp+10−1 plugins/Wizard/System.h+5−1 plugins/Wizard/keyboardLayoutsModel.cpp+163 plugins/Wizard/keyboardLayoutsModel.h+66 plugins/Wizard/plugin.cpp+2 plugins/Wizard/qmldir−1 plugins/Wizard/timezonemodel.cpp+5−5 po/aa.po+180−147 po/am.po+226−160 po/ar.po+228−162 po/ast.po+299−224 po/az.po+199−150 po/be.po+226−160 po/bg.po+168−145 po/bn.po+221−155 po/br.po+244−177 po/bs.po+224−158 po/ca.po+382−259 po/ca@valencia.po+223−161 po/ce.po+168−145 po/ckb.po+168−145 po/co.po+226−160 po/cs.po+220−158 po/cy.po+226−160 po/da.po+221−159 po/de.po+274−204 po/el.po+227−161 po/en_AU.po+223−157 po/en_GB.po+231−165 po/eo.po+170−147 po/es.po+273−203 po/eu.po+225−159 po/fa.po+269−202 po/fi.po+270−202 po/fo.po+187−150 po/fr.po+277−206 po/ga.po+224−158 po/gd.po+278−205 po/gl.po+271−201 po/gv.po+174−151 po/he.po+187−149 po/hi.po+168−145 po/hr.po+271−203 po/hu.po+228−160 po/hy.po+206−154 po/ia.po+271−201 po/id.po+218−156 po/is.po+221−159 po/it.po+275−205 po/ja.po+215−153 po/km.po+206−154 po/kn.po+168−145 po/ko.po+220−154 po/ku.po+203−151 po/ky.po+168−145 po/lo.po+168−145 po/lt.po+168−145 po/lv.po+224−158 po/ml.po+168−145 po/mr.po+168−145 po/ms.po+224−158 po/my.po+169−146 po/nb.po+225−159 po/ne.po+169−146 po/nl.po+226−160 po/nn.po+168−145 po/oc.po+228−162 po/or.po+168−145 po/pa.po+218−156 po/pl.po+272−202 po/pt.po+229−161 po/pt_BR.po+225−159 po/ro.po+223−161 po/ru.po+263−195 po/shn.po+168−145 po/si.po+168−145 po/sk.po+272−204 po/sl.po+225−159 po/sq.po+186−148 po/sr.po+272−203 po/sv.po+223−157 po/sw.po+219−157 po/ta.po+168−145 po/te.po+168−145 po/th.po+168−145 po/tr.po+351−266 po/ug.po+267−201 po/uk.po+227−161 po/unity8.pot+167−144 po/ur.po+168−145 po/uz.po+168−145 po/vi.po+168−145 po/wo.po+223−157 po/xh.po+168−145 po/zh_CN.po+271−205 po/zh_HK.po+168−145 po/zh_TW.po+258−192 qml/Components/Carousel.qml+1−2 qml/Components/Dialogs.qml+10−7 qml/Components/Flickable.qml+24 qml/Components/FloatingFlickable.qml+1 qml/Components/GridView.qml+24 qml/Components/InputMethod.qml+8−44 qml/Components/KeymapSwitcher.qml+27−1 qml/Components/LazyImage.qml+3−1 qml/Components/ListItems/graphics/ListItemDividerHorizontal@18.png qml/Components/ListView.qml+24 qml/Components/Lockscreen.qml+1−20 qml/Components/MediaServices/MediaServices.qml+386 qml/Components/MediaServices/MediaServicesControls.qml+192 qml/Components/MediaServices/MediaServicesHeader.qml+71 qml/Components/MediaServices/VideoPlayer.qml+155 qml/Components/MediaServices/VideoPlayerControls.qml+158 qml/Components/NotificationAudio.qml+20−3 qml/Components/PanelState/PanelState.qml−1 qml/Components/ResponsiveGridView.qml+1 qml/Dash/Previews/PreviewSharing.qml → qml/Components/SharingPicker.qml+2−14 qml/Components/VolumeControl.qml+3−3 qml/Components/Wallpaper.qml+44 qml/Components/WallpaperResolver.qml+24−38 qml/Components/WindowControlButtons.qml+9−5 qml/Components/ZoomableImage.qml+1−1 qml/Components/flickableUtils.js+28 qml/Components/graphics/close@20.png qml/Components/graphics/icon_star_empty@20.png qml/Components/graphics/icon_star_full@20.png qml/Components/graphics/icon_star_half@20.png qml/Components/graphics/icon_star_off@20.png qml/Components/graphics/icon_star_on@20.png qml/Components/graphics/non-selected@18.png qml/Dash/CardCarousel.qml+1−1 qml/Dash/CardTool.qml+16−3 qml/Dash/DashApplication.qml+16−5 qml/Dash/DashBackground.qml+2−2 qml/Dash/DashContent.qml−2 qml/Dash/DashNavigation.qml+1 qml/Dash/DashNavigationList.qml+48−45 qml/Dash/DashPageHeader.qml+51−22 qml/Dash/Filters/FilterExpandableWidget.qml+1 qml/Dash/Filters/FilterOptionSelector.qml+2 qml/Dash/FiltersPopover.qml+1 qml/Dash/GenericScopeView.qml+24−7 qml/Dash/PageHeaderExtraPanel.qml+2 qml/Dash/Previews/Preview.qml+16 qml/Dash/Previews/PreviewCommentInput.qml+15 qml/Dash/Previews/PreviewImageGallery.qml+2 qml/Dash/Previews/PreviewInlineVideo.qml+112 qml/Dash/Previews/PreviewMediaToolbar.qml+25−5 qml/Dash/Previews/PreviewProgress.qml+5−1 qml/Dash/Previews/PreviewRatingEdit.qml+4−1 qml/Dash/Previews/PreviewRatingInput.qml+27−1 qml/Dash/Previews/PreviewSingleton/PreviewSingleton.qml+22 qml/Dash/Previews/PreviewSingleton/qmldir+1 qml/Dash/Previews/PreviewWidget.qml+3 qml/Dash/Previews/PreviewWidgetFactory.qml+11−1 qml/Dash/Previews/PreviewZoomableImage.qml+1 qml/Dash/PullToRefreshScopeStyle.qml+1 qml/Dash/ScopeListView.qml+4−2 qml/Dash/ScopesList.qml+3 qml/Dash/ScopesListCategory.qml+1 qml/Dash/graphics/dash_divider_top_darkgrad@27.png qml/Dash/graphics/dash_divider_top_lightgrad@27.png qml/Dash/graphics/header_handlearrow2@27.png qml/Dash/graphics/header_handlearrow@27.png qml/Dash/graphics/icon_clear@20.png qml/Dash/graphics/icon_search_active@20.png qml/Dash/graphics/icon_search_inactive@20.png qml/Dash/graphics/navigation_shadow@18.png qml/Dash/graphics/navigation_shadow_light@18.png qml/Dash/graphics/overview_hint@27.png qml/Dash/graphics/pagination_dot_off@30.png qml/Dash/graphics/pagination_dot_on@30.png qml/Dash/graphics/paper.png qml/Dash/graphics/pixel.png qml/Dash/graphics/play_button@18.png qml/Dash/graphics/play_button_active@18.png qml/Dash/graphics/play_button_active_big@20.png qml/Dash/graphics/play_button_big@20.png qml/Dash/graphics/tabbarchevron@27.png qml/Dash/graphics/tablet/icon_close_preview@20.png qml/Dash/graphics/tooltip_arrow@27.png qml/Greeter/Circle.qml+57 qml/Greeter/Clock.qml−2 qml/Greeter/CoverPage.qml+28−7 qml/Components/DelayedLockscreen.qml → qml/Greeter/DelayedLockscreen.qml+6−14 qml/Greeter/FullLightDMImpl.qml+30 qml/Greeter/Greeter.qml+233−79 qml/Greeter/GreeterPrompt.qml+102−16 qml/Greeter/Infographics.qml+19−20 qml/Greeter/IntegratedLightDMImpl.qml+3−2 qml/Greeter/LightDM.qml → qml/Greeter/LightDMService.qml+16−3 qml/Stages/ShimStage.qml → qml/Greeter/LoginAreaContainer.qml+15−20 qml/Greeter/LoginList.qml+123−36 qml/Greeter/NarrowView.qml+155−52 qml/Greeter/SessionIcon.qml+47 qml/Greeter/SessionsList.qml+187 qml/Greeter/WideView.qml+112−34 qml/Greeter/graphics/dot_empty.png qml/Greeter/graphics/dot_filled.png qml/Greeter/graphics/dot_pointer.png qml/Greeter/graphics/icon_arrow.png qml/Greeter/graphics/infographic_circle_back.png qml/Greeter/graphics/session_icons/gnome_badge.png qml/Greeter/graphics/session_icons/kde_badge.png qml/Greeter/graphics/session_icons/recovery_console_badge.png qml/Greeter/graphics/session_icons/ubuntu_badge.png qml/Greeter/graphics/session_icons/unknown_badge.png qml/Greeter/qmldir+1 qml/Launcher/Launcher.qml+1 qml/Launcher/LauncherPanel.qml+5−3 qml/Launcher/graphics/divider-line.png qml/Launcher/graphics/focused_app_arrow@30.png qml/Launcher/graphics/home@18.png qml/Launcher/graphics/quicklist_tooltip@30.png qml/Notifications/Notification.qml+13−29 qml/Notifications/NotificationMenuItemFactory.qml−3 qml/Notifications/Notifications.qml+14−25 qml/OrientedShell.qml+10−3 qml/Panel/IndicatorItemRow.qml+13−2 qml/Panel/IndicatorPage.qml+1 qml/Panel/Indicators/MenuItemFactory.qml+65 qml/Panel/Indicators/client/IndicatorRepresentation.qml+27−23 qml/Panel/Indicators/client/IndicatorsClient.qml+8−2 qml/Panel/Indicators/client/IndicatorsList.qml+19−17 qml/Panel/Indicators/client/IndicatorsTree.qml+5−8 qml/Panel/IndicatorsMenu.qml+3−1 qml/Panel/Panel.qml+11−15 qml/Panel/graphics/rectangular_dropshadow@30.png qml/Rotation/HalfLoopRotationAnimation.qml+1−1 qml/Rotation/ImmediateRotationAction.qml+1−1 qml/Rotation/NinetyRotationAnimation.qml+1−1 qml/Rotation/UpdateShellTransformations.qml+4−4 qml/Shell.qml+132−24 qml/Stages/AbstractStage.qml+13 qml/Stages/ApplicationWindow.qml+7 qml/Stages/DecoratedWindow.qml+26−4 qml/Stages/DesktopSpread.qml+2 qml/Stages/DesktopStage.qml+175−79 qml/Stages/FakeMaximizeDelegate.qml+233 qml/Stages/MoveHandler.qml+179 qml/Stages/PhoneStage.qml+9−3 qml/Stages/Splash.qml+3−6 qml/Stages/SpreadDelegate.qml+72−81 qml/Stages/TabletStage.qml+34−18 qml/Stages/TopLevelSurfaceRepeater.qml+7−1 qml/Stages/WindowControlsOverlay.qml+76−38 qml/Stages/WindowDecoration.qml+15−39 qml/Stages/WindowResizeArea.qml+24−35 qml/Stages/graphics/PageHeaderBaseDividerBottom@18.png qml/Stages/graphics/PageHeaderBaseDividerLight@18.png qml/Stages/graphics/dropshadow2gu@30.png qml/Stages/graphics/sidestage_handle@20.png qml/Tutorial/graphics/background1.png qml/Tutorial/graphics/background2.png qml/Wizard/Page.qml+1−1 qml/Wizard/Pages/10-welcome.qml+3−1 qml/Wizard/Pages/20-keyboard.qml+161 qml/Wizard/Pages/30-wifi.qml+11−5 qml/Wizard/Pages/50-timezone.qml+1 qml/Wizard/Pages/70-passwd-type.qml+1 qml/Wizard/Pages/77-system-update.qml+156 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/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/passcode-confirm.qml+2−2 qml/Wizard/Pages/passcode-desktop.qml+28−10 qml/Wizard/Pages/passcode-set.qml+2−2 qml/Wizard/Pages/password-set.qml+1 qml/Wizard/PasswordMeter.qml+3−1 qml/Wizard/Wizard.qml+6−2 qml/Wizard/WizardItemSelector.qml+129 qml/graphics/dropshadow_left@20.png qml/graphics/dropshadow_right@20.png qml/graphics/phone_background.jpg qml/graphics/tablet_background.jpg run.sh−70 run_on_device.sh−164 src/CMakeLists.txt+1 src/Dash/main.cpp+23−22 src/SecondaryWindow.cpp+1−1 src/ShellApplication.cpp+11−1 src/main.cpp+1−1 tests/CMakeLists.txt+14−13 tests/autopilot/unity8/fixture_setup.py+1−1 tests/autopilot/unity8/greeter/tests/test_args.py−5 tests/autopilot/unity8/shell/tests/__init__.py+1−1 tests/data/unity/backgrounds/blue.png tests/data/unity/backgrounds/red.png tests/graphics/applicationIcons/browser@18.png tests/graphics/applicationIcons/calendar@18.png tests/graphics/applicationIcons/camera@18.png tests/graphics/applicationIcons/contacts-app@18.png tests/graphics/applicationIcons/dash.png tests/graphics/applicationIcons/dialer-app@18.png tests/graphics/applicationIcons/evernote@18.png tests/graphics/applicationIcons/facebook@18.png tests/graphics/applicationIcons/gallery@18.png tests/graphics/applicationIcons/gmail@18.png tests/graphics/applicationIcons/libreoffice@18.png tests/graphics/applicationIcons/map@18.png tests/graphics/applicationIcons/messages-app@18.png tests/graphics/applicationIcons/notepad@18.png tests/graphics/applicationIcons/pinterest@18.png tests/graphics/applicationIcons/soundcloud@18.png tests/graphics/applicationIcons/system-settings@18.png tests/graphics/applicationIcons/twitter@18.png tests/graphics/applicationIcons/weather@18.png tests/graphics/applicationIcons/wikipedia@18.png tests/graphics/applicationIcons/youtube@18.png tests/graphics/avatars/amanda@12.png tests/graphics/avatars/anna_olsson@12.png tests/graphics/avatars/funky@12.png tests/graphics/clock@18.png tests/imports/check_imports.py+58 tests/mocks/AccountsService/AccountsService.cpp+43−3 tests/mocks/AccountsService/AccountsService.h+20−1 tests/mocks/AccountsService/CMakeLists.txt+14 tests/mocks/Biometryd/CMakeLists.txt+14 tests/mocks/Biometryd/MockBiometryd.cpp+43 tests/mocks/Biometryd/MockBiometryd.h+50 tests/mocks/Biometryd/MockDevice.cpp+29 tests/mocks/Biometryd/MockDevice.h+40 tests/mocks/Biometryd/MockIdentifier.cpp+28 tests/mocks/Biometryd/MockIdentifier.h+36 tests/mocks/Biometryd/MockObserver.cpp+22 tests/mocks/Biometryd/MockObserver.h+37 tests/mocks/Biometryd/MockOperation.cpp+56 tests/mocks/Biometryd/MockOperation.h+48 tests/mocks/Biometryd/plugin.cpp+41 tests/mocks/Biometryd/plugin.h+31 tests/mocks/Biometryd/qmldir+3 tests/mocks/CMakeLists.txt+3−1 tests/mocks/Cursor/CMakeLists.txt+1−1 tests/mocks/Cursor/Cursor.qml+10−1 tests/mocks/IntegratedLightDM/qmldir−3 tests/mocks/LightDM/CMakeLists.txt+1 tests/mocks/IntegratedLightDM/CMakeLists.txt → tests/mocks/LightDM/IntegratedLightDM/CMakeLists.txt+9−7 tests/mocks/IntegratedLightDM/MockGreeter.cpp → tests/mocks/LightDM/IntegratedLightDM/MockGreeter.cpp+16 tests/mocks/IntegratedLightDM/MockGreeter.h → tests/mocks/LightDM/IntegratedLightDM/MockGreeter.h+5 tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.cpp+66 tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.h+44 tests/mocks/IntegratedLightDM/MockUsersModel.cpp → tests/mocks/LightDM/IntegratedLightDM/MockUsersModel.cpp+5 tests/mocks/IntegratedLightDM/MockUsersModel.h → tests/mocks/LightDM/IntegratedLightDM/MockUsersModel.h+2 tests/mocks/IntegratedLightDM/QLightDM/Greeter → tests/mocks/LightDM/IntegratedLightDM/QLightDM/Greeter tests/mocks/LightDM/IntegratedLightDM/QLightDM/SessionsModel+17 tests/mocks/IntegratedLightDM/QLightDM/UsersModel → tests/mocks/LightDM/IntegratedLightDM/QLightDM/UsersModel tests/mocks/IntegratedLightDM/liblightdm/CMakeLists.txt → tests/mocks/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txt+4−2 tests/mocks/IntegratedLightDM/liblightdm/Greeter.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.cpp+7−5 tests/mocks/IntegratedLightDM/liblightdm/Greeter.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.h+1−2 tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpp tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.h+1 tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cpp+121 tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.h+72 tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cpp+83 tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.h+63 tests/mocks/IntegratedLightDM/liblightdm/UsersModel.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModel.cpp+4−1 tests/mocks/IntegratedLightDM/liblightdm/UsersModel.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModel.h+2−1 tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+43−23 tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.h+2−1 tests/mocks/IntegratedLightDM/plugin.cpp → tests/mocks/LightDM/IntegratedLightDM/plugin.cpp+15−4 tests/mocks/IntegratedLightDM/plugin.h → tests/mocks/LightDM/IntegratedLightDM/plugin.h+1−1 tests/mocks/LightDM/IntegratedLightDM/qmldir+2 tests/mocks/QtMultimedia/CMakeLists.txt+8−2 tests/mocks/QtMultimedia/VideoSurface.qml+111 tests/mocks/QtMultimedia/audio.cpp−132 tests/mocks/QtMultimedia/audio.h−103 tests/mocks/QtMultimedia/mediaplayer.cpp+319 tests/mocks/QtMultimedia/mediaplayer.h+224 tests/mocks/QtMultimedia/plugin.cpp+7−3 tests/mocks/QtMultimedia/videooutput.cpp+127 tests/mocks/QtMultimedia/videooutput.h+52 tests/mocks/SessionBroadcast/CMakeLists.txt+8 tests/mocks/SessionBroadcast/SessionBroadcast.cpp+34 tests/mocks/SessionBroadcast/SessionBroadcast.h+39 tests/mocks/SessionBroadcast/plugin.cpp+31 tests/mocks/SessionBroadcast/plugin.h+32 tests/mocks/SessionBroadcast/qmldir+2 tests/mocks/Ubuntu/DownloadDaemonListener/MockDownloadTracker.cpp+3−1 tests/mocks/Ubuntu/DownloadDaemonListener/MockDownloadTracker.h+2−1 tests/mocks/Ubuntu/SystemImage/MockSystemImage.cpp+24−1 tests/mocks/Ubuntu/SystemImage/MockSystemImage.h+22−2 tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.cpp+27 tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.h+22 tests/mocks/Unity/Application/ApplicationInfo.cpp+1−9 tests/mocks/Unity/Application/ApplicationInfo.h−4 tests/mocks/Unity/Application/ApplicationManager.cpp+6−11 tests/mocks/Unity/Application/CMakeLists.txt−1 tests/mocks/Unity/Application/MirSurface.cpp+26 tests/mocks/Unity/Application/MirSurface.h+12 tests/mocks/Unity/Application/MirSurfaceItem.cpp+37−10 tests/mocks/Unity/Application/MirSurfaceItem.h+2 tests/mocks/Unity/Application/UbuntuKeyboardInfo.cpp−58 tests/mocks/Unity/Application/UbuntuKeyboardInfo.h−57 tests/mocks/Unity/Application/VirtualKeyboard.cpp+20−1 tests/mocks/Unity/Application/VirtualKeyboard.h+4−1 tests/mocks/Unity/Application/plugin.cpp−8 tests/mocks/Unity/Application/resources/VirtualKeyboard.qml+1−6 tests/mocks/Unity/Application/resources/screenshots/browser@12.png tests/mocks/Unity/Application/resources/screenshots/camera@12.png tests/mocks/Unity/Application/resources/screenshots/dialer@12.png tests/mocks/Unity/Application/resources/screenshots/facebook@12.png tests/mocks/Unity/Application/resources/screenshots/gallery@12.png tests/mocks/Unity/Application/resources/screenshots/libreoffice@12.png tests/mocks/Unity/Application/resources/screenshots/map@12.png tests/mocks/Unity/Application/resources/screenshots/music@12.png tests/mocks/Unity/Application/resources/screenshots/twitter@12.png tests/mocks/Unity/Application/resources/screenshots/unity8-dash@12.png tests/mocks/Unity/Application/resources/screenshots/vkb_portrait.png tests/mocks/Unity/Application/resources/vkb_portrait.png tests/mocks/Unity/Indicators/CMakeLists.txt+1 tests/mocks/Unity/Indicators/IndicatorsModel.qml+71−6 tests/mocks/Unity/Indicators/fakeindicatorsmodeldata.js+1106 tests/mocks/Unity/Indicators/fakeplugin.cpp+2 tests/mocks/Unity/Notifications/MockNotification.cpp+15 tests/mocks/Unity/Notifications/MockNotification.h+5 tests/mocks/Unity/Notifications/MockNotificationModel.cpp+4−6 tests/mocks/Unity/Notifications/MockNotificationModel.h+2−4 tests/mocks/Unity/fake_scope.cpp+6−1 tests/mocks/Unity/fake_scope.h+1 tests/mocks/Utils/CMakeLists.txt+6−1 tests/mocks/Utils/URLDispatcher.cpp+38 tests/mocks/Utils/URLDispatcher.h+47 tests/mocks/Utils/plugin.cpp+2 tests/mocks/Utils/windowstatestorage.cpp+4−4 tests/mocks/Utils/windowstatestorage.h+9−4 tests/mocks/Wizard/CMakeLists.txt+6−3 tests/mocks/Wizard/MockSystem.cpp+8 tests/mocks/Wizard/MockSystem.h+4 tests/mocks/Wizard/mockplugin.cpp+2 tests/mocks/libusermetrics/libusermetricsoutput/ColorTheme.h−1 tests/mocks/libusermetrics/libusermetricsoutput/UserMetrics.h−1 tests/plugins/AccountsService/CMakeLists.txt−5 tests/plugins/CMakeLists.txt+3−1 tests/plugins/Cursor/tst_Cursor.qml+8−1 tests/plugins/Dash/CMakeLists.txt+4 tests/plugins/Dash/cardcreator/1.res+16−18 tests/plugins/Dash/cardcreator/1.res.cardcreator+5−18 tests/plugins/Dash/cardcreator/10.res+1−2 tests/plugins/Dash/cardcreator/10.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/11.res+19−21 tests/plugins/Dash/cardcreator/11.res.cardcreator+6−19 tests/plugins/Dash/cardcreator/12.res+16−18 tests/plugins/Dash/cardcreator/12.res.cardcreator+5−18 tests/plugins/Dash/cardcreator/2.res+1−2 tests/plugins/Dash/cardcreator/2.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/3.res+7−11 tests/plugins/Dash/cardcreator/3.res.cardcreator+6−11 tests/plugins/Dash/cardcreator/4.res+9−8 tests/plugins/Dash/cardcreator/4.res.cardcreator+1−9 tests/plugins/Dash/cardcreator/5.res+9−13 tests/plugins/Dash/cardcreator/5.res.cardcreator+7−12 tests/plugins/Dash/cardcreator/6.res+9−8 tests/plugins/Dash/cardcreator/6.res.cardcreator+1−9 tests/plugins/Dash/cardcreator/7.res+1−2 tests/plugins/Dash/cardcreator/7.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/8.res+9−8 tests/plugins/Dash/cardcreator/8.res.cardcreator+1−9 tests/plugins/Dash/cardcreator/9.res+10−9 tests/plugins/Dash/cardcreator/9.res.cardcreator+1−9 tests/plugins/Dash/horizontaljournaltest.cpp−3 tests/plugins/Dash/listviewwithpageheadersectionexternalmodeltest.cpp−3 tests/plugins/Dash/listviewwithpageheadersectiontest.cpp−3 tests/plugins/Dash/listviewwithpageheadertest.cpp+30−3 tests/plugins/Dash/organicgridtest.cpp−3 tests/plugins/Dash/verticaljournaltest.cpp+62−3 tests/plugins/ImageCache/CMakeLists.txt+20 tests/plugins/ImageCache/graphics/wide.jpg tests/plugins/ImageCache/test.cpp+214 qml/Components/Circle.qml → tests/plugins/ImageCache/test.qml+6−5 tests/plugins/LightDM/CMakeLists.txt+1 tests/plugins/IntegratedLightDM/CMakeLists.txt → tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt+35−15 tests/plugins/IntegratedLightDM/dbus.cpp → tests/plugins/LightDM/IntegratedLightDM/dbus.cpp tests/plugins/IntegratedLightDM/greeter.qml → tests/plugins/LightDM/IntegratedLightDM/greeter.qml+1−1 tests/plugins/IntegratedLightDM/integrated.cpp → tests/plugins/LightDM/IntegratedLightDM/integrated.cpp tests/plugins/IntegratedLightDM/pam.cpp → tests/plugins/LightDM/IntegratedLightDM/pam.cpp tests/plugins/LightDM/IntegratedLightDM/sessionsmodel.cpp+128 tests/plugins/IntegratedLightDM/usersmodel.cpp → tests/plugins/LightDM/IntegratedLightDM/usersmodel.cpp+2−2 tests/plugins/SessionBroadcast/BroadcastServer.cpp+33 tests/plugins/SessionBroadcast/BroadcastServer.h+40 tests/plugins/SessionBroadcast/CMakeLists.txt+45 tests/plugins/SessionBroadcast/interfaces.xml+18 tests/plugins/SessionBroadcast/server.cpp+37 tests/plugins/SessionBroadcast/sessionbroadcasttest.cpp+111 tests/plugins/Ubuntu/Gestures/CMakeLists.txt+4−2 tests/plugins/Ubuntu/Gestures/GestureTest.cpp+3−3 tests/plugins/Ubuntu/Gestures/GestureTest.h+4−5 tests/plugins/Ubuntu/Gestures/tst_AxisVelocityCalculator.cpp+1−1 tests/plugins/Ubuntu/Gestures/tst_FloatingFlickable.cpp+1−1 tests/plugins/Ubuntu/Gestures/tst_TouchGate.cpp+3−1 tests/plugins/Unity/Launcher/launchermodeltest.cpp+21−2 tests/plugins/Unity/Session/CMakeLists.txt+29−1 tests/plugins/Unity/Session/LightDMServer.cpp+29 tests/plugins/Unity/Session/LightDMServer.h+38 tests/plugins/Unity/Session/LogindServer.cpp+33 tests/plugins/Unity/Session/LogindServer.h+43 tests/plugins/Unity/Session/interfaces.xml+17 tests/plugins/Unity/Session/server.cpp+50 tests/plugins/Unity/Session/sessionbackendtest.cpp+15−1 tests/plugins/Utils/CMakeLists.txt+9 tests/plugins/Utils/URLDispatcherTest.cpp+78 tests/plugins/Wizard/tst_pagelist.cpp+30−1 tests/qmltests/CMakeLists.txt+13−11 tests/qmltests/Components/CMakeLists.txt+5−1 tests/qmltests/Components/tst_Carousel.qml−1 tests/qmltests/Components/tst_DragHandle.cpp+2−2 tests/qmltests/Components/tst_EdgeDragEvaluator.cpp+2−2 tests/qmltests/Components/tst_LazyImage/portrait.png tests/qmltests/Components/tst_LazyImage/square.png tests/qmltests/Components/tst_LazyImage/wide.png tests/qmltests/Components/tst_Lockscreen.qml+3−23 tests/qmltests/Components/tst_MediaServices.qml+230 tests/qmltests/Dash/Previews/tst_PreviewSharing.qml → tests/qmltests/Components/tst_SharingPicker.qml+8−8 tests/qmltests/Components/tst_WallpaperResolver.qml+21−35 tests/qmltests/Components/tst_ZoomableImage.qml+1−1 tests/qmltests/Dash/Previews/tst_Preview.qml−2 tests/qmltests/Dash/Previews/tst_PreviewActions.qml+2−1 tests/qmltests/Dash/Previews/tst_PreviewAudioPlayback.qml+8−10 tests/qmltests/Dash/Previews/tst_PreviewCommentInput.qml+28 tests/qmltests/Dash/Previews/tst_PreviewExpandable.qml+3−3 tests/qmltests/Dash/Previews/tst_PreviewHeader.qml−4 tests/qmltests/Dash/Previews/tst_PreviewIconActions.qml+1−1 tests/qmltests/Dash/Previews/tst_PreviewImageGallery.qml+6−6 tests/qmltests/Dash/Previews/tst_PreviewInlineVideo.qml+155 tests/qmltests/Dash/Previews/tst_PreviewMediaToolbar.qml+3−3 tests/qmltests/Dash/Previews/tst_PreviewProgress.qml+14−1 tests/qmltests/Dash/Previews/tst_PreviewRatingDisplayCreationRanges.qml+52−15 tests/qmltests/Dash/Previews/tst_PreviewRatingEdit.qml+3 tests/qmltests/Dash/Previews/tst_PreviewRatingInput.qml+32 tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+17−16 tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+7−7 tests/qmltests/Dash/artwork/avatar@12.png tests/qmltests/Dash/artwork/background.png tests/qmltests/Dash/artwork/checkers.png tests/qmltests/Dash/artwork/emblem.png tests/qmltests/Dash/artwork/music-player-design.png tests/qmltests/Dash/tst_Card.qml+7−2 tests/qmltests/Dash/tst_CardCarousel.qml+24 tests/qmltests/Dash/tst_CardTool.qml+4−4 tests/qmltests/Dash/tst_Dash.qml+81−86 tests/qmltests/Dash/tst_DashContent.qml+54−13 tests/qmltests/Dash/tst_DashPageHeader.qml+44−3 tests/qmltests/Dash/tst_DashShell.qml+6 tests/qmltests/Dash/tst_GenericScopeView.qml+65−61 tests/qmltests/Greeter/TestView.qml+14−6 tests/qmltests/Greeter/tst_Greeter.qml+210−24 tests/qmltests/Greeter/tst_Infographics.qml+1−1 tests/qmltests/Greeter/tst_NarrowView.qml+70−14 tests/qmltests/Greeter/tst_WideView.qml+248−21 tests/qmltests/Launcher/tst_Launcher.qml+47−5 tests/qmltests/Notifications/Notification.qml+1 tests/qmltests/Notifications/tst_Notifications.qml+79−29 tests/qmltests/Notifications/tst_OptionToggle.qml+1−16 tests/qmltests/Notifications/tst_SwipeToAct.qml+4−18 tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+7−23 tests/qmltests/Panel/Indicators/tst_MenuItemFactory.qml+1−1 tests/qmltests/Panel/tst_IndicatorItem.qml+4−3 tests/qmltests/Panel/tst_IndicatorItemRow.qml+26−1 tests/qmltests/Panel/tst_IndicatorPage.qml−2 tests/qmltests/Panel/tst_IndicatorsBar.qml+3−3 tests/qmltests/Panel/tst_IndicatorsMenu.qml+33−4 tests/qmltests/Panel/tst_Panel.qml+19−2 tests/qmltests/Stages/tst_DesktopStage.qml+140−3 tests/qmltests/Stages/tst_PhoneStage.qml+2−2 tests/qmltests/Stages/tst_Splash.qml+15−1 tests/qmltests/Stages/tst_SpreadDelegate.qml+115−12 tests/qmltests/Stages/tst_TabletStage.qml+168−38 tests/qmltests/Stages/tst_WindowResizeArea.qml+45−35 tests/qmltests/Tutorial/tst_Tutorial.qml+3−3 tests/qmltests/UnityLogo.png tests/qmltests/Wizard/tst_Wizard.qml+47−2 tests/qmltests/tst_DisabledScreenNotice.qml+1−1 tests/qmltests/tst_OrientedShell.qml+86−51 tests/qmltests/tst_Shell.qml+272−34 tests/qmltests/tst_ShellWithPin.qml+52−46 tests/utils/modules/Unity/Test/CMakeLists.txt+6−1 tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.cpp+8−3 tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.h+4−2 tests/utils/modules/Unity/Test/testutil.cpp+15−4 tools/registry-tracker.cpp+2−2 tools/scopetool.cpp+6−2
.crossbuilder/post_deploynew file+1
@@ -0,0 +1 @@
1+restart unity8
CMakeLists.txt+3−1
@@ -57,11 +57,12 @@ 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=18)
60+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=22)
6161pkg_check_modules(GEONAMES REQUIRED geonames>=0.2)
6262pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
6363pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
6464pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
65+pkg_check_modules(GD3 REQUIRED gnome-desktop-3.0)
6566
6667pkg_check_modules(UBUNTUGESTURES REQUIRED UbuntuGestures)
6768
@@ -128,6 +129,7 @@ set(SHELL_APP unity8)
128129set(DASH_APP unity8-dash)
129130set(SCOPE_TOOL unity-scope-tool)
130131set(INDICATORS_CLIENT_APP indicators-client)
132+set(GREETER_APP unity8-greeter)
131133set(MOCK_INDICATOR_SERVICE_APP unity-mock-indicator-service)
132134
133135include_directories(
CODING+20−59
@@ -15,23 +15,17 @@ download source
1515 $ bzr branch lp:unity8 ~/unity8/trunk
1616 $ cd ~/unity8/trunk
1717
18−install dependencies
18+install dependencies and build Unity 8
1919--------------------
20−If its your first time, install build dependencies
2120
2221$ cd ~/unity8/trunk
23−$ ./build.sh --setup
24−
25− this will:
26− - install the required dependencies to build, as well as run on the desktop
27− - it should also install unity-scope-home and unity-lens-application which
28− are technically "recommends", not strict dependencies
22+$ ./build.sh
2923
30−build Unity 8
31−-------------
24+ If its your first time, this will install the required dependencies to build and
25+ build it.
3226
33−$ cd ~/unity8/trunk
34−$ ./build.sh
27+ You might want to also install unity-scope-home and unity-scope-click which
28+ are technically "recommends", not strict dependencies
3529
3630You may also rebuild with the -c for clean, which just deletes the build
3731directory.
@@ -43,13 +37,15 @@ Running Unity 8 on your desktop
4337run the Unity 8 shell
4438---------------------
4539$ cd ~/unity8/trunk
46−$ ./run.sh
40+$ cd builddir
4741
48−Options can be passed to test the lock screen
49−$ ./run.sh -p OR -k
42+Each component of unity8 can be ran independently for development and testing
43+For example:
44+$ make tryShell
45+$ make tryLauncher
46+$ make tryLockscreen
5047
51−-p is for pin lock, for which the default prompt answer is "1234"
52−-k is for keylock passphrase, for which the default prompt answer is "password"
48+Check out the tests/qmltests/ directory for a list of things that can be ran.
5349
5450Notes
5551-----
@@ -70,50 +66,15 @@ Notes
7066
7167Running Unity 8 on devices
7268==========================
73−- Ubuntu Touch builds are currently only available in 14.04 flavour
74−- supported hardware should match one of those listed here
75− https://wiki.ubuntu.com/Touch/Devices#Running_fine
76−- follow the Ubuntu Touch install instructions for your chosen device
77− https://wiki.ubuntu.com/Touch/Install
78−- make sure your device is connected to a network
79−- also make sure you have your SSH key in ~/.ssh/id_rsa.pub (or install one
80− on the device yourself)
81−
82−$ cd ~/unity/trunk
83−$ ./run_on_device.sh --setup
84− this will:
85− - install your public SSH key on the device
86− - install the needed dependencies
8769
88−$ ./run_on_device.sh
89− this will:
90− - rsync the code to the device
91− - build on the device
92− - replace the running shell
93−
94−Options can be passed to test the lock screen
95−$ ./run_on_device.sh -p OR -k
96−
97−-p is for pin lock, for which the default prompt answer is "1234"
98−-k is for keylock passphrase, for which the default prompt answer is "password"
99−
100−Notes
101−-----
102−- using adb over TCP has some advantages, Google will be of help here
103− - NOTE: this is not yet available for flipped images
104− - TL;DR: `adb tcpip 5555; adb connect $your_device_ip`
105− - you can persist the above via `adb shell setprop persist.adb.tcp.port 5555`
106− - it's unsafe - anyone can connect to your device
107− - with TCP the Nexus 10 doesn't drop the adb connection when locking
108− the screen
109−- exporting ANDROID_SERIAL=$your_device_serial or
110− ANDROID_SERIAL=$your_device_ip:5555 will make adb not complain about
111− multiple devices
112−- you can export TARGET_IP=$your_device_ip TARGET_SSH_PORT=22 for run_on_device.sh
113− to not use adb forwarding - useful if you use multiple devices
114−- using Ninja (package ninja-build - run_on_device.sh -s installs this now)
115− will improve build times (especially in the nothing-to-build case)
70+Running unity8 on a device should be done using crossbuilder.
71+Go to
72+* https://launchpad.net/crossbuilder and
73+* https://wiki.ubuntu.com/Touch/Crossbuilder
74+for more details on crossbuilder.
11675
76+unity8 will automatically restart on the phone once deployment
77+has finished due to post-build-steps set up in this repository.
11778
11879Coding guidelines
11980=================
build.sh+6−37
@@ -9,7 +9,6 @@ usage() {
99 echo "usage: build [OPTIONS] [BUILD_TYPE]\n" >&2
1010 echo "Script to build the shell. If BUILD_TYPE is not specified, it defaults to \"debug\".\n" >&2
1111 echo "OPTIONS:" >&2
12− echo " -s, --setup Setup the build environment and branch Unity" >&2
1312 echo " -c, --clean Clean the build tree before building" >&2
1413 echo >&2
1514 exit 1
@@ -22,7 +21,6 @@ eval set -- "$ARGS"
2221while [ $# -gt 0 ]
2322do
2423 case "$1" in
25− -s|--setup) SETUP=true;;
2624 -c|--clean) CLEAN=true;;
2725 -h|--help) usage;;
2826 --) shift;break;;
@@ -35,31 +33,6 @@ done
3533BUILD_TYPE="debug"
3634[ $# -eq 1 ] && BUILD_TYPE="$1"
3735
38−install_dependencies() {
39− sudo apt-get update || exit 4
40− echo "Installing Unity 8 dependencies.."
41− sudo apt-get install devscripts \
42− equivs \
43− gsettings-desktop-schemas \
44− gsettings-ubuntu-schemas \
45− pay-service \
46− qmenumodel-qml \
47− qml-module-qtquick-layouts \
48− qml-module-qtquick-xmllistmodel \
49− qtdeclarative5-gsettings1.0 \
50− qtdeclarative5-ubuntu-ui-toolkit-plugin \
51− qtdeclarative5-ubuntu-settings-components \
52− qtdeclarative5-ubuntu-telephony0.1 \
53− qtdeclarative5-ubuntu-thumbnailer0.1 \
54− qtdeclarative5-unity-notifications-plugin \
55− qml-module-ubuntu-connectivity \
56− ubuntu-mobile-icons \
57− ubuntu-system-settings \
58− unity-plugin-scopes \
59− xvfb \
60− || exit 5
61−}
62−
6336mk_build_deps() {
6437 if [ ! -f control -o $CODE_DIR/debian/control -nt control ]; then
6538 sed 's/\:native//g' $CODE_DIR/debian/control > control
@@ -85,13 +58,9 @@ else
8558 BUILD_COMMAND="make -j$NUM_JOBS"
8659fi
8760
88−if $SETUP; then
89− install_dependencies
90−else
91− if $CLEAN; then rm -rf builddir; fi
92− mkdir -p builddir
93− cd builddir
94− mk_build_deps
95− cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CODE_DIR ${GENERATOR} || exit 6
96− ${BUILD_COMMAND} || exit 7
97−fi
61+if $CLEAN; then rm -rf builddir; fi
62+mkdir -p builddir
63+cd builddir
64+mk_build_deps
65+cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE $CODE_DIR ${GENERATOR} || exit 6
66+${BUILD_COMMAND} || exit 7
data/51-unity8-greeter.confnew file+2
@@ -0,0 +1,2 @@
1+[Seat:*]
2+greeter-session=unity8-greeter
data/CMakeLists.txt+11
@@ -2,6 +2,7 @@
22configure_file(${SHELL_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${SHELL_APP}.desktop @ONLY)
33configure_file(${DASH_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${DASH_APP}.desktop @ONLY)
44configure_file(${INDICATORS_CLIENT_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${INDICATORS_CLIENT_APP}.desktop @ONLY)
5+configure_file(${GREETER_APP}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${GREETER_APP}.desktop @ONLY)
56
67# install desktop files
78install(FILES
@@ -11,6 +12,16 @@ install(FILES
1112 DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
1213 )
1314
15+install(FILES
16+ ${CMAKE_CURRENT_BINARY_DIR}/${GREETER_APP}.desktop
17+ DESTINATION ${CMAKE_INSTALL_DATADIR}/lightdm/greeters
18+ )
19+
20+install(FILES
21+ 51-unity8-greeter.conf
22+ DESTINATION ${CMAKE_INSTALL_DATADIR}/lightdm/lightdm.conf.d
23+ )
24+
1425# install dash icon
1526install(FILES
1627 ${CMAKE_CURRENT_SOURCE_DIR}/${DASH_APP}.png
data/unity8-dash.png

Binary file not shown.

data/unity8-greeter-init.confnew file+12
@@ -0,0 +1,12 @@
1+description "Unity 8 Greeter initialization"
2+author "Michael Terry <mterry@ubuntu.com>"
3+
4+start on unity8-greeter-started
5+task
6+emits indicator-services-start
7+
8+script
9+ start --no-wait ofono-setup || true
10+ initctl emit --no-wait indicator-services-start || true
11+ start --no-wait maliit-server || true
12+end script
data/unity8-greeter-wrappernew file+106
@@ -0,0 +1,106 @@
1+#!/bin/sh
2+# -*- Mode: sh; indent-tabs-mode: nil; tab-width: 4 -*-
3+#
4+# Copyright (C) 2011,2013,2016 Canonical Ltd
5+#
6+# This program is free software: you can redistribute it and/or modify it under
7+# the terms of the GNU General Public License as published by the Free Software
8+# Foundation, version 3 of the License.
9+#
10+# See http://www.gnu.org/copyleft/gpl.html the full text of the license.
11+
12+# This wrapper merely ensures that init and friends live only as long as this
13+# script does. Otherwise, it's very easy for some processes to not notice that
14+# the session died. We could try to do this in-process, but we want to do this
15+# cleanup even if the greeter aborts.
16+
17+trap cleanup TERM EXIT
18+
19+cleanup()
20+{
21+ trap - TERM EXIT
22+ # Kill upstart and indicators
23+ if [ -n "$INIT_PID" ]; then
24+ kill "$INIT_PID"
25+ fi
26+ if [ -n "$CMD_PID" ]; then
27+ kill "$CMD_PID"
28+ fi
29+ exit 0
30+}
31+
32+set_greeter_var()
33+{
34+ export "$1=$2"
35+ gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.UpdateActivationEnvironment "{'$1': '$2'}"
36+ if [ -n "$INIT_PID" ]; then
37+ initctl set-env --global "$1=$2"
38+ fi
39+}
40+
41+SUB_SOCKET=$XDG_RUNTIME_DIR/mir_socket
42+rm -f $SUB_SOCKET # clear socket in case we were hard shut down
43+
44+echo "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}" >"$XDG_RUNTIME_DIR/dbus-session"
45+
46+# If touch session script (which sets up grid units and mir variables) is available, use it
47+TOUCH_WRAPPER=
48+if [ -x /usr/bin/ubuntu-touch-session ]; then
49+ TOUCH_WRAPPER=/usr/bin/ubuntu-touch-session
50+fi
51+
52+# Pretend that we're in an ubuntu-touch session, so that indicator-network
53+# will start.
54+export DESKTOP_SESSION=ubuntu-touch
55+
56+# We disable ofono using pulse. It causes problems with racing with the user's
57+# pulse. We need to come up with a better long-term fix for this, because we
58+# eventually need the greeter to play ringtones for users that aren't logged in.
59+set_greeter_var PA_DISABLED 1
60+
61+# Normal unity8 sessions are entirely driven by Upstart. But greeters
62+# are special. They need access to the file descriptors that lightdm
63+# creates for them and don't want to start all the services that a normal
64+# session would. So it's inconvenient to live within an upstart session.
65+# But... we still want to use Upstart for some services. So launch here.
66+MIR_SOCKET=$SUB_SOCKET $TOUCH_WRAPPER /sbin/upstart --user --no-startup-event &
67+INIT_PID=$!
68+while [ ! -e "$XDG_RUNTIME_DIR/upstart/sessions/$INIT_PID.session" ]; do sleep 0.1; done
69+. "$XDG_RUNTIME_DIR/upstart/sessions/$INIT_PID.session"
70+export UPSTART_SESSION
71+
72+# Connect upstart to system, but do first command in a loop to avoid any
73+# race condition between the session file above being written and upstart being
74+# ready to handle requests.
75+while ! /sbin/initctl notify-dbus-address "$DBUS_SESSION_BUS_ADDRESS"; do sleep 0.1; done
76+/sbin/initctl start notify-cgmanager
77+
78+# Start any pre-greeter tasks if needed (like wizard)
79+/sbin/initctl emit unity8-greeter-starting
80+
81+# Define language here for phone if available. When phone user switches their
82+# language, they expect that to affect the greeter too. But the user doesn't
83+# have permission to switch system language, only their own. So we notice if
84+# the phablet user exists and use their language if so. TODO: talk to design
85+# about whether we should switch language on fly as users are selected (this
86+# is very hard to do technically).
87+#
88+# Do this after unity8-greeter-starting, in case a customization upstart job
89+# changes language.
90+if [ "$(id -u phablet 2>/dev/null)" = "32011" ]; then
91+ USER_LANG=$(gdbus call --system --dest org.freedesktop.Accounts --object-path /org/freedesktop/Accounts/User32011 --method org.freedesktop.DBus.Properties.Get org.freedesktop.Accounts.User Language | cut -d\' -f2)
92+ if [ -n "$USER_LANG" ]; then
93+ set_greeter_var LANGUAGE "$USER_LANG"
94+ fi
95+ USER_LOCALE=$(gdbus call --system --dest org.freedesktop.Accounts --object-path /org/freedesktop/Accounts/User32011 --method org.freedesktop.DBus.Properties.Get org.freedesktop.Accounts.User FormatsLocale | cut -d\' -f2)
96+ if [ -n "$USER_LOCALE" ]; then
97+ set_greeter_var LANG "$USER_LOCALE"
98+ set_greeter_var LC_ALL "$USER_LOCALE"
99+ fi
100+fi
101+
102+# And finally actually start the greeter
103+exec env QT_QPA_PLATFORM=ubuntumirclient MIR_SERVER_FILE=$SUB_SOCKET $TOUCH_WRAPPER $@ &
104+CMD_PID=$!
105+wait $CMD_PID
106+CMD_PID=
data/unity8-greeter.desktop.innew file+7
@@ -0,0 +1,7 @@
1+[Desktop Entry]
2+Type=Application
3+Name=Unity 8 Greeter
4+Comment=The converged Unity shell's Greeter
5+Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8-greeter-wrapper @CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/unity8 --mode=greeter
6+X-LightDM-Session-Type=mir
7+X-Ubuntu-Touch=true
data/unity8-greeter.pklanew file+44
@@ -0,0 +1,44 @@
1+# DO NOT EDIT THIS FILE, it will be overwritten on update
2+# Place your local configurations under /etc/polkit-1/localauthority/
3+
4+[Disable Controlling of Network Devices]
5+Identity=unix-user:lightdm
6+Action=org.freedesktop.NetworkManager.enable-disable-network;org.freedesktop.NetworkManager.enable-disable-wifi;org.freedesktop.NetworkManager.enable-disable-wwan;org.freedesktop.NetworkManager.enable-disable-wimax;
7+ResultActive=no
8+ResultInactive=no
9+ResultsAny=no
10+
11+[Disable Sleep and Wake]
12+Identity=unix-user:lightdm
13+Action=org.freedesktop.NetworkManager.sleep-wake
14+ResultActive=no
15+ResultInactive=no
16+ResultsAny=no
17+
18+[Disable WiFi Sharing]
19+Identity=unix-user:lightdm
20+Action=org.freedesktop.NetworkManager.wifi.share.protected;org.freedesktop.NetworkManager.wifi.share.open
21+ResultActive=no
22+ResultInactive=no
23+ResultsAny=no
24+
25+[Disable Settings Modifications]
26+Identity=unix-user:lightdm
27+Action=org.freedesktop.NetworkManager.settings.modify.own;org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.settings.modify.hostname
28+ResultActive=no
29+ResultInactive=no
30+ResultsAny=no
31+
32+[Disable User Connections]
33+Identity=unix-user:lightdm
34+Action=org.freedesktop.NetworkManager.use-user-connections
35+ResultActive=no
36+ResultInactive=no
37+ResultsAny=no
38+
39+[Enable Controlling of Network Connections]
40+Identity=unix-user:lightdm
41+Action=org.freedesktop.NetworkManager.network-control
42+ResultActive=yes
43+ResultInactive=no
44+ResultsAny=no
data/unity8.conf+13
@@ -65,6 +65,19 @@ end script
6565exec ${BINARY:-unity8} --mode=$MODE $ARGS
6666
6767post-start script
68+ # If no MIR_SOCKET was defined on launch, we try to set one here
69+ if [ -z "$(initctl get-env --global UNITY_MIR_SOCKET)" ]; then
70+ if [ -S "$XDG_RUNTIME_DIR/mir_socket" ]; then
71+ mir_socket=$XDG_RUNTIME_DIR/mir_socket
72+ elif [ -S "/tmp/mir_socket" ]; then
73+ mir_socket=/tmp/mir_socket
74+ fi
75+
76+ if [ -n "$mir_socket" ]; then
77+ initctl set-env --global MIR_SOCKET="$mir_socket"
78+ fi
79+ fi
80+
6881 initctl emit --no-wait indicator-services-start
6982end script
7083
debian/changelog+314
@@ -1,3 +1,317 @@
1+unity8 (8.14+16.10.20160922-0ubuntu1) yakkety; urgency=medium
2+
3+ [ Albert Astals Cid ]
4+ * LVWPH: update clipItem height when list height changes (LP:
5+ #1606935)
6+ * Put the touchdown shape inside a loader
7+ * No need for the touchdown in the card for the cardtool
8+ * Add bottom gradient to the Show Less floating button
9+ * Remove artShapeSize from non cardtool cards
10+ * LVWPH: Fix case in which header was shown incorrectly
11+ * LVWPH: Fix items cut on top in the dash (or at least some instances
12+ of it)
13+ * Reduce calls to CardCreatorCache.getCardComponent while the
14+ component is being created (LP: #1615675)
15+ * Dash::test_cardIconStyle change compare into tryCompareFunction
16+ * Make PreviewActionsTest::test_comboButton more stable
17+ * Adapt onShiftedContentXChanged to work when the content changes very
18+ abruptly
19+ * Make tryGenericScopeView show the scope correctly
20+ * Make sure the spinner does not get too close to the title text (LP:
21+ #1597392)
22+ * Show "Pull to refresh" in white when overlaid in low luminance
23+ colors (LP: #1596849)
24+ * Make test_Shell non ultra slow again (LP: #1597366)
25+ * Improve findChild calls inside tryCompareFunction.
26+
27+ [ Andrea Cimitan ]
28+ * override some Qt Components definitions so we can have sane default
29+ values for flick speeds
30+ * Elide the label text inside recent searches panel (LP: #1611796)
31+ * Add a PreviewSingleton module to store some data for previews (LP:
32+ #1595235)
33+ * Use PreviewSingleton for PreviewRatingInput and PreviewCommentInput
34+ (LP: #1595235)
35+ * rework GenericScopeView PullToRefresh test
36+ * use mouseFlick instead touchFlick for manage_dash_move_current
37+ * add a couple of waiting tricks for a flaky dash test
38+
39+ [ Daniel d'Andrada ]
40+ * Set progress bar indeterminate when processing signal received. (LP:
41+ #1249349)
42+ * Implement cursor confinement (LP: #1590099)
43+
44+ [ Josh Arenson ]
45+ * Add a frontend to the sessions model and enable a session chooser in
46+ the greeter.
47+
48+ [ Lukáš Tinkl ]
49+ * Implement edge maximizing (aka window snapping) (LP: #1602628)
50+ * On the PC platform (as opposed to running on $devices), use the
51+ "mute" action instead of silent mode
52+ * Respect Fitt's law wrt the window control buttons in panel (LP:
53+ #1611959)
54+ * Fix 2 failing color-related tests
55+
56+ [ Marco Trevisan (Treviño) ]
57+ * Indicators, mocks: add fake indicators menuitem to populate mocks
58+ with different menu types
59+ * IndicatorsClient: use PageHeader and ListItemLayout's
60+
61+ [ Michael Terry ]
62+ * Support launching apps inside a unity8 session from the greeter and
63+ support emergency dialing inside the greeter.
64+ * Fix tryShell to actually show appropriate backgrounds for each mock
65+ user.
66+ * Add an indicator to the greeter when a user is logged in (only shown
67+ if we have more than one user)
68+ * Hide the greeter OSK if indicators are open and don't show the edge
69+ tutorial during an emergency call.
70+ * Switch from lockscreen PIN pad to a passcode entry box that uses the
71+ OSK.
72+ * Use the default system wallpaper instead of our custom one.
73+ * Update look of infographic a bit
74+ * Make infographic bubbles white even on the default wallpaper.
75+
76+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 22 Sep 2016 07:46:57 +0000
77+
78+unity8 (8.14+16.10.20160831.3-0ubuntu1) yakkety; urgency=medium
79+
80+ [ Daniel d'Andrada ]
81+ * Added implementation for MirSurfaceInterface::persistentId
82+
83+ -- Ken VanDine <ken.vandine@canonical.com> Wed, 31 Aug 2016 11:56:09 +0000
84+
85+unity8 (8.14+16.10.20160826-0ubuntu1) yakkety; urgency=medium
86+
87+ * Make sure we emit sounds when taking a screenshot even after media-
88+ hub (LP: #1544477)
89+
90+ -- Alfonso Sanchez-Beato <alfonso.sanchez-beato@canonical.com> Fri, 26 Aug 2016 08:14:14 +0000
91+
92+unity8 (8.14+16.10.20160819-0ubuntu1) yakkety; urgency=medium
93+
94+ [ Lukáš Tinkl ]
95+ * Reset topmostIsFullscreen to correctly rotate the shell when
96+ dismissing SIM PIN screen (LP: #1614070)
97+
98+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 19 Aug 2016 14:16:54 +0000
99+
100+unity8 (8.14+16.10.20160811.1-0ubuntu1) yakkety; urgency=medium
101+
102+ [ Albert Astals Cid ]
103+ * Take into account carousel selectedItemScaleFactor when setting card
104+ fixedArtShapeSize (LP: #1599238)
105+ * Remove unused LimitProxyModel
106+ * Do not calculate implicitHeight for Cards in a CardGrid
107+ * Small clazy fixes
108+
109+ [ Daniel d'Andrada ]
110+ * Remove stage property from Application
111+
112+ [ Larry Price ]
113+ * Allow libertine-scope to show empty search result hint unmodified.
114+ (LP: #1606693)
115+
116+ [ Lukáš Tinkl ]
117+ * Open the quicklist (context) menu also using the Menu key (LP:
118+ #1608265)
119+ * Fix incorrect SIM PIN dialog position when entering a wrong PIN (LP:
120+ #1596076)
121+ * Apply the correct keymap also on prompt surfaces (LP: #1610124)
122+ * Implement an optional system update feature during OOBE wizard (LP:
123+ #1580785)
124+ * Implement a page for choosing HW keyboard layout in OOBE wizard
125+
126+ [ Michael Zanetti ]
127+ * Clean up some build script legacy
128+ * Add a crossbuilder_post file to make crossbuilder restart unity8
129+ after deploying
130+ * fixes for the automatic switching between usage modes (LP: #1590944)
131+
132+ [ Omer Akram ]
133+ * Add object names for setup wizard
134+
135+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 11 Aug 2016 06:28:20 +0000
136+
137+unity8 (8.14+16.10.20160803-0ubuntu1) yakkety; urgency=medium
138+
139+ [ Albert Astals Cid ]
140+ * Fix DisabledScreenNotice::test_rotation
141+ * Make the delegate of DashNavigationList an async Loader
142+ * unity-scope-tool: Use parse instead of process
143+ * VerticalJournal improvements regarding model insertions and item
144+ height changes (LP: #1599754)
145+ * Add math.h includes for compilation in yakkety (LP: #1605502)
146+
147+ [ Andrea Cimitan ]
148+ * Unfocus the search text field in the dash page header when requested
149+ (LP: #1590820)
150+ * Use binding for filter popover contentWidth (LP: #1595116)
151+ * Add few sourceSize for Image we forgot (LP: #1595113)
152+ * Replace Flickable with an Item inside DashPageHeader for
153+ headerContainer (LP: #1599235)
154+
155+ [ Albert Astals Cid, Andrea Cimitan ]
156+ * Unbox the artshapeLoader
157+
158+ [ Daniel d'Andrada ]
159+ * Fix splashscreen orientation when app rotates own contents (LP:
160+ #1586050)
161+ * tst_PreviewIconActions: Make test name match filename
162+ * Cursor: make its size grid unit based (LP: #1604014)
163+ * TouchEventSequenceWrapper: item might get deleted when touch
164+ sequence is committed (LP: #1607686)
165+
166+ [ Lukáš Tinkl ]
167+ * Implement frontend support for running keyboard indicator
168+ * Provide window/surface close shortcuts across all the stages (LP:
169+ #1578392, #1606528)
170+ * Restart the location trust prompt service when exiting the wizard
171+ (LP: #1594430)
172+ * Implement clearing the search and closing the panel on pressing
173+ Escape key in the dash header
174+ * Fix log timestamps (LP: #1602196)
175+ * Don't display the mode switch warning dialog on tablets (LP:
176+ #1600290)
177+
178+ [ Michael Terry ]
179+ * Fix indicator profile bug that caused sound indicator to say Mute
180+ instead of Silent Mode. (LP: #1604205)
181+ * Fix lockscreen appearing right after unlocking a locked session on
182+ the desktop. (LP: #1604374)
183+
184+ [ Michał Sawicz ]
185+ * Add arm64 support, drop unnecessary B-D on web plugin
186+
187+ -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 03 Aug 2016 15:56:27 +0000
188+
189+unity8 (8.14+16.10.20160728-0ubuntu1) yakkety; urgency=medium
190+
191+ [ Zoltán Balogh ]
192+ * Bump the version to secure UITK compatibility
193+
194+ [ Albert Astals Cid ]
195+ * Pass the correct number of arguments to mapToItem (LP: #1606835)
196+
197+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 28 Jul 2016 08:17:13 +0000
198+
199+unity8 (8.13+16.10.20160714+fix1-0ubuntu2~1) yakkety; urgency=medium
200+
201+ * Rebuild against Qt 5.6.
202+ * Add https://code.launchpad.net/~aacid/unity8/floor_includes/+merge/300850
203+
204+ -- Timo Jyrinki <timo-jyrinki@ubuntu.com> Fri, 22 Jul 2016 09:03:54 +0300
205+
206+unity8 (8.13+16.10.20160714-0ubuntu1) yakkety; urgency=medium
207+
208+ [ Daniel d'Andrada ]
209+ * Make use of MirSurface::inputBounds and drop UbuntuKeyboardInfo hack
210+
211+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 14 Jul 2016 07:09:29 +0000
212+
213+unity8 (8.12+16.10.20160711-0ubuntu1) yakkety; urgency=medium
214+
215+ [ Josh Arenson ]
216+ * Add a SessionsModel to lightdm to support the greeter's session
217+ chooser
218+ * Add unity8-greeter package which contains a basic, but usable
219+ LightDM greeter. (LP: #1324602)
220+
221+ [ Michael Terry ]
222+ * Make sure indicators and launcher hide when power button is pressed
223+ on greeter. (LP: #1595569)
224+ * Fix tablet greeter focus to be always-on, no longer hiding the OSK
225+ or forcing a mouse click to type a password. (LP: #1435923)
226+
227+ -- Michael Terry <michael.terry@canonical.com> Mon, 11 Jul 2016 17:24:20 +0000
228+
229+unity8 (8.12+16.10.20160707-0ubuntu1) yakkety; urgency=medium
230+
231+ [ Michael Zanetti ]
232+ * emit the correct role changed signal on count visible changed (LP:
233+ #1599925)
234+
235+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 07 Jul 2016 16:49:32 +0000
236+
237+unity8 (8.12+16.10.20160705-0ubuntu1) yakkety; urgency=medium
238+
239+ [ Michael Zanetti ]
240+ * don't displace windows if the OSK is on another screen (LP:
241+ #1598917)
242+
243+ -- Michał Sawicz <michal.sawicz@canonical.com> Tue, 05 Jul 2016 10:00:57 +0000
244+
245+unity8 (8.12+16.10.20160627.5-0ubuntu1) yakkety; urgency=medium
246+
247+ [ Albert Astals Cid ]
248+ * Stop watching the old header item height once it's not our header
249+ anymore
250+ * LVWPH: cull the header item when not on view to save some painting
251+ * Adapt test to new mock behaviour
252+ * Don't let the mouse go outside the parentItem (LP: #1525350)
253+ * Use non deprecated package names
254+ * Mark system includes as such
255+ * Fix initialization order warning
256+ * Do not rely on deleteLater not crashing on null pointers
257+ * Add more headers of classes we use for automoc to be run
258+ * CardTool: Fix the fallback value to be a size and not an integer
259+ * CardTool: Include Ubuntu Components since we're using units.gu
260+ * Rework tst_PreviewRatingDisplayCreationRanges
261+
262+ [ Daniel d'Andrada ]
263+ * Cursor: Let AnimatedSprite run only on animated cursors and while
264+ the display is on (LP: #1588873, #1594358)
265+ * Fix missing screenshot when orientation changes while shell rotation
266+ ongoing (LP: #1587796)
267+
268+ [ Josh Arenson ]
269+ * Make PreviewRatingSingleDisplay visible again after editing a
270+ review. (LP: #1587097)
271+ * Correct errors in all png images to prevent libpng warnings.
272+
273+ [ Lukáš Tinkl ]
274+ * Fix some smaller issues with OOBE wizard password pages (LP:
275+ #1590467)
276+ * Prevent mouse wheel events from going through shell elements (LP:
277+ #1536268)
278+ * Do not let mouse and wheel events pass thru the titlebar (LP:
279+ #1588424)
280+ * Hide the maximize window button based on size restrictions (LP:
281+ #1541982)
282+
283+ [ Marco Trevisan (Treviño) ]
284+ * Unity8.conf: ensure MIR_SOCKET is set for future customers (such as
285+ the dash)
286+ * ClientIndicator: be more informative about loading failures for
287+ dynamically created objects
288+
289+ [ Michael Terry ]
290+ * Stop unity8 from getting in a "switch-to-greeter" loop when locking
291+ on a desktop. (LP: #1593718)
292+
293+ [ Michael Zanetti ]
294+ * set minimum window sizes on dash
295+ * displace application windows when the OSK would cover them
296+
297+ [ Nick Dedekind ]
298+ * Force dash to always stay in the main stage. (lp:#1592404) (LP:
299+ #1592404)
300+ * Save the last surface stage on stage drop. (LP: #1579003)
301+ * Default portrait only apps to the side stage. (LP: #1573153)
302+
303+ [ Albert Astals Cid, Andrea Cimitan, Michał Sawicz, Nick Dedekind ]
304+ * Added live video playback in dash previews
305+
306+ -- Michael Zanetti <michael.zanetti@canonical.com> Mon, 27 Jun 2016 18:48:59 +0000
307+
308+unity8 (8.12+16.10.20160620.3-0ubuntu1) yakkety; urgency=medium
309+
310+ [ Michael Terry, Michał Sawicz ]
311+ * Support unlocking via fingerprint, if one is registered.
312+
313+ -- Michael Terry <michael.terry@canonical.com> Mon, 20 Jun 2016 20:25:25 +0000
314+
1315unity8 (8.12+16.10.20160617-0ubuntu1) yakkety; urgency=medium
2316
3317 [ Michael Terry ]
debian/control+43−22
@@ -8,21 +8,23 @@ Build-Depends: cmake,
88 dh-apparmor,
99 doxyqml,
1010# To allow cross-compiling to work, we also must append :native
11−# to g++ so we don't try to run armhf g++
11+# to g++ so we don't try to run arm g++
1212# on an x86 CPU for example, when cross-compiling.
1313 g++:native,
14− libandroid-properties-dev,
1514 graphviz,
1615 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
16+ libandroid-properties-dev,
1717 libconnectivity-qt1-dev (>= 0.7.1),
1818 libevdev-dev,
1919 libgeonames-dev (>= 0.2),
20− libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
20+ libgnome-desktop-3-dev,
21+ libgl1-mesa-dev[!arm64 !armhf] | libgl-dev[!arm64 !armhf],
2122 libgl1-mesa-dri,
22− libgles2-mesa-dev[armhf],
23+ libgles2-mesa-dev[arm64 armhf],
2324 libglib2.0-dev,
2425 libgsettings-qt-dev,
2526 libhardware-dev,
27+ liblightdm-qt5-3-dev,
2628 libpam0g-dev,
2729 libpay2-dev,
2830 libpulse-dev,
@@ -30,25 +32,30 @@ Build-Depends: cmake,
3032 libqt5svg5-dev,
3133 libqt5xmlpatterns5-dev,
3234 libsystemsettings-dev,
33− libubuntugestures5-dev,
34− libubuntugestures5-private-dev,
35+ libubuntu-download-manager-common-dev,
36+ libubuntugestures5-dev (>= 1.3.2030),
37+ libubuntugestures5-private-dev (>= 1.3.2030),
3538 libudev-dev,
36− libunity-api-dev (>= 7.115),
39+ libudm-common-dev,
40+ libunity-api-dev (>= 7.119),
3741 libusermetricsoutput1-dev,
3842# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
39− libx11-dev[!armhf],
40− libxcb1-dev[!armhf],
41− libxi-dev[!armhf],
43+ libx11-dev[!arm64 !armhf],
44+ libxcb1-dev[!arm64 !armhf],
45+ libxi-dev[!arm64 !armhf],
4246# End of X11 libs
4347 pkg-config,
4448 python3-all:any,
4549 python3-setuptools,
4650 qml-module-qt-labs-folderlistmodel,
51+ qml-module-qtmultimedia (>= 5.4.1-1ubuntu19~overlay2),
4752 qml-module-qtquick-layouts,
4853 qml-module-qtquick-xmllistmodel,
4954 qml-module-qtquick2,
5055 qml-module-qtsysteminfo,
5156 qml-module-qttest,
57+ qml-module-ubuntu-components (>= 1.3.2030) | qml-module-ubuntu-components-gles (>= 1.3.2030),
58+ qml-module-ubuntu-web,
5259 qt5-default,
5360 qtbase5-dev (>= 5.4),
5461 qtbase5-dev-tools,
@@ -56,11 +63,8 @@ Build-Depends: cmake,
5663 qtdeclarative5-dev (>= 5.4),
5764 qtdeclarative5-dev-tools,
5865 qtdeclarative5-private-dev (>= 5.4),
59− qtdeclarative5-qtmultimedia-plugin (>= 5.4.1-1ubuntu19~overlay2),
6066 qtdeclarative5-ubuntu-content1,
6167 qtdeclarative5-ubuntu-settings-components (>= 0.7),
62− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
63− qtdeclarative5-ubuntu-web-plugin,
6468 ttf-ubuntu-font-family,
6569Standards-Version: 3.9.4
6670Homepage: http://launchpad.net/unity
@@ -73,15 +77,26 @@ XS-Testsuite: autopkgtest
7377X-Ubuntu-Use-Langpack: yes
7478
7579Package: indicators-client
76−Architecture: amd64 armhf i386
80+Architecture: any
7781Depends: qmenumodel-qml (>= 0.2.9),
78− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
82+ qml-module-ubuntu-components (>= 1.3.2030) | qml-module-ubuntu-components-gles (>= 1.3.2030),
7983 unity8 (= ${binary:Version}),
8084 ${misc:Depends},
8185 ${shlibs:Depends},
8286Description: Indicators client test application
8387 This package contains the client application for indicators used by autopilot
8488
89+Package: unity8-greeter
90+Architecture: any
91+Depends: unity8 (= ${binary:Version}),
92+ unity-system-compositor,
93+ ${misc:Depends},
94+ ${shlibs:Depends}
95+Recommends: lightdm
96+Provides: lightdm-greeter
97+Description: The Unity8 Greeter
98+ The Unity 8 greeter is the primary login greeter for Ubuntu devices.
99+
85100Package: unity-scope-tool
86101Architecture: any
87102Depends: unity8-common (= ${source:Version}),
@@ -103,9 +118,11 @@ Depends: dmz-cursor-theme,
103118 libcap2-bin,
104119 libglib2.0-bin,
105120 qmenumodel-qml (>= 0.2.9),
121+ qml-module-biometryd,
106122 qml-module-qt-labs-folderlistmodel,
107123 qml-module-qtquick-xmllistmodel,
108124 qml-module-qtsysteminfo,
125+ qml-module-ubuntu-web,
109126 qtdeclarative5-qtmir-plugin (>= 0.4.8),
110127 qtdeclarative5-ubuntu-telephony0.1,
111128 qtdeclarative5-ubuntu-web-plugin,
@@ -116,12 +133,15 @@ Depends: dmz-cursor-theme,
116133 unity8-private | unity-launcher-impl,
117134 ${misc:Depends},
118135 ${shlibs:Depends},
119−Recommends: indicator-session,
136+Recommends: indicator-keyboard,
137+ indicator-session,
138+ unity-greeter-session-broadcast,
120139 unity-scope-click,
121140 unity-scope-mediascanner2,
122141Breaks: indicator-network (<< 0.5.1+14.10.20141014),
123142 ubuntu-touch-session (<< 0.107),
124143 unity8-greeter (<< 7.89),
144+ ubuntu-keyboard (<< 0.100),
125145Replaces: ubuntu-touch-session (<< 0.82~),
126146 unity8-greeter (<< 7.89),
127147Conflicts: ubuntu-system-settings-wizard,
@@ -131,12 +151,13 @@ Description: Unity 8 shell
131151Package: unity8-common
132152Architecture: all
133153Depends: qml-module-qtquick-layouts,
154+ qml-module-ubuntu-components (>= 1.3.2030) | qml-module-ubuntu-components-gles (>= 1.3.2030),
155+ qml-module-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
134156 qtdeclarative5-ubuntu-settings-components (>= 0.7),
135− qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
136− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
137157 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
138158 ubuntu-thumbnailer-impl-0,
139− unity-application-impl-17,
159+ ubuntu-wallpapers,
160+ unity-application-impl-22,
140161 unity-notifications-impl-3,
141162 unity-plugin-scopes | unity-scopes-impl,
142163 unity-scopes-impl-12,
@@ -163,7 +184,7 @@ Depends: autopilot-qt5 (>= 1.4),
163184 python3-fixtures,
164185 python3-gi,
165186 qttestability-autopilot (>= 1.4),
166− ubuntu-ui-toolkit-autopilot (>= 1.3.1845),
187+ ubuntu-ui-toolkit-autopilot (>= 1.3.2030),
167188 unity-scope-click,
168189 unity8 (= ${source:Version}),
169190 unity8-fake-env (= ${source:Version}),
@@ -182,7 +203,7 @@ Pre-Depends: ${misc:Pre-Depends},
182203Depends: ${misc:Depends},
183204 ${shlibs:Depends},
184205Provides: unity-application-impl,
185− unity-application-impl-16,
206+ unity-application-impl-22,
186207Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
187208Description: Fake environment for running Unity 8 shell
188209 Provides fake implementations of some QML modules used by Unity 8 shell
@@ -192,7 +213,7 @@ Package: unity8-private
192213Architecture: any
193214Multi-Arch: same
194215Pre-Depends: ${misc:Pre-Depends},
195−Depends: accountsservice-ubuntu-schemas (>= 0.0.5),
216+Depends: accountsservice-ubuntu-schemas (>= 0.0.7),
196217 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
197218 libhardware2,
198219 pay-service,
debian/rules+3−2
@@ -37,6 +37,7 @@ override_dh_installdeb:
3737override_dh_makeshlibs:
3838 dh_makeshlibs -Nunity8-private -Nunity8-fake-env
3939
40−# libMockLightDM-qml.so links against liblightdm-qt5-2.so which doesn't exist
4140override_dh_shlibdeps:
42− dh_shlibdeps -XlibMockLightDM-qml.so
41+ # Some mock libraries link against liblightdm-qt5-3.so which we want to
42+ # avoid, since we only really link against our mock one, not the system one.
43+ dh_shlibdeps -XlibMockLightDM-qml.so -XlibMockAccountsService-qml.so
debian/unity8-greeter.installnew file+5
@@ -0,0 +1,5 @@
1+data/unity8-greeter-wrapper usr/bin/
2+data/unity8-greeter-init.conf usr/share/upstart/sessions/
3+data/unity8-greeter.pkla /var/lib/polkit-1/localauthority/10-vendor.d/
4+usr/share/lightdm/greeters/unity8-greeter.desktop
5+usr/share/lightdm/lightdm.conf.d/51-unity8-greeter.conf
debian/unity8-private.install+2−1
@@ -4,7 +4,8 @@ usr/lib/*/unity8/qml/Cursor
44usr/lib/*/unity8/qml/Dash
55usr/lib/*/unity8/qml/GlobalShortcut
66usr/lib/*/unity8/qml/Greeter
7−usr/lib/*/unity8/qml/IntegratedLightDM
7+usr/lib/*/unity8/qml/ImageCache
8+usr/lib/*/unity8/qml/LightDM
89usr/lib/*/unity8/qml/Lights
910usr/lib/*/unity8/qml/Powerd
1011usr/lib/*/unity8/qml/ScreenshotDirectory
plugins/AccountsService/AccountsService.cpp+41−3
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013, 2015 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
@@ -36,8 +36,10 @@
3636#define PROP_DEMO_EDGES QStringLiteral("demo-edges")
3737#define PROP_DEMO_EDGES_COMPLETED QStringLiteral("DemoEdgesCompleted")
3838#define PROP_EMAIL QStringLiteral("Email")
39+#define PROP_ENABLE_FINGERPRINT_IDENTIFICATION QStringLiteral("EnableFingerprintIdentification")
3940#define PROP_ENABLE_INDICATORS_WHILE_LOCKED QStringLiteral("EnableIndicatorsWhileLocked")
4041#define PROP_ENABLE_LAUNCHER_WHILE_LOCKED QStringLiteral("EnableLauncherWhileLocked")
42+#define PROP_FAILED_FINGERPRINT_LOGINS QStringLiteral("FailedFingerprintLogins")
4143#define PROP_FAILED_LOGINS QStringLiteral("FailedLogins")
4244#define PROP_INPUT_SOURCES QStringLiteral("InputSources")
4345#define PROP_LICENSE_ACCEPTED QStringLiteral("LicenseAccepted")
@@ -66,9 +68,9 @@ Q_DECLARE_METATYPE(StringMapList)
6668QVariant primaryButtonConverter(const QVariant &value)
6769{
6870 QString stringValue = value.toString();
69− if (stringValue == "left") {
71+ if (stringValue == QLatin1String("left")) {
7072 return QVariant::fromValue(0);
71− } else if (stringValue == "right") {
73+ } else if (stringValue == QLatin1String("right")) {
7274 return QVariant::fromValue(1); // Mir is less clear on this -- any non-zero value is the same
7375 } else {
7476 return QVariant::fromValue(0); // default to left
@@ -93,12 +95,14 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
9395 registerProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES, QStringLiteral("keymapsChanged"));
9496 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_ACCEPTED, QStringLiteral("hereEnabledChanged"));
9597 registerProperty(IFACE_LOCATION_HERE, PROP_LICENSE_BASE_PATH, QStringLiteral("hereLicensePathChanged"));
98+ registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_FINGERPRINT_IDENTIFICATION, QStringLiteral("enableFingerprintIdentificationChanged"));
9699 registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED, QStringLiteral("enableLauncherWhileLockedChanged"));
97100 registerProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_INDICATORS_WHILE_LOCKED, QStringLiteral("enableIndicatorsWhileLockedChanged"));
98101 registerProperty(IFACE_UBUNTU_SECURITY, PROP_PASSWORD_DISPLAY_HINT, QStringLiteral("passwordDisplayHintChanged"));
99102 registerProperty(IFACE_UBUNTU_SECURITY_OLD, PROP_STATS_WELCOME_SCREEN, QStringLiteral("statsWelcomeScreenChanged"));
100103 registerProperty(IFACE_UNITY, PROP_DEMO_EDGES, QStringLiteral("demoEdgesChanged"));
101104 registerProperty(IFACE_UNITY, PROP_DEMO_EDGES_COMPLETED, QStringLiteral("demoEdgesCompletedChanged"));
105+ registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_FINGERPRINT_LOGINS, QStringLiteral("failedFingerprintLoginsChanged"));
102106 registerProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS, QStringLiteral("failedLoginsChanged"));
103107
104108 registerProxy(IFACE_UBUNTU_INPUT, PROP_MOUSE_CURSOR_SPEED,
@@ -176,6 +180,12 @@ void AccountsService::markDemoEdgeCompleted(const QString &edge)
176180 }
177181}
178182
183+bool AccountsService::enableFingerprintIdentification() const
184+{
185+ auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_FINGERPRINT_IDENTIFICATION);
186+ return value.toBool();
187+}
188+
179189bool AccountsService::enableLauncherWhileLocked() const
180190{
181191 auto value = getProperty(IFACE_UBUNTU_SECURITY, PROP_ENABLE_LAUNCHER_WHILE_LOCKED);
@@ -274,6 +284,34 @@ QStringList AccountsService::keymaps() const
274284 return {QStringLiteral("us")};
275285}
276286
287+void AccountsService::setKeymaps(const QStringList &keymaps)
288+{
289+ if (keymaps.isEmpty()) {
290+ qWarning() << "Setting empty keymaps is not supported";
291+ return;
292+ }
293+
294+ StringMapList result;
295+ Q_FOREACH(const QString &keymap, keymaps) {
296+ StringMap map;
297+ map.insert(QStringLiteral("xkb"), keymap);
298+ result.append(map);
299+ }
300+
301+ setProperty(IFACE_ACCOUNTS_USER, PROP_INPUT_SOURCES, QVariant::fromValue(result));
302+ Q_EMIT keymapsChanged();
303+}
304+
305+uint AccountsService::failedFingerprintLogins() const
306+{
307+ return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_FINGERPRINT_LOGINS).toUInt();
308+}
309+
310+void AccountsService::setFailedFingerprintLogins(uint failedFingerprintLogins)
311+{
312+ setProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_FINGERPRINT_LOGINS, failedFingerprintLogins);
313+}
314+
277315uint AccountsService::failedLogins() const
278316{
279317 return getProperty(IFACE_UNITY_PRIVATE, PROP_FAILED_LOGINS).toUInt();
plugins/AccountsService/AccountsService.h+15−4
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013, 2015 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
@@ -41,6 +41,9 @@ class AccountsService: public QObject
4141 Q_PROPERTY (QStringList demoEdgesCompleted
4242 READ demoEdgesCompleted
4343 NOTIFY demoEdgesCompletedChanged)
44+ Q_PROPERTY (bool enableFingerprintIdentification
45+ READ enableFingerprintIdentification
46+ NOTIFY enableFingerprintIdentificationChanged)
4447 Q_PROPERTY (bool enableLauncherWhileLocked
4548 READ enableLauncherWhileLocked
4649 NOTIFY enableLauncherWhileLockedChanged)
@@ -60,6 +63,10 @@ class AccountsService: public QObject
6063 READ failedLogins
6164 WRITE setFailedLogins
6265 NOTIFY failedLoginsChanged)
66+ Q_PROPERTY (uint failedFingerprintLogins
67+ READ failedFingerprintLogins
68+ WRITE setFailedFingerprintLogins
69+ NOTIFY failedFingerprintLoginsChanged)
6370 Q_PROPERTY(bool hereEnabled
6471 READ hereEnabled
6572 WRITE setHereEnabled
@@ -72,9 +79,7 @@ class AccountsService: public QObject
7279 NOTIFY hereLicensePathChanged)
7380 Q_PROPERTY(QString realName READ realName WRITE setRealName NOTIFY realNameChanged)
7481 Q_PROPERTY(QString email READ email WRITE setEmail NOTIFY emailChanged)
75− Q_PROPERTY(QStringList keymaps
76− READ keymaps
77− NOTIFY keymapsChanged)
82+ Q_PROPERTY(QStringList keymaps READ keymaps WRITE setKeymaps NOTIFY keymapsChanged)
7883
7984public:
8085 enum PasswordDisplayHint {
@@ -91,6 +96,7 @@ public:
9196 void setDemoEdges(bool demoEdges);
9297 QStringList demoEdgesCompleted() const;
9398 Q_INVOKABLE void markDemoEdgeCompleted(const QString &edge);
99+ bool enableFingerprintIdentification() const;
94100 bool enableLauncherWhileLocked() const;
95101 bool enableIndicatorsWhileLocked() const;
96102 QString backgroundFile() const;
@@ -98,6 +104,8 @@ public:
98104 PasswordDisplayHint passwordDisplayHint() const;
99105 uint failedLogins() const;
100106 void setFailedLogins(uint failedLogins);
107+ uint failedFingerprintLogins() const;
108+ void setFailedFingerprintLogins(uint failedFingerprintLogins);
101109 bool hereEnabled() const;
102110 void setHereEnabled(bool enabled);
103111 QString hereLicensePath() const;
@@ -107,17 +115,20 @@ public:
107115 QString email() const;
108116 void setEmail(const QString &email);
109117 QStringList keymaps() const;
118+ void setKeymaps(const QStringList &keymaps);
110119
111120Q_SIGNALS:
112121 void userChanged();
113122 void demoEdgesChanged();
114123 void demoEdgesCompletedChanged();
124+ void enableFingerprintIdentificationChanged();
115125 void enableLauncherWhileLockedChanged();
116126 void enableIndicatorsWhileLockedChanged();
117127 void backgroundFileChanged();
118128 void statsWelcomeScreenChanged();
119129 void passwordDisplayHintChanged();
120130 void failedLoginsChanged();
131+ void failedFingerprintLoginsChanged();
121132 void hereEnabledChanged();
122133 void hereLicensePathChanged();
123134 void realNameChanged();
plugins/AccountsService/com.canonical.unity.AccountsService.xml+4
@@ -47,5 +47,9 @@
4747 <annotation name="org.freedesktop.Accounts.DefaultValue" value="0"/>
4848 </property>
4949
50+ <property name="FailedFingerprintLogins" type="u" access="readwrite">
51+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="0"/>
52+ </property>
53+
5054 </interface>
5155</node>
plugins/CMakeLists.txt+2−1
@@ -15,7 +15,8 @@ add_subdirectory(AccountsService)
1515add_subdirectory(Cursor)
1616add_subdirectory(GlobalShortcut)
1717add_subdirectory(Greeter)
18−add_subdirectory(IntegratedLightDM)
18+add_subdirectory(ImageCache)
19+add_subdirectory(LightDM)
1920add_subdirectory(Lights)
2021add_subdirectory(Dash)
2122add_subdirectory(Powerd)
plugins/Cursor/CMakeLists.txt+6−2
@@ -3,6 +3,10 @@ add_subdirectory(3rd_party)
33include_directories(
44 ${CMAKE_CURRENT_SOURCE_DIR}
55 ${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/xcursor
6+)
7+
8+include_directories(
9+ SYSTEM
610 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
711)
812
@@ -24,6 +28,6 @@ target_link_libraries(Cursor-qml
2428 ${QT5PLATFORM_SUPPORT_LDFLAGS}
2529)
2630
27−qt5_use_modules(Cursor-qml Qml Quick DBus Network Gui Sql Concurrent Svg)
31+qt5_use_modules(Cursor-qml Qml Quick Svg)
2832
29−add_unity8_plugin(Cursor 1.0 Cursor TARGETS Cursor-qml)
33+add_unity8_plugin(Cursor 1.1 Cursor TARGETS Cursor-qml)
plugins/Cursor/Cursor.qml+29−11
@@ -16,6 +16,7 @@
1616
1717import QtQuick 2.4
1818import Cursor 1.1
19+import Powerd 0.1
1920
2021MousePointer {
2122 id: mousePointer
@@ -24,21 +25,38 @@ MousePointer {
2425 id: imageInfo
2526 themeName: mousePointer.themeName
2627 cursorName: mousePointer.cursorName
28+ cursorHeight: mousePointer.height
2729 }
2830
29− AnimatedSprite {
30− x: -imageInfo.hotspot.x
31− y: -imageInfo.hotspot.y
32− source: "image://cursor/" + mousePointer.themeName + "/" + mousePointer.cursorName
31+ Loader {
32+ active: mousePointer.visible && imageInfo.frameCount > 1
33+ sourceComponent: AnimatedSprite {
34+ x: -imageInfo.hotspot.x
35+ y: -imageInfo.hotspot.y
36+ source: imageInfo.imageSource
3337
34− interpolate: false
38+ interpolate: false
3539
36− width: imageInfo.frameWidth
37− height: imageInfo.frameHeight
40+ width: imageInfo.frameWidth
41+ height: imageInfo.frameHeight
3842
39− frameCount: imageInfo.frameCount
40− frameDuration: imageInfo.frameDuration
41− frameWidth: imageInfo.frameWidth
42− frameHeight: imageInfo.frameHeight
43+ frameCount: imageInfo.frameCount
44+ frameDuration: imageInfo.frameDuration
45+ frameWidth: imageInfo.frameWidth
46+ frameHeight: imageInfo.frameHeight
47+
48+ running: Powerd.status === Powerd.On
49+ }
50+ }
51+
52+ Loader {
53+ active: mousePointer.visible && imageInfo.frameCount === 1
54+ sourceComponent: Image {
55+ x: -imageInfo.hotspot.x
56+ y: -imageInfo.hotspot.y
57+ source: imageInfo.imageSource
58+ width: sourceSize.width
59+ height: sourceSize.height
60+ }
4361 }
4462}
plugins/Cursor/CursorImageInfo.cpp+21−1
@@ -28,6 +28,15 @@ void CursorImageInfo::setCursorName(const QString &cursorName)
2828 update();
2929 Q_EMIT cursorNameChanged();
3030 }
31+
32+}
33+void CursorImageInfo::setCursorHeight(qreal cursorHeight)
34+{
35+ if (cursorHeight != m_cursorHeight) {
36+ m_cursorHeight = cursorHeight;
37+ update();
38+ Q_EMIT cursorHeightChanged();
39+ }
3140}
3241
3342void CursorImageInfo::setThemeName(const QString &themeName)
@@ -41,13 +50,14 @@ void CursorImageInfo::setThemeName(const QString &themeName)
4150
4251void CursorImageInfo::update()
4352{
44− m_cursorImage = CursorImageProvider::instance()->fetchCursor(m_themeName, m_cursorName);
53+ m_cursorImage = CursorImageProvider::instance()->fetchCursor(m_themeName, m_cursorName, (int) m_cursorHeight);
4554
4655 Q_EMIT hotspotChanged();
4756 Q_EMIT frameWidthChanged();
4857 Q_EMIT frameHeightChanged();
4958 Q_EMIT frameCountChanged();
5059 Q_EMIT frameDurationChanged();
60+ Q_EMIT imageSourceChanged();
5161}
5262
5363QPoint CursorImageInfo::hotspot() const
@@ -94,3 +104,13 @@ int CursorImageInfo::frameDuration() const
94104 return 0;
95105 }
96106}
107+
108+QUrl CursorImageInfo::imageSource() const
109+{
110+ auto urlString = QString("image://cursor/%1/%2/%3")
111+ .arg(m_themeName)
112+ .arg(m_cursorName)
113+ .arg(m_cursorHeight);
114+
115+ return QUrl(urlString);
116+}
plugins/Cursor/CursorImageInfo.h+10
@@ -21,6 +21,7 @@
2121
2222#include <QObject>
2323#include <QString>
24+#include <QUrl>
2425
2526class CursorImageInfo : public QObject
2627{
@@ -28,12 +29,14 @@ class CursorImageInfo : public QObject
2829
2930 Q_PROPERTY(QString themeName READ themeName WRITE setThemeName NOTIFY themeNameChanged)
3031 Q_PROPERTY(QString cursorName READ cursorName WRITE setCursorName NOTIFY cursorNameChanged)
32+ Q_PROPERTY(qreal cursorHeight READ cursorHeight WRITE setCursorHeight NOTIFY cursorHeightChanged)
3133
3234 Q_PROPERTY(QPoint hotspot READ hotspot NOTIFY hotspotChanged)
3335 Q_PROPERTY(qreal frameWidth READ frameWidth NOTIFY frameWidthChanged)
3436 Q_PROPERTY(qreal frameHeight READ frameHeight NOTIFY frameHeightChanged)
3537 Q_PROPERTY(int frameCount READ frameCount NOTIFY frameCountChanged)
3638 Q_PROPERTY(int frameDuration READ frameDuration NOTIFY frameDurationChanged)
39+ Q_PROPERTY(QUrl imageSource READ imageSource NOTIFY imageSourceChanged)
3740
3841public:
3942 CursorImageInfo(QObject *parent = nullptr);
@@ -44,20 +47,26 @@ public:
4447 QString cursorName() const { return m_cursorName; }
4548 void setCursorName(const QString &);
4649
50+ qreal cursorHeight() const { return m_cursorHeight; }
51+ void setCursorHeight(qreal);
52+
4753 QPoint hotspot() const;
4854 qreal frameWidth() const;
4955 qreal frameHeight() const;
5056 int frameCount() const;
5157 int frameDuration() const;
58+ QUrl imageSource() const;
5259
5360Q_SIGNALS:
5461 void themeNameChanged();
5562 void cursorNameChanged();
63+ void cursorHeightChanged();
5664 void hotspotChanged();
5765 void frameWidthChanged();
5866 void frameHeightChanged();
5967 void frameCountChanged();
6068 void frameDurationChanged();
69+ void imageSourceChanged();
6170
6271private Q_SLOTS:
6372 void update();
@@ -65,6 +74,7 @@ private Q_SLOTS:
6574private:
6675 QString m_themeName;
6776 QString m_cursorName;
77+ qreal m_cursorHeight{0};
6878
6979 CursorImage *m_cursorImage{nullptr};
7080};
plugins/Cursor/CursorImageProvider.cpp+33−21
@@ -27,7 +27,7 @@ CursorImageProvider *CursorImageProvider::m_instance = nullptr;
2727/////
2828// BuiltInCursorImage
2929
30−BuiltInCursorImage::BuiltInCursorImage()
30+BuiltInCursorImage::BuiltInCursorImage(int cursorHeight)
3131{
3232 const char *svgString =
3333 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>"
@@ -42,12 +42,14 @@ BuiltInCursorImage::BuiltInCursorImage()
4242 " d=\"M 20.504,50.94931 460.42533,518.14486 266.47603,515.61948 366.48114,719.16522 274.05218,770.68296 172.53185,559.56112 20.504,716.13476 Z\" />"
4343 "</svg>";
4444
45− qimage = QImage(20, 32, QImage::Format_ARGB32);
45+ // NB: Original image dimension is 20x32. Ensure aspect ratio is kept
46+ qimage = QImage((20./32.)*cursorHeight, cursorHeight, QImage::Format_ARGB32);
4647 qimage.fill(Qt::transparent);
4748 QPainter imagePainter(&qimage);
4849
4950 frameWidth = qimage.width();
5051 frameHeight = qimage.height();
52+ requestedHeight = cursorHeight;
5153
5254 QSvgRenderer *svgRenderer = new QSvgRenderer(QByteArray(svgString));
5355 svgRenderer->render(&imagePainter);
@@ -81,11 +83,9 @@ CustomCursorImage::CustomCursorImage(const QCursor &cursor)
8183/////
8284// XCursorImage
8385
84−XCursorImage::XCursorImage(const QString &theme, const QString &file)
86+XCursorImage::XCursorImage(const QString &theme, const QString &file, int preferredCursorHeightPx)
8587{
86− // TODO: Consider grid unit value
87− // Hardcoding to a medium size for now
88− int preferredCursorHeightPx = 32;
88+ requestedHeight = preferredCursorHeightPx;
8989
9090 XcursorImages *xcursorImages = XcursorLibraryLoadImages(QFile::encodeName(file), QFile::encodeName(theme),
9191 preferredCursorHeightPx);
@@ -96,7 +96,7 @@ XCursorImage::XCursorImage(const QString &theme, const QString &file)
9696 frameCount = xcursorImages->nimage;
9797
9898 for (int i = 0; i < xcursorImages->nimage; ++i) {
99− XcursorImage *xcursorImage = xcursorImages->images[0];
99+ XcursorImage *xcursorImage = xcursorImages->images[i];
100100 if (frameWidth < (int)xcursorImage->width) {
101101 frameWidth = xcursorImage->width;
102102 }
@@ -235,34 +235,43 @@ CursorImageProvider::~CursorImageProvider()
235235 m_instance = nullptr;
236236}
237237
238−QImage CursorImageProvider::requestImage(const QString &cursorThemeAndName, QSize *size, const QSize & /*requestedSize*/)
238+QImage CursorImageProvider::requestImage(const QString &cursorThemeAndNameAndHeight, QSize *size, const QSize & /*requestedSize*/)
239239{
240− CursorImage *cursorImage = fetchCursor(cursorThemeAndName);
240+ CursorImage *cursorImage = fetchCursor(cursorThemeAndNameAndHeight);
241241 size->setWidth(cursorImage->qimage.width());
242242 size->setHeight(cursorImage->qimage.height());
243243
244244 return cursorImage->qimage;
245245}
246246
247−CursorImage *CursorImageProvider::fetchCursor(const QString &cursorThemeAndName)
247+CursorImage *CursorImageProvider::fetchCursor(const QString &cursorThemeAndNameAndHeight)
248248{
249249 QString themeName;
250250 QString cursorName;
251+ int cursorHeight;
251252 {
252− QStringList themeAndNameList = cursorThemeAndName.split('/');
253− if (themeAndNameList.size() != 2) {
253+ QStringList themeAndNameList = cursorThemeAndNameAndHeight.split('/');
254+ if (themeAndNameList.size() != 3) {
254255 return nullptr;
255256 }
256257 themeName = themeAndNameList[0];
257258 cursorName = themeAndNameList[1];
259+
260+ bool ok;
261+ cursorHeight = themeAndNameList[2].toInt(&ok);
262+ if (!ok) {
263+ cursorHeight = 32;
264+ qWarning().nospace() << "CursorImageProvider: invalid cursor height ("<<themeAndNameList[2]<<")."
265+ " Falling back to "<<cursorHeight<<" pixels";
266+ }
258267 }
259268
260− return fetchCursor(themeName, cursorName);
269+ return fetchCursor(themeName, cursorName, cursorHeight);
261270}
262271
263−CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QString &cursorName)
272+CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QString &cursorName, int cursorHeight)
264273{
265− CursorImage *cursorImage = fetchCursorHelper(themeName, cursorName);
274+ CursorImage *cursorImage = fetchCursorHelper(themeName, cursorName, cursorHeight);
266275
267276 // Try some fallbacks
268277 if (cursorImage->qimage.isNull()) {
@@ -271,7 +280,7 @@ CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QS
271280 int i = 0;
272281 while (cursorImage->qimage.isNull() && i < fallbackNames.count()) {
273282 qDebug().nospace() << "CursorImageProvider: "<< cursorName <<" not found, trying " << fallbackNames.at(i);
274− cursorImage = fetchCursorHelper(themeName, fallbackNames.at(i));
283+ cursorImage = fetchCursorHelper(themeName, fallbackNames.at(i), cursorHeight);
275284 ++i;
276285 }
277286 }
@@ -281,14 +290,14 @@ CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QS
281290 if (cursorImage->qimage.isNull() && cursorName != QLatin1String("left_ptr")) {
282291 qDebug() << "CursorImageProvider:" << cursorName
283292 << "not found (nor its fallbacks, if any). Going for \"left_ptr\" as a last resort.";
284− cursorImage = fetchCursorHelper(themeName, QStringLiteral("left_ptr"));
293+ cursorImage = fetchCursorHelper(themeName, QStringLiteral("left_ptr"), cursorHeight);
285294 }
286295
287296 if (cursorImage->qimage.isNull()) {
288297 // finally, go for the built-in cursor
289298 qWarning() << "CursorImageProvider: couldn't find any cursors. Using the built-in one";
290− if (!m_builtInCursorImage) {
291− m_builtInCursorImage.reset(new BuiltInCursorImage);
299+ if (!m_builtInCursorImage || m_builtInCursorImage->requestedHeight != cursorHeight) {
300+ m_builtInCursorImage.reset(new BuiltInCursorImage(cursorHeight));
292301 }
293302 cursorImage = m_builtInCursorImage.data();
294303 }
@@ -296,7 +305,7 @@ CursorImage *CursorImageProvider::fetchCursor(const QString &themeName, const QS
296305 return cursorImage;
297306}
298307
299−CursorImage *CursorImageProvider::fetchCursorHelper(const QString &themeName, const QString &cursorName)
308+CursorImage *CursorImageProvider::fetchCursorHelper(const QString &themeName, const QString &cursorName, int cursorHeight)
300309{
301310 if (cursorName == QLatin1String("blank")) {
302311 return &m_blankCursorImage;
@@ -306,7 +315,10 @@ CursorImage *CursorImageProvider::fetchCursorHelper(const QString &themeName, co
306315 QMap<QString, CursorImage*> &themeCursors = m_cursors[themeName];
307316
308317 if (!themeCursors.contains(cursorName)) {
309− themeCursors[cursorName] = new XCursorImage(themeName, cursorName);
318+ themeCursors[cursorName] = new XCursorImage(themeName, cursorName, cursorHeight);
319+ } else if (themeCursors[cursorName]->requestedHeight != cursorHeight) {
320+ delete themeCursors.take(cursorName);
321+ themeCursors[cursorName] = new XCursorImage(themeName, cursorName, cursorHeight);
310322 }
311323
312324 return themeCursors[cursorName];
plugins/Cursor/CursorImageProvider.h+9−6
@@ -42,17 +42,20 @@ public:
4242 int frameHeight{0};
4343 int frameCount{1};
4444 int frameDuration{40};
45+
46+ // Requested height when creating this cursor.
47+ int requestedHeight{0};
4548};
4649
4750class XCursorImage : public CursorImage {
4851public:
49− XCursorImage(const QString &theme, const QString &file);
52+ XCursorImage(const QString &theme, const QString &file, int preferredCursorHeightPx);
5053 virtual ~XCursorImage();
5154};
5255
5356class BuiltInCursorImage : public CursorImage {
5457public:
55− BuiltInCursorImage();
58+ BuiltInCursorImage(int cursorHeight);
5659};
5760
5861class BlankCursorImage : public CursorImage {
@@ -74,15 +77,15 @@ public:
7477 static CursorImageProvider *instance() { return m_instance; }
7578
7679
77− QImage requestImage(const QString &cursorName, QSize *size, const QSize &requestedSize) override;
80+ QImage requestImage(const QString &cursorThemeAndNameAndHeight, QSize *size, const QSize &requestedSize) override;
7881
79− CursorImage *fetchCursor(const QString &themeName, const QString &cursorName);
82+ CursorImage *fetchCursor(const QString &themeName, const QString &cursorName, int cursorHeight);
8083
8184 void setCustomCursor(const QCursor &customCursor);
8285
8386private:
84− CursorImage *fetchCursor(const QString &cursorThemeAndName);
85− CursorImage *fetchCursorHelper(const QString &themeName, const QString &cursorName);
87+ CursorImage *fetchCursor(const QString &cursorThemeAndNameAndHeight);
88+ CursorImage *fetchCursorHelper(const QString &themeName, const QString &cursorName, int cursorHeight);
8689
8790 // themeName -> (cursorName -> cursorImage)
8891 // TODO: discard old, unused, cursors
plugins/Cursor/MousePointer.cpp+90−13
@@ -22,6 +22,7 @@
2222
2323#include <QQuickWindow>
2424#include <QGuiApplication>
25+#include <QtMath>
2526
2627#include <qpa/qwindowsysteminterface.h>
2728
@@ -49,28 +50,77 @@ void MousePointer::handleMouseEvent(ulong timestamp, QPointF movement, Qt::Mouse
4950 m_accumulatedMovement -= appliedMovement;
5051
5152 qreal newX = x() + appliedMovement.x();
52− if (newX < 0) {
53+ qreal newY = y() + appliedMovement.y();
54+ const qreal sceneWidth = parentItem()->width();
55+ const qreal sceneHeight = parentItem()->height();
56+
57+ if (newX <= 0 && newY < m_topBoundaryOffset) { // top left corner
58+ const auto distance = qSqrt(qPow(newX, 2) + qPow(newY-m_topBoundaryOffset, 2));
59+ Q_EMIT pushedTopLeftCorner(qAbs(distance), buttons);
60+ m_pushing = true;
61+ } else if (newX >= sceneWidth-1 && newY < m_topBoundaryOffset) { // top right corner
62+ const auto distance = qSqrt(qPow(newX-sceneWidth, 2) + qPow(newY-m_topBoundaryOffset, 2));
63+ Q_EMIT pushedTopRightCorner(qAbs(distance), buttons);
64+ m_pushing = true;
65+ } else if (newX < 0 && newY >= sceneHeight-1) { // bottom left corner
66+ const auto distance = qSqrt(qPow(newX, 2) + qPow(newY-sceneHeight, 2));
67+ Q_EMIT pushedBottomLeftCorner(qAbs(distance), buttons);
68+ m_pushing = true;
69+ } else if (newX >= sceneWidth-1 && newY >= sceneHeight-1) { // bottom right corner
70+ const auto distance = qSqrt(qPow(newX-sceneWidth, 2) + qPow(newY-sceneHeight, 2));
71+ Q_EMIT pushedBottomRightCorner(qAbs(distance), buttons);
72+ m_pushing = true;
73+ } else if (newX < 0) { // left edge
5374 Q_EMIT pushedLeftBoundary(qAbs(newX), buttons);
54− newX = 0;
55− } else if (newX > parentItem()->width()) {
56− Q_EMIT pushedRightBoundary(newX - parentItem()->width(), buttons);
57− newX = parentItem()->width();
75+ m_pushing = true;
76+ } else if (newX >= sceneWidth) { // right edge
77+ Q_EMIT pushedRightBoundary(newX - (sceneWidth - 1), buttons);
78+ m_pushing = true;
79+ } else if (newY < m_topBoundaryOffset) { // top edge
80+ Q_EMIT pushedTopBoundary(qAbs(newY - m_topBoundaryOffset), buttons);
81+ m_pushing = true;
82+ } else if (Q_LIKELY(newX > 0 && newX < sceneWidth-1 && newY > 0 && newY < sceneHeight-1)) { // normal pos, not pushing
83+ if (m_pushing) {
84+ Q_EMIT pushStopped();
85+ m_pushing = false;
86+ }
5887 }
59− setX(newX);
6088
61− qreal newY = y() + appliedMovement.y();
62− if (newY < 0) {
63− newY = 0;
64− } else if (newY > parentItem()->height()) {
65− newY = parentItem()->height();
66− }
67− setY(newY);
89+ applyItemConfinement(newX, newY);
90+
91+ setX(qBound(0.0, newX, sceneWidth - 1));
92+ setY(qBound(0.0, newY, sceneHeight - 1));
6893
6994 QPointF scenePosition = mapToItem(nullptr, QPointF(0, 0));
7095 QWindowSystemInterface::handleMouseEvent(window(), timestamp, scenePosition /*local*/, scenePosition /*global*/,
7196 buttons, modifiers);
7297}
7398
99+void MousePointer::applyItemConfinement(qreal &newX, qreal &newY)
100+{
101+ Q_ASSERT(parentItem() != nullptr);
102+
103+ if (m_confiningItem.isNull()) {
104+ return;
105+ }
106+
107+ QRectF confiningItemGeometry(0, 0, m_confiningItem->width(), m_confiningItem->height());
108+
109+ QRectF confiningRect = m_confiningItem->mapRectToItem(parentItem(), confiningItemGeometry);
110+
111+ if (newX < confiningRect.x()) {
112+ newX = confiningRect.x();
113+ } else if (newX > confiningRect.right()) {
114+ newX = confiningRect.right();
115+ }
116+
117+ if (newY < confiningRect.y()) {
118+ newY = confiningRect.y();
119+ } else if (newY > confiningRect.bottom()) {
120+ newY = confiningRect.bottom();
121+ }
122+}
123+
74124void MousePointer::handleWheelEvent(ulong timestamp, QPoint angleDelta, Qt::KeyboardModifiers modifiers)
75125{
76126 if (!parentItem()) {
@@ -82,6 +132,20 @@ void MousePointer::handleWheelEvent(ulong timestamp, QPoint angleDelta, Qt::Keyb
82132 QPoint() /* pixelDelta */, angleDelta, modifiers, Qt::ScrollUpdate);
83133}
84134
135+int MousePointer::topBoundaryOffset() const
136+{
137+ return m_topBoundaryOffset;
138+}
139+
140+void MousePointer::setTopBoundaryOffset(int topBoundaryOffset)
141+{
142+ if (m_topBoundaryOffset == topBoundaryOffset)
143+ return;
144+
145+ m_topBoundaryOffset = topBoundaryOffset;
146+ Q_EMIT topBoundaryOffsetChanged(topBoundaryOffset);
147+}
148+
85149void MousePointer::itemChange(ItemChange change, const ItemChangeData &value)
86150{
87151 if (change == ItemSceneChange) {
@@ -156,3 +220,16 @@ void MousePointer::setCustomCursor(const QCursor &customCursor)
156220{
157221 CursorImageProvider::instance()->setCustomCursor(customCursor);
158222}
223+
224+QQuickItem* MousePointer::confiningItem() const
225+{
226+ return m_confiningItem.data();
227+}
228+
229+void MousePointer::setConfiningItem(QQuickItem *item)
230+{
231+ if (item != m_confiningItem) {
232+ m_confiningItem = item;
233+ Q_EMIT confiningItemChanged();
234+ }
235+}
plugins/Cursor/MousePointer.h+23
@@ -27,6 +27,8 @@
2727
2828class MousePointer : public MirMousePointerInterface {
2929 Q_OBJECT
30+ Q_PROPERTY(QQuickItem* confiningItem READ confiningItem WRITE setConfiningItem NOTIFY confiningItemChanged)
31+ Q_PROPERTY(int topBoundaryOffset READ topBoundaryOffset WRITE setTopBoundaryOffset NOTIFY topBoundaryOffsetChanged)
3032public:
3133 MousePointer(QQuickItem *parent = nullptr);
3234
@@ -38,6 +40,12 @@ public:
3840
3941 void setCustomCursor(const QCursor &) override;
4042
43+ QQuickItem* confiningItem() const;
44+ void setConfiningItem(QQuickItem*);
45+
46+ int topBoundaryOffset() const;
47+ void setTopBoundaryOffset(int topBoundaryOffset);
48+
4149public Q_SLOTS:
4250 void handleMouseEvent(ulong timestamp, QPointF movement, Qt::MouseButtons buttons,
4351 Qt::KeyboardModifiers modifiers) override;
@@ -46,7 +54,16 @@ public Q_SLOTS:
4654Q_SIGNALS:
4755 void pushedLeftBoundary(qreal amount, Qt::MouseButtons buttons);
4856 void pushedRightBoundary(qreal amount, Qt::MouseButtons buttons);
57+ void pushedTopBoundary(qreal amount, Qt::MouseButtons buttons);
58+ void pushedTopLeftCorner(qreal amount, Qt::MouseButtons buttons);
59+ void pushedTopRightCorner(qreal amount, Qt::MouseButtons buttons);
60+ void pushedBottomLeftCorner(qreal amount, Qt::MouseButtons buttons);
61+ void pushedBottomRightCorner(qreal amount, Qt::MouseButtons buttons);
62+ void pushStopped();
4963 void mouseMoved();
64+ void confiningItemChanged();
65+
66+ void topBoundaryOffsetChanged(int topBoundaryOffset);
5067
5168protected:
5269 void itemChange(ItemChange change, const ItemChangeData &value) override;
@@ -56,6 +73,7 @@ private Q_SLOTS:
5673
5774private:
5875 void registerWindow(QWindow *window);
76+ void applyItemConfinement(qreal &newX, qreal &newY);
5977
6078 QPointer<QWindow> m_registeredWindow;
6179 QPointer<QScreen> m_registeredScreen;
@@ -64,6 +82,11 @@ private:
6482
6583 // Accumulated, unapplied, mouse movement.
6684 QPointF m_accumulatedMovement;
85+
86+ QPointer<QQuickItem> m_confiningItem;
87+
88+ int m_topBoundaryOffset{0};
89+ bool m_pushing{false};
6790};
6891
6992#endif // MOUSEPOINTER_H
plugins/Dash/CMakeLists.txt+4
@@ -10,6 +10,10 @@ endif()
1010include_directories(
1111 ${CMAKE_CURRENT_SOURCE_DIR}
1212 ${CMAKE_CURRENT_BINARY_DIR}
13+)
14+
15+include_directories(
16+ SYSTEM
1317 ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
1418 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
1519 ${Qt5V8_PRIVATE_INCLUDE_DIR}
plugins/Dash/CardCreator.js+110−112
@@ -25,7 +25,7 @@ var kBackgroundLoaderCode = 'Loader {\n\
2525 objectName: "backgroundLoader"; \n\
2626 anchors.fill: parent; \n\
2727 asynchronous: %3; \n\
28− visible: status == Loader.Ready; \n\
28+ visible: status === Loader.Ready; \n\
2929 sourceComponent: UbuntuShape { \n\
3030 objectName: "background"; \n\
3131 radius: "medium"; \n\
@@ -75,7 +75,7 @@ var kArtProportionalShapeCode = 'ProportionalShape { \n\
7575 aspect: UbuntuShape.DropShadow; \n\
7676 }';
7777
78−// %1 is used as anchors of artShapeHolder
78+// %1 is used as anchors of artShapeLoader
7979// %2 is used as image width
8080// %3 is used as image height
8181// %4 is whether the image should be visible
@@ -83,42 +83,39 @@ var kArtProportionalShapeCode = 'ProportionalShape { \n\
8383// %6 is the shape code we want to use
8484// %7 is injected as code to artImage
8585// %8 is used as image fallback
86−var kArtShapeHolderCode = 'Item { \n\
87− id: artShapeHolder; \n\
86+var kArtShapeHolderCode = 'Loader { \n\
87+ id: artShapeLoader; \n\
8888 height: root.fixedArtShapeSize.height; \n\
8989 width: root.fixedArtShapeSize.width; \n\
9090 anchors { %1 } \n\
91− Loader { \n\
92− id: artShapeLoader; \n\
93− objectName: "artShapeLoader"; \n\
94− readonly property string cardArt: cardData && cardData["art"] || %8; \n\
95− onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
96− active: cardArt != ""; \n\
97− asynchronous: %5; \n\
98− visible: status == Loader.Ready; \n\
99− sourceComponent: Item { \n\
100− id: artShape; \n\
101− objectName: "artShape"; \n\
102− visible: image.status == Image.Ready; \n\
103− readonly property alias image: artImage; \n\
104− %6 \n\
105− width: root.fixedArtShapeSize.width; \n\
106− height: root.fixedArtShapeSize.height; \n\
107− CroppedImageMinimumSourceSize { \n\
108− id: artImage; \n\
109− objectName: "artImage"; \n\
110− source: artShapeLoader.cardArt; \n\
111− asynchronous: %5; \n\
112− visible: %4; \n\
113− width: %2; \n\
114− height: %3; \n\
115− %7 \n\
116− } \n\
91+ objectName: "artShapeLoader"; \n\
92+ readonly property string cardArt: cardData && cardData["art"] || %8; \n\
93+ onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
94+ active: cardArt != ""; \n\
95+ asynchronous: %5; \n\
96+ visible: status === Loader.Ready; \n\
97+ sourceComponent: Item { \n\
98+ id: artShape; \n\
99+ objectName: "artShape"; \n\
100+ visible: image.status === Image.Ready; \n\
101+ readonly property alias image: artImage; \n\
102+ %6 \n\
103+ width: root.fixedArtShapeSize.width; \n\
104+ height: root.fixedArtShapeSize.height; \n\
105+ CroppedImageMinimumSourceSize { \n\
106+ id: artImage; \n\
107+ objectName: "artImage"; \n\
108+ source: artShapeLoader.cardArt; \n\
109+ asynchronous: %5; \n\
110+ visible: %4; \n\
111+ width: %2; \n\
112+ height: %3; \n\
113+ %7 \n\
117114 } \n\
118115 } \n\
119116 }\n';
120117
121−// %1 is used as anchors of artShapeHolder
118+// %1 is used as anchors of artShapeLoader
122119// %2 is used as image width
123120// %3 is used as image height
124121// %4 is whether the image should be visible
@@ -126,37 +123,32 @@ var kArtShapeHolderCode = 'Item { \n\
126123// %6 is the shape code we want to use
127124// %7 is injected as code to artImage
128125// %8 is used as image fallback
129−var kArtShapeHolderCodeCardToolCard = 'Item { \n\
130− id: artShapeHolder; \n\
131− height: artShapeLoader.height; \n\
132− width: artShapeLoader.width; \n\
126+var kArtShapeHolderCodeCardToolCard = 'Loader { \n\
127+ id: artShapeLoader; \n\
133128 anchors { %1 } \n\
134− Loader { \n\
135− id: artShapeLoader; \n\
136− objectName: "artShapeLoader"; \n\
137− readonly property string cardArt: cardData && cardData["art"] || %8; \n\
138− onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
139− active: cardArt != ""; \n\
140− asynchronous: %5; \n\
141− visible: status == Loader.Ready; \n\
142− sourceComponent: Item { \n\
143− id: artShape; \n\
144− objectName: "artShape"; \n\
145− visible: image.status == Image.Ready; \n\
146− readonly property alias image: artImage; \n\
147− %6 \n\
148− width: image.status !== Image.Ready ? 0 : image.width; \n\
149− height: image.status !== Image.Ready ? 0 : image.height; \n\
150− CroppedImageMinimumSourceSize { \n\
151− id: artImage; \n\
152− objectName: "artImage"; \n\
153− source: artShapeLoader.cardArt; \n\
154− asynchronous: %5; \n\
155− visible: %4; \n\
156− width: %2; \n\
157− height: %3; \n\
158− %7 \n\
159− } \n\
129+ objectName: "artShapeLoader"; \n\
130+ readonly property string cardArt: cardData && cardData["art"] || %8; \n\
131+ onCardArtChanged: { if (item) { item.image.source = cardArt; } } \n\
132+ active: cardArt != ""; \n\
133+ asynchronous: %5; \n\
134+ visible: status === Loader.Ready; \n\
135+ sourceComponent: Item { \n\
136+ id: artShape; \n\
137+ objectName: "artShape"; \n\
138+ visible: image.status === Image.Ready; \n\
139+ readonly property alias image: artImage; \n\
140+ %6 \n\
141+ width: image.status !== Image.Ready ? 0 : image.width; \n\
142+ height: image.status !== Image.Ready ? 0 : image.height; \n\
143+ CroppedImageMinimumSourceSize { \n\
144+ id: artImage; \n\
145+ objectName: "artImage"; \n\
146+ source: artShapeLoader.cardArt; \n\
147+ asynchronous: %5; \n\
148+ visible: %4; \n\
149+ width: %2; \n\
150+ height: %3; \n\
151+ %7 \n\
160152 } \n\
161153 } \n\
162154 }\n';
@@ -214,10 +206,10 @@ var kAudioButtonCode = 'AbstractButton { \n\
214206var kOverlayLoaderCode = 'Loader { \n\
215207 id: overlayLoader; \n\
216208 readonly property real overlayHeight: %2 + units.gu(2); \n\
217− anchors.fill: artShapeHolder; \n\
209+ anchors.fill: artShapeLoader; \n\
218210 active: artShapeLoader.active && artShapeLoader.item && artShapeLoader.item.image.status === Image.Ready || false; \n\
219211 asynchronous: %1; \n\
220− visible: showHeader && status == Loader.Ready; \n\
212+ visible: showHeader && status === Loader.Ready; \n\
221213 sourceComponent: UbuntuShapeOverlay { \n\
222214 id: overlay; \n\
223215 property real luminance: Style.luminance(overlayColor); \n\
@@ -274,7 +266,7 @@ var kMascotShapeLoaderCode = 'Loader { \n\
274266 objectName: "mascotShapeLoader"; \n\
275267 asynchronous: %2; \n\
276268 active: mascotImage.status === Image.Ready; \n\
277− visible: showHeader && active && status == Loader.Ready; \n\
269+ visible: showHeader && active && status === Loader.Ready; \n\
278270 width: units.gu(6); \n\
279271 height: units.gu(5.625); \n\
280272 sourceComponent: UbuntuShape { image: mascotImage } \n\
@@ -339,13 +331,15 @@ var kEmblemIconCode = 'Icon { \n\
339331 }\n';
340332
341333// %1 is used as anchors of touchdown effect
342−var kTouchdownCode = 'UbuntuShape { \n\
343− id: touchdown; \n\
344− objectName: "touchdown"; \n\
334+var kTouchdownCode = 'Loader { \n\
335+ active: root.pressed; \n\
345336 anchors { %1 } \n\
346− visible: root.pressed; \n\
347− radius: "medium"; \n\
348− borderSource: "radius_pressed.sci" \n\
337+ sourceComponent: UbuntuShape { \n\
338+ objectName: "touchdown"; \n\
339+ anchors.fill: parent; \n\
340+ radius: "medium"; \n\
341+ borderSource: "radius_pressed.sci" \n\
342+ } \n\
349343 }\n';
350344
351345// %1 is used as anchors of subtitleLabel
@@ -437,7 +431,7 @@ function sanitizeColor(colorString) {
437431 return colorString;
438432}
439433
440−function cardString(template, components, isCardTool, artShapeStyle) {
434+function cardString(template, components, isCardTool, artShapeStyle, categoryLayout) {
441435 var code;
442436
443437 var templateInteractive = (template == null ? true : (template["non-interactive"] !== undefined ? !template["non-interactive"] : true)) ? "true" : "false";
@@ -514,10 +508,10 @@ function cardString(template, components, isCardTool, artShapeStyle) {
514508 }
515509
516510 if (hasArt) {
517− code += 'readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);\n';
518−
519511 var artShapeAspect;
520512 if (isCardTool) {
513+ code += 'readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);\n';
514+
521515 var artShapeAspect = components["art"] && components["art"]["aspect-ratio"] || 1;
522516 if (isNaN(artShapeAspect)) {
523517 artShapeAspect = 1;
@@ -581,7 +575,7 @@ function cardString(template, components, isCardTool, artShapeStyle) {
581575 .arg(artShapeHolderShapeCode)
582576 .arg(fallbackStatusCode)
583577 .arg(fallbackURICode);
584− } else {
578+ } else if (isCardTool) {
585579 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
586580 }
587581
@@ -592,15 +586,15 @@ function cardString(template, components, isCardTool, artShapeStyle) {
592586
593587 var headerVerticalAnchors;
594588 if (headerAsOverlay) {
595− headerVerticalAnchors = 'bottom: artShapeHolder.bottom; \n\
589+ headerVerticalAnchors = 'bottom: artShapeLoader.bottom; \n\
596590 bottomMargin: units.gu(1);\n';
597591 } else {
598592 if (hasArt) {
599593 if (isHorizontal) {
600− headerVerticalAnchors = 'top: artShapeHolder.top; \n\
594+ headerVerticalAnchors = 'top: artShapeLoader.top; \n\
601595 topMargin: units.gu(1);\n';
602596 } else {
603− headerVerticalAnchors = 'top: artShapeHolder.bottom; \n\
597+ headerVerticalAnchors = 'top: artShapeLoader.bottom; \n\
604598 topMargin: units.gu(1);\n';
605599 }
606600 } else {
@@ -612,7 +606,7 @@ function cardString(template, components, isCardTool, artShapeStyle) {
612606 var headerLeftAnchor;
613607 var headerLeftAnchorHasMargin = false;
614608 if (isHorizontal && hasArt) {
615− headerLeftAnchor = 'left: artShapeHolder.right; \n\
609+ headerLeftAnchor = 'left: artShapeLoader.right; \n\
616610 leftMargin: units.gu(1);\n';
617611 headerLeftAnchorHasMargin = true;
618612 } else if (isHorizontal && isAudio) {
@@ -866,7 +860,7 @@ function cardString(template, components, isCardTool, artShapeStyle) {
866860 var audioButtonWidth;
867861 var audioButtonHeight;
868862 if (hasArt) {
869− audioButtonAnchorsFill = 'artShapeHolder';
863+ audioButtonAnchorsFill = 'artShapeLoader';
870864 audioButtonWidth = 'undefined';
871865 audioButtonHeight = 'undefined';
872866 } else {
@@ -880,15 +874,15 @@ function cardString(template, components, isCardTool, artShapeStyle) {
880874
881875 if (hasSummary) {
882876 var summaryTopAnchor;
883− if (isHorizontal && hasArt) summaryTopAnchor = 'artShapeHolder.bottom';
884− else if (headerAsOverlay && hasArt) summaryTopAnchor = 'artShapeHolder.bottom';
877+ if (isHorizontal && hasArt) summaryTopAnchor = 'artShapeLoader.bottom';
878+ else if (headerAsOverlay && hasArt) summaryTopAnchor = 'artShapeLoader.bottom';
885879 else if (hasHeaderRow) summaryTopAnchor = 'row.bottom';
886880 else if (hasTitleContainer) summaryTopAnchor = 'headerTitleContainer.bottom';
887881 else if (hasMascot) summaryTopAnchor = 'mascotImage.bottom';
888882 else if (hasAttributes) summaryTopAnchor = 'attributesRow.bottom';
889883 else if (hasSubtitle) summaryTopAnchor = 'subtitleLabel.bottom';
890884 else if (hasTitle) summaryTopAnchor = 'titleLabel.bottom';
891− else if (hasArt) summaryTopAnchor = 'artShapeHolder.bottom';
885+ else if (hasArt) summaryTopAnchor = 'artShapeLoader.bottom';
892886 else summaryTopAnchor = 'parent.top';
893887
894888 var summaryColor;
@@ -908,15 +902,15 @@ function cardString(template, components, isCardTool, artShapeStyle) {
908902 var socialTopAnchor;
909903
910904 if (hasSummary) socialTopAnchor = 'summary.bottom;';
911− else if (isHorizontal && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
912− else if (headerAsOverlay && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
905+ else if (isHorizontal && hasArt) socialTopAnchor = 'artShapeLoader.bottom;';
906+ else if (headerAsOverlay && hasArt) socialTopAnchor = 'artShapeLoader.bottom;';
913907 else if (hasHeaderRow) socialTopAnchor = 'row.bottom;';
914908 else if (hasTitleContainer) socialTopAnchor = 'headerTitleContainer.bottom;';
915909 else if (hasMascot) socialTopAnchor = 'mascotImage.bottom;';
916910 else if (hasAttributes) socialTopAnchor = 'attributesRow.bottom;';
917911 else if (hasSubtitle) socialTopAnchor = 'subtitleLabel.bottom;';
918912 else if (hasTitle) socialTopAnchor = 'titleLabel.bottom;';
919− else if (hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
913+ else if (hasArt) socialTopAnchor = 'artShapeLoader.bottom;';
920914 else socialTopAnchor = 'parent.top';
921915
922916 socialAnchors = 'top: ' + socialTopAnchor + ' left: parent.left; right: parent.right; topMargin: units.gu(1);'
@@ -931,41 +925,45 @@ function cardString(template, components, isCardTool, artShapeStyle) {
931925 code += kSocialActionsRowCode.arg(socialAnchors).arg(socialColor);
932926 }
933927
934− if (artShapeStyle != "shadow" && artShapeStyle != "icon") {
928+ if (artShapeStyle != "shadow" && artShapeStyle != "icon" && !isCardTool) {
935929 var touchdownAnchors;
936930 if (hasBackground) {
937931 touchdownAnchors = 'fill: backgroundLoader';
938932 } else if (touchdownOnArtShape) {
939− touchdownAnchors = 'fill: artShapeHolder';
933+ touchdownAnchors = 'fill: artShapeLoader';
940934 } else {
941935 touchdownAnchors = 'fill: root'
942936 }
943937 code += kTouchdownCode.arg(touchdownAnchors);
944938 }
945939
946− var implicitHeight = 'implicitHeight: ';
947− if (hasSocialActions) {
948− implicitHeight += 'socialActionsRow.y + socialActionsRow.height + units.gu(1);\n';
949− } else if (hasSummary) {
950− implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
951− } else if (isAudio) {
952− implicitHeight += 'audioButton.height;\n';
953− } else if (headerAsOverlay) {
954− implicitHeight += 'artShapeHolder.height;\n';
955− } else if (hasHeaderRow) {
956− implicitHeight += 'row.y + row.height + units.gu(1);\n';
957− } else if (hasMascot) {
958− implicitHeight += 'mascotImage.y + mascotImage.height;\n';
959− } else if (hasTitleContainer) {
960− implicitHeight += 'headerTitleContainer.y + headerTitleContainer.height + units.gu(1);\n';
961− } else if (hasAttributes) {
962− implicitHeight += 'attributesRow.y + attributesRow.height + units.gu(1);\n';
963− } else if (hasSubtitle) {
964− implicitHeight += 'subtitleLabel.y + subtitleLabel.height + units.gu(1);\n';
965− } else if (hasTitle) {
966− implicitHeight += 'titleLabel.y + titleLabel.height + units.gu(1);\n';
967− } else if (hasArt) {
968− implicitHeight += 'artShapeHolder.height;\n';
940+ if (isCardTool || categoryLayout !== "grid") {
941+ var implicitHeight = 'implicitHeight: ';
942+ if (hasSocialActions) {
943+ implicitHeight += 'socialActionsRow.y + socialActionsRow.height + units.gu(1);\n';
944+ } else if (hasSummary) {
945+ implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
946+ } else if (isAudio) {
947+ implicitHeight += 'audioButton.height;\n';
948+ } else if (headerAsOverlay) {
949+ implicitHeight += 'artShapeLoader.height;\n';
950+ } else if (hasHeaderRow) {
951+ implicitHeight += 'row.y + row.height + units.gu(1);\n';
952+ } else if (hasMascot) {
953+ implicitHeight += 'mascotImage.y + mascotImage.height;\n';
954+ } else if (hasTitleContainer) {
955+ implicitHeight += 'headerTitleContainer.y + headerTitleContainer.height + units.gu(1);\n';
956+ } else if (hasAttributes) {
957+ implicitHeight += 'attributesRow.y + attributesRow.height + units.gu(1);\n';
958+ } else if (hasSubtitle) {
959+ implicitHeight += 'subtitleLabel.y + subtitleLabel.height + units.gu(1);\n';
960+ } else if (hasTitle) {
961+ implicitHeight += 'titleLabel.y + titleLabel.height + units.gu(1);\n';
962+ } else if (hasArt) {
963+ implicitHeight += 'artShapeLoader.height;\n';
964+ } else {
965+ implicitHeight = '';
966+ }
969967 } else {
970968 implicitHeight = '';
971969 }
@@ -976,13 +974,13 @@ function cardString(template, components, isCardTool, artShapeStyle) {
976974 return code;
977975}
978976
979−function createCardComponent(parent, template, components, isCardTool, artShapeStyle, identifier) {
977+function createCardComponent(parent, template, components, isCardTool, artShapeStyle, categoryLayout, identifier) {
980978 var imports = 'import QtQuick 2.4; \n\
981979 import Ubuntu.Components 1.3; \n\
982980 import Ubuntu.Settings.Components 0.1; \n\
983981 import Dash 0.1;\n\
984982 import Utils 0.1;\n';
985− var card = cardString(template, components, isCardTool, artShapeStyle);
983+ var card = cardString(template, components, isCardTool, artShapeStyle, categoryLayout);
986984 var code = imports + 'Component {\n' + card + '}\n';
987985
988986 try {
plugins/Dash/CardCreatorCache.qml+3−3
@@ -23,16 +23,16 @@ QtObject {
2323
2424 property var cache: new Object();
2525
26− function getCardComponent(template, components, isCardTool, artShapeStyle) {
26+ function getCardComponent(template, components, isCardTool, artShapeStyle, categoryLayout) {
2727 if (template === undefined || components === undefined)
2828 return undefined;
2929
3030 var tString = JSON.stringify(template);
3131 var cString = JSON.stringify(components);
32− var allString = tString + cString + isCardTool + artShapeStyle;
32+ var allString = tString + cString + isCardTool + artShapeStyle + categoryLayout;
3333 var component = cache[allString];
3434 if (component === undefined) {
35− component = CardCreator.createCardComponent(root, template, components, isCardTool, artShapeStyle, allString);
35+ component = CardCreator.createCardComponent(root, template, components, isCardTool, artShapeStyle, categoryLayout, allString);
3636 cache[allString] = component;
3737 }
3838 return component;
plugins/Dash/DashAudioPlayer.qml+45−21
@@ -20,16 +20,22 @@ import QtMultimedia 5.6
2020import Dash 0.1
2121
2222QtObject {
23− readonly property real progress: audio.position / audio.duration
24− readonly property bool playing: audio.playbackState === Audio.PlayingState
25− readonly property bool paused: audio.playbackState === Audio.PausedState
26− readonly property bool stopped: audio.playbackState === Audio.StoppedState
27− readonly property alias position: audio.position
28− readonly property url currentSource: audio.playlist.currentItemSource
23+ id: root
24+ readonly property real progress: priv.audio ? priv.audio.position / priv.audio.duration : 0.0
25+ readonly property bool playing: priv.audio ? priv.audio.playbackState === Audio.PlayingState : false
26+ readonly property bool paused: priv.audio ? priv.audio.playbackState === Audio.PausedState : false
27+ readonly property bool stopped: priv.audio ? priv.audio.playbackState === Audio.StoppedState : true
28+ readonly property int position: priv.audio ? priv.audio.position : 0
29+ readonly property url currentSource: priv.audio ? priv.audio.playlist.currentItemSource : ""
30+ readonly property Playlist playlist: priv.audio ? priv.audio.playlist : null
2931
3032 function playSource(newSource, newPlaylist) {
33+ if (!priv.audio) {
34+ console.info("DashAudioPlayer: creating player");
35+ priv.audio = priv.audioComponent.createObject(root);
36+ }
3137 stop();
32− audio.playlist.clear();
38+ priv.audio.playlist.clear();
3339 if (newPlaylist) {
3440 // Look for newSource in newPlaylist
3541 var sourceIndex = -1;
@@ -48,35 +54,53 @@ QtObject {
4854 for (var i in newPlaylist) {
4955 urls.push(newPlaylist[i]);
5056 }
51− audio.playlist.addItems(urls);
52− audio.playlist.currentIndex = sourceIndex;
57+ priv.audio.playlist.addItems(urls);
58+ priv.audio.playlist.currentIndex = sourceIndex;
5359 } else {
54− audio.playlist.addItem(newSource);
55− audio.playlist.currentIndex = 0;
60+ priv.audio.playlist.addItem(newSource);
61+ priv.audio.playlist.currentIndex = 0;
5662 }
5763 play();
5864 }
5965
6066 function stop() {
61− audio.stop();
67+ if (priv.audio) {
68+ priv.audio.stop();
69+ }
6270 }
6371
6472 function play() {
65− audio.play();
73+ if (priv.audio) {
74+ priv.audio.play();
75+ }
6676 }
6777
6878 function pause() {
69− audio.pause();
79+ if (priv.audio) {
80+ priv.audio.pause();
81+ }
7082 }
7183
72− property QtObject audio: Audio {
73− id: audio
74− objectName: "audio"
75− playlist: Playlist {
76− objectName: "playlist"
84+ property QtObject priv: QtObject {
85+ id: priv
86+ property Audio audio: null
87+ property Component audioComponent: Component {
88+ Audio {
89+ playlist: Playlist {
90+ objectName: "playlist"
91+ }
92+ /* Remove player in case of error so it gets recreated next time
93+ * we need it. Happens if backend media player restarted, for
94+ * instance. qtmultimedia should probably handle this
95+ * transparently (LP: #1616425).
96+ */
97+ onError: {
98+ console.warn("DashAudioPlayer: error event (" +
99+ priv.audio.errorString + "), destroying");
100+ priv.audio.destroy();
101+ }
102+ }
77103 }
78−
79− onErrorStringChanged: console.warn("Dash Audio player error:", errorString)
80104 }
81105
82106 function lengthToString(s) {
plugins/Dash/abstractdashview.cpp+13
@@ -16,6 +16,8 @@
1616
1717#include "abstractdashview.h"
1818
19+#include <private/qquickitem_p.h>
20+
1921AbstractDashView::AbstractDashView()
2022 : m_delegateModel(nullptr)
2123 , m_asyncRequestedIndex(-1)
@@ -249,6 +251,7 @@ QQuickItem *AbstractDashView::createItem(int modelIndex, bool asynchronous)
249251 }
250252 return nullptr;
251253 } else {
254+ QQuickItemPrivate::get(item)->addItemChangeListener(this, QQuickItemPrivate::Geometry);
252255 addItemToView(modelIndex, item);
253256 return item;
254257 }
@@ -256,6 +259,7 @@ QQuickItem *AbstractDashView::createItem(int modelIndex, bool asynchronous)
256259
257260void AbstractDashView::releaseItem(QQuickItem *item)
258261{
262+ QQuickItemPrivate::get(item)->removeItemChangeListener(this, QQuickItemPrivate::Geometry);
259263 QQmlDelegateModel::ReleaseFlags flags = m_delegateModel->release(item);
260264 if (flags & QQmlDelegateModel::Destroyed) {
261265 item->setParentItem(nullptr);
@@ -294,6 +298,15 @@ void AbstractDashView::onModelUpdated(const QQmlChangeSet &changeSet, bool reset
294298 cleanupExistingItems();
295299 } else {
296300 processModelRemoves(changeSet.removes());
301+
302+ // The current AbstractDashViews do not support insertions that are not at the end
303+ // so reset if that happens
304+ Q_FOREACH(const QQmlChangeSet::Change insert, changeSet.inserts()) {
305+ if (insert.index < m_delegateModel->count() - 1) {
306+ cleanupExistingItems();
307+ break;
308+ }
309+ }
297310 }
298311 polish();
299312}
plugins/Dash/abstractdashview.h+3−4
@@ -21,13 +21,12 @@
2121
2222class QAbstractItemModel;
2323class QQmlComponent;
24−#pragma GCC diagnostic push
25−#pragma GCC diagnostic ignored "-pedantic"
24+
2625#include <private/qqmldelegatemodel_p.h>
26+#include <private/qquickitemchangelistener_p.h>
2727#include <qqmlinfo.h>
28−#pragma GCC diagnostic pop
2928
30−class AbstractDashView : public QQuickItem
29+class AbstractDashView : public QQuickItem, public QQuickItemChangeListener
3130{
3231 Q_OBJECT
3332
plugins/Dash/graphics/music_progress_bg.png

Binary file not shown.

plugins/Dash/horizontaljournal.cpp+1−4
@@ -26,12 +26,9 @@
2626#include "horizontaljournal.h"
2727
2828#include <qqmlengine.h>
29−#pragma GCC diagnostic push
30−#pragma GCC diagnostic ignored "-pedantic"
31−#include <private/qqmldelegatemodel_p.h>
3229#include <qqmlinfo.h>
30+#include <private/qqmldelegatemodel_p.h>
3331#include <private/qquickitem_p.h>
34−#pragma GCC diagnostic pop
3532
3633HorizontalJournal::HorizontalJournal()
3734 : m_firstVisibleIndex(-1)
plugins/Dash/listviewwithpageheader.cpp+13−8
@@ -95,14 +95,11 @@
9595#include <QDebug>
9696#include <qqmlinfo.h>
9797#include <qqmlengine.h>
98−#pragma GCC diagnostic push
99−#pragma GCC diagnostic ignored "-pedantic"
10098#include <private/qqmlcontext_p.h>
10199#include <private/qqmldelegatemodel_p.h>
102100#include <private/qqmlglobal_p.h>
103101#include <private/qquickitem_p.h>
104102#include <private/qquickanimation_p.h>
105−#pragma GCC diagnostic pop
106103// #include <private/qquickrectangle_p.h>
107104
108105qreal ListViewWithPageHeader::ListItem::height() const
@@ -256,6 +253,7 @@ void ListViewWithPageHeader::setHeader(QQuickItem *headerItem)
256253 oldHeaderHeight = m_headerItem->height();
257254 oldHeaderY = m_headerItem->y();
258255 m_headerItem->setParentItem(nullptr);
256+ QQuickItemPrivate::get(m_headerItem)->removeItemChangeListener(this, QQuickItemPrivate::ImplicitHeight);
259257 }
260258 m_headerItem = headerItem;
261259 if (m_headerItem) {
@@ -589,6 +587,10 @@ void ListViewWithPageHeader::adjustHeader(qreal diff)
589587 } else {
590588 m_headerItem->setY(-m_minYExtent);
591589 }
590+ } else if (m_headerItemShownHeight == 0 && m_previousContentY > m_headerItem->y() && contentY() < m_headerItem->y()) {
591+ // The header was hidden but now that we've moved up (e.g. because of item removed) it's visible
592+ // make sure it isn't
593+ m_headerItem->setY(-m_minYExtent);
592594 }
593595 Q_EMIT headerItemShownHeightChanged();
594596 } else {
@@ -702,7 +704,9 @@ void ListViewWithPageHeader::reallyReleaseItem(ListItem *listItem)
702704 if (flags & QQmlDelegateModel::Destroyed) {
703705 item->setParentItem(nullptr);
704706 }
705− listItem->sectionItem()->deleteLater();
707+ if (listItem->sectionItem()) {
708+ listItem->sectionItem()->deleteLater();
709+ }
706710 delete listItem;
707711}
708712
@@ -978,6 +982,7 @@ void ListViewWithPageHeader::onContentWidthChanged()
978982
979983void ListViewWithPageHeader::onHeightChanged()
980984{
985+ m_clipItem->setHeight(height() - m_headerItemShownHeight);
981986 polish();
982987}
983988
@@ -1334,6 +1339,10 @@ void ListViewWithPageHeader::layout()
13341339 }
13351340 }
13361341 }
1342+ if (m_headerItem) {
1343+ const bool cullHeader = m_headerItem->y() + m_headerItem->height() < contentY();
1344+ QQuickItemPrivate::get(m_headerItem)->setCulled(cullHeader);
1345+ }
13371346 m_inLayout = false;
13381347}
13391348
@@ -1384,10 +1393,6 @@ void ListViewWithPageHeader::updatePolish()
13841393
13851394 m_contentHeightDirty = false;
13861395 adjustMinYExtent();
1387− if (contentHeight + m_minYExtent < height()) {
1388− // need this since in the previous call to adjustMinYExtent contentHeight is not set yet
1389− m_minYExtent = 0;
1390− }
13911396 m_inContentHeightKeepHeaderShown = m_headerItem && m_headerItem->y() == contentY();
13921397 setContentHeight(contentHeight);
13931398 m_inContentHeightKeepHeaderShown = false;
plugins/Dash/organicgrid.cpp+3−4
@@ -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
@@ -16,10 +16,9 @@
1616
1717#include "organicgrid.h"
1818
19−#pragma GCC diagnostic push
20−#pragma GCC diagnostic ignored "-pedantic"
19+#include <math.h>
20+
2121#include <private/qquickitem_p.h>
22−#pragma GCC diagnostic pop
2322
2423OrganicGrid::OrganicGrid()
2524 : m_firstVisibleIndex(-1)
plugins/Dash/verticaljournal.cpp+12−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
@@ -27,10 +27,9 @@
2727 */
2828#include "verticaljournal.h"
2929
30−#pragma GCC diagnostic push
31−#pragma GCC diagnostic ignored "-pedantic"
30+#include <math.h>
31+
3232#include <private/qquickitem_p.h>
33−#pragma GCC diagnostic pop
3433
3534VerticalJournal::VerticalJournal()
3635 : m_columnWidth(0)
@@ -97,7 +96,7 @@ void VerticalJournal::findTopModelIndexToAdd(int *modelIndex, qreal *yPos)
9796
9897 if (*modelIndex > 0) {
9998 Q_ASSERT(m_indexColumnMap.contains(*modelIndex));
100− while (m_indexColumnMap[*modelIndex] != columnToAddTo) {
99+ while (*modelIndex > 0 && m_indexColumnMap[*modelIndex] != columnToAddTo) {
101100 // We found out that we have to add to columnToAddTo
102101 // and thought that we had to add *modelIndex, but history tells
103102 // it is not correct, so find up from *modelIndex until we found the index
@@ -271,3 +270,11 @@ void VerticalJournal::processModelRemoves(const QVector<QQmlChangeSet::Change> &
271270 }
272271 }
273272}
273+
274+void VerticalJournal::itemGeometryChanged(QQuickItem * /*item*/, const QRectF &newGeometry, const QRectF &oldGeometry)
275+{
276+ const qreal heightDiff = newGeometry.height() - oldGeometry.height();
277+ if (heightDiff != 0) {
278+ relayout();
279+ }
280+}
plugins/Dash/verticaljournal.h+3
@@ -65,6 +65,9 @@ public:
6565 qreal columnWidth() const;
6666 void setColumnWidth(qreal columnWidth);
6767
68+protected:
69+ void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override;
70+
6871Q_SIGNALS:
6972 void columnWidthChanged();
7073
plugins/ImageCache/CMakeLists.txtnew file+8
@@ -0,0 +1,8 @@
1+add_library(ImageCache-qml MODULE
2+ ImageCache.cpp
3+ plugin.cpp
4+ )
5+
6+qt5_use_modules(ImageCache-qml Gui Qml Quick)
7+
8+add_unity8_plugin(ImageCache 0.1 ImageCache TARGETS ImageCache-qml)
plugins/ImageCache/ImageCache.cppnew file+135
@@ -0,0 +1,135 @@
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 <QDateTime>
18+#include <QDebug>
19+#include <QDir>
20+#include <QUrl>
21+#include <QUrlQuery>
22+
23+#include "ImageCache.h"
24+
25+ImageCache::ImageCache()
26+ : QQuickImageProvider(QQmlImageProviderBase::Image,
27+ QQmlImageProviderBase::ForceAsynchronousImageLoading)
28+{
29+}
30+
31+QString ImageCache::imageCacheRoot()
32+{
33+ QString xdgCache(qgetenv("XDG_CACHE_HOME"));
34+ if (xdgCache.isEmpty()) {
35+ xdgCache = QDir::homePath() + QStringLiteral("/.cache");
36+ }
37+
38+ return QDir::cleanPath(xdgCache) + QStringLiteral("/unity8/imagecache");
39+}
40+
41+QFileInfo ImageCache::imagePath(const QUrl &image)
42+{
43+ QUrlQuery query(image);
44+
45+ auto name = query.queryItemValue(QStringLiteral("name"));
46+ if (name.isEmpty()) {
47+ name = QStringLiteral("/paths") + image.toLocalFile();
48+ } else {
49+ name = QStringLiteral("/names/") + name;
50+ }
51+
52+ return QFileInfo(imageCacheRoot() + name);
53+}
54+
55+bool ImageCache::needsUpdate(const QUrl &image, const QFileInfo &cachePath, const QSize &imageSize, const QSize &requestedSize, QSize &finalSize)
56+{
57+ if (!cachePath.exists())
58+ return true;
59+
60+ QFileInfo imageInfo(image.toLocalFile());
61+ if (imageInfo.lastModified() > cachePath.lastModified())
62+ return true;
63+
64+ QSize cacheSize(QImageReader(cachePath.filePath()).size());
65+ finalSize = calculateSize(imageSize, requestedSize);
66+ if (finalSize.isValid() && cacheSize != finalSize)
67+ return true;
68+
69+ return false;
70+}
71+
72+QSize ImageCache::calculateSize(const QSize &imageSize, const QSize &requestedSize)
73+{
74+ QSize finalSize(requestedSize);
75+
76+ if (finalSize.width() == 0) {
77+ finalSize.setWidth(imageSize.width() * (((double)finalSize.height()) / imageSize.height()));
78+ } else if (finalSize.height() == 0) {
79+ finalSize.setHeight(imageSize.height() * (((double)finalSize.width()) / imageSize.width()));
80+ }
81+
82+ return finalSize;
83+}
84+
85+QImage ImageCache::loadAndCacheImage(QImageReader &reader, const QFileInfo &cachePath, const QSize &finalSize)
86+{
87+ reader.setQuality(100);
88+ reader.setScaledSize(finalSize);
89+ auto format = reader.format(); // can't get this after reading
90+
91+ QImage loadedImage(reader.read());
92+ if (loadedImage.isNull()) {
93+ qWarning() << "ImageCache could not read image" << reader.fileName() << ":" << reader.errorString();
94+ return QImage();
95+ }
96+
97+ cachePath.dir().mkpath(QStringLiteral("."));
98+ loadedImage.save(cachePath.filePath(), format, 100);
99+
100+ return loadedImage;
101+}
102+
103+QImage ImageCache::requestImage(const QString &id, QSize *size, const QSize &requestedSize)
104+{
105+ QUrl image(id);
106+ QImageReader imageReader(image.toLocalFile());
107+ QSize imageSize(imageReader.size());
108+ QImage result;
109+
110+ // Early exit here, with no sourceSize, scaled-up sourceSize, or bad source image
111+ if ((requestedSize.width() <= 0 && requestedSize.height() <= 0) ||
112+ imageSize.isEmpty() ||
113+ requestedSize.height() >= imageSize.height() ||
114+ requestedSize.width() >= imageSize.width()) {
115+ // We're only interested in scaling down, not up.
116+ result = imageReader.read();
117+ *size = result.size();
118+ return result;
119+ }
120+
121+ auto cachePath = imagePath(image);
122+ QSize finalSize;
123+
124+ if (needsUpdate(image, cachePath, imageSize, requestedSize, finalSize)) {
125+ if (finalSize.isEmpty()) {
126+ finalSize = calculateSize(imageSize, requestedSize);
127+ }
128+ result = loadAndCacheImage(imageReader, cachePath, finalSize);
129+ } else {
130+ result = QImage(cachePath.filePath());
131+ }
132+
133+ *size = result.size();
134+ return result;
135+}
plugins/ImageCache/ImageCache.hnew file+53
@@ -0,0 +1,53 @@
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+#pragma once
18+
19+#include <QFileInfo>
20+#include <QImageReader>
21+#include <QQuickImageProvider>
22+#include <QSize>
23+
24+/**
25+ * This class accepts an id formulated like a URL. So you'd use something like:
26+ *
27+ * Image {
28+ * source: "image://unity8imagecache/file:///usr/share/..."
29+ * }
30+ *
31+ * Right now, we only support file:/// URLs. We do accept some flags though:
32+ *
33+ * ?name=NAME
34+ * - This will use NAME as the cache lookup key instead of the provided URL.
35+ *
36+ * We don't do any cleaning of old cached files yet. So you may want to always
37+ * provide a name to avoid leaving lots of files around.
38+ */
39+
40+class ImageCache: public QQuickImageProvider
41+{
42+public:
43+ ImageCache();
44+
45+ QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize) override;
46+
47+private:
48+ static QString imageCacheRoot();
49+ static QFileInfo imagePath(const QUrl &image);
50+ static bool needsUpdate(const QUrl &image, const QFileInfo &cachePath, const QSize &imageSize, const QSize &requestedSize, QSize &finalSize);
51+ static QSize calculateSize(const QSize &imageSize, const QSize &requestedSize);
52+ static QImage loadAndCacheImage(QImageReader &reader, const QFileInfo &cachePath, const QSize &finalSize);
53+};
plugins/ImageCache/plugin.cppnew file+39
@@ -0,0 +1,39 @@
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 <QQmlEngine>
18+
19+#include "ImageCache.h"
20+#include "plugin.h"
21+
22+#include <QtQml>
23+
24+void ImageCachePlugin::registerTypes(const char *uri)
25+{
26+ Q_ASSERT(uri == QLatin1String("ImageCache"));
27+
28+ qmlRegisterTypeNotAvailable(uri, 0, 1, "__ImageCacheIgnoreMe",
29+ QStringLiteral("Ignore this: QML plugins must contain at least one type"));
30+}
31+
32+void ImageCachePlugin::initializeEngine(QQmlEngine* engine, const char* uri)
33+{
34+ Q_ASSERT(uri == QLatin1String("ImageCache"));
35+
36+ QQmlExtensionPlugin::initializeEngine(engine, uri);
37+
38+ engine->addImageProvider("unity8imagecache", new ImageCache);
39+}
plugins/ImageCache/plugin.hnew file+31
@@ -0,0 +1,31 @@
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+#pragma once
18+
19+#include <QQmlExtensionPlugin>
20+
21+class QQmlEngine;
22+
23+class ImageCachePlugin : 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+ void initializeEngine(QQmlEngine* engine, const char* uri) override;
31+};
plugins/ImageCache/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module ImageCache
2+plugin ImageCache-qml
plugins/IntegratedLightDM/CMakeLists.txtdeleted−40
@@ -1,40 +0,0 @@
1−pkg_check_modules(LIBUSERMETRICSOUTPUT REQUIRED libusermetricsoutput-1)
2−# TODO: Once we split out a separate greeter process, uncomment these lines
3−#pkg_check_modules(LIBLIGHTDM REQUIRED liblightdm-qt5-2)
4−
5−add_subdirectory(liblightdm)
6−
7−include_directories(
8− ${CMAKE_CURRENT_SOURCE_DIR}
9− ${CMAKE_CURRENT_BINARY_DIR}
10− ${CMAKE_SOURCE_DIR}/plugins/Utils
11− ${CMAKE_SOURCE_DIR}/tests/mocks/IntegratedLightDM
12− #${LIBLIGHTDM_INCLUDE_DIRS}
13− ${libunity8-private_SOURCE_DIR}
14− ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
15−)
16−
17−set(QMLPLUGIN_SRC
18− ../Utils/unitysortfilterproxymodelqml.cpp # FIXME evaluate a more generic approach for using other plugins
19− DBusGreeter.cpp
20− DBusGreeterList.cpp
21− Greeter.cpp
22− plugin.cpp
23− UsersModel.cpp
24− )
25−
26−add_library(IntegratedLightDM-qml MODULE
27− ${QMLPLUGIN_SRC}
28− )
29−
30−target_link_libraries(IntegratedLightDM-qml
31− integratedLightDM
32− unity8-private
33−# TODO: Once we split out a separate greeter process, uncomment these lines
34−# ${LIBLIGHTDM_LDFLAGS}
35− ${LIBUSERMETRICSOUTPUT_LDFLAGS}
36− )
37−
38−qt5_use_modules(IntegratedLightDM-qml DBus Gui Qml)
39−
40−add_unity8_plugin(IntegratedLightDM 0.1 IntegratedLightDM TARGETS IntegratedLightDM-qml)
plugins/LightDM/CMakeLists.txtnew file+26
@@ -0,0 +1,26 @@
1+pkg_check_modules(LIBUSERMETRICSOUTPUT REQUIRED libusermetricsoutput-1)
2+
3+find_package(Qt5Core REQUIRED)
4+find_package(Qt5Quick REQUIRED)
5+
6+include_directories(
7+ ${CMAKE_CURRENT_SOURCE_DIR}
8+ ${CMAKE_CURRENT_BINARY_DIR}
9+ ${CMAKE_SOURCE_DIR}/plugins/Utils
10+ ${CMAKE_BINARY_DIR}/tests/mocks/LightDM/IntegratedLightDM
11+ ${libunity8-private_SOURCE_DIR}
12+ ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
13+)
14+
15+set(QMLPLUGIN_SRC
16+ ../Utils/unitysortfilterproxymodelqml.cpp
17+ DBusGreeter.cpp
18+ DBusGreeterList.cpp
19+ Greeter.cpp
20+ plugin.cpp
21+ SessionsModel.cpp
22+ UsersModel.cpp
23+ )
24+
25+add_subdirectory(FullLightDM)
26+add_subdirectory(IntegratedLightDM)
plugins/IntegratedLightDM/DBusGreeter.cpp → plugins/LightDM/DBusGreeter.cpprenamed+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
55 * it under the terms of the GNU General Public License as published by
@@ -24,7 +24,8 @@ DBusGreeter::DBusGreeter(Greeter *greeter, const QString &path)
2424 : UnityDBusObject(path, QStringLiteral("com.canonical.UnityGreeter"), true, greeter),
2525 m_greeter(greeter)
2626{
27− connect(m_greeter, &Greeter::isActiveChanged, this, &DBusGreeter::isActiveChangedHandler);
27+ connect(m_greeter, &Greeter::isActiveChanged,
28+ this, &DBusGreeter::isActiveChangedHandler);
2829}
2930
3031bool DBusGreeter::isActive() const
@@ -34,12 +35,12 @@ bool DBusGreeter::isActive() const
3435
3536void DBusGreeter::ShowGreeter()
3637{
37− return Q_EMIT m_greeter->showGreeter();
38+ Q_EMIT m_greeter->showGreeter();
3839}
3940
4041void DBusGreeter::HideGreeter()
4142{
42− return Q_EMIT m_greeter->hideGreeter();
43+ Q_EMIT m_greeter->hideGreeter();
4344}
4445
4546void DBusGreeter::isActiveChangedHandler()
plugins/IntegratedLightDM/DBusGreeter.h → plugins/LightDM/DBusGreeter.hrenamed

The content is the same.

plugins/IntegratedLightDM/DBusGreeterList.cpp → plugins/LightDM/DBusGreeterList.cpprenamed

The content is the same.

plugins/IntegratedLightDM/DBusGreeterList.h → plugins/LightDM/DBusGreeterList.hrenamed

The content is the same.

plugins/LightDM/FullLightDM/CMakeLists.txtnew file+28
@@ -0,0 +1,28 @@
1+pkg_check_modules(LIBLIGHTDM REQUIRED liblightdm-qt5-3)
2+
3+set(PLUGIN_CLASSNAME "FullLightDM")
4+
5+add_definitions(-DFULL_LIGHTDM)
6+
7+include_directories(
8+ ../
9+ ${LIBLIGHTDM_INCLUDE_DIRS}
10+ ${CMAKE_CURRENT_BINARY_DIR}
11+ )
12+
13+foreach(source_file ${QMLPLUGIN_SRC})
14+ list(APPEND RELATIVE_QMLPLUGIN_SRC ../${source_file})
15+endforeach()
16+
17+add_library(FullLightDM-qml MODULE
18+ ${RELATIVE_QMLPLUGIN_SRC}
19+ )
20+
21+target_link_libraries(FullLightDM-qml
22+ unity8-private
23+ ${LIBLIGHTDM_LDFLAGS}
24+ ${LIBUSERMETRICSOUTPUT_LDFLAGS}
25+ )
26+
27+qt5_use_modules(FullLightDM-qml DBus Gui Qml)
28+add_unity8_plugin(FullLightDM 0.1 LightDM/FullLightDM TARGETS FullLightDM-qml)
plugins/LightDM/FullLightDM/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module LightDM.FullLightDM
2+plugin FullLightDM-qml
3+typeinfo FullLightDM.qmltypes
plugins/IntegratedLightDM/Greeter.cpp → plugins/LightDM/Greeter.cpprenamed+13−2
@@ -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
@@ -13,7 +13,6 @@
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/>.
1515 *
16− * Author: Michael Terry <michael.terry@canonical.com>
1716 */
1817
1918#include "Greeter.h"
@@ -72,12 +71,24 @@ QString Greeter::authenticationUser() const
7271 return d->m_greeter->authenticationUser();
7372}
7473
74+QString Greeter::defaultSessionHint() const
75+{
76+ Q_D(const Greeter);
77+ return d->m_greeter->defaultSessionHint();
78+}
79+
7580bool Greeter::promptless() const
7681{
7782 Q_D(const Greeter);
7883 return d->promptless;
7984}
8085
86+QString Greeter::selectUser() const
87+{
88+ Q_D(const Greeter);
89+ return d->m_greeter->selectUserHint();
90+}
91+
8192void Greeter::authenticate(const QString &username)
8293{
8394 Q_D(Greeter);
plugins/IntegratedLightDM/Greeter.h → plugins/LightDM/Greeter.hrenamed+5−2
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2012,2013 Canonical, Ltd.
2+ * Copyright (C) 2012,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
@@ -13,7 +13,6 @@
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/>.
1515 *
16− * Authors: Michael Terry <michael.terry@canonical.com>
1716 */
1817
1918/* This class is a really tiny filter around QLightDM::Greeter. There are some
@@ -37,7 +36,9 @@ class Greeter : public QObject
3736 Q_PROPERTY(bool active READ isActive WRITE setIsActive NOTIFY isActiveChanged)
3837 Q_PROPERTY(bool authenticated READ isAuthenticated NOTIFY isAuthenticatedChanged)
3938 Q_PROPERTY(QString authenticationUser READ authenticationUser NOTIFY authenticationUserChanged)
39+ Q_PROPERTY(QString defaultSession READ defaultSessionHint CONSTANT)
4040 Q_PROPERTY(bool promptless READ promptless NOTIFY promptlessChanged)
41+ Q_PROPERTY(QString selectUser READ selectUser CONSTANT)
4142
4243public:
4344 explicit Greeter(QObject* parent=0);
@@ -45,7 +46,9 @@ public:
4546 bool isActive() const;
4647 bool isAuthenticated() const;
4748 QString authenticationUser() const;
49+ QString defaultSessionHint() const;
4850 bool promptless() const;
51+ QString selectUser() const;
4952
5053public Q_SLOTS:
5154 void authenticate(const QString &username=QString());
plugins/IntegratedLightDM/GreeterPrivate.h → plugins/LightDM/GreeterPrivate.hrenamed

The content is the same.

plugins/LightDM/IntegratedLightDM/CMakeLists.txtnew file+33
@@ -0,0 +1,33 @@
1+set(PLUGIN_CLASSNAME "IntegratedLightDM")
2+
3+add_definitions(-DINTEGRATED_LIGHTDM)
4+
5+foreach(include_directory ${QMLPLUGIN_INCLUDES})
6+ list(APPEND RELATIVE_QMLPLUGIN_INCLUDES ../${include_directory})
7+endforeach()
8+
9+include_directories(
10+ . #QLightDM
11+ ${QMLPLUGIN_INCLUDES}
12+ ${libunity8-private_SOURCE_DIR}
13+ ${CMAKE_CURRENT_BINARY_DIR}
14+)
15+
16+foreach(source_file ${QMLPLUGIN_SRC})
17+ list(APPEND RELATIVE_QMLPLUGIN_SRC ../${source_file})
18+endforeach()
19+
20+add_library(IntegratedLightDM-qml MODULE
21+ ${RELATIVE_QMLPLUGIN_SRC}
22+ )
23+
24+target_link_libraries(IntegratedLightDM-qml
25+ integratedLightDM
26+ unity8-private
27+ ${LIBUSERMETRICSOUTPUT_LDFLAGS}
28+ )
29+
30+qt5_use_modules(IntegratedLightDM-qml DBus Gui Qml)
31+add_unity8_plugin(IntegratedLightDM 0.1 LightDM/IntegratedLightDM TARGETS IntegratedLightDM-qml)
32+
33+add_subdirectory(liblightdm)
plugins/LightDM/IntegratedLightDM/QLightDM/Greeternew file+17
@@ -0,0 +1,17 @@
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 "../liblightdm/Greeter.h"
plugins/LightDM/IntegratedLightDM/QLightDM/SessionsModelnew file+17
@@ -0,0 +1,17 @@
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 "../liblightdm/SessionsModel.h"
plugins/LightDM/IntegratedLightDM/QLightDM/UsersModelnew file+17
@@ -0,0 +1,17 @@
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 "../liblightdm/UsersModel.h"
plugins/IntegratedLightDM/liblightdm/CMakeLists.txt → plugins/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txtrenamed+4−2
@@ -2,8 +2,10 @@ pkg_check_modules(LIBUSERMETRICSOUTPUT REQUIRED libusermetricsoutput-1)
22
33set(LibLightDM_SOURCES
44 Greeter.cpp
5+ SessionsModel.cpp
56 UsersModel.cpp
67 GreeterPrivate.cpp
8+ SessionsModelPrivate.cpp
79 UsersModelPrivate.cpp
810 ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsServiceDBusAdaptor.cpp
911 ${CMAKE_SOURCE_DIR}/plugins/Utils/qvariantlistmodel.cpp
@@ -46,8 +48,8 @@ set_target_properties(integratedLightDMSession PROPERTIES
4648 COMPILE_FLAGS "-DSM_BUSNAME=sessionBus -fPIC")
4749set_target_properties(MockLightDM-demo-shared PROPERTIES
4850 COMPILE_FLAGS "-DSM_BUSNAME=systemBus"
49− OUTPUT_NAME lightdm-qt5-2)
51+ OUTPUT_NAME lightdm-qt5-3)
5052
5153install(TARGETS MockLightDM-demo-shared
52− DESTINATION ${SHELL_INSTALL_QML}/mocks/IntegratedLightDM/demo
54+ DESTINATION ${SHELL_INSTALL_QML}/mocks/LightDM/IntegratedLightDM/demo
5355 )
plugins/IntegratedLightDM/liblightdm/Greeter.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/Greeter.cpprenamed−5
@@ -78,11 +78,6 @@ bool Greeter::showRemoteLoginHint() const
7878 return true;
7979}
8080
81−bool Greeter::lockHint () const
82−{
83− return false;
84−}
85−
8681QString Greeter::selectUserHint() const
8782{
8883 return QLatin1String("");
plugins/IntegratedLightDM/liblightdm/Greeter.h → plugins/LightDM/IntegratedLightDM/liblightdm/Greeter.hrenamed−2
@@ -45,7 +45,6 @@ class Q_DECL_EXPORT Greeter : public QObject
4545
4646 Q_PROPERTY(QString hostname READ hostname CONSTANT)
4747 Q_PROPERTY(bool hasGuestAccount READ hasGuestAccountHint CONSTANT)
48− Q_PROPERTY(bool locked READ lockHint CONSTANT)
4948
5049 Q_ENUMS(PromptType MessageType)
5150
@@ -68,7 +67,6 @@ public:
6867 bool hideUsersHint() const;
6968 bool showManualLoginHint() const;
7069 bool showRemoteLoginHint() const;
71− bool lockHint () const;
7270 bool hasGuestAccountHint() const;
7371 QString selectUserHint() const;
7472 bool selectGuestHint() const;
plugins/IntegratedLightDM/liblightdm/GreeterPrivate.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpprenamed+1−2
@@ -50,8 +50,7 @@ public:
5050 {
5151 qRegisterMetaType<QLightDM::GreeterImpl::ResponseFuture>("QLightDM::GreeterImpl::ResponseFuture");
5252
53− connect(&futureWatcher, &QFutureWatcher<int>::finished,
54− this, &GreeterImpl::finishPam);
53+ connect(&futureWatcher, &QFutureWatcher<int>::finished, this, &GreeterImpl::finishPam);
5554 connect(this, SIGNAL(showMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)),
5655 this, SLOT(handleMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)));
5756 // This next connect is how we pass ResponseFutures between threads
plugins/IntegratedLightDM/liblightdm/GreeterPrivate.h → plugins/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.hrenamed

The content is the same.

plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cppnew file+88
@@ -0,0 +1,88 @@
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+
18+
19+/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
20+ * CHANGES MADE HERE MUST BE REFLECTED ON THE MOCK LIB
21+ * COUNTERPART IN tests/mocks/LightDM/IntegratedLightDM/liblightdm
22+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
23+
24+// LightDM currently is Qt4 compatible, and so doesn't define setRoleNames.
25+// To use the same method of setting role name that it does, we
26+// set our compatibility to Qt4 here too.
27+#define QT_DISABLE_DEPRECATED_BEFORE QT_VERSION_CHECK(4, 0, 0)
28+
29+#include "SessionsModel.h"
30+#include "SessionsModelPrivate.h"
31+#include <QtCore/QDir>
32+#include <QtCore/QString>
33+
34+namespace QLightDM
35+{
36+
37+SessionsModel::SessionsModel(QObject* parent) :
38+ QAbstractListModel(parent),
39+ d_ptr(new SessionsModelPrivate(this))
40+{
41+ Q_D(SessionsModel);
42+ m_roleNames = QAbstractListModel::roleNames();
43+ m_roleNames[KeyRole] = "key";
44+ m_roleNames[TypeRole] = "type";
45+}
46+
47+SessionsModel::~SessionsModel()
48+{
49+ delete d_ptr;
50+}
51+
52+QVariant SessionsModel::data(const QModelIndex& index, int role) const
53+{
54+ Q_D(const SessionsModel);
55+
56+ if(!index.isValid()) {
57+ return QVariant();
58+ }
59+
60+ int row = index.row();
61+
62+ switch (role) {
63+ case QLightDM::SessionsModel::KeyRole:
64+ return d->sessionItems[row].key;
65+ case Qt::DisplayRole:
66+ return d->sessionItems[row].name;
67+ default:
68+ return QVariant();
69+ }
70+}
71+
72+QHash<int, QByteArray> SessionsModel::roleNames() const
73+{
74+ return m_roleNames;
75+}
76+
77+int SessionsModel::rowCount(const QModelIndex& parent) const
78+{
79+ Q_D(const SessionsModel);
80+
81+ if (parent.isValid()) {
82+ return 0;
83+ } else { // parent is root
84+ return d->sessionItems.size();
85+ }
86+}
87+
88+} // namespace QLightDM
plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.hnew file+72
@@ -0,0 +1,72 @@
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+
18+#ifndef UNITY_INTEGRATED_SESSIONSMODEL_H
19+#define UNITY_INTEGRATED_SESSIONSMODEL_H
20+
21+#include <QtCore/QAbstractListModel>
22+#include <QtCore/QString>
23+
24+/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25+ * CHANGES MADE HERE MUST BE REFLECTED ON THE MOCK LIB
26+ * COUNTERPART IN tests/mocks/LightDM/IntegratedLightDM/liblightdm
27+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
28+
29+// This is taken from liblightdm and modified to confirm to our syle conventions
30+namespace QLightDM
31+{
32+class SessionsModelPrivate;
33+
34+class Q_DECL_EXPORT SessionsModel : public QAbstractListModel
35+ {
36+ Q_OBJECT
37+
38+ Q_ENUMS(SessionModelRoles SessionType)
39+
40+ public:
41+
42+ enum SessionModelRoles {
43+ //name is exposed as Qt::DisplayRole
44+ //comment is exposed as Qt::TooltipRole
45+ KeyRole = Qt::UserRole,
46+ IdRole = KeyRole, /** Deprecated */
47+ TypeRole
48+ };
49+
50+ enum SessionType {
51+ LocalSessions,
52+ RemoteSessions
53+ };
54+
55+ explicit SessionsModel(QObject* parent=0); /** Deprecated. Loads local sessions*/
56+ explicit SessionsModel(SessionsModel::SessionType, QObject* parent=0);
57+ virtual ~SessionsModel();
58+
59+ QHash<int, QByteArray> roleNames() const override;
60+ int rowCount(const QModelIndex& parent) const override;
61+ QVariant data(const QModelIndex& index, int role) const override;
62+
63+ protected:
64+ SessionsModelPrivate* const d_ptr;
65+
66+ private:
67+ QHash<int, QByteArray> m_roleNames;
68+ Q_DECLARE_PRIVATE(SessionsModel)
69+ };
70+}
71+
72+#endif // UNITY_INTEGRATED_SESSIONSMODEL_H
plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cppnew file+36
@@ -0,0 +1,36 @@
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+
18+#include "SessionsModelPrivate.h"
19+
20+#include <QDir>
21+#include <QSettings>
22+#include <QStringList>
23+
24+namespace QLightDM
25+{
26+
27+SessionsModelPrivate::SessionsModelPrivate(SessionsModel* parent)
28+ : q_ptr(parent)
29+{
30+ // Since this model is never visible, as there is only 1 session,
31+ // just use the session name as the key
32+ QString sessionName = qgetenv("XDG_SESSION_DESKTOP");
33+ sessionItems.append({sessionName, "", sessionName, ""});
34+}
35+
36+} // namespace QLightDM
plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.hnew file+54
@@ -0,0 +1,54 @@
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+
18+#ifndef UNITY_INTEGRATED_SESSIONSMODEL_PRIVATE_H
19+#define UNITY_INTEGRATED_SESSIONSMODEL_PRIVATE_H
20+
21+#include <QtCore/QList>
22+#include <QtCore/QString>
23+
24+namespace QLightDM
25+{
26+class SessionsModel;
27+
28+class SessionItem
29+{
30+public:
31+ QString key;
32+ QString type; // unused
33+ QString name;
34+ QString comment; // unused
35+};
36+
37+class SessionsModelPrivate
38+{
39+public:
40+ explicit SessionsModelPrivate(SessionsModel* parent=0);
41+ virtual ~SessionsModelPrivate() = default;
42+
43+ QList<SessionItem> sessionItems;
44+
45+protected:
46+ SessionsModel* const q_ptr;
47+
48+private:
49+ Q_DECLARE_PUBLIC(SessionsModel)
50+};
51+
52+} // namespace QLightDM
53+
54+#endif // UNITY_INTEGRATED_SESSIONSMODEL_PRIVATE_H
plugins/IntegratedLightDM/liblightdm/UsersModel.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModel.cpprenamed+4−3
@@ -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
@@ -40,8 +40,6 @@ UsersModel::UsersModel(QObject *parent) :
4040 QAbstractListModel(parent),
4141 d_ptr(new UsersModelPrivate(this))
4242{
43− Q_D(UsersModel);
44−
4543 // Extend roleNames (we want to keep the "display" role)
4644 QHash<int, QByteArray> roles = roleNames();
4745 roles[NameRole] = "name";
@@ -52,6 +50,7 @@ UsersModel::UsersModel(QObject *parent) :
5250 roles[SessionRole] = "session";
5351 roles[HasMessagesRole] = "hasMessages";
5452 roles[ImagePathRole] = "imagePath";
53+ roles[UidRole] = "uid";
5554 setRoleNames(roles);
5655
5756 connect(d_ptr, &UsersModelPrivate::dataChanged, this, [this](int i) {
@@ -101,6 +100,8 @@ QVariant UsersModel::data(const QModelIndex &index, int role) const
101100 return d->entries[row].has_messages;
102101 case UsersModel::ImagePathRole:
103102 return "";
103+ case UsersModel::UidRole:
104+ return d->entries[row].uid;
104105 default:
105106 return QVariant();
106107 }
plugins/IntegratedLightDM/liblightdm/UsersModel.h → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModel.hrenamed+2−1
@@ -50,7 +50,8 @@ public:
5050 SessionRole,
5151 HasMessagesRole,
5252 ImagePathRole,
53− BackgroundPathRole
53+ BackgroundPathRole,
54+ UidRole
5455 };
5556
5657 int rowCount(const QModelIndex &parent) const override;
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpprenamed+5−3
@@ -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
@@ -26,6 +26,7 @@
2626#include <QDir>
2727#include <QSettings>
2828#include <QStringList>
29+#include <unistd.h>
2930
3031namespace QLightDM
3132{
@@ -37,6 +38,7 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
3738{
3839 QFileInfo demoFile(QDir::homePath() + "/.unity8-greeter-demo");
3940 QString currentUser = g_get_user_name();
41+ uid_t currentUid = getuid();
4042
4143 if (demoFile.exists()) {
4244 QSettings settings(demoFile.filePath(), QSettings::NativeFormat);
@@ -46,10 +48,10 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
4648 Q_FOREACH(const QString &user, users)
4749 {
4850 QString name = settings.value(user + "/name", user).toString();
49− entries.append({user, name, 0, 0, false, false, 0, 0});
51+ entries.append({user, name, 0, 0, false, false, 0, 0, currentUid++});
5052 }
5153 } else {
52− entries.append({currentUser, 0, 0, 0, false, false, 0, 0});
54+ entries.append({currentUser, 0, 0, 0, false, false, 0, 0, currentUid});
5355
5456 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged,
5557 this, [this](const QString &user) {
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.h → plugins/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.hrenamed+2−1
@@ -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
@@ -40,6 +40,7 @@ public:
4040 bool has_messages;
4141 QString session;
4242 QString infographic;
43+ uid_t uid;
4344};
4445
4546class UsersModelPrivate : public QObject
plugins/LightDM/IntegratedLightDM/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module LightDM.IntegratedLightDM
2+plugin IntegratedLightDM-qml
3+typeinfo IntegratedLightDM.qmltypes
plugins/LightDM/SessionsModel.cppnew file+128
@@ -0,0 +1,128 @@
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+
18+#include "SessionsModel.h"
19+#include <QtCore/QFile>
20+#include <QtCore/QSortFilterProxyModel>
21+
22+QHash<int, QByteArray> SessionsModel::roleNames() const
23+{
24+ return m_roleNames;
25+}
26+
27+int SessionsModel::rowCount(const QModelIndex& parent) const
28+{
29+ return m_model->rowCount(parent);
30+}
31+
32+QList<QUrl> SessionsModel::iconSearchDirectories() const
33+{
34+ return m_iconSearchDirectories;
35+}
36+
37+void SessionsModel::setIconSearchDirectories(const QList<QUrl> searchDirectories)
38+{
39+ // QML gives us a url with file:// prepended which breaks QFile::exists()
40+ // so convert the url to a local file
41+ QList<QUrl> localList = {};
42+ Q_FOREACH(const QUrl& searchDirectory, searchDirectories)
43+ {
44+ localList.append(searchDirectory.toLocalFile());
45+ }
46+ m_iconSearchDirectories = localList;
47+ Q_EMIT iconSearchDirectoriesChanged();
48+}
49+
50+QUrl SessionsModel::iconUrl(const QString sessionKey) const
51+{
52+ Q_FOREACH(const QUrl& searchDirectory, m_iconSearchDirectories)
53+ {
54+ // This is an established icon naming convention
55+ QString customIconUrl = searchDirectory.toString(QUrl::StripTrailingSlash) +
56+ "/custom_" + sessionKey + "_badge.png";
57+ QString iconUrl = searchDirectory.toString(QUrl::StripTrailingSlash) +
58+ "/" + sessionKey + "_badge.png";
59+
60+ QFile customIconFile(customIconUrl);
61+ QFile iconFile(iconUrl);
62+ if (customIconFile.exists()) {
63+ return QUrl(customIconUrl);
64+ } else if (iconFile.exists()) {
65+ return QUrl(iconUrl);
66+ } else {
67+ // Search the legacy way
68+ QString path = searchDirectory.toString(QUrl::StripTrailingSlash) + "/";
69+ bool iconFound = false;
70+ if (sessionKey == "ubuntu" || sessionKey == "ubuntu-2d") {
71+ path += "ubuntu_badge.png";
72+ iconFound = true;
73+ } else if(
74+ sessionKey == "gnome-classic" ||
75+ sessionKey == "gnome-flashback-compiz" ||
76+ sessionKey == "gnome-flashback-metacity" ||
77+ sessionKey == "gnome-shell" ||
78+ sessionKey == "gnome-wayland" ||
79+ sessionKey == "gnome"
80+ ){
81+ path += "gnome_badge.png";
82+ iconFound = true;
83+ } else if (sessionKey == "plasma") {
84+ path += "kde_badge.png";
85+ iconFound = true;
86+ } else if (sessionKey == "xterm") {
87+ path += "recovery_console_badge.png";
88+ iconFound = true;
89+ } else if (sessionKey == "remote-login") {
90+ path += "remote_login_help.png";
91+ iconFound = true;
92+ }
93+
94+ if (QFile(path).exists() && iconFound) {
95+ return path;
96+ }
97+ }
98+ }
99+
100+ // FIXME make this smarter
101+ return QUrl("./graphics/session_icons/unknown_badge.png");
102+}
103+
104+QVariant SessionsModel::data(const QModelIndex& index, int role) const
105+{
106+ switch (role) {
107+ case SessionsModel::IconRole:
108+ return iconUrl(m_model->data(index, QLightDM::SessionsModel::KeyRole).toString());
109+ default:
110+ return m_model->data(index, role);
111+ }
112+}
113+
114+SessionsModel::SessionsModel(QObject* parent)
115+ : UnitySortFilterProxyModelQML(parent)
116+{
117+ // Add a custom IconRole that isn't in either of the lightdm implementations
118+ m_model = new QLightDM::SessionsModel(this);
119+ m_roleNames = m_model->roleNames();
120+ m_roleNames[IconRole] = "icon_url";
121+
122+ setModel(m_model);
123+ setSourceModel(m_model);
124+ setSortCaseSensitivity(Qt::CaseInsensitive);
125+ setSortLocaleAware(true);
126+ setSortRole(Qt::DisplayRole);
127+ sort(0);
128+}
plugins/LightDM/SessionsModel.hnew file+68
@@ -0,0 +1,68 @@
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+
18+#ifndef UNITY_SESSIONSMODEL_H
19+#define UNITY_SESSIONSMODEL_H
20+
21+#include <unitysortfilterproxymodelqml.h>
22+#include <QLightDM/SessionsModel>
23+#include <QtCore/QHash>
24+#include <QtCore/QObject>
25+#include <QtCore/QUrl>
26+
27+class SessionsModel : public UnitySortFilterProxyModelQML
28+{
29+ Q_OBJECT
30+
31+ Q_ENUMS(SessionModelRoles)
32+
33+ Q_PROPERTY(QList<QUrl> iconSearchDirectories READ iconSearchDirectories
34+ WRITE setIconSearchDirectories NOTIFY iconSearchDirectoriesChanged)
35+Q_SIGNALS:
36+ void iconSearchDirectoriesChanged();
37+
38+public:
39+ enum SessionModelRoles {
40+ /* This is tricky / ugly. Since we are ultimately chaining 3 enums together,
41+ * the _first_ value of this enum MUST be the _last_ value of
42+ * QLightDM::SessionsModel::SessionModelRoles and consquently, this must
43+ * also match the last value in the corresponding enum of the integrated lib
44+ */
45+ TypeRole = QLightDM::SessionsModel::SessionModelRoles::TypeRole,
46+ IconRole
47+ };
48+
49+ explicit SessionsModel(QObject* parent=nullptr);
50+
51+ QHash<int, QByteArray> roleNames() const override;
52+ int rowCount(const QModelIndex& parent) const override;
53+ QVariant data(const QModelIndex& index, int role) const override;
54+ QList<QUrl> iconSearchDirectories() const;
55+ Q_INVOKABLE QUrl iconUrl(const QString sessionName) const;
56+
57+ void setIconSearchDirectories(const QList<QUrl> searchDirectories);
58+private:
59+ QLightDM::SessionsModel* m_model;
60+ QHash<int, QByteArray> m_roleNames;
61+ QList<QUrl> m_iconSearchDirectories{
62+ QUrl("/usr/share/unity8/Greeter/graphics/session_icons"),
63+ QUrl("/usr/local/share/unity-greeter"),
64+ QUrl("/usr/share/unity-greeter/")};
65+
66+};
67+
68+#endif // UNITY_SESSIONSMODEL_H
plugins/IntegratedLightDM/UsersModel.cpp → plugins/LightDM/UsersModel.cpprenamed

The content is the same.

plugins/IntegratedLightDM/UsersModel.h → plugins/LightDM/UsersModel.hrenamed

The content is the same.

plugins/IntegratedLightDM/plugin.cpp → plugins/LightDM/plugin.cpprenamed+26−4
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2012,2013, 2015 Canonical, Ltd.
2+ * Copyright (C) 2012,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
@@ -19,9 +19,11 @@
1919#include "DBusGreeter.h"
2020#include "DBusGreeterList.h"
2121#include "Greeter.h"
22+#include "SessionsModel.h"
2223#include "UsersModel.h"
2324#include <libusermetricsoutput/ColorTheme.h>
2425#include <libusermetricsoutput/UserMetrics.h>
26+#include <QLightDM/SessionsModel>
2527#include <QLightDM/UsersModel>
2628
2729#include <QAbstractItemModel>
@@ -40,6 +42,13 @@ static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
4042 return greeter;
4143}
4244
45+static QObject *sessions_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
46+{
47+ Q_UNUSED(engine)
48+ Q_UNUSED(scriptEngine)
49+ return new SessionsModel();
50+}
51+
4352static QObject *users_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
4453{
4554 Q_UNUSED(engine)
@@ -54,16 +63,29 @@ static QObject *infographic_provider(QQmlEngine *engine, QJSEngine *scriptEngine
5463 return UserMetricsOutput::UserMetrics::getInstance();
5564}
5665
57−void IntegratedLightDMPlugin::registerTypes(const char *uri)
66+void PLUGIN_CLASSNAME::registerTypes(const char *uri)
5867{
5968 qmlRegisterType<QAbstractItemModel>();
6069 qmlRegisterType<UserMetricsOutput::ColorTheme>();
6170
62− Q_ASSERT(uri == QLatin1String("IntegratedLightDM"));
71+#if defined INTEGRATED_LIGHTDM
72+ Q_ASSERT(uri == QLatin1String("LightDM.IntegratedLightDM"));
73+ qmlRegisterSingletonType<Greeter>(uri, 0, 1, "Greeter", greeter_provider);
74+#elif defined FULL_LIGHTDM
75+ Q_ASSERT(uri == QLatin1String("LightDM.FullLightDM"));
76+ qmlRegisterSingletonType<QLightDM::Greeter>(uri, 0, 1, "Greeter", greeter_provider);
77+#else
78+ #error No library defined in LightDM plugin
79+#endif
80+
6381 qRegisterMetaType<QLightDM::Greeter::MessageType>("QLightDM::Greeter::MessageType");
6482 qRegisterMetaType<QLightDM::Greeter::PromptType>("QLightDM::Greeter::PromptType");
65− qmlRegisterSingletonType<Greeter>(uri, 0, 1, "Greeter", greeter_provider);
83+
84+ qmlRegisterSingletonType<SessionsModel>(uri, 0, 1, "Sessions", sessions_provider);
85+ qmlRegisterUncreatableType<QLightDM::SessionsModel>(uri, 0, 1, "SessionRoles", QStringLiteral("Type is not instantiable"));
86+
6687 qmlRegisterSingletonType<UsersModel>(uri, 0, 1, "Users", users_provider);
6788 qmlRegisterUncreatableType<QLightDM::UsersModel>(uri, 0, 1, "UserRoles", QStringLiteral("Type is not instantiable"));
89+
6890 qmlRegisterSingletonType<UserMetricsOutput::UserMetrics>(uri, 0, 1, "Infographic", infographic_provider);
6991}
plugins/IntegratedLightDM/plugin.h → plugins/LightDM/plugin.hrenamed+5−5
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2012,2013, 2015 Canonical, Ltd.
2+ * Copyright (C) 2012,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
@@ -15,13 +15,13 @@
1515 *
1616 */
1717
18−#ifndef INTEGRATED_LIGHTDM_PLUGIN_H
19−#define INTEGRATED_LIGHTDM_PLUGIN_H
18+#ifndef LIGHTDM_PLUGIN_H
19+#define LIGHTDM_PLUGIN_H
2020
2121#include <QtQml/QQmlEngine>
2222#include <QtQml/QQmlExtensionPlugin>
2323
24−class IntegratedLightDMPlugin : public QQmlExtensionPlugin
24+class PLUGIN_CLASSNAME : public QQmlExtensionPlugin
2525{
2626 Q_OBJECT
2727 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
@@ -30,4 +30,4 @@ public:
3030 void registerTypes(const char *uri) override;
3131};
3232
33−#endif /* INTEGRATED_LIGHTDM_PLUGIN_H */
33+#endif /* LIGHTDM_PLUGIN_H */
plugins/IntegratedLightDM/qmldir → plugins/LightDM/qmldirrenamed

The content is the same.

plugins/Lights/CMakeLists.txt+1
@@ -2,6 +2,7 @@ pkg_check_modules(ANDROID_HEADERS REQUIRED android-headers)
22pkg_check_modules(ANDROID_HARDWARE REQUIRED libhardware)
33
44include_directories(
5+ SYSTEM
56 ${ANDROID_HEADERS_INCLUDE_DIRS}
67)
78
plugins/Lights/android-hardware.h−4
@@ -15,9 +15,5 @@
1515 *
1616 */
1717
18−// The purpose of this header wrapper is just to avoid having warnings being reported on
19−// code from external header files, as we can't do anything about them.
20−#pragma GCC system_header
21−
2218#include <hardware/hardware.h>
2319#include <hardware/lights.h>
plugins/SessionBroadcast/SessionBroadcast.cpp+35−9
@@ -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,12 +12,12 @@
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 "SessionBroadcast.h"
2018#include <QDBusConnection>
19+#include <QDBusConnectionInterface>
20+#include <QDBusInterface>
2121
2222#include <glib.h>
2323
@@ -27,13 +27,39 @@ SessionBroadcast::SessionBroadcast(QObject* parent)
2727 m_username = QString::fromUtf8(g_get_user_name());
2828
2929 auto connection = QDBusConnection::SM_BUSNAME();
30+ auto interface = connection.interface();
31+ interface->startService(QStringLiteral("com.canonical.Unity.Greeter.Broadcast"));
32+
33+ m_broadcaster = new QDBusInterface(QStringLiteral("com.canonical.Unity.Greeter.Broadcast"),
34+ QStringLiteral("/com/canonical/Unity/Greeter/Broadcast"),
35+ QStringLiteral("com.canonical.Unity.Greeter.Broadcast"),
36+ connection, this);
37+
38+ connect(m_broadcaster, SIGNAL(StartUrl(const QString &, const QString &)),
39+ this, SLOT(onStartUrl(const QString &, const QString &)));
40+
41+ connect(m_broadcaster, SIGNAL(ShowHome(const QString &)),
42+ this, SLOT(onShowHome(const QString &)));
43+}
44+
45+void SessionBroadcast::requestUrlStart(const QString &username, const QString &url)
46+{
47+ m_broadcaster->asyncCall(QStringLiteral("RequestUrlStart"), username, url);
48+}
49+
50+void SessionBroadcast::requestHomeShown(const QString &username)
51+{
52+ m_broadcaster->asyncCall(QStringLiteral("RequestHomeShown"), username);
53+}
3054
31− connection.connect(QStringLiteral("com.canonical.Unity.Greeter.Broadcast"),
32− QStringLiteral("/com/canonical/Unity/Greeter/Broadcast"),
33− QStringLiteral("com.canonical.Unity.Greeter.Broadcast"),
34− QStringLiteral("ShowHome"),
35− this,
36− SLOT(onShowHome(const QString &)));
55+void SessionBroadcast::onStartUrl(const QString &username, const QString &url)
56+{
57+ // Since this signal is just used for testing, we don't *really* care if
58+ // username matches, but just in case we do eventually use the signal, we
59+ // should only listen to our own requests.
60+ if (username == m_username) {
61+ Q_EMIT startUrl(url);
62+ }
3763}
3864
3965void SessionBroadcast::onShowHome(const QString &username)
plugins/SessionBroadcast/SessionBroadcast.h+10−3
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013,2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -12,8 +12,6 @@
1212 *
1313 * You should have received a copy of the GNU General Public License
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors: Michael Terry <michael.terry@canonical.com>
1715 */
1816
1917#ifndef UNITY_SESSIONBROADCAST_H
@@ -31,14 +29,23 @@ class SessionBroadcast: public QObject
3129public:
3230 explicit SessionBroadcast(QObject *parent = 0);
3331
32+ Q_INVOKABLE void requestUrlStart(const QString &username, const QString &url);
33+ Q_INVOKABLE void requestHomeShown(const QString &username);
34+
3435Q_SIGNALS:
36+ // This signal isn't actually used by the shell
37+ // (unity-greeter-session-broadcast handles launching an app for us), but
38+ // it's useful for testing the plugin.
39+ void startUrl(const QString &url);
3540 void showHome();
3641
3742private Q_SLOTS:
43+ void onStartUrl(const QString &username, const QString &url);
3844 void onShowHome(const QString &username);
3945
4046private:
4147 QString m_username;
48+ QDBusInterface *m_broadcaster;
4249};
4350
4451#endif
plugins/Ubuntu/DownloadDaemonListener/CMakeLists.txt+3−2
@@ -1,7 +1,6 @@
11include_directories(
22 ${CMAKE_CURRENT_SOURCE_DIR}
33 ${CMAKE_CURRENT_BINARY_DIR}
4− ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
54)
65
76set(DOWNLOADDAEMONLISTENER_SOURCES
@@ -13,5 +12,7 @@ set(DOWNLOADDAEMONLISTENER_SOURCES
1312add_library(DownloadDaemonListener MODULE ${DOWNLOADDAEMONLISTENER_SOURCES})
1413
1514qt5_use_modules(DownloadDaemonListener Qml Quick DBus Core)
16−
15+pkg_check_modules(DDLADAPTER REQUIRED udm-common)
16+add_definitions(${DDLADAPTER_CFLAGS} ${DDLADAPTER_CFLAGS_OTHER})
17+target_link_libraries(DownloadDaemonListener ${DDLADAPTER_LIBRARIES})
1718add_unity8_plugin(Ubuntu.DownloadDaemonListener 0.1 Ubuntu/DownloadDaemonListener TARGETS DownloadDaemonListener)
plugins/Ubuntu/DownloadDaemonListener/DownloadTracker.cpp+2−1
@@ -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 it
55 * under the terms of the GNU Lesser General Public License, as
@@ -78,6 +78,7 @@ void DownloadTracker::startService()
7878 connect(m_adaptor, static_cast<void (DownloadTrackerAdaptor::*)(qulonglong, qulonglong)>(&DownloadTrackerAdaptor::progress), this, &DownloadTracker::progress);
7979 connect(m_adaptor, &DownloadTrackerAdaptor::resumed, this, &DownloadTracker::resumed);
8080 connect(m_adaptor, &DownloadTrackerAdaptor::started, this, &DownloadTracker::started);
81+ connect(m_adaptor, &DownloadTrackerAdaptor::processing, this, &DownloadTracker::processing);
8182 }
8283 // FIXME find a better way of determining if the service is ready
8384 Q_EMIT serviceReadyChanged(m_adaptor && m_adaptor->isValid());
plugins/Ubuntu/DownloadDaemonListener/DownloadTracker.h+2−1
@@ -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 it
55 * under the terms of the GNU Lesser General Public License, as
@@ -54,6 +54,7 @@ Q_SIGNALS:
5454 void error(const QString &error);
5555 void finished(const QString &path);
5656 void paused(bool success);
57+ void processing(const QString &path);
5758 void progress(qulonglong received, qulonglong total);
5859 void resumed(bool success);
5960 void started(bool success);
plugins/Ubuntu/DownloadDaemonListener/interface/downloadtrackeradaptor.cpp+2−2
@@ -1,8 +1,8 @@
11/*
22 * This file was generated by qdbusxml2cpp version 0.8
3− * Command line was: qdbusxml2cpp -v -c DownloadTrackerAdaptor -p downloadtrackeradaptor.h:downloadtrackeradaptor.cpp -i metatypes.h com.canonical.applications.download.xml
3+ * Command line was: qdbusxml2cpp -v -c DownloadTrackerAdaptor -p downloadtrackeradaptor.h:downloadtrackeradaptor.cpp -i metatypes.h ../../../../../../ubuntu-download-manager/trunk/docs/dbus/com.canonical.applications.download.xml
44 *
5− * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
5+ * qdbusxml2cpp is Copyright (C) 2015 The Qt Company Ltd.
66 *
77 * This is an auto-generated file.
88 * This file may have been hand-edited. Look for HAND-EDIT comments
plugins/Ubuntu/DownloadDaemonListener/interface/downloadtrackeradaptor.h+71−4
@@ -1,15 +1,15 @@
11/*
22 * This file was generated by qdbusxml2cpp version 0.8
3− * Command line was: qdbusxml2cpp -v -c DownloadTrackerAdaptor -p downloadtrackeradaptor.h:downloadtrackeradaptor.cpp -i metatypes.h com.canonical.applications.download.xml
3+ * Command line was: qdbusxml2cpp -v -c DownloadTrackerAdaptor -p downloadtrackeradaptor.h:downloadtrackeradaptor.cpp -i metatypes.h ../../../../../../ubuntu-download-manager/trunk/docs/dbus/com.canonical.applications.download.xml
44 *
5− * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
5+ * qdbusxml2cpp is Copyright (C) 2015 The Qt Company Ltd.
66 *
77 * This is an auto-generated file.
88 * Do not edit! All changes made to it will be lost.
99 */
1010
11−#ifndef DOWNLOADTRACKERADAPTOR_H_1374434371
12−#define DOWNLOADTRACKERADAPTOR_H_1374434371
11+#ifndef DOWNLOADTRACKERADAPTOR_H
12+#define DOWNLOADTRACKERADAPTOR_H
1313
1414#include <QtCore/QObject>
1515#include <QtCore/QByteArray>
@@ -36,6 +36,22 @@ public:
3636
3737 ~DownloadTrackerAdaptor();
3838
39+ Q_PROPERTY(QString ClickPackage READ clickPackage)
40+ inline QString clickPackage() const
41+ { return qvariant_cast< QString >(property("ClickPackage")); }
42+
43+ Q_PROPERTY(QString DestinationApp READ destinationApp)
44+ inline QString destinationApp() const
45+ { return qvariant_cast< QString >(property("DestinationApp")); }
46+
47+ Q_PROPERTY(bool ShowInIndicator READ showInIndicator)
48+ inline bool showInIndicator() const
49+ { return qvariant_cast< bool >(property("ShowInIndicator")); }
50+
51+ Q_PROPERTY(QString Title READ title)
52+ inline QString title() const
53+ { return qvariant_cast< QString >(property("Title")); }
54+
3955public Q_SLOTS: // METHODS
4056 inline QDBusPendingReply<> allowGSMDownload(bool allowed)
4157 {
@@ -50,6 +66,24 @@ public Q_SLOTS: // METHODS
5066 return asyncCallWithArgumentList(QStringLiteral("cancel"), argumentList);
5167 }
5268
69+ inline QDBusPendingReply<> collected()
70+ {
71+ QList<QVariant> argumentList;
72+ return asyncCallWithArgumentList(QStringLiteral("collected"), argumentList);
73+ }
74+
75+ inline QDBusPendingReply<QString> filePath()
76+ {
77+ QList<QVariant> argumentList;
78+ return asyncCallWithArgumentList(QStringLiteral("filePath"), argumentList);
79+ }
80+
81+ inline QDBusPendingReply<StringMap> headers()
82+ {
83+ QList<QVariant> argumentList;
84+ return asyncCallWithArgumentList(QStringLiteral("headers"), argumentList);
85+ }
86+
5387 inline QDBusPendingReply<bool> isGSMDownloadAllowed()
5488 {
5589 QList<QVariant> argumentList;
@@ -80,6 +114,27 @@ public Q_SLOTS: // METHODS
80114 return asyncCallWithArgumentList(QStringLiteral("resume"), argumentList);
81115 }
82116
117+ inline QDBusPendingReply<> setDestinationDir(const QString &path)
118+ {
119+ QList<QVariant> argumentList;
120+ argumentList << QVariant::fromValue(path);
121+ return asyncCallWithArgumentList(QStringLiteral("setDestinationDir"), argumentList);
122+ }
123+
124+ inline QDBusPendingReply<> setHeaders(StringMap headers)
125+ {
126+ QList<QVariant> argumentList;
127+ argumentList << QVariant::fromValue(headers);
128+ return asyncCallWithArgumentList(QStringLiteral("setHeaders"), argumentList);
129+ }
130+
131+ inline QDBusPendingReply<> setMetadata(const QVariantMap &data)
132+ {
133+ QList<QVariant> argumentList;
134+ argumentList << QVariant::fromValue(data);
135+ return asyncCallWithArgumentList(QStringLiteral("setMetadata"), argumentList);
136+ }
137+
83138 inline QDBusPendingReply<> setThrottle(qulonglong speed)
84139 {
85140 QList<QVariant> argumentList;
@@ -93,6 +148,12 @@ public Q_SLOTS: // METHODS
93148 return asyncCallWithArgumentList(QStringLiteral("start"), argumentList);
94149 }
95150
151+ inline QDBusPendingReply<int> state()
152+ {
153+ QList<QVariant> argumentList;
154+ return asyncCallWithArgumentList(QStringLiteral("state"), argumentList);
155+ }
156+
96157 inline QDBusPendingReply<qulonglong> throttle()
97158 {
98159 QList<QVariant> argumentList;
@@ -106,10 +167,16 @@ public Q_SLOTS: // METHODS
106167 }
107168
108169Q_SIGNALS: // SIGNALS
170+ void authError(AuthErrorStruct error);
109171 void canceled(bool success);
110172 void error(const QString &error);
111173 void finished(const QString &path);
174+ void hashError(HashErrorStruct error);
175+ void httpError(HttpErrorStruct error);
176+ void networkError(NetworkErrorStruct error);
112177 void paused(bool success);
178+ void processError(ProcessErrorStruct error);
179+ void processing(const QString &path);
113180 void progress(qulonglong received, qulonglong total);
114181 void resumed(bool success);
115182 void started(bool success);
plugins/Ubuntu/DownloadDaemonListener/interface/metatypes.h+3−6
@@ -1,5 +1,5 @@
11/*
2− * Copyright 2013 2013 Canonical Ltd.
2+ * Copyright 2013-2016 Canonical Ltd.
33 *
44 * This library is free software; you can redistribute it and/or
55 * modify it under the terms of version 3 of the GNU Lesser General Public
@@ -19,10 +19,7 @@
1919#ifndef DOWNLOADER_LIB_APP_METATYPES_H
2020#define DOWNLOADER_LIB_APP_METATYPES_H
2121
22−#include <QMap>
23−
24−typedef QMap<QString, QString> StringMap;
25−
26−Q_DECLARE_METATYPE(StringMap)
22+// Just include the system file so we're always up to date.
23+#include <ubuntu/download_manager/metatypes.h>
2724
2825#endif // METATYPES_H
plugins/Ubuntu/Gestures/AxisVelocityCalculator.cpp+1−1
@@ -21,7 +21,7 @@
2121#include "AxisVelocityCalculator.h"
2222#include <QtCore/QElapsedTimer>
2323
24−using namespace UbuntuGestures;
24+UG_USE_NAMESPACE
2525
2626AxisVelocityCalculator::AxisVelocityCalculator(QObject *parent)
2727 : AxisVelocityCalculator(SharedTimeSource(new RealTimeSource), parent)
plugins/Ubuntu/Gestures/AxisVelocityCalculator.h+4−4
@@ -24,7 +24,7 @@
2424#include "UbuntuGesturesQmlGlobal.h"
2525#include <stdint.h>
2626#include <QtCore/QObject>
27−#include <TimeSource>
27+#include <UbuntuGestures/private/timesource_p.h>
2828
2929/*
3030 Estimates the current velocity of a finger based on recent movement along an axis
@@ -68,7 +68,7 @@ public:
6868 /*
6969 Constructor that takes a TimeSource
7070 */
71− AxisVelocityCalculator(const UbuntuGestures::SharedTimeSource &timeSource, QObject *parent = 0);
71+ AxisVelocityCalculator(const UG_PREPEND_NAMESPACE(SharedTimeSource) &timeSource, QObject *parent = 0);
7272
7373 virtual ~AxisVelocityCalculator();
7474
@@ -90,7 +90,7 @@ public:
9090 /*
9191 Replaces the TimeSource with the given one. Useful for testing purposes.
9292 */
93− void setTimeSource(const UbuntuGestures::SharedTimeSource &timeSource);
93+ void setTimeSource(const UG_PREPEND_NAMESPACE(SharedTimeSource) &timeSource);
9494
9595 /*
9696 The minimum amount of samples needed for a velocity calculation.
@@ -138,7 +138,7 @@ private:
138138 int m_samplesRead; /* index of the oldest sample available. -1 if buffer is empty */
139139 int m_samplesWrite; /* index where the next sample will be written */
140140
141− UbuntuGestures::SharedTimeSource m_timeSource;
141+ UG_PREPEND_NAMESPACE(SharedTimeSource) m_timeSource;
142142
143143 qreal m_trackedPosition;
144144};
plugins/Ubuntu/Gestures/CMakeLists.txt+6−1
@@ -24,7 +24,11 @@ qt5_use_modules(UbuntuGesturesQml Core Quick)
2424# So that Foo.cpp can #include "Foo.moc"
2525include_directories(${CMAKE_CURRENT_BINARY_DIR})
2626
27−include_directories(${UBUNTUGESTURES_INCLUDE_DIRS})
27+include_directories(
28+ SYSTEM
29+ ${UBUNTUGESTURES_INCLUDE_DIRS}
30+ ${UBUNTUGESTURES_INCLUDEDIR}/UbuntuGestures/${UBUNTUGESTURES_VERSION}
31+)
2832
2933# There's no cmake var for v8 include path :-/ so create one
3034LIST(GET Qt5Core_INCLUDE_DIRS 0 QtCoreDir0)
@@ -32,6 +36,7 @@ SET(Qt5V8_PRIVATE_INCLUDE_DIR ${QtCoreDir0}/QtV8/${Qt5Core_VERSION_STRING}/QtV8)
3236
3337# DANGER! DANGER! Using Qt's private API!
3438include_directories(
39+ SYSTEM
3540 ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
3641 ${Qt5Quick_INCLUDE_DIRS}
3742 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
plugins/Ubuntu/Gestures/TouchDispatcher.cpp−4
@@ -19,11 +19,7 @@
1919#include <QGuiApplication>
2020#include <QScopedPointer>
2121#include <QStyleHints>
22−
23−#pragma GCC diagnostic push
24−#pragma GCC diagnostic ignored "-pedantic"
2522#include <private/qquickitem_p.h>
26−#pragma GCC diagnostic pop
2723
2824#define TOUCHDISPATCHER_DEBUG 0
2925
plugins/Ubuntu/Gestures/TouchGate.cpp+6−4
@@ -20,16 +20,18 @@
2020#include <QDebug>
2121#include <QQuickWindow>
2222
23−#include <TouchOwnershipEvent>
24−#include <TouchRegistry>
23+#include <UbuntuGestures/private/touchownershipevent_p.h>
24+#include <UbuntuGestures/private/touchregistry_p.h>
2525
2626#if TOUCHGATE_DEBUG
2727#define ugDebug(params) qDebug().nospace() << "[TouchGate(" << (void*)this << ")] " << params
28−#include <DebugHelpers.h>
28+#include <UbuntuGestures/private/debughelpers_p.h>
2929#else // TOUCHGATE_DEBUG
3030#define ugDebug(params) ((void)0)
3131#endif // TOUCHGATE_DEBUG
3232
33+UG_USE_NAMESPACE
34+
3335TouchGate::TouchGate(QQuickItem *parent)
3436 : QQuickItem(parent)
3537{
@@ -40,7 +42,7 @@ TouchGate::TouchGate(QQuickItem *parent)
4042bool TouchGate::event(QEvent *e)
4143{
4244 if (e->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
43− touchOwnershipEvent(static_cast<TouchOwnershipEvent *>(e));
45+ touchOwnershipEvent(static_cast<TouchOwnershipEvent*>(e));
4446 return true;
4547 } else {
4648 return QQuickItem::event(e);
plugins/Ubuntu/Gestures/TouchGate.h+3−2
@@ -19,6 +19,7 @@
1919
2020#include "UbuntuGesturesQmlGlobal.h"
2121#include "TouchDispatcher.h"
22+#include <UbuntuGestures/ubuntugesturesglobal.h>
2223
2324#include <QQuickItem>
2425#include <QList>
@@ -26,7 +27,7 @@
2627
2728#define TOUCHGATE_DEBUG 0
2829
29−class TouchOwnershipEvent;
30+UG_FORWARD_DECLARE_CLASS(TouchOwnershipEvent)
3031
3132/*
3233 Blocks the passage of events until ownership over the related touch points is granted.
@@ -82,7 +83,7 @@ private:
8283 ulong timestamp;
8384 };
8485
85− void touchOwnershipEvent(TouchOwnershipEvent *event);
86+ void touchOwnershipEvent(UG_PREPEND_NAMESPACE(TouchOwnershipEvent) *event);
8687 bool isTouchPointOwned(int touchId) const;
8788 void storeTouchEvent(QTouchDevice *device,
8889 Qt::KeyboardModifiers modifiers,
plugins/Ubuntu/Gestures/TouchGestureArea.cpp+9−7
@@ -16,9 +16,9 @@
1616
1717#include "TouchGestureArea.h"
1818
19−#include <UbuntuGestures/TouchOwnershipEvent>
20−#include <UbuntuGestures/TouchRegistry>
21−#include <UbuntuGestures/UnownedTouchEvent>
19+#include <UbuntuGestures/private/touchownershipevent_p.h>
20+#include <UbuntuGestures/private/touchregistry_p.h>
21+#include <UbuntuGestures/private/unownedtouchevent_p.h>
2222// #include "TouchRegistry.h"
2323// #include "UnownedTouchEvent.h"
2424
@@ -26,6 +26,8 @@
2626#include <QStyleHints>
2727#include <private/qquickwindow_p.h>
2828
29+UG_USE_NAMESPACE
30+
2931#define TOUCHGESTUREAREA_DEBUG 0
3032
3133// TODO - understand more about why we lose touch event releases.
@@ -135,7 +137,7 @@ TouchGestureArea::TouchGestureArea(QQuickItem* parent)
135137 , m_recognitionPeriod(50)
136138 , m_releaseRejectPeriod(100)
137139{
138− setRecognitionTimer(new UbuntuGestures::Timer(this));
140+ setRecognitionTimer(new Timer(this));
139141 m_recognitionTimer->setInterval(m_recognitionPeriod);
140142 m_recognitionTimer->setSingleShot(true);
141143}
@@ -153,10 +155,10 @@ bool TouchGestureArea::event(QEvent *event)
153155{
154156 // Process unowned touch events (handles update/release for incomplete gestures)
155157 if (event->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
156− touchOwnershipEvent(static_cast<TouchOwnershipEvent *>(event));
158+ touchOwnershipEvent(static_cast<TouchOwnershipEvent*>(event));
157159 return true;
158160 } else if (event->type() == UnownedTouchEvent::unownedTouchEventType()) {
159− unownedTouchEvent(static_cast<UnownedTouchEvent *>(event)->touchEvent());
161+ unownedTouchEvent(static_cast<UnownedTouchEvent*>(event)->touchEvent());
160162 return true;
161163 }
162164
@@ -608,7 +610,7 @@ void TouchGestureArea::setInternalStatus(uint newStatus)
608610 }
609611}
610612
611−void TouchGestureArea::setRecognitionTimer(UbuntuGestures::AbstractTimer *timer)
613+void TouchGestureArea::setRecognitionTimer(AbstractTimer *timer)
612614{
613615 int interval = 0;
614616 bool timerWasRunning = false;
plugins/Ubuntu/Gestures/TouchGestureArea.h+9−8
@@ -21,10 +21,11 @@
2121
2222#include <QQuickItem>
2323
24−#include <UbuntuGestures/Timer>
24+#include <UbuntuGestures/ubuntugesturesglobal.h>
25+#include <UbuntuGestures/private/timer_p.h>
2526
26−class TouchOwnershipEvent;
27−class UnownedTouchEvent;
27+UG_FORWARD_DECLARE_CLASS(TouchOwnershipEvent)
28+UG_FORWARD_DECLARE_CLASS(UnownedTouchEvent)
2829
2930class GestureTouchPoint : public QObject
3031{
@@ -75,7 +76,7 @@ public:
7576 return *this;
7677 }
7778
78− bool operator=(const GestureTouchPoint& rhs) const {
79+ bool operator==(const GestureTouchPoint& rhs) const {
7980 if (&rhs == this) return true;
8081 return m_id == rhs.m_id &&
8182 m_pressed == rhs.m_pressed &&
@@ -83,7 +84,7 @@ public:
8384 m_y == rhs.m_y &&
8485 m_dragging == rhs.m_dragging;
8586 }
86− bool operator!=(const GestureTouchPoint& rhs) const { return !operator=(rhs); }
87+ bool operator!=(const GestureTouchPoint& rhs) const { return !operator==(rhs); }
8788
8889 void setPos(const QPointF &pos);
8990
@@ -141,7 +142,7 @@ public:
141142
142143 bool event(QEvent *e) override;
143144
144− void setRecognitionTimer(UbuntuGestures::AbstractTimer *timer);
145+ void setRecognitionTimer(UG_PREPEND_NAMESPACE(AbstractTimer) *timer);
145146
146147 int status() const;
147148 bool dragging() const;
@@ -194,7 +195,7 @@ private:
194195 void unownedTouchEvent_recognised(QTouchEvent *unownedTouchEvent);
195196 void unownedTouchEvent_rejected(QTouchEvent *unownedTouchEvent);
196197
197− void touchOwnershipEvent(TouchOwnershipEvent *event);
198+ void touchOwnershipEvent(UG_PREPEND_NAMESPACE(TouchOwnershipEvent) *event);
198199 void updateTouchPoints(QTouchEvent *event);
199200
200201 GestureTouchPoint* addTouchPoint(const QTouchEvent::TouchPoint *tp);
@@ -209,7 +210,7 @@ private:
209210 uint m_status;
210211 QSet<int> m_candidateTouches;
211212 QSet<int> m_watchedTouches;
212− UbuntuGestures::AbstractTimer *m_recognitionTimer;
213+ UG_PREPEND_NAMESPACE(AbstractTimer) *m_recognitionTimer;
213214
214215 bool m_dragging;
215216 QHash<int, GestureTouchPoint*> m_liveTouchPoints;
plugins/Ubuntu/SystemImage/CMakeLists.txt+5
@@ -1,3 +1,7 @@
1+include_directories(
2+ ${GLIB_INCLUDE_DIRS}
3+)
4+
15set(SYSTEMIMAGE_SOURCES
26 plugin.cpp
37 SystemImage.cpp
@@ -6,5 +10,6 @@ set(SYSTEMIMAGE_SOURCES
610add_library(SystemImage MODULE ${SYSTEMIMAGE_SOURCES})
711
812qt5_use_modules(SystemImage Qml DBus Core)
13+target_link_libraries(SystemImage ${GLIB_LIBRARIES})
914
1015add_unity8_plugin(Ubuntu.SystemImage 0.1 Ubuntu/SystemImage TARGETS SystemImage)
plugins/Ubuntu/SystemImage/SystemImage.cpp+127−5
@@ -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
@@ -14,20 +14,142 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−#include "SystemImage.h"
1817#include <QDBusConnection>
1918#include <QDBusPendingCall>
19+#include <QDBusReply>
20+#include <QDebug>
21+
22+#include <glib.h>
23+
24+#include "SystemImage.h"
25+
26+#define SYSTEMIMAGE_SERVICE QStringLiteral("com.canonical.SystemImage")
27+#define SYSTEMIMAGE_PATH QStringLiteral("/Service")
28+#define SYSTEMIMAGE_IFACE QStringLiteral("com.canonical.SystemImage")
29+
30+Q_LOGGING_CATEGORY(SYSTEMIMAGEPLUGIN, "unity8.systemimage", QtWarningMsg)
31+
32+#define DEBUG_MSG qCDebug(SYSTEMIMAGEPLUGIN).nospace().noquote() << Q_FUNC_INFO
33+#define WARNING_MSG qCWarning(SYSTEMIMAGEPLUGIN).nospace().noquote() << Q_FUNC_INFO
2034
2135SystemImage::SystemImage(QObject *parent)
2236 : QObject(parent)
2337{
38+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("UpdateAvailableStatus"),
39+ this, SLOT(onUpdateAvailableStatus(bool,bool,QString,int,QString,QString)));
40+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("UpdateDownloaded"),
41+ this, SLOT(onUpdateDownloaded()));
42+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("UpdateFailed"),
43+ this, SLOT(onUpdateFailed(int,QString)));
44+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("Applied"),
45+ this, SLOT(onUpdateApplied(bool)));
46+ QDBusConnection::systemBus().connect(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE, QStringLiteral("Rebooting"),
47+ this, SLOT(onRebooting(bool)));
48+}
49+
50+void SystemImage::checkForUpdate()
51+{
52+ DEBUG_MSG << "Checking for update";
53+ const QDBusMessage msg = QDBusMessage::createMethodCall(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE,
54+ QStringLiteral("CheckForUpdate"));
55+ QDBusConnection::systemBus().asyncCall(msg);
56+}
57+
58+void SystemImage::applyUpdate()
59+{
60+ DEBUG_MSG << "Applying update";
61+ setUpdateApplying(true);
62+
63+ const QDBusMessage msg = QDBusMessage::createMethodCall(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE,
64+ QStringLiteral("ApplyUpdate"));
65+ QDBusConnection::systemBus().asyncCall(msg);
2466}
2567
2668void SystemImage::factoryReset()
2769{
28− const QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("com.canonical.SystemImage"),
29− QStringLiteral("/Service"),
30− QStringLiteral("com.canonical.SystemImage"),
70+ const QDBusMessage msg = QDBusMessage::createMethodCall(SYSTEMIMAGE_SERVICE, SYSTEMIMAGE_PATH, SYSTEMIMAGE_IFACE,
3171 QStringLiteral("FactoryReset"));
3272 QDBusConnection::systemBus().asyncCall(msg);
3373}
74+
75+void SystemImage::onUpdateAvailableStatus(bool is_available, bool downloading, const QString &available_version, int update_size,
76+ const QString &last_update_date, const QString &error_reason)
77+{
78+ DEBUG_MSG << "A new update is " << (is_available ? "" : "NOT") << "available";
79+
80+ if (is_available == m_updateAvailable) {
81+ return;
82+ }
83+
84+ m_updateAvailable = is_available;
85+ m_downloading = downloading;
86+ m_availableVersion = available_version;
87+ m_updateSize = formatSize(update_size);
88+ m_lastUpdateDate = last_update_date;
89+ m_errorReason = error_reason;
90+ Q_EMIT updateAvailableStatus();
91+
92+ DEBUG_MSG << "Downloading: " << downloading << ", version: " << available_version << ", last update: " << last_update_date <<
93+ ", size: " << m_updateSize;
94+}
95+
96+void SystemImage::onUpdateDownloaded()
97+{
98+ DEBUG_MSG << "Update downloaded";
99+
100+ m_downloaded = true;
101+ Q_EMIT updateDownloadedChanged();
102+}
103+
104+void SystemImage::onUpdateFailed(int /*consecutive_failure_count*/, const QString &last_reason)
105+{
106+ WARNING_MSG << "System Update failed: " << last_reason;
107+ setUpdateApplying(false);
108+}
109+
110+void SystemImage::onUpdateApplied(bool applied)
111+{
112+ DEBUG_MSG << "System Update applied with status: " << applied;
113+ setUpdateApplying(false);
114+ if (applied) {
115+ resetUpdateStatus();
116+ Q_EMIT updateAvailableStatus();
117+ }
118+}
119+
120+void SystemImage::onRebooting(bool status)
121+{
122+ setUpdateApplying(false);
123+ DEBUG_MSG << "Rebooting: " << status;
124+}
125+
126+void SystemImage::setUpdateApplying(bool status)
127+{
128+ if (status != m_updateApplying) {
129+ m_updateApplying = status;
130+ Q_EMIT updateApplyingChanged();
131+ }
132+}
133+
134+void SystemImage::resetUpdateStatus()
135+{
136+ m_updateAvailable = false;
137+ m_updateApplying = false;
138+ m_downloading = false;
139+ m_downloaded = false;
140+ m_availableVersion.clear();
141+ m_updateSize.clear();
142+ m_lastUpdateDate.clear();
143+ m_errorReason.clear();
144+}
145+
146+QString SystemImage::formatSize(quint64 size) const
147+{
148+ guint64 g_size = size;
149+
150+ gchar * formatted_size = g_format_size(g_size);
151+ QString q_formatted_size = QString::fromLocal8Bit(formatted_size);
152+ g_free(formatted_size);
153+
154+ return q_formatted_size;
155+}
plugins/Ubuntu/SystemImage/SystemImage.h+52−2
@@ -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
@@ -18,17 +18,67 @@
1818#define SYSTEMIMAGE_H
1919
2020#include <QObject>
21+#include <QLoggingCategory>
22+
23+Q_DECLARE_LOGGING_CATEGORY(SYSTEMIMAGEPLUGIN)
2124
2225class SystemImage : public QObject
2326{
2427 Q_OBJECT
2528 Q_DISABLE_COPY(SystemImage)
2629
30+ Q_PROPERTY(bool updateAvailable READ updateAvailable NOTIFY updateAvailableStatus)
31+ Q_PROPERTY(bool updateDownloading READ updateDownloading NOTIFY updateAvailableStatus)
32+ Q_PROPERTY(QString availableVersion READ availableVersion NOTIFY updateAvailableStatus)
33+ Q_PROPERTY(QString updateSize READ updateSize NOTIFY updateAvailableStatus)
34+ Q_PROPERTY(bool updateApplying READ updateApplying NOTIFY updateApplyingChanged)
35+ Q_PROPERTY(bool updateDownloaded READ updateDownloaded NOTIFY updateDownloadedChanged)
36+
2737public:
28− explicit SystemImage(QObject *parent = 0);
38+ explicit SystemImage(QObject *parent = nullptr);
2939 ~SystemImage() = default;
3040
41+ bool updateAvailable() const { return m_updateAvailable; }
42+ bool updateDownloading() const { return m_downloading; }
43+ QString availableVersion() const { return m_availableVersion; }
44+ QString updateSize() const { return m_updateSize; }
45+ bool updateApplying() const { return m_updateApplying; }
46+ bool updateDownloaded() const { return m_downloaded; }
47+
48+public Q_SLOTS:
49+ Q_INVOKABLE void checkForUpdate();
50+ Q_INVOKABLE void applyUpdate();
3151 Q_INVOKABLE void factoryReset();
52+
53+private Q_SLOTS:
54+ void onUpdateAvailableStatus(bool is_available, bool updateDownloading, const QString &available_version,
55+ int update_size, const QString &last_update_date, const QString &error_reason);
56+ void onUpdateDownloaded();
57+ void onUpdateFailed(int consecutive_failure_count, const QString & last_reason);
58+ void onUpdateApplied(bool applied);
59+ void onRebooting(bool status);
60+
61+Q_SIGNALS:
62+ void updateAvailableStatus();
63+ void updateDownloadedChanged();
64+ void updateApplyingChanged();
65+
66+private Q_SLOTS:
67+ void setUpdateApplying(bool status);
68+
69+private:
70+ void resetUpdateStatus();
71+ QString formatSize(quint64 size) const;
72+
73+private:
74+ bool m_updateAvailable = false;
75+ bool m_updateApplying = false;
76+ bool m_downloading = false;
77+ bool m_downloaded = false;
78+ QString m_availableVersion;
79+ QString m_updateSize;
80+ QString m_lastUpdateDate;
81+ QString m_errorReason;
3282};
3383
3484#endif // SYSTEMIMAGE_H
plugins/Ubuntu/SystemImage/plugin.cpp+3−9
@@ -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
@@ -19,16 +19,10 @@
1919
2020#include <QtQml>
2121
22−static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
23−{
24− Q_UNUSED(engine)
25− Q_UNUSED(scriptEngine)
26− return new SystemImage();
27−}
28−
2922void BackendPlugin::registerTypes(const char *uri)
3023{
3124 Q_ASSERT(uri == QLatin1String("Ubuntu.SystemImage"));
3225
33− qmlRegisterSingletonType<SystemImage>(uri, 0, 1, "SystemImage", service_provider);
26+ qmlRegisterSingletonType<SystemImage>(uri, 0, 1, "SystemImage",
27+ [](QQmlEngine*, QJSEngine*) -> QObject* { return new SystemImage; });
3428}
plugins/Ubuntu/SystemImage/plugin.h+1−1
@@ -22,7 +22,7 @@
2222class BackendPlugin : public QQmlExtensionPlugin
2323{
2424 Q_OBJECT
25− Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
25+ Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
2626
2727public:
2828 void registerTypes(const char *uri) override;
plugins/Unity/Indicators/CMakeLists.txt+4
@@ -6,6 +6,10 @@ find_package(Qt5Quick REQUIRED)
66include_directories(
77 ${CMAKE_CURRENT_SOURCE_DIR}
88 ${CMAKE_CURRENT_BINARY_DIR}
9+)
10+
11+include_directories(
12+ SYSTEM
913 ${GLIB_INCLUDE_DIRS}
1014 ${GIO_INCLUDE_DIRS}
1115 ${QMENUMODEL_INCLUDE_DIRS}
plugins/Unity/Indicators/actionrootstate.cpp+1−1
@@ -44,7 +44,7 @@ void ActionRootState::setActionGroup(QDBusActionGroup *actionGroup)
4444 connect(m_actionGroup, &QDBusActionGroup::statusChanged, this, [&](bool) { updateActionState(); });
4545 connect(m_actionGroup, &QDBusActionGroup::actionAppear, this, [&](const QString&) { updateActionState(); });
4646 connect(m_actionGroup, &QDBusActionGroup::actionVanish, this, [&](const QString&) { updateActionState(); });
47− connect(m_actionGroup, &QDBusActionGroup::actionStateChanged, this, [&](QVariant) { updateActionState(); });
47+ connect(m_actionGroup, &QDBusActionGroup::actionStateChanged, this, [&](const QVariant&) { updateActionState(); });
4848
4949 connect(m_actionGroup, &QObject::destroyed, this, [&](QObject*) { updateActionState(); });
5050 }
plugins/Unity/Indicators/indicatorsmanager.cpp+4−6
@@ -114,10 +114,6 @@ void IndicatorsManager::loadFile(const QFileInfo& file_info)
114114 QSettings indicator_settings(file_info.absoluteFilePath(), QSettings::IniFormat, this);
115115 const QString name = indicator_settings.value(QStringLiteral("Indicator Service/Name")).toString();
116116
117− if (m_platform.isPC() && name == QLatin1String("indicator-keyboard")) {
118− return; // convergence: skip this indicator until it works in Mir
119− }
120−
121117 auto iter = m_indicatorsData.constFind(name);
122118 if (iter != m_indicatorsData.constEnd())
123119 {
@@ -285,13 +281,15 @@ Indicator::Ptr IndicatorsManager::indicator(const QString& indicator_name)
285281
286282 // convergence:
287283 // 1) enable session indicator
288− // 2) on a PC, switch the battery/power indicator to desktop mode,
284+ // 2) enable keyboard indicator
285+ // 3) on a PC, switch the battery/power indicator to desktop mode,
289286 // can't control brightness for now and phone-on-desktop broken (FIXME)
290287 //
291288 // The rest of the indicators respect their default profile (which is "phone", even on desktop PCs)
292289 if ((new_indicator->identifier() == QStringLiteral("indicator-session"))
290+ || new_indicator->identifier() == QStringLiteral("indicator-keyboard")
293291 || (new_indicator->identifier() == QStringLiteral("indicator-power") && m_platform.isPC())) {
294− new_indicator->setProfile(QStringLiteral("desktop"));
292+ new_indicator->setProfile(QString(m_profile).replace(QStringLiteral("phone"), QStringLiteral("desktop")));
295293 } else {
296294 new_indicator->setProfile(m_profile);
297295 }
plugins/Unity/Launcher/launchermodel.cpp+1−1
@@ -365,7 +365,7 @@ void LauncherModel::countVisibleChanged(const QString &appId, bool countVisible)
365365 if (idx >= 0) {
366366 LauncherItem *item = m_list.at(idx);
367367 item->setCountVisible(countVisible);
368− QVector<int> changedRoles = {RoleCount};
368+ QVector<int> changedRoles = {RoleCountVisible};
369369 if (countVisible && !item->alerting() && !item->focused()) {
370370 changedRoles << RoleAlerting;
371371 item->setAlerting(true);
plugins/Unity/Session/CMakeLists.txt+2
@@ -6,6 +6,8 @@ include_directories(
66 ${libunity8-private_SOURCE_DIR}
77)
88
9+add_definitions(-DSM_BUSNAME=systemBus)
10+
911set(QMLSESSIONPLUGIN_SRC
1012 plugin.cpp
1113 dbusunitysessionservice.cpp
plugins/Unity/Session/dbusunitysessionservice.cpp+50−18
@@ -64,19 +64,19 @@ public:
6464 QStringLiteral("GetSessionByPID"));
6565 msg << (quint32) getpid();
6666
67− QDBusReply<QDBusObjectPath> reply = QDBusConnection::systemBus().call(msg);
67+ QDBusReply<QDBusObjectPath> reply = QDBusConnection::SM_BUSNAME().call(msg);
6868 if (reply.isValid()) {
6969 logindSessionPath = reply.value().path();
7070
7171 // start watching the Active property
72− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, logindSessionPath, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("PropertiesChanged"),
73− this, SLOT(onPropertiesChanged(QString,QVariantMap,QStringList)));
72+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, logindSessionPath, QStringLiteral("org.freedesktop.DBus.Properties"), QStringLiteral("PropertiesChanged"),
73+ this, SLOT(onPropertiesChanged(QString,QVariantMap,QStringList)));
7474
7575 setupSystemdInhibition();
7676
7777 // re-enable the inhibition upon resume from sleep
78− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_IFACE, QStringLiteral("PrepareForSleep"),
79− this, SLOT(onResuming(bool)));
78+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_IFACE, QStringLiteral("PrepareForSleep"),
79+ this, SLOT(onResuming(bool)));
8080 } else {
8181 qWarning() << "Failed to get logind session path" << reply.error().message();
8282 }
@@ -96,7 +96,7 @@ public:
9696 msg << "Unity8 handles power events"; // why
9797 msg << "block"; // mode
9898
99− QDBusPendingCall pendingCall = QDBusConnection::systemBus().asyncCall(msg);
99+ QDBusPendingCall pendingCall = QDBusConnection::SM_BUSNAME().asyncCall(msg);
100100 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
101101 connect(watcher, &QDBusPendingCallWatcher::finished,
102102 this, [this](QDBusPendingCallWatcher* watcher) {
@@ -114,7 +114,7 @@ public:
114114 bool checkLogin1Call(const QString &method) const
115115 {
116116 QDBusMessage msg = QDBusMessage::createMethodCall(LOGIN1_SERVICE, LOGIN1_PATH, LOGIN1_IFACE, method);
117− QDBusReply<QString> reply = QDBusConnection::systemBus().call(msg);
117+ QDBusReply<QString> reply = QDBusConnection::SM_BUSNAME().call(msg);
118118 return reply.isValid() && (reply == QStringLiteral("yes") || reply == QStringLiteral("challenge"));
119119 }
120120
@@ -125,7 +125,7 @@ public:
125125 LOGIN1_IFACE,
126126 method);
127127 msg.setArguments(args);
128− QDBusConnection::systemBus().asyncCall(msg);
128+ QDBusConnection::SM_BUSNAME().asyncCall(msg);
129129 }
130130
131131 void setActive(bool active)
@@ -157,7 +157,7 @@ public:
157157 msg << LOGIN1_SESSION_IFACE;
158158 msg << ACTIVE_KEY;
159159
160− QDBusPendingCall pendingCall = QDBusConnection::systemBus().asyncCall(msg);
160+ QDBusPendingCall pendingCall = QDBusConnection::SM_BUSNAME().asyncCall(msg);
161161 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
162162 connect(watcher, &QDBusPendingCallWatcher::finished,
163163 this, [this](QDBusPendingCallWatcher* watcher) {
@@ -191,7 +191,7 @@ public:
191191 msg << LOGIN1_SESSION_IFACE;
192192 msg << IDLE_SINCE_KEY;
193193
194− QDBusReply<QVariant> reply = QDBusConnection::systemBus().call(msg);
194+ QDBusReply<QVariant> reply = QDBusConnection::SM_BUSNAME().call(msg);
195195 if (reply.isValid()) {
196196 return reply.value().value<quint64>();
197197 } else {
@@ -208,7 +208,7 @@ public:
208208 LOGIN1_SESSION_IFACE,
209209 QStringLiteral("SetIdleHint"));
210210 msg << idle;
211− QDBusConnection::systemBus().asyncCall(msg);
211+ QDBusConnection::SM_BUSNAME().asyncCall(msg);
212212 }
213213
214214private Q_SLOTS:
@@ -243,11 +243,11 @@ DBusUnitySessionService::DBusUnitySessionService()
243243 : UnityDBusObject(QStringLiteral("/com/canonical/Unity/Session"), QStringLiteral("com.canonical.Unity"))
244244{
245245 if (!d->logindSessionPath.isEmpty()) {
246− // connect our Lock() slot to the logind's session Lock() signal
247− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Lock"), this, SLOT(Lock()));
246+ // connect our PromptLock() slot to the logind's session Lock() signal
247+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Lock"), this, SLOT(PromptLock()));
248248 // ... and our Unlocked() signal to the logind's session Unlock() signal
249249 // (lightdm handles the unlocking by calling logind's Unlock method which in turn emits this signal we connect to)
250− QDBusConnection::systemBus().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Unlock"), this, SIGNAL(Unlocked()));
250+ QDBusConnection::SM_BUSNAME().connect(LOGIN1_SERVICE, d->logindSessionPath, LOGIN1_SESSION_IFACE, QStringLiteral("Unlock"), this, SLOT(doUnlock()));
251251 connect(d, &DBusUnitySessionServicePrivate::prepareForSleep, this, &DBusUnitySessionService::PromptLock);
252252 } else {
253253 qWarning() << "Failed to connect to logind's session Lock/Unlock signals";
@@ -332,15 +332,41 @@ QString DBusUnitySessionService::HostName() const
332332
333333void DBusUnitySessionService::PromptLock()
334334{
335+ // Prompt as in quick. No locking animation needed. Usually used by
336+ // indicator-session in combination with a switch to greeter or other
337+ // user session.
335338 Q_EMIT LockRequested();
336339 Q_EMIT lockRequested();
337340}
338341
339342void DBusUnitySessionService::Lock()
340343{
341− // signal u8 to show the lockscreen/greeter
344+ // Normal lock (with animation, as compared to PromptLock above). Usually
345+ // used by indicator-session to lock the session in place.
346+ //
347+ // FIXME: We also -- as a bit of a hack around indicator-session not fully
348+ // supporting a phone profile -- switch to greeter here. The unity7 flow is
349+ // that the user chooses "Lock/Switch" from the indicator, and then can go
350+ // to greeter by selecting "Switch" again from the indicator, which is now
351+ // exposed by the desktop_lockscreen profile. But since in unity8, we try
352+ // to expose most things all the time, we don't use the separate lockscreen
353+ // profile. Instead, we just go directly to the greeter the first time
354+ // a user presses "Lock/Switch". This isn't what this DBus call is
355+ // supposed to do, but we can live with it for now.
356+ //
357+ // Here's a bug about indicator-session growing a converged Touch profile:
358+ // https://launchpad.net/bugs/1557716
359+ //
360+ // We only do this here in the animated-lock call because that's the only
361+ // time the indicator locks without also asking the display manager to
362+ // switch sessions on us. And since we are switching screens, we also
363+ // don't bother respecting the animate request, simply doing a PromptLock.
342364 PromptLock();
365+ switchToGreeter();
366+}
343367
368+void DBusUnitySessionService::switchToGreeter()
369+{
344370 // lock the session using the org.freedesktop.DisplayManager system DBUS service
345371 const QString sessionPath = QString::fromLocal8Bit(qgetenv("XDG_SESSION_PATH"));
346372 QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DisplayManager"),
@@ -348,7 +374,7 @@ void DBusUnitySessionService::Lock()
348374 QStringLiteral("org.freedesktop.DisplayManager.Session"),
349375 QStringLiteral("Lock"));
350376
351− QDBusPendingCall pendingCall = QDBusConnection::systemBus().asyncCall(msg);
377+ QDBusPendingCall pendingCall = QDBusConnection::SM_BUSNAME().asyncCall(msg);
352378 QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingCall, this);
353379 connect(watcher, &QDBusPendingCallWatcher::finished,
354380 this, [this](QDBusPendingCallWatcher* watcher) {
@@ -365,6 +391,12 @@ void DBusUnitySessionService::Lock()
365391 });
366392}
367393
394+void DBusUnitySessionService::doUnlock()
395+{
396+ Q_EMIT Unlocked();
397+ Q_EMIT unlocked();
398+}
399+
368400bool DBusUnitySessionService::IsLocked() const
369401{
370402 return !d->isSessionActive;
@@ -486,7 +518,7 @@ void DBusGnomeScreensaverWrapper::SetActive(bool lock)
486518
487519void DBusGnomeScreensaverWrapper::Lock()
488520{
489− performAsyncUnityCall(QStringLiteral("Lock"));
521+ performAsyncUnityCall(QStringLiteral("PromptLock"));
490522}
491523
492524quint32 DBusGnomeScreensaverWrapper::GetActiveTime() const
@@ -523,7 +555,7 @@ bool DBusScreensaverWrapper::SetActive(bool lock)
523555
524556void DBusScreensaverWrapper::Lock()
525557{
526− performAsyncUnityCall(QStringLiteral("Lock"));
558+ performAsyncUnityCall(QStringLiteral("PromptLock"));
527559}
528560
529561quint32 DBusScreensaverWrapper::GetActiveTime() const
plugins/Unity/Session/dbusunitysessionservice.h+7
@@ -106,6 +106,7 @@ Q_SIGNALS:
106106 * Emitted after the session has been unlocked.
107107 */
108108 Q_SCRIPTABLE void Unlocked();
109+ void unlocked();
109110
110111public Q_SLOTS:
111112 /**
@@ -258,6 +259,12 @@ public Q_SLOTS:
258259 * @return whether the session is currently locked
259260 */
260261 Q_SCRIPTABLE bool IsLocked() const;
262+
263+private Q_SLOTS:
264+ void doUnlock();
265+
266+private:
267+ void switchToGreeter();
261268};
262269
263270class DBusGnomeSessionManagerWrapper : public UnityDBusObject
plugins/Utils/CMakeLists.txt+6
@@ -1,6 +1,10 @@
11include_directories(
22 ${CMAKE_CURRENT_SOURCE_DIR}
33 ${CMAKE_CURRENT_BINARY_DIR}
4+)
5+
6+include_directories(
7+ SYSTEM
48 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
59 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
610 ${GIO_INCLUDE_DIRS}
@@ -9,6 +13,7 @@ include_directories(
913set(QMLPLUGIN_SRC
1014 activefocuslogger.cpp
1115 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
16+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
1217 applicationsfiltermodel.cpp
1318 constants.cpp
1419 WindowInputMonitor.cpp
@@ -24,6 +29,7 @@ set(QMLPLUGIN_SRC
2429 inputeventgenerator.cpp
2530 deviceconfigparser.cpp
2631 globalfunctions.cpp
32+ URLDispatcher.cpp
2733 plugin.cpp
2834 )
2935
plugins/Utils/URLDispatcher.cppnew file+77
@@ -0,0 +1,77 @@
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 "URLDispatcher.h"
18+
19+#include <QDBusConnection>
20+
21+class URLDispatcherInterface : public QObject
22+{
23+ Q_OBJECT
24+ Q_CLASSINFO("D-Bus Interface", "com.canonical.URLDispatcher")
25+
26+public:
27+ explicit URLDispatcherInterface(URLDispatcher *parent);
28+
29+ Q_SCRIPTABLE void DispatchURL(const QString &url, const QString &package);
30+};
31+
32+URLDispatcherInterface::URLDispatcherInterface(URLDispatcher *parent)
33+ : QObject(parent)
34+{
35+}
36+
37+void URLDispatcherInterface::DispatchURL(const QString &url, const QString &package)
38+{
39+ Q_UNUSED(package);
40+ Q_EMIT static_cast<URLDispatcher *>(parent())->urlRequested(url);
41+}
42+
43+URLDispatcher::URLDispatcher(QObject *parent)
44+ : QObject(parent)
45+ , m_dispatcher(nullptr)
46+{
47+}
48+
49+bool URLDispatcher::active() const
50+{
51+ return m_dispatcher != nullptr;
52+}
53+
54+void URLDispatcher::setActive(bool value)
55+{
56+ if (value == active())
57+ return;
58+
59+ QDBusConnection connection = QDBusConnection::sessionBus();
60+
61+ if (value) {
62+ URLDispatcherInterface *dispatcher = new URLDispatcherInterface(this);
63+ connection.registerObject(QStringLiteral("/com/canonical/URLDispatcher"),
64+ dispatcher,
65+ QDBusConnection::ExportScriptableContents);
66+ connection.registerService(QStringLiteral("com.canonical.URLDispatcher"));
67+ m_dispatcher = dispatcher;
68+ } else {
69+ connection.unregisterService(QStringLiteral("com.canonical.URLDispatcher"));
70+ delete m_dispatcher;
71+ m_dispatcher = nullptr;
72+ }
73+
74+ Q_EMIT activeChanged();
75+}
76+
77+#include "URLDispatcher.moc"
plugins/Utils/URLDispatcher.hnew file+47
@@ -0,0 +1,47 @@
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 UNITY_URLDISPATCHER_H
18+#define UNITY_URLDISPATCHER_H
19+
20+#include <QObject>
21+#include <QString>
22+
23+// This class manages our url-dispatcher interception. We intercept
24+// url-dispatcher because rather than spawning the handler for the URL
25+// in our own session, we want to notify the user session to do it for us
26+// (and start an unlock in the process).
27+
28+class URLDispatcher : public QObject
29+{
30+ Q_OBJECT
31+ Q_PROPERTY(bool active READ active WRITE setActive NOTIFY activeChanged)
32+
33+public:
34+ explicit URLDispatcher(QObject *parent=0);
35+
36+ bool active() const;
37+ void setActive(bool active);
38+
39+Q_SIGNALS:
40+ void urlRequested(const QString &url);
41+ void activeChanged();
42+
43+private:
44+ QObject *m_dispatcher;
45+};
46+
47+#endif
plugins/Utils/deviceconfigparser.cpp+1−1
@@ -26,7 +26,7 @@ DeviceConfigParser::DeviceConfigParser(QObject *parent): QObject(parent)
2626 // Local files have highest priority
2727 QString path;
2828 Q_FOREACH (const QString &standardPath, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) {
29− if (QFileInfo(standardPath + "/devices.conf").exists()) {
29+ if (QFileInfo::exists(standardPath + "/devices.conf")) {
3030 path = standardPath + "/devices.conf";
3131 break;
3232 }
plugins/Utils/globalfunctions.cpp+1−4
@@ -16,11 +16,8 @@
1616
1717#include "globalfunctions.h"
1818
19−#pragma GCC diagnostic push
20−#pragma GCC diagnostic ignored "-pedantic"
21−#include <private/qquickitem_p.h>
22−#pragma GCC diagnostic pop
2319#include <QQmlEngine>
20+#include <private/qquickitem_p.h>
2421
2522GlobalFunctions::GlobalFunctions(QObject *parent)
2623 : QObject(parent)
plugins/Utils/plugin.cpp+2
@@ -38,6 +38,7 @@
3838#include "inputeventgenerator.h"
3939#include "deviceconfigparser.h"
4040#include "globalfunctions.h"
41+#include "URLDispatcher.h"
4142
4243static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
4344{
@@ -80,4 +81,5 @@ void UtilsPlugin::registerTypes(const char *uri)
8081 qmlRegisterType<InputEventGenerator>(uri, 0, 1, "InputEventGenerator");
8182 qmlRegisterType<DeviceConfigParser>(uri, 0, 1, "DeviceConfigParser");
8283 qmlRegisterSingletonType<GlobalFunctions>(uri, 0, 1, "Functions", createGlobalFunctions);
84+ qmlRegisterType<URLDispatcher>(uri, 0, 1, "URLDispatcher");
8385}
plugins/Utils/timezoneFormatter.cpp+1−1
@@ -39,7 +39,7 @@ QString TimezoneFormatter::currentTimeInTimezoneWithAbbrev(const QVariant &tzId)
3939 QTimeZone tz(tzId.toByteArray());
4040 if (tz.isValid()) {
4141 const QDateTime now = QDateTime::currentDateTime().toTimeZone(tz);
42− return QStringLiteral("%1 %2").arg(now.time().toString(QStringLiteral("h:mm"))).arg(tz.abbreviation(now));
42+ return QStringLiteral("%1 %2").arg(now.time().toString(QStringLiteral("h:mm")), tz.abbreviation(now));
4343 }
4444 return QString();
4545}
plugins/Utils/windowstatestorage.cpp+10−7
@@ -28,7 +28,9 @@
2828QMutex WindowStateStorage::s_mutex;
2929
3030inline QString sanitiseString(QString string) {
31− return string.remove("\"").remove("'").remove("\\");
31+ return string.remove(QLatin1Char('\"'))
32+ .remove(QLatin1Char('\''))
33+ .remove(QLatin1Char('\\'));
3234}
3335
3436WindowStateStorage::WindowStateStorage(QObject *parent):
@@ -74,7 +76,7 @@ WindowStateStorage::WindowState WindowStateStorage::getState(const QString &wind
7476 return (WindowState)query.value(QStringLiteral("state")).toInt();
7577}
7678
77−void WindowStateStorage::saveGeometry(const QString &windowId, const QRect rect)
79+void WindowStateStorage::saveGeometry(const QString &windowId, const QRect &rect)
7880{
7981 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO geometry (windowId, x, y, width, height) values ('%1', '%2', '%3', '%4', '%5');")
8082 .arg(sanitiseString(windowId))
@@ -90,12 +92,12 @@ void WindowStateStorage::saveStage(const QString &appId, int stage)
9092{
9193 const QString queryString = QStringLiteral("INSERT OR REPLACE INTO stage (appId, stage) values ('%1', '%2');")
9294 .arg(sanitiseString(appId))
93− .arg((int)stage);
95+ .arg(stage);
9496
9597 saveValue(queryString);
9698}
9799
98−int WindowStateStorage::getStage(const QString &appId) const
100+int WindowStateStorage::getStage(const QString &appId, int defaultValue) const
99101{
100102 const QString queryString = QStringLiteral("SELECT * FROM stage WHERE appId = '%1';")
101103 .arg(sanitiseString(appId));
@@ -103,7 +105,7 @@ int WindowStateStorage::getStage(const QString &appId) const
103105 QSqlQuery query = getValue(queryString);
104106
105107 if (!query.first()) {
106− return unity::shell::application::ApplicationInfoInterface::MainStage;
108+ return defaultValue;
107109 }
108110 return query.value("stage").toInt();
109111}
@@ -121,7 +123,7 @@ void WindowStateStorage::executeAsyncQuery(const QString &queryString)
121123 }
122124}
123125
124−QRect WindowStateStorage::getGeometry(const QString &windowId, const QRect defaultValue) const
126+QRect WindowStateStorage::getGeometry(const QString &windowId, const QRect &defaultValue) const
125127{
126128 QString queryString = QStringLiteral("SELECT * FROM geometry WHERE windowId = '%1';")
127129 .arg(sanitiseString(windowId));
@@ -131,7 +133,8 @@ QRect WindowStateStorage::getGeometry(const QString &windowId, const QRect defau
131133 if (!query.first()) {
132134 return defaultValue;
133135 }
134− return QRect(query.value(QStringLiteral("x")).toInt(), query.value(QStringLiteral("y")).toInt(), query.value(QStringLiteral("width")).toInt(), query.value(QStringLiteral("height")).toInt());
136+ return QRect(query.value(QStringLiteral("x")).toInt(), query.value(QStringLiteral("y")).toInt(),
137+ query.value(QStringLiteral("width")).toInt(), query.value(QStringLiteral("height")).toInt());
135138}
136139
137140void WindowStateStorage::initdb()
plugins/Utils/windowstatestorage.h+9−4
@@ -32,7 +32,12 @@ public:
3232 WindowStateMaximizedLeft = 1 << 4,
3333 WindowStateMaximizedRight = 1 << 5,
3434 WindowStateMaximizedHorizontally = 1 << 6,
35− WindowStateMaximizedVertically = 1 << 7
35+ WindowStateMaximizedVertically = 1 << 7,
36+ WindowStateMaximizedTopLeft = 1 << 8,
37+ WindowStateMaximizedTopRight = 1 << 9,
38+ WindowStateMaximizedBottomLeft = 1 << 10,
39+ WindowStateMaximizedBottomRight = 1 << 11,
40+ WindowStateRestored = 1 << 12
3641 };
3742 Q_DECLARE_FLAGS(WindowStates, WindowState)
3843#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0))
@@ -45,11 +50,11 @@ public:
4550 Q_INVOKABLE void saveState(const QString &windowId, WindowState state);
4651 Q_INVOKABLE WindowState getState(const QString &windowId, WindowState defaultValue) const;
4752
48− Q_INVOKABLE void saveGeometry(const QString &windowId, const QRect rect);
49− Q_INVOKABLE QRect getGeometry(const QString &windowId, const QRect defaultValue) const;
53+ Q_INVOKABLE void saveGeometry(const QString &windowId, const QRect &rect);
54+ Q_INVOKABLE QRect getGeometry(const QString &windowId, const QRect &defaultValue) const;
5055
5156 Q_INVOKABLE void saveStage(const QString &appId, int stage);
52− Q_INVOKABLE int getStage(const QString &appId) const;
57+ Q_INVOKABLE int getStage(const QString &appId, int defaultValue) const;
5358
5459private:
5560 void initdb();
plugins/WindowManager/CMakeLists.txt+1
@@ -4,6 +4,7 @@ set(WINDOWMANAGER_SRC
44 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
55 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h
66 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h
7+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceListInterface.h
78 )
89
910add_library(windowmanager-qml SHARED ${WINDOWMANAGER_SRC})
plugins/Wizard/CMakeLists.txt+6−3
@@ -1,4 +1,6 @@
1−include_directories(${GLIB_INCLUDE_DIRS} ${GEONAMES_INCLUDE_DIRS})
1+pkg_search_module(GD3 REQUIRED gnome-desktop-3.0)
2+
3+include_directories(SYSTEM ${GD3_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS} ${GEONAMES_INCLUDE_DIRS})
24
35add_library(Wizard-qml MODULE
46 plugin.cpp
@@ -7,10 +9,11 @@ add_library(Wizard-qml MODULE
79 LocalePlugin.cpp
810 timezonemodel.cpp
911 Status.cpp
12+ keyboardLayoutsModel.cpp
1013)
1114
12−qt5_use_modules(Wizard-qml DBus Qml Concurrent)
13−target_link_libraries(Wizard-qml ${GLIB_LDFLAGS} ${GEONAMES_LDFLAGS})
15+qt5_use_modules(Wizard-qml DBus Qml)
16+target_link_libraries(Wizard-qml ${GD3_LDFLAGS} ${GLIB_LDFLAGS} ${GEONAMES_LDFLAGS})
1417add_unity8_plugin(Wizard 0.1 Wizard TARGETS Wizard-qml)
1518
1619set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
plugins/Wizard/PageList.cpp+16−1
@@ -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 it
55 * under the terms of the GNU General Public License version 3, as published
@@ -34,6 +34,7 @@
3434#include <QDir>
3535#include <QSet>
3636#include <QStandardPaths>
37+#include <QSettings>
3738
3839PageList::PageList(QObject *parent)
3940 : QObject(parent),
@@ -66,6 +67,20 @@ PageList::PageList(QObject *parent)
6667 Q_FOREACH(const QString &page, disabledPages) {
6768 m_pages.remove(page);
6869 }
70+
71+ // If there was a system update installed, skip until the last page to just greet the user
72+ QSettings settings;
73+ if (settings.value(QStringLiteral("Wizard/SkipUntilFinishedPage")).toBool()) {
74+ const QString lastPage = m_pages.lastKey();
75+ Q_FOREACH(const QString &page, m_pages.keys()) {
76+ if (Q_UNLIKELY(page != lastPage)) {
77+ m_pages.remove(page);
78+ }
79+ }
80+
81+ // ... and reset it again for the next run
82+ settings.remove(QStringLiteral("Wizard/SkipUntilFinishedPage"));
83+ }
6984}
7085
7186QStringList PageList::entries() const
plugins/Wizard/System.cpp+10−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014-2015 Canonical Ltd.
2+ * Copyright (C) 2014-2016 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
@@ -26,6 +26,7 @@
2626#include <QMap>
2727#include <QProcess>
2828#include <QDebug>
29+#include <QSettings>
2930
3031System::System()
3132 : QObject()
@@ -105,7 +106,15 @@ void System::updateSessionLocale(const QString &locale)
105106 initctl stop scope-registry; \
106107 initctl stop smart-scopes-proxy; \
107108 initctl emit --no-wait indicator-services-start; \
109+ initctl restart --no-wait ubuntu-location-service-trust-stored; \
108110 initctl restart --no-wait maliit-server; \
109111 initctl restart --no-wait indicator-messages; \
110112 initctl restart --no-wait unity8-dash\""));
111113}
114+
115+void System::skipUntilFinishedPage()
116+{
117+ QSettings settings;
118+ settings.setValue(QStringLiteral("Wizard/SkipUntilFinishedPage"), true);
119+ settings.sync();
120+}
plugins/Wizard/System.h+5−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014-2015 Canonical Ltd.
2+ * Copyright (C) 2014-2016 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
@@ -35,6 +35,10 @@ public:
3535
3636public Q_SLOTS:
3737 void updateSessionLocale(const QString &locale);
38+ /**
39+ * Mark the wizard to skip all the pages and just show the last (welcome to ubuntu) page
40+ */
41+ void skipUntilFinishedPage();
3842
3943Q_SIGNALS:
4044 void wizardEnabledChanged();
plugins/Wizard/keyboardLayoutsModel.cppnew file+163
@@ -0,0 +1,163 @@
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 <QDBusMetaType>
18+#include <QDebug>
19+
20+#define GNOME_DESKTOP_USE_UNSTABLE_API
21+#include <libgnome-desktop/gnome-xkb-info.h>
22+
23+#include "keyboardLayoutsModel.h"
24+
25+typedef QList<QMap<QString, QString>> StringMapList;
26+Q_DECLARE_METATYPE(StringMapList)
27+
28+KeyboardLayoutsModel::KeyboardLayoutsModel(QObject *parent)
29+ : QAbstractListModel(parent)
30+{
31+ m_roleNames = {
32+ {LayoutIdRole, "layoutId"},
33+ {DisplayNameRole, "displayName"},
34+ {LanguageRole, "language"}
35+ };
36+
37+ qDBusRegisterMetaType<StringMapList>();
38+
39+ buildModel();
40+ connect(this, &KeyboardLayoutsModel::languageChanged, this, &KeyboardLayoutsModel::updateModel);
41+}
42+
43+QString KeyboardLayoutsModel::language() const
44+{
45+ return m_language;
46+}
47+
48+void KeyboardLayoutsModel::setLanguage(const QString &language)
49+{
50+ if (m_language == language)
51+ return;
52+
53+ m_language = language;
54+ Q_EMIT languageChanged(language);
55+}
56+
57+static bool compareLayouts(const KeyboardLayoutInfo &layout0, const KeyboardLayoutInfo &layout1)
58+{
59+ QString name0(layout0.id);
60+ QString name1(layout1.id);
61+
62+ if (name0 == name1) {
63+ name0 = layout0.displayName;
64+ name1 = layout1.displayName;
65+
66+ if (name0 == name1) {
67+ name0 = layout0.language;
68+ name1 = layout1.language;
69+ }
70+ }
71+
72+ return QString::localeAwareCompare(name0, name1) < 0;
73+}
74+
75+void KeyboardLayoutsModel::buildModel()
76+{
77+ GList *sources, *tmp;
78+ const gchar *display_name;
79+ const gchar *short_name;
80+ const gchar *xkb_layout;
81+ const gchar *xkb_variant;
82+
83+ GnomeXkbInfo * xkbInfo(gnome_xkb_info_new());
84+
85+ sources = gnome_xkb_info_get_all_layouts(xkbInfo);
86+
87+ for (tmp = sources; tmp != NULL; tmp = tmp->next) {
88+ gboolean result = gnome_xkb_info_get_layout_info(xkbInfo, (const gchar *)tmp->data,
89+ &display_name, &short_name, &xkb_layout, &xkb_variant);
90+ if (!result) {
91+ qWarning() << "Skipping invalid layout";
92+ continue;
93+ }
94+
95+ KeyboardLayoutInfo layout;
96+ layout.id = QString::fromUtf8((const gchar *)tmp->data);
97+ layout.language = QString::fromUtf8(short_name);
98+ layout.displayName = QString::fromUtf8(display_name);
99+
100+ m_db.append(layout);
101+ }
102+ g_list_free(sources);
103+ g_object_unref(xkbInfo);
104+
105+ std::sort(m_db.begin(), m_db.end(), compareLayouts);
106+}
107+
108+void KeyboardLayoutsModel::updateModel()
109+{
110+ beginResetModel();
111+ m_layouts.clear();
112+
113+ const QString lang = m_language.section("_", 0, 0);
114+ const QString country = m_language.section("_", 1, 1).toLower();
115+
116+ Q_FOREACH(const KeyboardLayoutInfo & info, m_db) {
117+ const QString kbdCountry = info.id.section("+", 0, 0);
118+ if (info.language == lang && // filter by language
119+ (kbdCountry.startsWith(country) || kbdCountry.length() > 2)) { // and by known country, also insert anything that doesn't match the country
120+ m_layouts.append(info);
121+ }
122+ }
123+
124+ std::sort(m_layouts.begin(), m_layouts.end(), compareLayouts);
125+ endResetModel();
126+}
127+
128+int KeyboardLayoutsModel::rowCount(const QModelIndex &parent) const
129+{
130+ Q_UNUSED(parent)
131+ return m_layouts.count();
132+}
133+
134+QVariant KeyboardLayoutsModel::data(const QModelIndex &index, int role) const
135+{
136+ const int row = index.row();
137+
138+ if (row >= m_layouts.count()) {
139+ qWarning() << Q_FUNC_INFO << "index out of bounds";
140+ return QVariant();
141+ }
142+
143+ const KeyboardLayoutInfo &layout = m_layouts.at(row);
144+
145+ switch (role) {
146+ case Qt::DisplayRole:
147+ case DisplayNameRole:
148+ return layout.displayName;
149+ case LayoutIdRole:
150+ return layout.id;
151+ case LanguageRole:
152+ return layout.language;
153+ default: {
154+ qWarning() << Q_FUNC_INFO << "unsupported data role";
155+ return QVariant();
156+ }
157+ }
158+}
159+
160+QHash<int, QByteArray> KeyboardLayoutsModel::roleNames() const
161+{
162+ return m_roleNames;
163+}
plugins/Wizard/keyboardLayoutsModel.hnew file+66
@@ -0,0 +1,66 @@
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 KEYBOARDLAYOUTSMODEL_H
18+#define KEYBOARDLAYOUTSMODEL_H
19+
20+#include <QAbstractListModel>
21+
22+struct KeyboardLayoutInfo {
23+ QString id;
24+ QString displayName;
25+ QString language;
26+};
27+
28+class KeyboardLayoutsModel: public QAbstractListModel
29+{
30+ Q_OBJECT
31+
32+ Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
33+
34+public:
35+ explicit KeyboardLayoutsModel(QObject * parent = nullptr);
36+ ~KeyboardLayoutsModel() = default;
37+
38+ enum Roles {
39+ LayoutIdRole = Qt::UserRole + 1,
40+ DisplayNameRole,
41+ LanguageRole
42+ };
43+
44+ QString language() const;
45+ void setLanguage(const QString &language);
46+
47+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
48+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
49+ QHash<int, QByteArray> roleNames() const override;
50+
51+Q_SIGNALS:
52+ void languageChanged(const QString &language);
53+
54+private Q_SLOTS:
55+ void updateModel();
56+
57+private:
58+ void buildModel();
59+
60+ QString m_language;
61+ QHash<int, QByteArray> m_roleNames;
62+ QVector<KeyboardLayoutInfo> m_layouts;
63+ QVector<KeyboardLayoutInfo> m_db;
64+};
65+
66+#endif
plugins/Wizard/plugin.cpp+2
@@ -20,6 +20,7 @@
2020#include "timezonemodel.h"
2121#include "LocalePlugin.h"
2222#include "Status.h"
23+#include "keyboardLayoutsModel.h"
2324
2425#include <QtQml/qqml.h>
2526
@@ -30,5 +31,6 @@ void WizardPlugin::registerTypes(const char *uri)
3031 qmlRegisterSingletonType<System>(uri, 0, 1, "System", [](QQmlEngine*, QJSEngine*) -> QObject* { return new System; });
3132 qmlRegisterSingletonType<Status>(uri, 0, 1, "Status", [](QQmlEngine*, QJSEngine*) -> QObject* { return new Status; });
3233 qmlRegisterType<TimeZoneLocationModel>(uri, 0, 1, "TimeZoneModel");
34+ qmlRegisterType<KeyboardLayoutsModel>(uri, 0, 1, "KeyboardLayoutsModel");
3335 qmlRegisterType<LocalePlugin>(uri, 0, 1, "LocalePlugin");
3436}
plugins/Wizard/qmldir−1
@@ -1,3 +1,2 @@
11module Wizard
22plugin Wizard-qml
3−typeinfo Wizard.qmltypes
plugins/Wizard/timezonemodel.cpp+5−5
@@ -60,12 +60,12 @@ QVariant TimeZoneLocationModel::data(const QModelIndex &index, int role) const
6060
6161 switch (role) {
6262 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));
63+ return QStringLiteral("%1, %2, %3").arg(geonames_city_get_name(city),
64+ geonames_city_get_state(city),
65+ geonames_city_get_country(city));
6666 case SimpleRole:
67− return QStringLiteral("%1, %2").arg(geonames_city_get_name(city))
68− .arg(geonames_city_get_country(city));
67+ return QStringLiteral("%1, %2").arg(geonames_city_get_name(city),
68+ geonames_city_get_country(city));
6969 case TimeZoneRole:
7070 return geonames_city_get_timezone(city);
7171 case CountryRole:
po/aa.po+180−147
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,10 +15,10 @@ 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-06-19 05:54+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr "Cuumita "
2424
@@ -35,84 +35,66 @@ msgstr "Kat"
3535msgid "Unpin shortcut"
3636msgstr ""
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr ""
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−
46−#: qml/Components/DelayedLockscreen.qml:65
47−msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr ""
49−
50−#: qml/Components/DelayedLockscreen.qml:74
51−#, qt-format
52−msgid "Please wait %1 minute and then try again…"
53−msgid_plural "Please wait %1 minutes and then try again…"
54−msgstr[0] "Maganak %1 minit qambaalaay, kaadu gabbat"
55−msgstr[1] "Maganak %1 minit qambaalaay, kaadu gabbat"
56−
57−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
5839msgctxt "Title: Lock/Log out dialog"
5940msgid "Log out"
6041msgstr "Eweq"
6142
62−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6344msgid "Are you sure you want to log out?"
6445msgstr ""
6546
66−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
6748msgctxt "Button: Lock the system"
6849msgid "Lock"
6950msgstr "Koflis"
7051
71−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7253msgctxt "Button: Log out from the system"
7354msgid "Log Out"
7455msgstr "Eweq"
7556
76−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
7860#: qml/Wizard/Pages/passcode-set.qml:32
7961msgid "Cancel"
8062msgstr "Bayis"
8163
82−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8365msgctxt "Title: Reboot dialog"
8466msgid "Reboot"
8567msgstr "Wadir-ugus"
8668
87−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
8870msgid "Are you sure you want to reboot?"
8971msgstr "Wadir-ugussuh digga maay litoo?"
9072
91−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9274msgid "No"
9375msgstr "Maleey"
9476
95−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
9678msgid "Yes"
9779msgstr "Yeey"
9880
99−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10082msgctxt "Title: Power off/Restart dialog"
10183msgid "Power"
10284msgstr "Cayla"
10385
104−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10587msgid ""
10688"Are you sure you would like\n"
10789"to power off?"
10890msgstr "Timmi haytuh digga maay litoo?"
10991
110−#: qml/Components/Dialogs.qml:202
92+#: qml/Components/Dialogs.qml:205
11193msgctxt "Button: Power off the system"
11294msgid "Power off"
11395msgstr "Timmi hayis"
11496
115−#: qml/Components/Dialogs.qml:211
97+#: qml/Components/Dialogs.qml:214
11698msgctxt "Button: Restart the system"
11799msgid "Restart"
118100msgstr "Wadir-qimbis"
@@ -277,18 +259,28 @@ msgstr ""
277259msgid "Closes the current window."
278260msgstr ""
279261
280−#: qml/Components/Lockscreen.qml:231
262+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
281263msgid "Return to Call"
282264msgstr "Seecol gacis"
283265
284−#: qml/Components/Lockscreen.qml:231
266+#: qml/Components/Lockscreen.qml:212
285267msgid "Emergency Call"
286268msgstr ""
287269
288−#: qml/Components/Lockscreen.qml:263
270+#: qml/Components/Lockscreen.qml:244
289271msgid "OK"
290272msgstr "Hayya"
291273
274+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
275+#, qt-format
276+msgid "%1:%2:%3"
277+msgstr ""
278+
279+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
280+#, qt-format
281+msgid "%1:%2"
282+msgstr ""
283+
292284#: qml/Components/ModeSwitchWarningDialog.qml:32
293285msgid "Apps may have unsaved data:"
294286msgstr ""
@@ -315,55 +307,59 @@ msgstr ""
315307msgid "Close all"
316308msgstr "Inkih alif"
317309
318−#: qml/Dash/DashPageHeader.qml:333
310+#: qml/Components/SharingPicker.qml:54
311+msgid "Preview Share Item"
312+msgstr ""
313+
314+#: qml/Dash/DashPageHeader.qml:362
319315msgctxt "Button: Open the Ubuntu Store"
320316msgid "Store"
321317msgstr ""
322318
323−#: qml/Dash/DashPageHeader.qml:340
319+#: qml/Dash/DashPageHeader.qml:369
324320msgctxt "Button: Start a search in the current dash scope"
325321msgid "Search"
326322msgstr "Goranto"
327323
328−#: qml/Dash/DashPageHeader.qml:350
324+#: qml/Dash/DashPageHeader.qml:379
329325msgctxt "Button: Show the current dash scope settings"
330326msgid "Settings"
331327msgstr "Massosu"
332328
333−#: qml/Dash/DashPageHeader.qml:357
329+#: qml/Dash/DashPageHeader.qml:386
334330msgid "Remove from Favorites"
335331msgstr ""
336332
337−#: qml/Dash/DashPageHeader.qml:357
333+#: qml/Dash/DashPageHeader.qml:386
338334msgid "Add to Favorites"
339335msgstr ""
340336
341−#: qml/Dash/FiltersPopover.qml:60
337+#: qml/Dash/FiltersPopover.qml:61
342338msgid "Refine your results"
343339msgstr ""
344340
345−#: qml/Dash/FiltersPopover.qml:69
341+#: qml/Dash/FiltersPopover.qml:70
346342msgid "Reset"
347343msgstr ""
348344
349−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
345+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
350346msgid "Show less"
351347msgstr ""
352348
353−#: qml/Dash/GenericScopeView.qml:580
349+#: qml/Dash/GenericScopeView.qml:586
354350msgid "Show all"
355351msgstr ""
356352
357−#: qml/Dash/GenericScopeView.qml:637
353+#: qml/Dash/GenericScopeView.qml:643
358354msgctxt "Label: Hint for dash search line edit"
359355msgid "Search"
360356msgstr "Goranto"
361357
362−#: qml/Dash/PageHeaderExtraPanel.qml:56
358+#: qml/Dash/PageHeaderExtraPanel.qml:57
363359msgid "Recent Searches"
364360msgstr ""
365361
366−#: qml/Dash/PageHeaderExtraPanel.qml:67
362+#: qml/Dash/PageHeaderExtraPanel.qml:68
367363msgid "Clear All"
368364msgstr ""
369365
@@ -375,28 +371,24 @@ msgstr ""
375371msgid "Less..."
376372msgstr ""
377373
378−#: qml/Dash/Previews/PreviewCommentInput.qml:68
379−#: qml/Dash/Previews/PreviewRatingInput.qml:175
374+#: qml/Dash/Previews/PreviewCommentInput.qml:83
375+#: qml/Dash/Previews/PreviewRatingInput.qml:201
380376msgid "Send"
381377msgstr "Rub"
382378
383−#: qml/Dash/Previews/PreviewRatingInput.qml:82
379+#: qml/Dash/Previews/PreviewRatingInput.qml:108
384380msgid "Rate this"
385381msgstr ""
386382
387−#: qml/Dash/Previews/PreviewRatingInput.qml:157
383+#: qml/Dash/Previews/PreviewRatingInput.qml:183
388384msgid "Add a review"
389385msgstr ""
390386
391−#: qml/Dash/Previews/PreviewSharing.qml:66
392−msgid "Preview Share Item"
393−msgstr ""
394−
395−#: qml/Dash/PullToRefreshScopeStyle.qml:55
387+#: qml/Dash/PullToRefreshScopeStyle.qml:56
396388msgid "Pull to refresh…"
397389msgstr ""
398390
399−#: qml/Dash/PullToRefreshScopeStyle.qml:60
391+#: qml/Dash/PullToRefreshScopeStyle.qml:61
400392msgid "Release to refresh…"
401393msgstr ""
402394
@@ -404,15 +396,15 @@ msgstr ""
404396msgid "Enable location data"
405397msgstr ""
406398
407−#: qml/Dash/ScopesList.qml:55
399+#: qml/Dash/ScopesList.qml:57
408400msgid "Manage"
409401msgstr ""
410402
411−#: qml/Dash/ScopesList.qml:101
403+#: qml/Dash/ScopesList.qml:104
412404msgid "Home"
413405msgstr "Dabqi"
414406
415−#: qml/Dash/ScopesList.qml:102
407+#: qml/Dash/ScopesList.qml:105
416408msgid "Also installed"
417409msgstr ""
418410
@@ -422,71 +414,55 @@ msgid ""
422414"touch pad to interact with the pointer."
423415msgstr ""
424416
425−#: qml/Greeter/CoverPage.qml:119
417+#: qml/Greeter/CoverPage.qml:127
426418msgid "Unlock"
427419msgstr ""
428420
429−#: qml/Greeter/LoginList.qml:259
430−msgid "Retry"
431−msgstr "Qagis"
432−
433−#: qml/Greeter/LoginList.qml:260
434−msgid "Log In"
421+#: qml/Greeter/DelayedLockscreen.qml:43
422+msgid "Device Locked"
435423msgstr ""
436424
437−#: qml/Greeter/NarrowView.qml:54
438−msgid "Sorry, incorrect passphrase."
425+#: qml/Greeter/DelayedLockscreen.qml:58
426+msgid "You have been locked out due to too many failed passphrase attempts."
439427msgstr ""
440428
441−#: qml/Greeter/NarrowView.qml:55
442−msgid "Sorry, incorrect passcode."
429+#: qml/Greeter/DelayedLockscreen.qml:59
430+msgid "You have been locked out due to too many failed passcode attempts."
443431msgstr ""
444432
445−#: qml/Greeter/NarrowView.qml:56
446−msgid "This will be your last attempt."
447−msgstr ""
433+#: qml/Greeter/DelayedLockscreen.qml:68
434+#, qt-format
435+msgid "Please wait %1 minute and then try again…"
436+msgid_plural "Please wait %1 minutes and then try again…"
437+msgstr[0] "Maganak %1 minit qambaalaay, kaadu gabbat"
438+msgstr[1] "Maganak %1 minit qambaalaay, kaadu gabbat"
448439
449−#: qml/Greeter/NarrowView.qml:58
450−msgid ""
451−"If passphrase is entered incorrectly, your phone will conduct a factory "
452−"reset and all personal data will be deleted."
440+#: qml/Greeter/Greeter.qml:596
441+msgid "Try again"
453442msgstr ""
454443
455−#: qml/Greeter/NarrowView.qml:59
456−msgid ""
457−"If passcode is entered incorrectly, your phone will conduct a factory reset "
458−"and all personal data will be deleted."
444+#: qml/Greeter/LoginList.qml:70
445+msgid "Passphrase"
459446msgstr ""
460447
461−#: qml/Greeter/NarrowView.qml:116
462−#, qt-format
463−msgid "Enter %1"
464−msgstr "%1 culus"
465−
466−#: qml/Greeter/NarrowView.qml:117
467−msgid "Enter passphrase"
468−msgstr "Tatur-maxco culus"
469−
470−#: qml/Greeter/NarrowView.qml:118
471−msgid "Enter passcode"
472−msgstr "Tatur-mudenta culus"
473−
474−#: qml/Greeter/NarrowView.qml:119
475−#, qt-format
476−msgid "Sorry, incorrect %1"
448+#: qml/Greeter/LoginList.qml:71
449+msgid "Passcode"
477450msgstr ""
478451
479−#: qml/Greeter/NarrowView.qml:120
480−msgid "Sorry, incorrect passphrase"
452+#: qml/Greeter/LoginList.qml:98
453+msgid "Retry"
454+msgstr "Qagis"
455+
456+#: qml/Greeter/LoginList.qml:99
457+msgid "Log In"
481458msgstr ""
482459
483−#: qml/Greeter/NarrowView.qml:121
484−msgctxt "passphrase"
485−msgid "Please re-enter"
460+#: qml/Greeter/NarrowView.qml:252
461+msgid "Emergency"
486462msgstr ""
487463
488−#: qml/Greeter/NarrowView.qml:122
489−msgid "Sorry, incorrect passcode"
464+#: qml/Greeter/SessionsList.qml:122
465+msgid "Select desktop environment"
490466msgstr ""
491467
492468#: qml/Notifications/NotificationMenuItemFactory.qml:124
@@ -605,40 +581,54 @@ msgctxt "Button: Go back one page in the Wizard"
605581msgid "Back"
606582msgstr "Derre"
607583
608−#: qml/Wizard/Pages/10-welcome.qml:27
584+#: qml/Wizard/Pages/10-welcome.qml:28
609585msgid "Language"
610586msgstr ""
611587
612−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
613−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
614−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
588+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
589+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
590+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
591+#: qml/Wizard/Pages/70-passwd-type.qml:145
615592#: qml/Wizard/Pages/75-report-check.qml:84
616−#: qml/Wizard/Pages/passcode-desktop.qml:124
617−#: qml/Wizard/Pages/password-set.qml:141
593+#: qml/Wizard/Pages/passcode-desktop.qml:142
594+#: qml/Wizard/Pages/password-set.qml:142
618595msgid "Next"
619596msgstr ""
620597
621−#: qml/Wizard/Pages/30-wifi.qml:29
598+#: qml/Wizard/Pages/20-keyboard.qml:31
599+msgid "Select Keyboard"
600+msgstr ""
601+
602+#: qml/Wizard/Pages/20-keyboard.qml:71
603+msgid "Keyboard language"
604+msgstr ""
605+
606+#: qml/Wizard/Pages/20-keyboard.qml:93
607+msgid "Keyboard layout"
608+msgstr ""
609+
610+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
611+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
612+#: qml/Wizard/Pages/sim.qml:101
613+msgid "Skip"
614+msgstr "Kaqit"
615+
616+#: qml/Wizard/Pages/30-wifi.qml:31
622617msgid "Connect to Wi‑Fi"
623618msgstr ""
624619
625−#: qml/Wizard/Pages/30-wifi.qml:130
620+#: qml/Wizard/Pages/30-wifi.qml:132
626621msgid "Connected"
627622msgstr ""
628623
629−#: qml/Wizard/Pages/30-wifi.qml:163
624+#: qml/Wizard/Pages/30-wifi.qml:165
630625msgid "Available Wi-Fi networks"
631626msgstr ""
632627
633−#: qml/Wizard/Pages/30-wifi.qml:164
628+#: qml/Wizard/Pages/30-wifi.qml:166
634629msgid "No available Wi-Fi networks"
635630msgstr ""
636631
637−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
638−#: qml/Wizard/Pages/sim.qml:101
639−msgid "Skip"
640−msgstr "Kaqit"
641−
642632#: qml/Wizard/Pages/40-location.qml:27
643633msgid "Location Services"
644634msgstr ""
@@ -671,11 +661,11 @@ msgstr ""
671661msgid "You can change it later in System Settings."
672662msgstr ""
673663
674−#: qml/Wizard/Pages/50-timezone.qml:29
664+#: qml/Wizard/Pages/50-timezone.qml:30
675665msgid "Time Zone"
676666msgstr ""
677667
678−#: qml/Wizard/Pages/50-timezone.qml:181
668+#: qml/Wizard/Pages/50-timezone.qml:182
679669msgid "Enter your city"
680670msgstr ""
681671
@@ -687,21 +677,21 @@ msgstr ""
687677msgid "Preferred Name"
688678msgstr ""
689679
690−#: qml/Wizard/Pages/70-passwd-type.qml:39
680+#: qml/Wizard/Pages/70-passwd-type.qml:40
691681msgid "Lock Screen"
692682msgstr ""
693683
694−#: qml/Wizard/Pages/70-passwd-type.qml:101
684+#: qml/Wizard/Pages/70-passwd-type.qml:102
695685msgctxt "Label: Type of security method"
696686msgid "Create new password"
697687msgstr ""
698688
699−#: qml/Wizard/Pages/70-passwd-type.qml:103
689+#: qml/Wizard/Pages/70-passwd-type.qml:104
700690msgctxt "Label: Type of security method"
701691msgid "Create passcode (numbers only)"
702692msgstr ""
703693
704−#: qml/Wizard/Pages/70-passwd-type.qml:105
694+#: qml/Wizard/Pages/70-passwd-type.qml:106
705695msgctxt "Label: Type of security method"
706696msgid "No lock code"
707697msgstr ""
@@ -722,6 +712,35 @@ msgstr ""
722712msgid "Privacy policy"
723713msgstr ""
724714
715+#: qml/Wizard/Pages/77-system-update.qml:28
716+msgid "Update Device"
717+msgstr ""
718+
719+#: qml/Wizard/Pages/77-system-update.qml:55
720+msgid ""
721+"There is a system update available and ready to install. Afterwards, the "
722+"device will automatically restart."
723+msgstr ""
724+
725+#: qml/Wizard/Pages/77-system-update.qml:76
726+msgctxt "string identifying name of the update"
727+msgid "Ubuntu system"
728+msgstr ""
729+
730+#: qml/Wizard/Pages/77-system-update.qml:83
731+#, qt-format
732+msgctxt "version of the system update"
733+msgid "Version %1"
734+msgstr ""
735+
736+#: qml/Wizard/Pages/77-system-update.qml:102
737+msgid "This could take a few minutes..."
738+msgstr ""
739+
740+#: qml/Wizard/Pages/77-system-update.qml:116
741+msgid "Install and restart now"
742+msgstr ""
743+
725744#: qml/Wizard/Pages/80-finished.qml:89
726745msgid "Welcome to Ubuntu"
727746msgstr ""
@@ -765,7 +784,7 @@ msgid "Service Terms"
765784msgstr ""
766785
767786#: qml/Wizard/Pages/passcode-confirm.qml:43
768−#: qml/Wizard/Pages/passcode-desktop.qml:80
787+#: qml/Wizard/Pages/passcode-desktop.qml:97
769788msgid "Confirm passcode"
770789msgstr ""
771790
@@ -778,28 +797,28 @@ msgctxt "Enter the passcode again"
778797msgid "Please re-enter."
779798msgstr ""
780799
781−#: qml/Wizard/Pages/passcode-desktop.qml:30
800+#: qml/Wizard/Pages/passcode-desktop.qml:31
782801msgid "Lock Screen Passcode"
783802msgstr ""
784803
785−#: qml/Wizard/Pages/passcode-desktop.qml:56
804+#: qml/Wizard/Pages/passcode-desktop.qml:61
786805msgid "Enter 4 numbers to setup your passcode"
787806msgstr ""
788807
789−#: qml/Wizard/Pages/passcode-desktop.qml:65
808+#: qml/Wizard/Pages/passcode-desktop.qml:77
790809#: qml/Wizard/Pages/passcode-set.qml:54
791810msgid "Choose passcode"
792811msgstr ""
793812
794−#: qml/Wizard/Pages/passcode-desktop.qml:105
813+#: qml/Wizard/Pages/passcode-desktop.qml:127
795814msgid "Passcode too short"
796815msgstr ""
797816
798−#: qml/Wizard/Pages/passcode-desktop.qml:107
817+#: qml/Wizard/Pages/passcode-desktop.qml:129
799818msgid "Passcodes match"
800819msgstr ""
801820
802−#: qml/Wizard/Pages/passcode-desktop.qml:109
821+#: qml/Wizard/Pages/passcode-desktop.qml:131
803822msgid "Passcodes do not match"
804823msgstr ""
805824
@@ -807,19 +826,19 @@ msgstr ""
807826msgid "Passcode must be 4 characters long"
808827msgstr ""
809828
810−#: qml/Wizard/Pages/password-set.qml:30
829+#: qml/Wizard/Pages/password-set.qml:31
811830msgid "Lock Screen Password"
812831msgstr ""
813832
814−#: qml/Wizard/Pages/password-set.qml:61
833+#: qml/Wizard/Pages/password-set.qml:62
815834msgid "Enter at least 8 characters"
816835msgstr ""
817836
818−#: qml/Wizard/Pages/password-set.qml:73
837+#: qml/Wizard/Pages/password-set.qml:74
819838msgid "Choose password"
820839msgstr ""
821840
822−#: qml/Wizard/Pages/password-set.qml:103
841+#: qml/Wizard/Pages/password-set.qml:104
823842msgid "Confirm password"
824843msgstr ""
825844
@@ -848,26 +867,30 @@ msgid "To proceed with no SIM tap Skip."
848867msgstr ""
849868
850869#: qml/Wizard/PasswordMeter.qml:87
851−msgid "Passwords match"
870+msgid "Password too short"
852871msgstr ""
853872
854873#: qml/Wizard/PasswordMeter.qml:89
874+msgid "Passwords match"
875+msgstr ""
876+
877+#: qml/Wizard/PasswordMeter.qml:91
855878msgid "Passwords do not match"
856879msgstr ""
857880
858−#: qml/Wizard/PasswordMeter.qml:93
881+#: qml/Wizard/PasswordMeter.qml:95
859882msgid "Strong password"
860883msgstr ""
861884
862−#: qml/Wizard/PasswordMeter.qml:95
885+#: qml/Wizard/PasswordMeter.qml:97
863886msgid "Fair password"
864887msgstr ""
865888
866−#: qml/Wizard/PasswordMeter.qml:97
889+#: qml/Wizard/PasswordMeter.qml:99
867890msgid "Weak password"
868891msgstr ""
869892
870−#: qml/Wizard/PasswordMeter.qml:99
893+#: qml/Wizard/PasswordMeter.qml:101
871894msgid "Very weak password"
872895msgstr ""
873896
@@ -886,6 +909,16 @@ msgstr ""
886909#~ msgid "Reboot"
887910#~ msgstr "Wadir-ugus"
888911
912+#, qt-format
913+#~ msgid "Enter %1"
914+#~ msgstr "%1 culus"
915+
916+#~ msgid "Enter passphrase"
917+#~ msgstr "Tatur-maxco culus"
918+
919+#~ msgid "Enter passcode"
920+#~ msgstr "Tatur-mudenta culus"
921+
889922#~ msgctxt "Label: Type of security method"
890923#~ msgid "Swipe"
891924#~ msgstr "Uysuttuc"
po/am.po+226−160
@@ -7,18 +7,18 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-06-17 01:22+0000\n"
11−"PO-Revision-Date: 2016-06-19 16:08+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+0000\n"
11+"PO-Revision-Date: 2016-08-13 14:45+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-06-20 06:12+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr "የ መግቢያ ቃል: "
2424
@@ -35,73 +35,55 @@ msgstr "ማጥፊያ"
3535msgid "Unpin shortcut"
3636msgstr "አቋራጭ መለያያ"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr "አካሉ ተቆልፏል"
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ሀረግ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
45−
46−#: qml/Components/DelayedLockscreen.qml:65
47−msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ኮድ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
49−
50−#: qml/Components/DelayedLockscreen.qml:74
51−#, qt-format
52−msgid "Please wait %1 minute and then try again…"
53−msgid_plural "Please wait %1 minutes and then try again…"
54−msgstr[0] "እባክዎን ይቆዩ %1 ደቂቃ እና ከዛ እንደ ገና ይምክሩ…"
55−msgstr[1] "እባክዎን ይቆዩ %1 ደቂቃዎች እና ከዛ እንደ ገና ይምክሩ…"
56−
57−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
5839msgctxt "Title: Lock/Log out dialog"
5940msgid "Log out"
6041msgstr "መውጫ"
6142
62−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6344msgid "Are you sure you want to log out?"
6445msgstr "በእርግጥ መውጣት ይፈልጋሉ?"
6546
66−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
6748msgctxt "Button: Lock the system"
6849msgid "Lock"
6950msgstr "መቆለፊያ"
7051
71−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7253msgctxt "Button: Log out from the system"
7354msgid "Log Out"
7455msgstr "መውጫ"
7556
76−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
7860#: qml/Wizard/Pages/passcode-set.qml:32
7961msgid "Cancel"
8062msgstr "መሰረዣ"
8163
82−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8365msgctxt "Title: Reboot dialog"
8466msgid "Reboot"
8567msgstr "እንደገና ማስነሻ"
8668
87−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
8870msgid "Are you sure you want to reboot?"
8971msgstr "በእርግጥ እንደገና ማስነሳት ይፈልጋሉ?"
9072
91−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9274msgid "No"
9375msgstr "አይ"
9476
95−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
9678msgid "Yes"
9779msgstr "አዎ"
9880
99−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10082msgctxt "Title: Power off/Restart dialog"
10183msgid "Power"
10284msgstr "ሐይል"
10385
104−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10587msgid ""
10688"Are you sure you would like\n"
10789"to power off?"
@@ -109,12 +91,12 @@ msgstr ""
10991"በእርግጥ ሐይሉን ማጥፋት\n"
11092"ይፈልጋሉ?"
11193
112−#: qml/Components/Dialogs.qml:202
94+#: qml/Components/Dialogs.qml:205
11395msgctxt "Button: Power off the system"
11496msgid "Power off"
11597msgstr "ሐይል ማጥፊያ"
11698
117−#: qml/Components/Dialogs.qml:211
99+#: qml/Components/Dialogs.qml:214
118100msgctxt "Button: Restart the system"
119101msgid "Restart"
120102msgstr "እንደገና ማስጀመሪያ"
@@ -279,18 +261,28 @@ msgstr "Alt + F4"
279261msgid "Closes the current window."
280262msgstr "የ አሁኑን መስኮት መዝጊያ"
281263
282−#: qml/Components/Lockscreen.qml:231
264+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
283265msgid "Return to Call"
284266msgstr "ወደ ጥሪ መመለሻ"
285267
286−#: qml/Components/Lockscreen.qml:231
268+#: qml/Components/Lockscreen.qml:212
287269msgid "Emergency Call"
288270msgstr "የ ድንገተኛ ጥሪ"
289271
290−#: qml/Components/Lockscreen.qml:263
272+#: qml/Components/Lockscreen.qml:244
291273msgid "OK"
292274msgstr "እሺ"
293275
276+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
277+#, qt-format
278+msgid "%1:%2:%3"
279+msgstr "%1:%2:%3"
280+
281+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
282+#, qt-format
283+msgid "%1:%2"
284+msgstr "%1:%2"
285+
294286#: qml/Components/ModeSwitchWarningDialog.qml:32
295287msgid "Apps may have unsaved data:"
296288msgstr "መተግበሪያው ያልተቀመጠ ዳታ ይዟል:"
@@ -317,55 +309,59 @@ msgstr "አሁን እንደገና መገናኛ!"
317309msgid "Close all"
318310msgstr "ሁሉንም መዝጊያ"
319311
320−#: qml/Dash/DashPageHeader.qml:333
312+#: qml/Components/SharingPicker.qml:54
313+msgid "Preview Share Item"
314+msgstr "የሚካፈሉትን እቃ ቅድመ እይታ"
315+
316+#: qml/Dash/DashPageHeader.qml:362
321317msgctxt "Button: Open the Ubuntu Store"
322318msgid "Store"
323319msgstr "ማስቀመጫ"
324320
325−#: qml/Dash/DashPageHeader.qml:340
321+#: qml/Dash/DashPageHeader.qml:369
326322msgctxt "Button: Start a search in the current dash scope"
327323msgid "Search"
328324msgstr "መፈለጊያ"
329325
330−#: qml/Dash/DashPageHeader.qml:350
326+#: qml/Dash/DashPageHeader.qml:379
331327msgctxt "Button: Show the current dash scope settings"
332328msgid "Settings"
333329msgstr "ማሰናጃዎች"
334330
335−#: qml/Dash/DashPageHeader.qml:357
331+#: qml/Dash/DashPageHeader.qml:386
336332msgid "Remove from Favorites"
337333msgstr "ከምወዳቸው ማስወገጃ"
338334
339−#: qml/Dash/DashPageHeader.qml:357
335+#: qml/Dash/DashPageHeader.qml:386
340336msgid "Add to Favorites"
341337msgstr "ወደምወዳቸው መጨመሪያ"
342338
343−#: qml/Dash/FiltersPopover.qml:60
339+#: qml/Dash/FiltersPopover.qml:61
344340msgid "Refine your results"
345341msgstr "የ እርስዎን ውጤቶች እንደገና ማጣሪያ"
346342
347−#: qml/Dash/FiltersPopover.qml:69
343+#: qml/Dash/FiltersPopover.qml:70
348344msgid "Reset"
349345msgstr "እንደ ነበረ መመለሻ"
350346
351−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
347+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
352348msgid "Show less"
353349msgstr "ትንሽ ማሳያ"
354350
355−#: qml/Dash/GenericScopeView.qml:580
351+#: qml/Dash/GenericScopeView.qml:586
356352msgid "Show all"
357353msgstr "ሁሉንም ማሳያ"
358354
359−#: qml/Dash/GenericScopeView.qml:637
355+#: qml/Dash/GenericScopeView.qml:643
360356msgctxt "Label: Hint for dash search line edit"
361357msgid "Search"
362358msgstr "መፈለጊያ"
363359
364−#: qml/Dash/PageHeaderExtraPanel.qml:56
360+#: qml/Dash/PageHeaderExtraPanel.qml:57
365361msgid "Recent Searches"
366362msgstr "የ ቅርብ ጊዜ ፍለጋዎች"
367363
368−#: qml/Dash/PageHeaderExtraPanel.qml:67
364+#: qml/Dash/PageHeaderExtraPanel.qml:68
369365msgid "Clear All"
370366msgstr "ሁሉንም ማጽጃ"
371367
@@ -377,28 +373,24 @@ msgstr "ተጨማሪ..."
377373msgid "Less..."
378374msgstr "አነስተኛ..."
379375
380−#: qml/Dash/Previews/PreviewCommentInput.qml:68
381−#: qml/Dash/Previews/PreviewRatingInput.qml:175
376+#: qml/Dash/Previews/PreviewCommentInput.qml:83
377+#: qml/Dash/Previews/PreviewRatingInput.qml:201
382378msgid "Send"
383379msgstr "መላኪያ"
384380
385−#: qml/Dash/Previews/PreviewRatingInput.qml:82
381+#: qml/Dash/Previews/PreviewRatingInput.qml:108
386382msgid "Rate this"
387383msgstr "ለዚህ ደረጃ ይስጡ"
388384
389−#: qml/Dash/Previews/PreviewRatingInput.qml:157
385+#: qml/Dash/Previews/PreviewRatingInput.qml:183
390386msgid "Add a review"
391387msgstr "ግምገማ መጨመሪያ"
392388
393−#: qml/Dash/Previews/PreviewSharing.qml:66
394−msgid "Preview Share Item"
395−msgstr "የሚካፈሉትን እቃ ቅድመ እይታ"
396−
397−#: qml/Dash/PullToRefreshScopeStyle.qml:55
389+#: qml/Dash/PullToRefreshScopeStyle.qml:56
398390msgid "Pull to refresh…"
399391msgstr "ይሳቡ ለማነቃቃት…"
400392
401−#: qml/Dash/PullToRefreshScopeStyle.qml:60
393+#: qml/Dash/PullToRefreshScopeStyle.qml:61
402394msgid "Release to refresh…"
403395msgstr "ይልቀቁ ለማነቃቃት…"
404396
@@ -406,15 +398,15 @@ msgstr "ይልቀቁ ለማነቃቃት…"
406398msgid "Enable location data"
407399msgstr "የአካባቢ ዳታ ማስቻያ"
408400
409−#: qml/Dash/ScopesList.qml:55
401+#: qml/Dash/ScopesList.qml:57
410402msgid "Manage"
411403msgstr "አስተዳዳሪ"
412404
413−#: qml/Dash/ScopesList.qml:101
405+#: qml/Dash/ScopesList.qml:104
414406msgid "Home"
415407msgstr "ቤት"
416408
417−#: qml/Dash/ScopesList.qml:102
409+#: qml/Dash/ScopesList.qml:105
418410msgid "Also installed"
419411msgstr "እንዲሁም የተገጠሙ"
420412
@@ -424,76 +416,56 @@ msgid ""
424416"touch pad to interact with the pointer."
425417msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል: ይህን መመልከቻ እንደ ተችፓድ መጠቀሚያ"
426418
427−#: qml/Greeter/CoverPage.qml:119
419+#: qml/Greeter/CoverPage.qml:127
428420msgid "Unlock"
429421msgstr "መክፈቻ"
430422
431−#: qml/Greeter/LoginList.qml:259
432−msgid "Retry"
433−msgstr "እንደገና ይሞክሩ"
434−
435−#: qml/Greeter/LoginList.qml:260
436−msgid "Log In"
437−msgstr "መግቢያ"
438−
439−#: qml/Greeter/NarrowView.qml:54
440−msgid "Sorry, incorrect passphrase."
441−msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
442−
443−#: qml/Greeter/NarrowView.qml:55
444−msgid "Sorry, incorrect passcode."
445−msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
446−
447−#: qml/Greeter/NarrowView.qml:56
448−msgid "This will be your last attempt."
449−msgstr "ይህ የመጨረሻ ሙከራዎ ነው"
423+#: qml/Greeter/DelayedLockscreen.qml:43
424+msgid "Device Locked"
425+msgstr "አካሉ ተቆልፏል"
450426
451−#: qml/Greeter/NarrowView.qml:58
452−msgid ""
453−"If passphrase is entered incorrectly, your phone will conduct a factory "
454−"reset and all personal data will be deleted."
455−msgstr ""
456−"የተሳሳተ የማለፊያ ሐረግ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
457−"ይጠፋል"
427+#: qml/Greeter/DelayedLockscreen.qml:58
428+msgid "You have been locked out due to too many failed passphrase attempts."
429+msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ሀረግ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
458430
459−#: qml/Greeter/NarrowView.qml:59
460−msgid ""
461−"If passcode is entered incorrectly, your phone will conduct a factory reset "
462−"and all personal data will be deleted."
463−msgstr ""
464−"የተሳሳተ የማለፊያ ኮድ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
465−"ይጠፋል"
431+#: qml/Greeter/DelayedLockscreen.qml:59
432+msgid "You have been locked out due to too many failed passcode attempts."
433+msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ኮድ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
466434
467−#: qml/Greeter/NarrowView.qml:116
435+#: qml/Greeter/DelayedLockscreen.qml:68
468436#, qt-format
469−msgid "Enter %1"
470−msgstr "ማስገቢያ %1"
437+msgid "Please wait %1 minute and then try again…"
438+msgid_plural "Please wait %1 minutes and then try again…"
439+msgstr[0] "እባክዎን ይቆዩ %1 ደቂቃ እና ከዛ እንደ ገና ይምክሩ…"
440+msgstr[1] "እባክዎን ይቆዩ %1 ደቂቃዎች እና ከዛ እንደ ገና ይምክሩ…"
471441
472−#: qml/Greeter/NarrowView.qml:117
473−msgid "Enter passphrase"
474−msgstr "የ ማለፊያ ሀረግ ያስገቡ"
442+#: qml/Greeter/Greeter.qml:596
443+msgid "Try again"
444+msgstr "እንደገና ይሞክሩ"
475445
476−#: qml/Greeter/NarrowView.qml:118
477−msgid "Enter passcode"
478−msgstr "የ ማለፊያ ኮድ ያስገቡ"
446+#: qml/Greeter/LoginList.qml:70
447+msgid "Passphrase"
448+msgstr "የማለፊያ ሐረግ"
479449
480−#: qml/Greeter/NarrowView.qml:119
481−#, qt-format
482−msgid "Sorry, incorrect %1"
483−msgstr "አዝናለሁ: የተሳሳተ%1"
450+#: qml/Greeter/LoginList.qml:71
451+msgid "Passcode"
452+msgstr "ማለፊያ ኮድ"
484453
485−#: qml/Greeter/NarrowView.qml:120
486−msgid "Sorry, incorrect passphrase"
487−msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
454+#: qml/Greeter/LoginList.qml:98
455+msgid "Retry"
456+msgstr "እንደገና ይሞክሩ"
488457
489−#: qml/Greeter/NarrowView.qml:121
490−msgctxt "passphrase"
491−msgid "Please re-enter"
492−msgstr "እባክዎን እንደገና-ያስገቡ"
458+#: qml/Greeter/LoginList.qml:99
459+msgid "Log In"
460+msgstr "መግቢያ"
493461
494−#: qml/Greeter/NarrowView.qml:122
495−msgid "Sorry, incorrect passcode"
496−msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
462+#: qml/Greeter/NarrowView.qml:252
463+msgid "Emergency"
464+msgstr ""
465+
466+#: qml/Greeter/SessionsList.qml:122
467+msgid "Select desktop environment"
468+msgstr ""
497469
498470#: qml/Notifications/NotificationMenuItemFactory.qml:124
499471msgid "Show password"
@@ -611,40 +583,54 @@ msgctxt "Button: Go back one page in the Wizard"
611583msgid "Back"
612584msgstr "ወደ ኋላ"
613585
614−#: qml/Wizard/Pages/10-welcome.qml:27
586+#: qml/Wizard/Pages/10-welcome.qml:28
615587msgid "Language"
616588msgstr "ቋንቋ"
617589
618−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
619−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
620−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
590+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
591+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
592+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
593+#: qml/Wizard/Pages/70-passwd-type.qml:145
621594#: qml/Wizard/Pages/75-report-check.qml:84
622−#: qml/Wizard/Pages/passcode-desktop.qml:124
623−#: qml/Wizard/Pages/password-set.qml:141
595+#: qml/Wizard/Pages/passcode-desktop.qml:142
596+#: qml/Wizard/Pages/password-set.qml:142
624597msgid "Next"
625598msgstr "ይቀጥሉ"
626599
627−#: qml/Wizard/Pages/30-wifi.qml:29
600+#: qml/Wizard/Pages/20-keyboard.qml:31
601+msgid "Select Keyboard"
602+msgstr "ቋንቋ ይምረጡ"
603+
604+#: qml/Wizard/Pages/20-keyboard.qml:71
605+msgid "Keyboard language"
606+msgstr "የ ፊደል ገበታ ቋንቋ"
607+
608+#: qml/Wizard/Pages/20-keyboard.qml:93
609+msgid "Keyboard layout"
610+msgstr "የ ፊደል ገበታ አቀራረብ"
611+
612+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
613+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
614+#: qml/Wizard/Pages/sim.qml:101
615+msgid "Skip"
616+msgstr "መዝለያ"
617+
618+#: qml/Wizard/Pages/30-wifi.qml:31
628619msgid "Connect to Wi‑Fi"
629620msgstr "ወደ ዋይ‑ፋይ መገናኛ"
630621
631−#: qml/Wizard/Pages/30-wifi.qml:130
622+#: qml/Wizard/Pages/30-wifi.qml:132
632623msgid "Connected"
633624msgstr "ተገናኝቷል"
634625
635−#: qml/Wizard/Pages/30-wifi.qml:163
626+#: qml/Wizard/Pages/30-wifi.qml:165
636627msgid "Available Wi-Fi networks"
637628msgstr "ዝግጁ የ ዋይ-ፋይ ኔትዎርኮች"
638629
639−#: qml/Wizard/Pages/30-wifi.qml:164
630+#: qml/Wizard/Pages/30-wifi.qml:166
640631msgid "No available Wi-Fi networks"
641632msgstr "ምንም ዝግጁ ዋይ-ፋይ ኔትዎርኮች አልተገኙም"
642633
643−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
644−#: qml/Wizard/Pages/sim.qml:101
645−msgid "Skip"
646−msgstr "መዝለያ"
647−
648634#: qml/Wizard/Pages/40-location.qml:27
649635msgid "Location Services"
650636msgstr "የ አካባቢ ግልጋሎት"
@@ -677,11 +663,11 @@ msgstr "የ እኔን አካባቢ አትጠቀም"
677663msgid "You can change it later in System Settings."
678664msgstr "እርስዎ በኋላ በ ስርአት ማሰናጃ ውስጥ መቀየር ይችላሉ"
679665
680−#: qml/Wizard/Pages/50-timezone.qml:29
666+#: qml/Wizard/Pages/50-timezone.qml:30
681667msgid "Time Zone"
682668msgstr "የ ሰአት ክልል"
683669
684−#: qml/Wizard/Pages/50-timezone.qml:181
670+#: qml/Wizard/Pages/50-timezone.qml:182
685671msgid "Enter your city"
686672msgstr "የ እርስዎን ከተማ ያስገቡ"
687673
@@ -693,21 +679,21 @@ msgstr "የ እርስዎን አካል የ ግልዎ ያድርጉ"
693679msgid "Preferred Name"
694680msgstr "የመረጡት ስም"
695681
696−#: qml/Wizard/Pages/70-passwd-type.qml:39
682+#: qml/Wizard/Pages/70-passwd-type.qml:40
697683msgid "Lock Screen"
698684msgstr "መመልከቻውን መቆለፊያ"
699685
700−#: qml/Wizard/Pages/70-passwd-type.qml:101
686+#: qml/Wizard/Pages/70-passwd-type.qml:102
701687msgctxt "Label: Type of security method"
702688msgid "Create new password"
703689msgstr "አዲስ የ መግቢያ ቃል መፍጠሪያ"
704690
705−#: qml/Wizard/Pages/70-passwd-type.qml:103
691+#: qml/Wizard/Pages/70-passwd-type.qml:104
706692msgctxt "Label: Type of security method"
707693msgid "Create passcode (numbers only)"
708694msgstr "አዲስ የ ማለፊያ ኮድ መፍጠሪያ (ቁጥር ብቻ)"
709695
710−#: qml/Wizard/Pages/70-passwd-type.qml:105
696+#: qml/Wizard/Pages/70-passwd-type.qml:106
711697msgctxt "Label: Type of security method"
712698msgid "No lock code"
713699msgstr "ምንም መቆለፊያ ኮድ አልተገኘም"
@@ -728,6 +714,35 @@ msgstr "የ ስርአቱን አፈጻጸም ለማሻሻል የ ግጭት እና
728714msgid "Privacy policy"
729715msgstr "የ ግላዊነት መመሪያ"
730716
717+#: qml/Wizard/Pages/77-system-update.qml:28
718+msgid "Update Device"
719+msgstr "አካሉን ማሻሻያ"
720+
721+#: qml/Wizard/Pages/77-system-update.qml:55
722+msgid ""
723+"There is a system update available and ready to install. Afterwards, the "
724+"device will automatically restart."
725+msgstr "የ ስርአት ማሻሻያ ዝግጁ ነው ለ መግጠም: ከዚያ በኋላ አካሉ ራሱ በራሱ እንደገና ይጀምራል"
726+
727+#: qml/Wizard/Pages/77-system-update.qml:76
728+msgctxt "string identifying name of the update"
729+msgid "Ubuntu system"
730+msgstr "የ ኡቡቱ ስርአት"
731+
732+#: qml/Wizard/Pages/77-system-update.qml:83
733+#, qt-format
734+msgctxt "version of the system update"
735+msgid "Version %1"
736+msgstr "እትም %1"
737+
738+#: qml/Wizard/Pages/77-system-update.qml:102
739+msgid "This could take a few minutes..."
740+msgstr "ይህ ትንሽ ደቂቆች ይወስዳል"
741+
742+#: qml/Wizard/Pages/77-system-update.qml:116
743+msgid "Install and restart now"
744+msgstr "መግጠሚያ እና እንደገና ማስጀመሪያ"
745+
731746#: qml/Wizard/Pages/80-finished.qml:89
732747msgid "Welcome to Ubuntu"
733748msgstr "እንኳን ደህና መጡ ወደ ኡቡንቱ"
@@ -773,7 +788,7 @@ msgid "Service Terms"
773788msgstr "የ ግልጋሎት ስምምነቶች"
774789
775790#: qml/Wizard/Pages/passcode-confirm.qml:43
776−#: qml/Wizard/Pages/passcode-desktop.qml:80
791+#: qml/Wizard/Pages/passcode-desktop.qml:97
777792msgid "Confirm passcode"
778793msgstr "የማለፊያ ኮድ ማረጋገጫ"
779794
@@ -786,28 +801,28 @@ msgctxt "Enter the passcode again"
786801msgid "Please re-enter."
787802msgstr "እባክዎን እንደገና-ያስገቡ"
788803
789−#: qml/Wizard/Pages/passcode-desktop.qml:30
804+#: qml/Wizard/Pages/passcode-desktop.qml:31
790805msgid "Lock Screen Passcode"
791806msgstr "የ መመልከቻው መቆለፊያ የ ማለፊያ ኮድ"
792807
793−#: qml/Wizard/Pages/passcode-desktop.qml:56
808+#: qml/Wizard/Pages/passcode-desktop.qml:61
794809msgid "Enter 4 numbers to setup your passcode"
795810msgstr "ያስገቡ 4 ቁጥሮች የ እርስዎን የ ማለፊያ ኮድ ለማሰናዳት"
796811
797−#: qml/Wizard/Pages/passcode-desktop.qml:65
812+#: qml/Wizard/Pages/passcode-desktop.qml:77
798813#: qml/Wizard/Pages/passcode-set.qml:54
799814msgid "Choose passcode"
800815msgstr "የ ማለፊያ ኮድ ይምረጡ"
801816
802−#: qml/Wizard/Pages/passcode-desktop.qml:105
817+#: qml/Wizard/Pages/passcode-desktop.qml:127
803818msgid "Passcode too short"
804819msgstr "የ ማለፊያ ኮዱ በጣም አጭር ነው"
805820
806−#: qml/Wizard/Pages/passcode-desktop.qml:107
821+#: qml/Wizard/Pages/passcode-desktop.qml:129
807822msgid "Passcodes match"
808823msgstr "የ ማለፊያ ኮዶቹ ተመሳሳይ ናቸው"
809824
810−#: qml/Wizard/Pages/passcode-desktop.qml:109
825+#: qml/Wizard/Pages/passcode-desktop.qml:131
811826msgid "Passcodes do not match"
812827msgstr "የ ማለፊያ ኮዶቹ አይመሳሰሉም"
813828
@@ -815,19 +830,19 @@ msgstr "የ ማለፊያ ኮዶቹ አይመሳሰሉም"
815830msgid "Passcode must be 4 characters long"
816831msgstr "የ ማለፊያ ኮድ 4 ባህሪዎች መሆን አለበት"
817832
818−#: qml/Wizard/Pages/password-set.qml:30
833+#: qml/Wizard/Pages/password-set.qml:31
819834msgid "Lock Screen Password"
820835msgstr "የ መመልከቻ መቆለፊያ የ መግቢያ ቃል"
821836
822−#: qml/Wizard/Pages/password-set.qml:61
837+#: qml/Wizard/Pages/password-set.qml:62
823838msgid "Enter at least 8 characters"
824839msgstr "ያስገቡ ቢያንስ 8 ባህሪዎች"
825840
826−#: qml/Wizard/Pages/password-set.qml:73
841+#: qml/Wizard/Pages/password-set.qml:74
827842msgid "Choose password"
828843msgstr "የ መግቢያ ቃል ይምረጡ"
829844
830−#: qml/Wizard/Pages/password-set.qml:103
845+#: qml/Wizard/Pages/password-set.qml:104
831846msgid "Confirm password"
832847msgstr "የ መግቢያ ቃሉን ያረጋግጡ"
833848
@@ -856,26 +871,30 @@ msgid "To proceed with no SIM tap Skip."
856871msgstr "ያለ ሲም ለ መቀጠል መዝለያውን መታ ያድርጉ"
857872
858873#: qml/Wizard/PasswordMeter.qml:87
874+msgid "Password too short"
875+msgstr "የ መግቢያ ቃል በጣም አጭር ነው"
876+
877+#: qml/Wizard/PasswordMeter.qml:89
859878msgid "Passwords match"
860879msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ ናቸው"
861880
862−#: qml/Wizard/PasswordMeter.qml:89
881+#: qml/Wizard/PasswordMeter.qml:91
863882msgid "Passwords do not match"
864883msgstr "የ መግቢያ ቃሎቹ ተመሳሳይ አይደሉም"
865884
866−#: qml/Wizard/PasswordMeter.qml:93
885+#: qml/Wizard/PasswordMeter.qml:95
867886msgid "Strong password"
868887msgstr "ጠንካራ የ መግቢያ ቃል"
869888
870−#: qml/Wizard/PasswordMeter.qml:95
889+#: qml/Wizard/PasswordMeter.qml:97
871890msgid "Fair password"
872891msgstr "ደህና የ መግቢያ ቃል"
873892
874−#: qml/Wizard/PasswordMeter.qml:97
893+#: qml/Wizard/PasswordMeter.qml:99
875894msgid "Weak password"
876895msgstr "ደካማ የ መግቢያ ቃል"
877896
878−#: qml/Wizard/PasswordMeter.qml:99
897+#: qml/Wizard/PasswordMeter.qml:101
879898msgid "Very weak password"
880899msgstr "በጣም ደካማ የ መግቢያ ቃል"
881900
@@ -948,6 +967,13 @@ msgstr "በጣም ደካማ የ መግቢያ ቃል"
948967#~ msgid "Power off"
949968#~ msgstr "ማጥፊያ"
950969
970+#~ msgid "This will be your last attempt."
971+#~ msgstr "ይህ የመጨረሻ ሙከራዎ ነው"
972+
973+#, qt-format
974+#~ msgid "Sorry, incorrect %1"
975+#~ msgstr "አዝናለሁ: የተሳሳተ%1"
976+
951977#~ msgid "Power"
952978#~ msgstr "ሐይል"
953979
@@ -966,24 +992,60 @@ msgstr "በጣም ደካማ የ መግቢያ ቃል"
966992#~ msgid "Settings"
967993#~ msgstr "ማሰናጃ"
968994
995+#~ msgid "Sorry, incorrect passphrase"
996+#~ msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
997+
969998#~ msgid "Unlock SIM"
970999#~ msgstr "ሲም መክፈቻ"
9711000
1001+#~ msgid "Sorry, incorrect passcode"
1002+#~ msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
1003+
1004+#~ msgid "Sorry, incorrect passphrase."
1005+#~ msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
1006+
1007+#~ msgid "Sorry, incorrect passcode."
1008+#~ msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
1009+
9721010#~ msgid ""
9731011#~ "You have now mastered the edge gestures and can start using the "
9741012#~ "phone<br><br>Tap on the screen to start"
9751013#~ msgstr ""
9761014#~ "አሁን የ ጠርዝ እንቅስቃሴን አውቀዋል እና መጀመር ይችላሉ ስልኩን መጠቀም <br><br>መመልከቻውን መታ ያድርጉ ለመጀመር"
9771015
1016+#~ msgid ""
1017+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1018+#~ "and all personal data will be deleted."
1019+#~ msgstr ""
1020+#~ "የተሳሳተ የማለፊያ ኮድ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
1021+#~ "ይጠፋል"
1022+
1023+#~ msgid ""
1024+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1025+#~ "reset and all personal data will be deleted."
1026+#~ msgstr ""
1027+#~ "የተሳሳተ የማለፊያ ሐረግ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
1028+#~ "ይጠፋል"
1029+
9781030#~ msgid "Roaming"
9791031#~ msgstr "ማዘዋወሪያ"
9801032
9811033#~ msgid "Manage Scopes"
9821034#~ msgstr "የ ክልል አስተዳዳሪ"
9831035
1036+#, qt-format
1037+#~ msgid "Enter %1"
1038+#~ msgstr "ማስገቢያ %1"
1039+
9841040#~ msgid "Please re-enter"
9851041#~ msgstr "እባክዎን እንደገና-ያስገቡ"
9861042
1043+#~ msgid "Enter passphrase"
1044+#~ msgstr "የ ማለፊያ ሀረግ ያስገቡ"
1045+
1046+#~ msgid "Enter passcode"
1047+#~ msgstr "የ ማለፊያ ኮድ ያስገቡ"
1048+
9871049#~ msgid "Lock security"
9881050#~ msgstr "ደህንነት መቆለፊያ"
9891051
@@ -1193,6 +1255,10 @@ msgstr "በጣም ደካማ የ መግቢያ ቃል"
11931255#~ msgid "%a %d %b %l:%M %p"
11941256#~ msgstr "%a %d %b %l:%ደ %ከ"
11951257
1258+#~ msgctxt "passphrase"
1259+#~ msgid "Please re-enter"
1260+#~ msgstr "እባክዎን እንደገና-ያስገቡ"
1261+
11961262#~ msgid "Call back"
11971263#~ msgstr "መልሶ መደወያ"
11981264
po/ar.po+228−162
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,10 +16,10 @@ 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-06-19 05:54+0000\n"
20−"X-Generator: Launchpad (build 18097)\n"
19+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
20+"X-Generator: Launchpad (build 18204)\n"
2121
22−#: plugins/IntegratedLightDM/Greeter.cpp:112
22+#: plugins/LightDM/Greeter.cpp:123
2323msgid "Password: "
2424msgstr "كلمة السر: "
2525
@@ -36,79 +36,55 @@ msgstr "خروج"
3636msgid "Unpin shortcut"
3737msgstr "إزالة تثبيت الاختصار"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
40−msgid "Device Locked"
41−msgstr "الجهاز موصد"
42−
43−#: qml/Components/DelayedLockscreen.qml:64
44−msgid "You have been locked out due to too many failed passphrase attempts."
45−msgstr ""
46−"لقد تم تأمين الجهاز ضد الفتح بسبب المحاولات العديدة الفاشلة للعبارة السرّية."
47−
48−#: qml/Components/DelayedLockscreen.qml:65
49−msgid "You have been locked out due to too many failed passcode attempts."
50−msgstr ""
51−"لقد تم تأمين الجهاز ضد الفتح بسبب المحاولات العديدة الفاشلة للرمز السرّي."
52−
53−#: qml/Components/DelayedLockscreen.qml:74
54−#, qt-format
55−msgid "Please wait %1 minute and then try again…"
56−msgid_plural "Please wait %1 minutes and then try again…"
57−msgstr[0] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
58−msgstr[1] "برجاء الانتظار دقيقة واحدة (%1) ثم المحاولة مجددًا..."
59−msgstr[2] "برجاء الانتظار دقيقتين (%1) ثم المحاولة مجددًا..."
60−msgstr[3] "برجاء الانتظار %1 دقائق ثم المحاولة مجددًا..."
61−msgstr[4] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
62−msgstr[5] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
63−
64−#: qml/Components/Dialogs.qml:146
39+#: qml/Components/Dialogs.qml:149
6540msgctxt "Title: Lock/Log out dialog"
6641msgid "Log out"
6742msgstr "خروج"
6843
69−#: qml/Components/Dialogs.qml:147
44+#: qml/Components/Dialogs.qml:150
7045msgid "Are you sure you want to log out?"
7146msgstr "هل أنت متأكد من رغبتك في تسجيل الخروج؟"
7247
73−#: qml/Components/Dialogs.qml:149
48+#: qml/Components/Dialogs.qml:152
7449msgctxt "Button: Lock the system"
7550msgid "Lock"
7651msgstr "أوصِد"
7752
78−#: qml/Components/Dialogs.qml:156
53+#: qml/Components/Dialogs.qml:159
7954msgctxt "Button: Log out from the system"
8055msgid "Log Out"
8156msgstr "خروج"
8257
83−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
84−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
58+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
59+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
60+#: qml/Wizard/Pages/passcode-confirm.qml:32
8561#: qml/Wizard/Pages/passcode-set.qml:32
8662msgid "Cancel"
8763msgstr "إلغاء"
8864
89−#: qml/Components/Dialogs.qml:175
65+#: qml/Components/Dialogs.qml:178
9066msgctxt "Title: Reboot dialog"
9167msgid "Reboot"
9268msgstr "إعادة التشغيل"
9369
94−#: qml/Components/Dialogs.qml:176
70+#: qml/Components/Dialogs.qml:179
9571msgid "Are you sure you want to reboot?"
9672msgstr "هل أنت متأكد من رغبتك في إعادة تشغيل الجهاز؟"
9773
98−#: qml/Components/Dialogs.qml:178
74+#: qml/Components/Dialogs.qml:181
9975msgid "No"
10076msgstr "لا"
10177
102−#: qml/Components/Dialogs.qml:184
78+#: qml/Components/Dialogs.qml:187
10379msgid "Yes"
10480msgstr "نعم"
10581
106−#: qml/Components/Dialogs.qml:199
82+#: qml/Components/Dialogs.qml:202
10783msgctxt "Title: Power off/Restart dialog"
10884msgid "Power"
10985msgstr "الطاقة"
11086
111−#: qml/Components/Dialogs.qml:200
87+#: qml/Components/Dialogs.qml:203
11288msgid ""
11389"Are you sure you would like\n"
11490"to power off?"
@@ -116,12 +92,12 @@ msgstr ""
11692"هل أنت متأكد من رغبتك\n"
11793"في إيقاف التشغيل؟"
11894
119−#: qml/Components/Dialogs.qml:202
95+#: qml/Components/Dialogs.qml:205
12096msgctxt "Button: Power off the system"
12197msgid "Power off"
12298msgstr "إيقاف التشغيل"
12399
124−#: qml/Components/Dialogs.qml:211
100+#: qml/Components/Dialogs.qml:214
125101msgctxt "Button: Restart the system"
126102msgid "Restart"
127103msgstr "إعادة التشغيل"
@@ -286,18 +262,28 @@ msgstr ""
286262msgid "Closes the current window."
287263msgstr ""
288264
289−#: qml/Components/Lockscreen.qml:231
265+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
290266msgid "Return to Call"
291267msgstr "العودة إلى المكالمة"
292268
293−#: qml/Components/Lockscreen.qml:231
269+#: qml/Components/Lockscreen.qml:212
294270msgid "Emergency Call"
295271msgstr "مكالمة طوارئ"
296272
297−#: qml/Components/Lockscreen.qml:263
273+#: qml/Components/Lockscreen.qml:244
298274msgid "OK"
299275msgstr "موافق"
300276
277+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
278+#, qt-format
279+msgid "%1:%2:%3"
280+msgstr ""
281+
282+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
283+#, qt-format
284+msgid "%1:%2"
285+msgstr ""
286+
301287#: qml/Components/ModeSwitchWarningDialog.qml:32
302288msgid "Apps may have unsaved data:"
303289msgstr ""
@@ -324,55 +310,59 @@ msgstr ""
324310msgid "Close all"
325311msgstr ""
326312
327−#: qml/Dash/DashPageHeader.qml:333
313+#: qml/Components/SharingPicker.qml:54
314+msgid "Preview Share Item"
315+msgstr ""
316+
317+#: qml/Dash/DashPageHeader.qml:362
328318msgctxt "Button: Open the Ubuntu Store"
329319msgid "Store"
330320msgstr "المتجر"
331321
332−#: qml/Dash/DashPageHeader.qml:340
322+#: qml/Dash/DashPageHeader.qml:369
333323msgctxt "Button: Start a search in the current dash scope"
334324msgid "Search"
335325msgstr "بحث"
336326
337−#: qml/Dash/DashPageHeader.qml:350
327+#: qml/Dash/DashPageHeader.qml:379
338328msgctxt "Button: Show the current dash scope settings"
339329msgid "Settings"
340330msgstr "الإعدادات"
341331
342−#: qml/Dash/DashPageHeader.qml:357
332+#: qml/Dash/DashPageHeader.qml:386
343333msgid "Remove from Favorites"
344334msgstr "حذف من المفضلات"
345335
346−#: qml/Dash/DashPageHeader.qml:357
336+#: qml/Dash/DashPageHeader.qml:386
347337msgid "Add to Favorites"
348338msgstr "إضافة إلى المفضلات"
349339
350−#: qml/Dash/FiltersPopover.qml:60
340+#: qml/Dash/FiltersPopover.qml:61
351341msgid "Refine your results"
352342msgstr ""
353343
354−#: qml/Dash/FiltersPopover.qml:69
344+#: qml/Dash/FiltersPopover.qml:70
355345msgid "Reset"
356346msgstr ""
357347
358−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
348+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
359349msgid "Show less"
360350msgstr ""
361351
362−#: qml/Dash/GenericScopeView.qml:580
352+#: qml/Dash/GenericScopeView.qml:586
363353msgid "Show all"
364354msgstr ""
365355
366−#: qml/Dash/GenericScopeView.qml:637
356+#: qml/Dash/GenericScopeView.qml:643
367357msgctxt "Label: Hint for dash search line edit"
368358msgid "Search"
369359msgstr "بحث"
370360
371−#: qml/Dash/PageHeaderExtraPanel.qml:56
361+#: qml/Dash/PageHeaderExtraPanel.qml:57
372362msgid "Recent Searches"
373363msgstr ""
374364
375−#: qml/Dash/PageHeaderExtraPanel.qml:67
365+#: qml/Dash/PageHeaderExtraPanel.qml:68
376366msgid "Clear All"
377367msgstr ""
378368
@@ -384,28 +374,24 @@ msgstr "المزيد..."
384374msgid "Less..."
385375msgstr "أقل..."
386376
387−#: qml/Dash/Previews/PreviewCommentInput.qml:68
388−#: qml/Dash/Previews/PreviewRatingInput.qml:175
377+#: qml/Dash/Previews/PreviewCommentInput.qml:83
378+#: qml/Dash/Previews/PreviewRatingInput.qml:201
389379msgid "Send"
390380msgstr "أرسل"
391381
392−#: qml/Dash/Previews/PreviewRatingInput.qml:82
382+#: qml/Dash/Previews/PreviewRatingInput.qml:108
393383msgid "Rate this"
394384msgstr "قيّم ذلك"
395385
396−#: qml/Dash/Previews/PreviewRatingInput.qml:157
386+#: qml/Dash/Previews/PreviewRatingInput.qml:183
397387msgid "Add a review"
398388msgstr "أضف تعليق"
399389
400−#: qml/Dash/Previews/PreviewSharing.qml:66
401−msgid "Preview Share Item"
402−msgstr ""
403−
404−#: qml/Dash/PullToRefreshScopeStyle.qml:55
390+#: qml/Dash/PullToRefreshScopeStyle.qml:56
405391msgid "Pull to refresh…"
406392msgstr "اسحب للتحديث..."
407393
408−#: qml/Dash/PullToRefreshScopeStyle.qml:60
394+#: qml/Dash/PullToRefreshScopeStyle.qml:61
409395msgid "Release to refresh…"
410396msgstr "حرّر للتحديث..."
411397
@@ -413,15 +399,15 @@ msgstr "حرّر للتحديث..."
413399msgid "Enable location data"
414400msgstr "تفعيل بيانات الموقع"
415401
416−#: qml/Dash/ScopesList.qml:55
402+#: qml/Dash/ScopesList.qml:57
417403msgid "Manage"
418404msgstr "إدارة"
419405
420−#: qml/Dash/ScopesList.qml:101
406+#: qml/Dash/ScopesList.qml:104
421407msgid "Home"
422408msgstr "الرئيسية"
423409
424−#: qml/Dash/ScopesList.qml:102
410+#: qml/Dash/ScopesList.qml:105
425411msgid "Also installed"
426412msgstr "أيضا تم تثبيت"
427413
@@ -431,76 +417,62 @@ msgid ""
431417"touch pad to interact with the pointer."
432418msgstr ""
433419
434−#: qml/Greeter/CoverPage.qml:119
420+#: qml/Greeter/CoverPage.qml:127
435421msgid "Unlock"
436422msgstr "فك القفل"
437423
438−#: qml/Greeter/LoginList.qml:259
439−msgid "Retry"
440−msgstr "إعادة المحاولة"
424+#: qml/Greeter/DelayedLockscreen.qml:43
425+msgid "Device Locked"
426+msgstr "الجهاز موصد"
441427
442−#: qml/Greeter/LoginList.qml:260
443−msgid "Log In"
428+#: qml/Greeter/DelayedLockscreen.qml:58
429+msgid "You have been locked out due to too many failed passphrase attempts."
444430msgstr ""
431+"لقد تم تأمين الجهاز ضد الفتح بسبب المحاولات العديدة الفاشلة للعبارة السرّية."
445432
446−#: qml/Greeter/NarrowView.qml:54
447−msgid "Sorry, incorrect passphrase."
448−msgstr "عذرًا، عبارة سرّية خاطئة."
449−
450−#: qml/Greeter/NarrowView.qml:55
451−msgid "Sorry, incorrect passcode."
452−msgstr "عذرًا، رمز سرّي خاطيء."
433+#: qml/Greeter/DelayedLockscreen.qml:59
434+msgid "You have been locked out due to too many failed passcode attempts."
435+msgstr ""
436+"لقد تم تأمين الجهاز ضد الفتح بسبب المحاولات العديدة الفاشلة للرمز السرّي."
453437
454−#: qml/Greeter/NarrowView.qml:56
455−msgid "This will be your last attempt."
456−msgstr "هذه ستكون المحاولة الأخيرة لك."
438+#: qml/Greeter/DelayedLockscreen.qml:68
439+#, qt-format
440+msgid "Please wait %1 minute and then try again…"
441+msgid_plural "Please wait %1 minutes and then try again…"
442+msgstr[0] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
443+msgstr[1] "برجاء الانتظار دقيقة واحدة (%1) ثم المحاولة مجددًا..."
444+msgstr[2] "برجاء الانتظار دقيقتين (%1) ثم المحاولة مجددًا..."
445+msgstr[3] "برجاء الانتظار %1 دقائق ثم المحاولة مجددًا..."
446+msgstr[4] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
447+msgstr[5] "برجاء الانتظار %1 دقيقة ثم المحاولة مجددًا..."
457448
458−#: qml/Greeter/NarrowView.qml:58
459−msgid ""
460−"If passphrase is entered incorrectly, your phone will conduct a factory "
461−"reset and all personal data will be deleted."
449+#: qml/Greeter/Greeter.qml:596
450+msgid "Try again"
462451msgstr ""
463−"إذا تم إدخال العبارة السرية بشكل خاطئ، فسوف يتم إعادة الهاتف لحالة ضبط "
464−"المصنع وسيتم حذف كافة البيانات الشخصية."
465452
466−#: qml/Greeter/NarrowView.qml:59
467−msgid ""
468−"If passcode is entered incorrectly, your phone will conduct a factory reset "
469−"and all personal data will be deleted."
453+#: qml/Greeter/LoginList.qml:70
454+msgid "Passphrase"
470455msgstr ""
471−"إذا تم إدخال العبارة السرية بشكل خاطئ، فسوف يتم إعادة الهاتف لحالة ضبط "
472−"المصنع وسيتم حذف كافة البيانات الشخصية."
473456
474−#: qml/Greeter/NarrowView.qml:116
475−#, qt-format
476−msgid "Enter %1"
477−msgstr "أدخِل %1"
478−
479−#: qml/Greeter/NarrowView.qml:117
480−msgid "Enter passphrase"
481−msgstr "أدخِل العبارة السرية"
482−
483−#: qml/Greeter/NarrowView.qml:118
484−msgid "Enter passcode"
485−msgstr "أدخِل الرمز السرّي"
457+#: qml/Greeter/LoginList.qml:71
458+msgid "Passcode"
459+msgstr ""
486460
487−#: qml/Greeter/NarrowView.qml:119
488−#, qt-format
489−msgid "Sorry, incorrect %1"
490−msgstr "نأسف، %1 غير صحيحية"
461+#: qml/Greeter/LoginList.qml:98
462+msgid "Retry"
463+msgstr "إعادة المحاولة"
491464
492−#: qml/Greeter/NarrowView.qml:120
493−msgid "Sorry, incorrect passphrase"
494−msgstr "نأسف، عبارة السّر غير صحيحية"
465+#: qml/Greeter/LoginList.qml:99
466+msgid "Log In"
467+msgstr ""
495468
496−#: qml/Greeter/NarrowView.qml:121
497−msgctxt "passphrase"
498−msgid "Please re-enter"
499−msgstr "برجاء إعادة إدخالها"
469+#: qml/Greeter/NarrowView.qml:252
470+msgid "Emergency"
471+msgstr ""
500472
501−#: qml/Greeter/NarrowView.qml:122
502−msgid "Sorry, incorrect passcode"
503−msgstr "نأسف، الرمز السري غير صحيح"
473+#: qml/Greeter/SessionsList.qml:122
474+msgid "Select desktop environment"
475+msgstr ""
504476
505477#: qml/Notifications/NotificationMenuItemFactory.qml:124
506478msgid "Show password"
@@ -630,40 +602,54 @@ msgctxt "Button: Go back one page in the Wizard"
630602msgid "Back"
631603msgstr "عودة"
632604
633−#: qml/Wizard/Pages/10-welcome.qml:27
605+#: qml/Wizard/Pages/10-welcome.qml:28
634606msgid "Language"
635607msgstr ""
636608
637−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
638−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
639−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
609+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
610+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
611+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
612+#: qml/Wizard/Pages/70-passwd-type.qml:145
640613#: qml/Wizard/Pages/75-report-check.qml:84
641−#: qml/Wizard/Pages/passcode-desktop.qml:124
642−#: qml/Wizard/Pages/password-set.qml:141
614+#: qml/Wizard/Pages/passcode-desktop.qml:142
615+#: qml/Wizard/Pages/password-set.qml:142
643616msgid "Next"
644617msgstr ""
645618
646−#: qml/Wizard/Pages/30-wifi.qml:29
619+#: qml/Wizard/Pages/20-keyboard.qml:31
620+msgid "Select Keyboard"
621+msgstr ""
622+
623+#: qml/Wizard/Pages/20-keyboard.qml:71
624+msgid "Keyboard language"
625+msgstr ""
626+
627+#: qml/Wizard/Pages/20-keyboard.qml:93
628+msgid "Keyboard layout"
629+msgstr ""
630+
631+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
632+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
633+#: qml/Wizard/Pages/sim.qml:101
634+msgid "Skip"
635+msgstr "تخطي"
636+
637+#: qml/Wizard/Pages/30-wifi.qml:31
647638msgid "Connect to Wi‑Fi"
648639msgstr "اتصل بالواي فاي"
649640
650−#: qml/Wizard/Pages/30-wifi.qml:130
641+#: qml/Wizard/Pages/30-wifi.qml:132
651642msgid "Connected"
652643msgstr ""
653644
654−#: qml/Wizard/Pages/30-wifi.qml:163
645+#: qml/Wizard/Pages/30-wifi.qml:165
655646msgid "Available Wi-Fi networks"
656647msgstr ""
657648
658−#: qml/Wizard/Pages/30-wifi.qml:164
649+#: qml/Wizard/Pages/30-wifi.qml:166
659650msgid "No available Wi-Fi networks"
660651msgstr ""
661652
662−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
663−#: qml/Wizard/Pages/sim.qml:101
664−msgid "Skip"
665−msgstr "تخطي"
666−
667653#: qml/Wizard/Pages/40-location.qml:27
668654msgid "Location Services"
669655msgstr ""
@@ -696,11 +682,11 @@ msgstr ""
696682msgid "You can change it later in System Settings."
697683msgstr ""
698684
699−#: qml/Wizard/Pages/50-timezone.qml:29
685+#: qml/Wizard/Pages/50-timezone.qml:30
700686msgid "Time Zone"
701687msgstr ""
702688
703−#: qml/Wizard/Pages/50-timezone.qml:181
689+#: qml/Wizard/Pages/50-timezone.qml:182
704690msgid "Enter your city"
705691msgstr ""
706692
@@ -712,21 +698,21 @@ msgstr ""
712698msgid "Preferred Name"
713699msgstr ""
714700
715−#: qml/Wizard/Pages/70-passwd-type.qml:39
701+#: qml/Wizard/Pages/70-passwd-type.qml:40
716702msgid "Lock Screen"
717703msgstr ""
718704
719−#: qml/Wizard/Pages/70-passwd-type.qml:101
705+#: qml/Wizard/Pages/70-passwd-type.qml:102
720706msgctxt "Label: Type of security method"
721707msgid "Create new password"
722708msgstr ""
723709
724−#: qml/Wizard/Pages/70-passwd-type.qml:103
710+#: qml/Wizard/Pages/70-passwd-type.qml:104
725711msgctxt "Label: Type of security method"
726712msgid "Create passcode (numbers only)"
727713msgstr ""
728714
729−#: qml/Wizard/Pages/70-passwd-type.qml:105
715+#: qml/Wizard/Pages/70-passwd-type.qml:106
730716msgctxt "Label: Type of security method"
731717msgid "No lock code"
732718msgstr ""
@@ -747,6 +733,35 @@ msgstr ""
747733msgid "Privacy policy"
748734msgstr ""
749735
736+#: qml/Wizard/Pages/77-system-update.qml:28
737+msgid "Update Device"
738+msgstr ""
739+
740+#: qml/Wizard/Pages/77-system-update.qml:55
741+msgid ""
742+"There is a system update available and ready to install. Afterwards, the "
743+"device will automatically restart."
744+msgstr ""
745+
746+#: qml/Wizard/Pages/77-system-update.qml:76
747+msgctxt "string identifying name of the update"
748+msgid "Ubuntu system"
749+msgstr ""
750+
751+#: qml/Wizard/Pages/77-system-update.qml:83
752+#, qt-format
753+msgctxt "version of the system update"
754+msgid "Version %1"
755+msgstr ""
756+
757+#: qml/Wizard/Pages/77-system-update.qml:102
758+msgid "This could take a few minutes..."
759+msgstr ""
760+
761+#: qml/Wizard/Pages/77-system-update.qml:116
762+msgid "Install and restart now"
763+msgstr ""
764+
750765#: qml/Wizard/Pages/80-finished.qml:89
751766msgid "Welcome to Ubuntu"
752767msgstr ""
@@ -790,7 +805,7 @@ msgid "Service Terms"
790805msgstr ""
791806
792807#: qml/Wizard/Pages/passcode-confirm.qml:43
793−#: qml/Wizard/Pages/passcode-desktop.qml:80
808+#: qml/Wizard/Pages/passcode-desktop.qml:97
794809msgid "Confirm passcode"
795810msgstr "تأكيد الرمز السري"
796811
@@ -803,28 +818,28 @@ msgctxt "Enter the passcode again"
803818msgid "Please re-enter."
804819msgstr ""
805820
806−#: qml/Wizard/Pages/passcode-desktop.qml:30
821+#: qml/Wizard/Pages/passcode-desktop.qml:31
807822msgid "Lock Screen Passcode"
808823msgstr ""
809824
810−#: qml/Wizard/Pages/passcode-desktop.qml:56
825+#: qml/Wizard/Pages/passcode-desktop.qml:61
811826msgid "Enter 4 numbers to setup your passcode"
812827msgstr ""
813828
814−#: qml/Wizard/Pages/passcode-desktop.qml:65
829+#: qml/Wizard/Pages/passcode-desktop.qml:77
815830#: qml/Wizard/Pages/passcode-set.qml:54
816831msgid "Choose passcode"
817832msgstr ""
818833
819−#: qml/Wizard/Pages/passcode-desktop.qml:105
834+#: qml/Wizard/Pages/passcode-desktop.qml:127
820835msgid "Passcode too short"
821836msgstr ""
822837
823−#: qml/Wizard/Pages/passcode-desktop.qml:107
838+#: qml/Wizard/Pages/passcode-desktop.qml:129
824839msgid "Passcodes match"
825840msgstr ""
826841
827−#: qml/Wizard/Pages/passcode-desktop.qml:109
842+#: qml/Wizard/Pages/passcode-desktop.qml:131
828843msgid "Passcodes do not match"
829844msgstr ""
830845
@@ -832,19 +847,19 @@ msgstr ""
832847msgid "Passcode must be 4 characters long"
833848msgstr ""
834849
835−#: qml/Wizard/Pages/password-set.qml:30
850+#: qml/Wizard/Pages/password-set.qml:31
836851msgid "Lock Screen Password"
837852msgstr ""
838853
839−#: qml/Wizard/Pages/password-set.qml:61
854+#: qml/Wizard/Pages/password-set.qml:62
840855msgid "Enter at least 8 characters"
841856msgstr ""
842857
843−#: qml/Wizard/Pages/password-set.qml:73
858+#: qml/Wizard/Pages/password-set.qml:74
844859msgid "Choose password"
845860msgstr ""
846861
847−#: qml/Wizard/Pages/password-set.qml:103
862+#: qml/Wizard/Pages/password-set.qml:104
848863msgid "Confirm password"
849864msgstr ""
850865
@@ -873,26 +888,30 @@ msgid "To proceed with no SIM tap Skip."
873888msgstr ""
874889
875890#: qml/Wizard/PasswordMeter.qml:87
876−msgid "Passwords match"
891+msgid "Password too short"
877892msgstr ""
878893
879894#: qml/Wizard/PasswordMeter.qml:89
895+msgid "Passwords match"
896+msgstr ""
897+
898+#: qml/Wizard/PasswordMeter.qml:91
880899msgid "Passwords do not match"
881900msgstr ""
882901
883−#: qml/Wizard/PasswordMeter.qml:93
902+#: qml/Wizard/PasswordMeter.qml:95
884903msgid "Strong password"
885904msgstr ""
886905
887−#: qml/Wizard/PasswordMeter.qml:95
906+#: qml/Wizard/PasswordMeter.qml:97
888907msgid "Fair password"
889908msgstr ""
890909
891−#: qml/Wizard/PasswordMeter.qml:97
910+#: qml/Wizard/PasswordMeter.qml:99
892911msgid "Weak password"
893912msgstr ""
894913
895−#: qml/Wizard/PasswordMeter.qml:99
914+#: qml/Wizard/PasswordMeter.qml:101
896915msgid "Very weak password"
897916msgstr ""
898917
@@ -1006,9 +1025,38 @@ msgstr ""
10061025#~ msgid "Tap to unlock"
10071026#~ msgstr "انقر لفك القفل"
10081027
1028+#, qt-format
1029+#~ msgid "Enter %1"
1030+#~ msgstr "أدخِل %1"
1031+
1032+#~ msgid "Sorry, incorrect passcode."
1033+#~ msgstr "عذرًا، رمز سرّي خاطيء."
1034+
1035+#~ msgid "Enter passphrase"
1036+#~ msgstr "أدخِل العبارة السرية"
1037+
1038+#~ msgid "Enter passcode"
1039+#~ msgstr "أدخِل الرمز السرّي"
1040+
1041+#~ msgid "Sorry, incorrect passphrase."
1042+#~ msgstr "عذرًا، عبارة سرّية خاطئة."
1043+
1044+#~ msgid "This will be your last attempt."
1045+#~ msgstr "هذه ستكون المحاولة الأخيرة لك."
1046+
1047+#, qt-format
1048+#~ msgid "Sorry, incorrect %1"
1049+#~ msgstr "نأسف، %1 غير صحيحية"
1050+
1051+#~ msgid "Sorry, incorrect passphrase"
1052+#~ msgstr "نأسف، عبارة السّر غير صحيحية"
1053+
10091054#~ msgid "Please re-enter"
10101055#~ msgstr "برجاء إعادة إدخالها"
10111056
1057+#~ msgid "Sorry, incorrect passcode"
1058+#~ msgstr "نأسف، الرمز السري غير صحيح"
1059+
10121060#~ msgid "This action does different things for different apps"
10131061#~ msgstr "هذا الإجراء يقوم بأشياء مختلفة على التطبيقات المختلفة"
10141062
@@ -1129,6 +1177,10 @@ msgstr ""
11291177#~ "باستخدام نظام تحديد المواقع (GPS)، والواي فاي، وبيانات الشبكة الخلوية "
11301178#~ "(مستحسن)"
11311179
1180+#~ msgctxt "passphrase"
1181+#~ msgid "Please re-enter"
1182+#~ msgstr "برجاء إعادة إدخالها"
1183+
11321184#~ msgid ""
11331185#~ "This can be disabled in <b>System Settings</b> under <b>Security &amp; "
11341186#~ "Privacy</b>"
@@ -1167,3 +1219,17 @@ msgstr ""
11671219#~ msgstr ""
11681220#~ "باختيارك لهذا الخيار فإنك توافق على <a href='#'>الشروط والأحكام</a> الخاصة "
11691221#~ "بـ Nokia HERE."
1222+
1223+#~ msgid ""
1224+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1225+#~ "and all personal data will be deleted."
1226+#~ msgstr ""
1227+#~ "إذا تم إدخال العبارة السرية بشكل خاطئ، فسوف يتم إعادة الهاتف لحالة ضبط "
1228+#~ "المصنع وسيتم حذف كافة البيانات الشخصية."
1229+
1230+#~ msgid ""
1231+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1232+#~ "reset and all personal data will be deleted."
1233+#~ msgstr ""
1234+#~ "إذا تم إدخال العبارة السرية بشكل خاطئ، فسوف يتم إعادة الهاتف لحالة ضبط "
1235+#~ "المصنع وسيتم حذف كافة البيانات الشخصية."
po/ast.po+299−224
@@ -7,18 +7,18 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-06-17 01:22+0000\n"
11−"PO-Revision-Date: 2016-05-16 14:07+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+0000\n"
11+"PO-Revision-Date: 2016-09-28 13:40+0000\n"
1212"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
1313"Language-Team: Asturian <ast@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-29 06:45+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr "Contraseña: "
2424
@@ -35,74 +35,55 @@ msgstr "Colar"
3535msgid "Unpin shortcut"
3636msgstr "Desanclar atayu"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr "Preséu bloquiáu"
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr "Quedasti bloquiáu polos escesivos intentos fallíos de fras de pasu."
45−
46−#: qml/Components/DelayedLockscreen.qml:65
47−msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr ""
49−"Quedasti bloquiáu polos escesivos intentos fallíos de códigu de pasu."
50−
51−#: qml/Components/DelayedLockscreen.qml:74
52−#, qt-format
53−msgid "Please wait %1 minute and then try again…"
54−msgid_plural "Please wait %1 minutes and then try again…"
55−msgstr[0] "Por favor, espera %1 minutu y vuelvi a intentalo…"
56−msgstr[1] "Por favor, espera %1 minutos y vuelvi a intentalo…"
57−
58−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
5939msgctxt "Title: Lock/Log out dialog"
6040msgid "Log out"
6141msgstr "Zarrar sesión"
6242
63−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6444msgid "Are you sure you want to log out?"
6545msgstr "¿De xuru que quies zarrar la sesión?"
6646
67−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
6848msgctxt "Button: Lock the system"
6949msgid "Lock"
7050msgstr "Bloquiar"
7151
72−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7353msgctxt "Button: Log out from the system"
7454msgid "Log Out"
7555msgstr "Zarrar sesión"
7656
77−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
78−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
7960#: qml/Wizard/Pages/passcode-set.qml:32
8061msgid "Cancel"
8162msgstr "Encaboxar"
8263
83−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8465msgctxt "Title: Reboot dialog"
8566msgid "Reboot"
8667msgstr "Reaniciu"
8768
88−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
8970msgid "Are you sure you want to reboot?"
9071msgstr "¿De xuru que quies reaniciar?"
9172
92−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9374msgid "No"
9475msgstr "Non"
9576
96−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
9778msgid "Yes"
9879msgstr "Sí"
9980
100−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10182msgctxt "Title: Power off/Restart dialog"
10283msgid "Power"
10384msgstr "Apagáu"
10485
105−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10687msgid ""
10788"Are you sure you would like\n"
10889"to power off?"
@@ -110,188 +91,198 @@ msgstr ""
11091"¿De xuru que te prestaría\n"
11192"apagar?"
11293
113−#: qml/Components/Dialogs.qml:202
94+#: qml/Components/Dialogs.qml:205
11495msgctxt "Button: Power off the system"
11596msgid "Power off"
11697msgstr "Apagar"
11798
118−#: qml/Components/Dialogs.qml:211
99+#: qml/Components/Dialogs.qml:214
119100msgctxt "Button: Restart the system"
120101msgid "Restart"
121102msgstr "Reaniciar"
122103
123104#: qml/Components/KeyboardShortcutsOverlay.qml:41
124105msgid "Keyboard Shortcuts"
125−msgstr ""
106+msgstr "Atayos de tecláu"
126107
127108#: qml/Components/KeyboardShortcutsOverlay.qml:55
128109msgid "Unity 8"
129−msgstr ""
110+msgstr "Unity 8"
130111
131112#: qml/Components/KeyboardShortcutsOverlay.qml:62
132113msgid "PrtScr"
133−msgstr ""
114+msgstr "ImprPant"
134115
135116#: qml/Components/KeyboardShortcutsOverlay.qml:67
136117msgid "Takes a screenshot."
137−msgstr ""
118+msgstr "Saca una imaxe de la pantalla."
138119
139120#: qml/Components/KeyboardShortcutsOverlay.qml:75
140121msgid "Alt + PrtScr"
141−msgstr ""
122+msgstr "Alt + ImprPant"
142123
143124#: qml/Components/KeyboardShortcutsOverlay.qml:80
144125msgid "Takes a screenshot of a window."
145−msgstr ""
126+msgstr "Saca una imaxe d'una ventana."
146127
147128#: qml/Components/KeyboardShortcutsOverlay.qml:88
148129msgid "Super + Space"
149−msgstr ""
130+msgstr "Super + Espaciu"
150131
151132#: qml/Components/KeyboardShortcutsOverlay.qml:93
152133msgid "Switches to next keyboard layout."
153−msgstr ""
134+msgstr "Salta al siguiente diseñu de tecláu."
154135
155136#: qml/Components/KeyboardShortcutsOverlay.qml:101
156137msgid "Super + Shift + Space"
157−msgstr ""
138+msgstr "Super +Mayús + Espaciu"
158139
159140#: qml/Components/KeyboardShortcutsOverlay.qml:106
160141msgid "Switches to previous keyboard layout."
161−msgstr ""
142+msgstr "Salta al diseñu de tecláu anterior."
162143
163144#: qml/Components/KeyboardShortcutsOverlay.qml:118
164145msgid "Launcher"
165−msgstr ""
146+msgstr "Llanzador"
166147
167148#: qml/Components/KeyboardShortcutsOverlay.qml:125
168149msgid "Super (Hold)"
169−msgstr ""
150+msgstr "Super (Caltener)"
170151
171152#: qml/Components/KeyboardShortcutsOverlay.qml:130
172153msgid "Opens the launcher, displays shortcuts."
173−msgstr ""
154+msgstr "Abre'l llanzador, amuesa atayos."
174155
175156#: qml/Components/KeyboardShortcutsOverlay.qml:138
176157msgid "Alt + F1"
177−msgstr ""
158+msgstr "Alt + F1"
178159
179160#: qml/Components/KeyboardShortcutsOverlay.qml:143
180161msgid "Opens launcher keyboard navigation mode."
181−msgstr ""
162+msgstr "Abre'l mou de navegación con tecláu del llanzador."
182163
183164#: qml/Components/KeyboardShortcutsOverlay.qml:151
184165msgid "Super + Tab"
185−msgstr ""
166+msgstr "Super + Tab"
186167
187168#: qml/Components/KeyboardShortcutsOverlay.qml:156
188169msgid "Switches applications via the launcher."
189−msgstr ""
170+msgstr "Cambia d'aplicaciones col llanzador."
190171
191172#: qml/Components/KeyboardShortcutsOverlay.qml:164
192173msgid "Super + 0 to 9"
193−msgstr ""
174+msgstr "Super + 0 a 9"
194175
195176#: qml/Components/KeyboardShortcutsOverlay.qml:169
196177msgid "Same as clicking on a launcher icon."
197−msgstr ""
178+msgstr "Igual que facer click nel iconu del llanzador."
198179
199180#: qml/Components/KeyboardShortcutsOverlay.qml:181
200181msgid "Scopes"
201−msgstr ""
182+msgstr "Ámbitos"
202183
203184#: qml/Components/KeyboardShortcutsOverlay.qml:188
204185msgid "Super (Tap)"
205−msgstr ""
186+msgstr "Super (Tocar)"
206187
207188#: qml/Components/KeyboardShortcutsOverlay.qml:193
208189msgid "Opens the Scopes home."
209−msgstr ""
190+msgstr "Abre'l principiu d'Ámbitos"
210191
211192#: qml/Components/KeyboardShortcutsOverlay.qml:209
212193msgid "Switching"
213−msgstr ""
194+msgstr "Conmutación"
214195
215196#: qml/Components/KeyboardShortcutsOverlay.qml:216
216197msgid "Alt + Tab"
217−msgstr ""
198+msgstr "Alt + Tab"
218199
219200#: qml/Components/KeyboardShortcutsOverlay.qml:221
220201msgid "Switches between applications."
221−msgstr ""
202+msgstr "Conmuta ente aplicaciones."
222203
223204#: qml/Components/KeyboardShortcutsOverlay.qml:229
224205msgid "Super + W"
225−msgstr ""
206+msgstr "Super + W"
226207
227208#: qml/Components/KeyboardShortcutsOverlay.qml:234
228209msgid "Opens the desktop spread."
229−msgstr ""
210+msgstr "Abre esparder l'escritoriu."
230211
231212#: qml/Components/KeyboardShortcutsOverlay.qml:242
232213msgid "Cursor Left or Right"
233−msgstr ""
214+msgstr "Flecha izq. o dre."
234215
235216#: qml/Components/KeyboardShortcutsOverlay.qml:247
236217msgid "Moves the focus."
237−msgstr ""
218+msgstr "Mueve'l focu"
238219
239220#: qml/Components/KeyboardShortcutsOverlay.qml:259
240221msgid "Windows"
241−msgstr ""
222+msgstr "Ventanes"
242223
243224#: qml/Components/KeyboardShortcutsOverlay.qml:266
244225msgid "Ctrl + Super + D"
245−msgstr ""
226+msgstr "Ctrl + Super + D"
246227
247228#: qml/Components/KeyboardShortcutsOverlay.qml:271
248229msgid "Minimizes all windows."
249−msgstr ""
230+msgstr "Amenorga toles ventanes."
250231
251232#: qml/Components/KeyboardShortcutsOverlay.qml:279
252233msgid "Ctrl + Super + Up"
253−msgstr ""
234+msgstr "Ctrl + Super + Arriba"
254235
255236#: qml/Components/KeyboardShortcutsOverlay.qml:284
256237msgid "Maximizes the current window."
257−msgstr ""
238+msgstr "Maximiza la ventana actual."
258239
259240#: qml/Components/KeyboardShortcutsOverlay.qml:292
260241msgid "Ctrl + Super + Down"
261−msgstr ""
242+msgstr "Ctrl + Super + Abaxo"
262243
263244#: qml/Components/KeyboardShortcutsOverlay.qml:297
264245msgid "Minimizes or restores the current window."
265−msgstr ""
246+msgstr "Amenorga o restaura la ventana actual."
266247
267248#: qml/Components/KeyboardShortcutsOverlay.qml:305
268249msgid "Ctrl + Super + Left or Right"
269−msgstr ""
250+msgstr "Ctrl + Super + Izquierda o Drecha"
270251
271252#: qml/Components/KeyboardShortcutsOverlay.qml:310
272253msgid "Semi-maximizes the current window."
273−msgstr ""
254+msgstr "Semi-maximiza la ventana actual."
274255
275256#: qml/Components/KeyboardShortcutsOverlay.qml:318
276257msgid "Alt + F4"
277−msgstr ""
258+msgstr "Alt + F4"
278259
279260#: qml/Components/KeyboardShortcutsOverlay.qml:323
280261msgid "Closes the current window."
281−msgstr ""
262+msgstr "Zarra la ventana actual."
282263
283−#: qml/Components/Lockscreen.qml:231
264+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
284265msgid "Return to Call"
285266msgstr "Tornar a la llamada"
286267
287−#: qml/Components/Lockscreen.qml:231
268+#: qml/Components/Lockscreen.qml:212
288269msgid "Emergency Call"
289270msgstr "Llamada d'emerxencia"
290271
291−#: qml/Components/Lockscreen.qml:263
272+#: qml/Components/Lockscreen.qml:244
292273msgid "OK"
293274msgstr "Aceutar"
294275
276+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
277+#, qt-format
278+msgid "%1:%2:%3"
279+msgstr "%1:%2:%3"
280+
281+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
282+#, qt-format
283+msgid "%1:%2"
284+msgstr "%1:%2"
285+
295286#: qml/Components/ModeSwitchWarningDialog.qml:32
296287msgid "Apps may have unsaved data:"
297288msgstr "Apps que pueden tener datos sin guardar:"
@@ -318,55 +309,59 @@ msgstr "Reconeutar agora."
318309msgid "Close all"
319310msgstr "Zarrar too"
320311
321−#: qml/Dash/DashPageHeader.qml:333
312+#: qml/Components/SharingPicker.qml:54
313+msgid "Preview Share Item"
314+msgstr "Entever l'elementu compartíu"
315+
316+#: qml/Dash/DashPageHeader.qml:362
322317msgctxt "Button: Open the Ubuntu Store"
323318msgid "Store"
324319msgstr "Tienda"
325320
326−#: qml/Dash/DashPageHeader.qml:340
321+#: qml/Dash/DashPageHeader.qml:369
327322msgctxt "Button: Start a search in the current dash scope"
328323msgid "Search"
329324msgstr "Guetar"
330325
331−#: qml/Dash/DashPageHeader.qml:350
326+#: qml/Dash/DashPageHeader.qml:379
332327msgctxt "Button: Show the current dash scope settings"
333328msgid "Settings"
334329msgstr "Axustes"
335330
336−#: qml/Dash/DashPageHeader.qml:357
331+#: qml/Dash/DashPageHeader.qml:386
337332msgid "Remove from Favorites"
338333msgstr "Desaniciar de favoritos"
339334
340−#: qml/Dash/DashPageHeader.qml:357
335+#: qml/Dash/DashPageHeader.qml:386
341336msgid "Add to Favorites"
342337msgstr "Amestar a favoritos"
343338
344−#: qml/Dash/FiltersPopover.qml:60
339+#: qml/Dash/FiltersPopover.qml:61
345340msgid "Refine your results"
346341msgstr "Refina los resultaos"
347342
348−#: qml/Dash/FiltersPopover.qml:69
343+#: qml/Dash/FiltersPopover.qml:70
349344msgid "Reset"
350345msgstr "Reafitar"
351346
352−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
347+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
353348msgid "Show less"
354349msgstr "Ver menos"
355350
356−#: qml/Dash/GenericScopeView.qml:580
351+#: qml/Dash/GenericScopeView.qml:586
357352msgid "Show all"
358353msgstr "Ver too"
359354
360−#: qml/Dash/GenericScopeView.qml:637
355+#: qml/Dash/GenericScopeView.qml:643
361356msgctxt "Label: Hint for dash search line edit"
362357msgid "Search"
363358msgstr "Guetar"
364359
365−#: qml/Dash/PageHeaderExtraPanel.qml:56
360+#: qml/Dash/PageHeaderExtraPanel.qml:57
366361msgid "Recent Searches"
367362msgstr "Guetes recién"
368363
369−#: qml/Dash/PageHeaderExtraPanel.qml:67
364+#: qml/Dash/PageHeaderExtraPanel.qml:68
370365msgid "Clear All"
371366msgstr "Llimpiar too"
372367
@@ -378,28 +373,24 @@ msgstr "Más…"
378373msgid "Less..."
379374msgstr "Menos…"
380375
381−#: qml/Dash/Previews/PreviewCommentInput.qml:68
382−#: qml/Dash/Previews/PreviewRatingInput.qml:175
376+#: qml/Dash/Previews/PreviewCommentInput.qml:83
377+#: qml/Dash/Previews/PreviewRatingInput.qml:201
383378msgid "Send"
384379msgstr "Unviar"
385380
386−#: qml/Dash/Previews/PreviewRatingInput.qml:82
381+#: qml/Dash/Previews/PreviewRatingInput.qml:108
387382msgid "Rate this"
388383msgstr "Valorar esto"
389384
390−#: qml/Dash/Previews/PreviewRatingInput.qml:157
385+#: qml/Dash/Previews/PreviewRatingInput.qml:183
391386msgid "Add a review"
392387msgstr "Amestar una reseña"
393388
394−#: qml/Dash/Previews/PreviewSharing.qml:66
395−msgid "Preview Share Item"
396−msgstr "Entever l'elementu compartíu"
397−
398−#: qml/Dash/PullToRefreshScopeStyle.qml:55
389+#: qml/Dash/PullToRefreshScopeStyle.qml:56
399390msgid "Pull to refresh…"
400391msgstr "Tira p'anovar..."
401392
402−#: qml/Dash/PullToRefreshScopeStyle.qml:60
393+#: qml/Dash/PullToRefreshScopeStyle.qml:61
403394msgid "Release to refresh…"
404395msgstr "Sueltar p'anovar..."
405396
@@ -407,15 +398,15 @@ msgstr "Sueltar p'anovar..."
407398msgid "Enable location data"
408399msgstr "Habilitar datos d'allugamientu"
409400
410−#: qml/Dash/ScopesList.qml:55
401+#: qml/Dash/ScopesList.qml:57
411402msgid "Manage"
412403msgstr "Xestionar"
413404
414−#: qml/Dash/ScopesList.qml:101
405+#: qml/Dash/ScopesList.qml:104
415406msgid "Home"
416407msgstr "Aniciu"
417408
418−#: qml/Dash/ScopesList.qml:102
409+#: qml/Dash/ScopesList.qml:105
419410msgid "Also installed"
420411msgstr "Tamién instalaos"
421412
@@ -427,76 +418,57 @@ msgstr ""
427418"El preséu agora ta coneutáu con una pantalla esterna. Usa esta pantalla como "
428419"touch pad pa interactuar col punteru."
429420
430−#: qml/Greeter/CoverPage.qml:119
421+#: qml/Greeter/CoverPage.qml:127
431422msgid "Unlock"
432423msgstr "Desbloquiar"
433424
434−#: qml/Greeter/LoginList.qml:259
435−msgid "Retry"
436−msgstr "Reintentar"
437−
438−#: qml/Greeter/LoginList.qml:260
439−msgid "Log In"
440−msgstr ""
441−
442−#: qml/Greeter/NarrowView.qml:54
443−msgid "Sorry, incorrect passphrase."
444−msgstr "Perdón, fras de pasu incorreuta"
445−
446−#: qml/Greeter/NarrowView.qml:55
447−msgid "Sorry, incorrect passcode."
448−msgstr "Perdón, códigu de pasu incorreutu."
449−
450−#: qml/Greeter/NarrowView.qml:56
451−msgid "This will be your last attempt."
452−msgstr "Esti sedra'l to caberu intentu"
425+#: qml/Greeter/DelayedLockscreen.qml:43
426+msgid "Device Locked"
427+msgstr "Preséu bloquiáu"
453428
454−#: qml/Greeter/NarrowView.qml:58
455−msgid ""
456−"If passphrase is entered incorrectly, your phone will conduct a factory "
457−"reset and all personal data will be deleted."
458−msgstr ""
459−"Si s'inxerta la fras de pasu incorreutamente, el to teléfonu va reafitase y "
460−"van desaniciase tolos datos personales."
429+#: qml/Greeter/DelayedLockscreen.qml:58
430+msgid "You have been locked out due to too many failed passphrase attempts."
431+msgstr "Quedasti bloquiáu polos escesivos intentos fallíos de fras de pasu."
461432
462−#: qml/Greeter/NarrowView.qml:59
463−msgid ""
464−"If passcode is entered incorrectly, your phone will conduct a factory reset "
465−"and all personal data will be deleted."
433+#: qml/Greeter/DelayedLockscreen.qml:59
434+msgid "You have been locked out due to too many failed passcode attempts."
466435msgstr ""
467−"Si s'inxerta'l códigu de pasu incorreutamente, el to teléfonu va reafitase y "
468−"van desaniciase tolos datos personales."
436+"Quedasti bloquiáu polos escesivos intentos fallíos de códigu de pasu."
469437
470−#: qml/Greeter/NarrowView.qml:116
438+#: qml/Greeter/DelayedLockscreen.qml:68
471439#, qt-format
472−msgid "Enter %1"
473−msgstr "Introduz %1"
440+msgid "Please wait %1 minute and then try again…"
441+msgid_plural "Please wait %1 minutes and then try again…"
442+msgstr[0] "Por favor, espera %1 minutu y vuelvi a intentalo…"
443+msgstr[1] "Por favor, espera %1 minutos y vuelvi a intentalo…"
474444
475−#: qml/Greeter/NarrowView.qml:117
476−msgid "Enter passphrase"
477−msgstr "Introduz la fras de pasu"
445+#: qml/Greeter/Greeter.qml:596
446+msgid "Try again"
447+msgstr "Tentar otra vuelta"
478448
479−#: qml/Greeter/NarrowView.qml:118
480−msgid "Enter passcode"
481−msgstr "Introduz el códigu de pasu"
449+#: qml/Greeter/LoginList.qml:70
450+msgid "Passphrase"
451+msgstr "Fras de pasu"
482452
483−#: qml/Greeter/NarrowView.qml:119
484−#, qt-format
485−msgid "Sorry, incorrect %1"
486−msgstr "Sentímoslo, %1 incorreutu"
453+#: qml/Greeter/LoginList.qml:71
454+msgid "Passcode"
455+msgstr "Códigu de pasu"
456+
457+#: qml/Greeter/LoginList.qml:98
458+msgid "Retry"
459+msgstr "Reintentar"
487460
488−#: qml/Greeter/NarrowView.qml:120
489−msgid "Sorry, incorrect passphrase"
490−msgstr "Sentímoslo, contraseña incorreuta"
461+#: qml/Greeter/LoginList.qml:99
462+msgid "Log In"
463+msgstr "Aniciar sesión"
491464
492−#: qml/Greeter/NarrowView.qml:121
493−msgctxt "passphrase"
494−msgid "Please re-enter"
495−msgstr "Vuelve a escribila"
465+#: qml/Greeter/NarrowView.qml:252
466+msgid "Emergency"
467+msgstr "Emerxencia"
496468
497−#: qml/Greeter/NarrowView.qml:122
498−msgid "Sorry, incorrect passcode"
499−msgstr "Sentímoslo, códigu de pasu incorreutu"
469+#: qml/Greeter/SessionsList.qml:122
470+msgid "Select desktop environment"
471+msgstr "Esbillar entornu d'escritoriu"
500472
501473#: qml/Notifications/NotificationMenuItemFactory.qml:124
502474msgid "Show password"
@@ -595,7 +567,7 @@ msgstr "Eslizamientu llargu dende'l berbesu izquierdu pa ver el scope Güei"
595567
596568#: qml/Tutorial/TutorialLeft.qml:47
597569msgid "Short swipe from the left edge to open the launcher"
598−msgstr ""
570+msgstr "Barríu curtiu dende'l berbesu izquierdu p'abrir el llanzador"
599571
600572#: qml/Tutorial/TutorialRight.qml:55
601573msgid "Push your mouse against the right edge to view your open apps"
@@ -603,51 +575,67 @@ msgstr "Emburria'l mur escontra'l berbesu drechu pa ver les apps abiertes"
603575
604576#: qml/Tutorial/TutorialRight.qml:56
605577msgid "Swipe from the right edge to view your open apps"
606−msgstr ""
578+msgstr "Barríu dende'l berbesu drechu pa ver les apps abiertes"
607579
608580#: qml/Tutorial/TutorialTop.qml:53
609581msgid "Swipe from the top edge to access notifications and quick settings"
610582msgstr ""
583+"Barríu dende'l berbesu superior pa tener accesu a los avisos y configuración "
584+"nel intre"
611585
612586#: qml/Wizard/Page.qml:54
613587msgctxt "Button: Go back one page in the Wizard"
614588msgid "Back"
615589msgstr "Atrás"
616590
617−#: qml/Wizard/Pages/10-welcome.qml:27
591+#: qml/Wizard/Pages/10-welcome.qml:28
618592msgid "Language"
619593msgstr "Llingua"
620594
621−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
622−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
623−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
595+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
596+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
597+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
598+#: qml/Wizard/Pages/70-passwd-type.qml:145
624599#: qml/Wizard/Pages/75-report-check.qml:84
625−#: qml/Wizard/Pages/passcode-desktop.qml:124
626−#: qml/Wizard/Pages/password-set.qml:141
600+#: qml/Wizard/Pages/passcode-desktop.qml:142
601+#: qml/Wizard/Pages/password-set.qml:142
627602msgid "Next"
628603msgstr "Siguiente"
629604
630−#: qml/Wizard/Pages/30-wifi.qml:29
605+#: qml/Wizard/Pages/20-keyboard.qml:31
606+msgid "Select Keyboard"
607+msgstr "Escoyer tecláu"
608+
609+#: qml/Wizard/Pages/20-keyboard.qml:71
610+msgid "Keyboard language"
611+msgstr "Llingua del tecláu"
612+
613+#: qml/Wizard/Pages/20-keyboard.qml:93
614+msgid "Keyboard layout"
615+msgstr "Distribución del tecláu"
616+
617+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
618+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
619+#: qml/Wizard/Pages/sim.qml:101
620+msgid "Skip"
621+msgstr "Saltar"
622+
623+#: qml/Wizard/Pages/30-wifi.qml:31
631624msgid "Connect to Wi‑Fi"
632625msgstr "Coneutase al WiFi"
633626
634−#: qml/Wizard/Pages/30-wifi.qml:130
627+#: qml/Wizard/Pages/30-wifi.qml:132
635628msgid "Connected"
636629msgstr "Coneutáu"
637630
638−#: qml/Wizard/Pages/30-wifi.qml:163
631+#: qml/Wizard/Pages/30-wifi.qml:165
639632msgid "Available Wi-Fi networks"
640633msgstr "Redes Wi-Fi disponibles"
641634
642−#: qml/Wizard/Pages/30-wifi.qml:164
635+#: qml/Wizard/Pages/30-wifi.qml:166
643636msgid "No available Wi-Fi networks"
644637msgstr "Nun hai redes Wi-Fi disponibles"
645638
646−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
647−#: qml/Wizard/Pages/sim.qml:101
648−msgid "Skip"
649−msgstr "Saltar"
650−
651639#: qml/Wizard/Pages/40-location.qml:27
652640msgid "Location Services"
653641msgstr "Servicios d'allugamientu"
@@ -682,11 +670,11 @@ msgstr "Nun usar l'allugamientu"
682670msgid "You can change it later in System Settings."
683671msgstr "Pues camudalo sero na Configuración del Sistema."
684672
685−#: qml/Wizard/Pages/50-timezone.qml:29
673+#: qml/Wizard/Pages/50-timezone.qml:30
686674msgid "Time Zone"
687675msgstr "Estaya horaria"
688676
689−#: qml/Wizard/Pages/50-timezone.qml:181
677+#: qml/Wizard/Pages/50-timezone.qml:182
690678msgid "Enter your city"
691679msgstr "Escribe la ciudá"
692680
@@ -698,21 +686,21 @@ msgstr "Personaliza'l preséu"
698686msgid "Preferred Name"
699687msgstr "Nome preferíu"
700688
701−#: qml/Wizard/Pages/70-passwd-type.qml:39
689+#: qml/Wizard/Pages/70-passwd-type.qml:40
702690msgid "Lock Screen"
703691msgstr "Bloquiar pantalla"
704692
705−#: qml/Wizard/Pages/70-passwd-type.qml:101
693+#: qml/Wizard/Pages/70-passwd-type.qml:102
706694msgctxt "Label: Type of security method"
707695msgid "Create new password"
708696msgstr "Crear contraseña nueva"
709697
710−#: qml/Wizard/Pages/70-passwd-type.qml:103
698+#: qml/Wizard/Pages/70-passwd-type.qml:104
711699msgctxt "Label: Type of security method"
712700msgid "Create passcode (numbers only)"
713701msgstr "Crear códigu d'accesu (sólo númberos)"
714702
715−#: qml/Wizard/Pages/70-passwd-type.qml:105
703+#: qml/Wizard/Pages/70-passwd-type.qml:106
716704msgctxt "Label: Type of security method"
717705msgid "No lock code"
718706msgstr "Ensin códigu de bloquéu"
@@ -735,6 +723,37 @@ msgstr ""
735723msgid "Privacy policy"
736724msgstr "Política d'intimidá"
737725
726+#: qml/Wizard/Pages/77-system-update.qml:28
727+msgid "Update Device"
728+msgstr "Anovar preséu"
729+
730+#: qml/Wizard/Pages/77-system-update.qml:55
731+msgid ""
732+"There is a system update available and ready to install. Afterwards, the "
733+"device will automatically restart."
734+msgstr ""
735+"Hai un anovamientu del sistema disponible y preparáu pa instalar. Darréu, el "
736+"preséu reaniciará de mou automáticu."
737+
738+#: qml/Wizard/Pages/77-system-update.qml:76
739+msgctxt "string identifying name of the update"
740+msgid "Ubuntu system"
741+msgstr "Sistema Ubuntu"
742+
743+#: qml/Wizard/Pages/77-system-update.qml:83
744+#, qt-format
745+msgctxt "version of the system update"
746+msgid "Version %1"
747+msgstr "Versión %1"
748+
749+#: qml/Wizard/Pages/77-system-update.qml:102
750+msgid "This could take a few minutes..."
751+msgstr "Esto podría tardar dellos minutos..."
752+
753+#: qml/Wizard/Pages/77-system-update.qml:116
754+msgid "Install and restart now"
755+msgstr "Instalar y reaniciar agora"
756+
738757#: qml/Wizard/Pages/80-finished.qml:89
739758msgid "Welcome to Ubuntu"
740759msgstr "Bienveníu/a a Ubuntu"
@@ -753,7 +772,7 @@ msgstr "Términos y condiciones"
753772
754773#: qml/Wizard/Pages/here-terms.qml:69
755774msgid "Your device uses positioning technologies provided by HERE."
756−msgstr ""
775+msgstr "El preséu usa teunoloxíes de posición qu'ufre HERE."
757776
758777#: qml/Wizard/Pages/here-terms.qml:81
759778msgid ""
@@ -761,92 +780,97 @@ msgid ""
761780"collects information about nearby cell towers and Wi-Fi hotspots around your "
762781"current location whenever your position is being found."
763782msgstr ""
783+"Pa ufrir los servicios de posición y ameyorar la so calidá, HERE collecha "
784+"información de les antenes celulares y puntos d'accesu Wi-Fi cercanos al to "
785+"allugamientu actual siempre que se conoza la to posición."
764786
765787#: qml/Wizard/Pages/here-terms.qml:93
766788msgid ""
767789"The information collected is used to analyze the service and to improve the "
768790"use of service, but not to identify you personally."
769791msgstr ""
792+"La información collechada úsase p'analizar el serviciu y ameyorar l'usu del "
793+"serviciu, non pa identificate personalmente."
770794
771795#: qml/Wizard/Pages/here-terms.qml:106
772796#, qt-format
773797msgid "By continuing, you agree to the HERE platform %1 and %2."
774−msgstr ""
798+msgstr "Al siguir, aceutes %1 y %2 de la plataforma HERE."
775799
776800#: qml/Wizard/Pages/here-terms.qml:107
777801msgid "Service Terms"
778−msgstr ""
802+msgstr "Términos del serviciu"
779803
780804#: qml/Wizard/Pages/passcode-confirm.qml:43
781−#: qml/Wizard/Pages/passcode-desktop.qml:80
805+#: qml/Wizard/Pages/passcode-desktop.qml:97
782806msgid "Confirm passcode"
783807msgstr "Confirmar códigu de pasu"
784808
785809#: qml/Wizard/Pages/passcode-confirm.qml:45
786810msgid "Incorrect passcode."
787−msgstr ""
811+msgstr "Códigu de pasu incorreutu."
788812
789813#: qml/Wizard/Pages/passcode-confirm.qml:45
790814msgctxt "Enter the passcode again"
791815msgid "Please re-enter."
792−msgstr ""
816+msgstr "Vuelve a escribilu."
793817
794−#: qml/Wizard/Pages/passcode-desktop.qml:30
818+#: qml/Wizard/Pages/passcode-desktop.qml:31
795819msgid "Lock Screen Passcode"
796−msgstr ""
820+msgstr "Códigu de pasu de bloquéu de pantalla"
797821
798−#: qml/Wizard/Pages/passcode-desktop.qml:56
822+#: qml/Wizard/Pages/passcode-desktop.qml:61
799823msgid "Enter 4 numbers to setup your passcode"
800−msgstr ""
824+msgstr "Escribi 4 númberos pa configurar el códigu de pasu"
801825
802−#: qml/Wizard/Pages/passcode-desktop.qml:65
826+#: qml/Wizard/Pages/passcode-desktop.qml:77
803827#: qml/Wizard/Pages/passcode-set.qml:54
804828msgid "Choose passcode"
805−msgstr ""
829+msgstr "Escueyi'l códigu de pasu"
806830
807−#: qml/Wizard/Pages/passcode-desktop.qml:105
831+#: qml/Wizard/Pages/passcode-desktop.qml:127
808832msgid "Passcode too short"
809−msgstr ""
833+msgstr "Códigu de pasu curtiu enforma"
810834
811−#: qml/Wizard/Pages/passcode-desktop.qml:107
835+#: qml/Wizard/Pages/passcode-desktop.qml:129
812836msgid "Passcodes match"
813−msgstr ""
837+msgstr "Los códigos de pasu casen"
814838
815−#: qml/Wizard/Pages/passcode-desktop.qml:109
839+#: qml/Wizard/Pages/passcode-desktop.qml:131
816840msgid "Passcodes do not match"
817−msgstr ""
841+msgstr "Los códigos de pasu nun casen"
818842
819843#: qml/Wizard/Pages/passcode-set.qml:62
820844msgid "Passcode must be 4 characters long"
821−msgstr ""
845+msgstr "El códigu de pasu tien de tener 4 caráuteres de llargo"
822846
823−#: qml/Wizard/Pages/password-set.qml:30
847+#: qml/Wizard/Pages/password-set.qml:31
824848msgid "Lock Screen Password"
825−msgstr ""
849+msgstr "Contraseña del Bloquéu de pantalla"
826850
827−#: qml/Wizard/Pages/password-set.qml:61
851+#: qml/Wizard/Pages/password-set.qml:62
828852msgid "Enter at least 8 characters"
829−msgstr ""
853+msgstr "Escribe polo menos 8 caráuteres"
830854
831−#: qml/Wizard/Pages/password-set.qml:73
855+#: qml/Wizard/Pages/password-set.qml:74
832856msgid "Choose password"
833−msgstr ""
857+msgstr "Escueye la contraseña"
834858
835−#: qml/Wizard/Pages/password-set.qml:103
859+#: qml/Wizard/Pages/password-set.qml:104
836860msgid "Confirm password"
837861msgstr "Confirmar contraseña"
838862
839863#: qml/Wizard/Pages/sim.qml:27
840864msgid "No SIM card installed"
841−msgstr ""
865+msgstr "Nun ta instalada nenguna tarxeta SIM"
842866
843867#: qml/Wizard/Pages/sim.qml:54
844868msgid "SIM card added"
845−msgstr ""
869+msgstr "Amestóse tarxeta SIM"
846870
847871#: qml/Wizard/Pages/sim.qml:55
848872msgid "You must restart the device to access the mobile network."
849−msgstr ""
873+msgstr "Tienes de reaniciar el preséu pa tener accesu a la rede móvil."
850874
851875#: qml/Wizard/Pages/sim.qml:59
852876msgid "Restart"
@@ -854,33 +878,37 @@ msgstr "Reaniciar"
854878
855879#: qml/Wizard/Pages/sim.qml:78
856880msgid "You won’t be able to make calls or use text messaging without a SIM."
857−msgstr ""
881+msgstr "Nun podrás facer llamaes nin usar mensaxería de testu sin una SIM."
858882
859883#: qml/Wizard/Pages/sim.qml:90
860884msgid "To proceed with no SIM tap Skip."
861−msgstr ""
885+msgstr "Pa siguir ensin SIM toca Saltar."
862886
863887#: qml/Wizard/PasswordMeter.qml:87
864−msgid "Passwords match"
865−msgstr ""
888+msgid "Password too short"
889+msgstr "Contraseña curtia enforma"
866890
867891#: qml/Wizard/PasswordMeter.qml:89
892+msgid "Passwords match"
893+msgstr "Les contraseñes concasen"
894+
895+#: qml/Wizard/PasswordMeter.qml:91
868896msgid "Passwords do not match"
869−msgstr ""
897+msgstr "Les contraseñes nun concasen"
870898
871−#: qml/Wizard/PasswordMeter.qml:93
899+#: qml/Wizard/PasswordMeter.qml:95
872900msgid "Strong password"
873901msgstr "Contraseña fuerte"
874902
875−#: qml/Wizard/PasswordMeter.qml:95
903+#: qml/Wizard/PasswordMeter.qml:97
876904msgid "Fair password"
877905msgstr "Contraseña aceutable"
878906
879−#: qml/Wizard/PasswordMeter.qml:97
907+#: qml/Wizard/PasswordMeter.qml:99
880908msgid "Weak password"
881909msgstr "Contraseña feble"
882910
883−#: qml/Wizard/PasswordMeter.qml:99
911+#: qml/Wizard/PasswordMeter.qml:101
884912msgid "Very weak password"
885913msgstr "Contraseña feble enforma"
886914
@@ -980,9 +1008,19 @@ msgstr "Contraseña feble enforma"
9801008#~ msgid "Store"
9811009#~ msgstr "Tienda"
9821010
1011+#, qt-format
1012+#~ msgid "Sorry, incorrect %1"
1013+#~ msgstr "Sentímoslo, %1 incorreutu"
1014+
1015+#~ msgid "Sorry, incorrect passphrase"
1016+#~ msgstr "Sentímoslo, contraseña incorreuta"
1017+
9831018#~ msgid "Roaming"
9841019#~ msgstr "Roaming"
9851020
1021+#~ msgid "Sorry, incorrect passcode"
1022+#~ msgstr "Sentímoslo, códigu de pasu incorreutu"
1023+
9861024#~ msgid "Manage Scopes"
9871025#~ msgstr "Xestionar ámbitos"
9881026
@@ -1068,9 +1106,42 @@ msgstr "Contraseña feble enforma"
10681106#~ msgid "Shut down"
10691107#~ msgstr "Apagáu"
10701108
1109+#~ msgid "Sorry, incorrect passphrase."
1110+#~ msgstr "Perdón, fras de pasu incorreuta"
1111+
1112+#, qt-format
1113+#~ msgid "Enter %1"
1114+#~ msgstr "Introduz %1"
1115+
1116+#~ msgid "Sorry, incorrect passcode."
1117+#~ msgstr "Perdón, códigu de pasu incorreutu."
1118+
1119+#~ msgid "Enter passcode"
1120+#~ msgstr "Introduz el códigu de pasu"
1121+
1122+#~ msgid "Enter passphrase"
1123+#~ msgstr "Introduz la fras de pasu"
1124+
10711125#~ msgid "Please re-enter"
10721126#~ msgstr "Por favor, reintroduzla"
10731127
1128+#~ msgid ""
1129+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1130+#~ "and all personal data will be deleted."
1131+#~ msgstr ""
1132+#~ "Si s'inxerta'l códigu de pasu incorreutamente, el to teléfonu va reafitase y "
1133+#~ "van desaniciase tolos datos personales."
1134+
1135+#~ msgid ""
1136+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1137+#~ "reset and all personal data will be deleted."
1138+#~ msgstr ""
1139+#~ "Si s'inxerta la fras de pasu incorreutamente, el to teléfonu va reafitase y "
1140+#~ "van desaniciase tolos datos personales."
1141+
1142+#~ msgid "This will be your last attempt."
1143+#~ msgstr "Esti sedra'l to caberu intentu"
1144+
10741145#~ msgid "This action does different things for different apps"
10751146#~ msgstr "Esta aición fai coses distintes p'aplicaciones estremaes"
10761147
@@ -1202,6 +1273,10 @@ msgstr "Contraseña feble enforma"
12021273#~ msgid "Tomorrow %l:%M %p"
12031274#~ msgstr "Mañana %l:%M %p"
12041275
1276+#~ msgctxt "passphrase"
1277+#~ msgid "Please re-enter"
1278+#~ msgstr "Vuelve a escribila"
1279+
12051280#~ msgid "%a %d %b %H:%M"
12061281#~ msgstr "%a %b %d %H:%M"
12071282
po/az.po+199−150
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,10 +15,10 @@ 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-06-19 05:54+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr "Şifrә: "
2424
@@ -35,84 +35,66 @@ msgstr ""
3535msgid "Unpin shortcut"
3636msgstr "Açma qısayolu"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr ""
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−
46−#: qml/Components/DelayedLockscreen.qml:65
47−msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr ""
49−
50−#: qml/Components/DelayedLockscreen.qml:74
51−#, qt-format
52−msgid "Please wait %1 minute and then try again…"
53−msgid_plural "Please wait %1 minutes and then try again…"
54−msgstr[0] ""
55−msgstr[1] ""
56−
57−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
5839msgctxt "Title: Lock/Log out dialog"
5940msgid "Log out"
6041msgstr ""
6142
62−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6344msgid "Are you sure you want to log out?"
6445msgstr "Çıxmaq istәdiyinizdәn әminsiniz?"
6546
66−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
6748msgctxt "Button: Lock the system"
6849msgid "Lock"
6950msgstr ""
7051
71−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7253msgctxt "Button: Log out from the system"
7354msgid "Log Out"
7455msgstr ""
7556
76−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
7860#: qml/Wizard/Pages/passcode-set.qml:32
7961msgid "Cancel"
8062msgstr "İmtina"
8163
82−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8365msgctxt "Title: Reboot dialog"
8466msgid "Reboot"
8567msgstr ""
8668
87−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
8870msgid "Are you sure you want to reboot?"
8971msgstr "Yenidәn başlatmaq istәdiyinizә әminsiniz?"
9072
91−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9274msgid "No"
9375msgstr "Yox"
9476
95−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
9678msgid "Yes"
9779msgstr "Hə"
9880
99−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10082msgctxt "Title: Power off/Restart dialog"
10183msgid "Power"
10284msgstr ""
10385
104−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10587msgid ""
10688"Are you sure you would like\n"
10789"to power off?"
10890msgstr ""
10991
110−#: qml/Components/Dialogs.qml:202
92+#: qml/Components/Dialogs.qml:205
11193msgctxt "Button: Power off the system"
11294msgid "Power off"
11395msgstr ""
11496
115−#: qml/Components/Dialogs.qml:211
97+#: qml/Components/Dialogs.qml:214
11698msgctxt "Button: Restart the system"
11799msgid "Restart"
118100msgstr ""
@@ -277,18 +259,28 @@ msgstr ""
277259msgid "Closes the current window."
278260msgstr ""
279261
280−#: qml/Components/Lockscreen.qml:231
262+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
281263msgid "Return to Call"
282264msgstr ""
283265
284−#: qml/Components/Lockscreen.qml:231
266+#: qml/Components/Lockscreen.qml:212
285267msgid "Emergency Call"
286268msgstr "Zərurət zəngi"
287269
288−#: qml/Components/Lockscreen.qml:263
270+#: qml/Components/Lockscreen.qml:244
289271msgid "OK"
290272msgstr "Oldu"
291273
274+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
275+#, qt-format
276+msgid "%1:%2:%3"
277+msgstr ""
278+
279+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
280+#, qt-format
281+msgid "%1:%2"
282+msgstr ""
283+
292284#: qml/Components/ModeSwitchWarningDialog.qml:32
293285msgid "Apps may have unsaved data:"
294286msgstr ""
@@ -315,55 +307,59 @@ msgstr ""
315307msgid "Close all"
316308msgstr ""
317309
318−#: qml/Dash/DashPageHeader.qml:333
310+#: qml/Components/SharingPicker.qml:54
311+msgid "Preview Share Item"
312+msgstr ""
313+
314+#: qml/Dash/DashPageHeader.qml:362
319315msgctxt "Button: Open the Ubuntu Store"
320316msgid "Store"
321317msgstr ""
322318
323−#: qml/Dash/DashPageHeader.qml:340
319+#: qml/Dash/DashPageHeader.qml:369
324320msgctxt "Button: Start a search in the current dash scope"
325321msgid "Search"
326322msgstr ""
327323
328−#: qml/Dash/DashPageHeader.qml:350
324+#: qml/Dash/DashPageHeader.qml:379
329325msgctxt "Button: Show the current dash scope settings"
330326msgid "Settings"
331327msgstr ""
332328
333−#: qml/Dash/DashPageHeader.qml:357
329+#: qml/Dash/DashPageHeader.qml:386
334330msgid "Remove from Favorites"
335331msgstr "Seçilmişlәrdәn çıxart"
336332
337−#: qml/Dash/DashPageHeader.qml:357
333+#: qml/Dash/DashPageHeader.qml:386
338334msgid "Add to Favorites"
339335msgstr "Seçilmişlәrә әlavә et"
340336
341−#: qml/Dash/FiltersPopover.qml:60
337+#: qml/Dash/FiltersPopover.qml:61
342338msgid "Refine your results"
343339msgstr ""
344340
345−#: qml/Dash/FiltersPopover.qml:69
341+#: qml/Dash/FiltersPopover.qml:70
346342msgid "Reset"
347343msgstr ""
348344
349−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
345+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
350346msgid "Show less"
351347msgstr ""
352348
353−#: qml/Dash/GenericScopeView.qml:580
349+#: qml/Dash/GenericScopeView.qml:586
354350msgid "Show all"
355351msgstr ""
356352
357−#: qml/Dash/GenericScopeView.qml:637
353+#: qml/Dash/GenericScopeView.qml:643
358354msgctxt "Label: Hint for dash search line edit"
359355msgid "Search"
360356msgstr ""
361357
362−#: qml/Dash/PageHeaderExtraPanel.qml:56
358+#: qml/Dash/PageHeaderExtraPanel.qml:57
363359msgid "Recent Searches"
364360msgstr ""
365361
366−#: qml/Dash/PageHeaderExtraPanel.qml:67
362+#: qml/Dash/PageHeaderExtraPanel.qml:68
367363msgid "Clear All"
368364msgstr ""
369365
@@ -375,28 +371,24 @@ msgstr "Daha çox..."
375371msgid "Less..."
376372msgstr "Az..."
377373
378−#: qml/Dash/Previews/PreviewCommentInput.qml:68
379−#: qml/Dash/Previews/PreviewRatingInput.qml:175
374+#: qml/Dash/Previews/PreviewCommentInput.qml:83
375+#: qml/Dash/Previews/PreviewRatingInput.qml:201
380376msgid "Send"
381377msgstr "Göndər"
382378
383−#: qml/Dash/Previews/PreviewRatingInput.qml:82
379+#: qml/Dash/Previews/PreviewRatingInput.qml:108
384380msgid "Rate this"
385381msgstr "Qiymәtlәndir"
386382
387−#: qml/Dash/Previews/PreviewRatingInput.qml:157
383+#: qml/Dash/Previews/PreviewRatingInput.qml:183
388384msgid "Add a review"
389385msgstr "Rəy yaz"
390386
391−#: qml/Dash/Previews/PreviewSharing.qml:66
392−msgid "Preview Share Item"
393−msgstr ""
394−
395−#: qml/Dash/PullToRefreshScopeStyle.qml:55
387+#: qml/Dash/PullToRefreshScopeStyle.qml:56
396388msgid "Pull to refresh…"
397389msgstr ""
398390
399−#: qml/Dash/PullToRefreshScopeStyle.qml:60
391+#: qml/Dash/PullToRefreshScopeStyle.qml:61
400392msgid "Release to refresh…"
401393msgstr ""
402394
@@ -404,15 +396,15 @@ msgstr ""
404396msgid "Enable location data"
405397msgstr ""
406398
407−#: qml/Dash/ScopesList.qml:55
399+#: qml/Dash/ScopesList.qml:57
408400msgid "Manage"
409401msgstr ""
410402
411−#: qml/Dash/ScopesList.qml:101
403+#: qml/Dash/ScopesList.qml:104
412404msgid "Home"
413405msgstr ""
414406
415−#: qml/Dash/ScopesList.qml:102
407+#: qml/Dash/ScopesList.qml:105
416408msgid "Also installed"
417409msgstr ""
418410
@@ -422,75 +414,55 @@ msgid ""
422414"touch pad to interact with the pointer."
423415msgstr ""
424416
425−#: qml/Greeter/CoverPage.qml:119
417+#: qml/Greeter/CoverPage.qml:127
426418msgid "Unlock"
427419msgstr ""
428420
429−#: qml/Greeter/LoginList.qml:259
430−msgid "Retry"
421+#: qml/Greeter/DelayedLockscreen.qml:43
422+msgid "Device Locked"
431423msgstr ""
432424
433−#: qml/Greeter/LoginList.qml:260
434−msgid "Log In"
425+#: qml/Greeter/DelayedLockscreen.qml:58
426+msgid "You have been locked out due to too many failed passphrase attempts."
435427msgstr ""
436428
437−#: qml/Greeter/NarrowView.qml:54
438−msgid "Sorry, incorrect passphrase."
439−msgstr "Bağışlayın, açar söz yanlışdır."
440−
441−#: qml/Greeter/NarrowView.qml:55
442−msgid "Sorry, incorrect passcode."
443−msgstr "Təəssüf ki, açar kod yanlışdır."
429+#: qml/Greeter/DelayedLockscreen.qml:59
430+msgid "You have been locked out due to too many failed passcode attempts."
431+msgstr ""
444432
445−#: qml/Greeter/NarrowView.qml:56
446−msgid "This will be your last attempt."
447−msgstr "Bu sizin son cəhdiniz olacaq."
433+#: qml/Greeter/DelayedLockscreen.qml:68
434+#, qt-format
435+msgid "Please wait %1 minute and then try again…"
436+msgid_plural "Please wait %1 minutes and then try again…"
437+msgstr[0] ""
438+msgstr[1] ""
448439
449−#: qml/Greeter/NarrowView.qml:58
450−msgid ""
451−"If passphrase is entered incorrectly, your phone will conduct a factory "
452−"reset and all personal data will be deleted."
440+#: qml/Greeter/Greeter.qml:596
441+msgid "Try again"
453442msgstr ""
454−"Əgər açar söz yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
455−"geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
456443
457−#: qml/Greeter/NarrowView.qml:59
458−msgid ""
459−"If passcode is entered incorrectly, your phone will conduct a factory reset "
460−"and all personal data will be deleted."
444+#: qml/Greeter/LoginList.qml:70
445+msgid "Passphrase"
461446msgstr ""
462−"Əgər açar kod yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
463−"geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
464447
465−#: qml/Greeter/NarrowView.qml:116
466−#, qt-format
467−msgid "Enter %1"
448+#: qml/Greeter/LoginList.qml:71
449+msgid "Passcode"
468450msgstr ""
469451
470−#: qml/Greeter/NarrowView.qml:117
471−msgid "Enter passphrase"
452+#: qml/Greeter/LoginList.qml:98
453+msgid "Retry"
472454msgstr ""
473455
474−#: qml/Greeter/NarrowView.qml:118
475−msgid "Enter passcode"
456+#: qml/Greeter/LoginList.qml:99
457+msgid "Log In"
476458msgstr ""
477459
478−#: qml/Greeter/NarrowView.qml:119
479−#, qt-format
480−msgid "Sorry, incorrect %1"
481−msgstr "Bağışlayın, %1 yanlışdır"
482−
483−#: qml/Greeter/NarrowView.qml:120
484−msgid "Sorry, incorrect passphrase"
485−msgstr "Bağışlayın, açar söz yanlışdır"
486−
487−#: qml/Greeter/NarrowView.qml:121
488−msgctxt "passphrase"
489−msgid "Please re-enter"
460+#: qml/Greeter/NarrowView.qml:252
461+msgid "Emergency"
490462msgstr ""
491463
492−#: qml/Greeter/NarrowView.qml:122
493−msgid "Sorry, incorrect passcode"
464+#: qml/Greeter/SessionsList.qml:122
465+msgid "Select desktop environment"
494466msgstr ""
495467
496468#: qml/Notifications/NotificationMenuItemFactory.qml:124
@@ -609,40 +581,54 @@ msgctxt "Button: Go back one page in the Wizard"
609581msgid "Back"
610582msgstr ""
611583
612−#: qml/Wizard/Pages/10-welcome.qml:27
584+#: qml/Wizard/Pages/10-welcome.qml:28
613585msgid "Language"
614586msgstr ""
615587
616−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
617−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
618−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
588+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
589+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
590+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
591+#: qml/Wizard/Pages/70-passwd-type.qml:145
619592#: qml/Wizard/Pages/75-report-check.qml:84
620−#: qml/Wizard/Pages/passcode-desktop.qml:124
621−#: qml/Wizard/Pages/password-set.qml:141
593+#: qml/Wizard/Pages/passcode-desktop.qml:142
594+#: qml/Wizard/Pages/password-set.qml:142
622595msgid "Next"
623596msgstr ""
624597
625−#: qml/Wizard/Pages/30-wifi.qml:29
598+#: qml/Wizard/Pages/20-keyboard.qml:31
599+msgid "Select Keyboard"
600+msgstr ""
601+
602+#: qml/Wizard/Pages/20-keyboard.qml:71
603+msgid "Keyboard language"
604+msgstr ""
605+
606+#: qml/Wizard/Pages/20-keyboard.qml:93
607+msgid "Keyboard layout"
608+msgstr ""
609+
610+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
611+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
612+#: qml/Wizard/Pages/sim.qml:101
613+msgid "Skip"
614+msgstr ""
615+
616+#: qml/Wizard/Pages/30-wifi.qml:31
626617msgid "Connect to Wi‑Fi"
627618msgstr ""
628619
629−#: qml/Wizard/Pages/30-wifi.qml:130
620+#: qml/Wizard/Pages/30-wifi.qml:132
630621msgid "Connected"
631622msgstr ""
632623
633−#: qml/Wizard/Pages/30-wifi.qml:163
624+#: qml/Wizard/Pages/30-wifi.qml:165
634625msgid "Available Wi-Fi networks"
635626msgstr ""
636627
637−#: qml/Wizard/Pages/30-wifi.qml:164
628+#: qml/Wizard/Pages/30-wifi.qml:166
638629msgid "No available Wi-Fi networks"
639630msgstr ""
640631
641−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
642−#: qml/Wizard/Pages/sim.qml:101
643−msgid "Skip"
644−msgstr ""
645−
646632#: qml/Wizard/Pages/40-location.qml:27
647633msgid "Location Services"
648634msgstr ""
@@ -675,11 +661,11 @@ msgstr ""
675661msgid "You can change it later in System Settings."
676662msgstr ""
677663
678−#: qml/Wizard/Pages/50-timezone.qml:29
664+#: qml/Wizard/Pages/50-timezone.qml:30
679665msgid "Time Zone"
680666msgstr ""
681667
682−#: qml/Wizard/Pages/50-timezone.qml:181
668+#: qml/Wizard/Pages/50-timezone.qml:182
683669msgid "Enter your city"
684670msgstr ""
685671
@@ -691,21 +677,21 @@ msgstr ""
691677msgid "Preferred Name"
692678msgstr ""
693679
694−#: qml/Wizard/Pages/70-passwd-type.qml:39
680+#: qml/Wizard/Pages/70-passwd-type.qml:40
695681msgid "Lock Screen"
696682msgstr ""
697683
698−#: qml/Wizard/Pages/70-passwd-type.qml:101
684+#: qml/Wizard/Pages/70-passwd-type.qml:102
699685msgctxt "Label: Type of security method"
700686msgid "Create new password"
701687msgstr ""
702688
703−#: qml/Wizard/Pages/70-passwd-type.qml:103
689+#: qml/Wizard/Pages/70-passwd-type.qml:104
704690msgctxt "Label: Type of security method"
705691msgid "Create passcode (numbers only)"
706692msgstr ""
707693
708−#: qml/Wizard/Pages/70-passwd-type.qml:105
694+#: qml/Wizard/Pages/70-passwd-type.qml:106
709695msgctxt "Label: Type of security method"
710696msgid "No lock code"
711697msgstr ""
@@ -726,6 +712,35 @@ msgstr ""
726712msgid "Privacy policy"
727713msgstr ""
728714
715+#: qml/Wizard/Pages/77-system-update.qml:28
716+msgid "Update Device"
717+msgstr ""
718+
719+#: qml/Wizard/Pages/77-system-update.qml:55
720+msgid ""
721+"There is a system update available and ready to install. Afterwards, the "
722+"device will automatically restart."
723+msgstr ""
724+
725+#: qml/Wizard/Pages/77-system-update.qml:76
726+msgctxt "string identifying name of the update"
727+msgid "Ubuntu system"
728+msgstr ""
729+
730+#: qml/Wizard/Pages/77-system-update.qml:83
731+#, qt-format
732+msgctxt "version of the system update"
733+msgid "Version %1"
734+msgstr ""
735+
736+#: qml/Wizard/Pages/77-system-update.qml:102
737+msgid "This could take a few minutes..."
738+msgstr ""
739+
740+#: qml/Wizard/Pages/77-system-update.qml:116
741+msgid "Install and restart now"
742+msgstr ""
743+
729744#: qml/Wizard/Pages/80-finished.qml:89
730745msgid "Welcome to Ubuntu"
731746msgstr ""
@@ -769,7 +784,7 @@ msgid "Service Terms"
769784msgstr ""
770785
771786#: qml/Wizard/Pages/passcode-confirm.qml:43
772−#: qml/Wizard/Pages/passcode-desktop.qml:80
787+#: qml/Wizard/Pages/passcode-desktop.qml:97
773788msgid "Confirm passcode"
774789msgstr ""
775790
@@ -782,28 +797,28 @@ msgctxt "Enter the passcode again"
782797msgid "Please re-enter."
783798msgstr ""
784799
785−#: qml/Wizard/Pages/passcode-desktop.qml:30
800+#: qml/Wizard/Pages/passcode-desktop.qml:31
786801msgid "Lock Screen Passcode"
787802msgstr ""
788803
789−#: qml/Wizard/Pages/passcode-desktop.qml:56
804+#: qml/Wizard/Pages/passcode-desktop.qml:61
790805msgid "Enter 4 numbers to setup your passcode"
791806msgstr ""
792807
793−#: qml/Wizard/Pages/passcode-desktop.qml:65
808+#: qml/Wizard/Pages/passcode-desktop.qml:77
794809#: qml/Wizard/Pages/passcode-set.qml:54
795810msgid "Choose passcode"
796811msgstr ""
797812
798−#: qml/Wizard/Pages/passcode-desktop.qml:105
813+#: qml/Wizard/Pages/passcode-desktop.qml:127
799814msgid "Passcode too short"
800815msgstr ""
801816
802−#: qml/Wizard/Pages/passcode-desktop.qml:107
817+#: qml/Wizard/Pages/passcode-desktop.qml:129
803818msgid "Passcodes match"
804819msgstr ""
805820
806−#: qml/Wizard/Pages/passcode-desktop.qml:109
821+#: qml/Wizard/Pages/passcode-desktop.qml:131
807822msgid "Passcodes do not match"
808823msgstr ""
809824
@@ -811,19 +826,19 @@ msgstr ""
811826msgid "Passcode must be 4 characters long"
812827msgstr ""
813828
814−#: qml/Wizard/Pages/password-set.qml:30
829+#: qml/Wizard/Pages/password-set.qml:31
815830msgid "Lock Screen Password"
816831msgstr ""
817832
818−#: qml/Wizard/Pages/password-set.qml:61
833+#: qml/Wizard/Pages/password-set.qml:62
819834msgid "Enter at least 8 characters"
820835msgstr ""
821836
822−#: qml/Wizard/Pages/password-set.qml:73
837+#: qml/Wizard/Pages/password-set.qml:74
823838msgid "Choose password"
824839msgstr ""
825840
826−#: qml/Wizard/Pages/password-set.qml:103
841+#: qml/Wizard/Pages/password-set.qml:104
827842msgid "Confirm password"
828843msgstr ""
829844
@@ -852,26 +867,30 @@ msgid "To proceed with no SIM tap Skip."
852867msgstr ""
853868
854869#: qml/Wizard/PasswordMeter.qml:87
855−msgid "Passwords match"
870+msgid "Password too short"
856871msgstr ""
857872
858873#: qml/Wizard/PasswordMeter.qml:89
874+msgid "Passwords match"
875+msgstr ""
876+
877+#: qml/Wizard/PasswordMeter.qml:91
859878msgid "Passwords do not match"
860879msgstr ""
861880
862−#: qml/Wizard/PasswordMeter.qml:93
881+#: qml/Wizard/PasswordMeter.qml:95
863882msgid "Strong password"
864883msgstr ""
865884
866−#: qml/Wizard/PasswordMeter.qml:95
885+#: qml/Wizard/PasswordMeter.qml:97
867886msgid "Fair password"
868887msgstr ""
869888
870−#: qml/Wizard/PasswordMeter.qml:97
889+#: qml/Wizard/PasswordMeter.qml:99
871890msgid "Weak password"
872891msgstr ""
873892
874−#: qml/Wizard/PasswordMeter.qml:99
893+#: qml/Wizard/PasswordMeter.qml:101
875894msgid "Very weak password"
876895msgstr ""
877896
@@ -930,6 +949,26 @@ msgstr ""
930949#~ msgid "Roaming"
931950#~ msgstr "Rominq"
932951
952+#~ msgid "Sorry, incorrect passcode."
953+#~ msgstr "Təəssüf ki, açar kod yanlışdır."
954+
955+#~ msgid "This will be your last attempt."
956+#~ msgstr "Bu sizin son cəhdiniz olacaq."
957+
958+#~ msgid ""
959+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
960+#~ "and all personal data will be deleted."
961+#~ msgstr ""
962+#~ "Əgər açar kod yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
963+#~ "geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
964+
965+#~ msgid ""
966+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
967+#~ "reset and all personal data will be deleted."
968+#~ msgstr ""
969+#~ "Əgər açar söz yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
970+#~ "geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
971+
933972#~ msgid "Log out"
934973#~ msgstr "Çıxış"
935974
@@ -969,3 +1008,13 @@ msgstr ""
9691008
9701009#~ msgid "Type or say a command"
9711010#~ msgstr "Bir әmr söyləyin və ya yazın"
1011+
1012+#~ msgid "Sorry, incorrect passphrase"
1013+#~ msgstr "Bağışlayın, açar söz yanlışdır"
1014+
1015+#, qt-format
1016+#~ msgid "Sorry, incorrect %1"
1017+#~ msgstr "Bağışlayın, %1 yanlışdır"
1018+
1019+#~ msgid "Sorry, incorrect passphrase."
1020+#~ msgstr "Bağışlayın, açar söz yanlışdır."
po/be.po+226−160
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,10 +16,10 @@ 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-06-19 05:54+0000\n"
20−"X-Generator: Launchpad (build 18097)\n"
19+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
20+"X-Generator: Launchpad (build 18204)\n"
2121
22−#: plugins/IntegratedLightDM/Greeter.cpp:112
22+#: plugins/LightDM/Greeter.cpp:123
2323msgid "Password: "
2424msgstr "Пароль: "
2525
@@ -36,77 +36,55 @@ msgstr "Выйсці"
3636msgid "Unpin shortcut"
3737msgstr "Адмацаваць кнопку"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
40−msgid "Device Locked"
41−msgstr "Прылада заблакаваная"
42−
43−#: qml/Components/DelayedLockscreen.qml:64
44−msgid "You have been locked out due to too many failed passphrase attempts."
45−msgstr ""
46−"Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў."
47−
48−#: qml/Components/DelayedLockscreen.qml:65
49−msgid "You have been locked out due to too many failed passcode attempts."
50−msgstr ""
51−"Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў уводу "
52−"кода доступу."
53−
54−#: qml/Components/DelayedLockscreen.qml:74
55−#, qt-format
56−msgid "Please wait %1 minute and then try again…"
57−msgid_plural "Please wait %1 minutes and then try again…"
58−msgstr[0] "Пачакайце %1 хвіліну і паўтарыце спробу…"
59−msgstr[1] "Пачакайце %1 хвіліны і паўтарыце спробу…"
60−msgstr[2] "Пачакайце %1 хвілін і паўтарыце спробу…"
61−
62−#: qml/Components/Dialogs.qml:146
39+#: qml/Components/Dialogs.qml:149
6340msgctxt "Title: Lock/Log out dialog"
6441msgid "Log out"
6542msgstr "Выйсці"
6643
67−#: qml/Components/Dialogs.qml:147
44+#: qml/Components/Dialogs.qml:150
6845msgid "Are you sure you want to log out?"
6946msgstr "Вы ўпэўненыя, што хочаце выйсці?"
7047
71−#: qml/Components/Dialogs.qml:149
48+#: qml/Components/Dialogs.qml:152
7249msgctxt "Button: Lock the system"
7350msgid "Lock"
7451msgstr "Заблакаваць"
7552
76−#: qml/Components/Dialogs.qml:156
53+#: qml/Components/Dialogs.qml:159
7754msgctxt "Button: Log out from the system"
7855msgid "Log Out"
7956msgstr "Выйсці"
8057
81−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
82−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
58+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
59+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
60+#: qml/Wizard/Pages/passcode-confirm.qml:32
8361#: qml/Wizard/Pages/passcode-set.qml:32
8462msgid "Cancel"
8563msgstr "Скасаваць"
8664
87−#: qml/Components/Dialogs.qml:175
65+#: qml/Components/Dialogs.qml:178
8866msgctxt "Title: Reboot dialog"
8967msgid "Reboot"
9068msgstr "Перазагрузіць"
9169
92−#: qml/Components/Dialogs.qml:176
70+#: qml/Components/Dialogs.qml:179
9371msgid "Are you sure you want to reboot?"
9472msgstr "Вы ўпэўнены, што жадаеце перазагрузіць?"
9573
96−#: qml/Components/Dialogs.qml:178
74+#: qml/Components/Dialogs.qml:181
9775msgid "No"
9876msgstr "Не"
9977
100−#: qml/Components/Dialogs.qml:184
78+#: qml/Components/Dialogs.qml:187
10179msgid "Yes"
10280msgstr "Так"
10381
104−#: qml/Components/Dialogs.qml:199
82+#: qml/Components/Dialogs.qml:202
10583msgctxt "Title: Power off/Restart dialog"
10684msgid "Power"
10785msgstr "Сілкаванне"
10886
109−#: qml/Components/Dialogs.qml:200
87+#: qml/Components/Dialogs.qml:203
11088msgid ""
11189"Are you sure you would like\n"
11290"to power off?"
@@ -114,12 +92,12 @@ msgstr ""
11492"Вы ўпэўнены, што хочаце\n"
11593"выключыць камп'ютэр?"
11694
117−#: qml/Components/Dialogs.qml:202
95+#: qml/Components/Dialogs.qml:205
11896msgctxt "Button: Power off the system"
11997msgid "Power off"
12098msgstr "Выключыць"
12199
122−#: qml/Components/Dialogs.qml:211
100+#: qml/Components/Dialogs.qml:214
123101msgctxt "Button: Restart the system"
124102msgid "Restart"
125103msgstr "Перазапуск"
@@ -284,18 +262,28 @@ msgstr ""
284262msgid "Closes the current window."
285263msgstr ""
286264
287−#: qml/Components/Lockscreen.qml:231
265+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
288266msgid "Return to Call"
289267msgstr "Вярнуцца да выкліку"
290268
291−#: qml/Components/Lockscreen.qml:231
269+#: qml/Components/Lockscreen.qml:212
292270msgid "Emergency Call"
293271msgstr "Терміновы выклік"
294272
295−#: qml/Components/Lockscreen.qml:263
273+#: qml/Components/Lockscreen.qml:244
296274msgid "OK"
297275msgstr "Добра"
298276
277+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
278+#, qt-format
279+msgid "%1:%2:%3"
280+msgstr ""
281+
282+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
283+#, qt-format
284+msgid "%1:%2"
285+msgstr ""
286+
299287#: qml/Components/ModeSwitchWarningDialog.qml:32
300288msgid "Apps may have unsaved data:"
301289msgstr "Прылады могуць мець незахованыя дадзеныя:"
@@ -322,55 +310,59 @@ msgstr "Перападлучыцца зараз!"
322310msgid "Close all"
323311msgstr "Зачыніць усё"
324312
325−#: qml/Dash/DashPageHeader.qml:333
313+#: qml/Components/SharingPicker.qml:54
314+msgid "Preview Share Item"
315+msgstr "Праглядзець элемент"
316+
317+#: qml/Dash/DashPageHeader.qml:362
326318msgctxt "Button: Open the Ubuntu Store"
327319msgid "Store"
328320msgstr "Крама"
329321
330−#: qml/Dash/DashPageHeader.qml:340
322+#: qml/Dash/DashPageHeader.qml:369
331323msgctxt "Button: Start a search in the current dash scope"
332324msgid "Search"
333325msgstr "Пошук"
334326
335−#: qml/Dash/DashPageHeader.qml:350
327+#: qml/Dash/DashPageHeader.qml:379
336328msgctxt "Button: Show the current dash scope settings"
337329msgid "Settings"
338330msgstr "Налады"
339331
340−#: qml/Dash/DashPageHeader.qml:357
332+#: qml/Dash/DashPageHeader.qml:386
341333msgid "Remove from Favorites"
342334msgstr "Выдаліць з абранага"
343335
344−#: qml/Dash/DashPageHeader.qml:357
336+#: qml/Dash/DashPageHeader.qml:386
345337msgid "Add to Favorites"
346338msgstr "Дадаць да абранага"
347339
348−#: qml/Dash/FiltersPopover.qml:60
340+#: qml/Dash/FiltersPopover.qml:61
349341msgid "Refine your results"
350342msgstr ""
351343
352−#: qml/Dash/FiltersPopover.qml:69
344+#: qml/Dash/FiltersPopover.qml:70
353345msgid "Reset"
354346msgstr ""
355347
356−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
348+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
357349msgid "Show less"
358350msgstr ""
359351
360−#: qml/Dash/GenericScopeView.qml:580
352+#: qml/Dash/GenericScopeView.qml:586
361353msgid "Show all"
362354msgstr ""
363355
364−#: qml/Dash/GenericScopeView.qml:637
356+#: qml/Dash/GenericScopeView.qml:643
365357msgctxt "Label: Hint for dash search line edit"
366358msgid "Search"
367359msgstr "Пошук"
368360
369−#: qml/Dash/PageHeaderExtraPanel.qml:56
361+#: qml/Dash/PageHeaderExtraPanel.qml:57
370362msgid "Recent Searches"
371363msgstr ""
372364
373−#: qml/Dash/PageHeaderExtraPanel.qml:67
365+#: qml/Dash/PageHeaderExtraPanel.qml:68
374366msgid "Clear All"
375367msgstr ""
376368
@@ -382,28 +374,24 @@ msgstr "Болей…"
382374msgid "Less..."
383375msgstr "Менш..."
384376
385−#: qml/Dash/Previews/PreviewCommentInput.qml:68
386−#: qml/Dash/Previews/PreviewRatingInput.qml:175
377+#: qml/Dash/Previews/PreviewCommentInput.qml:83
378+#: qml/Dash/Previews/PreviewRatingInput.qml:201
387379msgid "Send"
388380msgstr "Адправіць"
389381
390−#: qml/Dash/Previews/PreviewRatingInput.qml:82
382+#: qml/Dash/Previews/PreviewRatingInput.qml:108
391383msgid "Rate this"
392384msgstr "Ацаніць"
393385
394−#: qml/Dash/Previews/PreviewRatingInput.qml:157
386+#: qml/Dash/Previews/PreviewRatingInput.qml:183
395387msgid "Add a review"
396388msgstr "Дадаць рэцэнзію"
397389
398−#: qml/Dash/Previews/PreviewSharing.qml:66
399−msgid "Preview Share Item"
400−msgstr "Праглядзець элемент"
401−
402−#: qml/Dash/PullToRefreshScopeStyle.qml:55
390+#: qml/Dash/PullToRefreshScopeStyle.qml:56
403391msgid "Pull to refresh…"
404392msgstr "Пацягніце для абнаўлення..."
405393
406−#: qml/Dash/PullToRefreshScopeStyle.qml:60
394+#: qml/Dash/PullToRefreshScopeStyle.qml:61
407395msgid "Release to refresh…"
408396msgstr "Адпусціце для абнаўлення..."
409397
@@ -411,15 +399,15 @@ msgstr "Адпусціце для абнаўлення..."
411399msgid "Enable location data"
412400msgstr "Уключыць дадзеныя аб месцазнаходжанні"
413401
414−#: qml/Dash/ScopesList.qml:55
402+#: qml/Dash/ScopesList.qml:57
415403msgid "Manage"
416404msgstr "Кіраванне"
417405
418−#: qml/Dash/ScopesList.qml:101
406+#: qml/Dash/ScopesList.qml:104
419407msgid "Home"
420408msgstr "Хатняя папка"
421409
422−#: qml/Dash/ScopesList.qml:102
410+#: qml/Dash/ScopesList.qml:105
423411msgid "Also installed"
424412msgstr "Таксама ўсталявана"
425413
@@ -429,76 +417,60 @@ msgid ""
429417"touch pad to interact with the pointer."
430418msgstr ""
431419
432−#: qml/Greeter/CoverPage.qml:119
420+#: qml/Greeter/CoverPage.qml:127
433421msgid "Unlock"
434422msgstr "Разблакаваць"
435423
436−#: qml/Greeter/LoginList.qml:259
437−msgid "Retry"
438−msgstr "Паспрабаваць зноў"
424+#: qml/Greeter/DelayedLockscreen.qml:43
425+msgid "Device Locked"
426+msgstr "Прылада заблакаваная"
439427
440−#: qml/Greeter/LoginList.qml:260
441−msgid "Log In"
428+#: qml/Greeter/DelayedLockscreen.qml:58
429+msgid "You have been locked out due to too many failed passphrase attempts."
442430msgstr ""
431+"Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў."
443432
444−#: qml/Greeter/NarrowView.qml:54
445−msgid "Sorry, incorrect passphrase."
446−msgstr "Даруйце, няслушны пароль."
447−
448−#: qml/Greeter/NarrowView.qml:55
449−msgid "Sorry, incorrect passcode."
450−msgstr "Даруйце, няслушны код."
433+#: qml/Greeter/DelayedLockscreen.qml:59
434+msgid "You have been locked out due to too many failed passcode attempts."
435+msgstr ""
436+"Вы былі заблакаваныя з-за занадта вялікай колькасці няўдалых спробаў уводу "
437+"кода доступу."
451438
452−#: qml/Greeter/NarrowView.qml:56
453−msgid "This will be your last attempt."
454−msgstr "Апошняя спроба."
439+#: qml/Greeter/DelayedLockscreen.qml:68
440+#, qt-format
441+msgid "Please wait %1 minute and then try again…"
442+msgid_plural "Please wait %1 minutes and then try again…"
443+msgstr[0] "Пачакайце %1 хвіліну і паўтарыце спробу…"
444+msgstr[1] "Пачакайце %1 хвіліны і паўтарыце спробу…"
445+msgstr[2] "Пачакайце %1 хвілін і паўтарыце спробу…"
455446
456−#: qml/Greeter/NarrowView.qml:58
457−msgid ""
458−"If passphrase is entered incorrectly, your phone will conduct a factory "
459−"reset and all personal data will be deleted."
447+#: qml/Greeter/Greeter.qml:596
448+msgid "Try again"
460449msgstr ""
461−"Калі ўведзены пароль неправільны, Ваш тэлефон зробіць агульны скід налад і "
462−"ўсе асабістыя дадзеныя будуць выдалены."
463450
464−#: qml/Greeter/NarrowView.qml:59
465−msgid ""
466−"If passcode is entered incorrectly, your phone will conduct a factory reset "
467−"and all personal data will be deleted."
451+#: qml/Greeter/LoginList.qml:70
452+msgid "Passphrase"
468453msgstr ""
469−"Калі ўведзены код неправільны, Ваш тэлефон зробіць агульны скід налад і ўсе "
470−"асабістыя дадзеныя будуць выдалены."
471−
472−#: qml/Greeter/NarrowView.qml:116
473−#, qt-format
474−msgid "Enter %1"
475−msgstr "Увядзіце %1"
476−
477−#: qml/Greeter/NarrowView.qml:117
478−msgid "Enter passphrase"
479−msgstr "Увядзіце пароль"
480454
481−#: qml/Greeter/NarrowView.qml:118
482−msgid "Enter passcode"
483−msgstr "Увядзіце код"
455+#: qml/Greeter/LoginList.qml:71
456+msgid "Passcode"
457+msgstr ""
484458
485−#: qml/Greeter/NarrowView.qml:119
486−#, qt-format
487−msgid "Sorry, incorrect %1"
488−msgstr "Даруйце, некарэктны %1"
459+#: qml/Greeter/LoginList.qml:98
460+msgid "Retry"
461+msgstr "Паспрабаваць зноў"
489462
490−#: qml/Greeter/NarrowView.qml:120
491−msgid "Sorry, incorrect passphrase"
492−msgstr "Даруйце, някарэктны пароль"
463+#: qml/Greeter/LoginList.qml:99
464+msgid "Log In"
465+msgstr ""
493466
494−#: qml/Greeter/NarrowView.qml:121
495−msgctxt "passphrase"
496−msgid "Please re-enter"
497−msgstr "Калі ласка, паўтарыце ўвод"
467+#: qml/Greeter/NarrowView.qml:252
468+msgid "Emergency"
469+msgstr ""
498470
499−#: qml/Greeter/NarrowView.qml:122
500−msgid "Sorry, incorrect passcode"
501−msgstr "Даруйце, некарэктны код"
471+#: qml/Greeter/SessionsList.qml:122
472+msgid "Select desktop environment"
473+msgstr ""
502474
503475#: qml/Notifications/NotificationMenuItemFactory.qml:124
504476msgid "Show password"
@@ -619,40 +591,54 @@ msgctxt "Button: Go back one page in the Wizard"
619591msgid "Back"
620592msgstr "Вярнуцца"
621593
622−#: qml/Wizard/Pages/10-welcome.qml:27
594+#: qml/Wizard/Pages/10-welcome.qml:28
623595msgid "Language"
624596msgstr ""
625597
626−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
627−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
628−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
598+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
599+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
600+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
601+#: qml/Wizard/Pages/70-passwd-type.qml:145
629602#: qml/Wizard/Pages/75-report-check.qml:84
630−#: qml/Wizard/Pages/passcode-desktop.qml:124
631−#: qml/Wizard/Pages/password-set.qml:141
603+#: qml/Wizard/Pages/passcode-desktop.qml:142
604+#: qml/Wizard/Pages/password-set.qml:142
632605msgid "Next"
633606msgstr ""
634607
635−#: qml/Wizard/Pages/30-wifi.qml:29
608+#: qml/Wizard/Pages/20-keyboard.qml:31
609+msgid "Select Keyboard"
610+msgstr ""
611+
612+#: qml/Wizard/Pages/20-keyboard.qml:71
613+msgid "Keyboard language"
614+msgstr ""
615+
616+#: qml/Wizard/Pages/20-keyboard.qml:93
617+msgid "Keyboard layout"
618+msgstr ""
619+
620+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
621+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
622+#: qml/Wizard/Pages/sim.qml:101
623+msgid "Skip"
624+msgstr "Прапусціць"
625+
626+#: qml/Wizard/Pages/30-wifi.qml:31
636627msgid "Connect to Wi‑Fi"
637628msgstr "Злучыцца з Wi-Fi"
638629
639−#: qml/Wizard/Pages/30-wifi.qml:130
630+#: qml/Wizard/Pages/30-wifi.qml:132
640631msgid "Connected"
641632msgstr ""
642633
643−#: qml/Wizard/Pages/30-wifi.qml:163
634+#: qml/Wizard/Pages/30-wifi.qml:165
644635msgid "Available Wi-Fi networks"
645636msgstr ""
646637
647−#: qml/Wizard/Pages/30-wifi.qml:164
638+#: qml/Wizard/Pages/30-wifi.qml:166
648639msgid "No available Wi-Fi networks"
649640msgstr ""
650641
651−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
652−#: qml/Wizard/Pages/sim.qml:101
653−msgid "Skip"
654−msgstr "Прапусціць"
655−
656642#: qml/Wizard/Pages/40-location.qml:27
657643msgid "Location Services"
658644msgstr ""
@@ -685,11 +671,11 @@ msgstr ""
685671msgid "You can change it later in System Settings."
686672msgstr ""
687673
688−#: qml/Wizard/Pages/50-timezone.qml:29
674+#: qml/Wizard/Pages/50-timezone.qml:30
689675msgid "Time Zone"
690676msgstr ""
691677
692−#: qml/Wizard/Pages/50-timezone.qml:181
678+#: qml/Wizard/Pages/50-timezone.qml:182
693679msgid "Enter your city"
694680msgstr ""
695681
@@ -701,21 +687,21 @@ msgstr ""
701687msgid "Preferred Name"
702688msgstr ""
703689
704−#: qml/Wizard/Pages/70-passwd-type.qml:39
690+#: qml/Wizard/Pages/70-passwd-type.qml:40
705691msgid "Lock Screen"
706692msgstr ""
707693
708−#: qml/Wizard/Pages/70-passwd-type.qml:101
694+#: qml/Wizard/Pages/70-passwd-type.qml:102
709695msgctxt "Label: Type of security method"
710696msgid "Create new password"
711697msgstr ""
712698
713−#: qml/Wizard/Pages/70-passwd-type.qml:103
699+#: qml/Wizard/Pages/70-passwd-type.qml:104
714700msgctxt "Label: Type of security method"
715701msgid "Create passcode (numbers only)"
716702msgstr ""
717703
718−#: qml/Wizard/Pages/70-passwd-type.qml:105
704+#: qml/Wizard/Pages/70-passwd-type.qml:106
719705msgctxt "Label: Type of security method"
720706msgid "No lock code"
721707msgstr ""
@@ -736,6 +722,35 @@ msgstr ""
736722msgid "Privacy policy"
737723msgstr ""
738724
725+#: qml/Wizard/Pages/77-system-update.qml:28
726+msgid "Update Device"
727+msgstr ""
728+
729+#: qml/Wizard/Pages/77-system-update.qml:55
730+msgid ""
731+"There is a system update available and ready to install. Afterwards, the "
732+"device will automatically restart."
733+msgstr ""
734+
735+#: qml/Wizard/Pages/77-system-update.qml:76
736+msgctxt "string identifying name of the update"
737+msgid "Ubuntu system"
738+msgstr ""
739+
740+#: qml/Wizard/Pages/77-system-update.qml:83
741+#, qt-format
742+msgctxt "version of the system update"
743+msgid "Version %1"
744+msgstr ""
745+
746+#: qml/Wizard/Pages/77-system-update.qml:102
747+msgid "This could take a few minutes..."
748+msgstr ""
749+
750+#: qml/Wizard/Pages/77-system-update.qml:116
751+msgid "Install and restart now"
752+msgstr ""
753+
739754#: qml/Wizard/Pages/80-finished.qml:89
740755msgid "Welcome to Ubuntu"
741756msgstr ""
@@ -779,7 +794,7 @@ msgid "Service Terms"
779794msgstr ""
780795
781796#: qml/Wizard/Pages/passcode-confirm.qml:43
782−#: qml/Wizard/Pages/passcode-desktop.qml:80
797+#: qml/Wizard/Pages/passcode-desktop.qml:97
783798msgid "Confirm passcode"
784799msgstr "Пацвердзіце код-пароль"
785800
@@ -792,28 +807,28 @@ msgctxt "Enter the passcode again"
792807msgid "Please re-enter."
793808msgstr ""
794809
795−#: qml/Wizard/Pages/passcode-desktop.qml:30
810+#: qml/Wizard/Pages/passcode-desktop.qml:31
796811msgid "Lock Screen Passcode"
797812msgstr ""
798813
799−#: qml/Wizard/Pages/passcode-desktop.qml:56
814+#: qml/Wizard/Pages/passcode-desktop.qml:61
800815msgid "Enter 4 numbers to setup your passcode"
801816msgstr ""
802817
803−#: qml/Wizard/Pages/passcode-desktop.qml:65
818+#: qml/Wizard/Pages/passcode-desktop.qml:77
804819#: qml/Wizard/Pages/passcode-set.qml:54
805820msgid "Choose passcode"
806821msgstr ""
807822
808−#: qml/Wizard/Pages/passcode-desktop.qml:105
823+#: qml/Wizard/Pages/passcode-desktop.qml:127
809824msgid "Passcode too short"
810825msgstr ""
811826
812−#: qml/Wizard/Pages/passcode-desktop.qml:107
827+#: qml/Wizard/Pages/passcode-desktop.qml:129
813828msgid "Passcodes match"
814829msgstr ""
815830
816−#: qml/Wizard/Pages/passcode-desktop.qml:109
831+#: qml/Wizard/Pages/passcode-desktop.qml:131
817832msgid "Passcodes do not match"
818833msgstr ""
819834
@@ -821,19 +836,19 @@ msgstr ""
821836msgid "Passcode must be 4 characters long"
822837msgstr ""
823838
824−#: qml/Wizard/Pages/password-set.qml:30
839+#: qml/Wizard/Pages/password-set.qml:31
825840msgid "Lock Screen Password"
826841msgstr ""
827842
828−#: qml/Wizard/Pages/password-set.qml:61
843+#: qml/Wizard/Pages/password-set.qml:62
829844msgid "Enter at least 8 characters"
830845msgstr ""
831846
832−#: qml/Wizard/Pages/password-set.qml:73
847+#: qml/Wizard/Pages/password-set.qml:74
833848msgid "Choose password"
834849msgstr ""
835850
836−#: qml/Wizard/Pages/password-set.qml:103
851+#: qml/Wizard/Pages/password-set.qml:104
837852msgid "Confirm password"
838853msgstr ""
839854
@@ -862,26 +877,30 @@ msgid "To proceed with no SIM tap Skip."
862877msgstr ""
863878
864879#: qml/Wizard/PasswordMeter.qml:87
865−msgid "Passwords match"
880+msgid "Password too short"
866881msgstr ""
867882
868883#: qml/Wizard/PasswordMeter.qml:89
884+msgid "Passwords match"
885+msgstr ""
886+
887+#: qml/Wizard/PasswordMeter.qml:91
869888msgid "Passwords do not match"
870889msgstr ""
871890
872−#: qml/Wizard/PasswordMeter.qml:93
891+#: qml/Wizard/PasswordMeter.qml:95
873892msgid "Strong password"
874893msgstr ""
875894
876−#: qml/Wizard/PasswordMeter.qml:95
895+#: qml/Wizard/PasswordMeter.qml:97
877896msgid "Fair password"
878897msgstr ""
879898
880−#: qml/Wizard/PasswordMeter.qml:97
899+#: qml/Wizard/PasswordMeter.qml:99
881900msgid "Weak password"
882901msgstr ""
883902
884−#: qml/Wizard/PasswordMeter.qml:99
903+#: qml/Wizard/PasswordMeter.qml:101
885904msgid "Very weak password"
886905msgstr ""
887906
@@ -927,6 +946,20 @@ msgstr ""
927946#~ msgid "Type or say a command"
928947#~ msgstr "Напішыце або вымавіце каманду"
929948
949+#, qt-format
950+#~ msgid "Enter %1"
951+#~ msgstr "Увядзіце %1"
952+
953+#, qt-format
954+#~ msgid "Sorry, incorrect %1"
955+#~ msgstr "Даруйце, некарэктны %1"
956+
957+#~ msgid "Enter passcode"
958+#~ msgstr "Увядзіце код"
959+
960+#~ msgid "This will be your last attempt."
961+#~ msgstr "Апошняя спроба."
962+
930963#~ msgid "Log out"
931964#~ msgstr "Выйсці"
932965
@@ -1062,6 +1095,12 @@ msgstr ""
10621095#~ "Вы толькі што асвоілі асноўная жэсты і можаце пачаць выкарыстоўваць "
10631096#~ "тэлефон<br><br>Дакраніцеся да экрана, каб пачаць"
10641097
1098+#~ msgid "Enter passphrase"
1099+#~ msgstr "Увядзіце пароль"
1100+
1101+#~ msgid "Sorry, incorrect passcode."
1102+#~ msgstr "Даруйце, няслушны код."
1103+
10651104#~ msgid "Please re-enter"
10661105#~ msgstr "Калі ласка, паўтарыце ўвод"
10671106
@@ -1155,6 +1194,9 @@ msgstr ""
11551194#~ msgid "Numbers and letters"
11561195#~ msgstr "Літары і лічбы"
11571196
1197+#~ msgid "Sorry, incorrect passphrase."
1198+#~ msgstr "Даруйце, няслушны пароль."
1199+
11581200#~ msgid "Without it, you won’t be able to make calls or use text messaging."
11591201#~ msgstr "Без яе Вы не зможаце тэлефанаваць ці адпраўляць паведамленні."
11601202
@@ -1195,5 +1237,29 @@ msgstr ""
11951237#~ msgid "%H:%M"
11961238#~ msgstr "%H:%M"
11971239
1240+#~ msgctxt "passphrase"
1241+#~ msgid "Please re-enter"
1242+#~ msgstr "Калі ласка, паўтарыце ўвод"
1243+
11981244#~ msgid "Call back"
11991245#~ msgstr "Зваротны выклік"
1246+
1247+#~ msgid "Sorry, incorrect passphrase"
1248+#~ msgstr "Даруйце, някарэктны пароль"
1249+
1250+#~ msgid "Sorry, incorrect passcode"
1251+#~ msgstr "Даруйце, некарэктны код"
1252+
1253+#~ msgid ""
1254+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1255+#~ "and all personal data will be deleted."
1256+#~ msgstr ""
1257+#~ "Калі ўведзены код неправільны, Ваш тэлефон зробіць агульны скід налад і ўсе "
1258+#~ "асабістыя дадзеныя будуць выдалены."
1259+
1260+#~ msgid ""
1261+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1262+#~ "reset and all personal data will be deleted."
1263+#~ msgstr ""
1264+#~ "Калі ўведзены пароль неправільны, Ваш тэлефон зробіць агульны скід налад і "
1265+#~ "ўсе асабістыя дадзеныя будуць выдалены."
po/bg.po+168−145
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,10 +15,10 @@ 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-06-19 05:54+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr ""
2424
@@ -35,73 +35,55 @@ msgstr ""
3535msgid "Unpin shortcut"
3636msgstr ""
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr ""
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−
46−#: qml/Components/DelayedLockscreen.qml:65
47−msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr ""
49−
50−#: qml/Components/DelayedLockscreen.qml:74
51−#, qt-format
52−msgid "Please wait %1 minute and then try again…"
53−msgid_plural "Please wait %1 minutes and then try again…"
54−msgstr[0] ""
55−msgstr[1] ""
56−
57−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
5839msgctxt "Title: Lock/Log out dialog"
5940msgid "Log out"
6041msgstr ""
6142
62−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6344msgid "Are you sure you want to log out?"
6445msgstr ""
6546
66−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
6748msgctxt "Button: Lock the system"
6849msgid "Lock"
6950msgstr ""
7051
71−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7253msgctxt "Button: Log out from the system"
7354msgid "Log Out"
7455msgstr ""
7556
76−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
7860#: qml/Wizard/Pages/passcode-set.qml:32
7961msgid "Cancel"
8062msgstr ""
8163
82−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8365msgctxt "Title: Reboot dialog"
8466msgid "Reboot"
8567msgstr ""
8668
87−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
8870msgid "Are you sure you want to reboot?"
8971msgstr ""
9072
91−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9274msgid "No"
9375msgstr ""
9476
95−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
9678msgid "Yes"
9779msgstr ""
9880
99−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10082msgctxt "Title: Power off/Restart dialog"
10183msgid "Power"
10284msgstr ""
10385
104−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10587msgid ""
10688"Are you sure you would like\n"
10789"to power off?"
@@ -109,12 +91,12 @@ msgstr ""
10991"Искате ли да \n"
11092"изключите захранването на устройството?"
11193
112−#: qml/Components/Dialogs.qml:202
94+#: qml/Components/Dialogs.qml:205
11395msgctxt "Button: Power off the system"
11496msgid "Power off"
11597msgstr ""
11698
117−#: qml/Components/Dialogs.qml:211
99+#: qml/Components/Dialogs.qml:214
118100msgctxt "Button: Restart the system"
119101msgid "Restart"
120102msgstr ""
@@ -279,18 +261,28 @@ msgstr ""
279261msgid "Closes the current window."
280262msgstr ""
281263
282−#: qml/Components/Lockscreen.qml:231
264+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
283265msgid "Return to Call"
284266msgstr ""
285267
286−#: qml/Components/Lockscreen.qml:231
268+#: qml/Components/Lockscreen.qml:212
287269msgid "Emergency Call"
288270msgstr "Спешно повикване"
289271
290−#: qml/Components/Lockscreen.qml:263
272+#: qml/Components/Lockscreen.qml:244
291273msgid "OK"
292274msgstr ""
293275
276+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
277+#, qt-format
278+msgid "%1:%2:%3"
279+msgstr ""
280+
281+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
282+#, qt-format
283+msgid "%1:%2"
284+msgstr ""
285+
294286#: qml/Components/ModeSwitchWarningDialog.qml:32
295287msgid "Apps may have unsaved data:"
296288msgstr ""
@@ -317,55 +309,59 @@ msgstr ""
317309msgid "Close all"
318310msgstr ""
319311
320−#: qml/Dash/DashPageHeader.qml:333
312+#: qml/Components/SharingPicker.qml:54
313+msgid "Preview Share Item"
314+msgstr ""
315+
316+#: qml/Dash/DashPageHeader.qml:362
321317msgctxt "Button: Open the Ubuntu Store"
322318msgid "Store"
323319msgstr ""
324320
325−#: qml/Dash/DashPageHeader.qml:340
321+#: qml/Dash/DashPageHeader.qml:369
326322msgctxt "Button: Start a search in the current dash scope"
327323msgid "Search"
328324msgstr ""
329325
330−#: qml/Dash/DashPageHeader.qml:350
326+#: qml/Dash/DashPageHeader.qml:379
331327msgctxt "Button: Show the current dash scope settings"
332328msgid "Settings"
333329msgstr ""
334330
335−#: qml/Dash/DashPageHeader.qml:357
331+#: qml/Dash/DashPageHeader.qml:386
336332msgid "Remove from Favorites"
337333msgstr ""
338334
339−#: qml/Dash/DashPageHeader.qml:357
335+#: qml/Dash/DashPageHeader.qml:386
340336msgid "Add to Favorites"
341337msgstr ""
342338
343−#: qml/Dash/FiltersPopover.qml:60
339+#: qml/Dash/FiltersPopover.qml:61
344340msgid "Refine your results"
345341msgstr ""
346342
347−#: qml/Dash/FiltersPopover.qml:69
343+#: qml/Dash/FiltersPopover.qml:70
348344msgid "Reset"
349345msgstr ""
350346
351−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
347+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
352348msgid "Show less"
353349msgstr ""
354350
355−#: qml/Dash/GenericScopeView.qml:580
351+#: qml/Dash/GenericScopeView.qml:586
356352msgid "Show all"
357353msgstr ""
358354
359−#: qml/Dash/GenericScopeView.qml:637
355+#: qml/Dash/GenericScopeView.qml:643
360356msgctxt "Label: Hint for dash search line edit"
361357msgid "Search"
362358msgstr ""
363359
364−#: qml/Dash/PageHeaderExtraPanel.qml:56
360+#: qml/Dash/PageHeaderExtraPanel.qml:57
365361msgid "Recent Searches"
366362msgstr ""
367363
368−#: qml/Dash/PageHeaderExtraPanel.qml:67
364+#: qml/Dash/PageHeaderExtraPanel.qml:68
369365msgid "Clear All"
370366msgstr ""
371367
@@ -377,28 +373,24 @@ msgstr ""
377373msgid "Less..."
378374msgstr "По-малко..."
379375
380−#: qml/Dash/Previews/PreviewCommentInput.qml:68
381−#: qml/Dash/Previews/PreviewRatingInput.qml:175
376+#: qml/Dash/Previews/PreviewCommentInput.qml:83
377+#: qml/Dash/Previews/PreviewRatingInput.qml:201
382378msgid "Send"
383379msgstr "Изпрати"
384380
385−#: qml/Dash/Previews/PreviewRatingInput.qml:82
381+#: qml/Dash/Previews/PreviewRatingInput.qml:108
386382msgid "Rate this"
387383msgstr "Оценете това"
388384
389−#: qml/Dash/Previews/PreviewRatingInput.qml:157
385+#: qml/Dash/Previews/PreviewRatingInput.qml:183
390386msgid "Add a review"
391387msgstr "Добави отзив"
392388
393−#: qml/Dash/Previews/PreviewSharing.qml:66
394−msgid "Preview Share Item"
395−msgstr ""
396−
397−#: qml/Dash/PullToRefreshScopeStyle.qml:55
389+#: qml/Dash/PullToRefreshScopeStyle.qml:56
398390msgid "Pull to refresh…"
399391msgstr ""
400392
401−#: qml/Dash/PullToRefreshScopeStyle.qml:60
393+#: qml/Dash/PullToRefreshScopeStyle.qml:61
402394msgid "Release to refresh…"
403395msgstr ""
404396
@@ -406,15 +398,15 @@ msgstr ""
406398msgid "Enable location data"
407399msgstr ""
408400
409−#: qml/Dash/ScopesList.qml:55
401+#: qml/Dash/ScopesList.qml:57
410402msgid "Manage"
411403msgstr ""
412404
413−#: qml/Dash/ScopesList.qml:101
405+#: qml/Dash/ScopesList.qml:104
414406msgid "Home"
415407msgstr ""
416408
417−#: qml/Dash/ScopesList.qml:102
409+#: qml/Dash/ScopesList.qml:105
418410msgid "Also installed"
419411msgstr ""
420412
@@ -424,71 +416,55 @@ msgid ""
424416"touch pad to interact with the pointer."
425417msgstr ""
426418
427−#: qml/Greeter/CoverPage.qml:119
419+#: qml/Greeter/CoverPage.qml:127
428420msgid "Unlock"
429421msgstr ""
430422
431−#: qml/Greeter/LoginList.qml:259
432−msgid "Retry"
433−msgstr ""
434−
435−#: qml/Greeter/LoginList.qml:260
436−msgid "Log In"
437−msgstr ""
438−
439−#: qml/Greeter/NarrowView.qml:54
440−msgid "Sorry, incorrect passphrase."
441−msgstr ""
442−
443−#: qml/Greeter/NarrowView.qml:55
444−msgid "Sorry, incorrect passcode."
445−msgstr ""
446−
447−#: qml/Greeter/NarrowView.qml:56
448−msgid "This will be your last attempt."
423+#: qml/Greeter/DelayedLockscreen.qml:43
424+msgid "Device Locked"
449425msgstr ""
450426
451−#: qml/Greeter/NarrowView.qml:58
452−msgid ""
453−"If passphrase is entered incorrectly, your phone will conduct a factory "
454−"reset and all personal data will be deleted."
427+#: qml/Greeter/DelayedLockscreen.qml:58
428+msgid "You have been locked out due to too many failed passphrase attempts."
455429msgstr ""
456430
457−#: qml/Greeter/NarrowView.qml:59
458−msgid ""
459−"If passcode is entered incorrectly, your phone will conduct a factory reset "
460−"and all personal data will be deleted."
431+#: qml/Greeter/DelayedLockscreen.qml:59
432+msgid "You have been locked out due to too many failed passcode attempts."
461433msgstr ""
462434
463−#: qml/Greeter/NarrowView.qml:116
435+#: qml/Greeter/DelayedLockscreen.qml:68
464436#, qt-format
465−msgid "Enter %1"
437+msgid "Please wait %1 minute and then try again…"
438+msgid_plural "Please wait %1 minutes and then try again…"
439+msgstr[0] ""
440+msgstr[1] ""
441+
442+#: qml/Greeter/Greeter.qml:596
443+msgid "Try again"
466444msgstr ""
467445
468−#: qml/Greeter/NarrowView.qml:117
469−msgid "Enter passphrase"
446+#: qml/Greeter/LoginList.qml:70
447+msgid "Passphrase"
470448msgstr ""
471449
472−#: qml/Greeter/NarrowView.qml:118
473−msgid "Enter passcode"
450+#: qml/Greeter/LoginList.qml:71
451+msgid "Passcode"
474452msgstr ""
475453
476−#: qml/Greeter/NarrowView.qml:119
477−#, qt-format
478−msgid "Sorry, incorrect %1"
454+#: qml/Greeter/LoginList.qml:98
455+msgid "Retry"
479456msgstr ""
480457
481−#: qml/Greeter/NarrowView.qml:120
482−msgid "Sorry, incorrect passphrase"
458+#: qml/Greeter/LoginList.qml:99
459+msgid "Log In"
483460msgstr ""
484461
485−#: qml/Greeter/NarrowView.qml:121
486−msgctxt "passphrase"
487−msgid "Please re-enter"
462+#: qml/Greeter/NarrowView.qml:252
463+msgid "Emergency"
488464msgstr ""
489465
490−#: qml/Greeter/NarrowView.qml:122
491−msgid "Sorry, incorrect passcode"
466+#: qml/Greeter/SessionsList.qml:122
467+msgid "Select desktop environment"
492468msgstr ""
493469
494470#: qml/Notifications/NotificationMenuItemFactory.qml:124
@@ -607,40 +583,54 @@ msgctxt "Button: Go back one page in the Wizard"
607583msgid "Back"
608584msgstr ""
609585
610−#: qml/Wizard/Pages/10-welcome.qml:27
586+#: qml/Wizard/Pages/10-welcome.qml:28
611587msgid "Language"
612588msgstr ""
613589
614−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
615−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
616−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
590+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
591+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
592+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
593+#: qml/Wizard/Pages/70-passwd-type.qml:145
617594#: qml/Wizard/Pages/75-report-check.qml:84
618−#: qml/Wizard/Pages/passcode-desktop.qml:124
619−#: qml/Wizard/Pages/password-set.qml:141
595+#: qml/Wizard/Pages/passcode-desktop.qml:142
596+#: qml/Wizard/Pages/password-set.qml:142
620597msgid "Next"
621598msgstr ""
622599
623−#: qml/Wizard/Pages/30-wifi.qml:29
600+#: qml/Wizard/Pages/20-keyboard.qml:31
601+msgid "Select Keyboard"
602+msgstr ""
603+
604+#: qml/Wizard/Pages/20-keyboard.qml:71
605+msgid "Keyboard language"
606+msgstr ""
607+
608+#: qml/Wizard/Pages/20-keyboard.qml:93
609+msgid "Keyboard layout"
610+msgstr ""
611+
612+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
613+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
614+#: qml/Wizard/Pages/sim.qml:101
615+msgid "Skip"
616+msgstr ""
617+
618+#: qml/Wizard/Pages/30-wifi.qml:31
624619msgid "Connect to Wi‑Fi"
625620msgstr ""
626621
627−#: qml/Wizard/Pages/30-wifi.qml:130
622+#: qml/Wizard/Pages/30-wifi.qml:132
628623msgid "Connected"
629624msgstr ""
630625
631−#: qml/Wizard/Pages/30-wifi.qml:163
626+#: qml/Wizard/Pages/30-wifi.qml:165
632627msgid "Available Wi-Fi networks"
633628msgstr ""
634629
635−#: qml/Wizard/Pages/30-wifi.qml:164
630+#: qml/Wizard/Pages/30-wifi.qml:166
636631msgid "No available Wi-Fi networks"
637632msgstr ""
638633
639−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
640−#: qml/Wizard/Pages/sim.qml:101
641−msgid "Skip"
642−msgstr ""
643−
644634#: qml/Wizard/Pages/40-location.qml:27
645635msgid "Location Services"
646636msgstr ""
@@ -673,11 +663,11 @@ msgstr ""
673663msgid "You can change it later in System Settings."
674664msgstr ""
675665
676−#: qml/Wizard/Pages/50-timezone.qml:29
666+#: qml/Wizard/Pages/50-timezone.qml:30
677667msgid "Time Zone"
678668msgstr ""
679669
680−#: qml/Wizard/Pages/50-timezone.qml:181
670+#: qml/Wizard/Pages/50-timezone.qml:182
681671msgid "Enter your city"
682672msgstr ""
683673
@@ -689,21 +679,21 @@ msgstr ""
689679msgid "Preferred Name"
690680msgstr ""
691681
692−#: qml/Wizard/Pages/70-passwd-type.qml:39
682+#: qml/Wizard/Pages/70-passwd-type.qml:40
693683msgid "Lock Screen"
694684msgstr ""
695685
696−#: qml/Wizard/Pages/70-passwd-type.qml:101
686+#: qml/Wizard/Pages/70-passwd-type.qml:102
697687msgctxt "Label: Type of security method"
698688msgid "Create new password"
699689msgstr ""
700690
701−#: qml/Wizard/Pages/70-passwd-type.qml:103
691+#: qml/Wizard/Pages/70-passwd-type.qml:104
702692msgctxt "Label: Type of security method"
703693msgid "Create passcode (numbers only)"
704694msgstr ""
705695
706−#: qml/Wizard/Pages/70-passwd-type.qml:105
696+#: qml/Wizard/Pages/70-passwd-type.qml:106
707697msgctxt "Label: Type of security method"
708698msgid "No lock code"
709699msgstr ""
@@ -724,6 +714,35 @@ msgstr ""
724714msgid "Privacy policy"
725715msgstr ""
726716
717+#: qml/Wizard/Pages/77-system-update.qml:28
718+msgid "Update Device"
719+msgstr ""
720+
721+#: qml/Wizard/Pages/77-system-update.qml:55
722+msgid ""
723+"There is a system update available and ready to install. Afterwards, the "
724+"device will automatically restart."
725+msgstr ""
726+
727+#: qml/Wizard/Pages/77-system-update.qml:76
728+msgctxt "string identifying name of the update"
729+msgid "Ubuntu system"
730+msgstr ""
731+
732+#: qml/Wizard/Pages/77-system-update.qml:83
733+#, qt-format
734+msgctxt "version of the system update"
735+msgid "Version %1"
736+msgstr ""
737+
738+#: qml/Wizard/Pages/77-system-update.qml:102
739+msgid "This could take a few minutes..."
740+msgstr ""
741+
742+#: qml/Wizard/Pages/77-system-update.qml:116
743+msgid "Install and restart now"
744+msgstr ""
745+
727746#: qml/Wizard/Pages/80-finished.qml:89
728747msgid "Welcome to Ubuntu"
729748msgstr ""
@@ -767,7 +786,7 @@ msgid "Service Terms"
767786msgstr ""
768787
769788#: qml/Wizard/Pages/passcode-confirm.qml:43
770−#: qml/Wizard/Pages/passcode-desktop.qml:80
789+#: qml/Wizard/Pages/passcode-desktop.qml:97
771790msgid "Confirm passcode"
772791msgstr ""
773792
@@ -780,28 +799,28 @@ msgctxt "Enter the passcode again"
780799msgid "Please re-enter."
781800msgstr ""
782801
783−#: qml/Wizard/Pages/passcode-desktop.qml:30
802+#: qml/Wizard/Pages/passcode-desktop.qml:31
784803msgid "Lock Screen Passcode"
785804msgstr ""
786805
787−#: qml/Wizard/Pages/passcode-desktop.qml:56
806+#: qml/Wizard/Pages/passcode-desktop.qml:61
788807msgid "Enter 4 numbers to setup your passcode"
789808msgstr ""
790809
791−#: qml/Wizard/Pages/passcode-desktop.qml:65
810+#: qml/Wizard/Pages/passcode-desktop.qml:77
792811#: qml/Wizard/Pages/passcode-set.qml:54
793812msgid "Choose passcode"
794813msgstr ""
795814
796−#: qml/Wizard/Pages/passcode-desktop.qml:105
815+#: qml/Wizard/Pages/passcode-desktop.qml:127
797816msgid "Passcode too short"
798817msgstr ""
799818
800−#: qml/Wizard/Pages/passcode-desktop.qml:107
819+#: qml/Wizard/Pages/passcode-desktop.qml:129
801820msgid "Passcodes match"
802821msgstr ""
803822
804−#: qml/Wizard/Pages/passcode-desktop.qml:109
823+#: qml/Wizard/Pages/passcode-desktop.qml:131
805824msgid "Passcodes do not match"
806825msgstr ""
807826
@@ -809,19 +828,19 @@ msgstr ""
809828msgid "Passcode must be 4 characters long"
810829msgstr ""
811830
812−#: qml/Wizard/Pages/password-set.qml:30
831+#: qml/Wizard/Pages/password-set.qml:31
813832msgid "Lock Screen Password"
814833msgstr ""
815834
816−#: qml/Wizard/Pages/password-set.qml:61
835+#: qml/Wizard/Pages/password-set.qml:62
817836msgid "Enter at least 8 characters"
818837msgstr ""
819838
820−#: qml/Wizard/Pages/password-set.qml:73
839+#: qml/Wizard/Pages/password-set.qml:74
821840msgid "Choose password"
822841msgstr ""
823842
824−#: qml/Wizard/Pages/password-set.qml:103
843+#: qml/Wizard/Pages/password-set.qml:104
825844msgid "Confirm password"
826845msgstr ""
827846
@@ -850,26 +869,30 @@ msgid "To proceed with no SIM tap Skip."
850869msgstr ""
851870
852871#: qml/Wizard/PasswordMeter.qml:87
853−msgid "Passwords match"
872+msgid "Password too short"
854873msgstr ""
855874
856875#: qml/Wizard/PasswordMeter.qml:89
876+msgid "Passwords match"
877+msgstr ""
878+
879+#: qml/Wizard/PasswordMeter.qml:91
857880msgid "Passwords do not match"
858881msgstr ""
859882
860−#: qml/Wizard/PasswordMeter.qml:93
883+#: qml/Wizard/PasswordMeter.qml:95
861884msgid "Strong password"
862885msgstr ""
863886
864−#: qml/Wizard/PasswordMeter.qml:95
887+#: qml/Wizard/PasswordMeter.qml:97
865888msgid "Fair password"
866889msgstr ""
867890
868−#: qml/Wizard/PasswordMeter.qml:97
891+#: qml/Wizard/PasswordMeter.qml:99
869892msgid "Weak password"
870893msgstr ""
871894
872−#: qml/Wizard/PasswordMeter.qml:99
895+#: qml/Wizard/PasswordMeter.qml:101
873896msgid "Very weak password"
874897msgstr ""
875898
po/bn.po+221−155
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,10 +15,10 @@ 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-06-19 05:54+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr "পাসওয়ার্ড: "
2424
@@ -35,73 +35,55 @@ msgstr ""
3535msgid "Unpin shortcut"
3636msgstr "আনপিন"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr "ডিভাইসটি লক করা"
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr "অধিকবার পাসফ্রেজ ভুল দেওয়ার কারনে আপনার আইডি লক করা হয়েছে"
45−
46−#: qml/Components/DelayedLockscreen.qml:65
47−msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr "অধিকবার পাসকোড ভুল করার কারনে আপনার আইডি লক করা হয়েছে"
49−
50−#: qml/Components/DelayedLockscreen.qml:74
51−#, qt-format
52−msgid "Please wait %1 minute and then try again…"
53−msgid_plural "Please wait %1 minutes and then try again…"
54−msgstr[0] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
55−msgstr[1] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
56−
57−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
5839msgctxt "Title: Lock/Log out dialog"
5940msgid "Log out"
6041msgstr ""
6142
62−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6344msgid "Are you sure you want to log out?"
6445msgstr "আপনি কি লগ আউট করতে চান?"
6546
66−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
6748msgctxt "Button: Lock the system"
6849msgid "Lock"
6950msgstr "লক করুন"
7051
71−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7253msgctxt "Button: Log out from the system"
7354msgid "Log Out"
7455msgstr ""
7556
76−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
7860#: qml/Wizard/Pages/passcode-set.qml:32
7961msgid "Cancel"
8062msgstr "বাতিল"
8163
82−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8365msgctxt "Title: Reboot dialog"
8466msgid "Reboot"
8567msgstr "পুনরায় চালু"
8668
87−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
8870msgid "Are you sure you want to reboot?"
8971msgstr "আপনি কি পুনরায় চালু করতে চান?"
9072
91−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9274msgid "No"
9375msgstr "না"
9476
95−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
9678msgid "Yes"
9779msgstr "হ্যাঁ"
9880
99−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10082msgctxt "Title: Power off/Restart dialog"
10183msgid "Power"
10284msgstr ""
10385
104−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10587msgid ""
10688"Are you sure you would like\n"
10789"to power off?"
@@ -109,12 +91,12 @@ msgstr ""
10991"আপনি নিশ্চিত যে আপনি\n"
11092"বন্ধ করতে চান?"
11193
112−#: qml/Components/Dialogs.qml:202
94+#: qml/Components/Dialogs.qml:205
11395msgctxt "Button: Power off the system"
11496msgid "Power off"
11597msgstr "বন্ধ করুন"
11698
117−#: qml/Components/Dialogs.qml:211
99+#: qml/Components/Dialogs.qml:214
118100msgctxt "Button: Restart the system"
119101msgid "Restart"
120102msgstr "পুনরায় চালু"
@@ -279,18 +261,28 @@ msgstr ""
279261msgid "Closes the current window."
280262msgstr ""
281263
282−#: qml/Components/Lockscreen.qml:231
264+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
283265msgid "Return to Call"
284266msgstr "কল এ ফিরে যান"
285267
286−#: qml/Components/Lockscreen.qml:231
268+#: qml/Components/Lockscreen.qml:212
287269msgid "Emergency Call"
288270msgstr "জরুরী কল"
289271
290−#: qml/Components/Lockscreen.qml:263
272+#: qml/Components/Lockscreen.qml:244
291273msgid "OK"
292274msgstr "ঠিক আছে"
293275
276+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
277+#, qt-format
278+msgid "%1:%2:%3"
279+msgstr ""
280+
281+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
282+#, qt-format
283+msgid "%1:%2"
284+msgstr ""
285+
294286#: qml/Components/ModeSwitchWarningDialog.qml:32
295287msgid "Apps may have unsaved data:"
296288msgstr ""
@@ -317,55 +309,59 @@ msgstr ""
317309msgid "Close all"
318310msgstr ""
319311
320−#: qml/Dash/DashPageHeader.qml:333
312+#: qml/Components/SharingPicker.qml:54
313+msgid "Preview Share Item"
314+msgstr ""
315+
316+#: qml/Dash/DashPageHeader.qml:362
321317msgctxt "Button: Open the Ubuntu Store"
322318msgid "Store"
323319msgstr "স্টোর"
324320
325−#: qml/Dash/DashPageHeader.qml:340
321+#: qml/Dash/DashPageHeader.qml:369
326322msgctxt "Button: Start a search in the current dash scope"
327323msgid "Search"
328324msgstr "খুঁজুন"
329325
330−#: qml/Dash/DashPageHeader.qml:350
326+#: qml/Dash/DashPageHeader.qml:379
331327msgctxt "Button: Show the current dash scope settings"
332328msgid "Settings"
333329msgstr "সেটিংস"
334330
335−#: qml/Dash/DashPageHeader.qml:357
331+#: qml/Dash/DashPageHeader.qml:386
336332msgid "Remove from Favorites"
337333msgstr "পছন্দ থেকে মুছে ফেলুন"
338334
339−#: qml/Dash/DashPageHeader.qml:357
335+#: qml/Dash/DashPageHeader.qml:386
340336msgid "Add to Favorites"
341337msgstr "পছন্দতে যোগ করুন"
342338
343−#: qml/Dash/FiltersPopover.qml:60
339+#: qml/Dash/FiltersPopover.qml:61
344340msgid "Refine your results"
345341msgstr ""
346342
347−#: qml/Dash/FiltersPopover.qml:69
343+#: qml/Dash/FiltersPopover.qml:70
348344msgid "Reset"
349345msgstr ""
350346
351−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
347+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
352348msgid "Show less"
353349msgstr ""
354350
355−#: qml/Dash/GenericScopeView.qml:580
351+#: qml/Dash/GenericScopeView.qml:586
356352msgid "Show all"
357353msgstr ""
358354
359−#: qml/Dash/GenericScopeView.qml:637
355+#: qml/Dash/GenericScopeView.qml:643
360356msgctxt "Label: Hint for dash search line edit"
361357msgid "Search"
362358msgstr "খুঁজুন"
363359
364−#: qml/Dash/PageHeaderExtraPanel.qml:56
360+#: qml/Dash/PageHeaderExtraPanel.qml:57
365361msgid "Recent Searches"
366362msgstr ""
367363
368−#: qml/Dash/PageHeaderExtraPanel.qml:67
364+#: qml/Dash/PageHeaderExtraPanel.qml:68
369365msgid "Clear All"
370366msgstr ""
371367
@@ -377,28 +373,24 @@ msgstr "আরো..."
377373msgid "Less..."
378374msgstr "কম..."
379375
380−#: qml/Dash/Previews/PreviewCommentInput.qml:68
381−#: qml/Dash/Previews/PreviewRatingInput.qml:175
376+#: qml/Dash/Previews/PreviewCommentInput.qml:83
377+#: qml/Dash/Previews/PreviewRatingInput.qml:201
382378msgid "Send"
383379msgstr "পাঠান"
384380
385−#: qml/Dash/Previews/PreviewRatingInput.qml:82
381+#: qml/Dash/Previews/PreviewRatingInput.qml:108
386382msgid "Rate this"
387383msgstr "রেটিং দিন"
388384
389−#: qml/Dash/Previews/PreviewRatingInput.qml:157
385+#: qml/Dash/Previews/PreviewRatingInput.qml:183
390386msgid "Add a review"
391387msgstr "আপনার মতামত দিন"
392388
393−#: qml/Dash/Previews/PreviewSharing.qml:66
394−msgid "Preview Share Item"
395−msgstr ""
396−
397−#: qml/Dash/PullToRefreshScopeStyle.qml:55
389+#: qml/Dash/PullToRefreshScopeStyle.qml:56
398390msgid "Pull to refresh…"
399391msgstr "রিফ্রেশ করার জন্য টানুন"
400392
401−#: qml/Dash/PullToRefreshScopeStyle.qml:60
393+#: qml/Dash/PullToRefreshScopeStyle.qml:61
402394msgid "Release to refresh…"
403395msgstr "রিফ্রেশ করার জন্য ছেড়ে দিন"
404396
@@ -406,15 +398,15 @@ msgstr "রিফ্রেশ করার জন্য ছেড়ে দিন"
406398msgid "Enable location data"
407399msgstr "অবস্থান নির্ণয় চালু করুন"
408400
409−#: qml/Dash/ScopesList.qml:55
401+#: qml/Dash/ScopesList.qml:57
410402msgid "Manage"
411403msgstr "ব্যবস্থাপনা"
412404
413−#: qml/Dash/ScopesList.qml:101
405+#: qml/Dash/ScopesList.qml:104
414406msgid "Home"
415407msgstr ""
416408
417−#: qml/Dash/ScopesList.qml:102
409+#: qml/Dash/ScopesList.qml:105
418410msgid "Also installed"
419411msgstr "আরও ইন্সটল করা রয়েছে..."
420412
@@ -424,73 +416,56 @@ msgid ""
424416"touch pad to interact with the pointer."
425417msgstr ""
426418
427−#: qml/Greeter/CoverPage.qml:119
419+#: qml/Greeter/CoverPage.qml:127
428420msgid "Unlock"
429421msgstr "লক খুলুন"
430422
431−#: qml/Greeter/LoginList.qml:259
432−msgid "Retry"
433−msgstr ""
434−
435−#: qml/Greeter/LoginList.qml:260
436−msgid "Log In"
437−msgstr ""
423+#: qml/Greeter/DelayedLockscreen.qml:43
424+msgid "Device Locked"
425+msgstr "ডিভাইসটি লক করা"
438426
439−#: qml/Greeter/NarrowView.qml:54
440−msgid "Sorry, incorrect passphrase."
441−msgstr "দুঃখিত, পাসওয়ার্ডটি ভুল হয়েছে।"
427+#: qml/Greeter/DelayedLockscreen.qml:58
428+msgid "You have been locked out due to too many failed passphrase attempts."
429+msgstr "অধিকবার পাসফ্রেজ ভুল দেওয়ার কারনে আপনার আইডি লক করা হয়েছে"
442430
443−#: qml/Greeter/NarrowView.qml:55
444−msgid "Sorry, incorrect passcode."
445−msgstr "দুঃখিত, পাসকোডটি ভুল হয়েছে।"
431+#: qml/Greeter/DelayedLockscreen.qml:59
432+msgid "You have been locked out due to too many failed passcode attempts."
433+msgstr "অধিকবার পাসকোড ভুল করার কারনে আপনার আইডি লক করা হয়েছে"
446434
447−#: qml/Greeter/NarrowView.qml:56
448−msgid "This will be your last attempt."
449−msgstr "এটিই আপনার সর্বশেষ সুযোগ।"
435+#: qml/Greeter/DelayedLockscreen.qml:68
436+#, qt-format
437+msgid "Please wait %1 minute and then try again…"
438+msgid_plural "Please wait %1 minutes and then try again…"
439+msgstr[0] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
440+msgstr[1] "অনুগ্রহ করে %1 মিনিট অপেক্ষা করুন এবং পরবর্তীতে চেষ্টা করুন..."
450441
451−#: qml/Greeter/NarrowView.qml:58
452−msgid ""
453−"If passphrase is entered incorrectly, your phone will conduct a factory "
454−"reset and all personal data will be deleted."
442+#: qml/Greeter/Greeter.qml:596
443+msgid "Try again"
455444msgstr ""
456−"ভুল পাসওয়ার্ড প্রদান করলে, আপনার ফোনটিতে থাকা সকল ব্যক্তিগত তথ্য মুছে যাবে।"
457−
458−#: qml/Greeter/NarrowView.qml:59
459−msgid ""
460−"If passcode is entered incorrectly, your phone will conduct a factory reset "
461−"and all personal data will be deleted."
462−msgstr "ভুল পাসকোড প্রদান করলে, আপনার ফোনটির সকল ব্যক্তিগত তথ্য মুছে যাবে।"
463445
464−#: qml/Greeter/NarrowView.qml:116
465−#, qt-format
466−msgid "Enter %1"
467−msgstr "%1 লিখুন"
468−
469−#: qml/Greeter/NarrowView.qml:117
470−msgid "Enter passphrase"
471−msgstr "পাসওয়ার্ড লিখুন"
446+#: qml/Greeter/LoginList.qml:70
447+msgid "Passphrase"
448+msgstr ""
472449
473−#: qml/Greeter/NarrowView.qml:118
474−msgid "Enter passcode"
475−msgstr "পাসকোড লিখুন"
450+#: qml/Greeter/LoginList.qml:71
451+msgid "Passcode"
452+msgstr ""
476453
477−#: qml/Greeter/NarrowView.qml:119
478−#, qt-format
479−msgid "Sorry, incorrect %1"
480−msgstr "দুঃখিত, %1 ভুল হয়েছে"
454+#: qml/Greeter/LoginList.qml:98
455+msgid "Retry"
456+msgstr ""
481457
482−#: qml/Greeter/NarrowView.qml:120
483−msgid "Sorry, incorrect passphrase"
484−msgstr "দুঃখিত, পাসওয়ার্ড ভুল হয়েছে"
458+#: qml/Greeter/LoginList.qml:99
459+msgid "Log In"
460+msgstr ""
485461
486−#: qml/Greeter/NarrowView.qml:121
487−msgctxt "passphrase"
488−msgid "Please re-enter"
489−msgstr "অনুগ্রহ করে আবার লিখুন"
462+#: qml/Greeter/NarrowView.qml:252
463+msgid "Emergency"
464+msgstr ""
490465
491−#: qml/Greeter/NarrowView.qml:122
492−msgid "Sorry, incorrect passcode"
493−msgstr "দুঃখিত, পাসকোড ভুল হয়েছে"
466+#: qml/Greeter/SessionsList.qml:122
467+msgid "Select desktop environment"
468+msgstr ""
494469
495470#: qml/Notifications/NotificationMenuItemFactory.qml:124
496471msgid "Show password"
@@ -608,40 +583,54 @@ msgctxt "Button: Go back one page in the Wizard"
608583msgid "Back"
609584msgstr ""
610585
611−#: qml/Wizard/Pages/10-welcome.qml:27
586+#: qml/Wizard/Pages/10-welcome.qml:28
612587msgid "Language"
613588msgstr ""
614589
615−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
616−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
617−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
590+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
591+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
592+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
593+#: qml/Wizard/Pages/70-passwd-type.qml:145
618594#: qml/Wizard/Pages/75-report-check.qml:84
619−#: qml/Wizard/Pages/passcode-desktop.qml:124
620−#: qml/Wizard/Pages/password-set.qml:141
595+#: qml/Wizard/Pages/passcode-desktop.qml:142
596+#: qml/Wizard/Pages/password-set.qml:142
621597msgid "Next"
622598msgstr ""
623599
624−#: qml/Wizard/Pages/30-wifi.qml:29
600+#: qml/Wizard/Pages/20-keyboard.qml:31
601+msgid "Select Keyboard"
602+msgstr ""
603+
604+#: qml/Wizard/Pages/20-keyboard.qml:71
605+msgid "Keyboard language"
606+msgstr ""
607+
608+#: qml/Wizard/Pages/20-keyboard.qml:93
609+msgid "Keyboard layout"
610+msgstr ""
611+
612+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
613+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
614+#: qml/Wizard/Pages/sim.qml:101
615+msgid "Skip"
616+msgstr "এড়িয়ে যান"
617+
618+#: qml/Wizard/Pages/30-wifi.qml:31
625619msgid "Connect to Wi‑Fi"
626620msgstr ""
627621
628−#: qml/Wizard/Pages/30-wifi.qml:130
622+#: qml/Wizard/Pages/30-wifi.qml:132
629623msgid "Connected"
630624msgstr ""
631625
632−#: qml/Wizard/Pages/30-wifi.qml:163
626+#: qml/Wizard/Pages/30-wifi.qml:165
633627msgid "Available Wi-Fi networks"
634628msgstr ""
635629
636−#: qml/Wizard/Pages/30-wifi.qml:164
630+#: qml/Wizard/Pages/30-wifi.qml:166
637631msgid "No available Wi-Fi networks"
638632msgstr ""
639633
640−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
641−#: qml/Wizard/Pages/sim.qml:101
642−msgid "Skip"
643−msgstr "এড়িয়ে যান"
644−
645634#: qml/Wizard/Pages/40-location.qml:27
646635msgid "Location Services"
647636msgstr ""
@@ -674,11 +663,11 @@ msgstr ""
674663msgid "You can change it later in System Settings."
675664msgstr ""
676665
677−#: qml/Wizard/Pages/50-timezone.qml:29
666+#: qml/Wizard/Pages/50-timezone.qml:30
678667msgid "Time Zone"
679668msgstr ""
680669
681−#: qml/Wizard/Pages/50-timezone.qml:181
670+#: qml/Wizard/Pages/50-timezone.qml:182
682671msgid "Enter your city"
683672msgstr ""
684673
@@ -690,21 +679,21 @@ msgstr ""
690679msgid "Preferred Name"
691680msgstr ""
692681
693−#: qml/Wizard/Pages/70-passwd-type.qml:39
682+#: qml/Wizard/Pages/70-passwd-type.qml:40
694683msgid "Lock Screen"
695684msgstr ""
696685
697−#: qml/Wizard/Pages/70-passwd-type.qml:101
686+#: qml/Wizard/Pages/70-passwd-type.qml:102
698687msgctxt "Label: Type of security method"
699688msgid "Create new password"
700689msgstr ""
701690
702−#: qml/Wizard/Pages/70-passwd-type.qml:103
691+#: qml/Wizard/Pages/70-passwd-type.qml:104
703692msgctxt "Label: Type of security method"
704693msgid "Create passcode (numbers only)"
705694msgstr ""
706695
707−#: qml/Wizard/Pages/70-passwd-type.qml:105
696+#: qml/Wizard/Pages/70-passwd-type.qml:106
708697msgctxt "Label: Type of security method"
709698msgid "No lock code"
710699msgstr ""
@@ -725,6 +714,35 @@ msgstr ""
725714msgid "Privacy policy"
726715msgstr ""
727716
717+#: qml/Wizard/Pages/77-system-update.qml:28
718+msgid "Update Device"
719+msgstr ""
720+
721+#: qml/Wizard/Pages/77-system-update.qml:55
722+msgid ""
723+"There is a system update available and ready to install. Afterwards, the "
724+"device will automatically restart."
725+msgstr ""
726+
727+#: qml/Wizard/Pages/77-system-update.qml:76
728+msgctxt "string identifying name of the update"
729+msgid "Ubuntu system"
730+msgstr ""
731+
732+#: qml/Wizard/Pages/77-system-update.qml:83
733+#, qt-format
734+msgctxt "version of the system update"
735+msgid "Version %1"
736+msgstr ""
737+
738+#: qml/Wizard/Pages/77-system-update.qml:102
739+msgid "This could take a few minutes..."
740+msgstr ""
741+
742+#: qml/Wizard/Pages/77-system-update.qml:116
743+msgid "Install and restart now"
744+msgstr ""
745+
728746#: qml/Wizard/Pages/80-finished.qml:89
729747msgid "Welcome to Ubuntu"
730748msgstr ""
@@ -768,7 +786,7 @@ msgid "Service Terms"
768786msgstr ""
769787
770788#: qml/Wizard/Pages/passcode-confirm.qml:43
771−#: qml/Wizard/Pages/passcode-desktop.qml:80
789+#: qml/Wizard/Pages/passcode-desktop.qml:97
772790msgid "Confirm passcode"
773791msgstr ""
774792
@@ -781,28 +799,28 @@ msgctxt "Enter the passcode again"
781799msgid "Please re-enter."
782800msgstr ""
783801
784−#: qml/Wizard/Pages/passcode-desktop.qml:30
802+#: qml/Wizard/Pages/passcode-desktop.qml:31
785803msgid "Lock Screen Passcode"
786804msgstr ""
787805
788−#: qml/Wizard/Pages/passcode-desktop.qml:56
806+#: qml/Wizard/Pages/passcode-desktop.qml:61
789807msgid "Enter 4 numbers to setup your passcode"
790808msgstr ""
791809
792−#: qml/Wizard/Pages/passcode-desktop.qml:65
810+#: qml/Wizard/Pages/passcode-desktop.qml:77
793811#: qml/Wizard/Pages/passcode-set.qml:54
794812msgid "Choose passcode"
795813msgstr ""
796814
797−#: qml/Wizard/Pages/passcode-desktop.qml:105
815+#: qml/Wizard/Pages/passcode-desktop.qml:127
798816msgid "Passcode too short"
799817msgstr ""
800818
801−#: qml/Wizard/Pages/passcode-desktop.qml:107
819+#: qml/Wizard/Pages/passcode-desktop.qml:129
802820msgid "Passcodes match"
803821msgstr ""
804822
805−#: qml/Wizard/Pages/passcode-desktop.qml:109
823+#: qml/Wizard/Pages/passcode-desktop.qml:131
806824msgid "Passcodes do not match"
807825msgstr ""
808826
@@ -810,19 +828,19 @@ msgstr ""
810828msgid "Passcode must be 4 characters long"
811829msgstr ""
812830
813−#: qml/Wizard/Pages/password-set.qml:30
831+#: qml/Wizard/Pages/password-set.qml:31
814832msgid "Lock Screen Password"
815833msgstr ""
816834
817−#: qml/Wizard/Pages/password-set.qml:61
835+#: qml/Wizard/Pages/password-set.qml:62
818836msgid "Enter at least 8 characters"
819837msgstr ""
820838
821−#: qml/Wizard/Pages/password-set.qml:73
839+#: qml/Wizard/Pages/password-set.qml:74
822840msgid "Choose password"
823841msgstr ""
824842
825−#: qml/Wizard/Pages/password-set.qml:103
843+#: qml/Wizard/Pages/password-set.qml:104
826844msgid "Confirm password"
827845msgstr ""
828846
@@ -851,26 +869,30 @@ msgid "To proceed with no SIM tap Skip."
851869msgstr ""
852870
853871#: qml/Wizard/PasswordMeter.qml:87
854−msgid "Passwords match"
872+msgid "Password too short"
855873msgstr ""
856874
857875#: qml/Wizard/PasswordMeter.qml:89
876+msgid "Passwords match"
877+msgstr ""
878+
879+#: qml/Wizard/PasswordMeter.qml:91
858880msgid "Passwords do not match"
859881msgstr ""
860882
861−#: qml/Wizard/PasswordMeter.qml:93
883+#: qml/Wizard/PasswordMeter.qml:95
862884msgid "Strong password"
863885msgstr ""
864886
865−#: qml/Wizard/PasswordMeter.qml:95
887+#: qml/Wizard/PasswordMeter.qml:97
866888msgid "Fair password"
867889msgstr ""
868890
869−#: qml/Wizard/PasswordMeter.qml:97
891+#: qml/Wizard/PasswordMeter.qml:99
870892msgid "Weak password"
871893msgstr ""
872894
873−#: qml/Wizard/PasswordMeter.qml:99
895+#: qml/Wizard/PasswordMeter.qml:101
874896msgid "Very weak password"
875897msgstr ""
876898
@@ -884,6 +906,19 @@ msgstr ""
884906#~ msgid "See less"
885907#~ msgstr "কম দেখুন"
886908
909+#~ msgid "Sorry, incorrect passcode."
910+#~ msgstr "দুঃখিত, পাসকোডটি ভুল হয়েছে।"
911+
912+#~ msgid "This will be your last attempt."
913+#~ msgstr "এটিই আপনার সর্বশেষ সুযোগ।"
914+
915+#, qt-format
916+#~ msgid "Sorry, incorrect %1"
917+#~ msgstr "দুঃখিত, %1 ভুল হয়েছে"
918+
919+#~ msgid "Sorry, incorrect passcode"
920+#~ msgstr "দুঃখিত, পাসকোড ভুল হয়েছে"
921+
887922#~ msgid "This action does different things for different apps"
888923#~ msgstr "এই কাজটি বিভিন্ন অ্যাপের জন্য ভিন্ন ভিন্ন ভাবে কাজ করে।"
889924
@@ -985,9 +1020,36 @@ msgstr ""
9851020#~ msgid "Roaming"
9861021#~ msgstr "রোমিং"
9871022
1023+#~ msgid "Enter passphrase"
1024+#~ msgstr "পাসওয়ার্ড লিখুন"
1025+
1026+#~ msgid "Sorry, incorrect passphrase"
1027+#~ msgstr "দুঃখিত, পাসওয়ার্ড ভুল হয়েছে"
1028+
1029+#, qt-format
1030+#~ msgid "Enter %1"
1031+#~ msgstr "%1 লিখুন"
1032+
1033+#~ msgid "Sorry, incorrect passphrase."
1034+#~ msgstr "দুঃখিত, পাসওয়ার্ডটি ভুল হয়েছে।"
1035+
9881036#~ msgid "Please re-enter"
9891037#~ msgstr "অনুগ্রহ করে আবার লিখুন"
9901038
1039+#~ msgid "Enter passcode"
1040+#~ msgstr "পাসকোড লিখুন"
1041+
1042+#~ msgid ""
1043+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1044+#~ "and all personal data will be deleted."
1045+#~ msgstr "ভুল পাসকোড প্রদান করলে, আপনার ফোনটির সকল ব্যক্তিগত তথ্য মুছে যাবে।"
1046+
1047+#~ msgid ""
1048+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1049+#~ "reset and all personal data will be deleted."
1050+#~ msgstr ""
1051+#~ "ভুল পাসওয়ার্ড প্রদান করলে, আপনার ফোনটিতে থাকা সকল ব্যক্তিগত তথ্য মুছে যাবে।"
1052+
9911053#~ msgctxt "Button: Shut down the system"
9921054#~ msgid "Shut down"
9931055#~ msgstr "বন্ধ করুন"
@@ -999,6 +1061,10 @@ msgstr ""
9991061#~ msgid "Tap to unlock"
10001062#~ msgstr "লক খোলার জন্য চাপ দিন"
10011063
1064+#~ msgctxt "passphrase"
1065+#~ msgid "Please re-enter"
1066+#~ msgstr "অনুগ্রহ করে আবার লিখুন"
1067+
10021068#~ msgid "Let’s get started."
10031069#~ msgstr "আসুন শুরু করা যাক।"
10041070
po/br.po+244−177
@@ -7,18 +7,18 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-06-17 01:22+0000\n"
11−"PO-Revision-Date: 2016-04-27 12:20+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+0000\n"
11+"PO-Revision-Date: 2016-08-29 11:37+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-06-19 05:54+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr "Ger-tremen : "
2424
@@ -35,77 +35,55 @@ msgstr "Mont kuit"
3535msgid "Unpin shortcut"
3636msgstr "Dispilhennañ ar verradenn"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr "Benveg prennet"
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−"Prennet eo bet ho penveg abalamour da re a daolioù-esae c'hwitet evit merkañ "
46−"ho frazenn-dremen."
47−
48−#: qml/Components/DelayedLockscreen.qml:65
49−msgid "You have been locked out due to too many failed passcode attempts."
50−msgstr ""
51−"Prennet eo bet ho penveg abalamour da re a daolioù-esae evit merkañ ho kod-"
52−"tremen."
53−
54−#: qml/Components/DelayedLockscreen.qml:74
55−#, qt-format
56−msgid "Please wait %1 minute and then try again…"
57−msgid_plural "Please wait %1 minutes and then try again…"
58−msgstr[0] "Gortozit %1 vunutenn, mar plij, hag esaeit en-dro..."
59−msgstr[1] "Gortozit %1 a vunutoù, mar plij, hag esaeit en-dro..."
60−
61−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
6239msgctxt "Title: Lock/Log out dialog"
6340msgid "Log out"
6441msgstr "Digevreañ"
6542
66−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6744msgid "Are you sure you want to log out?"
6845msgstr "Ha sur oc'h e fell deoc'h digevreañ ?"
6946
70−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
7148msgctxt "Button: Lock the system"
7249msgid "Lock"
7350msgstr "Prennañ"
7451
75−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7653msgctxt "Button: Log out from the system"
7754msgid "Log Out"
7855msgstr "Digevreañ"
7956
80−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
8260#: qml/Wizard/Pages/passcode-set.qml:32
8361msgid "Cancel"
8462msgstr "Nullañ"
8563
86−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8765msgctxt "Title: Reboot dialog"
8866msgid "Reboot"
8967msgstr "Adloc'hañ"
9068
91−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
9270msgid "Are you sure you want to reboot?"
9371msgstr "Ha sur oc'h e fell deoc'h adloc'hañ ?"
9472
95−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9674msgid "No"
9775msgstr "N'on ket"
9876
99−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
10078msgid "Yes"
10179msgstr "Ya"
10280
103−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10482msgctxt "Title: Power off/Restart dialog"
10583msgid "Power"
10684msgstr "Enaouiñ"
10785
108−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10987msgid ""
11088"Are you sure you would like\n"
11189"to power off?"
@@ -113,31 +91,31 @@ msgstr ""
11391"Ha sur oc'h e fell deoc'h\n"
11492"troc'hañ an tredan ?"
11593
116−#: qml/Components/Dialogs.qml:202
94+#: qml/Components/Dialogs.qml:205
11795msgctxt "Button: Power off the system"
11896msgid "Power off"
11997msgstr "Lazhañ"
12098
121−#: qml/Components/Dialogs.qml:211
99+#: qml/Components/Dialogs.qml:214
122100msgctxt "Button: Restart the system"
123101msgid "Restart"
124102msgstr "Adloc'hañ"
125103
126104#: qml/Components/KeyboardShortcutsOverlay.qml:41
127105msgid "Keyboard Shortcuts"
128−msgstr ""
106+msgstr "Berradennoù klavier"
129107
130108#: qml/Components/KeyboardShortcutsOverlay.qml:55
131109msgid "Unity 8"
132−msgstr ""
110+msgstr "Unity 8"
133111
134112#: qml/Components/KeyboardShortcutsOverlay.qml:62
135113msgid "PrtScr"
136−msgstr ""
114+msgstr "Moulsk"
137115
138116#: qml/Components/KeyboardShortcutsOverlay.qml:67
139117msgid "Takes a screenshot."
140−msgstr ""
118+msgstr "Tapout ur skeudenn eus ar skramm"
141119
142120#: qml/Components/KeyboardShortcutsOverlay.qml:75
143121msgid "Alt + PrtScr"
@@ -145,7 +123,7 @@ msgstr ""
145123
146124#: qml/Components/KeyboardShortcutsOverlay.qml:80
147125msgid "Takes a screenshot of a window."
148−msgstr ""
126+msgstr "Tapout ur skeudenn eus ur prenestr"
149127
150128#: qml/Components/KeyboardShortcutsOverlay.qml:88
151129msgid "Super + Space"
@@ -165,7 +143,7 @@ msgstr ""
165143
166144#: qml/Components/KeyboardShortcutsOverlay.qml:118
167145msgid "Launcher"
168−msgstr ""
146+msgstr "Lañser"
169147
170148#: qml/Components/KeyboardShortcutsOverlay.qml:125
171149msgid "Super (Hold)"
@@ -197,11 +175,11 @@ msgstr ""
197175
198176#: qml/Components/KeyboardShortcutsOverlay.qml:169
199177msgid "Same as clicking on a launcher icon."
200−msgstr ""
178+msgstr "Ar memes tra ha klikañ war un arlun lañser"
201179
202180#: qml/Components/KeyboardShortcutsOverlay.qml:181
203181msgid "Scopes"
204−msgstr ""
182+msgstr "Kefluskerioù enklask"
205183
206184#: qml/Components/KeyboardShortcutsOverlay.qml:188
207185msgid "Super (Tap)"
@@ -209,7 +187,7 @@ msgstr ""
209187
210188#: qml/Components/KeyboardShortcutsOverlay.qml:193
211189msgid "Opens the Scopes home."
212−msgstr ""
190+msgstr "Digeriñ pajenn degemer ar c'hefluskerioù enklask."
213191
214192#: qml/Components/KeyboardShortcutsOverlay.qml:209
215193msgid "Switching"
@@ -249,7 +227,7 @@ msgstr ""
249227
250228#: qml/Components/KeyboardShortcutsOverlay.qml:271
251229msgid "Minimizes all windows."
252−msgstr ""
230+msgstr "Bihanaat an holl brenestroù."
253231
254232#: qml/Components/KeyboardShortcutsOverlay.qml:279
255233msgid "Ctrl + Super + Up"
@@ -283,18 +261,28 @@ msgstr ""
283261msgid "Closes the current window."
284262msgstr ""
285263
286−#: qml/Components/Lockscreen.qml:231
264+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
287265msgid "Return to Call"
288266msgstr "Distreiñ d'ar bellgomzadenn"
289267
290−#: qml/Components/Lockscreen.qml:231
268+#: qml/Components/Lockscreen.qml:212
291269msgid "Emergency Call"
292270msgstr "Pellgomzadenn vallus"
293271
294−#: qml/Components/Lockscreen.qml:263
272+#: qml/Components/Lockscreen.qml:244
295273msgid "OK"
296274msgstr "Mat eo"
297275
276+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
277+#, qt-format
278+msgid "%1:%2:%3"
279+msgstr "%1:%2:%3"
280+
281+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
282+#, qt-format
283+msgid "%1:%2"
284+msgstr "%1:%2"
285+
298286#: qml/Components/ModeSwitchWarningDialog.qml:32
299287msgid "Apps may have unsaved data:"
300288msgstr "Roadennoù ha n'int ket enrollet a c'hall bezañ gant an arloadoù :"
@@ -324,55 +312,59 @@ msgstr "Adkevreañ bremañ !"
324312msgid "Close all"
325313msgstr "Serriñ pep tra"
326314
327−#: qml/Dash/DashPageHeader.qml:333
315+#: qml/Components/SharingPicker.qml:54
316+msgid "Preview Share Item"
317+msgstr "Rakwelet an elfenn lodet"
318+
319+#: qml/Dash/DashPageHeader.qml:362
328320msgctxt "Button: Open the Ubuntu Store"
329321msgid "Store"
330322msgstr "Stal"
331323
332−#: qml/Dash/DashPageHeader.qml:340
324+#: qml/Dash/DashPageHeader.qml:369
333325msgctxt "Button: Start a search in the current dash scope"
334326msgid "Search"
335327msgstr "Klask"
336328
337−#: qml/Dash/DashPageHeader.qml:350
329+#: qml/Dash/DashPageHeader.qml:379
338330msgctxt "Button: Show the current dash scope settings"
339331msgid "Settings"
340332msgstr "Arventennoù"
341333
342−#: qml/Dash/DashPageHeader.qml:357
334+#: qml/Dash/DashPageHeader.qml:386
343335msgid "Remove from Favorites"
344336msgstr "Lemel eus ar sinedoù"
345337
346−#: qml/Dash/DashPageHeader.qml:357
338+#: qml/Dash/DashPageHeader.qml:386
347339msgid "Add to Favorites"
348340msgstr "Ouzhpennañ d'ar sinedoù"
349341
350−#: qml/Dash/FiltersPopover.qml:60
342+#: qml/Dash/FiltersPopover.qml:61
351343msgid "Refine your results"
352344msgstr "Purañ ho tisoc'hoù"
353345
354−#: qml/Dash/FiltersPopover.qml:69
346+#: qml/Dash/FiltersPopover.qml:70
355347msgid "Reset"
356348msgstr "Adderaouekaat"
357349
358−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
350+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
359351msgid "Show less"
360−msgstr ""
352+msgstr "Diskouez nebeutoc'h"
361353
362−#: qml/Dash/GenericScopeView.qml:580
354+#: qml/Dash/GenericScopeView.qml:586
363355msgid "Show all"
364−msgstr ""
356+msgstr "Diskouez pep tra"
365357
366−#: qml/Dash/GenericScopeView.qml:637
358+#: qml/Dash/GenericScopeView.qml:643
367359msgctxt "Label: Hint for dash search line edit"
368360msgid "Search"
369361msgstr "Klask"
370362
371−#: qml/Dash/PageHeaderExtraPanel.qml:56
363+#: qml/Dash/PageHeaderExtraPanel.qml:57
372364msgid "Recent Searches"
373365msgstr "Enklaskoù graet nevez zo"
374366
375−#: qml/Dash/PageHeaderExtraPanel.qml:67
367+#: qml/Dash/PageHeaderExtraPanel.qml:68
376368msgid "Clear All"
377369msgstr "Diverkañ pep tra"
378370
@@ -384,28 +376,24 @@ msgstr "Muioc'h..."
384376msgid "Less..."
385377msgstr "Nebeutoc'h..."
386378
387−#: qml/Dash/Previews/PreviewCommentInput.qml:68
388−#: qml/Dash/Previews/PreviewRatingInput.qml:175
379+#: qml/Dash/Previews/PreviewCommentInput.qml:83
380+#: qml/Dash/Previews/PreviewRatingInput.qml:201
389381msgid "Send"
390382msgstr "Kas"
391383
392−#: qml/Dash/Previews/PreviewRatingInput.qml:82
384+#: qml/Dash/Previews/PreviewRatingInput.qml:108
393385msgid "Rate this"
394386msgstr "Priziit an dra-mañ"
395387
396−#: qml/Dash/Previews/PreviewRatingInput.qml:157
388+#: qml/Dash/Previews/PreviewRatingInput.qml:183
397389msgid "Add a review"
398390msgstr "Ouzhpennañ un ali"
399391
400−#: qml/Dash/Previews/PreviewSharing.qml:66
401−msgid "Preview Share Item"
402−msgstr "Rakwelet an elfenn lodet"
403−
404−#: qml/Dash/PullToRefreshScopeStyle.qml:55
392+#: qml/Dash/PullToRefreshScopeStyle.qml:56
405393msgid "Pull to refresh…"
406394msgstr "Tennañ evit freskaat..."
407395
408−#: qml/Dash/PullToRefreshScopeStyle.qml:60
396+#: qml/Dash/PullToRefreshScopeStyle.qml:61
409397msgid "Release to refresh…"
410398msgstr "Lezel da vont evit freskaat..."
411399
@@ -413,15 +401,15 @@ msgstr "Lezel da vont evit freskaat..."
413401msgid "Enable location data"
414402msgstr "Gweredekaat ar roadennoù lec'hiañ"
415403
416−#: qml/Dash/ScopesList.qml:55
404+#: qml/Dash/ScopesList.qml:57
417405msgid "Manage"
418406msgstr "Merañ"
419407
420−#: qml/Dash/ScopesList.qml:101
408+#: qml/Dash/ScopesList.qml:104
421409msgid "Home"
422410msgstr "Er gêr"
423411
424−#: qml/Dash/ScopesList.qml:102
412+#: qml/Dash/ScopesList.qml:105
425413msgid "Also installed"
426414msgstr "Staliet ivez"
427415
@@ -431,76 +419,60 @@ msgid ""
431419"touch pad to interact with the pointer."
432420msgstr ""
433421
434−#: qml/Greeter/CoverPage.qml:119
422+#: qml/Greeter/CoverPage.qml:127
435423msgid "Unlock"
436424msgstr "Dibrennañ"
437425
438−#: qml/Greeter/LoginList.qml:259
439−msgid "Retry"
440−msgstr "Esaeañ en-dro"
441−
442−#: qml/Greeter/LoginList.qml:260
443−msgid "Log In"
444−msgstr ""
445−
446−#: qml/Greeter/NarrowView.qml:54
447−msgid "Sorry, incorrect passphrase."
448−msgstr "Siwazh, frazenn-dremen direizh"
449−
450−#: qml/Greeter/NarrowView.qml:55
451−msgid "Sorry, incorrect passcode."
452−msgstr "Siwazh, kod-tremen direizh"
453−
454−#: qml/Greeter/NarrowView.qml:56
455−msgid "This will be your last attempt."
456−msgstr "Ho taol-esae diwezhañ e vo."
426+#: qml/Greeter/DelayedLockscreen.qml:43
427+msgid "Device Locked"
428+msgstr "Benveg prennet"
457429
458−#: qml/Greeter/NarrowView.qml:58
459−msgid ""
460−"If passphrase is entered incorrectly, your phone will conduct a factory "
461−"reset and all personal data will be deleted."
430+#: qml/Greeter/DelayedLockscreen.qml:58
431+msgid "You have been locked out due to too many failed passphrase attempts."
462432msgstr ""
463−"Ma vez ebarzhet ur frazenn-dremen direizh, e vo adderaouekaet ho pellgomzer "
464−"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel"
433+"Prennet eo bet ho penveg abalamour da re a daolioù-esae c'hwitet evit merkañ "
434+"ho frazenn-dremen."
465435
466−#: qml/Greeter/NarrowView.qml:59
467−msgid ""
468−"If passcode is entered incorrectly, your phone will conduct a factory reset "
469−"and all personal data will be deleted."
436+#: qml/Greeter/DelayedLockscreen.qml:59
437+msgid "You have been locked out due to too many failed passcode attempts."
470438msgstr ""
471−"Ma vez ebarzhet ur c'hod-tremen direizh, e vo adderaouekaet ho pellgomzer "
472−"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel."
439+"Prennet eo bet ho penveg abalamour da re a daolioù-esae evit merkañ ho kod-"
440+"tremen."
473441
474−#: qml/Greeter/NarrowView.qml:116
442+#: qml/Greeter/DelayedLockscreen.qml:68
475443#, qt-format
476−msgid "Enter %1"
477−msgstr "Merkañ %1"
444+msgid "Please wait %1 minute and then try again…"
445+msgid_plural "Please wait %1 minutes and then try again…"
446+msgstr[0] "Gortozit %1 vunutenn, mar plij, hag esaeit en-dro..."
447+msgstr[1] "Gortozit %1 a vunutoù, mar plij, hag esaeit en-dro..."
478448
479−#: qml/Greeter/NarrowView.qml:117
480−msgid "Enter passphrase"
481−msgstr "Merkañ ar frazenn-dremen"
449+#: qml/Greeter/Greeter.qml:596
450+msgid "Try again"
451+msgstr "Esaeañ adarre"
482452
483−#: qml/Greeter/NarrowView.qml:118
484−msgid "Enter passcode"
485−msgstr "Merkañ ar c'hod-tremen"
453+#: qml/Greeter/LoginList.qml:70
454+msgid "Passphrase"
455+msgstr "Lavarenn-dremen"
486456
487−#: qml/Greeter/NarrowView.qml:119
488−#, qt-format
489−msgid "Sorry, incorrect %1"
490−msgstr "Siwazh, %1 direizh"
457+#: qml/Greeter/LoginList.qml:71
458+msgid "Passcode"
459+msgstr "Kod-tremen"
460+
461+#: qml/Greeter/LoginList.qml:98
462+msgid "Retry"
463+msgstr "Esaeañ en-dro"
491464
492−#: qml/Greeter/NarrowView.qml:120
493−msgid "Sorry, incorrect passphrase"
494−msgstr "Siwazh, frazenn-dremen direizh"
465+#: qml/Greeter/LoginList.qml:99
466+msgid "Log In"
467+msgstr "Kevreañ"
495468
496−#: qml/Greeter/NarrowView.qml:121
497−msgctxt "passphrase"
498−msgid "Please re-enter"
499−msgstr "Adverkañ, mar plij"
469+#: qml/Greeter/NarrowView.qml:252
470+msgid "Emergency"
471+msgstr ""
500472
501−#: qml/Greeter/NarrowView.qml:122
502−msgid "Sorry, incorrect passcode"
503−msgstr "Digarezit, kod-tremen direizh"
473+#: qml/Greeter/SessionsList.qml:122
474+msgid "Select desktop environment"
475+msgstr ""
504476
505477#: qml/Notifications/NotificationMenuItemFactory.qml:124
506478msgid "Show password"
@@ -604,6 +576,7 @@ msgstr ""
604576#: qml/Tutorial/TutorialRight.qml:55
605577msgid "Push your mouse against the right edge to view your open apps"
606578msgstr ""
579+"Dilec'hiit ho logodenn betek ar bord dehoù evit gwelet hoc'h arloadoù digor"
607580
608581#: qml/Tutorial/TutorialRight.qml:56
609582msgid "Swipe from the right edge to view your open apps"
@@ -618,40 +591,54 @@ msgctxt "Button: Go back one page in the Wizard"
618591msgid "Back"
619592msgstr "Distreiñ"
620593
621−#: qml/Wizard/Pages/10-welcome.qml:27
594+#: qml/Wizard/Pages/10-welcome.qml:28
622595msgid "Language"
623596msgstr "Yezh"
624597
625−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
626−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
627−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
598+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
599+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
600+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
601+#: qml/Wizard/Pages/70-passwd-type.qml:145
628602#: qml/Wizard/Pages/75-report-check.qml:84
629−#: qml/Wizard/Pages/passcode-desktop.qml:124
630−#: qml/Wizard/Pages/password-set.qml:141
603+#: qml/Wizard/Pages/passcode-desktop.qml:142
604+#: qml/Wizard/Pages/password-set.qml:142
631605msgid "Next"
632606msgstr "War-lerc'h"
633607
634−#: qml/Wizard/Pages/30-wifi.qml:29
608+#: qml/Wizard/Pages/20-keyboard.qml:31
609+msgid "Select Keyboard"
610+msgstr "Diuzañ ar c'hlavier"
611+
612+#: qml/Wizard/Pages/20-keyboard.qml:71
613+msgid "Keyboard language"
614+msgstr "Yezh ar c'hlavier"
615+
616+#: qml/Wizard/Pages/20-keyboard.qml:93
617+msgid "Keyboard layout"
618+msgstr "Aozadur ar c'hlavier"
619+
620+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
621+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
622+#: qml/Wizard/Pages/sim.qml:101
623+msgid "Skip"
624+msgstr "Tremen hebiou"
625+
626+#: qml/Wizard/Pages/30-wifi.qml:31
635627msgid "Connect to Wi‑Fi"
636628msgstr "Kevreañ ouzh ar Wi-Fi"
637629
638−#: qml/Wizard/Pages/30-wifi.qml:130
630+#: qml/Wizard/Pages/30-wifi.qml:132
639631msgid "Connected"
640632msgstr "Kevreet"
641633
642−#: qml/Wizard/Pages/30-wifi.qml:163
634+#: qml/Wizard/Pages/30-wifi.qml:165
643635msgid "Available Wi-Fi networks"
644636msgstr "Rouedadoù Wi-Fi da gaout"
645637
646−#: qml/Wizard/Pages/30-wifi.qml:164
638+#: qml/Wizard/Pages/30-wifi.qml:166
647639msgid "No available Wi-Fi networks"
648640msgstr "N'eus ket rouedadoù Wi-Fi da gaout"
649641
650−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
651−#: qml/Wizard/Pages/sim.qml:101
652−msgid "Skip"
653−msgstr "Tremen hebiou"
654−
655642#: qml/Wizard/Pages/40-location.qml:27
656643msgid "Location Services"
657644msgstr "Servijoù lec'hiañ"
@@ -682,13 +669,13 @@ msgstr "Arabat implijout ma lec'h"
682669
683670#: qml/Wizard/Pages/40-location.qml:260
684671msgid "You can change it later in System Settings."
685−msgstr ""
672+msgstr "Gallout a rit cheñch se diwezhatoc'h en arventennoù ar reizhiad."
686673
687−#: qml/Wizard/Pages/50-timezone.qml:29
674+#: qml/Wizard/Pages/50-timezone.qml:30
688675msgid "Time Zone"
689676msgstr "Gwerzhid-eur"
690677
691−#: qml/Wizard/Pages/50-timezone.qml:181
678+#: qml/Wizard/Pages/50-timezone.qml:182
692679msgid "Enter your city"
693680msgstr "Skrivit ho kêr"
694681
@@ -700,21 +687,21 @@ msgstr "Personelaat ho penveg"
700687msgid "Preferred Name"
701688msgstr ""
702689
703−#: qml/Wizard/Pages/70-passwd-type.qml:39
690+#: qml/Wizard/Pages/70-passwd-type.qml:40
704691msgid "Lock Screen"
705692msgstr "Prennañ ar skramm"
706693
707−#: qml/Wizard/Pages/70-passwd-type.qml:101
694+#: qml/Wizard/Pages/70-passwd-type.qml:102
708695msgctxt "Label: Type of security method"
709696msgid "Create new password"
710697msgstr "Krouiñ ur ger-tremen nevez"
711698
712−#: qml/Wizard/Pages/70-passwd-type.qml:103
699+#: qml/Wizard/Pages/70-passwd-type.qml:104
713700msgctxt "Label: Type of security method"
714701msgid "Create passcode (numbers only)"
715702msgstr "Krouiñ ur c'hod (difroù hepken)"
716703
717−#: qml/Wizard/Pages/70-passwd-type.qml:105
704+#: qml/Wizard/Pages/70-passwd-type.qml:106
718705msgctxt "Label: Type of security method"
719706msgid "No lock code"
720707msgstr "N'eus kod prennañ ebet"
@@ -735,6 +722,35 @@ msgstr ""
735722msgid "Privacy policy"
736723msgstr "Reolennoù buhez prevez"
737724
725+#: qml/Wizard/Pages/77-system-update.qml:28
726+msgid "Update Device"
727+msgstr "Hizivaat ar benveg"
728+
729+#: qml/Wizard/Pages/77-system-update.qml:55
730+msgid ""
731+"There is a system update available and ready to install. Afterwards, the "
732+"device will automatically restart."
733+msgstr ""
734+
735+#: qml/Wizard/Pages/77-system-update.qml:76
736+msgctxt "string identifying name of the update"
737+msgid "Ubuntu system"
738+msgstr "Reizhiad Ubuntu"
739+
740+#: qml/Wizard/Pages/77-system-update.qml:83
741+#, qt-format
742+msgctxt "version of the system update"
743+msgid "Version %1"
744+msgstr "Stumm %1"
745+
746+#: qml/Wizard/Pages/77-system-update.qml:102
747+msgid "This could take a few minutes..."
748+msgstr "Gallout a ra padout un nebeud munutennoù..."
749+
750+#: qml/Wizard/Pages/77-system-update.qml:116
751+msgid "Install and restart now"
752+msgstr "Staliañ hag adloc'hañ bremañ"
753+
738754#: qml/Wizard/Pages/80-finished.qml:89
739755msgid "Welcome to Ubuntu"
740756msgstr "Donemat en Ubuntu"
@@ -778,7 +794,7 @@ msgid "Service Terms"
778794msgstr "Divizoù servij"
779795
780796#: qml/Wizard/Pages/passcode-confirm.qml:43
781−#: qml/Wizard/Pages/passcode-desktop.qml:80
797+#: qml/Wizard/Pages/passcode-desktop.qml:97
782798msgid "Confirm passcode"
783799msgstr "Kadarnaat ar c'hod-tremen"
784800
@@ -791,28 +807,28 @@ msgctxt "Enter the passcode again"
791807msgid "Please re-enter."
792808msgstr "Skrivit adarre, mar plij."
793809
794−#: qml/Wizard/Pages/passcode-desktop.qml:30
810+#: qml/Wizard/Pages/passcode-desktop.qml:31
795811msgid "Lock Screen Passcode"
796812msgstr "Kod da brennañ ar skramm"
797813
798−#: qml/Wizard/Pages/passcode-desktop.qml:56
814+#: qml/Wizard/Pages/passcode-desktop.qml:61
799815msgid "Enter 4 numbers to setup your passcode"
800816msgstr "Skrivit 4 sifr evit lakaat ho kod"
801817
802−#: qml/Wizard/Pages/passcode-desktop.qml:65
818+#: qml/Wizard/Pages/passcode-desktop.qml:77
803819#: qml/Wizard/Pages/passcode-set.qml:54
804820msgid "Choose passcode"
805821msgstr "Choaz ur c'hod"
806822
807−#: qml/Wizard/Pages/passcode-desktop.qml:105
823+#: qml/Wizard/Pages/passcode-desktop.qml:127
808824msgid "Passcode too short"
809825msgstr "Kod re verr"
810826
811−#: qml/Wizard/Pages/passcode-desktop.qml:107
827+#: qml/Wizard/Pages/passcode-desktop.qml:129
812828msgid "Passcodes match"
813829msgstr "klotañ a ra ar c'hodoù an eil gant egile"
814830
815−#: qml/Wizard/Pages/passcode-desktop.qml:109
831+#: qml/Wizard/Pages/passcode-desktop.qml:131
816832msgid "Passcodes do not match"
817833msgstr "Ne glot ket ar c'hodoù an eil gant egile"
818834
@@ -820,19 +836,19 @@ msgstr "Ne glot ket ar c'hodoù an eil gant egile"
820836msgid "Passcode must be 4 characters long"
821837msgstr "4 arouezenn a rank bezañ ar c'hod"
822838
823−#: qml/Wizard/Pages/password-set.qml:30
839+#: qml/Wizard/Pages/password-set.qml:31
824840msgid "Lock Screen Password"
825841msgstr "Ger-tremen da brennañ ar skramm"
826842
827−#: qml/Wizard/Pages/password-set.qml:61
843+#: qml/Wizard/Pages/password-set.qml:62
828844msgid "Enter at least 8 characters"
829845msgstr "Skrivit 8 arouezenn da vihanañ"
830846
831−#: qml/Wizard/Pages/password-set.qml:73
847+#: qml/Wizard/Pages/password-set.qml:74
832848msgid "Choose password"
833849msgstr "Choaz ur ger-tremen"
834850
835−#: qml/Wizard/Pages/password-set.qml:103
851+#: qml/Wizard/Pages/password-set.qml:104
836852msgid "Confirm password"
837853msgstr "Kadarnaat ar ger-tremen"
838854
@@ -846,7 +862,7 @@ msgstr "Lakaet ez eus bet ur gartenn SIM"
846862
847863#: qml/Wizard/Pages/sim.qml:55
848864msgid "You must restart the device to access the mobile network."
849−msgstr ""
865+msgstr "Ret eo deoc'h adloc'hañ ar benveg evit mont d'ar rouedad hezoug."
850866
851867#: qml/Wizard/Pages/sim.qml:59
852868msgid "Restart"
@@ -854,33 +870,37 @@ msgstr "Adloc'hañ"
854870
855871#: qml/Wizard/Pages/sim.qml:78
856872msgid "You won’t be able to make calls or use text messaging without a SIM."
857−msgstr ""
873+msgstr "Ne c'halloc'h ket pellgomz na kas kemennadennoù hep kartenn SIM."
858874
859875#: qml/Wizard/Pages/sim.qml:90
860876msgid "To proceed with no SIM tap Skip."
861877msgstr ""
862878
863879#: qml/Wizard/PasswordMeter.qml:87
880+msgid "Password too short"
881+msgstr "Re verr eo ar ger-tremen"
882+
883+#: qml/Wizard/PasswordMeter.qml:89
864884msgid "Passwords match"
865885msgstr "Klotañ a ra ar gerioù-tremen an eil gant egile"
866886
867−#: qml/Wizard/PasswordMeter.qml:89
887+#: qml/Wizard/PasswordMeter.qml:91
868888msgid "Passwords do not match"
869889msgstr "Ne glot ket ar gerioù-tremen"
870890
871−#: qml/Wizard/PasswordMeter.qml:93
891+#: qml/Wizard/PasswordMeter.qml:95
872892msgid "Strong password"
873893msgstr "Ger-tremen sur"
874894
875−#: qml/Wizard/PasswordMeter.qml:95
895+#: qml/Wizard/PasswordMeter.qml:97
876896msgid "Fair password"
877897msgstr "Ger-tremen reizh"
878898
879−#: qml/Wizard/PasswordMeter.qml:97
899+#: qml/Wizard/PasswordMeter.qml:99
880900msgid "Weak password"
881901msgstr "Ger-tremen diasur"
882902
883−#: qml/Wizard/PasswordMeter.qml:99
903+#: qml/Wizard/PasswordMeter.qml:101
884904msgid "Very weak password"
885905msgstr "Ger-tremen diasur-kenañ"
886906
@@ -959,6 +979,9 @@ msgstr "Ger-tremen diasur-kenañ"
959979#~ msgid "Done"
960980#~ msgstr "Graet eo"
961981
982+#~ msgid "Sorry, incorrect passphrase"
983+#~ msgstr "Siwazh, frazenn-dremen direizh"
984+
962985#~ msgid "All"
963986#~ msgstr "An holl anezho"
964987
@@ -971,6 +994,33 @@ msgstr "Ger-tremen diasur-kenañ"
971994#~ msgid "Favorites"
972995#~ msgstr "Gwellañ deuet"
973996
997+#, qt-format
998+#~ msgid "Sorry, incorrect %1"
999+#~ msgstr "Siwazh, %1 direizh"
1000+
1001+#~ msgid "Sorry, incorrect passphrase."
1002+#~ msgstr "Siwazh, frazenn-dremen direizh"
1003+
1004+#~ msgid "Sorry, incorrect passcode."
1005+#~ msgstr "Siwazh, kod-tremen direizh"
1006+
1007+#~ msgid ""
1008+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1009+#~ "and all personal data will be deleted."
1010+#~ msgstr ""
1011+#~ "Ma vez ebarzhet ur c'hod-tremen direizh, e vo adderaouekaet ho pellgomzer "
1012+#~ "gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel."
1013+
1014+#~ msgid ""
1015+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1016+#~ "reset and all personal data will be deleted."
1017+#~ msgstr ""
1018+#~ "Ma vez ebarzhet ur frazenn-dremen direizh, e vo adderaouekaet ho pellgomzer "
1019+#~ "gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel"
1020+
1021+#~ msgid "This will be your last attempt."
1022+#~ msgstr "Ho taol-esae diwezhañ e vo."
1023+
9741024#~ msgid "Power"
9751025#~ msgstr "Tredan"
9761026
@@ -989,12 +1039,25 @@ msgstr "Ger-tremen diasur-kenañ"
9891039#~ msgid "Settings"
9901040#~ msgstr "Arventennoù"
9911041
1042+#~ msgid "Sorry, incorrect passcode"
1043+#~ msgstr "Digarezit, kod-tremen direizh"
1044+
9921045#~ msgid "Manage Scopes"
9931046#~ msgstr "Merañ ar c'hefluskerioù enklask"
9941047
1048+#, qt-format
1049+#~ msgid "Enter %1"
1050+#~ msgstr "Merkañ %1"
1051+
1052+#~ msgid "Enter passphrase"
1053+#~ msgstr "Merkañ ar frazenn-dremen"
1054+
9951055#~ msgid "Please re-enter"
9961056#~ msgstr "Adverkañ, mar plij"
9971057
1058+#~ msgid "Enter passcode"
1059+#~ msgstr "Merkañ ar c'hod-tremen"
1060+
9981061#~ msgid "Lock security"
9991062#~ msgstr "Surentez ar prennañ"
10001063
@@ -1209,6 +1272,10 @@ msgstr "Ger-tremen diasur-kenañ"
12091272#~ msgid "Tomorrow %H:%M"
12101273#~ msgstr "Warc'hoazh %H:%M"
12111274
1275+#~ msgctxt "passphrase"
1276+#~ msgid "Please re-enter"
1277+#~ msgstr "Adverkañ, mar plij"
1278+
12121279#~ msgid "Call back"
12131280#~ msgstr "Gervel en-dro"
12141281
po/bs.po+224−158
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,10 +16,10 @@ 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-06-19 05:54+0000\n"
20−"X-Generator: Launchpad (build 18097)\n"
19+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
20+"X-Generator: Launchpad (build 18204)\n"
2121
22−#: plugins/IntegratedLightDM/Greeter.cpp:112
22+#: plugins/LightDM/Greeter.cpp:123
2323msgid "Password: "
2424msgstr "Šifra: "
2525
@@ -36,74 +36,55 @@ msgstr "Napusti"
3636msgid "Unpin shortcut"
3737msgstr "Otkačite prečicu"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
40−msgid "Device Locked"
41−msgstr "Uređaj zaključan"
42−
43−#: qml/Components/DelayedLockscreen.qml:64
44−msgid "You have been locked out due to too many failed passphrase attempts."
45−msgstr "Izbačeni ste zbog previše neuspjelih pokušaja unosa pristupne fraze."
46−
47−#: qml/Components/DelayedLockscreen.qml:65
48−msgid "You have been locked out due to too many failed passcode attempts."
49−msgstr "Izbačeni ste zbog previše neuspjelih pokušaja unosa pristupnog koda."
50−
51−#: qml/Components/DelayedLockscreen.qml:74
52−#, qt-format
53−msgid "Please wait %1 minute and then try again…"
54−msgid_plural "Please wait %1 minutes and then try again…"
55−msgstr[0] "Molim pričekajte %1 minutu i onda pokušajte ponovo..."
56−msgstr[1] "Molim pričekajte %1 minute i onda pokušajte ponovo..."
57−msgstr[2] "Molim pričekajte %1 minuta i onda pokušajte ponovo"
58−
59−#: qml/Components/Dialogs.qml:146
39+#: qml/Components/Dialogs.qml:149
6040msgctxt "Title: Lock/Log out dialog"
6141msgid "Log out"
6242msgstr "Odjavite se"
6343
64−#: qml/Components/Dialogs.qml:147
44+#: qml/Components/Dialogs.qml:150
6545msgid "Are you sure you want to log out?"
6646msgstr "Da li ste sigurni da se želite odjaviti?"
6747
68−#: qml/Components/Dialogs.qml:149
48+#: qml/Components/Dialogs.qml:152
6949msgctxt "Button: Lock the system"
7050msgid "Lock"
7151msgstr "Zaključaj"
7252
73−#: qml/Components/Dialogs.qml:156
53+#: qml/Components/Dialogs.qml:159
7454msgctxt "Button: Log out from the system"
7555msgid "Log Out"
7656msgstr "Odjavi se"
7757
78−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
79−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
58+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
59+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
60+#: qml/Wizard/Pages/passcode-confirm.qml:32
8061#: qml/Wizard/Pages/passcode-set.qml:32
8162msgid "Cancel"
8263msgstr "Otkaži"
8364
84−#: qml/Components/Dialogs.qml:175
65+#: qml/Components/Dialogs.qml:178
8566msgctxt "Title: Reboot dialog"
8667msgid "Reboot"
8768msgstr "Ponovo pokreni"
8869
89−#: qml/Components/Dialogs.qml:176
70+#: qml/Components/Dialogs.qml:179
9071msgid "Are you sure you want to reboot?"
9172msgstr "Da li ste sigurni da želite ponovo pokrenuti?"
9273
93−#: qml/Components/Dialogs.qml:178
74+#: qml/Components/Dialogs.qml:181
9475msgid "No"
9576msgstr "Ne"
9677
97−#: qml/Components/Dialogs.qml:184
78+#: qml/Components/Dialogs.qml:187
9879msgid "Yes"
9980msgstr "Da"
10081
101−#: qml/Components/Dialogs.qml:199
82+#: qml/Components/Dialogs.qml:202
10283msgctxt "Title: Power off/Restart dialog"
10384msgid "Power"
10485msgstr "Napajanje"
10586
106−#: qml/Components/Dialogs.qml:200
87+#: qml/Components/Dialogs.qml:203
10788msgid ""
10889"Are you sure you would like\n"
10990"to power off?"
@@ -111,12 +92,12 @@ msgstr ""
11192"Da li ste sigurni da želite\n"
11293"isključiti?"
11394
114−#: qml/Components/Dialogs.qml:202
95+#: qml/Components/Dialogs.qml:205
11596msgctxt "Button: Power off the system"
11697msgid "Power off"
11798msgstr "Isključi"
11899
119−#: qml/Components/Dialogs.qml:211
100+#: qml/Components/Dialogs.qml:214
120101msgctxt "Button: Restart the system"
121102msgid "Restart"
122103msgstr "Restartuj"
@@ -281,18 +262,28 @@ msgstr ""
281262msgid "Closes the current window."
282263msgstr ""
283264
284−#: qml/Components/Lockscreen.qml:231
265+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
285266msgid "Return to Call"
286267msgstr "Povratak na Poziv"
287268
288−#: qml/Components/Lockscreen.qml:231
269+#: qml/Components/Lockscreen.qml:212
289270msgid "Emergency Call"
290271msgstr "Hitan Poziv"
291272
292−#: qml/Components/Lockscreen.qml:263
273+#: qml/Components/Lockscreen.qml:244
293274msgid "OK"
294275msgstr "U redu"
295276
277+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
278+#, qt-format
279+msgid "%1:%2:%3"
280+msgstr ""
281+
282+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
283+#, qt-format
284+msgid "%1:%2"
285+msgstr ""
286+
296287#: qml/Components/ModeSwitchWarningDialog.qml:32
297288msgid "Apps may have unsaved data:"
298289msgstr "Aplikacije možda imaju podataka koji nisu sačuvani:"
@@ -321,55 +312,59 @@ msgstr "Ponovo poveži sada"
321312msgid "Close all"
322313msgstr "Zatvori sve"
323314
324−#: qml/Dash/DashPageHeader.qml:333
315+#: qml/Components/SharingPicker.qml:54
316+msgid "Preview Share Item"
317+msgstr "Pogledaj stavku koja se dijeli"
318+
319+#: qml/Dash/DashPageHeader.qml:362
325320msgctxt "Button: Open the Ubuntu Store"
326321msgid "Store"
327322msgstr "Trgovina"
328323
329−#: qml/Dash/DashPageHeader.qml:340
324+#: qml/Dash/DashPageHeader.qml:369
330325msgctxt "Button: Start a search in the current dash scope"
331326msgid "Search"
332327msgstr "Pretraživanje"
333328
334−#: qml/Dash/DashPageHeader.qml:350
329+#: qml/Dash/DashPageHeader.qml:379
335330msgctxt "Button: Show the current dash scope settings"
336331msgid "Settings"
337332msgstr "Podešavanja"
338333
339−#: qml/Dash/DashPageHeader.qml:357
334+#: qml/Dash/DashPageHeader.qml:386
340335msgid "Remove from Favorites"
341336msgstr "Ukloni iz Omiljenih"
342337
343−#: qml/Dash/DashPageHeader.qml:357
338+#: qml/Dash/DashPageHeader.qml:386
344339msgid "Add to Favorites"
345340msgstr "Dodaj u Omiljene"
346341
347−#: qml/Dash/FiltersPopover.qml:60
342+#: qml/Dash/FiltersPopover.qml:61
348343msgid "Refine your results"
349344msgstr ""
350345
351−#: qml/Dash/FiltersPopover.qml:69
346+#: qml/Dash/FiltersPopover.qml:70
352347msgid "Reset"
353348msgstr ""
354349
355−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
350+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
356351msgid "Show less"
357352msgstr ""
358353
359−#: qml/Dash/GenericScopeView.qml:580
354+#: qml/Dash/GenericScopeView.qml:586
360355msgid "Show all"
361356msgstr ""
362357
363−#: qml/Dash/GenericScopeView.qml:637
358+#: qml/Dash/GenericScopeView.qml:643
364359msgctxt "Label: Hint for dash search line edit"
365360msgid "Search"
366361msgstr "Pretraži"
367362
368−#: qml/Dash/PageHeaderExtraPanel.qml:56
363+#: qml/Dash/PageHeaderExtraPanel.qml:57
369364msgid "Recent Searches"
370365msgstr ""
371366
372−#: qml/Dash/PageHeaderExtraPanel.qml:67
367+#: qml/Dash/PageHeaderExtraPanel.qml:68
373368msgid "Clear All"
374369msgstr ""
375370
@@ -381,28 +376,24 @@ msgstr "Više..."
381376msgid "Less..."
382377msgstr "Manje..."
383378
384−#: qml/Dash/Previews/PreviewCommentInput.qml:68
385−#: qml/Dash/Previews/PreviewRatingInput.qml:175
379+#: qml/Dash/Previews/PreviewCommentInput.qml:83
380+#: qml/Dash/Previews/PreviewRatingInput.qml:201
386381msgid "Send"
387382msgstr "Pošalji"
388383
389−#: qml/Dash/Previews/PreviewRatingInput.qml:82
384+#: qml/Dash/Previews/PreviewRatingInput.qml:108
390385msgid "Rate this"
391386msgstr "Ocijeni ovo"
392387
393−#: qml/Dash/Previews/PreviewRatingInput.qml:157
388+#: qml/Dash/Previews/PreviewRatingInput.qml:183
394389msgid "Add a review"
395390msgstr "Dodaj recenziju"
396391
397−#: qml/Dash/Previews/PreviewSharing.qml:66
398−msgid "Preview Share Item"
399−msgstr "Pogledaj stavku koja se dijeli"
400−
401−#: qml/Dash/PullToRefreshScopeStyle.qml:55
392+#: qml/Dash/PullToRefreshScopeStyle.qml:56
402393msgid "Pull to refresh…"
403394msgstr "Povući za osvježavanje..."
404395
405−#: qml/Dash/PullToRefreshScopeStyle.qml:60
396+#: qml/Dash/PullToRefreshScopeStyle.qml:61
406397msgid "Release to refresh…"
407398msgstr "Pustiti za osvježavanje..."
408399
@@ -410,15 +401,15 @@ msgstr "Pustiti za osvježavanje..."
410401msgid "Enable location data"
411402msgstr "Omogućiti podatke o lokaciji"
412403
413−#: qml/Dash/ScopesList.qml:55
404+#: qml/Dash/ScopesList.qml:57
414405msgid "Manage"
415406msgstr "Upravljanje"
416407
417−#: qml/Dash/ScopesList.qml:101
408+#: qml/Dash/ScopesList.qml:104
418409msgid "Home"
419410msgstr "Početna"
420411
421−#: qml/Dash/ScopesList.qml:102
412+#: qml/Dash/ScopesList.qml:105
422413msgid "Also installed"
423414msgstr "Također instalirano"
424415
@@ -428,76 +419,57 @@ msgid ""
428419"touch pad to interact with the pointer."
429420msgstr ""
430421
431−#: qml/Greeter/CoverPage.qml:119
422+#: qml/Greeter/CoverPage.qml:127
432423msgid "Unlock"
433424msgstr "Otključaj"
434425
435−#: qml/Greeter/LoginList.qml:259
436−msgid "Retry"
437−msgstr "Ponovi"
438−
439−#: qml/Greeter/LoginList.qml:260
440−msgid "Log In"
441−msgstr ""
426+#: qml/Greeter/DelayedLockscreen.qml:43
427+msgid "Device Locked"
428+msgstr "Uređaj zaključan"
442429
443−#: qml/Greeter/NarrowView.qml:54
444−msgid "Sorry, incorrect passphrase."
445−msgstr "Izvinite, pogrešna pristupna fraza."
430+#: qml/Greeter/DelayedLockscreen.qml:58
431+msgid "You have been locked out due to too many failed passphrase attempts."
432+msgstr "Izbačeni ste zbog previše neuspjelih pokušaja unosa pristupne fraze."
446433
447−#: qml/Greeter/NarrowView.qml:55
448−msgid "Sorry, incorrect passcode."
449−msgstr "Izvinite, pogrešan pristupni kod."
434+#: qml/Greeter/DelayedLockscreen.qml:59
435+msgid "You have been locked out due to too many failed passcode attempts."
436+msgstr "Izbačeni ste zbog previše neuspjelih pokušaja unosa pristupnog koda."
450437
451−#: qml/Greeter/NarrowView.qml:56
452−msgid "This will be your last attempt."
453−msgstr "Ovo će biti vaš posljednji pokušaj."
438+#: qml/Greeter/DelayedLockscreen.qml:68
439+#, qt-format
440+msgid "Please wait %1 minute and then try again…"
441+msgid_plural "Please wait %1 minutes and then try again…"
442+msgstr[0] "Molim pričekajte %1 minutu i onda pokušajte ponovo..."
443+msgstr[1] "Molim pričekajte %1 minute i onda pokušajte ponovo..."
444+msgstr[2] "Molim pričekajte %1 minuta i onda pokušajte ponovo"
454445
455−#: qml/Greeter/NarrowView.qml:58
456−msgid ""
457−"If passphrase is entered incorrectly, your phone will conduct a factory "
458−"reset and all personal data will be deleted."
446+#: qml/Greeter/Greeter.qml:596
447+msgid "Try again"
459448msgstr ""
460−"Ako je pristupna fraza unesena pogrešno, vaš telefon će sprovesti reset na "
461−"fabričke postavke i svi osobni podaci će biti izbrisani."
462449
463−#: qml/Greeter/NarrowView.qml:59
464−msgid ""
465−"If passcode is entered incorrectly, your phone will conduct a factory reset "
466−"and all personal data will be deleted."
450+#: qml/Greeter/LoginList.qml:70
451+msgid "Passphrase"
467452msgstr ""
468−"Ako je pristupni kod unesen netačno, vaš telefon će sprovesti reset na "
469−"fabričke postavke i svi osobni podaci će biti izbrisani."
470453
471−#: qml/Greeter/NarrowView.qml:116
472−#, qt-format
473−msgid "Enter %1"
474−msgstr "Unesite %1"
475−
476−#: qml/Greeter/NarrowView.qml:117
477−msgid "Enter passphrase"
478−msgstr "Unesite propusnu frazu"
479−
480−#: qml/Greeter/NarrowView.qml:118
481−msgid "Enter passcode"
482−msgstr "Unesite pristupni kod"
454+#: qml/Greeter/LoginList.qml:71
455+msgid "Passcode"
456+msgstr ""
483457
484−#: qml/Greeter/NarrowView.qml:119
485−#, qt-format
486−msgid "Sorry, incorrect %1"
487−msgstr "Izvinite, netačno %1"
458+#: qml/Greeter/LoginList.qml:98
459+msgid "Retry"
460+msgstr "Ponovi"
488461
489−#: qml/Greeter/NarrowView.qml:120
490−msgid "Sorry, incorrect passphrase"
491−msgstr "Izvinite, netačna propusna fraza"
462+#: qml/Greeter/LoginList.qml:99
463+msgid "Log In"
464+msgstr ""
492465
493−#: qml/Greeter/NarrowView.qml:121
494−msgctxt "passphrase"
495−msgid "Please re-enter"
496−msgstr "Molim ponovo unesite"
466+#: qml/Greeter/NarrowView.qml:252
467+msgid "Emergency"
468+msgstr ""
497469
498−#: qml/Greeter/NarrowView.qml:122
499−msgid "Sorry, incorrect passcode"
500−msgstr "Izvinite, netačan pristupni kod"
470+#: qml/Greeter/SessionsList.qml:122
471+msgid "Select desktop environment"
472+msgstr ""
501473
502474#: qml/Notifications/NotificationMenuItemFactory.qml:124
503475msgid "Show password"
@@ -618,40 +590,54 @@ msgctxt "Button: Go back one page in the Wizard"
618590msgid "Back"
619591msgstr "Nazad"
620592
621−#: qml/Wizard/Pages/10-welcome.qml:27
593+#: qml/Wizard/Pages/10-welcome.qml:28
622594msgid "Language"
623595msgstr ""
624596
625−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
626−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
627−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
597+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
598+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
599+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
600+#: qml/Wizard/Pages/70-passwd-type.qml:145
628601#: qml/Wizard/Pages/75-report-check.qml:84
629−#: qml/Wizard/Pages/passcode-desktop.qml:124
630−#: qml/Wizard/Pages/password-set.qml:141
602+#: qml/Wizard/Pages/passcode-desktop.qml:142
603+#: qml/Wizard/Pages/password-set.qml:142
631604msgid "Next"
632605msgstr ""
633606
634−#: qml/Wizard/Pages/30-wifi.qml:29
607+#: qml/Wizard/Pages/20-keyboard.qml:31
608+msgid "Select Keyboard"
609+msgstr ""
610+
611+#: qml/Wizard/Pages/20-keyboard.qml:71
612+msgid "Keyboard language"
613+msgstr ""
614+
615+#: qml/Wizard/Pages/20-keyboard.qml:93
616+msgid "Keyboard layout"
617+msgstr ""
618+
619+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
620+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
621+#: qml/Wizard/Pages/sim.qml:101
622+msgid "Skip"
623+msgstr "Preskočite"
624+
625+#: qml/Wizard/Pages/30-wifi.qml:31
635626msgid "Connect to Wi‑Fi"
636627msgstr "Povezati na Wi-Fi"
637628
638−#: qml/Wizard/Pages/30-wifi.qml:130
629+#: qml/Wizard/Pages/30-wifi.qml:132
639630msgid "Connected"
640631msgstr ""
641632
642−#: qml/Wizard/Pages/30-wifi.qml:163
633+#: qml/Wizard/Pages/30-wifi.qml:165
643634msgid "Available Wi-Fi networks"
644635msgstr ""
645636
646−#: qml/Wizard/Pages/30-wifi.qml:164
637+#: qml/Wizard/Pages/30-wifi.qml:166
647638msgid "No available Wi-Fi networks"
648639msgstr ""
649640
650−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
651−#: qml/Wizard/Pages/sim.qml:101
652−msgid "Skip"
653−msgstr "Preskočite"
654−
655641#: qml/Wizard/Pages/40-location.qml:27
656642msgid "Location Services"
657643msgstr ""
@@ -684,11 +670,11 @@ msgstr ""
684670msgid "You can change it later in System Settings."
685671msgstr ""
686672
687−#: qml/Wizard/Pages/50-timezone.qml:29
673+#: qml/Wizard/Pages/50-timezone.qml:30
688674msgid "Time Zone"
689675msgstr ""
690676
691−#: qml/Wizard/Pages/50-timezone.qml:181
677+#: qml/Wizard/Pages/50-timezone.qml:182
692678msgid "Enter your city"
693679msgstr ""
694680
@@ -700,21 +686,21 @@ msgstr ""
700686msgid "Preferred Name"
701687msgstr ""
702688
703−#: qml/Wizard/Pages/70-passwd-type.qml:39
689+#: qml/Wizard/Pages/70-passwd-type.qml:40
704690msgid "Lock Screen"
705691msgstr ""
706692
707−#: qml/Wizard/Pages/70-passwd-type.qml:101
693+#: qml/Wizard/Pages/70-passwd-type.qml:102
708694msgctxt "Label: Type of security method"
709695msgid "Create new password"
710696msgstr ""
711697
712−#: qml/Wizard/Pages/70-passwd-type.qml:103
698+#: qml/Wizard/Pages/70-passwd-type.qml:104
713699msgctxt "Label: Type of security method"
714700msgid "Create passcode (numbers only)"
715701msgstr ""
716702
717−#: qml/Wizard/Pages/70-passwd-type.qml:105
703+#: qml/Wizard/Pages/70-passwd-type.qml:106
718704msgctxt "Label: Type of security method"
719705msgid "No lock code"
720706msgstr ""
@@ -735,6 +721,35 @@ msgstr ""
735721msgid "Privacy policy"
736722msgstr ""
737723
724+#: qml/Wizard/Pages/77-system-update.qml:28
725+msgid "Update Device"
726+msgstr ""
727+
728+#: qml/Wizard/Pages/77-system-update.qml:55
729+msgid ""
730+"There is a system update available and ready to install. Afterwards, the "
731+"device will automatically restart."
732+msgstr ""
733+
734+#: qml/Wizard/Pages/77-system-update.qml:76
735+msgctxt "string identifying name of the update"
736+msgid "Ubuntu system"
737+msgstr ""
738+
739+#: qml/Wizard/Pages/77-system-update.qml:83
740+#, qt-format
741+msgctxt "version of the system update"
742+msgid "Version %1"
743+msgstr ""
744+
745+#: qml/Wizard/Pages/77-system-update.qml:102
746+msgid "This could take a few minutes..."
747+msgstr ""
748+
749+#: qml/Wizard/Pages/77-system-update.qml:116
750+msgid "Install and restart now"
751+msgstr ""
752+
738753#: qml/Wizard/Pages/80-finished.qml:89
739754msgid "Welcome to Ubuntu"
740755msgstr ""
@@ -778,7 +793,7 @@ msgid "Service Terms"
778793msgstr ""
779794
780795#: qml/Wizard/Pages/passcode-confirm.qml:43
781−#: qml/Wizard/Pages/passcode-desktop.qml:80
796+#: qml/Wizard/Pages/passcode-desktop.qml:97
782797msgid "Confirm passcode"
783798msgstr "Potvrdi pristupni kod"
784799
@@ -791,28 +806,28 @@ msgctxt "Enter the passcode again"
791806msgid "Please re-enter."
792807msgstr ""
793808
794−#: qml/Wizard/Pages/passcode-desktop.qml:30
809+#: qml/Wizard/Pages/passcode-desktop.qml:31
795810msgid "Lock Screen Passcode"
796811msgstr ""
797812
798−#: qml/Wizard/Pages/passcode-desktop.qml:56
813+#: qml/Wizard/Pages/passcode-desktop.qml:61
799814msgid "Enter 4 numbers to setup your passcode"
800815msgstr ""
801816
802−#: qml/Wizard/Pages/passcode-desktop.qml:65
817+#: qml/Wizard/Pages/passcode-desktop.qml:77
803818#: qml/Wizard/Pages/passcode-set.qml:54
804819msgid "Choose passcode"
805820msgstr ""
806821
807−#: qml/Wizard/Pages/passcode-desktop.qml:105
822+#: qml/Wizard/Pages/passcode-desktop.qml:127
808823msgid "Passcode too short"
809824msgstr ""
810825
811−#: qml/Wizard/Pages/passcode-desktop.qml:107
826+#: qml/Wizard/Pages/passcode-desktop.qml:129
812827msgid "Passcodes match"
813828msgstr ""
814829
815−#: qml/Wizard/Pages/passcode-desktop.qml:109
830+#: qml/Wizard/Pages/passcode-desktop.qml:131
816831msgid "Passcodes do not match"
817832msgstr ""
818833
@@ -820,19 +835,19 @@ msgstr ""
820835msgid "Passcode must be 4 characters long"
821836msgstr ""
822837
823−#: qml/Wizard/Pages/password-set.qml:30
838+#: qml/Wizard/Pages/password-set.qml:31
824839msgid "Lock Screen Password"
825840msgstr ""
826841
827−#: qml/Wizard/Pages/password-set.qml:61
842+#: qml/Wizard/Pages/password-set.qml:62
828843msgid "Enter at least 8 characters"
829844msgstr ""
830845
831−#: qml/Wizard/Pages/password-set.qml:73
846+#: qml/Wizard/Pages/password-set.qml:74
832847msgid "Choose password"
833848msgstr ""
834849
835−#: qml/Wizard/Pages/password-set.qml:103
850+#: qml/Wizard/Pages/password-set.qml:104
836851msgid "Confirm password"
837852msgstr ""
838853
@@ -861,26 +876,30 @@ msgid "To proceed with no SIM tap Skip."
861876msgstr ""
862877
863878#: qml/Wizard/PasswordMeter.qml:87
864−msgid "Passwords match"
879+msgid "Password too short"
865880msgstr ""
866881
867882#: qml/Wizard/PasswordMeter.qml:89
883+msgid "Passwords match"
884+msgstr ""
885+
886+#: qml/Wizard/PasswordMeter.qml:91
868887msgid "Passwords do not match"
869888msgstr ""
870889
871−#: qml/Wizard/PasswordMeter.qml:93
890+#: qml/Wizard/PasswordMeter.qml:95
872891msgid "Strong password"
873892msgstr ""
874893
875−#: qml/Wizard/PasswordMeter.qml:95
894+#: qml/Wizard/PasswordMeter.qml:97
876895msgid "Fair password"
877896msgstr ""
878897
879−#: qml/Wizard/PasswordMeter.qml:97
898+#: qml/Wizard/PasswordMeter.qml:99
880899msgid "Weak password"
881900msgstr ""
882901
883−#: qml/Wizard/PasswordMeter.qml:99
902+#: qml/Wizard/PasswordMeter.qml:101
884903msgid "Very weak password"
885904msgstr ""
886905
@@ -912,9 +931,52 @@ msgstr ""
912931#~ msgid "Tap to unlock"
913932#~ msgstr "Kucnite za otključavanje"
914933
934+#~ msgid "Sorry, incorrect passphrase."
935+#~ msgstr "Izvinite, pogrešna pristupna fraza."
936+
937+#, qt-format
938+#~ msgid "Enter %1"
939+#~ msgstr "Unesite %1"
940+
941+#~ msgid "Sorry, incorrect passphrase"
942+#~ msgstr "Izvinite, netačna propusna fraza"
943+
944+#, qt-format
945+#~ msgid "Sorry, incorrect %1"
946+#~ msgstr "Izvinite, netačno %1"
947+
948+#~ msgid "Sorry, incorrect passcode."
949+#~ msgstr "Izvinite, pogrešan pristupni kod."
950+
951+#~ msgid "Enter passphrase"
952+#~ msgstr "Unesite propusnu frazu"
953+
915954#~ msgid "Please re-enter"
916955#~ msgstr "Molimo ponovo unesite"
917956
957+#~ msgid "Enter passcode"
958+#~ msgstr "Unesite pristupni kod"
959+
960+#~ msgid ""
961+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
962+#~ "and all personal data will be deleted."
963+#~ msgstr ""
964+#~ "Ako je pristupni kod unesen netačno, vaš telefon će sprovesti reset na "
965+#~ "fabričke postavke i svi osobni podaci će biti izbrisani."
966+
967+#~ msgid ""
968+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
969+#~ "reset and all personal data will be deleted."
970+#~ msgstr ""
971+#~ "Ako je pristupna fraza unesena pogrešno, vaš telefon će sprovesti reset na "
972+#~ "fabričke postavke i svi osobni podaci će biti izbrisani."
973+
974+#~ msgid "This will be your last attempt."
975+#~ msgstr "Ovo će biti vaš posljednji pokušaj."
976+
977+#~ msgid "Sorry, incorrect passcode"
978+#~ msgstr "Izvinite, netačan pristupni kod"
979+
918980#~ msgid "This action does different things for different apps"
919981#~ msgstr "Ova radnja čini različite stvari za različite aplikacije"
920982
@@ -1097,3 +1159,7 @@ msgstr ""
10971159#~ msgctxt "Button: Reboot the system"
10981160#~ msgid "Reboot"
10991161#~ msgstr "Ponovo pokreni"
1162+
1163+#~ msgctxt "passphrase"
1164+#~ msgid "Please re-enter"
1165+#~ msgstr "Molim ponovo unesite"
po/ca.po+382−259
@@ -7,18 +7,18 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-06-17 01:22+0000\n"
11−"PO-Revision-Date: 2015-07-04 09:48+0000\n"
12−"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
10+"POT-Creation-Date: 2016-09-22 07:46+0000\n"
11+"PO-Revision-Date: 2016-09-27 06:51+0000\n"
12+"Last-Translator: Walter Garcia-Fontes <walter.garcia@upf.edu>\n"
1313"Language-Team: Catalan <ca@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-06-19 05:54+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-28 06:57+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr "Contrasenya: "
2424
@@ -35,77 +35,55 @@ msgstr "Surt"
3535msgid "Unpin shortcut"
3636msgstr "Desenganxa la drecera"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr "Dispositiu bloquejat"
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
46−"d'intents d'introducció de la contrasenya."
47−
48−#: qml/Components/DelayedLockscreen.qml:65
49−msgid "You have been locked out due to too many failed passcode attempts."
50−msgstr ""
51−"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
52−"d'intents d'introducció del codi d'accés."
53−
54−#: qml/Components/DelayedLockscreen.qml:74
55−#, qt-format
56−msgid "Please wait %1 minute and then try again…"
57−msgid_plural "Please wait %1 minutes and then try again…"
58−msgstr[0] "Espereu %1 minut i torneu-ho a intentar..."
59−msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
60−
61−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
6239msgctxt "Title: Lock/Log out dialog"
6340msgid "Log out"
6441msgstr "Surt"
6542
66−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6744msgid "Are you sure you want to log out?"
6845msgstr "Segur que voleu sortir?"
6946
70−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
7148msgctxt "Button: Lock the system"
7249msgid "Lock"
7350msgstr "Bloca"
7451
75−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7653msgctxt "Button: Log out from the system"
7754msgid "Log Out"
7855msgstr "Surt"
7956
80−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
8260#: qml/Wizard/Pages/passcode-set.qml:32
8361msgid "Cancel"
8462msgstr "Cancel·la"
8563
86−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8765msgctxt "Title: Reboot dialog"
8866msgid "Reboot"
8967msgstr "Reinicia"
9068
91−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
9270msgid "Are you sure you want to reboot?"
9371msgstr "Segur que voleu reiniciar?"
9472
95−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9674msgid "No"
9775msgstr "No"
9876
99−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
10078msgid "Yes"
10179msgstr "Sí"
10280
103−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10482msgctxt "Title: Power off/Restart dialog"
10583msgid "Power"
10684msgstr "Energia"
10785
108−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10987msgid ""
11088"Are you sure you would like\n"
11189"to power off?"
@@ -113,188 +91,198 @@ msgstr ""
11391"Segur que voleu\n"
11492"apagar?"
11593
116−#: qml/Components/Dialogs.qml:202
94+#: qml/Components/Dialogs.qml:205
11795msgctxt "Button: Power off the system"
11896msgid "Power off"
11997msgstr "Apaga"
12098
121−#: qml/Components/Dialogs.qml:211
99+#: qml/Components/Dialogs.qml:214
122100msgctxt "Button: Restart the system"
123101msgid "Restart"
124102msgstr "Reinicia"
125103
126104#: qml/Components/KeyboardShortcutsOverlay.qml:41
127105msgid "Keyboard Shortcuts"
128−msgstr ""
106+msgstr "Dreceres de teclat"
129107
130108#: qml/Components/KeyboardShortcutsOverlay.qml:55
131109msgid "Unity 8"
132−msgstr ""
110+msgstr "Unity 8"
133111
134112#: qml/Components/KeyboardShortcutsOverlay.qml:62
135113msgid "PrtScr"
136−msgstr ""
114+msgstr "ImprPant"
137115
138116#: qml/Components/KeyboardShortcutsOverlay.qml:67
139117msgid "Takes a screenshot."
140−msgstr ""
118+msgstr "Crea una captura de pantalla"
141119
142120#: qml/Components/KeyboardShortcutsOverlay.qml:75
143121msgid "Alt + PrtScr"
144−msgstr ""
122+msgstr "Alt + ImprPant"
145123
146124#: qml/Components/KeyboardShortcutsOverlay.qml:80
147125msgid "Takes a screenshot of a window."
148−msgstr ""
126+msgstr "Crea una captura de pantalla d'una finestra"
149127
150128#: qml/Components/KeyboardShortcutsOverlay.qml:88
151129msgid "Super + Space"
152−msgstr ""
130+msgstr "Super + Espai"
153131
154132#: qml/Components/KeyboardShortcutsOverlay.qml:93
155133msgid "Switches to next keyboard layout."
156−msgstr ""
134+msgstr "Canvia a la següent disposició de teclat."
157135
158136#: qml/Components/KeyboardShortcutsOverlay.qml:101
159137msgid "Super + Shift + Space"
160−msgstr ""
138+msgstr "Super + Maj + Espai"
161139
162140#: qml/Components/KeyboardShortcutsOverlay.qml:106
163141msgid "Switches to previous keyboard layout."
164−msgstr ""
142+msgstr "Canvia a la disposició prèvia de teclat."
165143
166144#: qml/Components/KeyboardShortcutsOverlay.qml:118
167145msgid "Launcher"
168−msgstr ""
146+msgstr "Llançador"
169147
170148#: qml/Components/KeyboardShortcutsOverlay.qml:125
171149msgid "Super (Hold)"
172−msgstr ""
150+msgstr "Super (Mantingut)"
173151
174152#: qml/Components/KeyboardShortcutsOverlay.qml:130
175153msgid "Opens the launcher, displays shortcuts."
176−msgstr ""
154+msgstr "Obre el llançador, mostre les dreceres."
177155
178156#: qml/Components/KeyboardShortcutsOverlay.qml:138
179157msgid "Alt + F1"
180−msgstr ""
158+msgstr "Alt + F1"
181159
182160#: qml/Components/KeyboardShortcutsOverlay.qml:143
183161msgid "Opens launcher keyboard navigation mode."
184−msgstr ""
162+msgstr "Obre el mode de navegació de teclat del llançador."
185163
186164#: qml/Components/KeyboardShortcutsOverlay.qml:151
187165msgid "Super + Tab"
188−msgstr ""
166+msgstr "Super + Tab"
189167
190168#: qml/Components/KeyboardShortcutsOverlay.qml:156
191169msgid "Switches applications via the launcher."
192−msgstr ""
170+msgstr "Commuta les aplicacions mitjançant el llançador."
193171
194172#: qml/Components/KeyboardShortcutsOverlay.qml:164
195173msgid "Super + 0 to 9"
196−msgstr ""
174+msgstr "Super + 0 a 9"
197175
198176#: qml/Components/KeyboardShortcutsOverlay.qml:169
199177msgid "Same as clicking on a launcher icon."
200−msgstr ""
178+msgstr "El mateix que clicar sobre una icona del llançador."
201179
202180#: qml/Components/KeyboardShortcutsOverlay.qml:181
203181msgid "Scopes"
204−msgstr ""
182+msgstr "Lents"
205183
206184#: qml/Components/KeyboardShortcutsOverlay.qml:188
207185msgid "Super (Tap)"
208−msgstr ""
186+msgstr "Super (Toc)"
209187
210188#: qml/Components/KeyboardShortcutsOverlay.qml:193
211189msgid "Opens the Scopes home."
212−msgstr ""
190+msgstr "Obre la pàgina d'inici dels lents."
213191
214192#: qml/Components/KeyboardShortcutsOverlay.qml:209
215193msgid "Switching"
216−msgstr ""
194+msgstr "Commutació"
217195
218196#: qml/Components/KeyboardShortcutsOverlay.qml:216
219197msgid "Alt + Tab"
220−msgstr ""
198+msgstr "Alt + Tab"
221199
222200#: qml/Components/KeyboardShortcutsOverlay.qml:221
223201msgid "Switches between applications."
224−msgstr ""
202+msgstr "Commuta entre aplicacions."
225203
226204#: qml/Components/KeyboardShortcutsOverlay.qml:229
227205msgid "Super + W"
228−msgstr ""
206+msgstr "Super + W"
229207
230208#: qml/Components/KeyboardShortcutsOverlay.qml:234
231209msgid "Opens the desktop spread."
232−msgstr ""
210+msgstr "Obre la distribució de l'escriptori."
233211
234212#: qml/Components/KeyboardShortcutsOverlay.qml:242
235213msgid "Cursor Left or Right"
236−msgstr ""
214+msgstr "Cursor dreta o esquerra"
237215
238216#: qml/Components/KeyboardShortcutsOverlay.qml:247
239217msgid "Moves the focus."
240−msgstr ""
218+msgstr "Mou el focus"
241219
242220#: qml/Components/KeyboardShortcutsOverlay.qml:259
243221msgid "Windows"
244−msgstr ""
222+msgstr "Finestres"
245223
246224#: qml/Components/KeyboardShortcutsOverlay.qml:266
247225msgid "Ctrl + Super + D"
248−msgstr ""
226+msgstr "Ctrl + Super + D"
249227
250228#: qml/Components/KeyboardShortcutsOverlay.qml:271
251229msgid "Minimizes all windows."
252−msgstr ""
230+msgstr "Minimitza totes les finestres."
253231
254232#: qml/Components/KeyboardShortcutsOverlay.qml:279
255233msgid "Ctrl + Super + Up"
256−msgstr ""
234+msgstr "Ctrl + Super + Amunt"
257235
258236#: qml/Components/KeyboardShortcutsOverlay.qml:284
259237msgid "Maximizes the current window."
260−msgstr ""
238+msgstr "Maximitza la finestra actual."
261239
262240#: qml/Components/KeyboardShortcutsOverlay.qml:292
263241msgid "Ctrl + Super + Down"
264−msgstr ""
242+msgstr "Ctrl + Super + Avall"
265243
266244#: qml/Components/KeyboardShortcutsOverlay.qml:297
267245msgid "Minimizes or restores the current window."
268−msgstr ""
246+msgstr "Minimitza o restaura la finestra actual."
269247
270248#: qml/Components/KeyboardShortcutsOverlay.qml:305
271249msgid "Ctrl + Super + Left or Right"
272−msgstr ""
250+msgstr "Ctrl + Super + Esquerra o Dreta"
273251
274252#: qml/Components/KeyboardShortcutsOverlay.qml:310
275253msgid "Semi-maximizes the current window."
276−msgstr ""
254+msgstr "Semi-maximitza la finestra actual."
277255
278256#: qml/Components/KeyboardShortcutsOverlay.qml:318
279257msgid "Alt + F4"
280−msgstr ""
258+msgstr "Alt + F4"
281259
282260#: qml/Components/KeyboardShortcutsOverlay.qml:323
283261msgid "Closes the current window."
284−msgstr ""
262+msgstr "Tanca la finestra actual."
285263
286−#: qml/Components/Lockscreen.qml:231
264+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
287265msgid "Return to Call"
288266msgstr "Torna a la trucada"
289267
290−#: qml/Components/Lockscreen.qml:231
268+#: qml/Components/Lockscreen.qml:212
291269msgid "Emergency Call"
292270msgstr "Trucada d'emergència"
293271
294−#: qml/Components/Lockscreen.qml:263
272+#: qml/Components/Lockscreen.qml:244
295273msgid "OK"
296274msgstr "D'acord"
297275
276+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
277+#, qt-format
278+msgid "%1:%2:%3"
279+msgstr "%1:%2:%3"
280+
281+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
282+#, qt-format
283+msgid "%1:%2"
284+msgstr "%1:%2"
285+
298286#: qml/Components/ModeSwitchWarningDialog.qml:32
299287msgid "Apps may have unsaved data:"
300288msgstr "Pot ser que aquestes aplicacions no hagin desat les dades:"
@@ -304,6 +292,8 @@ msgctxt ""
304292"Re-dock means connect the device again to an external screen/mouse/keyboard"
305293msgid "Re-dock, save your work and close these apps to continue."
306294msgstr ""
295+"Torneu a acoblar, deseu la vostra feina i tanqueu aquestes aplicacions abans "
296+"de continuar."
307297
308298#: qml/Components/ModeSwitchWarningDialog.qml:63
309299msgid "Or force close now (unsaved data will be lost)."
@@ -321,55 +311,59 @@ msgstr "Torna a connectar"
321311msgid "Close all"
322312msgstr "Tanca-ho tot"
323313
324−#: qml/Dash/DashPageHeader.qml:333
314+#: qml/Components/SharingPicker.qml:54
315+msgid "Preview Share Item"
316+msgstr "Previsualitzeu l'element a compartir"
317+
318+#: qml/Dash/DashPageHeader.qml:362
325319msgctxt "Button: Open the Ubuntu Store"
326320msgid "Store"
327321msgstr "Botiga"
328322
329−#: qml/Dash/DashPageHeader.qml:340
323+#: qml/Dash/DashPageHeader.qml:369
330324msgctxt "Button: Start a search in the current dash scope"
331325msgid "Search"
332326msgstr "Cerca"
333327
334−#: qml/Dash/DashPageHeader.qml:350
328+#: qml/Dash/DashPageHeader.qml:379
335329msgctxt "Button: Show the current dash scope settings"
336330msgid "Settings"
337331msgstr "Paràmetres"
338332
339−#: qml/Dash/DashPageHeader.qml:357
333+#: qml/Dash/DashPageHeader.qml:386
340334msgid "Remove from Favorites"
341335msgstr "Suprimeix dels preferits"
342336
343−#: qml/Dash/DashPageHeader.qml:357
337+#: qml/Dash/DashPageHeader.qml:386
344338msgid "Add to Favorites"
345339msgstr "Afegeix als preferits"
346340
347−#: qml/Dash/FiltersPopover.qml:60
341+#: qml/Dash/FiltersPopover.qml:61
348342msgid "Refine your results"
349−msgstr ""
343+msgstr "Refineu els resultats"
350344
351−#: qml/Dash/FiltersPopover.qml:69
345+#: qml/Dash/FiltersPopover.qml:70
352346msgid "Reset"
353−msgstr ""
347+msgstr "Restableix"
354348
355−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
349+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
356350msgid "Show less"
357−msgstr ""
351+msgstr "Mostra menys"
358352
359−#: qml/Dash/GenericScopeView.qml:580
353+#: qml/Dash/GenericScopeView.qml:586
360354msgid "Show all"
361−msgstr ""
355+msgstr "Mostra tot"
362356
363−#: qml/Dash/GenericScopeView.qml:637
357+#: qml/Dash/GenericScopeView.qml:643
364358msgctxt "Label: Hint for dash search line edit"
365359msgid "Search"
366360msgstr "Cerca"
367361
368−#: qml/Dash/PageHeaderExtraPanel.qml:56
362+#: qml/Dash/PageHeaderExtraPanel.qml:57
369363msgid "Recent Searches"
370364msgstr "Cerques recents"
371365
372−#: qml/Dash/PageHeaderExtraPanel.qml:67
366+#: qml/Dash/PageHeaderExtraPanel.qml:68
373367msgid "Clear All"
374368msgstr "Neteja-ho tot"
375369
@@ -381,28 +375,24 @@ msgstr "Més..."
381375msgid "Less..."
382376msgstr "Menys..."
383377
384−#: qml/Dash/Previews/PreviewCommentInput.qml:68
385−#: qml/Dash/Previews/PreviewRatingInput.qml:175
378+#: qml/Dash/Previews/PreviewCommentInput.qml:83
379+#: qml/Dash/Previews/PreviewRatingInput.qml:201
386380msgid "Send"
387381msgstr "Envia"
388382
389−#: qml/Dash/Previews/PreviewRatingInput.qml:82
383+#: qml/Dash/Previews/PreviewRatingInput.qml:108
390384msgid "Rate this"
391385msgstr "Puntueu-ho"
392386
393−#: qml/Dash/Previews/PreviewRatingInput.qml:157
387+#: qml/Dash/Previews/PreviewRatingInput.qml:183
394388msgid "Add a review"
395389msgstr "Afegiu una ressenya"
396390
397−#: qml/Dash/Previews/PreviewSharing.qml:66
398−msgid "Preview Share Item"
399−msgstr ""
400−
401−#: qml/Dash/PullToRefreshScopeStyle.qml:55
391+#: qml/Dash/PullToRefreshScopeStyle.qml:56
402392msgid "Pull to refresh…"
403393msgstr "Estireu per actualitzar..."
404394
405−#: qml/Dash/PullToRefreshScopeStyle.qml:60
395+#: qml/Dash/PullToRefreshScopeStyle.qml:61
406396msgid "Release to refresh…"
407397msgstr "Deixeu anar per actualitzar..."
408398
@@ -410,15 +400,15 @@ msgstr "Deixeu anar per actualitzar..."
410400msgid "Enable location data"
411401msgstr "Habilita les dades d'ubicació"
412402
413−#: qml/Dash/ScopesList.qml:55
403+#: qml/Dash/ScopesList.qml:57
414404msgid "Manage"
415405msgstr "Gestiona"
416406
417−#: qml/Dash/ScopesList.qml:101
407+#: qml/Dash/ScopesList.qml:104
418408msgid "Home"
419409msgstr "Inici"
420410
421−#: qml/Dash/ScopesList.qml:102
411+#: qml/Dash/ScopesList.qml:105
422412msgid "Also installed"
423413msgstr "També instal·lat"
424414
@@ -427,79 +417,63 @@ msgid ""
427417"Your device is now connected to an external display. Use this screen as a "
428418"touch pad to interact with the pointer."
429419msgstr ""
420+"El vostre dispositiu està ara connectat a un monitor extern. Useu aquesta "
421+"pantalla com a ratolí tàctil per interaccionar amb el cursor."
430422
431−#: qml/Greeter/CoverPage.qml:119
423+#: qml/Greeter/CoverPage.qml:127
432424msgid "Unlock"
433425msgstr "Desbloca"
434426
435−#: qml/Greeter/LoginList.qml:259
436−msgid "Retry"
437−msgstr "Torna-ho a provar"
438−
439−#: qml/Greeter/LoginList.qml:260
440−msgid "Log In"
441−msgstr ""
442−
443−#: qml/Greeter/NarrowView.qml:54
444−msgid "Sorry, incorrect passphrase."
445−msgstr "La contrasenya és incorrecta"
446−
447−#: qml/Greeter/NarrowView.qml:55
448−msgid "Sorry, incorrect passcode."
449−msgstr "El codi d'accés no és correcte"
450−
451−#: qml/Greeter/NarrowView.qml:56
452−msgid "This will be your last attempt."
453−msgstr "Aquest serà el darrer intent."
427+#: qml/Greeter/DelayedLockscreen.qml:43
428+msgid "Device Locked"
429+msgstr "Dispositiu bloquejat"
454430
455−#: qml/Greeter/NarrowView.qml:58
456−msgid ""
457−"If passphrase is entered incorrectly, your phone will conduct a factory "
458−"reset and all personal data will be deleted."
431+#: qml/Greeter/DelayedLockscreen.qml:58
432+msgid "You have been locked out due to too many failed passphrase attempts."
459433msgstr ""
460−"Si la contrasenya s'introdueix de manera incorrecta, el telèfon es "
461−"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
462−"personals."
434+"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
435+"d'intents d'introducció de la contrasenya."
463436
464−#: qml/Greeter/NarrowView.qml:59
465−msgid ""
466−"If passcode is entered incorrectly, your phone will conduct a factory reset "
467−"and all personal data will be deleted."
437+#: qml/Greeter/DelayedLockscreen.qml:59
438+msgid "You have been locked out due to too many failed passcode attempts."
468439msgstr ""
469−"Si el codi d'accés s'introdueix de manera incorrecta, el telèfon es "
470−"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
471−"personals."
440+"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
441+"d'intents d'introducció del codi d'accés."
472442
473−#: qml/Greeter/NarrowView.qml:116
443+#: qml/Greeter/DelayedLockscreen.qml:68
474444#, qt-format
475−msgid "Enter %1"
476−msgstr "Introduïu: %1"
445+msgid "Please wait %1 minute and then try again…"
446+msgid_plural "Please wait %1 minutes and then try again…"
447+msgstr[0] "Espereu %1 minut i torneu-ho a intentar..."
448+msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
477449
478−#: qml/Greeter/NarrowView.qml:117
479−msgid "Enter passphrase"
480−msgstr "Introduïu la contrasenya"
450+#: qml/Greeter/Greeter.qml:596
451+msgid "Try again"
452+msgstr "Torna-ho a provar"
481453
482−#: qml/Greeter/NarrowView.qml:118
483−msgid "Enter passcode"
484−msgstr "Introduïu el codi d'accés"
454+#: qml/Greeter/LoginList.qml:70
455+msgid "Passphrase"
456+msgstr "Contrasenya"
485457
486−#: qml/Greeter/NarrowView.qml:119
487−#, qt-format
488−msgid "Sorry, incorrect %1"
489−msgstr "Incorrecte (%1)"
458+#: qml/Greeter/LoginList.qml:71
459+msgid "Passcode"
460+msgstr "Codi d'accés"
490461
491−#: qml/Greeter/NarrowView.qml:120
492−msgid "Sorry, incorrect passphrase"
493−msgstr "La contrasenya no és correcta"
462+#: qml/Greeter/LoginList.qml:98
463+msgid "Retry"
464+msgstr "Torna-ho a provar"
465+
466+#: qml/Greeter/LoginList.qml:99
467+msgid "Log In"
468+msgstr "Inici de sessió"
494469
495−#: qml/Greeter/NarrowView.qml:121
496−msgctxt "passphrase"
497−msgid "Please re-enter"
498−msgstr "Torneu-ho a introduir"
470+#: qml/Greeter/NarrowView.qml:252
471+msgid "Emergency"
472+msgstr ""
499473
500−#: qml/Greeter/NarrowView.qml:122
501−msgid "Sorry, incorrect passcode"
502−msgstr "El codi d'accés no és correcte"
474+#: qml/Greeter/SessionsList.qml:122
475+msgid "Select desktop environment"
476+msgstr ""
503477
504478#: qml/Notifications/NotificationMenuItemFactory.qml:124
505479msgid "Show password"
@@ -591,160 +565,216 @@ msgstr "Retorna la trucada"
591565#: qml/Stages/SideStage.qml:76
592566msgid "Drag using 3 fingers any application from one window to the other"
593567msgstr ""
568+"Arrossegueu usant 3 dits qualsevol aplicació d'una finestra a una altra"
594569
595570#: qml/Tutorial/TutorialLeftLong.qml:49
596571msgid "Long swipe from the left edge to open the Today scope"
597572msgstr ""
573+"Feu una lliscada llarga des de la vora esquerra per obrir l'àmbit Avui"
598574
599575#: qml/Tutorial/TutorialLeft.qml:47
600576msgid "Short swipe from the left edge to open the launcher"
601577msgstr ""
578+"Passeu el dit breument des de la vora esquerra per obrir el llançador"
602579
603580#: qml/Tutorial/TutorialRight.qml:55
604581msgid "Push your mouse against the right edge to view your open apps"
605582msgstr ""
583+"Empenyeu el ratolí contra la vora dreta per veure les vostres aplicacions "
584+"obertes"
606585
607586#: qml/Tutorial/TutorialRight.qml:56
608587msgid "Swipe from the right edge to view your open apps"
609588msgstr ""
589+"Passeu el dit des de la vora dreta per veure les vostres aplicacions obertes"
610590
611591#: qml/Tutorial/TutorialTop.qml:53
612592msgid "Swipe from the top edge to access notifications and quick settings"
613593msgstr ""
594+"Passeu el dit des de la vora superior per accedir les notificacions i les "
595+"configuracions ràpides"
614596
615597#: qml/Wizard/Page.qml:54
616598msgctxt "Button: Go back one page in the Wizard"
617599msgid "Back"
618600msgstr "Enrere"
619601
620−#: qml/Wizard/Pages/10-welcome.qml:27
602+#: qml/Wizard/Pages/10-welcome.qml:28
621603msgid "Language"
622−msgstr ""
604+msgstr "Llengua"
623605
624−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
625−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
626−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
606+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
607+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
608+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
609+#: qml/Wizard/Pages/70-passwd-type.qml:145
627610#: qml/Wizard/Pages/75-report-check.qml:84
628−#: qml/Wizard/Pages/passcode-desktop.qml:124
629−#: qml/Wizard/Pages/password-set.qml:141
611+#: qml/Wizard/Pages/passcode-desktop.qml:142
612+#: qml/Wizard/Pages/password-set.qml:142
630613msgid "Next"
631−msgstr ""
614+msgstr "Següent"
615+
616+#: qml/Wizard/Pages/20-keyboard.qml:31
617+msgid "Select Keyboard"
618+msgstr "Seleccioneu el teclat"
619+
620+#: qml/Wizard/Pages/20-keyboard.qml:71
621+msgid "Keyboard language"
622+msgstr "Llengua del teclat"
623+
624+#: qml/Wizard/Pages/20-keyboard.qml:93
625+msgid "Keyboard layout"
626+msgstr "Disposició del teclat"
627+
628+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
629+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
630+#: qml/Wizard/Pages/sim.qml:101
631+msgid "Skip"
632+msgstr "Omet"
632633
633−#: qml/Wizard/Pages/30-wifi.qml:29
634+#: qml/Wizard/Pages/30-wifi.qml:31
634635msgid "Connect to Wi‑Fi"
635636msgstr "Connecta't a la Wi-Fi"
636637
637−#: qml/Wizard/Pages/30-wifi.qml:130
638+#: qml/Wizard/Pages/30-wifi.qml:132
638639msgid "Connected"
639−msgstr ""
640+msgstr "Connectat"
640641
641−#: qml/Wizard/Pages/30-wifi.qml:163
642+#: qml/Wizard/Pages/30-wifi.qml:165
642643msgid "Available Wi-Fi networks"
643−msgstr ""
644+msgstr "Xarxes Wi-Fi disponibles"
644645
645−#: qml/Wizard/Pages/30-wifi.qml:164
646+#: qml/Wizard/Pages/30-wifi.qml:166
646647msgid "No available Wi-Fi networks"
647−msgstr ""
648−
649−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
650−#: qml/Wizard/Pages/sim.qml:101
651−msgid "Skip"
652−msgstr "Omet"
648+msgstr "No hi ha xarxes Wi-Fi disponibles"
653649
654650#: qml/Wizard/Pages/40-location.qml:27
655651msgid "Location Services"
656−msgstr ""
652+msgstr "Serveis d'ubicació"
657653
658654#: qml/Wizard/Pages/40-location.qml:83
659655msgid ""
660656"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
661657"(recommended)"
662658msgstr ""
659+"Usa anònimament el GPS, punts d'accés Wi-Fi i la xarxa mòbil per detectar la "
660+"ubicació (recomanat)"
663661
664662#: qml/Wizard/Pages/40-location.qml:105
665663#, qt-format
666664msgid "By selecting this option you agree to the Nokia HERE %1."
667−msgstr ""
665+msgstr "Seleccionant aquesta opció esteu d'acord amb el Nokia HERE %1."
668666
669667#: qml/Wizard/Pages/40-location.qml:106
670668msgctxt "part of: Nokia HERE terms and conditions"
671669msgid "terms and conditions"
672−msgstr ""
670+msgstr "termes i condicions"
673671
674672#: qml/Wizard/Pages/40-location.qml:160
675673msgid "GPS only"
676−msgstr ""
674+msgstr "Sols GPS"
677675
678676#: qml/Wizard/Pages/40-location.qml:214
679677msgid "Don't use my location"
680−msgstr ""
678+msgstr "No usis la meva ubicació"
681679
682680#: qml/Wizard/Pages/40-location.qml:260
683681msgid "You can change it later in System Settings."
684−msgstr ""
682+msgstr "Podeu canviar-ho més tard a Paràmetres del sistema."
685683
686−#: qml/Wizard/Pages/50-timezone.qml:29
684+#: qml/Wizard/Pages/50-timezone.qml:30
687685msgid "Time Zone"
688−msgstr ""
686+msgstr "Fus horari"
689687
690−#: qml/Wizard/Pages/50-timezone.qml:181
688+#: qml/Wizard/Pages/50-timezone.qml:182
691689msgid "Enter your city"
692−msgstr ""
690+msgstr "Entreu la vostra ciutat"
693691
694692#: qml/Wizard/Pages/60-account.qml:24
695693msgid "Personalize Your Device"
696−msgstr ""
694+msgstr "Personalitzeu el vostre dispositiu"
697695
698696#: qml/Wizard/Pages/60-account.qml:48
699697msgid "Preferred Name"
700−msgstr ""
698+msgstr "Nom preferit"
701699
702−#: qml/Wizard/Pages/70-passwd-type.qml:39
700+#: qml/Wizard/Pages/70-passwd-type.qml:40
703701msgid "Lock Screen"
704−msgstr ""
702+msgstr "Bloca la pantalla"
705703
706−#: qml/Wizard/Pages/70-passwd-type.qml:101
704+#: qml/Wizard/Pages/70-passwd-type.qml:102
707705msgctxt "Label: Type of security method"
708706msgid "Create new password"
709−msgstr ""
707+msgstr "Crea una contrasenya nova"
710708
711−#: qml/Wizard/Pages/70-passwd-type.qml:103
709+#: qml/Wizard/Pages/70-passwd-type.qml:104
712710msgctxt "Label: Type of security method"
713711msgid "Create passcode (numbers only)"
714−msgstr ""
712+msgstr "Creeu un codi d'accés (sols números)"
715713
716−#: qml/Wizard/Pages/70-passwd-type.qml:105
714+#: qml/Wizard/Pages/70-passwd-type.qml:106
717715msgctxt "Label: Type of security method"
718716msgid "No lock code"
719−msgstr ""
717+msgstr "No hi ha codi de bloqueig"
720718
721719#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
722720msgid "Privacy Policy"
723−msgstr ""
721+msgstr "Política de privacitat"
724722
725723#: qml/Wizard/Pages/75-report-check.qml:26
726724msgid "Help Us Improve"
727−msgstr ""
725+msgstr "Ajudeu-nos a millorar"
728726
729727#: qml/Wizard/Pages/75-report-check.qml:59
730728msgid "Improve system performance by sending us crashes and error reports."
731729msgstr ""
730+"Milloreu el rendiment del sistema enviant-nos informes de fallades i errors."
732731
733732#: qml/Wizard/Pages/75-report-check.qml:60
734733msgid "Privacy policy"
734+msgstr "Política de privacitat"
735+
736+#: qml/Wizard/Pages/77-system-update.qml:28
737+msgid "Update Device"
738+msgstr "Actualitza el dispositiu"
739+
740+#: qml/Wizard/Pages/77-system-update.qml:55
741+msgid ""
742+"There is a system update available and ready to install. Afterwards, the "
743+"device will automatically restart."
735744msgstr ""
745+"Hi ha una actualització del sistema disponible i llesta per instal·lar. "
746+"Després, el dispositiu es reiniciarà automàticament."
747+
748+#: qml/Wizard/Pages/77-system-update.qml:76
749+msgctxt "string identifying name of the update"
750+msgid "Ubuntu system"
751+msgstr "Sistema de l'Ubuntu"
752+
753+#: qml/Wizard/Pages/77-system-update.qml:83
754+#, qt-format
755+msgctxt "version of the system update"
756+msgid "Version %1"
757+msgstr "Versió %1"
758+
759+#: qml/Wizard/Pages/77-system-update.qml:102
760+msgid "This could take a few minutes..."
761+msgstr "Això pot trigar uns pocs minuts..."
762+
763+#: qml/Wizard/Pages/77-system-update.qml:116
764+msgid "Install and restart now"
765+msgstr "Instal·la i reinicia ara"
736766
737767#: qml/Wizard/Pages/80-finished.qml:89
738768msgid "Welcome to Ubuntu"
739−msgstr ""
769+msgstr "Us donem la benvinguda a l'Ubuntu"
740770
741771#: qml/Wizard/Pages/80-finished.qml:104
742772msgid "You are ready to use your device now"
743−msgstr ""
773+msgstr "Ara ja esteu a punt per usar el vostre dispositiu"
744774
745775#: qml/Wizard/Pages/80-finished.qml:124
746776msgid "Get Started"
747−msgstr ""
777+msgstr "Introducció"
748778
749779#: qml/Wizard/Pages/here-terms.qml:25
750780msgid "Terms & Conditions"
@@ -753,6 +783,7 @@ msgstr "Condicions generals"
753783#: qml/Wizard/Pages/here-terms.qml:69
754784msgid "Your device uses positioning technologies provided by HERE."
755785msgstr ""
786+"El vostre dispositiu usa tecnologies de posicionament proveïdes per HERE."
756787
757788#: qml/Wizard/Pages/here-terms.qml:81
758789msgid ""
@@ -760,92 +791,98 @@ msgid ""
760791"collects information about nearby cell towers and Wi-Fi hotspots around your "
761792"current location whenever your position is being found."
762793msgstr ""
794+"Per proveir-vos de serveis de posicionament i per millorar la seva qualitat, "
795+"HERE recull informació sobre torres de telefonia mòbil i punts d'accés Wi-Fi "
796+"al voltant de la vostra ubicació actual sempre que s'està buscant la vostra "
797+"posició."
763798
764799#: qml/Wizard/Pages/here-terms.qml:93
765800msgid ""
766801"The information collected is used to analyze the service and to improve the "
767802"use of service, but not to identify you personally."
768803msgstr ""
804+"La informació recollida s'usa per analitzar el servei i per millorar l'ús "
805+"del servei, però no per identificar-vos personalment."
769806
770807#: qml/Wizard/Pages/here-terms.qml:106
771808#, qt-format
772809msgid "By continuing, you agree to the HERE platform %1 and %2."
773−msgstr ""
810+msgstr "En continuar, esteu d'acord amb la plataforma HERE %1 i %2."
774811
775812#: qml/Wizard/Pages/here-terms.qml:107
776813msgid "Service Terms"
777−msgstr ""
814+msgstr "Termes del servei"
778815
779816#: qml/Wizard/Pages/passcode-confirm.qml:43
780−#: qml/Wizard/Pages/passcode-desktop.qml:80
817+#: qml/Wizard/Pages/passcode-desktop.qml:97
781818msgid "Confirm passcode"
782819msgstr "Confirmeu el codi d'accés"
783820
784821#: qml/Wizard/Pages/passcode-confirm.qml:45
785822msgid "Incorrect passcode."
786−msgstr ""
823+msgstr "Codi d'accés incorrecte."
787824
788825#: qml/Wizard/Pages/passcode-confirm.qml:45
789826msgctxt "Enter the passcode again"
790827msgid "Please re-enter."
791−msgstr ""
828+msgstr "Si us plau torneu a introduir-lo."
792829
793−#: qml/Wizard/Pages/passcode-desktop.qml:30
830+#: qml/Wizard/Pages/passcode-desktop.qml:31
794831msgid "Lock Screen Passcode"
795−msgstr ""
832+msgstr "Codi d'accés al bloqueig de pantalla"
796833
797−#: qml/Wizard/Pages/passcode-desktop.qml:56
834+#: qml/Wizard/Pages/passcode-desktop.qml:61
798835msgid "Enter 4 numbers to setup your passcode"
799−msgstr ""
836+msgstr "Entreu 4 números per establir el codi d'accés"
800837
801−#: qml/Wizard/Pages/passcode-desktop.qml:65
838+#: qml/Wizard/Pages/passcode-desktop.qml:77
802839#: qml/Wizard/Pages/passcode-set.qml:54
803840msgid "Choose passcode"
804−msgstr ""
841+msgstr "Trieu el codi d'accés"
805842
806−#: qml/Wizard/Pages/passcode-desktop.qml:105
843+#: qml/Wizard/Pages/passcode-desktop.qml:127
807844msgid "Passcode too short"
808−msgstr ""
845+msgstr "El codi d'accés és massa curt"
809846
810−#: qml/Wizard/Pages/passcode-desktop.qml:107
847+#: qml/Wizard/Pages/passcode-desktop.qml:129
811848msgid "Passcodes match"
812−msgstr ""
849+msgstr "Els codis d'accés concorden"
813850
814−#: qml/Wizard/Pages/passcode-desktop.qml:109
851+#: qml/Wizard/Pages/passcode-desktop.qml:131
815852msgid "Passcodes do not match"
816−msgstr ""
853+msgstr "Els codis d'accés no concorden"
817854
818855#: qml/Wizard/Pages/passcode-set.qml:62
819856msgid "Passcode must be 4 characters long"
820−msgstr ""
857+msgstr "El codi d'accés ha de tenir una longitud de 4 caràcters"
821858
822−#: qml/Wizard/Pages/password-set.qml:30
859+#: qml/Wizard/Pages/password-set.qml:31
823860msgid "Lock Screen Password"
824−msgstr ""
861+msgstr "Contrasenya de bloqueig de pantalla"
825862
826−#: qml/Wizard/Pages/password-set.qml:61
863+#: qml/Wizard/Pages/password-set.qml:62
827864msgid "Enter at least 8 characters"
828−msgstr ""
865+msgstr "Entreu almenys 8 caràcters"
829866
830−#: qml/Wizard/Pages/password-set.qml:73
867+#: qml/Wizard/Pages/password-set.qml:74
831868msgid "Choose password"
832−msgstr ""
869+msgstr "Escolliu la contrasenya"
833870
834−#: qml/Wizard/Pages/password-set.qml:103
871+#: qml/Wizard/Pages/password-set.qml:104
835872msgid "Confirm password"
836−msgstr ""
873+msgstr "Confirmeu la contrasenya"
837874
838875#: qml/Wizard/Pages/sim.qml:27
839876msgid "No SIM card installed"
840−msgstr ""
877+msgstr "No hi cap SIM instal·lada"
841878
842879#: qml/Wizard/Pages/sim.qml:54
843880msgid "SIM card added"
844−msgstr ""
881+msgstr "S'ha afegit una targeta SIM"
845882
846883#: qml/Wizard/Pages/sim.qml:55
847884msgid "You must restart the device to access the mobile network."
848−msgstr ""
885+msgstr "Heu de reiniciar el dispositiu per accedir a la xarxa mòbil."
849886
850887#: qml/Wizard/Pages/sim.qml:59
851888msgid "Restart"
@@ -853,35 +890,39 @@ msgstr "Reinicia"
853890
854891#: qml/Wizard/Pages/sim.qml:78
855892msgid "You won’t be able to make calls or use text messaging without a SIM."
856−msgstr ""
893+msgstr "No podreu fer trucades o usar la missatgeria de text sense una SIM."
857894
858895#: qml/Wizard/Pages/sim.qml:90
859896msgid "To proceed with no SIM tap Skip."
860−msgstr ""
897+msgstr "Per procedir sense cap SIM toqueu Omet."
861898
862899#: qml/Wizard/PasswordMeter.qml:87
863−msgid "Passwords match"
864−msgstr ""
900+msgid "Password too short"
901+msgstr "La contrasenya es massa curta"
865902
866903#: qml/Wizard/PasswordMeter.qml:89
904+msgid "Passwords match"
905+msgstr "Les contrasenyes coincideixen"
906+
907+#: qml/Wizard/PasswordMeter.qml:91
867908msgid "Passwords do not match"
868−msgstr ""
909+msgstr "Les contrasenyes no coincideixen"
869910
870−#: qml/Wizard/PasswordMeter.qml:93
911+#: qml/Wizard/PasswordMeter.qml:95
871912msgid "Strong password"
872−msgstr ""
913+msgstr "La contrasenya és forta"
873914
874−#: qml/Wizard/PasswordMeter.qml:95
915+#: qml/Wizard/PasswordMeter.qml:97
875916msgid "Fair password"
876−msgstr ""
917+msgstr "La contrasenya és acceptable"
877918
878−#: qml/Wizard/PasswordMeter.qml:97
919+#: qml/Wizard/PasswordMeter.qml:99
879920msgid "Weak password"
880−msgstr ""
921+msgstr "La contrasenya és dèbil"
881922
882−#: qml/Wizard/PasswordMeter.qml:99
923+#: qml/Wizard/PasswordMeter.qml:101
883924msgid "Very weak password"
884−msgstr ""
925+msgstr "La contrasenya és molt dèbil"
885926
886927#~ msgid "Confirm"
887928#~ msgstr "Confirma"
@@ -962,12 +1003,33 @@ msgstr ""
9621003#~ msgid "Roaming"
9631004#~ msgstr "Itinerància"
9641005
1006+#~ msgid "Sorry, incorrect passphrase."
1007+#~ msgstr "La contrasenya és incorrecta"
1008+
1009+#~ msgid ""
1010+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1011+#~ "reset and all personal data will be deleted."
1012+#~ msgstr ""
1013+#~ "Si la contrasenya s'introdueix de manera incorrecta, el telèfon es "
1014+#~ "reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
1015+#~ "personals."
1016+
1017+#~ msgid "This will be your last attempt."
1018+#~ msgstr "Aquest serà el darrer intent."
1019+
9651020#~ msgid "Favorites"
9661021#~ msgstr "Preferides"
9671022
9681023#~ msgid "All"
9691024#~ msgstr "Totes"
9701025
1026+#, qt-format
1027+#~ msgid "Sorry, incorrect %1"
1028+#~ msgstr "Incorrecte (%1)"
1029+
1030+#~ msgid "Sorry, incorrect passphrase"
1031+#~ msgstr "La contrasenya no és correcta"
1032+
9711033#~ msgid "Log out"
9721034#~ msgstr "Surt"
9731035
@@ -980,6 +1042,9 @@ msgstr ""
9801042#~ msgid "Power"
9811043#~ msgstr "Energia"
9821044
1045+#~ msgid "Sorry, incorrect passcode"
1046+#~ msgstr "El codi d'accés no és correcte"
1047+
9831048#~ msgid "Power off"
9841049#~ msgstr "Apaga"
9851050
@@ -989,12 +1054,33 @@ msgstr ""
9891054#~ msgid "Shut down"
9901055#~ msgstr "Apaga"
9911056
1057+#~ msgid "Sorry, incorrect passcode."
1058+#~ msgstr "El codi d'accés no és correcte"
1059+
1060+#~ msgid ""
1061+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1062+#~ "and all personal data will be deleted."
1063+#~ msgstr ""
1064+#~ "Si el codi d'accés s'introdueix de manera incorrecta, el telèfon es "
1065+#~ "reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
1066+#~ "personals."
1067+
1068+#~ msgid "Enter passphrase"
1069+#~ msgstr "Introduïu la contrasenya"
1070+
9921071#~ msgid "Please re-enter"
9931072#~ msgstr "Torneu-ho a introduir"
9941073
1074+#~ msgid "Enter passcode"
1075+#~ msgstr "Introduïu el codi d'accés"
1076+
9951077#~ msgid "Manage Scopes"
9961078#~ msgstr "Gestioneu les lents"
9971079
1080+#, qt-format
1081+#~ msgid "Enter %1"
1082+#~ msgstr "Introduïu: %1"
1083+
9981084#~ msgid "Add a SIM card and restart your device"
9991085#~ msgstr "Afegiu una targeta SIM i reinicieu el dispositiu"
10001086
@@ -1210,5 +1296,42 @@ msgstr ""
12101296#~ msgid "%l:%M %p"
12111297#~ msgstr "%l∶%M %p"
12121298
1299+#~ msgctxt "passphrase"
1300+#~ msgid "Please re-enter"
1301+#~ msgstr "Torneu-ho a introduir"
1302+
12131303#~ msgid "Call back"
12141304#~ msgstr "Retorna la trucada"
1305+
1306+#~ msgid "Swipe up for recent calls"
1307+#~ msgstr "Llisqueu cap amunt per a trucades recents"
1308+
1309+#~ msgid "Swipe up for favorite calculations"
1310+#~ msgstr "Llisqueu cap amunt per als càlculs favorits"
1311+
1312+#~ msgid "Swipe up to create a message"
1313+#~ msgstr "Llisqueu cap amunt per crear un missatge"
1314+
1315+#~ msgid "Swipe from the left edge to open the launcher"
1316+#~ msgstr "Llisqueu des de la vora esquerra per obrir el llançador"
1317+
1318+#~ msgid "Swipe from the top right edge to open the notification bar"
1319+#~ msgstr ""
1320+#~ "Llisqueu des de la vora superior dreta per obrir la barra de notificacions"
1321+
1322+#~ msgid "Swipe from the top edge to open the notification bar"
1323+#~ msgstr "Llisqueu des de la vora superior per obrir la barra de notificacions"
1324+
1325+#~ msgid "Hover your mouse on the right edge to view your open apps"
1326+#~ msgstr "Passeu el ratolí a la vora dreta per veure les aplicacions obertes"
1327+
1328+#~ msgid "Short or long swipe from the right edge to view your open apps"
1329+#~ msgstr ""
1330+#~ "Feu una lliscada llarga o curta des de la vora dreta per veure les "
1331+#~ "aplicacions obertes"
1332+
1333+#~ msgid "Swipe up to manage the app"
1334+#~ msgstr "Llisqueu cap amunt per gestionar l'aplicació"
1335+
1336+#~ msgid "Swipe up to add a contact"
1337+#~ msgstr "Llisqueu per afegir un contacte"
po/ca@valencia.po+223−161
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,10 +15,10 @@ 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-06-19 05:55+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:05+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr "Contrasenya: "
2424
@@ -35,77 +35,55 @@ msgstr ""
3535msgid "Unpin shortcut"
3636msgstr "Desenganxa la drecera"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr "Dispositiu bloquejat"
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
46−"d'intents d'introducció de la contrasenya."
47−
48−#: qml/Components/DelayedLockscreen.qml:65
49−msgid "You have been locked out due to too many failed passcode attempts."
50−msgstr ""
51−"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
52−"d'intents d'introducció del codi d'accés."
53−
54−#: qml/Components/DelayedLockscreen.qml:74
55−#, qt-format
56−msgid "Please wait %1 minute and then try again…"
57−msgid_plural "Please wait %1 minutes and then try again…"
58−msgstr[0] "Espereu %1 minut i torneu-ho a intentar..."
59−msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
60−
61−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
6239msgctxt "Title: Lock/Log out dialog"
6340msgid "Log out"
6441msgstr ""
6542
66−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6744msgid "Are you sure you want to log out?"
6845msgstr "Segur que voleu eixir?"
6946
70−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
7148msgctxt "Button: Lock the system"
7249msgid "Lock"
7350msgstr ""
7451
75−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7653msgctxt "Button: Log out from the system"
7754msgid "Log Out"
7855msgstr ""
7956
80−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
8260#: qml/Wizard/Pages/passcode-set.qml:32
8361msgid "Cancel"
8462msgstr "Cancel·la"
8563
86−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8765msgctxt "Title: Reboot dialog"
8866msgid "Reboot"
8967msgstr ""
9068
91−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
9270msgid "Are you sure you want to reboot?"
9371msgstr "Segur que voleu reiniciar?"
9472
95−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9674msgid "No"
9775msgstr "No"
9876
99−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
10078msgid "Yes"
10179msgstr "Sí"
10280
103−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10482msgctxt "Title: Power off/Restart dialog"
10583msgid "Power"
10684msgstr ""
10785
108−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10987msgid ""
11088"Are you sure you would like\n"
11189"to power off?"
@@ -113,12 +91,12 @@ msgstr ""
11391"Segur que voleu\n"
11492"apagar?"
11593
116−#: qml/Components/Dialogs.qml:202
94+#: qml/Components/Dialogs.qml:205
11795msgctxt "Button: Power off the system"
11896msgid "Power off"
11997msgstr ""
12098
121−#: qml/Components/Dialogs.qml:211
99+#: qml/Components/Dialogs.qml:214
122100msgctxt "Button: Restart the system"
123101msgid "Restart"
124102msgstr ""
@@ -283,18 +261,28 @@ msgstr ""
283261msgid "Closes the current window."
284262msgstr ""
285263
286−#: qml/Components/Lockscreen.qml:231
264+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
287265msgid "Return to Call"
288266msgstr "Torna a la cridada"
289267
290−#: qml/Components/Lockscreen.qml:231
268+#: qml/Components/Lockscreen.qml:212
291269msgid "Emergency Call"
292270msgstr "Cridada d'emergència"
293271
294−#: qml/Components/Lockscreen.qml:263
272+#: qml/Components/Lockscreen.qml:244
295273msgid "OK"
296274msgstr "D'acord"
297275
276+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
277+#, qt-format
278+msgid "%1:%2:%3"
279+msgstr ""
280+
281+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
282+#, qt-format
283+msgid "%1:%2"
284+msgstr ""
285+
298286#: qml/Components/ModeSwitchWarningDialog.qml:32
299287msgid "Apps may have unsaved data:"
300288msgstr ""
@@ -321,55 +309,59 @@ msgstr ""
321309msgid "Close all"
322310msgstr ""
323311
324−#: qml/Dash/DashPageHeader.qml:333
312+#: qml/Components/SharingPicker.qml:54
313+msgid "Preview Share Item"
314+msgstr ""
315+
316+#: qml/Dash/DashPageHeader.qml:362
325317msgctxt "Button: Open the Ubuntu Store"
326318msgid "Store"
327319msgstr ""
328320
329−#: qml/Dash/DashPageHeader.qml:340
321+#: qml/Dash/DashPageHeader.qml:369
330322msgctxt "Button: Start a search in the current dash scope"
331323msgid "Search"
332324msgstr ""
333325
334−#: qml/Dash/DashPageHeader.qml:350
326+#: qml/Dash/DashPageHeader.qml:379
335327msgctxt "Button: Show the current dash scope settings"
336328msgid "Settings"
337329msgstr ""
338330
339−#: qml/Dash/DashPageHeader.qml:357
331+#: qml/Dash/DashPageHeader.qml:386
340332msgid "Remove from Favorites"
341333msgstr "Suprimeix dels preferits"
342334
343−#: qml/Dash/DashPageHeader.qml:357
335+#: qml/Dash/DashPageHeader.qml:386
344336msgid "Add to Favorites"
345337msgstr "Afig als preferits"
346338
347−#: qml/Dash/FiltersPopover.qml:60
339+#: qml/Dash/FiltersPopover.qml:61
348340msgid "Refine your results"
349341msgstr ""
350342
351−#: qml/Dash/FiltersPopover.qml:69
343+#: qml/Dash/FiltersPopover.qml:70
352344msgid "Reset"
353345msgstr ""
354346
355−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
347+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
356348msgid "Show less"
357349msgstr ""
358350
359−#: qml/Dash/GenericScopeView.qml:580
351+#: qml/Dash/GenericScopeView.qml:586
360352msgid "Show all"
361353msgstr ""
362354
363−#: qml/Dash/GenericScopeView.qml:637
355+#: qml/Dash/GenericScopeView.qml:643
364356msgctxt "Label: Hint for dash search line edit"
365357msgid "Search"
366358msgstr ""
367359
368−#: qml/Dash/PageHeaderExtraPanel.qml:56
360+#: qml/Dash/PageHeaderExtraPanel.qml:57
369361msgid "Recent Searches"
370362msgstr ""
371363
372−#: qml/Dash/PageHeaderExtraPanel.qml:67
364+#: qml/Dash/PageHeaderExtraPanel.qml:68
373365msgid "Clear All"
374366msgstr ""
375367
@@ -381,28 +373,24 @@ msgstr "Més..."
381373msgid "Less..."
382374msgstr "Menys..."
383375
384−#: qml/Dash/Previews/PreviewCommentInput.qml:68
385−#: qml/Dash/Previews/PreviewRatingInput.qml:175
376+#: qml/Dash/Previews/PreviewCommentInput.qml:83
377+#: qml/Dash/Previews/PreviewRatingInput.qml:201
386378msgid "Send"
387379msgstr "Envia"
388380
389−#: qml/Dash/Previews/PreviewRatingInput.qml:82
381+#: qml/Dash/Previews/PreviewRatingInput.qml:108
390382msgid "Rate this"
391383msgstr "Puntueu-ho"
392384
393−#: qml/Dash/Previews/PreviewRatingInput.qml:157
385+#: qml/Dash/Previews/PreviewRatingInput.qml:183
394386msgid "Add a review"
395387msgstr "Afegiu una ressenya"
396388
397−#: qml/Dash/Previews/PreviewSharing.qml:66
398−msgid "Preview Share Item"
399−msgstr ""
400−
401−#: qml/Dash/PullToRefreshScopeStyle.qml:55
389+#: qml/Dash/PullToRefreshScopeStyle.qml:56
402390msgid "Pull to refresh…"
403391msgstr "Estireu per actualitzar..."
404392
405−#: qml/Dash/PullToRefreshScopeStyle.qml:60
393+#: qml/Dash/PullToRefreshScopeStyle.qml:61
406394msgid "Release to refresh…"
407395msgstr "Deixeu anar per actualitzar..."
408396
@@ -410,15 +398,15 @@ msgstr "Deixeu anar per actualitzar..."
410398msgid "Enable location data"
411399msgstr "Habilita les dades d'ubicació"
412400
413−#: qml/Dash/ScopesList.qml:55
401+#: qml/Dash/ScopesList.qml:57
414402msgid "Manage"
415403msgstr "Gestiona"
416404
417−#: qml/Dash/ScopesList.qml:101
405+#: qml/Dash/ScopesList.qml:104
418406msgid "Home"
419407msgstr "Inici"
420408
421−#: qml/Dash/ScopesList.qml:102
409+#: qml/Dash/ScopesList.qml:105
422410msgid "Also installed"
423411msgstr "També instal·lat"
424412
@@ -428,78 +416,60 @@ msgid ""
428416"touch pad to interact with the pointer."
429417msgstr ""
430418
431−#: qml/Greeter/CoverPage.qml:119
419+#: qml/Greeter/CoverPage.qml:127
432420msgid "Unlock"
433421msgstr "Desbloca"
434422
435−#: qml/Greeter/LoginList.qml:259
436−msgid "Retry"
437−msgstr ""
423+#: qml/Greeter/DelayedLockscreen.qml:43
424+msgid "Device Locked"
425+msgstr "Dispositiu bloquejat"
438426
439−#: qml/Greeter/LoginList.qml:260
440−msgid "Log In"
427+#: qml/Greeter/DelayedLockscreen.qml:58
428+msgid "You have been locked out due to too many failed passphrase attempts."
441429msgstr ""
430+"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
431+"d'intents d'introducció de la contrasenya."
442432
443−#: qml/Greeter/NarrowView.qml:54
444−msgid "Sorry, incorrect passphrase."
445−msgstr "La contrasenya és incorrecta"
446−
447−#: qml/Greeter/NarrowView.qml:55
448−msgid "Sorry, incorrect passcode."
449−msgstr "El codi d'accés no és correcte"
433+#: qml/Greeter/DelayedLockscreen.qml:59
434+msgid "You have been locked out due to too many failed passcode attempts."
435+msgstr ""
436+"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
437+"d'intents d'introducció del codi d'accés."
450438
451−#: qml/Greeter/NarrowView.qml:56
452−msgid "This will be your last attempt."
453−msgstr "Este serà el darrer intent."
439+#: qml/Greeter/DelayedLockscreen.qml:68
440+#, qt-format
441+msgid "Please wait %1 minute and then try again…"
442+msgid_plural "Please wait %1 minutes and then try again…"
443+msgstr[0] "Espereu %1 minut i torneu-ho a intentar..."
444+msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
454445
455−#: qml/Greeter/NarrowView.qml:58
456−msgid ""
457−"If passphrase is entered incorrectly, your phone will conduct a factory "
458−"reset and all personal data will be deleted."
446+#: qml/Greeter/Greeter.qml:596
447+msgid "Try again"
459448msgstr ""
460−"Si la contrasenya s'introdueix de manera incorrecta, el telèfon es "
461−"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
462−"personals."
463449
464−#: qml/Greeter/NarrowView.qml:59
465−msgid ""
466−"If passcode is entered incorrectly, your phone will conduct a factory reset "
467−"and all personal data will be deleted."
450+#: qml/Greeter/LoginList.qml:70
451+msgid "Passphrase"
468452msgstr ""
469−"Si el codi d'accés s'introdueix de manera incorrecta, el telèfon es "
470−"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
471−"personals."
472453
473−#: qml/Greeter/NarrowView.qml:116
474−#, qt-format
475−msgid "Enter %1"
476−msgstr "Introduïu: %1"
477−
478−#: qml/Greeter/NarrowView.qml:117
479−msgid "Enter passphrase"
480−msgstr "Introduïu la contrasenya"
481−
482−#: qml/Greeter/NarrowView.qml:118
483−msgid "Enter passcode"
484−msgstr "Introduïu el codi d'accés"
454+#: qml/Greeter/LoginList.qml:71
455+msgid "Passcode"
456+msgstr ""
485457
486−#: qml/Greeter/NarrowView.qml:119
487−#, qt-format
488−msgid "Sorry, incorrect %1"
489−msgstr "Incorrecte (%1)"
458+#: qml/Greeter/LoginList.qml:98
459+msgid "Retry"
460+msgstr ""
490461
491−#: qml/Greeter/NarrowView.qml:120
492−msgid "Sorry, incorrect passphrase"
493−msgstr "La contrasenya no és correcta"
462+#: qml/Greeter/LoginList.qml:99
463+msgid "Log In"
464+msgstr ""
494465
495−#: qml/Greeter/NarrowView.qml:121
496−msgctxt "passphrase"
497−msgid "Please re-enter"
466+#: qml/Greeter/NarrowView.qml:252
467+msgid "Emergency"
498468msgstr ""
499469
500−#: qml/Greeter/NarrowView.qml:122
501−msgid "Sorry, incorrect passcode"
502−msgstr "El codi d'accés no és correcte"
470+#: qml/Greeter/SessionsList.qml:122
471+msgid "Select desktop environment"
472+msgstr ""
503473
504474#: qml/Notifications/NotificationMenuItemFactory.qml:124
505475msgid "Show password"
@@ -617,40 +587,54 @@ msgctxt "Button: Go back one page in the Wizard"
617587msgid "Back"
618588msgstr ""
619589
620−#: qml/Wizard/Pages/10-welcome.qml:27
590+#: qml/Wizard/Pages/10-welcome.qml:28
621591msgid "Language"
622592msgstr ""
623593
624−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
625−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
626−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
594+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
595+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
596+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
597+#: qml/Wizard/Pages/70-passwd-type.qml:145
627598#: qml/Wizard/Pages/75-report-check.qml:84
628−#: qml/Wizard/Pages/passcode-desktop.qml:124
629−#: qml/Wizard/Pages/password-set.qml:141
599+#: qml/Wizard/Pages/passcode-desktop.qml:142
600+#: qml/Wizard/Pages/password-set.qml:142
630601msgid "Next"
631602msgstr ""
632603
633−#: qml/Wizard/Pages/30-wifi.qml:29
604+#: qml/Wizard/Pages/20-keyboard.qml:31
605+msgid "Select Keyboard"
606+msgstr ""
607+
608+#: qml/Wizard/Pages/20-keyboard.qml:71
609+msgid "Keyboard language"
610+msgstr ""
611+
612+#: qml/Wizard/Pages/20-keyboard.qml:93
613+msgid "Keyboard layout"
614+msgstr ""
615+
616+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
617+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
618+#: qml/Wizard/Pages/sim.qml:101
619+msgid "Skip"
620+msgstr "Omet"
621+
622+#: qml/Wizard/Pages/30-wifi.qml:31
634623msgid "Connect to Wi‑Fi"
635624msgstr "Connecta't a la Wi-Fi"
636625
637−#: qml/Wizard/Pages/30-wifi.qml:130
626+#: qml/Wizard/Pages/30-wifi.qml:132
638627msgid "Connected"
639628msgstr ""
640629
641−#: qml/Wizard/Pages/30-wifi.qml:163
630+#: qml/Wizard/Pages/30-wifi.qml:165
642631msgid "Available Wi-Fi networks"
643632msgstr ""
644633
645−#: qml/Wizard/Pages/30-wifi.qml:164
634+#: qml/Wizard/Pages/30-wifi.qml:166
646635msgid "No available Wi-Fi networks"
647636msgstr ""
648637
649−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
650−#: qml/Wizard/Pages/sim.qml:101
651−msgid "Skip"
652−msgstr "Omet"
653−
654638#: qml/Wizard/Pages/40-location.qml:27
655639msgid "Location Services"
656640msgstr ""
@@ -683,11 +667,11 @@ msgstr ""
683667msgid "You can change it later in System Settings."
684668msgstr ""
685669
686−#: qml/Wizard/Pages/50-timezone.qml:29
670+#: qml/Wizard/Pages/50-timezone.qml:30
687671msgid "Time Zone"
688672msgstr ""
689673
690−#: qml/Wizard/Pages/50-timezone.qml:181
674+#: qml/Wizard/Pages/50-timezone.qml:182
691675msgid "Enter your city"
692676msgstr ""
693677
@@ -699,21 +683,21 @@ msgstr ""
699683msgid "Preferred Name"
700684msgstr ""
701685
702−#: qml/Wizard/Pages/70-passwd-type.qml:39
686+#: qml/Wizard/Pages/70-passwd-type.qml:40
703687msgid "Lock Screen"
704688msgstr ""
705689
706−#: qml/Wizard/Pages/70-passwd-type.qml:101
690+#: qml/Wizard/Pages/70-passwd-type.qml:102
707691msgctxt "Label: Type of security method"
708692msgid "Create new password"
709693msgstr ""
710694
711−#: qml/Wizard/Pages/70-passwd-type.qml:103
695+#: qml/Wizard/Pages/70-passwd-type.qml:104
712696msgctxt "Label: Type of security method"
713697msgid "Create passcode (numbers only)"
714698msgstr ""
715699
716−#: qml/Wizard/Pages/70-passwd-type.qml:105
700+#: qml/Wizard/Pages/70-passwd-type.qml:106
717701msgctxt "Label: Type of security method"
718702msgid "No lock code"
719703msgstr ""
@@ -734,6 +718,35 @@ msgstr ""
734718msgid "Privacy policy"
735719msgstr ""
736720
721+#: qml/Wizard/Pages/77-system-update.qml:28
722+msgid "Update Device"
723+msgstr ""
724+
725+#: qml/Wizard/Pages/77-system-update.qml:55
726+msgid ""
727+"There is a system update available and ready to install. Afterwards, the "
728+"device will automatically restart."
729+msgstr ""
730+
731+#: qml/Wizard/Pages/77-system-update.qml:76
732+msgctxt "string identifying name of the update"
733+msgid "Ubuntu system"
734+msgstr ""
735+
736+#: qml/Wizard/Pages/77-system-update.qml:83
737+#, qt-format
738+msgctxt "version of the system update"
739+msgid "Version %1"
740+msgstr ""
741+
742+#: qml/Wizard/Pages/77-system-update.qml:102
743+msgid "This could take a few minutes..."
744+msgstr ""
745+
746+#: qml/Wizard/Pages/77-system-update.qml:116
747+msgid "Install and restart now"
748+msgstr ""
749+
737750#: qml/Wizard/Pages/80-finished.qml:89
738751msgid "Welcome to Ubuntu"
739752msgstr ""
@@ -777,7 +790,7 @@ msgid "Service Terms"
777790msgstr ""
778791
779792#: qml/Wizard/Pages/passcode-confirm.qml:43
780−#: qml/Wizard/Pages/passcode-desktop.qml:80
793+#: qml/Wizard/Pages/passcode-desktop.qml:97
781794msgid "Confirm passcode"
782795msgstr "Confirmeu el codi d'accés"
783796
@@ -790,28 +803,28 @@ msgctxt "Enter the passcode again"
790803msgid "Please re-enter."
791804msgstr ""
792805
793−#: qml/Wizard/Pages/passcode-desktop.qml:30
806+#: qml/Wizard/Pages/passcode-desktop.qml:31
794807msgid "Lock Screen Passcode"
795808msgstr ""
796809
797−#: qml/Wizard/Pages/passcode-desktop.qml:56
810+#: qml/Wizard/Pages/passcode-desktop.qml:61
798811msgid "Enter 4 numbers to setup your passcode"
799812msgstr ""
800813
801−#: qml/Wizard/Pages/passcode-desktop.qml:65
814+#: qml/Wizard/Pages/passcode-desktop.qml:77
802815#: qml/Wizard/Pages/passcode-set.qml:54
803816msgid "Choose passcode"
804817msgstr ""
805818
806−#: qml/Wizard/Pages/passcode-desktop.qml:105
819+#: qml/Wizard/Pages/passcode-desktop.qml:127
807820msgid "Passcode too short"
808821msgstr ""
809822
810−#: qml/Wizard/Pages/passcode-desktop.qml:107
823+#: qml/Wizard/Pages/passcode-desktop.qml:129
811824msgid "Passcodes match"
812825msgstr ""
813826
814−#: qml/Wizard/Pages/passcode-desktop.qml:109
827+#: qml/Wizard/Pages/passcode-desktop.qml:131
815828msgid "Passcodes do not match"
816829msgstr ""
817830
@@ -819,19 +832,19 @@ msgstr ""
819832msgid "Passcode must be 4 characters long"
820833msgstr ""
821834
822−#: qml/Wizard/Pages/password-set.qml:30
835+#: qml/Wizard/Pages/password-set.qml:31
823836msgid "Lock Screen Password"
824837msgstr ""
825838
826−#: qml/Wizard/Pages/password-set.qml:61
839+#: qml/Wizard/Pages/password-set.qml:62
827840msgid "Enter at least 8 characters"
828841msgstr ""
829842
830−#: qml/Wizard/Pages/password-set.qml:73
843+#: qml/Wizard/Pages/password-set.qml:74
831844msgid "Choose password"
832845msgstr ""
833846
834−#: qml/Wizard/Pages/password-set.qml:103
847+#: qml/Wizard/Pages/password-set.qml:104
835848msgid "Confirm password"
836849msgstr ""
837850
@@ -860,26 +873,30 @@ msgid "To proceed with no SIM tap Skip."
860873msgstr ""
861874
862875#: qml/Wizard/PasswordMeter.qml:87
863−msgid "Passwords match"
876+msgid "Password too short"
864877msgstr ""
865878
866879#: qml/Wizard/PasswordMeter.qml:89
880+msgid "Passwords match"
881+msgstr ""
882+
883+#: qml/Wizard/PasswordMeter.qml:91
867884msgid "Passwords do not match"
868885msgstr ""
869886
870−#: qml/Wizard/PasswordMeter.qml:93
887+#: qml/Wizard/PasswordMeter.qml:95
871888msgid "Strong password"
872889msgstr ""
873890
874−#: qml/Wizard/PasswordMeter.qml:95
891+#: qml/Wizard/PasswordMeter.qml:97
875892msgid "Fair password"
876893msgstr ""
877894
878−#: qml/Wizard/PasswordMeter.qml:97
895+#: qml/Wizard/PasswordMeter.qml:99
879896msgid "Weak password"
880897msgstr ""
881898
882−#: qml/Wizard/PasswordMeter.qml:99
899+#: qml/Wizard/PasswordMeter.qml:101
883900msgid "Very weak password"
884901msgstr ""
885902
@@ -982,9 +999,54 @@ msgstr ""
982999#~ msgid "Roaming"
9831000#~ msgstr "Itinerància"
9841001
1002+#~ msgid "Enter passphrase"
1003+#~ msgstr "Introduïu la contrasenya"
1004+
1005+#~ msgid "Sorry, incorrect passphrase"
1006+#~ msgstr "La contrasenya no és correcta"
1007+
9851008#~ msgid "Please re-enter"
9861009#~ msgstr "Torneu-ho a introduir"
9871010
1011+#~ msgid "Enter passcode"
1012+#~ msgstr "Introduïu el codi d'accés"
1013+
1014+#~ msgid "Sorry, incorrect passcode"
1015+#~ msgstr "El codi d'accés no és correcte"
1016+
1017+#, qt-format
1018+#~ msgid "Enter %1"
1019+#~ msgstr "Introduïu: %1"
1020+
1021+#, qt-format
1022+#~ msgid "Sorry, incorrect %1"
1023+#~ msgstr "Incorrecte (%1)"
1024+
1025+#~ msgid "Sorry, incorrect passphrase."
1026+#~ msgstr "La contrasenya és incorrecta"
1027+
1028+#~ msgid "Sorry, incorrect passcode."
1029+#~ msgstr "El codi d'accés no és correcte"
1030+
1031+#~ msgid "This will be your last attempt."
1032+#~ msgstr "Este serà el darrer intent."
1033+
1034+#~ msgid ""
1035+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1036+#~ "reset and all personal data will be deleted."
1037+#~ msgstr ""
1038+#~ "Si la contrasenya s'introdueix de manera incorrecta, el telèfon es "
1039+#~ "reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
1040+#~ "personals."
1041+
1042+#~ msgid ""
1043+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1044+#~ "and all personal data will be deleted."
1045+#~ msgstr ""
1046+#~ "Si el codi d'accés s'introdueix de manera incorrecta, el telèfon es "
1047+#~ "reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
1048+#~ "personals."
1049+
9881050#~ msgid "Hi!"
9891051#~ msgstr "Hola!"
9901052
po/ce.po+168−145
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,10 +15,10 @@ 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-06-19 05:54+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr ""
2424
@@ -35,84 +35,66 @@ msgstr ""
3535msgid "Unpin shortcut"
3636msgstr ""
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr ""
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−
46−#: qml/Components/DelayedLockscreen.qml:65
47−msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr ""
49−
50−#: qml/Components/DelayedLockscreen.qml:74
51−#, qt-format
52−msgid "Please wait %1 minute and then try again…"
53−msgid_plural "Please wait %1 minutes and then try again…"
54−msgstr[0] ""
55−msgstr[1] ""
56−
57−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
5839msgctxt "Title: Lock/Log out dialog"
5940msgid "Log out"
6041msgstr ""
6142
62−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6344msgid "Are you sure you want to log out?"
6445msgstr ""
6546
66−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
6748msgctxt "Button: Lock the system"
6849msgid "Lock"
6950msgstr ""
7051
71−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7253msgctxt "Button: Log out from the system"
7354msgid "Log Out"
7455msgstr ""
7556
76−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
7860#: qml/Wizard/Pages/passcode-set.qml:32
7961msgid "Cancel"
8062msgstr ""
8163
82−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8365msgctxt "Title: Reboot dialog"
8466msgid "Reboot"
8567msgstr ""
8668
87−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
8870msgid "Are you sure you want to reboot?"
8971msgstr ""
9072
91−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9274msgid "No"
9375msgstr ""
9476
95−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
9678msgid "Yes"
9779msgstr ""
9880
99−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10082msgctxt "Title: Power off/Restart dialog"
10183msgid "Power"
10284msgstr ""
10385
104−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10587msgid ""
10688"Are you sure you would like\n"
10789"to power off?"
10890msgstr ""
10991
110−#: qml/Components/Dialogs.qml:202
92+#: qml/Components/Dialogs.qml:205
11193msgctxt "Button: Power off the system"
11294msgid "Power off"
11395msgstr ""
11496
115−#: qml/Components/Dialogs.qml:211
97+#: qml/Components/Dialogs.qml:214
11698msgctxt "Button: Restart the system"
11799msgid "Restart"
118100msgstr ""
@@ -277,18 +259,28 @@ msgstr ""
277259msgid "Closes the current window."
278260msgstr ""
279261
280−#: qml/Components/Lockscreen.qml:231
262+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
281263msgid "Return to Call"
282264msgstr ""
283265
284−#: qml/Components/Lockscreen.qml:231
266+#: qml/Components/Lockscreen.qml:212
285267msgid "Emergency Call"
286268msgstr ""
287269
288−#: qml/Components/Lockscreen.qml:263
270+#: qml/Components/Lockscreen.qml:244
289271msgid "OK"
290272msgstr ""
291273
274+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
275+#, qt-format
276+msgid "%1:%2:%3"
277+msgstr ""
278+
279+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
280+#, qt-format
281+msgid "%1:%2"
282+msgstr ""
283+
292284#: qml/Components/ModeSwitchWarningDialog.qml:32
293285msgid "Apps may have unsaved data:"
294286msgstr ""
@@ -315,55 +307,59 @@ msgstr ""
315307msgid "Close all"
316308msgstr ""
317309
318−#: qml/Dash/DashPageHeader.qml:333
310+#: qml/Components/SharingPicker.qml:54
311+msgid "Preview Share Item"
312+msgstr ""
313+
314+#: qml/Dash/DashPageHeader.qml:362
319315msgctxt "Button: Open the Ubuntu Store"
320316msgid "Store"
321317msgstr ""
322318
323−#: qml/Dash/DashPageHeader.qml:340
319+#: qml/Dash/DashPageHeader.qml:369
324320msgctxt "Button: Start a search in the current dash scope"
325321msgid "Search"
326322msgstr ""
327323
328−#: qml/Dash/DashPageHeader.qml:350
324+#: qml/Dash/DashPageHeader.qml:379
329325msgctxt "Button: Show the current dash scope settings"
330326msgid "Settings"
331327msgstr ""
332328
333−#: qml/Dash/DashPageHeader.qml:357
329+#: qml/Dash/DashPageHeader.qml:386
334330msgid "Remove from Favorites"
335331msgstr ""
336332
337−#: qml/Dash/DashPageHeader.qml:357
333+#: qml/Dash/DashPageHeader.qml:386
338334msgid "Add to Favorites"
339335msgstr ""
340336
341−#: qml/Dash/FiltersPopover.qml:60
337+#: qml/Dash/FiltersPopover.qml:61
342338msgid "Refine your results"
343339msgstr ""
344340
345−#: qml/Dash/FiltersPopover.qml:69
341+#: qml/Dash/FiltersPopover.qml:70
346342msgid "Reset"
347343msgstr ""
348344
349−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
345+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
350346msgid "Show less"
351347msgstr ""
352348
353−#: qml/Dash/GenericScopeView.qml:580
349+#: qml/Dash/GenericScopeView.qml:586
354350msgid "Show all"
355351msgstr ""
356352
357−#: qml/Dash/GenericScopeView.qml:637
353+#: qml/Dash/GenericScopeView.qml:643
358354msgctxt "Label: Hint for dash search line edit"
359355msgid "Search"
360356msgstr ""
361357
362−#: qml/Dash/PageHeaderExtraPanel.qml:56
358+#: qml/Dash/PageHeaderExtraPanel.qml:57
363359msgid "Recent Searches"
364360msgstr ""
365361
366−#: qml/Dash/PageHeaderExtraPanel.qml:67
362+#: qml/Dash/PageHeaderExtraPanel.qml:68
367363msgid "Clear All"
368364msgstr ""
369365
@@ -375,28 +371,24 @@ msgstr ""
375371msgid "Less..."
376372msgstr ""
377373
378−#: qml/Dash/Previews/PreviewCommentInput.qml:68
379−#: qml/Dash/Previews/PreviewRatingInput.qml:175
374+#: qml/Dash/Previews/PreviewCommentInput.qml:83
375+#: qml/Dash/Previews/PreviewRatingInput.qml:201
380376msgid "Send"
381377msgstr ""
382378
383−#: qml/Dash/Previews/PreviewRatingInput.qml:82
379+#: qml/Dash/Previews/PreviewRatingInput.qml:108
384380msgid "Rate this"
385381msgstr ""
386382
387−#: qml/Dash/Previews/PreviewRatingInput.qml:157
383+#: qml/Dash/Previews/PreviewRatingInput.qml:183
388384msgid "Add a review"
389385msgstr ""
390386
391−#: qml/Dash/Previews/PreviewSharing.qml:66
392−msgid "Preview Share Item"
393−msgstr ""
394−
395−#: qml/Dash/PullToRefreshScopeStyle.qml:55
387+#: qml/Dash/PullToRefreshScopeStyle.qml:56
396388msgid "Pull to refresh…"
397389msgstr ""
398390
399−#: qml/Dash/PullToRefreshScopeStyle.qml:60
391+#: qml/Dash/PullToRefreshScopeStyle.qml:61
400392msgid "Release to refresh…"
401393msgstr ""
402394
@@ -404,15 +396,15 @@ msgstr ""
404396msgid "Enable location data"
405397msgstr ""
406398
407−#: qml/Dash/ScopesList.qml:55
399+#: qml/Dash/ScopesList.qml:57
408400msgid "Manage"
409401msgstr ""
410402
411−#: qml/Dash/ScopesList.qml:101
403+#: qml/Dash/ScopesList.qml:104
412404msgid "Home"
413405msgstr ""
414406
415−#: qml/Dash/ScopesList.qml:102
407+#: qml/Dash/ScopesList.qml:105
416408msgid "Also installed"
417409msgstr ""
418410
@@ -422,71 +414,55 @@ msgid ""
422414"touch pad to interact with the pointer."
423415msgstr ""
424416
425−#: qml/Greeter/CoverPage.qml:119
417+#: qml/Greeter/CoverPage.qml:127
426418msgid "Unlock"
427419msgstr ""
428420
429−#: qml/Greeter/LoginList.qml:259
430−msgid "Retry"
431−msgstr ""
432−
433−#: qml/Greeter/LoginList.qml:260
434−msgid "Log In"
435−msgstr ""
436−
437−#: qml/Greeter/NarrowView.qml:54
438−msgid "Sorry, incorrect passphrase."
439−msgstr ""
440−
441−#: qml/Greeter/NarrowView.qml:55
442−msgid "Sorry, incorrect passcode."
443−msgstr ""
444−
445−#: qml/Greeter/NarrowView.qml:56
446−msgid "This will be your last attempt."
421+#: qml/Greeter/DelayedLockscreen.qml:43
422+msgid "Device Locked"
447423msgstr ""
448424
449−#: qml/Greeter/NarrowView.qml:58
450−msgid ""
451−"If passphrase is entered incorrectly, your phone will conduct a factory "
452−"reset and all personal data will be deleted."
425+#: qml/Greeter/DelayedLockscreen.qml:58
426+msgid "You have been locked out due to too many failed passphrase attempts."
453427msgstr ""
454428
455−#: qml/Greeter/NarrowView.qml:59
456−msgid ""
457−"If passcode is entered incorrectly, your phone will conduct a factory reset "
458−"and all personal data will be deleted."
429+#: qml/Greeter/DelayedLockscreen.qml:59
430+msgid "You have been locked out due to too many failed passcode attempts."
459431msgstr ""
460432
461−#: qml/Greeter/NarrowView.qml:116
433+#: qml/Greeter/DelayedLockscreen.qml:68
462434#, qt-format
463−msgid "Enter %1"
435+msgid "Please wait %1 minute and then try again…"
436+msgid_plural "Please wait %1 minutes and then try again…"
437+msgstr[0] ""
438+msgstr[1] ""
439+
440+#: qml/Greeter/Greeter.qml:596
441+msgid "Try again"
464442msgstr ""
465443
466−#: qml/Greeter/NarrowView.qml:117
467−msgid "Enter passphrase"
444+#: qml/Greeter/LoginList.qml:70
445+msgid "Passphrase"
468446msgstr ""
469447
470−#: qml/Greeter/NarrowView.qml:118
471−msgid "Enter passcode"
448+#: qml/Greeter/LoginList.qml:71
449+msgid "Passcode"
472450msgstr ""
473451
474−#: qml/Greeter/NarrowView.qml:119
475−#, qt-format
476−msgid "Sorry, incorrect %1"
452+#: qml/Greeter/LoginList.qml:98
453+msgid "Retry"
477454msgstr ""
478455
479−#: qml/Greeter/NarrowView.qml:120
480−msgid "Sorry, incorrect passphrase"
456+#: qml/Greeter/LoginList.qml:99
457+msgid "Log In"
481458msgstr ""
482459
483−#: qml/Greeter/NarrowView.qml:121
484−msgctxt "passphrase"
485−msgid "Please re-enter"
460+#: qml/Greeter/NarrowView.qml:252
461+msgid "Emergency"
486462msgstr ""
487463
488−#: qml/Greeter/NarrowView.qml:122
489−msgid "Sorry, incorrect passcode"
464+#: qml/Greeter/SessionsList.qml:122
465+msgid "Select desktop environment"
490466msgstr ""
491467
492468#: qml/Notifications/NotificationMenuItemFactory.qml:124
@@ -605,40 +581,54 @@ msgctxt "Button: Go back one page in the Wizard"
605581msgid "Back"
606582msgstr ""
607583
608−#: qml/Wizard/Pages/10-welcome.qml:27
584+#: qml/Wizard/Pages/10-welcome.qml:28
609585msgid "Language"
610586msgstr ""
611587
612−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
613−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
614−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
588+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
589+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
590+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
591+#: qml/Wizard/Pages/70-passwd-type.qml:145
615592#: qml/Wizard/Pages/75-report-check.qml:84
616−#: qml/Wizard/Pages/passcode-desktop.qml:124
617−#: qml/Wizard/Pages/password-set.qml:141
593+#: qml/Wizard/Pages/passcode-desktop.qml:142
594+#: qml/Wizard/Pages/password-set.qml:142
618595msgid "Next"
619596msgstr ""
620597
621−#: qml/Wizard/Pages/30-wifi.qml:29
598+#: qml/Wizard/Pages/20-keyboard.qml:31
599+msgid "Select Keyboard"
600+msgstr ""
601+
602+#: qml/Wizard/Pages/20-keyboard.qml:71
603+msgid "Keyboard language"
604+msgstr ""
605+
606+#: qml/Wizard/Pages/20-keyboard.qml:93
607+msgid "Keyboard layout"
608+msgstr ""
609+
610+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
611+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
612+#: qml/Wizard/Pages/sim.qml:101
613+msgid "Skip"
614+msgstr ""
615+
616+#: qml/Wizard/Pages/30-wifi.qml:31
622617msgid "Connect to Wi‑Fi"
623618msgstr ""
624619
625−#: qml/Wizard/Pages/30-wifi.qml:130
620+#: qml/Wizard/Pages/30-wifi.qml:132
626621msgid "Connected"
627622msgstr ""
628623
629−#: qml/Wizard/Pages/30-wifi.qml:163
624+#: qml/Wizard/Pages/30-wifi.qml:165
630625msgid "Available Wi-Fi networks"
631626msgstr ""
632627
633−#: qml/Wizard/Pages/30-wifi.qml:164
628+#: qml/Wizard/Pages/30-wifi.qml:166
634629msgid "No available Wi-Fi networks"
635630msgstr ""
636631
637−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
638−#: qml/Wizard/Pages/sim.qml:101
639−msgid "Skip"
640−msgstr ""
641−
642632#: qml/Wizard/Pages/40-location.qml:27
643633msgid "Location Services"
644634msgstr ""
@@ -671,11 +661,11 @@ msgstr ""
671661msgid "You can change it later in System Settings."
672662msgstr ""
673663
674−#: qml/Wizard/Pages/50-timezone.qml:29
664+#: qml/Wizard/Pages/50-timezone.qml:30
675665msgid "Time Zone"
676666msgstr ""
677667
678−#: qml/Wizard/Pages/50-timezone.qml:181
668+#: qml/Wizard/Pages/50-timezone.qml:182
679669msgid "Enter your city"
680670msgstr ""
681671
@@ -687,21 +677,21 @@ msgstr ""
687677msgid "Preferred Name"
688678msgstr ""
689679
690−#: qml/Wizard/Pages/70-passwd-type.qml:39
680+#: qml/Wizard/Pages/70-passwd-type.qml:40
691681msgid "Lock Screen"
692682msgstr ""
693683
694−#: qml/Wizard/Pages/70-passwd-type.qml:101
684+#: qml/Wizard/Pages/70-passwd-type.qml:102
695685msgctxt "Label: Type of security method"
696686msgid "Create new password"
697687msgstr ""
698688
699−#: qml/Wizard/Pages/70-passwd-type.qml:103
689+#: qml/Wizard/Pages/70-passwd-type.qml:104
700690msgctxt "Label: Type of security method"
701691msgid "Create passcode (numbers only)"
702692msgstr ""
703693
704−#: qml/Wizard/Pages/70-passwd-type.qml:105
694+#: qml/Wizard/Pages/70-passwd-type.qml:106
705695msgctxt "Label: Type of security method"
706696msgid "No lock code"
707697msgstr ""
@@ -722,6 +712,35 @@ msgstr ""
722712msgid "Privacy policy"
723713msgstr ""
724714
715+#: qml/Wizard/Pages/77-system-update.qml:28
716+msgid "Update Device"
717+msgstr ""
718+
719+#: qml/Wizard/Pages/77-system-update.qml:55
720+msgid ""
721+"There is a system update available and ready to install. Afterwards, the "
722+"device will automatically restart."
723+msgstr ""
724+
725+#: qml/Wizard/Pages/77-system-update.qml:76
726+msgctxt "string identifying name of the update"
727+msgid "Ubuntu system"
728+msgstr ""
729+
730+#: qml/Wizard/Pages/77-system-update.qml:83
731+#, qt-format
732+msgctxt "version of the system update"
733+msgid "Version %1"
734+msgstr ""
735+
736+#: qml/Wizard/Pages/77-system-update.qml:102
737+msgid "This could take a few minutes..."
738+msgstr ""
739+
740+#: qml/Wizard/Pages/77-system-update.qml:116
741+msgid "Install and restart now"
742+msgstr ""
743+
725744#: qml/Wizard/Pages/80-finished.qml:89
726745msgid "Welcome to Ubuntu"
727746msgstr ""
@@ -765,7 +784,7 @@ msgid "Service Terms"
765784msgstr ""
766785
767786#: qml/Wizard/Pages/passcode-confirm.qml:43
768−#: qml/Wizard/Pages/passcode-desktop.qml:80
787+#: qml/Wizard/Pages/passcode-desktop.qml:97
769788msgid "Confirm passcode"
770789msgstr ""
771790
@@ -778,28 +797,28 @@ msgctxt "Enter the passcode again"
778797msgid "Please re-enter."
779798msgstr ""
780799
781−#: qml/Wizard/Pages/passcode-desktop.qml:30
800+#: qml/Wizard/Pages/passcode-desktop.qml:31
782801msgid "Lock Screen Passcode"
783802msgstr ""
784803
785−#: qml/Wizard/Pages/passcode-desktop.qml:56
804+#: qml/Wizard/Pages/passcode-desktop.qml:61
786805msgid "Enter 4 numbers to setup your passcode"
787806msgstr ""
788807
789−#: qml/Wizard/Pages/passcode-desktop.qml:65
808+#: qml/Wizard/Pages/passcode-desktop.qml:77
790809#: qml/Wizard/Pages/passcode-set.qml:54
791810msgid "Choose passcode"
792811msgstr ""
793812
794−#: qml/Wizard/Pages/passcode-desktop.qml:105
813+#: qml/Wizard/Pages/passcode-desktop.qml:127
795814msgid "Passcode too short"
796815msgstr ""
797816
798−#: qml/Wizard/Pages/passcode-desktop.qml:107
817+#: qml/Wizard/Pages/passcode-desktop.qml:129
799818msgid "Passcodes match"
800819msgstr ""
801820
802−#: qml/Wizard/Pages/passcode-desktop.qml:109
821+#: qml/Wizard/Pages/passcode-desktop.qml:131
803822msgid "Passcodes do not match"
804823msgstr ""
805824
@@ -807,19 +826,19 @@ msgstr ""
807826msgid "Passcode must be 4 characters long"
808827msgstr ""
809828
810−#: qml/Wizard/Pages/password-set.qml:30
829+#: qml/Wizard/Pages/password-set.qml:31
811830msgid "Lock Screen Password"
812831msgstr ""
813832
814−#: qml/Wizard/Pages/password-set.qml:61
833+#: qml/Wizard/Pages/password-set.qml:62
815834msgid "Enter at least 8 characters"
816835msgstr ""
817836
818−#: qml/Wizard/Pages/password-set.qml:73
837+#: qml/Wizard/Pages/password-set.qml:74
819838msgid "Choose password"
820839msgstr ""
821840
822−#: qml/Wizard/Pages/password-set.qml:103
841+#: qml/Wizard/Pages/password-set.qml:104
823842msgid "Confirm password"
824843msgstr ""
825844
@@ -848,25 +867,29 @@ msgid "To proceed with no SIM tap Skip."
848867msgstr ""
849868
850869#: qml/Wizard/PasswordMeter.qml:87
851−msgid "Passwords match"
870+msgid "Password too short"
852871msgstr ""
853872
854873#: qml/Wizard/PasswordMeter.qml:89
874+msgid "Passwords match"
875+msgstr ""
876+
877+#: qml/Wizard/PasswordMeter.qml:91
855878msgid "Passwords do not match"
856879msgstr ""
857880
858−#: qml/Wizard/PasswordMeter.qml:93
881+#: qml/Wizard/PasswordMeter.qml:95
859882msgid "Strong password"
860883msgstr ""
861884
862−#: qml/Wizard/PasswordMeter.qml:95
885+#: qml/Wizard/PasswordMeter.qml:97
863886msgid "Fair password"
864887msgstr ""
865888
866−#: qml/Wizard/PasswordMeter.qml:97
889+#: qml/Wizard/PasswordMeter.qml:99
867890msgid "Weak password"
868891msgstr ""
869892
870−#: qml/Wizard/PasswordMeter.qml:99
893+#: qml/Wizard/PasswordMeter.qml:101
871894msgid "Very weak password"
872895msgstr ""
po/ckb.po+168−145
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,10 +15,10 @@ 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-06-19 05:55+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:05+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr ""
2424
@@ -35,84 +35,66 @@ msgstr ""
3535msgid "Unpin shortcut"
3636msgstr ""
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr ""
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−
46−#: qml/Components/DelayedLockscreen.qml:65
47−msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr ""
49−
50−#: qml/Components/DelayedLockscreen.qml:74
51−#, qt-format
52−msgid "Please wait %1 minute and then try again…"
53−msgid_plural "Please wait %1 minutes and then try again…"
54−msgstr[0] ""
55−msgstr[1] ""
56−
57−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
5839msgctxt "Title: Lock/Log out dialog"
5940msgid "Log out"
6041msgstr ""
6142
62−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6344msgid "Are you sure you want to log out?"
6445msgstr ""
6546
66−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
6748msgctxt "Button: Lock the system"
6849msgid "Lock"
6950msgstr ""
7051
71−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7253msgctxt "Button: Log out from the system"
7354msgid "Log Out"
7455msgstr ""
7556
76−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
77−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
7860#: qml/Wizard/Pages/passcode-set.qml:32
7961msgid "Cancel"
8062msgstr ""
8163
82−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8365msgctxt "Title: Reboot dialog"
8466msgid "Reboot"
8567msgstr ""
8668
87−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
8870msgid "Are you sure you want to reboot?"
8971msgstr ""
9072
91−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9274msgid "No"
9375msgstr ""
9476
95−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
9678msgid "Yes"
9779msgstr ""
9880
99−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10082msgctxt "Title: Power off/Restart dialog"
10183msgid "Power"
10284msgstr ""
10385
104−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10587msgid ""
10688"Are you sure you would like\n"
10789"to power off?"
10890msgstr ""
10991
110−#: qml/Components/Dialogs.qml:202
92+#: qml/Components/Dialogs.qml:205
11193msgctxt "Button: Power off the system"
11294msgid "Power off"
11395msgstr ""
11496
115−#: qml/Components/Dialogs.qml:211
97+#: qml/Components/Dialogs.qml:214
11698msgctxt "Button: Restart the system"
11799msgid "Restart"
118100msgstr ""
@@ -277,18 +259,28 @@ msgstr ""
277259msgid "Closes the current window."
278260msgstr ""
279261
280−#: qml/Components/Lockscreen.qml:231
262+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
281263msgid "Return to Call"
282264msgstr ""
283265
284−#: qml/Components/Lockscreen.qml:231
266+#: qml/Components/Lockscreen.qml:212
285267msgid "Emergency Call"
286268msgstr "هێڵی فریاگوزاری"
287269
288−#: qml/Components/Lockscreen.qml:263
270+#: qml/Components/Lockscreen.qml:244
289271msgid "OK"
290272msgstr ""
291273
274+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
275+#, qt-format
276+msgid "%1:%2:%3"
277+msgstr ""
278+
279+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
280+#, qt-format
281+msgid "%1:%2"
282+msgstr ""
283+
292284#: qml/Components/ModeSwitchWarningDialog.qml:32
293285msgid "Apps may have unsaved data:"
294286msgstr ""
@@ -315,55 +307,59 @@ msgstr ""
315307msgid "Close all"
316308msgstr ""
317309
318−#: qml/Dash/DashPageHeader.qml:333
310+#: qml/Components/SharingPicker.qml:54
311+msgid "Preview Share Item"
312+msgstr ""
313+
314+#: qml/Dash/DashPageHeader.qml:362
319315msgctxt "Button: Open the Ubuntu Store"
320316msgid "Store"
321317msgstr ""
322318
323−#: qml/Dash/DashPageHeader.qml:340
319+#: qml/Dash/DashPageHeader.qml:369
324320msgctxt "Button: Start a search in the current dash scope"
325321msgid "Search"
326322msgstr ""
327323
328−#: qml/Dash/DashPageHeader.qml:350
324+#: qml/Dash/DashPageHeader.qml:379
329325msgctxt "Button: Show the current dash scope settings"
330326msgid "Settings"
331327msgstr ""
332328
333−#: qml/Dash/DashPageHeader.qml:357
329+#: qml/Dash/DashPageHeader.qml:386
334330msgid "Remove from Favorites"
335331msgstr ""
336332
337−#: qml/Dash/DashPageHeader.qml:357
333+#: qml/Dash/DashPageHeader.qml:386
338334msgid "Add to Favorites"
339335msgstr ""
340336
341−#: qml/Dash/FiltersPopover.qml:60
337+#: qml/Dash/FiltersPopover.qml:61
342338msgid "Refine your results"
343339msgstr ""
344340
345−#: qml/Dash/FiltersPopover.qml:69
341+#: qml/Dash/FiltersPopover.qml:70
346342msgid "Reset"
347343msgstr ""
348344
349−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
345+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
350346msgid "Show less"
351347msgstr ""
352348
353−#: qml/Dash/GenericScopeView.qml:580
349+#: qml/Dash/GenericScopeView.qml:586
354350msgid "Show all"
355351msgstr ""
356352
357−#: qml/Dash/GenericScopeView.qml:637
353+#: qml/Dash/GenericScopeView.qml:643
358354msgctxt "Label: Hint for dash search line edit"
359355msgid "Search"
360356msgstr ""
361357
362−#: qml/Dash/PageHeaderExtraPanel.qml:56
358+#: qml/Dash/PageHeaderExtraPanel.qml:57
363359msgid "Recent Searches"
364360msgstr ""
365361
366−#: qml/Dash/PageHeaderExtraPanel.qml:67
362+#: qml/Dash/PageHeaderExtraPanel.qml:68
367363msgid "Clear All"
368364msgstr ""
369365
@@ -375,28 +371,24 @@ msgstr ""
375371msgid "Less..."
376372msgstr ""
377373
378−#: qml/Dash/Previews/PreviewCommentInput.qml:68
379−#: qml/Dash/Previews/PreviewRatingInput.qml:175
374+#: qml/Dash/Previews/PreviewCommentInput.qml:83
375+#: qml/Dash/Previews/PreviewRatingInput.qml:201
380376msgid "Send"
381377msgstr "ناردن"
382378
383−#: qml/Dash/Previews/PreviewRatingInput.qml:82
379+#: qml/Dash/Previews/PreviewRatingInput.qml:108
384380msgid "Rate this"
385381msgstr "پلە دابنی بۆی"
386382
387−#: qml/Dash/Previews/PreviewRatingInput.qml:157
383+#: qml/Dash/Previews/PreviewRatingInput.qml:183
388384msgid "Add a review"
389385msgstr "پێداچوونەوە زۆر بکە"
390386
391−#: qml/Dash/Previews/PreviewSharing.qml:66
392−msgid "Preview Share Item"
393−msgstr ""
394−
395−#: qml/Dash/PullToRefreshScopeStyle.qml:55
387+#: qml/Dash/PullToRefreshScopeStyle.qml:56
396388msgid "Pull to refresh…"
397389msgstr ""
398390
399−#: qml/Dash/PullToRefreshScopeStyle.qml:60
391+#: qml/Dash/PullToRefreshScopeStyle.qml:61
400392msgid "Release to refresh…"
401393msgstr ""
402394
@@ -404,15 +396,15 @@ msgstr ""
404396msgid "Enable location data"
405397msgstr ""
406398
407−#: qml/Dash/ScopesList.qml:55
399+#: qml/Dash/ScopesList.qml:57
408400msgid "Manage"
409401msgstr ""
410402
411−#: qml/Dash/ScopesList.qml:101
403+#: qml/Dash/ScopesList.qml:104
412404msgid "Home"
413405msgstr ""
414406
415−#: qml/Dash/ScopesList.qml:102
407+#: qml/Dash/ScopesList.qml:105
416408msgid "Also installed"
417409msgstr ""
418410
@@ -422,71 +414,55 @@ msgid ""
422414"touch pad to interact with the pointer."
423415msgstr ""
424416
425−#: qml/Greeter/CoverPage.qml:119
417+#: qml/Greeter/CoverPage.qml:127
426418msgid "Unlock"
427419msgstr ""
428420
429−#: qml/Greeter/LoginList.qml:259
430−msgid "Retry"
431−msgstr ""
432−
433−#: qml/Greeter/LoginList.qml:260
434−msgid "Log In"
435−msgstr ""
436−
437−#: qml/Greeter/NarrowView.qml:54
438−msgid "Sorry, incorrect passphrase."
439−msgstr ""
440−
441−#: qml/Greeter/NarrowView.qml:55
442−msgid "Sorry, incorrect passcode."
443−msgstr ""
444−
445−#: qml/Greeter/NarrowView.qml:56
446−msgid "This will be your last attempt."
421+#: qml/Greeter/DelayedLockscreen.qml:43
422+msgid "Device Locked"
447423msgstr ""
448424
449−#: qml/Greeter/NarrowView.qml:58
450−msgid ""
451−"If passphrase is entered incorrectly, your phone will conduct a factory "
452−"reset and all personal data will be deleted."
425+#: qml/Greeter/DelayedLockscreen.qml:58
426+msgid "You have been locked out due to too many failed passphrase attempts."
453427msgstr ""
454428
455−#: qml/Greeter/NarrowView.qml:59
456−msgid ""
457−"If passcode is entered incorrectly, your phone will conduct a factory reset "
458−"and all personal data will be deleted."
429+#: qml/Greeter/DelayedLockscreen.qml:59
430+msgid "You have been locked out due to too many failed passcode attempts."
459431msgstr ""
460432
461−#: qml/Greeter/NarrowView.qml:116
433+#: qml/Greeter/DelayedLockscreen.qml:68
462434#, qt-format
463−msgid "Enter %1"
435+msgid "Please wait %1 minute and then try again…"
436+msgid_plural "Please wait %1 minutes and then try again…"
437+msgstr[0] ""
438+msgstr[1] ""
439+
440+#: qml/Greeter/Greeter.qml:596
441+msgid "Try again"
464442msgstr ""
465443
466−#: qml/Greeter/NarrowView.qml:117
467−msgid "Enter passphrase"
444+#: qml/Greeter/LoginList.qml:70
445+msgid "Passphrase"
468446msgstr ""
469447
470−#: qml/Greeter/NarrowView.qml:118
471−msgid "Enter passcode"
448+#: qml/Greeter/LoginList.qml:71
449+msgid "Passcode"
472450msgstr ""
473451
474−#: qml/Greeter/NarrowView.qml:119
475−#, qt-format
476−msgid "Sorry, incorrect %1"
452+#: qml/Greeter/LoginList.qml:98
453+msgid "Retry"
477454msgstr ""
478455
479−#: qml/Greeter/NarrowView.qml:120
480−msgid "Sorry, incorrect passphrase"
456+#: qml/Greeter/LoginList.qml:99
457+msgid "Log In"
481458msgstr ""
482459
483−#: qml/Greeter/NarrowView.qml:121
484−msgctxt "passphrase"
485−msgid "Please re-enter"
460+#: qml/Greeter/NarrowView.qml:252
461+msgid "Emergency"
486462msgstr ""
487463
488−#: qml/Greeter/NarrowView.qml:122
489−msgid "Sorry, incorrect passcode"
464+#: qml/Greeter/SessionsList.qml:122
465+msgid "Select desktop environment"
490466msgstr ""
491467
492468#: qml/Notifications/NotificationMenuItemFactory.qml:124
@@ -605,40 +581,54 @@ msgctxt "Button: Go back one page in the Wizard"
605581msgid "Back"
606582msgstr ""
607583
608−#: qml/Wizard/Pages/10-welcome.qml:27
584+#: qml/Wizard/Pages/10-welcome.qml:28
609585msgid "Language"
610586msgstr ""
611587
612−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
613−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
614−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
588+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
589+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
590+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
591+#: qml/Wizard/Pages/70-passwd-type.qml:145
615592#: qml/Wizard/Pages/75-report-check.qml:84
616−#: qml/Wizard/Pages/passcode-desktop.qml:124
617−#: qml/Wizard/Pages/password-set.qml:141
593+#: qml/Wizard/Pages/passcode-desktop.qml:142
594+#: qml/Wizard/Pages/password-set.qml:142
618595msgid "Next"
619596msgstr ""
620597
621−#: qml/Wizard/Pages/30-wifi.qml:29
598+#: qml/Wizard/Pages/20-keyboard.qml:31
599+msgid "Select Keyboard"
600+msgstr ""
601+
602+#: qml/Wizard/Pages/20-keyboard.qml:71
603+msgid "Keyboard language"
604+msgstr ""
605+
606+#: qml/Wizard/Pages/20-keyboard.qml:93
607+msgid "Keyboard layout"
608+msgstr ""
609+
610+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
611+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
612+#: qml/Wizard/Pages/sim.qml:101
613+msgid "Skip"
614+msgstr ""
615+
616+#: qml/Wizard/Pages/30-wifi.qml:31
622617msgid "Connect to Wi‑Fi"
623618msgstr ""
624619
625−#: qml/Wizard/Pages/30-wifi.qml:130
620+#: qml/Wizard/Pages/30-wifi.qml:132
626621msgid "Connected"
627622msgstr ""
628623
629−#: qml/Wizard/Pages/30-wifi.qml:163
624+#: qml/Wizard/Pages/30-wifi.qml:165
630625msgid "Available Wi-Fi networks"
631626msgstr ""
632627
633−#: qml/Wizard/Pages/30-wifi.qml:164
628+#: qml/Wizard/Pages/30-wifi.qml:166
634629msgid "No available Wi-Fi networks"
635630msgstr ""
636631
637−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
638−#: qml/Wizard/Pages/sim.qml:101
639−msgid "Skip"
640−msgstr ""
641−
642632#: qml/Wizard/Pages/40-location.qml:27
643633msgid "Location Services"
644634msgstr ""
@@ -671,11 +661,11 @@ msgstr ""
671661msgid "You can change it later in System Settings."
672662msgstr ""
673663
674−#: qml/Wizard/Pages/50-timezone.qml:29
664+#: qml/Wizard/Pages/50-timezone.qml:30
675665msgid "Time Zone"
676666msgstr ""
677667
678−#: qml/Wizard/Pages/50-timezone.qml:181
668+#: qml/Wizard/Pages/50-timezone.qml:182
679669msgid "Enter your city"
680670msgstr ""
681671
@@ -687,21 +677,21 @@ msgstr ""
687677msgid "Preferred Name"
688678msgstr ""
689679
690−#: qml/Wizard/Pages/70-passwd-type.qml:39
680+#: qml/Wizard/Pages/70-passwd-type.qml:40
691681msgid "Lock Screen"
692682msgstr ""
693683
694−#: qml/Wizard/Pages/70-passwd-type.qml:101
684+#: qml/Wizard/Pages/70-passwd-type.qml:102
695685msgctxt "Label: Type of security method"
696686msgid "Create new password"
697687msgstr ""
698688
699−#: qml/Wizard/Pages/70-passwd-type.qml:103
689+#: qml/Wizard/Pages/70-passwd-type.qml:104
700690msgctxt "Label: Type of security method"
701691msgid "Create passcode (numbers only)"
702692msgstr ""
703693
704−#: qml/Wizard/Pages/70-passwd-type.qml:105
694+#: qml/Wizard/Pages/70-passwd-type.qml:106
705695msgctxt "Label: Type of security method"
706696msgid "No lock code"
707697msgstr ""
@@ -722,6 +712,35 @@ msgstr ""
722712msgid "Privacy policy"
723713msgstr ""
724714
715+#: qml/Wizard/Pages/77-system-update.qml:28
716+msgid "Update Device"
717+msgstr ""
718+
719+#: qml/Wizard/Pages/77-system-update.qml:55
720+msgid ""
721+"There is a system update available and ready to install. Afterwards, the "
722+"device will automatically restart."
723+msgstr ""
724+
725+#: qml/Wizard/Pages/77-system-update.qml:76
726+msgctxt "string identifying name of the update"
727+msgid "Ubuntu system"
728+msgstr ""
729+
730+#: qml/Wizard/Pages/77-system-update.qml:83
731+#, qt-format
732+msgctxt "version of the system update"
733+msgid "Version %1"
734+msgstr ""
735+
736+#: qml/Wizard/Pages/77-system-update.qml:102
737+msgid "This could take a few minutes..."
738+msgstr ""
739+
740+#: qml/Wizard/Pages/77-system-update.qml:116
741+msgid "Install and restart now"
742+msgstr ""
743+
725744#: qml/Wizard/Pages/80-finished.qml:89
726745msgid "Welcome to Ubuntu"
727746msgstr ""
@@ -765,7 +784,7 @@ msgid "Service Terms"
765784msgstr ""
766785
767786#: qml/Wizard/Pages/passcode-confirm.qml:43
768−#: qml/Wizard/Pages/passcode-desktop.qml:80
787+#: qml/Wizard/Pages/passcode-desktop.qml:97
769788msgid "Confirm passcode"
770789msgstr ""
771790
@@ -778,28 +797,28 @@ msgctxt "Enter the passcode again"
778797msgid "Please re-enter."
779798msgstr ""
780799
781−#: qml/Wizard/Pages/passcode-desktop.qml:30
800+#: qml/Wizard/Pages/passcode-desktop.qml:31
782801msgid "Lock Screen Passcode"
783802msgstr ""
784803
785−#: qml/Wizard/Pages/passcode-desktop.qml:56
804+#: qml/Wizard/Pages/passcode-desktop.qml:61
786805msgid "Enter 4 numbers to setup your passcode"
787806msgstr ""
788807
789−#: qml/Wizard/Pages/passcode-desktop.qml:65
808+#: qml/Wizard/Pages/passcode-desktop.qml:77
790809#: qml/Wizard/Pages/passcode-set.qml:54
791810msgid "Choose passcode"
792811msgstr ""
793812
794−#: qml/Wizard/Pages/passcode-desktop.qml:105
813+#: qml/Wizard/Pages/passcode-desktop.qml:127
795814msgid "Passcode too short"
796815msgstr ""
797816
798−#: qml/Wizard/Pages/passcode-desktop.qml:107
817+#: qml/Wizard/Pages/passcode-desktop.qml:129
799818msgid "Passcodes match"
800819msgstr ""
801820
802−#: qml/Wizard/Pages/passcode-desktop.qml:109
821+#: qml/Wizard/Pages/passcode-desktop.qml:131
803822msgid "Passcodes do not match"
804823msgstr ""
805824
@@ -807,19 +826,19 @@ msgstr ""
807826msgid "Passcode must be 4 characters long"
808827msgstr ""
809828
810−#: qml/Wizard/Pages/password-set.qml:30
829+#: qml/Wizard/Pages/password-set.qml:31
811830msgid "Lock Screen Password"
812831msgstr ""
813832
814−#: qml/Wizard/Pages/password-set.qml:61
833+#: qml/Wizard/Pages/password-set.qml:62
815834msgid "Enter at least 8 characters"
816835msgstr ""
817836
818−#: qml/Wizard/Pages/password-set.qml:73
837+#: qml/Wizard/Pages/password-set.qml:74
819838msgid "Choose password"
820839msgstr ""
821840
822−#: qml/Wizard/Pages/password-set.qml:103
841+#: qml/Wizard/Pages/password-set.qml:104
823842msgid "Confirm password"
824843msgstr ""
825844
@@ -848,26 +867,30 @@ msgid "To proceed with no SIM tap Skip."
848867msgstr ""
849868
850869#: qml/Wizard/PasswordMeter.qml:87
851−msgid "Passwords match"
870+msgid "Password too short"
852871msgstr ""
853872
854873#: qml/Wizard/PasswordMeter.qml:89
874+msgid "Passwords match"
875+msgstr ""
876+
877+#: qml/Wizard/PasswordMeter.qml:91
855878msgid "Passwords do not match"
856879msgstr ""
857880
858−#: qml/Wizard/PasswordMeter.qml:93
881+#: qml/Wizard/PasswordMeter.qml:95
859882msgid "Strong password"
860883msgstr ""
861884
862−#: qml/Wizard/PasswordMeter.qml:95
885+#: qml/Wizard/PasswordMeter.qml:97
863886msgid "Fair password"
864887msgstr ""
865888
866−#: qml/Wizard/PasswordMeter.qml:97
889+#: qml/Wizard/PasswordMeter.qml:99
867890msgid "Weak password"
868891msgstr ""
869892
870−#: qml/Wizard/PasswordMeter.qml:99
893+#: qml/Wizard/PasswordMeter.qml:101
871894msgid "Very weak password"
872895msgstr ""
873896
po/co.po+226−160
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+0000\n"
1111"PO-Revision-Date: 2016-05-24 10:40+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Corsican <co@li.org>\n"
@@ -15,10 +15,10 @@ 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-06-19 05:54+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr "Parolla d'ordine: "
2424
@@ -35,77 +35,55 @@ msgstr "Abbandunà"
3535msgid "Unpin shortcut"
3636msgstr "Toglie l'accurtatoghju"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr "Dispusitivu bluccatu"
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−"Site stati bluccati per troppi tentativi fallati d'inserimentu di a frasa "
46−"d'ordine."
47−
48−#: qml/Components/DelayedLockscreen.qml:65
49−msgid "You have been locked out due to too many failed passcode attempts."
50−msgstr ""
51−"Site stati bluccati per troppi tentativi fallati d'inserimentu di u codice "
52−"d'accessu."
53−
54−#: qml/Components/DelayedLockscreen.qml:74
55−#, qt-format
56−msgid "Please wait %1 minute and then try again…"
57−msgid_plural "Please wait %1 minutes and then try again…"
58−msgstr[0] "Aspettà %1 minutu è po turnà à pruvà…"
59−msgstr[1] "Aspettà %1 minuti è po turnà à pruvà…"
60−
61−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
6239msgctxt "Title: Lock/Log out dialog"
6340msgid "Log out"
6441msgstr "Escì"
6542
66−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6744msgid "Are you sure you want to log out?"
6845msgstr "Site sicuri di vulè escì?"
6946
70−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
7148msgctxt "Button: Lock the system"
7249msgid "Lock"
7350msgstr "Bluccà"
7451
75−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7653msgctxt "Button: Log out from the system"
7754msgid "Log Out"
7855msgstr "Escì"
7956
80−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
8260#: qml/Wizard/Pages/passcode-set.qml:32
8361msgid "Cancel"
8462msgstr "Annullà"
8563
86−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8765msgctxt "Title: Reboot dialog"
8866msgid "Reboot"
8967msgstr "Turnà ad avvià"
9068
91−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
9270msgid "Are you sure you want to reboot?"
9371msgstr "Site sicuri di vulè turnà ad avvià?"
9472
95−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9674msgid "No"
9775msgstr "Nò"
9876
99−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
10078msgid "Yes"
10179msgstr "Iè"
10280
103−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10482msgctxt "Title: Power off/Restart dialog"
10583msgid "Power"
10684msgstr "Alimentazione"
10785
108−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10987msgid ""
11088"Are you sure you would like\n"
11189"to power off?"
@@ -113,12 +91,12 @@ msgstr ""
11391"Site sicuri di vulè\n"
11492"spenghje?"
11593
116−#: qml/Components/Dialogs.qml:202
94+#: qml/Components/Dialogs.qml:205
11795msgctxt "Button: Power off the system"
11896msgid "Power off"
11997msgstr "Spenghje"
12098
121−#: qml/Components/Dialogs.qml:211
99+#: qml/Components/Dialogs.qml:214
122100msgctxt "Button: Restart the system"
123101msgid "Restart"
124102msgstr "Turnà ad avvià"
@@ -283,18 +261,28 @@ msgstr ""
283261msgid "Closes the current window."
284262msgstr ""
285263
286−#: qml/Components/Lockscreen.qml:231
264+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
287265msgid "Return to Call"
288266msgstr "Turnà à a Chjamata"
289267
290−#: qml/Components/Lockscreen.qml:231
268+#: qml/Components/Lockscreen.qml:212
291269msgid "Emergency Call"
292270msgstr "Chjamata d'emergenza"
293271
294−#: qml/Components/Lockscreen.qml:263
272+#: qml/Components/Lockscreen.qml:244
295273msgid "OK"
296274msgstr "OK"
297275
276+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
277+#, qt-format
278+msgid "%1:%2:%3"
279+msgstr ""
280+
281+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
282+#, qt-format
283+msgid "%1:%2"
284+msgstr ""
285+
298286#: qml/Components/ModeSwitchWarningDialog.qml:32
299287msgid "Apps may have unsaved data:"
300288msgstr "E app puderebbenu avè dati micca salvati:"
@@ -323,55 +311,59 @@ msgstr "Turnà à cunnettesi avà!"
323311msgid "Close all"
324312msgstr "Chjode tuttu"
325313
326−#: qml/Dash/DashPageHeader.qml:333
314+#: qml/Components/SharingPicker.qml:54
315+msgid "Preview Share Item"
316+msgstr "Anteprima elementi da sparte"
317+
318+#: qml/Dash/DashPageHeader.qml:362
327319msgctxt "Button: Open the Ubuntu Store"
328320msgid "Store"
329321msgstr "Buttega"
330322
331−#: qml/Dash/DashPageHeader.qml:340
323+#: qml/Dash/DashPageHeader.qml:369
332324msgctxt "Button: Start a search in the current dash scope"
333325msgid "Search"
334326msgstr "Circà"
335327
336−#: qml/Dash/DashPageHeader.qml:350
328+#: qml/Dash/DashPageHeader.qml:379
337329msgctxt "Button: Show the current dash scope settings"
338330msgid "Settings"
339331msgstr "Parametri"
340332
341−#: qml/Dash/DashPageHeader.qml:357
333+#: qml/Dash/DashPageHeader.qml:386
342334msgid "Remove from Favorites"
343335msgstr "Toglie da i Favuriti"
344336
345−#: qml/Dash/DashPageHeader.qml:357
337+#: qml/Dash/DashPageHeader.qml:386
346338msgid "Add to Favorites"
347339msgstr "Aghjustà à i Favuriti"
348340
349−#: qml/Dash/FiltersPopover.qml:60
341+#: qml/Dash/FiltersPopover.qml:61
350342msgid "Refine your results"
351343msgstr "Raffinà i risultati"
352344
353−#: qml/Dash/FiltersPopover.qml:69
345+#: qml/Dash/FiltersPopover.qml:70
354346msgid "Reset"
355347msgstr "Re-inizializzà"
356348
357−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
349+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
358350msgid "Show less"
359351msgstr ""
360352
361−#: qml/Dash/GenericScopeView.qml:580
353+#: qml/Dash/GenericScopeView.qml:586
362354msgid "Show all"
363355msgstr ""
364356
365−#: qml/Dash/GenericScopeView.qml:637
357+#: qml/Dash/GenericScopeView.qml:643
366358msgctxt "Label: Hint for dash search line edit"
367359msgid "Search"
368360msgstr "Circà"
369361
370−#: qml/Dash/PageHeaderExtraPanel.qml:56
362+#: qml/Dash/PageHeaderExtraPanel.qml:57
371363msgid "Recent Searches"
372364msgstr "Ricerche recente"
373365
374−#: qml/Dash/PageHeaderExtraPanel.qml:67
366+#: qml/Dash/PageHeaderExtraPanel.qml:68
375367msgid "Clear All"
376368msgstr "Squassà tuttu"
377369
@@ -383,28 +375,24 @@ msgstr "Di più..."
383375msgid "Less..."
384376msgstr "Menu..."
385377
386−#: qml/Dash/Previews/PreviewCommentInput.qml:68
387−#: qml/Dash/Previews/PreviewRatingInput.qml:175
378+#: qml/Dash/Previews/PreviewCommentInput.qml:83
379+#: qml/Dash/Previews/PreviewRatingInput.qml:201
388380msgid "Send"
389381msgstr "Mandà"
390382
391−#: qml/Dash/Previews/PreviewRatingInput.qml:82
383+#: qml/Dash/Previews/PreviewRatingInput.qml:108
392384msgid "Rate this"
393385msgstr "Ghjudicà questu"
394386
395−#: qml/Dash/Previews/PreviewRatingInput.qml:157
387+#: qml/Dash/Previews/PreviewRatingInput.qml:183
396388msgid "Add a review"
397389msgstr "Aghjustà una recensione"
398390
399−#: qml/Dash/Previews/PreviewSharing.qml:66
400−msgid "Preview Share Item"
401−msgstr "Anteprima elementi da sparte"
402−
403−#: qml/Dash/PullToRefreshScopeStyle.qml:55
391+#: qml/Dash/PullToRefreshScopeStyle.qml:56
404392msgid "Pull to refresh…"
405393msgstr "Tirà per rinnuvà..."
406394
407−#: qml/Dash/PullToRefreshScopeStyle.qml:60
395+#: qml/Dash/PullToRefreshScopeStyle.qml:61
408396msgid "Release to refresh…"
409397msgstr "Lascià andà per rinnuvà..."
410398
@@ -412,15 +400,15 @@ msgstr "Lascià andà per rinnuvà..."
412400msgid "Enable location data"
413401msgstr "Abilità i dati nant'à u locu"
414402
415−#: qml/Dash/ScopesList.qml:55
403+#: qml/Dash/ScopesList.qml:57
416404msgid "Manage"
417405msgstr "Gestì"
418406
419−#: qml/Dash/ScopesList.qml:101
407+#: qml/Dash/ScopesList.qml:104
420408msgid "Home"
421409msgstr "Accolta"
422410
423−#: qml/Dash/ScopesList.qml:102
411+#: qml/Dash/ScopesList.qml:105
424412msgid "Also installed"
425413msgstr "Anu dinù installatu..."
426414
@@ -432,76 +420,60 @@ msgstr ""
432420"U vostru dispusitivu avà hè cunnessu à unu screnu esternu. Usà u screnu di "
433421"ssu dispusitivu cum'è un tappettu tattile per guvernà u puntatore."
434422
435−#: qml/Greeter/CoverPage.qml:119
423+#: qml/Greeter/CoverPage.qml:127
436424msgid "Unlock"
437425msgstr "Sbluccà"
438426
439−#: qml/Greeter/LoginList.qml:259
440−msgid "Retry"
441−msgstr "Turnà à pruvà"
427+#: qml/Greeter/DelayedLockscreen.qml:43
428+msgid "Device Locked"
429+msgstr "Dispusitivu bluccatu"
442430
443−#: qml/Greeter/LoginList.qml:260
444−msgid "Log In"
431+#: qml/Greeter/DelayedLockscreen.qml:58
432+msgid "You have been locked out due to too many failed passphrase attempts."
445433msgstr ""
434+"Site stati bluccati per troppi tentativi fallati d'inserimentu di a frasa "
435+"d'ordine."
446436
447−#: qml/Greeter/NarrowView.qml:54
448−msgid "Sorry, incorrect passphrase."
449−msgstr "Spiacenti, frasa d'ordine errata"
450−
451−#: qml/Greeter/NarrowView.qml:55
452−msgid "Sorry, incorrect passcode."
453−msgstr "Spiacenti, codice d'accessu erratu"
437+#: qml/Greeter/DelayedLockscreen.qml:59
438+msgid "You have been locked out due to too many failed passcode attempts."
439+msgstr ""
440+"Site stati bluccati per troppi tentativi fallati d'inserimentu di u codice "
441+"d'accessu."
454442
455−#: qml/Greeter/NarrowView.qml:56
456−msgid "This will be your last attempt."
457−msgstr "Questu tentativu serà l'ultimu."
443+#: qml/Greeter/DelayedLockscreen.qml:68
444+#, qt-format
445+msgid "Please wait %1 minute and then try again…"
446+msgid_plural "Please wait %1 minutes and then try again…"
447+msgstr[0] "Aspettà %1 minutu è po turnà à pruvà…"
448+msgstr[1] "Aspettà %1 minuti è po turnà à pruvà…"
458449
459−#: qml/Greeter/NarrowView.qml:58
460−msgid ""
461−"If passphrase is entered incorrectly, your phone will conduct a factory "
462−"reset and all personal data will be deleted."
450+#: qml/Greeter/Greeter.qml:596
451+msgid "Try again"
463452msgstr ""
464−"Si a frasa d'ordine hè errata, u telefunu serà reinizializatu, è tutti i "
465−"dati persunali serannu perduti."
466453
467−#: qml/Greeter/NarrowView.qml:59
468−msgid ""
469−"If passcode is entered incorrectly, your phone will conduct a factory reset "
470−"and all personal data will be deleted."
454+#: qml/Greeter/LoginList.qml:70
455+msgid "Passphrase"
471456msgstr ""
472−"Si u codice d'accessu hè erratu, u telefunu serà reinizializatu, è tutti i "
473−"dati persunali serannu perduti."
474457
475−#: qml/Greeter/NarrowView.qml:116
476−#, qt-format
477−msgid "Enter %1"
478−msgstr "Inserì %1"
479−
480−#: qml/Greeter/NarrowView.qml:117
481−msgid "Enter passphrase"
482−msgstr "Inserì a frasa d'ordine"
483−
484−#: qml/Greeter/NarrowView.qml:118
485−msgid "Enter passcode"
486−msgstr "Inserì u codice d'accessu"
458+#: qml/Greeter/LoginList.qml:71
459+msgid "Passcode"
460+msgstr ""
487461
488−#: qml/Greeter/NarrowView.qml:119
489−#, qt-format
490−msgid "Sorry, incorrect %1"
491−msgstr "Spiacenti, %1 micca currettu"
462+#: qml/Greeter/LoginList.qml:98
463+msgid "Retry"
464+msgstr "Turnà à pruvà"
492465
493−#: qml/Greeter/NarrowView.qml:120
494−msgid "Sorry, incorrect passphrase"
495−msgstr "Spiacenti, frasa d'ordine micca curretta"
466+#: qml/Greeter/LoginList.qml:99
467+msgid "Log In"
468+msgstr ""
496469
497−#: qml/Greeter/NarrowView.qml:121
498−msgctxt "passphrase"
499−msgid "Please re-enter"
500−msgstr "Ripete l'inserimentu"
470+#: qml/Greeter/NarrowView.qml:252
471+msgid "Emergency"
472+msgstr ""
501473
502−#: qml/Greeter/NarrowView.qml:122
503−msgid "Sorry, incorrect passcode"
504−msgstr "Spiacenti, codice d'accessu micca currettu"
474+#: qml/Greeter/SessionsList.qml:122
475+msgid "Select desktop environment"
476+msgstr ""
505477
506478#: qml/Notifications/NotificationMenuItemFactory.qml:124
507479msgid "Show password"
@@ -620,40 +592,54 @@ msgctxt "Button: Go back one page in the Wizard"
620592msgid "Back"
621593msgstr "Riturnà"
622594
623−#: qml/Wizard/Pages/10-welcome.qml:27
595+#: qml/Wizard/Pages/10-welcome.qml:28
624596msgid "Language"
625597msgstr "Lingua"
626598
627−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
628−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
629−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
599+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
600+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
601+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
602+#: qml/Wizard/Pages/70-passwd-type.qml:145
630603#: qml/Wizard/Pages/75-report-check.qml:84
631−#: qml/Wizard/Pages/passcode-desktop.qml:124
632−#: qml/Wizard/Pages/password-set.qml:141
604+#: qml/Wizard/Pages/passcode-desktop.qml:142
605+#: qml/Wizard/Pages/password-set.qml:142
633606msgid "Next"
634607msgstr "Prossimu"
635608
636−#: qml/Wizard/Pages/30-wifi.qml:29
609+#: qml/Wizard/Pages/20-keyboard.qml:31
610+msgid "Select Keyboard"
611+msgstr ""
612+
613+#: qml/Wizard/Pages/20-keyboard.qml:71
614+msgid "Keyboard language"
615+msgstr ""
616+
617+#: qml/Wizard/Pages/20-keyboard.qml:93
618+msgid "Keyboard layout"
619+msgstr ""
620+
621+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
622+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
623+#: qml/Wizard/Pages/sim.qml:101
624+msgid "Skip"
625+msgstr "Ignurà"
626+
627+#: qml/Wizard/Pages/30-wifi.qml:31
637628msgid "Connect to Wi‑Fi"
638629msgstr "Cunnettesi à u Wi-Fi"
639630
640−#: qml/Wizard/Pages/30-wifi.qml:130
631+#: qml/Wizard/Pages/30-wifi.qml:132
641632msgid "Connected"
642633msgstr "Cunnessu"
643634
644−#: qml/Wizard/Pages/30-wifi.qml:163
635+#: qml/Wizard/Pages/30-wifi.qml:165
645636msgid "Available Wi-Fi networks"
646637msgstr "Rete Wi-Fi dispunibili"
647638
648−#: qml/Wizard/Pages/30-wifi.qml:164
639+#: qml/Wizard/Pages/30-wifi.qml:166
649640msgid "No available Wi-Fi networks"
650641msgstr "Nisuna reta Wi-Fi hè dispunibile"
651642
652−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
653−#: qml/Wizard/Pages/sim.qml:101
654−msgid "Skip"
655−msgstr "Ignurà"
656−
657643#: qml/Wizard/Pages/40-location.qml:27
658644msgid "Location Services"
659645msgstr "Servizi di lucalizazione"
@@ -688,11 +674,11 @@ msgstr "Miccà usà u mo locu"
688674msgid "You can change it later in System Settings."
689675msgstr "A pudite cambià successivamente ind'i Parametri di Sistema"
690676
691−#: qml/Wizard/Pages/50-timezone.qml:29
677+#: qml/Wizard/Pages/50-timezone.qml:30
692678msgid "Time Zone"
693679msgstr "Fusu orariu"
694680
695−#: qml/Wizard/Pages/50-timezone.qml:181
681+#: qml/Wizard/Pages/50-timezone.qml:182
696682msgid "Enter your city"
697683msgstr "Inserì a vostra cità"
698684
@@ -704,21 +690,21 @@ msgstr "Persunalizà u vostru dispusitivu"
704690msgid "Preferred Name"
705691msgstr "Nome preferitu"
706692
707−#: qml/Wizard/Pages/70-passwd-type.qml:39
693+#: qml/Wizard/Pages/70-passwd-type.qml:40
708694msgid "Lock Screen"
709695msgstr "Bluccà u screnu"
710696
711−#: qml/Wizard/Pages/70-passwd-type.qml:101
697+#: qml/Wizard/Pages/70-passwd-type.qml:102
712698msgctxt "Label: Type of security method"
713699msgid "Create new password"
714700msgstr "Creà una nova parolla d'ordine"
715701
716−#: qml/Wizard/Pages/70-passwd-type.qml:103
702+#: qml/Wizard/Pages/70-passwd-type.qml:104
717703msgctxt "Label: Type of security method"
718704msgid "Create passcode (numbers only)"
719705msgstr "Creà un codice d'accessu (sulamente numeri)"
720706
721−#: qml/Wizard/Pages/70-passwd-type.qml:105
707+#: qml/Wizard/Pages/70-passwd-type.qml:106
722708msgctxt "Label: Type of security method"
723709msgid "No lock code"
724710msgstr "Nisun codice di bloccu"
@@ -741,6 +727,35 @@ msgstr ""
741727msgid "Privacy policy"
742728msgstr "Pulitica di Riservatezza"
743729
730+#: qml/Wizard/Pages/77-system-update.qml:28
731+msgid "Update Device"
732+msgstr ""
733+
734+#: qml/Wizard/Pages/77-system-update.qml:55
735+msgid ""
736+"There is a system update available and ready to install. Afterwards, the "
737+"device will automatically restart."
738+msgstr ""
739+
740+#: qml/Wizard/Pages/77-system-update.qml:76
741+msgctxt "string identifying name of the update"
742+msgid "Ubuntu system"
743+msgstr ""
744+
745+#: qml/Wizard/Pages/77-system-update.qml:83
746+#, qt-format
747+msgctxt "version of the system update"
748+msgid "Version %1"
749+msgstr ""
750+
751+#: qml/Wizard/Pages/77-system-update.qml:102
752+msgid "This could take a few minutes..."
753+msgstr ""
754+
755+#: qml/Wizard/Pages/77-system-update.qml:116
756+msgid "Install and restart now"
757+msgstr ""
758+
744759#: qml/Wizard/Pages/80-finished.qml:89
745760msgid "Welcome to Ubuntu"
746761msgstr "Benvenuti in Ubuntu"
@@ -789,7 +804,7 @@ msgid "Service Terms"
789804msgstr "Termini di u serviziu"
790805
791806#: qml/Wizard/Pages/passcode-confirm.qml:43
792−#: qml/Wizard/Pages/passcode-desktop.qml:80
807+#: qml/Wizard/Pages/passcode-desktop.qml:97
793808msgid "Confirm passcode"
794809msgstr "Cunfirmà u codice d'accessu"
795810
@@ -802,28 +817,28 @@ msgctxt "Enter the passcode again"
802817msgid "Please re-enter."
803818msgstr "Ripete l'inserimentu."
804819
805−#: qml/Wizard/Pages/passcode-desktop.qml:30
820+#: qml/Wizard/Pages/passcode-desktop.qml:31
806821msgid "Lock Screen Passcode"
807822msgstr "Codice bloccu screnu"
808823
809−#: qml/Wizard/Pages/passcode-desktop.qml:56
824+#: qml/Wizard/Pages/passcode-desktop.qml:61
810825msgid "Enter 4 numbers to setup your passcode"
811826msgstr "Inserì 4 numeri per creà u vostru codice d'accessu"
812827
813−#: qml/Wizard/Pages/passcode-desktop.qml:65
828+#: qml/Wizard/Pages/passcode-desktop.qml:77
814829#: qml/Wizard/Pages/passcode-set.qml:54
815830msgid "Choose passcode"
816831msgstr "Sceglie u codice d'accessu"
817832
818−#: qml/Wizard/Pages/passcode-desktop.qml:105
833+#: qml/Wizard/Pages/passcode-desktop.qml:127
819834msgid "Passcode too short"
820835msgstr "Codice d'accessu troppu cortu"
821836
822−#: qml/Wizard/Pages/passcode-desktop.qml:107
837+#: qml/Wizard/Pages/passcode-desktop.qml:129
823838msgid "Passcodes match"
824839msgstr "I codici currispondenu."
825840
826−#: qml/Wizard/Pages/passcode-desktop.qml:109
841+#: qml/Wizard/Pages/passcode-desktop.qml:131
827842msgid "Passcodes do not match"
828843msgstr "I codici ùn currispondenu micca."
829844
@@ -831,19 +846,19 @@ msgstr "I codici ùn currispondenu micca."
831846msgid "Passcode must be 4 characters long"
832847msgstr "U codice d'accessu hà da esse longu almenu 4 caratteri"
833848
834−#: qml/Wizard/Pages/password-set.qml:30
849+#: qml/Wizard/Pages/password-set.qml:31
835850msgid "Lock Screen Password"
836851msgstr "Parolla d'ordine per bloccu screnu"
837852
838−#: qml/Wizard/Pages/password-set.qml:61
853+#: qml/Wizard/Pages/password-set.qml:62
839854msgid "Enter at least 8 characters"
840855msgstr "Inserì almenu 8 caratteri"
841856
842−#: qml/Wizard/Pages/password-set.qml:73
857+#: qml/Wizard/Pages/password-set.qml:74
843858msgid "Choose password"
844859msgstr "Sceglie a parolla d'ordine"
845860
846−#: qml/Wizard/Pages/password-set.qml:103
861+#: qml/Wizard/Pages/password-set.qml:104
847862msgid "Confirm password"
848863msgstr "Cunfirmà parolla d'ordine"
849864
@@ -873,26 +888,30 @@ msgid "To proceed with no SIM tap Skip."
873888msgstr "Per prucede senza una carta SIM tuccà Saltà"
874889
875890#: qml/Wizard/PasswordMeter.qml:87
891+msgid "Password too short"
892+msgstr ""
893+
894+#: qml/Wizard/PasswordMeter.qml:89
876895msgid "Passwords match"
877896msgstr "E parolle d'ordine sò l'istesse"
878897
879−#: qml/Wizard/PasswordMeter.qml:89
898+#: qml/Wizard/PasswordMeter.qml:91
880899msgid "Passwords do not match"
881900msgstr "E parolle d'ordine ùn coincidunu micca"
882901
883−#: qml/Wizard/PasswordMeter.qml:93
902+#: qml/Wizard/PasswordMeter.qml:95
884903msgid "Strong password"
885904msgstr "Parolla d'ordine forte"
886905
887−#: qml/Wizard/PasswordMeter.qml:95
906+#: qml/Wizard/PasswordMeter.qml:97
888907msgid "Fair password"
889908msgstr "Parolla d'ordine media"
890909
891−#: qml/Wizard/PasswordMeter.qml:97
910+#: qml/Wizard/PasswordMeter.qml:99
892911msgid "Weak password"
893912msgstr "Parolla d'ordine debule"
894913
895−#: qml/Wizard/PasswordMeter.qml:99
914+#: qml/Wizard/PasswordMeter.qml:101
896915msgid "Very weak password"
897916msgstr "Parolla d'ordine moltu debule"
898917
@@ -902,9 +921,21 @@ msgstr "Parolla d'ordine moltu debule"
902921#~ msgid "Tap to unlock"
903922#~ msgstr "Tuccà per sbluccà"
904923
924+#~ msgid "Sorry, incorrect passphrase."
925+#~ msgstr "Spiacenti, frasa d'ordine errata"
926+
927+#~ msgid "Sorry, incorrect passcode."
928+#~ msgstr "Spiacenti, codice d'accessu erratu"
929+
905930#~ msgid "See less"
906931#~ msgstr "Vede menu"
907932
933+#~ msgid "Enter passphrase"
934+#~ msgstr "Inserì a frasa d'ordine"
935+
936+#~ msgid "Enter passcode"
937+#~ msgstr "Inserì u codice d'accessu"
938+
908939#~ msgid "Swipe from the left edge to open the launcher"
909940#~ msgstr "Scorre da mancina versu diritta per aprì u launcher"
910941
@@ -927,6 +958,20 @@ msgstr "Parolla d'ordine moltu debule"
927958#~ msgstr ""
928959#~ "Scorre cortu o longu da diritta versu mancina per vede e applicazioni aperte"
929960
961+#, qt-format
962+#~ msgid "Enter %1"
963+#~ msgstr "Inserì %1"
964+
965+#~ msgid "Sorry, incorrect passphrase"
966+#~ msgstr "Spiacenti, frasa d'ordine micca curretta"
967+
968+#, qt-format
969+#~ msgid "Sorry, incorrect %1"
970+#~ msgstr "Spiacenti, %1 micca currettu"
971+
972+#~ msgid "Sorry, incorrect passcode"
973+#~ msgstr "Spiacenti, codice d'accessu micca currettu"
974+
930975#~ msgid "Swipe from the top right edge to open the notification bar"
931976#~ msgstr "Scorre da l'altu à diritta per aprì a barra di e nutificazione"
932977
@@ -936,3 +981,24 @@ msgstr "Parolla d'ordine moltu debule"
936981#~ msgid "Hover your mouse on the right edge to view your open apps"
937982#~ msgstr ""
938983#~ "Passà u puntatore di u topu nant'à u bordu destru per vede e app aperte"
984+
985+#~ msgid "This will be your last attempt."
986+#~ msgstr "Questu tentativu serà l'ultimu."
987+
988+#~ msgctxt "passphrase"
989+#~ msgid "Please re-enter"
990+#~ msgstr "Ripete l'inserimentu"
991+
992+#~ msgid ""
993+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
994+#~ "and all personal data will be deleted."
995+#~ msgstr ""
996+#~ "Si u codice d'accessu hè erratu, u telefunu serà reinizializatu, è tutti i "
997+#~ "dati persunali serannu perduti."
998+
999+#~ msgid ""
1000+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1001+#~ "reset and all personal data will be deleted."
1002+#~ msgstr ""
1003+#~ "Si a frasa d'ordine hè errata, u telefunu serà reinizializatu, è tutti i "
1004+#~ "dati persunali serannu perduti."
po/cs.po+220−158
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,11 +15,11 @@ 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-06-19 05:54+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020"Language: cs\n"
2121
22−#: plugins/IntegratedLightDM/Greeter.cpp:112
22+#: plugins/LightDM/Greeter.cpp:123
2323msgid "Password: "
2424msgstr "Heslo: "
2525
@@ -36,76 +36,55 @@ msgstr ""
3636msgid "Unpin shortcut"
3737msgstr "Odpíchnout zkratku"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
40−msgid "Device Locked"
41−msgstr "Zařízení uzamčeno"
42−
43−#: qml/Components/DelayedLockscreen.qml:64
44−msgid "You have been locked out due to too many failed passphrase attempts."
45−msgstr ""
46−"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
47−
48−#: qml/Components/DelayedLockscreen.qml:65
49−msgid "You have been locked out due to too many failed passcode attempts."
50−msgstr ""
51−"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
52−
53−#: qml/Components/DelayedLockscreen.qml:74
54−#, qt-format
55−msgid "Please wait %1 minute and then try again…"
56−msgid_plural "Please wait %1 minutes and then try again…"
57−msgstr[0] "Počkejte, prosím, %1 minut a poté to zkuste znovu..."
58−msgstr[1] "Počkejte, prosím, %1 minuty a poté to zkuste znovu..."
59−msgstr[2] "Počkejte, prosím, %1 minut a poté to zkuste znovu..."
60−
61−#: qml/Components/Dialogs.qml:146
39+#: qml/Components/Dialogs.qml:149
6240msgctxt "Title: Lock/Log out dialog"
6341msgid "Log out"
6442msgstr "Odhlásit se"
6543
66−#: qml/Components/Dialogs.qml:147
44+#: qml/Components/Dialogs.qml:150
6745msgid "Are you sure you want to log out?"
6846msgstr "Jste si jistí, že se chcete odhlásit?"
6947
70−#: qml/Components/Dialogs.qml:149
48+#: qml/Components/Dialogs.qml:152
7149msgctxt "Button: Lock the system"
7250msgid "Lock"
7351msgstr "Uzamknout"
7452
75−#: qml/Components/Dialogs.qml:156
53+#: qml/Components/Dialogs.qml:159
7654msgctxt "Button: Log out from the system"
7755msgid "Log Out"
7856msgstr "Odhlásit"
7957
80−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
58+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
59+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
60+#: qml/Wizard/Pages/passcode-confirm.qml:32
8261#: qml/Wizard/Pages/passcode-set.qml:32
8362msgid "Cancel"
8463msgstr "Zrušit"
8564
86−#: qml/Components/Dialogs.qml:175
65+#: qml/Components/Dialogs.qml:178
8766msgctxt "Title: Reboot dialog"
8867msgid "Reboot"
8968msgstr "Restartovat"
9069
91−#: qml/Components/Dialogs.qml:176
70+#: qml/Components/Dialogs.qml:179
9271msgid "Are you sure you want to reboot?"
9372msgstr "Jste si jistí, že chcete zařízení restartovat?"
9473
95−#: qml/Components/Dialogs.qml:178
74+#: qml/Components/Dialogs.qml:181
9675msgid "No"
9776msgstr "Ne"
9877
99−#: qml/Components/Dialogs.qml:184
78+#: qml/Components/Dialogs.qml:187
10079msgid "Yes"
10180msgstr "Ano"
10281
103−#: qml/Components/Dialogs.qml:199
82+#: qml/Components/Dialogs.qml:202
10483msgctxt "Title: Power off/Restart dialog"
10584msgid "Power"
10685msgstr "Vypnutí"
10786
108−#: qml/Components/Dialogs.qml:200
87+#: qml/Components/Dialogs.qml:203
10988msgid ""
11089"Are you sure you would like\n"
11190"to power off?"
@@ -113,12 +92,12 @@ msgstr ""
11392"Jste si jistí, že chcete\n"
11493"telefon vypnout?"
11594
116−#: qml/Components/Dialogs.qml:202
95+#: qml/Components/Dialogs.qml:205
11796msgctxt "Button: Power off the system"
11897msgid "Power off"
11998msgstr "Vypnutí"
12099
121−#: qml/Components/Dialogs.qml:211
100+#: qml/Components/Dialogs.qml:214
122101msgctxt "Button: Restart the system"
123102msgid "Restart"
124103msgstr "Reboot"
@@ -283,18 +262,28 @@ msgstr ""
283262msgid "Closes the current window."
284263msgstr ""
285264
286−#: qml/Components/Lockscreen.qml:231
265+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
287266msgid "Return to Call"
288267msgstr "Vrátit se k hovoru"
289268
290−#: qml/Components/Lockscreen.qml:231
269+#: qml/Components/Lockscreen.qml:212
291270msgid "Emergency Call"
292271msgstr "Tísňové volání"
293272
294−#: qml/Components/Lockscreen.qml:263
273+#: qml/Components/Lockscreen.qml:244
295274msgid "OK"
296275msgstr "OK"
297276
277+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
278+#, qt-format
279+msgid "%1:%2:%3"
280+msgstr ""
281+
282+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
283+#, qt-format
284+msgid "%1:%2"
285+msgstr ""
286+
298287#: qml/Components/ModeSwitchWarningDialog.qml:32
299288msgid "Apps may have unsaved data:"
300289msgstr ""
@@ -321,55 +310,59 @@ msgstr ""
321310msgid "Close all"
322311msgstr ""
323312
324−#: qml/Dash/DashPageHeader.qml:333
313+#: qml/Components/SharingPicker.qml:54
314+msgid "Preview Share Item"
315+msgstr ""
316+
317+#: qml/Dash/DashPageHeader.qml:362
325318msgctxt "Button: Open the Ubuntu Store"
326319msgid "Store"
327320msgstr "Obchod"
328321
329−#: qml/Dash/DashPageHeader.qml:340
322+#: qml/Dash/DashPageHeader.qml:369
330323msgctxt "Button: Start a search in the current dash scope"
331324msgid "Search"
332325msgstr "Hledat"
333326
334−#: qml/Dash/DashPageHeader.qml:350
327+#: qml/Dash/DashPageHeader.qml:379
335328msgctxt "Button: Show the current dash scope settings"
336329msgid "Settings"
337330msgstr "Nastavení"
338331
339−#: qml/Dash/DashPageHeader.qml:357
332+#: qml/Dash/DashPageHeader.qml:386
340333msgid "Remove from Favorites"
341334msgstr "Odstranit z oblíbených"
342335
343−#: qml/Dash/DashPageHeader.qml:357
336+#: qml/Dash/DashPageHeader.qml:386
344337msgid "Add to Favorites"
345338msgstr "Přidat do oblíbených"
346339
347−#: qml/Dash/FiltersPopover.qml:60
340+#: qml/Dash/FiltersPopover.qml:61
348341msgid "Refine your results"
349342msgstr ""
350343
351−#: qml/Dash/FiltersPopover.qml:69
344+#: qml/Dash/FiltersPopover.qml:70
352345msgid "Reset"
353346msgstr ""
354347
355−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
348+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
356349msgid "Show less"
357350msgstr ""
358351
359−#: qml/Dash/GenericScopeView.qml:580
352+#: qml/Dash/GenericScopeView.qml:586
360353msgid "Show all"
361354msgstr ""
362355
363−#: qml/Dash/GenericScopeView.qml:637
356+#: qml/Dash/GenericScopeView.qml:643
364357msgctxt "Label: Hint for dash search line edit"
365358msgid "Search"
366359msgstr "Hledat"
367360
368−#: qml/Dash/PageHeaderExtraPanel.qml:56
361+#: qml/Dash/PageHeaderExtraPanel.qml:57
369362msgid "Recent Searches"
370363msgstr ""
371364
372−#: qml/Dash/PageHeaderExtraPanel.qml:67
365+#: qml/Dash/PageHeaderExtraPanel.qml:68
373366msgid "Clear All"
374367msgstr ""
375368
@@ -381,28 +374,24 @@ msgstr "Více..."
381374msgid "Less..."
382375msgstr "Méně..."
383376
384−#: qml/Dash/Previews/PreviewCommentInput.qml:68
385−#: qml/Dash/Previews/PreviewRatingInput.qml:175
377+#: qml/Dash/Previews/PreviewCommentInput.qml:83
378+#: qml/Dash/Previews/PreviewRatingInput.qml:201
386379msgid "Send"
387380msgstr "Odeslat"
388381
389−#: qml/Dash/Previews/PreviewRatingInput.qml:82
382+#: qml/Dash/Previews/PreviewRatingInput.qml:108
390383msgid "Rate this"
391384msgstr "Ohodnoťte to"
392385
393−#: qml/Dash/Previews/PreviewRatingInput.qml:157
386+#: qml/Dash/Previews/PreviewRatingInput.qml:183
394387msgid "Add a review"
395388msgstr "Přidat recenzi"
396389
397−#: qml/Dash/Previews/PreviewSharing.qml:66
398−msgid "Preview Share Item"
399−msgstr ""
400−
401−#: qml/Dash/PullToRefreshScopeStyle.qml:55
390+#: qml/Dash/PullToRefreshScopeStyle.qml:56
402391msgid "Pull to refresh…"
403392msgstr "Vytáhněte pro obnovení..."
404393
405−#: qml/Dash/PullToRefreshScopeStyle.qml:60
394+#: qml/Dash/PullToRefreshScopeStyle.qml:61
406395msgid "Release to refresh…"
407396msgstr "Pusťte pro obnovení..."
408397
@@ -410,15 +399,15 @@ msgstr "Pusťte pro obnovení..."
410399msgid "Enable location data"
411400msgstr "Povolit údaje umístění"
412401
413−#: qml/Dash/ScopesList.qml:55
402+#: qml/Dash/ScopesList.qml:57
414403msgid "Manage"
415404msgstr "Spravovat"
416405
417−#: qml/Dash/ScopesList.qml:101
406+#: qml/Dash/ScopesList.qml:104
418407msgid "Home"
419408msgstr "Domů"
420409
421−#: qml/Dash/ScopesList.qml:102
410+#: qml/Dash/ScopesList.qml:105
422411msgid "Also installed"
423412msgstr "Také nainstalováno"
424413
@@ -428,76 +417,59 @@ msgid ""
428417"touch pad to interact with the pointer."
429418msgstr ""
430419
431−#: qml/Greeter/CoverPage.qml:119
420+#: qml/Greeter/CoverPage.qml:127
432421msgid "Unlock"
433422msgstr "Odemknout"
434423
435−#: qml/Greeter/LoginList.qml:259
436−msgid "Retry"
437−msgstr "Znovu"
424+#: qml/Greeter/DelayedLockscreen.qml:43
425+msgid "Device Locked"
426+msgstr "Zařízení uzamčeno"
438427
439−#: qml/Greeter/LoginList.qml:260
440−msgid "Log In"
428+#: qml/Greeter/DelayedLockscreen.qml:58
429+msgid "You have been locked out due to too many failed passphrase attempts."
441430msgstr ""
431+"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
442432
443−#: qml/Greeter/NarrowView.qml:54
444−msgid "Sorry, incorrect passphrase."
445−msgstr "Zadali jste špatné heslo."
446−
447−#: qml/Greeter/NarrowView.qml:55
448−msgid "Sorry, incorrect passcode."
449−msgstr "Zadali jste špatné heslo."
433+#: qml/Greeter/DelayedLockscreen.qml:59
434+msgid "You have been locked out due to too many failed passcode attempts."
435+msgstr ""
436+"Zařízení bylo uzamčeno z důvodu mnoha neúspěšných pokusů o přihlášení."
450437
451−#: qml/Greeter/NarrowView.qml:56
452−msgid "This will be your last attempt."
453−msgstr "Toto je váš poslední pokus."
438+#: qml/Greeter/DelayedLockscreen.qml:68
439+#, qt-format
440+msgid "Please wait %1 minute and then try again…"
441+msgid_plural "Please wait %1 minutes and then try again…"
442+msgstr[0] "Počkejte, prosím, %1 minut a poté to zkuste znovu..."
443+msgstr[1] "Počkejte, prosím, %1 minuty a poté to zkuste znovu..."
444+msgstr[2] "Počkejte, prosím, %1 minut a poté to zkuste znovu..."
454445
455−#: qml/Greeter/NarrowView.qml:58
456−msgid ""
457−"If passphrase is entered incorrectly, your phone will conduct a factory "
458−"reset and all personal data will be deleted."
446+#: qml/Greeter/Greeter.qml:596
447+msgid "Try again"
459448msgstr ""
460−"Pokud bude heslo zadáno nesprávně, bude telefon obnoven do továrního "
461−"nastavení a všechna osobní data budou smazána."
462449
463−#: qml/Greeter/NarrowView.qml:59
464−msgid ""
465−"If passcode is entered incorrectly, your phone will conduct a factory reset "
466−"and all personal data will be deleted."
450+#: qml/Greeter/LoginList.qml:70
451+msgid "Passphrase"
467452msgstr ""
468−"Pokud bude heslo zadáno nesprávně, bude telefon obnoven do továrního "
469−"nastavení a všechna osobní data budou smazána."
470−
471−#: qml/Greeter/NarrowView.qml:116
472−#, qt-format
473−msgid "Enter %1"
474−msgstr "Vložte %1"
475453
476−#: qml/Greeter/NarrowView.qml:117
477−msgid "Enter passphrase"
478−msgstr "Vložte heslo"
479−
480−#: qml/Greeter/NarrowView.qml:118
481−msgid "Enter passcode"
482−msgstr "Vložte heslo"
454+#: qml/Greeter/LoginList.qml:71
455+msgid "Passcode"
456+msgstr ""
483457
484−#: qml/Greeter/NarrowView.qml:119
485−#, qt-format
486−msgid "Sorry, incorrect %1"
487−msgstr "Špatné %1"
458+#: qml/Greeter/LoginList.qml:98
459+msgid "Retry"
460+msgstr "Znovu"
488461
489−#: qml/Greeter/NarrowView.qml:120
490−msgid "Sorry, incorrect passphrase"
491−msgstr "Špatné heslo"
462+#: qml/Greeter/LoginList.qml:99
463+msgid "Log In"
464+msgstr ""
492465
493−#: qml/Greeter/NarrowView.qml:121
494−msgctxt "passphrase"
495−msgid "Please re-enter"
466+#: qml/Greeter/NarrowView.qml:252
467+msgid "Emergency"
496468msgstr ""
497469
498−#: qml/Greeter/NarrowView.qml:122
499−msgid "Sorry, incorrect passcode"
500−msgstr "Špatné heslo"
470+#: qml/Greeter/SessionsList.qml:122
471+msgid "Select desktop environment"
472+msgstr ""
501473
502474#: qml/Notifications/NotificationMenuItemFactory.qml:124
503475msgid "Show password"
@@ -618,40 +590,54 @@ msgctxt "Button: Go back one page in the Wizard"
618590msgid "Back"
619591msgstr "Zpět"
620592
621−#: qml/Wizard/Pages/10-welcome.qml:27
593+#: qml/Wizard/Pages/10-welcome.qml:28
622594msgid "Language"
623595msgstr ""
624596
625−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
626−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
627−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
597+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
598+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
599+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
600+#: qml/Wizard/Pages/70-passwd-type.qml:145
628601#: qml/Wizard/Pages/75-report-check.qml:84
629−#: qml/Wizard/Pages/passcode-desktop.qml:124
630−#: qml/Wizard/Pages/password-set.qml:141
602+#: qml/Wizard/Pages/passcode-desktop.qml:142
603+#: qml/Wizard/Pages/password-set.qml:142
631604msgid "Next"
632605msgstr ""
633606
634−#: qml/Wizard/Pages/30-wifi.qml:29
607+#: qml/Wizard/Pages/20-keyboard.qml:31
608+msgid "Select Keyboard"
609+msgstr ""
610+
611+#: qml/Wizard/Pages/20-keyboard.qml:71
612+msgid "Keyboard language"
613+msgstr ""
614+
615+#: qml/Wizard/Pages/20-keyboard.qml:93
616+msgid "Keyboard layout"
617+msgstr ""
618+
619+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
620+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
621+#: qml/Wizard/Pages/sim.qml:101
622+msgid "Skip"
623+msgstr "Přeskočit"
624+
625+#: qml/Wizard/Pages/30-wifi.qml:31
635626msgid "Connect to Wi‑Fi"
636627msgstr "Připojte se k Wi-Fi"
637628
638−#: qml/Wizard/Pages/30-wifi.qml:130
629+#: qml/Wizard/Pages/30-wifi.qml:132
639630msgid "Connected"
640631msgstr ""
641632
642−#: qml/Wizard/Pages/30-wifi.qml:163
633+#: qml/Wizard/Pages/30-wifi.qml:165
643634msgid "Available Wi-Fi networks"
644635msgstr ""
645636
646−#: qml/Wizard/Pages/30-wifi.qml:164
637+#: qml/Wizard/Pages/30-wifi.qml:166
647638msgid "No available Wi-Fi networks"
648639msgstr ""
649640
650−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
651−#: qml/Wizard/Pages/sim.qml:101
652−msgid "Skip"
653−msgstr "Přeskočit"
654−
655641#: qml/Wizard/Pages/40-location.qml:27
656642msgid "Location Services"
657643msgstr ""
@@ -684,11 +670,11 @@ msgstr ""
684670msgid "You can change it later in System Settings."
685671msgstr ""
686672
687−#: qml/Wizard/Pages/50-timezone.qml:29
673+#: qml/Wizard/Pages/50-timezone.qml:30
688674msgid "Time Zone"
689675msgstr ""
690676
691−#: qml/Wizard/Pages/50-timezone.qml:181
677+#: qml/Wizard/Pages/50-timezone.qml:182
692678msgid "Enter your city"
693679msgstr ""
694680
@@ -700,21 +686,21 @@ msgstr ""
700686msgid "Preferred Name"
701687msgstr ""
702688
703−#: qml/Wizard/Pages/70-passwd-type.qml:39
689+#: qml/Wizard/Pages/70-passwd-type.qml:40
704690msgid "Lock Screen"
705691msgstr ""
706692
707−#: qml/Wizard/Pages/70-passwd-type.qml:101
693+#: qml/Wizard/Pages/70-passwd-type.qml:102
708694msgctxt "Label: Type of security method"
709695msgid "Create new password"
710696msgstr ""
711697
712−#: qml/Wizard/Pages/70-passwd-type.qml:103
698+#: qml/Wizard/Pages/70-passwd-type.qml:104
713699msgctxt "Label: Type of security method"
714700msgid "Create passcode (numbers only)"
715701msgstr ""
716702
717−#: qml/Wizard/Pages/70-passwd-type.qml:105
703+#: qml/Wizard/Pages/70-passwd-type.qml:106
718704msgctxt "Label: Type of security method"
719705msgid "No lock code"
720706msgstr ""
@@ -735,6 +721,35 @@ msgstr ""
735721msgid "Privacy policy"
736722msgstr ""
737723
724+#: qml/Wizard/Pages/77-system-update.qml:28
725+msgid "Update Device"
726+msgstr ""
727+
728+#: qml/Wizard/Pages/77-system-update.qml:55
729+msgid ""
730+"There is a system update available and ready to install. Afterwards, the "
731+"device will automatically restart."
732+msgstr ""
733+
734+#: qml/Wizard/Pages/77-system-update.qml:76
735+msgctxt "string identifying name of the update"
736+msgid "Ubuntu system"
737+msgstr ""
738+
739+#: qml/Wizard/Pages/77-system-update.qml:83
740+#, qt-format
741+msgctxt "version of the system update"
742+msgid "Version %1"
743+msgstr ""
744+
745+#: qml/Wizard/Pages/77-system-update.qml:102
746+msgid "This could take a few minutes..."
747+msgstr ""
748+
749+#: qml/Wizard/Pages/77-system-update.qml:116
750+msgid "Install and restart now"
751+msgstr ""
752+
738753#: qml/Wizard/Pages/80-finished.qml:89
739754msgid "Welcome to Ubuntu"
740755msgstr ""
@@ -778,7 +793,7 @@ msgid "Service Terms"
778793msgstr ""
779794
780795#: qml/Wizard/Pages/passcode-confirm.qml:43
781−#: qml/Wizard/Pages/passcode-desktop.qml:80
796+#: qml/Wizard/Pages/passcode-desktop.qml:97
782797msgid "Confirm passcode"
783798msgstr "Potvrdit číselné heslo"
784799
@@ -791,28 +806,28 @@ msgctxt "Enter the passcode again"
791806msgid "Please re-enter."
792807msgstr ""
793808
794−#: qml/Wizard/Pages/passcode-desktop.qml:30
809+#: qml/Wizard/Pages/passcode-desktop.qml:31
795810msgid "Lock Screen Passcode"
796811msgstr ""
797812
798−#: qml/Wizard/Pages/passcode-desktop.qml:56
813+#: qml/Wizard/Pages/passcode-desktop.qml:61
799814msgid "Enter 4 numbers to setup your passcode"
800815msgstr ""
801816
802−#: qml/Wizard/Pages/passcode-desktop.qml:65
817+#: qml/Wizard/Pages/passcode-desktop.qml:77
803818#: qml/Wizard/Pages/passcode-set.qml:54
804819msgid "Choose passcode"
805820msgstr ""
806821
807−#: qml/Wizard/Pages/passcode-desktop.qml:105
822+#: qml/Wizard/Pages/passcode-desktop.qml:127
808823msgid "Passcode too short"
809824msgstr ""
810825
811−#: qml/Wizard/Pages/passcode-desktop.qml:107
826+#: qml/Wizard/Pages/passcode-desktop.qml:129
812827msgid "Passcodes match"
813828msgstr ""
814829
815−#: qml/Wizard/Pages/passcode-desktop.qml:109
830+#: qml/Wizard/Pages/passcode-desktop.qml:131
816831msgid "Passcodes do not match"
817832msgstr ""
818833
@@ -820,19 +835,19 @@ msgstr ""
820835msgid "Passcode must be 4 characters long"
821836msgstr ""
822837
823−#: qml/Wizard/Pages/password-set.qml:30
838+#: qml/Wizard/Pages/password-set.qml:31
824839msgid "Lock Screen Password"
825840msgstr ""
826841
827−#: qml/Wizard/Pages/password-set.qml:61
842+#: qml/Wizard/Pages/password-set.qml:62
828843msgid "Enter at least 8 characters"
829844msgstr ""
830845
831−#: qml/Wizard/Pages/password-set.qml:73
846+#: qml/Wizard/Pages/password-set.qml:74
832847msgid "Choose password"
833848msgstr ""
834849
835−#: qml/Wizard/Pages/password-set.qml:103
850+#: qml/Wizard/Pages/password-set.qml:104
836851msgid "Confirm password"
837852msgstr ""
838853
@@ -861,26 +876,30 @@ msgid "To proceed with no SIM tap Skip."
861876msgstr ""
862877
863878#: qml/Wizard/PasswordMeter.qml:87
864−msgid "Passwords match"
879+msgid "Password too short"
865880msgstr ""
866881
867882#: qml/Wizard/PasswordMeter.qml:89
883+msgid "Passwords match"
884+msgstr ""
885+
886+#: qml/Wizard/PasswordMeter.qml:91
868887msgid "Passwords do not match"
869888msgstr ""
870889
871−#: qml/Wizard/PasswordMeter.qml:93
890+#: qml/Wizard/PasswordMeter.qml:95
872891msgid "Strong password"
873892msgstr ""
874893
875−#: qml/Wizard/PasswordMeter.qml:95
894+#: qml/Wizard/PasswordMeter.qml:97
876895msgid "Fair password"
877896msgstr ""
878897
879−#: qml/Wizard/PasswordMeter.qml:97
898+#: qml/Wizard/PasswordMeter.qml:99
880899msgid "Weak password"
881900msgstr ""
882901
883−#: qml/Wizard/PasswordMeter.qml:99
902+#: qml/Wizard/PasswordMeter.qml:101
884903msgid "Very weak password"
885904msgstr ""
886905
@@ -938,9 +957,16 @@ msgstr ""
938957#~ msgid "See less"
939958#~ msgstr "Zobrazit méně"
940959
960+#~ msgid "This will be your last attempt."
961+#~ msgstr "Toto je váš poslední pokus."
962+
941963#~ msgid "Store"
942964#~ msgstr "Obchod"
943965
966+#, qt-format
967+#~ msgid "Enter %1"
968+#~ msgstr "Vložte %1"
969+
944970#~ msgctxt "Title: Reboot/Shut down dialog"
945971#~ msgid "Shut down"
946972#~ msgstr "Vypnout"
@@ -959,9 +985,45 @@ msgstr ""
959985#~ msgid "Tap to unlock"
960986#~ msgstr "Klepnout pro odemčení"
961987
988+#~ msgid "Sorry, incorrect passphrase."
989+#~ msgstr "Zadali jste špatné heslo."
990+
991+#~ msgid "Sorry, incorrect passcode."
992+#~ msgstr "Zadali jste špatné heslo."
993+
994+#~ msgid ""
995+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
996+#~ "reset and all personal data will be deleted."
997+#~ msgstr ""
998+#~ "Pokud bude heslo zadáno nesprávně, bude telefon obnoven do továrního "
999+#~ "nastavení a všechna osobní data budou smazána."
1000+
1001+#~ msgid ""
1002+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1003+#~ "and all personal data will be deleted."
1004+#~ msgstr ""
1005+#~ "Pokud bude heslo zadáno nesprávně, bude telefon obnoven do továrního "
1006+#~ "nastavení a všechna osobní data budou smazána."
1007+
1008+#~ msgid "Enter passphrase"
1009+#~ msgstr "Vložte heslo"
1010+
1011+#~ msgid "Enter passcode"
1012+#~ msgstr "Vložte heslo"
1013+
1014+#, qt-format
1015+#~ msgid "Sorry, incorrect %1"
1016+#~ msgstr "Špatné %1"
1017+
1018+#~ msgid "Sorry, incorrect passphrase"
1019+#~ msgstr "Špatné heslo"
1020+
9621021#~ msgid "Please re-enter"
9631022#~ msgstr "Vložte znovu"
9641023
1024+#~ msgid "Sorry, incorrect passcode"
1025+#~ msgstr "Špatné heslo"
1026+
9651027#~ msgid "Unlock SIM"
9661028#~ msgstr "Odemknout SIM"
9671029
po/cy.po+226−160
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+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,10 +16,10 @@ 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-06-19 05:55+0000\n"
20−"X-Generator: Launchpad (build 18097)\n"
19+"X-Launchpad-Export-Date: 2016-09-27 07:05+0000\n"
20+"X-Generator: Launchpad (build 18204)\n"
2121
22−#: plugins/IntegratedLightDM/Greeter.cpp:112
22+#: plugins/LightDM/Greeter.cpp:123
2323msgid "Password: "
2424msgstr "Cyfrinair: "
2525
@@ -36,77 +36,55 @@ msgstr ""
3636msgid "Unpin shortcut"
3737msgstr "Dadbinio llwybr byr"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
40−msgid "Device Locked"
41−msgstr "Dyfais ar glo"
42−
43−#: qml/Components/DelayedLockscreen.qml:64
44−msgid "You have been locked out due to too many failed passphrase attempts."
45−msgstr ""
46−"Cawsoch eich cloi allan am gyflwyno cyfrinair anghywir ormod o weithiau."
47−
48−#: qml/Components/DelayedLockscreen.qml:65
49−msgid "You have been locked out due to too many failed passcode attempts."
50−msgstr ""
51−"Cawsoch eich cloi allan am gyflwyno côd mynediad anghywir ormod o weithiau."
52−
53−#: qml/Components/DelayedLockscreen.qml:74
54−#, qt-format
55−msgid "Please wait %1 minute and then try again…"
56−msgid_plural "Please wait %1 minutes and then try again…"
57−msgstr[0] "Arhoswch am %1 munud cyn cynnig eto..."
58−msgstr[1] "Arhoswch am %1 munud cyn cynnig eto..."
59−msgstr[2] "Arhoswch am %1 munud cyn cynnig eto..."
60−msgstr[3] "Arhoswch am %1 munud cyn cynnig eto..."
61−
62−#: qml/Components/Dialogs.qml:146
39+#: qml/Components/Dialogs.qml:149
6340msgctxt "Title: Lock/Log out dialog"
6441msgid "Log out"
6542msgstr "Allgofnodi"
6643
67−#: qml/Components/Dialogs.qml:147
44+#: qml/Components/Dialogs.qml:150
6845msgid "Are you sure you want to log out?"
6946msgstr "Ydych chi'n sicr eich bod am allgofnodi?"
7047
71−#: qml/Components/Dialogs.qml:149
48+#: qml/Components/Dialogs.qml:152
7249msgctxt "Button: Lock the system"
7350msgid "Lock"
7451msgstr "Cloi"
7552
76−#: qml/Components/Dialogs.qml:156
53+#: qml/Components/Dialogs.qml:159
7754msgctxt "Button: Log out from the system"
7855msgid "Log Out"
7956msgstr "Allgofnodi"
8057
81−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
82−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
58+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
59+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
60+#: qml/Wizard/Pages/passcode-confirm.qml:32
8361#: qml/Wizard/Pages/passcode-set.qml:32
8462msgid "Cancel"
8563msgstr "Diddymu"
8664
87−#: qml/Components/Dialogs.qml:175
65+#: qml/Components/Dialogs.qml:178
8866msgctxt "Title: Reboot dialog"
8967msgid "Reboot"
9068msgstr "Ailgychwyn"
9169
92−#: qml/Components/Dialogs.qml:176
70+#: qml/Components/Dialogs.qml:179
9371msgid "Are you sure you want to reboot?"
9472msgstr "Ydych chi'n sicr eich bod am ailgychwyn?"
9573
96−#: qml/Components/Dialogs.qml:178
74+#: qml/Components/Dialogs.qml:181
9775msgid "No"
9876msgstr "Na"
9977
100−#: qml/Components/Dialogs.qml:184
78+#: qml/Components/Dialogs.qml:187
10179msgid "Yes"
10280msgstr "Ydw"
10381
104−#: qml/Components/Dialogs.qml:199
82+#: qml/Components/Dialogs.qml:202
10583msgctxt "Title: Power off/Restart dialog"
10684msgid "Power"
10785msgstr "Pŵer"
10886
109−#: qml/Components/Dialogs.qml:200
87+#: qml/Components/Dialogs.qml:203
11088msgid ""
11189"Are you sure you would like\n"
11290"to power off?"
@@ -114,12 +92,12 @@ msgstr ""
11492"Ydych chi'n sicr eich bod am\n"
11593"ddiffodd y pŵer?"
11694
117−#: qml/Components/Dialogs.qml:202
95+#: qml/Components/Dialogs.qml:205
11896msgctxt "Button: Power off the system"
11997msgid "Power off"
12098msgstr "Diffodd y pŵer"
12199
122−#: qml/Components/Dialogs.qml:211
100+#: qml/Components/Dialogs.qml:214
123101msgctxt "Button: Restart the system"
124102msgid "Restart"
125103msgstr "Ailgychwyn"
@@ -284,18 +262,28 @@ msgstr ""
284262msgid "Closes the current window."
285263msgstr ""
286264
287−#: qml/Components/Lockscreen.qml:231
265+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
288266msgid "Return to Call"
289267msgstr "Nôl i'r alwad"
290268
291−#: qml/Components/Lockscreen.qml:231
269+#: qml/Components/Lockscreen.qml:212
292270msgid "Emergency Call"
293271msgstr "Galwad Frys"
294272
295−#: qml/Components/Lockscreen.qml:263
273+#: qml/Components/Lockscreen.qml:244
296274msgid "OK"
297275msgstr "Iawn"
298276
277+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
278+#, qt-format
279+msgid "%1:%2:%3"
280+msgstr ""
281+
282+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
283+#, qt-format
284+msgid "%1:%2"
285+msgstr ""
286+
299287#: qml/Components/ModeSwitchWarningDialog.qml:32
300288msgid "Apps may have unsaved data:"
301289msgstr ""
@@ -322,55 +310,59 @@ msgstr ""
322310msgid "Close all"
323311msgstr ""
324312
325−#: qml/Dash/DashPageHeader.qml:333
313+#: qml/Components/SharingPicker.qml:54
314+msgid "Preview Share Item"
315+msgstr ""
316+
317+#: qml/Dash/DashPageHeader.qml:362
326318msgctxt "Button: Open the Ubuntu Store"
327319msgid "Store"
328320msgstr "Marchnad"
329321
330−#: qml/Dash/DashPageHeader.qml:340
322+#: qml/Dash/DashPageHeader.qml:369
331323msgctxt "Button: Start a search in the current dash scope"
332324msgid "Search"
333325msgstr "Chwilio"
334326
335−#: qml/Dash/DashPageHeader.qml:350
327+#: qml/Dash/DashPageHeader.qml:379
336328msgctxt "Button: Show the current dash scope settings"
337329msgid "Settings"
338330msgstr "Gosodiadau"
339331
340−#: qml/Dash/DashPageHeader.qml:357
332+#: qml/Dash/DashPageHeader.qml:386
341333msgid "Remove from Favorites"
342334msgstr "Tynnu o Ffefrynnau"
343335
344−#: qml/Dash/DashPageHeader.qml:357
336+#: qml/Dash/DashPageHeader.qml:386
345337msgid "Add to Favorites"
346338msgstr "Ychwanegu at Ffefrynnau"
347339
348−#: qml/Dash/FiltersPopover.qml:60
340+#: qml/Dash/FiltersPopover.qml:61
349341msgid "Refine your results"
350342msgstr ""
351343
352−#: qml/Dash/FiltersPopover.qml:69
344+#: qml/Dash/FiltersPopover.qml:70
353345msgid "Reset"
354346msgstr ""
355347
356−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
348+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
357349msgid "Show less"
358350msgstr ""
359351
360−#: qml/Dash/GenericScopeView.qml:580
352+#: qml/Dash/GenericScopeView.qml:586
361353msgid "Show all"
362354msgstr ""
363355
364−#: qml/Dash/GenericScopeView.qml:637
356+#: qml/Dash/GenericScopeView.qml:643
365357msgctxt "Label: Hint for dash search line edit"
366358msgid "Search"
367359msgstr "Chwilio"
368360
369−#: qml/Dash/PageHeaderExtraPanel.qml:56
361+#: qml/Dash/PageHeaderExtraPanel.qml:57
370362msgid "Recent Searches"
371363msgstr ""
372364
373−#: qml/Dash/PageHeaderExtraPanel.qml:67
365+#: qml/Dash/PageHeaderExtraPanel.qml:68
374366msgid "Clear All"
375367msgstr ""
376368
@@ -382,28 +374,24 @@ msgstr "Mwy..."
382374msgid "Less..."
383375msgstr "Llai..."
384376
385−#: qml/Dash/Previews/PreviewCommentInput.qml:68
386−#: qml/Dash/Previews/PreviewRatingInput.qml:175
377+#: qml/Dash/Previews/PreviewCommentInput.qml:83
378+#: qml/Dash/Previews/PreviewRatingInput.qml:201
387379msgid "Send"
388380msgstr "Anfon"
389381
390−#: qml/Dash/Previews/PreviewRatingInput.qml:82
382+#: qml/Dash/Previews/PreviewRatingInput.qml:108
391383msgid "Rate this"
392384msgstr "Graddio hwn"
393385
394−#: qml/Dash/Previews/PreviewRatingInput.qml:157
386+#: qml/Dash/Previews/PreviewRatingInput.qml:183
395387msgid "Add a review"
396388msgstr "Ychwanegu adolygiad"
397389
398−#: qml/Dash/Previews/PreviewSharing.qml:66
399−msgid "Preview Share Item"
400−msgstr ""
401−
402−#: qml/Dash/PullToRefreshScopeStyle.qml:55
390+#: qml/Dash/PullToRefreshScopeStyle.qml:56
403391msgid "Pull to refresh…"
404392msgstr "Tynnwch i adnewyddu..."
405393
406−#: qml/Dash/PullToRefreshScopeStyle.qml:60
394+#: qml/Dash/PullToRefreshScopeStyle.qml:61
407395msgid "Release to refresh…"
408396msgstr "Rhyddhewch i adnewyddu..."
409397
@@ -411,15 +399,15 @@ msgstr "Rhyddhewch i adnewyddu..."
411399msgid "Enable location data"
412400msgstr "Galluogi data lleoliad"
413401
414−#: qml/Dash/ScopesList.qml:55
402+#: qml/Dash/ScopesList.qml:57
415403msgid "Manage"
416404msgstr "Rheoli"
417405
418−#: qml/Dash/ScopesList.qml:101
406+#: qml/Dash/ScopesList.qml:104
419407msgid "Home"
420408msgstr "Cartref"
421409
422−#: qml/Dash/ScopesList.qml:102
410+#: qml/Dash/ScopesList.qml:105
423411msgid "Also installed"
424412msgstr "Hefyd wedi gosod"
425413
@@ -429,76 +417,60 @@ msgid ""
429417"touch pad to interact with the pointer."
430418msgstr ""
431419
432−#: qml/Greeter/CoverPage.qml:119
420+#: qml/Greeter/CoverPage.qml:127
433421msgid "Unlock"
434422msgstr "Datgloi"
435423
436−#: qml/Greeter/LoginList.qml:259
437−msgid "Retry"
438−msgstr "Ailgynnig"
424+#: qml/Greeter/DelayedLockscreen.qml:43
425+msgid "Device Locked"
426+msgstr "Dyfais ar glo"
439427
440−#: qml/Greeter/LoginList.qml:260
441−msgid "Log In"
428+#: qml/Greeter/DelayedLockscreen.qml:58
429+msgid "You have been locked out due to too many failed passphrase attempts."
442430msgstr ""
431+"Cawsoch eich cloi allan am gyflwyno cyfrinair anghywir ormod o weithiau."
443432
444−#: qml/Greeter/NarrowView.qml:54
445−msgid "Sorry, incorrect passphrase."
446−msgstr "Cyfrinair anghywir"
447−
448−#: qml/Greeter/NarrowView.qml:55
449−msgid "Sorry, incorrect passcode."
450−msgstr "Cod cyfrinachol anghywir"
433+#: qml/Greeter/DelayedLockscreen.qml:59
434+msgid "You have been locked out due to too many failed passcode attempts."
435+msgstr ""
436+"Cawsoch eich cloi allan am gyflwyno côd mynediad anghywir ormod o weithiau."
451437
452−#: qml/Greeter/NarrowView.qml:56
453−msgid "This will be your last attempt."
454−msgstr "Hwn yw eich ymgais olaf"
438+#: qml/Greeter/DelayedLockscreen.qml:68
439+#, qt-format
440+msgid "Please wait %1 minute and then try again…"
441+msgid_plural "Please wait %1 minutes and then try again…"
442+msgstr[0] "Arhoswch am %1 munud cyn cynnig eto..."
443+msgstr[1] "Arhoswch am %1 munud cyn cynnig eto..."
444+msgstr[2] "Arhoswch am %1 munud cyn cynnig eto..."
445+msgstr[3] "Arhoswch am %1 munud cyn cynnig eto..."
455446
456−#: qml/Greeter/NarrowView.qml:58
457−msgid ""
458−"If passphrase is entered incorrectly, your phone will conduct a factory "
459−"reset and all personal data will be deleted."
447+#: qml/Greeter/Greeter.qml:596
448+msgid "Try again"
460449msgstr ""
461−"Os fydd y cyfrinair yn anghywir bydd eich ffôn yn cael ei ailosod i gyflwr "
462−"ffatri a bydd data personol yn cael ei ddileu."
463450
464−#: qml/Greeter/NarrowView.qml:59
465−msgid ""
466−"If passcode is entered incorrectly, your phone will conduct a factory reset "
467−"and all personal data will be deleted."
451+#: qml/Greeter/LoginList.qml:70
452+msgid "Passphrase"
468453msgstr ""
469−"Os fydd y cod cyfrinachol yn anghywir bydd eich ffôn yn cael ei ailosod i "
470−"gyflwr ffatri a bydd data personol yn cael ei ddileu."
471−
472−#: qml/Greeter/NarrowView.qml:116
473−#, qt-format
474−msgid "Enter %1"
475−msgstr "Rhowch %1"
476454
477−#: qml/Greeter/NarrowView.qml:117
478−msgid "Enter passphrase"
479−msgstr "Rhowch gyfrinair"
480−
481−#: qml/Greeter/NarrowView.qml:118
482−msgid "Enter passcode"
483−msgstr "Rhowch god cyfrinachol"
455+#: qml/Greeter/LoginList.qml:71
456+msgid "Passcode"
457+msgstr ""
484458
485−#: qml/Greeter/NarrowView.qml:119
486−#, qt-format
487−msgid "Sorry, incorrect %1"
488−msgstr "%1 anghywir"
459+#: qml/Greeter/LoginList.qml:98
460+msgid "Retry"
461+msgstr "Ailgynnig"
489462
490−#: qml/Greeter/NarrowView.qml:120
491−msgid "Sorry, incorrect passphrase"
492−msgstr "Cyfrinair anghywir"
463+#: qml/Greeter/LoginList.qml:99
464+msgid "Log In"
465+msgstr ""
493466
494−#: qml/Greeter/NarrowView.qml:121
495−msgctxt "passphrase"
496−msgid "Please re-enter"
497−msgstr "Ceisiwch eto"
467+#: qml/Greeter/NarrowView.qml:252
468+msgid "Emergency"
469+msgstr ""
498470
499−#: qml/Greeter/NarrowView.qml:122
500−msgid "Sorry, incorrect passcode"
501−msgstr "Cod cyfrinachol anghywir"
471+#: qml/Greeter/SessionsList.qml:122
472+msgid "Select desktop environment"
473+msgstr ""
502474
503475#: qml/Notifications/NotificationMenuItemFactory.qml:124
504476msgid "Show password"
@@ -622,40 +594,54 @@ msgctxt "Button: Go back one page in the Wizard"
622594msgid "Back"
623595msgstr "Nôl"
624596
625−#: qml/Wizard/Pages/10-welcome.qml:27
597+#: qml/Wizard/Pages/10-welcome.qml:28
626598msgid "Language"
627599msgstr ""
628600
629−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
630−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
631−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
601+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
602+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
603+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
604+#: qml/Wizard/Pages/70-passwd-type.qml:145
632605#: qml/Wizard/Pages/75-report-check.qml:84
633−#: qml/Wizard/Pages/passcode-desktop.qml:124
634−#: qml/Wizard/Pages/password-set.qml:141
606+#: qml/Wizard/Pages/passcode-desktop.qml:142
607+#: qml/Wizard/Pages/password-set.qml:142
635608msgid "Next"
636609msgstr ""
637610
638−#: qml/Wizard/Pages/30-wifi.qml:29
611+#: qml/Wizard/Pages/20-keyboard.qml:31
612+msgid "Select Keyboard"
613+msgstr ""
614+
615+#: qml/Wizard/Pages/20-keyboard.qml:71
616+msgid "Keyboard language"
617+msgstr ""
618+
619+#: qml/Wizard/Pages/20-keyboard.qml:93
620+msgid "Keyboard layout"
621+msgstr ""
622+
623+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
624+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
625+#: qml/Wizard/Pages/sim.qml:101
626+msgid "Skip"
627+msgstr "Neidio"
628+
629+#: qml/Wizard/Pages/30-wifi.qml:31
639630msgid "Connect to Wi‑Fi"
640631msgstr "Cysylltu â diwifr"
641632
642−#: qml/Wizard/Pages/30-wifi.qml:130
633+#: qml/Wizard/Pages/30-wifi.qml:132
643634msgid "Connected"
644635msgstr ""
645636
646−#: qml/Wizard/Pages/30-wifi.qml:163
637+#: qml/Wizard/Pages/30-wifi.qml:165
647638msgid "Available Wi-Fi networks"
648639msgstr ""
649640
650−#: qml/Wizard/Pages/30-wifi.qml:164
641+#: qml/Wizard/Pages/30-wifi.qml:166
651642msgid "No available Wi-Fi networks"
652643msgstr ""
653644
654−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
655−#: qml/Wizard/Pages/sim.qml:101
656−msgid "Skip"
657−msgstr "Neidio"
658−
659645#: qml/Wizard/Pages/40-location.qml:27
660646msgid "Location Services"
661647msgstr ""
@@ -688,11 +674,11 @@ msgstr ""
688674msgid "You can change it later in System Settings."
689675msgstr ""
690676
691−#: qml/Wizard/Pages/50-timezone.qml:29
677+#: qml/Wizard/Pages/50-timezone.qml:30
692678msgid "Time Zone"
693679msgstr ""
694680
695−#: qml/Wizard/Pages/50-timezone.qml:181
681+#: qml/Wizard/Pages/50-timezone.qml:182
696682msgid "Enter your city"
697683msgstr ""
698684
@@ -704,21 +690,21 @@ msgstr ""
704690msgid "Preferred Name"
705691msgstr ""
706692
707−#: qml/Wizard/Pages/70-passwd-type.qml:39
693+#: qml/Wizard/Pages/70-passwd-type.qml:40
708694msgid "Lock Screen"
709695msgstr ""
710696
711−#: qml/Wizard/Pages/70-passwd-type.qml:101
697+#: qml/Wizard/Pages/70-passwd-type.qml:102
712698msgctxt "Label: Type of security method"
713699msgid "Create new password"
714700msgstr ""
715701
716−#: qml/Wizard/Pages/70-passwd-type.qml:103
702+#: qml/Wizard/Pages/70-passwd-type.qml:104
717703msgctxt "Label: Type of security method"
718704msgid "Create passcode (numbers only)"
719705msgstr ""
720706
721−#: qml/Wizard/Pages/70-passwd-type.qml:105
707+#: qml/Wizard/Pages/70-passwd-type.qml:106
722708msgctxt "Label: Type of security method"
723709msgid "No lock code"
724710msgstr ""
@@ -739,6 +725,35 @@ msgstr ""
739725msgid "Privacy policy"
740726msgstr ""
741727
728+#: qml/Wizard/Pages/77-system-update.qml:28
729+msgid "Update Device"
730+msgstr ""
731+
732+#: qml/Wizard/Pages/77-system-update.qml:55
733+msgid ""
734+"There is a system update available and ready to install. Afterwards, the "
735+"device will automatically restart."
736+msgstr ""
737+
738+#: qml/Wizard/Pages/77-system-update.qml:76
739+msgctxt "string identifying name of the update"
740+msgid "Ubuntu system"
741+msgstr ""
742+
743+#: qml/Wizard/Pages/77-system-update.qml:83
744+#, qt-format
745+msgctxt "version of the system update"
746+msgid "Version %1"
747+msgstr ""
748+
749+#: qml/Wizard/Pages/77-system-update.qml:102
750+msgid "This could take a few minutes..."
751+msgstr ""
752+
753+#: qml/Wizard/Pages/77-system-update.qml:116
754+msgid "Install and restart now"
755+msgstr ""
756+
742757#: qml/Wizard/Pages/80-finished.qml:89
743758msgid "Welcome to Ubuntu"
744759msgstr ""
@@ -782,7 +797,7 @@ msgid "Service Terms"
782797msgstr ""
783798
784799#: qml/Wizard/Pages/passcode-confirm.qml:43
785−#: qml/Wizard/Pages/passcode-desktop.qml:80
800+#: qml/Wizard/Pages/passcode-desktop.qml:97
786801msgid "Confirm passcode"
787802msgstr "Cadarnhau cod cyfrinachol"
788803
@@ -795,28 +810,28 @@ msgctxt "Enter the passcode again"
795810msgid "Please re-enter."
796811msgstr ""
797812
798−#: qml/Wizard/Pages/passcode-desktop.qml:30
813+#: qml/Wizard/Pages/passcode-desktop.qml:31
799814msgid "Lock Screen Passcode"
800815msgstr ""
801816
802−#: qml/Wizard/Pages/passcode-desktop.qml:56
817+#: qml/Wizard/Pages/passcode-desktop.qml:61
803818msgid "Enter 4 numbers to setup your passcode"
804819msgstr ""
805820
806−#: qml/Wizard/Pages/passcode-desktop.qml:65
821+#: qml/Wizard/Pages/passcode-desktop.qml:77
807822#: qml/Wizard/Pages/passcode-set.qml:54
808823msgid "Choose passcode"
809824msgstr ""
810825
811−#: qml/Wizard/Pages/passcode-desktop.qml:105
826+#: qml/Wizard/Pages/passcode-desktop.qml:127
812827msgid "Passcode too short"
813828msgstr ""
814829
815−#: qml/Wizard/Pages/passcode-desktop.qml:107
830+#: qml/Wizard/Pages/passcode-desktop.qml:129
816831msgid "Passcodes match"
817832msgstr ""
818833
819−#: qml/Wizard/Pages/passcode-desktop.qml:109
834+#: qml/Wizard/Pages/passcode-desktop.qml:131
820835msgid "Passcodes do not match"
821836msgstr ""
822837
@@ -824,19 +839,19 @@ msgstr ""
824839msgid "Passcode must be 4 characters long"
825840msgstr ""
826841
827−#: qml/Wizard/Pages/password-set.qml:30
842+#: qml/Wizard/Pages/password-set.qml:31
828843msgid "Lock Screen Password"
829844msgstr ""
830845
831−#: qml/Wizard/Pages/password-set.qml:61
846+#: qml/Wizard/Pages/password-set.qml:62
832847msgid "Enter at least 8 characters"
833848msgstr ""
834849
835−#: qml/Wizard/Pages/password-set.qml:73
850+#: qml/Wizard/Pages/password-set.qml:74
836851msgid "Choose password"
837852msgstr ""
838853
839−#: qml/Wizard/Pages/password-set.qml:103
854+#: qml/Wizard/Pages/password-set.qml:104
840855msgid "Confirm password"
841856msgstr ""
842857
@@ -865,26 +880,30 @@ msgid "To proceed with no SIM tap Skip."
865880msgstr ""
866881
867882#: qml/Wizard/PasswordMeter.qml:87
868−msgid "Passwords match"
883+msgid "Password too short"
869884msgstr ""
870885
871886#: qml/Wizard/PasswordMeter.qml:89
887+msgid "Passwords match"
888+msgstr ""
889+
890+#: qml/Wizard/PasswordMeter.qml:91
872891msgid "Passwords do not match"
873892msgstr ""
874893
875−#: qml/Wizard/PasswordMeter.qml:93
894+#: qml/Wizard/PasswordMeter.qml:95
876895msgid "Strong password"
877896msgstr ""
878897
879−#: qml/Wizard/PasswordMeter.qml:95
898+#: qml/Wizard/PasswordMeter.qml:97
880899msgid "Fair password"
881900msgstr ""
882901
883−#: qml/Wizard/PasswordMeter.qml:97
902+#: qml/Wizard/PasswordMeter.qml:99
884903msgid "Weak password"
885904msgstr ""
886905
887−#: qml/Wizard/PasswordMeter.qml:99
906+#: qml/Wizard/PasswordMeter.qml:101
888907msgid "Very weak password"
889908msgstr ""
890909
@@ -942,6 +961,53 @@ msgstr ""
942961#~ msgid "Tap to unlock"
943962#~ msgstr "Tapiwch i ddatgloi"
944963
964+#~ msgid "Sorry, incorrect passphrase."
965+#~ msgstr "Cyfrinair anghywir"
966+
967+#, qt-format
968+#~ msgid "Enter %1"
969+#~ msgstr "Rhowch %1"
970+
971+#~ msgid "Sorry, incorrect passphrase"
972+#~ msgstr "Cyfrinair anghywir"
973+
974+#~ msgctxt "passphrase"
975+#~ msgid "Please re-enter"
976+#~ msgstr "Ceisiwch eto"
977+
978+#~ msgid "Sorry, incorrect passcode."
979+#~ msgstr "Cod cyfrinachol anghywir"
980+
981+#~ msgid "Enter passphrase"
982+#~ msgstr "Rhowch gyfrinair"
983+
984+#~ msgid "Enter passcode"
985+#~ msgstr "Rhowch god cyfrinachol"
986+
987+#, qt-format
988+#~ msgid "Sorry, incorrect %1"
989+#~ msgstr "%1 anghywir"
990+
991+#~ msgid ""
992+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
993+#~ "and all personal data will be deleted."
994+#~ msgstr ""
995+#~ "Os fydd y cod cyfrinachol yn anghywir bydd eich ffôn yn cael ei ailosod i "
996+#~ "gyflwr ffatri a bydd data personol yn cael ei ddileu."
997+
998+#~ msgid ""
999+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1000+#~ "reset and all personal data will be deleted."
1001+#~ msgstr ""
1002+#~ "Os fydd y cyfrinair yn anghywir bydd eich ffôn yn cael ei ailosod i gyflwr "
1003+#~ "ffatri a bydd data personol yn cael ei ddileu."
1004+
1005+#~ msgid "This will be your last attempt."
1006+#~ msgstr "Hwn yw eich ymgais olaf"
1007+
1008+#~ msgid "Sorry, incorrect passcode"
1009+#~ msgstr "Cod cyfrinachol anghywir"
1010+
9451011#~ msgid "This action does different things for different apps"
9461012#~ msgstr "Mae'r weithred hon yn gwneud pethau gwahanol mewn apiau gwahanol"
9471013
po/da.po+221−159
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2016-06-17 01:22+0000\n"
11+"POT-Creation-Date: 2016-09-22 07:46+0000\n"
1212"PO-Revision-Date: 2015-07-06 12:05+0000\n"
1313"Last-Translator: Folmer Fredslund <Unknown>\n"
1414"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -16,10 +16,10 @@ msgstr ""
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2016-06-19 05:54+0000\n"
20−"X-Generator: Launchpad (build 18097)\n"
19+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
20+"X-Generator: Launchpad (build 18204)\n"
2121
22−#: plugins/IntegratedLightDM/Greeter.cpp:112
22+#: plugins/LightDM/Greeter.cpp:123
2323msgid "Password: "
2424msgstr "Adgangskode: "
2525
@@ -36,77 +36,55 @@ msgstr ""
3636msgid "Unpin shortcut"
3737msgstr "Gør genvej flytbar"
3838
39−#: qml/Components/DelayedLockscreen.qml:49
40−msgid "Device Locked"
41−msgstr "Enheden er låst"
42−
43−#: qml/Components/DelayedLockscreen.qml:64
44−msgid "You have been locked out due to too many failed passphrase attempts."
45−msgstr ""
46−"Du er blevet låst ude på grund af for mange fejlslagne forsøg på at angive "
47−"adgangskode."
48−
49−#: qml/Components/DelayedLockscreen.qml:65
50−msgid "You have been locked out due to too many failed passcode attempts."
51−msgstr ""
52−"Du er blevet låst ude på grund af for mange fejlslagne forsøg på at angive "
53−"adgangskode."
54−
55−#: qml/Components/DelayedLockscreen.qml:74
56−#, qt-format
57−msgid "Please wait %1 minute and then try again…"
58−msgid_plural "Please wait %1 minutes and then try again…"
59−msgstr[0] "Vent venligst %1 minut og prøv igen..."
60−msgstr[1] "Vent venligst %1 minutter og prøv igen..."
61−
62−#: qml/Components/Dialogs.qml:146
39+#: qml/Components/Dialogs.qml:149
6340msgctxt "Title: Lock/Log out dialog"
6441msgid "Log out"
6542msgstr "Log af"
6643
67−#: qml/Components/Dialogs.qml:147
44+#: qml/Components/Dialogs.qml:150
6845msgid "Are you sure you want to log out?"
6946msgstr "Vil du logge ud?"
7047
71−#: qml/Components/Dialogs.qml:149
48+#: qml/Components/Dialogs.qml:152
7249msgctxt "Button: Lock the system"
7350msgid "Lock"
7451msgstr "Lås"
7552
76−#: qml/Components/Dialogs.qml:156
53+#: qml/Components/Dialogs.qml:159
7754msgctxt "Button: Log out from the system"
7855msgid "Log Out"
7956msgstr "Log af"
8057
81−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
82−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
58+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
59+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
60+#: qml/Wizard/Pages/passcode-confirm.qml:32
8361#: qml/Wizard/Pages/passcode-set.qml:32
8462msgid "Cancel"
8563msgstr "Annullér"
8664
87−#: qml/Components/Dialogs.qml:175
65+#: qml/Components/Dialogs.qml:178
8866msgctxt "Title: Reboot dialog"
8967msgid "Reboot"
9068msgstr "Genstart"
9169
92−#: qml/Components/Dialogs.qml:176
70+#: qml/Components/Dialogs.qml:179
9371msgid "Are you sure you want to reboot?"
9472msgstr "Er du sikker på du vil genstarte?"
9573
96−#: qml/Components/Dialogs.qml:178
74+#: qml/Components/Dialogs.qml:181
9775msgid "No"
9876msgstr "Nej"
9977
100−#: qml/Components/Dialogs.qml:184
78+#: qml/Components/Dialogs.qml:187
10179msgid "Yes"
10280msgstr "Ja"
10381
104−#: qml/Components/Dialogs.qml:199
82+#: qml/Components/Dialogs.qml:202
10583msgctxt "Title: Power off/Restart dialog"
10684msgid "Power"
10785msgstr "Sluk/genstart"
10886
109−#: qml/Components/Dialogs.qml:200
87+#: qml/Components/Dialogs.qml:203
11088msgid ""
11189"Are you sure you would like\n"
11290"to power off?"
@@ -114,12 +92,12 @@ msgstr ""
11492"Er du sikker på at du vil\n"
11593"slukke enheden?"
11694
117−#: qml/Components/Dialogs.qml:202
95+#: qml/Components/Dialogs.qml:205
11896msgctxt "Button: Power off the system"
11997msgid "Power off"
12098msgstr "Luk ned"
12199
122−#: qml/Components/Dialogs.qml:211
100+#: qml/Components/Dialogs.qml:214
123101msgctxt "Button: Restart the system"
124102msgid "Restart"
125103msgstr "Genstart"
@@ -284,18 +262,28 @@ msgstr ""
284262msgid "Closes the current window."
285263msgstr ""
286264
287−#: qml/Components/Lockscreen.qml:231
265+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
288266msgid "Return to Call"
289267msgstr "Vend tilbage til opkald"
290268
291−#: qml/Components/Lockscreen.qml:231
269+#: qml/Components/Lockscreen.qml:212
292270msgid "Emergency Call"
293271msgstr "Nødopkald"
294272
295−#: qml/Components/Lockscreen.qml:263
273+#: qml/Components/Lockscreen.qml:244
296274msgid "OK"
297275msgstr "Ok"
298276
277+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
278+#, qt-format
279+msgid "%1:%2:%3"
280+msgstr ""
281+
282+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
283+#, qt-format
284+msgid "%1:%2"
285+msgstr ""
286+
299287#: qml/Components/ModeSwitchWarningDialog.qml:32
300288msgid "Apps may have unsaved data:"
301289msgstr ""
@@ -322,55 +310,59 @@ msgstr ""
322310msgid "Close all"
323311msgstr ""
324312
325−#: qml/Dash/DashPageHeader.qml:333
313+#: qml/Components/SharingPicker.qml:54
314+msgid "Preview Share Item"
315+msgstr ""
316+
317+#: qml/Dash/DashPageHeader.qml:362
326318msgctxt "Button: Open the Ubuntu Store"
327319msgid "Store"
328320msgstr "Butik"
329321
330−#: qml/Dash/DashPageHeader.qml:340
322+#: qml/Dash/DashPageHeader.qml:369
331323msgctxt "Button: Start a search in the current dash scope"
332324msgid "Search"
333325msgstr "Søg"
334326
335−#: qml/Dash/DashPageHeader.qml:350
327+#: qml/Dash/DashPageHeader.qml:379
336328msgctxt "Button: Show the current dash scope settings"
337329msgid "Settings"
338330msgstr "Indstillinger"
339331
340−#: qml/Dash/DashPageHeader.qml:357
332+#: qml/Dash/DashPageHeader.qml:386
341333msgid "Remove from Favorites"
342334msgstr "Fjern fra Favoritter"
343335
344−#: qml/Dash/DashPageHeader.qml:357
336+#: qml/Dash/DashPageHeader.qml:386
345337msgid "Add to Favorites"
346338msgstr "Tilføj til Favoritter"
347339
348−#: qml/Dash/FiltersPopover.qml:60
340+#: qml/Dash/FiltersPopover.qml:61
349341msgid "Refine your results"
350342msgstr ""
351343
352−#: qml/Dash/FiltersPopover.qml:69
344+#: qml/Dash/FiltersPopover.qml:70
353345msgid "Reset"
354346msgstr ""
355347
356−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
348+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
357349msgid "Show less"
358350msgstr ""
359351
360−#: qml/Dash/GenericScopeView.qml:580
352+#: qml/Dash/GenericScopeView.qml:586
361353msgid "Show all"
362354msgstr ""
363355
364−#: qml/Dash/GenericScopeView.qml:637
356+#: qml/Dash/GenericScopeView.qml:643
365357msgctxt "Label: Hint for dash search line edit"
366358msgid "Search"
367359msgstr "Søg"
368360
369−#: qml/Dash/PageHeaderExtraPanel.qml:56
361+#: qml/Dash/PageHeaderExtraPanel.qml:57
370362msgid "Recent Searches"
371363msgstr ""
372364
373−#: qml/Dash/PageHeaderExtraPanel.qml:67
365+#: qml/Dash/PageHeaderExtraPanel.qml:68
374366msgid "Clear All"
375367msgstr ""
376368
@@ -382,28 +374,24 @@ msgstr "Mere..."
382374msgid "Less..."
383375msgstr "Mindre..."
384376
385−#: qml/Dash/Previews/PreviewCommentInput.qml:68
386−#: qml/Dash/Previews/PreviewRatingInput.qml:175
377+#: qml/Dash/Previews/PreviewCommentInput.qml:83
378+#: qml/Dash/Previews/PreviewRatingInput.qml:201
387379msgid "Send"
388380msgstr "Send"
389381
390−#: qml/Dash/Previews/PreviewRatingInput.qml:82
382+#: qml/Dash/Previews/PreviewRatingInput.qml:108
391383msgid "Rate this"
392384msgstr "Bedøm dette"
393385
394−#: qml/Dash/Previews/PreviewRatingInput.qml:157
386+#: qml/Dash/Previews/PreviewRatingInput.qml:183
395387msgid "Add a review"
396388msgstr "Tilføj en anmeldelse"
397389
398−#: qml/Dash/Previews/PreviewSharing.qml:66
399−msgid "Preview Share Item"
400−msgstr ""
401−
402−#: qml/Dash/PullToRefreshScopeStyle.qml:55
390+#: qml/Dash/PullToRefreshScopeStyle.qml:56
403391msgid "Pull to refresh…"
404392msgstr "Træk ned for at genindlæse..."
405393
406−#: qml/Dash/PullToRefreshScopeStyle.qml:60
394+#: qml/Dash/PullToRefreshScopeStyle.qml:61
407395msgid "Release to refresh…"
408396msgstr "Giv slip for at genindlæse..."
409397
@@ -411,15 +399,15 @@ msgstr "Giv slip for at genindlæse..."
411399msgid "Enable location data"
412400msgstr "Aktivér lokationsdata"
413401
414−#: qml/Dash/ScopesList.qml:55
402+#: qml/Dash/ScopesList.qml:57
415403msgid "Manage"
416404msgstr "Administrér"
417405
418−#: qml/Dash/ScopesList.qml:101
406+#: qml/Dash/ScopesList.qml:104
419407msgid "Home"
420408msgstr "Hjem"
421409
422−#: qml/Dash/ScopesList.qml:102
410+#: qml/Dash/ScopesList.qml:105
423411msgid "Also installed"
424412msgstr "Også installeret"
425413
@@ -429,76 +417,60 @@ msgid ""
429417"touch pad to interact with the pointer."
430418msgstr ""
431419
432−#: qml/Greeter/CoverPage.qml:119
420+#: qml/Greeter/CoverPage.qml:127
433421msgid "Unlock"
434422msgstr "Lås op"
435423
436−#: qml/Greeter/LoginList.qml:259
437−msgid "Retry"
438−msgstr "Forsøg igen"
424+#: qml/Greeter/DelayedLockscreen.qml:43
425+msgid "Device Locked"
426+msgstr "Enheden er låst"
439427
440−#: qml/Greeter/LoginList.qml:260
441−msgid "Log In"
428+#: qml/Greeter/DelayedLockscreen.qml:58
429+msgid "You have been locked out due to too many failed passphrase attempts."
442430msgstr ""
431+"Du er blevet låst ude på grund af for mange fejlslagne forsøg på at angive "
432+"adgangskode."
443433
444−#: qml/Greeter/NarrowView.qml:54
445−msgid "Sorry, incorrect passphrase."
446−msgstr "Beklager, forkert adgangsfrase."
447−
448−#: qml/Greeter/NarrowView.qml:55
449−msgid "Sorry, incorrect passcode."
450−msgstr "Beklager, forkert adgangskode."
434+#: qml/Greeter/DelayedLockscreen.qml:59
435+msgid "You have been locked out due to too many failed passcode attempts."
436+msgstr ""
437+"Du er blevet låst ude på grund af for mange fejlslagne forsøg på at angive "
438+"adgangskode."
451439
452−#: qml/Greeter/NarrowView.qml:56
453−msgid "This will be your last attempt."
454−msgstr "Dette er dit sidste forsøg."
440+#: qml/Greeter/DelayedLockscreen.qml:68
441+#, qt-format
442+msgid "Please wait %1 minute and then try again…"
443+msgid_plural "Please wait %1 minutes and then try again…"
444+msgstr[0] "Vent venligst %1 minut og prøv igen..."
445+msgstr[1] "Vent venligst %1 minutter og prøv igen..."
455446
456−#: qml/Greeter/NarrowView.qml:58
457−msgid ""
458−"If passphrase is entered incorrectly, your phone will conduct a factory "
459−"reset and all personal data will be deleted."
447+#: qml/Greeter/Greeter.qml:596
448+msgid "Try again"
460449msgstr ""
461−"Hvis adgangsfrasen er forkert, vil telefonen blive gendannet til "
462−"fabriksindstillinger og al personlig data vil blive slettet."
463450
464−#: qml/Greeter/NarrowView.qml:59
465−msgid ""
466−"If passcode is entered incorrectly, your phone will conduct a factory reset "
467−"and all personal data will be deleted."
451+#: qml/Greeter/LoginList.qml:70
452+msgid "Passphrase"
468453msgstr ""
469−"Hvis adgangskoden er forkert, vil telefonen blive gendannet til "
470−"fabriksindstillinger og al personlig data vil blive slettet."
471454
472−#: qml/Greeter/NarrowView.qml:116
473−#, qt-format
474−msgid "Enter %1"
475−msgstr "Indtast %1"
476−
477−#: qml/Greeter/NarrowView.qml:117
478−msgid "Enter passphrase"
479−msgstr "Angiv adgangsfrase"
480−
481−#: qml/Greeter/NarrowView.qml:118
482−msgid "Enter passcode"
483−msgstr "Indtast adgangskode"
455+#: qml/Greeter/LoginList.qml:71
456+msgid "Passcode"
457+msgstr ""
484458
485−#: qml/Greeter/NarrowView.qml:119
486−#, qt-format
487−msgid "Sorry, incorrect %1"
488−msgstr "Beklager, forkert %1"
459+#: qml/Greeter/LoginList.qml:98
460+msgid "Retry"
461+msgstr "Forsøg igen"
489462
490−#: qml/Greeter/NarrowView.qml:120
491−msgid "Sorry, incorrect passphrase"
492−msgstr "Beklager, forkert adgangsfrase"
463+#: qml/Greeter/LoginList.qml:99
464+msgid "Log In"
465+msgstr ""
493466
494−#: qml/Greeter/NarrowView.qml:121
495−msgctxt "passphrase"
496−msgid "Please re-enter"
467+#: qml/Greeter/NarrowView.qml:252
468+msgid "Emergency"
497469msgstr ""
498470
499−#: qml/Greeter/NarrowView.qml:122
500−msgid "Sorry, incorrect passcode"
501−msgstr "Beklager, forkert adgangskode"
471+#: qml/Greeter/SessionsList.qml:122
472+msgid "Select desktop environment"
473+msgstr ""
502474
503475#: qml/Notifications/NotificationMenuItemFactory.qml:124
504476msgid "Show password"
@@ -616,40 +588,54 @@ msgctxt "Button: Go back one page in the Wizard"
616588msgid "Back"
617589msgstr "Tilbage"
618590
619−#: qml/Wizard/Pages/10-welcome.qml:27
591+#: qml/Wizard/Pages/10-welcome.qml:28
620592msgid "Language"
621593msgstr ""
622594
623−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
624−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
625−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
595+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
596+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
597+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
598+#: qml/Wizard/Pages/70-passwd-type.qml:145
626599#: qml/Wizard/Pages/75-report-check.qml:84
627−#: qml/Wizard/Pages/passcode-desktop.qml:124
628−#: qml/Wizard/Pages/password-set.qml:141
600+#: qml/Wizard/Pages/passcode-desktop.qml:142
601+#: qml/Wizard/Pages/password-set.qml:142
629602msgid "Next"
630603msgstr ""
631604
632−#: qml/Wizard/Pages/30-wifi.qml:29
605+#: qml/Wizard/Pages/20-keyboard.qml:31
606+msgid "Select Keyboard"
607+msgstr ""
608+
609+#: qml/Wizard/Pages/20-keyboard.qml:71
610+msgid "Keyboard language"
611+msgstr ""
612+
613+#: qml/Wizard/Pages/20-keyboard.qml:93
614+msgid "Keyboard layout"
615+msgstr ""
616+
617+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
618+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
619+#: qml/Wizard/Pages/sim.qml:101
620+msgid "Skip"
621+msgstr "Spring over"
622+
623+#: qml/Wizard/Pages/30-wifi.qml:31
633624msgid "Connect to Wi‑Fi"
634625msgstr "Tilslut til Wi-Fi"
635626
636−#: qml/Wizard/Pages/30-wifi.qml:130
627+#: qml/Wizard/Pages/30-wifi.qml:132
637628msgid "Connected"
638629msgstr ""
639630
640−#: qml/Wizard/Pages/30-wifi.qml:163
631+#: qml/Wizard/Pages/30-wifi.qml:165
641632msgid "Available Wi-Fi networks"
642633msgstr ""
643634
644−#: qml/Wizard/Pages/30-wifi.qml:164
635+#: qml/Wizard/Pages/30-wifi.qml:166
645636msgid "No available Wi-Fi networks"
646637msgstr ""
647638
648−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
649−#: qml/Wizard/Pages/sim.qml:101
650−msgid "Skip"
651−msgstr "Spring over"
652−
653639#: qml/Wizard/Pages/40-location.qml:27
654640msgid "Location Services"
655641msgstr ""
@@ -682,11 +668,11 @@ msgstr ""
682668msgid "You can change it later in System Settings."
683669msgstr ""
684670
685−#: qml/Wizard/Pages/50-timezone.qml:29
671+#: qml/Wizard/Pages/50-timezone.qml:30
686672msgid "Time Zone"
687673msgstr ""
688674
689−#: qml/Wizard/Pages/50-timezone.qml:181
675+#: qml/Wizard/Pages/50-timezone.qml:182
690676msgid "Enter your city"
691677msgstr ""
692678
@@ -698,21 +684,21 @@ msgstr ""
698684msgid "Preferred Name"
699685msgstr ""
700686
701−#: qml/Wizard/Pages/70-passwd-type.qml:39
687+#: qml/Wizard/Pages/70-passwd-type.qml:40
702688msgid "Lock Screen"
703689msgstr ""
704690
705−#: qml/Wizard/Pages/70-passwd-type.qml:101
691+#: qml/Wizard/Pages/70-passwd-type.qml:102
706692msgctxt "Label: Type of security method"
707693msgid "Create new password"
708694msgstr ""
709695
710−#: qml/Wizard/Pages/70-passwd-type.qml:103
696+#: qml/Wizard/Pages/70-passwd-type.qml:104
711697msgctxt "Label: Type of security method"
712698msgid "Create passcode (numbers only)"
713699msgstr ""
714700
715−#: qml/Wizard/Pages/70-passwd-type.qml:105
701+#: qml/Wizard/Pages/70-passwd-type.qml:106
716702msgctxt "Label: Type of security method"
717703msgid "No lock code"
718704msgstr ""
@@ -733,6 +719,35 @@ msgstr ""
733719msgid "Privacy policy"
734720msgstr ""
735721
722+#: qml/Wizard/Pages/77-system-update.qml:28
723+msgid "Update Device"
724+msgstr ""
725+
726+#: qml/Wizard/Pages/77-system-update.qml:55
727+msgid ""
728+"There is a system update available and ready to install. Afterwards, the "
729+"device will automatically restart."
730+msgstr ""
731+
732+#: qml/Wizard/Pages/77-system-update.qml:76
733+msgctxt "string identifying name of the update"
734+msgid "Ubuntu system"
735+msgstr ""
736+
737+#: qml/Wizard/Pages/77-system-update.qml:83
738+#, qt-format
739+msgctxt "version of the system update"
740+msgid "Version %1"
741+msgstr ""
742+
743+#: qml/Wizard/Pages/77-system-update.qml:102
744+msgid "This could take a few minutes..."
745+msgstr ""
746+
747+#: qml/Wizard/Pages/77-system-update.qml:116
748+msgid "Install and restart now"
749+msgstr ""
750+
736751#: qml/Wizard/Pages/80-finished.qml:89
737752msgid "Welcome to Ubuntu"
738753msgstr ""
@@ -776,7 +791,7 @@ msgid "Service Terms"
776791msgstr ""
777792
778793#: qml/Wizard/Pages/passcode-confirm.qml:43
779−#: qml/Wizard/Pages/passcode-desktop.qml:80
794+#: qml/Wizard/Pages/passcode-desktop.qml:97
780795msgid "Confirm passcode"
781796msgstr "Bekræft adgangskode"
782797
@@ -789,28 +804,28 @@ msgctxt "Enter the passcode again"
789804msgid "Please re-enter."
790805msgstr ""
791806
792−#: qml/Wizard/Pages/passcode-desktop.qml:30
807+#: qml/Wizard/Pages/passcode-desktop.qml:31
793808msgid "Lock Screen Passcode"
794809msgstr ""
795810
796−#: qml/Wizard/Pages/passcode-desktop.qml:56
811+#: qml/Wizard/Pages/passcode-desktop.qml:61
797812msgid "Enter 4 numbers to setup your passcode"
798813msgstr ""
799814
800−#: qml/Wizard/Pages/passcode-desktop.qml:65
815+#: qml/Wizard/Pages/passcode-desktop.qml:77
801816#: qml/Wizard/Pages/passcode-set.qml:54
802817msgid "Choose passcode"
803818msgstr ""
804819
805−#: qml/Wizard/Pages/passcode-desktop.qml:105
820+#: qml/Wizard/Pages/passcode-desktop.qml:127
806821msgid "Passcode too short"
807822msgstr ""
808823
809−#: qml/Wizard/Pages/passcode-desktop.qml:107
824+#: qml/Wizard/Pages/passcode-desktop.qml:129
810825msgid "Passcodes match"
811826msgstr ""
812827
813−#: qml/Wizard/Pages/passcode-desktop.qml:109
828+#: qml/Wizard/Pages/passcode-desktop.qml:131
814829msgid "Passcodes do not match"
815830msgstr ""
816831
@@ -818,19 +833,19 @@ msgstr ""
818833msgid "Passcode must be 4 characters long"
819834msgstr ""
820835
821−#: qml/Wizard/Pages/password-set.qml:30
836+#: qml/Wizard/Pages/password-set.qml:31
822837msgid "Lock Screen Password"
823838msgstr ""
824839
825−#: qml/Wizard/Pages/password-set.qml:61
840+#: qml/Wizard/Pages/password-set.qml:62
826841msgid "Enter at least 8 characters"
827842msgstr ""
828843
829−#: qml/Wizard/Pages/password-set.qml:73
844+#: qml/Wizard/Pages/password-set.qml:74
830845msgid "Choose password"
831846msgstr ""
832847
833−#: qml/Wizard/Pages/password-set.qml:103
848+#: qml/Wizard/Pages/password-set.qml:104
834849msgid "Confirm password"
835850msgstr ""
836851
@@ -859,26 +874,30 @@ msgid "To proceed with no SIM tap Skip."
859874msgstr ""
860875
861876#: qml/Wizard/PasswordMeter.qml:87
862−msgid "Passwords match"
877+msgid "Password too short"
863878msgstr ""
864879
865880#: qml/Wizard/PasswordMeter.qml:89
881+msgid "Passwords match"
882+msgstr ""
883+
884+#: qml/Wizard/PasswordMeter.qml:91
866885msgid "Passwords do not match"
867886msgstr ""
868887
869−#: qml/Wizard/PasswordMeter.qml:93
888+#: qml/Wizard/PasswordMeter.qml:95
870889msgid "Strong password"
871890msgstr ""
872891
873−#: qml/Wizard/PasswordMeter.qml:95
892+#: qml/Wizard/PasswordMeter.qml:97
874893msgid "Fair password"
875894msgstr ""
876895
877−#: qml/Wizard/PasswordMeter.qml:97
896+#: qml/Wizard/PasswordMeter.qml:99
878897msgid "Weak password"
879898msgstr ""
880899
881−#: qml/Wizard/PasswordMeter.qml:99
900+#: qml/Wizard/PasswordMeter.qml:101
882901msgid "Very weak password"
883902msgstr ""
884903
@@ -949,12 +968,43 @@ msgstr ""
949968#~ msgid "Unlock SIM"
950969#~ msgstr "Lås SIM-kort op"
951970
971+#~ msgid "Sorry, incorrect passphrase"
972+#~ msgstr "Beklager, forkert adgangsfrase"
973+
974+#~ msgid "Enter passcode"
975+#~ msgstr "Indtast adgangskode"
976+
977+#, qt-format
978+#~ msgid "Sorry, incorrect %1"
979+#~ msgstr "Beklager, forkert %1"
980+
981+#, qt-format
982+#~ msgid "Enter %1"
983+#~ msgstr "Indtast %1"
984+
952985#~ msgid "This action does different things for different apps"
953986#~ msgstr "Denne handling gør forskellige ting i forskellige apps"
954987
955988#~ msgid "Please re-enter"
956989#~ msgstr "Vær venlig at genindtaste"
957990
991+#~ msgid "Sorry, incorrect passcode"
992+#~ msgstr "Beklager, forkert adgangskode"
993+
994+#~ msgid ""
995+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
996+#~ "and all personal data will be deleted."
997+#~ msgstr ""
998+#~ "Hvis adgangskoden er forkert, vil telefonen blive gendannet til "
999+#~ "fabriksindstillinger og al personlig data vil blive slettet."
1000+
1001+#~ msgid ""
1002+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1003+#~ "reset and all personal data will be deleted."
1004+#~ msgstr ""
1005+#~ "Hvis adgangsfrasen er forkert, vil telefonen blive gendannet til "
1006+#~ "fabriksindstillinger og al personlig data vil blive slettet."
1007+
9581008#~ msgid "To view open apps"
9591009#~ msgstr "For at se åbne apps"
9601010
@@ -1017,6 +1067,15 @@ msgstr ""
10171067#~ msgid "〈 %1"
10181068#~ msgstr "〈 %1"
10191069
1070+#~ msgid "Sorry, incorrect passphrase."
1071+#~ msgstr "Beklager, forkert adgangsfrase."
1072+
1073+#~ msgid "Sorry, incorrect passcode."
1074+#~ msgstr "Beklager, forkert adgangskode."
1075+
1076+#~ msgid "This will be your last attempt."
1077+#~ msgstr "Dette er dit sidste forsøg."
1078+
10201079#~ msgid "Swipe up from the bottom edge."
10211080#~ msgstr "Swipe op fra den nedre kant."
10221081
@@ -1084,6 +1143,9 @@ msgstr ""
10841143#~ msgid "Roaming"
10851144#~ msgstr "Roaming"
10861145
1146+#~ msgid "Enter passphrase"
1147+#~ msgstr "Angiv adgangsfrase"
1148+
10871149#~ msgctxt "Label: Type of security method"
10881150#~ msgid "Passcode"
10891151#~ msgstr "Adgangskode"
po/de.po+274−204
@@ -7,18 +7,18 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-06-17 01:22+0000\n"
11−"PO-Revision-Date: 2016-05-10 19:23+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+0000\n"
11+"PO-Revision-Date: 2016-08-28 08:35+0000\n"
1212"Last-Translator: Torsten Franz <Unknown>\n"
1313"Language-Team: German <de@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-06-19 05:54+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr "Passwort: "
2424
@@ -35,77 +35,55 @@ msgstr "Beenden"
3535msgid "Unpin shortcut"
3636msgstr "Verknüpfung entfernen"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr "Gerät gesperrt"
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−"Das Gerät wurde aufgrund zu vieler falscher Passworteingaben für längere "
46−"Zeit gesperrt."
47−
48−#: qml/Components/DelayedLockscreen.qml:65
49−msgid "You have been locked out due to too many failed passcode attempts."
50−msgstr ""
51−"Das Gerät wurde aufgrund zu vieler falscher PIN-Eingaben für längere Zeit "
52−"gesperrt."
53−
54−#: qml/Components/DelayedLockscreen.qml:74
55−#, qt-format
56−msgid "Please wait %1 minute and then try again…"
57−msgid_plural "Please wait %1 minutes and then try again…"
58−msgstr[0] "Bitte %1 Minute warten und es dann erneut versuchen …"
59−msgstr[1] "Bitte %1 Minuten warten und es dann erneut versuchen …"
60−
61−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
6239msgctxt "Title: Lock/Log out dialog"
6340msgid "Log out"
6441msgstr "Abmelden"
6542
66−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6744msgid "Are you sure you want to log out?"
6845msgstr "Sind Sie sicher, dass Sie sich abmelden wollen?"
6946
70−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
7148msgctxt "Button: Lock the system"
7249msgid "Lock"
7350msgstr "Sperren"
7451
75−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7653msgctxt "Button: Log out from the system"
7754msgid "Log Out"
7855msgstr "Abmelden"
7956
80−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
8260#: qml/Wizard/Pages/passcode-set.qml:32
8361msgid "Cancel"
8462msgstr "Abbrechen"
8563
86−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8765msgctxt "Title: Reboot dialog"
8866msgid "Reboot"
8967msgstr "Neustarten"
9068
91−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
9270msgid "Are you sure you want to reboot?"
9371msgstr "Sind Sie sicher, dass Sie neu starten wollen?"
9472
95−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9674msgid "No"
9775msgstr "Nein"
9876
99−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
10078msgid "Yes"
10179msgstr "Ja"
10280
103−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10482msgctxt "Title: Power off/Restart dialog"
10583msgid "Power"
10684msgstr "Ausschalten"
10785
108−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10987msgid ""
11088"Are you sure you would like\n"
11189"to power off?"
@@ -113,188 +91,198 @@ msgstr ""
11391"Sind Sie sicher, dass Sie das\n"
11492"Gerät ausschalten wollen?"
11593
116−#: qml/Components/Dialogs.qml:202
94+#: qml/Components/Dialogs.qml:205
11795msgctxt "Button: Power off the system"
11896msgid "Power off"
11997msgstr "Ausschalten"
12098
121−#: qml/Components/Dialogs.qml:211
99+#: qml/Components/Dialogs.qml:214
122100msgctxt "Button: Restart the system"
123101msgid "Restart"
124102msgstr "Neustarten"
125103
126104#: qml/Components/KeyboardShortcutsOverlay.qml:41
127105msgid "Keyboard Shortcuts"
128−msgstr ""
106+msgstr "Tastaturkürzel"
129107
130108#: qml/Components/KeyboardShortcutsOverlay.qml:55
131109msgid "Unity 8"
132−msgstr ""
110+msgstr "Unity 8"
133111
134112#: qml/Components/KeyboardShortcutsOverlay.qml:62
135113msgid "PrtScr"
136−msgstr ""
114+msgstr "Druck"
137115
138116#: qml/Components/KeyboardShortcutsOverlay.qml:67
139117msgid "Takes a screenshot."
140−msgstr ""
118+msgstr "Bildschirmfoto aufnehmen."
141119
142120#: qml/Components/KeyboardShortcutsOverlay.qml:75
143121msgid "Alt + PrtScr"
144−msgstr ""
122+msgstr "Alt + Druck"
145123
146124#: qml/Components/KeyboardShortcutsOverlay.qml:80
147125msgid "Takes a screenshot of a window."
148−msgstr ""
126+msgstr "Macht ein Bildschirmfoto eines Fensters."
149127
150128#: qml/Components/KeyboardShortcutsOverlay.qml:88
151129msgid "Super + Space"
152−msgstr ""
130+msgstr "Super + Leertaste"
153131
154132#: qml/Components/KeyboardShortcutsOverlay.qml:93
155133msgid "Switches to next keyboard layout."
156−msgstr ""
134+msgstr "Zum nächsten Tastaturlayout umschalten"
157135
158136#: qml/Components/KeyboardShortcutsOverlay.qml:101
159137msgid "Super + Shift + Space"
160−msgstr ""
138+msgstr "Super + Hochstell + Leertaste"
161139
162140#: qml/Components/KeyboardShortcutsOverlay.qml:106
163141msgid "Switches to previous keyboard layout."
164−msgstr ""
142+msgstr "Zum vorherigen Tastaturlayout umschalten"
165143
166144#: qml/Components/KeyboardShortcutsOverlay.qml:118
167145msgid "Launcher"
168−msgstr ""
146+msgstr "Starter"
169147
170148#: qml/Components/KeyboardShortcutsOverlay.qml:125
171149msgid "Super (Hold)"
172−msgstr ""
150+msgstr "Super (gedrückt halten)"
173151
174152#: qml/Components/KeyboardShortcutsOverlay.qml:130
175153msgid "Opens the launcher, displays shortcuts."
176−msgstr ""
154+msgstr "Öffnet den Starter, zeigt Tastaturkürzel."
177155
178156#: qml/Components/KeyboardShortcutsOverlay.qml:138
179157msgid "Alt + F1"
180−msgstr ""
158+msgstr "Alt + F1"
181159
182160#: qml/Components/KeyboardShortcutsOverlay.qml:143
183161msgid "Opens launcher keyboard navigation mode."
184−msgstr ""
162+msgstr "Öffnet Tastaturnavigation des Starters"
185163
186164#: qml/Components/KeyboardShortcutsOverlay.qml:151
187165msgid "Super + Tab"
188−msgstr ""
166+msgstr "Super + Tabulatur"
189167
190168#: qml/Components/KeyboardShortcutsOverlay.qml:156
191169msgid "Switches applications via the launcher."
192−msgstr ""
170+msgstr "Schaltet über den Starter zwischen Anwendungen um"
193171
194172#: qml/Components/KeyboardShortcutsOverlay.qml:164
195173msgid "Super + 0 to 9"
196−msgstr ""
174+msgstr "Super + 0 bis 9"
197175
198176#: qml/Components/KeyboardShortcutsOverlay.qml:169
199177msgid "Same as clicking on a launcher icon."
200−msgstr ""
178+msgstr "Entspricht dem Anklicken eines Startersymbols."
201179
202180#: qml/Components/KeyboardShortcutsOverlay.qml:181
203181msgid "Scopes"
204−msgstr ""
182+msgstr "Scopes"
205183
206184#: qml/Components/KeyboardShortcutsOverlay.qml:188
207185msgid "Super (Tap)"
208−msgstr ""
186+msgstr "Super (antippen)"
209187
210188#: qml/Components/KeyboardShortcutsOverlay.qml:193
211189msgid "Opens the Scopes home."
212−msgstr ""
190+msgstr "Öffnet die Scopeübersicht"
213191
214192#: qml/Components/KeyboardShortcutsOverlay.qml:209
215193msgid "Switching"
216−msgstr ""
194+msgstr "Wechseln"
217195
218196#: qml/Components/KeyboardShortcutsOverlay.qml:216
219197msgid "Alt + Tab"
220−msgstr ""
198+msgstr "Alt + Tabulator"
221199
222200#: qml/Components/KeyboardShortcutsOverlay.qml:221
223201msgid "Switches between applications."
224−msgstr ""
202+msgstr "Zwischen Anwendungen wechseln."
225203
226204#: qml/Components/KeyboardShortcutsOverlay.qml:229
227205msgid "Super + W"
228−msgstr ""
206+msgstr "Super + W"
229207
230208#: qml/Components/KeyboardShortcutsOverlay.qml:234
231209msgid "Opens the desktop spread."
232−msgstr ""
210+msgstr "Zeigt alle geöffneten Fenster nebeneinander."
233211
234212#: qml/Components/KeyboardShortcutsOverlay.qml:242
235213msgid "Cursor Left or Right"
236−msgstr ""
214+msgstr "Pfeiltasten"
237215
238216#: qml/Components/KeyboardShortcutsOverlay.qml:247
239217msgid "Moves the focus."
240−msgstr ""
218+msgstr "Bewegt den Fokus."
241219
242220#: qml/Components/KeyboardShortcutsOverlay.qml:259
243221msgid "Windows"
244−msgstr ""
222+msgstr "Fenster"
245223
246224#: qml/Components/KeyboardShortcutsOverlay.qml:266
247225msgid "Ctrl + Super + D"
248−msgstr ""
226+msgstr "Strg + Super + D"
249227
250228#: qml/Components/KeyboardShortcutsOverlay.qml:271
251229msgid "Minimizes all windows."
252−msgstr ""
230+msgstr "Minimiert alle Fenster."
253231
254232#: qml/Components/KeyboardShortcutsOverlay.qml:279
255233msgid "Ctrl + Super + Up"
256−msgstr ""
234+msgstr "Strg + Super + hoch"
257235
258236#: qml/Components/KeyboardShortcutsOverlay.qml:284
259237msgid "Maximizes the current window."
260−msgstr ""
238+msgstr "Maximiert das aktuelle Fenster."
261239
262240#: qml/Components/KeyboardShortcutsOverlay.qml:292
263241msgid "Ctrl + Super + Down"
264−msgstr ""
242+msgstr "Strg + Super + runter"
265243
266244#: qml/Components/KeyboardShortcutsOverlay.qml:297
267245msgid "Minimizes or restores the current window."
268−msgstr ""
246+msgstr "Minmiert oder stellt das aktuelle Fenster wieder her."
269247
270248#: qml/Components/KeyboardShortcutsOverlay.qml:305
271249msgid "Ctrl + Super + Left or Right"
272−msgstr ""
250+msgstr "Strg + Super + links oder rechts"
273251
274252#: qml/Components/KeyboardShortcutsOverlay.qml:310
275253msgid "Semi-maximizes the current window."
276−msgstr ""
254+msgstr "Maximiert das aktuelle Fenster auf eine Bildschirmhälfte."
277255
278256#: qml/Components/KeyboardShortcutsOverlay.qml:318
279257msgid "Alt + F4"
280−msgstr ""
258+msgstr "Alt + F4"
281259
282260#: qml/Components/KeyboardShortcutsOverlay.qml:323
283261msgid "Closes the current window."
284−msgstr ""
262+msgstr "Schließt das aktive Fenster."
285263
286−#: qml/Components/Lockscreen.qml:231
264+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
287265msgid "Return to Call"
288266msgstr "Zu Anruf zurückkehren"
289267
290−#: qml/Components/Lockscreen.qml:231
268+#: qml/Components/Lockscreen.qml:212
291269msgid "Emergency Call"
292270msgstr "Notruf"
293271
294−#: qml/Components/Lockscreen.qml:263
272+#: qml/Components/Lockscreen.qml:244
295273msgid "OK"
296274msgstr "OK"
297275
276+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
277+#, qt-format
278+msgid "%1:%2:%3"
279+msgstr "%1:%2:%3"
280+
281+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
282+#, qt-format
283+msgid "%1:%2"
284+msgstr "%1:%2"
285+
298286#: qml/Components/ModeSwitchWarningDialog.qml:32
299287msgid "Apps may have unsaved data:"
300288msgstr "Anwendungen könnten ungespeicherte Daten haben:"
@@ -323,55 +311,59 @@ msgstr "Jetzt verbinden!"
323311msgid "Close all"
324312msgstr "Alle schließen"
325313
326−#: qml/Dash/DashPageHeader.qml:333
314+#: qml/Components/SharingPicker.qml:54
315+msgid "Preview Share Item"
316+msgstr "Vorschau für zu teilendes Element"
317+
318+#: qml/Dash/DashPageHeader.qml:362
327319msgctxt "Button: Open the Ubuntu Store"
328320msgid "Store"
329321msgstr "Speichern"
330322
331−#: qml/Dash/DashPageHeader.qml:340
323+#: qml/Dash/DashPageHeader.qml:369
332324msgctxt "Button: Start a search in the current dash scope"
333325msgid "Search"
334326msgstr "Suchen"
335327
336−#: qml/Dash/DashPageHeader.qml:350
328+#: qml/Dash/DashPageHeader.qml:379
337329msgctxt "Button: Show the current dash scope settings"
338330msgid "Settings"
339331msgstr "Einstellungen"
340332
341−#: qml/Dash/DashPageHeader.qml:357
333+#: qml/Dash/DashPageHeader.qml:386
342334msgid "Remove from Favorites"
343335msgstr "Aus den Favoriten entfernen"
344336
345−#: qml/Dash/DashPageHeader.qml:357
337+#: qml/Dash/DashPageHeader.qml:386
346338msgid "Add to Favorites"
347339msgstr "Zu Favoriten hinzufügen"
348340
349−#: qml/Dash/FiltersPopover.qml:60
341+#: qml/Dash/FiltersPopover.qml:61
350342msgid "Refine your results"
351343msgstr "Ergebnisse verfeinern"
352344
353−#: qml/Dash/FiltersPopover.qml:69
345+#: qml/Dash/FiltersPopover.qml:70
354346msgid "Reset"
355347msgstr "Zurücksetzen"
356348
357−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
349+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
358350msgid "Show less"
359351msgstr "Weniger anzeigen"
360352
361−#: qml/Dash/GenericScopeView.qml:580
353+#: qml/Dash/GenericScopeView.qml:586
362354msgid "Show all"
363355msgstr "Alle anzeigen"
364356
365−#: qml/Dash/GenericScopeView.qml:637
357+#: qml/Dash/GenericScopeView.qml:643
366358msgctxt "Label: Hint for dash search line edit"
367359msgid "Search"
368360msgstr "Suchen"
369361
370−#: qml/Dash/PageHeaderExtraPanel.qml:56
362+#: qml/Dash/PageHeaderExtraPanel.qml:57
371363msgid "Recent Searches"
372364msgstr "Letzte Suchanfragen"
373365
374−#: qml/Dash/PageHeaderExtraPanel.qml:67
366+#: qml/Dash/PageHeaderExtraPanel.qml:68
375367msgid "Clear All"
376368msgstr "Alle zurücksetzen"
377369
@@ -383,28 +375,24 @@ msgstr "Mehr …"
383375msgid "Less..."
384376msgstr "Weniger …"
385377
386−#: qml/Dash/Previews/PreviewCommentInput.qml:68
387−#: qml/Dash/Previews/PreviewRatingInput.qml:175
378+#: qml/Dash/Previews/PreviewCommentInput.qml:83
379+#: qml/Dash/Previews/PreviewRatingInput.qml:201
388380msgid "Send"
389381msgstr "Senden"
390382
391−#: qml/Dash/Previews/PreviewRatingInput.qml:82
383+#: qml/Dash/Previews/PreviewRatingInput.qml:108
392384msgid "Rate this"
393385msgstr "Bewerten"
394386
395−#: qml/Dash/Previews/PreviewRatingInput.qml:157
387+#: qml/Dash/Previews/PreviewRatingInput.qml:183
396388msgid "Add a review"
397389msgstr "Bewertung hinzufügen"
398390
399−#: qml/Dash/Previews/PreviewSharing.qml:66
400−msgid "Preview Share Item"
401−msgstr "Vorschau für zu teilendes Element"
402−
403−#: qml/Dash/PullToRefreshScopeStyle.qml:55
391+#: qml/Dash/PullToRefreshScopeStyle.qml:56
404392msgid "Pull to refresh…"
405393msgstr "Zum Aktualisieren ziehen …"
406394
407−#: qml/Dash/PullToRefreshScopeStyle.qml:60
395+#: qml/Dash/PullToRefreshScopeStyle.qml:61
408396msgid "Release to refresh…"
409397msgstr "Zum Aktualisieren loslassen …"
410398
@@ -412,15 +400,15 @@ msgstr "Zum Aktualisieren loslassen …"
412400msgid "Enable location data"
413401msgstr "Standortdaten aktivieren"
414402
415−#: qml/Dash/ScopesList.qml:55
403+#: qml/Dash/ScopesList.qml:57
416404msgid "Manage"
417405msgstr "Verwalten"
418406
419−#: qml/Dash/ScopesList.qml:101
407+#: qml/Dash/ScopesList.qml:104
420408msgid "Home"
421409msgstr "Startseite"
422410
423−#: qml/Dash/ScopesList.qml:102
411+#: qml/Dash/ScopesList.qml:105
424412msgid "Also installed"
425413msgstr "Ebenfalls installiert"
426414
@@ -432,76 +420,60 @@ msgstr ""
432420"Ihr Gerät ist nun mit einem externen Bildschirm verbunden. Verwenden Sie das "
433421"Gerätedisplay als Touchpad, um den Mauszeiger zu steuern."
434422
435−#: qml/Greeter/CoverPage.qml:119
423+#: qml/Greeter/CoverPage.qml:127
436424msgid "Unlock"
437425msgstr "Entsperren"
438426
439−#: qml/Greeter/LoginList.qml:259
440−msgid "Retry"
441−msgstr "Erneut versuchen"
442−
443−#: qml/Greeter/LoginList.qml:260
444−msgid "Log In"
445−msgstr ""
446−
447−#: qml/Greeter/NarrowView.qml:54
448−msgid "Sorry, incorrect passphrase."
449−msgstr "Entschuldigung, falsches Passwort."
450−
451−#: qml/Greeter/NarrowView.qml:55
452−msgid "Sorry, incorrect passcode."
453−msgstr "Falsche PIN"
454−
455−#: qml/Greeter/NarrowView.qml:56
456−msgid "This will be your last attempt."
457−msgstr "Dies ist Ihr letzter Versuch."
427+#: qml/Greeter/DelayedLockscreen.qml:43
428+msgid "Device Locked"
429+msgstr "Gerät gesperrt"
458430
459−#: qml/Greeter/NarrowView.qml:58
460−msgid ""
461−"If passphrase is entered incorrectly, your phone will conduct a factory "
462−"reset and all personal data will be deleted."
431+#: qml/Greeter/DelayedLockscreen.qml:58
432+msgid "You have been locked out due to too many failed passphrase attempts."
463433msgstr ""
464−"Wird das Passwort falsch eingegeben, wird das Telefon auf den Werkszustand "
465−"zurückgesetzt und alle Daten werden gelöscht."
434+"Das Gerät wurde aufgrund zu vieler falscher Passworteingaben für längere "
435+"Zeit gesperrt."
466436
467−#: qml/Greeter/NarrowView.qml:59
468−msgid ""
469−"If passcode is entered incorrectly, your phone will conduct a factory reset "
470−"and all personal data will be deleted."
437+#: qml/Greeter/DelayedLockscreen.qml:59
438+msgid "You have been locked out due to too many failed passcode attempts."
471439msgstr ""
472−"Wird die PIN falsch eingegeben, wird das Telefon auf den Werkszustand "
473−"zurückgesetzt und alle Daten werden gelöscht."
440+"Das Gerät wurde aufgrund zu vieler falscher PIN-Eingaben für längere Zeit "
441+"gesperrt."
474442
475−#: qml/Greeter/NarrowView.qml:116
443+#: qml/Greeter/DelayedLockscreen.qml:68
476444#, qt-format
477−msgid "Enter %1"
478−msgstr "%1 eingeben"
445+msgid "Please wait %1 minute and then try again…"
446+msgid_plural "Please wait %1 minutes and then try again…"
447+msgstr[0] "Bitte %1 Minute warten und dann erneut versuchen …"
448+msgstr[1] "Bitte %1 Minuten warten und dann erneut versuchen …"
479449
480−#: qml/Greeter/NarrowView.qml:117
481−msgid "Enter passphrase"
482−msgstr "Passphrase eingeben"
450+#: qml/Greeter/Greeter.qml:596
451+msgid "Try again"
452+msgstr "Erneut versuchen"
483453
484−#: qml/Greeter/NarrowView.qml:118
485−msgid "Enter passcode"
486−msgstr "PIN eingeben"
454+#: qml/Greeter/LoginList.qml:70
455+msgid "Passphrase"
456+msgstr "Passwort"
487457
488−#: qml/Greeter/NarrowView.qml:119
489−#, qt-format
490−msgid "Sorry, incorrect %1"
491−msgstr "%1 falsch"
458+#: qml/Greeter/LoginList.qml:71
459+msgid "Passcode"
460+msgstr "PIN"
492461
493−#: qml/Greeter/NarrowView.qml:120
494−msgid "Sorry, incorrect passphrase"
495−msgstr "Das Passwort ist nicht korrekt"
462+#: qml/Greeter/LoginList.qml:98
463+msgid "Retry"
464+msgstr "Erneut versuchen"
496465
497−#: qml/Greeter/NarrowView.qml:121
498−msgctxt "passphrase"
499−msgid "Please re-enter"
500−msgstr "Bitte erneut eingeben"
466+#: qml/Greeter/LoginList.qml:99
467+msgid "Log In"
468+msgstr "Anmelden"
469+
470+#: qml/Greeter/NarrowView.qml:252
471+msgid "Emergency"
472+msgstr ""
501473
502−#: qml/Greeter/NarrowView.qml:122
503−msgid "Sorry, incorrect passcode"
504−msgstr "Falsches Passwort"
474+#: qml/Greeter/SessionsList.qml:122
475+msgid "Select desktop environment"
476+msgstr ""
505477
506478#: qml/Notifications/NotificationMenuItemFactory.qml:124
507479msgid "Show password"
@@ -601,7 +573,7 @@ msgstr ""
601573
602574#: qml/Tutorial/TutorialLeft.qml:47
603575msgid "Short swipe from the left edge to open the launcher"
604−msgstr ""
576+msgstr "Kurzes Wischen von der linken Kante öffnet den Starter"
605577
606578#: qml/Tutorial/TutorialRight.qml:55
607579msgid "Push your mouse against the right edge to view your open apps"
@@ -611,51 +583,67 @@ msgstr ""
611583
612584#: qml/Tutorial/TutorialRight.qml:56
613585msgid "Swipe from the right edge to view your open apps"
614−msgstr ""
586+msgstr "Wischen von der rechten Kante zeigt die geöffneten Anwendungen"
615587
616588#: qml/Tutorial/TutorialTop.qml:53
617589msgid "Swipe from the top edge to access notifications and quick settings"
618590msgstr ""
591+"Wischen von der oberen Kante zeigt Benachrichtigungen und "
592+"Schnelleinstellungen"
619593
620594#: qml/Wizard/Page.qml:54
621595msgctxt "Button: Go back one page in the Wizard"
622596msgid "Back"
623597msgstr "Zurück"
624598
625−#: qml/Wizard/Pages/10-welcome.qml:27
599+#: qml/Wizard/Pages/10-welcome.qml:28
626600msgid "Language"
627601msgstr "Sprache"
628602
629−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
630−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
631−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
603+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
604+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
605+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
606+#: qml/Wizard/Pages/70-passwd-type.qml:145
632607#: qml/Wizard/Pages/75-report-check.qml:84
633−#: qml/Wizard/Pages/passcode-desktop.qml:124
634−#: qml/Wizard/Pages/password-set.qml:141
608+#: qml/Wizard/Pages/passcode-desktop.qml:142
609+#: qml/Wizard/Pages/password-set.qml:142
635610msgid "Next"
636611msgstr "Weiter"
637612
638−#: qml/Wizard/Pages/30-wifi.qml:29
613+#: qml/Wizard/Pages/20-keyboard.qml:31
614+msgid "Select Keyboard"
615+msgstr "Tastatur wählen"
616+
617+#: qml/Wizard/Pages/20-keyboard.qml:71
618+msgid "Keyboard language"
619+msgstr "Tastatursprache"
620+
621+#: qml/Wizard/Pages/20-keyboard.qml:93
622+msgid "Keyboard layout"
623+msgstr "Tastaturlayout"
624+
625+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
626+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
627+#: qml/Wizard/Pages/sim.qml:101
628+msgid "Skip"
629+msgstr "Überspringen"
630+
631+#: qml/Wizard/Pages/30-wifi.qml:31
639632msgid "Connect to Wi‑Fi"
640633msgstr "Mit WLAN verbinden"
641634
642−#: qml/Wizard/Pages/30-wifi.qml:130
635+#: qml/Wizard/Pages/30-wifi.qml:132
643636msgid "Connected"
644637msgstr "Verbunden"
645638
646−#: qml/Wizard/Pages/30-wifi.qml:163
639+#: qml/Wizard/Pages/30-wifi.qml:165
647640msgid "Available Wi-Fi networks"
648641msgstr "Verfügbare Funknetzwerke"
649642
650−#: qml/Wizard/Pages/30-wifi.qml:164
643+#: qml/Wizard/Pages/30-wifi.qml:166
651644msgid "No available Wi-Fi networks"
652645msgstr "Keine Funknetzwerke verfügbar"
653646
654−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
655−#: qml/Wizard/Pages/sim.qml:101
656−msgid "Skip"
657−msgstr "Überspringen"
658−
659647#: qml/Wizard/Pages/40-location.qml:27
660648msgid "Location Services"
661649msgstr "Standortdienste"
@@ -690,11 +678,11 @@ msgstr "Meinen Standort nicht verwenden"
690678msgid "You can change it later in System Settings."
691679msgstr "Dies kann später in den Systemeinstellungen geändert werden."
692680
693−#: qml/Wizard/Pages/50-timezone.qml:29
681+#: qml/Wizard/Pages/50-timezone.qml:30
694682msgid "Time Zone"
695683msgstr "Zeitzone"
696684
697−#: qml/Wizard/Pages/50-timezone.qml:181
685+#: qml/Wizard/Pages/50-timezone.qml:182
698686msgid "Enter your city"
699687msgstr "Bitte Ihre Stadt eingeben"
700688
@@ -706,21 +694,21 @@ msgstr "Ihr Gerät personalisieren"
706694msgid "Preferred Name"
707695msgstr "Bevorzugter Name"
708696
709−#: qml/Wizard/Pages/70-passwd-type.qml:39
697+#: qml/Wizard/Pages/70-passwd-type.qml:40
710698msgid "Lock Screen"
711699msgstr "Sperrbildschirm"
712700
713−#: qml/Wizard/Pages/70-passwd-type.qml:101
701+#: qml/Wizard/Pages/70-passwd-type.qml:102
714702msgctxt "Label: Type of security method"
715703msgid "Create new password"
716704msgstr "Neues Passwort erstellen"
717705
718−#: qml/Wizard/Pages/70-passwd-type.qml:103
706+#: qml/Wizard/Pages/70-passwd-type.qml:104
719707msgctxt "Label: Type of security method"
720708msgid "Create passcode (numbers only)"
721709msgstr "PIN erstellen (nur Ziffern)"
722710
723−#: qml/Wizard/Pages/70-passwd-type.qml:105
711+#: qml/Wizard/Pages/70-passwd-type.qml:106
724712msgctxt "Label: Type of security method"
725713msgid "No lock code"
726714msgstr "Kein Sperrcode"
@@ -743,6 +731,37 @@ msgstr ""
743731msgid "Privacy policy"
744732msgstr "Datenschutzerklärung"
745733
734+#: qml/Wizard/Pages/77-system-update.qml:28
735+msgid "Update Device"
736+msgstr "Gerät aktualisieren"
737+
738+#: qml/Wizard/Pages/77-system-update.qml:55
739+msgid ""
740+"There is a system update available and ready to install. Afterwards, the "
741+"device will automatically restart."
742+msgstr ""
743+"Es ist eine Systemaktualisierung verfügbar und bereit zur Installation. "
744+"Danach wird das Gerät automatisch neu starten."
745+
746+#: qml/Wizard/Pages/77-system-update.qml:76
747+msgctxt "string identifying name of the update"
748+msgid "Ubuntu system"
749+msgstr "Ubuntu System"
750+
751+#: qml/Wizard/Pages/77-system-update.qml:83
752+#, qt-format
753+msgctxt "version of the system update"
754+msgid "Version %1"
755+msgstr "Version %1"
756+
757+#: qml/Wizard/Pages/77-system-update.qml:102
758+msgid "This could take a few minutes..."
759+msgstr "Dies kann ein paar Minuten dauern …"
760+
761+#: qml/Wizard/Pages/77-system-update.qml:116
762+msgid "Install and restart now"
763+msgstr "Jetzt installieren und neu starten"
764+
746765#: qml/Wizard/Pages/80-finished.qml:89
747766msgid "Welcome to Ubuntu"
748767msgstr "Willkommen bei Ubuntu"
@@ -793,7 +812,7 @@ msgid "Service Terms"
793812msgstr "Bedingungen des Dienstes"
794813
795814#: qml/Wizard/Pages/passcode-confirm.qml:43
796−#: qml/Wizard/Pages/passcode-desktop.qml:80
815+#: qml/Wizard/Pages/passcode-desktop.qml:97
797816msgid "Confirm passcode"
798817msgstr "PIN bestätigen"
799818
@@ -806,28 +825,28 @@ msgctxt "Enter the passcode again"
806825msgid "Please re-enter."
807826msgstr "Bitte erneut eingeben."
808827
809−#: qml/Wizard/Pages/passcode-desktop.qml:30
828+#: qml/Wizard/Pages/passcode-desktop.qml:31
810829msgid "Lock Screen Passcode"
811830msgstr "Sperrbildschirm-PIN"
812831
813−#: qml/Wizard/Pages/passcode-desktop.qml:56
832+#: qml/Wizard/Pages/passcode-desktop.qml:61
814833msgid "Enter 4 numbers to setup your passcode"
815834msgstr "Geben Sie 4 Ziffern ein, um Ihre PIN einzurichten"
816835
817−#: qml/Wizard/Pages/passcode-desktop.qml:65
836+#: qml/Wizard/Pages/passcode-desktop.qml:77
818837#: qml/Wizard/Pages/passcode-set.qml:54
819838msgid "Choose passcode"
820839msgstr "PIN wählen"
821840
822−#: qml/Wizard/Pages/passcode-desktop.qml:105
841+#: qml/Wizard/Pages/passcode-desktop.qml:127
823842msgid "Passcode too short"
824843msgstr "PIN zu kurz"
825844
826−#: qml/Wizard/Pages/passcode-desktop.qml:107
845+#: qml/Wizard/Pages/passcode-desktop.qml:129
827846msgid "Passcodes match"
828847msgstr "PINs stimmen überein"
829848
830−#: qml/Wizard/Pages/passcode-desktop.qml:109
849+#: qml/Wizard/Pages/passcode-desktop.qml:131
831850msgid "Passcodes do not match"
832851msgstr "PINs stimmen nicht überein"
833852
@@ -835,19 +854,19 @@ msgstr "PINs stimmen nicht überein"
835854msgid "Passcode must be 4 characters long"
836855msgstr "PIN muss 4 Ziffern lang sein"
837856
838−#: qml/Wizard/Pages/password-set.qml:30
857+#: qml/Wizard/Pages/password-set.qml:31
839858msgid "Lock Screen Password"
840859msgstr "Sperrbildschirm-Passwort"
841860
842−#: qml/Wizard/Pages/password-set.qml:61
861+#: qml/Wizard/Pages/password-set.qml:62
843862msgid "Enter at least 8 characters"
844863msgstr "Geben Sie mindestens 8 Zeichen ein"
845864
846−#: qml/Wizard/Pages/password-set.qml:73
865+#: qml/Wizard/Pages/password-set.qml:74
847866msgid "Choose password"
848867msgstr "Wählen Sie ein Passwort"
849868
850−#: qml/Wizard/Pages/password-set.qml:103
869+#: qml/Wizard/Pages/password-set.qml:104
851870msgid "Confirm password"
852871msgstr "Passwort bestätigen"
853872
@@ -877,26 +896,30 @@ msgid "To proceed with no SIM tap Skip."
877896msgstr "Um ohne SIM-Karte fortzufahren, Überspringen drücken."
878897
879898#: qml/Wizard/PasswordMeter.qml:87
899+msgid "Password too short"
900+msgstr "Passwort zu kurz"
901+
902+#: qml/Wizard/PasswordMeter.qml:89
880903msgid "Passwords match"
881904msgstr "Passwörter stimmen überein"
882905
883−#: qml/Wizard/PasswordMeter.qml:89
906+#: qml/Wizard/PasswordMeter.qml:91
884907msgid "Passwords do not match"
885908msgstr "Passwörter stimmen nicht überein"
886909
887−#: qml/Wizard/PasswordMeter.qml:93
910+#: qml/Wizard/PasswordMeter.qml:95
888911msgid "Strong password"
889912msgstr "Starkes Passwort"
890913
891−#: qml/Wizard/PasswordMeter.qml:95
914+#: qml/Wizard/PasswordMeter.qml:97
892915msgid "Fair password"
893916msgstr "Ausreichendes Passwort"
894917
895−#: qml/Wizard/PasswordMeter.qml:97
918+#: qml/Wizard/PasswordMeter.qml:99
896919msgid "Weak password"
897920msgstr "Schwaches Passwort"
898921
899−#: qml/Wizard/PasswordMeter.qml:99
922+#: qml/Wizard/PasswordMeter.qml:101
900923msgid "Very weak password"
901924msgstr "Sehr schwaches Passwort"
902925
@@ -982,6 +1005,33 @@ msgstr "Sehr schwaches Passwort"
9821005#~ msgid "Store"
9831006#~ msgstr "Store"
9841007
1008+#~ msgid "This will be your last attempt."
1009+#~ msgstr "Dies ist Ihr letzter Versuch."
1010+
1011+#~ msgid ""
1012+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1013+#~ "and all personal data will be deleted."
1014+#~ msgstr ""
1015+#~ "Wird die PIN falsch eingegeben, wird das Telefon auf den Werkszustand "
1016+#~ "zurückgesetzt und alle Daten werden gelöscht."
1017+
1018+#~ msgid ""
1019+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1020+#~ "reset and all personal data will be deleted."
1021+#~ msgstr ""
1022+#~ "Wird das Passwort falsch eingegeben, wird das Telefon auf den Werkszustand "
1023+#~ "zurückgesetzt und alle Daten werden gelöscht."
1024+
1025+#~ msgid "Sorry, incorrect passcode."
1026+#~ msgstr "Falsche PIN"
1027+
1028+#~ msgid "Sorry, incorrect passphrase"
1029+#~ msgstr "Das Passwort ist nicht korrekt"
1030+
1031+#, qt-format
1032+#~ msgid "Sorry, incorrect %1"
1033+#~ msgstr "%1 falsch"
1034+
9851035#~ msgid "Log out"
9861036#~ msgstr "Abmelden"
9871037
@@ -997,6 +1047,9 @@ msgstr "Sehr schwaches Passwort"
9971047#~ msgid "Settings"
9981048#~ msgstr "Einstellungen"
9991049
1050+#~ msgid "Sorry, incorrect passcode"
1051+#~ msgstr "Falsches Passwort"
1052+
10001053#~ msgid "Are you sure you want to shut down?"
10011054#~ msgstr "Sind Sie sicher, dass Sie herunterfahren wollen?"
10021055
@@ -1006,9 +1059,19 @@ msgstr "Sehr schwaches Passwort"
10061059#~ msgid "Manage Scopes"
10071060#~ msgstr "Filter verwalten"
10081061
1062+#~ msgid "Sorry, incorrect passphrase."
1063+#~ msgstr "Entschuldigung, falsches Passwort."
1064+
10091065#~ msgid "Please re-enter"
10101066#~ msgstr "Bitte erneut eingeben"
10111067
1068+#~ msgid "Enter passcode"
1069+#~ msgstr "PIN eingeben"
1070+
1071+#, qt-format
1072+#~ msgid "Enter %1"
1073+#~ msgstr "%1 eingeben"
1074+
10121075#~ msgid "Without it, you won’t be able to make calls or use text messaging."
10131076#~ msgstr "Ohne SIM funktionieren Anrufe und Nachrichten nicht."
10141077
@@ -1194,6 +1257,9 @@ msgstr "Sehr schwaches Passwort"
11941257#~ msgid "Reboot"
11951258#~ msgstr "Neustarten"
11961259
1260+#~ msgid "Enter passphrase"
1261+#~ msgstr "Passphrase eingeben"
1262+
11971263#~ msgid "%a %H:%M"
11981264#~ msgstr "%a %k:%M"
11991265
@@ -1224,6 +1290,10 @@ msgstr "Sehr schwaches Passwort"
12241290#~ msgid "%l:%M %p"
12251291#~ msgstr "%k:%M"
12261292
1293+#~ msgctxt "passphrase"
1294+#~ msgid "Please re-enter"
1295+#~ msgstr "Bitte erneut eingeben"
1296+
12271297#~ msgid "Call back"
12281298#~ msgstr "Zurückrufen"
12291299
po/el.po+227−161
@@ -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-06-17 01:22+0000\n"
10+"POT-Creation-Date: 2016-09-22 07:46+0000\n"
1111"PO-Revision-Date: 2016-04-25 16:24+0000\n"
1212"Last-Translator: Aggelos Arnaoutis <angelosarn@hotmail.com>\n"
1313"Language-Team: Greek <el@li.org>\n"
@@ -15,10 +15,10 @@ 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-06-19 05:55+0000\n"
19−"X-Generator: Launchpad (build 18097)\n"
18+"X-Launchpad-Export-Date: 2016-09-27 07:04+0000\n"
19+"X-Generator: Launchpad (build 18204)\n"
2020
21−#: plugins/IntegratedLightDM/Greeter.cpp:112
21+#: plugins/LightDM/Greeter.cpp:123
2222msgid "Password: "
2323msgstr "Κωδικός πρόσβασης: "
2424
@@ -35,77 +35,55 @@ msgstr "Έξοδος"
3535msgid "Unpin shortcut"
3636msgstr "Ξεκαρφίτσωμα συντόμευσης"
3737
38−#: qml/Components/DelayedLockscreen.qml:49
39−msgid "Device Locked"
40−msgstr "Κλειδωμένη συσκευή"
41−
42−#: qml/Components/DelayedLockscreen.qml:64
43−msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
45−"Δεν σας επιτρέπεται η πρόσβαση καθώς προσπαθήσατε επανηλλημένως να "
46−"συνδεθείτε με λάθος συνθηματικό."
47−
48−#: qml/Components/DelayedLockscreen.qml:65
49−msgid "You have been locked out due to too many failed passcode attempts."
50−msgstr ""
51−"Δεν σας επιτρέπεται η πρόσβαση καθώς προσπαθήσατε επανηλλημένως να "
52−"συνδεθείτε με λάθος κωδικό πρόσβασης."
53−
54−#: qml/Components/DelayedLockscreen.qml:74
55−#, qt-format
56−msgid "Please wait %1 minute and then try again…"
57−msgid_plural "Please wait %1 minutes and then try again…"
58−msgstr[0] "Παρακαλώ περιμένετε %1 λεπτό και δοκιμάστε ξανά..."
59−msgstr[1] "Παρακαλώ περιμένετε %1 λεπτά και δοκιμάστε ξανά..."
60−
61−#: qml/Components/Dialogs.qml:146
38+#: qml/Components/Dialogs.qml:149
6239msgctxt "Title: Lock/Log out dialog"
6340msgid "Log out"
6441msgstr "Αποσύνδεση"
6542
66−#: qml/Components/Dialogs.qml:147
43+#: qml/Components/Dialogs.qml:150
6744msgid "Are you sure you want to log out?"
6845msgstr "Επιθυμείτε σίγουρα να αποσυνδεθείτε;"
6946
70−#: qml/Components/Dialogs.qml:149
47+#: qml/Components/Dialogs.qml:152
7148msgctxt "Button: Lock the system"
7249msgid "Lock"
7350msgstr "Κλείδωμα"
7451
75−#: qml/Components/Dialogs.qml:156
52+#: qml/Components/Dialogs.qml:159
7653msgctxt "Button: Log out from the system"
7754msgid "Log Out"
7855msgstr "Αποσύνδεση"
7956
80−#: qml/Components/Dialogs.qml:163 qml/Components/Dialogs.qml:219
81−#: qml/Dash/DashPageHeader.qml:295 qml/Wizard/Pages/passcode-confirm.qml:32
57+#: qml/Components/Dialogs.qml:166 qml/Components/Dialogs.qml:222
58+#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:232
59+#: qml/Wizard/Pages/passcode-confirm.qml:32
8260#: qml/Wizard/Pages/passcode-set.qml:32
8361msgid "Cancel"
8462msgstr "Ακύρωση"
8563
86−#: qml/Components/Dialogs.qml:175
64+#: qml/Components/Dialogs.qml:178
8765msgctxt "Title: Reboot dialog"
8866msgid "Reboot"
8967msgstr "Επανεκκίνηση"
9068
91−#: qml/Components/Dialogs.qml:176
69+#: qml/Components/Dialogs.qml:179
9270msgid "Are you sure you want to reboot?"
9371msgstr "Επιθυμείτε σίγουρα επανεκκίνηση;"
9472
95−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:181
9674msgid "No"
9775msgstr "Όχι"
9876
99−#: qml/Components/Dialogs.qml:184
77+#: qml/Components/Dialogs.qml:187
10078msgid "Yes"
10179msgstr "Ναι"
10280
103−#: qml/Components/Dialogs.qml:199
81+#: qml/Components/Dialogs.qml:202
10482msgctxt "Title: Power off/Restart dialog"
10583msgid "Power"
10684msgstr "Τερματισμός"
10785
108−#: qml/Components/Dialogs.qml:200
86+#: qml/Components/Dialogs.qml:203
10987msgid ""
11088"Are you sure you would like\n"
11189"to power off?"
@@ -113,12 +91,12 @@ msgstr ""
11391"Επιθυμείτε σίγουρα τον\n"
11492"τερματισμό λειτουργίας;"
11593
116−#: qml/Components/Dialogs.qml:202
94+#: qml/Components/Dialogs.qml:205
11795msgctxt "Button: Power off the system"
11896msgid "Power off"
11997msgstr "Τερματισμός"
12098
121−#: qml/Components/Dialogs.qml:211
99+#: qml/Components/Dialogs.qml:214
122100msgctxt "Button: Restart the system"
123101msgid "Restart"
124102msgstr "Επανεκκίνηση"
@@ -283,18 +261,28 @@ msgstr ""
283261msgid "Closes the current window."
284262msgstr ""
285263
286−#: qml/Components/Lockscreen.qml:231
264+#: qml/Components/Lockscreen.qml:212 qml/Greeter/NarrowView.qml:252
287265msgid "Return to Call"
288266msgstr "Επιστροφή στην κλήση"
289267
290−#: qml/Components/Lockscreen.qml:231
268+#: qml/Components/Lockscreen.qml:212
291269msgid "Emergency Call"
292270msgstr "Κλήση έκτακτης ανάγκης"
293271
294−#: qml/Components/Lockscreen.qml:263
272+#: qml/Components/Lockscreen.qml:244
295273msgid "OK"
296274msgstr "OK"
297275
276+#: qml/Components/MediaServices/VideoPlayerControls.qml:44
277+#, qt-format
278+msgid "%1:%2:%3"
279+msgstr ""
280+
281+#: qml/Components/MediaServices/VideoPlayerControls.qml:49
282+#, qt-format
283+msgid "%1:%2"
284+msgstr ""
285+
298286#: qml/Components/ModeSwitchWarningDialog.qml:32
299287msgid "Apps may have unsaved data:"
300288msgstr "Οι εφαρμογές μπορεί να έχουν μη αποθηκευμένα δεδομένα:"
@@ -323,55 +311,59 @@ msgstr "Επανασύνδεση τώρα!"
323311msgid "Close all"
324312msgstr "Κλείσιμο όλων"
325313
326−#: qml/Dash/DashPageHeader.qml:333
314+#: qml/Components/SharingPicker.qml:54
315+msgid "Preview Share Item"
316+msgstr "Προεπισκόπηση κοινής χρήσης αντικειμένου"
317+
318+#: qml/Dash/DashPageHeader.qml:362
327319msgctxt "Button: Open the Ubuntu Store"
328320msgid "Store"
329321msgstr "Κατάστημα"
330322
331−#: qml/Dash/DashPageHeader.qml:340
323+#: qml/Dash/DashPageHeader.qml:369
332324msgctxt "Button: Start a search in the current dash scope"
333325msgid "Search"
334326msgstr "Αναζήτηση"
335327
336−#: qml/Dash/DashPageHeader.qml:350
328+#: qml/Dash/DashPageHeader.qml:379
337329msgctxt "Button: Show the current dash scope settings"
338330msgid "Settings"
339331msgstr "Ρυθμίσεις"
340332
341−#: qml/Dash/DashPageHeader.qml:357
333+#: qml/Dash/DashPageHeader.qml:386
342334msgid "Remove from Favorites"
343335msgstr "Αφαίρεση από τα αγαπημένα"
344336
345−#: qml/Dash/DashPageHeader.qml:357
337+#: qml/Dash/DashPageHeader.qml:386
346338msgid "Add to Favorites"
347339msgstr "Προσθήκη στα αγαπημένα"
348340
349−#: qml/Dash/FiltersPopover.qml:60
341+#: qml/Dash/FiltersPopover.qml:61
350342msgid "Refine your results"
351343msgstr "Βελτιώστε τα αποτελέσματά σας"
352344
353−#: qml/Dash/FiltersPopover.qml:69
345+#: qml/Dash/FiltersPopover.qml:70
354346msgid "Reset"
355347msgstr "Επαναφορά"
356348
357−#: qml/Dash/GenericScopeView.qml:580 qml/Dash/GenericScopeView.qml:775
349+#: qml/Dash/GenericScopeView.qml:586 qml/Dash/GenericScopeView.qml:782
358350msgid "Show less"
359351msgstr ""
360352
361−#: qml/Dash/GenericScopeView.qml:580
353+#: qml/Dash/GenericScopeView.qml:586
362354msgid "Show all"
363355msgstr ""
364356
365−#: qml/Dash/GenericScopeView.qml:637
357+#: qml/Dash/GenericScopeView.qml:643
366358msgctxt "Label: Hint for dash search line edit"
367359msgid "Search"
368360msgstr "Αναζήτηση"
369361
370−#: qml/Dash/PageHeaderExtraPanel.qml:56
362+#: qml/Dash/PageHeaderExtraPanel.qml:57
371363msgid "Recent Searches"
372364msgstr "Πρόσφατες αναζητήσεις"
373365
374−#: qml/Dash/PageHeaderExtraPanel.qml:67
366+#: qml/Dash/PageHeaderExtraPanel.qml:68
375367msgid "Clear All"
376368msgstr "Καθαρισμός όλων"
377369
@@ -383,28 +375,24 @@ msgstr "Περισσότερα..."
383375msgid "Less..."
384376msgstr "Λιγότερα..."
385377
386−#: qml/Dash/Previews/PreviewCommentInput.qml:68
387−#: qml/Dash/Previews/PreviewRatingInput.qml:175
378+#: qml/Dash/Previews/PreviewCommentInput.qml:83
379+#: qml/Dash/Previews/PreviewRatingInput.qml:201
388380msgid "Send"
389381msgstr "Αποστολή"
390382
391−#: qml/Dash/Previews/PreviewRatingInput.qml:82
383+#: qml/Dash/Previews/PreviewRatingInput.qml:108
392384msgid "Rate this"
393385msgstr "Βαθμολογήστε το"
394386
395−#: qml/Dash/Previews/PreviewRatingInput.qml:157
387+#: qml/Dash/Previews/PreviewRatingInput.qml:183
396388msgid "Add a review"
397389msgstr "Προσθέστε την αξιολόγησή σας"
398390
399−#: qml/Dash/Previews/PreviewSharing.qml:66
400−msgid "Preview Share Item"
401−msgstr "Προεπισκόπηση κοινής χρήσης αντικειμένου"
402−
403−#: qml/Dash/PullToRefreshScopeStyle.qml:55
391+#: qml/Dash/PullToRefreshScopeStyle.qml:56
404392msgid "Pull to refresh…"
405393msgstr "Σύρτε για ανανέωση…"
406394
407−#: qml/Dash/PullToRefreshScopeStyle.qml:60
395+#: qml/Dash/PullToRefreshScopeStyle.qml:61
408396msgid "Release to refresh…"
409397msgstr "Αφήστε για ανανέωση…"
410398
@@ -412,15 +400,15 @@ msgstr "Αφήστε για ανανέωση…"
412400msgid "Enable location data"
413401msgstr "Ενεργοποίηση δεδομένων τοποθεσίας"
414402
415−#: qml/Dash/ScopesList.qml:55
403+#: qml/Dash/ScopesList.qml:57
416404msgid "Manage"
417405msgstr "Διαχείριση"
418406
419−#: qml/Dash/ScopesList.qml:101
407+#: qml/Dash/ScopesList.qml:104
420408msgid "Home"
421409msgstr "Αρχή"
422410
423−#: qml/Dash/ScopesList.qml:102
411+#: qml/Dash/ScopesList.qml:105
424412msgid "Also installed"
425413msgstr "Επίσης εγκατεστημένα"
426414
@@ -432,77 +420,60 @@ msgstr ""
432420"Η συσκεύη σας τώρα είναι συνδεδεμένη με μια εξωτερική οθόνη. Χρησιμοποιείστε "
433421"αυτήν την οθόνη ως επιφάνεια αφής για να αλληλεπηδράσετε με τον δείκτη."
434422
435−#: qml/Greeter/CoverPage.qml:119
423+#: qml/Greeter/CoverPage.qml:127
436424msgid "Unlock"
437425msgstr "Ξεκλείδωμα"
438426
439−#: qml/Greeter/LoginList.qml:259
440−msgid "Retry"
441−msgstr "Επανάληψη"
427+#: qml/Greeter/DelayedLockscreen.qml:43
428+msgid "Device Locked"
429+msgstr "Κλειδωμένη συσκευή"
442430
443−#: qml/Greeter/LoginList.qml:260
444−msgid "Log In"
431+#: qml/Greeter/DelayedLockscreen.qml:58
432+msgid "You have been locked out due to too many failed passphrase attempts."
445433msgstr ""
434+"Δεν σας επιτρέπεται η πρόσβαση καθώς προσπαθήσατε επανηλλημένως να "
435+"συνδεθείτε με λάθος συνθηματικό."
446436
447−#: qml/Greeter/NarrowView.qml:54
448−msgid "Sorry, incorrect passphrase."
449−msgstr "Συγνώμη, μη έγκυρο συνθηματικό."
450−
451−#: qml/Greeter/NarrowView.qml:55
452−msgid "Sorry, incorrect passcode."
453−msgstr "Συγνώμη, μη έγκυρος κωδικός πρόσβασης."
437+#: qml/Greeter/DelayedLockscreen.qml:59
438+msgid "You have been locked out due to too many failed passcode attempts."
439+msgstr ""
440+"Δεν σας επιτρέπεται η πρόσβαση καθώς προσπαθήσατε επανηλλημένως να "
441+"συνδεθείτε με λάθος κωδικό πρόσβασης."
454442
455−#: qml/Greeter/NarrowView.qml:56
456−msgid "This will be your last attempt."
457−msgstr "Αυτή θα είναι η τελευταία σας προσπάθεια."
443+#: qml/Greeter/DelayedLockscreen.qml:68
444+#, qt-format
445+msgid "Please wait %1 minute and then try again…"
446+msgid_plural "Please wait %1 minutes and then try again…"
447+msgstr[0] "Παρακαλώ περιμένετε %1 λεπτό και δοκιμάστε ξανά..."
448+msgstr[1] "Παρακαλώ περιμένετε %1 λεπτά και δοκιμάστε ξανά..."
458449
459−#: qml/Greeter/NarrowView.qml:58
460−msgid ""
461−"If passphrase is entered incorrectly, your phone will conduct a factory "
462−"reset and all personal data will be deleted."
450+#: qml/Greeter/Greeter.qml:596
451+msgid "Try again"
463452msgstr ""
464−"Εάν το συνθηματικό που θα εισάγετε είναι μη έγκυρο, το τηλέφωνο σας θα κάνει "
465−"επαναφορά των εργοστασιακών ρυθμίσεων και όλα τα δεδομένα σας θα διαγραφούν."
466453
467−#: qml/Greeter/NarrowView.qml:59
468−msgid ""
469−"If passcode is entered incorrectly, your phone will conduct a factory reset "
470−"and all personal data will be deleted."
454+#: qml/Greeter/LoginList.qml:70
455+msgid "Passphrase"
471456msgstr ""
472−"Εάν ο κωδικός πρόσβασης που θα εισάγετε είναι μη έγκυρος, το τηλέφωνο σας θα "
473−"κάνει επαναφορά των εργοστασιακών ρυθμίσεων και όλα τα δεδομένα σας θα "
474−"διαγραφούν."
475−
476−#: qml/Greeter/NarrowView.qml:116
477−#, qt-format
478−msgid "Enter %1"
479−msgstr "Εισάγετε %1"
480−
481−#: qml/Greeter/NarrowView.qml:117
482−msgid "Enter passphrase"
483−msgstr "Εισαγωγή συνθηματικού"
484457
485−#: qml/Greeter/NarrowView.qml:118
486−msgid "Enter passcode"
487−msgstr "Εισαγωγή κωδικού πρόσβασης"
458+#: qml/Greeter/LoginList.qml:71
459+msgid "Passcode"
460+msgstr ""
488461
489−#: qml/Greeter/NarrowView.qml:119
490−#, qt-format
491−msgid "Sorry, incorrect %1"
492−msgstr "Συγνώμη, μη έγκυρο %1"
462+#: qml/Greeter/LoginList.qml:98
463+msgid "Retry"
464+msgstr "Επανάληψη"
493465
494−#: qml/Greeter/NarrowView.qml:120
495−msgid "Sorry, incorrect passphrase"
496−msgstr "Συγνώμη, μη έγκυρο συνθηματικό"
466+#: qml/Greeter/LoginList.qml:99
467+msgid "Log In"
468+msgstr ""
497469
498−#: qml/Greeter/NarrowView.qml:121
499−msgctxt "passphrase"
500−msgid "Please re-enter"
501−msgstr "Παρακαλώ πληκτρολογήστε ξανά"
470+#: qml/Greeter/NarrowView.qml:252
471+msgid "Emergency"
472+msgstr ""
502473
503−#: qml/Greeter/NarrowView.qml:122
504−msgid "Sorry, incorrect passcode"
505−msgstr "Συγνώμη, μη έγκυρος κωδικός πρόσβασης"
474+#: qml/Greeter/SessionsList.qml:122
475+msgid "Select desktop environment"
476+msgstr ""
506477
507478#: qml/Notifications/NotificationMenuItemFactory.qml:124
508479msgid "Show password"
@@ -622,40 +593,54 @@ msgctxt "Button: Go back one page in the Wizard"
622593msgid "Back"
623594msgstr "Πίσω"
624595
625−#: qml/Wizard/Pages/10-welcome.qml:27
596+#: qml/Wizard/Pages/10-welcome.qml:28
626597msgid "Language"
627598msgstr "Γλώσσα"
628599
629−#: qml/Wizard/Pages/10-welcome.qml:171 qml/Wizard/Pages/30-wifi.qml:206
630−#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:270
631−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
600+#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
601+#: qml/Wizard/Pages/30-wifi.qml:207 qml/Wizard/Pages/40-location.qml:271
602+#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
603+#: qml/Wizard/Pages/70-passwd-type.qml:145
632604#: qml/Wizard/Pages/75-report-check.qml:84
633−#: qml/Wizard/Pages/passcode-desktop.qml:124
634−#: qml/Wizard/Pages/password-set.qml:141
605+#: qml/Wizard/Pages/passcode-desktop.qml:142
606+#: qml/Wizard/Pages/password-set.qml:142
635607msgid "Next"
636608msgstr "Επόμενο"
637609
638−#: qml/Wizard/Pages/30-wifi.qml:29
610+#: qml/Wizard/Pages/20-keyboard.qml:31
611+msgid "Select Keyboard"
612+msgstr ""
613+
614+#: qml/Wizard/Pages/20-keyboard.qml:71
615+msgid "Keyboard language"
616+msgstr ""
617+
618+#: qml/Wizard/Pages/20-keyboard.qml:93
619+msgid "Keyboard layout"
620+msgstr ""
621+
622+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
623+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
624+#: qml/Wizard/Pages/sim.qml:101
625+msgid "Skip"
626+msgstr "Παράβλεψη"
627+
628+#: qml/Wizard/Pages/30-wifi.qml:31
639629msgid "Connect to Wi‑Fi"
640630msgstr "Σύνδεση σε δίκτυο Wi-Fi"
641631
642−#: qml/Wizard/Pages/30-wifi.qml:130
632+#: qml/Wizard/Pages/30-wifi.qml:132
643633msgid "Connected"
644634msgstr "Συνδεδεμένο"
645635
646−#: qml/Wizard/Pages/30-wifi.qml:163
636+#: qml/Wizard/Pages/30-wifi.qml:165
647637msgid "Available Wi-Fi networks"
648638msgstr "Διαθέσιμα δίκτυα Wi-Fi"
649639
650−#: qml/Wizard/Pages/30-wifi.qml:164
640+#: qml/Wizard/Pages/30-wifi.qml:166
651641msgid "No available Wi-Fi networks"
652642msgstr "Κανένα διαθέσιμο δίκτυο Wi-Fi"
653643
654−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
655−#: qml/Wizard/Pages/sim.qml:101
656−msgid "Skip"
657−msgstr "Παράβλεψη"
658−
659644#: qml/Wizard/Pages/40-location.qml:27
660645msgid "Location Services"
661646msgstr "Υπηρεσίες τοποθεσίας"
@@ -689,11 +674,11 @@ msgstr "Μην χρησιμοποιήσεις την τοποθεσία μου"
689674msgid "You can change it later in System Settings."
690675msgstr "Μπορείτε να το αλλάξετε αργότερα στις Ρυθμίσεις συστήματος."
691676
692−#: qml/Wizard/Pages/50-timezone.qml:29
677+#: qml/Wizard/Pages/50-timezone.qml:30
693678msgid "Time Zone"
694679msgstr "Ζώνη ώρας"
695680
696−#: qml/Wizard/Pages/50-timezone.qml:181
681+#: qml/Wizard/Pages/50-timezone.qml:182
697682msgid "Enter your city"
698683msgstr "Εισάγετε την πόλη σας"
699684
@@ -705,21 +690,21 @@ msgstr "Εξατομικεύστε την συσκευή σας."
705690msgid "Preferred Name"
706691msgstr "Προτιμώμενο όνομα"
707692
708−#: qml/Wizard/Pages/70-passwd-type.qml:39
693+#: qml/Wizard/Pages/70-passwd-type.qml:40
709694msgid "Lock Screen"
710695msgstr "Κλείδωμα οθόνης"
711696
712−#: qml/Wizard/Pages/70-passwd-type.qml:101
697+#: qml/Wizard/Pages/70-passwd-type.qml:102
713698msgctxt "Label: Type of security method"
714699msgid "Create new password"
715700msgstr "Δημιουργία νέου κωδικού πρόσβασης"
716701
717−#: qml/Wizard/Pages/70-passwd-type.qml:103
702+#: qml/Wizard/Pages/70-passwd-type.qml:104
718703msgctxt "Label: Type of security method"
719704msgid "Create passcode (numbers only)"
720705msgstr "Δημιουργία κωδικού πρόσβασης (αριθμοί μόνο)"
721706
722−#: qml/Wizard/Pages/70-passwd-type.qml:105
707+#: qml/Wizard/Pages/70-passwd-type.qml:106
723708msgctxt "Label: Type of security method"
724709msgid "No lock code"
725710msgstr "Κανένας κωδικός κλειδώματος"
@@ -742,6 +727,35 @@ msgstr ""
742727msgid "Privacy policy"
743728msgstr "Πολιτική απορρήτου"
744729
730+#: qml/Wizard/Pages/77-system-update.qml:28
731+msgid "Update Device"
732+msgstr ""
733+
734+#: qml/Wizard/Pages/77-system-update.qml:55
735+msgid ""
736+"There is a system update available and ready to install. Afterwards, the "
737+"device will automatically restart."
738+msgstr ""
739+
740+#: qml/Wizard/Pages/77-system-update.qml:76
741+msgctxt "string identifying name of the update"
742+msgid "Ubuntu system"
743+msgstr ""
744+
745+#: qml/Wizard/Pages/77-system-update.qml:83
746+#, qt-format
747+msgctxt "version of the system update"
748+msgid "Version %1"
749+msgstr ""
750+
751+#: qml/Wizard/Pages/77-system-update.qml:102
752+msgid "This could take a few minutes..."
753+msgstr ""
754+
755+#: qml/Wizard/Pages/77-system-update.qml:116
756+msgid "Install and restart now"
757+msgstr ""
758+
745759#: qml/Wizard/Pages/80-finished.qml:89
746760msgid "Welcome to Ubuntu"
747761msgstr "Καλώς ήρθατε στο Ubuntu"
@@ -789,7 +803,7 @@ msgid "Service Terms"
789803msgstr "Όρους υπηρεσίας"
790804
791805#: qml/Wizard/Pages/passcode-confirm.qml:43
792−#: qml/Wizard/Pages/passcode-desktop.qml:80
806+#: qml/Wizard/Pages/passcode-desktop.qml:97
793807msgid "Confirm passcode"
794808msgstr "Επιβεβαιώστε τον κωδικό πρόσβασης"
795809
@@ -802,28 +816,28 @@ msgctxt "Enter the passcode again"
802816msgid "Please re-enter."
803817msgstr "Παρακαλώ πληκτρολογήστε ξανά."
804818
805−#: qml/Wizard/Pages/passcode-desktop.qml:30
819+#: qml/Wizard/Pages/passcode-desktop.qml:31
806820msgid "Lock Screen Passcode"
807821msgstr "Κωδικός πρόσβασης κλειδώματος οθόνης"
808822
809−#: qml/Wizard/Pages/passcode-desktop.qml:56
823+#: qml/Wizard/Pages/passcode-desktop.qml:61
810824msgid "Enter 4 numbers to setup your passcode"
811825msgstr "Εισάγετε 4 αριθμούς για ρύθμιση κωδικού πρόσβασης"
812826
813−#: qml/Wizard/Pages/passcode-desktop.qml:65
827+#: qml/Wizard/Pages/passcode-desktop.qml:77
814828#: qml/Wizard/Pages/passcode-set.qml:54
815829msgid "Choose passcode"
816830msgstr "Επιλογή κωδικού πρόσβασης"
817831
818−#: qml/Wizard/Pages/passcode-desktop.qml:105
832+#: qml/Wizard/Pages/passcode-desktop.qml:127
819833msgid "Passcode too short"
820834msgstr "Κωδικός πρόσβασης πολύ μικρός"
821835
822−#: qml/Wizard/Pages/passcode-desktop.qml:107
836+#: qml/Wizard/Pages/passcode-desktop.qml:129
823837msgid "Passcodes match"
824838msgstr "Ταίριασμα κωδικών πρόσβασης"
825839
826−#: qml/Wizard/Pages/passcode-desktop.qml:109
840+#: qml/Wizard/Pages/passcode-desktop.qml:131
827841msgid "Passcodes do not match"
828842msgstr "Οι κωδικοί πρόσβασης δεν ταιριάζουν"
829843
@@ -831,19 +845,19 @@ msgstr "Οι κωδικοί πρόσβασης δεν ταιριάζουν"
831845msgid "Passcode must be 4 characters long"
832846msgstr "Ο κωδικός πρόσβασης πρέπει να είναι 4 χαρακτήρες"
833847
834−#: qml/Wizard/Pages/password-set.qml:30
848+#: qml/Wizard/Pages/password-set.qml:31
835849msgid "Lock Screen Password"
836850msgstr "Κωδικός πρόσβασης κλειδώματος οθόνης"
837851
838−#: qml/Wizard/Pages/password-set.qml:61
852+#: qml/Wizard/Pages/password-set.qml:62
839853msgid "Enter at least 8 characters"
840854msgstr "Εισάγετε τουλάχιστον 8 χαρακτήρες"
841855
842−#: qml/Wizard/Pages/password-set.qml:73
856+#: qml/Wizard/Pages/password-set.qml:74
843857msgid "Choose password"
844858msgstr "Επιλογή κωδικού πρόσβασης"
845859
846−#: qml/Wizard/Pages/password-set.qml:103
860+#: qml/Wizard/Pages/password-set.qml:104
847861msgid "Confirm password"
848862msgstr "Επιβεβαίωση κωδικού πρόσβασης"
849863
@@ -875,26 +889,30 @@ msgid "To proceed with no SIM tap Skip."
875889msgstr ""
876890
877891#: qml/Wizard/PasswordMeter.qml:87
892+msgid "Password too short"
893+msgstr ""
894+
895+#: qml/Wizard/PasswordMeter.qml:89
878896msgid "Passwords match"
879897msgstr "Οι κωδικοί πρόσβασης ταιριάζουν"
880898
881−#: qml/Wizard/PasswordMeter.qml:89
899+#: qml/Wizard/PasswordMeter.qml:91
882900msgid "Passwords do not match"
883901msgstr "Οι κωδικοί πρόσβασης δεν ταιριάζουν"
884902
885−#: qml/Wizard/PasswordMeter.qml:93
903+#: qml/Wizard/PasswordMeter.qml:95
886904msgid "Strong password"
887905msgstr "Δυνατός κωδικός πρόσβασης"
888906
889−#: qml/Wizard/PasswordMeter.qml:95
907+#: qml/Wizard/PasswordMeter.qml:97
890908msgid "Fair password"
891909msgstr "Μέτριος κωδικός πρόσβασης"
892910
893−#: qml/Wizard/PasswordMeter.qml:97
911+#: qml/Wizard/PasswordMeter.qml:99
894912msgid "Weak password"
895913msgstr "Αδύναμος κωδικός πρόσβασης"
896914
897−#: qml/Wizard/PasswordMeter.qml:99
915+#: qml/Wizard/PasswordMeter.qml:101
898916msgid "Very weak password"
899917msgstr ""
900918
@@ -979,21 +997,44 @@ msgstr ""
979997#~ msgid "Favorites"
980998#~ msgstr "Αγαπημένα"
981999
1000+#~ msgid "This will be your last attempt."
1001+#~ msgstr "Αυτή θα είναι η τελευταία σας προσπάθεια."
1002+
9821003#~ msgid "Done"
9831004#~ msgstr "Ολοκληρώθηκε"
9841005
9851006#~ msgid "Are you sure you want to shut down?"
9861007#~ msgstr "Επιθυμείτε σίγουρα τερματισμό;"
9871008
1009+#, qt-format
1010+#~ msgid "Sorry, incorrect %1"
1011+#~ msgstr "Συγνώμη, μη έγκυρο %1"
1012+
9881013#~ msgid "Log out"
9891014#~ msgstr "Αποσύνδεση"
9901015
9911016#~ msgid "Reboot"
9921017#~ msgstr "Επανεκκίνηση"
9931018
1019+#~ msgid "Sorry, incorrect passphrase"
1020+#~ msgstr "Συγνώμη, μη έγκυρο συνθηματικό"
1021+
1022+#~ msgid "Enter passphrase"
1023+#~ msgstr "Εισαγωγή συνθηματικού"
1024+
9941025#~ msgid "Please re-enter"
9951026#~ msgstr "Παρακαλώ πληκτρολογήστε ξανά"
9961027
1028+#~ msgid "Enter passcode"
1029+#~ msgstr "Εισαγωγή κωδικού πρόσβασης"
1030+
1031+#~ msgid "Sorry, incorrect passcode"
1032+#~ msgstr "Συγνώμη, μη έγκυρος κωδικός πρόσβασης"
1033+
1034+#, qt-format
1035+#~ msgid "Enter %1"
1036+#~ msgstr "Εισάγετε %1"
1037+
9971038#~ msgid "Shut down"
9981039#~ msgstr "Τερματισμός λειτουργίας"
9991040
@@ -1018,6 +1059,9 @@ msgstr ""
10181059#~ msgid "%1 〉"
10191060#~ msgstr "%1 〉"
10201061
1062+#~ msgid "Sorry, incorrect passcode."
1063+#~ msgstr "Συγνώμη, μη έγκυρος κωδικός πρόσβασης."
1064+
10211065#~ msgid "Add a SIM card and restart your device"
10221066#~ msgstr "Εισάγετε μια κάρτα SIM και επανεκκινήστε τη συσκευή σας"
10231067
@@ -1038,6 +1082,14 @@ msgstr ""
10381082#~ msgid "Continue"
10391083#~ msgstr "Συνέχιση"
10401084
1085+#~ msgid ""
1086+#~ "If passcode is entered incorrectly, your phone will conduct a factory reset "
1087+#~ "and all personal data will be deleted."
1088+#~ msgstr ""
1089+#~ "Εάν ο κωδικός πρόσβασης που θα εισάγετε είναι μη έγκυρος, το τηλέφωνο σας θα "
1090+#~ "κάνει επαναφορά των εργοστασιακών ρυθμίσεων και όλα τα δεδομένα σας θα "
1091+#~ "διαγραφούν."
1092+
10411093#~ msgid "Lock security"
10421094#~ msgstr "Κλείδωμα ασφαλείας"
10431095
@@ -1221,3 +1273,17 @@ msgstr ""
12211273#~ msgctxt "Label: Type of security method"
12221274#~ msgid "Swipe"
12231275#~ msgstr "Χειρονομία"
1276+
1277+#~ msgctxt "passphrase"
1278+#~ msgid "Please re-enter"
1279+#~ msgstr "Παρακαλώ πληκτρολογήστε ξανά"
1280+
1281+#~ msgid "Sorry, incorrect passphrase."
1282+#~ msgstr "Συγνώμη, μη έγκυρο συνθηματικό."
1283+
1284+#~ msgid ""
1285+#~ "If passphrase is entered incorrectly, your phone will conduct a factory "
1286+#~ "reset and all personal data will be deleted."
1287+#~ msgstr ""
1288+#~ "Εάν το συνθηματικό που θα εισάγετε είναι μη έγκυρο, το τηλέφωνο σας θα κάνει "
1289+#~ "επαναφορά των εργοστασιακών ρυθμίσεων και όλα τα δεδομένα σας θα διαγραφούν."
po/en_AU.po+223−157

This diff is too big to show here.

po/en_GB.po+231−165

This diff is too big to show here.

po/eo.po+170−147

This diff is too big to show here.

po/es.po+273−203

This diff is too big to show here.

po/eu.po+225−159

This diff is too big to show here.

po/fa.po+269−202

This diff is too big to show here.

po/fi.po+270−202

This diff is too big to show here.

po/fo.po+187−150

This diff is too big to show here.

po/fr.po+277−206

This diff is too big to show here.

po/ga.po+224−158

This diff is too big to show here.

po/gd.po+278−205

This diff is too big to show here.

po/gl.po+271−201

This diff is too big to show here.

po/gv.po+174−151

This diff is too big to show here.

po/he.po+187−149

This diff is too big to show here.

po/hi.po+168−145

This diff is too big to show here.

po/hr.po+271−203

This diff is too big to show here.

po/hu.po+228−160

This diff is too big to show here.

po/hy.po+206−154

This diff is too big to show here.

po/ia.po+271−201

This diff is too big to show here.

po/id.po+218−156

This diff is too big to show here.

po/is.po+221−159

This diff is too big to show here.

po/it.po+275−205

This diff is too big to show here.

po/ja.po+215−153

This diff is too big to show here.

po/km.po+206−154

This diff is too big to show here.

po/kn.po+168−145

This diff is too big to show here.

po/ko.po+220−154

This diff is too big to show here.

po/ku.po+203−151

This diff is too big to show here.

po/ky.po+168−145

This diff is too big to show here.

po/lo.po+168−145

This diff is too big to show here.

po/lt.po+168−145

This diff is too big to show here.

po/lv.po+224−158

This diff is too big to show here.

po/ml.po+168−145

This diff is too big to show here.

po/mr.po+168−145

This diff is too big to show here.

po/ms.po+224−158

This diff is too big to show here.

po/my.po+169−146

This diff is too big to show here.

po/nb.po+225−159

This diff is too big to show here.

po/ne.po+169−146

This diff is too big to show here.

po/nl.po+226−160

This diff is too big to show here.

po/nn.po+168−145

This diff is too big to show here.

po/oc.po+228−162

This diff is too big to show here.

po/or.po+168−145

This diff is too big to show here.

po/pa.po+218−156

This diff is too big to show here.

po/pl.po+272−202

This diff is too big to show here.

po/pt.po+229−161

This diff is too big to show here.

po/pt_BR.po+225−159

This diff is too big to show here.

po/ro.po+223−161

This diff is too big to show here.

po/ru.po+263−195

This diff is too big to show here.

po/shn.po+168−145

This diff is too big to show here.

po/si.po+168−145

This diff is too big to show here.

po/sk.po+272−204

This diff is too big to show here.

po/sl.po+225−159

This diff is too big to show here.

po/sq.po+186−148

This diff is too big to show here.

po/sr.po+272−203

This diff is too big to show here.

po/sv.po+223−157

This diff is too big to show here.

po/sw.po+219−157

This diff is too big to show here.

po/ta.po+168−145

This diff is too big to show here.

po/te.po+168−145

This diff is too big to show here.

po/th.po+168−145

This diff is too big to show here.

po/tr.po+351−266

This diff is too big to show here.

po/ug.po+267−201

This diff is too big to show here.

po/uk.po+227−161

This diff is too big to show here.

po/unity8.pot+167−144

This diff is too big to show here.

po/ur.po+168−145

This diff is too big to show here.

po/uz.po+168−145

This diff is too big to show here.

po/vi.po+168−145

This diff is too big to show here.

po/wo.po+223−157

This diff is too big to show here.

po/xh.po+168−145

This diff is too big to show here.

po/zh_CN.po+271−205

This diff is too big to show here.

po/zh_HK.po+168−145

This diff is too big to show here.

po/zh_TW.po+258−192

This diff is too big to show here.

qml/Components/Carousel.qml+1−2

This diff is too big to show here.

qml/Components/Dialogs.qml+10−7

This diff is too big to show here.

qml/Components/Flickable.qmlnew file+24

This diff is too big to show here.

qml/Components/FloatingFlickable.qml+1

This diff is too big to show here.

qml/Components/GridView.qmlnew file+24

This diff is too big to show here.

qml/Components/InputMethod.qml+8−44

This diff is too big to show here.

qml/Components/KeymapSwitcher.qml+27−1

This diff is too big to show here.

qml/Components/LazyImage.qml+3−1

This diff is too big to show here.

qml/Components/ListItems/graphics/ListItemDividerHorizontal@18.png

Binary file not shown.

qml/Components/ListView.qmlnew file+24

This diff is too big to show here.

qml/Components/Lockscreen.qml+1−20

This diff is too big to show here.

qml/Components/MediaServices/MediaServices.qmlnew file+386

This diff is too big to show here.

qml/Components/MediaServices/MediaServicesControls.qmlnew file+192

This diff is too big to show here.

qml/Components/MediaServices/MediaServicesHeader.qmlnew file+71

This diff is too big to show here.

qml/Components/MediaServices/VideoPlayer.qmlnew file+155

This diff is too big to show here.

qml/Components/MediaServices/VideoPlayerControls.qmlnew file+158

This diff is too big to show here.

qml/Components/NotificationAudio.qml+20−3

This diff is too big to show here.

qml/Components/PanelState/PanelState.qml−1

This diff is too big to show here.

qml/Components/ResponsiveGridView.qml+1

This diff is too big to show here.

qml/Dash/Previews/PreviewSharing.qml → qml/Components/SharingPicker.qmlrenamed+2−14

This diff is too big to show here.

qml/Components/VolumeControl.qml+3−3

This diff is too big to show here.

qml/Components/Wallpaper.qmlnew file+44

This diff is too big to show here.

qml/Components/WallpaperResolver.qml+24−38

This diff is too big to show here.

qml/Components/WindowControlButtons.qml+9−5

This diff is too big to show here.

qml/Components/ZoomableImage.qml+1−1

This diff is too big to show here.

qml/Components/flickableUtils.jsnew file+28

This diff is too big to show here.

qml/Components/graphics/close@20.png

Binary file not shown.

qml/Components/graphics/icon_star_empty@20.png

Binary file not shown.

qml/Components/graphics/icon_star_full@20.png

Binary file not shown.

qml/Components/graphics/icon_star_half@20.png

Binary file not shown.

qml/Components/graphics/icon_star_off@20.png

Binary file not shown.

qml/Components/graphics/icon_star_on@20.png

Binary file not shown.

qml/Components/graphics/non-selected@18.png

Binary file not shown.

qml/Dash/CardCarousel.qml+1−1

This diff is too big to show here.

qml/Dash/CardTool.qml+16−3

This diff is too big to show here.

qml/Dash/DashApplication.qml+16−5

This diff is too big to show here.

qml/Dash/DashBackground.qml+2−2

This diff is too big to show here.

qml/Dash/DashContent.qml−2

This diff is too big to show here.

qml/Dash/DashNavigation.qml+1

This diff is too big to show here.

qml/Dash/DashNavigationList.qml+48−45

This diff is too big to show here.

qml/Dash/DashPageHeader.qml+51−22

This diff is too big to show here.

qml/Dash/Filters/FilterExpandableWidget.qml+1

This diff is too big to show here.

qml/Dash/Filters/FilterOptionSelector.qml+2

This diff is too big to show here.

qml/Dash/FiltersPopover.qml+1

This diff is too big to show here.

qml/Dash/GenericScopeView.qml+24−7

This diff is too big to show here.

qml/Dash/PageHeaderExtraPanel.qml+2

This diff is too big to show here.

qml/Dash/Previews/Preview.qml+16

This diff is too big to show here.

qml/Dash/Previews/PreviewCommentInput.qml+15

This diff is too big to show here.

qml/Dash/Previews/PreviewImageGallery.qml+2

This diff is too big to show here.

qml/Dash/Previews/PreviewInlineVideo.qmlnew file+112

This diff is too big to show here.

qml/Dash/Previews/PreviewMediaToolbar.qml+25−5

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

qml/Dash/Previews/PreviewRatingInput.qml+27−1

This diff is too big to show here.

qml/Dash/Previews/PreviewSingleton/PreviewSingleton.qmlnew file+22

This diff is too big to show here.

qml/Dash/Previews/PreviewSingleton/qmldirnew file+1

This diff is too big to show here.

qml/Dash/Previews/PreviewWidget.qml+3

This diff is too big to show here.

qml/Dash/Previews/PreviewWidgetFactory.qml+11−1

This diff is too big to show here.

qml/Dash/Previews/PreviewZoomableImage.qml+1

This diff is too big to show here.

qml/Dash/PullToRefreshScopeStyle.qml+1

This diff is too big to show here.

qml/Dash/ScopeListView.qml+4−2

This diff is too big to show here.

qml/Dash/ScopesList.qml+3

This diff is too big to show here.

qml/Dash/ScopesListCategory.qml+1

This diff is too big to show here.

qml/Dash/graphics/dash_divider_top_darkgrad@27.png

Binary file not shown.

qml/Dash/graphics/dash_divider_top_lightgrad@27.png

Binary file not shown.

qml/Dash/graphics/header_handlearrow2@27.png

Binary file not shown.

qml/Dash/graphics/header_handlearrow@27.png

Binary file not shown.

qml/Dash/graphics/icon_clear@20.png

Binary file not shown.

qml/Dash/graphics/icon_search_active@20.png

Binary file not shown.

qml/Dash/graphics/icon_search_inactive@20.png

Binary file not shown.

qml/Dash/graphics/navigation_shadow@18.png

Binary file not shown.

qml/Dash/graphics/navigation_shadow_light@18.png

Binary file not shown.

qml/Dash/graphics/overview_hint@27.png

Binary file not shown.

qml/Dash/graphics/pagination_dot_off@30.png

Binary file not shown.

qml/Dash/graphics/pagination_dot_on@30.png

Binary file not shown.

qml/Dash/graphics/paper.png

Binary file not shown.

qml/Dash/graphics/pixel.png

Binary file not shown.

qml/Dash/graphics/play_button@18.png

Binary file not shown.

qml/Dash/graphics/play_button_active@18.png

Binary file not shown.

qml/Dash/graphics/play_button_active_big@20.png

Binary file not shown.

qml/Dash/graphics/play_button_big@20.png

Binary file not shown.

qml/Dash/graphics/tabbarchevron@27.png

Binary file not shown.

qml/Dash/graphics/tablet/icon_close_preview@20.png

Binary file not shown.

qml/Dash/graphics/tooltip_arrow@27.png

Binary file not shown.

qml/Greeter/Circle.qmlnew file+57

This diff is too big to show here.

qml/Greeter/Clock.qml−2

This diff is too big to show here.

qml/Greeter/CoverPage.qml+28−7

This diff is too big to show here.

qml/Components/DelayedLockscreen.qml → qml/Greeter/DelayedLockscreen.qmlrenamed+6−14

This diff is too big to show here.

qml/Greeter/FullLightDMImpl.qmlnew file+30

This diff is too big to show here.

qml/Greeter/Greeter.qml+233−79

This diff is too big to show here.

qml/Greeter/GreeterPrompt.qml+102−16

This diff is too big to show here.

qml/Greeter/Infographics.qml+19−20

This diff is too big to show here.

qml/Greeter/IntegratedLightDMImpl.qml+3−2

This diff is too big to show here.

qml/Greeter/LightDM.qml → qml/Greeter/LightDMService.qmlrenamed+16−3

This diff is too big to show here.

qml/Stages/ShimStage.qml → qml/Greeter/LoginAreaContainer.qmlrenamed+15−20

This diff is too big to show here.

qml/Greeter/LoginList.qml+123−36

This diff is too big to show here.

qml/Greeter/NarrowView.qml+155−52

This diff is too big to show here.

qml/Greeter/SessionIcon.qmlnew file+47

This diff is too big to show here.

qml/Greeter/SessionsList.qmlnew file+187

This diff is too big to show here.

qml/Greeter/WideView.qml+112−34

This diff is too big to show here.

qml/Greeter/graphics/dot_empty.png

Binary file not shown.

qml/Greeter/graphics/dot_filled.png

Binary file not shown.

qml/Greeter/graphics/dot_pointer.png

Binary file not shown.

qml/Greeter/graphics/icon_arrow.png

Binary file not shown.

qml/Greeter/graphics/infographic_circle_back.pngdeleted

Binary file not shown.

qml/Greeter/graphics/session_icons/gnome_badge.pngnew file

Binary file not shown.

qml/Greeter/graphics/session_icons/kde_badge.pngnew file

Binary file not shown.

qml/Greeter/graphics/session_icons/recovery_console_badge.pngnew file

Binary file not shown.

qml/Greeter/graphics/session_icons/ubuntu_badge.pngnew file

Binary file not shown.

qml/Greeter/graphics/session_icons/unknown_badge.pngnew file

Binary file not shown.

qml/Greeter/qmldirnew file+1

This diff is too big to show here.

qml/Launcher/Launcher.qml+1

This diff is too big to show here.

qml/Launcher/LauncherPanel.qml+5−3

This diff is too big to show here.

qml/Launcher/graphics/divider-line.png

Binary file not shown.

qml/Launcher/graphics/focused_app_arrow@30.png

Binary file not shown.

qml/Launcher/graphics/home@18.png

Binary file not shown.

qml/Launcher/graphics/quicklist_tooltip@30.png

Binary file not shown.

qml/Notifications/Notification.qml+13−29

This diff is too big to show here.

qml/Notifications/NotificationMenuItemFactory.qml−3

This diff is too big to show here.

qml/Notifications/Notifications.qml+14−25

This diff is too big to show here.

qml/OrientedShell.qml+10−3

This diff is too big to show here.

qml/Panel/IndicatorItemRow.qml+13−2

This diff is too big to show here.

qml/Panel/IndicatorPage.qml+1

This diff is too big to show here.

qml/Panel/Indicators/MenuItemFactory.qml+65

This diff is too big to show here.

qml/Panel/Indicators/client/IndicatorRepresentation.qml+27−23

This diff is too big to show here.

qml/Panel/Indicators/client/IndicatorsClient.qml+8−2

This diff is too big to show here.

qml/Panel/Indicators/client/IndicatorsList.qml+19−17

This diff is too big to show here.

qml/Panel/Indicators/client/IndicatorsTree.qml+5−8

This diff is too big to show here.

qml/Panel/IndicatorsMenu.qml+3−1

This diff is too big to show here.

qml/Panel/Panel.qml+11−15

This diff is too big to show here.

qml/Panel/graphics/rectangular_dropshadow@30.png

Binary file not shown.

qml/Rotation/HalfLoopRotationAnimation.qml+1−1

This diff is too big to show here.

qml/Rotation/ImmediateRotationAction.qml+1−1

This diff is too big to show here.

qml/Rotation/NinetyRotationAnimation.qml+1−1

This diff is too big to show here.

qml/Rotation/UpdateShellTransformations.qml+4−4

This diff is too big to show here.

qml/Shell.qml+132−24

This diff is too big to show here.

qml/Stages/AbstractStage.qml+13

This diff is too big to show here.

qml/Stages/ApplicationWindow.qml+7

This diff is too big to show here.

qml/Stages/DecoratedWindow.qml+26−4

This diff is too big to show here.

qml/Stages/DesktopSpread.qml+2

This diff is too big to show here.

qml/Stages/DesktopStage.qml+175−79

This diff is too big to show here.

qml/Stages/FakeMaximizeDelegate.qmlnew file+233

This diff is too big to show here.

qml/Stages/MoveHandler.qmlnew file+179

This diff is too big to show here.

qml/Stages/PhoneStage.qml+9−3

This diff is too big to show here.

qml/Stages/Splash.qml+3−6

This diff is too big to show here.

qml/Stages/SpreadDelegate.qml+72−81

This diff is too big to show here.

qml/Stages/TabletStage.qml+34−18

This diff is too big to show here.

qml/Stages/TopLevelSurfaceRepeater.qml+7−1

This diff is too big to show here.

qml/Stages/WindowControlsOverlay.qml+76−38

This diff is too big to show here.

qml/Stages/WindowDecoration.qml+15−39

This diff is too big to show here.

qml/Stages/WindowResizeArea.qml+24−35

This diff is too big to show here.

qml/Stages/graphics/PageHeaderBaseDividerBottom@18.png

Binary file not shown.

qml/Stages/graphics/PageHeaderBaseDividerLight@18.png

Binary file not shown.

qml/Stages/graphics/dropshadow2gu@30.png

Binary file not shown.

qml/Stages/graphics/sidestage_handle@20.png

Binary file not shown.

qml/Tutorial/graphics/background1.png

Binary file not shown.

qml/Tutorial/graphics/background2.png

Binary file not shown.

qml/Wizard/Page.qml+1−1

This diff is too big to show here.

qml/Wizard/Pages/10-welcome.qml+3−1

This diff is too big to show here.

qml/Wizard/Pages/20-keyboard.qmlnew file+161

This diff is too big to show here.

qml/Wizard/Pages/30-wifi.qml+11−5

This diff is too big to show here.

qml/Wizard/Pages/50-timezone.qml+1

This diff is too big to show here.

qml/Wizard/Pages/70-passwd-type.qml+1

This diff is too big to show here.

qml/Wizard/Pages/77-system-update.qmlnew file+156

This diff is too big to show here.

qml/Wizard/Pages/data/Desktop_header_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Desktop_splash_screen_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Phone_header_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Phone_splash_screen_bkg.png

Binary file not shown.

qml/Wizard/Pages/data/Tick@30.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/map.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/pin.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-1.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-10.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-11.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-2.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-3.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-3.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-4.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-4.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-6.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-7.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-8.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-9.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_-9.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_0.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_1.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_10.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_10.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_11.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_12.75.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_12.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_13.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_2.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_3.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_3.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_4.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_4.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.75.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_6.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_6.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_7.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_8.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_8.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_9.5.png

Binary file not shown.

qml/Wizard/Pages/data/timezonemap/timezone_9.png

Binary file not shown.

qml/Wizard/Pages/passcode-confirm.qml+2−2

This diff is too big to show here.

qml/Wizard/Pages/passcode-desktop.qml+28−10

This diff is too big to show here.

qml/Wizard/Pages/passcode-set.qml+2−2

This diff is too big to show here.

qml/Wizard/Pages/password-set.qml+1

This diff is too big to show here.

qml/Wizard/PasswordMeter.qml+3−1

This diff is too big to show here.

qml/Wizard/Wizard.qml+6−2

This diff is too big to show here.

qml/Wizard/WizardItemSelector.qmlnew file+129

This diff is too big to show here.

qml/graphics/dropshadow_left@20.png

Binary file not shown.

qml/graphics/dropshadow_right@20.png

Binary file not shown.

qml/graphics/phone_background.jpgdeleted

Binary file not shown.

qml/graphics/tablet_background.jpgdeleted

Binary file not shown.

run.shdeleted−70

This diff is too big to show here.

run_on_device.shdeleted−164

This diff is too big to show here.

src/CMakeLists.txt+1

This diff is too big to show here.

src/Dash/main.cpp+23−22

This diff is too big to show here.

src/SecondaryWindow.cpp+1−1

This diff is too big to show here.

src/ShellApplication.cpp+11−1

This diff is too big to show here.

src/main.cpp+1−1

This diff is too big to show here.

tests/CMakeLists.txt+14−13

This diff is too big to show here.

tests/autopilot/unity8/fixture_setup.py+1−1

This diff is too big to show here.

tests/autopilot/unity8/greeter/tests/test_args.py−5

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/__init__.py+1−1

This diff is too big to show here.

tests/data/unity/backgrounds/blue.png

Binary file not shown.

tests/data/unity/backgrounds/red.png

Binary file not shown.

tests/graphics/applicationIcons/browser@18.png

Binary file not shown.

tests/graphics/applicationIcons/calendar@18.png

Binary file not shown.

tests/graphics/applicationIcons/camera@18.png

Binary file not shown.

tests/graphics/applicationIcons/contacts-app@18.png

Binary file not shown.

tests/graphics/applicationIcons/dash.png

Binary file not shown.

tests/graphics/applicationIcons/dialer-app@18.png

Binary file not shown.

tests/graphics/applicationIcons/evernote@18.png

Binary file not shown.

tests/graphics/applicationIcons/facebook@18.png

Binary file not shown.

tests/graphics/applicationIcons/gallery@18.png

Binary file not shown.

tests/graphics/applicationIcons/gmail@18.png

Binary file not shown.

tests/graphics/applicationIcons/libreoffice@18.png

Binary file not shown.

tests/graphics/applicationIcons/map@18.png

Binary file not shown.

tests/graphics/applicationIcons/messages-app@18.png

Binary file not shown.

tests/graphics/applicationIcons/notepad@18.png

Binary file not shown.

tests/graphics/applicationIcons/pinterest@18.png

Binary file not shown.

tests/graphics/applicationIcons/soundcloud@18.png

Binary file not shown.

tests/graphics/applicationIcons/system-settings@18.png

Binary file not shown.

tests/graphics/applicationIcons/twitter@18.png

Binary file not shown.

tests/graphics/applicationIcons/weather@18.png

Binary file not shown.

tests/graphics/applicationIcons/wikipedia@18.png

Binary file not shown.

tests/graphics/applicationIcons/youtube@18.png

Binary file not shown.

tests/graphics/avatars/amanda@12.png

Binary file not shown.

tests/graphics/avatars/anna_olsson@12.png

Binary file not shown.

tests/graphics/avatars/funky@12.png

Binary file not shown.

tests/graphics/clock@18.png

Binary file not shown.

tests/imports/check_imports.py+58

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.h+20−1

This diff is too big to show here.

tests/mocks/AccountsService/CMakeLists.txt+14

This diff is too big to show here.

tests/mocks/Biometryd/CMakeLists.txtnew file+14

This diff is too big to show here.

tests/mocks/Biometryd/MockBiometryd.cppnew file+43

This diff is too big to show here.

tests/mocks/Biometryd/MockBiometryd.hnew file+50

This diff is too big to show here.

tests/mocks/Biometryd/MockDevice.cppnew file+29

This diff is too big to show here.

tests/mocks/Biometryd/MockDevice.hnew file+40

This diff is too big to show here.

tests/mocks/Biometryd/MockIdentifier.cppnew file+28

This diff is too big to show here.

tests/mocks/Biometryd/MockIdentifier.hnew file+36

This diff is too big to show here.

tests/mocks/Biometryd/MockObserver.cppnew file+22

This diff is too big to show here.

tests/mocks/Biometryd/MockObserver.hnew file+37

This diff is too big to show here.

tests/mocks/Biometryd/MockOperation.cppnew file+56

This diff is too big to show here.

tests/mocks/Biometryd/MockOperation.hnew file+48

This diff is too big to show here.

tests/mocks/Biometryd/plugin.cppnew file+41

This diff is too big to show here.

tests/mocks/Biometryd/plugin.hnew file+31

This diff is too big to show here.

tests/mocks/Biometryd/qmldirnew file+3

This diff is too big to show here.

tests/mocks/CMakeLists.txt+3−1

This diff is too big to show here.

tests/mocks/Cursor/CMakeLists.txt+1−1

This diff is too big to show here.

tests/mocks/Cursor/Cursor.qml+10−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/qmldirdeleted−3

This diff is too big to show here.

tests/mocks/LightDM/CMakeLists.txtnew file+1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/CMakeLists.txt → tests/mocks/LightDM/IntegratedLightDM/CMakeLists.txtrenamed+9−7

This diff is too big to show here.

tests/mocks/IntegratedLightDM/MockGreeter.cpp → tests/mocks/LightDM/IntegratedLightDM/MockGreeter.cpprenamed+16

This diff is too big to show here.

tests/mocks/IntegratedLightDM/MockGreeter.h → tests/mocks/LightDM/IntegratedLightDM/MockGreeter.hrenamed+5

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.cppnew file+66

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.hnew file+44

This diff is too big to show here.

tests/mocks/IntegratedLightDM/MockUsersModel.cpp → tests/mocks/LightDM/IntegratedLightDM/MockUsersModel.cpprenamed+5

This diff is too big to show here.

tests/mocks/IntegratedLightDM/MockUsersModel.h → tests/mocks/LightDM/IntegratedLightDM/MockUsersModel.hrenamed+2

This diff is too big to show here.

tests/mocks/IntegratedLightDM/QLightDM/Greeter → tests/mocks/LightDM/IntegratedLightDM/QLightDM/Greeterrenamed

The content is the same.

tests/mocks/LightDM/IntegratedLightDM/QLightDM/SessionsModelnew file+17

This diff is too big to show here.

tests/mocks/IntegratedLightDM/QLightDM/UsersModel → tests/mocks/LightDM/IntegratedLightDM/QLightDM/UsersModelrenamed

The content is the same.

tests/mocks/IntegratedLightDM/liblightdm/CMakeLists.txt → tests/mocks/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txtrenamed+4−2

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/Greeter.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.cpprenamed+7−5

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/Greeter.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.hrenamed+1−2

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.cpprenamed

The content is the same.

tests/mocks/IntegratedLightDM/liblightdm/GreeterPrivate.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/GreeterPrivate.hrenamed+1

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cppnew file+121

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.hnew file+72

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cppnew file+83

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.hnew file+63

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModel.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModel.cpprenamed+4−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModel.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModel.hrenamed+2−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpprenamed+43−23

This diff is too big to show here.

tests/mocks/IntegratedLightDM/liblightdm/UsersModelPrivate.h → tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.hrenamed+2−1

This diff is too big to show here.

tests/mocks/IntegratedLightDM/plugin.cpp → tests/mocks/LightDM/IntegratedLightDM/plugin.cpprenamed+15−4

This diff is too big to show here.

tests/mocks/IntegratedLightDM/plugin.h → tests/mocks/LightDM/IntegratedLightDM/plugin.hrenamed+1−1

This diff is too big to show here.

tests/mocks/LightDM/IntegratedLightDM/qmldirnew file+2

This diff is too big to show here.

tests/mocks/QtMultimedia/CMakeLists.txt+8−2

This diff is too big to show here.

tests/mocks/QtMultimedia/VideoSurface.qmlnew file+111

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.cppdeleted−132

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.hdeleted−103

This diff is too big to show here.

tests/mocks/QtMultimedia/mediaplayer.cppnew file+319

This diff is too big to show here.

tests/mocks/QtMultimedia/mediaplayer.hnew file+224

This diff is too big to show here.

tests/mocks/QtMultimedia/plugin.cpp+7−3

This diff is too big to show here.

tests/mocks/QtMultimedia/videooutput.cppnew file+127

This diff is too big to show here.

tests/mocks/QtMultimedia/videooutput.hnew file+52

This diff is too big to show here.

tests/mocks/SessionBroadcast/CMakeLists.txtnew file+8

This diff is too big to show here.

tests/mocks/SessionBroadcast/SessionBroadcast.cppnew file+34

This diff is too big to show here.

tests/mocks/SessionBroadcast/SessionBroadcast.hnew file+39

This diff is too big to show here.

tests/mocks/SessionBroadcast/plugin.cppnew file+31

This diff is too big to show here.

tests/mocks/SessionBroadcast/plugin.hnew file+32

This diff is too big to show here.

tests/mocks/SessionBroadcast/qmldirnew file+2

This diff is too big to show here.

tests/mocks/Ubuntu/DownloadDaemonListener/MockDownloadTracker.cpp+3−1

This diff is too big to show here.

tests/mocks/Ubuntu/DownloadDaemonListener/MockDownloadTracker.h+2−1

This diff is too big to show here.

tests/mocks/Ubuntu/SystemImage/MockSystemImage.cpp+24−1

This diff is too big to show here.

tests/mocks/Ubuntu/SystemImage/MockSystemImage.h+22−2

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.cpp+27

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.h+22

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationInfo.cpp+1−9

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationInfo.h−4

This diff is too big to show here.

tests/mocks/Unity/Application/ApplicationManager.cpp+6−11

This diff is too big to show here.

tests/mocks/Unity/Application/CMakeLists.txt−1

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurface.cpp+26

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.cpp+37−10

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/UbuntuKeyboardInfo.cppdeleted−58

This diff is too big to show here.

tests/mocks/Unity/Application/UbuntuKeyboardInfo.hdeleted−57

This diff is too big to show here.

tests/mocks/Unity/Application/VirtualKeyboard.cpp+20−1

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/plugin.cpp−8

This diff is too big to show here.

tests/mocks/Unity/Application/resources/VirtualKeyboard.qml+1−6

This diff is too big to show here.

tests/mocks/Unity/Application/resources/screenshots/browser@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/camera@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/dialer@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/facebook@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/gallery@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/libreoffice@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/map@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/music@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/twitter@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/unity8-dash@12.png

Binary file not shown.

tests/mocks/Unity/Application/resources/screenshots/vkb_portrait.png

Binary file not shown.

tests/mocks/Unity/Application/resources/vkb_portrait.png

Binary file not shown.

tests/mocks/Unity/Indicators/CMakeLists.txt+1

This diff is too big to show here.

tests/mocks/Unity/Indicators/IndicatorsModel.qml+71−6

This diff is too big to show here.

tests/mocks/Unity/Indicators/fakeindicatorsmodeldata.jsnew file+1106

This diff is too big to show here.

tests/mocks/Unity/Indicators/fakeplugin.cpp+2

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotification.cpp+15

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotification.h+5

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotificationModel.h+2−4

This diff is too big to show here.

tests/mocks/Unity/fake_scope.cpp+6−1

This diff is too big to show here.

tests/mocks/Unity/fake_scope.h+1

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Utils/URLDispatcher.cppnew file+38

This diff is too big to show here.

tests/mocks/Utils/URLDispatcher.hnew file+47

This diff is too big to show here.

tests/mocks/Utils/plugin.cpp+2

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.cpp+4−4

This diff is too big to show here.

tests/mocks/Utils/windowstatestorage.h+9−4

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Wizard/MockSystem.cpp+8

This diff is too big to show here.

tests/mocks/Wizard/MockSystem.h+4

This diff is too big to show here.

tests/mocks/Wizard/mockplugin.cpp+2

This diff is too big to show here.

tests/mocks/libusermetrics/libusermetricsoutput/ColorTheme.hdeleted−1

This diff is too big to show here.

tests/mocks/libusermetrics/libusermetricsoutput/UserMetrics.hdeleted−1

This diff is too big to show here.

tests/plugins/AccountsService/CMakeLists.txt−5

This diff is too big to show here.

tests/plugins/CMakeLists.txt+3−1

This diff is too big to show here.

tests/plugins/Cursor/tst_Cursor.qml+8−1

This diff is too big to show here.

tests/plugins/Dash/CMakeLists.txt+4

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/11.res.cardcreator+6−19

This diff is too big to show here.

tests/plugins/Dash/cardcreator/12.res+16−18

This diff is too big to show here.

tests/plugins/Dash/cardcreator/12.res.cardcreator+5−18

This diff is too big to show here.

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

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/3.res.cardcreator+6−11

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/6.res+9−8

This diff is too big to show here.

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

This diff is too big to show here.

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

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+9−8

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/horizontaljournaltest.cpp−3

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadersectionexternalmodeltest.cpp−3

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadersectiontest.cpp−3

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertest.cpp+30−3

This diff is too big to show here.

tests/plugins/Dash/organicgridtest.cpp−3

This diff is too big to show here.

tests/plugins/Dash/verticaljournaltest.cpp+62−3

This diff is too big to show here.

tests/plugins/ImageCache/CMakeLists.txtnew file+20

This diff is too big to show here.

tests/plugins/ImageCache/graphics/wide.jpgnew file

Binary file not shown.

tests/plugins/ImageCache/test.cppnew file+214

This diff is too big to show here.

qml/Components/Circle.qml → tests/plugins/ImageCache/test.qmlrenamed+6−5

This diff is too big to show here.

tests/plugins/LightDM/CMakeLists.txtnew file+1

This diff is too big to show here.

tests/plugins/IntegratedLightDM/CMakeLists.txt → tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txtrenamed+35−15

This diff is too big to show here.

tests/plugins/IntegratedLightDM/dbus.cpp → tests/plugins/LightDM/IntegratedLightDM/dbus.cpprenamed

The content is the same.

tests/plugins/IntegratedLightDM/greeter.qml → tests/plugins/LightDM/IntegratedLightDM/greeter.qmlrenamed+1−1

This diff is too big to show here.

tests/plugins/IntegratedLightDM/integrated.cpp → tests/plugins/LightDM/IntegratedLightDM/integrated.cpprenamed

The content is the same.

tests/plugins/IntegratedLightDM/pam.cpp → tests/plugins/LightDM/IntegratedLightDM/pam.cpprenamed

The content is the same.

tests/plugins/LightDM/IntegratedLightDM/sessionsmodel.cppnew file+128

This diff is too big to show here.

tests/plugins/IntegratedLightDM/usersmodel.cpp → tests/plugins/LightDM/IntegratedLightDM/usersmodel.cpprenamed+2−2

This diff is too big to show here.

tests/plugins/SessionBroadcast/BroadcastServer.cppnew file+33

This diff is too big to show here.

tests/plugins/SessionBroadcast/BroadcastServer.hnew file+40

This diff is too big to show here.

tests/plugins/SessionBroadcast/CMakeLists.txtnew file+45

This diff is too big to show here.

tests/plugins/SessionBroadcast/interfaces.xmlnew file+18

This diff is too big to show here.

tests/plugins/SessionBroadcast/server.cppnew file+37

This diff is too big to show here.

tests/plugins/SessionBroadcast/sessionbroadcasttest.cppnew file+111

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/CMakeLists.txt+4−2

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/GestureTest.cpp+3−3

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/GestureTest.h+4−5

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_AxisVelocityCalculator.cpp+1−1

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_FloatingFlickable.cpp+1−1

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_TouchGate.cpp+3−1

This diff is too big to show here.

tests/plugins/Unity/Launcher/launchermodeltest.cpp+21−2

This diff is too big to show here.

tests/plugins/Unity/Session/CMakeLists.txt+29−1

This diff is too big to show here.

tests/plugins/Unity/Session/LightDMServer.cppnew file+29

This diff is too big to show here.

tests/plugins/Unity/Session/LightDMServer.hnew file+38

This diff is too big to show here.

tests/plugins/Unity/Session/LogindServer.cppnew file+33

This diff is too big to show here.

tests/plugins/Unity/Session/LogindServer.hnew file+43

This diff is too big to show here.

tests/plugins/Unity/Session/interfaces.xmlnew file+17

This diff is too big to show here.

tests/plugins/Unity/Session/server.cppnew file+50

This diff is too big to show here.

tests/plugins/Unity/Session/sessionbackendtest.cpp+15−1

This diff is too big to show here.

tests/plugins/Utils/CMakeLists.txt+9

This diff is too big to show here.

tests/plugins/Utils/URLDispatcherTest.cppnew file+78

This diff is too big to show here.

tests/plugins/Wizard/tst_pagelist.cpp+30−1

This diff is too big to show here.

tests/qmltests/CMakeLists.txt+13−11

This diff is too big to show here.

tests/qmltests/Components/CMakeLists.txt+5−1

This diff is too big to show here.

tests/qmltests/Components/tst_Carousel.qml−1

This diff is too big to show here.

tests/qmltests/Components/tst_DragHandle.cpp+2−2

This diff is too big to show here.

tests/qmltests/Components/tst_EdgeDragEvaluator.cpp+2−2

This diff is too big to show here.

tests/qmltests/Components/tst_LazyImage/portrait.png

Binary file not shown.

tests/qmltests/Components/tst_LazyImage/square.png

Binary file not shown.

tests/qmltests/Components/tst_LazyImage/wide.png

Binary file not shown.

tests/qmltests/Components/tst_Lockscreen.qml+3−23

This diff is too big to show here.

tests/qmltests/Components/tst_MediaServices.qmlnew file+230

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewSharing.qml → tests/qmltests/Components/tst_SharingPicker.qmlrenamed+8−8

This diff is too big to show here.

tests/qmltests/Components/tst_WallpaperResolver.qml+21−35

This diff is too big to show here.

tests/qmltests/Components/tst_ZoomableImage.qml+1−1

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_Preview.qml−2

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewActions.qml+2−1

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewAudioPlayback.qml+8−10

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewCommentInput.qml+28

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewExpandable.qml+3−3

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewHeader.qml−4

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewIconActions.qml+1−1

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewImageGallery.qml+6−6

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewInlineVideo.qmlnew file+155

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewMediaToolbar.qml+3−3

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewProgress.qml+14−1

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewRatingDisplayCreationRanges.qml+52−15

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewRatingEdit.qml+3

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewRatingInput.qml+32

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+17−16

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+7−7

This diff is too big to show here.

tests/qmltests/Dash/artwork/avatar@12.png

Binary file not shown.

tests/qmltests/Dash/artwork/background.png

Binary file not shown.

tests/qmltests/Dash/artwork/checkers.png

Binary file not shown.

tests/qmltests/Dash/artwork/emblem.png

Binary file not shown.

tests/qmltests/Dash/artwork/music-player-design.png

Binary file not shown.

tests/qmltests/Dash/tst_Card.qml+7−2

This diff is too big to show here.

tests/qmltests/Dash/tst_CardCarousel.qml+24

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Dash/tst_Dash.qml+81−86

This diff is too big to show here.

tests/qmltests/Dash/tst_DashContent.qml+54−13

This diff is too big to show here.

tests/qmltests/Dash/tst_DashPageHeader.qml+44−3

This diff is too big to show here.

tests/qmltests/Dash/tst_DashShell.qml+6

This diff is too big to show here.

tests/qmltests/Dash/tst_GenericScopeView.qml+65−61

This diff is too big to show here.

tests/qmltests/Greeter/TestView.qml+14−6

This diff is too big to show here.

tests/qmltests/Greeter/tst_Greeter.qml+210−24

This diff is too big to show here.

tests/qmltests/Greeter/tst_Infographics.qml+1−1

This diff is too big to show here.

tests/qmltests/Greeter/tst_NarrowView.qml+70−14

This diff is too big to show here.

tests/qmltests/Greeter/tst_WideView.qml+248−21

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Notifications/Notification.qml+1

This diff is too big to show here.

tests/qmltests/Notifications/tst_Notifications.qml+79−29

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Notifications/tst_SwipeToAct.qml+4−18

This diff is too big to show here.

tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+7−23

This diff is too big to show here.

tests/qmltests/Panel/Indicators/tst_MenuItemFactory.qml+1−1

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorItem.qml+4−3

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorPage.qml−2

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorsBar.qml+3−3

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorsMenu.qml+33−4

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Stages/tst_PhoneStage.qml+2−2

This diff is too big to show here.

tests/qmltests/Stages/tst_Splash.qml+15−1

This diff is too big to show here.

tests/qmltests/Stages/tst_SpreadDelegate.qml+115−12

This diff is too big to show here.

tests/qmltests/Stages/tst_TabletStage.qml+168−38

This diff is too big to show here.

tests/qmltests/Stages/tst_WindowResizeArea.qml+45−35

This diff is too big to show here.

tests/qmltests/Tutorial/tst_Tutorial.qml+3−3

This diff is too big to show here.

tests/qmltests/UnityLogo.png

Binary file not shown.

tests/qmltests/Wizard/tst_Wizard.qml+47−2

This diff is too big to show here.

tests/qmltests/tst_DisabledScreenNotice.qml+1−1

This diff is too big to show here.

tests/qmltests/tst_OrientedShell.qml+86−51

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+272−34

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qml+52−46

This diff is too big to show here.

tests/utils/modules/Unity/Test/CMakeLists.txt+6−1

This diff is too big to show here.

tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.cpp+8−3

This diff is too big to show here.

tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.h+4−2

This diff is too big to show here.

tests/utils/modules/Unity/Test/testutil.cpp+15−4

This diff is too big to show here.

tools/registry-tracker.cpp+2−2

This diff is too big to show here.

tools/scopetool.cpp+6−2

This diff is too big to show here.