on xenial help sign in
Merged with trunk and fixed conflicts.
d51efdaMirco Müller
CMakeLists.txt+7−2
@@ -58,19 +58,20 @@ find_package(Qt5DBus 5.2 REQUIRED)
58include(GNUInstallDirs)
58include(GNUInstallDirs)
59
59
60set(SHELL_APP_DIR ${CMAKE_INSTALL_DATADIR}/unity8)
60set(SHELL_APP_DIR ${CMAKE_INSTALL_DATADIR}/unity8)
61+set(SHELL_PRIVATE_LIBDIR ${CMAKE_INSTALL_LIBDIR}/unity8)
61
62
62execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=plugindir_suffix unity-shell-api OUTPUT_VARIABLE SHELL_INSTALL_QML OUTPUT_STRIP_TRAILING_WHITESPACE)
63execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=plugindir_suffix unity-shell-api OUTPUT_VARIABLE SHELL_INSTALL_QML OUTPUT_STRIP_TRAILING_WHITESPACE)
63if(SHELL_INSTALL_QML STREQUAL "")
64if(SHELL_INSTALL_QML STREQUAL "")
64 message(FATAL_ERROR "Could not determine plugin installation dir.")
65 message(FATAL_ERROR "Could not determine plugin installation dir.")
65endif()
66endif()
66
67
68+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
69+
67execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=plugindir unity-shell-api OUTPUT_VARIABLE SHELL_PLUGINDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
70execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=plugindir unity-shell-api OUTPUT_VARIABLE SHELL_PLUGINDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
68if(SHELL_PLUGINDIR STREQUAL "")
71if(SHELL_PLUGINDIR STREQUAL "")
69 message(FATAL_ERROR "Could not determine plugin import dir.")
72 message(FATAL_ERROR "Could not determine plugin import dir.")
70endif()
73endif()
71
74
72−set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
73−
74set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-permissive -pedantic -Wall -Wextra")
75set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-permissive -pedantic -Wall -Wextra")
75
76
76if ("${CMAKE_BUILD_TYPE}" STREQUAL "release" OR "${CMAKE_BUILD_TYPE}" STREQUAL "relwithdebinfo")
77if ("${CMAKE_BUILD_TYPE}" STREQUAL "release" OR "${CMAKE_BUILD_TYPE}" STREQUAL "relwithdebinfo")
@@ -87,6 +88,9 @@ endif()
87# "signals" and "slots"
88# "signals" and "slots"
88add_definitions(-DQT_NO_KEYWORDS)
89add_definitions(-DQT_NO_KEYWORDS)
89
90
91+# Save a few container detach and conversions
92+add_definitions(-DQT_STRICT_ITERATORS)
93+
90# Tests
94# Tests
91include(CTest)
95include(CTest)
92enable_testing()
96enable_testing()
@@ -106,6 +110,7 @@ include_directories(
106
110
107# add subdirectories to build
111# add subdirectories to build
108add_subdirectory(include)
112add_subdirectory(include)
113+add_subdirectory(libs)
109add_subdirectory(src)
114add_subdirectory(src)
110add_subdirectory(tools)
115add_subdirectory(tools)
111add_subdirectory(qml)
116add_subdirectory(qml)
CODING+4
@@ -154,6 +154,10 @@ So, for the DragHandle component that would be:
154
154
155$ make testDragHandle
155$ make testDragHandle
156
156
157+To run the tests for a single component/class under gdb (so you can catch SEGFAULTS)
158+
159+$ make gdbtestComponentName
160+
157To run a test application that allow you to manually test or to simply try out
161To run a test application that allow you to manually test or to simply try out
158a given component:
162a given component:
159
163
build.sh+2−3
@@ -51,10 +51,9 @@ install_dependencies() {
51 qtdeclarative5-ubuntu-settings-components \
51 qtdeclarative5-ubuntu-settings-components \
52 qtdeclarative5-ubuntu-telephony0.1 \
52 qtdeclarative5-ubuntu-telephony0.1 \
53 qtdeclarative5-ubuntu-thumbnailer0.1 \
53 qtdeclarative5-ubuntu-thumbnailer0.1 \
54− unity-notifications-impl \
54+ qtdeclarative5-unity-notifications-plugin \
55+ qml-module-ubuntu-connectivity \
55 ubuntu-mobile-icons \
56 ubuntu-mobile-icons \
56− unity-scope-home \
57− unity-lens-applications \
58 unity-plugin-scopes \
57 unity-plugin-scopes \
59 xvfb \
58 xvfb \
60 || exit 5
59 || exit 5
cmake/modules/QmlTest.cmake+10−1
@@ -12,6 +12,7 @@
12# Two targets will be created:
12# Two targets will be created:
13# - testComponentName - Runs the test with qmltestrunner
13# - testComponentName - Runs the test with qmltestrunner
14# - tryComponentName - Runs the test with uqmlscene, for manual interaction
14# - tryComponentName - Runs the test with uqmlscene, for manual interaction
15+# - gdbtestComponentName - Runs the test with qmltestrunner under gdb
15#
16#
16# To change/set a default value for the whole test suite, prior to calling add_qml_test, set:
17# To change/set a default value for the whole test suite, prior to calling add_qml_test, set:
17# qmltest_DEFAULT_NO_ADD_TEST (default: FALSE)
18# qmltest_DEFAULT_NO_ADD_TEST (default: FALSE)
@@ -81,6 +82,7 @@ macro(add_qml_test_internal SUBPATH COMPONENT_NAME ITERATIONS)
81 cmake_parse_arguments(qmltest_default "${options}" "" "${multi_value_keywords}" ${qmltest_DEFAULT_PROPERTIES})
82 cmake_parse_arguments(qmltest_default "${options}" "" "${multi_value_keywords}" ${qmltest_DEFAULT_PROPERTIES})
82
83
83 set(qmltest_TARGET test${COMPONENT_NAME})
84 set(qmltest_TARGET test${COMPONENT_NAME})
85+ set(qmltest_gdb_TARGET gdbtest${COMPONENT_NAME})
84 set(qmltest_xvfb_TARGET xvfbtest${COMPONENT_NAME})
86 set(qmltest_xvfb_TARGET xvfbtest${COMPONENT_NAME})
85 set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME})
87 set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME})
86
88
@@ -138,12 +140,18 @@ macro(add_qml_test_internal SUBPATH COMPONENT_NAME ITERATIONS)
138 ${function_ARGS}
140 ${function_ARGS}
139 )
141 )
140
142
143+ set(qmltest_gdb_command
144+ env ${test_env} ${qmltest_ENVIRONMENT} ${LD_PRELOAD_PATH}
145+ gdb -e ${qmltestrunner_exe} -ex \"run -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml ${qmltestrunner_imports} ${ITERATIONS_STRING}\"
146+ )
147+
141 add_qmltest_target(${qmltest_TARGET} "${qmltest_command}" TRUE ${qmltest_NO_ADD_TEST})
148 add_qmltest_target(${qmltest_TARGET} "${qmltest_command}" TRUE ${qmltest_NO_ADD_TEST})
142 add_qmltest_target(${qmltest_xvfb_TARGET} "${qmltest_xvfb_command}" ${qmltest_NO_TARGETS} TRUE)
149 add_qmltest_target(${qmltest_xvfb_TARGET} "${qmltest_xvfb_command}" ${qmltest_NO_TARGETS} TRUE)
150+ add_qmltest_target(${qmltest_gdb_TARGET} "${qmltest_gdb_command}" TRUE TRUE)
143 add_manual_qml_test(${SUBPATH} ${COMPONENT_NAME} ${ARGN})
151 add_manual_qml_test(${SUBPATH} ${COMPONENT_NAME} ${ARGN})
144endmacro(add_qml_test_internal)
152endmacro(add_qml_test_internal)
145
153
146−macro(add_binary_qml_test CLASS_NAME LD_PATH DEPS)
154+macro(add_binary_qml_test CLASS_NAME LD_PATH DEPS ENVVAR)
147 set(testCommand
155 set(testCommand
148 LD_LIBRARY_PATH=${LD_PATH}
156 LD_LIBRARY_PATH=${LD_PATH}
149 ${CMAKE_CURRENT_BINARY_DIR}/${CLASS_NAME}TestExec
157 ${CMAKE_CURRENT_BINARY_DIR}/${CLASS_NAME}TestExec
@@ -160,6 +168,7 @@ macro(add_binary_qml_test CLASS_NAME LD_PATH DEPS)
160 endif()
168 endif()
161 set(xvfbtestCommand
169 set(xvfbtestCommand
162 ${LD_PRELOAD_PATH}
170 ${LD_PRELOAD_PATH}
171+ ${ENVVAR}
163 LD_LIBRARY_PATH=${LD_PATH}
172 LD_LIBRARY_PATH=${LD_PATH}
164 xvfb-run --server-args "-screen 0 1024x768x24" --auto-servernum
173 xvfb-run --server-args "-screen 0 1024x768x24" --auto-servernum
165 ${CMAKE_CURRENT_BINARY_DIR}/${CLASS_NAME}TestExec
174 ${CMAKE_CURRENT_BINARY_DIR}/${CLASS_NAME}TestExec
data/unity8-dash.conf+5
@@ -8,6 +8,11 @@ stop on stopping unity8
8
8
9kill timeout 120
9kill timeout 120
10
10
11+# Focused app is 100 so we want to be less likely to get
12+# killed than the focused app but more than Unity8
13+
14+oom score 50
15+
11respawn
16respawn
12
17
13env APP_ID=unity8-dash
18env APP_ID=unity8-dash
data/unity8.conf+5−1
@@ -34,11 +34,15 @@ pre-start script
34 gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.UpdateActivationEnvironment "@a{ss} {'MIR_SOCKET': '$MIR_SERVER_FILE'}"
34 gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.UpdateActivationEnvironment "@a{ss} {'MIR_SOCKET': '$MIR_SERVER_FILE'}"
35 fi
35 fi
36
36
37− # Remove the socket if still there
37+ # Remove the normal and trusted sockets if still there
38 if [ -S "$MIR_SERVER_FILE" ]; then
38 if [ -S "$MIR_SERVER_FILE" ]; then
39 rm "$MIR_SERVER_FILE"
39 rm "$MIR_SERVER_FILE"
40 fi
40 fi
41
41
42+ if [ -S "${MIR_SERVER_FILE}_trusted" ]; then
43+ rm "${MIR_SERVER_FILE}_trusted"
44+ fi
45+
42 initctl set-env --global MIR_SERVER_PROMPT_FILE=1
46 initctl set-env --global MIR_SERVER_PROMPT_FILE=1
43
47
44 initctl emit --no-wait indicator-services-start
48 initctl emit --no-wait indicator-services-start
debian/changelog+301
@@ -1,3 +1,304 @@
1+unity8 (8.01+15.04.20141104-0ubuntu1) vivid; urgency=low
2+
3+ [ Sebastien Bacher ]
4+ * Drop workaround, it's not needed and create issues for desktop-next
5+ (LP: #1387671)
6+
7+ [ Albert Astals ]
8+ * Do not append integer to char *
9+ * Remove unused end() function
10+ * Update build.sh
11+ * Fix i18n
12+
13+ [ Michael Zanetti ]
14+ * rework launcher quicklist visuals to fit new design (LP: #1368660)
15+ * Fix DBusVariant conversion for launcher emblems (LP: #1387261)
16+ * Fix desktop file encoding in launcher (LP: #1387083)
17+ * Add a hinting animation to indicate changes in the backend (LP:
18+ #1376707)
19+
20+ [ Alberto Aguirre ]
21+ * Add audioRole to QtMultimedia mock
22+ * Add a plugin to take screenshots on vol up + vol down
23+
24+ [ CI bot ]
25+ * Fix relative time formatter when using non-UTC timezone. (LP:
26+ #1378821)
27+
28+ [ Leo Arias ]
29+ * Removed the tests for the alternate paths of the autopilot helpers.
30+
31+ [ Nick Dedekind ]
32+ * Fix relative time formatter when using non-UTC timezone. (LP:
33+ #1378821)
34+ * Reset current item selection on deleted. (LP: #1378462)
35+ * Added timer to re-assert server value after indicator menu item
36+ activation. (LP: #1336715)
37+
38+ [ Mirco Müller ]
39+ * Added dedicated swipe-to-act button for snap-decisions, which avoids
40+ accidental taps/button-presses. (LP: #1358343)
41+
42+ [ Chris Gagnon ]
43+ * add missing unity-scope-click dependancy to unity8-autopilot package
44+ (LP: #1336276)
45+
46+ [ Michael Terry ]
47+ * Don't lock phone if user tries to switch back to an active call.
48+ (LP: #1388156)
49+
50+ [ Daniel d'Andrada ]
51+ * DirectionalDragArea: Update TODO comment in light of new events
52+ * TouchDispatcher: synthesize MouseButtonDblClick events
53+
54+ [ Leonardo Arias Fonseca ]
55+ * Removed the tests for the alternate paths of the autopilot helpers.
56+
57+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 04 Nov 2014 12:56:08 +0000
58+
59+unity8 (8.01+15.04.20141030-0ubuntu1) vivid; urgency=medium
60+
61+ [ Michael Terry ]
62+ * Provide 'passphrase' as a field of Components.Lockscreen
63+ * Fix a race between Qml loading and DBus registration that caused
64+ problems when jenkins tried to unlock the phone.
65+ * Set domain explicitly for the Dialogs component because the welcome
66+ wizard wants to import it. (LP: #1381731)
67+ * When greeter or lockscreen has focus, show active call panel. (LP:
68+ #1378872)
69+
70+ [ Ted Gould ]
71+ * Set the default OOM score for the dash (LP: #1379786)
72+
73+ [ Michał Sawicz ]
74+ * Revert lp:~unity-team/unity8/flickables-speed-workaround to avoid
75+ risk in RTM.
76+ * Updated behaviour for zoomable image, workaround for sourcesize (LP:
77+ #1333187)
78+
79+ [ Michael Frey ]
80+ * Added a check for Proximity to determine if we show the lock screen.
81+ (LP: #1378012)
82+
83+ [ Ying-Chun Liu ]
84+ * Add non-interactive code into GenericScopeView. (LP: #1384441)
85+
86+ [ Mirco Müller ]
87+ * Also use modal nature of snap-decision notifications when
88+ greeter/lockscreen is shown. This fixes LP: #1378827. (LP: #1378827)
89+
90+ [ Michael Zanetti ]
91+ * Make the launcher update on dconf changes (LP: #1376707)
92+ * exit spread on background tap (LP: #1368261)
93+ * Use an index instead of a scope id in DashCommunicator (LP:
94+ #1376044)
95+
96+ [ Andrea Cimitan ]
97+ * Updated behaviour for zoomable image, workaround for sourcesize (LP:
98+ #1333187)
99+
100+ [ Daniel d'Andrada ]
101+ * Make TouchGate synthesize QMouseEvents for mouse-based target items
102+ * Don't specify a distanceThreshold as it conflicts with
103+ hintDisplacment
104+
105+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 30 Oct 2014 21:43:42 +0000
106+
107+unity8 (8.00+15.04.20141030-0ubuntu1) vivid; urgency=low
108+
109+ [ josharenson ]
110+ * Fix lp:1370240 by making stages interactive when a snap decision is
111+ dismissed. (LP: #1370240)
112+
113+ [ Nick Dedekind ]
114+ * remove qml ownership confusion for caching unitymenumodels (LP:
115+ #1368856)
116+ * Implementation of expandable panel design (LP: #1368856)
117+
118+ [ Albert Astals ]
119+ * CardAttributes: Specify column and row since the gridlayout gets
120+ confused sometimes (LP: #1381092)
121+ * Reset VerticalJournal until the cardTool settles (LP: #1381255)
122+
123+ [ Mirco Müller ]
124+ * Added synchronous/confirmation notification support to unity8. (LP:
125+ #1232633)
126+
127+ [ Michael Zanetti ]
128+ * Fix lp:1370240 by making stages interactive when a snap decision is
129+ dismissed. (LP: #1370240)
130+ * Drop all visual indication of "pinning" (LP: #1381054)
131+
132+ [ Antti Kaijanmäki ]
133+ * Unlock all modems on boot. (LP: #1333121)
134+
135+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 30 Oct 2014 10:51:17 +0000
136+
137+unity8 (8.00+14.10.20141013.2-0ubuntu1) utopic; urgency=low
138+
139+ [ Michael Terry ]
140+ * Don't show initial lockscreen during the edge demo. The user just
141+ set up their phone with a password, it's pointless to ask them
142+ again. (LP: #1358283)
143+ * Distinguish between incoming calls and other dialer-app opens. (LP:
144+ #1378218) (LP: #1378218)
145+
146+ [ Andrea Cimitan ]
147+ * Fix flickable speed to be resolution independent, by subclassing
148+ components (LP: #1348557)
149+
150+ [ Michał Sawicz ]
151+ * Fix the ShellWithPin test and some functionality.
152+
153+ [ Albert Astals ]
154+ * Move Base.qml to DashCategoryBase
155+ * Fix first item positioning when m_clipItem->y() is not 0 (LP:
156+ #1251597)
157+ * Fix some small qml warnings
158+
159+ [ Daniel d'Andrada ]
160+ * Add touch ownership logic on top of qt input handling
161+
162+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 13 Oct 2014 15:43:03 +0000
163+
164+unity8 (8.00+14.10.20141009.4-0ubuntu1) utopic; urgency=low
165+
166+ [ Michał Sawicz ]
167+ * Rename datetime indicator in test
168+
169+ [ Albert Astals ]
170+ * Close overview temp scope on show dash (LP: #1373819)
171+ * Enable QT_STRICT_ITERATORS
172+ * Make Base not clickable, since we don't use it in anywhere clickable
173+ (we only use it for Category delegates in the LVWPH) (LP: #1300709)
174+ * Hide preview if it was visible when going to a scope (LP: #1374548)
175+ * Remove contentScale variable
176+
177+ [ Andrea Cimitan ]
178+ * Fix card implicitHeight when summary is declared, but its text is
179+ empty. Also fixes vertical journal height and clipping (LP:
180+ #1362160)
181+ * Redesign for pinned apps. Remove thindivider on top of ubuntu dash
182+ button (not needed anymore) (LP: #1377100)
183+
184+ [ Ying-Chun Liu ]
185+ * Fix run_on_device.sh to let it run again.
186+
187+ [ Nick Dedekind ]
188+ * Fixed indicator menu bindings to server toggle value broken by user
189+ interaction. (LP: #1336715)
190+ * Force rendering so we don't get stuck in "waitForRendering" loop in
191+ tests.
192+
193+ [ Daniel d'Andrada ]
194+ * PhoneStage: focus the new topmost app after the current one closes
195+ itself (LP: #1375267)
196+
197+ [ Michael Terry ]
198+ * Fix some security issues with the tablet greeter, which allowed the
199+ lockscreen to be bypassed. (LP: #1367715) (LP: #1367715)
200+
201+ [ Michael Zanetti ]
202+ * scale down errorText label if necessary (LP: #1378848)
203+
204+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 09 Oct 2014 14:05:54 +0000
205+
206+unity8 (8.00+14.10.20141008-0ubuntu1) utopic; urgency=low
207+
208+ [ Michael Zanetti ]
209+ * Dual SIM pin unlocking. Hook up the UI to the backend. (LP:
210+ #1267135)
211+
212+ [ Antti Kaijanmäki ]
213+ * Dual SIM pin unlocking. Hook up the UI to the backend. (LP:
214+ #1267135)
215+
216+ [ Ubuntu daily release ]
217+ * New rebuild forced
218+
219+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 08 Oct 2014 09:41:32 +0000
220+
221+unity8 (8.00+14.10.20141006-0ubuntu1) utopic; urgency=low
222+
223+ [ Andrea Cimitan ]
224+ * Tweak card header to match the spec
225+ * Add preview image slideshow (LP: #1351537)
226+
227+ [ Michał Sawicz ]
228+ * Cache more things in memory, so flicking scopes should be faster
229+ (LP: #1336724)
230+ * Tweak card header to match the spec
231+ * Save texture memory by limiting sourceSize (LP: #1338430)
232+
233+ [ Ying-Chun Liu ]
234+ * Add attributes to Preview. (LP: #1282460)
235+
236+ [ Albert Astals ]
237+ * Update pot
238+ * Cache more things in memory, so flicking scopes should be faster
239+ (LP: #1336724)
240+ * Save texture memory by limiting sourceSize (LP: #1338430)
241+ * Clip the settings list
242+ * Fix unlocking from the left again
243+ * Add wait_ makes tests more reliable
244+
245+ [ Michael Zanetti ]
246+ * fix fading out the launcher instead of sliding it out on left-edge
247+ minimizing an app.
248+ * Make the DashCommunicator async and more flexible to handle a
249+ lifecycle-suspended dash (LP: #1339883)
250+
251+ [ Michael Terry ]
252+ * Retry unlock-device script if it fails, as there is always a risk of
253+ a small race with boot-up. (LP: #1370644)
254+ * Add pull-to-refresh functionality to scopes. (LP: #1368336)
255+
256+ [ CI bot ]
257+ * Resync trunk
258+
259+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 06 Oct 2014 08:03:23 +0000
260+
261+unity8 (8.00+14.10.20140930.2-0ubuntu1) utopic; urgency=low
262+
263+ [ Alexandros Frantzis ]
264+ * Remove stale trusted socket before starting unity8 from upstart (LP:
265+ #1371597) (LP: #1371597)
266+
267+ [ CI bot ]
268+ * Resync trunk
269+
270+ [ Andrea Cimitan ]
271+ * Move activity indicator on top of keyboard (LP: #1354519)
272+
273+ [ Gerry Boland ]
274+ * Cleanup: Remove unused member and fix small syntax error in
275+ OrientationLock
276+
277+ [ josharenson ]
278+ * Fix lp:1367894 by correcting how the minute value is calculated in
279+ the panel. (LP: #1367894)
280+
281+ [ Nick Dedekind ]
282+ * Fixed DefaultIndicatorPage test. Fixed warnings from test.
283+
284+ [ Ying-Chun Liu ]
285+ * Remove maxLineCount in preview. (LP: 1328513) (LP: #1328513)
286+
287+ [ Michael Terry ]
288+ * Fix some code that accidentally landed in trunk before it got
289+ cleaned up. The current code just has some duplication to it that
290+ should be unified.
291+ * Implement latest visual designs for passphrase lockscreen.
292+ * Make it easier to use the Lockscreen component from the welcome
293+ wizard.
294+ * Limit how much memory we reserve for the greeter background image,
295+ allowing giant images to appear correctly.
296+
297+ [ Daniel d'Andrada ]
298+ * Add gdbTestComponentName build targets
299+
300+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 30 Sep 2014 16:57:28 +0000
301+
1unity8 (8.00+14.10.20140926-0ubuntu1) utopic; urgency=low
302unity8 (8.00+14.10.20140926-0ubuntu1) utopic; urgency=low
2
303
3 [ CI bot ]
304 [ CI bot ]
debian/control+5−3
@@ -25,7 +25,7 @@ Build-Depends: cmake,
25 libpulse-dev,
25 libpulse-dev,
26 libqmenumodel-dev (>= 0.2.8),
26 libqmenumodel-dev (>= 0.2.8),
27 libqt5xmlpatterns5-dev,
27 libqt5xmlpatterns5-dev,
28− libunity-api-dev (>= 7.91),
28+ libunity-api-dev (>= 7.93),
29 libusermetricsoutput1-dev,
29 libusermetricsoutput1-dev,
30 libxcb1-dev,
30 libxcb1-dev,
31 pkg-config,
31 pkg-config,
@@ -86,7 +86,7 @@ Depends: gsettings-desktop-schemas,
86 qmenumodel-qml (>= 0.2.8),
86 qmenumodel-qml (>= 0.2.8),
87 qml-module-qtquick-xmllistmodel,
87 qml-module-qtquick-xmllistmodel,
88 qtdeclarative5-gsettings1.0,
88 qtdeclarative5-gsettings1.0,
89− qtdeclarative5-qtmir-plugin (>= 0.4.3),
89+ qtdeclarative5-qtmir-plugin (>= 0.4.4),
90 qtdeclarative5-ubuntu-telephony0.1,
90 qtdeclarative5-ubuntu-telephony0.1,
91 unity-launcher-impl-4,
91 unity-launcher-impl-4,
92 unity8-common (= ${source:Version}),
92 unity8-common (= ${source:Version}),
@@ -97,7 +97,7 @@ Depends: gsettings-desktop-schemas,
97Recommends: unity-scope-click,
97Recommends: unity-scope-click,
98 unity-scope-mediascanner2,
98 unity-scope-mediascanner2,
99 unity-scope-scopes,
99 unity-scope-scopes,
100−Breaks: indicator-network (<< 0.5.1),
100+Breaks: indicator-network (<< 0.5.1+14.10.20141014),
101 ubuntu-touch-session (<< 0.107),
101 ubuntu-touch-session (<< 0.107),
102 unity8-greeter (<< 7.89),
102 unity8-greeter (<< 7.89),
103Replaces: ubuntu-touch-session (<< 0.82~),
103Replaces: ubuntu-touch-session (<< 0.82~),
@@ -143,6 +143,7 @@ Depends: gir1.2-glib-2.0,
143 python3-fixtures,
143 python3-fixtures,
144 python3-gi,
144 python3-gi,
145 ubuntu-ui-toolkit-autopilot,
145 ubuntu-ui-toolkit-autopilot,
146+ unity-scope-click,
146 unity8 (= ${source:Version}),
147 unity8 (= ${source:Version}),
147 unity8-fake-env (= ${source:Version}),
148 unity8-fake-env (= ${source:Version}),
148 url-dispatcher-tools,
149 url-dispatcher-tools,
@@ -174,6 +175,7 @@ Depends: accountsservice-ubuntu-schemas (>= 0.0.3),
174 libhardware2,
175 libhardware2,
175 unity-schemas (>= 7.3.1+14.10.20140915),
176 unity-schemas (>= 7.3.1+14.10.20140915),
176 pay-service,
177 pay-service,
178+ qml-module-ubuntu-connectivity,
177 ${misc:Depends},
179 ${misc:Depends},
178 ${shlibs:Depends},
180 ${shlibs:Depends},
179Provides: unity-launcher-impl,
181Provides: unity-launcher-impl,
debian/unity8-private.install+3
@@ -1,3 +1,4 @@
1+usr/lib/*/libunity8-private.*
1usr/lib/*/unity8/qml/AccountsService
2usr/lib/*/unity8/qml/AccountsService
2usr/lib/*/unity8/qml/Dash
3usr/lib/*/unity8/qml/Dash
3usr/lib/*/unity8/qml/HudClient
4usr/lib/*/unity8/qml/HudClient
@@ -5,8 +6,10 @@ usr/lib/*/unity8/qml/LightDM
5usr/lib/*/unity8/qml/Lights
6usr/lib/*/unity8/qml/Lights
6usr/lib/*/unity8/qml/Powerd
7usr/lib/*/unity8/qml/Powerd
7usr/lib/*/unity8/qml/SessionBroadcast
8usr/lib/*/unity8/qml/SessionBroadcast
9+usr/lib/*/unity8/qml/ScreenGrabber
8usr/lib/*/unity8/qml/Ubuntu
10usr/lib/*/unity8/qml/Ubuntu
9usr/lib/*/unity8/qml/Unity
11usr/lib/*/unity8/qml/Unity
10usr/lib/*/unity8/qml/Utils
12usr/lib/*/unity8/qml/Utils
13+usr/lib/*/unity8/libUbuntuGestures*
11usr/share/accountsservice/interfaces
14usr/share/accountsservice/interfaces
12usr/share/dbus-1/interfaces
15usr/share/dbus-1/interfaces
libs/CMakeLists.txtnew file+1
@@ -0,0 +1 @@
1+add_subdirectory(UbuntuGestures)
libs/UbuntuGestures/CMakeLists.txtnew file+40
@@ -0,0 +1,40 @@
1+# in order to include Qt's private headers
2+remove_definitions(-DQT_NO_KEYWORDS)
3+
4+set(UbuntuGestures_SOURCES
5+ CandidateInactivityTimer.cpp
6+ DebugHelpers.cpp
7+ Timer.cpp
8+ TouchOwnershipEvent.cpp
9+ TouchRegistry.cpp
10+ UnownedTouchEvent.cpp
11+)
12+
13+add_definitions(-DUBUNTUGESTURES_LIBRARY)
14+
15+add_library(UbuntuGestures SHARED ${UbuntuGestures_SOURCES})
16+
17+qt5_use_modules(UbuntuGestures Core Quick)
18+
19+# So that Foo.cpp can #include "Foo.moc"
20+include_directories(${CMAKE_CURRENT_BINARY_DIR})
21+
22+install(TARGETS UbuntuGestures
23+ DESTINATION ${SHELL_PRIVATE_LIBDIR})
24+
25+
26+# There's no cmake var for v8 include path :-/ so create one
27+LIST(GET Qt5Core_INCLUDE_DIRS 0 QtCoreDir0)
28+if(${Qt5Core_VERSION_STRING} VERSION_LESS "5.1.0")
29+ SET(Qt5V8_PRIVATE_INCLUDE_DIR ${QtCoreDir0}/../QtV8/${Qt5Core_VERSION_STRING}/QtV8)
30+else()
31+ SET(Qt5V8_PRIVATE_INCLUDE_DIR ${QtCoreDir0}/QtV8/${Qt5Core_VERSION_STRING}/QtV8)
32+endif()
33+
34+# DANGER! DANGER! Using Qt's private API!
35+include_directories(
36+ ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
37+ ${Qt5Quick_INCLUDE_DIRS}
38+ ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
39+ ${Qt5V8_PRIVATE_INCLUDE_DIR}
40+)
libs/UbuntuGestures/CandidateInactivityTimer.cppnew file+41
@@ -0,0 +1,41 @@
1+/*
2+ * Copyright (C) 2014 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 "CandidateInactivityTimer.h"
18+
19+namespace UbuntuGestures {
20+
21+CandidateInactivityTimer::CandidateInactivityTimer(int touchId, QQuickItem *candidate,
22+ AbstractTimerFactory &timerFactory, QObject *parent)
23+ : QObject(parent)
24+ , m_touchId(touchId)
25+ , m_candidate(candidate)
26+{
27+ m_timer = timerFactory.createTimer(this);
28+ connect(m_timer, &AbstractTimer::timeout,
29+ this, &CandidateInactivityTimer::onTimeout);
30+ m_timer->setInterval(durationMs);
31+ m_timer->setSingleShot(true);
32+ m_timer->start();
33+}
34+
35+void CandidateInactivityTimer::onTimeout()
36+{
37+ qWarning("[TouchRegistry] Candidate for touch %d defaulted!", m_touchId);
38+ Q_EMIT candidateDefaulted(m_touchId, m_candidate);
39+}
40+
41+} // namespace UbuntuGestures
libs/UbuntuGestures/CandidateInactivityTimer.hnew file+49
@@ -0,0 +1,49 @@
1+/*
2+ * Copyright (C) 2014 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 UBUNTUGESTURES_CANDIDATE_INACTIVITY_TIMER_H
18+#define UBUNTUGESTURES_CANDIDATE_INACTIVITY_TIMER_H
19+
20+#include <QObject>
21+
22+class QQuickItem;
23+
24+#include "Timer.h"
25+
26+namespace UbuntuGestures {
27+
28+class UBUNTUGESTURES_EXPORT CandidateInactivityTimer : public QObject {
29+ Q_OBJECT
30+public:
31+ CandidateInactivityTimer(int touchId, QQuickItem *candidate,
32+ AbstractTimerFactory &timerFactory,
33+ QObject *parent = nullptr);
34+
35+ const int durationMs = 350;
36+
37+Q_SIGNALS:
38+ void candidateDefaulted(int touchId, QQuickItem *candidate);
39+private Q_SLOTS:
40+ void onTimeout();
41+private:
42+ AbstractTimer *m_timer;
43+ int m_touchId;
44+ QQuickItem *m_candidate;
45+};
46+
47+} // namespace UbuntuGestures
48+
49+#endif // UBUNTUGESTURES_CANDIDATE_INACTIVITY_TIMER_H
libs/UbuntuGestures/DebugHelpers.cppnew file+95
@@ -0,0 +1,95 @@
1+/*
2+ * Copyright (C) 2014 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 "DebugHelpers.h"
18+#include <QTouchEvent>
19+#include <QMouseEvent>
20+
21+QString touchPointStateToString(Qt::TouchPointState state)
22+{
23+ switch (state) {
24+ case Qt::TouchPointPressed:
25+ return QString("pressed");
26+ case Qt::TouchPointMoved:
27+ return QString("moved");
28+ case Qt::TouchPointStationary:
29+ return QString("stationary");
30+ case Qt::TouchPointReleased:
31+ return QString("released");
32+ default:
33+ return QString("INVALID_STATE");
34+ }
35+}
36+
37+QString touchEventToString(const QTouchEvent *ev)
38+{
39+ QString message;
40+
41+ switch (ev->type()) {
42+ case QEvent::TouchBegin:
43+ message.append("TouchBegin ");
44+ break;
45+ case QEvent::TouchUpdate:
46+ message.append("TouchUpdate ");
47+ break;
48+ case QEvent::TouchEnd:
49+ message.append("TouchEnd ");
50+ break;
51+ case QEvent::TouchCancel:
52+ message.append("TouchCancel ");
53+ break;
54+ default:
55+ message.append("INVALID_TOUCH_EVENT_TYPE ");
56+ }
57+
58+ foreach(const QTouchEvent::TouchPoint& touchPoint, ev->touchPoints()) {
59+ message.append(
60+ QString("(id:%1, state:%2, scenePos:(%3,%4)) ")
61+ .arg(touchPoint.id())
62+ .arg(touchPointStateToString(touchPoint.state()))
63+ .arg(touchPoint.scenePos().x())
64+ .arg(touchPoint.scenePos().y())
65+ );
66+ }
67+
68+ return message;
69+}
70+
71+QString mouseEventToString(const QMouseEvent *ev)
72+{
73+ QString message;
74+
75+ switch (ev->type()) {
76+ case QEvent::MouseButtonPress:
77+ message.append("MouseButtonPress ");
78+ break;
79+ case QEvent::MouseButtonRelease:
80+ message.append("MouseButtonRelease ");
81+ break;
82+ case QEvent::MouseButtonDblClick:
83+ message.append("MouseButtonDblClick ");
84+ break;
85+ case QEvent::MouseMove:
86+ message.append("MouseMove ");
87+ break;
88+ default:
89+ message.append("INVALID_MOUSE_EVENT_TYPE ");
90+ }
91+
92+ message.append(QString("pos(%1, %2)").arg(ev->x()).arg(ev->y()));
93+
94+ return message;
95+}
tests/mocks/Unity/Indicators/qml/fake_menu_page3.qml → libs/UbuntuGestures/DebugHelpers.hrenamed+12−16
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -14,22 +14,18 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−import QtQuick 2.0
17+#ifndef UBUNTUGESTURES_DEBUG_HELPER_H
18−import Unity.Indicators 0.1 as Indicators
18+#define UBUNTUGESTURES_DEBUG_HELPER_H
19
19
20−Indicators.FakeMenuPage {
20+#include <QString>
21− id: menu_plugin3
22
21
23− Rectangle {
22+#include "UbuntuGesturesGlobal.h"
24− id: contents
25− color: "yellow"
26
23
27− height: 150
24+class QMouseEvent;
28− width: 150
25+class QTouchEvent;
29
26
30− anchors {
27+UBUNTUGESTURES_EXPORT QString touchPointStateToString(Qt::TouchPointState state);
31− horizontalCenter: parent.horizontalCenter
28+UBUNTUGESTURES_EXPORT QString touchEventToString(const QTouchEvent *ev);
32− verticalCenter: parent.verticalCenter
29+UBUNTUGESTURES_EXPORT QString mouseEventToString(const QMouseEvent *ev);
33− }
30+
34− }
31+#endif // UBUNTUGESTURES_DEBUG_HELPER_H
35−}
libs/UbuntuGestures/Pool.hnew file+132
@@ -0,0 +1,132 @@
1+/*
2+ * Copyright (C) 2014 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 UBUNTUGESTURES_POOL_H
18+#define UBUNTUGESTURES_POOL_H
19+
20+#include <QVector>
21+
22+#include "UbuntuGesturesGlobal.h"
23+
24+/*
25+ An object pool.
26+ Avoids unnecessary creations/initializations and deletions/destructions of items. Useful
27+ in a scenario where items are created and destroyed very frequently but the total number
28+ of items at any given time remains small. They're stored in a unordered fashion.
29+
30+ To be used in Pool, ItemType needs to have the following methods:
31+
32+ - ItemType();
33+
34+ A constructor that takes no parameters. An object contructed with it must return false if
35+ isValid() is called.
36+
37+ - bool isValid() const;
38+
39+ Returns wheter the object holds a valid , "filled" state or is empty.
40+ Used by Pool to check if the slot occupied by this object is actually available.
41+
42+ - void reset();
43+
44+ Resets the object to its initial, empty, state. After calling this method, isValid() must
45+ return false.
46+ */
47+template <class ItemType> class Pool
48+{
49+public:
50+ Pool() : m_lastUsedIndex(-1) {
51+ }
52+
53+ class Iterator {
54+ public:
55+ Iterator() : index(-1), item(nullptr) {}
56+ Iterator(int index, ItemType *item)
57+ : index(index), item(item) {}
58+
59+ ItemType *operator->() const { return item; }
60+ ItemType &operator*() const { return *item; }
61+ ItemType &value() const { return *item; }
62+
63+ Iterator &operator= (const Iterator& other) {
64+ index = other.index;
65+ item = other.item;
66+
67+ // by convention, always return *this
68+ return *this;
69+ }
70+
71+ operator bool() const { return item != nullptr; }
72+
73+ int index;
74+ ItemType *item;
75+ };
76+
77+ ItemType &getEmptySlot() {
78+ Q_ASSERT(m_lastUsedIndex < m_slots.size());
79+
80+ // Look for an in-between vacancy first
81+ for (int i = 0; i < m_lastUsedIndex; ++i) {
82+ ItemType &item = m_slots[i];
83+ if (!item.isValid()) {
84+ return item;
85+ }
86+ }
87+
88+ ++m_lastUsedIndex;
89+ if (m_lastUsedIndex >= m_slots.size()) {
90+ m_slots.resize(m_lastUsedIndex + 1);
91+ }
92+
93+ return m_slots[m_lastUsedIndex];
94+ }
95+
96+ void freeSlot(Iterator &iterator) {
97+ m_slots[iterator.index].reset();
98+ if (iterator.index == m_lastUsedIndex) {
99+ do {
100+ --m_lastUsedIndex;
101+ } while (m_lastUsedIndex >= 0 && !m_slots.at(m_lastUsedIndex).isValid());
102+ }
103+ }
104+
105+ // Iterates through all valid items (i.e. the occupied slots)
106+ // calling the given function, with the option of ending the loop early.
107+ //
108+ // bool Func(Iterator& item)
109+ //
110+ // Returning true means it wants to continue the "for" loop, false
111+ // terminates the loop.
112+ template<typename Func> void forEach(Func func) {
113+ Iterator it;
114+ for (it.index = 0; it.index <= m_lastUsedIndex; ++it.index) {
115+ it.item = &m_slots[it.index];
116+ if (!it.item->isValid())
117+ continue;
118+
119+ if (!func(it))
120+ break;
121+ }
122+ }
123+
124+ bool isEmpty() const { return m_lastUsedIndex == -1; }
125+
126+
127+private:
128+ QVector<ItemType> m_slots;
129+ int m_lastUsedIndex;
130+};
131+
132+#endif // UBUNTUGESTURES_POOL_H
libs/UbuntuGestures/Timer.cppnew file+109
@@ -0,0 +1,109 @@
1+/*
2+ * Copyright (C) 2014 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 "Timer.h"
18+
19+namespace UbuntuGestures {
20+
21+Timer::Timer(QObject *parent) : AbstractTimer(parent)
22+{
23+ m_timer.setSingleShot(false);
24+ connect(&m_timer, &QTimer::timeout, this, &AbstractTimer::timeout);
25+}
26+
27+int Timer::interval() const
28+{
29+ return m_timer.interval();
30+}
31+
32+void Timer::setInterval(int msecs)
33+{
34+ m_timer.setInterval(msecs);
35+}
36+
37+void Timer::start()
38+{
39+ m_timer.start();
40+ AbstractTimer::start();
41+}
42+
43+void Timer::stop()
44+{
45+ m_timer.stop();
46+ AbstractTimer::stop();
47+}
48+
49+bool Timer::isSingleShot() const
50+{
51+ return m_timer.isSingleShot();
52+}
53+
54+void Timer::setSingleShot(bool value)
55+{
56+ m_timer.setSingleShot(value);
57+}
58+
59+/////////////////////////////////// FakeTimer //////////////////////////////////
60+
61+FakeTimer::FakeTimer(QObject *parent)
62+ : UbuntuGestures::AbstractTimer(parent)
63+ , m_interval(0)
64+ , m_singleShot(false)
65+{
66+}
67+
68+int FakeTimer::interval() const
69+{
70+ return m_interval;
71+}
72+
73+void FakeTimer::setInterval(int msecs)
74+{
75+ m_interval = msecs;
76+}
77+
78+bool FakeTimer::isSingleShot() const
79+{
80+ return m_singleShot;
81+}
82+
83+void FakeTimer::setSingleShot(bool value)
84+{
85+ m_singleShot = value;
86+}
87+
88+/////////////////////////////////// FakeTimerFactory //////////////////////////////////
89+
90+AbstractTimer *FakeTimerFactory::createTimer(QObject *parent)
91+{
92+ FakeTimer *fakeTimer = new FakeTimer(parent);
93+
94+ timers.append(fakeTimer);
95+
96+ return fakeTimer;
97+}
98+
99+void FakeTimerFactory::makeRunningTimersTimeout()
100+{
101+ for (int i = 0; i < timers.count(); ++i) {
102+ FakeTimer *timer = timers[i].data();
103+ if (timer && timer->isRunning()) {
104+ timer->emitTimeout();
105+ }
106+ }
107+}
108+
109+} // namespace UbuntuGestures
libs/UbuntuGestures/Timer.hnew file+105
@@ -0,0 +1,105 @@
1+/*
2+ * Copyright (C) 2014 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 UBUNTUGESTURES_TIMER_H
18+#define UBUNTUGESTURES_TIMER_H
19+
20+#include "UbuntuGesturesGlobal.h"
21+
22+#include <QObject>
23+#include <QPointer>
24+#include <QTimer>
25+
26+namespace UbuntuGestures {
27+
28+/* Defines an interface for a Timer. Useful for tests. */
29+class UBUNTUGESTURES_EXPORT AbstractTimer : public QObject
30+{
31+ Q_OBJECT
32+public:
33+ AbstractTimer(QObject *parent) : QObject(parent), m_isRunning(false) {}
34+ virtual int interval() const = 0;
35+ virtual void setInterval(int msecs) = 0;
36+ virtual void start() { m_isRunning = true; }
37+ virtual void stop() { m_isRunning = false; }
38+ bool isRunning() const { return m_isRunning; }
39+ virtual bool isSingleShot() const = 0;
40+ virtual void setSingleShot(bool value) = 0;
41+Q_SIGNALS:
42+ void timeout();
43+private:
44+ bool m_isRunning;
45+};
46+
47+/* Essentially a QTimer wrapper */
48+class UBUNTUGESTURES_EXPORT Timer : public AbstractTimer
49+{
50+ Q_OBJECT
51+public:
52+ Timer(QObject *parent = nullptr);
53+
54+ int interval() const override;
55+ void setInterval(int msecs) override;
56+ void start() override;
57+ void stop() override;
58+ bool isSingleShot() const override;
59+ void setSingleShot(bool value) override;
60+private:
61+ QTimer m_timer;
62+};
63+
64+/* For tests */
65+class UBUNTUGESTURES_EXPORT FakeTimer : public AbstractTimer
66+{
67+ Q_OBJECT
68+public:
69+ FakeTimer(QObject *parent = nullptr);
70+
71+ virtual void emitTimeout() { Q_EMIT timeout(); }
72+
73+ int interval() const override;
74+ void setInterval(int msecs) override;
75+ bool isSingleShot() const override;
76+ void setSingleShot(bool value) override;
77+private:
78+ int m_interval;
79+ bool m_singleShot;
80+};
81+
82+class UBUNTUGESTURES_EXPORT AbstractTimerFactory
83+{
84+public:
85+ virtual ~AbstractTimerFactory() {}
86+ virtual AbstractTimer *createTimer(QObject *parent = nullptr) = 0;
87+};
88+
89+class UBUNTUGESTURES_EXPORT TimerFactory : public AbstractTimerFactory
90+{
91+public:
92+ AbstractTimer *createTimer(QObject *parent = nullptr) override { return new Timer(parent); }
93+};
94+
95+class UBUNTUGESTURES_EXPORT FakeTimerFactory : public AbstractTimerFactory
96+{
97+public:
98+ AbstractTimer *createTimer(QObject *parent = nullptr) override;
99+ void makeRunningTimersTimeout();
100+ QList<QPointer<FakeTimer>> timers;
101+};
102+
103+} // namespace UbuntuGestures
104+
105+#endif // UBUNTUGESTURES_TIMER_H
tests/mocks/Unity/Indicators/qml/fake_menu_page4.qml → libs/UbuntuGestures/TouchOwnershipEvent.cpprenamed+15−15
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -14,22 +14,22 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−import QtQuick 2.0
17+#include "TouchOwnershipEvent.h"
18−import Unity.Indicators 0.1 as Indicators
19
18
20−Indicators.FakeMenuPage {
19+QEvent::Type TouchOwnershipEvent::m_touchOwnershipType = (QEvent::Type)-1;
21− id: menu_plugin4
22
20
23− Rectangle {
21+TouchOwnershipEvent::TouchOwnershipEvent(int touchId, bool gained)
24− id: contents
22+ : QEvent(touchOwnershipEventType())
25− color: "green"
23+ , m_touchId(touchId)
26−
24+ , m_gained(gained)
27− height: 150
25+{
28− width: 150
26+}
29
27
30− anchors {
28+QEvent::Type TouchOwnershipEvent::touchOwnershipEventType()
31− horizontalCenter: parent.horizontalCenter
29+{
32− verticalCenter: parent.verticalCenter
30+ if (m_touchOwnershipType == (QEvent::Type)-1) {
33− }
31+ m_touchOwnershipType = (QEvent::Type)registerEventType();
34 }
32 }
33+
34+ return m_touchOwnershipType;
35}
35}
libs/UbuntuGestures/TouchOwnershipEvent.hnew file+50
@@ -0,0 +1,50 @@
1+/*
2+ * Copyright (C) 2014 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 UBUNTU_TOUCHOWNERSHIPEVENT_H
18+#define UBUNTU_TOUCHOWNERSHIPEVENT_H
19+
20+#include <QEvent>
21+#include "UbuntuGesturesGlobal.h"
22+
23+/*
24+ When an item get an ownership event for a touch it can grab/steal that touch
25+ with a clean conscience.
26+ */
27+class UBUNTUGESTURES_EXPORT TouchOwnershipEvent : public QEvent
28+{
29+public:
30+ TouchOwnershipEvent(int touchId, bool gained);
31+
32+ static Type touchOwnershipEventType();
33+
34+ /*
35+ Whether ownership was gained (true) or lost (false)
36+ */
37+ bool gained() const { return m_gained; }
38+
39+ /*
40+ Id of the touch whose ownership was granted.
41+ */
42+ int touchId() const { return m_touchId; }
43+
44+private:
45+ static Type m_touchOwnershipType;
46+ int m_touchId;
47+ bool m_gained;
48+};
49+
50+#endif // UBUNTU_TOUCHOWNERSHIPEVENT_H
libs/UbuntuGestures/TouchRegistry.cppnew file+500
@@ -0,0 +1,500 @@
1+/*
2+ * Copyright (C) 2014 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 "TouchRegistry.h"
18+
19+#include <QCoreApplication>
20+#include <QDebug>
21+
22+#pragma GCC diagnostic push
23+#pragma GCC diagnostic ignored "-pedantic"
24+#include <private/qquickitem_p.h>
25+#pragma GCC diagnostic pop
26+
27+#include "CandidateInactivityTimer.h"
28+#include "Timer.h"
29+#include "TouchOwnershipEvent.h"
30+#include "UnownedTouchEvent.h"
31+
32+#define TOUCHREGISTRY_DEBUG 0
33+
34+#if TOUCHREGISTRY_DEBUG
35+ #include "DebugHelpers.h"
36+ #define UG_DEBUG qDebug() << "[TouchRegistry]"
37+#endif // TOUCHREGISTRY_DEBUG
38+
39+using namespace UbuntuGestures;
40+
41+TouchRegistry *TouchRegistry::m_instance = nullptr;
42+
43+TouchRegistry::TouchRegistry(QObject *parent)
44+ : TouchRegistry(parent, new TimerFactory)
45+{
46+}
47+
48+TouchRegistry::TouchRegistry(QObject *parent, AbstractTimerFactory *timerFactory)
49+ : QObject(parent)
50+ , m_inDispatchLoop(false)
51+ , m_timerFactory(timerFactory)
52+{
53+ if (m_instance == nullptr) {
54+ m_instance = this;
55+ } else {
56+ qFatal("Cannot have more than one instance of TouchRegistry. It must be a singleton.");
57+ }
58+}
59+
60+TouchRegistry::~TouchRegistry()
61+{
62+ Q_ASSERT(m_instance != nullptr);
63+ m_instance = nullptr;
64+ delete m_timerFactory;
65+}
66+
67+void TouchRegistry::update(const QTouchEvent *event)
68+{
69+ #if TOUCHREGISTRY_DEBUG
70+ UG_DEBUG << "got" << qPrintable(touchEventToString(event));
71+ #endif
72+
73+ const QList<QTouchEvent::TouchPoint> &touchPoints = event->touchPoints();
74+ for (int i = 0; i < touchPoints.count(); ++i) {
75+ const QTouchEvent::TouchPoint &touchPoint = touchPoints.at(i);
76+ if (touchPoint.state() == Qt::TouchPointPressed) {
77+ TouchInfo &touchInfo = m_touchInfoPool.getEmptySlot();
78+ touchInfo.init(touchPoint.id());
79+ } else if (touchPoint.state() == Qt::TouchPointReleased) {
80+ Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(touchPoint.id());
81+
82+ touchInfo->physicallyEnded = true;
83+ }
84+ }
85+
86+ deliverTouchUpdatesToUndecidedCandidatesAndWatchers(event);
87+
88+ freeEndedTouchInfos();
89+}
90+
91+void TouchRegistry::deliverTouchUpdatesToUndecidedCandidatesAndWatchers(const QTouchEvent *event)
92+{
93+ // TODO: Look into how we could optimize this whole thing.
94+ // Although it's not really a problem as we should have at most two candidates
95+ // for each point and there should not be many active points at any given moment.
96+ // But having three nested for-loops does scare.
97+
98+ // TODO: Don't send it to the object that is already receiving the regular event
99+ // because QQuickWindow is sending it to him (i.e., he's the touch owner from Qt's point of view)
100+ // Problem is, we cannnot easily get this information.
101+
102+ const QList<QTouchEvent::TouchPoint> &updatedTouchPoints = event->touchPoints();
103+
104+ // Maps an item to the touches in this event he should be informed about.
105+ // E.g.: a QTouchEvent might have three touches but a given item might be interested in only
106+ // one of them. So he will get a UnownedTouchEvent from this QTouchEvent containing only that
107+ // touch point.
108+ QMap<QQuickItem*, QList<int>> touchIdsForItems;
109+
110+ // Build touchIdsForItems
111+ m_touchInfoPool.forEach([&](Pool<TouchInfo>::Iterator &touchInfo) {
112+ if (touchInfo->isOwned() && touchInfo->watchers.isEmpty())
113+ return true;
114+
115+ for (int j = 0; j < updatedTouchPoints.count(); ++j) {
116+ if (updatedTouchPoints[j].id() == touchInfo->id) {
117+ if (!touchInfo->isOwned()) {
118+ for (int i = 0; i < touchInfo->candidates.count(); ++i) {
119+ CandidateInfo &candidate = touchInfo->candidates[i];
120+ Q_ASSERT(!candidate.item.isNull());
121+ touchIdsForItems[candidate.item.data()].append(touchInfo->id);
122+ }
123+ }
124+
125+ const QList<QPointer<QQuickItem>> &watchers = touchInfo->watchers;
126+ for (int i = 0; i < watchers.count(); ++i) {
127+ if (!watchers[i].isNull()) {
128+ touchIdsForItems[watchers[i].data()].append(touchInfo->id);
129+ }
130+ }
131+
132+ return true;
133+ }
134+ }
135+
136+ return true;
137+ });
138+
139+ // TODO: Consider what happens if an item calls any of TouchRegistry's public methods
140+ // from the event handler callback.
141+ m_inDispatchLoop = true;
142+ auto it = touchIdsForItems.constBegin();
143+ while (it != touchIdsForItems.constEnd()) {
144+ QQuickItem *item = it.key();
145+ const QList<int> &touchIds = it.value();
146+ dispatchPointsToItem(event, touchIds, item);
147+ ++it;
148+ };
149+ m_inDispatchLoop = false;
150+}
151+
152+void TouchRegistry::freeEndedTouchInfos()
153+{
154+ m_touchInfoPool.forEach([&](Pool<TouchInfo>::Iterator &touchInfo) {
155+ if (touchInfo->ended()) {
156+ m_touchInfoPool.freeSlot(touchInfo);
157+ }
158+ return true;
159+ });
160+}
161+
162+/*
163+ Extracts the touches with the given touchIds from event and send them in a
164+ UnownedTouchEvent to the given item
165+ */
166+void TouchRegistry::dispatchPointsToItem(const QTouchEvent *event, const QList<int> &touchIds,
167+ QQuickItem *item)
168+{
169+ Qt::TouchPointStates touchPointStates = 0;
170+ QList<QTouchEvent::TouchPoint> touchPoints;
171+
172+ const QList<QTouchEvent::TouchPoint> &allTouchPoints = event->touchPoints();
173+
174+ QTransform windowToCandidateTransform = QQuickItemPrivate::get(item)->windowToItemTransform();
175+ QMatrix4x4 windowToCandidateMatrix(windowToCandidateTransform);
176+
177+ for (int i = 0; i < allTouchPoints.count(); ++i) {
178+ const QTouchEvent::TouchPoint &originalTouchPoint = allTouchPoints[i];
179+ if (touchIds.contains(originalTouchPoint.id())) {
180+ QTouchEvent::TouchPoint touchPoint = originalTouchPoint;
181+
182+ translateTouchPointFromScreenToWindowCoords(touchPoint);
183+
184+ // Set the point's local coordinates to that of the item
185+ touchPoint.setRect(windowToCandidateTransform.mapRect(touchPoint.sceneRect()));
186+ touchPoint.setStartPos(windowToCandidateTransform.map(touchPoint.startScenePos()));
187+ touchPoint.setLastPos(windowToCandidateTransform.map(touchPoint.lastScenePos()));
188+ touchPoint.setVelocity(windowToCandidateMatrix.mapVector(touchPoint.velocity()).toVector2D());
189+
190+ touchPoints.append(touchPoint);
191+ touchPointStates |= touchPoint.state();
192+ }
193+ }
194+
195+ QTouchEvent *eventForItem = new QTouchEvent(event->type(),
196+ event->device(),
197+ event->modifiers(),
198+ touchPointStates,
199+ touchPoints);
200+ eventForItem->setWindow(event->window());
201+ eventForItem->setTimestamp(event->timestamp());
202+ eventForItem->setTarget(event->target());
203+
204+ UnownedTouchEvent unownedTouchEvent(eventForItem);
205+
206+ #if TOUCHREGISTRY_DEBUG
207+ UG_DEBUG << "Sending unowned" << qPrintable(touchEventToString(eventForItem))
208+ << "to" << item;
209+ #endif
210+
211+ QCoreApplication::sendEvent(item, &unownedTouchEvent);
212+}
213+
214+void TouchRegistry::translateTouchPointFromScreenToWindowCoords(QTouchEvent::TouchPoint &touchPoint)
215+{
216+ touchPoint.setScreenRect(touchPoint.sceneRect());
217+ touchPoint.setStartScreenPos(touchPoint.startScenePos());
218+ touchPoint.setLastScreenPos(touchPoint.lastScenePos());
219+
220+ touchPoint.setSceneRect(touchPoint.rect());
221+ touchPoint.setStartScenePos(touchPoint.startPos());
222+ touchPoint.setLastScenePos(touchPoint.lastPos());
223+}
224+
225+bool TouchRegistry::eventFilter(QObject *watched, QEvent *event)
226+{
227+ Q_UNUSED(watched);
228+
229+ switch (event->type()) {
230+ case QEvent::TouchBegin:
231+ case QEvent::TouchUpdate:
232+ case QEvent::TouchEnd:
233+ case QEvent::TouchCancel:
234+ update(static_cast<QTouchEvent*>(event));
235+ break;
236+ default:
237+ // do nothing
238+ break;
239+ }
240+
241+ // Do not filter out the event. i.e., let it be handled further as
242+ // we're just monitoring events
243+ return false;
244+}
245+
246+void TouchRegistry::addCandidateOwnerForTouch(int id, QQuickItem *candidate)
247+{
248+ #if TOUCHREGISTRY_DEBUG
249+ UG_DEBUG << "addCandidateOwnerForTouch id" << id << "candidate" << candidate;
250+ #endif
251+
252+ Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(id);
253+ if (!touchInfo) { qFatal("TouchRegistry: Failed to find TouchInfo"); }
254+
255+ if (touchInfo->isOwned()) {
256+ qWarning("TouchRegistry: trying to add candidate owner for a touch that's already owned");
257+ return;
258+ }
259+
260+ // TODO: Check if candidate already exists
261+
262+ CandidateInfo candidateInfo;
263+ candidateInfo.undecided = true;
264+ candidateInfo.item = candidate;
265+ candidateInfo.inactivityTimer = new CandidateInactivityTimer(id, candidate,
266+ *m_timerFactory,
267+ this);
268+ connect(candidateInfo.inactivityTimer, &CandidateInactivityTimer::candidateDefaulted,
269+ this, &TouchRegistry::rejectCandidateOwnerForTouch);
270+
271+ touchInfo->candidates.append(candidateInfo);
272+}
273+
274+void TouchRegistry::addTouchWatcher(int touchId, QQuickItem *watcher)
275+{
276+ #if TOUCHREGISTRY_DEBUG
277+ UG_DEBUG << "addTouchWatcher id" << touchId << "watcher" << watcher;
278+ #endif
279+
280+ Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(touchId);
281+ if (!touchInfo) { qFatal("TouchRegistry: Failed to find TouchInfo"); }
282+
283+ // TODO: Check if watcher already exists
284+
285+ touchInfo->watchers.append(watcher);
286+}
287+
288+void TouchRegistry::removeCandidateOwnerForTouch(int id, QQuickItem *candidate)
289+{
290+ #if TOUCHREGISTRY_DEBUG
291+ UG_DEBUG << "removeCandidateOwnerForTouch id" << id << "candidate" << candidate;
292+ #endif
293+
294+ Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(id);
295+ if (!touchInfo) { qFatal("TouchRegistry: Failed to find TouchInfo"); }
296+
297+ int indexRemoved = -1;
298+
299+ // TODO: check if the candidate is in fact the owner of the touch
300+
301+ for (int i = 0; i < touchInfo->candidates.count() && indexRemoved == -1; ++i) {
302+ CandidateInfo &candidateInfo = touchInfo->candidates[i];
303+ if (candidateInfo.item == candidate) {
304+ Q_ASSERT(i > 0 || candidateInfo.undecided);
305+ if (i == 0 && !candidateInfo.undecided) {
306+ qCritical("TouchRegistry: touch owner is being removed.");
307+ }
308+ delete candidateInfo.inactivityTimer;
309+ candidateInfo.inactivityTimer = nullptr;
310+ touchInfo->candidates.removeAt(i);
311+ indexRemoved = i;
312+ }
313+ }
314+
315+ if (indexRemoved == 0) {
316+ // the top candidate has been removed. if the new top candidate
317+ // wants the touch let him know he's now the owner.
318+ if (touchInfo->isOwned()) {
319+ touchInfo->notifyCandidatesOfOwnershipResolution();
320+ }
321+ }
322+
323+ if (!m_inDispatchLoop && touchInfo->ended()) {
324+ m_touchInfoPool.freeSlot(touchInfo);
325+ }
326+}
327+
328+void TouchRegistry::requestTouchOwnership(int id, QQuickItem *candidate)
329+{
330+ #if TOUCHREGISTRY_DEBUG
331+ UG_DEBUG << "requestTouchOwnership id " << id << "candidate" << candidate;
332+ #endif
333+
334+ Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(id);
335+ if (!touchInfo) { qFatal("TouchRegistry: Failed to find TouchInfo"); }
336+
337+ Q_ASSERT(!touchInfo->isOwned());
338+
339+ int candidateIndex = -1;
340+ for (int i = 0; i < touchInfo->candidates.count(); ++i) {
341+ CandidateInfo &candidateInfo = touchInfo->candidates[i];
342+ if (candidateInfo.item == candidate) {
343+ candidateInfo.undecided = false;
344+ delete candidateInfo.inactivityTimer;
345+ candidateInfo.inactivityTimer = nullptr;
346+ candidateIndex = i;
347+ break;
348+ }
349+ }
350+
351+ // add it as a candidate if not present yet
352+ if (candidateIndex < 0) {
353+ CandidateInfo candidateInfo;
354+ candidateInfo.undecided = false;
355+ candidateInfo.item = candidate;
356+ candidateInfo.inactivityTimer = nullptr;
357+ touchInfo->candidates.append(candidateInfo);
358+ // it's the last one
359+ candidateIndex = touchInfo->candidates.count() - 1;
360+ }
361+
362+ // If it's the top candidate it means it's now the owner. Let
363+ // it know about it.
364+ if (candidateIndex == 0) {
365+ touchInfo->notifyCandidatesOfOwnershipResolution();
366+ }
367+}
368+
369+Pool<TouchRegistry::TouchInfo>::Iterator TouchRegistry::findTouchInfo(int id)
370+{
371+ Pool<TouchInfo>::Iterator touchInfo;
372+
373+ m_touchInfoPool.forEach([&](Pool<TouchInfo>::Iterator &someTouchInfo) -> bool {
374+ if (someTouchInfo->id == id) {
375+ touchInfo = someTouchInfo;
376+ return false;
377+ } else {
378+ return true;
379+ }
380+ });
381+
382+ return touchInfo;
383+}
384+
385+
386+void TouchRegistry::rejectCandidateOwnerForTouch(int id, QQuickItem *candidate)
387+{
388+ // NB: It's technically possible that candidate is a dangling pointer at this point.
389+ // Although that would most likely be due to a bug in our code.
390+ // In any case, only dereference it after it's confirmed that it indeed exists.
391+
392+ #if TOUCHREGISTRY_DEBUG
393+ UG_DEBUG << "rejectCandidateOwnerForTouch id" << id << "candidate" << (void*)candidate;
394+ #endif
395+
396+ Pool<TouchInfo>::Iterator touchInfo = findTouchInfo(id);
397+ if (!touchInfo) {
398+ #if TOUCHREGISTRY_DEBUG
399+ UG_DEBUG << "Failed to find TouchInfo for id" << id;
400+ #endif
401+ return;
402+ }
403+
404+ int rejectedCandidateIndex = -1;
405+
406+ // Check if the given candidate is valid and still undecided
407+ for (int i = 0; i < touchInfo->candidates.count() && rejectedCandidateIndex == -1; ++i) {
408+ CandidateInfo &candidateInfo = touchInfo->candidates[i];
409+ if (candidateInfo.item == candidate) {
410+ Q_ASSERT(i > 0 || candidateInfo.undecided);
411+ if (i == 0 && !candidateInfo.undecided) {
412+ qCritical() << "TouchRegistry: Can't reject item (" << (void*)candidate
413+ << ") as it already owns touch" << id;
414+ return;
415+ } else {
416+ // we found the guy and it's all fine.
417+ rejectedCandidateIndex = i;
418+ }
419+ }
420+ }
421+
422+ // If we reached this point it's because the given candidate exists and is indeed undecided.
423+
424+ Q_ASSERT(rejectedCandidateIndex >= 0 && rejectedCandidateIndex < touchInfo->candidates.size());
425+
426+ {
427+ TouchOwnershipEvent lostOwnershipEvent(id, false /*gained*/);
428+ QCoreApplication::sendEvent(candidate, &lostOwnershipEvent);
429+ }
430+
431+ touchInfo->candidates.removeAt(rejectedCandidateIndex);
432+
433+ if (rejectedCandidateIndex == 0) {
434+ // the top candidate has been removed. if the new top candidate
435+ // wants the touch let him know he's now the owner.
436+ if (touchInfo->isOwned()) {
437+ touchInfo->notifyCandidatesOfOwnershipResolution();
438+ }
439+ }
440+}
441+
442+////////////////////////////////////// TouchRegistry::TouchInfo ////////////////////////////////////
443+
444+TouchRegistry::TouchInfo::TouchInfo(int id)
445+{
446+ init(id);
447+}
448+
449+void TouchRegistry::TouchInfo::reset()
450+{
451+ id = -1;
452+
453+ for (int i = 0; i < candidates.count(); ++i) {
454+ CandidateInfo &candidate = candidates[i];
455+ delete candidate.inactivityTimer;
456+ candidate.inactivityTimer.clear(); // shoundn't be needed but anyway...
457+ }
458+}
459+
460+void TouchRegistry::TouchInfo::init(int id)
461+{
462+ this->id = id;
463+ physicallyEnded = false;
464+ candidates.clear();
465+ watchers.clear();
466+}
467+
468+bool TouchRegistry::TouchInfo::isOwned() const
469+{
470+ return !candidates.isEmpty() && !candidates.first().undecided;
471+}
472+
473+bool TouchRegistry::TouchInfo::ended() const
474+{
475+ Q_ASSERT(isValid());
476+ return physicallyEnded && (isOwned() || candidates.isEmpty());
477+}
478+
479+void TouchRegistry::TouchInfo::notifyCandidatesOfOwnershipResolution()
480+{
481+ Q_ASSERT(isOwned());
482+
483+ #if TOUCHREGISTRY_DEBUG
484+ UG_DEBUG << "sending TouchOwnershipEvent(id =" << id
485+ << " gained) to candidate" << candidates[0].item;
486+ #endif
487+
488+ TouchOwnershipEvent gainedOwnershipEvent(id, true /*gained*/);
489+ QCoreApplication::sendEvent(candidates[0].item, &gainedOwnershipEvent);
490+
491+
492+ TouchOwnershipEvent lostOwnershipEvent(id, false /*gained*/);
493+ for (int i = 1; i < candidates.count(); ++i) {
494+ #if TOUCHREGISTRY_DEBUG
495+ UG_DEBUG << "sending TouchWonershipEvent(id =" << id << " lost) to candidate"
496+ << candidates[i].item;
497+ #endif
498+ QCoreApplication::sendEvent(candidates[i].item, &lostOwnershipEvent);
499+ }
500+}
libs/UbuntuGestures/TouchRegistry.hnew file+182
@@ -0,0 +1,182 @@
1+/*
2+ * Copyright (C) 2014 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_TOUCHREGISTRY_H
18+#define UNITY_TOUCHREGISTRY_H
19+
20+#include <QQuickItem>
21+#include <QObject>
22+#include <QPointer>
23+#include <QTouchEvent>
24+#include <QVector>
25+
26+#include "UbuntuGesturesGlobal.h"
27+#include "CandidateInactivityTimer.h"
28+#include "Pool.h"
29+
30+namespace UbuntuGestures {
31+ class AbstractTimerFactory;
32+}
33+
34+/*
35+ Where the ownership of touches is registered.
36+
37+ Singleton used for adding a touch point ownership model analogous to the one
38+ described in the XInput 2.2 protocol[1] on top of the existing input dispatch logic in QQuickWindow.
39+
40+ It provides a much more flexible and powerful way of dealing with pointer ownership than the existing
41+ mechanisms in Qt. Namely QQuickItem::grabTouchPoints, QuickItem::keepTouchGrab,
42+ QQuickItem::setFiltersChildMouseEvents, QQuickItem::ungrabTouchPoints and QQuickItem::touchUngrabEvent.
43+
44+ Usage:
45+
46+ 1- An item receives a a new touch point. If he's not sure whether he wants it yet, he calls:
47+ TouchRegistry::instance()->addCandidateOwnerForTouch(touchId, this);
48+ touchEvent->ignore();
49+ Ignoring the event is crucial so that it can be seen by other interested parties, which will
50+ behave similarly.
51+
52+ 2- That item will then start receiving UnownedTouchEvents for that touch from step 1. Once he's
53+ made a decision he calls either:
54+ TouchRegistry::instance()->requestTouchOwnership(touchId, this);
55+ If he wants the touch point or:
56+ TouchRegistry::instance()->removeCandidateOwnerForTouch(touchId, this);
57+  if he does not want it.
58+
59+ Candidates are put in a priority queue. The first one to call addCandidateOwnerForTouch() will
60+ take precedence over the others for receiving ownership over the touch point (from now on called
61+ simply top-candidate).
62+
63+ If the top-candidate calls requestTouchOwnership() he will immediately receive a
64+ TouchOwnershipEvent(gained=true) for that touch point. He can then safely call
65+ QQuickItem::grabTouchPoints to actually get the owned touch points. The other candidates
66+ will receive TouchOwnershipEvent(gained=false) and will no longer receive UnownedTouchEvents
67+ for that touch point. They will have to undo whatever action they were performing with that
68+ touch point.
69+
70+ But if the top-candidate calls removeCandidateOwnerForTouch() instead, he's popped from the
71+ candidacy queue and ownership is given to the new top-most candidate if he has already
72+ made his decision, that is.
73+
74+ The TouchRegistry cannot enforce the results of this pointer ownership negotiation (i.e.,
75+ who gets to grab the touch points) as that would clash with QQuickWindow's input event
76+ dispatching logic. The candidates have to respect the decision and grab the touch points
77+ themselves.
78+
79+ If an item wants ownership over touches as soon as he receives the TouchBegin for them, his step 1
80+ would be instead:
81+ TouchRegistry::instance()->requestTouchOwnership(touchId, this);
82+ return true;
83+ He would then be notified once ownership has been granted to him, from which point onwards he could
84+ safely assume other TouchRegistry users wouldn't snatch this touch away from him.
85+
86+ Items oblivious to TouchRegistry will lose their touch points without warning, just like in plain Qt.
87+
88+ [1] - http://www.x.org/releases/X11R7.7/doc/inputproto/XI2proto.txt (see multitouch-ownership)
89+ */
90+class UBUNTUGESTURES_EXPORT TouchRegistry : public QObject
91+{
92+ Q_OBJECT
93+public:
94+ TouchRegistry(QObject *parent = nullptr);
95+ // Useful for tests, where you should feed a fake timer
96+ TouchRegistry(QObject *parent, UbuntuGestures::AbstractTimerFactory *timerFactory);
97+
98+ virtual ~TouchRegistry();
99+
100+ // Returns a pointer to the application's TouchRegistry instance.
101+ // If no instance has been allocated, null is returned.
102+ static TouchRegistry *instance() { return m_instance; }
103+
104+ void update(const QTouchEvent *event);
105+
106+ // Calls update() if the given event is a QTouchEvent
107+ bool eventFilter(QObject *watched, QEvent *event) override;
108+
109+ // An item that might later request ownership over the given touch point.
110+ // He will be kept informed about that touch point through UnownedTouchEvents
111+ // All candidates must eventually decide whether they want to own the touch point
112+ // or not. That decision is informed through requestTouchOwnership() or
113+ // removeCandidateOwnerForTouch()
114+ void addCandidateOwnerForTouch(int id, QQuickItem *candidate);
115+
116+ // The same as rejecting ownership of a touch
117+ void removeCandidateOwnerForTouch(int id, QQuickItem *candidate);
118+
119+ // The candidate object wants to be the owner of the touch with the given id.
120+ // If he's currently the oldest/top-most candidate, he will get an ownership
121+ // event immediately. If not, he will get ownership if (or once) he becomes the
122+ // top-most candidate.
123+ void requestTouchOwnership(int id, QQuickItem *candidate);
124+
125+ // An item that has no interest (effective or potential) in owning a touch point
126+ // but would nonetheless like to be kept up-to-date on its state.
127+ void addTouchWatcher(int touchId, QQuickItem *watcherItem);
128+
129+private Q_SLOTS:
130+ void rejectCandidateOwnerForTouch(int id, QQuickItem *candidate);
131+
132+private:
133+ class CandidateInfo {
134+ public:
135+ bool undecided;
136+ // TODO: Prune candidates that become null and resolve ownership accordingly.
137+ QPointer<QQuickItem> item;
138+ QPointer<UbuntuGestures::CandidateInactivityTimer> inactivityTimer;
139+ };
140+
141+ class TouchInfo {
142+ public:
143+ TouchInfo() : id(-1) {}
144+ TouchInfo(int id);
145+ bool isValid() const { return id >= 0; }
146+ void reset();
147+ void init(int id);
148+ int id;
149+ bool physicallyEnded;
150+ bool isOwned() const;
151+ bool ended() const;
152+ void notifyCandidatesOfOwnershipResolution();
153+
154+ // TODO optimize storage (s/QList/Pool)
155+ QList<CandidateInfo> candidates;
156+ QList<QPointer<QQuickItem>> watchers;
157+ };
158+
159+ Pool<TouchInfo>::Iterator findTouchInfo(int id);
160+
161+ void deliverTouchUpdatesToUndecidedCandidatesAndWatchers(const QTouchEvent *event);
162+
163+ static void translateTouchPointFromScreenToWindowCoords(QTouchEvent::TouchPoint &touchPoint);
164+
165+ static void dispatchPointsToItem(const QTouchEvent *event, const QList<int> &touchIds,
166+ QQuickItem *item);
167+ void freeEndedTouchInfos();
168+
169+ Pool<TouchInfo> m_touchInfoPool;
170+
171+ // the singleton instance
172+ static TouchRegistry *m_instance;
173+
174+ bool m_inDispatchLoop;
175+
176+ UbuntuGestures::AbstractTimerFactory *m_timerFactory;
177+
178+ friend class tst_TouchRegistry;
179+ friend class tst_DirectionalDragArea;
180+};
181+
182+#endif // UNITY_TOUCHREGISTRY_H
plugins/Ubuntu/Gestures/UbuntuGesturesGlobal.h → libs/UbuntuGestures/UbuntuGesturesGlobal.hrenamed+1−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
libs/UbuntuGestures/UnownedTouchEvent.cppnew file+39
@@ -0,0 +1,39 @@
1+/*
2+ * Copyright (C) 2014 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 "UnownedTouchEvent.h"
18+
19+QEvent::Type UnownedTouchEvent::m_unownedTouchEventType = (QEvent::Type)-1;
20+
21+UnownedTouchEvent::UnownedTouchEvent(QTouchEvent *touchEvent)
22+ : QEvent(unownedTouchEventType())
23+ , m_touchEvent(touchEvent)
24+{
25+}
26+
27+QEvent::Type UnownedTouchEvent::unownedTouchEventType()
28+{
29+ if (m_unownedTouchEventType == (QEvent::Type)-1) {
30+ m_unownedTouchEventType = (QEvent::Type)registerEventType();
31+ }
32+
33+ return m_unownedTouchEventType;
34+}
35+
36+QTouchEvent *UnownedTouchEvent::touchEvent()
37+{
38+ return m_touchEvent.data();
39+}
libs/UbuntuGestures/UnownedTouchEvent.hnew file+45
@@ -0,0 +1,45 @@
1+/*
2+ * Copyright (C) 2014 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 UBUNTU_UNOWNEDTOUCHEVENT_H
18+#define UBUNTU_UNOWNEDTOUCHEVENT_H
19+
20+#include <QTouchEvent>
21+#include <QScopedPointer>
22+#include "UbuntuGesturesGlobal.h"
23+
24+/*
25+ A touch event with touch points that do not belong the item receiving it.
26+
27+ See TouchRegistry::addCandidateOwnerForTouch and TouchRegistry::addTouchWatcher
28+ */
29+class UBUNTUGESTURES_EXPORT UnownedTouchEvent : public QEvent
30+{
31+public:
32+ UnownedTouchEvent(QTouchEvent *touchEvent);
33+ static Type unownedTouchEventType();
34+
35+ // TODO: It might be cleaner to store the information directly in UnownedTouchEvent
36+ // instead of carrying around a synthesized QTouchEvent. But the latter option
37+ // is very convenient.
38+ QTouchEvent *touchEvent();
39+
40+private:
41+ static Type m_unownedTouchEventType;
42+ QScopedPointer<QTouchEvent> m_touchEvent;
43+};
44+
45+#endif // UBUNTU_UNOWNEDTOUCHEVENT_H
plugins/AccountsService/AccountsService.qmltypes+2
@@ -23,6 +23,8 @@ Module {
23 }
23 }
24 Property { name: "user"; type: "string" }
24 Property { name: "user"; type: "string" }
25 Property { name: "demoEdges"; type: "bool" }
25 Property { name: "demoEdges"; type: "bool" }
26+ Property { name: "enableLauncherWhileLocked"; type: "bool"; isReadonly: true }
27+ Property { name: "enableIndicatorsWhileLocked"; type: "bool"; isReadonly: true }
26 Property { name: "backgroundFile"; type: "string"; isReadonly: true }
28 Property { name: "backgroundFile"; type: "string"; isReadonly: true }
27 Property { name: "statsWelcomeScreen"; type: "bool"; isReadonly: true }
29 Property { name: "statsWelcomeScreen"; type: "bool"; isReadonly: true }
28 Property { name: "passwordDisplayHint"; type: "PasswordDisplayHint"; isReadonly: true }
30 Property { name: "passwordDisplayHint"; type: "PasswordDisplayHint"; isReadonly: true }
plugins/CMakeLists.txt+1
@@ -18,6 +18,7 @@ add_subdirectory(Lights)
18add_subdirectory(Dash)
18add_subdirectory(Dash)
19add_subdirectory(Powerd)
19add_subdirectory(Powerd)
20add_subdirectory(SessionBroadcast)
20add_subdirectory(SessionBroadcast)
21+add_subdirectory(ScreenGrabber)
21add_subdirectory(Ubuntu)
22add_subdirectory(Ubuntu)
22add_subdirectory(Unity)
23add_subdirectory(Unity)
23add_subdirectory(Utils)
24add_subdirectory(Utils)
plugins/Dash/CardAttributes.qml+3−1
@@ -41,6 +41,8 @@ GridLayout {
41 if (column == grid.columns - 1 || index == repeater.count - 1) return Qt.AlignRight;
41 if (column == grid.columns - 1 || index == repeater.count - 1) return Qt.AlignRight;
42 if (column == 1) return Qt.AlignHCenter;
42 if (column == 1) return Qt.AlignHCenter;
43 }
43 }
44+ Layout.column: index % grid.columns
45+ Layout.row: index / grid.columns
44 Layout.columnSpan: index == repeater.count - 1 && grid.columns == 3 && column == 1 ? 2 : 1
46 Layout.columnSpan: index == repeater.count - 1 && grid.columns == 3 && column == 1 ? 2 : 1
45 Layout.maximumWidth: Math.max(icon.width, label.x + label.implicitWidth)
47 Layout.maximumWidth: Math.max(icon.width, label.x + label.implicitWidth)
46 Layout.fillWidth: true
48 Layout.fillWidth: true
@@ -59,7 +61,7 @@ GridLayout {
59 text: "value" in modelData && modelData["value"] || "";
61 text: "value" in modelData && modelData["value"] || "";
60 elide: Text.ElideRight
62 elide: Text.ElideRight
61 maximumLineCount: 1
63 maximumLineCount: 1
62− font.weight: "style" in modelData && modelData["style"] == "highlighted" ? Font.DemiBold : Font.Light
64+ font.weight: "style" in modelData && modelData["style"] === "highlighted" ? Font.Bold : Font.Light
63 fontSize: "small"
65 fontSize: "small"
64 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale)
66 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale)
65 color: grid.color
67 color: grid.color
plugins/Dash/CardCreator.js+19−18
@@ -82,12 +82,13 @@ var kArtShapeHolderCode = 'Item { \n\
82 height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height }); \n\
82 height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height }); \n\
83 } \n\
83 } \n\
84 } \n\
84 } \n\
85− image: Image { \n\
85+ image: CroppedImageMinimumSourceSize { \n\
86 objectName: "artImage"; \n\
86 objectName: "artImage"; \n\
87+ property bool doLoadSource: !NetworkingStatus.limitedBandwith; \n\
87− source: cardData && cardData["art"] || ""; \n\
88+ source: { if (root.visible) doLoadSource = true; return doLoadSource && cardData && cardData["art"] || ""; } \n\
88 cache: true; \n\
89 cache: true; \n\
89 asynchronous: root.asynchronous; \n\
90 asynchronous: root.asynchronous; \n\
90− fillMode: Image.PreserveAspectCrop; \n\
91+ visible: false; \n\
91 width: %2; \n\
92 width: %2; \n\
92 height: %3; \n\
93 height: %3; \n\
93 } \n\
94 } \n\
@@ -190,16 +191,14 @@ var kMascotShapeLoaderCode = 'Loader { \n\
190
191
191// %1 is used as anchors of mascotImage
192// %1 is used as anchors of mascotImage
192// %2 is used as visible of mascotImage
193// %2 is used as visible of mascotImage
193−var kMascotImageCode = 'Image { \n\
194+var kMascotImageCode = 'CroppedImageMinimumSourceSize { \n\
194 id: mascotImage; \n\
195 id: mascotImage; \n\
195 objectName: "mascotImage"; \n\
196 objectName: "mascotImage"; \n\
196 anchors { %1 } \n\
197 anchors { %1 } \n\
197− readonly property int maxSize: Math.max(width, height) * 4; \n\
198+ property bool doLoadSource: !NetworkingStatus.limitedBandwith; \n\
198− source: cardData && cardData["mascot"] || ""; \n\
199+ source: { if (root.visible) doLoadSource = true; return doLoadSource && cardData && cardData["mascot"] || ""; } \n\
199 width: units.gu(6); \n\
200 width: units.gu(6); \n\
200 height: units.gu(5.625); \n\
201 height: units.gu(5.625); \n\
201− sourceSize { width: maxSize; height: maxSize } \n\
202− fillMode: Image.PreserveAspectCrop; \n\
203 horizontalAlignment: Image.AlignHCenter; \n\
202 horizontalAlignment: Image.AlignHCenter; \n\
204 verticalAlignment: Image.AlignVCenter; \n\
203 verticalAlignment: Image.AlignVCenter; \n\
205 visible: %2; \n\
204 visible: %2; \n\
@@ -220,13 +219,13 @@ var kTitleLabelCode = 'Label { \n\
220 color: %2; \n\
219 color: %2; \n\
221 visible: showHeader %3; \n\
220 visible: showHeader %3; \n\
222 text: root.title; \n\
221 text: root.title; \n\
223− font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal; \n\
222+ font.weight: cardData && cardData["subtitle"] ? Font.DemiBold : Font.Normal; \n\
224− horizontalAlignment: root.headerAlignment; \n\
223+ horizontalAlignment: root.titleAlignment; \n\
225 }\n';
224 }\n';
226
225
227// %1 is used as extra anchors of emblemIcon
226// %1 is used as extra anchors of emblemIcon
228// %2 is used as color of emblemIcon
227// %2 is used as color of emblemIcon
229−var kEmblemIconCode = 'Icon { \n\
228+var kEmblemIconCode = 'StatusIcon { \n\
230 id: emblemIcon; \n\
229 id: emblemIcon; \n\
231 objectName: "emblemIcon"; \n\
230 objectName: "emblemIcon"; \n\
232 anchors { \n\
231 anchors { \n\
@@ -236,7 +235,6 @@ var kEmblemIconCode = 'Icon { \n\
236 } \n\
235 } \n\
237 source: cardData && cardData["emblem"] || ""; \n\
236 source: cardData && cardData["emblem"] || ""; \n\
238 color: %2; \n\
237 color: %2; \n\
239− width: height; \n\
240 height: source != "" ? titleLabel.font.pixelSize : 0; \n\
238 height: source != "" ? titleLabel.font.pixelSize : 0; \n\
241 }\n';
239 }\n';
242
240
@@ -258,13 +256,12 @@ var kSubtitleLabelCode = 'Label { \n\
258 anchors { %1 } \n\
256 anchors { %1 } \n\
259 anchors.topMargin: units.dp(2); \n\
257 anchors.topMargin: units.dp(2); \n\
260 elide: Text.ElideRight; \n\
258 elide: Text.ElideRight; \n\
261− fontSize: "small"; \n\
259+ fontSize: "x-small"; \n\
262 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale); \n\
260 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale); \n\
263 color: %2; \n\
261 color: %2; \n\
264 visible: titleLabel.visible && titleLabel.text; \n\
262 visible: titleLabel.visible && titleLabel.text; \n\
265 text: cardData && cardData["subtitle"] || ""; \n\
263 text: cardData && cardData["subtitle"] || ""; \n\
266 font.weight: Font.Light; \n\
264 font.weight: Font.Light; \n\
267− horizontalAlignment: root.headerAlignment; \n\
268 }\n';
265 }\n';
269
266
270// %1 is used as anchors of attributesRow
267// %1 is used as anchors of attributesRow
@@ -310,13 +307,15 @@ function cardString(template, components) {
310 property var artShapeBorderSource: undefined; \n\
307 property var artShapeBorderSource: undefined; \n\
311 property real fontScale: 1.0; \n\
308 property real fontScale: 1.0; \n\
312 property var scopeStyle: null; \n\
309 property var scopeStyle: null; \n\
313− property int headerAlignment: Text.AlignLeft; \n\
310+ property int titleAlignment: Text.AlignLeft; \n\
314 property int fixedHeaderHeight: -1; \n\
311 property int fixedHeaderHeight: -1; \n\
315 property size fixedArtShapeSize: Qt.size(-1, -1); \n\
312 property size fixedArtShapeSize: Qt.size(-1, -1); \n\
316 readonly property string title: cardData && cardData["title"] || ""; \n\
313 readonly property string title: cardData && cardData["title"] || ""; \n\
317 property bool asynchronous: true; \n\
314 property bool asynchronous: true; \n\
318 property bool showHeader: true; \n\
315 property bool showHeader: true; \n\
319− implicitWidth: childrenRect.width; \n';
316+ implicitWidth: childrenRect.width; \n\
317+ enabled: root.template == null ? true : (root.template["non-interactive"] !== undefined ? !root.template["non-interactive"] : true); \n\
318+ \n';
320
319
321 var hasArt = components["art"] && components["art"]["field"] || false;
320 var hasArt = components["art"] && components["art"]["field"] || false;
322 var hasSummary = components["summary"] || false;
321 var hasSummary = components["summary"] || false;
@@ -436,7 +435,7 @@ function cardString(template, components) {
436 mascotShapeCode = kMascotShapeLoaderCode.arg(mascotAnchors);
435 mascotShapeCode = kMascotShapeLoaderCode.arg(mascotAnchors);
437 }
436 }
438
437
439− var mascotImageVisible = useMascotShape ? 'false' : 'showHeader';
438+ var mascotImageVisible = useMascotShape ? 'false' : 'showHeader && resized';
440 mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible);
439 mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible);
441 }
440 }
442
441
@@ -627,7 +626,7 @@ function cardString(template, components) {
627
626
628 var implicitHeight = 'implicitHeight: ';
627 var implicitHeight = 'implicitHeight: ';
629 if (hasSummary) {
628 if (hasSummary) {
630− implicitHeight += 'summary.y + summary.height + (summary.text ? units.gu(1) : 0);\n';
629+ implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
631 } else if (hasHeaderRow) {
630 } else if (hasHeaderRow) {
632 implicitHeight += 'row.y + row.height + units.gu(1);\n';
631 implicitHeight += 'row.y + row.height + units.gu(1);\n';
633 } else if (hasMascot) {
632 } else if (hasMascot) {
@@ -655,6 +654,8 @@ function cardString(template, components) {
655function createCardComponent(parent, template, components) {
654function createCardComponent(parent, template, components) {
656 var imports = 'import QtQuick 2.2; \n\
655 var imports = 'import QtQuick 2.2; \n\
657 import Ubuntu.Components 1.1; \n\
656 import Ubuntu.Components 1.1; \n\
657+ import Ubuntu.Settings.Components 0.1; \n\
658+ import Ubuntu.Connectivity 1.0; \n\
658 import Dash 0.1;\n\
659 import Dash 0.1;\n\
659 import Utils 0.1;\n';
660 import Utils 0.1;\n';
660 var card = cardString(template, components);
661 var card = cardString(template, components);
tests/mocks/Unity/Indicators/FakeMenuPage.qml → plugins/Dash/CroppedImageMinimumSourceSize.qmlrenamed+19−8
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -14,14 +14,25 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−import QtQuick 2.0
17+import QtQuick 2.3
18
18
19−Flickable {
19+Image {
20− objectName: "fakeMenuPlugin"
20+ property bool resized: false
21− // Make it compatible with the PluginItem interface
21+ property bool resizing: false
22− function reset() {
22+ fillMode: Image.PreserveAspectCrop
23− if (shell != undefined && shell.indicator_status != undefined) {
23+ visible: resized
24− shell.indicator_status[objectName].reset++;
24+ onSourceSizeChanged: {
25+ if (!resized && !resizing) {
26+ resizing = true;
27+ var ar = width / height;
28+ var ssar = sourceSize.width / sourceSize.height;
29+ if (ar > ssar) {
30+ sourceSize = Qt.size(width, 0);
31+ } else {
32+ sourceSize = Qt.size(0, height);
33+ }
34+ resizing = false;
35+ resized = true;
25 }
36 }
26 }
37 }
27}
38}
plugins/Dash/Dash.qmltypes+3
@@ -40,9 +40,12 @@ Module {
40 Property { name: "forceNoClip"; type: "bool" }
40 Property { name: "forceNoClip"; type: "bool" }
41 Property { name: "stickyHeaderHeight"; type: "int"; isReadonly: true }
41 Property { name: "stickyHeaderHeight"; type: "int"; isReadonly: true }
42 Property { name: "headerItemShownHeight"; type: "double"; isReadonly: true }
42 Property { name: "headerItemShownHeight"; type: "double"; isReadonly: true }
43+ Property { name: "cacheBuffer"; type: "double" }
43 Signal { name: "headerChanged" }
44 Signal { name: "headerChanged" }
44 Method { name: "positionAtBeginning" }
45 Method { name: "positionAtBeginning" }
45 Method { name: "showHeader" }
46 Method { name: "showHeader" }
47+ Method { name: "firstCreatedIndex"; type: "int" }
48+ Method { name: "createdItemCount"; type: "int" }
46 Method {
49 Method {
47 name: "item"
50 name: "item"
48 type: "QQuickItem*"
51 type: "QQuickItem*"
plugins/Dash/listviewwithpageheader.cpp+19−8
@@ -104,8 +104,6 @@
104#pragma GCC diagnostic pop
104#pragma GCC diagnostic pop
105// #include <private/qquickrectangle_p.h>
105// #include <private/qquickrectangle_p.h>
106
106
107−static const qreal bufferRatio = 0.5;
108−
109qreal ListViewWithPageHeader::ListItem::height() const
107qreal ListViewWithPageHeader::ListItem::height() const
110{
108{
111 return m_item->height() + (m_sectionItem ? m_sectionItem->height() : 0);
109 return m_item->height() + (m_sectionItem ? m_sectionItem->height() : 0);
@@ -158,6 +156,7 @@ ListViewWithPageHeader::ListViewWithPageHeader()
158 , m_forceNoClip(false)
156 , m_forceNoClip(false)
159 , m_inLayout(false)
157 , m_inLayout(false)
160 , m_inContentHeightKeepHeaderShown(false)
158 , m_inContentHeightKeepHeaderShown(false)
159+ , m_cacheBuffer(0)
161{
160{
162 m_clipItem = new QQuickItem(contentItem());
161 m_clipItem = new QQuickItem(contentItem());
163// m_clipItem = new QQuickRectangle(contentItem());
162// m_clipItem = new QQuickRectangle(contentItem());
@@ -335,6 +334,20 @@ qreal ListViewWithPageHeader::headerItemShownHeight() const
335 return m_headerItemShownHeight;
334 return m_headerItemShownHeight;
336}
335}
337
336
337+qreal ListViewWithPageHeader::cacheBuffer() const
338+{
339+ return m_cacheBuffer;
340+}
341+
342+void ListViewWithPageHeader::setCacheBuffer(qreal cacheBuffer)
343+{
344+ if (cacheBuffer != m_cacheBuffer) {
345+ m_cacheBuffer = cacheBuffer;
346+ Q_EMIT cacheBufferChanged();
347+ polish();
348+ }
349+}
350+
338void ListViewWithPageHeader::positionAtBeginning()
351void ListViewWithPageHeader::positionAtBeginning()
339{
352{
340 if (m_delegateModel->count() <= 0)
353 if (m_delegateModel->count() <= 0)
@@ -356,8 +369,7 @@ void ListViewWithPageHeader::positionAtBeginning()
356 // Create the subsequent items
369 // Create the subsequent items
357 int modelIndex = 1;
370 int modelIndex = 1;
358 qreal pos = item->y() + item->height();
371 qreal pos = item->y() + item->height();
359− const qreal buffer = height() * bufferRatio;
360− const qreal bufferTo = height() + buffer;
372+ const qreal bufferTo = height() + m_cacheBuffer;
361 while (modelIndex < m_delegateModel->count() && pos <= bufferTo) {
373 while (modelIndex < m_delegateModel->count() && pos <= bufferTo) {
362 if (!(item = createItem(modelIndex, false)))
374 if (!(item = createItem(modelIndex, false)))
363 break;
375 break;
@@ -603,11 +615,10 @@ void ListViewWithPageHeader::refill()
603 return;
615 return;
604 }
616 }
605
617
606− const qreal buffer = height() * bufferRatio;
607 const qreal from = contentY();
618 const qreal from = contentY();
608 const qreal to = from + height();
619 const qreal to = from + height();
609− const qreal bufferFrom = from - buffer;
620+ const qreal bufferFrom = from - m_cacheBuffer;
610− const qreal bufferTo = to + buffer;
621+ const qreal bufferTo = to + m_cacheBuffer;
611
622
612 bool added = addVisibleItems(from, to, false);
623 bool added = addVisibleItems(from, to, false);
613 bool removed = removeNonVisibleItems(bufferFrom, bufferTo);
624 bool removed = removeNonVisibleItems(bufferFrom, bufferTo);
@@ -840,7 +851,7 @@ ListViewWithPageHeader::ListItem *ListViewWithPageHeader::createItem(int modelIn
840 if (nextItem) {
851 if (nextItem) {
841 listItem->setY(nextItem->y() - listItem->height());
852 listItem->setY(nextItem->y() - listItem->height());
842 } else if (modelIndex == 0) {
853 } else if (modelIndex == 0) {
843− listItem->setY(m_headerItem ? m_headerItem->height() : 0);
854+ listItem->setY(-m_clipItem->y() + (m_headerItem ? m_headerItem->height() : 0));
844 } else if (!m_visibleItems.isEmpty()) {
855 } else if (!m_visibleItems.isEmpty()) {
845 lostItem = true;
856 lostItem = true;
846 }
857 }
plugins/Dash/listviewwithpageheader.h+6
@@ -54,6 +54,7 @@ class ListViewWithPageHeader : public QQuickFlickable, public QQuickItemChangeLi
54 Q_PROPERTY(bool forceNoClip READ forceNoClip WRITE setForceNoClip NOTIFY forceNoClipChanged)
54 Q_PROPERTY(bool forceNoClip READ forceNoClip WRITE setForceNoClip NOTIFY forceNoClipChanged)
55 Q_PROPERTY(int stickyHeaderHeight READ stickyHeaderHeight NOTIFY stickyHeaderHeightChanged)
55 Q_PROPERTY(int stickyHeaderHeight READ stickyHeaderHeight NOTIFY stickyHeaderHeightChanged)
56 Q_PROPERTY(qreal headerItemShownHeight READ headerItemShownHeight NOTIFY headerItemShownHeightChanged)
56 Q_PROPERTY(qreal headerItemShownHeight READ headerItemShownHeight NOTIFY headerItemShownHeightChanged)
57+ Q_PROPERTY(qreal cacheBuffer READ cacheBuffer WRITE setCacheBuffer NOTIFY cacheBufferChanged)
57
58
58 friend class ListViewWithPageHeaderTest;
59 friend class ListViewWithPageHeaderTest;
59 friend class ListViewWithPageHeaderTestSection;
60 friend class ListViewWithPageHeaderTestSection;
@@ -84,6 +85,9 @@ public:
84 int stickyHeaderHeight() const;
85 int stickyHeaderHeight() const;
85 qreal headerItemShownHeight() const;
86 qreal headerItemShownHeight() const;
86
87
88+ qreal cacheBuffer() const;
89+ void setCacheBuffer(qreal cacheBuffer);
90+
87 Q_INVOKABLE void positionAtBeginning();
91 Q_INVOKABLE void positionAtBeginning();
88 Q_INVOKABLE void showHeader();
92 Q_INVOKABLE void showHeader();
89 Q_INVOKABLE int firstCreatedIndex() const;
93 Q_INVOKABLE int firstCreatedIndex() const;
@@ -105,6 +109,7 @@ Q_SIGNALS:
105 void forceNoClipChanged();
109 void forceNoClipChanged();
106 void stickyHeaderHeightChanged();
110 void stickyHeaderHeightChanged();
107 void headerItemShownHeightChanged();
111 void headerItemShownHeightChanged();
112+ void cacheBufferChanged();
108
113
109protected:
114protected:
110 void componentComplete() override;
115 void componentComplete() override;
@@ -199,6 +204,7 @@ private:
199 bool m_forceNoClip;
204 bool m_forceNoClip;
200 bool m_inLayout;
205 bool m_inLayout;
201 bool m_inContentHeightKeepHeaderShown;
206 bool m_inContentHeightKeepHeaderShown;
207+ qreal m_cacheBuffer;
202
208
203 // Qt 5.0 doesn't like releasing the items just after itemCreated
209 // Qt 5.0 doesn't like releasing the items just after itemCreated
204 // so we delay the releasing until the next updatePolish
210 // so we delay the releasing until the next updatePolish
plugins/Dash/qmldir+2−1
@@ -3,4 +3,5 @@ plugin Dash-qml
3typeinfo Dash.qmltypes
3typeinfo Dash.qmltypes
4singleton CardCreatorCache 0.1 CardCreatorCache.qml
4singleton CardCreatorCache 0.1 CardCreatorCache.qml
5ScopeStyle 0.1 ScopeStyle.qml
5ScopeStyle 0.1 ScopeStyle.qml
6−CardAttributes 0.1 CardAttributes.qml
6+CardAttributes 0.1 CardAttributes.qml
7+CroppedImageMinimumSourceSize 0.1 CroppedImageMinimumSourceSize.qml
plugins/LightDM/CMakeLists.txt+2
@@ -10,6 +10,7 @@ include_directories(
10 ${CMAKE_SOURCE_DIR}/plugins/Utils
10 ${CMAKE_SOURCE_DIR}/plugins/Utils
11 ${CMAKE_SOURCE_DIR}/tests/mocks/LightDM
11 ${CMAKE_SOURCE_DIR}/tests/mocks/LightDM
12 #${LIBLIGHTDM_INCLUDE_DIRS}
12 #${LIBLIGHTDM_INCLUDE_DIRS}
13+ ${libunity8-private_SOURCE_DIR}
13 ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
14 ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
14)
15)
15
16
@@ -28,6 +29,7 @@ add_library(LightDM-qml MODULE
28
29
29target_link_libraries(LightDM-qml
30target_link_libraries(LightDM-qml
30 MockLightDM-demo
31 MockLightDM-demo
32+ unity8-private
31# TODO: Once we split out a separate greeter process, uncomment these lines
33# TODO: Once we split out a separate greeter process, uncomment these lines
32# ${LIBLIGHTDM_LDFLAGS}
34# ${LIBLIGHTDM_LDFLAGS}
33 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
35 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
plugins/LightDM/DBusGreeter.cpp+3−24
@@ -20,11 +20,9 @@
20#include <QDBusMessage>
20#include <QDBusMessage>
21#include <QStringList>
21#include <QStringList>
22
22
23−DBusGreeter::DBusGreeter(Greeter *greeter, const QDBusConnection &connection, const QString &path)
23+DBusGreeter::DBusGreeter(Greeter *greeter, const QString &path)
24− : QObject(greeter),
24+ : UnityDBusObject(path, "com.canonical.UnityGreeter", true, greeter),
25− m_greeter(greeter),
25+ m_greeter(greeter)
26− m_connection(connection),
27− m_path(path)
28{
26{
29 connect(m_greeter, SIGNAL(isActiveChanged()), this, SLOT(isActiveChangedHandler()));
27 connect(m_greeter, SIGNAL(isActiveChanged()), this, SLOT(isActiveChangedHandler()));
30}
28}
@@ -49,22 +47,3 @@ void DBusGreeter::isActiveChangedHandler()
49 notifyPropertyChanged("IsActive", isActive());
47 notifyPropertyChanged("IsActive", isActive());
50 Q_EMIT isActiveChanged();
48 Q_EMIT isActiveChanged();
51}
49}
52−
53−// Manually emit a PropertiesChanged signal over DBus, because QtDBus
54−// doesn't do it for us on Q_PROPERTIES, oddly enough.
55−void DBusGreeter::notifyPropertyChanged(const QString& propertyName, const QVariant &value)
56−{
57− QDBusMessage message;
58− QVariantMap changedProps;
59−
60− changedProps.insert(propertyName, value);
61−
62− message = QDBusMessage::createSignal(m_path,
63− "org.freedesktop.DBus.Properties",
64− "PropertiesChanged");
65− message << "com.canonical.UnityGreeter";
66− message << changedProps;
67− message << QStringList();
68−
69− m_connection.send(message);
70−}
plugins/LightDM/DBusGreeter.h+3−7
@@ -17,16 +17,15 @@
17#ifndef UNITY_DBUSGREETER_H
17#ifndef UNITY_DBUSGREETER_H
18#define UNITY_DBUSGREETER_H
18#define UNITY_DBUSGREETER_H
19
19
20+#include "unitydbusobject.h"
20#include <QDBusConnection>
21#include <QDBusConnection>
21−#include <QObject>
22
22
23class Greeter;
23class Greeter;
24−class QDBusInterface;
25
24
26/** This is an internal class used to talk with the indicators.
25/** This is an internal class used to talk with the indicators.
27 */
26 */
28
27
29−class DBusGreeter : public QObject
28+class DBusGreeter : public UnityDBusObject
30{
29{
31 Q_OBJECT
30 Q_OBJECT
32 Q_CLASSINFO("D-Bus Interface", "com.canonical.UnityGreeter")
31 Q_CLASSINFO("D-Bus Interface", "com.canonical.UnityGreeter")
@@ -34,7 +33,7 @@ class DBusGreeter : public QObject
34 Q_PROPERTY(bool IsActive READ isActive NOTIFY isActiveChanged) // since 14.10
33 Q_PROPERTY(bool IsActive READ isActive NOTIFY isActiveChanged) // since 14.10
35
34
36public:
35public:
37− explicit DBusGreeter(Greeter *greeter, const QDBusConnection &connection, const QString &path);
36+ explicit DBusGreeter(Greeter *greeter, const QString &path);
38
37
39 bool isActive() const;
38 bool isActive() const;
40 Q_SCRIPTABLE void ShowGreeter(); // temporary, until we split the greeter again
39 Q_SCRIPTABLE void ShowGreeter(); // temporary, until we split the greeter again
@@ -45,12 +44,9 @@ Q_SIGNALS:
45
44
46private Q_SLOTS:
45private Q_SLOTS:
47 void isActiveChangedHandler();
46 void isActiveChangedHandler();
48− void notifyPropertyChanged(const QString &propertyName, const QVariant &value);
49
47
50private:
48private:
51 Greeter *m_greeter;
49 Greeter *m_greeter;
52− QDBusConnection m_connection;
53− QString m_path;
54};
50};
55
51
56#endif
52#endif
plugins/LightDM/DBusGreeterList.cpp+3−24
@@ -20,11 +20,9 @@
20#include <QDBusMessage>
20#include <QDBusMessage>
21#include <QStringList>
21#include <QStringList>
22
22
23−DBusGreeterList::DBusGreeterList(Greeter *greeter, const QDBusConnection &connection, const QString &path)
23+DBusGreeterList::DBusGreeterList(Greeter *greeter, const QString &path)
24− : QObject(greeter),
24+ : UnityDBusObject(path, "com.canonical.UnityGreeter", true, greeter),
25− m_greeter(greeter),
25+ m_greeter(greeter)
26− m_connection(connection),
27− m_path(path)
28{
26{
29 connect(m_greeter, SIGNAL(authenticationUserChanged(const QString &)), this, SLOT(authenticationUserChangedHandler(const QString &)));
27 connect(m_greeter, SIGNAL(authenticationUserChanged(const QString &)), this, SLOT(authenticationUserChangedHandler(const QString &)));
30 connect(m_greeter, SIGNAL(promptlessChanged()), this, SLOT(promptlessChangedHandler()));
28 connect(m_greeter, SIGNAL(promptlessChanged()), this, SLOT(promptlessChangedHandler()));
@@ -56,22 +54,3 @@ void DBusGreeterList::promptlessChangedHandler()
56 notifyPropertyChanged("EntryIsLocked", entryIsLocked());
54 notifyPropertyChanged("EntryIsLocked", entryIsLocked());
57 Q_EMIT entryIsLockedChanged();
55 Q_EMIT entryIsLockedChanged();
58}
56}
59−
60−// Manually emit a PropertiesChanged signal over DBus, because QtDBus
61−// doesn't do it for us on Q_PROPERTIES, oddly enough.
62−void DBusGreeterList::notifyPropertyChanged(const QString& propertyName, const QVariant &value)
63−{
64− QDBusMessage message;
65− QVariantMap changedProps;
66−
67− changedProps.insert(propertyName, value);
68−
69− message = QDBusMessage::createSignal(m_path,
70− "org.freedesktop.DBus.Properties",
71− "PropertiesChanged");
72− message << "com.canonical.UnityGreeter.List";
73− message << changedProps;
74− message << QStringList();
75−
76− m_connection.send(message);
77−}
plugins/LightDM/DBusGreeterList.h+3−7
@@ -17,16 +17,15 @@
17#ifndef UNITY_DBUSGREETERLIST_H
17#ifndef UNITY_DBUSGREETERLIST_H
18#define UNITY_DBUSGREETERLIST_H
18#define UNITY_DBUSGREETERLIST_H
19
19
20+#include "unitydbusobject.h"
20#include <QDBusConnection>
21#include <QDBusConnection>
21−#include <QObject>
22
22
23class Greeter;
23class Greeter;
24−class QDBusInterface;
25
24
26/** This is an internal class used to talk with the indicators.
25/** This is an internal class used to talk with the indicators.
27 */
26 */
28
27
29−class DBusGreeterList : public QObject
28+class DBusGreeterList : public UnityDBusObject
30{
29{
31 Q_OBJECT
30 Q_OBJECT
32 Q_CLASSINFO("D-Bus Interface", "com.canonical.UnityGreeter.List")
31 Q_CLASSINFO("D-Bus Interface", "com.canonical.UnityGreeter.List")
@@ -35,7 +34,7 @@ class DBusGreeterList : public QObject
35 Q_PROPERTY(bool EntryIsLocked READ entryIsLocked NOTIFY entryIsLockedChanged) // since 14.04
34 Q_PROPERTY(bool EntryIsLocked READ entryIsLocked NOTIFY entryIsLockedChanged) // since 14.04
36
35
37public:
36public:
38− explicit DBusGreeterList(Greeter *greeter, const QDBusConnection &connection, const QString &path);
37+ explicit DBusGreeterList(Greeter *greeter, const QString &path);
39
38
40 Q_SCRIPTABLE void SetActiveEntry(const QString &entry); // since 13.04
39 Q_SCRIPTABLE void SetActiveEntry(const QString &entry); // since 13.04
41 Q_SCRIPTABLE QString GetActiveEntry() const; // since 13.10
40 Q_SCRIPTABLE QString GetActiveEntry() const; // since 13.10
@@ -50,12 +49,9 @@ Q_SIGNALS:
50private Q_SLOTS:
49private Q_SLOTS:
51 void authenticationUserChangedHandler(const QString &user);
50 void authenticationUserChangedHandler(const QString &user);
52 void promptlessChangedHandler();
51 void promptlessChangedHandler();
53− void notifyPropertyChanged(const QString &propertyName, const QVariant &value);
54
52
55private:
53private:
56 Greeter *m_greeter;
54 Greeter *m_greeter;
57− QDBusConnection m_connection;
58− QString m_path;
59};
55};
60
56
61#endif
57#endif
plugins/LightDM/LightDM.qmltypes+1
@@ -37,6 +37,7 @@ Module {
37 Signal { name: "isActiveChanged" }
37 Signal { name: "isActiveChanged" }
38 Signal { name: "isAuthenticatedChanged" }
38 Signal { name: "isAuthenticatedChanged" }
39 Signal { name: "showGreeter" }
39 Signal { name: "showGreeter" }
40+ Signal { name: "hideGreeter" }
40 Signal {
41 Signal {
41 name: "requestAuthenticationUser"
42 name: "requestAuthenticationUser"
42 Parameter { name: "user"; type: "string" }
43 Parameter { name: "user"; type: "string" }
plugins/LightDM/plugin.cpp+2−9
@@ -30,21 +30,14 @@
30#include <QDBusConnection>
30#include <QDBusConnection>
31#include <QtQml/qqml.h>
31#include <QtQml/qqml.h>
32
32
33−static const char* GREETER_LIST_DBUS_PATH = "/list";
34−static const char* GREETER_DBUS_SERVICE = "com.canonical.UnityGreeter";
35−
36static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
33static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
37{
34{
38 Q_UNUSED(engine)
35 Q_UNUSED(engine)
39 Q_UNUSED(scriptEngine)
36 Q_UNUSED(scriptEngine)
40
37
41 Greeter *greeter = new Greeter();
38 Greeter *greeter = new Greeter();
42− QDBusConnection connection = QDBusConnection::sessionBus();
43− DBusGreeter *root = new DBusGreeter(greeter, connection, "/");
39+ new DBusGreeter(greeter, "/");
44− connection.registerObject("/", root, QDBusConnection::ExportScriptableContents);
45− DBusGreeterList *list = new DBusGreeterList(greeter, connection, GREETER_LIST_DBUS_PATH);
40+ new DBusGreeterList(greeter, "/list");
46− connection.registerObject(GREETER_LIST_DBUS_PATH, list, QDBusConnection::ExportScriptableContents);
47− connection.registerService(GREETER_DBUS_SERVICE);
48
41
49 return greeter;
42 return greeter;
50}
43}
plugins/ScreenGrabber/CMakeLists.txtnew file+13
@@ -0,0 +1,13 @@
1+include_directories(
2+ ${CMAKE_CURRENT_BINARY_DIR}
3+)
4+
5+set(SCREENGRABBERSOURCES
6+ screengrabber.cpp
7+ plugin.cpp
8+)
9+
10+add_library(ScreenGrabber-qml MODULE ${SCREENGRABBERSOURCES})
11+qt5_use_modules(ScreenGrabber-qml Qml Gui Quick Concurrent)
12+
13+add_unity8_plugin(ScreenGrabber 0.1 ScreenGrabber TARGETS ScreenGrabber-qml)
plugins/ScreenGrabber/ScreenGrabber.qmltypesnew file+17
@@ -0,0 +1,17 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -nonrelocatable ScreenGrabber 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "ScreenGrabber"
12+ prototype: "QObject"
13+ exports: ["ScreenGrabber/ScreenGrabber 0.1"]
14+ exportMetaObjectRevisions: [0]
15+ Method { name: "captureAndSave" }
16+ }
17+}
qml/Components/ListItems/VerticalThinDivider.qml → plugins/ScreenGrabber/plugin.cpprenamed+11−9
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2012 Canonical, Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -12,15 +12,17 @@
12 *
12 *
13 * You should have received a copy of the GNU General Public License
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
15 */
17 */
16
18
17−import QtQuick 2.0
19+#include "plugin.h"
20+#include "screengrabber.h"
21+
22+#include <QtQml/qqml.h>
18
23
19−Image {
24+void ScreenGrabberPlugin::registerTypes(const char *uri)
20− anchors {
25+{
21− top: (parent) ? parent.top : null
26+ Q_ASSERT(uri == QLatin1String("ScreenGrabber"));
22− bottom: (parent) ? parent.bottom : null
27+ qmlRegisterType<ScreenGrabber>(uri, 0, 1, "ScreenGrabber");
23− }
24− width: (visible) ? units.dp(2) : 0
25− source: "graphics/ListItemDividerVertical.png"
26}
28}
tests/mocks/Unity/Indicators/qml/fake_menu_page1.qml → plugins/ScreenGrabber/plugin.hrenamed+14−16
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -12,24 +12,22 @@
12 *
12 *
13 * You should have received a copy of the GNU General Public License
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
15 */
17 */
16
18
17−import QtQuick 2.0
19+#ifndef SCREENGRABBER_PLUGIN_H
18−import Unity.Indicators 0.1 as Indicators
20+#define SCREENGRABBER_PLUGIN_H
19
21
20−Indicators.FakeMenuPage {
22+#include <QtQml/QQmlExtensionPlugin>
21− id: menu_plugin1
22
23
23− Rectangle {
24+class ScreenGrabberPlugin : public QQmlExtensionPlugin
24− id: contents
25+{
25− color: "red"
26+ Q_OBJECT
27+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
26
28
27− height: 150
29+public:
28− width: 150
30+ void registerTypes(const char *uri);
31+};
29
32
30− anchors {
33+#endif // SCREENGRABBER_PLUGIN_H
31− horizontalCenter: parent.horizontalCenter
32− verticalCenter: parent.verticalCenter
33− }
34− }
35−}
plugins/ScreenGrabber/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module ScreenGrabber
2+plugin ScreenGrabber-qml
3+typeinfo ScreenGrabber.qmltypes
plugins/ScreenGrabber/screengrabber.cppnew file+94
@@ -0,0 +1,94 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
17+ */
18+
19+#include "screengrabber.h"
20+
21+#include <QDir>
22+#include <QDateTime>
23+#include <QStandardPaths>
24+#include <QtGui/QImage>
25+#include <QtGui/QGuiApplication>
26+#include <QtQuick/QQuickWindow>
27+#include <QtConcurrent/QtConcurrentRun>
28+
29+#include <QDebug>
30+
31+void saveScreenshot(QImage screenshot, QString filename, QString format, int quality)
32+{
33+ if (!screenshot.save(filename, format.toLatin1().data(), quality))
34+ qWarning() << "ScreenShotter: failed to save snapshot!";
35+}
36+
37+ScreenGrabber::ScreenGrabber(QObject *parent)
38+ : QObject(parent),
39+ screenshotQuality(0)
40+{
41+ QDir screenshotsDir(QStandardPaths::displayName(QStandardPaths::PicturesLocation));
42+ screenshotsDir.mkdir("Screenshots");
43+ screenshotsDir.cd("Screenshots");
44+ if (screenshotsDir.exists())
45+ {
46+ fileNamePrefix = screenshotsDir.absolutePath();
47+ fileNamePrefix.append("/screenshot");
48+ }
49+ else
50+ {
51+ qWarning() << "ScreenShotter: failed to create directory at: " << screenshotsDir.absolutePath();
52+ }
53+}
54+
55+void ScreenGrabber::captureAndSave()
56+{
57+ if (fileNamePrefix.isEmpty())
58+ {
59+ qWarning() << "ScreenShotter: no directory to save screenshot";
60+ return;
61+ }
62+
63+ const QWindowList windows = QGuiApplication::topLevelWindows();
64+ if (windows.empty())
65+ {
66+ qWarning() << "ScreenShotter: no top level windows found!";
67+ return;
68+ }
69+
70+ QQuickWindow *main_window = qobject_cast<QQuickWindow *>(windows[0]);
71+ if (!main_window)
72+ {
73+ qWarning() << "ScreenShotter: can only take screenshots of QQuickWindows";
74+ return;
75+ }
76+
77+ QImage screenshot = main_window->grabWindow();
78+ QtConcurrent::run(saveScreenshot, screenshot, makeFileName(), getFormat(), screenshotQuality);
79+}
80+
81+QString ScreenGrabber::makeFileName()
82+{
83+ QString fileName(fileNamePrefix);
84+ fileName.append(QDateTime::currentDateTime().toString("yyyymmdd_hhmmsszzz"));
85+ fileName.append(".");
86+ fileName.append(getFormat());
87+ return fileName;
88+}
89+
90+QString ScreenGrabber::getFormat()
91+{
92+ //TODO: This should be configurable (perhaps through gsettings?)
93+ return "png";
94+}
tests/mocks/Unity/Indicators/qml/fake_menu_page2.qml → plugins/ScreenGrabber/screengrabber.hrenamed+23−16
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -12,24 +12,31 @@
12 *
12 *
13 * You should have received a copy of the GNU General Public License
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
15 */
17 */
16
18
17−import QtQuick 2.0
19+#ifndef SNAPSHOTTER_H
18−import Unity.Indicators 0.1 as Indicators
20+#define SNAPSHOTTER_H
21+
22+#include <QObject>
23+#include <QString>
24+
25+class ScreenGrabber: public QObject
26+{
27+ Q_OBJECT
19
28
20−Indicators.FakeMenuPage {
29+public:
21− id: menu_plugin2
30+ explicit ScreenGrabber(QObject *parent = 0);
22
31
23− Rectangle {
32+public Q_SLOTS:
24− id: contents
33+ void captureAndSave();
25− color: "blue"
26
34
27− height: 150
35+private:
28− width: 150
36+ QString makeFileName();
37+ QString getFormat();
38+ QString fileNamePrefix;
39+ int screenshotQuality;
40+};
29
41
30− anchors {
42+#endif
31− horizontalCenter: parent.horizontalCenter
32− verticalCenter: parent.verticalCenter
33− }
34− }
35−}
plugins/Ubuntu/Gestures/AxisVelocityCalculator.h+2−2
@@ -21,7 +21,7 @@
21#ifndef VELOCITY_CALCULATOR_H
21#ifndef VELOCITY_CALCULATOR_H
22#define VELOCITY_CALCULATOR_H
22#define VELOCITY_CALCULATOR_H
23
23
24−#include "UbuntuGesturesGlobal.h"
24+#include "UbuntuGesturesQmlGlobal.h"
25#include <stdint.h>
25#include <stdint.h>
26#include <QtCore/QObject>
26#include <QtCore/QObject>
27#include "TimeSource.h"
27#include "TimeSource.h"
@@ -49,7 +49,7 @@
49 }
49 }
50 }
50 }
51 */
51 */
52−class UBUNTUGESTURES_EXPORT AxisVelocityCalculator : public QObject
52+class UBUNTUGESTURESQML_EXPORT AxisVelocityCalculator : public QObject
53{
53{
54 Q_OBJECT
54 Q_OBJECT
55
55
plugins/Ubuntu/Gestures/CMakeLists.txt+25−5
@@ -1,19 +1,39 @@
1−set(UbuntuGestureQml_SOURCES
1+# in order to include Qt's private headers
2+remove_definitions(-DQT_NO_KEYWORDS)
3+
4+set(UbuntuGesturesQml_SOURCES
2 plugin.cpp
5 plugin.cpp
3 AxisVelocityCalculator.cpp
6 AxisVelocityCalculator.cpp
4 Direction.cpp
7 Direction.cpp
5 DirectionalDragArea.cpp
8 DirectionalDragArea.cpp
6 PressedOutsideNotifier.cpp
9 PressedOutsideNotifier.cpp
7 TimeSource.cpp
10 TimeSource.cpp
11+ TouchDispatcher.cpp
12+ TouchGate.cpp
8)
13)
9
14
10−add_definitions(-DUBUNTUGESTURES_LIBRARY)
15+add_definitions(-DUBUNTUGESTURESQML_LIBRARY)
11
16
12−add_library(UbuntuGestureQml MODULE ${UbuntuGestureQml_SOURCES})
17+add_library(UbuntuGesturesQml MODULE ${UbuntuGesturesQml_SOURCES})
18+target_link_libraries(UbuntuGesturesQml UbuntuGestures)
13
19
14−qt5_use_modules(UbuntuGestureQml Core Quick)
20+qt5_use_modules(UbuntuGesturesQml Core Quick)
15
21
16# So that Foo.cpp can #include "Foo.moc"
22# So that Foo.cpp can #include "Foo.moc"
17include_directories(${CMAKE_CURRENT_BINARY_DIR})
23include_directories(${CMAKE_CURRENT_BINARY_DIR})
18
24
25+include_directories(${CMAKE_SOURCE_DIR}/libs/UbuntuGestures)
26+
27+# There's no cmake var for v8 include path :-/ so create one
28+LIST(GET Qt5Core_INCLUDE_DIRS 0 QtCoreDir0)
29+SET(Qt5V8_PRIVATE_INCLUDE_DIR ${QtCoreDir0}/QtV8/${Qt5Core_VERSION_STRING}/QtV8)
30+
31+# DANGER! DANGER! Using Qt's private API!
32+include_directories(
33+ ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
34+ ${Qt5Quick_INCLUDE_DIRS}
35+ ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
36+ ${Qt5V8_PRIVATE_INCLUDE_DIR}
37+)
38+
19−add_unity8_plugin(Ubuntu.Gestures 0.1 Ubuntu/Gestures TARGETS UbuntuGestureQml)
39+add_unity8_plugin(Ubuntu.Gestures 0.1 Ubuntu/Gestures TARGETS UbuntuGesturesQml)
plugins/Ubuntu/Gestures/Direction.h+2−2
@@ -17,14 +17,14 @@
17#ifndef DIRECTION_H
17#ifndef DIRECTION_H
18#define DIRECTION_H
18#define DIRECTION_H
19
19
20−#include "UbuntuGesturesGlobal.h"
20+#include "UbuntuGesturesQmlGlobal.h"
21#include <QObject>
21#include <QObject>
22
22
23/*
23/*
24 A Direction enum wrapper so that we can do things like "direction: Direction.Righwards"
24 A Direction enum wrapper so that we can do things like "direction: Direction.Righwards"
25 from QML.
25 from QML.
26 */
26 */
27−class UBUNTUGESTURES_EXPORT Direction : public QObject {
27+class UBUNTUGESTURESQML_EXPORT Direction : public QObject {
28 Q_OBJECT
28 Q_OBJECT
29 Q_ENUMS(Type)
29 Q_ENUMS(Type)
30
30
plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+319−191
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013-2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -14,64 +14,32 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17+#define ACTIVETOUCHESINFO_DEBUG 0
18+#define DIRECTIONALDRAGAREA_DEBUG 0
19+
17#include "DirectionalDragArea.h"
20#include "DirectionalDragArea.h"
18
21
22+#include <QQuickWindow>
19#include <QtCore/qmath.h>
23#include <QtCore/qmath.h>
20−#include <QtCore/QTimer>
21#include <QDebug>
24#include <QDebug>
22
25
23−using namespace UbuntuGestures;
26+#pragma GCC diagnostic push
27+#pragma GCC diagnostic ignored "-pedantic"
28+#include <private/qquickwindow_p.h>
29+#pragma GCC diagnostic pop
24
30
25−#define DIRECTIONALDRAGAREA_DEBUG 0
31+// local
32+#include "TouchOwnershipEvent.h"
33+#include "TouchRegistry.h"
34+#include "UnownedTouchEvent.h"
35+
36+using namespace UbuntuGestures;
26
37
27#if DIRECTIONALDRAGAREA_DEBUG
38#if DIRECTIONALDRAGAREA_DEBUG
28#define DDA_DEBUG(msg) qDebug("[DDA] " msg)
39#define DDA_DEBUG(msg) qDebug("[DDA] " msg)
29−namespace {
40+#include "DebugHelpers.h"
30−QString touchPointStateToString(Qt::TouchPointState state) {
31− switch (state) {
32− case Qt::TouchPointPressed:
33− return QString("pressed");
34− case Qt::TouchPointMoved:
35− return QString("moved");
36− case Qt::TouchPointStationary:
37− return QString("stationary");
38− default: // Qt::TouchPointReleased:
39− return QString("released");
40− }
41−}
42−QString touchEventToString(QTouchEvent *ev)
43−{
44− QString message;
45−
46− switch (ev->type()) {
47− case QEvent::TouchBegin:
48− message.append("TouchBegin ");
49− break;
50− case QEvent::TouchUpdate:
51− message.append("TouchUpdate ");
52− break;
53− case QEvent::TouchEnd:
54− message.append("TouchEnd ");
55− break;
56− default: //QEvent::TouchCancel
57− message.append("TouchCancel ");
58− }
59−
60− for (int i=0; i < ev->touchPoints().size(); ++i) {
61−
62− const QTouchEvent::TouchPoint& touchPoint = ev->touchPoints().at(i);
63− message.append(
64− QString("(id:%1, state:%2, scenePos:(%3,%4)) ")
65− .arg(touchPoint.id())
66− .arg(touchPointStateToString(touchPoint.state()))
67− .arg(touchPoint.scenePos().x())
68− .arg(touchPoint.scenePos().y())
69− );
70− }
71−
72− return message;
73−}
74
41
42+namespace {
75const char *statusToString(DirectionalDragArea::Status status)
43const char *statusToString(DirectionalDragArea::Status status)
76{
44{
77 if (status == DirectionalDragArea::WaitingForTouch) {
45 if (status == DirectionalDragArea::WaitingForTouch) {
@@ -88,23 +56,6 @@ const char *statusToString(DirectionalDragArea::Status status)
88#define DDA_DEBUG(msg) do{}while(0)
56#define DDA_DEBUG(msg) do{}while(0)
89#endif // DIRECTIONALDRAGAREA_DEBUG
57#endif // DIRECTIONALDRAGAREA_DEBUG
90
58
91−// Essentially a QTimer wrapper
92−class RecognitionTimer : public UbuntuGestures::AbstractTimer
93−{
94− Q_OBJECT
95−public:
96− RecognitionTimer(QObject *parent) : UbuntuGestures::AbstractTimer(parent) {
97− m_timer.setSingleShot(false);
98− connect(&m_timer, &QTimer::timeout,
99− this, &UbuntuGestures::AbstractTimer::timeout);
100− }
101− virtual int interval() const { return m_timer.interval(); }
102− virtual void setInterval(int msecs) { m_timer.setInterval(msecs); }
103− virtual void start() { m_timer.start(); UbuntuGestures::AbstractTimer::start(); }
104− virtual void stop() { m_timer.stop(); UbuntuGestures::AbstractTimer::stop(); }
105−private:
106− QTimer m_timer;
107−};
108
59
109DirectionalDragArea::DirectionalDragArea(QQuickItem *parent)
60DirectionalDragArea::DirectionalDragArea(QQuickItem *parent)
110 : QQuickItem(parent)
61 : QQuickItem(parent)
@@ -126,12 +77,14 @@ DirectionalDragArea::DirectionalDragArea(QQuickItem *parent)
126 , m_timeSource(new RealTimeSource)
77 , m_timeSource(new RealTimeSource)
127 , m_activeTouches(m_timeSource)
78 , m_activeTouches(m_timeSource)
128{
79{
129− setRecognitionTimer(new RecognitionTimer(this));
80+ setRecognitionTimer(new Timer(this));
130 m_recognitionTimer->setInterval(60);
81 m_recognitionTimer->setInterval(60);
82+ m_recognitionTimer->setSingleShot(false);
131
83
132 m_velocityCalculator = new AxisVelocityCalculator(this);
84 m_velocityCalculator = new AxisVelocityCalculator(this);
133
85
134− connect(this, &QQuickItem::enabledChanged, this, &DirectionalDragArea::onEnabledChanged);
86+ connect(this, &QQuickItem::enabledChanged, this, &DirectionalDragArea::giveUpIfDisabledOrInvisible);
87+ connect(this, &QQuickItem::visibleChanged, this, &DirectionalDragArea::giveUpIfDisabledOrInvisible);
135}
88}
136
89
137Direction::Type DirectionalDragArea::direction() const
90Direction::Type DirectionalDragArea::direction() const
@@ -214,6 +167,7 @@ void DirectionalDragArea::setRecognitionTimer(UbuntuGestures::AbstractTimer *tim
214{
167{
215 int interval = 0;
168 int interval = 0;
216 bool timerWasRunning = false;
169 bool timerWasRunning = false;
170+ bool wasSingleShot = false;
217
171
218 // can be null when called from the constructor
172 // can be null when called from the constructor
219 if (m_recognitionTimer) {
173 if (m_recognitionTimer) {
@@ -226,6 +180,7 @@ void DirectionalDragArea::setRecognitionTimer(UbuntuGestures::AbstractTimer *tim
226
180
227 m_recognitionTimer = timer;
181 m_recognitionTimer = timer;
228 timer->setInterval(interval);
182 timer->setInterval(interval);
183+ timer->setSingleShot(wasSingleShot);
229 connect(timer, &UbuntuGestures::AbstractTimer::timeout,
184 connect(timer, &UbuntuGestures::AbstractTimer::timeout,
230 this, &DirectionalDragArea::checkSpeed);
185 this, &DirectionalDragArea::checkSpeed);
231 if (timerWasRunning) {
186 if (timerWasRunning) {
@@ -280,8 +235,146 @@ qreal DirectionalDragArea::touchSceneY() const
280 return m_previousScenePos.y();
235 return m_previousScenePos.y();
281}
236}
282
237
238+bool DirectionalDragArea::event(QEvent *event)
239+{
240+ if (event->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
241+ touchOwnershipEvent(static_cast<TouchOwnershipEvent *>(event));
242+ return true;
243+ } else if (event->type() == UnownedTouchEvent::unownedTouchEventType()) {
244+ unownedTouchEvent(static_cast<UnownedTouchEvent *>(event));
245+ return true;
246+ } else {
247+ return QQuickItem::event(event);
248+ }
249+}
250+
251+void DirectionalDragArea::touchOwnershipEvent(TouchOwnershipEvent *event)
252+{
253+ if (event->gained()) {
254+ QVector<int> ids;
255+ ids.append(event->touchId());
256+ DDA_DEBUG("grabbing touch");
257+ grabTouchPoints(ids);
258+
259+ // Work around for Qt bug. If we grab a touch that is being used for mouse pointer
260+ // emulation it will cause the emulation logic to go nuts.
261+ // Thus we have to also grab the mouse in this case.
262+ //
263+ // The fix for this bug has landed in Qt 5.4 (https://codereview.qt-project.org/96887)
264+ // TODO: Remove this workaround once we start using Qt 5.4
265+ if (window()) {
266+ QQuickWindowPrivate *windowPrivate = QQuickWindowPrivate::get(window());
267+ if (windowPrivate->touchMouseId == event->touchId() && window()->mouseGrabberItem()) {
268+ DDA_DEBUG("removing mouse grabber");
269+ window()->mouseGrabberItem()->ungrabMouse();
270+ }
271+ }
272+ } else {
273+ // We still wanna know when it ends for keeping the composition time window up-to-date
274+ TouchRegistry::instance()->addTouchWatcher(m_touchId, this);
275+
276+ setStatus(WaitingForTouch);
277+ }
278+}
279+
280+void DirectionalDragArea::unownedTouchEvent(UnownedTouchEvent *unownedTouchEvent)
281+{
282+ QTouchEvent *event = unownedTouchEvent->touchEvent();
283+
284+ Q_ASSERT(!event->touchPointStates().testFlag(Qt::TouchPointPressed));
285+
286+ #if DIRECTIONALDRAGAREA_DEBUG
287+ // TODO Consider using qCDebug() when available (Qt 5.2)
288+ qDebug() << "[DDA] Unowned" << m_timeSource->msecsSinceReference()
289+ << qPrintable(touchEventToString(event));
290+ #endif
291+
292+ switch (m_status) {
293+ case WaitingForTouch:
294+ // do nothing
295+ break;
296+ case Undecided:
297+ Q_ASSERT(isEnabled() && isVisible());
298+ unownedTouchEvent_undecided(unownedTouchEvent);
299+ break;
300+ default: // Recognized:
301+ // do nothing
302+ break;
303+ }
304+
305+ m_activeTouches.update(event);
306+}
307+
308+void DirectionalDragArea::unownedTouchEvent_undecided(UnownedTouchEvent *unownedTouchEvent)
309+{
310+ const QTouchEvent::TouchPoint *touchPoint = fetchTargetTouchPoint(unownedTouchEvent->touchEvent());
311+ if (!touchPoint) {
312+ qCritical() << "DirectionalDragArea[status=Undecided]: touch " << m_touchId
313+ << "missing from UnownedTouchEvent without first reaching state Qt::TouchPointReleased. "
314+ "Considering it as released.";
315+
316+ TouchRegistry::instance()->removeCandidateOwnerForTouch(m_touchId, this);
317+ setStatus(WaitingForTouch);
318+ return;
319+ }
320+
321+ const QPointF &touchScenePos = touchPoint->scenePos();
322+
323+ if (touchPoint->state() == Qt::TouchPointReleased) {
324+ // touch has ended before recognition concluded
325+ DDA_DEBUG("Touch has ended before recognition concluded");
326+ TouchRegistry::instance()->removeCandidateOwnerForTouch(m_touchId, this);
327+ emitSignalIfTapped();
328+ setStatus(WaitingForTouch);
329+ return;
330+ }
331+
332+ m_previousDampedScenePos.setX(m_dampedScenePos.x());
333+ m_previousDampedScenePos.setY(m_dampedScenePos.y());
334+ m_dampedScenePos.update(touchScenePos);
335+ updateVelocityCalculator(touchScenePos);
336+
337+ if (!pointInsideAllowedArea()) {
338+ DDA_DEBUG("Rejecting gesture because touch point is outside allowed area.");
339+ TouchRegistry::instance()->removeCandidateOwnerForTouch(m_touchId, this);
340+ // We still wanna know when it ends for keeping the composition time window up-to-date
341+ TouchRegistry::instance()->addTouchWatcher(m_touchId, this);
342+ setStatus(WaitingForTouch);
343+ return;
344+ }
345+
346+ if (!movingInRightDirection()) {
347+ DDA_DEBUG("Rejecting gesture because touch point is moving in the wrong direction.");
348+ TouchRegistry::instance()->removeCandidateOwnerForTouch(m_touchId, this);
349+ // We still wanna know when it ends for keeping the composition time window up-to-date
350+ TouchRegistry::instance()->addTouchWatcher(m_touchId, this);
351+ setStatus(WaitingForTouch);
352+ return;
353+ }
354+
355+ setPreviousPos(touchPoint->pos());
356+ setPreviousScenePos(touchScenePos);
357+
358+ if (isWithinTouchCompositionWindow()) {
359+ // There's still time for some new touch to appear and ruin our party as it would be combined
360+ // with our m_touchId one and therefore deny the possibility of a single-finger gesture.
361+ DDA_DEBUG("Sill within composition window. Let's wait more.");
362+ return;
363+ }
364+
365+ if (movedFarEnough(touchScenePos)) {
366+ TouchRegistry::instance()->requestTouchOwnership(m_touchId, this);
367+ setStatus(Recognized);
368+ } else {
369+ DDA_DEBUG("Didn't move far enough yet. Let's wait more.");
370+ }
371+}
372+
283void DirectionalDragArea::touchEvent(QTouchEvent *event)
373void DirectionalDragArea::touchEvent(QTouchEvent *event)
284{
374{
375+ // TODO: Consider when more than one touch starts in the same event (although it's not possible
376+ // with Mir's android-input). Have to track them all. Consider it a plus/bonus.
377+
285 #if DIRECTIONALDRAGAREA_DEBUG
378 #if DIRECTIONALDRAGAREA_DEBUG
286 // TODO Consider using qCDebug() when available (Qt 5.2)
379 // TODO Consider using qCDebug() when available (Qt 5.2)
287 qDebug() << "[DDA]" << m_timeSource->msecsSinceReference()
380 qDebug() << "[DDA]" << m_timeSource->msecsSinceReference()
@@ -310,29 +403,34 @@ void DirectionalDragArea::touchEvent(QTouchEvent *event)
310
403
311void DirectionalDragArea::touchEvent_absent(QTouchEvent *event)
404void DirectionalDragArea::touchEvent_absent(QTouchEvent *event)
312{
405{
406+ // TODO: accept/reject is for the whole event, not per touch id. See how that affects us.
407+
313 if (!event->touchPointStates().testFlag(Qt::TouchPointPressed)) {
408 if (!event->touchPointStates().testFlag(Qt::TouchPointPressed)) {
314 // Nothing to see here. No touch starting in this event.
409 // Nothing to see here. No touch starting in this event.
315 return;
410 return;
316 }
411 }
317
412
413+ // to be proven wrong, if that's the case
414+ bool allGood = true;
415+
318 if (isWithinTouchCompositionWindow()) {
416 if (isWithinTouchCompositionWindow()) {
319 // too close to the last touch start. So we consider them as starting roughly at the same time.
417 // too close to the last touch start. So we consider them as starting roughly at the same time.
320 // Can't be a single-touch gesture.
418 // Can't be a single-touch gesture.
321 #if DIRECTIONALDRAGAREA_DEBUG
419 #if DIRECTIONALDRAGAREA_DEBUG
322 qDebug("[DDA] A new touch point came in but we're still within time composition window. Ignoring it.");
420 qDebug("[DDA] A new touch point came in but we're still within time composition window. Ignoring it.");
323 #endif
421 #endif
324− return;
422+ allGood = false;
325 }
423 }
326
424
327 const QList<QTouchEvent::TouchPoint> &touchPoints = event->touchPoints();
425 const QList<QTouchEvent::TouchPoint> &touchPoints = event->touchPoints();
328
426
329 const QTouchEvent::TouchPoint *newTouchPoint = nullptr;
427 const QTouchEvent::TouchPoint *newTouchPoint = nullptr;
330− for (int i = 0; i < touchPoints.count(); ++i) {
428+ for (int i = 0; i < touchPoints.count() && allGood; ++i) {
331 const QTouchEvent::TouchPoint &touchPoint = touchPoints.at(i);
429 const QTouchEvent::TouchPoint &touchPoint = touchPoints.at(i);
332 if (touchPoint.state() == Qt::TouchPointPressed) {
430 if (touchPoint.state() == Qt::TouchPointPressed) {
333 if (newTouchPoint) {
431 if (newTouchPoint) {
334 // more than one touch starting in this QTouchEvent. Can't be a single-touch gesture
432 // more than one touch starting in this QTouchEvent. Can't be a single-touch gesture
335− return;
433+ allGood = false;
336 } else {
434 } else {
337 // that's our candidate
435 // that's our candidate
338 m_touchId = touchPoint.id();
436 m_touchId = touchPoint.id();
@@ -341,85 +439,61 @@ void DirectionalDragArea::touchEvent_absent(QTouchEvent *event)
341 }
439 }
342 }
440 }
343
441
442+ if (allGood) {
344− Q_ASSERT(newTouchPoint);
443+ Q_ASSERT(newTouchPoint);
345
444
346− // If we have made this far, we are good to go to the next status.
347−
348− m_startPos = newTouchPoint->pos();
445+ m_startPos = newTouchPoint->pos();
349− m_startScenePos = newTouchPoint->scenePos();
446+ m_startScenePos = newTouchPoint->scenePos();
350− m_touchId = newTouchPoint->id();
447+ m_touchId = newTouchPoint->id();
351− m_dampedScenePos.reset(m_startScenePos);
448+ m_dampedScenePos.reset(m_startScenePos);
352− m_velocityCalculator->setTrackedPosition(0.);
449+ m_velocityCalculator->setTrackedPosition(0.);
353− m_velocityCalculator->reset();
450+ m_velocityCalculator->reset();
354− m_numSamplesOnLastSpeedCheck = 0;
451+ m_numSamplesOnLastSpeedCheck = 0;
355− m_silenceTime = 0;
452+ m_silenceTime = 0;
356− setPreviousPos(m_startPos);
453+ setPreviousPos(m_startPos);
357− setPreviousScenePos(m_startScenePos);
454+ setPreviousScenePos(m_startScenePos);
358− updateSceneDirectionVector();
455+ updateSceneDirectionVector();
359−
456+
457+ if (recognitionIsDisabled()) {
458+ // Behave like a dumb TouchArea
459+ TouchRegistry::instance()->requestTouchOwnership(m_touchId, this);
460+ setStatus(Recognized);
461+ event->accept();
462+ } else {
463+ // just monitor the touch points for now.
464+ TouchRegistry::instance()->addCandidateOwnerForTouch(m_touchId, this);
465+
360− setStatus(Undecided);
466+ setStatus(Undecided);
467+ // Let the item below have it. We will monitor it and grab it later if a gesture
468+ // gets recognized.
469+ event->ignore();
470+ }
471+ } else {
472+ watchPressedTouchPoints(touchPoints);
473+ event->ignore();
474+ }
361}
475}
362
476
363void DirectionalDragArea::touchEvent_undecided(QTouchEvent *event)
477void DirectionalDragArea::touchEvent_undecided(QTouchEvent *event)
364{
478{
479+ Q_ASSERT(event->type() == QEvent::TouchBegin);
365− const QTouchEvent::TouchPoint *touchPoint = fetchTargetTouchPoint(event);
480+ Q_ASSERT(fetchTargetTouchPoint(event) == nullptr);
366
481
367− if (!touchPoint) {
482+ // We're not interested in new touch points. We already have our candidate (m_touchId).
368− qCritical() << "DirectionalDragArea[status=Undecided]: touch " << m_touchId
483+ // But we do want to know when those new touches end for keeping the composition time
369− << "missing from QTouchEvent without first reaching state Qt::TouchPointReleased. "
484+ // window up-to-date
370− "Considering it as released.";
485+ event->ignore();
371− setStatus(WaitingForTouch);
486+ watchPressedTouchPoints(event->touchPoints());
372− return;
373− }
374−
375− const QPointF &touchScenePos = touchPoint->scenePos();
376−
377− if (touchPoint->state() == Qt::TouchPointReleased) {
378− // touch has ended before recognition concluded
379− DDA_DEBUG("Touch has ended before recognition concluded");
380− setStatus(WaitingForTouch);
381− Q_EMIT tapped();
382− return;
383− }
384
487
385 if (event->touchPointStates().testFlag(Qt::TouchPointPressed) && isWithinTouchCompositionWindow()) {
488 if (event->touchPointStates().testFlag(Qt::TouchPointPressed) && isWithinTouchCompositionWindow()) {
386 // multi-finger drags are not accepted
489 // multi-finger drags are not accepted
387 DDA_DEBUG("Multi-finger drags are not accepted");
490 DDA_DEBUG("Multi-finger drags are not accepted");
388− setStatus(WaitingForTouch);
389− return;
390− }
391
491
392− m_previousDampedScenePos.setX(m_dampedScenePos.x());
492+ TouchRegistry::instance()->removeCandidateOwnerForTouch(m_touchId, this);
393− m_previousDampedScenePos.setY(m_dampedScenePos.y());
493+ // We still wanna know when it ends for keeping the composition time window up-to-date
394− m_dampedScenePos.update(touchScenePos);
494+ TouchRegistry::instance()->addTouchWatcher(m_touchId, this);
395− updateVelocityCalculator(touchScenePos);
396−
397− if (!pointInsideAllowedArea()) {
398− DDA_DEBUG("Rejecting gesture because touch point is outside allowed area.");
399− setStatus(WaitingForTouch);
400− return;
401− }
402
495
403− if (!movingInRightDirection()) {
404− DDA_DEBUG("Rejecting gesture becauuse touch point is moving in the wrong direction.");
405 setStatus(WaitingForTouch);
496 setStatus(WaitingForTouch);
406− return;
407− }
408−
409− setPreviousPos(touchPoint->pos());
410− setPreviousScenePos(touchScenePos);
411−
412− if (isWithinTouchCompositionWindow()) {
413− // There's still time for some new touch to appear and ruin our party as it would be combined
414− // with our m_touchId one and therefore deny the possibility of a single-finger gesture.
415− DDA_DEBUG("Sill within composition window. Let's wait more.");
416− return;
417− }
418−
419− if (movedFarEnough(touchScenePos)) {
420− setStatus(Recognized);
421− } else {
422− DDA_DEBUG("Didn't move far enough yet. Let's wait more.");
423 }
497 }
424}
498}
425
499
@@ -437,11 +511,35 @@ void DirectionalDragArea::touchEvent_recognized(QTouchEvent *event)
437 setPreviousScenePos(touchPoint->scenePos());
511 setPreviousScenePos(touchPoint->scenePos());
438
512
439 if (touchPoint->state() == Qt::TouchPointReleased) {
513 if (touchPoint->state() == Qt::TouchPointReleased) {
514+ emitSignalIfTapped();
440 setStatus(WaitingForTouch);
515 setStatus(WaitingForTouch);
441 }
516 }
442 }
517 }
443}
518}
444
519
520+void DirectionalDragArea::watchPressedTouchPoints(const QList<QTouchEvent::TouchPoint> &touchPoints)
521+{
522+ for (int i = 0; i < touchPoints.count(); ++i) {
523+ const QTouchEvent::TouchPoint &touchPoint = touchPoints.at(i);
524+ if (touchPoint.state() == Qt::TouchPointPressed) {
525+ TouchRegistry::instance()->addTouchWatcher(touchPoint.id(), this);
526+ }
527+ }
528+}
529+
530+bool DirectionalDragArea::recognitionIsDisabled() const
531+{
532+ return distanceThreshold() <= 0 && compositionTime() <= 0;
533+}
534+
535+void DirectionalDragArea::emitSignalIfTapped()
536+{
537+ qint64 touchDuration = m_timeSource->msecsSinceReference() - m_activeTouches.touchStartTime(m_touchId);
538+ if (touchDuration <= maxTapDuration()) {
539+ Q_EMIT tapped();
540+ }
541+}
542+
445const QTouchEvent::TouchPoint *DirectionalDragArea::fetchTargetTouchPoint(QTouchEvent *event)
543const QTouchEvent::TouchPoint *DirectionalDragArea::fetchTargetTouchPoint(QTouchEvent *event)
446{
544{
447 const QList<QTouchEvent::TouchPoint> &touchPoints = event->touchPoints();
545 const QList<QTouchEvent::TouchPoint> &touchPoints = event->touchPoints();
@@ -509,12 +607,16 @@ bool DirectionalDragArea::movedFarEnough(const QPointF &point) const
509
607
510void DirectionalDragArea::checkSpeed()
608void DirectionalDragArea::checkSpeed()
511{
609{
610+ Q_ASSERT(m_status == Undecided);
611+
512 if (m_velocityCalculator->numSamples() >= AxisVelocityCalculator::MIN_SAMPLES_NEEDED) {
612 if (m_velocityCalculator->numSamples() >= AxisVelocityCalculator::MIN_SAMPLES_NEEDED) {
513 qreal speed = qFabs(m_velocityCalculator->calculate());
613 qreal speed = qFabs(m_velocityCalculator->calculate());
514 qreal minSpeedMsecs = m_minSpeed / 1000.0;
614 qreal minSpeedMsecs = m_minSpeed / 1000.0;
515
615
516 if (speed < minSpeedMsecs) {
616 if (speed < minSpeedMsecs) {
517 DDA_DEBUG("Rejecting gesture because it's below minimum speed.");
617 DDA_DEBUG("Rejecting gesture because it's below minimum speed.");
618+ TouchRegistry::instance()->removeCandidateOwnerForTouch(m_touchId, this);
619+ TouchRegistry::instance()->addTouchWatcher(m_touchId, this);
518 setStatus(WaitingForTouch);
620 setStatus(WaitingForTouch);
519 }
621 }
520 }
622 }
@@ -523,7 +625,9 @@ void DirectionalDragArea::checkSpeed()
523 m_silenceTime += m_recognitionTimer->interval();
625 m_silenceTime += m_recognitionTimer->interval();
524
626
525 if (m_silenceTime > m_maxSilenceTime) {
627 if (m_silenceTime > m_maxSilenceTime) {
526− DDA_DEBUG("Rejecting gesture because it's silence time has been exceeded.");
628+ DDA_DEBUG("Rejecting gesture because its silence time has been exceeded.");
629+ TouchRegistry::instance()->removeCandidateOwnerForTouch(m_touchId, this);
630+ TouchRegistry::instance()->addTouchWatcher(m_touchId, this);
527 setStatus(WaitingForTouch);
631 setStatus(WaitingForTouch);
528 }
632 }
529 } else {
633 } else {
@@ -532,10 +636,19 @@ void DirectionalDragArea::checkSpeed()
532 m_numSamplesOnLastSpeedCheck = m_velocityCalculator->numSamples();
636 m_numSamplesOnLastSpeedCheck = m_velocityCalculator->numSamples();
533}
637}
534
638
535−void DirectionalDragArea::onEnabledChanged()
639+void DirectionalDragArea::giveUpIfDisabledOrInvisible()
536{
640{
641+ if (!isEnabled() || !isVisible()) {
642+ if (m_status == Undecided) {
643+ TouchRegistry::instance()->removeCandidateOwnerForTouch(m_touchId, this);
644+ // We still wanna know when it ends for keeping the composition time window up-to-date
645+ TouchRegistry::instance()->addTouchWatcher(m_touchId, this);
646+ }
647+
537− if (!isEnabled() && m_status != WaitingForTouch) {
648+ if (m_status != WaitingForTouch) {
649+ DDA_DEBUG("Resetting status because got disabled or made invisible");
538− setStatus(WaitingForTouch);
650+ setStatus(WaitingForTouch);
651+ }
539 }
652 }
540}
653}
541
654
@@ -631,7 +744,9 @@ void DirectionalDragArea::updateVelocityCalculator(const QPointF &scenePos)
631
744
632bool DirectionalDragArea::isWithinTouchCompositionWindow()
745bool DirectionalDragArea::isWithinTouchCompositionWindow()
633{
746{
747+ return
748+ compositionTime() > 0 &&
634− return !m_activeTouches.isEmpty() &&
749+ !m_activeTouches.isEmpty() &&
635 m_timeSource->msecsSinceReference() <=
750 m_timeSource->msecsSinceReference() <=
636 m_activeTouches.mostRecentStartTime() + (qint64)compositionTime();
751 m_activeTouches.mostRecentStartTime() + (qint64)compositionTime();
637}
752}
@@ -639,18 +754,17 @@ bool DirectionalDragArea::isWithinTouchCompositionWindow()
639//************************** ActiveTouchesInfo **************************
754//************************** ActiveTouchesInfo **************************
640
755
641DirectionalDragArea::ActiveTouchesInfo::ActiveTouchesInfo(const SharedTimeSource &timeSource)
756DirectionalDragArea::ActiveTouchesInfo::ActiveTouchesInfo(const SharedTimeSource &timeSource)
642− : m_timeSource(timeSource), m_lastUsedIndex(-1)
757+ : m_timeSource(timeSource)
643{
758{
644− // Estimate of the maximum number of active touches we might reach.
645− // Not a problem if it ends up being an underestimate as this is just
646− // an optimization.
647− m_vector.resize(3);
648}
759}
649
760
650void DirectionalDragArea::ActiveTouchesInfo::update(QTouchEvent *event)
761void DirectionalDragArea::ActiveTouchesInfo::update(QTouchEvent *event)
651{
762{
652 if (!(event->touchPointStates() & (Qt::TouchPointPressed | Qt::TouchPointReleased))) {
763 if (!(event->touchPointStates() & (Qt::TouchPointPressed | Qt::TouchPointReleased))) {
653 // nothing to update
764 // nothing to update
765+ #if ACTIVETOUCHESINFO_DEBUG
766+ qDebug("[DDA::ActiveTouchesInfo] Nothing to Update");
767+ #endif
654 return;
768 return;
655 }
769 }
656
770
@@ -658,74 +772,88 @@ void DirectionalDragArea::ActiveTouchesInfo::update(QTouchEvent *event)
658 for (int i = 0; i < touchPoints.count(); ++i) {
772 for (int i = 0; i < touchPoints.count(); ++i) {
659 const QTouchEvent::TouchPoint &touchPoint = touchPoints.at(i);
773 const QTouchEvent::TouchPoint &touchPoint = touchPoints.at(i);
660 if (touchPoint.state() == Qt::TouchPointPressed) {
774 if (touchPoint.state() == Qt::TouchPointPressed) {
661− addTouchPoint(touchPoint);
775+ addTouchPoint(touchPoint.id());
662 } else if (touchPoint.state() == Qt::TouchPointReleased) {
776 } else if (touchPoint.state() == Qt::TouchPointReleased) {
663− removeTouchPoint(touchPoint);
777+ removeTouchPoint(touchPoint.id());
664 }
778 }
665 }
779 }
666}
780}
667
781
782+#if ACTIVETOUCHESINFO_DEBUG
668−void DirectionalDragArea::ActiveTouchesInfo::addTouchPoint(const QTouchEvent::TouchPoint &touchPoint)
783+QString DirectionalDragArea::ActiveTouchesInfo::toString()
669{
784{
670− ActiveTouchInfo &activeTouchInfo = getEmptySlot();
785+ QString string = "(";
671− activeTouchInfo.id = touchPoint.id();
786+
672− activeTouchInfo.startTime = m_timeSource->msecsSinceReference();
787+ {
788+ QTextStream stream(&string);
789+ m_touchInfoPool.forEach([&](Pool<ActiveTouchInfo>::Iterator &touchInfo) {
790+ stream << "(id=" << touchInfo->id << ",startTime=" << touchInfo->startTime << ")";
791+ return true;
792+ });
793+ }
794+
795+ string.append(")");
796+
797+ return string;
673}
798}
799+#endif // ACTIVETOUCHESINFO_DEBUG
674
800
675−void DirectionalDragArea::ActiveTouchesInfo::removeTouchPoint(const QTouchEvent::TouchPoint &touchPoint)
801+void DirectionalDragArea::ActiveTouchesInfo::addTouchPoint(int touchId)
676{
802{
677− for (int i = 0; i <= m_lastUsedIndex; ++i) {
803+ ActiveTouchInfo &activeTouchInfo = m_touchInfoPool.getEmptySlot();
678− if (touchPoint.id() == m_vector.at(i).id) {
804+ activeTouchInfo.id = touchId;
679− freeSlot(i);
805+ activeTouchInfo.startTime = m_timeSource->msecsSinceReference();
680− return;
806+
681− }
807+ #if ACTIVETOUCHESINFO_DEBUG
682− }
808+ qDebug() << "[DDA::ActiveTouchesInfo]" << qPrintable(toString());
683− Q_ASSERT(false); // shouldn't reach this point
809+ #endif
684}
810}
685
811
686−DirectionalDragArea::ActiveTouchInfo &DirectionalDragArea::ActiveTouchesInfo::getEmptySlot()
812+qint64 DirectionalDragArea::ActiveTouchesInfo::touchStartTime(int touchId)
687{
813{
688− Q_ASSERT(m_lastUsedIndex < m_vector.size());
814+ qint64 result = -1;
689
815
690− // Look for an in-between vacancy first
816+ m_touchInfoPool.forEach([&](Pool<ActiveTouchInfo>::Iterator &touchInfo) {
691− for (int i = 0; i < m_lastUsedIndex; ++i) {
817+ if (touchId == touchInfo->id) {
692− ActiveTouchInfo &activeTouchInfo = m_vector[i];
818+ result = touchInfo->startTime;
693− if (!activeTouchInfo.isValid()) {
819+ return false;
694− return activeTouchInfo;
820+ } else {
821+ return true;
695 }
822 }
696− }
823+ });
697−
698− ++m_lastUsedIndex;
699− if (m_lastUsedIndex >= m_vector.size()) {
700− m_vector.resize(m_lastUsedIndex + 1);
701− }
702
824
703− return m_vector[m_lastUsedIndex];
825+ Q_ASSERT(result != -1);
826+ return result;
704}
827}
705
828
706−void DirectionalDragArea::ActiveTouchesInfo::freeSlot(int index)
829+void DirectionalDragArea::ActiveTouchesInfo::removeTouchPoint(int touchId)
707{
830{
708− m_vector[index].reset();
831+ m_touchInfoPool.forEach([&](Pool<ActiveTouchInfo>::Iterator &touchInfo) {
709− if (index == m_lastUsedIndex) {
832+ if (touchId == touchInfo->id) {
710− do {
833+ m_touchInfoPool.freeSlot(touchInfo);
711− --m_lastUsedIndex;
834+ return false;
712− } while (m_lastUsedIndex >= 0 && !m_vector.at(m_lastUsedIndex).isValid());
835+ } else {
713− }
836+ return true;
837+ }
838+ });
839+
840+ #if ACTIVETOUCHESINFO_DEBUG
841+ qDebug() << "[DDA::ActiveTouchesInfo]" << qPrintable(toString());
842+ #endif
714}
843}
715
844
716qint64 DirectionalDragArea::ActiveTouchesInfo::mostRecentStartTime()
845qint64 DirectionalDragArea::ActiveTouchesInfo::mostRecentStartTime()
717{
846{
718− Q_ASSERT(m_lastUsedIndex >= 0);
847+ Q_ASSERT(!m_touchInfoPool.isEmpty());
848+
849+ qint64 highestStartTime = -1;
719
850
720− qint64 highestStartTime = m_vector.at(0).startTime;
721− int i = 1;
722− do {
723− const ActiveTouchInfo &activeTouchInfo = m_vector.at(i);
851+ m_touchInfoPool.forEach([&](Pool<ActiveTouchInfo>::Iterator &activeTouchInfo) {
724− if (activeTouchInfo.isValid() && activeTouchInfo.startTime > highestStartTime) {
852+ if (activeTouchInfo->startTime > highestStartTime) {
725− highestStartTime = activeTouchInfo.startTime;
853+ highestStartTime = activeTouchInfo->startTime;
726 }
854 }
727− ++i;
855+ return true;
728− } while (i < m_lastUsedIndex);
856+ });
729
857
730 return highestStartTime;
858 return highestStartTime;
731}
859}
plugins/Ubuntu/Gestures/DirectionalDragArea.h+37−29
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2013,2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
5 * it under the terms of the GNU General Public License as published by
@@ -19,27 +19,16 @@
19
19
20#include <QtQuick/QQuickItem>
20#include <QtQuick/QQuickItem>
21#include "AxisVelocityCalculator.h"
21#include "AxisVelocityCalculator.h"
22−#include "UbuntuGesturesGlobal.h"
22+#include "UbuntuGesturesQmlGlobal.h"
23#include "Damper.h"
23#include "Damper.h"
24#include "Direction.h"
24#include "Direction.h"
25
25
26−namespace UbuntuGestures {
26+// lib UbuntuGestures
27−/* Defines an interface for a Timer. */
27+#include <Pool.h>
28−class UBUNTUGESTURES_EXPORT AbstractTimer : public QObject {
28+#include <Timer.h>
29− Q_OBJECT
29+
30−public:
30+class TouchOwnershipEvent;
31− AbstractTimer(QObject *parent) : QObject(parent), m_isRunning(false) {}
31+class UnownedTouchEvent;
32− virtual int interval() const = 0;
33− virtual void setInterval(int msecs) = 0;
34− virtual void start() { m_isRunning = true; };
35− virtual void stop() { m_isRunning = false; }
36− bool isRunning() const { return m_isRunning; }
37−Q_SIGNALS:
38− void timeout();
39−private:
40− bool m_isRunning;
41−};
42−}
43
32
44/*
33/*
45 An area that detects axis-aligned single-finger drag gestures
34 An area that detects axis-aligned single-finger drag gestures
@@ -50,7 +39,7 @@ private:
50
39
51 See doc/DirectionalDragArea.svg
40 See doc/DirectionalDragArea.svg
52 */
41 */
53−class UBUNTUGESTURES_EXPORT DirectionalDragArea : public QQuickItem {
42+class UBUNTUGESTURESQML_EXPORT DirectionalDragArea : public QQuickItem {
54 Q_OBJECT
43 Q_OBJECT
55
44
56 // The direction in which the gesture should move in order to be recognized.
45 // The direction in which the gesture should move in order to be recognized.
@@ -196,6 +185,12 @@ public:
196 // Useful for testing, where a fake time source can be supplied
185 // Useful for testing, where a fake time source can be supplied
197 void setTimeSource(const UbuntuGestures::SharedTimeSource &timeSource);
186 void setTimeSource(const UbuntuGestures::SharedTimeSource &timeSource);
198
187
188+ bool event(QEvent *e) override;
189+
190+ // Maximum time, in milliseconds, between a press and a release, for a touch
191+ // sequence to be considered a tap.
192+ int maxTapDuration() const { return 300; }
193+
199Q_SIGNALS:
194Q_SIGNALS:
200 void directionChanged(Direction::Type direction);
195 void directionChanged(Direction::Type direction);
201 void statusChanged(Status value);
196 void statusChanged(Status value);
@@ -212,6 +207,10 @@ Q_SIGNALS:
212 void touchYChanged(qreal value);
207 void touchYChanged(qreal value);
213 void touchSceneXChanged(qreal value);
208 void touchSceneXChanged(qreal value);
214 void touchSceneYChanged(qreal value);
209 void touchSceneYChanged(qreal value);
210+
211+ // TODO: I would rather not have such signal as it has nothing to do with drag gestures.
212+ // Remove when no longer used or move its implementation to the QML code that uses it
213+ // See maxTapDuration()
215 void tapped();
214 void tapped();
216
215
217protected:
216protected:
@@ -219,7 +218,7 @@ protected:
219
218
220private Q_SLOTS:
219private Q_SLOTS:
221 void checkSpeed();
220 void checkSpeed();
222− void onEnabledChanged();
221+ void giveUpIfDisabledOrInvisible();
223
222
224private:
223private:
225 void touchEvent_absent(QTouchEvent *event);
224 void touchEvent_absent(QTouchEvent *event);
@@ -238,6 +237,12 @@ private:
238 // returns the scalar projection between the given vector (in scene coordinates)
237 // returns the scalar projection between the given vector (in scene coordinates)
239 // and m_sceneDirectionVector
238 // and m_sceneDirectionVector
240 qreal projectOntoDirectionVector(const QPointF &sceneVector) const;
239 qreal projectOntoDirectionVector(const QPointF &sceneVector) const;
240+ void touchOwnershipEvent(TouchOwnershipEvent *event);
241+ void unownedTouchEvent(UnownedTouchEvent *event);
242+ void unownedTouchEvent_undecided(UnownedTouchEvent *unownedTouchEvent);
243+ void watchPressedTouchPoints(const QList<QTouchEvent::TouchPoint> &touchPoints);
244+ bool recognitionIsDisabled() const;
245+ void emitSignalIfTapped();
241
246
242 Status m_status;
247 Status m_status;
243
248
@@ -283,18 +288,21 @@ private:
283 public:
288 public:
284 ActiveTouchesInfo(const UbuntuGestures::SharedTimeSource &timeSource);
289 ActiveTouchesInfo(const UbuntuGestures::SharedTimeSource &timeSource);
285 void update(QTouchEvent *event);
290 void update(QTouchEvent *event);
286− ActiveTouchInfo &touchInfo(int id);
291+ qint64 touchStartTime(int id);
292+ bool isEmpty() const { return m_touchInfoPool.isEmpty(); }
287 qint64 mostRecentStartTime();
293 qint64 mostRecentStartTime();
288 UbuntuGestures::SharedTimeSource m_timeSource;
294 UbuntuGestures::SharedTimeSource m_timeSource;
289− bool isEmpty() const { return m_lastUsedIndex == -1; }
290 private:
295 private:
291− void addTouchPoint(const QTouchEvent::TouchPoint &touchPoint);
296+ void addTouchPoint(int touchId);
292− ActiveTouchInfo &getEmptySlot();
293− void freeSlot(int index);
294− void removeTouchPoint(const QTouchEvent::TouchPoint &touchPoint);
297+ void removeTouchPoint(int touchId);
298+ #if ACTIVETOUCHESINFO_DEBUG
299+ QString toString();
300+ #endif
301+
295− QVector<struct ActiveTouchInfo> m_vector;
302+ Pool<ActiveTouchInfo> m_touchInfoPool;
296− int m_lastUsedIndex;
297 } m_activeTouches;
303 } m_activeTouches;
304+
305+ friend class tst_DirectionalDragArea;
298};
306};
299
307
300#endif // DIRECTIONAL_DRAG_AREA_H
308#endif // DIRECTIONAL_DRAG_AREA_H
plugins/Ubuntu/Gestures/TimeSource.h+2−2
@@ -21,14 +21,14 @@
21#ifndef UBUNTUGESTURES_TIMESOURCE_H
21#ifndef UBUNTUGESTURES_TIMESOURCE_H
22#define UBUNTUGESTURES_TIMESOURCE_H
22#define UBUNTUGESTURES_TIMESOURCE_H
23
23
24−#include "UbuntuGesturesGlobal.h"
24+#include "UbuntuGesturesQmlGlobal.h"
25#include <QSharedPointer>
25#include <QSharedPointer>
26
26
27namespace UbuntuGestures {
27namespace UbuntuGestures {
28/*
28/*
29 Interface for a time source.
29 Interface for a time source.
30 */
30 */
31−class UBUNTUGESTURES_EXPORT TimeSource {
31+class UBUNTUGESTURESQML_EXPORT TimeSource {
32public:
32public:
33 virtual ~TimeSource() {}
33 virtual ~TimeSource() {}
34 /* Returns the current time in milliseconds since some reference time in the past. */
34 /* Returns the current time in milliseconds since some reference time in the past. */
plugins/Ubuntu/Gestures/TouchDispatcher.cppnew file+367
@@ -0,0 +1,367 @@
1+/*
2+ * Copyright (C) 2014 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 "TouchDispatcher.h"
18+
19+#include <QGuiApplication>
20+#include <QScopedPointer>
21+#include <QStyleHints>
22+
23+#pragma GCC diagnostic push
24+#pragma GCC diagnostic ignored "-pedantic"
25+#include <private/qquickitem_p.h>
26+#pragma GCC diagnostic pop
27+
28+#define TOUCHDISPATCHER_DEBUG 0
29+
30+#if TOUCHDISPATCHER_DEBUG
31+#include <DebugHelpers.h>
32+#endif
33+
34+TouchDispatcher::TouchDispatcher()
35+ : m_status(NoActiveTouch)
36+ , m_touchMouseId(-1)
37+ , m_touchMousePressTimestamp(0)
38+{
39+}
40+
41+void TouchDispatcher::setTargetItem(QQuickItem *target)
42+{
43+ if (target != m_targetItem) {
44+ m_targetItem = target;
45+ if (m_status != NoActiveTouch) {
46+ qWarning("[TouchDispatcher] Changing target item in the middle of a touch stream");
47+ m_status = TargetRejectedTouches;
48+ }
49+ }
50+}
51+
52+void TouchDispatcher::dispatch(QEvent::Type eventType,
53+ QTouchDevice *device,
54+ Qt::KeyboardModifiers modifiers,
55+ const QList<QTouchEvent::TouchPoint> &touchPoints,
56+ QWindow *window,
57+ ulong timestamp)
58+{
59+ if (m_targetItem.isNull()) {
60+ qWarning("[TouchDispatcher] Cannot dispatch touch event because target item is null");
61+ return;
62+ }
63+
64+ if (eventType == QEvent::TouchBegin) {
65+ dispatchTouchBegin(device, modifiers, touchPoints, window, timestamp);
66+
67+ } else if (eventType == QEvent::TouchUpdate || eventType == QEvent::TouchEnd) {
68+
69+ if (m_status == DeliveringTouchEvents) {
70+ dispatchAsTouch(eventType, device, modifiers, touchPoints, window, timestamp);
71+ } else if (m_status == DeliveringMouseEvents) {
72+ dispatchAsMouse(device, modifiers, touchPoints, timestamp);
73+ } else {
74+ Q_ASSERT(m_status == TargetRejectedTouches);
75+ #if TOUCHDISPATCHER_DEBUG
76+ qDebug() << "[TouchDispatcher] Not dispatching touch event to" << m_targetItem.data()
77+ << "because it already rejected the touch stream.";
78+ #endif
79+ // Do nothing
80+ }
81+
82+ if (eventType == QEvent::TouchEnd) {
83+ m_status = NoActiveTouch;
84+ m_touchMouseId = -1;
85+ }
86+
87+ } else {
88+ // Should never happen
89+ qCritical() << "[TouchDispatcher] Unexpected event type" << eventType;
90+ Q_ASSERT(false);
91+ return;
92+ }
93+}
94+
95+void TouchDispatcher::dispatchTouchBegin(
96+ QTouchDevice *device,
97+ Qt::KeyboardModifiers modifiers,
98+ const QList<QTouchEvent::TouchPoint> &touchPoints,
99+ QWindow *window,
100+ ulong timestamp)
101+{
102+ Q_ASSERT(m_status == NoActiveTouch);
103+ QQuickItem *targetItem = m_targetItem.data();
104+
105+ if (!targetItem->isEnabled() || !targetItem->isVisible()) {
106+ #if TOUCHDISPATCHER_DEBUG
107+ qDebug() << "[TouchDispatcher] Cannot dispatch touch event to" << targetItem
108+ << "because it's disabled or invisible.";
109+ #endif
110+ return;
111+ }
112+
113+ // Map touch points to targetItem coordinates
114+ QList<QTouchEvent::TouchPoint> targetTouchPoints = touchPoints;
115+ transformTouchPoints(targetTouchPoints, QQuickItemPrivate::get(targetItem)->windowToItemTransform());
116+
117+ QScopedPointer<QTouchEvent> touchEvent(
118+ createQTouchEvent(QEvent::TouchBegin, device, modifiers, targetTouchPoints, window, timestamp));
119+
120+
121+ #if TOUCHDISPATCHER_DEBUG
122+ qDebug() << "[TouchDispatcher] dispatching" << qPrintable(touchEventToString(touchEvent.data()))
123+ << "to" << targetItem;
124+ #endif
125+ QCoreApplication::sendEvent(targetItem, touchEvent.data());
126+
127+
128+ if (touchEvent->isAccepted()) {
129+ #if TOUCHDISPATCHER_DEBUG
130+ qDebug() << "[TouchDispatcher] Item accepted the touch event.";
131+ #endif
132+ m_status = DeliveringTouchEvents;
133+ } else if (targetItem->acceptedMouseButtons() & Qt::LeftButton) {
134+ #if TOUCHDISPATCHER_DEBUG
135+ qDebug() << "[TouchDispatcher] Item rejected the touch event. Trying a QMouseEvent";
136+ #endif
137+ // NB: Arbitrarily chose the first touch point to emulate the mouse pointer
138+ QScopedPointer<QMouseEvent> mouseEvent(
139+ touchToMouseEvent(QEvent::MouseButtonPress, targetTouchPoints.at(0), timestamp,
140+ modifiers, false /* transformNeeded */));
141+ Q_ASSERT(targetTouchPoints.at(0).state() == Qt::TouchPointPressed);
142+
143+ #if TOUCHDISPATCHER_DEBUG
144+ qDebug() << "[TouchDispatcher] dispatching" << qPrintable(mouseEventToString(mouseEvent.data()))
145+ << "to" << m_targetItem.data();
146+ #endif
147+ QCoreApplication::sendEvent(targetItem, mouseEvent.data());
148+ if (mouseEvent->isAccepted()) {
149+ #if TOUCHDISPATCHER_DEBUG
150+ qDebug() << "[TouchDispatcher] Item accepted the QMouseEvent.";
151+ #endif
152+ m_status = DeliveringMouseEvents;
153+ m_touchMouseId = targetTouchPoints.at(0).id();
154+
155+ if (checkIfDoubleClicked(timestamp)) {
156+ QScopedPointer<QMouseEvent> doubleClickEvent(
157+ touchToMouseEvent(QEvent::MouseButtonDblClick, targetTouchPoints.at(0), timestamp,
158+ modifiers, false /* transformNeeded */));
159+ #if TOUCHDISPATCHER_DEBUG
160+ qDebug() << "[TouchDispatcher] dispatching" << qPrintable(mouseEventToString(doubleClickEvent.data()))
161+ << "to" << m_targetItem.data();
162+ #endif
163+ QCoreApplication::sendEvent(targetItem, doubleClickEvent.data());
164+ }
165+
166+ } else {
167+ #if TOUCHDISPATCHER_DEBUG
168+ qDebug() << "[TouchDispatcher] Item rejected the QMouseEvent.";
169+ #endif
170+ m_status = TargetRejectedTouches;
171+ }
172+ } else {
173+ #if TOUCHDISPATCHER_DEBUG
174+ qDebug() << "[TouchDispatcher] Item rejected the touch event and does not accept mouse buttons.";
175+ #endif
176+ m_status = TargetRejectedTouches;
177+ }
178+}
179+
180+void TouchDispatcher::dispatchAsTouch(QEvent::Type eventType,
181+ QTouchDevice *device,
182+ Qt::KeyboardModifiers modifiers,
183+ const QList<QTouchEvent::TouchPoint> &touchPoints,
184+ QWindow *window,
185+ ulong timestamp)
186+{
187+ QQuickItem *targetItem = m_targetItem.data();
188+
189+ // Map touch points to targetItem coordinates
190+ QList<QTouchEvent::TouchPoint> targetTouchPoints = touchPoints;
191+ transformTouchPoints(targetTouchPoints, QQuickItemPrivate::get(targetItem)->windowToItemTransform());
192+
193+ QScopedPointer<QTouchEvent> eventForTargetItem(
194+ createQTouchEvent(eventType, device, modifiers, targetTouchPoints, window, timestamp));
195+
196+
197+ #if TOUCHDISPATCHER_DEBUG
198+ qDebug() << "[TouchDispatcher] dispatching" << qPrintable(touchEventToString(eventForTargetItem.data()))
199+ << "to" << targetItem;
200+ #endif
201+ QCoreApplication::sendEvent(targetItem, eventForTargetItem.data());
202+}
203+
204+void TouchDispatcher::dispatchAsMouse(
205+ QTouchDevice * /*device*/,
206+ Qt::KeyboardModifiers modifiers,
207+ const QList<QTouchEvent::TouchPoint> &touchPoints,
208+ ulong timestamp)
209+{
210+ // TODO: Detect double clicks in order to synthesize QEvent::MouseButtonDblClick events accordingly
211+
212+ Q_ASSERT(!touchPoints.isEmpty());
213+
214+ const QTouchEvent::TouchPoint *touchMouse = nullptr;
215+
216+ if (m_touchMouseId != -1) {
217+ for (int i = 0; i < touchPoints.count() && !touchMouse; ++i) {
218+ const auto &touchPoint = touchPoints.at(i);
219+ if (touchPoint.id() == m_touchMouseId) {
220+ touchMouse = &touchPoint;
221+ }
222+ }
223+
224+ Q_ASSERT(touchMouse);
225+ if (!touchMouse) {
226+ // should not happen, but deal with it just in case.
227+ qWarning("[TouchDispatcher] Didn't find touch with id %d, used for mouse pointer emulation.",
228+ m_touchMouseId);
229+ m_touchMouseId = touchPoints.at(0).id();
230+ touchMouse = &touchPoints.at(0);
231+ }
232+ } else {
233+ // Try to find a new touch for mouse emulation
234+ for (int i = 0; i < touchPoints.count() && !touchMouse; ++i) {
235+ const auto &touchPoint = touchPoints.at(i);
236+ if (touchPoint.state() == Qt::TouchPointPressed) {
237+ touchMouse = &touchPoint;
238+ m_touchMouseId = touchMouse->id();
239+ }
240+ }
241+ }
242+
243+ if (touchMouse) {
244+ QEvent::Type eventType;
245+ if (touchMouse->state() == Qt::TouchPointPressed) {
246+ eventType = QEvent::MouseButtonPress;
247+ } if (touchMouse->state() == Qt::TouchPointReleased) {
248+ eventType = QEvent::MouseButtonRelease;
249+ m_touchMouseId = -1;
250+ } else {
251+ eventType = QEvent::MouseMove;
252+ }
253+
254+ QScopedPointer<QMouseEvent> mouseEvent(touchToMouseEvent(eventType, *touchMouse, timestamp, modifiers,
255+ true /* transformNeeded */));
256+
257+ #if TOUCHDISPATCHER_DEBUG
258+ qDebug() << "[TouchDispatcher] dispatching" << qPrintable(mouseEventToString(mouseEvent.data()))
259+ << "to" << m_targetItem.data();
260+ #endif
261+ QCoreApplication::sendEvent(m_targetItem.data(), mouseEvent.data());
262+ }
263+}
264+
265+QTouchEvent *TouchDispatcher::createQTouchEvent(QEvent::Type eventType,
266+ QTouchDevice *device,
267+ Qt::KeyboardModifiers modifiers,
268+ const QList<QTouchEvent::TouchPoint> &touchPoints,
269+ QWindow *window,
270+ ulong timestamp)
271+{
272+ Qt::TouchPointStates eventStates = 0;
273+ for (int i = 0; i < touchPoints.count(); i++)
274+ eventStates |= touchPoints[i].state();
275+ // if all points have the same state, set the event type accordingly
276+ switch (eventStates) {
277+ case Qt::TouchPointPressed:
278+ eventType = QEvent::TouchBegin;
279+ break;
280+ case Qt::TouchPointReleased:
281+ eventType = QEvent::TouchEnd;
282+ break;
283+ default:
284+ eventType = QEvent::TouchUpdate;
285+ break;
286+ }
287+
288+ QTouchEvent *touchEvent = new QTouchEvent(eventType);
289+ touchEvent->setWindow(window);
290+ touchEvent->setTarget(m_targetItem.data());
291+ touchEvent->setDevice(device);
292+ touchEvent->setModifiers(modifiers);
293+ touchEvent->setTouchPoints(touchPoints);
294+ touchEvent->setTouchPointStates(eventStates);
295+ touchEvent->setTimestamp(timestamp);
296+ touchEvent->accept();
297+ return touchEvent;
298+}
299+
300+// NB: From QQuickWindow
301+void TouchDispatcher::transformTouchPoints(QList<QTouchEvent::TouchPoint> &touchPoints, const QTransform &transform)
302+{
303+ QMatrix4x4 transformMatrix(transform);
304+ for (int i=0; i<touchPoints.count(); i++) {
305+ QTouchEvent::TouchPoint &touchPoint = touchPoints[i];
306+ touchPoint.setRect(transform.mapRect(touchPoint.sceneRect()));
307+ touchPoint.setStartPos(transform.map(touchPoint.startScenePos()));
308+ touchPoint.setLastPos(transform.map(touchPoint.lastScenePos()));
309+ touchPoint.setVelocity(transformMatrix.mapVector(touchPoint.velocity()).toVector2D());
310+ }
311+}
312+
313+// Copied with minor modifications from qtdeclarative/src/quick/items/qquickwindow.cpp
314+QMouseEvent *TouchDispatcher::touchToMouseEvent(
315+ QEvent::Type type, const QTouchEvent::TouchPoint &p,
316+ ulong timestamp, Qt::KeyboardModifiers modifiers,
317+ bool transformNeeded)
318+{
319+ QQuickItem *item = m_targetItem.data();
320+
321+ // The touch point local position and velocity are not yet transformed.
322+ QMouseEvent *me = new QMouseEvent(type, transformNeeded ? item->mapFromScene(p.scenePos()) : p.pos(),
323+ p.scenePos(), p.screenPos(), Qt::LeftButton,
324+ (type == QEvent::MouseButtonRelease ? Qt::NoButton : Qt::LeftButton),
325+ modifiers);
326+ me->setAccepted(true);
327+ me->setTimestamp(timestamp);
328+ QVector2D transformedVelocity = p.velocity();
329+ if (transformNeeded) {
330+ QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
331+ QMatrix4x4 transformMatrix(itemPrivate->windowToItemTransform());
332+ transformedVelocity = transformMatrix.mapVector(p.velocity()).toVector2D();
333+ }
334+
335+ // Add these later if needed:
336+ //QGuiApplicationPrivate::setMouseEventCapsAndVelocity(me, event->device()->capabilities(), transformedVelocity);
337+ //QGuiApplicationPrivate::setMouseEventSource(me, Qt::MouseEventSynthesizedByQt);
338+ return me;
339+}
340+
341+/*
342+ Copied from qquickwindow.cpp which has:
343+ Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies)
344+ Under GPL 3.0 license.
345+*/
346+bool TouchDispatcher::checkIfDoubleClicked(ulong newPressEventTimestamp)
347+{
348+ bool doubleClicked;
349+
350+ if (m_touchMousePressTimestamp == 0) {
351+ // just initialize the variable
352+ m_touchMousePressTimestamp = newPressEventTimestamp;
353+ doubleClicked = false;
354+ } else {
355+ ulong timeBetweenPresses = newPressEventTimestamp - m_touchMousePressTimestamp;
356+ ulong doubleClickInterval = static_cast<ulong>(qApp->styleHints()->
357+ mouseDoubleClickInterval());
358+ doubleClicked = timeBetweenPresses < doubleClickInterval;
359+ if (doubleClicked) {
360+ m_touchMousePressTimestamp = 0;
361+ } else {
362+ m_touchMousePressTimestamp = newPressEventTimestamp;
363+ }
364+ }
365+
366+ return doubleClicked;
367+}
plugins/Ubuntu/Gestures/TouchDispatcher.hnew file+89
@@ -0,0 +1,89 @@
1+/*
2+ * Copyright (C) 2014 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 UBUNTU_TOUCH_DISPATCHER_H
18+#define UBUNTU_TOUCH_DISPATCHER_H
19+
20+#include "UbuntuGesturesQmlGlobal.h"
21+
22+#include <QPointer>
23+#include <QQuickItem>
24+
25+/*
26+ Dispatches touches to the given target, converting the touch point
27+ coordinates accordingly.
28+
29+ Also takes care of synthesizing mouse events in case the target
30+ doesn't work with touch events.
31+ */
32+class UBUNTUGESTURESQML_EXPORT TouchDispatcher {
33+public:
34+ TouchDispatcher();
35+
36+ void setTargetItem(QQuickItem *target);
37+ QQuickItem *targetItem() { return m_targetItem; }
38+
39+ void dispatch(QEvent::Type eventType,
40+ QTouchDevice *device,
41+ Qt::KeyboardModifiers modifiers,
42+ const QList<QTouchEvent::TouchPoint> &touchPoints,
43+ QWindow *window,
44+ ulong timestamp);
45+private:
46+ void dispatchTouchBegin(
47+ QTouchDevice *device,
48+ Qt::KeyboardModifiers modifiers,
49+ const QList<QTouchEvent::TouchPoint> &touchPoints,
50+ QWindow *window,
51+ ulong timestamp);
52+ void dispatchAsTouch(QEvent::Type eventType,
53+ QTouchDevice *device,
54+ Qt::KeyboardModifiers modifiers,
55+ const QList<QTouchEvent::TouchPoint> &touchPoints,
56+ QWindow *window,
57+ ulong timestamp);
58+ void dispatchAsMouse(
59+ QTouchDevice *device,
60+ Qt::KeyboardModifiers modifiers,
61+ const QList<QTouchEvent::TouchPoint> &touchPoints,
62+ ulong timestamp);
63+
64+ static void transformTouchPoints(QList<QTouchEvent::TouchPoint> &touchPoints, const QTransform &transform);
65+ QTouchEvent *createQTouchEvent(QEvent::Type eventType,
66+ QTouchDevice *device,
67+ Qt::KeyboardModifiers modifiers,
68+ const QList<QTouchEvent::TouchPoint> &touchPoints,
69+ QWindow *window,
70+ ulong timestamp);
71+ QMouseEvent *touchToMouseEvent(QEvent::Type type, const QTouchEvent::TouchPoint &p,
72+ ulong timestamp, Qt::KeyboardModifiers modifiers, bool transformNeeded = true);
73+
74+ bool checkIfDoubleClicked(ulong newPressEventTimestamp);
75+
76+ QPointer<QQuickItem> m_targetItem;
77+
78+ enum {
79+ NoActiveTouch,
80+ DeliveringTouchEvents,
81+ DeliveringMouseEvents,
82+ TargetRejectedTouches
83+ } m_status;
84+
85+ int m_touchMouseId;
86+ ulong m_touchMousePressTimestamp;
87+};
88+
89+#endif // UBUNTU_TOUCH_DISPATCHER_H
plugins/Ubuntu/Gestures/TouchGate.cppnew file+251
@@ -0,0 +1,251 @@
1+/*
2+ * Copyright (C) 2014 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 "TouchGate.h"
18+
19+#include <QCoreApplication>
20+#include <QDebug>
21+
22+#include <TouchOwnershipEvent.h>
23+#include <TouchRegistry.h>
24+
25+#if TOUCHGATE_DEBUG
26+#include <DebugHelpers.h>
27+#endif
28+
29+bool TouchGate::event(QEvent *e)
30+{
31+ if (e->type() == TouchOwnershipEvent::touchOwnershipEventType()) {
32+ touchOwnershipEvent(static_cast<TouchOwnershipEvent *>(e));
33+ return true;
34+ } else {
35+ return QQuickItem::event(e);
36+ }
37+}
38+
39+void TouchGate::touchEvent(QTouchEvent *event)
40+{
41+ #if TOUCHGATE_DEBUG
42+ qDebug() << "[TouchGate] got touch event" << qPrintable(touchEventToString(event));
43+ #endif
44+ event->accept();
45+
46+ const QList<QTouchEvent::TouchPoint> &touchPoints = event->touchPoints();
47+ bool goodToGo = true;
48+ for (int i = 0; i < touchPoints.count(); ++i) {
49+ const QTouchEvent::TouchPoint &touchPoint = touchPoints[i];
50+
51+ if (touchPoint.state() == Qt::TouchPointPressed) {
52+ Q_ASSERT(!m_touchInfoMap.contains(touchPoint.id()));
53+ m_touchInfoMap[touchPoint.id()].ownership = OwnershipRequested;
54+ m_touchInfoMap[touchPoint.id()].ended = false;
55+ TouchRegistry::instance()->requestTouchOwnership(touchPoint.id(), this);
56+ }
57+
58+ goodToGo &= m_touchInfoMap.contains(touchPoint.id())
59+ && m_touchInfoMap[touchPoint.id()].ownership == OwnershipGranted;
60+
61+ if (touchPoint.state() == Qt::TouchPointReleased && m_touchInfoMap.contains(touchPoint.id())) {
62+ m_touchInfoMap[touchPoint.id()].ended = true;
63+ }
64+
65+ }
66+
67+ if (goodToGo) {
68+ if (m_storedEvents.isEmpty()) {
69+ // let it pass through
70+ dispatchTouchEventToTarget(event);
71+ } else {
72+ // Retain the event to ensure TouchGate dispatches them in order.
73+ // Otherwise the current event would come before the stored ones, which are older.
74+ #if TOUCHGATE_DEBUG
75+ qDebug("[TouchGate] Storing event because thouches %s are still pending ownership.",
76+ qPrintable(oldestPendingTouchIdsString()));
77+ #endif
78+ storeTouchEvent(event);
79+ }
80+ } else {
81+ // Retain events that have unowned touches
82+ storeTouchEvent(event);
83+ }
84+}
85+
86+void TouchGate::touchOwnershipEvent(TouchOwnershipEvent *event)
87+{
88+ // TODO: Optimization: batch those actions as TouchOwnershipEvents
89+ // might come one right after the other.
90+
91+ Q_ASSERT(m_touchInfoMap.contains(event->touchId()));
92+
93+ TouchInfo &touchInfo = m_touchInfoMap[event->touchId()];
94+
95+ if (event->gained()) {
96+ #if TOUCHGATE_DEBUG
97+ qDebug() << "[TouchGate] Got ownership of touch " << event->touchId();
98+ #endif
99+ touchInfo.ownership = OwnershipGranted;
100+ } else {
101+ #if TOUCHGATE_DEBUG
102+ qDebug() << "[TouchGate] Lost ownership of touch " << event->touchId();
103+ #endif
104+ m_touchInfoMap.remove(event->touchId());
105+ removeTouchFromStoredEvents(event->touchId());
106+ }
107+
108+ dispatchFullyOwnedEvents();
109+}
110+
111+bool TouchGate::isTouchPointOwned(int touchId) const
112+{
113+ return m_touchInfoMap[touchId].ownership == OwnershipGranted;
114+}
115+
116+void TouchGate::storeTouchEvent(const QTouchEvent *event)
117+{
118+ #if TOUCHGATE_DEBUG
119+ qDebug() << "[TouchGate] Storing" << qPrintable(touchEventToString(event));
120+ #endif
121+
122+ TouchEvent clonedEvent(event);
123+ m_storedEvents.append(std::move(clonedEvent));
124+}
125+
126+void TouchGate::removeTouchFromStoredEvents(int touchId)
127+{
128+ int i = 0;
129+ while (i < m_storedEvents.count()) {
130+ TouchEvent &event = m_storedEvents[i];
131+ bool removed = event.removeTouch(touchId);
132+
133+ if (removed && event.touchPoints.isEmpty()) {
134+ m_storedEvents.removeAt(i);
135+ } else {
136+ ++i;
137+ }
138+ }
139+}
140+
141+void TouchGate::dispatchFullyOwnedEvents()
142+{
143+ while (!m_storedEvents.isEmpty() && eventIsFullyOwned(m_storedEvents.first())) {
144+ TouchEvent event = m_storedEvents.takeFirst();
145+ dispatchTouchEventToTarget(event);
146+ }
147+}
148+
149+#if TOUCHGATE_DEBUG
150+QString TouchGate::oldestPendingTouchIdsString()
151+{
152+ Q_ASSERT(!m_storedEvents.isEmpty());
153+
154+ QString str;
155+
156+ const auto &touchPoints = m_storedEvents.first().touchPoints;
157+ for (int i = 0; i < touchPoints.count(); ++i) {
158+ if (!isTouchPointOwned(touchPoints[i].id())) {
159+ if (!str.isEmpty()) {
160+ str.append(", ");
161+ }
162+ str.append(QString::number(touchPoints[i].id()));
163+ }
164+ }
165+
166+ return str;
167+}
168+#endif
169+
170+bool TouchGate::eventIsFullyOwned(const TouchGate::TouchEvent &event) const
171+{
172+ for (int i = 0; i < event.touchPoints.count(); ++i) {
173+ if (!isTouchPointOwned(event.touchPoints[i].id())) {
174+ return false;
175+ }
176+ }
177+
178+ return true;
179+}
180+
181+void TouchGate::setTargetItem(QQuickItem *item)
182+{
183+ // TODO: changing the target item while dispatch of touch events is taking place will
184+ // create a mess
185+
186+ if (item == m_dispatcher.targetItem())
187+ return;
188+
189+ m_dispatcher.setTargetItem(item);
190+ Q_EMIT targetItemChanged(item);
191+}
192+
193+void TouchGate::dispatchTouchEventToTarget(const TouchEvent &event)
194+{
195+ removeTouchInfoForEndedTouches(event.touchPoints);
196+ m_dispatcher.dispatch(event.eventType,
197+ event.device,
198+ event.modifiers,
199+ event.touchPoints,
200+ event.window,
201+ event.timestamp);
202+}
203+
204+void TouchGate::dispatchTouchEventToTarget(QTouchEvent* event)
205+{
206+ removeTouchInfoForEndedTouches(event->touchPoints());
207+ m_dispatcher.dispatch(event->type(),
208+ event->device(),
209+ event->modifiers(),
210+ event->touchPoints(),
211+ event->window(),
212+ event->timestamp());
213+}
214+
215+void TouchGate::removeTouchInfoForEndedTouches(const QList<QTouchEvent::TouchPoint> &touchPoints)
216+{
217+ for (int i = 0; i < touchPoints.size(); ++i) {\
218+ const QTouchEvent::TouchPoint &touchPoint = touchPoints.at(i);
219+
220+ if (touchPoint.state() == Qt::TouchPointReleased) {
221+ Q_ASSERT(m_touchInfoMap.contains(touchPoint.id()));
222+ Q_ASSERT(m_touchInfoMap[touchPoint.id()].ended);
223+ Q_ASSERT(m_touchInfoMap[touchPoint.id()].ownership == OwnershipGranted);
224+ m_touchInfoMap.remove(touchPoint.id());
225+ }
226+ }
227+}
228+
229+TouchGate::TouchEvent::TouchEvent(const QTouchEvent *event)
230+ : eventType(event->type())
231+ , device(event->device())
232+ , modifiers(event->modifiers())
233+ , touchPoints(event->touchPoints())
234+ , target(qobject_cast<QQuickItem*>(event->target()))
235+ , window(event->window())
236+ , timestamp(event->timestamp())
237+{
238+}
239+
240+bool TouchGate::TouchEvent::removeTouch(int touchId)
241+{
242+ bool removed = false;
243+ for (int i = 0; i < touchPoints.count() && !removed; ++i) {
244+ if (touchPoints[i].id() == touchId) {
245+ touchPoints.removeAt(i);
246+ removed = true;
247+ }
248+ }
249+
250+ return removed;
251+}
plugins/Ubuntu/Gestures/TouchGate.hnew file+110
@@ -0,0 +1,110 @@
1+/*
2+ * Copyright (C) 2014 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 UBUNTU_TOUCH_GATE_H
18+#define UBUNTU_TOUCH_GATE_H
19+
20+#include "UbuntuGesturesQmlGlobal.h"
21+#include "TouchDispatcher.h"
22+
23+#include <QQuickItem>
24+#include <QList>
25+#include <QMap>
26+
27+#define TOUCHGATE_DEBUG 0
28+
29+class TouchOwnershipEvent;
30+
31+/*
32+ Blocks the passage of events until ownership over the related touch points is granted.
33+
34+ Blocked touch events won't be discarded. Instead they will be buffered until ownership
35+ is granted. If ownership is given to another item, the event buffer is cleared.
36+
37+ A TouchGate is useful as a mediator for items that do not understand, or gracefully handle,
38+ touch canceling. By having a TouchGate in front of them you guarantee that only owned touches (i.e.,
39+ touches that won't be canceled later) reaches them.
40+ */
41+class UBUNTUGESTURESQML_EXPORT TouchGate : public QQuickItem {
42+ Q_OBJECT
43+
44+ // Item that's going to receive the touch events that make it through the gate.
45+ Q_PROPERTY(QQuickItem* targetItem READ targetItem WRITE setTargetItem NOTIFY targetItemChanged)
46+
47+public:
48+ bool event(QEvent *e) override;
49+
50+ QQuickItem *targetItem() { return m_dispatcher.targetItem(); }
51+ void setTargetItem(QQuickItem *item);
52+
53+Q_SIGNALS:
54+ void targetItemChanged(QQuickItem *item);
55+
56+protected:
57+ void touchEvent(QTouchEvent *event) override;
58+private:
59+ class TouchEvent {
60+ public:
61+ TouchEvent(const QTouchEvent *event);
62+
63+ bool removeTouch(int touchId);
64+
65+ QEvent::Type eventType;
66+ QTouchDevice *device;
67+ Qt::KeyboardModifiers modifiers;
68+ QList<QTouchEvent::TouchPoint> touchPoints;
69+ QQuickItem *target;
70+ QWindow *window;
71+ ulong timestamp;
72+ };
73+
74+ void touchOwnershipEvent(TouchOwnershipEvent *event);
75+ bool isTouchPointOwned(int touchId) const;
76+ void storeTouchEvent(const QTouchEvent *event);
77+ void removeTouchFromStoredEvents(int touchId);
78+ void dispatchFullyOwnedEvents();
79+ bool eventIsFullyOwned(const TouchEvent &event) const;
80+
81+ void dispatchTouchEventToTarget(const TouchEvent &event);
82+ void dispatchTouchEventToTarget(QTouchEvent* event);
83+
84+ void removeTouchInfoForEndedTouches(const QList<QTouchEvent::TouchPoint> &touchPoints);
85+
86+ #if TOUCHGATE_DEBUG
87+ QString oldestPendingTouchIdsString();
88+ #endif
89+
90+ QList<TouchEvent> m_storedEvents;
91+
92+ enum {
93+ OwnershipUndefined,
94+ OwnershipRequested,
95+ OwnershipGranted,
96+ };
97+ class TouchInfo {
98+ public:
99+ TouchInfo() {ownership = OwnershipUndefined; ended = false;}
100+ int ownership;
101+ bool ended;
102+ };
103+ QMap<int, TouchInfo> m_touchInfoMap;
104+
105+ TouchDispatcher m_dispatcher;
106+
107+ friend class tst_TouchGate;
108+};
109+
110+#endif // UBUNTU_TOUCH_GATE_H
tests/mocks/Unity/Notifications/notification.js → plugins/Ubuntu/Gestures/UbuntuGesturesQmlGlobal.hrenamed+6−6
@@ -14,10 +14,10 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−.pragma library
17+#include <QtCore/QtGlobal>
18
18
19−var Confirmation = 0;
19+#if defined(UBUNTUGESTURESQML_LIBRARY)
20−var Ephemeral = 1;
20+# define UBUNTUGESTURESQML_EXPORT Q_DECL_EXPORT
21−var Interactive = 2;
21+#else
22−var SnapDecision = 3;
22+# define UBUNTUGESTURESQML_EXPORT Q_DECL_IMPORT
23−var PlaceHolder = 4;
23+#endif
plugins/Ubuntu/Gestures/plugin.cpp+3−1
@@ -19,6 +19,7 @@
19#include "Direction.h"
19#include "Direction.h"
20#include "DirectionalDragArea.h"
20#include "DirectionalDragArea.h"
21#include "PressedOutsideNotifier.h"
21#include "PressedOutsideNotifier.h"
22+#include "TouchGate.h"
22
23
23#include <qqml.h>
24#include <qqml.h>
24
25
@@ -28,10 +29,11 @@ static QObject* directionSingleton(QQmlEngine* engine, QJSEngine* scriptEngine)
28 return new Direction;
29 return new Direction;
29}
30}
30
31
31−void UbuntuGestureQmlPlugin::registerTypes(const char *uri)
32+void UbuntuGesturesQmlPlugin::registerTypes(const char *uri)
32{
33{
33 qmlRegisterSingletonType<Direction>(uri, 0, 1, "Direction", directionSingleton);
34 qmlRegisterSingletonType<Direction>(uri, 0, 1, "Direction", directionSingleton);
34 qmlRegisterType<DirectionalDragArea>(uri, 0, 1, "DirectionalDragArea");
35 qmlRegisterType<DirectionalDragArea>(uri, 0, 1, "DirectionalDragArea");
35 qmlRegisterType<AxisVelocityCalculator>(uri, 0, 1, "AxisVelocityCalculator");
36 qmlRegisterType<AxisVelocityCalculator>(uri, 0, 1, "AxisVelocityCalculator");
36 qmlRegisterType<PressedOutsideNotifier>(uri, 0, 1, "PressedOutsideNotifier");
37 qmlRegisterType<PressedOutsideNotifier>(uri, 0, 1, "PressedOutsideNotifier");
38+ qmlRegisterType<TouchGate>(uri, 0, 1, "TouchGate");
37}
39}
plugins/Ubuntu/Gestures/plugin.h+1−1
@@ -19,7 +19,7 @@
19
19
20#include <QtQml/QQmlExtensionPlugin>
20#include <QtQml/QQmlExtensionPlugin>
21
21
22−class UbuntuGestureQmlPlugin : public QQmlExtensionPlugin
22+class UbuntuGesturesQmlPlugin : public QQmlExtensionPlugin
23{
23{
24 Q_OBJECT
24 Q_OBJECT
25 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
25 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
plugins/Ubuntu/Gestures/qmldir+1−1
@@ -1,3 +1,3 @@
1module Ubuntu.Gestures
1module Ubuntu.Gestures
2−plugin UbuntuGestureQml
2+plugin UbuntuGesturesQml
3typeinfo Gestures.qmltypes
3typeinfo Gestures.qmltypes
plugins/Ubuntu/Payments/Payments.qmltypes+1
@@ -37,6 +37,7 @@ Module {
37 Parameter { name: "error"; type: "string" }
37 Parameter { name: "error"; type: "string" }
38 }
38 }
39 Signal { name: "purchaseCompleted" }
39 Signal { name: "purchaseCompleted" }
40+ Signal { name: "purchaseCancelled" }
40 Method { name: "start" }
41 Method { name: "start" }
41 }
42 }
42}
43}
plugins/Unity/DashCommunicator/CMakeLists.txt+8−2
@@ -1,5 +1,6 @@
1include_directories(
1include_directories(
2 ${CMAKE_CURRENT_SOURCE_DIR}
2 ${CMAKE_CURRENT_SOURCE_DIR}
3+ ${libunity8-private_SOURCE_DIR}
3)
4)
4
5
5set(QMLDASHCOMMUNICATORPLUGIN_SRC
6set(QMLDASHCOMMUNICATORPLUGIN_SRC
@@ -7,13 +8,18 @@ set(QMLDASHCOMMUNICATORPLUGIN_SRC
7 dbusdashcommunicatorservice.cpp
8 dbusdashcommunicatorservice.cpp
8 dashcommunicatorservice.cpp
9 dashcommunicatorservice.cpp
9 dashcommunicator.cpp
10 dashcommunicator.cpp
11+ dashconnection.cpp
10− )
12+)
11
13
12add_library(DashCommunicator-qml MODULE
14add_library(DashCommunicator-qml MODULE
13 ${QMLDASHCOMMUNICATORPLUGIN_SRC}
15 ${QMLDASHCOMMUNICATORPLUGIN_SRC}
14− )
16+)
15
17
16qt5_use_modules(DashCommunicator-qml DBus Qml)
18qt5_use_modules(DashCommunicator-qml DBus Qml)
17
19
20+target_link_libraries(DashCommunicator-qml
21+ unity8-private
22+)
23+
18# export the qmldir and qmltypes files
24# export the qmldir and qmltypes files
19add_unity8_plugin(Unity.DashCommunicator 0.1 Unity/DashCommunicator TARGETS DashCommunicator-qml)
25add_unity8_plugin(Unity.DashCommunicator 0.1 Unity/DashCommunicator TARGETS DashCommunicator-qml)
plugins/Unity/DashCommunicator/DashCommunicator.qmltypes+18−5
@@ -9,14 +9,14 @@ import QtQuick.tooling 1.1
9Module {
9Module {
10 Component {
10 Component {
11 name: "DashCommunicator"
11 name: "DashCommunicator"
12− prototype: "QObject"
12+ prototype: "QThread"
13 exports: ["Unity.DashCommunicator/DashCommunicator 0.1"]
13 exports: ["Unity.DashCommunicator/DashCommunicator 0.1"]
14 exportMetaObjectRevisions: [0]
14 exportMetaObjectRevisions: [0]
15 Method {
15 Method {
16 name: "setCurrentScope"
16 name: "setCurrentScope"
17− Parameter { name: "scopeId"; type: "string" }
17+ Parameter { name: "index"; type: "int" }
18 Parameter { name: "animate"; type: "bool" }
18 Parameter { name: "animate"; type: "bool" }
19− Parameter { name: "reset"; type: "bool" }
19+ Parameter { name: "isSwipe"; type: "bool" }
20 }
20 }
21 }
21 }
22 Component {
22 Component {
@@ -26,9 +26,22 @@ Module {
26 exportMetaObjectRevisions: [0]
26 exportMetaObjectRevisions: [0]
27 Signal {
27 Signal {
28 name: "setCurrentScopeRequested"
28 name: "setCurrentScopeRequested"
29− Parameter { name: "scopeId"; type: "string" }
29+ Parameter { name: "index"; type: "int" }
30 Parameter { name: "animate"; type: "bool" }
30 Parameter { name: "animate"; type: "bool" }
31− Parameter { name: "reset"; type: "bool" }
31+ Parameter { name: "isSwipe"; type: "bool" }
32+ }
33+ }
34+ Component {
35+ name: "QThread"
36+ prototype: "QObject"
37+ Signal { name: "started" }
38+ Signal { name: "finished" }
39+ Method {
40+ name: "start"
41+ Parameter { type: "Priority" }
32 }
42 }
43+ Method { name: "start" }
44+ Method { name: "terminate" }
45+ Method { name: "quit" }
33 }
46 }
34}
47}
plugins/Unity/DashCommunicator/dashcommunicator.cpp+22−13
@@ -15,29 +15,38 @@
15 */
15 */
16
16
17#include "dashcommunicator.h"
17#include "dashcommunicator.h"
18+#include "dashconnection.h"
18
19
19#include <QObject>
20#include <QObject>
20−#include <QDBusConnection>
21−#include <QDBusInterface>
22−#include <QDebug>
23
21
24DashCommunicator::DashCommunicator(QObject *parent):
22DashCommunicator::DashCommunicator(QObject *parent):
25− QObject(parent)
23+ QThread(parent),
24+ m_dashConnection(nullptr),
25+ m_created(false)
26{
26{
27+ start();
27}
28}
28
29
29−DashCommunicator::~DashCommunicator()
30+void DashCommunicator::setCurrentScope(int index, bool animate, bool isSwipe)
30{
31{
32+ m_mutex.lock();
33+ if (m_created) {
34+ QMetaObject::invokeMethod(m_dashConnection, "setCurrentScope",
35+ Q_ARG(int, index),
36+ Q_ARG(bool, animate),
37+ Q_ARG(bool, isSwipe));
38+ }
39+ m_mutex.unlock();
31}
40}
32
41
33−
34−void DashCommunicator::setCurrentScope(const QString &scopeId, bool animate, bool isSwipe)
42+void DashCommunicator::run()
35{
43{
36− QDBusConnection connection = QDBusConnection::sessionBus();
37− QDBusInterface dashIface ("com.canonical.UnityDash",
44+ m_dashConnection = new DashConnection("com.canonical.UnityDash",
38− "/com/canonical/UnityDash",
45+ "/com/canonical/UnityDash",
39− "",
46+ "", this);
40− connection);
47+ m_mutex.lock();
48+ m_created = true;
49+ m_mutex.unlock();
41
50
42− dashIface.call("SetCurrentScope", scopeId, animate, isSwipe);
51+ exec();
43}
52}
plugins/Unity/DashCommunicator/dashcommunicator.h+17−7
@@ -17,19 +17,29 @@
17#ifndef DASHCOMMUNICATOR_H
17#ifndef DASHCOMMUNICATOR_H
18#define DASHCOMMUNICATOR_H
18#define DASHCOMMUNICATOR_H
19
19
20+// Qt
20−#include <QObject>
21+#include <QThread>
22+#include <QMutex>
21
23
24+class DashConnection;
25+
22−class DashCommunicator: public QObject
26+class DashCommunicator: public QThread
23{
27{
24 Q_OBJECT
28 Q_OBJECT
25− Q_CLASSINFO("D-Bus Interface", "com.canonical.Unity.DashCommunicator")
26−
27public:
29public:
28− DashCommunicator(QObject *parent = 0);
30+ explicit DashCommunicator(QObject *parent = 0);
29− ~DashCommunicator();
31+ ~DashCommunicator() = default;
30
32
31public Q_SLOTS:
33public Q_SLOTS:
32− void setCurrentScope(const QString &scopeId, bool animate, bool isSwipe);
34+ void setCurrentScope(int index, bool animate, bool isSwipe);
35+
36+protected:
37+ void run() override;
38+
39+private:
40+ DashConnection *m_dashConnection;
41+ bool m_created;
42+ QMutex m_mutex;
33};
43};
34
44
35#endif
45#endif
plugins/Unity/DashCommunicator/dashcommunicatorservice.h+1−1
@@ -29,7 +29,7 @@ public:
29 ~DashCommunicatorService();
29 ~DashCommunicatorService();
30
30
31Q_SIGNALS:
31Q_SIGNALS:
32− void setCurrentScopeRequested(const QString &scopeId, bool animate, bool isSwipe);
32+ void setCurrentScopeRequested(int index, bool animate, bool isSwipe);
33
33
34private:
34private:
35 DBusDashCommunicatorService *m_dbusService;
35 DBusDashCommunicatorService *m_dbusService;
plugins/Unity/DashCommunicator/dashconnection.cppnew file+33
@@ -0,0 +1,33 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it under
5+ * the terms of the GNU Lesser General Public License version 3, as published by
6+ * the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but WITHOUT
9+ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10+ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11+ * Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "dashconnection.h"
18+
19+#include <QDBusInterface>
20+#include <QDBusPendingCall>
21+
22+DashConnection::DashConnection(const QString &service, const QString &path, const QString &interface, QObject *parent):
23+ AbstractDBusServiceMonitor(service, path, interface, SessionBus, parent)
24+{
25+
26+}
27+
28+void DashConnection::setCurrentScope(int index, bool animate, bool isSwipe)
29+{
30+ if (dbusInterface()) {
31+ dbusInterface()->asyncCall("SetCurrentScope", index, animate, isSwipe);
32+ }
33+}
plugins/Unity/DashCommunicator/dashconnection.hnew file+34
@@ -0,0 +1,34 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it under
5+ * the terms of the GNU Lesser General Public License version 3, as published by
6+ * the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but WITHOUT
9+ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10+ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11+ * Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef THREADEDDASHCONNECTION_H
18+#define THREADEDDASHCONNECTION_H
19+
20+// local
21+#include "abstractdbusservicemonitor.h"
22+
23+
24+class DashConnection: public AbstractDBusServiceMonitor
25+{
26+ Q_OBJECT
27+public:
28+ DashConnection(const QString &service, const QString &path, const QString &interface, QObject *parent = 0);
29+
30+public Q_SLOTS:
31+ void setCurrentScope(int index, bool animate, bool isSwipe);
32+};
33+
34+#endif
plugins/Unity/DashCommunicator/dbusdashcommunicatorservice.cpp+3−7
@@ -21,19 +21,15 @@
21#include <QDebug>
21#include <QDebug>
22
22
23DBusDashCommunicatorService::DBusDashCommunicatorService(QObject *parent):
23DBusDashCommunicatorService::DBusDashCommunicatorService(QObject *parent):
24− QObject(parent)
24+ UnityDBusObject("/com/canonical/UnityDash", "com.canonical.UnityDash", false, parent)
25{
25{
26− QDBusConnection connection = QDBusConnection::sessionBus();
27−
28− connection.registerService("com.canonical.UnityDash");
29− connection.registerObject("/com/canonical/UnityDash", this, QDBusConnection::ExportScriptableSlots);
30}
26}
31
27
32DBusDashCommunicatorService::~DBusDashCommunicatorService()
28DBusDashCommunicatorService::~DBusDashCommunicatorService()
33{
29{
34}
30}
35
31
36−void DBusDashCommunicatorService::SetCurrentScope(const QString &scopeId, bool animate, bool isSwipe)
32+void DBusDashCommunicatorService::SetCurrentScope(int index, bool animate, bool isSwipe)
37{
33{
38− Q_EMIT setCurrentScopeRequested(scopeId, animate, isSwipe);
34+ Q_EMIT setCurrentScopeRequested(index, animate, isSwipe);
39}
35}
plugins/Unity/DashCommunicator/dbusdashcommunicatorservice.h+4−4
@@ -17,9 +17,9 @@
17#ifndef DBUSDASHCOMMUNICATORSERVICE_H
17#ifndef DBUSDASHCOMMUNICATORSERVICE_H
18#define DBUSDASHCOMMUNICATORSERVICE_H
18#define DBUSDASHCOMMUNICATORSERVICE_H
19
19
20−#include <QObject>
20+#include "unitydbusobject.h"
21
21
22−class DBusDashCommunicatorService: public QObject
22+class DBusDashCommunicatorService: public UnityDBusObject
23{
23{
24 Q_OBJECT
24 Q_OBJECT
25 Q_CLASSINFO("D-Bus Interface", "com.canonical.Unity.DashCommunicator")
25 Q_CLASSINFO("D-Bus Interface", "com.canonical.Unity.DashCommunicator")
@@ -29,10 +29,10 @@ public:
29 ~DBusDashCommunicatorService();
29 ~DBusDashCommunicatorService();
30
30
31Q_SIGNALS:
31Q_SIGNALS:
32− void setCurrentScopeRequested(const QString &scopeId, bool animate, bool isSwipe);
32+ void setCurrentScopeRequested(int index, bool animate, bool isSwipe);
33
33
34public Q_SLOTS:
34public Q_SLOTS:
35− Q_SCRIPTABLE void SetCurrentScope(const QString &scopeId, bool animate, bool isSwipe);
35+ Q_SCRIPTABLE void SetCurrentScope(int index, bool animate, bool isSwipe);
36
36
37};
37};
38
38
plugins/Unity/Indicators/CMakeLists.txt+1
@@ -24,6 +24,7 @@ set(IndicatorsQML_SOURCES
24 modelprinter.cpp
24 modelprinter.cpp
25 plugin.cpp
25 plugin.cpp
26 rootactionstate.cpp
26 rootactionstate.cpp
27+ sharedunitymenumodel.cpp
27 unitymenumodelcache.cpp
28 unitymenumodelcache.cpp
28 unitymenumodelstack.cpp
29 unitymenumodelstack.cpp
29 visibleindicatorsmodel.cpp
30 visibleindicatorsmodel.cpp
plugins/Unity/Indicators/Indicators.qmltypes+12−11
@@ -99,10 +99,8 @@ Module {
99 values: {
99 values: {
100 "Identifier": 0,
100 "Identifier": 0,
101 "Position": 1,
101 "Position": 1,
102− "WidgetSource": 2,
102+ "IndicatorProperties": 2,
103− "PageSource": 3,
103+ "IsVisible": 3
104− "IndicatorProperties": 4,
105− "IsVisible": 5
106 }
104 }
107 }
105 }
108 }
106 }
@@ -209,6 +207,16 @@ Module {
209 Signal { name: "updated" }
207 Signal { name: "updated" }
210 Signal { name: "indexChanged" }
208 Signal { name: "indexChanged" }
211 }
209 }
210+ Component {
211+ name: "SharedUnityMenuModel"
212+ prototype: "QObject"
213+ exports: ["Unity.Indicators/SharedUnityMenuModel 0.1"]
214+ exportMetaObjectRevisions: [0]
215+ Property { name: "busName"; type: "QByteArray" }
216+ Property { name: "menuObjectPath"; type: "QByteArray" }
217+ Property { name: "actions"; type: "QVariantMap" }
218+ Property { name: "model"; type: "UnityMenuModel"; isReadonly: true; isPointer: true }
219+ }
212 Component {
220 Component {
213 name: "UnityMenuModelCache"
221 name: "UnityMenuModelCache"
214 prototype: "QObject"
222 prototype: "QObject"
@@ -216,13 +224,6 @@ Module {
216 isCreatable: false
224 isCreatable: false
217 isSingleton: true
225 isSingleton: true
218 exportMetaObjectRevisions: [0]
226 exportMetaObjectRevisions: [0]
219− Method {
220− name: "model"
221− type: "UnityMenuModel*"
222− Parameter { name: "bus"; type: "QByteArray" }
223− Parameter { name: "path"; type: "QByteArray" }
224− Parameter { name: "actions"; type: "QVariantMap" }
225− }
226 Method {
227 Method {
227 name: "contains"
228 name: "contains"
228 type: "bool"
229 type: "bool"
plugins/Unity/Indicators/indicators.h−2
@@ -74,8 +74,6 @@ public:
74 enum Roles {
74 enum Roles {
75 Identifier = 0,
75 Identifier = 0,
76 Position,
76 Position,
77− WidgetSource,
78− PageSource,
79 IndicatorProperties,
77 IndicatorProperties,
80 IsVisible
78 IsVisible
81 };
79 };
plugins/Unity/Indicators/indicatorsmodel.cpp−6
@@ -202,8 +202,6 @@ QHash<int, QByteArray> IndicatorsModel::roleNames() const
202 {
202 {
203 roles[IndicatorsModelRole::Identifier] = "identifier";
203 roles[IndicatorsModelRole::Identifier] = "identifier";
204 roles[IndicatorsModelRole::Position] = "position";
204 roles[IndicatorsModelRole::Position] = "position";
205− roles[IndicatorsModelRole::WidgetSource] = "widgetSource";
206− roles[IndicatorsModelRole::PageSource] = "pageSource";
207 roles[IndicatorsModelRole::IndicatorProperties] = "indicatorProperties";
205 roles[IndicatorsModelRole::IndicatorProperties] = "indicatorProperties";
208 }
206 }
209 return roles;
207 return roles;
@@ -248,10 +246,6 @@ QVariant IndicatorsModel::data(const QModelIndex &index, int role) const
248 return QVariant(indicator->indicatorProperties());
246 return QVariant(indicator->indicatorProperties());
249 }
247 }
250 break;
248 break;
251− case IndicatorsModelRole::WidgetSource:
252− return qmlDirectory()+"/Panel/Indicators/DefaultIndicatorWidget.qml";
253− case IndicatorsModelRole::PageSource:
254− return qmlDirectory()+"/Panel/Indicators/DefaultIndicatorPage.qml";
255 default:
249 default:
256 break;
250 break;
257 }
251 }
plugins/Unity/Indicators/plugin.cpp+8−2
@@ -30,18 +30,23 @@
30#include "menucontentactivator.h"
30#include "menucontentactivator.h"
31#include "modelprinter.h"
31#include "modelprinter.h"
32#include "rootactionstate.h"
32#include "rootactionstate.h"
33+#include "sharedunitymenumodel.h"
33#include "unitymenumodelcache.h"
34#include "unitymenumodelcache.h"
34#include "unitymenumodelstack.h"
35#include "unitymenumodelstack.h"
35#include "visibleindicatorsmodel.h"
36#include "visibleindicatorsmodel.h"
36
37
38+#include <unitymenumodel.h>
39+
37static QObject* menuModelCacheSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) {
40static QObject* menuModelCacheSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) {
38 Q_UNUSED(engine);
41 Q_UNUSED(engine);
39 Q_UNUSED(scriptEngine);
42 Q_UNUSED(scriptEngine);
40− return new UnityMenuModelCache;
43+ return UnityMenuModelCache::singleton();
41}
44}
42
45
43−void Indicators2Plugin::registerTypes(const char *uri)
46+void IndicatorsPlugin::registerTypes(const char *uri)
44{
47{
48+ qRegisterMetaType<UnityMenuModel*>("UnityMenuModel*");
49+
45 qmlRegisterType<IndicatorsManager>(uri, 0, 1, "IndicatorsManager");
50 qmlRegisterType<IndicatorsManager>(uri, 0, 1, "IndicatorsManager");
46 qmlRegisterType<IndicatorsModel>(uri, 0, 1, "IndicatorsModel");
51 qmlRegisterType<IndicatorsModel>(uri, 0, 1, "IndicatorsModel");
47 qmlRegisterType<MenuContentActivator>(uri, 0, 1, "MenuContentActivator");
52 qmlRegisterType<MenuContentActivator>(uri, 0, 1, "MenuContentActivator");
@@ -49,6 +54,7 @@ void Indicators2Plugin::registerTypes(const char *uri)
49 qmlRegisterType<RootActionState>(uri, 0, 1, "RootActionState");
54 qmlRegisterType<RootActionState>(uri, 0, 1, "RootActionState");
50 qmlRegisterType<ModelPrinter>(uri, 0, 1, "ModelPrinter");
55 qmlRegisterType<ModelPrinter>(uri, 0, 1, "ModelPrinter");
51 qmlRegisterType<VisibleIndicatorsModel>(uri, 0, 1, "VisibleIndicatorsModel");
56 qmlRegisterType<VisibleIndicatorsModel>(uri, 0, 1, "VisibleIndicatorsModel");
57+ qmlRegisterType<SharedUnityMenuModel>(uri, 0, 1, "SharedUnityMenuModel");
52
58
53 qmlRegisterSingletonType<UnityMenuModelCache>(uri, 0, 1, "UnityMenuModelCache", menuModelCacheSingleton);
59 qmlRegisterSingletonType<UnityMenuModelCache>(uri, 0, 1, "UnityMenuModelCache", menuModelCacheSingleton);
54
60
plugins/Unity/Indicators/plugin.h+1−1
@@ -22,7 +22,7 @@
22
22
23#include <QtQml/QQmlExtensionPlugin>
23#include <QtQml/QQmlExtensionPlugin>
24
24
25−class Indicators2Plugin : public QQmlExtensionPlugin
25+class IndicatorsPlugin : public QQmlExtensionPlugin
26{
26{
27 Q_OBJECT
27 Q_OBJECT
28 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
28 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
plugins/Unity/Indicators/rootactionstate.cpp+1−1
@@ -156,7 +156,7 @@ QString RootActionState::accessibleName() const
156 return m_cachedState.value("accessible-desc", QVariant::fromValue(QString())).toString();
156 return m_cachedState.value("accessible-desc", QVariant::fromValue(QString())).toString();
157}
157}
158
158
159−bool RootActionState::isVisible() const
159+bool RootActionState::indicatorVisible() const
160{
160{
161 if (!isValid()) return false;
161 if (!isValid()) return false;
162
162
plugins/Unity/Indicators/rootactionstate.h+4−4
@@ -37,7 +37,7 @@ class UNITYINDICATORS_EXPORT RootActionState : public ActionStateParser
37 Q_PROPERTY(QString rightLabel READ rightLabel NOTIFY rightLabelChanged)
37 Q_PROPERTY(QString rightLabel READ rightLabel NOTIFY rightLabelChanged)
38 Q_PROPERTY(QStringList icons READ icons NOTIFY iconsChanged)
38 Q_PROPERTY(QStringList icons READ icons NOTIFY iconsChanged)
39 Q_PROPERTY(QString accessibleName READ accessibleName NOTIFY accessibleNameChanged)
39 Q_PROPERTY(QString accessibleName READ accessibleName NOTIFY accessibleNameChanged)
40− Q_PROPERTY(bool visible READ isVisible NOTIFY visibleChanged)
40+ Q_PROPERTY(bool indicatorVisible READ indicatorVisible NOTIFY indicatorVisibleChanged)
41public:
41public:
42 RootActionState(QObject *parent = 0);
42 RootActionState(QObject *parent = 0);
43 virtual ~RootActionState();
43 virtual ~RootActionState();
@@ -54,10 +54,10 @@ public:
54 QString rightLabel() const;
54 QString rightLabel() const;
55 QStringList icons() const;
55 QStringList icons() const;
56 QString accessibleName() const;
56 QString accessibleName() const;
57− bool isVisible() const;
57+ bool indicatorVisible() const;
58
58
59 // from ActionStateParser
59 // from ActionStateParser
60− virtual QVariant toQVariant(GVariant* state) const;
60+ virtual QVariant toQVariant(GVariant* state) const override;
61
61
62Q_SIGNALS:
62Q_SIGNALS:
63 void updated();
63 void updated();
@@ -71,7 +71,7 @@ Q_SIGNALS:
71 void rightLabelChanged();
71 void rightLabelChanged();
72 void iconsChanged();
72 void iconsChanged();
73 void accessibleNameChanged();
73 void accessibleNameChanged();
74− void visibleChanged();
74+ void indicatorVisibleChanged();
75
75
76private Q_SLOTS:
76private Q_SLOTS:
77 void onModelRowsAdded(const QModelIndex& parent, int start, int end);
77 void onModelRowsAdded(const QModelIndex& parent, int start, int end);
plugins/Unity/Indicators/sharedunitymenumodel.cppnew file+92
@@ -0,0 +1,92 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ */
17+
18+#include "sharedunitymenumodel.h"
19+#include "unitymenumodelcache.h"
20+
21+#include <unitymenumodel.h>
22+
23+SharedUnityMenuModel::SharedUnityMenuModel(QObject* parent)
24+ : QObject(parent)
25+{
26+}
27+
28+QByteArray SharedUnityMenuModel::busName() const
29+{
30+ return m_busName;
31+}
32+
33+void SharedUnityMenuModel::setBusName(const QByteArray& busName)
34+{
35+ if (m_busName != busName) {
36+ m_busName = busName;
37+ Q_EMIT busNameChanged();
38+ initialize();
39+ }
40+}
41+
42+QByteArray SharedUnityMenuModel::menuObjectPath() const
43+{
44+ return m_menuObjectPath;
45+}
46+
47+void SharedUnityMenuModel::setMenuObjectPath(const QByteArray& menuObjectPath)
48+{
49+ if (m_menuObjectPath != menuObjectPath) {
50+ m_menuObjectPath = menuObjectPath;
51+ Q_EMIT menuObjectPathChanged();
52+ initialize();
53+ }
54+}
55+
56+QVariantMap SharedUnityMenuModel::actions() const
57+{
58+ return m_actions;
59+}
60+
61+void SharedUnityMenuModel::setActions(const QVariantMap& actions)
62+{
63+ if (m_actions != actions) {
64+ m_actions = actions;
65+ Q_EMIT actionsChanged();
66+ initialize();
67+ }
68+}
69+
70+UnityMenuModel* SharedUnityMenuModel::model() const
71+{
72+ return m_model ? m_model.data() : nullptr;
73+}
74+
75+void SharedUnityMenuModel::initialize()
76+{
77+ if (m_busName.isEmpty() || m_menuObjectPath.isEmpty() || m_actions.isEmpty()) {
78+ if (!m_model.isNull()) {
79+ m_model.clear();
80+ Q_EMIT modelChanged();
81+ }
82+ } else {
83+ QSharedPointer<UnityMenuModel> model = UnityMenuModelCache::singleton()->model(m_menuObjectPath);
84+ if (model != m_model) {
85+ if (model->busName() != m_busName) model->setBusName(m_busName);
86+ if (model->actions() != m_actions) model->setActions(m_actions);
87+
88+ m_model = model;
89+ Q_EMIT modelChanged();
90+ }
91+ }
92+}
plugins/Unity/Indicators/sharedunitymenumodel.hnew file+66
@@ -0,0 +1,66 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ */
17+
18+#ifndef SHAREDUNITYMENUMODEL_H
19+#define SHAREDUNITYMENUMODEL_H
20+
21+#include "unityindicatorsglobal.h"
22+
23+#include <QObject>
24+#include <QSharedPointer>
25+#include <QVariantMap>
26+
27+class UnityMenuModel;
28+
29+class UNITYINDICATORS_EXPORT SharedUnityMenuModel : public QObject
30+{
31+ Q_OBJECT
32+ Q_PROPERTY(QByteArray busName READ busName WRITE setBusName NOTIFY busNameChanged)
33+ Q_PROPERTY(QByteArray menuObjectPath READ menuObjectPath WRITE setMenuObjectPath NOTIFY menuObjectPathChanged)
34+ Q_PROPERTY(QVariantMap actions READ actions WRITE setActions NOTIFY actionsChanged)
35+ Q_PROPERTY(UnityMenuModel* model READ model NOTIFY modelChanged)
36+
37+public:
38+ SharedUnityMenuModel(QObject* parent = nullptr);
39+
40+ QByteArray busName() const;
41+ void setBusName(const QByteArray&);
42+
43+ QByteArray menuObjectPath() const;
44+ void setMenuObjectPath(const QByteArray&);
45+
46+ QVariantMap actions() const;
47+ void setActions(const QVariantMap&);
48+
49+ UnityMenuModel* model() const;
50+
51+Q_SIGNALS:
52+ void busNameChanged();
53+ void menuObjectPathChanged();
54+ void actionsChanged();
55+ void modelChanged();
56+
57+private:
58+ void initialize();
59+
60+ QByteArray m_busName;
61+ QByteArray m_menuObjectPath;
62+ QVariantMap m_actions;
63+ QSharedPointer<UnityMenuModel> m_model;
64+};
65+
66+#endif // SHAREDUNITYMENUMODEL_H
plugins/Unity/Indicators/unitymenumodelcache.cpp+25−14
@@ -20,34 +20,45 @@
20#include "unitymenumodelcache.h"
20#include "unitymenumodelcache.h"
21#include <unitymenumodel.h>
21#include <unitymenumodel.h>
22
22
23−UnityMenuModelCache::UnityMenuModelCache(QObject* parent)
23+#include <QQmlEngine>
24− : QObject(parent)
24+
25+QPointer<UnityMenuModelCache> UnityMenuModelCache::theCache = nullptr;
26+
27+UnityMenuModelCache* UnityMenuModelCache::singleton()
25{
28{
29+ if (theCache.isNull()) {
30+ theCache = new UnityMenuModelCache();
31+ }
32+ return theCache.data();
26}
33}
27
34
28−UnityMenuModelCache::~UnityMenuModelCache()
35+UnityMenuModelCache::UnityMenuModelCache(QObject* parent)
36+ : QObject(parent)
29{
37{
30}
38}
31
39
32−UnityMenuModel* UnityMenuModelCache::model(const QByteArray& bus,
40+QSharedPointer<UnityMenuModel> UnityMenuModelCache::model(const QByteArray& path)
33− const QByteArray& path,
34− const QVariantMap& actions)
35{
41{
36 if (m_registry.contains(path))
42 if (m_registry.contains(path))
37 return m_registry[path];
43 return m_registry[path];
38
44
39− UnityMenuModel* menuModel = new UnityMenuModel;
45+ UnityMenuModel* model = new UnityMenuModel;
46+ QQmlEngine::setObjectOwnership(model, QQmlEngine::CppOwnership);
47+
48+ QSharedPointer<UnityMenuModel> menuModel(model);
40− connect(menuModel, &QObject::destroyed, this, [menuModel, this](QObject*) {
49+ connect(model, &QObject::destroyed, this, [this] {
41− QList<QByteArray> keys = m_registry.keys(menuModel);
50+ QMutableHashIterator<QByteArray, QWeakPointer<UnityMenuModel>> iter(m_registry);
42− Q_FOREACH(const QByteArray& key, keys) {
51+ while(iter.hasNext()) {
52+ auto keyVal = iter.next();
53+ if (keyVal.value().isNull()) {
43− m_registry.remove(key);
54+ iter.remove();
55+ break;
56+ }
44 }
57 }
45 });
58 });
46− m_registry[path] = menuModel;
59+ m_registry[path] = menuModel.toWeakRef();
47
60
48− menuModel->setBusName(bus);
49 menuModel->setMenuObjectPath(path);
61 menuModel->setMenuObjectPath(path);
50− menuModel->setActions(actions);
51 return menuModel;
62 return menuModel;
52}
63}
53
64
plugins/Unity/Indicators/unitymenumodelcache.h+11−7
@@ -24,6 +24,8 @@
24
24
25#include <QObject>
25#include <QObject>
26#include <QHash>
26#include <QHash>
27+#include <QPointer>
28+#include <QWeakPointer>
27
29
28class UnityMenuModel;
30class UnityMenuModel;
29
31
@@ -32,15 +34,17 @@ class UNITYINDICATORS_EXPORT UnityMenuModelCache : public QObject
32 Q_OBJECT
34 Q_OBJECT
33public:
35public:
34 UnityMenuModelCache(QObject*parent=nullptr);
36 UnityMenuModelCache(QObject*parent=nullptr);
35− ~UnityMenuModelCache();
36
37
37− Q_INVOKABLE UnityMenuModel* model(const QByteArray& bus,
38+ static UnityMenuModelCache* singleton();
38− const QByteArray& path,
39− const QVariantMap& actions);
40− Q_INVOKABLE bool contains(const QByteArray& path);
41
39
42−private:
40+ virtual QSharedPointer<UnityMenuModel> model(const QByteArray& path);
41+
42+ // for tests use
43+ Q_INVOKABLE virtual bool contains(const QByteArray& path);
44+
45+protected:
43− QHash<QByteArray, UnityMenuModel*> m_registry;
46+ QHash<QByteArray, QWeakPointer<UnityMenuModel>> m_registry;
47+ static QPointer<UnityMenuModelCache> theCache;
44};
48};
45
49
46#endif // UNITYMENUMODELCACHE_H
50#endif // UNITYMENUMODELCACHE_H
plugins/Unity/Indicators/visibleindicatorsmodel.cpp−2
@@ -33,8 +33,6 @@ QHash<int, QByteArray> VisibleIndicatorsModel::roleNames() const
33 {
33 {
34 roles[IndicatorsModelRole::Identifier] = "identifier";
34 roles[IndicatorsModelRole::Identifier] = "identifier";
35 roles[IndicatorsModelRole::Position] = "position";
35 roles[IndicatorsModelRole::Position] = "position";
36− roles[IndicatorsModelRole::WidgetSource] = "widgetSource";
37− roles[IndicatorsModelRole::PageSource] = "pageSource";
38 roles[IndicatorsModelRole::IndicatorProperties] = "indicatorProperties";
36 roles[IndicatorsModelRole::IndicatorProperties] = "indicatorProperties";
39 roles[IndicatorsModelRole::IsVisible] = "isVisible";
37 roles[IndicatorsModelRole::IsVisible] = "isVisible";
40 }
38 }
plugins/Unity/Launcher/CMakeLists.txt+7−3
@@ -1,6 +1,6 @@
1include(FindPkgConfig)
1include(FindPkgConfig)
2−pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=4)
2+pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=5)
3−pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=4)
3+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=5)
4pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
4pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
5
5
6add_definitions(-DSM_BUSNAME=systemBus)
6add_definitions(-DSM_BUSNAME=systemBus)
@@ -9,6 +9,7 @@ include_directories(
9 ${CMAKE_CURRENT_SOURCE_DIR}
9 ${CMAKE_CURRENT_SOURCE_DIR}
10 ${CMAKE_SOURCE_DIR}/plugins/AccountsService
10 ${CMAKE_SOURCE_DIR}/plugins/AccountsService
11 ${GSETTINGS_QT_INCLUDE_DIRS}
11 ${GSETTINGS_QT_INCLUDE_DIRS}
12+ ${libunity8-private_SOURCE_DIR}
12)
13)
13
14
14set(QMLLAUNCHERPLUGIN_SRC
15set(QMLLAUNCHERPLUGIN_SRC
@@ -30,7 +31,10 @@ add_library(UnityLauncher-qml MODULE
30 ${QMLLAUNCHERPLUGIN_SRC}
31 ${QMLLAUNCHERPLUGIN_SRC}
31 )
32 )
32
33
33−target_link_libraries(UnityLauncher-qml ${GSETTINGS_QT_LDFLAGS})
34+target_link_libraries(UnityLauncher-qml
35+ unity8-private
36+ ${GSETTINGS_QT_LDFLAGS}
37+ )
34
38
35qt5_use_modules(UnityLauncher-qml DBus Qml Gui)
39qt5_use_modules(UnityLauncher-qml DBus Qml Gui)
36
40
plugins/Unity/Launcher/Launcher.qmltypes+17−12
@@ -13,14 +13,6 @@ Module {
13 exports: ["Unity.Launcher/LauncherItem 0.1"]
13 exports: ["Unity.Launcher/LauncherItem 0.1"]
14 isCreatable: false
14 isCreatable: false
15 exportMetaObjectRevisions: [0]
15 exportMetaObjectRevisions: [0]
16− Signal {
17− name: "favoriteChanged"
18− Parameter { name: "favorite"; type: "bool" }
19− }
20− Signal {
21− name: "runningChanged"
22− Parameter { name: "running"; type: "bool" }
23− }
24 }
16 }
25 Component {
17 Component {
26 name: "LauncherModel"
18 name: "LauncherModel"
@@ -29,6 +21,10 @@ Module {
29 isCreatable: false
21 isCreatable: false
30 isSingleton: true
22 isSingleton: true
31 exportMetaObjectRevisions: [0]
23 exportMetaObjectRevisions: [0]
24+ Method {
25+ name: "requestRemove"
26+ Parameter { name: "appId"; type: "string" }
27+ }
32 Method {
28 Method {
33 name: "get"
29 name: "get"
34 type: "unity::shell::launcher::LauncherItemInterface*"
30 type: "unity::shell::launcher::LauncherItemInterface*"
@@ -48,10 +44,6 @@ Module {
48 name: "pin"
44 name: "pin"
49 Parameter { name: "appId"; type: "string" }
45 Parameter { name: "appId"; type: "string" }
50 }
46 }
51− Method {
52− name: "requestRemove"
53− Parameter { name: "appId"; type: "string" }
54− }
55 Method {
47 Method {
56 name: "quickListActionInvoked"
48 name: "quickListActionInvoked"
57 Parameter { name: "appId"; type: "string" }
49 Parameter { name: "appId"; type: "string" }
@@ -88,6 +80,7 @@ Module {
88 Property { name: "recent"; type: "bool"; isReadonly: true }
80 Property { name: "recent"; type: "bool"; isReadonly: true }
89 Property { name: "progress"; type: "int"; isReadonly: true }
81 Property { name: "progress"; type: "int"; isReadonly: true }
90 Property { name: "count"; type: "int"; isReadonly: true }
82 Property { name: "count"; type: "int"; isReadonly: true }
83+ Property { name: "countVisible"; type: "bool"; isReadonly: true }
91 Property { name: "focused"; type: "bool"; isReadonly: true }
84 Property { name: "focused"; type: "bool"; isReadonly: true }
92 Property {
85 Property {
93 name: "quickList"
86 name: "quickList"
@@ -95,6 +88,14 @@ Module {
95 isReadonly: true
88 isReadonly: true
96 isPointer: true
89 isPointer: true
97 }
90 }
91+ Signal {
92+ name: "nameChanged"
93+ Parameter { name: "name"; type: "string" }
94+ }
95+ Signal {
96+ name: "iconChanged"
97+ Parameter { name: "icon"; type: "string" }
98+ }
98 Signal {
99 Signal {
99 name: "pinnedChanged"
100 name: "pinnedChanged"
100 Parameter { name: "pinned"; type: "bool" }
101 Parameter { name: "pinned"; type: "bool" }
@@ -115,6 +116,10 @@ Module {
115 name: "countChanged"
116 name: "countChanged"
116 Parameter { name: "count"; type: "int" }
117 Parameter { name: "count"; type: "int" }
117 }
118 }
119+ Signal {
120+ name: "countVisibleChanged"
121+ Parameter { name: "countVisible"; type: "bool" }
122+ }
118 Signal {
123 Signal {
119 name: "focusedChanged"
124 name: "focusedChanged"
120 Parameter { name: "focused"; type: "bool" }
125 Parameter { name: "focused"; type: "bool" }
plugins/Unity/Launcher/dbusinterface.cpp+5−38
@@ -27,25 +27,13 @@
27#include <QDebug>
27#include <QDebug>
28
28
29DBusInterface::DBusInterface(LauncherModel *parent):
29DBusInterface::DBusInterface(LauncherModel *parent):
30− QDBusVirtualObject(parent),
30+ UnityDBusVirtualObject("/com/canonical/Unity/Launcher", "com.canonical.Unity.Launcher", true, parent),
31 m_launcherModel(parent)
31 m_launcherModel(parent)
32{
32{
33− /* Set up ourselves on DBus */
34− QDBusConnection con = QDBusConnection::sessionBus();
35− if (!con.registerService("com.canonical.Unity.Launcher")) {
36− qWarning() << "Unable to register launcher name";
37− }
38− if (!con.registerVirtualObject("/com/canonical/Unity/Launcher", this, QDBusConnection::VirtualObjectRegisterOption::SubPath)) {
39− qWarning() << "Unable to register launcher object";
40− }
41}
33}
42
34
43DBusInterface::~DBusInterface()
35DBusInterface::~DBusInterface()
44{
36{
45− /* Remove oursevles from DBus */
46− QDBusConnection con = QDBusConnection::sessionBus();
47− con.unregisterService("com.canonical.Unity.Launcher");
48− con.unregisterObject("/com/canonical/Unity/Launcher");
49}
37}
50
38
51QString DBusInterface::introspect(const QString &path) const
39QString DBusInterface::introspect(const QString &path) const
@@ -183,16 +171,16 @@ bool DBusInterface::handleMessage(const QDBusMessage& message, const QDBusConnec
183 }
171 }
184 } else if (message.member() == "Set") {
172 } else if (message.member() == "Set") {
185 if (message.arguments()[1].toString() == "count") {
173 if (message.arguments()[1].toString() == "count") {
186− int newCount = message.arguments()[2].toInt();
174+ int newCount = message.arguments()[2].value<QDBusVariant>().variant().toInt();
187 if (!item || newCount != item->count()) {
175 if (!item || newCount != item->count()) {
188 Q_EMIT countChanged(appid, newCount);
176 Q_EMIT countChanged(appid, newCount);
189− emitPropChangedDbus(appid, "count", QVariant(newCount));
177+ notifyPropertyChanged("com.canonical.Unity.Launcher.Item", encodeAppId(appid), "count", QVariant(newCount));
190 }
178 }
191 } else if (message.arguments()[1].toString() == "countVisible") {
179 } else if (message.arguments()[1].toString() == "countVisible") {
192− bool newVisible = message.arguments()[2].toBool();
180+ bool newVisible = message.arguments()[2].value<QDBusVariant>().variant().toBool();
193 if (!item || newVisible != item->countVisible()) {
181 if (!item || newVisible != item->countVisible()) {
194 Q_EMIT countVisibleChanged(appid, newVisible);
182 Q_EMIT countVisibleChanged(appid, newVisible);
195− emitPropChangedDbus(appid, "countVisible", newVisible);
183+ notifyPropertyChanged("com.canonical.Unity.Launcher.Item", encodeAppId(appid), "countVisible", newVisible);
196 }
184 }
197 }
185 }
198 } else if (message.member() == "GetAll") {
186 } else if (message.member() == "GetAll") {
@@ -209,24 +197,3 @@ bool DBusInterface::handleMessage(const QDBusMessage& message, const QDBusConnec
209 QDBusMessage reply = message.createReply(retval);
197 QDBusMessage reply = message.createReply(retval);
210 return connection.send(reply);
198 return connection.send(reply);
211}
199}
212−
213−void DBusInterface::emitPropChangedDbus(const QString& appId, const QString& property, const QVariant &value)
214−{
215− QString path("/com/canonical/Unity/Launcher/");
216− path.append(encodeAppId(appId));
217−
218− QDBusMessage message = QDBusMessage::createSignal(path, "org.freedesktop.DBus.Properties", "PropertiesChanged");
219−
220− QList<QVariant> arguments;
221− QVariantHash changedprops;
222− changedprops[property] = QVariant::fromValue(QDBusVariant(value));
223− QVariantList deletedprops;
224−
225− arguments.append(changedprops);
226− arguments.append(deletedprops);
227−
228− message.setArguments(arguments);
229−
230− QDBusConnection con = QDBusConnection::sessionBus();
231− con.send(message);
232−}
plugins/Unity/Launcher/dbusinterface.h+2−5
@@ -18,12 +18,11 @@
18 */
18 */
19
19
20#include "launcheritem.h"
20#include "launcheritem.h"
21−
21+#include "unitydbusvirtualobject.h"
22−#include <QDBusVirtualObject>
23
22
24class LauncherModel;
23class LauncherModel;
25
24
26−class DBusInterface: public QDBusVirtualObject
25+class DBusInterface: public UnityDBusVirtualObject
27{
26{
28 Q_OBJECT
27 Q_OBJECT
29public:
28public:
@@ -43,8 +42,6 @@ private:
43 static QString decodeAppId(const QString& path);
42 static QString decodeAppId(const QString& path);
44 static QString encodeAppId(const QString& appId);
43 static QString encodeAppId(const QString& appId);
45
44
46− void emitPropChangedDbus(const QString& appId, const QString& property, const QVariant &value);
47−
48 LauncherModel *m_launcherModel;
45 LauncherModel *m_launcherModel;
49
46
50};
47};
plugins/Unity/Launcher/desktopfilehandler.cpp+3−1
@@ -70,7 +70,7 @@ void DesktopFileHandler::load()
70
70
71 QStringList searchDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
71 QStringList searchDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
72#ifdef LAUNCHER_TESTING
72#ifdef LAUNCHER_TESTING
73− searchDirs << "";
73+ searchDirs << ".";
74#endif
74#endif
75
75
76 QString path;
76 QString path;
@@ -106,6 +106,7 @@ QString DesktopFileHandler::displayName() const
106 }
106 }
107
107
108 QSettings settings(m_filename, QSettings::IniFormat);
108 QSettings settings(m_filename, QSettings::IniFormat);
109+ settings.setIniCodec("UTF-8");
109 settings.beginGroup("Desktop Entry");
110 settings.beginGroup("Desktop Entry");
110
111
111 // First try to find Name[xx_YY] and Name[xx] in .desktop file
112 // First try to find Name[xx_YY] and Name[xx] in .desktop file
@@ -138,6 +139,7 @@ QString DesktopFileHandler::icon() const
138 }
139 }
139
140
140 QSettings settings(m_filename, QSettings::IniFormat);
141 QSettings settings(m_filename, QSettings::IniFormat);
142+ settings.setIniCodec("UTF-8");
141 settings.beginGroup("Desktop Entry");
143 settings.beginGroup("Desktop Entry");
142 QString iconString = settings.value("Icon").toString();
144 QString iconString = settings.value("Icon").toString();
143 QString pathString = settings.value("Path").toString();
145 QString pathString = settings.value("Path").toString();
plugins/Unity/Launcher/gsettings.cpp+11−7
@@ -19,22 +19,20 @@
19
19
20#include "gsettings.h"
20#include "gsettings.h"
21
21
22−#include <QGSettings>
23#include <QVariant>
22#include <QVariant>
24
23
25GSettings::GSettings(QObject *parent):
24GSettings::GSettings(QObject *parent):
26 QObject(parent)
25 QObject(parent)
27{
26{
28−
27+ m_gSettings = new QGSettings("com.canonical.Unity.Launcher", "/com/canonical/unity/launcher/", this);
28+ connect(m_gSettings, &QGSettings::changed, this, &GSettings::onSettingsChanged);
29}
29}
30
30
31QStringList GSettings::storedApplications() const
31QStringList GSettings::storedApplications() const
32{
32{
33 QStringList storedApps;
33 QStringList storedApps;
34
34
35− QGSettings gSettings("com.canonical.Unity.Launcher", "/com/canonical/unity/launcher/");
36−
37− Q_FOREACH(const QString &entry, gSettings.get("items").toStringList()) {
35+ Q_FOREACH(const QString &entry, m_gSettings->get("items").toStringList()) {
38 if (entry.startsWith("application:///")) {
36 if (entry.startsWith("application:///")) {
39 // convert legacy entries to new world appids
37 // convert legacy entries to new world appids
40 QString appId = entry;
38 QString appId = entry;
@@ -57,10 +55,16 @@ QStringList GSettings::storedApplications() const
57
55
58void GSettings::setStoredApplications(const QStringList &storedApplications)
56void GSettings::setStoredApplications(const QStringList &storedApplications)
59{
57{
60− QGSettings gSettings("com.canonical.Unity.Launcher", "/com/canonical/unity/launcher/");
61 QStringList gSettingsList;
58 QStringList gSettingsList;
62 Q_FOREACH(const QString &entry, storedApplications) {
59 Q_FOREACH(const QString &entry, storedApplications) {
63 gSettingsList << QString("appid://%1").arg(entry);
60 gSettingsList << QString("appid://%1").arg(entry);
64 }
61 }
65− gSettings.set("items", gSettingsList);
62+ m_gSettings->set("items", gSettingsList);
63+}
64+
65+void GSettings::onSettingsChanged(const QString &key)
66+{
67+ if (key == "items") {
68+ Q_EMIT changed();
69+ }
66}
70}
plugins/Unity/Launcher/gsettings.h+10−1
@@ -22,7 +22,7 @@
22
22
23#include <QObject>
23#include <QObject>
24#include <QStringList>
24#include <QStringList>
25−
25+#include <QGSettings>
26
26
27class GSettings: public QObject
27class GSettings: public QObject
28{
28{
@@ -32,6 +32,15 @@ public:
32
32
33 QStringList storedApplications() const;
33 QStringList storedApplications() const;
34 void setStoredApplications(const QStringList &storedApplications);
34 void setStoredApplications(const QStringList &storedApplications);
35+
36+Q_SIGNALS:
37+ void changed();
38+
39+private Q_SLOTS:
40+ void onSettingsChanged(const QString &key);
41+
42+private:
43+ QGSettings *m_gSettings;
35};
44};
36
45
37#endif
46#endif
plugins/Unity/Launcher/launchermodel.cpp+86−32
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright 2013-2014 Canonical Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
5 * it under the terms of the GNU Lesser General Public License as published by
@@ -40,20 +40,9 @@ LauncherModel::LauncherModel(QObject *parent):
40 connect(m_dbusIface, &DBusInterface::countVisibleChanged, this, &LauncherModel::countVisibleChanged);
40 connect(m_dbusIface, &DBusInterface::countVisibleChanged, this, &LauncherModel::countVisibleChanged);
41 connect(m_dbusIface, &DBusInterface::refreshCalled, this, &LauncherModel::refresh);
41 connect(m_dbusIface, &DBusInterface::refreshCalled, this, &LauncherModel::refresh);
42
42
43− Q_FOREACH (const QString &entry, m_settings->storedApplications()) {
43+ connect(m_settings, &GSettings::changed, this, &LauncherModel::refresh);
44− DesktopFileHandler desktopFile(entry);
45− if (!desktopFile.isValid()) {
46− qWarning() << "Couldn't find a .desktop file for" << entry << ". Skipping...";
47− continue;
48− }
49
44
50− LauncherItem *item = new LauncherItem(entry,
45+ refresh();
51− desktopFile.displayName(),
52− desktopFile.icon(),
53− this);
54− item->setPinned(true);
55− m_list.append(item);
56− }
57}
46}
58
47
59LauncherModel::~LauncherModel()
48LauncherModel::~LauncherModel()
@@ -173,22 +162,7 @@ void LauncherModel::pin(const QString &appId, int index)
173
162
174void LauncherModel::requestRemove(const QString &appId)
163void LauncherModel::requestRemove(const QString &appId)
175{
164{
176− int index = findApplication(appId);
165+ unpin(appId);
177− if (index < 0) {
178− return;
179− }
180−
181− if (m_appManager->findApplication(appId)) {
182− m_list.at(index)->setPinned(false);
183− QModelIndex modelIndex = this->index(index);
184− Q_EMIT dataChanged(modelIndex, modelIndex, QVector<int>() << RolePinned);
185− return;
186− }
187−
188− beginRemoveRows(QModelIndex(), index, index);
189− m_list.takeAt(index)->deleteLater();
190− endRemoveRows();
191−
192 storeAppList();
166 storeAppList();
193}
167}
194
168
@@ -299,6 +273,26 @@ void LauncherModel::storeAppList()
299 m_settings->setStoredApplications(appIds);
273 m_settings->setStoredApplications(appIds);
300}
274}
301
275
276+void LauncherModel::unpin(const QString &appId)
277+{
278+ int index = findApplication(appId);
279+ if (index < 0) {
280+ return;
281+ }
282+
283+ if (m_appManager->findApplication(appId)) {
284+ if (m_list.at(index)->pinned()) {
285+ m_list.at(index)->setPinned(false);
286+ QModelIndex modelIndex = this->index(index);
287+ Q_EMIT dataChanged(modelIndex, modelIndex, QVector<int>() << RolePinned);
288+ }
289+ } else {
290+ beginRemoveRows(QModelIndex(), index, index);
291+ m_list.takeAt(index)->deleteLater();
292+ endRemoveRows();
293+ }
294+}
295+
302int LauncherModel::findApplication(const QString &appId)
296int LauncherModel::findApplication(const QString &appId)
303{
297{
304 for (int i = 0; i < m_list.count(); ++i) {
298 for (int i = 0; i < m_list.count(); ++i) {
@@ -320,7 +314,6 @@ void LauncherModel::progressChanged(const QString &appId, int progress)
320 }
314 }
321}
315}
322
316
323−
324void LauncherModel::countChanged(const QString &appId, int count)
317void LauncherModel::countChanged(const QString &appId, int count)
325{
318{
326 int idx = findApplication(appId);
319 int idx = findApplication(appId);
@@ -356,16 +349,22 @@ void LauncherModel::countVisibleChanged(const QString &appId, int countVisible)
356 beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
349 beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
357 m_list.append(item);
350 m_list.append(item);
358 endInsertRows();
351 endInsertRows();
352+ Q_EMIT hint();
359 }
353 }
360 }
354 }
361}
355}
362
356
363void LauncherModel::refresh()
357void LauncherModel::refresh()
364{
358{
359+ // First walk through all the existing items and see if we need to remove something
365 QList<LauncherItem*> toBeRemoved;
360 QList<LauncherItem*> toBeRemoved;
366 Q_FOREACH (LauncherItem* item, m_list) {
361 Q_FOREACH (LauncherItem* item, m_list) {
367 DesktopFileHandler desktopFile(item->appId());
362 DesktopFileHandler desktopFile(item->appId());
368 if (!desktopFile.isValid()) {
363 if (!desktopFile.isValid()) {
364+ // Desktop file not available for this app => drop it!
365+ toBeRemoved << item;
366+ } else if (!m_settings->storedApplications().contains(item->appId())) {
367+ // Item not in settings any more => drop it!
369 toBeRemoved << item;
368 toBeRemoved << item;
370 } else {
369 } else {
371 int idx = m_list.indexOf(item);
370 int idx = m_list.indexOf(item);
@@ -376,7 +375,62 @@ void LauncherModel::refresh()
376 }
375 }
377
376
378 Q_FOREACH (LauncherItem* item, toBeRemoved) {
377 Q_FOREACH (LauncherItem* item, toBeRemoved) {
379− requestRemove(item->appId());
378+ unpin(item->appId());
379+ }
380+
381+ bool changed = toBeRemoved.count() > 0;
382+
383+ // This brings the Launcher into sync with the settings backend again. There's an issue though:
384+ // If we can't find a .desktop file for an entry we need to skip it. That makes our settingsIndex
385+ // go out of sync with the actual index of items. So let's also use an addedIndex which reflects
386+ // the settingsIndex minus the skipped items.
387+ int addedIndex = 0;
388+
389+ // Now walk through settings and see if we need to add something
390+ for (int settingsIndex = 0; settingsIndex < m_settings->storedApplications().count(); ++settingsIndex) {
391+ QString entry = m_settings->storedApplications().at(settingsIndex);
392+ int itemIndex = -1;
393+ for (int i = 0; i < m_list.count(); ++i) {
394+ if (m_list.at(i)->appId() == entry) {
395+ itemIndex = i;
396+ break;
397+ }
398+ }
399+
400+ if (itemIndex == -1) {
401+ // Need to add it. Just add it into the addedIndex to keep same ordering as the list
402+ // in the settings.
403+ DesktopFileHandler desktopFile(entry);
404+ if (!desktopFile.isValid()) {
405+ qWarning() << "Couldn't find a .desktop file for" << entry << ". Skipping...";
406+ continue;
407+ }
408+
409+ LauncherItem *item = new LauncherItem(entry,
410+ desktopFile.displayName(),
411+ desktopFile.icon(),
412+ this);
413+ item->setPinned(true);
414+ beginInsertRows(QModelIndex(), addedIndex, addedIndex);
415+ m_list.insert(addedIndex, item);
416+ endInsertRows();
417+ changed = true;
418+ } else if (itemIndex != addedIndex) {
419+ // The item is already there, but it is in a different place than in the settings.
420+ // Move it to the addedIndex
421+ beginMoveRows(QModelIndex(), itemIndex, itemIndex, QModelIndex(), addedIndex);
422+ m_list.move(itemIndex, addedIndex);
423+ endMoveRows();
424+ changed = true;
425+ }
426+
427+ // Just like settingsIndex, this will increase with every item, except the ones we
428+ // skipped with the "continue" call above.
429+ addedIndex++;
430+ }
431+
432+ if (changed) {
433+ Q_EMIT hint();
380 }
434 }
381}
435}
382
436
plugins/Unity/Launcher/launchermodel.h+5−1
@@ -1,5 +1,5 @@
1/*
1/*
2− * Copyright 2013 Canonical Ltd.
2+ * Copyright 2013-2014 Canonical Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
5 * it under the terms of the GNU Lesser General Public License as published by
@@ -62,6 +62,8 @@ public Q_SLOTS:
62private:
62private:
63 void storeAppList();
63 void storeAppList();
64
64
65+ void unpin(const QString &appId);
66+
65private Q_SLOTS:
67private Q_SLOTS:
66 void countChanged(const QString &appId, int count);
68 void countChanged(const QString &appId, int count);
67 void countVisibleChanged(const QString &appId, int count);
69 void countVisibleChanged(const QString &appId, int count);
@@ -79,6 +81,8 @@ private:
79 DBusInterface *m_dbusIface;
81 DBusInterface *m_dbusIface;
80
82
81 ApplicationManagerInterface *m_appManager;
83 ApplicationManagerInterface *m_appManager;
84+
85+ friend class LauncherModelTest;
82};
86};
83
87
84#endif // LAUNCHERMODEL_H
88#endif // LAUNCHERMODEL_H
plugins/Unity/Session/CMakeLists.txt+5−1
@@ -5,6 +5,7 @@ pkg_search_module(GIO REQUIRED gio-2.0)
5include_directories(
5include_directories(
6 ${CMAKE_CURRENT_SOURCE_DIR}
6 ${CMAKE_CURRENT_SOURCE_DIR}
7 ${GIO_INCLUDE_DIRS}
7 ${GIO_INCLUDE_DIRS}
8+ ${libunity8-private_SOURCE_DIR}
8)
9)
9
10
10set(QMLSESSIONPLUGIN_SRC
11set(QMLSESSIONPLUGIN_SRC
@@ -18,7 +19,10 @@ add_library(UnitySession-qml MODULE
18 )
19 )
19
20
20qt5_use_modules(UnitySession-qml DBus Qml)
21qt5_use_modules(UnitySession-qml DBus Qml)
21−target_link_libraries(UnitySession-qml ${GIO_LDFLAGS})
22+target_link_libraries(UnitySession-qml
23+ unity8-private
24+ ${GIO_LDFLAGS}
25+ )
22
26
23# export the qmldir and qmltypes files
27# export the qmldir and qmltypes files
24add_unity8_plugin(Unity.Session 0.1 Unity/Session TARGETS UnitySession-qml)
28add_unity8_plugin(Unity.Session 0.1 Unity/Session TARGETS UnitySession-qml)
plugins/Unity/Session/Session.qmltypes+10
@@ -34,4 +34,14 @@ Module {
34 Method { name: "RequestReboot" }
34 Method { name: "RequestReboot" }
35 Method { name: "RequestShutdown" }
35 Method { name: "RequestShutdown" }
36 }
36 }
37+ Component {
38+ name: "OrientationLock"
39+ prototype: "QObject"
40+ exports: ["Unity.Session/OrientationLock 0.1"]
41+ isCreatable: false
42+ isSingleton: true
43+ exportMetaObjectRevisions: [0]
44+ Property { name: "enabled"; type: "bool"; isReadonly: true }
45+ Property { name: "savedOrientation"; type: "Qt::ScreenOrientation" }
46+ }
37}
47}
plugins/Unity/Session/dbusunitysessionservice.cpp+2−8
@@ -21,15 +21,9 @@
21#include <QDBusConnection>
21#include <QDBusConnection>
22#include <QDBusInterface>
22#include <QDBusInterface>
23
23
24−DBusUnitySessionService::DBusUnitySessionService() : QObject()
24+DBusUnitySessionService::DBusUnitySessionService()
25+ : UnityDBusObject("/com/canonical/Unity/Session", "com.canonical.Unity")
25{
26{
26− QDBusConnection connection = QDBusConnection::sessionBus();
27−
28− connection.registerService("com.canonical.Unity");
29− connection.registerObject("/com/canonical/Unity/Session", this,
30− QDBusConnection::ExportScriptableSignals
31− | QDBusConnection::ExportScriptableSlots
32− | QDBusConnection::ExportScriptableInvokables);
33}
27}
34
28
35DBusUnitySessionService::~DBusUnitySessionService()
29DBusUnitySessionService::~DBusUnitySessionService()
plugins/Unity/Session/dbusunitysessionservice.h+2−2
@@ -17,7 +17,7 @@
17#ifndef DBUSUNITYSESSIONSERVICE_H
17#ifndef DBUSUNITYSESSIONSERVICE_H
18#define DBUSUNITYSESSIONSERVICE_H
18#define DBUSUNITYSESSIONSERVICE_H
19
19
20−#include <QObject>
20+#include "unitydbusobject.h"
21
21
22/**
22/**
23 * DBusUnitySessionService provides com.canonical.Unity.Session dbus
23 * DBusUnitySessionService provides com.canonical.Unity.Session dbus
@@ -26,7 +26,7 @@
26 * com.canonical.Unity.Session interface provides public methods
26 * com.canonical.Unity.Session interface provides public methods
27 * and signals to handle Logout/Reboot/Shutdown.
27 * and signals to handle Logout/Reboot/Shutdown.
28 */
28 */
29−class DBusUnitySessionService : public QObject
29+class DBusUnitySessionService : public UnityDBusObject
30{
30{
31 Q_OBJECT
31 Q_OBJECT
32 Q_CLASSINFO("D-Bus Interface", "com.canonical.Unity.Session")
32 Q_CLASSINFO("D-Bus Interface", "com.canonical.Unity.Session")
plugins/Unity/Session/orientationlock.cpp+6−6
@@ -24,16 +24,16 @@ OrientationLock::OrientationLock(QObject *parent)
24 , m_enabled(false)
24 , m_enabled(false)
25 , m_savedOrientation(Qt::PortraitOrientation)
25 , m_savedOrientation(Qt::PortraitOrientation)
26{
26{
27− systemSettings = g_settings_new("com.ubuntu.touch.system");
27+ m_systemSettings = g_settings_new("com.ubuntu.touch.system");
28− g_signal_connect(systemSettings, "changed::rotation-lock",
28+ g_signal_connect(m_systemSettings, "changed::rotation-lock",
29 G_CALLBACK(OrientationLock::onEnabledChangedProxy), this);
29 G_CALLBACK(OrientationLock::onEnabledChangedProxy), this);
30− m_enabled = g_settings_get_boolean(systemSettings, "rotation-lock");
30+ m_enabled = g_settings_get_boolean(m_systemSettings, "rotation-lock");
31}
31}
32
32
33OrientationLock::~OrientationLock()
33OrientationLock::~OrientationLock()
34{
34{
35− g_signal_handlers_disconnect_by_data(systemSettings, this);
35+ g_signal_handlers_disconnect_by_data(m_systemSettings, this);
36− g_object_unref(systemSettings);
36+ g_object_unref(m_systemSettings);
37}
37}
38
38
39bool OrientationLock::enabled() const
39bool OrientationLock::enabled() const
@@ -54,7 +54,7 @@ void OrientationLock::onEnabledChangedProxy(GSettings */*settings*/, const gchar
54
54
55void OrientationLock::onEnabledChanged()
55void OrientationLock::onEnabledChanged()
56{
56{
57− const bool enabled = g_settings_get_boolean(systemSettings, "rotation-lock");
57+ const bool enabled = g_settings_get_boolean(m_systemSettings, "rotation-lock");
58 if (m_enabled != enabled) {
58 if (m_enabled != enabled) {
59 m_enabled = enabled;
59 m_enabled = enabled;
60 Q_EMIT enabledChanged();
60 Q_EMIT enabledChanged();
plugins/Unity/Session/orientationlock.h+1−3
@@ -19,7 +19,6 @@
19
19
20#include <gio/gio.h>
20#include <gio/gio.h>
21#include <QtCore/QObject>
21#include <QtCore/QObject>
22−#include <QtDBus/QDBusInterface>
23
22
24/**
23/**
25 * @brief The OrientationLock class exports orientation lock related properties to QML
24 * @brief The OrientationLock class exports orientation lock related properties to QML
@@ -52,8 +51,7 @@ private Q_SLOTS:
52 void onEnabledChanged();
51 void onEnabledChanged();
53
52
54private:
53private:
55− QDBusInterface *dbusInterface;
54+ GSettings *m_systemSettings;
56− GSettings *systemSettings;
57
55
58 bool m_enabled;
56 bool m_enabled;
59 Qt::ScreenOrientation m_savedOrientation;
57 Qt::ScreenOrientation m_savedOrientation;
plugins/Utils/Utils.qmltypes+6
@@ -106,6 +106,12 @@ Module {
106 Parameter { name: "row"; type: "int" }
106 Parameter { name: "row"; type: "int" }
107 }
107 }
108 }
108 }
109+ Component {
110+ name: "RelativeTimeFormatter"
111+ prototype: "TimeFormatter"
112+ exports: ["Utils/RelativeTimeFormatter 0.1"]
113+ exportMetaObjectRevisions: [0]
114+ }
109 Component {
115 Component {
110 name: "TimeFormatter"
116 name: "TimeFormatter"
111 prototype: "QObject"
117 prototype: "QObject"
plugins/Utils/relativetimeformatter.cpp+31−39
@@ -74,53 +74,45 @@ getDateProximity(GDateTime* now, GDateTime* time)
74 }
74 }
75
75
76 // did it happen yesterday?
76 // did it happen yesterday?
77− GDateTime* tomorrow = g_date_time_add_days(now, -1);
77+ GDateTime* yesterday = g_date_time_add_days(now, -1);
78 gint tom_year, tom_month, tom_day;
78 gint tom_year, tom_month, tom_day;
79− g_date_time_get_ymd(tomorrow, &tom_year, &tom_month, &tom_day);
79+ g_date_time_get_ymd(yesterday, &tom_year, &tom_month, &tom_day);
80− g_date_time_unref(tomorrow);
80+ g_date_time_unref(yesterday);
81 if ((tom_year == time_year) && (tom_month == time_month) && (tom_day == time_day)) {
81 if ((tom_year == time_year) && (tom_month == time_month) && (tom_day == time_day)) {
82 return DATE_PROXIMITY_YESTERDAY;
82 return DATE_PROXIMITY_YESTERDAY;
83 }
83 }
84
84
85 // does it happen tomorrow?
85 // does it happen tomorrow?
86− if (prox == DATE_PROXIMITY_FAR)
87− {
88− GDateTime* tomorrow = g_date_time_add_days(now, 1);
86+ GDateTime* tomorrow = g_date_time_add_days(now, 1);
89−
90− gint tom_year, tom_month, tom_day;
91− g_date_time_get_ymd(tomorrow, &tom_year, &tom_month, &tom_day);
87+ g_date_time_get_ymd(tomorrow, &tom_year, &tom_month, &tom_day);
92− g_date_time_unref(tomorrow);
88+ g_date_time_unref(tomorrow);
93− if ((tom_year == time_year) && (tom_month == time_month) && (tom_day == time_day)) {
89+ if ((tom_year == time_year) && (tom_month == time_month) && (tom_day == time_day)) {
94− return DATE_PROXIMITY_TOMORROW;
90+ return DATE_PROXIMITY_TOMORROW;
95− }
96 }
91 }
97
92
98 // does it happen this week?
93 // does it happen this week?
99− if (prox == DATE_PROXIMITY_FAR) {
100− if (g_date_time_compare(time, now) < 0) {
94+ if (g_date_time_compare(time, now) < 0) {
101− GDateTime* last_week = g_date_time_add_days(now, -6);
95+ GDateTime* last_week = g_date_time_add_days(now, -6);
102− GDateTime* last_week_bound = g_date_time_new_local(g_date_time_get_year(last_week),
96+ GDateTime* last_week_bound = g_date_time_new_local(g_date_time_get_year(last_week),
103− g_date_time_get_month(last_week),
97+ g_date_time_get_month(last_week),
104− g_date_time_get_day_of_month(last_week),
98+ g_date_time_get_day_of_month(last_week),
105− 0, 0, 0);
99+ 0, 0, 0);
106− if (g_date_time_compare(time, last_week_bound) >= 0)
100+ if (g_date_time_compare(time, last_week_bound) >= 0)
107− prox = DATE_PROXIMITY_LAST_WEEK;
101+ prox = DATE_PROXIMITY_LAST_WEEK;
108−
102+
109− g_date_time_unref(last_week);
103+ g_date_time_unref(last_week);
110− g_date_time_unref(last_week_bound);
104+ g_date_time_unref(last_week_bound);
111− } else {
105+ } else {
112− GDateTime* next_week = g_date_time_add_days(now, 6);
106+ GDateTime* next_week = g_date_time_add_days(now, 6);
113− GDateTime* next_week_bound = g_date_time_new_local(g_date_time_get_year(next_week),
107+ GDateTime* next_week_bound = g_date_time_new_local(g_date_time_get_year(next_week),
114− g_date_time_get_month(next_week),
108+ g_date_time_get_month(next_week),
115− g_date_time_get_day_of_month(next_week),
109+ g_date_time_get_day_of_month(next_week),
116− 23, 59, 59.9);
110+ 23, 59, 59.9);
117− if (g_date_time_compare(time, next_week_bound) <= 0)
111+ if (g_date_time_compare(time, next_week_bound) <= 0)
118− prox = DATE_PROXIMITY_NEXT_WEEK;
112+ prox = DATE_PROXIMITY_NEXT_WEEK;
119−
113+
120− g_date_time_unref(next_week);
114+ g_date_time_unref(next_week);
121− g_date_time_unref(next_week_bound);
115+ g_date_time_unref(next_week_bound);
122− }
123−
124 }
116 }
125
117
126 return prox;
118 return prox;
@@ -250,7 +242,7 @@ char* generate_full_format_string_at_time (GDateTime* now,
250
242
251QString RelativeTimeFormatter::format() const
243QString RelativeTimeFormatter::format() const
252{
244{
253− GDateTime* now = g_date_time_new_from_unix_utc(QDateTime::currentMSecsSinceEpoch() / 1000);
245+ GDateTime* now = g_date_time_new_now_local();
254 if (!now) { return QString(); }
246 if (!now) { return QString(); }
255
247
256 GDateTime* then = g_date_time_new_from_unix_local(time());
248 GDateTime* then = g_date_time_new_from_unix_local(time());
po/am.po+96−88
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-28 14:37+0000\n"
11+"PO-Revision-Date: 2014-11-06 00:53+0000\n"
12"Last-Translator: samson <Unknown>\n"
12"Last-Translator: samson <Unknown>\n"
13"Language-Team: Amharic <am@li.org>\n"
13"Language-Team: Amharic <am@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n > 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-07 06:52+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17231)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,45 +31,64 @@ msgstr "አቋራጭ ማጣበቂያ"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "አቋራጭ መለያያ"
32msgstr "አቋራጭ መለያያ"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "አካሉ ተቆልፏል"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ሀረግ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr "ብዙ ጊዜ የተሳሳተ የ ማለፊያ ኮድ ለማስገባት በ መሞከር ምክንያት ስልኩ ተቆልፏል"
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] "እባክዎን ይቆዩ %1 ደቂቃ እና ከዛ እንደ ገና ይምክሩ…"
51+msgstr[1] "እባክዎን ይቆዩ %1 ደቂቃዎች እና ከዛ እንደ ገና ይምክሩ…"
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr "መውጫ"
55msgstr "መውጫ"
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr "በእርግጥ መውጣት ይፈልጋሉ?"
59msgstr "በእርግጥ መውጣት ይፈልጋሉ?"
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr "አይ"
64msgstr "አይ"
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr "አዎ"
69msgstr "አዎ"
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr "ማጥፊያ"
73msgstr "ማጥፊያ"
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr "በእርግጥ ማጥፋት ይፈልጋሉ?"
77msgstr "በእርግጥ ማጥፋት ይፈልጋሉ?"
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr "እንደገና ማስነሻ"
81msgstr "እንደገና ማስነሻ"
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr "በእርግጥ እንደገና ማስነሳት ይፈልጋሉ?"
85msgstr "በእርግጥ እንደገና ማስነሳት ይፈልጋሉ?"
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr "ሐይል"
89msgstr "ሐይል"
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
@@ -76,15 +96,15 @@ msgstr ""
76"በእርግጥ ሐይሉን ማጥፋት\n"
96"በእርግጥ ሐይሉን ማጥፋት\n"
77"ይፈልጋሉ?"
97"ይፈልጋሉ?"
78
98
79−#: qml/Components/Dialogs.qml:147
99+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
100msgid "Power off"
81msgstr "ማጥፊያ"
101msgstr "ማጥፊያ"
82
102
83−#: qml/Components/Dialogs.qml:157
103+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
104msgid "Restart"
85msgstr "እንደገና ማስጀመሪያ"
105msgstr "እንደገና ማስጀመሪያ"
86
106
87−#: qml/Components/Dialogs.qml:167
107+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
108msgid "Cancel"
89msgstr "መሰረዣ"
109msgstr "መሰረዣ"
90
110
@@ -116,59 +136,46 @@ msgstr "መዝጊያ"
116msgid "Swipe up again to close the settings screen"
136msgid "Swipe up again to close the settings screen"
117msgstr "የማሰናጃውን መመልከቻ ለመዝጋት እንደገና ወደ ላይ ይጥረጉ"
137msgstr "የማሰናጃውን መመልከቻ ለመዝጋት እንደገና ወደ ላይ ይጥረጉ"
118
138
119−#: qml/Components/EdgeDemo.qml:198
139+#: qml/Components/EdgeDemo.qml:201
120msgid "Left edge"
140msgid "Left edge"
121msgstr "የግራ ጠርዝ"
141msgstr "የግራ ጠርዝ"
122
142
123−#: qml/Components/EdgeDemo.qml:199
143+#: qml/Components/EdgeDemo.qml:202
124msgid "Swipe from the left to reveal the launcher for quick access to apps"
144msgid "Swipe from the left to reveal the launcher for quick access to apps"
125msgstr "ከ ግራ በኩል ወደ ቀኝ ይጥረጉ በፍጥነት መተግበሪያዎች ጋር ለመድረስ እና ለማስጀመር"
145msgstr "ከ ግራ በኩል ወደ ቀኝ ይጥረጉ በፍጥነት መተግበሪያዎች ጋር ለመድረስ እና ለማስጀመር"
126
146
127−#: qml/Components/EdgeDemo.qml:226
147+#: qml/Components/EdgeDemo.qml:229
128msgid "Well done"
148msgid "Well done"
129msgstr "ጥሩ አድረገዋል"
149msgstr "ጥሩ አድረገዋል"
130
150
131−#: qml/Components/EdgeDemo.qml:227
151+#: qml/Components/EdgeDemo.qml:230
132msgid ""
152msgid ""
133"You have now mastered the edge gestures and can start using the "
153"You have now mastered the edge gestures and can start using the "
134"phone<br><br>Tap on the screen to start"
154"phone<br><br>Tap on the screen to start"
135msgstr ""
155msgstr ""
136"አሁን የ ጠርዝ እንቅስቃሴን አውቀዋል እና መጀመር ይችላሉ ስልኩን መጠቀም <br><br>መመልከቻውን መታ ያድርጉ ለመጀመር"
156"አሁን የ ጠርዝ እንቅስቃሴን አውቀዋል እና መጀመር ይችላሉ ስልኩን መጠቀም <br><br>መመልከቻውን መታ ያድርጉ ለመጀመር"
137
157
138−#: qml/Components/Lockscreen.qml:167
158+#: qml/Components/Lockscreen.qml:223
139−msgid "Please wait"
159+msgid "Return to Call"
140−msgstr "እባክዎን ይቆዩ"
160+msgstr "ወደ ጥሪ መመለሻ"
141−
142−#: qml/Components/Lockscreen.qml:172
143−msgid "Too many incorrect attempts"
144−msgstr "በርካታ የተሳሳቱ ሙከራዎች"
145
161
146−#: qml/Components/Lockscreen.qml:206
162+#: qml/Components/Lockscreen.qml:223
147msgid "Emergency Call"
163msgid "Emergency Call"
148msgstr "የ ድንገተኛ ጥሪ"
164msgstr "የ ድንገተኛ ጥሪ"
149
165
150−#: qml/Components/Lockscreen.qml:226
166+#: qml/Components/Lockscreen.qml:255
151msgid "OK"
167msgid "OK"
152msgstr "እሺ"
168msgstr "እሺ"
153
169
154−#: qml/Components/PassphraseLockscreen.qml:61
155−#, qt-format
156−msgid "Hello %1"
157−msgstr "ሰላም %1"
158−
159−#: qml/Components/PassphraseLockscreen.qml:61
160−msgid "Hello"
161−msgstr "ሰላም"
162−
163−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
170+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
164msgid "See less"
171msgid "See less"
165msgstr "አነስተኛ መመልከቻ"
172msgstr "አነስተኛ መመልከቻ"
166
173
167−#: qml/Dash/GenericScopeView.qml:411
174+#: qml/Dash/GenericScopeView.qml:434
168msgid "See all"
175msgid "See all"
169msgstr "ሁሉንም መመልከቻ"
176msgstr "ሁሉንም መመልከቻ"
170
177
171−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
178+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
172#: qml/Panel/SearchIndicator.qml:27
179#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
180msgid "Search"
174msgstr "መፈለጊያ"
181msgstr "መፈለጊያ"
@@ -205,15 +212,23 @@ msgstr "ግምገማ መጨመሪያ"
205msgid "Send"
212msgid "Send"
206msgstr "መላኪያ"
213msgstr "መላኪያ"
207
214
215+#: qml/Dash/PullToRefreshScopeStyle.qml:55
216+msgid "Pull to refresh…"
217+msgstr "ይሳቡ ለማነቃቃት…"
218+
219+#: qml/Dash/PullToRefreshScopeStyle.qml:60
220+msgid "Release to refresh…"
221+msgstr "ይልቀቁ ለማነቃቃት…"
222+
208−#: qml/Dash/ScopesOverview.qml:206
223+#: qml/Dash/ScopesOverview.qml:215
209msgid "Manage Scopes"
224msgid "Manage Scopes"
210msgstr "የ ክልል አስተዳዳሪ"
225msgstr "የ ክልል አስተዳዳሪ"
211
226
212−#: qml/Dash/ScopesOverview.qml:428
227+#: qml/Dash/ScopesOverview.qml:437
213msgid "Done"
228msgid "Done"
214msgstr "ጨርሷል"
229msgstr "ጨርሷል"
215
230
216−#: qml/Dash/ScopesOverview.qml:454
231+#: qml/Dash/ScopesOverview.qml:463
217msgid "Store"
232msgid "Store"
218msgstr "ማስቀመጫ"
233msgstr "ማስቀመጫ"
219
234
@@ -225,9 +240,9 @@ msgstr "የምወዳቸው"
225msgid "All"
240msgid "All"
226msgstr "ሁሉንም"
241msgstr "ሁሉንም"
227
242
228−#: qml/Greeter/Greeter.qml:157
243+#: qml/Greeter/Greeter.qml:174
229−msgid "Swipe to unlock"
244+msgid "Unlock"
230−msgstr "ለመክፈት ይጥረጉ"
245+msgstr "መክፈቻ"
231
246
232#: qml/Hud/HudParametrizedActionsPage.qml:139
247#: qml/Hud/HudParametrizedActionsPage.qml:139
233msgid "Confirm"
248msgid "Confirm"
@@ -249,51 +264,43 @@ msgstr "አሁን ይናገሩ..."
249msgid "Speaking..."
264msgid "Speaking..."
250msgstr "በመናገር ላይ..."
265msgstr "በመናገር ላይ..."
251
266
252−#: qml/Notifications/NotificationMenuItemFactory.qml:108
267+#: qml/Notifications/NotificationMenuItemFactory.qml:116
253msgid "Show password"
268msgid "Show password"
254msgstr "የመግቢያ ቃል ማሳያ"
269msgstr "የመግቢያ ቃል ማሳያ"
255
270
256−#: qml/Notifications/NotificationMenuItemFactory.qml:124
257−msgid "Enter SIM PIN"
258−msgstr "ሲም ፒን ያስገቡ"
259−
260−#: qml/Notifications/NotificationMenuItemFactory.qml:125
261−msgid "Sorry, incorrect PIN"
262−msgstr "አዝናለሁ የተሳሳተ ፒን"
263−
264−#: qml/Panel/ActiveCallHint.qml:77
271+#: qml/Panel/ActiveCallHint.qml:79
265msgid "Tap to return to call..."
272msgid "Tap to return to call..."
266msgstr "ወደ ጥሪው ለመመለስ መታ ያድርጉ..."
273msgstr "ወደ ጥሪው ለመመለስ መታ ያድርጉ..."
267
274
268−#: qml/Panel/ActiveCallHint.qml:90
275+#: qml/Panel/ActiveCallHint.qml:92
269msgid "Conference"
276msgid "Conference"
270msgstr "ስብሰባ"
277msgstr "ስብሰባ"
271
278
272−#: qml/Panel/Indicators/MenuItemFactory.qml:600
279+#: qml/Panel/Indicators/MenuItemFactory.qml:615
273msgid "Nothing is playing"
280msgid "Nothing is playing"
274msgstr "ምንም አይጫወትም"
281msgstr "ምንም አይጫወትም"
275
282
276−#: qml/Panel/Indicators/MenuItemFactory.qml:748
283+#: qml/Panel/Indicators/MenuItemFactory.qml:763
277msgid "In queue…"
284msgid "In queue…"
278msgstr "ወረፋ በመጠበቅ ላይ…"
285msgstr "ወረፋ በመጠበቅ ላይ…"
279
286
280−#: qml/Panel/Indicators/MenuItemFactory.qml:752
287+#: qml/Panel/Indicators/MenuItemFactory.qml:767
281msgid "Downloading"
288msgid "Downloading"
282msgstr "በማውረድ ላይ"
289msgstr "በማውረድ ላይ"
283
290
284−#: qml/Panel/Indicators/MenuItemFactory.qml:754
291+#: qml/Panel/Indicators/MenuItemFactory.qml:769
285msgid "Paused, tap to resume"
292msgid "Paused, tap to resume"
286msgstr "ማስቆሚያ: ለመቀጠል መታ ያድርጉ"
293msgstr "ማስቆሚያ: ለመቀጠል መታ ያድርጉ"
287
294
288−#: qml/Panel/Indicators/MenuItemFactory.qml:756
295+#: qml/Panel/Indicators/MenuItemFactory.qml:771
289msgid "Canceled"
296msgid "Canceled"
290msgstr "ተሰርዟል"
297msgstr "ተሰርዟል"
291
298
292−#: qml/Panel/Indicators/MenuItemFactory.qml:758
299+#: qml/Panel/Indicators/MenuItemFactory.qml:773
293msgid "Finished"
300msgid "Finished"
294msgstr "ጨርሷል"
301msgstr "ጨርሷል"
295
302
296−#: qml/Panel/Indicators/MenuItemFactory.qml:760
303+#: qml/Panel/Indicators/MenuItemFactory.qml:775
297msgid "Failed, tap to retry"
304msgid "Failed, tap to retry"
298msgstr "አልተቻለም: እንደገና ለመሞከር መታ ያድርጉ"
305msgstr "አልተቻለም: እንደገና ለመሞከር መታ ያድርጉ"
299
306
@@ -305,45 +312,49 @@ msgstr "ሲም መክፈቻ"
305msgid "Roaming"
312msgid "Roaming"
306msgstr "ማዘዋወሪያ"
313msgstr "ማዘዋወሪያ"
307
314
308−#: qml/Shell.qml:320
315+#: qml/Shell.qml:381
309−msgid "Enter your passphrase"
316+msgid "Enter passphrase"
310−msgstr "የማለፊያ ሐረግ ያስገቡ"
317+msgstr "የ ማለፊያ ሀረግ ያስገቡ"
311
318
312−#: qml/Shell.qml:321
319+#: qml/Shell.qml:382
313msgid "Sorry, incorrect passphrase"
320msgid "Sorry, incorrect passphrase"
314msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
321msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
315
322
316−#: qml/Shell.qml:323
323+#: qml/Shell.qml:383
324+msgid "Please re-enter"
325+msgstr "እባክዎን እንደገና-ያስገቡ"
326+
327+#: qml/Shell.qml:385
317−msgid "Enter your passcode"
328+msgid "Enter passcode"
318−msgstr "የ እርስዎን የማለፊያ ኮድ ያስገቡ"
329+msgstr "የ ማለፊያ ኮድ ያስገቡ"
319
330
320−#: qml/Shell.qml:324
331+#: qml/Shell.qml:386
321msgid "Sorry, incorrect passcode"
332msgid "Sorry, incorrect passcode"
322msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
333msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
323
334
324−#: qml/Shell.qml:327
335+#: qml/Shell.qml:389
325#, qt-format
336#, qt-format
326−msgid "Enter your %1"
337+msgid "Enter %1"
327−msgstr "ያስገቡ የ እርስዎን %1"
338+msgstr "ማስገቢያ %1"
328
339
329−#: qml/Shell.qml:328
340+#: qml/Shell.qml:390
330#, qt-format
341#, qt-format
331msgid "Sorry, incorrect %1"
342msgid "Sorry, incorrect %1"
332msgstr "አዝናለሁ: የተሳሳተ%1"
343msgstr "አዝናለሁ: የተሳሳተ%1"
333
344
334−#: qml/Shell.qml:363
345+#: qml/Shell.qml:431
335msgid "Sorry, incorrect passphrase."
346msgid "Sorry, incorrect passphrase."
336msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
347msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
337
348
338−#: qml/Shell.qml:364
349+#: qml/Shell.qml:432
339msgid "Sorry, incorrect passcode."
350msgid "Sorry, incorrect passcode."
340msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
351msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
341
352
342−#: qml/Shell.qml:365
353+#: qml/Shell.qml:433
343msgid "This will be your last attempt."
354msgid "This will be your last attempt."
344msgstr "ይህ የመጨረሻ ሙከራዎ ነው"
355msgstr "ይህ የመጨረሻ ሙከራዎ ነው"
345
356
346−#: qml/Shell.qml:367
357+#: qml/Shell.qml:435
347msgid ""
358msgid ""
348"If passphrase is entered incorrectly, your phone will conduct a factory "
359"If passphrase is entered incorrectly, your phone will conduct a factory "
349"reset and all personal data will be deleted."
360"reset and all personal data will be deleted."
@@ -351,13 +362,10 @@ msgstr ""
351"የተሳሳተ የማለፊያ ሐረግ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
362"የተሳሳተ የማለፊያ ሐረግ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
352"ይጠፋል"
363"ይጠፋል"
353
364
354−#: qml/Shell.qml:368
365+#: qml/Shell.qml:436
355msgid ""
366msgid ""
356"If passcode is entered incorrectly, your phone will conduct a factory reset "
367"If passcode is entered incorrectly, your phone will conduct a factory reset "
357"and all personal data will be deleted."
368"and all personal data will be deleted."
358msgstr ""
369msgstr ""
359"የተሳሳተ የማለፊያ ኮድ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
370"የተሳሳተ የማለፊያ ኮድ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
360"ይጠፋል"
371"ይጠፋል"
361−
362−#~ msgid "Manage Dash"
363−#~ msgstr "የ ዳሽ አስተዳዳሪ"
po/ar.po+92−80
@@ -7,15 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-05-22 08:22+0000\n"
11"PO-Revision-Date: 2014-05-22 08:22+0000\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
13"Language-Team: Arabic <ar@li.org>\n"
13"Language-Team: Arabic <ar@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
18+"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
19+"X-Launchpad-Export-Date: 2014-11-06 06:39+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
20+"X-Generator: Launchpad (build 17223)\n"
19
21
20#: plugins/LightDM/Greeter.cpp:130
22#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
23msgid "Password: "
@@ -30,59 +32,78 @@ msgstr ""
30msgid "Unpin shortcut"
32msgid "Unpin shortcut"
31msgstr ""
33msgstr ""
32
34
33−#: qml/Components/Dialogs.qml:70
35+#: qml/Components/DelayedLockscreen.qml:47
36+msgid "Device Locked"
37+msgstr ""
38+
39+#: qml/Components/DelayedLockscreen.qml:62
40+msgid "You have been locked out due to too many failed passphrase attempts."
41+msgstr ""
42+
43+#: qml/Components/DelayedLockscreen.qml:63
44+msgid "You have been locked out due to too many failed passcode attempts."
45+msgstr ""
46+
47+#: qml/Components/DelayedLockscreen.qml:72
48+#, qt-format
49+msgid "Please wait %1 minute and then try again…"
50+msgid_plural "Please wait %1 minutes and then try again…"
51+msgstr[0] ""
52+msgstr[1] ""
53+
54+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
55msgid "Log out"
35msgstr ""
56msgstr ""
36
57
37−#: qml/Components/Dialogs.qml:71
58+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
59msgid "Are you sure you want to log out?"
39msgstr ""
60msgstr ""
40
61
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
62+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
63+#: qml/Components/Dialogs.qml:126
43msgid "No"
64msgid "No"
44msgstr ""
65msgstr ""
45
66
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
67+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
68+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
69msgid "Yes"
49msgstr ""
70msgstr ""
50
71
51−#: qml/Components/Dialogs.qml:94
72+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
73msgid "Shut down"
53msgstr ""
74msgstr ""
54
75
55−#: qml/Components/Dialogs.qml:95
76+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
77msgid "Are you sure you want to shut down?"
57msgstr ""
78msgstr ""
58
79
59−#: qml/Components/Dialogs.qml:119
80+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
81msgid "Reboot"
61msgstr ""
82msgstr ""
62
83
63−#: qml/Components/Dialogs.qml:120
84+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
85msgid "Are you sure you want to reboot?"
65msgstr ""
86msgstr ""
66
87
67−#: qml/Components/Dialogs.qml:144
88+#: qml/Components/Dialogs.qml:148
68msgid "Power"
89msgid "Power"
69msgstr ""
90msgstr ""
70
91
71−#: qml/Components/Dialogs.qml:145
92+#: qml/Components/Dialogs.qml:149
72msgid ""
93msgid ""
73"Are you sure you would like\n"
94"Are you sure you would like\n"
74"to power off?"
95"to power off?"
75msgstr ""
96msgstr ""
76
97
77−#: qml/Components/Dialogs.qml:147
98+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
99msgid "Power off"
79msgstr ""
100msgstr ""
80
101
81−#: qml/Components/Dialogs.qml:157
102+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
103msgid "Restart"
83msgstr ""
104msgstr ""
84
105
85−#: qml/Components/Dialogs.qml:167
106+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
107msgid "Cancel"
87msgstr ""
108msgstr ""
88
109
@@ -114,20 +135,20 @@ msgstr "أغلق"
114msgid "Swipe up again to close the settings screen"
135msgid "Swipe up again to close the settings screen"
115msgstr "اسحب اصعبك لأعلى مرة أخرى لغلق شاشة الإعدادات"
136msgstr "اسحب اصعبك لأعلى مرة أخرى لغلق شاشة الإعدادات"
116
137
117−#: qml/Components/EdgeDemo.qml:198
138+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
139msgid "Left edge"
119msgstr "الحافة اليسرى"
140msgstr "الحافة اليسرى"
120
141
121−#: qml/Components/EdgeDemo.qml:199
142+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
143msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
144msgstr ""
124"اسحب أصبعك من الحافة اليسرى لإظهار شريط يونتي للوصول السريع للتطبيقات"
145"اسحب أصبعك من الحافة اليسرى لإظهار شريط يونتي للوصول السريع للتطبيقات"
125
146
126−#: qml/Components/EdgeDemo.qml:226
147+#: qml/Components/EdgeDemo.qml:229
127msgid "Well done"
148msgid "Well done"
128msgstr "أحسنت!"
149msgstr "أحسنت!"
129
150
130−#: qml/Components/EdgeDemo.qml:227
151+#: qml/Components/EdgeDemo.qml:230
131msgid ""
152msgid ""
132"You have now mastered the edge gestures and can start using the "
153"You have now mastered the edge gestures and can start using the "
133"phone<br><br>Tap on the screen to start"
154"phone<br><br>Tap on the screen to start"
@@ -135,40 +156,27 @@ msgstr ""
135"أنت الآن بارع في إيماءات الحواف ويمكنك البدء باستخدام هاتفك<br><br>انقر على "
156"أنت الآن بارع في إيماءات الحواف ويمكنك البدء باستخدام هاتفك<br><br>انقر على "
136"الشاشة للبدء"
157"الشاشة للبدء"
137
158
138−#: qml/Components/Lockscreen.qml:167
159+#: qml/Components/Lockscreen.qml:223
139−msgid "Please wait"
160+msgid "Return to Call"
140−msgstr ""
141−
142−#: qml/Components/Lockscreen.qml:172
143−msgid "Too many incorrect attempts"
144msgstr ""
161msgstr ""
145
162
146−#: qml/Components/Lockscreen.qml:206
163+#: qml/Components/Lockscreen.qml:223
147msgid "Emergency Call"
164msgid "Emergency Call"
148msgstr "مكالمة طوارئ"
165msgstr "مكالمة طوارئ"
149
166
150−#: qml/Components/Lockscreen.qml:226
167+#: qml/Components/Lockscreen.qml:255
151msgid "OK"
168msgid "OK"
152msgstr ""
169msgstr ""
153
170
154−#: qml/Components/PassphraseLockscreen.qml:61
155−#, qt-format
156−msgid "Hello %1"
157−msgstr "مرحبا %1"
158−
159−#: qml/Components/PassphraseLockscreen.qml:61
160−msgid "Hello"
161−msgstr "مرحبًا"
162−
163−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
171+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
164msgid "See less"
172msgid "See less"
165msgstr "شاهد أقل"
173msgstr "شاهد أقل"
166
174
167−#: qml/Dash/GenericScopeView.qml:411
175+#: qml/Dash/GenericScopeView.qml:434
168msgid "See all"
176msgid "See all"
169msgstr ""
177msgstr ""
170
178
171−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
172#: qml/Panel/SearchIndicator.qml:27
180#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
181msgid "Search"
174msgstr "ابحث"
182msgstr "ابحث"
@@ -205,15 +213,23 @@ msgstr "أضف تعليق"
205msgid "Send"
213msgid "Send"
206msgstr "أرسل"
214msgstr "أرسل"
207
215
216+#: qml/Dash/PullToRefreshScopeStyle.qml:55
217+msgid "Pull to refresh…"
218+msgstr ""
219+
220+#: qml/Dash/PullToRefreshScopeStyle.qml:60
221+msgid "Release to refresh…"
222+msgstr ""
223+
208−#: qml/Dash/ScopesOverview.qml:206
224+#: qml/Dash/ScopesOverview.qml:215
209msgid "Manage Scopes"
225msgid "Manage Scopes"
210msgstr ""
226msgstr ""
211
227
212−#: qml/Dash/ScopesOverview.qml:428
228+#: qml/Dash/ScopesOverview.qml:437
213msgid "Done"
229msgid "Done"
214msgstr ""
230msgstr ""
215
231
216−#: qml/Dash/ScopesOverview.qml:454
232+#: qml/Dash/ScopesOverview.qml:463
217msgid "Store"
233msgid "Store"
218msgstr ""
234msgstr ""
219
235
@@ -225,9 +241,9 @@ msgstr ""
225msgid "All"
241msgid "All"
226msgstr ""
242msgstr ""
227
243
228−#: qml/Greeter/Greeter.qml:157
244+#: qml/Greeter/Greeter.qml:174
229−msgid "Swipe to unlock"
245+msgid "Unlock"
230−msgstr "اسحب لفتح القفل"
246+msgstr ""
231
247
232#: qml/Hud/HudParametrizedActionsPage.qml:139
248#: qml/Hud/HudParametrizedActionsPage.qml:139
233msgid "Confirm"
249msgid "Confirm"
@@ -249,51 +265,43 @@ msgstr "تكلم الآن..."
249msgid "Speaking..."
265msgid "Speaking..."
250msgstr "تتكلم الآن..."
266msgstr "تتكلم الآن..."
251
267
252−#: qml/Notifications/NotificationMenuItemFactory.qml:108
268+#: qml/Notifications/NotificationMenuItemFactory.qml:116
253msgid "Show password"
269msgid "Show password"
254msgstr "عرض كلمة السر"
270msgstr "عرض كلمة السر"
255
271
256−#: qml/Notifications/NotificationMenuItemFactory.qml:124
257−msgid "Enter SIM PIN"
258−msgstr ""
259−
260−#: qml/Notifications/NotificationMenuItemFactory.qml:125
261−msgid "Sorry, incorrect PIN"
262−msgstr ""
263−
264−#: qml/Panel/ActiveCallHint.qml:77
272+#: qml/Panel/ActiveCallHint.qml:79
265msgid "Tap to return to call..."
273msgid "Tap to return to call..."
266msgstr ""
274msgstr ""
267
275
268−#: qml/Panel/ActiveCallHint.qml:90
276+#: qml/Panel/ActiveCallHint.qml:92
269msgid "Conference"
277msgid "Conference"
270msgstr ""
278msgstr ""
271
279
272−#: qml/Panel/Indicators/MenuItemFactory.qml:600
280+#: qml/Panel/Indicators/MenuItemFactory.qml:615
273msgid "Nothing is playing"
281msgid "Nothing is playing"
274msgstr ""
282msgstr ""
275
283
276−#: qml/Panel/Indicators/MenuItemFactory.qml:748
284+#: qml/Panel/Indicators/MenuItemFactory.qml:763
277msgid "In queue…"
285msgid "In queue…"
278msgstr ""
286msgstr ""
279
287
280−#: qml/Panel/Indicators/MenuItemFactory.qml:752
288+#: qml/Panel/Indicators/MenuItemFactory.qml:767
281msgid "Downloading"
289msgid "Downloading"
282msgstr ""
290msgstr ""
283
291
284−#: qml/Panel/Indicators/MenuItemFactory.qml:754
292+#: qml/Panel/Indicators/MenuItemFactory.qml:769
285msgid "Paused, tap to resume"
293msgid "Paused, tap to resume"
286msgstr ""
294msgstr ""
287
295
288−#: qml/Panel/Indicators/MenuItemFactory.qml:756
296+#: qml/Panel/Indicators/MenuItemFactory.qml:771
289msgid "Canceled"
297msgid "Canceled"
290msgstr ""
298msgstr ""
291
299
292−#: qml/Panel/Indicators/MenuItemFactory.qml:758
300+#: qml/Panel/Indicators/MenuItemFactory.qml:773
293msgid "Finished"
301msgid "Finished"
294msgstr ""
302msgstr ""
295
303
296−#: qml/Panel/Indicators/MenuItemFactory.qml:760
304+#: qml/Panel/Indicators/MenuItemFactory.qml:775
297msgid "Failed, tap to retry"
305msgid "Failed, tap to retry"
298msgstr ""
306msgstr ""
299
307
@@ -305,51 +313,55 @@ msgstr ""
305msgid "Roaming"
313msgid "Roaming"
306msgstr ""
314msgstr ""
307
315
308−#: qml/Shell.qml:320
316+#: qml/Shell.qml:381
309−msgid "Enter your passphrase"
317+msgid "Enter passphrase"
310msgstr ""
318msgstr ""
311
319
312−#: qml/Shell.qml:321
320+#: qml/Shell.qml:382
313msgid "Sorry, incorrect passphrase"
321msgid "Sorry, incorrect passphrase"
314msgstr ""
322msgstr ""
315
323
316−#: qml/Shell.qml:323
324+#: qml/Shell.qml:383
325+msgid "Please re-enter"
326+msgstr ""
327+
328+#: qml/Shell.qml:385
317−msgid "Enter your passcode"
329+msgid "Enter passcode"
318msgstr ""
330msgstr ""
319
331
320−#: qml/Shell.qml:324
332+#: qml/Shell.qml:386
321msgid "Sorry, incorrect passcode"
333msgid "Sorry, incorrect passcode"
322msgstr ""
334msgstr ""
323
335
324−#: qml/Shell.qml:327
336+#: qml/Shell.qml:389
325#, qt-format
337#, qt-format
326−msgid "Enter your %1"
338+msgid "Enter %1"
327msgstr ""
339msgstr ""
328
340
329−#: qml/Shell.qml:328
341+#: qml/Shell.qml:390
330#, qt-format
342#, qt-format
331msgid "Sorry, incorrect %1"
343msgid "Sorry, incorrect %1"
332msgstr ""
344msgstr ""
333
345
334−#: qml/Shell.qml:363
346+#: qml/Shell.qml:431
335msgid "Sorry, incorrect passphrase."
347msgid "Sorry, incorrect passphrase."
336msgstr ""
348msgstr ""
337
349
338−#: qml/Shell.qml:364
350+#: qml/Shell.qml:432
339msgid "Sorry, incorrect passcode."
351msgid "Sorry, incorrect passcode."
340msgstr ""
352msgstr ""
341
353
342−#: qml/Shell.qml:365
354+#: qml/Shell.qml:433
343msgid "This will be your last attempt."
355msgid "This will be your last attempt."
344msgstr ""
356msgstr ""
345
357
346−#: qml/Shell.qml:367
358+#: qml/Shell.qml:435
347msgid ""
359msgid ""
348"If passphrase is entered incorrectly, your phone will conduct a factory "
360"If passphrase is entered incorrectly, your phone will conduct a factory "
349"reset and all personal data will be deleted."
361"reset and all personal data will be deleted."
350msgstr ""
362msgstr ""
351
363
352−#: qml/Shell.qml:368
364+#: qml/Shell.qml:436
353msgid ""
365msgid ""
354"If passcode is entered incorrectly, your phone will conduct a factory reset "
366"If passcode is entered incorrectly, your phone will conduct a factory reset "
355"and all personal data will be deleted."
367"and all personal data will be deleted."
po/ast.po+97−88
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-28 09:02+0000\n"
11+"PO-Revision-Date: 2014-10-09 09:49+0000\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
13"Language-Team: Asturian <ast@li.org>\n"
13"Language-Team: Asturian <ast@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:39+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,45 +31,65 @@ msgstr "Anclar"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Desanclar"
32msgstr "Desanclar"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Preséu bloquiáu"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr "Quedasti bloquiáu polos escesivos intentos fallíos de frase de pasu."
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+"Quedasti bloquiáu polos escesivos intentos fallíos de códigu de pasu."
46+
47+#: qml/Components/DelayedLockscreen.qml:72
48+#, qt-format
49+msgid "Please wait %1 minute and then try again…"
50+msgid_plural "Please wait %1 minutes and then try again…"
51+msgstr[0] "Espera %1 minutu y vuelvi a intentalo…"
52+msgstr[1] "Espera %1 minutos y vuelvi a intentalo…"
53+
54+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
55msgid "Log out"
35msgstr "Zarrar sesión"
56msgstr "Zarrar sesión"
36
57
37−#: qml/Components/Dialogs.qml:71
58+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
59msgid "Are you sure you want to log out?"
39msgstr "De xuru que quies zarrar la sesión?"
60msgstr "De xuru que quies zarrar la sesión?"
40
61
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
62+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
63+#: qml/Components/Dialogs.qml:126
43msgid "No"
64msgid "No"
44msgstr "Non"
65msgstr "Non"
45
66
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
67+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
68+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
69msgid "Yes"
49msgstr "Sí"
70msgstr "Sí"
50
71
51−#: qml/Components/Dialogs.qml:94
72+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
73msgid "Shut down"
53msgstr "Apagar"
74msgstr "Apagar"
54
75
55−#: qml/Components/Dialogs.qml:95
76+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
77msgid "Are you sure you want to shut down?"
57msgstr "De xuru que quies apagar?"
78msgstr "De xuru que quies apagar?"
58
79
59−#: qml/Components/Dialogs.qml:119
80+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
81msgid "Reboot"
61msgstr "Reaniciar"
82msgstr "Reaniciar"
62
83
63−#: qml/Components/Dialogs.qml:120
84+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
85msgid "Are you sure you want to reboot?"
65msgstr "De xuru que quies reaniciar?"
86msgstr "De xuru que quies reaniciar?"
66
87
67−#: qml/Components/Dialogs.qml:144
88+#: qml/Components/Dialogs.qml:148
68msgid "Power"
89msgid "Power"
69msgstr "Enerxía"
90msgstr "Enerxía"
70
91
71−#: qml/Components/Dialogs.qml:145
92+#: qml/Components/Dialogs.qml:149
72msgid ""
93msgid ""
73"Are you sure you would like\n"
94"Are you sure you would like\n"
74"to power off?"
95"to power off?"
@@ -76,15 +97,15 @@ msgstr ""
76"De xuru que quies\n"
97"De xuru que quies\n"
77"apagar?"
98"apagar?"
78
99
79−#: qml/Components/Dialogs.qml:147
100+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
101msgid "Power off"
81msgstr "Apagar"
102msgstr "Apagar"
82
103
83−#: qml/Components/Dialogs.qml:157
104+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
105msgid "Restart"
85msgstr "Reaniciar"
106msgstr "Reaniciar"
86
107
87−#: qml/Components/Dialogs.qml:167
108+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
109msgid "Cancel"
89msgstr "Encaboxar"
110msgstr "Encaboxar"
90
111
@@ -116,21 +137,21 @@ msgstr "Zarrar"
116msgid "Swipe up again to close the settings screen"
137msgid "Swipe up again to close the settings screen"
117msgstr "Esliza hacia arriba pa zarrar la pantalla d'axustes"
138msgstr "Esliza hacia arriba pa zarrar la pantalla d'axustes"
118
139
119−#: qml/Components/EdgeDemo.qml:198
140+#: qml/Components/EdgeDemo.qml:201
120msgid "Left edge"
141msgid "Left edge"
121msgstr "Berbesu esquierdu"
142msgstr "Berbesu esquierdu"
122
143
123−#: qml/Components/EdgeDemo.qml:199
144+#: qml/Components/EdgeDemo.qml:202
124msgid "Swipe from the left to reveal the launcher for quick access to apps"
145msgid "Swipe from the left to reveal the launcher for quick access to apps"
125msgstr ""
146msgstr ""
126"Esliza'l deu dende la esquierda p'amosar el llanzador y acceder rápidamente "
147"Esliza'l deu dende la esquierda p'amosar el llanzador y acceder rápidamente "
127"a les aplicaciones"
148"a les aplicaciones"
128
149
129−#: qml/Components/EdgeDemo.qml:226
150+#: qml/Components/EdgeDemo.qml:229
130msgid "Well done"
151msgid "Well done"
131msgstr "Bien fecho"
152msgstr "Bien fecho"
132
153
133−#: qml/Components/EdgeDemo.qml:227
154+#: qml/Components/EdgeDemo.qml:230
134msgid ""
155msgid ""
135"You have now mastered the edge gestures and can start using the "
156"You have now mastered the edge gestures and can start using the "
136"phone<br><br>Tap on the screen to start"
157"phone<br><br>Tap on the screen to start"
@@ -138,40 +159,27 @@ msgstr ""
138"Agora yá domines los xestos de los berbesos y pues entamar a usar el "
159"Agora yá domines los xestos de los berbesos y pues entamar a usar el "
139"teléfonu<br><br>Toca la pantalla pa comenzar"
160"teléfonu<br><br>Toca la pantalla pa comenzar"
140
161
141−#: qml/Components/Lockscreen.qml:167
162+#: qml/Components/Lockscreen.qml:223
142−msgid "Please wait"
163+msgid "Return to Call"
143−msgstr "Espera un segundu"
164+msgstr ""
144−
145−#: qml/Components/Lockscreen.qml:172
146−msgid "Too many incorrect attempts"
147−msgstr "Munchos intentos incorreutos"
148
165
149−#: qml/Components/Lockscreen.qml:206
166+#: qml/Components/Lockscreen.qml:223
150msgid "Emergency Call"
167msgid "Emergency Call"
151msgstr "Llamada d'emerxencia"
168msgstr "Llamada d'emerxencia"
152
169
153−#: qml/Components/Lockscreen.qml:226
170+#: qml/Components/Lockscreen.qml:255
154msgid "OK"
171msgid "OK"
155msgstr "Aceutar"
172msgstr "Aceutar"
156
173
157−#: qml/Components/PassphraseLockscreen.qml:61
158−#, qt-format
159−msgid "Hello %1"
160−msgstr "Hola %1"
161−
162−#: qml/Components/PassphraseLockscreen.qml:61
163−msgid "Hello"
164−msgstr "Hola"
165−
166−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
174+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
167msgid "See less"
175msgid "See less"
168msgstr "Ver menos"
176msgstr "Ver menos"
169
177
170−#: qml/Dash/GenericScopeView.qml:411
178+#: qml/Dash/GenericScopeView.qml:434
171msgid "See all"
179msgid "See all"
172msgstr "Ver too"
180msgstr "Ver too"
173
181
174−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
182+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175#: qml/Panel/SearchIndicator.qml:27
183#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
184msgid "Search"
177msgstr "Guetar"
185msgstr "Guetar"
@@ -208,15 +216,23 @@ msgstr "Amestar una reseña"
208msgid "Send"
216msgid "Send"
209msgstr "Unviar"
217msgstr "Unviar"
210
218
219+#: qml/Dash/PullToRefreshScopeStyle.qml:55
220+msgid "Pull to refresh…"
221+msgstr "Tirar p'anovar..."
222+
223+#: qml/Dash/PullToRefreshScopeStyle.qml:60
224+msgid "Release to refresh…"
225+msgstr "Soltar p'anovar..."
226+
211−#: qml/Dash/ScopesOverview.qml:206
227+#: qml/Dash/ScopesOverview.qml:215
212msgid "Manage Scopes"
228msgid "Manage Scopes"
213msgstr "Xestionar ámbitos"
229msgstr "Xestionar ámbitos"
214
230
215−#: qml/Dash/ScopesOverview.qml:428
231+#: qml/Dash/ScopesOverview.qml:437
216msgid "Done"
232msgid "Done"
217msgstr "Fecho"
233msgstr "Fecho"
218
234
219−#: qml/Dash/ScopesOverview.qml:454
235+#: qml/Dash/ScopesOverview.qml:463
220msgid "Store"
236msgid "Store"
221msgstr "Tienda"
237msgstr "Tienda"
222
238
@@ -228,9 +244,9 @@ msgstr "Favoritos"
228msgid "All"
244msgid "All"
229msgstr "Too"
245msgstr "Too"
230
246
231−#: qml/Greeter/Greeter.qml:157
247+#: qml/Greeter/Greeter.qml:174
232−msgid "Swipe to unlock"
248+msgid "Unlock"
233−msgstr "Esliza pa desbloquiar"
249+msgstr "Desbloquiar"
234
250
235#: qml/Hud/HudParametrizedActionsPage.qml:139
251#: qml/Hud/HudParametrizedActionsPage.qml:139
236msgid "Confirm"
252msgid "Confirm"
@@ -252,51 +268,43 @@ msgstr "Fala agora…"
252msgid "Speaking..."
268msgid "Speaking..."
253msgstr "Falando…"
269msgstr "Falando…"
254
270
255−#: qml/Notifications/NotificationMenuItemFactory.qml:108
271+#: qml/Notifications/NotificationMenuItemFactory.qml:116
256msgid "Show password"
272msgid "Show password"
257msgstr "Amosar contraseña"
273msgstr "Amosar contraseña"
258
274
259−#: qml/Notifications/NotificationMenuItemFactory.qml:124
260−msgid "Enter SIM PIN"
261−msgstr "Escribi'l PIN de la SIM"
262−
263−#: qml/Notifications/NotificationMenuItemFactory.qml:125
264−msgid "Sorry, incorrect PIN"
265−msgstr "PIN incorreutu"
266−
267−#: qml/Panel/ActiveCallHint.qml:77
275+#: qml/Panel/ActiveCallHint.qml:79
268msgid "Tap to return to call..."
276msgid "Tap to return to call..."
269msgstr "Tocar pa tornar a la llamada..."
277msgstr "Tocar pa tornar a la llamada..."
270
278
271−#: qml/Panel/ActiveCallHint.qml:90
279+#: qml/Panel/ActiveCallHint.qml:92
272msgid "Conference"
280msgid "Conference"
273msgstr "Conferencia"
281msgstr "Conferencia"
274
282
275−#: qml/Panel/Indicators/MenuItemFactory.qml:600
283+#: qml/Panel/Indicators/MenuItemFactory.qml:615
276msgid "Nothing is playing"
284msgid "Nothing is playing"
277msgstr "Nun hai nada en reproducción"
285msgstr "Nun hai nada en reproducción"
278
286
279−#: qml/Panel/Indicators/MenuItemFactory.qml:748
287+#: qml/Panel/Indicators/MenuItemFactory.qml:763
280msgid "In queue…"
288msgid "In queue…"
281msgstr "N'espera…"
289msgstr "N'espera…"
282
290
283−#: qml/Panel/Indicators/MenuItemFactory.qml:752
291+#: qml/Panel/Indicators/MenuItemFactory.qml:767
284msgid "Downloading"
292msgid "Downloading"
285msgstr "Baxando"
293msgstr "Baxando"
286
294
287−#: qml/Panel/Indicators/MenuItemFactory.qml:754
295+#: qml/Panel/Indicators/MenuItemFactory.qml:769
288msgid "Paused, tap to resume"
296msgid "Paused, tap to resume"
289msgstr "Posáu, toca pa reanudar"
297msgstr "Posáu, toca pa reanudar"
290
298
291−#: qml/Panel/Indicators/MenuItemFactory.qml:756
299+#: qml/Panel/Indicators/MenuItemFactory.qml:771
292msgid "Canceled"
300msgid "Canceled"
293msgstr "Encaboxáu"
301msgstr "Encaboxáu"
294
302
295−#: qml/Panel/Indicators/MenuItemFactory.qml:758
303+#: qml/Panel/Indicators/MenuItemFactory.qml:773
296msgid "Finished"
304msgid "Finished"
297msgstr "Finó"
305msgstr "Finó"
298
306
299−#: qml/Panel/Indicators/MenuItemFactory.qml:760
307+#: qml/Panel/Indicators/MenuItemFactory.qml:775
300msgid "Failed, tap to retry"
308msgid "Failed, tap to retry"
301msgstr "Falló, toca pa reintentar"
309msgstr "Falló, toca pa reintentar"
302
310
@@ -308,45 +316,49 @@ msgstr "Desbloquiar SIM"
308msgid "Roaming"
316msgid "Roaming"
309msgstr "Roaming"
317msgstr "Roaming"
310
318
311−#: qml/Shell.qml:320
319+#: qml/Shell.qml:381
312−msgid "Enter your passphrase"
320+msgid "Enter passphrase"
313−msgstr "Introduz contraseña"
321+msgstr "Escribi la frase contraseña"
314
322
315−#: qml/Shell.qml:321
323+#: qml/Shell.qml:382
316msgid "Sorry, incorrect passphrase"
324msgid "Sorry, incorrect passphrase"
317msgstr "Sentímoslo, contraseña incorreuta"
325msgstr "Sentímoslo, contraseña incorreuta"
318
326
319−#: qml/Shell.qml:323
327+#: qml/Shell.qml:383
320−msgid "Enter your passcode"
328+msgid "Please re-enter"
321−msgstr "Introduz códigu de pasu"
329+msgstr "Vuelvi a escribila"
322
330
323−#: qml/Shell.qml:324
331+#: qml/Shell.qml:385
332+msgid "Enter passcode"
333+msgstr "Escribi'l códigu de pasu"
334+
335+#: qml/Shell.qml:386
324msgid "Sorry, incorrect passcode"
336msgid "Sorry, incorrect passcode"
325msgstr "Sentímoslo, códigu de pasu incorreutu"
337msgstr "Sentímoslo, códigu de pasu incorreutu"
326
338
327−#: qml/Shell.qml:327
339+#: qml/Shell.qml:389
328#, qt-format
340#, qt-format
329−msgid "Enter your %1"
341+msgid "Enter %1"
330−msgstr "Introduz %1"
342+msgstr "Escribi %1"
331
343
332−#: qml/Shell.qml:328
344+#: qml/Shell.qml:390
333#, qt-format
345#, qt-format
334msgid "Sorry, incorrect %1"
346msgid "Sorry, incorrect %1"
335msgstr "Sentímoslo, %1 incorreutu"
347msgstr "Sentímoslo, %1 incorreutu"
336
348
337−#: qml/Shell.qml:363
349+#: qml/Shell.qml:431
338msgid "Sorry, incorrect passphrase."
350msgid "Sorry, incorrect passphrase."
339msgstr "Fras de pasu incorreuta"
351msgstr "Fras de pasu incorreuta"
340
352
341−#: qml/Shell.qml:364
353+#: qml/Shell.qml:432
342msgid "Sorry, incorrect passcode."
354msgid "Sorry, incorrect passcode."
343msgstr "Códigu de pasu incorreutu"
355msgstr "Códigu de pasu incorreutu"
344
356
345−#: qml/Shell.qml:365
357+#: qml/Shell.qml:433
346msgid "This will be your last attempt."
358msgid "This will be your last attempt."
347msgstr "Esti ye'l caberu intentu."
359msgstr "Esti ye'l caberu intentu."
348
360
349−#: qml/Shell.qml:367
361+#: qml/Shell.qml:435
350msgid ""
362msgid ""
351"If passphrase is entered incorrectly, your phone will conduct a factory "
363"If passphrase is entered incorrectly, your phone will conduct a factory "
352"reset and all personal data will be deleted."
364"reset and all personal data will be deleted."
@@ -354,13 +366,10 @@ msgstr ""
354"Si s'inxerta la fras incorreutamente, el teléfonu va volver a la "
366"Si s'inxerta la fras incorreutamente, el teléfonu va volver a la "
355"configuración de fábrica y van perdese tolos datos personales."
367"configuración de fábrica y van perdese tolos datos personales."
356
368
357−#: qml/Shell.qml:368
369+#: qml/Shell.qml:436
358msgid ""
370msgid ""
359"If passcode is entered incorrectly, your phone will conduct a factory reset "
371"If passcode is entered incorrectly, your phone will conduct a factory reset "
360"and all personal data will be deleted."
372"and all personal data will be deleted."
361msgstr ""
373msgstr ""
362"Si s'inxerta'l códigu incorreutamente, el teléfonu va volver a la "
374"Si s'inxerta'l códigu incorreutamente, el teléfonu va volver a la "
363"configuración de fábrica y van perdese tolos datos personales."
375"configuración de fábrica y van perdese tolos datos personales."
364−
365−#~ msgid "Manage Dash"
366−#~ msgstr "Xestionar tableru"
po/az.po+94−83
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-09-03 16:39+0000\n"
11"PO-Revision-Date: 2014-09-03 16:39+0000\n"
12"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
12"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:39+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr "Pin qısayolu"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Açma qısayolu"
32msgstr "Açma qısayolu"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr "Çıxış"
55msgstr "Çıxış"
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr "Çıxmaq istәdiyinizdәn әminsiniz?"
59msgstr "Çıxmaq istәdiyinizdәn әminsiniz?"
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr "Yox"
64msgstr "Yox"
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr "Hə"
69msgstr "Hə"
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr "Sistemi Söndür"
73msgstr "Sistemi Söndür"
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr "Sistemi söndürmәk istәdiyinizә әminsiniz?"
77msgstr "Sistemi söndürmәk istәdiyinizә әminsiniz?"
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr "Yenidən yüklə"
81msgstr "Yenidən yüklə"
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr "Yenidәn başlatmaq istәdiyinizә әminsiniz?"
85msgstr "Yenidәn başlatmaq istәdiyinizә әminsiniz?"
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr ""
89msgstr ""
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr ""
95msgstr ""
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr "Söndür"
99msgstr "Söndür"
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr ""
103msgstr ""
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr "İmtina"
107msgstr "İmtina"
88
108
@@ -114,20 +134,20 @@ msgstr "Bağla"
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr "Nizamlamalar ekranını bağlamaq üçün yenidən yuxarı sürüşdürün"
135msgstr "Nizamlamalar ekranını bağlamaq üçün yenidən yuxarı sürüşdürün"
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr "Sol künc"
139msgstr "Sol künc"
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
143msgstr ""
124"Applikasiyalara sürətli keçid üçün paneli açmaq üçün sol küncdən çəkin"
144"Applikasiyalara sürətli keçid üçün paneli açmaq üçün sol küncdən çəkin"
125
145
126−#: qml/Components/EdgeDemo.qml:226
146+#: qml/Components/EdgeDemo.qml:229
127msgid "Well done"
147msgid "Well done"
128msgstr "Təbriklər"
148msgstr "Təbriklər"
129
149
130−#: qml/Components/EdgeDemo.qml:227
150+#: qml/Components/EdgeDemo.qml:230
131msgid ""
151msgid ""
132"You have now mastered the edge gestures and can start using the "
152"You have now mastered the edge gestures and can start using the "
133"phone<br><br>Tap on the screen to start"
153"phone<br><br>Tap on the screen to start"
@@ -135,40 +155,27 @@ msgstr ""
135"Siz künc hәrәkәtlәrini öyrәndiniz və telefonu istifadə etməyə başlaya "
155"Siz künc hәrәkәtlәrini öyrәndiniz və telefonu istifadə etməyə başlaya "
136"bilərsiniz.<br><br>Başlamaq üçün ekrana toxunun"
156"bilərsiniz.<br><br>Başlamaq üçün ekrana toxunun"
137
157
138−#: qml/Components/Lockscreen.qml:167
158+#: qml/Components/Lockscreen.qml:223
139−msgid "Please wait"
159+msgid "Return to Call"
140−msgstr "Xahiş edirik gözləyin"
160+msgstr ""
141−
142−#: qml/Components/Lockscreen.qml:172
143−msgid "Too many incorrect attempts"
144−msgstr "Çoxlu yanlış cəhdlәr"
145
161
146−#: qml/Components/Lockscreen.qml:206
162+#: qml/Components/Lockscreen.qml:223
147msgid "Emergency Call"
163msgid "Emergency Call"
148msgstr "Zərurət zəngi"
164msgstr "Zərurət zəngi"
149
165
150−#: qml/Components/Lockscreen.qml:226
166+#: qml/Components/Lockscreen.qml:255
151msgid "OK"
167msgid "OK"
152msgstr "Oldu"
168msgstr "Oldu"
153
169
154−#: qml/Components/PassphraseLockscreen.qml:61
155−#, qt-format
156−msgid "Hello %1"
157−msgstr "Salam %1"
158−
159−#: qml/Components/PassphraseLockscreen.qml:61
160−msgid "Hello"
161−msgstr "Salam"
162−
163−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
170+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
164msgid "See less"
171msgid "See less"
165msgstr "Daha azını gör"
172msgstr "Daha azını gör"
166
173
167−#: qml/Dash/GenericScopeView.qml:411
174+#: qml/Dash/GenericScopeView.qml:434
168msgid "See all"
175msgid "See all"
169msgstr "Hamısını gör"
176msgstr "Hamısını gör"
170
177
171−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
178+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
172#: qml/Panel/SearchIndicator.qml:27
179#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
180msgid "Search"
174msgstr "Axtar"
181msgstr "Axtar"
@@ -205,15 +212,23 @@ msgstr "Rəy yaz"
205msgid "Send"
212msgid "Send"
206msgstr "Göndər"
213msgstr "Göndər"
207
214
215+#: qml/Dash/PullToRefreshScopeStyle.qml:55
216+msgid "Pull to refresh…"
217+msgstr ""
218+
219+#: qml/Dash/PullToRefreshScopeStyle.qml:60
220+msgid "Release to refresh…"
221+msgstr ""
222+
208−#: qml/Dash/ScopesOverview.qml:206
223+#: qml/Dash/ScopesOverview.qml:215
209msgid "Manage Scopes"
224msgid "Manage Scopes"
210msgstr ""
225msgstr ""
211
226
212−#: qml/Dash/ScopesOverview.qml:428
227+#: qml/Dash/ScopesOverview.qml:437
213msgid "Done"
228msgid "Done"
214msgstr "Başa çatdı"
229msgstr "Başa çatdı"
215
230
216−#: qml/Dash/ScopesOverview.qml:454
231+#: qml/Dash/ScopesOverview.qml:463
217msgid "Store"
232msgid "Store"
218msgstr ""
233msgstr ""
219
234
@@ -225,9 +240,9 @@ msgstr "Seçilmişlər"
225msgid "All"
240msgid "All"
226msgstr "Hamısı"
241msgstr "Hamısı"
227
242
228−#: qml/Greeter/Greeter.qml:157
243+#: qml/Greeter/Greeter.qml:174
229−msgid "Swipe to unlock"
244+msgid "Unlock"
230−msgstr "Kilidi açmaq üçün sürüşdürün"
245+msgstr ""
231
246
232#: qml/Hud/HudParametrizedActionsPage.qml:139
247#: qml/Hud/HudParametrizedActionsPage.qml:139
233msgid "Confirm"
248msgid "Confirm"
@@ -249,51 +264,43 @@ msgstr "Danışın..."
249msgid "Speaking..."
264msgid "Speaking..."
250msgstr "Danışır..."
265msgstr "Danışır..."
251
266
252−#: qml/Notifications/NotificationMenuItemFactory.qml:108
267+#: qml/Notifications/NotificationMenuItemFactory.qml:116
253msgid "Show password"
268msgid "Show password"
254msgstr "Şifrәni göstәr"
269msgstr "Şifrәni göstәr"
255
270
256−#: qml/Notifications/NotificationMenuItemFactory.qml:124
257−msgid "Enter SIM PIN"
258−msgstr "SIM PIN kodunuzu daxil edin"
259−
260−#: qml/Notifications/NotificationMenuItemFactory.qml:125
261−msgid "Sorry, incorrect PIN"
262−msgstr "Bağışlayın, PIN yanlışdır"
263−
264−#: qml/Panel/ActiveCallHint.qml:77
271+#: qml/Panel/ActiveCallHint.qml:79
265msgid "Tap to return to call..."
272msgid "Tap to return to call..."
266msgstr "Zəngə qayıtmaq üçün toxunun..."
273msgstr "Zəngə qayıtmaq üçün toxunun..."
267
274
268−#: qml/Panel/ActiveCallHint.qml:90
275+#: qml/Panel/ActiveCallHint.qml:92
269msgid "Conference"
276msgid "Conference"
270msgstr "Konfrans"
277msgstr "Konfrans"
271
278
272−#: qml/Panel/Indicators/MenuItemFactory.qml:600
279+#: qml/Panel/Indicators/MenuItemFactory.qml:615
273msgid "Nothing is playing"
280msgid "Nothing is playing"
274msgstr ""
281msgstr ""
275
282
276−#: qml/Panel/Indicators/MenuItemFactory.qml:748
283+#: qml/Panel/Indicators/MenuItemFactory.qml:763
277msgid "In queue…"
284msgid "In queue…"
278msgstr "Növbədədir..."
285msgstr "Növbədədir..."
279
286
280−#: qml/Panel/Indicators/MenuItemFactory.qml:752
287+#: qml/Panel/Indicators/MenuItemFactory.qml:767
281msgid "Downloading"
288msgid "Downloading"
282msgstr "Endirilir"
289msgstr "Endirilir"
283
290
284−#: qml/Panel/Indicators/MenuItemFactory.qml:754
291+#: qml/Panel/Indicators/MenuItemFactory.qml:769
285msgid "Paused, tap to resume"
292msgid "Paused, tap to resume"
286msgstr "Dayandırıldı. Davam etmək üçün toxunun"
293msgstr "Dayandırıldı. Davam etmək üçün toxunun"
287
294
288−#: qml/Panel/Indicators/MenuItemFactory.qml:756
295+#: qml/Panel/Indicators/MenuItemFactory.qml:771
289msgid "Canceled"
296msgid "Canceled"
290msgstr "İmtina edildi"
297msgstr "İmtina edildi"
291
298
292−#: qml/Panel/Indicators/MenuItemFactory.qml:758
299+#: qml/Panel/Indicators/MenuItemFactory.qml:773
293msgid "Finished"
300msgid "Finished"
294msgstr "Bitdi"
301msgstr "Bitdi"
295
302
296−#: qml/Panel/Indicators/MenuItemFactory.qml:760
303+#: qml/Panel/Indicators/MenuItemFactory.qml:775
297msgid "Failed, tap to retry"
304msgid "Failed, tap to retry"
298msgstr "Alınmadı. Yenidәn cәhd etmək üçün toxunun"
305msgstr "Alınmadı. Yenidәn cәhd etmək üçün toxunun"
299
306
@@ -305,45 +312,49 @@ msgstr "SIM kilidini aç"
305msgid "Roaming"
312msgid "Roaming"
306msgstr "Rominq"
313msgstr "Rominq"
307
314
308−#: qml/Shell.qml:320
315+#: qml/Shell.qml:381
309−msgid "Enter your passphrase"
316+msgid "Enter passphrase"
310−msgstr "Açar sözünüzü daxil edin"
317+msgstr ""
311
318
312−#: qml/Shell.qml:321
319+#: qml/Shell.qml:382
313msgid "Sorry, incorrect passphrase"
320msgid "Sorry, incorrect passphrase"
314msgstr "Bağışlayın, açar söz yanlışdır"
321msgstr "Bağışlayın, açar söz yanlışdır"
315
322
316−#: qml/Shell.qml:323
323+#: qml/Shell.qml:383
317−msgid "Enter your passcode"
324+msgid "Please re-enter"
318msgstr ""
325msgstr ""
319
326
320−#: qml/Shell.qml:324
327+#: qml/Shell.qml:385
328+msgid "Enter passcode"
329+msgstr ""
330+
331+#: qml/Shell.qml:386
321msgid "Sorry, incorrect passcode"
332msgid "Sorry, incorrect passcode"
322msgstr ""
333msgstr ""
323
334
324−#: qml/Shell.qml:327
335+#: qml/Shell.qml:389
325#, qt-format
336#, qt-format
326−msgid "Enter your %1"
337+msgid "Enter %1"
327−msgstr "%1 daxil edin"
338+msgstr ""
328
339
329−#: qml/Shell.qml:328
340+#: qml/Shell.qml:390
330#, qt-format
341#, qt-format
331msgid "Sorry, incorrect %1"
342msgid "Sorry, incorrect %1"
332msgstr "Bağışlayın, %1 yanlışdır"
343msgstr "Bağışlayın, %1 yanlışdır"
333
344
334−#: qml/Shell.qml:363
345+#: qml/Shell.qml:431
335msgid "Sorry, incorrect passphrase."
346msgid "Sorry, incorrect passphrase."
336msgstr "Bağışlayın, açar söz yanlışdır."
347msgstr "Bağışlayın, açar söz yanlışdır."
337
348
338−#: qml/Shell.qml:364
349+#: qml/Shell.qml:432
339msgid "Sorry, incorrect passcode."
350msgid "Sorry, incorrect passcode."
340msgstr "Təəssüf ki, açar kod yanlışdır."
351msgstr "Təəssüf ki, açar kod yanlışdır."
341
352
342−#: qml/Shell.qml:365
353+#: qml/Shell.qml:433
343msgid "This will be your last attempt."
354msgid "This will be your last attempt."
344msgstr "Bu sizin son cəhdiniz olacaq."
355msgstr "Bu sizin son cəhdiniz olacaq."
345
356
346−#: qml/Shell.qml:367
357+#: qml/Shell.qml:435
347msgid ""
358msgid ""
348"If passphrase is entered incorrectly, your phone will conduct a factory "
359"If passphrase is entered incorrectly, your phone will conduct a factory "
349"reset and all personal data will be deleted."
360"reset and all personal data will be deleted."
@@ -351,7 +362,7 @@ msgstr ""
351"Əgər açar söz yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
362"Əgər açar söz yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
352"geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
363"geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
353
364
354−#: qml/Shell.qml:368
365+#: qml/Shell.qml:436
355msgid ""
366msgid ""
356"If passcode is entered incorrectly, your phone will conduct a factory reset "
367"If passcode is entered incorrectly, your phone will conduct a factory reset "
357"and all personal data will be deleted."
368"and all personal data will be deleted."
po/be.po+91−79
@@ -7,15 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-09-24 17:12+0000\n"
11"PO-Revision-Date: 2014-09-24 17:12+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Belarusian <be@li.org>\n"
13"Language-Team: Belarusian <be@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
19+"X-Launchpad-Export-Date: 2014-11-06 06:39+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
20+"X-Generator: Launchpad (build 17223)\n"
19
21
20#: plugins/LightDM/Greeter.cpp:130
22#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
23msgid "Password: "
@@ -30,59 +32,78 @@ msgstr ""
30msgid "Unpin shortcut"
32msgid "Unpin shortcut"
31msgstr ""
33msgstr ""
32
34
33−#: qml/Components/Dialogs.qml:70
35+#: qml/Components/DelayedLockscreen.qml:47
36+msgid "Device Locked"
37+msgstr ""
38+
39+#: qml/Components/DelayedLockscreen.qml:62
40+msgid "You have been locked out due to too many failed passphrase attempts."
41+msgstr ""
42+
43+#: qml/Components/DelayedLockscreen.qml:63
44+msgid "You have been locked out due to too many failed passcode attempts."
45+msgstr ""
46+
47+#: qml/Components/DelayedLockscreen.qml:72
48+#, qt-format
49+msgid "Please wait %1 minute and then try again…"
50+msgid_plural "Please wait %1 minutes and then try again…"
51+msgstr[0] ""
52+msgstr[1] ""
53+
54+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
55msgid "Log out"
35msgstr ""
56msgstr ""
36
57
37−#: qml/Components/Dialogs.qml:71
58+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
59msgid "Are you sure you want to log out?"
39msgstr ""
60msgstr ""
40
61
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
62+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
63+#: qml/Components/Dialogs.qml:126
43msgid "No"
64msgid "No"
44msgstr ""
65msgstr ""
45
66
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
67+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
68+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
69msgid "Yes"
49msgstr ""
70msgstr ""
50
71
51−#: qml/Components/Dialogs.qml:94
72+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
73msgid "Shut down"
53msgstr ""
74msgstr ""
54
75
55−#: qml/Components/Dialogs.qml:95
76+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
77msgid "Are you sure you want to shut down?"
57msgstr ""
78msgstr ""
58
79
59−#: qml/Components/Dialogs.qml:119
80+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
81msgid "Reboot"
61msgstr ""
82msgstr ""
62
83
63−#: qml/Components/Dialogs.qml:120
84+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
85msgid "Are you sure you want to reboot?"
65msgstr ""
86msgstr ""
66
87
67−#: qml/Components/Dialogs.qml:144
88+#: qml/Components/Dialogs.qml:148
68msgid "Power"
89msgid "Power"
69msgstr ""
90msgstr ""
70
91
71−#: qml/Components/Dialogs.qml:145
92+#: qml/Components/Dialogs.qml:149
72msgid ""
93msgid ""
73"Are you sure you would like\n"
94"Are you sure you would like\n"
74"to power off?"
95"to power off?"
75msgstr ""
96msgstr ""
76
97
77−#: qml/Components/Dialogs.qml:147
98+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
99msgid "Power off"
79msgstr ""
100msgstr ""
80
101
81−#: qml/Components/Dialogs.qml:157
102+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
103msgid "Restart"
83msgstr ""
104msgstr ""
84
105
85−#: qml/Components/Dialogs.qml:167
106+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
107msgid "Cancel"
87msgstr ""
108msgstr ""
88
109
@@ -114,58 +135,45 @@ msgstr ""
114msgid "Swipe up again to close the settings screen"
135msgid "Swipe up again to close the settings screen"
115msgstr ""
136msgstr ""
116
137
117−#: qml/Components/EdgeDemo.qml:198
138+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
139msgid "Left edge"
119msgstr ""
140msgstr ""
120
141
121−#: qml/Components/EdgeDemo.qml:199
142+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
143msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
144msgstr ""
124
145
125−#: qml/Components/EdgeDemo.qml:226
146+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
147msgid "Well done"
127msgstr ""
148msgstr ""
128
149
129−#: qml/Components/EdgeDemo.qml:227
150+#: qml/Components/EdgeDemo.qml:230
130msgid ""
151msgid ""
131"You have now mastered the edge gestures and can start using the "
152"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
153"phone<br><br>Tap on the screen to start"
133msgstr ""
154msgstr ""
134
155
135−#: qml/Components/Lockscreen.qml:167
156+#: qml/Components/Lockscreen.qml:223
136−msgid "Please wait"
157+msgid "Return to Call"
137−msgstr ""
138−
139−#: qml/Components/Lockscreen.qml:172
140−msgid "Too many incorrect attempts"
141msgstr ""
158msgstr ""
142
159
143−#: qml/Components/Lockscreen.qml:206
160+#: qml/Components/Lockscreen.qml:223
144msgid "Emergency Call"
161msgid "Emergency Call"
145msgstr ""
162msgstr ""
146
163
147−#: qml/Components/Lockscreen.qml:226
164+#: qml/Components/Lockscreen.qml:255
148msgid "OK"
165msgid "OK"
149msgstr ""
166msgstr ""
150
167
151−#: qml/Components/PassphraseLockscreen.qml:61
152−#, qt-format
153−msgid "Hello %1"
154−msgstr ""
155−
156−#: qml/Components/PassphraseLockscreen.qml:61
157−msgid "Hello"
158−msgstr ""
159−
160−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
168+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
161msgid "See less"
169msgid "See less"
162msgstr ""
170msgstr ""
163
171
164−#: qml/Dash/GenericScopeView.qml:411
172+#: qml/Dash/GenericScopeView.qml:434
165msgid "See all"
173msgid "See all"
166msgstr ""
174msgstr ""
167
175
168−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
176+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
169#: qml/Panel/SearchIndicator.qml:27
177#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
178msgid "Search"
171msgstr ""
179msgstr ""
@@ -202,15 +210,23 @@ msgstr ""
202msgid "Send"
210msgid "Send"
203msgstr ""
211msgstr ""
204
212
213+#: qml/Dash/PullToRefreshScopeStyle.qml:55
214+msgid "Pull to refresh…"
215+msgstr ""
216+
217+#: qml/Dash/PullToRefreshScopeStyle.qml:60
218+msgid "Release to refresh…"
219+msgstr ""
220+
205−#: qml/Dash/ScopesOverview.qml:206
221+#: qml/Dash/ScopesOverview.qml:215
206msgid "Manage Scopes"
222msgid "Manage Scopes"
207msgstr ""
223msgstr ""
208
224
209−#: qml/Dash/ScopesOverview.qml:428
225+#: qml/Dash/ScopesOverview.qml:437
210msgid "Done"
226msgid "Done"
211msgstr ""
227msgstr ""
212
228
213−#: qml/Dash/ScopesOverview.qml:454
229+#: qml/Dash/ScopesOverview.qml:463
214msgid "Store"
230msgid "Store"
215msgstr ""
231msgstr ""
216
232
@@ -222,8 +238,8 @@ msgstr ""
222msgid "All"
238msgid "All"
223msgstr ""
239msgstr ""
224
240
225−#: qml/Greeter/Greeter.qml:157
241+#: qml/Greeter/Greeter.qml:174
226−msgid "Swipe to unlock"
242+msgid "Unlock"
227msgstr ""
243msgstr ""
228
244
229#: qml/Hud/HudParametrizedActionsPage.qml:139
245#: qml/Hud/HudParametrizedActionsPage.qml:139
@@ -246,51 +262,43 @@ msgstr ""
246msgid "Speaking..."
262msgid "Speaking..."
247msgstr ""
263msgstr ""
248
264
249−#: qml/Notifications/NotificationMenuItemFactory.qml:108
265+#: qml/Notifications/NotificationMenuItemFactory.qml:116
250msgid "Show password"
266msgid "Show password"
251msgstr ""
267msgstr ""
252
268
253−#: qml/Notifications/NotificationMenuItemFactory.qml:124
254−msgid "Enter SIM PIN"
255−msgstr ""
256−
257−#: qml/Notifications/NotificationMenuItemFactory.qml:125
258−msgid "Sorry, incorrect PIN"
259−msgstr ""
260−
261−#: qml/Panel/ActiveCallHint.qml:77
269+#: qml/Panel/ActiveCallHint.qml:79
262msgid "Tap to return to call..."
270msgid "Tap to return to call..."
263msgstr ""
271msgstr ""
264
272
265−#: qml/Panel/ActiveCallHint.qml:90
273+#: qml/Panel/ActiveCallHint.qml:92
266msgid "Conference"
274msgid "Conference"
267msgstr ""
275msgstr ""
268
276
269−#: qml/Panel/Indicators/MenuItemFactory.qml:600
277+#: qml/Panel/Indicators/MenuItemFactory.qml:615
270msgid "Nothing is playing"
278msgid "Nothing is playing"
271msgstr ""
279msgstr ""
272
280
273−#: qml/Panel/Indicators/MenuItemFactory.qml:748
281+#: qml/Panel/Indicators/MenuItemFactory.qml:763
274msgid "In queue…"
282msgid "In queue…"
275msgstr ""
283msgstr ""
276
284
277−#: qml/Panel/Indicators/MenuItemFactory.qml:752
285+#: qml/Panel/Indicators/MenuItemFactory.qml:767
278msgid "Downloading"
286msgid "Downloading"
279msgstr ""
287msgstr ""
280
288
281−#: qml/Panel/Indicators/MenuItemFactory.qml:754
289+#: qml/Panel/Indicators/MenuItemFactory.qml:769
282msgid "Paused, tap to resume"
290msgid "Paused, tap to resume"
283msgstr ""
291msgstr ""
284
292
285−#: qml/Panel/Indicators/MenuItemFactory.qml:756
293+#: qml/Panel/Indicators/MenuItemFactory.qml:771
286msgid "Canceled"
294msgid "Canceled"
287msgstr ""
295msgstr ""
288
296
289−#: qml/Panel/Indicators/MenuItemFactory.qml:758
297+#: qml/Panel/Indicators/MenuItemFactory.qml:773
290msgid "Finished"
298msgid "Finished"
291msgstr ""
299msgstr ""
292
300
293−#: qml/Panel/Indicators/MenuItemFactory.qml:760
301+#: qml/Panel/Indicators/MenuItemFactory.qml:775
294msgid "Failed, tap to retry"
302msgid "Failed, tap to retry"
295msgstr ""
303msgstr ""
296
304
@@ -302,51 +310,55 @@ msgstr ""
302msgid "Roaming"
310msgid "Roaming"
303msgstr ""
311msgstr ""
304
312
305−#: qml/Shell.qml:320
313+#: qml/Shell.qml:381
306−msgid "Enter your passphrase"
314+msgid "Enter passphrase"
307msgstr ""
315msgstr ""
308
316
309−#: qml/Shell.qml:321
317+#: qml/Shell.qml:382
310msgid "Sorry, incorrect passphrase"
318msgid "Sorry, incorrect passphrase"
311msgstr ""
319msgstr ""
312
320
313−#: qml/Shell.qml:323
321+#: qml/Shell.qml:383
322+msgid "Please re-enter"
323+msgstr ""
324+
325+#: qml/Shell.qml:385
314−msgid "Enter your passcode"
326+msgid "Enter passcode"
315msgstr ""
327msgstr ""
316
328
317−#: qml/Shell.qml:324
329+#: qml/Shell.qml:386
318msgid "Sorry, incorrect passcode"
330msgid "Sorry, incorrect passcode"
319msgstr ""
331msgstr ""
320
332
321−#: qml/Shell.qml:327
333+#: qml/Shell.qml:389
322#, qt-format
334#, qt-format
323−msgid "Enter your %1"
335+msgid "Enter %1"
324msgstr ""
336msgstr ""
325
337
326−#: qml/Shell.qml:328
338+#: qml/Shell.qml:390
327#, qt-format
339#, qt-format
328msgid "Sorry, incorrect %1"
340msgid "Sorry, incorrect %1"
329msgstr ""
341msgstr ""
330
342
331−#: qml/Shell.qml:363
343+#: qml/Shell.qml:431
332msgid "Sorry, incorrect passphrase."
344msgid "Sorry, incorrect passphrase."
333msgstr ""
345msgstr ""
334
346
335−#: qml/Shell.qml:364
347+#: qml/Shell.qml:432
336msgid "Sorry, incorrect passcode."
348msgid "Sorry, incorrect passcode."
337msgstr ""
349msgstr ""
338
350
339−#: qml/Shell.qml:365
351+#: qml/Shell.qml:433
340msgid "This will be your last attempt."
352msgid "This will be your last attempt."
341msgstr ""
353msgstr ""
342
354
343−#: qml/Shell.qml:367
355+#: qml/Shell.qml:435
344msgid ""
356msgid ""
345"If passphrase is entered incorrectly, your phone will conduct a factory "
357"If passphrase is entered incorrectly, your phone will conduct a factory "
346"reset and all personal data will be deleted."
358"reset and all personal data will be deleted."
347msgstr ""
359msgstr ""
348
360
349−#: qml/Shell.qml:368
361+#: qml/Shell.qml:436
350msgid ""
362msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
363"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
364"and all personal data will be deleted."
po/bg.po+90−79
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-04-01 14:08+0000\n"
11"PO-Revision-Date: 2014-04-01 14:08+0000\n"
12"Last-Translator: Atanas Kovachki <Unknown>\n"
12"Last-Translator: Atanas Kovachki <Unknown>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr ""
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr ""
32msgstr ""
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr ""
55msgstr ""
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr ""
59msgstr ""
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr ""
64msgstr ""
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr ""
69msgstr ""
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr ""
73msgstr ""
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr ""
77msgstr ""
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr ""
81msgstr ""
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr ""
85msgstr ""
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr ""
89msgstr ""
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr ""
95msgstr ""
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr ""
99msgstr ""
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr ""
103msgstr ""
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr ""
107msgstr ""
88
108
@@ -119,60 +139,47 @@ msgid "Swipe up again to close the settings screen"
119msgstr ""
139msgstr ""
120"Отново приплъзнете пръста си нагоре за да затворите екрана с настройките"
140"Отново приплъзнете пръста си нагоре за да затворите екрана с настройките"
121
141
122−#: qml/Components/EdgeDemo.qml:198
142+#: qml/Components/EdgeDemo.qml:201
123msgid "Left edge"
143msgid "Left edge"
124msgstr "Ляв край"
144msgstr "Ляв край"
125
145
126−#: qml/Components/EdgeDemo.qml:199
146+#: qml/Components/EdgeDemo.qml:202
127msgid "Swipe from the left to reveal the launcher for quick access to apps"
147msgid "Swipe from the left to reveal the launcher for quick access to apps"
128msgstr ""
148msgstr ""
129"Приплъзнете пръста си от левия край към десния, за да отворите стартера за "
149"Приплъзнете пръста си от левия край към десния, за да отворите стартера за "
130"бърз достъп до приложенията"
150"бърз достъп до приложенията"
131
151
132−#: qml/Components/EdgeDemo.qml:226
152+#: qml/Components/EdgeDemo.qml:229
133msgid "Well done"
153msgid "Well done"
134msgstr "Великолепно"
154msgstr "Великолепно"
135
155
136−#: qml/Components/EdgeDemo.qml:227
156+#: qml/Components/EdgeDemo.qml:230
137msgid ""
157msgid ""
138"You have now mastered the edge gestures and can start using the "
158"You have now mastered the edge gestures and can start using the "
139"phone<br><br>Tap on the screen to start"
159"phone<br><br>Tap on the screen to start"
140msgstr ""
160msgstr ""
141
161
142−#: qml/Components/Lockscreen.qml:167
162+#: qml/Components/Lockscreen.qml:223
143−msgid "Please wait"
163+msgid "Return to Call"
144−msgstr ""
145−
146−#: qml/Components/Lockscreen.qml:172
147−msgid "Too many incorrect attempts"
148msgstr ""
164msgstr ""
149
165
150−#: qml/Components/Lockscreen.qml:206
166+#: qml/Components/Lockscreen.qml:223
151msgid "Emergency Call"
167msgid "Emergency Call"
152msgstr "Спешно повикване"
168msgstr "Спешно повикване"
153
169
154−#: qml/Components/Lockscreen.qml:226
170+#: qml/Components/Lockscreen.qml:255
155msgid "OK"
171msgid "OK"
156msgstr ""
172msgstr ""
157
173
158−#: qml/Components/PassphraseLockscreen.qml:61
159−#, qt-format
160−msgid "Hello %1"
161−msgstr "Здравей, %1"
162−
163−#: qml/Components/PassphraseLockscreen.qml:61
164−msgid "Hello"
165−msgstr "Здравей"
166−
167−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
174+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
168msgid "See less"
175msgid "See less"
169msgstr ""
176msgstr ""
170
177
171−#: qml/Dash/GenericScopeView.qml:411
178+#: qml/Dash/GenericScopeView.qml:434
172msgid "See all"
179msgid "See all"
173msgstr ""
180msgstr ""
174
181
175−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
182+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
176#: qml/Panel/SearchIndicator.qml:27
183#: qml/Panel/SearchIndicator.qml:27
177msgid "Search"
184msgid "Search"
178msgstr "Търсене"
185msgstr "Търсене"
@@ -209,15 +216,23 @@ msgstr "Добави отзив"
209msgid "Send"
216msgid "Send"
210msgstr "Изпрати"
217msgstr "Изпрати"
211
218
219+#: qml/Dash/PullToRefreshScopeStyle.qml:55
220+msgid "Pull to refresh…"
221+msgstr ""
222+
223+#: qml/Dash/PullToRefreshScopeStyle.qml:60
224+msgid "Release to refresh…"
225+msgstr ""
226+
212−#: qml/Dash/ScopesOverview.qml:206
227+#: qml/Dash/ScopesOverview.qml:215
213msgid "Manage Scopes"
228msgid "Manage Scopes"
214msgstr ""
229msgstr ""
215
230
216−#: qml/Dash/ScopesOverview.qml:428
231+#: qml/Dash/ScopesOverview.qml:437
217msgid "Done"
232msgid "Done"
218msgstr ""
233msgstr ""
219
234
220−#: qml/Dash/ScopesOverview.qml:454
235+#: qml/Dash/ScopesOverview.qml:463
221msgid "Store"
236msgid "Store"
222msgstr ""
237msgstr ""
223
238
@@ -229,8 +244,8 @@ msgstr ""
229msgid "All"
244msgid "All"
230msgstr ""
245msgstr ""
231
246
232−#: qml/Greeter/Greeter.qml:157
247+#: qml/Greeter/Greeter.qml:174
233−msgid "Swipe to unlock"
248+msgid "Unlock"
234msgstr ""
249msgstr ""
235
250
236#: qml/Hud/HudParametrizedActionsPage.qml:139
251#: qml/Hud/HudParametrizedActionsPage.qml:139
@@ -253,51 +268,43 @@ msgstr "Говорете сега..."
253msgid "Speaking..."
268msgid "Speaking..."
254msgstr "Говорете..."
269msgstr "Говорете..."
255
270
256−#: qml/Notifications/NotificationMenuItemFactory.qml:108
271+#: qml/Notifications/NotificationMenuItemFactory.qml:116
257msgid "Show password"
272msgid "Show password"
258msgstr "Покажи паролата"
273msgstr "Покажи паролата"
259
274
260−#: qml/Notifications/NotificationMenuItemFactory.qml:124
261−msgid "Enter SIM PIN"
262−msgstr ""
263−
264−#: qml/Notifications/NotificationMenuItemFactory.qml:125
265−msgid "Sorry, incorrect PIN"
266−msgstr ""
267−
268−#: qml/Panel/ActiveCallHint.qml:77
275+#: qml/Panel/ActiveCallHint.qml:79
269msgid "Tap to return to call..."
276msgid "Tap to return to call..."
270msgstr ""
277msgstr ""
271
278
272−#: qml/Panel/ActiveCallHint.qml:90
279+#: qml/Panel/ActiveCallHint.qml:92
273msgid "Conference"
280msgid "Conference"
274msgstr ""
281msgstr ""
275
282
276−#: qml/Panel/Indicators/MenuItemFactory.qml:600
283+#: qml/Panel/Indicators/MenuItemFactory.qml:615
277msgid "Nothing is playing"
284msgid "Nothing is playing"
278msgstr ""
285msgstr ""
279
286
280−#: qml/Panel/Indicators/MenuItemFactory.qml:748
287+#: qml/Panel/Indicators/MenuItemFactory.qml:763
281msgid "In queue…"
288msgid "In queue…"
282msgstr ""
289msgstr ""
283
290
284−#: qml/Panel/Indicators/MenuItemFactory.qml:752
291+#: qml/Panel/Indicators/MenuItemFactory.qml:767
285msgid "Downloading"
292msgid "Downloading"
286msgstr ""
293msgstr ""
287
294
288−#: qml/Panel/Indicators/MenuItemFactory.qml:754
295+#: qml/Panel/Indicators/MenuItemFactory.qml:769
289msgid "Paused, tap to resume"
296msgid "Paused, tap to resume"
290msgstr ""
297msgstr ""
291
298
292−#: qml/Panel/Indicators/MenuItemFactory.qml:756
299+#: qml/Panel/Indicators/MenuItemFactory.qml:771
293msgid "Canceled"
300msgid "Canceled"
294msgstr ""
301msgstr ""
295
302
296−#: qml/Panel/Indicators/MenuItemFactory.qml:758
303+#: qml/Panel/Indicators/MenuItemFactory.qml:773
297msgid "Finished"
304msgid "Finished"
298msgstr ""
305msgstr ""
299
306
300−#: qml/Panel/Indicators/MenuItemFactory.qml:760
307+#: qml/Panel/Indicators/MenuItemFactory.qml:775
301msgid "Failed, tap to retry"
308msgid "Failed, tap to retry"
302msgstr ""
309msgstr ""
303
310
@@ -309,51 +316,55 @@ msgstr ""
309msgid "Roaming"
316msgid "Roaming"
310msgstr ""
317msgstr ""
311
318
312−#: qml/Shell.qml:320
319+#: qml/Shell.qml:381
313−msgid "Enter your passphrase"
320+msgid "Enter passphrase"
314msgstr ""
321msgstr ""
315
322
316−#: qml/Shell.qml:321
323+#: qml/Shell.qml:382
317msgid "Sorry, incorrect passphrase"
324msgid "Sorry, incorrect passphrase"
318msgstr ""
325msgstr ""
319
326
320−#: qml/Shell.qml:323
327+#: qml/Shell.qml:383
328+msgid "Please re-enter"
329+msgstr ""
330+
331+#: qml/Shell.qml:385
321−msgid "Enter your passcode"
332+msgid "Enter passcode"
322msgstr ""
333msgstr ""
323
334
324−#: qml/Shell.qml:324
335+#: qml/Shell.qml:386
325msgid "Sorry, incorrect passcode"
336msgid "Sorry, incorrect passcode"
326msgstr ""
337msgstr ""
327
338
328−#: qml/Shell.qml:327
339+#: qml/Shell.qml:389
329#, qt-format
340#, qt-format
330−msgid "Enter your %1"
341+msgid "Enter %1"
331msgstr ""
342msgstr ""
332
343
333−#: qml/Shell.qml:328
344+#: qml/Shell.qml:390
334#, qt-format
345#, qt-format
335msgid "Sorry, incorrect %1"
346msgid "Sorry, incorrect %1"
336msgstr ""
347msgstr ""
337
348
338−#: qml/Shell.qml:363
349+#: qml/Shell.qml:431
339msgid "Sorry, incorrect passphrase."
350msgid "Sorry, incorrect passphrase."
340msgstr ""
351msgstr ""
341
352
342−#: qml/Shell.qml:364
353+#: qml/Shell.qml:432
343msgid "Sorry, incorrect passcode."
354msgid "Sorry, incorrect passcode."
344msgstr ""
355msgstr ""
345
356
346−#: qml/Shell.qml:365
357+#: qml/Shell.qml:433
347msgid "This will be your last attempt."
358msgid "This will be your last attempt."
348msgstr ""
359msgstr ""
349
360
350−#: qml/Shell.qml:367
361+#: qml/Shell.qml:435
351msgid ""
362msgid ""
352"If passphrase is entered incorrectly, your phone will conduct a factory "
363"If passphrase is entered incorrectly, your phone will conduct a factory "
353"reset and all personal data will be deleted."
364"reset and all personal data will be deleted."
354msgstr ""
365msgstr ""
355
366
356−#: qml/Shell.qml:368
367+#: qml/Shell.qml:436
357msgid ""
368msgid ""
358"If passcode is entered incorrectly, your phone will conduct a factory reset "
369"If passcode is entered incorrectly, your phone will conduct a factory reset "
359"and all personal data will be deleted."
370"and all personal data will be deleted."
po/br.po+103−91
@@ -7,68 +7,92 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-30 06:25+0000\n"
11+"PO-Revision-Date: 2014-11-05 07:24+0000\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
13"Language-Team: Breton <br@li.org>\n"
13"Language-Team: Breton <br@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n > 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-30 07:10+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
22msgstr "Ger-tremen : "
23msgstr "Ger-tremen : "
23
24
24−#: plugins/Unity/Launcher/launcheritem.cpp:44
25+#: plugins/Unity/Launcher/launcheritem.cpp:45
25−#: plugins/Unity/Launcher/launcheritem.cpp:74
26+#: plugins/Unity/Launcher/launcheritem.cpp:91
26msgid "Pin shortcut"
27msgid "Pin shortcut"
27msgstr "Spilhennañ ar verradenn"
28msgstr "Spilhennañ ar verradenn"
28
29
29−#: plugins/Unity/Launcher/launcheritem.cpp:74
30+#: plugins/Unity/Launcher/launcheritem.cpp:91
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Dispilhennañ ar verradenn"
32msgstr "Dispilhennañ ar verradenn"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Benveg prennet"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+"Prennet eo bet ho penveg abalamour da re a daolioù-esae c'hwitet evit merkañ "
42+"ho frazenn-dremen."
43+
44+#: qml/Components/DelayedLockscreen.qml:63
45+msgid "You have been locked out due to too many failed passcode attempts."
46+msgstr ""
47+"Prennet eo bet ho penveg abalamour da re a daolioù-esae evit merkañ ho kod-"
48+"tremen."
49+
50+#: qml/Components/DelayedLockscreen.qml:72
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] "Gortozit %1 vunutenn, mar plij, hag esaeit en-dro..."
55+msgstr[1] "Gortozit %1 a vunutoù, mar plij, hag esaeit en-dro..."
56+
57+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
58msgid "Log out"
35msgstr "Digevreañ"
59msgstr "Digevreañ"
36
60
37−#: qml/Components/Dialogs.qml:71
61+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
62msgid "Are you sure you want to log out?"
39msgstr "Ha sur oc'h e fell deoc'h digevreañ ?"
63msgstr "Ha sur oc'h e fell deoc'h digevreañ ?"
40
64
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
65+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
66+#: qml/Components/Dialogs.qml:126
43msgid "No"
67msgid "No"
44msgstr "N'on ket"
68msgstr "N'on ket"
45
69
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
70+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
71+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
72msgid "Yes"
49msgstr "Ya"
73msgstr "Ya"
50
74
51−#: qml/Components/Dialogs.qml:94
75+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
76msgid "Shut down"
53msgstr "Lazhañ ar benveg"
77msgstr "Lazhañ ar benveg"
54
78
55−#: qml/Components/Dialogs.qml:95
79+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
80msgid "Are you sure you want to shut down?"
57msgstr "Ha sur oc'h e fell deoc'h lazhañ ar benveg ?"
81msgstr "Ha sur oc'h e fell deoc'h lazhañ ar benveg ?"
58
82
59−#: qml/Components/Dialogs.qml:119
83+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
84msgid "Reboot"
61msgstr "Adloc'hañ"
85msgstr "Adloc'hañ"
62
86
63−#: qml/Components/Dialogs.qml:120
87+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
65msgstr "Ha sur oc'h e fell deoc'h adloc'hañ ?"
89msgstr "Ha sur oc'h e fell deoc'h adloc'hañ ?"
66
90
67−#: qml/Components/Dialogs.qml:144
91+#: qml/Components/Dialogs.qml:148
68msgid "Power"
92msgid "Power"
69msgstr "Tredan"
93msgstr "Tredan"
70
94
71−#: qml/Components/Dialogs.qml:145
95+#: qml/Components/Dialogs.qml:149
72msgid ""
96msgid ""
73"Are you sure you would like\n"
97"Are you sure you would like\n"
74"to power off?"
98"to power off?"
@@ -76,15 +100,15 @@ msgstr ""
76"Ha sur oc'h e fell deoc'h\n"
100"Ha sur oc'h e fell deoc'h\n"
77"troc'hañ an tredan ?"
101"troc'hañ an tredan ?"
78
102
79−#: qml/Components/Dialogs.qml:147
103+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
104msgid "Power off"
81msgstr "Lazhañ"
105msgstr "Lazhañ"
82
106
83−#: qml/Components/Dialogs.qml:157
107+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
108msgid "Restart"
85msgstr "Adloc'hañ"
109msgstr "Adloc'hañ"
86
110
87−#: qml/Components/Dialogs.qml:167
111+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
112msgid "Cancel"
89msgstr "Nullañ"
113msgstr "Nullañ"
90
114
@@ -119,21 +143,21 @@ msgid "Swipe up again to close the settings screen"
119msgstr ""
143msgstr ""
120"Lakait ho piz da riklañ war-du ar bord uhelañ da serriñ skramm an arventennoù"
144"Lakait ho piz da riklañ war-du ar bord uhelañ da serriñ skramm an arventennoù"
121
145
122−#: qml/Components/EdgeDemo.qml:198
146+#: qml/Components/EdgeDemo.qml:201
123msgid "Left edge"
147msgid "Left edge"
124msgstr "Bord kleiz"
148msgstr "Bord kleiz"
125
149
126−#: qml/Components/EdgeDemo.qml:199
150+#: qml/Components/EdgeDemo.qml:202
127msgid "Swipe from the left to reveal the launcher for quick access to apps"
151msgid "Swipe from the left to reveal the launcher for quick access to apps"
128msgstr ""
152msgstr ""
129"Lakait ho piz da riklañ adalek ar bord kleiz da ziskouez al lañser arloadoù "
153"Lakait ho piz da riklañ adalek ar bord kleiz da ziskouez al lañser arloadoù "
130"prim."
154"prim."
131
155
132−#: qml/Components/EdgeDemo.qml:226
156+#: qml/Components/EdgeDemo.qml:229
133msgid "Well done"
157msgid "Well done"
134msgstr "Gourc'hemennoù !"
158msgstr "Gourc'hemennoù !"
135
159
136−#: qml/Components/EdgeDemo.qml:227
160+#: qml/Components/EdgeDemo.qml:230
137msgid ""
161msgid ""
138"You have now mastered the edge gestures and can start using the "
162"You have now mastered the edge gestures and can start using the "
139"phone<br><br>Tap on the screen to start"
163"phone<br><br>Tap on the screen to start"
@@ -141,40 +165,27 @@ msgstr ""
141"Mestroniañ a rit ar jestroù ha gallout a rit kregiñ da implijout ar "
165"Mestroniañ a rit ar jestroù ha gallout a rit kregiñ da implijout ar "
142"pellgomzer<br><br>Touchit d'ar skramm evit kregiñ ganti"
166"pellgomzer<br><br>Touchit d'ar skramm evit kregiñ ganti"
143
167
144−#: qml/Components/Lockscreen.qml:167
168+#: qml/Components/Lockscreen.qml:223
145−msgid "Please wait"
169+msgid "Return to Call"
146−msgstr "Gortozit, mar plij"
170+msgstr "Distreiñ d'ar bellgomzadenn"
147
171
148−#: qml/Components/Lockscreen.qml:172
172+#: qml/Components/Lockscreen.qml:223
149−msgid "Too many incorrect attempts"
150−msgstr "Re a daolioù-esae direizh"
151−
152−#: qml/Components/Lockscreen.qml:206
153msgid "Emergency Call"
173msgid "Emergency Call"
154msgstr "Pellgomzadenn vallus"
174msgstr "Pellgomzadenn vallus"
155
175
156−#: qml/Components/Lockscreen.qml:226
176+#: qml/Components/Lockscreen.qml:255
157msgid "OK"
177msgid "OK"
158msgstr "Mat eo"
178msgstr "Mat eo"
159
179
160−#: qml/Components/PassphraseLockscreen.qml:61
161−#, qt-format
162−msgid "Hello %1"
163−msgstr "Demat %1"
164−
165−#: qml/Components/PassphraseLockscreen.qml:61
166−msgid "Hello"
167−msgstr "Demat"
168−
169−#: qml/Dash/GenericScopeView.qml:364 qml/Dash/GenericScopeView.qml:483
180+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
170msgid "See less"
181msgid "See less"
171msgstr "Gwelet nebeutoc'h"
182msgstr "Gwelet nebeutoc'h"
172
183
173−#: qml/Dash/GenericScopeView.qml:364
184+#: qml/Dash/GenericScopeView.qml:434
174msgid "See all"
185msgid "See all"
175msgstr "Gwelet pep tra"
186msgstr "Gwelet pep tra"
176
187
177−#: qml/Dash/GenericScopeView.qml:427 qml/Dash/PageHeader.qml:258
188+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
178#: qml/Panel/SearchIndicator.qml:27
189#: qml/Panel/SearchIndicator.qml:27
179msgid "Search"
190msgid "Search"
180msgstr "Klask"
191msgstr "Klask"
@@ -211,15 +222,23 @@ msgstr "Ouzhpennañ un ali"
211msgid "Send"
222msgid "Send"
212msgstr "Kas"
223msgstr "Kas"
213
224
225+#: qml/Dash/PullToRefreshScopeStyle.qml:55
226+msgid "Pull to refresh…"
227+msgstr "Tennañ evit freskaat..."
228+
229+#: qml/Dash/PullToRefreshScopeStyle.qml:60
230+msgid "Release to refresh…"
231+msgstr "Lezel da vont evit freskaat..."
232+
214−#: qml/Dash/ScopesOverview.qml:206
233+#: qml/Dash/ScopesOverview.qml:215
215msgid "Manage Scopes"
234msgid "Manage Scopes"
216msgstr "Merañ ar c'hefluskerioù enklask"
235msgstr "Merañ ar c'hefluskerioù enklask"
217
236
218−#: qml/Dash/ScopesOverview.qml:428
237+#: qml/Dash/ScopesOverview.qml:437
219msgid "Done"
238msgid "Done"
220msgstr "Graet eo"
239msgstr "Graet eo"
221
240
222−#: qml/Dash/ScopesOverview.qml:454
241+#: qml/Dash/ScopesOverview.qml:463
223msgid "Store"
242msgid "Store"
224msgstr "Enrollañ"
243msgstr "Enrollañ"
225
244
@@ -231,9 +250,9 @@ msgstr "Gwellañ deuet"
231msgid "All"
250msgid "All"
232msgstr "An holl anezho"
251msgstr "An holl anezho"
233
252
234−#: qml/Greeter/Greeter.qml:157
253+#: qml/Greeter/Greeter.qml:174
235−msgid "Swipe to unlock"
254+msgid "Unlock"
236−msgstr "Riklañ evit dibrennañ"
255+msgstr "Dibrennañ"
237
256
238#: qml/Hud/HudParametrizedActionsPage.qml:139
257#: qml/Hud/HudParametrizedActionsPage.qml:139
239msgid "Confirm"
258msgid "Confirm"
@@ -255,51 +274,43 @@ msgstr "Komzit bremañ..."
255msgid "Speaking..."
274msgid "Speaking..."
256msgstr "O komz..."
275msgstr "O komz..."
257
276
258−#: qml/Notifications/NotificationMenuItemFactory.qml:108
277+#: qml/Notifications/NotificationMenuItemFactory.qml:116
259msgid "Show password"
278msgid "Show password"
260msgstr "Diskouez ar ger-tremen"
279msgstr "Diskouez ar ger-tremen"
261
280
262−#: qml/Notifications/NotificationMenuItemFactory.qml:124
263−msgid "Enter SIM PIN"
264−msgstr "Ebarzhit kod PIN ar gartenn SIM"
265−
266−#: qml/Notifications/NotificationMenuItemFactory.qml:125
267−msgid "Sorry, incorrect PIN"
268−msgstr "Siwazh, kod PIN direizh"
269−
270−#: qml/Panel/ActiveCallHint.qml:77
281+#: qml/Panel/ActiveCallHint.qml:79
271msgid "Tap to return to call..."
282msgid "Tap to return to call..."
272msgstr "Touchit evit distreiñ d'ar bellgomzadenn..."
283msgstr "Touchit evit distreiñ d'ar bellgomzadenn..."
273
284
274−#: qml/Panel/ActiveCallHint.qml:90
285+#: qml/Panel/ActiveCallHint.qml:92
275msgid "Conference"
286msgid "Conference"
276msgstr "Kendiviz"
287msgstr "Kendiviz"
277
288
278−#: qml/Panel/Indicators/MenuItemFactory.qml:600
289+#: qml/Panel/Indicators/MenuItemFactory.qml:615
279msgid "Nothing is playing"
290msgid "Nothing is playing"
280msgstr "Ne lenner netra bremañ"
291msgstr "Ne lenner netra bremañ"
281
292
282−#: qml/Panel/Indicators/MenuItemFactory.qml:651
293+#: qml/Panel/Indicators/MenuItemFactory.qml:763
283msgid "In queue…"
294msgid "In queue…"
284msgstr "El lostennad..."
295msgstr "El lostennad..."
285
296
286−#: qml/Panel/Indicators/MenuItemFactory.qml:655
297+#: qml/Panel/Indicators/MenuItemFactory.qml:767
287msgid "Downloading"
298msgid "Downloading"
288msgstr "O pellgargañ"
299msgstr "O pellgargañ"
289
300
290−#: qml/Panel/Indicators/MenuItemFactory.qml:657
301+#: qml/Panel/Indicators/MenuItemFactory.qml:769
291msgid "Paused, tap to resume"
302msgid "Paused, tap to resume"
292msgstr "Ehanet, touchit evit adkregiñ"
303msgstr "Ehanet, touchit evit adkregiñ"
293
304
294−#: qml/Panel/Indicators/MenuItemFactory.qml:659
305+#: qml/Panel/Indicators/MenuItemFactory.qml:771
295msgid "Canceled"
306msgid "Canceled"
296msgstr "Nullet"
307msgstr "Nullet"
297
308
298−#: qml/Panel/Indicators/MenuItemFactory.qml:661
309+#: qml/Panel/Indicators/MenuItemFactory.qml:773
299msgid "Finished"
310msgid "Finished"
300msgstr "Echu"
311msgstr "Echu"
301
312
302−#: qml/Panel/Indicators/MenuItemFactory.qml:663
313+#: qml/Panel/Indicators/MenuItemFactory.qml:775
303msgid "Failed, tap to retry"
314msgid "Failed, tap to retry"
304msgstr "C'hwitet, touchit evit adkregiñ"
315msgstr "C'hwitet, touchit evit adkregiñ"
305
316
@@ -311,45 +322,49 @@ msgstr "Dibrennañ ar gartenn SIM"
311msgid "Roaming"
322msgid "Roaming"
312msgstr "O kantren"
323msgstr "O kantren"
313
324
314−#: qml/Shell.qml:292
325+#: qml/Shell.qml:381
315−msgid "Enter your passphrase"
326+msgid "Enter passphrase"
316−msgstr "Ebarzhit ho frazenn-dremen"
327+msgstr "Merkañ ar frazenn-dremen"
317
328
318−#: qml/Shell.qml:293
329+#: qml/Shell.qml:382
319msgid "Sorry, incorrect passphrase"
330msgid "Sorry, incorrect passphrase"
320msgstr "Siwazh, frazenn-dremen direizh"
331msgstr "Siwazh, frazenn-dremen direizh"
321
332
322−#: qml/Shell.qml:295
333+#: qml/Shell.qml:383
323−msgid "Enter your passcode"
334+msgid "Please re-enter"
324−msgstr "Ebarzhit ho kod-tremen"
335+msgstr "Adverkañ, mar plij"
325
336
326−#: qml/Shell.qml:296
337+#: qml/Shell.qml:385
338+msgid "Enter passcode"
339+msgstr "Merkañ ar c'hod-tremen"
340+
341+#: qml/Shell.qml:386
327msgid "Sorry, incorrect passcode"
342msgid "Sorry, incorrect passcode"
328msgstr "Digarezit, kod-tremen direizh"
343msgstr "Digarezit, kod-tremen direizh"
329
344
330−#: qml/Shell.qml:299
345+#: qml/Shell.qml:389
331#, qt-format
346#, qt-format
332−msgid "Enter your %1"
347+msgid "Enter %1"
333−msgstr "Ebarzhit ho %1"
348+msgstr "Merkañ %1"
334
349
335−#: qml/Shell.qml:300
350+#: qml/Shell.qml:390
336#, qt-format
351#, qt-format
337msgid "Sorry, incorrect %1"
352msgid "Sorry, incorrect %1"
338msgstr "Siwazh, %1 direizh"
353msgstr "Siwazh, %1 direizh"
339
354
340−#: qml/Shell.qml:335
355+#: qml/Shell.qml:431
341msgid "Sorry, incorrect passphrase."
356msgid "Sorry, incorrect passphrase."
342msgstr "Siwazh, frazenn-dremen direizh"
357msgstr "Siwazh, frazenn-dremen direizh"
343
358
344−#: qml/Shell.qml:336
359+#: qml/Shell.qml:432
345msgid "Sorry, incorrect passcode."
360msgid "Sorry, incorrect passcode."
346msgstr "Siwazh, kod-tremen direizh"
361msgstr "Siwazh, kod-tremen direizh"
347
362
348−#: qml/Shell.qml:337
363+#: qml/Shell.qml:433
349msgid "This will be your last attempt."
364msgid "This will be your last attempt."
350msgstr "Ho taol-esae diwezhañ e vo."
365msgstr "Ho taol-esae diwezhañ e vo."
351
366
352−#: qml/Shell.qml:339
367+#: qml/Shell.qml:435
353msgid ""
368msgid ""
354"If passphrase is entered incorrectly, your phone will conduct a factory "
369"If passphrase is entered incorrectly, your phone will conduct a factory "
355"reset and all personal data will be deleted."
370"reset and all personal data will be deleted."
@@ -357,13 +372,10 @@ msgstr ""
357"Ma vez ebarzhet ur frazenn-dremen direizh, e vo adderaouekaet ho pellgomzer "
372"Ma vez ebarzhet ur frazenn-dremen direizh, e vo adderaouekaet ho pellgomzer "
358"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel"
373"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel"
359
374
360−#: qml/Shell.qml:340
375+#: qml/Shell.qml:436
361msgid ""
376msgid ""
362"If passcode is entered incorrectly, your phone will conduct a factory reset "
377"If passcode is entered incorrectly, your phone will conduct a factory reset "
363"and all personal data will be deleted."
378"and all personal data will be deleted."
364msgstr ""
379msgstr ""
365"Ma vez ebarzhet ur c'hod-tremen direizh, e vo adderaouekaet ho pellgomzer "
380"Ma vez ebarzhet ur c'hod-tremen direizh, e vo adderaouekaet ho pellgomzer "
366"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel."
381"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel."
367−
368−#~ msgid "Manage Dash"
369−#~ msgstr "Merañ an daolenn-vourzh"
po/bs.po+95−83
@@ -7,15 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-01-16 22:33+0000\n"
11"PO-Revision-Date: 2014-01-16 22:33+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
19+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
20+"X-Generator: Launchpad (build 17223)\n"
19
21
20#: plugins/LightDM/Greeter.cpp:130
22#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
23msgid "Password: "
@@ -30,69 +32,88 @@ msgstr ""
30msgid "Unpin shortcut"
32msgid "Unpin shortcut"
31msgstr ""
33msgstr ""
32
34
33−#: qml/Components/Dialogs.qml:70
35+#: qml/Components/DelayedLockscreen.qml:47
36+msgid "Device Locked"
37+msgstr ""
38+
39+#: qml/Components/DelayedLockscreen.qml:62
40+msgid "You have been locked out due to too many failed passphrase attempts."
41+msgstr ""
42+
43+#: qml/Components/DelayedLockscreen.qml:63
44+msgid "You have been locked out due to too many failed passcode attempts."
45+msgstr ""
46+
47+#: qml/Components/DelayedLockscreen.qml:72
48+#, qt-format
49+msgid "Please wait %1 minute and then try again…"
50+msgid_plural "Please wait %1 minutes and then try again…"
51+msgstr[0] ""
52+msgstr[1] ""
53+
54+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
55msgid "Log out"
35msgstr ""
56msgstr ""
36
57
37−#: qml/Components/Dialogs.qml:71
58+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
59msgid "Are you sure you want to log out?"
39msgstr ""
60msgstr ""
40
61
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
62+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
63+#: qml/Components/Dialogs.qml:126
43msgid "No"
64msgid "No"
44msgstr ""
65msgstr ""
45
66
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
67+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
68+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
69msgid "Yes"
49msgstr ""
70msgstr ""
50
71
51−#: qml/Components/Dialogs.qml:94
72+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
73msgid "Shut down"
53msgstr ""
74msgstr ""
54
75
55−#: qml/Components/Dialogs.qml:95
76+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
77msgid "Are you sure you want to shut down?"
57msgstr ""
78msgstr ""
58
79
59−#: qml/Components/Dialogs.qml:119
80+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
81msgid "Reboot"
61msgstr ""
82msgstr ""
62
83
63−#: qml/Components/Dialogs.qml:120
84+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
85msgid "Are you sure you want to reboot?"
65msgstr ""
86msgstr ""
66
87
67−#: qml/Components/Dialogs.qml:144
88+#: qml/Components/Dialogs.qml:148
68msgid "Power"
89msgid "Power"
69msgstr ""
90msgstr ""
70
91
71−#: qml/Components/Dialogs.qml:145
92+#: qml/Components/Dialogs.qml:149
72msgid ""
93msgid ""
73"Are you sure you would like\n"
94"Are you sure you would like\n"
74"to power off?"
95"to power off?"
75msgstr ""
96msgstr ""
76
97
77−#: qml/Components/Dialogs.qml:147
98+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
99msgid "Power off"
79msgstr ""
100msgstr ""
80
101
81−#: qml/Components/Dialogs.qml:157
102+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
103msgid "Restart"
83msgstr ""
104msgstr ""
84
105
85−#: qml/Components/Dialogs.qml:167
106+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
107msgid "Cancel"
87msgstr ""
108msgstr ""
88
109
89#: qml/Components/EdgeDemoOverlay.qml:151
110#: qml/Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
111msgid "Skip intro"
91−msgstr ""
112+msgstr "Preskoči uvod"
92
113
93#: qml/Components/EdgeDemo.qml:112
114#: qml/Components/EdgeDemo.qml:112
94msgid "Right edge"
115msgid "Right edge"
95−msgstr ""
116+msgstr "Desna ivica"
96
117
97#: qml/Components/EdgeDemo.qml:113
118#: qml/Components/EdgeDemo.qml:113
98msgid "Try swiping from the right edge to unlock the phone"
119msgid "Try swiping from the right edge to unlock the phone"
@@ -100,7 +121,7 @@ msgstr ""
100
121
101#: qml/Components/EdgeDemo.qml:144
122#: qml/Components/EdgeDemo.qml:144
102msgid "Top edge"
123msgid "Top edge"
103−msgstr ""
124+msgstr "Gornja ivica"
104
125
105#: qml/Components/EdgeDemo.qml:145
126#: qml/Components/EdgeDemo.qml:145
106msgid "Try swiping from the top edge to access the indicators"
127msgid "Try swiping from the top edge to access the indicators"
@@ -108,64 +129,51 @@ msgstr ""
108
129
109#: qml/Components/EdgeDemo.qml:170
130#: qml/Components/EdgeDemo.qml:170
110msgid "Close"
131msgid "Close"
111−msgstr ""
132+msgstr "Zatvori"
112
133
113#: qml/Components/EdgeDemo.qml:171
134#: qml/Components/EdgeDemo.qml:171
114msgid "Swipe up again to close the settings screen"
135msgid "Swipe up again to close the settings screen"
115msgstr ""
136msgstr ""
116
137
117−#: qml/Components/EdgeDemo.qml:198
138+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
139msgid "Left edge"
119msgstr ""
140msgstr ""
120
141
121−#: qml/Components/EdgeDemo.qml:199
142+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
143msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
144msgstr ""
124
145
125−#: qml/Components/EdgeDemo.qml:226
146+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
147msgid "Well done"
127msgstr ""
148msgstr ""
128
149
129−#: qml/Components/EdgeDemo.qml:227
150+#: qml/Components/EdgeDemo.qml:230
130msgid ""
151msgid ""
131"You have now mastered the edge gestures and can start using the "
152"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
153"phone<br><br>Tap on the screen to start"
133msgstr ""
154msgstr ""
134
155
135−#: qml/Components/Lockscreen.qml:167
156+#: qml/Components/Lockscreen.qml:223
136−msgid "Please wait"
157+msgid "Return to Call"
137msgstr ""
158msgstr ""
138
159
139−#: qml/Components/Lockscreen.qml:172
160+#: qml/Components/Lockscreen.qml:223
140−msgid "Too many incorrect attempts"
141−msgstr ""
142−
143−#: qml/Components/Lockscreen.qml:206
144msgid "Emergency Call"
161msgid "Emergency Call"
145msgstr ""
162msgstr ""
146
163
147−#: qml/Components/Lockscreen.qml:226
164+#: qml/Components/Lockscreen.qml:255
148msgid "OK"
165msgid "OK"
149msgstr ""
166msgstr ""
150
167
151−#: qml/Components/PassphraseLockscreen.qml:61
152−#, qt-format
153−msgid "Hello %1"
154−msgstr ""
155−
156−#: qml/Components/PassphraseLockscreen.qml:61
157−msgid "Hello"
158−msgstr ""
159−
160−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
168+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
161msgid "See less"
169msgid "See less"
162msgstr ""
170msgstr ""
163
171
164−#: qml/Dash/GenericScopeView.qml:411
172+#: qml/Dash/GenericScopeView.qml:434
165msgid "See all"
173msgid "See all"
166msgstr ""
174msgstr ""
167
175
168−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
176+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
169#: qml/Panel/SearchIndicator.qml:27
177#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
178msgid "Search"
171msgstr ""
179msgstr ""
@@ -202,15 +210,23 @@ msgstr ""
202msgid "Send"
210msgid "Send"
203msgstr ""
211msgstr ""
204
212
213+#: qml/Dash/PullToRefreshScopeStyle.qml:55
214+msgid "Pull to refresh…"
215+msgstr ""
216+
217+#: qml/Dash/PullToRefreshScopeStyle.qml:60
218+msgid "Release to refresh…"
219+msgstr ""
220+
205−#: qml/Dash/ScopesOverview.qml:206
221+#: qml/Dash/ScopesOverview.qml:215
206msgid "Manage Scopes"
222msgid "Manage Scopes"
207msgstr ""
223msgstr ""
208
224
209−#: qml/Dash/ScopesOverview.qml:428
225+#: qml/Dash/ScopesOverview.qml:437
210msgid "Done"
226msgid "Done"
211msgstr ""
227msgstr ""
212
228
213−#: qml/Dash/ScopesOverview.qml:454
229+#: qml/Dash/ScopesOverview.qml:463
214msgid "Store"
230msgid "Store"
215msgstr ""
231msgstr ""
216
232
@@ -222,8 +238,8 @@ msgstr ""
222msgid "All"
238msgid "All"
223msgstr ""
239msgstr ""
224
240
225−#: qml/Greeter/Greeter.qml:157
241+#: qml/Greeter/Greeter.qml:174
226−msgid "Swipe to unlock"
242+msgid "Unlock"
227msgstr ""
243msgstr ""
228
244
229#: qml/Hud/HudParametrizedActionsPage.qml:139
245#: qml/Hud/HudParametrizedActionsPage.qml:139
@@ -246,51 +262,43 @@ msgstr ""
246msgid "Speaking..."
262msgid "Speaking..."
247msgstr ""
263msgstr ""
248
264
249−#: qml/Notifications/NotificationMenuItemFactory.qml:108
265+#: qml/Notifications/NotificationMenuItemFactory.qml:116
250msgid "Show password"
266msgid "Show password"
251msgstr ""
267msgstr ""
252
268
253−#: qml/Notifications/NotificationMenuItemFactory.qml:124
254−msgid "Enter SIM PIN"
255−msgstr ""
256−
257−#: qml/Notifications/NotificationMenuItemFactory.qml:125
258−msgid "Sorry, incorrect PIN"
259−msgstr ""
260−
261−#: qml/Panel/ActiveCallHint.qml:77
269+#: qml/Panel/ActiveCallHint.qml:79
262msgid "Tap to return to call..."
270msgid "Tap to return to call..."
263msgstr ""
271msgstr ""
264
272
265−#: qml/Panel/ActiveCallHint.qml:90
273+#: qml/Panel/ActiveCallHint.qml:92
266msgid "Conference"
274msgid "Conference"
267msgstr ""
275msgstr ""
268
276
269−#: qml/Panel/Indicators/MenuItemFactory.qml:600
277+#: qml/Panel/Indicators/MenuItemFactory.qml:615
270msgid "Nothing is playing"
278msgid "Nothing is playing"
271msgstr ""
279msgstr ""
272
280
273−#: qml/Panel/Indicators/MenuItemFactory.qml:748
281+#: qml/Panel/Indicators/MenuItemFactory.qml:763
274msgid "In queue…"
282msgid "In queue…"
275msgstr ""
283msgstr ""
276
284
277−#: qml/Panel/Indicators/MenuItemFactory.qml:752
285+#: qml/Panel/Indicators/MenuItemFactory.qml:767
278msgid "Downloading"
286msgid "Downloading"
279msgstr ""
287msgstr ""
280
288
281−#: qml/Panel/Indicators/MenuItemFactory.qml:754
289+#: qml/Panel/Indicators/MenuItemFactory.qml:769
282msgid "Paused, tap to resume"
290msgid "Paused, tap to resume"
283msgstr ""
291msgstr ""
284
292
285−#: qml/Panel/Indicators/MenuItemFactory.qml:756
293+#: qml/Panel/Indicators/MenuItemFactory.qml:771
286msgid "Canceled"
294msgid "Canceled"
287msgstr ""
295msgstr ""
288
296
289−#: qml/Panel/Indicators/MenuItemFactory.qml:758
297+#: qml/Panel/Indicators/MenuItemFactory.qml:773
290msgid "Finished"
298msgid "Finished"
291msgstr ""
299msgstr ""
292
300
293−#: qml/Panel/Indicators/MenuItemFactory.qml:760
301+#: qml/Panel/Indicators/MenuItemFactory.qml:775
294msgid "Failed, tap to retry"
302msgid "Failed, tap to retry"
295msgstr ""
303msgstr ""
296
304
@@ -302,51 +310,55 @@ msgstr ""
302msgid "Roaming"
310msgid "Roaming"
303msgstr ""
311msgstr ""
304
312
305−#: qml/Shell.qml:320
313+#: qml/Shell.qml:381
306−msgid "Enter your passphrase"
314+msgid "Enter passphrase"
307msgstr ""
315msgstr ""
308
316
309−#: qml/Shell.qml:321
317+#: qml/Shell.qml:382
310msgid "Sorry, incorrect passphrase"
318msgid "Sorry, incorrect passphrase"
311msgstr ""
319msgstr ""
312
320
313−#: qml/Shell.qml:323
321+#: qml/Shell.qml:383
322+msgid "Please re-enter"
323+msgstr ""
324+
325+#: qml/Shell.qml:385
314−msgid "Enter your passcode"
326+msgid "Enter passcode"
315msgstr ""
327msgstr ""
316
328
317−#: qml/Shell.qml:324
329+#: qml/Shell.qml:386
318msgid "Sorry, incorrect passcode"
330msgid "Sorry, incorrect passcode"
319msgstr ""
331msgstr ""
320
332
321−#: qml/Shell.qml:327
333+#: qml/Shell.qml:389
322#, qt-format
334#, qt-format
323−msgid "Enter your %1"
335+msgid "Enter %1"
324msgstr ""
336msgstr ""
325
337
326−#: qml/Shell.qml:328
338+#: qml/Shell.qml:390
327#, qt-format
339#, qt-format
328msgid "Sorry, incorrect %1"
340msgid "Sorry, incorrect %1"
329msgstr ""
341msgstr ""
330
342
331−#: qml/Shell.qml:363
343+#: qml/Shell.qml:431
332msgid "Sorry, incorrect passphrase."
344msgid "Sorry, incorrect passphrase."
333msgstr ""
345msgstr ""
334
346
335−#: qml/Shell.qml:364
347+#: qml/Shell.qml:432
336msgid "Sorry, incorrect passcode."
348msgid "Sorry, incorrect passcode."
337msgstr ""
349msgstr ""
338
350
339−#: qml/Shell.qml:365
351+#: qml/Shell.qml:433
340msgid "This will be your last attempt."
352msgid "This will be your last attempt."
341msgstr ""
353msgstr ""
342
354
343−#: qml/Shell.qml:367
355+#: qml/Shell.qml:435
344msgid ""
356msgid ""
345"If passphrase is entered incorrectly, your phone will conduct a factory "
357"If passphrase is entered incorrectly, your phone will conduct a factory "
346"reset and all personal data will be deleted."
358"reset and all personal data will be deleted."
347msgstr ""
359msgstr ""
348
360
349−#: qml/Shell.qml:368
361+#: qml/Shell.qml:436
350msgid ""
362msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
363"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
364"and all personal data will be deleted."
po/ca.po+105−92
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-23 06:27+0000\n"
11+"PO-Revision-Date: 2014-10-07 10:51+0000\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,45 +31,68 @@ msgstr "Enganxa la drecera"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Desenganxa la drecera"
32msgstr "Desenganxa la drecera"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Dispositiu bloquejat"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
42+"d'intents d'introducció de la contrasenya."
43+
44+#: qml/Components/DelayedLockscreen.qml:63
45+msgid "You have been locked out due to too many failed passcode attempts."
46+msgstr ""
47+"Se us ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
48+"d'intents d'introducció del codi d'accés."
49+
50+#: qml/Components/DelayedLockscreen.qml:72
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] "Espereu %1 minut i torneu-ho a intentar..."
55+msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
56+
57+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
58msgid "Log out"
35msgstr "Surt"
59msgstr "Surt"
36
60
37−#: qml/Components/Dialogs.qml:71
61+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
62msgid "Are you sure you want to log out?"
39msgstr "Segur que voleu sortir?"
63msgstr "Segur que voleu sortir?"
40
64
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
65+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
66+#: qml/Components/Dialogs.qml:126
43msgid "No"
67msgid "No"
44msgstr "No"
68msgstr "No"
45
69
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
70+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
71+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
72msgid "Yes"
49msgstr "Sí"
73msgstr "Sí"
50
74
51−#: qml/Components/Dialogs.qml:94
75+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
76msgid "Shut down"
53msgstr "Apaga"
77msgstr "Apaga"
54
78
55−#: qml/Components/Dialogs.qml:95
79+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
80msgid "Are you sure you want to shut down?"
57msgstr "Segur que voleu apagar?"
81msgstr "Segur que voleu apagar?"
58
82
59−#: qml/Components/Dialogs.qml:119
83+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
84msgid "Reboot"
61msgstr "Reinicia"
85msgstr "Reinicia"
62
86
63−#: qml/Components/Dialogs.qml:120
87+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
65msgstr "Segur que voleu reiniciar?"
89msgstr "Segur que voleu reiniciar?"
66
90
67−#: qml/Components/Dialogs.qml:144
91+#: qml/Components/Dialogs.qml:148
68msgid "Power"
92msgid "Power"
69msgstr "Energia"
93msgstr "Energia"
70
94
71−#: qml/Components/Dialogs.qml:145
95+#: qml/Components/Dialogs.qml:149
72msgid ""
96msgid ""
73"Are you sure you would like\n"
97"Are you sure you would like\n"
74"to power off?"
98"to power off?"
@@ -76,15 +100,15 @@ msgstr ""
76"Segur que voleu\n"
100"Segur que voleu\n"
77"apagar?"
101"apagar?"
78
102
79−#: qml/Components/Dialogs.qml:147
103+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
104msgid "Power off"
81msgstr "Apaga"
105msgstr "Apaga"
82
106
83−#: qml/Components/Dialogs.qml:157
107+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
108msgid "Restart"
85msgstr "Reinicia"
109msgstr "Reinicia"
86
110
87−#: qml/Components/Dialogs.qml:167
111+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
112msgid "Cancel"
89msgstr "Cancel·la"
113msgstr "Cancel·la"
90
114
@@ -120,21 +144,21 @@ msgstr ""
120"Llisqueu el dit cap amunt una altra vegada per tancar la pantalla de "
144"Llisqueu el dit cap amunt una altra vegada per tancar la pantalla de "
121"configuració"
145"configuració"
122
146
123−#: qml/Components/EdgeDemo.qml:198
147+#: qml/Components/EdgeDemo.qml:201
124msgid "Left edge"
148msgid "Left edge"
125msgstr "Vora esquerra"
149msgstr "Vora esquerra"
126
150
127−#: qml/Components/EdgeDemo.qml:199
151+#: qml/Components/EdgeDemo.qml:202
128msgid "Swipe from the left to reveal the launcher for quick access to apps"
152msgid "Swipe from the left to reveal the launcher for quick access to apps"
129msgstr ""
153msgstr ""
130"Llisqueu el dit des de la vora esquerra per mostrar el llançador i accedir "
154"Llisqueu el dit des de la vora esquerra per mostrar el llançador i accedir "
131"ràpidament a les aplicacions"
155"ràpidament a les aplicacions"
132
156
133−#: qml/Components/EdgeDemo.qml:226
157+#: qml/Components/EdgeDemo.qml:229
134msgid "Well done"
158msgid "Well done"
135msgstr "Enhorabona!"
159msgstr "Enhorabona!"
136
160
137−#: qml/Components/EdgeDemo.qml:227
161+#: qml/Components/EdgeDemo.qml:230
138msgid ""
162msgid ""
139"You have now mastered the edge gestures and can start using the "
163"You have now mastered the edge gestures and can start using the "
140"phone<br><br>Tap on the screen to start"
164"phone<br><br>Tap on the screen to start"
@@ -142,40 +166,27 @@ msgstr ""
142"Ja heu après com utilitzar els gestos de les vores per fer servir el "
166"Ja heu après com utilitzar els gestos de les vores per fer servir el "
143"telèfon<br><br>Feu un toc a la pantalla per començar"
167"telèfon<br><br>Feu un toc a la pantalla per començar"
144
168
145−#: qml/Components/Lockscreen.qml:167
169+#: qml/Components/Lockscreen.qml:223
146−msgid "Please wait"
170+msgid "Return to Call"
147−msgstr "Espereu"
171+msgstr ""
148−
149−#: qml/Components/Lockscreen.qml:172
150−msgid "Too many incorrect attempts"
151−msgstr "Massa intents incorrectes"
152
172
153−#: qml/Components/Lockscreen.qml:206
173+#: qml/Components/Lockscreen.qml:223
154msgid "Emergency Call"
174msgid "Emergency Call"
155msgstr "Trucada d'emergència"
175msgstr "Trucada d'emergència"
156
176
157−#: qml/Components/Lockscreen.qml:226
177+#: qml/Components/Lockscreen.qml:255
158msgid "OK"
178msgid "OK"
159msgstr "D'acord"
179msgstr "D'acord"
160
180
161−#: qml/Components/PassphraseLockscreen.qml:61
162−#, qt-format
163−msgid "Hello %1"
164−msgstr "Hola %1"
165−
166−#: qml/Components/PassphraseLockscreen.qml:61
167−msgid "Hello"
168−msgstr "Hola"
169−
170−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
181+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
171msgid "See less"
182msgid "See less"
172msgstr "Mostra'n menys"
183msgstr "Mostra'n menys"
173
184
174−#: qml/Dash/GenericScopeView.qml:411
185+#: qml/Dash/GenericScopeView.qml:434
175msgid "See all"
186msgid "See all"
176msgstr "Mostra-ho tot"
187msgstr "Mostra-ho tot"
177
188
178−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
189+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
179#: qml/Panel/SearchIndicator.qml:27
190#: qml/Panel/SearchIndicator.qml:27
180msgid "Search"
191msgid "Search"
181msgstr "Cerca"
192msgstr "Cerca"
@@ -212,15 +223,23 @@ msgstr "Afegiu una ressenya"
212msgid "Send"
223msgid "Send"
213msgstr "Envia"
224msgstr "Envia"
214
225
226+#: qml/Dash/PullToRefreshScopeStyle.qml:55
227+msgid "Pull to refresh…"
228+msgstr "Estireu per actualitzar..."
229+
230+#: qml/Dash/PullToRefreshScopeStyle.qml:60
231+msgid "Release to refresh…"
232+msgstr "Deixeu anar per actualitzar..."
233+
215−#: qml/Dash/ScopesOverview.qml:206
234+#: qml/Dash/ScopesOverview.qml:215
216msgid "Manage Scopes"
235msgid "Manage Scopes"
217−msgstr ""
236+msgstr "Gestioneu les lents"
218
237
219−#: qml/Dash/ScopesOverview.qml:428
238+#: qml/Dash/ScopesOverview.qml:437
220msgid "Done"
239msgid "Done"
221msgstr "Fet"
240msgstr "Fet"
222
241
223−#: qml/Dash/ScopesOverview.qml:454
242+#: qml/Dash/ScopesOverview.qml:463
224msgid "Store"
243msgid "Store"
225msgstr "Botiga"
244msgstr "Botiga"
226
245
@@ -232,9 +251,9 @@ msgstr "Preferides"
232msgid "All"
251msgid "All"
233msgstr "Totes"
252msgstr "Totes"
234
253
235−#: qml/Greeter/Greeter.qml:157
254+#: qml/Greeter/Greeter.qml:174
236−msgid "Swipe to unlock"
255+msgid "Unlock"
237−msgstr "Feu lliscar el dit per desbloquejar"
256+msgstr "Desbloca"
238
257
239#: qml/Hud/HudParametrizedActionsPage.qml:139
258#: qml/Hud/HudParametrizedActionsPage.qml:139
240msgid "Confirm"
259msgid "Confirm"
@@ -256,51 +275,43 @@ msgstr "Parleu..."
256msgid "Speaking..."
275msgid "Speaking..."
257msgstr "S'està parlant..."
276msgstr "S'està parlant..."
258
277
259−#: qml/Notifications/NotificationMenuItemFactory.qml:108
278+#: qml/Notifications/NotificationMenuItemFactory.qml:116
260msgid "Show password"
279msgid "Show password"
261msgstr "Mostra la contrasenya"
280msgstr "Mostra la contrasenya"
262
281
263−#: qml/Notifications/NotificationMenuItemFactory.qml:124
264−msgid "Enter SIM PIN"
265−msgstr "Introduïu el PIN de la targeta SIM"
266−
267−#: qml/Notifications/NotificationMenuItemFactory.qml:125
268−msgid "Sorry, incorrect PIN"
269−msgstr "El PIN no és correcte"
270−
271−#: qml/Panel/ActiveCallHint.qml:77
282+#: qml/Panel/ActiveCallHint.qml:79
272msgid "Tap to return to call..."
283msgid "Tap to return to call..."
273msgstr "Feu un toc per tornar a la trucada..."
284msgstr "Feu un toc per tornar a la trucada..."
274
285
275−#: qml/Panel/ActiveCallHint.qml:90
286+#: qml/Panel/ActiveCallHint.qml:92
276msgid "Conference"
287msgid "Conference"
277msgstr "Conferència"
288msgstr "Conferència"
278
289
279−#: qml/Panel/Indicators/MenuItemFactory.qml:600
290+#: qml/Panel/Indicators/MenuItemFactory.qml:615
280msgid "Nothing is playing"
291msgid "Nothing is playing"
281−msgstr ""
292+msgstr "No s'està reproduint res"
282
293
283−#: qml/Panel/Indicators/MenuItemFactory.qml:748
294+#: qml/Panel/Indicators/MenuItemFactory.qml:763
284msgid "In queue…"
295msgid "In queue…"
285msgstr "A la cua..."
296msgstr "A la cua..."
286
297
287−#: qml/Panel/Indicators/MenuItemFactory.qml:752
298+#: qml/Panel/Indicators/MenuItemFactory.qml:767
288msgid "Downloading"
299msgid "Downloading"
289msgstr "S'està baixant"
300msgstr "S'està baixant"
290
301
291−#: qml/Panel/Indicators/MenuItemFactory.qml:754
302+#: qml/Panel/Indicators/MenuItemFactory.qml:769
292msgid "Paused, tap to resume"
303msgid "Paused, tap to resume"
293msgstr "En pausa, feu un toc per continuar"
304msgstr "En pausa, feu un toc per continuar"
294
305
295−#: qml/Panel/Indicators/MenuItemFactory.qml:756
306+#: qml/Panel/Indicators/MenuItemFactory.qml:771
296msgid "Canceled"
307msgid "Canceled"
297msgstr "S'ha cancel·lat"
308msgstr "S'ha cancel·lat"
298
309
299−#: qml/Panel/Indicators/MenuItemFactory.qml:758
310+#: qml/Panel/Indicators/MenuItemFactory.qml:773
300msgid "Finished"
311msgid "Finished"
301msgstr "S'ha finalitzat"
312msgstr "S'ha finalitzat"
302
313
303−#: qml/Panel/Indicators/MenuItemFactory.qml:760
314+#: qml/Panel/Indicators/MenuItemFactory.qml:775
304msgid "Failed, tap to retry"
315msgid "Failed, tap to retry"
305msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
316msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
306
317
@@ -312,45 +323,49 @@ msgstr "Desbloca la SIM"
312msgid "Roaming"
323msgid "Roaming"
313msgstr "Itinerància"
324msgstr "Itinerància"
314
325
315−#: qml/Shell.qml:320
326+#: qml/Shell.qml:381
316−msgid "Enter your passphrase"
327+msgid "Enter passphrase"
317−msgstr "Escriviu la contrasenya"
328+msgstr "Introduïu la contrasenya"
318
329
319−#: qml/Shell.qml:321
330+#: qml/Shell.qml:382
320msgid "Sorry, incorrect passphrase"
331msgid "Sorry, incorrect passphrase"
321msgstr "La contrasenya no és correcta"
332msgstr "La contrasenya no és correcta"
322
333
323−#: qml/Shell.qml:323
334+#: qml/Shell.qml:383
335+msgid "Please re-enter"
336+msgstr "Torneu-ho a introduir"
337+
338+#: qml/Shell.qml:385
324−msgid "Enter your passcode"
339+msgid "Enter passcode"
325msgstr "Introduïu el codi d'accés"
340msgstr "Introduïu el codi d'accés"
326
341
327−#: qml/Shell.qml:324
342+#: qml/Shell.qml:386
328msgid "Sorry, incorrect passcode"
343msgid "Sorry, incorrect passcode"
329msgstr "El codi d'accés no és correcte"
344msgstr "El codi d'accés no és correcte"
330
345
331−#: qml/Shell.qml:327
346+#: qml/Shell.qml:389
332#, qt-format
347#, qt-format
333−msgid "Enter your %1"
348+msgid "Enter %1"
334−msgstr "Introduïu la %1"
349+msgstr "Introduïu: %1"
335
350
336−#: qml/Shell.qml:328
351+#: qml/Shell.qml:390
337#, qt-format
352#, qt-format
338msgid "Sorry, incorrect %1"
353msgid "Sorry, incorrect %1"
339msgstr "Incorrecte (%1)"
354msgstr "Incorrecte (%1)"
340
355
341−#: qml/Shell.qml:363
356+#: qml/Shell.qml:431
342msgid "Sorry, incorrect passphrase."
357msgid "Sorry, incorrect passphrase."
343msgstr "La contrasenya és incorrecta"
358msgstr "La contrasenya és incorrecta"
344
359
345−#: qml/Shell.qml:364
360+#: qml/Shell.qml:432
346msgid "Sorry, incorrect passcode."
361msgid "Sorry, incorrect passcode."
347−msgstr "La clau és incorrecta"
362+msgstr "El codi d'accés no és correcte"
348
363
349−#: qml/Shell.qml:365
364+#: qml/Shell.qml:433
350msgid "This will be your last attempt."
365msgid "This will be your last attempt."
351msgstr "Aquest serà el darrer intent."
366msgstr "Aquest serà el darrer intent."
352
367
353−#: qml/Shell.qml:367
368+#: qml/Shell.qml:435
354msgid ""
369msgid ""
355"If passphrase is entered incorrectly, your phone will conduct a factory "
370"If passphrase is entered incorrectly, your phone will conduct a factory "
356"reset and all personal data will be deleted."
371"reset and all personal data will be deleted."
@@ -359,13 +374,11 @@ msgstr ""
359"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
374"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
360"personals."
375"personals."
361
376
362−#: qml/Shell.qml:368
377+#: qml/Shell.qml:436
363msgid ""
378msgid ""
364"If passcode is entered incorrectly, your phone will conduct a factory reset "
379"If passcode is entered incorrectly, your phone will conduct a factory reset "
365"and all personal data will be deleted."
380"and all personal data will be deleted."
366msgstr ""
381msgstr ""
367−"Si la clau s'introdueix de manera incorrecta, el telèfon es reinicialitzarà "
382+"Si el codi d'accés s'introdueix de manera incorrecta, el telèfon es "
368−"a l'estat de fàbrica i se suprimiran totes les dades personals."
383+"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
369−
384+"personals."
370−#~ msgid "Manage Dash"
371−#~ msgstr "Gestiona el tauler"
po/ca@valencia.ponew file+384
@@ -0,0 +1,384 @@
1+# Catalan translation for unity8
2+# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
3+# This file is distributed under the same license as the unity8 package.
4+# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
5+#
6+msgid ""
7+msgstr ""
8+"Project-Id-Version: unity8\n"
9+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11+"PO-Revision-Date: 2014-10-15 14:39+0000\n"
12+"Last-Translator: Pau Iranzo <Unknown>\n"
13+"Language-Team: Catalan <ca@li.org>\n"
14+"MIME-Version: 1.0\n"
15+"Content-Type: text/plain; charset=UTF-8\n"
16+"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:41+0000\n"
19+"X-Generator: Launchpad (build 17223)\n"
20+
21+#: plugins/LightDM/Greeter.cpp:130
22+msgid "Password: "
23+msgstr "Contrasenya: "
24+
25+#: plugins/Unity/Launcher/launcheritem.cpp:45
26+#: plugins/Unity/Launcher/launcheritem.cpp:91
27+msgid "Pin shortcut"
28+msgstr "Apega la drecera"
29+
30+#: plugins/Unity/Launcher/launcheritem.cpp:91
31+msgid "Unpin shortcut"
32+msgstr "Desenganxa la drecera"
33+
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Dispositiu bloquejat"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
42+"d'intents d'introducció de la contrasenya."
43+
44+#: qml/Components/DelayedLockscreen.qml:63
45+msgid "You have been locked out due to too many failed passcode attempts."
46+msgstr ""
47+"Se vos ha bloquejat l'accés al dispositiu. Heu sobrepassat el nombre "
48+"d'intents d'introducció del codi d'accés."
49+
50+#: qml/Components/DelayedLockscreen.qml:72
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] "Espereu %1 minut i torneu-ho a intentar..."
55+msgstr[1] "Espereu %1 minuts i torneu-ho a intentar..."
56+
57+#: qml/Components/Dialogs.qml:74
58+msgid "Log out"
59+msgstr "Ix"
60+
61+#: qml/Components/Dialogs.qml:75
62+msgid "Are you sure you want to log out?"
63+msgstr "Segur que voleu eixir?"
64+
65+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
66+#: qml/Components/Dialogs.qml:126
67+msgid "No"
68+msgstr "No"
69+
70+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
71+#: qml/Components/Dialogs.qml:133
72+msgid "Yes"
73+msgstr "Sí"
74+
75+#: qml/Components/Dialogs.qml:98
76+msgid "Shut down"
77+msgstr "Apaga"
78+
79+#: qml/Components/Dialogs.qml:99
80+msgid "Are you sure you want to shut down?"
81+msgstr "Segur que voleu apagar?"
82+
83+#: qml/Components/Dialogs.qml:123
84+msgid "Reboot"
85+msgstr "Reinicia"
86+
87+#: qml/Components/Dialogs.qml:124
88+msgid "Are you sure you want to reboot?"
89+msgstr "Segur que voleu reiniciar?"
90+
91+#: qml/Components/Dialogs.qml:148
92+msgid "Power"
93+msgstr "Energia"
94+
95+#: qml/Components/Dialogs.qml:149
96+msgid ""
97+"Are you sure you would like\n"
98+"to power off?"
99+msgstr ""
100+"Segur que voleu\n"
101+"apagar?"
102+
103+#: qml/Components/Dialogs.qml:151
104+msgid "Power off"
105+msgstr "Apaga"
106+
107+#: qml/Components/Dialogs.qml:161
108+msgid "Restart"
109+msgstr "Reinicia"
110+
111+#: qml/Components/Dialogs.qml:171
112+msgid "Cancel"
113+msgstr "Cancel·la"
114+
115+#: qml/Components/EdgeDemoOverlay.qml:151
116+msgid "Skip intro"
117+msgstr "Omet la introducció"
118+
119+#: qml/Components/EdgeDemo.qml:112
120+msgid "Right edge"
121+msgstr "Vora dreta"
122+
123+#: qml/Components/EdgeDemo.qml:113
124+msgid "Try swiping from the right edge to unlock the phone"
125+msgstr ""
126+"Proveu de lliscar el dit des de la vora dreta per desblocar el telèfon"
127+
128+#: qml/Components/EdgeDemo.qml:144
129+msgid "Top edge"
130+msgstr "Vora superior"
131+
132+#: qml/Components/EdgeDemo.qml:145
133+msgid "Try swiping from the top edge to access the indicators"
134+msgstr ""
135+"Proveu de lliscar el dit des de la vora superior per accedir als indicadors"
136+
137+#: qml/Components/EdgeDemo.qml:170
138+msgid "Close"
139+msgstr "Tanca"
140+
141+#: qml/Components/EdgeDemo.qml:171
142+msgid "Swipe up again to close the settings screen"
143+msgstr ""
144+"Llisqueu el dit cap amunt una altra vegada per tancar la pantalla de "
145+"configuració"
146+
147+#: qml/Components/EdgeDemo.qml:201
148+msgid "Left edge"
149+msgstr "Vora esquerra"
150+
151+#: qml/Components/EdgeDemo.qml:202
152+msgid "Swipe from the left to reveal the launcher for quick access to apps"
153+msgstr ""
154+"Llisqueu el dit des de la vora esquerra per mostrar el llançador i accedir "
155+"ràpidament a les aplicacions"
156+
157+#: qml/Components/EdgeDemo.qml:229
158+msgid "Well done"
159+msgstr "Enhorabona!"
160+
161+#: qml/Components/EdgeDemo.qml:230
162+msgid ""
163+"You have now mastered the edge gestures and can start using the "
164+"phone<br><br>Tap on the screen to start"
165+msgstr ""
166+"Ja heu aprés com utilitzar els gestos de les vores per fer servir el "
167+"telèfon<br><br>Feu un toc a la pantalla per començar"
168+
169+#: qml/Components/Lockscreen.qml:223
170+msgid "Return to Call"
171+msgstr ""
172+
173+#: qml/Components/Lockscreen.qml:223
174+msgid "Emergency Call"
175+msgstr "Cridada d'emergència"
176+
177+#: qml/Components/Lockscreen.qml:255
178+msgid "OK"
179+msgstr "D'acord"
180+
181+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
182+msgid "See less"
183+msgstr "Mostra'n menys"
184+
185+#: qml/Dash/GenericScopeView.qml:434
186+msgid "See all"
187+msgstr "Mostra-ho tot"
188+
189+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
190+#: qml/Panel/SearchIndicator.qml:27
191+msgid "Search"
192+msgstr "Cerca"
193+
194+#: qml/Dash/PageHeader.qml:268
195+msgid "Settings"
196+msgstr "Paràmetres"
197+
198+#: qml/Dash/PageHeader.qml:275
199+msgid "Remove from Favorites"
200+msgstr "Suprimeix dels preferits"
201+
202+#: qml/Dash/PageHeader.qml:275
203+msgid "Add to Favorites"
204+msgstr "Afig als preferits"
205+
206+#: qml/Dash/Previews/PreviewActionCombo.qml:35
207+msgid "More..."
208+msgstr "Més..."
209+
210+#: qml/Dash/Previews/PreviewActionCombo.qml:35
211+msgid "Less..."
212+msgstr "Menys..."
213+
214+#: qml/Dash/Previews/PreviewRatingInput.qml:81
215+msgid "Rate this"
216+msgstr "Puntueu-ho"
217+
218+#: qml/Dash/Previews/PreviewRatingInput.qml:126
219+msgid "Add a review"
220+msgstr "Afegiu una ressenya"
221+
222+#: qml/Dash/Previews/PreviewRatingInput.qml:166
223+msgid "Send"
224+msgstr "Envia"
225+
226+#: qml/Dash/PullToRefreshScopeStyle.qml:55
227+msgid "Pull to refresh…"
228+msgstr "Estireu per actualitzar..."
229+
230+#: qml/Dash/PullToRefreshScopeStyle.qml:60
231+msgid "Release to refresh…"
232+msgstr "Deixeu anar per actualitzar..."
233+
234+#: qml/Dash/ScopesOverview.qml:215
235+msgid "Manage Scopes"
236+msgstr "Gestioneu les lents"
237+
238+#: qml/Dash/ScopesOverview.qml:437
239+msgid "Done"
240+msgstr "Fet"
241+
242+#: qml/Dash/ScopesOverview.qml:463
243+msgid "Store"
244+msgstr "Botiga"
245+
246+#: qml/Dash/ScopesOverviewTab.qml:36
247+msgid "Favorites"
248+msgstr "Preferides"
249+
250+#: qml/Dash/ScopesOverviewTab.qml:54
251+msgid "All"
252+msgstr "Totes"
253+
254+#: qml/Greeter/Greeter.qml:174
255+msgid "Unlock"
256+msgstr "Desbloca"
257+
258+#: qml/Hud/HudParametrizedActionsPage.qml:139
259+msgid "Confirm"
260+msgstr "Confirma"
261+
262+#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
263+msgid "Type or say a command"
264+msgstr "Escriviu o pronuncieu una orde"
265+
266+#: qml/Hud/Hud.qml:84
267+msgid "Loading. Please Wait..."
268+msgstr "S'està carregant. Espereu-vos un moment..."
269+
270+#: qml/Hud/Hud.qml:89
271+msgid "Speak Now..."
272+msgstr "Parleu..."
273+
274+#: qml/Hud/Hud.qml:94
275+msgid "Speaking..."
276+msgstr "S'està parlant..."
277+
278+#: qml/Notifications/NotificationMenuItemFactory.qml:116
279+msgid "Show password"
280+msgstr "Mostra la contrasenya"
281+
282+#: qml/Panel/ActiveCallHint.qml:79
283+msgid "Tap to return to call..."
284+msgstr "Feu un toc per tornar a la cridada..."
285+
286+#: qml/Panel/ActiveCallHint.qml:92
287+msgid "Conference"
288+msgstr "Conferència"
289+
290+#: qml/Panel/Indicators/MenuItemFactory.qml:615
291+msgid "Nothing is playing"
292+msgstr "No s'està reproduint res"
293+
294+#: qml/Panel/Indicators/MenuItemFactory.qml:763
295+msgid "In queue…"
296+msgstr "A la cua..."
297+
298+#: qml/Panel/Indicators/MenuItemFactory.qml:767
299+msgid "Downloading"
300+msgstr "S'està baixant"
301+
302+#: qml/Panel/Indicators/MenuItemFactory.qml:769
303+msgid "Paused, tap to resume"
304+msgstr "En pausa, feu un toc per continuar"
305+
306+#: qml/Panel/Indicators/MenuItemFactory.qml:771
307+msgid "Canceled"
308+msgstr "S'ha cancel·lat"
309+
310+#: qml/Panel/Indicators/MenuItemFactory.qml:773
311+msgid "Finished"
312+msgstr "S'ha finalitzat"
313+
314+#: qml/Panel/Indicators/MenuItemFactory.qml:775
315+msgid "Failed, tap to retry"
316+msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
317+
318+#: qml/Panel/Indicators/ModemInfoItem.qml:105
319+msgid "Unlock SIM"
320+msgstr "Desbloca la SIM"
321+
322+#: qml/Panel/Indicators/RoamingIndication.qml:27
323+msgid "Roaming"
324+msgstr "Itinerància"
325+
326+#: qml/Shell.qml:381
327+msgid "Enter passphrase"
328+msgstr "Introduïu la contrasenya"
329+
330+#: qml/Shell.qml:382
331+msgid "Sorry, incorrect passphrase"
332+msgstr "La contrasenya no és correcta"
333+
334+#: qml/Shell.qml:383
335+msgid "Please re-enter"
336+msgstr "Torneu-ho a introduir"
337+
338+#: qml/Shell.qml:385
339+msgid "Enter passcode"
340+msgstr "Introduïu el codi d'accés"
341+
342+#: qml/Shell.qml:386
343+msgid "Sorry, incorrect passcode"
344+msgstr "El codi d'accés no és correcte"
345+
346+#: qml/Shell.qml:389
347+#, qt-format
348+msgid "Enter %1"
349+msgstr "Introduïu: %1"
350+
351+#: qml/Shell.qml:390
352+#, qt-format
353+msgid "Sorry, incorrect %1"
354+msgstr "Incorrecte (%1)"
355+
356+#: qml/Shell.qml:431
357+msgid "Sorry, incorrect passphrase."
358+msgstr "La contrasenya és incorrecta"
359+
360+#: qml/Shell.qml:432
361+msgid "Sorry, incorrect passcode."
362+msgstr "El codi d'accés no és correcte"
363+
364+#: qml/Shell.qml:433
365+msgid "This will be your last attempt."
366+msgstr "Este serà el darrer intent."
367+
368+#: qml/Shell.qml:435
369+msgid ""
370+"If passphrase is entered incorrectly, your phone will conduct a factory "
371+"reset and all personal data will be deleted."
372+msgstr ""
373+"Si la contrasenya s'introdueix de manera incorrecta, el telèfon es "
374+"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
375+"personals."
376+
377+#: qml/Shell.qml:436
378+msgid ""
379+"If passcode is entered incorrectly, your phone will conduct a factory reset "
380+"and all personal data will be deleted."
381+msgstr ""
382+"Si el codi d'accés s'introdueix de manera incorrecta, el telèfon es "
383+"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
384+"personals."
po/ckb.po+90−79
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:20+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:41+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr ""
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr ""
32msgstr ""
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr ""
55msgstr ""
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr ""
59msgstr ""
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr ""
64msgstr ""
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr ""
69msgstr ""
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr ""
73msgstr ""
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr ""
77msgstr ""
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr ""
81msgstr ""
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr ""
85msgstr ""
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr ""
89msgstr ""
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr ""
95msgstr ""
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr ""
99msgstr ""
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr ""
103msgstr ""
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr ""
107msgstr ""
88
108
@@ -114,58 +134,45 @@ msgstr "داخستن"
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr "ڕایکێشەوە سەرەوە جارێکی تر بۆ داخستنی پەردەی ڕێکخستنەکان"
135msgstr "ڕایکێشەوە سەرەوە جارێکی تر بۆ داخستنی پەردەی ڕێکخستنەکان"
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr "لێواری چەپ"
139msgstr "لێواری چەپ"
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr "لە چەپەوە بچۆرەوە سەر دەستپێک بۆئەوەی بتوانی هەموو ئەپەکان ببینی"
143msgstr "لە چەپەوە بچۆرەوە سەر دەستپێک بۆئەوەی بتوانی هەموو ئەپەکان ببینی"
124
144
125−#: qml/Components/EdgeDemo.qml:226
145+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
146msgid "Well done"
127msgstr "دەستخۆش"
147msgstr "دەستخۆش"
128
148
129−#: qml/Components/EdgeDemo.qml:227
149+#: qml/Components/EdgeDemo.qml:230
130msgid ""
150msgid ""
131"You have now mastered the edge gestures and can start using the "
151"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
152"phone<br><br>Tap on the screen to start"
133msgstr ""
153msgstr ""
134
154
135−#: qml/Components/Lockscreen.qml:167
155+#: qml/Components/Lockscreen.qml:223
136−msgid "Please wait"
156+msgid "Return to Call"
137−msgstr ""
138−
139−#: qml/Components/Lockscreen.qml:172
140−msgid "Too many incorrect attempts"
141msgstr ""
157msgstr ""
142
158
143−#: qml/Components/Lockscreen.qml:206
159+#: qml/Components/Lockscreen.qml:223
144msgid "Emergency Call"
160msgid "Emergency Call"
145msgstr "هێڵی فریاگوزاری"
161msgstr "هێڵی فریاگوزاری"
146
162
147−#: qml/Components/Lockscreen.qml:226
163+#: qml/Components/Lockscreen.qml:255
148msgid "OK"
164msgid "OK"
149msgstr ""
165msgstr ""
150
166
151−#: qml/Components/PassphraseLockscreen.qml:61
152−#, qt-format
153−msgid "Hello %1"
154−msgstr "سڵاو %1"
155−
156−#: qml/Components/PassphraseLockscreen.qml:61
157−msgid "Hello"
158−msgstr "سڵاو"
159−
160−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
167+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
161msgid "See less"
168msgid "See less"
162msgstr ""
169msgstr ""
163
170
164−#: qml/Dash/GenericScopeView.qml:411
171+#: qml/Dash/GenericScopeView.qml:434
165msgid "See all"
172msgid "See all"
166msgstr ""
173msgstr ""
167
174
168−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
169#: qml/Panel/SearchIndicator.qml:27
176#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
177msgid "Search"
171msgstr "گەڕان"
178msgstr "گەڕان"
@@ -202,15 +209,23 @@ msgstr "پێداچوونەوە زۆر بکە"
202msgid "Send"
209msgid "Send"
203msgstr "ناردن"
210msgstr "ناردن"
204
211
212+#: qml/Dash/PullToRefreshScopeStyle.qml:55
213+msgid "Pull to refresh…"
214+msgstr ""
215+
216+#: qml/Dash/PullToRefreshScopeStyle.qml:60
217+msgid "Release to refresh…"
218+msgstr ""
219+
205−#: qml/Dash/ScopesOverview.qml:206
220+#: qml/Dash/ScopesOverview.qml:215
206msgid "Manage Scopes"
221msgid "Manage Scopes"
207msgstr ""
222msgstr ""
208
223
209−#: qml/Dash/ScopesOverview.qml:428
224+#: qml/Dash/ScopesOverview.qml:437
210msgid "Done"
225msgid "Done"
211msgstr ""
226msgstr ""
212
227
213−#: qml/Dash/ScopesOverview.qml:454
228+#: qml/Dash/ScopesOverview.qml:463
214msgid "Store"
229msgid "Store"
215msgstr ""
230msgstr ""
216
231
@@ -222,8 +237,8 @@ msgstr ""
222msgid "All"
237msgid "All"
223msgstr ""
238msgstr ""
224
239
225−#: qml/Greeter/Greeter.qml:157
240+#: qml/Greeter/Greeter.qml:174
226−msgid "Swipe to unlock"
241+msgid "Unlock"
227msgstr ""
242msgstr ""
228
243
229#: qml/Hud/HudParametrizedActionsPage.qml:139
244#: qml/Hud/HudParametrizedActionsPage.qml:139
@@ -246,51 +261,43 @@ msgstr "ئێستا قسە بکە"
246msgid "Speaking..."
261msgid "Speaking..."
247msgstr "قسە دەکات..."
262msgstr "قسە دەکات..."
248
263
249−#: qml/Notifications/NotificationMenuItemFactory.qml:108
264+#: qml/Notifications/NotificationMenuItemFactory.qml:116
250msgid "Show password"
265msgid "Show password"
251msgstr "تێپەڕەوشە پیشان بدە"
266msgstr "تێپەڕەوشە پیشان بدە"
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:124
254−msgid "Enter SIM PIN"
255−msgstr ""
256−
257−#: qml/Notifications/NotificationMenuItemFactory.qml:125
258−msgid "Sorry, incorrect PIN"
259−msgstr ""
260−
261−#: qml/Panel/ActiveCallHint.qml:77
268+#: qml/Panel/ActiveCallHint.qml:79
262msgid "Tap to return to call..."
269msgid "Tap to return to call..."
263msgstr ""
270msgstr ""
264
271
265−#: qml/Panel/ActiveCallHint.qml:90
272+#: qml/Panel/ActiveCallHint.qml:92
266msgid "Conference"
273msgid "Conference"
267msgstr ""
274msgstr ""
268
275
269−#: qml/Panel/Indicators/MenuItemFactory.qml:600
276+#: qml/Panel/Indicators/MenuItemFactory.qml:615
270msgid "Nothing is playing"
277msgid "Nothing is playing"
271msgstr ""
278msgstr ""
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:748
280+#: qml/Panel/Indicators/MenuItemFactory.qml:763
274msgid "In queue…"
281msgid "In queue…"
275msgstr ""
282msgstr ""
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:752
284+#: qml/Panel/Indicators/MenuItemFactory.qml:767
278msgid "Downloading"
285msgid "Downloading"
279msgstr ""
286msgstr ""
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:754
288+#: qml/Panel/Indicators/MenuItemFactory.qml:769
282msgid "Paused, tap to resume"
289msgid "Paused, tap to resume"
283msgstr ""
290msgstr ""
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:756
292+#: qml/Panel/Indicators/MenuItemFactory.qml:771
286msgid "Canceled"
293msgid "Canceled"
287msgstr ""
294msgstr ""
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:758
296+#: qml/Panel/Indicators/MenuItemFactory.qml:773
290msgid "Finished"
297msgid "Finished"
291msgstr ""
298msgstr ""
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:760
300+#: qml/Panel/Indicators/MenuItemFactory.qml:775
294msgid "Failed, tap to retry"
301msgid "Failed, tap to retry"
295msgstr ""
302msgstr ""
296
303
@@ -302,51 +309,55 @@ msgstr ""
302msgid "Roaming"
309msgid "Roaming"
303msgstr ""
310msgstr ""
304
311
305−#: qml/Shell.qml:320
312+#: qml/Shell.qml:381
306−msgid "Enter your passphrase"
313+msgid "Enter passphrase"
307msgstr ""
314msgstr ""
308
315
309−#: qml/Shell.qml:321
316+#: qml/Shell.qml:382
310msgid "Sorry, incorrect passphrase"
317msgid "Sorry, incorrect passphrase"
311msgstr ""
318msgstr ""
312
319
313−#: qml/Shell.qml:323
320+#: qml/Shell.qml:383
321+msgid "Please re-enter"
322+msgstr ""
323+
324+#: qml/Shell.qml:385
314−msgid "Enter your passcode"
325+msgid "Enter passcode"
315msgstr ""
326msgstr ""
316
327
317−#: qml/Shell.qml:324
328+#: qml/Shell.qml:386
318msgid "Sorry, incorrect passcode"
329msgid "Sorry, incorrect passcode"
319msgstr ""
330msgstr ""
320
331
321−#: qml/Shell.qml:327
332+#: qml/Shell.qml:389
322#, qt-format
333#, qt-format
323−msgid "Enter your %1"
334+msgid "Enter %1"
324msgstr ""
335msgstr ""
325
336
326−#: qml/Shell.qml:328
337+#: qml/Shell.qml:390
327#, qt-format
338#, qt-format
328msgid "Sorry, incorrect %1"
339msgid "Sorry, incorrect %1"
329msgstr ""
340msgstr ""
330
341
331−#: qml/Shell.qml:363
342+#: qml/Shell.qml:431
332msgid "Sorry, incorrect passphrase."
343msgid "Sorry, incorrect passphrase."
333msgstr ""
344msgstr ""
334
345
335−#: qml/Shell.qml:364
346+#: qml/Shell.qml:432
336msgid "Sorry, incorrect passcode."
347msgid "Sorry, incorrect passcode."
337msgstr ""
348msgstr ""
338
349
339−#: qml/Shell.qml:365
350+#: qml/Shell.qml:433
340msgid "This will be your last attempt."
351msgid "This will be your last attempt."
341msgstr ""
352msgstr ""
342
353
343−#: qml/Shell.qml:367
354+#: qml/Shell.qml:435
344msgid ""
355msgid ""
345"If passphrase is entered incorrectly, your phone will conduct a factory "
356"If passphrase is entered incorrectly, your phone will conduct a factory "
346"reset and all personal data will be deleted."
357"reset and all personal data will be deleted."
347msgstr ""
358msgstr ""
348
359
349−#: qml/Shell.qml:368
360+#: qml/Shell.qml:436
350msgid ""
361msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
362"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
363"and all personal data will be deleted."
po/cs.po+90−79
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-01-08 10:11+0000\n"
11"PO-Revision-Date: 2014-01-08 10:11+0000\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
13"Language-Team: Czech <cs@li.org>\n"
13"Language-Team: Czech <cs@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr ""
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr ""
32msgstr ""
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr ""
55msgstr ""
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr ""
59msgstr ""
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr ""
64msgstr ""
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr ""
69msgstr ""
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr ""
73msgstr ""
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr ""
77msgstr ""
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr ""
81msgstr ""
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr ""
85msgstr ""
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr ""
89msgstr ""
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr ""
95msgstr ""
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr ""
99msgstr ""
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr ""
103msgstr ""
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr ""
107msgstr ""
88
108
@@ -114,58 +134,45 @@ msgstr "Uzavřít"
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr "Přetažením nahoru dojde k uzavření obrazovky nastavení"
135msgstr "Přetažením nahoru dojde k uzavření obrazovky nastavení"
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr "Levý okraj"
139msgstr "Levý okraj"
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr "Pro rychlý přístup k aplikacím potáhněte prst z levého okraje."
143msgstr "Pro rychlý přístup k aplikacím potáhněte prst z levého okraje."
124
144
125−#: qml/Components/EdgeDemo.qml:226
145+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
146msgid "Well done"
127msgstr "Výborně"
147msgstr "Výborně"
128
148
129−#: qml/Components/EdgeDemo.qml:227
149+#: qml/Components/EdgeDemo.qml:230
130msgid ""
150msgid ""
131"You have now mastered the edge gestures and can start using the "
151"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
152"phone<br><br>Tap on the screen to start"
133msgstr ""
153msgstr ""
134
154
135−#: qml/Components/Lockscreen.qml:167
155+#: qml/Components/Lockscreen.qml:223
136−msgid "Please wait"
156+msgid "Return to Call"
137−msgstr ""
138−
139−#: qml/Components/Lockscreen.qml:172
140−msgid "Too many incorrect attempts"
141msgstr ""
157msgstr ""
142
158
143−#: qml/Components/Lockscreen.qml:206
159+#: qml/Components/Lockscreen.qml:223
144msgid "Emergency Call"
160msgid "Emergency Call"
145msgstr "Tísňové volání"
161msgstr "Tísňové volání"
146
162
147−#: qml/Components/Lockscreen.qml:226
163+#: qml/Components/Lockscreen.qml:255
148msgid "OK"
164msgid "OK"
149msgstr ""
165msgstr ""
150
166
151−#: qml/Components/PassphraseLockscreen.qml:61
152−#, qt-format
153−msgid "Hello %1"
154−msgstr "Ahoj %1"
155−
156−#: qml/Components/PassphraseLockscreen.qml:61
157−msgid "Hello"
158−msgstr "Ahoj"
159−
160−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
167+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
161msgid "See less"
168msgid "See less"
162msgstr ""
169msgstr ""
163
170
164−#: qml/Dash/GenericScopeView.qml:411
171+#: qml/Dash/GenericScopeView.qml:434
165msgid "See all"
172msgid "See all"
166msgstr ""
173msgstr ""
167
174
168−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
169#: qml/Panel/SearchIndicator.qml:27
176#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
177msgid "Search"
171msgstr "Hledat"
178msgstr "Hledat"
@@ -202,15 +209,23 @@ msgstr "Přidat recenzi"
202msgid "Send"
209msgid "Send"
203msgstr "Odeslat"
210msgstr "Odeslat"
204
211
212+#: qml/Dash/PullToRefreshScopeStyle.qml:55
213+msgid "Pull to refresh…"
214+msgstr ""
215+
216+#: qml/Dash/PullToRefreshScopeStyle.qml:60
217+msgid "Release to refresh…"
218+msgstr ""
219+
205−#: qml/Dash/ScopesOverview.qml:206
220+#: qml/Dash/ScopesOverview.qml:215
206msgid "Manage Scopes"
221msgid "Manage Scopes"
207msgstr ""
222msgstr ""
208
223
209−#: qml/Dash/ScopesOverview.qml:428
224+#: qml/Dash/ScopesOverview.qml:437
210msgid "Done"
225msgid "Done"
211msgstr ""
226msgstr ""
212
227
213−#: qml/Dash/ScopesOverview.qml:454
228+#: qml/Dash/ScopesOverview.qml:463
214msgid "Store"
229msgid "Store"
215msgstr ""
230msgstr ""
216
231
@@ -222,8 +237,8 @@ msgstr ""
222msgid "All"
237msgid "All"
223msgstr ""
238msgstr ""
224
239
225−#: qml/Greeter/Greeter.qml:157
240+#: qml/Greeter/Greeter.qml:174
226−msgid "Swipe to unlock"
241+msgid "Unlock"
227msgstr ""
242msgstr ""
228
243
229#: qml/Hud/HudParametrizedActionsPage.qml:139
244#: qml/Hud/HudParametrizedActionsPage.qml:139
@@ -246,51 +261,43 @@ msgstr "Mluvte..."
246msgid "Speaking..."
261msgid "Speaking..."
247msgstr "Mluvte..."
262msgstr "Mluvte..."
248
263
249−#: qml/Notifications/NotificationMenuItemFactory.qml:108
264+#: qml/Notifications/NotificationMenuItemFactory.qml:116
250msgid "Show password"
265msgid "Show password"
251msgstr "Zobrazit heslo"
266msgstr "Zobrazit heslo"
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:124
254−msgid "Enter SIM PIN"
255−msgstr ""
256−
257−#: qml/Notifications/NotificationMenuItemFactory.qml:125
258−msgid "Sorry, incorrect PIN"
259−msgstr ""
260−
261−#: qml/Panel/ActiveCallHint.qml:77
268+#: qml/Panel/ActiveCallHint.qml:79
262msgid "Tap to return to call..."
269msgid "Tap to return to call..."
263msgstr ""
270msgstr ""
264
271
265−#: qml/Panel/ActiveCallHint.qml:90
272+#: qml/Panel/ActiveCallHint.qml:92
266msgid "Conference"
273msgid "Conference"
267msgstr ""
274msgstr ""
268
275
269−#: qml/Panel/Indicators/MenuItemFactory.qml:600
276+#: qml/Panel/Indicators/MenuItemFactory.qml:615
270msgid "Nothing is playing"
277msgid "Nothing is playing"
271msgstr ""
278msgstr ""
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:748
280+#: qml/Panel/Indicators/MenuItemFactory.qml:763
274msgid "In queue…"
281msgid "In queue…"
275msgstr ""
282msgstr ""
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:752
284+#: qml/Panel/Indicators/MenuItemFactory.qml:767
278msgid "Downloading"
285msgid "Downloading"
279msgstr ""
286msgstr ""
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:754
288+#: qml/Panel/Indicators/MenuItemFactory.qml:769
282msgid "Paused, tap to resume"
289msgid "Paused, tap to resume"
283msgstr ""
290msgstr ""
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:756
292+#: qml/Panel/Indicators/MenuItemFactory.qml:771
286msgid "Canceled"
293msgid "Canceled"
287msgstr ""
294msgstr ""
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:758
296+#: qml/Panel/Indicators/MenuItemFactory.qml:773
290msgid "Finished"
297msgid "Finished"
291msgstr ""
298msgstr ""
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:760
300+#: qml/Panel/Indicators/MenuItemFactory.qml:775
294msgid "Failed, tap to retry"
301msgid "Failed, tap to retry"
295msgstr ""
302msgstr ""
296
303
@@ -302,51 +309,55 @@ msgstr ""
302msgid "Roaming"
309msgid "Roaming"
303msgstr ""
310msgstr ""
304
311
305−#: qml/Shell.qml:320
312+#: qml/Shell.qml:381
306−msgid "Enter your passphrase"
313+msgid "Enter passphrase"
307msgstr ""
314msgstr ""
308
315
309−#: qml/Shell.qml:321
316+#: qml/Shell.qml:382
310msgid "Sorry, incorrect passphrase"
317msgid "Sorry, incorrect passphrase"
311msgstr ""
318msgstr ""
312
319
313−#: qml/Shell.qml:323
320+#: qml/Shell.qml:383
321+msgid "Please re-enter"
322+msgstr ""
323+
324+#: qml/Shell.qml:385
314−msgid "Enter your passcode"
325+msgid "Enter passcode"
315msgstr ""
326msgstr ""
316
327
317−#: qml/Shell.qml:324
328+#: qml/Shell.qml:386
318msgid "Sorry, incorrect passcode"
329msgid "Sorry, incorrect passcode"
319msgstr ""
330msgstr ""
320
331
321−#: qml/Shell.qml:327
332+#: qml/Shell.qml:389
322#, qt-format
333#, qt-format
323−msgid "Enter your %1"
334+msgid "Enter %1"
324msgstr ""
335msgstr ""
325
336
326−#: qml/Shell.qml:328
337+#: qml/Shell.qml:390
327#, qt-format
338#, qt-format
328msgid "Sorry, incorrect %1"
339msgid "Sorry, incorrect %1"
329msgstr ""
340msgstr ""
330
341
331−#: qml/Shell.qml:363
342+#: qml/Shell.qml:431
332msgid "Sorry, incorrect passphrase."
343msgid "Sorry, incorrect passphrase."
333msgstr ""
344msgstr ""
334
345
335−#: qml/Shell.qml:364
346+#: qml/Shell.qml:432
336msgid "Sorry, incorrect passcode."
347msgid "Sorry, incorrect passcode."
337msgstr ""
348msgstr ""
338
349
339−#: qml/Shell.qml:365
350+#: qml/Shell.qml:433
340msgid "This will be your last attempt."
351msgid "This will be your last attempt."
341msgstr ""
352msgstr ""
342
353
343−#: qml/Shell.qml:367
354+#: qml/Shell.qml:435
344msgid ""
355msgid ""
345"If passphrase is entered incorrectly, your phone will conduct a factory "
356"If passphrase is entered incorrectly, your phone will conduct a factory "
346"reset and all personal data will be deleted."
357"reset and all personal data will be deleted."
347msgstr ""
358msgstr ""
348
359
349−#: qml/Shell.qml:368
360+#: qml/Shell.qml:436
350msgid ""
361msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
362"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
363"and all personal data will be deleted."
po/da.po+91−80
@@ -8,15 +8,16 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
11+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
12"PO-Revision-Date: 2014-07-30 12:37+0000\n"
12"PO-Revision-Date: 2014-07-30 12:37+0000\n"
13"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
13"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
14"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
14"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
15"MIME-Version: 1.0\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
17"Content-Transfer-Encoding: 8bit\n"
18+"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
19+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
19−"X-Generator: Launchpad (build 17196)\n"
20+"X-Generator: Launchpad (build 17223)\n"
20
21
21#: plugins/LightDM/Greeter.cpp:130
22#: plugins/LightDM/Greeter.cpp:130
22msgid "Password: "
23msgid "Password: "
@@ -31,59 +32,78 @@ msgstr "Fastgør genvej"
31msgid "Unpin shortcut"
32msgid "Unpin shortcut"
32msgstr "Gør genvej flytbar"
33msgstr "Gør genvej flytbar"
33
34
34−#: qml/Components/Dialogs.qml:70
35+#: qml/Components/DelayedLockscreen.qml:47
36+msgid "Device Locked"
37+msgstr ""
38+
39+#: qml/Components/DelayedLockscreen.qml:62
40+msgid "You have been locked out due to too many failed passphrase attempts."
41+msgstr ""
42+
43+#: qml/Components/DelayedLockscreen.qml:63
44+msgid "You have been locked out due to too many failed passcode attempts."
45+msgstr ""
46+
47+#: qml/Components/DelayedLockscreen.qml:72
48+#, qt-format
49+msgid "Please wait %1 minute and then try again…"
50+msgid_plural "Please wait %1 minutes and then try again…"
51+msgstr[0] ""
52+msgstr[1] ""
53+
54+#: qml/Components/Dialogs.qml:74
35msgid "Log out"
55msgid "Log out"
36msgstr ""
56msgstr ""
37
57
38−#: qml/Components/Dialogs.qml:71
58+#: qml/Components/Dialogs.qml:75
39msgid "Are you sure you want to log out?"
59msgid "Are you sure you want to log out?"
40msgstr ""
60msgstr ""
41
61
42−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
62+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
43−#: qml/Components/Dialogs.qml:122
63+#: qml/Components/Dialogs.qml:126
44msgid "No"
64msgid "No"
45msgstr ""
65msgstr ""
46
66
47−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
67+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
48−#: qml/Components/Dialogs.qml:129
68+#: qml/Components/Dialogs.qml:133
49msgid "Yes"
69msgid "Yes"
50msgstr ""
70msgstr ""
51
71
52−#: qml/Components/Dialogs.qml:94
72+#: qml/Components/Dialogs.qml:98
53msgid "Shut down"
73msgid "Shut down"
54msgstr ""
74msgstr ""
55
75
56−#: qml/Components/Dialogs.qml:95
76+#: qml/Components/Dialogs.qml:99
57msgid "Are you sure you want to shut down?"
77msgid "Are you sure you want to shut down?"
58msgstr ""
78msgstr ""
59
79
60−#: qml/Components/Dialogs.qml:119
80+#: qml/Components/Dialogs.qml:123
61msgid "Reboot"
81msgid "Reboot"
62msgstr ""
82msgstr ""
63
83
64−#: qml/Components/Dialogs.qml:120
84+#: qml/Components/Dialogs.qml:124
65msgid "Are you sure you want to reboot?"
85msgid "Are you sure you want to reboot?"
66msgstr ""
86msgstr ""
67
87
68−#: qml/Components/Dialogs.qml:144
88+#: qml/Components/Dialogs.qml:148
69msgid "Power"
89msgid "Power"
70msgstr ""
90msgstr ""
71
91
72−#: qml/Components/Dialogs.qml:145
92+#: qml/Components/Dialogs.qml:149
73msgid ""
93msgid ""
74"Are you sure you would like\n"
94"Are you sure you would like\n"
75"to power off?"
95"to power off?"
76msgstr ""
96msgstr ""
77
97
78−#: qml/Components/Dialogs.qml:147
98+#: qml/Components/Dialogs.qml:151
79msgid "Power off"
99msgid "Power off"
80msgstr ""
100msgstr ""
81
101
82−#: qml/Components/Dialogs.qml:157
102+#: qml/Components/Dialogs.qml:161
83msgid "Restart"
103msgid "Restart"
84msgstr ""
104msgstr ""
85
105
86−#: qml/Components/Dialogs.qml:167
106+#: qml/Components/Dialogs.qml:171
87msgid "Cancel"
107msgid "Cancel"
88msgstr ""
108msgstr ""
89
109
@@ -115,19 +135,19 @@ msgstr "Luk"
115msgid "Swipe up again to close the settings screen"
135msgid "Swipe up again to close the settings screen"
116msgstr "Stryg op igen for at låse indstillingsskærmen"
136msgstr "Stryg op igen for at låse indstillingsskærmen"
117
137
118−#: qml/Components/EdgeDemo.qml:198
138+#: qml/Components/EdgeDemo.qml:201
119msgid "Left edge"
139msgid "Left edge"
120msgstr "Venstre kant"
140msgstr "Venstre kant"
121
141
122−#: qml/Components/EdgeDemo.qml:199
142+#: qml/Components/EdgeDemo.qml:202
123msgid "Swipe from the left to reveal the launcher for quick access to apps"
143msgid "Swipe from the left to reveal the launcher for quick access to apps"
124msgstr "Stryg fra venstre for at vise opstarteren med hurtig adgang til apps"
144msgstr "Stryg fra venstre for at vise opstarteren med hurtig adgang til apps"
125
145
126−#: qml/Components/EdgeDemo.qml:226
146+#: qml/Components/EdgeDemo.qml:229
127msgid "Well done"
147msgid "Well done"
128msgstr "Godt gjort"
148msgstr "Godt gjort"
129
149
130−#: qml/Components/EdgeDemo.qml:227
150+#: qml/Components/EdgeDemo.qml:230
131msgid ""
151msgid ""
132"You have now mastered the edge gestures and can start using the "
152"You have now mastered the edge gestures and can start using the "
133"phone<br><br>Tap on the screen to start"
153"phone<br><br>Tap on the screen to start"
@@ -135,40 +155,27 @@ msgstr ""
135"Du mestrer nu kantbevægelserne og kan begynde at bruge telefonen<br><br>Tryk "
155"Du mestrer nu kantbevægelserne og kan begynde at bruge telefonen<br><br>Tryk "
136"på skærmen for at starte"
156"på skærmen for at starte"
137
157
138−#: qml/Components/Lockscreen.qml:167
158+#: qml/Components/Lockscreen.qml:223
139−msgid "Please wait"
159+msgid "Return to Call"
140−msgstr ""
141−
142−#: qml/Components/Lockscreen.qml:172
143−msgid "Too many incorrect attempts"
144msgstr ""
160msgstr ""
145
161
146−#: qml/Components/Lockscreen.qml:206
162+#: qml/Components/Lockscreen.qml:223
147msgid "Emergency Call"
163msgid "Emergency Call"
148msgstr "Nødopkald"
164msgstr "Nødopkald"
149
165
150−#: qml/Components/Lockscreen.qml:226
166+#: qml/Components/Lockscreen.qml:255
151msgid "OK"
167msgid "OK"
152msgstr "O.k."
168msgstr "O.k."
153
169
154−#: qml/Components/PassphraseLockscreen.qml:61
155−#, qt-format
156−msgid "Hello %1"
157−msgstr "Hej %1"
158−
159−#: qml/Components/PassphraseLockscreen.qml:61
160−msgid "Hello"
161−msgstr "Hej"
162−
163−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
170+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
164msgid "See less"
171msgid "See less"
165msgstr "Vis mindre"
172msgstr "Vis mindre"
166
173
167−#: qml/Dash/GenericScopeView.qml:411
174+#: qml/Dash/GenericScopeView.qml:434
168msgid "See all"
175msgid "See all"
169msgstr "Se alle"
176msgstr "Se alle"
170
177
171−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
178+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
172#: qml/Panel/SearchIndicator.qml:27
179#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
180msgid "Search"
174msgstr "Søg"
181msgstr "Søg"
@@ -205,15 +212,23 @@ msgstr "Tilføj en forhåndsvisning"
205msgid "Send"
212msgid "Send"
206msgstr "Send"
213msgstr "Send"
207
214
215+#: qml/Dash/PullToRefreshScopeStyle.qml:55
216+msgid "Pull to refresh…"
217+msgstr ""
218+
219+#: qml/Dash/PullToRefreshScopeStyle.qml:60
220+msgid "Release to refresh…"
221+msgstr ""
222+
208−#: qml/Dash/ScopesOverview.qml:206
223+#: qml/Dash/ScopesOverview.qml:215
209msgid "Manage Scopes"
224msgid "Manage Scopes"
210msgstr ""
225msgstr ""
211
226
212−#: qml/Dash/ScopesOverview.qml:428
227+#: qml/Dash/ScopesOverview.qml:437
213msgid "Done"
228msgid "Done"
214msgstr ""
229msgstr ""
215
230
216−#: qml/Dash/ScopesOverview.qml:454
231+#: qml/Dash/ScopesOverview.qml:463
217msgid "Store"
232msgid "Store"
218msgstr ""
233msgstr ""
219
234
@@ -225,9 +240,9 @@ msgstr ""
225msgid "All"
240msgid "All"
226msgstr ""
241msgstr ""
227
242
228−#: qml/Greeter/Greeter.qml:157
243+#: qml/Greeter/Greeter.qml:174
229−msgid "Swipe to unlock"
244+msgid "Unlock"
230−msgstr "Stryg for at låse op"
245+msgstr ""
231
246
232#: qml/Hud/HudParametrizedActionsPage.qml:139
247#: qml/Hud/HudParametrizedActionsPage.qml:139
233msgid "Confirm"
248msgid "Confirm"
@@ -249,51 +264,43 @@ msgstr "Tal nu..."
249msgid "Speaking..."
264msgid "Speaking..."
250msgstr "Taler..."
265msgstr "Taler..."
251
266
252−#: qml/Notifications/NotificationMenuItemFactory.qml:108
267+#: qml/Notifications/NotificationMenuItemFactory.qml:116
253msgid "Show password"
268msgid "Show password"
254msgstr "Vis adgangskode"
269msgstr "Vis adgangskode"
255
270
256−#: qml/Notifications/NotificationMenuItemFactory.qml:124
257−msgid "Enter SIM PIN"
258−msgstr ""
259−
260−#: qml/Notifications/NotificationMenuItemFactory.qml:125
261−msgid "Sorry, incorrect PIN"
262−msgstr ""
263−
264−#: qml/Panel/ActiveCallHint.qml:77
271+#: qml/Panel/ActiveCallHint.qml:79
265msgid "Tap to return to call..."
272msgid "Tap to return to call..."
266msgstr "Tryk for at besvare opkaldet..."
273msgstr "Tryk for at besvare opkaldet..."
267
274
268−#: qml/Panel/ActiveCallHint.qml:90
275+#: qml/Panel/ActiveCallHint.qml:92
269msgid "Conference"
276msgid "Conference"
270msgstr "Konference"
277msgstr "Konference"
271
278
272−#: qml/Panel/Indicators/MenuItemFactory.qml:600
279+#: qml/Panel/Indicators/MenuItemFactory.qml:615
273msgid "Nothing is playing"
280msgid "Nothing is playing"
274msgstr ""
281msgstr ""
275
282
276−#: qml/Panel/Indicators/MenuItemFactory.qml:748
283+#: qml/Panel/Indicators/MenuItemFactory.qml:763
277msgid "In queue…"
284msgid "In queue…"
278msgstr "I kø…"
285msgstr "I kø…"
279
286
280−#: qml/Panel/Indicators/MenuItemFactory.qml:752
287+#: qml/Panel/Indicators/MenuItemFactory.qml:767
281msgid "Downloading"
288msgid "Downloading"
282msgstr "Henter"
289msgstr "Henter"
283
290
284−#: qml/Panel/Indicators/MenuItemFactory.qml:754
291+#: qml/Panel/Indicators/MenuItemFactory.qml:769
285msgid "Paused, tap to resume"
292msgid "Paused, tap to resume"
286msgstr "På pause; tryk for at fortsætte"
293msgstr "På pause; tryk for at fortsætte"
287
294
288−#: qml/Panel/Indicators/MenuItemFactory.qml:756
295+#: qml/Panel/Indicators/MenuItemFactory.qml:771
289msgid "Canceled"
296msgid "Canceled"
290msgstr "Annulleret"
297msgstr "Annulleret"
291
298
292−#: qml/Panel/Indicators/MenuItemFactory.qml:758
299+#: qml/Panel/Indicators/MenuItemFactory.qml:773
293msgid "Finished"
300msgid "Finished"
294msgstr "Færdig"
301msgstr "Færdig"
295
302
296−#: qml/Panel/Indicators/MenuItemFactory.qml:760
303+#: qml/Panel/Indicators/MenuItemFactory.qml:775
297msgid "Failed, tap to retry"
304msgid "Failed, tap to retry"
298msgstr "Mislykkedes; tryk for at prøve igen"
305msgstr "Mislykkedes; tryk for at prøve igen"
299
306
@@ -305,51 +312,55 @@ msgstr ""
305msgid "Roaming"
312msgid "Roaming"
306msgstr ""
313msgstr ""
307
314
308−#: qml/Shell.qml:320
315+#: qml/Shell.qml:381
309−msgid "Enter your passphrase"
316+msgid "Enter passphrase"
310msgstr ""
317msgstr ""
311
318
312−#: qml/Shell.qml:321
319+#: qml/Shell.qml:382
313msgid "Sorry, incorrect passphrase"
320msgid "Sorry, incorrect passphrase"
314msgstr ""
321msgstr ""
315
322
316−#: qml/Shell.qml:323
323+#: qml/Shell.qml:383
324+msgid "Please re-enter"
325+msgstr ""
326+
327+#: qml/Shell.qml:385
317−msgid "Enter your passcode"
328+msgid "Enter passcode"
318msgstr ""
329msgstr ""
319
330
320−#: qml/Shell.qml:324
331+#: qml/Shell.qml:386
321msgid "Sorry, incorrect passcode"
332msgid "Sorry, incorrect passcode"
322msgstr ""
333msgstr ""
323
334
324−#: qml/Shell.qml:327
335+#: qml/Shell.qml:389
325#, qt-format
336#, qt-format
326−msgid "Enter your %1"
337+msgid "Enter %1"
327msgstr ""
338msgstr ""
328
339
329−#: qml/Shell.qml:328
340+#: qml/Shell.qml:390
330#, qt-format
341#, qt-format
331msgid "Sorry, incorrect %1"
342msgid "Sorry, incorrect %1"
332msgstr ""
343msgstr ""
333
344
334−#: qml/Shell.qml:363
345+#: qml/Shell.qml:431
335msgid "Sorry, incorrect passphrase."
346msgid "Sorry, incorrect passphrase."
336msgstr ""
347msgstr ""
337
348
338−#: qml/Shell.qml:364
349+#: qml/Shell.qml:432
339msgid "Sorry, incorrect passcode."
350msgid "Sorry, incorrect passcode."
340msgstr ""
351msgstr ""
341
352
342−#: qml/Shell.qml:365
353+#: qml/Shell.qml:433
343msgid "This will be your last attempt."
354msgid "This will be your last attempt."
344msgstr ""
355msgstr ""
345
356
346−#: qml/Shell.qml:367
357+#: qml/Shell.qml:435
347msgid ""
358msgid ""
348"If passphrase is entered incorrectly, your phone will conduct a factory "
359"If passphrase is entered incorrectly, your phone will conduct a factory "
349"reset and all personal data will be deleted."
360"reset and all personal data will be deleted."
350msgstr ""
361msgstr ""
351
362
352−#: qml/Shell.qml:368
363+#: qml/Shell.qml:436
353msgid ""
364msgid ""
354"If passcode is entered incorrectly, your phone will conduct a factory reset "
365"If passcode is entered incorrectly, your phone will conduct a factory reset "
355"and all personal data will be deleted."
366"and all personal data will be deleted."
po/de.po+104−92
@@ -7,68 +7,92 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-29 06:33+0000\n"
11+"PO-Revision-Date: 2014-10-21 11:26+0000\n"
12−"Last-Translator: Niklas Wenzel <nikwen.developer@gmail.com>\n"
12+"Last-Translator: Alexander Dobetsberger <Unknown>\n"
13"Language-Team: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-30 07:10+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
22msgstr "Passwort: "
23msgstr "Passwort: "
23
24
24−#: plugins/Unity/Launcher/launcheritem.cpp:44
25+#: plugins/Unity/Launcher/launcheritem.cpp:45
25−#: plugins/Unity/Launcher/launcheritem.cpp:74
26+#: plugins/Unity/Launcher/launcheritem.cpp:91
26msgid "Pin shortcut"
27msgid "Pin shortcut"
27msgstr "Verknüpfung anheften"
28msgstr "Verknüpfung anheften"
28
29
29−#: plugins/Unity/Launcher/launcheritem.cpp:74
30+#: plugins/Unity/Launcher/launcheritem.cpp:91
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Verknüpfung entfernen"
32msgstr "Verknüpfung entfernen"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Gerät gesperrt"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+"Das Gerät wurde aufgrund zu vieler falscher Passworteingaben für längere "
42+"Zeit gesperrt."
43+
44+#: qml/Components/DelayedLockscreen.qml:63
45+msgid "You have been locked out due to too many failed passcode attempts."
46+msgstr ""
47+"Das Gerät wurde aufgrund zu vieler falscher PIN-Eingaben für längere Zeit "
48+"gesperrt."
49+
50+#: qml/Components/DelayedLockscreen.qml:72
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] "Bitte warten Sie %1 Minute und versuchen Sie es dann erneut..."
55+msgstr[1] "Bitte warten Sie %1 Minuten und versuchen Sie es dann erneut..."
56+
57+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
58msgid "Log out"
35msgstr "Abmelden"
59msgstr "Abmelden"
36
60
37−#: qml/Components/Dialogs.qml:71
61+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
62msgid "Are you sure you want to log out?"
39msgstr "Sind Sie sicher, dass Sie sich abmelden wollen?"
63msgstr "Sind Sie sicher, dass Sie sich abmelden wollen?"
40
64
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
65+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
66+#: qml/Components/Dialogs.qml:126
43msgid "No"
67msgid "No"
44msgstr "Nein"
68msgstr "Nein"
45
69
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
70+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
71+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
72msgid "Yes"
49msgstr "Ja"
73msgstr "Ja"
50
74
51−#: qml/Components/Dialogs.qml:94
75+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
76msgid "Shut down"
53msgstr "Herunterfahren"
77msgstr "Herunterfahren"
54
78
55−#: qml/Components/Dialogs.qml:95
79+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
80msgid "Are you sure you want to shut down?"
57msgstr "Sind Sie sicher, dass Sie herunterfahren wollen?"
81msgstr "Sind Sie sicher, dass Sie herunterfahren wollen?"
58
82
59−#: qml/Components/Dialogs.qml:119
83+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
84msgid "Reboot"
61msgstr "Neustart"
85msgstr "Neustart"
62
86
63−#: qml/Components/Dialogs.qml:120
87+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
65msgstr "Sind Sie sicher, dass Sie neu starten wollen?"
89msgstr "Sind Sie sicher, dass Sie neu starten wollen?"
66
90
67−#: qml/Components/Dialogs.qml:144
91+#: qml/Components/Dialogs.qml:148
68msgid "Power"
92msgid "Power"
69msgstr "Energie"
93msgstr "Energie"
70
94
71−#: qml/Components/Dialogs.qml:145
95+#: qml/Components/Dialogs.qml:149
72msgid ""
96msgid ""
73"Are you sure you would like\n"
97"Are you sure you would like\n"
74"to power off?"
98"to power off?"
@@ -76,15 +100,15 @@ msgstr ""
76"Sind Sie sicher, dass Sie das\n"
100"Sind Sie sicher, dass Sie das\n"
77"Gerät ausschalten wollen?"
101"Gerät ausschalten wollen?"
78
102
79−#: qml/Components/Dialogs.qml:147
103+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
104msgid "Power off"
81msgstr "Ausschalten"
105msgstr "Ausschalten"
82
106
83−#: qml/Components/Dialogs.qml:157
107+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
108msgid "Restart"
85msgstr "Neustarten"
109msgstr "Neustarten"
86
110
87−#: qml/Components/Dialogs.qml:167
111+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
112msgid "Cancel"
89msgstr "Abbrechen"
113msgstr "Abbrechen"
90
114
@@ -117,21 +141,21 @@ msgstr "Schließen"
117msgid "Swipe up again to close the settings screen"
141msgid "Swipe up again to close the settings screen"
118msgstr "Wischen Sie erneut nach oben, um das Einstellungsmenü zu schließen"
142msgstr "Wischen Sie erneut nach oben, um das Einstellungsmenü zu schließen"
119
143
120−#: qml/Components/EdgeDemo.qml:198
144+#: qml/Components/EdgeDemo.qml:201
121msgid "Left edge"
145msgid "Left edge"
122msgstr "Linker Rand"
146msgstr "Linker Rand"
123
147
124−#: qml/Components/EdgeDemo.qml:199
148+#: qml/Components/EdgeDemo.qml:202
125msgid "Swipe from the left to reveal the launcher for quick access to apps"
149msgid "Swipe from the left to reveal the launcher for quick access to apps"
126msgstr ""
150msgstr ""
127"Wischen Sie von links nach rechts, um die Seitenleiste für den Anwendungs-"
151"Wischen Sie von links nach rechts, um die Seitenleiste für den Anwendungs-"
128"Schnellzugriff aufzurufen"
152"Schnellzugriff aufzurufen"
129
153
130−#: qml/Components/EdgeDemo.qml:226
154+#: qml/Components/EdgeDemo.qml:229
131msgid "Well done"
155msgid "Well done"
132msgstr "Gut gemacht"
156msgstr "Gut gemacht"
133
157
134−#: qml/Components/EdgeDemo.qml:227
158+#: qml/Components/EdgeDemo.qml:230
135msgid ""
159msgid ""
136"You have now mastered the edge gestures and can start using the "
160"You have now mastered the edge gestures and can start using the "
137"phone<br><br>Tap on the screen to start"
161"phone<br><br>Tap on the screen to start"
@@ -139,40 +163,27 @@ msgstr ""
139"Sie haben nun die Kantengesten erfolgreich erlernt und können das Telefon "
163"Sie haben nun die Kantengesten erfolgreich erlernt und können das Telefon "
140"nun nutzen<br><br>Zum Starten auf den Bildschirm tippen"
164"nun nutzen<br><br>Zum Starten auf den Bildschirm tippen"
141
165
142−#: qml/Components/Lockscreen.qml:167
166+#: qml/Components/Lockscreen.qml:223
143−msgid "Please wait"
167+msgid "Return to Call"
144−msgstr "Bitte warten"
168+msgstr ""
145−
146−#: qml/Components/Lockscreen.qml:172
147−msgid "Too many incorrect attempts"
148−msgstr "Zu viele falsche Versuche"
149
169
150−#: qml/Components/Lockscreen.qml:206
170+#: qml/Components/Lockscreen.qml:223
151msgid "Emergency Call"
171msgid "Emergency Call"
152msgstr "Notruf"
172msgstr "Notruf"
153
173
154−#: qml/Components/Lockscreen.qml:226
174+#: qml/Components/Lockscreen.qml:255
155msgid "OK"
175msgid "OK"
156msgstr "OK"
176msgstr "OK"
157
177
158−#: qml/Components/PassphraseLockscreen.qml:61
159−#, qt-format
160−msgid "Hello %1"
161−msgstr "Hallo %1"
162−
163−#: qml/Components/PassphraseLockscreen.qml:61
164−msgid "Hello"
165−msgstr "Hallo"
166−
167−#: qml/Dash/GenericScopeView.qml:364 qml/Dash/GenericScopeView.qml:483
178+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
168msgid "See less"
179msgid "See less"
169msgstr "Weniger ansehen"
180msgstr "Weniger ansehen"
170
181
171−#: qml/Dash/GenericScopeView.qml:364
182+#: qml/Dash/GenericScopeView.qml:434
172msgid "See all"
183msgid "See all"
173msgstr "Alle anzeigen"
184msgstr "Alle anzeigen"
174
185
175−#: qml/Dash/GenericScopeView.qml:427 qml/Dash/PageHeader.qml:258
186+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
176#: qml/Panel/SearchIndicator.qml:27
187#: qml/Panel/SearchIndicator.qml:27
177msgid "Search"
188msgid "Search"
178msgstr "Suchen"
189msgstr "Suchen"
@@ -209,15 +220,23 @@ msgstr "Bewertung hinzufügen"
209msgid "Send"
220msgid "Send"
210msgstr "Senden"
221msgstr "Senden"
211
222
223+#: qml/Dash/PullToRefreshScopeStyle.qml:55
224+msgid "Pull to refresh…"
225+msgstr "Zum Aktualisieren ziehen …"
226+
227+#: qml/Dash/PullToRefreshScopeStyle.qml:60
228+msgid "Release to refresh…"
229+msgstr "Zum Aktualisieren loslassen …"
230+
212−#: qml/Dash/ScopesOverview.qml:206
231+#: qml/Dash/ScopesOverview.qml:215
213msgid "Manage Scopes"
232msgid "Manage Scopes"
214msgstr "Filter verwalten"
233msgstr "Filter verwalten"
215
234
216−#: qml/Dash/ScopesOverview.qml:428
235+#: qml/Dash/ScopesOverview.qml:437
217msgid "Done"
236msgid "Done"
218msgstr "Erledigt"
237msgstr "Erledigt"
219
238
220−#: qml/Dash/ScopesOverview.qml:454
239+#: qml/Dash/ScopesOverview.qml:463
221msgid "Store"
240msgid "Store"
222msgstr "Store"
241msgstr "Store"
223
242
@@ -229,9 +248,9 @@ msgstr "Favoriten"
229msgid "All"
248msgid "All"
230msgstr "Alle"
249msgstr "Alle"
231
250
232−#: qml/Greeter/Greeter.qml:157
251+#: qml/Greeter/Greeter.qml:174
233−msgid "Swipe to unlock"
252+msgid "Unlock"
234−msgstr "Wischen zum Entsperren"
253+msgstr "Entsperren"
235
254
236#: qml/Hud/HudParametrizedActionsPage.qml:139
255#: qml/Hud/HudParametrizedActionsPage.qml:139
237msgid "Confirm"
256msgid "Confirm"
@@ -253,51 +272,43 @@ msgstr "Sprechen Sie jetzt …"
253msgid "Speaking..."
272msgid "Speaking..."
254msgstr "Sprechen Sie …"
273msgstr "Sprechen Sie …"
255
274
256−#: qml/Notifications/NotificationMenuItemFactory.qml:108
275+#: qml/Notifications/NotificationMenuItemFactory.qml:116
257msgid "Show password"
276msgid "Show password"
258msgstr "Passwort anzeigen"
277msgstr "Passwort anzeigen"
259
278
260−#: qml/Notifications/NotificationMenuItemFactory.qml:124
261−msgid "Enter SIM PIN"
262−msgstr "Geben Sie die SIM-PIN ein"
263−
264−#: qml/Notifications/NotificationMenuItemFactory.qml:125
265−msgid "Sorry, incorrect PIN"
266−msgstr "Die PIN ist nicht korrekt"
267−
268−#: qml/Panel/ActiveCallHint.qml:77
279+#: qml/Panel/ActiveCallHint.qml:79
269msgid "Tap to return to call..."
280msgid "Tap to return to call..."
270msgstr "Tippen um zum Anruf zurückzugehen"
281msgstr "Tippen um zum Anruf zurückzugehen"
271
282
272−#: qml/Panel/ActiveCallHint.qml:90
283+#: qml/Panel/ActiveCallHint.qml:92
273msgid "Conference"
284msgid "Conference"
274msgstr "Konferenz"
285msgstr "Konferenz"
275
286
276−#: qml/Panel/Indicators/MenuItemFactory.qml:600
287+#: qml/Panel/Indicators/MenuItemFactory.qml:615
277msgid "Nothing is playing"
288msgid "Nothing is playing"
278msgstr "Nichts wird abgespielt"
289msgstr "Nichts wird abgespielt"
279
290
280−#: qml/Panel/Indicators/MenuItemFactory.qml:651
291+#: qml/Panel/Indicators/MenuItemFactory.qml:763
281msgid "In queue…"
292msgid "In queue…"
282msgstr "In Warteschlange …"
293msgstr "In Warteschlange …"
283
294
284−#: qml/Panel/Indicators/MenuItemFactory.qml:655
295+#: qml/Panel/Indicators/MenuItemFactory.qml:767
285msgid "Downloading"
296msgid "Downloading"
286msgstr "Wird heruntergeladen"
297msgstr "Wird heruntergeladen"
287
298
288−#: qml/Panel/Indicators/MenuItemFactory.qml:657
299+#: qml/Panel/Indicators/MenuItemFactory.qml:769
289msgid "Paused, tap to resume"
300msgid "Paused, tap to resume"
290msgstr "Pausiert, tippen Sie zum fortsetzen"
301msgstr "Pausiert, tippen Sie zum fortsetzen"
291
302
292−#: qml/Panel/Indicators/MenuItemFactory.qml:659
303+#: qml/Panel/Indicators/MenuItemFactory.qml:771
293msgid "Canceled"
304msgid "Canceled"
294msgstr "Abgebrochen"
305msgstr "Abgebrochen"
295
306
296−#: qml/Panel/Indicators/MenuItemFactory.qml:661
307+#: qml/Panel/Indicators/MenuItemFactory.qml:773
297msgid "Finished"
308msgid "Finished"
298msgstr "Erledigt"
309msgstr "Erledigt"
299
310
300−#: qml/Panel/Indicators/MenuItemFactory.qml:663
311+#: qml/Panel/Indicators/MenuItemFactory.qml:775
301msgid "Failed, tap to retry"
312msgid "Failed, tap to retry"
302msgstr "Fehlgeschlagen, tippen Sie zum Wiederholen"
313msgstr "Fehlgeschlagen, tippen Sie zum Wiederholen"
303
314
@@ -309,45 +320,49 @@ msgstr "SIM-Karte entsperren"
309msgid "Roaming"
320msgid "Roaming"
310msgstr "Roaming"
321msgstr "Roaming"
311
322
312−#: qml/Shell.qml:292
323+#: qml/Shell.qml:381
313−msgid "Enter your passphrase"
324+msgid "Enter passphrase"
314−msgstr "Geben Sie Ihr Passwort ein"
325+msgstr "Passwort eingeben"
315
326
316−#: qml/Shell.qml:293
327+#: qml/Shell.qml:382
317msgid "Sorry, incorrect passphrase"
328msgid "Sorry, incorrect passphrase"
318msgstr "Das Passwort ist nicht korrekt"
329msgstr "Das Passwort ist nicht korrekt"
319
330
320−#: qml/Shell.qml:295
331+#: qml/Shell.qml:383
321−msgid "Enter your passcode"
332+msgid "Please re-enter"
322−msgstr "Passwort eingeben"
333+msgstr "Bitte erneut eingeben"
323
334
324−#: qml/Shell.qml:296
335+#: qml/Shell.qml:385
336+msgid "Enter passcode"
337+msgstr "PIN eingeben"
338+
339+#: qml/Shell.qml:386
325msgid "Sorry, incorrect passcode"
340msgid "Sorry, incorrect passcode"
326msgstr "Falsches Passwort"
341msgstr "Falsches Passwort"
327
342
328−#: qml/Shell.qml:299
343+#: qml/Shell.qml:389
329#, qt-format
344#, qt-format
330−msgid "Enter your %1"
345+msgid "Enter %1"
331msgstr "%1 eingeben"
346msgstr "%1 eingeben"
332
347
333−#: qml/Shell.qml:300
348+#: qml/Shell.qml:390
334#, qt-format
349#, qt-format
335msgid "Sorry, incorrect %1"
350msgid "Sorry, incorrect %1"
336msgstr "%1 falsch"
351msgstr "%1 falsch"
337
352
338−#: qml/Shell.qml:335
353+#: qml/Shell.qml:431
339msgid "Sorry, incorrect passphrase."
354msgid "Sorry, incorrect passphrase."
340−msgstr "Falsches Passwort."
355+msgstr "Entschuldigung, falsches Passwort."
341
356
342−#: qml/Shell.qml:336
357+#: qml/Shell.qml:432
343msgid "Sorry, incorrect passcode."
358msgid "Sorry, incorrect passcode."
344msgstr "Falsche PIN"
359msgstr "Falsche PIN"
345
360
346−#: qml/Shell.qml:337
361+#: qml/Shell.qml:433
347msgid "This will be your last attempt."
362msgid "This will be your last attempt."
348msgstr "Dies ist Ihr letzter Versuch."
363msgstr "Dies ist Ihr letzter Versuch."
349
364
350−#: qml/Shell.qml:339
365+#: qml/Shell.qml:435
351msgid ""
366msgid ""
352"If passphrase is entered incorrectly, your phone will conduct a factory "
367"If passphrase is entered incorrectly, your phone will conduct a factory "
353"reset and all personal data will be deleted."
368"reset and all personal data will be deleted."
@@ -355,13 +370,10 @@ msgstr ""
355"Wird das Passwort falsch eingegeben, wird das Telefon auf den Werkszustand "
370"Wird das Passwort falsch eingegeben, wird das Telefon auf den Werkszustand "
356"zurückgesetzt und alle Daten werden gelöscht."
371"zurückgesetzt und alle Daten werden gelöscht."
357
372
358−#: qml/Shell.qml:340
373+#: qml/Shell.qml:436
359msgid ""
374msgid ""
360"If passcode is entered incorrectly, your phone will conduct a factory reset "
375"If passcode is entered incorrectly, your phone will conduct a factory reset "
361"and all personal data will be deleted."
376"and all personal data will be deleted."
362msgstr ""
377msgstr ""
363"Wird die PIN falsch eingegeben, wird das Telefon auf den Werkszustand "
378"Wird die PIN falsch eingegeben, wird das Telefon auf den Werkszustand "
364"zurückgesetzt und alle Daten werden gelöscht."
379"zurückgesetzt und alle Daten werden gelöscht."
365−
366−#~ msgid "Manage Dash"
367−#~ msgstr "Dash verwalten"
po/el.po+93−82
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-08-21 12:06+0000\n"
11"PO-Revision-Date: 2014-08-21 12:06+0000\n"
12"Last-Translator: Chris Taklis (aka Kailor) <ctaklis@gmail.com>\n"
12"Last-Translator: Chris Taklis (aka Kailor) <ctaklis@gmail.com>\n"
13"Language-Team: Greek <el@li.org>\n"
13"Language-Team: Greek <el@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr "Καρφίτσωμα συντόμευσης"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Ξεκαρφίτσωμα συντόμευσης"
32msgstr "Ξεκαρφίτσωμα συντόμευσης"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr ""
55msgstr ""
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr ""
59msgstr ""
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr ""
64msgstr ""
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr ""
69msgstr ""
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr ""
73msgstr ""
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr ""
77msgstr ""
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr ""
81msgstr ""
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr ""
85msgstr ""
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr ""
89msgstr ""
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr ""
95msgstr ""
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr "Τερματισμός"
99msgstr "Τερματισμός"
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr ""
103msgstr ""
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr "Ακύρωση"
107msgstr "Ακύρωση"
88
108
@@ -114,21 +134,21 @@ msgstr "Κλείσιμο"
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr "Σύρετε προς τα επάνω για κλείσιμο των ρυθμίσεων"
135msgstr "Σύρετε προς τα επάνω για κλείσιμο των ρυθμίσεων"
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr "Αριστερό άκρο"
139msgstr "Αριστερό άκρο"
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
143msgstr ""
124"Σύρετε από τα αριστερό άκρο για εμφάνιση του εκκινητή για άμεση πρόσβαση "
144"Σύρετε από τα αριστερό άκρο για εμφάνιση του εκκινητή για άμεση πρόσβαση "
125"στις εφαρμογές"
145"στις εφαρμογές"
126
146
127−#: qml/Components/EdgeDemo.qml:226
147+#: qml/Components/EdgeDemo.qml:229
128msgid "Well done"
148msgid "Well done"
129msgstr "Συγχαρητήρια"
149msgstr "Συγχαρητήρια"
130
150
131−#: qml/Components/EdgeDemo.qml:227
151+#: qml/Components/EdgeDemo.qml:230
132msgid ""
152msgid ""
133"You have now mastered the edge gestures and can start using the "
153"You have now mastered the edge gestures and can start using the "
134"phone<br><br>Tap on the screen to start"
154"phone<br><br>Tap on the screen to start"
@@ -136,40 +156,27 @@ msgstr ""
136"Πλέον γνωρίζετε τις χειρονομίες από τα άκρα και μπορείτε να ξεκινήσετε να "
156"Πλέον γνωρίζετε τις χειρονομίες από τα άκρα και μπορείτε να ξεκινήσετε να "
137"χρησιμοποιείτε το τηλέφωνο<br><br>Αγγίξτε την οθόνη για να ξεκινήσετε"
157"χρησιμοποιείτε το τηλέφωνο<br><br>Αγγίξτε την οθόνη για να ξεκινήσετε"
138
158
139−#: qml/Components/Lockscreen.qml:167
159+#: qml/Components/Lockscreen.qml:223
140−msgid "Please wait"
160+msgid "Return to Call"
141−msgstr "Παρακαλώ περιμένετε"
161+msgstr ""
142−
143−#: qml/Components/Lockscreen.qml:172
144−msgid "Too many incorrect attempts"
145−msgstr "Πολλές άκυρες προσπάθειες"
146
162
147−#: qml/Components/Lockscreen.qml:206
163+#: qml/Components/Lockscreen.qml:223
148msgid "Emergency Call"
164msgid "Emergency Call"
149msgstr "Κλήση έκτακτης ανάγκης"
165msgstr "Κλήση έκτακτης ανάγκης"
150
166
151−#: qml/Components/Lockscreen.qml:226
167+#: qml/Components/Lockscreen.qml:255
152msgid "OK"
168msgid "OK"
153msgstr "OK"
169msgstr "OK"
154
170
155−#: qml/Components/PassphraseLockscreen.qml:61
156−#, qt-format
157−msgid "Hello %1"
158−msgstr "Γεια σας %1"
159−
160−#: qml/Components/PassphraseLockscreen.qml:61
161−msgid "Hello"
162−msgstr "Γεια σας"
163−
164−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
171+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
165msgid "See less"
172msgid "See less"
166msgstr "Λιγότερα"
173msgstr "Λιγότερα"
167
174
168−#: qml/Dash/GenericScopeView.qml:411
175+#: qml/Dash/GenericScopeView.qml:434
169msgid "See all"
176msgid "See all"
170msgstr "Εμφάνιση όλων"
177msgstr "Εμφάνιση όλων"
171
178
172−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
173#: qml/Panel/SearchIndicator.qml:27
180#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
181msgid "Search"
175msgstr "Αναζήτηση"
182msgstr "Αναζήτηση"
@@ -206,15 +213,23 @@ msgstr "Προσθέστε την αξιολόγησή σας"
206msgid "Send"
213msgid "Send"
207msgstr "Αποστολή"
214msgstr "Αποστολή"
208
215
216+#: qml/Dash/PullToRefreshScopeStyle.qml:55
217+msgid "Pull to refresh…"
218+msgstr ""
219+
220+#: qml/Dash/PullToRefreshScopeStyle.qml:60
221+msgid "Release to refresh…"
222+msgstr ""
223+
209−#: qml/Dash/ScopesOverview.qml:206
224+#: qml/Dash/ScopesOverview.qml:215
210msgid "Manage Scopes"
225msgid "Manage Scopes"
211msgstr ""
226msgstr ""
212
227
213−#: qml/Dash/ScopesOverview.qml:428
228+#: qml/Dash/ScopesOverview.qml:437
214msgid "Done"
229msgid "Done"
215msgstr "Ολοκληρώθηκε"
230msgstr "Ολοκληρώθηκε"
216
231
217−#: qml/Dash/ScopesOverview.qml:454
232+#: qml/Dash/ScopesOverview.qml:463
218msgid "Store"
233msgid "Store"
219msgstr "Κατάστημα"
234msgstr "Κατάστημα"
220
235
@@ -226,9 +241,9 @@ msgstr "Αγαπημένα"
226msgid "All"
241msgid "All"
227msgstr "Όλα"
242msgstr "Όλα"
228
243
229−#: qml/Greeter/Greeter.qml:157
244+#: qml/Greeter/Greeter.qml:174
230−msgid "Swipe to unlock"
245+msgid "Unlock"
231−msgstr "Σύρετε για να ξεκλειδώσετε"
246+msgstr ""
232
247
233#: qml/Hud/HudParametrizedActionsPage.qml:139
248#: qml/Hud/HudParametrizedActionsPage.qml:139
234msgid "Confirm"
249msgid "Confirm"
@@ -250,51 +265,43 @@ msgstr "Μιλήστε τώρα..."
250msgid "Speaking..."
265msgid "Speaking..."
251msgstr "Ομιλία..."
266msgstr "Ομιλία..."
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:108
268+#: qml/Notifications/NotificationMenuItemFactory.qml:116
254msgid "Show password"
269msgid "Show password"
255msgstr "Εμφάνιση κωδικού"
270msgstr "Εμφάνιση κωδικού"
256
271
257−#: qml/Notifications/NotificationMenuItemFactory.qml:124
258−msgid "Enter SIM PIN"
259−msgstr ""
260−
261−#: qml/Notifications/NotificationMenuItemFactory.qml:125
262−msgid "Sorry, incorrect PIN"
263−msgstr ""
264−
265−#: qml/Panel/ActiveCallHint.qml:77
272+#: qml/Panel/ActiveCallHint.qml:79
266msgid "Tap to return to call..."
273msgid "Tap to return to call..."
267msgstr "Πατήστε για να γυρίσετε στην κλήση..."
274msgstr "Πατήστε για να γυρίσετε στην κλήση..."
268
275
269−#: qml/Panel/ActiveCallHint.qml:90
276+#: qml/Panel/ActiveCallHint.qml:92
270msgid "Conference"
277msgid "Conference"
271msgstr "Συνδιάσκεψη"
278msgstr "Συνδιάσκεψη"
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:600
280+#: qml/Panel/Indicators/MenuItemFactory.qml:615
274msgid "Nothing is playing"
281msgid "Nothing is playing"
275msgstr ""
282msgstr ""
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:748
284+#: qml/Panel/Indicators/MenuItemFactory.qml:763
278msgid "In queue…"
285msgid "In queue…"
279msgstr "Στην ουρά..."
286msgstr "Στην ουρά..."
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:752
288+#: qml/Panel/Indicators/MenuItemFactory.qml:767
282msgid "Downloading"
289msgid "Downloading"
283msgstr "Λήψη σε εξέλιξη"
290msgstr "Λήψη σε εξέλιξη"
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:754
292+#: qml/Panel/Indicators/MenuItemFactory.qml:769
286msgid "Paused, tap to resume"
293msgid "Paused, tap to resume"
287msgstr "Σταματημένο, αγγίξτε για συνέχιση"
294msgstr "Σταματημένο, αγγίξτε για συνέχιση"
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:756
296+#: qml/Panel/Indicators/MenuItemFactory.qml:771
290msgid "Canceled"
297msgid "Canceled"
291msgstr "Ακυρώθηκε"
298msgstr "Ακυρώθηκε"
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:758
300+#: qml/Panel/Indicators/MenuItemFactory.qml:773
294msgid "Finished"
301msgid "Finished"
295msgstr "Ολοκληρώθηκε"
302msgstr "Ολοκληρώθηκε"
296
303
297−#: qml/Panel/Indicators/MenuItemFactory.qml:760
304+#: qml/Panel/Indicators/MenuItemFactory.qml:775
298msgid "Failed, tap to retry"
305msgid "Failed, tap to retry"
299msgstr "Αποτυχία, πατήστε για να ξαναπροσπαθήσετε"
306msgstr "Αποτυχία, πατήστε για να ξαναπροσπαθήσετε"
300
307
@@ -306,51 +313,55 @@ msgstr "Ξεκλείδωμα SIM"
306msgid "Roaming"
313msgid "Roaming"
307msgstr "Περιαγωγή"
314msgstr "Περιαγωγή"
308
315
309−#: qml/Shell.qml:320
316+#: qml/Shell.qml:381
310−msgid "Enter your passphrase"
317+msgid "Enter passphrase"
311msgstr ""
318msgstr ""
312
319
313−#: qml/Shell.qml:321
320+#: qml/Shell.qml:382
314msgid "Sorry, incorrect passphrase"
321msgid "Sorry, incorrect passphrase"
315msgstr ""
322msgstr ""
316
323
317−#: qml/Shell.qml:323
324+#: qml/Shell.qml:383
318−msgid "Enter your passcode"
325+msgid "Please re-enter"
319msgstr ""
326msgstr ""
320
327
321−#: qml/Shell.qml:324
328+#: qml/Shell.qml:385
329+msgid "Enter passcode"
330+msgstr ""
331+
332+#: qml/Shell.qml:386
322msgid "Sorry, incorrect passcode"
333msgid "Sorry, incorrect passcode"
323msgstr ""
334msgstr ""
324
335
325−#: qml/Shell.qml:327
336+#: qml/Shell.qml:389
326#, qt-format
337#, qt-format
327−msgid "Enter your %1"
338+msgid "Enter %1"
328−msgstr "Εισάγετε το %1"
339+msgstr ""
329
340
330−#: qml/Shell.qml:328
341+#: qml/Shell.qml:390
331#, qt-format
342#, qt-format
332msgid "Sorry, incorrect %1"
343msgid "Sorry, incorrect %1"
333msgstr ""
344msgstr ""
334
345
335−#: qml/Shell.qml:363
346+#: qml/Shell.qml:431
336msgid "Sorry, incorrect passphrase."
347msgid "Sorry, incorrect passphrase."
337msgstr ""
348msgstr ""
338
349
339−#: qml/Shell.qml:364
350+#: qml/Shell.qml:432
340msgid "Sorry, incorrect passcode."
351msgid "Sorry, incorrect passcode."
341msgstr ""
352msgstr ""
342
353
343−#: qml/Shell.qml:365
354+#: qml/Shell.qml:433
344msgid "This will be your last attempt."
355msgid "This will be your last attempt."
345msgstr ""
356msgstr ""
346
357
347−#: qml/Shell.qml:367
358+#: qml/Shell.qml:435
348msgid ""
359msgid ""
349"If passphrase is entered incorrectly, your phone will conduct a factory "
360"If passphrase is entered incorrectly, your phone will conduct a factory "
350"reset and all personal data will be deleted."
361"reset and all personal data will be deleted."
351msgstr ""
362msgstr ""
352
363
353−#: qml/Shell.qml:368
364+#: qml/Shell.qml:436
354msgid ""
365msgid ""
355"If passcode is entered incorrectly, your phone will conduct a factory reset "
366"If passcode is entered incorrectly, your phone will conduct a factory reset "
356"and all personal data will be deleted."
367"and all personal data will be deleted."
po/en_AU.po+98−90
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-23 01:24+0000\n"
11+"PO-Revision-Date: 2014-10-12 09:41+0000\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:20+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:41+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,45 +31,64 @@ msgstr "Pin shortcut"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Unpin shortcut"
32msgstr "Unpin shortcut"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Device Locked"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr "You have been locked out due to too many failed passphrase attempts."
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr "You have been locked out due to too many failed passcode attempts."
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] "Please wait %1 minute and then try again…"
51+msgstr[1] "Please wait %1 minutes and then try again…"
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr "Log out"
55msgstr "Log out"
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr "Are you sure you want to log out?"
59msgstr "Are you sure you want to log out?"
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr "No"
64msgstr "No"
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr "Yes"
69msgstr "Yes"
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr "Shut down"
73msgstr "Shut down"
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr "Are you sure you want to shut down?"
77msgstr "Are you sure you want to shut down?"
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr "Reboot"
81msgstr "Reboot"
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr "Are you sure you want to reboot?"
85msgstr "Are you sure you want to reboot?"
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr "Power"
89msgstr "Power"
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
@@ -76,15 +96,15 @@ msgstr ""
76"Are you sure you would like\n"
96"Are you sure you would like\n"
77"to power off?"
97"to power off?"
78
98
79−#: qml/Components/Dialogs.qml:147
99+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
100msgid "Power off"
81msgstr "Power off"
101msgstr "Power off"
82
102
83−#: qml/Components/Dialogs.qml:157
103+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
104msgid "Restart"
85msgstr "Restart"
105msgstr "Restart"
86
106
87−#: qml/Components/Dialogs.qml:167
107+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
108msgid "Cancel"
89msgstr "Cancel"
109msgstr "Cancel"
90
110
@@ -116,19 +136,19 @@ msgstr "Close"
116msgid "Swipe up again to close the settings screen"
136msgid "Swipe up again to close the settings screen"
117msgstr "Swipe up again to close the settings screen"
137msgstr "Swipe up again to close the settings screen"
118
138
119−#: qml/Components/EdgeDemo.qml:198
139+#: qml/Components/EdgeDemo.qml:201
120msgid "Left edge"
140msgid "Left edge"
121msgstr "Left edge"
141msgstr "Left edge"
122
142
123−#: qml/Components/EdgeDemo.qml:199
143+#: qml/Components/EdgeDemo.qml:202
124msgid "Swipe from the left to reveal the launcher for quick access to apps"
144msgid "Swipe from the left to reveal the launcher for quick access to apps"
125msgstr "Swipe from the left to reveal the launcher for quick access to apps"
145msgstr "Swipe from the left to reveal the launcher for quick access to apps"
126
146
127−#: qml/Components/EdgeDemo.qml:226
147+#: qml/Components/EdgeDemo.qml:229
128msgid "Well done"
148msgid "Well done"
129msgstr "Well done"
149msgstr "Well done"
130
150
131−#: qml/Components/EdgeDemo.qml:227
151+#: qml/Components/EdgeDemo.qml:230
132msgid ""
152msgid ""
133"You have now mastered the edge gestures and can start using the "
153"You have now mastered the edge gestures and can start using the "
134"phone<br><br>Tap on the screen to start"
154"phone<br><br>Tap on the screen to start"
@@ -136,40 +156,27 @@ msgstr ""
136"You have now mastered the edge gestures and can start using the "
156"You have now mastered the edge gestures and can start using the "
137"phone<br><br>Tap on the screen to start"
157"phone<br><br>Tap on the screen to start"
138
158
139−#: qml/Components/Lockscreen.qml:167
159+#: qml/Components/Lockscreen.qml:223
140−msgid "Please wait"
160+msgid "Return to Call"
141−msgstr "Please wait"
161+msgstr ""
142−
143−#: qml/Components/Lockscreen.qml:172
144−msgid "Too many incorrect attempts"
145−msgstr "Too many incorrect attempts"
146
162
147−#: qml/Components/Lockscreen.qml:206
163+#: qml/Components/Lockscreen.qml:223
148msgid "Emergency Call"
164msgid "Emergency Call"
149msgstr "Emergency Call"
165msgstr "Emergency Call"
150
166
151−#: qml/Components/Lockscreen.qml:226
167+#: qml/Components/Lockscreen.qml:255
152msgid "OK"
168msgid "OK"
153msgstr "OK"
169msgstr "OK"
154
170
155−#: qml/Components/PassphraseLockscreen.qml:61
156−#, qt-format
157−msgid "Hello %1"
158−msgstr "Hello %1"
159−
160−#: qml/Components/PassphraseLockscreen.qml:61
161−msgid "Hello"
162−msgstr "Hello"
163−
164−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
171+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
165msgid "See less"
172msgid "See less"
166msgstr "See less"
173msgstr "See less"
167
174
168−#: qml/Dash/GenericScopeView.qml:411
175+#: qml/Dash/GenericScopeView.qml:434
169msgid "See all"
176msgid "See all"
170msgstr "See all"
177msgstr "See all"
171
178
172−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
173#: qml/Panel/SearchIndicator.qml:27
180#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
181msgid "Search"
175msgstr "Search"
182msgstr "Search"
@@ -206,15 +213,23 @@ msgstr "Add a review"
206msgid "Send"
213msgid "Send"
207msgstr "Send"
214msgstr "Send"
208
215
216+#: qml/Dash/PullToRefreshScopeStyle.qml:55
217+msgid "Pull to refresh…"
218+msgstr "Pull to refresh…"
219+
220+#: qml/Dash/PullToRefreshScopeStyle.qml:60
221+msgid "Release to refresh…"
222+msgstr "Release to refresh…"
223+
209−#: qml/Dash/ScopesOverview.qml:206
224+#: qml/Dash/ScopesOverview.qml:215
210msgid "Manage Scopes"
225msgid "Manage Scopes"
211−msgstr ""
226+msgstr "Manage Scopes"
212
227
213−#: qml/Dash/ScopesOverview.qml:428
228+#: qml/Dash/ScopesOverview.qml:437
214msgid "Done"
229msgid "Done"
215msgstr "Done"
230msgstr "Done"
216
231
217−#: qml/Dash/ScopesOverview.qml:454
232+#: qml/Dash/ScopesOverview.qml:463
218msgid "Store"
233msgid "Store"
219msgstr "Store"
234msgstr "Store"
220
235
@@ -226,9 +241,9 @@ msgstr "Favourites"
226msgid "All"
241msgid "All"
227msgstr "All"
242msgstr "All"
228
243
229−#: qml/Greeter/Greeter.qml:157
244+#: qml/Greeter/Greeter.qml:174
230−msgid "Swipe to unlock"
245+msgid "Unlock"
231−msgstr "Swipe to unlock"
246+msgstr "Unlock"
232
247
233#: qml/Hud/HudParametrizedActionsPage.qml:139
248#: qml/Hud/HudParametrizedActionsPage.qml:139
234msgid "Confirm"
249msgid "Confirm"
@@ -250,51 +265,43 @@ msgstr "Speak Now..."
250msgid "Speaking..."
265msgid "Speaking..."
251msgstr "Speaking..."
266msgstr "Speaking..."
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:108
268+#: qml/Notifications/NotificationMenuItemFactory.qml:116
254msgid "Show password"
269msgid "Show password"
255msgstr "Show password"
270msgstr "Show password"
256
271
257−#: qml/Notifications/NotificationMenuItemFactory.qml:124
258−msgid "Enter SIM PIN"
259−msgstr "Enter SIM PIN"
260−
261−#: qml/Notifications/NotificationMenuItemFactory.qml:125
262−msgid "Sorry, incorrect PIN"
263−msgstr "Sorry, incorrect PIN"
264−
265−#: qml/Panel/ActiveCallHint.qml:77
272+#: qml/Panel/ActiveCallHint.qml:79
266msgid "Tap to return to call..."
273msgid "Tap to return to call..."
267msgstr "Tap to return to call..."
274msgstr "Tap to return to call..."
268
275
269−#: qml/Panel/ActiveCallHint.qml:90
276+#: qml/Panel/ActiveCallHint.qml:92
270msgid "Conference"
277msgid "Conference"
271msgstr "Conference"
278msgstr "Conference"
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:600
280+#: qml/Panel/Indicators/MenuItemFactory.qml:615
274msgid "Nothing is playing"
281msgid "Nothing is playing"
275−msgstr ""
282+msgstr "Nothing is playing"
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:748
284+#: qml/Panel/Indicators/MenuItemFactory.qml:763
278msgid "In queue…"
285msgid "In queue…"
279msgstr "In queue…"
286msgstr "In queue…"
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:752
288+#: qml/Panel/Indicators/MenuItemFactory.qml:767
282msgid "Downloading"
289msgid "Downloading"
283msgstr "Downloading"
290msgstr "Downloading"
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:754
292+#: qml/Panel/Indicators/MenuItemFactory.qml:769
286msgid "Paused, tap to resume"
293msgid "Paused, tap to resume"
287msgstr "Paused, tap to resume"
294msgstr "Paused, tap to resume"
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:756
296+#: qml/Panel/Indicators/MenuItemFactory.qml:771
290msgid "Canceled"
297msgid "Canceled"
291msgstr "Cancelled"
298msgstr "Cancelled"
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:758
300+#: qml/Panel/Indicators/MenuItemFactory.qml:773
294msgid "Finished"
301msgid "Finished"
295msgstr "Finished"
302msgstr "Finished"
296
303
297−#: qml/Panel/Indicators/MenuItemFactory.qml:760
304+#: qml/Panel/Indicators/MenuItemFactory.qml:775
298msgid "Failed, tap to retry"
305msgid "Failed, tap to retry"
299msgstr "Failed, tap to retry"
306msgstr "Failed, tap to retry"
300
307
@@ -306,45 +313,49 @@ msgstr "Unlock SIM"
306msgid "Roaming"
313msgid "Roaming"
307msgstr "Roaming"
314msgstr "Roaming"
308
315
309−#: qml/Shell.qml:320
316+#: qml/Shell.qml:381
310−msgid "Enter your passphrase"
317+msgid "Enter passphrase"
311−msgstr "Enter your passphrase"
318+msgstr "Enter passphrase"
312
319
313−#: qml/Shell.qml:321
320+#: qml/Shell.qml:382
314msgid "Sorry, incorrect passphrase"
321msgid "Sorry, incorrect passphrase"
315msgstr "Sorry, incorrect passphrase"
322msgstr "Sorry, incorrect passphrase"
316
323
317−#: qml/Shell.qml:323
324+#: qml/Shell.qml:383
318−msgid "Enter your passcode"
325+msgid "Please re-enter"
319−msgstr "Enter your passcode"
326+msgstr "Please re-enter"
320
327
321−#: qml/Shell.qml:324
328+#: qml/Shell.qml:385
329+msgid "Enter passcode"
330+msgstr "Enter passcode"
331+
332+#: qml/Shell.qml:386
322msgid "Sorry, incorrect passcode"
333msgid "Sorry, incorrect passcode"
323msgstr "Sorry, incorrect passcode"
334msgstr "Sorry, incorrect passcode"
324
335
325−#: qml/Shell.qml:327
336+#: qml/Shell.qml:389
326#, qt-format
337#, qt-format
327−msgid "Enter your %1"
338+msgid "Enter %1"
328−msgstr "Enter your %1"
339+msgstr "Enter %1"
329
340
330−#: qml/Shell.qml:328
341+#: qml/Shell.qml:390
331#, qt-format
342#, qt-format
332msgid "Sorry, incorrect %1"
343msgid "Sorry, incorrect %1"
333msgstr "Sorry, incorrect %1"
344msgstr "Sorry, incorrect %1"
334
345
335−#: qml/Shell.qml:363
346+#: qml/Shell.qml:431
336msgid "Sorry, incorrect passphrase."
347msgid "Sorry, incorrect passphrase."
337msgstr "Sorry, incorrect passphrase."
348msgstr "Sorry, incorrect passphrase."
338
349
339−#: qml/Shell.qml:364
350+#: qml/Shell.qml:432
340msgid "Sorry, incorrect passcode."
351msgid "Sorry, incorrect passcode."
341msgstr "Sorry, incorrect passcode."
352msgstr "Sorry, incorrect passcode."
342
353
343−#: qml/Shell.qml:365
354+#: qml/Shell.qml:433
344msgid "This will be your last attempt."
355msgid "This will be your last attempt."
345msgstr "This will be your last attempt."
356msgstr "This will be your last attempt."
346
357
347−#: qml/Shell.qml:367
358+#: qml/Shell.qml:435
348msgid ""
359msgid ""
349"If passphrase is entered incorrectly, your phone will conduct a factory "
360"If passphrase is entered incorrectly, your phone will conduct a factory "
350"reset and all personal data will be deleted."
361"reset and all personal data will be deleted."
@@ -352,13 +363,10 @@ msgstr ""
352"If passphrase is entered incorrectly, your phone will conduct a factory "
363"If passphrase is entered incorrectly, your phone will conduct a factory "
353"reset and all personal data will be deleted."
364"reset and all personal data will be deleted."
354
365
355−#: qml/Shell.qml:368
366+#: qml/Shell.qml:436
356msgid ""
367msgid ""
357"If passcode is entered incorrectly, your phone will conduct a factory reset "
368"If passcode is entered incorrectly, your phone will conduct a factory reset "
358"and all personal data will be deleted."
369"and all personal data will be deleted."
359msgstr ""
370msgstr ""
360"If passcode is entered incorrectly, your phone will conduct a factory reset "
371"If passcode is entered incorrectly, your phone will conduct a factory reset "
361"and all personal data will be deleted."
372"and all personal data will be deleted."
362−
363−#~ msgid "Manage Dash"
364−#~ msgstr "Manage Dash"
po/en_GB.po+97−89
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-08-23 13:48+0000\n"
11+"PO-Revision-Date: 2014-11-05 18:59+0000\n"
12−"Last-Translator: Alan Pope ( ͡° ͜ʖ ͡°) <alan@ubuntu.com>\n"
12+"Last-Translator: Andi Chandler <Unknown>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:20+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:41+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,45 +31,64 @@ msgstr "Pin shortcut"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Unpin shortcut"
32msgstr "Unpin shortcut"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Device Locked"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr "You have been locked out due to too many failed passphrase attempts."
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr "You have been locked out due to too many failed passcode attempts."
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] "Please wait %1 minute and then try again…"
51+msgstr[1] "Please wait %1 minutes and then try again…"
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr "Log out"
55msgstr "Log out"
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr "Are you sure you want to log out?"
59msgstr "Are you sure you want to log out?"
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr "No"
64msgstr "No"
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr "Yes"
69msgstr "Yes"
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr "Shut down"
73msgstr "Shut down"
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr "Are you sure you want to shut down?"
77msgstr "Are you sure you want to shut down?"
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr "Reboot"
81msgstr "Reboot"
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr "Are you sure you want to reboot?"
85msgstr "Are you sure you want to reboot?"
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr "Power"
89msgstr "Power"
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
@@ -76,15 +96,15 @@ msgstr ""
76"Are you sure you would like\n"
96"Are you sure you would like\n"
77"to power off?"
97"to power off?"
78
98
79−#: qml/Components/Dialogs.qml:147
99+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
100msgid "Power off"
81msgstr "Power off"
101msgstr "Power off"
82
102
83−#: qml/Components/Dialogs.qml:157
103+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
104msgid "Restart"
85msgstr "Restart"
105msgstr "Restart"
86
106
87−#: qml/Components/Dialogs.qml:167
107+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
108msgid "Cancel"
89msgstr "Cancel"
109msgstr "Cancel"
90
110
@@ -116,19 +136,19 @@ msgstr "Close"
116msgid "Swipe up again to close the settings screen"
136msgid "Swipe up again to close the settings screen"
117msgstr "Swipe up again to close the settings screen"
137msgstr "Swipe up again to close the settings screen"
118
138
119−#: qml/Components/EdgeDemo.qml:198
139+#: qml/Components/EdgeDemo.qml:201
120msgid "Left edge"
140msgid "Left edge"
121msgstr "Left edge"
141msgstr "Left edge"
122
142
123−#: qml/Components/EdgeDemo.qml:199
143+#: qml/Components/EdgeDemo.qml:202
124msgid "Swipe from the left to reveal the launcher for quick access to apps"
144msgid "Swipe from the left to reveal the launcher for quick access to apps"
125msgstr "Swipe from the left to reveal the launcher for quick access to apps"
145msgstr "Swipe from the left to reveal the launcher for quick access to apps"
126
146
127−#: qml/Components/EdgeDemo.qml:226
147+#: qml/Components/EdgeDemo.qml:229
128msgid "Well done"
148msgid "Well done"
129msgstr "Well done"
149msgstr "Well done"
130
150
131−#: qml/Components/EdgeDemo.qml:227
151+#: qml/Components/EdgeDemo.qml:230
132msgid ""
152msgid ""
133"You have now mastered the edge gestures and can start using the "
153"You have now mastered the edge gestures and can start using the "
134"phone<br><br>Tap on the screen to start"
154"phone<br><br>Tap on the screen to start"
@@ -136,40 +156,27 @@ msgstr ""
136"You have now mastered the edge gestures and can start using the "
156"You have now mastered the edge gestures and can start using the "
137"phone<br><br>Tap on the screen to start"
157"phone<br><br>Tap on the screen to start"
138
158
139−#: qml/Components/Lockscreen.qml:167
159+#: qml/Components/Lockscreen.qml:223
140−msgid "Please wait"
160+msgid "Return to Call"
141−msgstr "Please wait"
161+msgstr "Return to Call"
142−
143−#: qml/Components/Lockscreen.qml:172
144−msgid "Too many incorrect attempts"
145−msgstr "Too many incorrect attempts"
146
162
147−#: qml/Components/Lockscreen.qml:206
163+#: qml/Components/Lockscreen.qml:223
148msgid "Emergency Call"
164msgid "Emergency Call"
149msgstr "Emergency Call"
165msgstr "Emergency Call"
150
166
151−#: qml/Components/Lockscreen.qml:226
167+#: qml/Components/Lockscreen.qml:255
152msgid "OK"
168msgid "OK"
153msgstr "OK"
169msgstr "OK"
154
170
155−#: qml/Components/PassphraseLockscreen.qml:61
156−#, qt-format
157−msgid "Hello %1"
158−msgstr "Hello %1"
159−
160−#: qml/Components/PassphraseLockscreen.qml:61
161−msgid "Hello"
162−msgstr "Hello"
163−
164−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
171+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
165msgid "See less"
172msgid "See less"
166msgstr "See less"
173msgstr "See less"
167
174
168−#: qml/Dash/GenericScopeView.qml:411
175+#: qml/Dash/GenericScopeView.qml:434
169msgid "See all"
176msgid "See all"
170msgstr "See all"
177msgstr "See all"
171
178
172−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
173#: qml/Panel/SearchIndicator.qml:27
180#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
181msgid "Search"
175msgstr "Search"
182msgstr "Search"
@@ -206,15 +213,23 @@ msgstr "Add a review"
206msgid "Send"
213msgid "Send"
207msgstr "Send"
214msgstr "Send"
208
215
216+#: qml/Dash/PullToRefreshScopeStyle.qml:55
217+msgid "Pull to refresh…"
218+msgstr "Pull to refresh…"
219+
220+#: qml/Dash/PullToRefreshScopeStyle.qml:60
221+msgid "Release to refresh…"
222+msgstr "Release to refresh…"
223+
209−#: qml/Dash/ScopesOverview.qml:206
224+#: qml/Dash/ScopesOverview.qml:215
210msgid "Manage Scopes"
225msgid "Manage Scopes"
211msgstr "Manage Scopes"
226msgstr "Manage Scopes"
212
227
213−#: qml/Dash/ScopesOverview.qml:428
228+#: qml/Dash/ScopesOverview.qml:437
214msgid "Done"
229msgid "Done"
215msgstr "Done"
230msgstr "Done"
216
231
217−#: qml/Dash/ScopesOverview.qml:454
232+#: qml/Dash/ScopesOverview.qml:463
218msgid "Store"
233msgid "Store"
219msgstr "Store"
234msgstr "Store"
220
235
@@ -226,9 +241,9 @@ msgstr "Favourites"
226msgid "All"
241msgid "All"
227msgstr "All"
242msgstr "All"
228
243
229−#: qml/Greeter/Greeter.qml:157
244+#: qml/Greeter/Greeter.qml:174
230−msgid "Swipe to unlock"
245+msgid "Unlock"
231−msgstr "Swipe to unlock"
246+msgstr "Unlock"
232
247
233#: qml/Hud/HudParametrizedActionsPage.qml:139
248#: qml/Hud/HudParametrizedActionsPage.qml:139
234msgid "Confirm"
249msgid "Confirm"
@@ -250,51 +265,43 @@ msgstr "Speak Now..."
250msgid "Speaking..."
265msgid "Speaking..."
251msgstr "Speaking..."
266msgstr "Speaking..."
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:108
268+#: qml/Notifications/NotificationMenuItemFactory.qml:116
254msgid "Show password"
269msgid "Show password"
255msgstr "Show password"
270msgstr "Show password"
256
271
257−#: qml/Notifications/NotificationMenuItemFactory.qml:124
258−msgid "Enter SIM PIN"
259−msgstr "Enter SIM PIN"
260−
261−#: qml/Notifications/NotificationMenuItemFactory.qml:125
262−msgid "Sorry, incorrect PIN"
263−msgstr "Sorry, incorrect PIN"
264−
265−#: qml/Panel/ActiveCallHint.qml:77
272+#: qml/Panel/ActiveCallHint.qml:79
266msgid "Tap to return to call..."
273msgid "Tap to return to call..."
267msgstr "Tap to return to call..."
274msgstr "Tap to return to call..."
268
275
269−#: qml/Panel/ActiveCallHint.qml:90
276+#: qml/Panel/ActiveCallHint.qml:92
270msgid "Conference"
277msgid "Conference"
271msgstr "Conference"
278msgstr "Conference"
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:600
280+#: qml/Panel/Indicators/MenuItemFactory.qml:615
274msgid "Nothing is playing"
281msgid "Nothing is playing"
275msgstr "Nothing is playing"
282msgstr "Nothing is playing"
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:748
284+#: qml/Panel/Indicators/MenuItemFactory.qml:763
278msgid "In queue…"
285msgid "In queue…"
279msgstr "In queue…"
286msgstr "In queue…"
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:752
288+#: qml/Panel/Indicators/MenuItemFactory.qml:767
282msgid "Downloading"
289msgid "Downloading"
283msgstr "Downloading"
290msgstr "Downloading"
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:754
292+#: qml/Panel/Indicators/MenuItemFactory.qml:769
286msgid "Paused, tap to resume"
293msgid "Paused, tap to resume"
287msgstr "Paused, tap to resume"
294msgstr "Paused, tap to resume"
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:756
296+#: qml/Panel/Indicators/MenuItemFactory.qml:771
290msgid "Canceled"
297msgid "Canceled"
291msgstr "Cancelled"
298msgstr "Cancelled"
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:758
300+#: qml/Panel/Indicators/MenuItemFactory.qml:773
294msgid "Finished"
301msgid "Finished"
295msgstr "Finished"
302msgstr "Finished"
296
303
297−#: qml/Panel/Indicators/MenuItemFactory.qml:760
304+#: qml/Panel/Indicators/MenuItemFactory.qml:775
298msgid "Failed, tap to retry"
305msgid "Failed, tap to retry"
299msgstr "Failed, tap to retry"
306msgstr "Failed, tap to retry"
300
307
@@ -306,45 +313,49 @@ msgstr "Unlock SIM"
306msgid "Roaming"
313msgid "Roaming"
307msgstr "Roaming"
314msgstr "Roaming"
308
315
309−#: qml/Shell.qml:320
316+#: qml/Shell.qml:381
310−msgid "Enter your passphrase"
317+msgid "Enter passphrase"
311−msgstr "Enter your passphrase"
318+msgstr "Enter passphrase"
312
319
313−#: qml/Shell.qml:321
320+#: qml/Shell.qml:382
314msgid "Sorry, incorrect passphrase"
321msgid "Sorry, incorrect passphrase"
315msgstr "Sorry, incorrect passphrase"
322msgstr "Sorry, incorrect passphrase"
316
323
317−#: qml/Shell.qml:323
324+#: qml/Shell.qml:383
325+msgid "Please re-enter"
326+msgstr "Please re-enter"
327+
328+#: qml/Shell.qml:385
318−msgid "Enter your passcode"
329+msgid "Enter passcode"
319−msgstr "Enter your passcode"
330+msgstr "Enter passcode"
320
331
321−#: qml/Shell.qml:324
332+#: qml/Shell.qml:386
322msgid "Sorry, incorrect passcode"
333msgid "Sorry, incorrect passcode"
323msgstr "Sorry, incorrect passcode"
334msgstr "Sorry, incorrect passcode"
324
335
325−#: qml/Shell.qml:327
336+#: qml/Shell.qml:389
326#, qt-format
337#, qt-format
327−msgid "Enter your %1"
338+msgid "Enter %1"
328−msgstr "Enter your %1"
339+msgstr "Enter %1"
329
340
330−#: qml/Shell.qml:328
341+#: qml/Shell.qml:390
331#, qt-format
342#, qt-format
332msgid "Sorry, incorrect %1"
343msgid "Sorry, incorrect %1"
333msgstr "Sorry, incorrect %1"
344msgstr "Sorry, incorrect %1"
334
345
335−#: qml/Shell.qml:363
346+#: qml/Shell.qml:431
336msgid "Sorry, incorrect passphrase."
347msgid "Sorry, incorrect passphrase."
337msgstr "Sorry, incorrect passphrase."
348msgstr "Sorry, incorrect passphrase."
338
349
339−#: qml/Shell.qml:364
350+#: qml/Shell.qml:432
340msgid "Sorry, incorrect passcode."
351msgid "Sorry, incorrect passcode."
341msgstr "Sorry, incorrect passcode."
352msgstr "Sorry, incorrect passcode."
342
353
343−#: qml/Shell.qml:365
354+#: qml/Shell.qml:433
344msgid "This will be your last attempt."
355msgid "This will be your last attempt."
345msgstr "This will be your last attempt."
356msgstr "This will be your last attempt."
346
357
347−#: qml/Shell.qml:367
358+#: qml/Shell.qml:435
348msgid ""
359msgid ""
349"If passphrase is entered incorrectly, your phone will conduct a factory "
360"If passphrase is entered incorrectly, your phone will conduct a factory "
350"reset and all personal data will be deleted."
361"reset and all personal data will be deleted."
@@ -352,13 +363,10 @@ msgstr ""
352"If passphrase is entered incorrectly, your phone will conduct a factory "
363"If passphrase is entered incorrectly, your phone will conduct a factory "
353"reset and all personal data will be deleted."
364"reset and all personal data will be deleted."
354
365
355−#: qml/Shell.qml:368
366+#: qml/Shell.qml:436
356msgid ""
367msgid ""
357"If passcode is entered incorrectly, your phone will conduct a factory reset "
368"If passcode is entered incorrectly, your phone will conduct a factory reset "
358"and all personal data will be deleted."
369"and all personal data will be deleted."
359msgstr ""
370msgstr ""
360"If passcode is entered incorrectly, your phone will conduct a factory reset "
371"If passcode is entered incorrectly, your phone will conduct a factory reset "
361"and all personal data will be deleted."
372"and all personal data will be deleted."
362−
363−#~ msgid "Manage Dash"
364−#~ msgstr "Manage Dash"
po/eo.po+90−79
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr ""
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr ""
32msgstr ""
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr ""
55msgstr ""
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr ""
59msgstr ""
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr ""
64msgstr ""
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr ""
69msgstr ""
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr ""
73msgstr ""
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr ""
77msgstr ""
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr ""
81msgstr ""
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr ""
85msgstr ""
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr ""
89msgstr ""
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr ""
95msgstr ""
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr ""
99msgstr ""
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr ""
103msgstr ""
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr ""
107msgstr ""
88
108
@@ -114,58 +134,45 @@ msgstr ""
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr ""
135msgstr ""
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr ""
139msgstr ""
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
143msgstr ""
124
144
125−#: qml/Components/EdgeDemo.qml:226
145+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
146msgid "Well done"
127msgstr ""
147msgstr ""
128
148
129−#: qml/Components/EdgeDemo.qml:227
149+#: qml/Components/EdgeDemo.qml:230
130msgid ""
150msgid ""
131"You have now mastered the edge gestures and can start using the "
151"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
152"phone<br><br>Tap on the screen to start"
133msgstr ""
153msgstr ""
134
154
135−#: qml/Components/Lockscreen.qml:167
155+#: qml/Components/Lockscreen.qml:223
136−msgid "Please wait"
156+msgid "Return to Call"
137−msgstr ""
138−
139−#: qml/Components/Lockscreen.qml:172
140−msgid "Too many incorrect attempts"
141msgstr ""
157msgstr ""
142
158
143−#: qml/Components/Lockscreen.qml:206
159+#: qml/Components/Lockscreen.qml:223
144msgid "Emergency Call"
160msgid "Emergency Call"
145msgstr ""
161msgstr ""
146
162
147−#: qml/Components/Lockscreen.qml:226
163+#: qml/Components/Lockscreen.qml:255
148msgid "OK"
164msgid "OK"
149msgstr ""
165msgstr ""
150
166
151−#: qml/Components/PassphraseLockscreen.qml:61
152−#, qt-format
153−msgid "Hello %1"
154−msgstr ""
155−
156−#: qml/Components/PassphraseLockscreen.qml:61
157−msgid "Hello"
158−msgstr ""
159−
160−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
167+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
161msgid "See less"
168msgid "See less"
162msgstr ""
169msgstr ""
163
170
164−#: qml/Dash/GenericScopeView.qml:411
171+#: qml/Dash/GenericScopeView.qml:434
165msgid "See all"
172msgid "See all"
166msgstr ""
173msgstr ""
167
174
168−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
169#: qml/Panel/SearchIndicator.qml:27
176#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
177msgid "Search"
171msgstr ""
178msgstr ""
@@ -202,15 +209,23 @@ msgstr ""
202msgid "Send"
209msgid "Send"
203msgstr ""
210msgstr ""
204
211
212+#: qml/Dash/PullToRefreshScopeStyle.qml:55
213+msgid "Pull to refresh…"
214+msgstr ""
215+
216+#: qml/Dash/PullToRefreshScopeStyle.qml:60
217+msgid "Release to refresh…"
218+msgstr ""
219+
205−#: qml/Dash/ScopesOverview.qml:206
220+#: qml/Dash/ScopesOverview.qml:215
206msgid "Manage Scopes"
221msgid "Manage Scopes"
207msgstr ""
222msgstr ""
208
223
209−#: qml/Dash/ScopesOverview.qml:428
224+#: qml/Dash/ScopesOverview.qml:437
210msgid "Done"
225msgid "Done"
211msgstr ""
226msgstr ""
212
227
213−#: qml/Dash/ScopesOverview.qml:454
228+#: qml/Dash/ScopesOverview.qml:463
214msgid "Store"
229msgid "Store"
215msgstr ""
230msgstr ""
216
231
@@ -222,8 +237,8 @@ msgstr ""
222msgid "All"
237msgid "All"
223msgstr ""
238msgstr ""
224
239
225−#: qml/Greeter/Greeter.qml:157
240+#: qml/Greeter/Greeter.qml:174
226−msgid "Swipe to unlock"
241+msgid "Unlock"
227msgstr ""
242msgstr ""
228
243
229#: qml/Hud/HudParametrizedActionsPage.qml:139
244#: qml/Hud/HudParametrizedActionsPage.qml:139
@@ -246,51 +261,43 @@ msgstr ""
246msgid "Speaking..."
261msgid "Speaking..."
247msgstr ""
262msgstr ""
248
263
249−#: qml/Notifications/NotificationMenuItemFactory.qml:108
264+#: qml/Notifications/NotificationMenuItemFactory.qml:116
250msgid "Show password"
265msgid "Show password"
251msgstr ""
266msgstr ""
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:124
254−msgid "Enter SIM PIN"
255−msgstr ""
256−
257−#: qml/Notifications/NotificationMenuItemFactory.qml:125
258−msgid "Sorry, incorrect PIN"
259−msgstr ""
260−
261−#: qml/Panel/ActiveCallHint.qml:77
268+#: qml/Panel/ActiveCallHint.qml:79
262msgid "Tap to return to call..."
269msgid "Tap to return to call..."
263msgstr ""
270msgstr ""
264
271
265−#: qml/Panel/ActiveCallHint.qml:90
272+#: qml/Panel/ActiveCallHint.qml:92
266msgid "Conference"
273msgid "Conference"
267msgstr ""
274msgstr ""
268
275
269−#: qml/Panel/Indicators/MenuItemFactory.qml:600
276+#: qml/Panel/Indicators/MenuItemFactory.qml:615
270msgid "Nothing is playing"
277msgid "Nothing is playing"
271msgstr ""
278msgstr ""
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:748
280+#: qml/Panel/Indicators/MenuItemFactory.qml:763
274msgid "In queue…"
281msgid "In queue…"
275msgstr ""
282msgstr ""
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:752
284+#: qml/Panel/Indicators/MenuItemFactory.qml:767
278msgid "Downloading"
285msgid "Downloading"
279msgstr ""
286msgstr ""
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:754
288+#: qml/Panel/Indicators/MenuItemFactory.qml:769
282msgid "Paused, tap to resume"
289msgid "Paused, tap to resume"
283msgstr ""
290msgstr ""
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:756
292+#: qml/Panel/Indicators/MenuItemFactory.qml:771
286msgid "Canceled"
293msgid "Canceled"
287msgstr ""
294msgstr ""
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:758
296+#: qml/Panel/Indicators/MenuItemFactory.qml:773
290msgid "Finished"
297msgid "Finished"
291msgstr ""
298msgstr ""
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:760
300+#: qml/Panel/Indicators/MenuItemFactory.qml:775
294msgid "Failed, tap to retry"
301msgid "Failed, tap to retry"
295msgstr ""
302msgstr ""
296
303
@@ -302,51 +309,55 @@ msgstr ""
302msgid "Roaming"
309msgid "Roaming"
303msgstr ""
310msgstr ""
304
311
305−#: qml/Shell.qml:320
312+#: qml/Shell.qml:381
306−msgid "Enter your passphrase"
313+msgid "Enter passphrase"
307msgstr ""
314msgstr ""
308
315
309−#: qml/Shell.qml:321
316+#: qml/Shell.qml:382
310msgid "Sorry, incorrect passphrase"
317msgid "Sorry, incorrect passphrase"
311msgstr ""
318msgstr ""
312
319
313−#: qml/Shell.qml:323
320+#: qml/Shell.qml:383
321+msgid "Please re-enter"
322+msgstr ""
323+
324+#: qml/Shell.qml:385
314−msgid "Enter your passcode"
325+msgid "Enter passcode"
315msgstr ""
326msgstr ""
316
327
317−#: qml/Shell.qml:324
328+#: qml/Shell.qml:386
318msgid "Sorry, incorrect passcode"
329msgid "Sorry, incorrect passcode"
319msgstr ""
330msgstr ""
320
331
321−#: qml/Shell.qml:327
332+#: qml/Shell.qml:389
322#, qt-format
333#, qt-format
323−msgid "Enter your %1"
334+msgid "Enter %1"
324msgstr ""
335msgstr ""
325
336
326−#: qml/Shell.qml:328
337+#: qml/Shell.qml:390
327#, qt-format
338#, qt-format
328msgid "Sorry, incorrect %1"
339msgid "Sorry, incorrect %1"
329msgstr ""
340msgstr ""
330
341
331−#: qml/Shell.qml:363
342+#: qml/Shell.qml:431
332msgid "Sorry, incorrect passphrase."
343msgid "Sorry, incorrect passphrase."
333msgstr ""
344msgstr ""
334
345
335−#: qml/Shell.qml:364
346+#: qml/Shell.qml:432
336msgid "Sorry, incorrect passcode."
347msgid "Sorry, incorrect passcode."
337msgstr ""
348msgstr ""
338
349
339−#: qml/Shell.qml:365
350+#: qml/Shell.qml:433
340msgid "This will be your last attempt."
351msgid "This will be your last attempt."
341msgstr ""
352msgstr ""
342
353
343−#: qml/Shell.qml:367
354+#: qml/Shell.qml:435
344msgid ""
355msgid ""
345"If passphrase is entered incorrectly, your phone will conduct a factory "
356"If passphrase is entered incorrectly, your phone will conduct a factory "
346"reset and all personal data will be deleted."
357"reset and all personal data will be deleted."
347msgstr ""
358msgstr ""
348
359
349−#: qml/Shell.qml:368
360+#: qml/Shell.qml:436
350msgid ""
361msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
362"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
363"and all personal data will be deleted."
po/es.po+104−92
@@ -7,68 +7,92 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-29 20:25+0000\n"
11+"PO-Revision-Date: 2014-11-05 14:59+0000\n"
12"Last-Translator: Víctor R. Ruiz <Unknown>\n"
12"Last-Translator: Víctor R. Ruiz <Unknown>\n"
13"Language-Team: Spanish <es@li.org>\n"
13"Language-Team: Spanish <es@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-30 07:10+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
22msgstr "Contraseña: "
23msgstr "Contraseña: "
23
24
24−#: plugins/Unity/Launcher/launcheritem.cpp:44
25+#: plugins/Unity/Launcher/launcheritem.cpp:45
25−#: plugins/Unity/Launcher/launcheritem.cpp:74
26+#: plugins/Unity/Launcher/launcheritem.cpp:91
26msgid "Pin shortcut"
27msgid "Pin shortcut"
27msgstr "Anclar"
28msgstr "Anclar"
28
29
29−#: plugins/Unity/Launcher/launcheritem.cpp:74
30+#: plugins/Unity/Launcher/launcheritem.cpp:91
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Desanclar"
32msgstr "Desanclar"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Dispositivo bloqueado"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+"Se ha proporcionado una contraseña errónea demasiadas veces. Se ha bloqueado "
42+"el dispositivo."
43+
44+#: qml/Components/DelayedLockscreen.qml:63
45+msgid "You have been locked out due to too many failed passcode attempts."
46+msgstr ""
47+"Se ha bloqueado el dispositivo debido al gran número de intentos fallidos de "
48+"desbloqueo."
49+
50+#: qml/Components/DelayedLockscreen.qml:72
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] "Espere %1 minuto e inténtelo de nuevo..."
55+msgstr[1] "Espere %1 minutos e inténtelo de nuevo..."
56+
57+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
58msgid "Log out"
35msgstr "Cerrar la sesión"
59msgstr "Cerrar la sesión"
36
60
37−#: qml/Components/Dialogs.qml:71
61+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
62msgid "Are you sure you want to log out?"
39msgstr "̉¿Está seguro de que quiere cerrar la sesión?"
63msgstr "̉¿Está seguro de que quiere cerrar la sesión?"
40
64
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
65+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
66+#: qml/Components/Dialogs.qml:126
43msgid "No"
67msgid "No"
44msgstr "No"
68msgstr "No"
45
69
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
70+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
71+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
72msgid "Yes"
49msgstr "Sí"
73msgstr "Sí"
50
74
51−#: qml/Components/Dialogs.qml:94
75+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
76msgid "Shut down"
53msgstr "Apagar"
77msgstr "Apagar"
54
78
55−#: qml/Components/Dialogs.qml:95
79+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
80msgid "Are you sure you want to shut down?"
57msgstr "¿Está seguro de que quiere apagar?"
81msgstr "¿Está seguro de que quiere apagar?"
58
82
59−#: qml/Components/Dialogs.qml:119
83+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
84msgid "Reboot"
61msgstr "Reiniciar"
85msgstr "Reiniciar"
62
86
63−#: qml/Components/Dialogs.qml:120
87+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
65msgstr "¿Esta seguro de que quiere reiniciar?"
89msgstr "¿Esta seguro de que quiere reiniciar?"
66
90
67−#: qml/Components/Dialogs.qml:144
91+#: qml/Components/Dialogs.qml:148
68msgid "Power"
92msgid "Power"
69−msgstr "Encendido"
93+msgstr "Apagar"
70
94
71−#: qml/Components/Dialogs.qml:145
95+#: qml/Components/Dialogs.qml:149
72msgid ""
96msgid ""
73"Are you sure you would like\n"
97"Are you sure you would like\n"
74"to power off?"
98"to power off?"
@@ -76,15 +100,15 @@ msgstr ""
76"¿Está seguro de que quiere\n"
100"¿Está seguro de que quiere\n"
77"apagar?"
101"apagar?"
78
102
79−#: qml/Components/Dialogs.qml:147
103+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
104msgid "Power off"
81msgstr "Apagar"
105msgstr "Apagar"
82
106
83−#: qml/Components/Dialogs.qml:157
107+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
108msgid "Restart"
85msgstr "Reiniciar"
109msgstr "Reiniciar"
86
110
87−#: qml/Components/Dialogs.qml:167
111+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
112msgid "Cancel"
89msgstr "Cancelar"
113msgstr "Cancelar"
90
114
@@ -117,21 +141,21 @@ msgstr "Cerrar"
117msgid "Swipe up again to close the settings screen"
141msgid "Swipe up again to close the settings screen"
118msgstr "Deslice hacia arriba para cerrar la pantalla de configuración"
142msgstr "Deslice hacia arriba para cerrar la pantalla de configuración"
119
143
120−#: qml/Components/EdgeDemo.qml:198
144+#: qml/Components/EdgeDemo.qml:201
121msgid "Left edge"
145msgid "Left edge"
122msgstr "Borde izquierdo"
146msgstr "Borde izquierdo"
123
147
124−#: qml/Components/EdgeDemo.qml:199
148+#: qml/Components/EdgeDemo.qml:202
125msgid "Swipe from the left to reveal the launcher for quick access to apps"
149msgid "Swipe from the left to reveal the launcher for quick access to apps"
126msgstr ""
150msgstr ""
127"Deslice el dedo desde la izquierda para mostrar el lanzador y acceder "
151"Deslice el dedo desde la izquierda para mostrar el lanzador y acceder "
128"rápidamente a las aplicaciones"
152"rápidamente a las aplicaciones"
129
153
130−#: qml/Components/EdgeDemo.qml:226
154+#: qml/Components/EdgeDemo.qml:229
131msgid "Well done"
155msgid "Well done"
132msgstr "Bien hecho"
156msgstr "Bien hecho"
133
157
134−#: qml/Components/EdgeDemo.qml:227
158+#: qml/Components/EdgeDemo.qml:230
135msgid ""
159msgid ""
136"You have now mastered the edge gestures and can start using the "
160"You have now mastered the edge gestures and can start using the "
137"phone<br><br>Tap on the screen to start"
161"phone<br><br>Tap on the screen to start"
@@ -139,40 +163,27 @@ msgstr ""
139"Ahora domina los gestos de los bordes y puede usar el teléfono<br><br>Toque "
163"Ahora domina los gestos de los bordes y puede usar el teléfono<br><br>Toque "
140"la pantalla para comenzar"
164"la pantalla para comenzar"
141
165
142−#: qml/Components/Lockscreen.qml:167
166+#: qml/Components/Lockscreen.qml:223
143−msgid "Please wait"
167+msgid "Return to Call"
144−msgstr "Espere un momento"
168+msgstr "Volver a la llamada"
145−
146−#: qml/Components/Lockscreen.qml:172
147−msgid "Too many incorrect attempts"
148−msgstr "Demasiados intentos incorrectos"
149
169
150−#: qml/Components/Lockscreen.qml:206
170+#: qml/Components/Lockscreen.qml:223
151msgid "Emergency Call"
171msgid "Emergency Call"
152msgstr "Llamada de emergencia"
172msgstr "Llamada de emergencia"
153
173
154−#: qml/Components/Lockscreen.qml:226
174+#: qml/Components/Lockscreen.qml:255
155msgid "OK"
175msgid "OK"
156msgstr "Aceptar"
176msgstr "Aceptar"
157
177
158−#: qml/Components/PassphraseLockscreen.qml:61
159−#, qt-format
160−msgid "Hello %1"
161−msgstr "Hola, %1"
162−
163−#: qml/Components/PassphraseLockscreen.qml:61
164−msgid "Hello"
165−msgstr "Hola"
166−
167−#: qml/Dash/GenericScopeView.qml:364 qml/Dash/GenericScopeView.qml:483
178+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
168msgid "See less"
179msgid "See less"
169msgstr "Ver menos"
180msgstr "Ver menos"
170
181
171−#: qml/Dash/GenericScopeView.qml:364
182+#: qml/Dash/GenericScopeView.qml:434
172msgid "See all"
183msgid "See all"
173msgstr "Ver todo"
184msgstr "Ver todo"
174
185
175−#: qml/Dash/GenericScopeView.qml:427 qml/Dash/PageHeader.qml:258
186+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
176#: qml/Panel/SearchIndicator.qml:27
187#: qml/Panel/SearchIndicator.qml:27
177msgid "Search"
188msgid "Search"
178msgstr "Buscar"
189msgstr "Buscar"
@@ -209,15 +220,23 @@ msgstr "Añadir una reseña"
209msgid "Send"
220msgid "Send"
210msgstr "Enviar"
221msgstr "Enviar"
211
222
223+#: qml/Dash/PullToRefreshScopeStyle.qml:55
224+msgid "Pull to refresh…"
225+msgstr "Deslice para actualizar…"
226+
227+#: qml/Dash/PullToRefreshScopeStyle.qml:60
228+msgid "Release to refresh…"
229+msgstr "Suelte para actualizar…"
230+
212−#: qml/Dash/ScopesOverview.qml:206
231+#: qml/Dash/ScopesOverview.qml:215
213msgid "Manage Scopes"
232msgid "Manage Scopes"
214msgstr "Administrar ámbitos"
233msgstr "Administrar ámbitos"
215
234
216−#: qml/Dash/ScopesOverview.qml:428
235+#: qml/Dash/ScopesOverview.qml:437
217msgid "Done"
236msgid "Done"
218msgstr "Hecho"
237msgstr "Hecho"
219
238
220−#: qml/Dash/ScopesOverview.qml:454
239+#: qml/Dash/ScopesOverview.qml:463
221msgid "Store"
240msgid "Store"
222msgstr "Tienda"
241msgstr "Tienda"
223
242
@@ -229,9 +248,9 @@ msgstr "Favoritos"
229msgid "All"
248msgid "All"
230msgstr "Todo"
249msgstr "Todo"
231
250
232−#: qml/Greeter/Greeter.qml:157
251+#: qml/Greeter/Greeter.qml:174
233−msgid "Swipe to unlock"
252+msgid "Unlock"
234−msgstr "Deslice para desbloquear"
253+msgstr "Desbloquear"
235
254
236#: qml/Hud/HudParametrizedActionsPage.qml:139
255#: qml/Hud/HudParametrizedActionsPage.qml:139
237msgid "Confirm"
256msgid "Confirm"
@@ -253,51 +272,43 @@ msgstr "Hable ahora…"
253msgid "Speaking..."
272msgid "Speaking..."
254msgstr "Hablando…"
273msgstr "Hablando…"
255
274
256−#: qml/Notifications/NotificationMenuItemFactory.qml:108
275+#: qml/Notifications/NotificationMenuItemFactory.qml:116
257msgid "Show password"
276msgid "Show password"
258msgstr "Mostrar contraseña"
277msgstr "Mostrar contraseña"
259
278
260−#: qml/Notifications/NotificationMenuItemFactory.qml:124
261−msgid "Enter SIM PIN"
262−msgstr "Escriba el PIN de la SIM"
263−
264−#: qml/Notifications/NotificationMenuItemFactory.qml:125
265−msgid "Sorry, incorrect PIN"
266−msgstr "El PIN es incorrecto"
267−
268−#: qml/Panel/ActiveCallHint.qml:77
279+#: qml/Panel/ActiveCallHint.qml:79
269msgid "Tap to return to call..."
280msgid "Tap to return to call..."
270msgstr "Toque para volver a llamar..."
281msgstr "Toque para volver a llamar..."
271
282
272−#: qml/Panel/ActiveCallHint.qml:90
283+#: qml/Panel/ActiveCallHint.qml:92
273msgid "Conference"
284msgid "Conference"
274msgstr "Conferencia"
285msgstr "Conferencia"
275
286
276−#: qml/Panel/Indicators/MenuItemFactory.qml:600
287+#: qml/Panel/Indicators/MenuItemFactory.qml:615
277msgid "Nothing is playing"
288msgid "Nothing is playing"
278msgstr "Ningún contenido en reproducción"
289msgstr "Ningún contenido en reproducción"
279
290
280−#: qml/Panel/Indicators/MenuItemFactory.qml:651
291+#: qml/Panel/Indicators/MenuItemFactory.qml:763
281msgid "In queue…"
292msgid "In queue…"
282msgstr "En espera…"
293msgstr "En espera…"
283
294
284−#: qml/Panel/Indicators/MenuItemFactory.qml:655
295+#: qml/Panel/Indicators/MenuItemFactory.qml:767
285msgid "Downloading"
296msgid "Downloading"
286msgstr "Descargando"
297msgstr "Descargando"
287
298
288−#: qml/Panel/Indicators/MenuItemFactory.qml:657
299+#: qml/Panel/Indicators/MenuItemFactory.qml:769
289msgid "Paused, tap to resume"
300msgid "Paused, tap to resume"
290msgstr "Pausado, toque para reanudar"
301msgstr "Pausado, toque para reanudar"
291
302
292−#: qml/Panel/Indicators/MenuItemFactory.qml:659
303+#: qml/Panel/Indicators/MenuItemFactory.qml:771
293msgid "Canceled"
304msgid "Canceled"
294msgstr "Cancelado"
305msgstr "Cancelado"
295
306
296−#: qml/Panel/Indicators/MenuItemFactory.qml:661
307+#: qml/Panel/Indicators/MenuItemFactory.qml:773
297msgid "Finished"
308msgid "Finished"
298msgstr "Finalizado"
309msgstr "Finalizado"
299
310
300−#: qml/Panel/Indicators/MenuItemFactory.qml:663
311+#: qml/Panel/Indicators/MenuItemFactory.qml:775
301msgid "Failed, tap to retry"
312msgid "Failed, tap to retry"
302msgstr "Falló, toque para reintentar"
313msgstr "Falló, toque para reintentar"
303
314
@@ -309,45 +320,49 @@ msgstr "Desbloquear SIM"
309msgid "Roaming"
320msgid "Roaming"
310msgstr "Itinerancia"
321msgstr "Itinerancia"
311
322
312−#: qml/Shell.qml:292
323+#: qml/Shell.qml:381
313−msgid "Enter your passphrase"
324+msgid "Enter passphrase"
314−msgstr "Escriba su contraseña"
325+msgstr "Introduzca la contraseña"
315
326
316−#: qml/Shell.qml:293
327+#: qml/Shell.qml:382
317msgid "Sorry, incorrect passphrase"
328msgid "Sorry, incorrect passphrase"
318msgstr "La contraseña es incorrecta"
329msgstr "La contraseña es incorrecta"
319
330
320−#: qml/Shell.qml:295
331+#: qml/Shell.qml:383
321−msgid "Enter your passcode"
332+msgid "Please re-enter"
322−msgstr "Escriba su código de acceso"
333+msgstr "Reintroduzca"
323
334
324−#: qml/Shell.qml:296
335+#: qml/Shell.qml:385
336+msgid "Enter passcode"
337+msgstr "Introduzca el código"
338+
339+#: qml/Shell.qml:386
325msgid "Sorry, incorrect passcode"
340msgid "Sorry, incorrect passcode"
326msgstr "El código es incorrecto"
341msgstr "El código es incorrecto"
327
342
328−#: qml/Shell.qml:299
343+#: qml/Shell.qml:389
329#, qt-format
344#, qt-format
330−msgid "Enter your %1"
345+msgid "Enter %1"
331−msgstr "Introduzca su %1"
346+msgstr "Introduzca %1"
332
347
333−#: qml/Shell.qml:300
348+#: qml/Shell.qml:390
334#, qt-format
349#, qt-format
335msgid "Sorry, incorrect %1"
350msgid "Sorry, incorrect %1"
336msgstr "Incorrecto (%1)"
351msgstr "Incorrecto (%1)"
337
352
338−#: qml/Shell.qml:335
353+#: qml/Shell.qml:431
339msgid "Sorry, incorrect passphrase."
354msgid "Sorry, incorrect passphrase."
340msgstr "La contraseña es incorrecta."
355msgstr "La contraseña es incorrecta."
341
356
342−#: qml/Shell.qml:336
357+#: qml/Shell.qml:432
343msgid "Sorry, incorrect passcode."
358msgid "Sorry, incorrect passcode."
344msgstr "Código de acceso incorrecto."
359msgstr "Código de acceso incorrecto."
345
360
346−#: qml/Shell.qml:337
361+#: qml/Shell.qml:433
347msgid "This will be your last attempt."
362msgid "This will be your last attempt."
348msgstr "Este será su último intento."
363msgstr "Este será su último intento."
349
364
350−#: qml/Shell.qml:339
365+#: qml/Shell.qml:435
351msgid ""
366msgid ""
352"If passphrase is entered incorrectly, your phone will conduct a factory "
367"If passphrase is entered incorrectly, your phone will conduct a factory "
353"reset and all personal data will be deleted."
368"reset and all personal data will be deleted."
@@ -355,13 +370,10 @@ msgstr ""
355"Si se introduce la frase incorrectamente, el teléfono volverá a la "
370"Si se introduce la frase incorrectamente, el teléfono volverá a la "
356"configuración de fábrica y se perderán todos los datos personales."
371"configuración de fábrica y se perderán todos los datos personales."
357
372
358−#: qml/Shell.qml:340
373+#: qml/Shell.qml:436
359msgid ""
374msgid ""
360"If passcode is entered incorrectly, your phone will conduct a factory reset "
375"If passcode is entered incorrectly, your phone will conduct a factory reset "
361"and all personal data will be deleted."
376"and all personal data will be deleted."
362msgstr ""
377msgstr ""
363"Si se introduce el código incorrectamente, el teléfono volverá a la "
378"Si se introduce el código incorrectamente, el teléfono volverá a la "
364"configuración de fábrica y se perderán todos los datos personales."
379"configuración de fábrica y se perderán todos los datos personales."
365−
366−#~ msgid "Manage Dash"
367−#~ msgstr "Gestionar tablero"
po/eu.po+100−89
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-27 12:47+0000\n"
11+"PO-Revision-Date: 2014-10-07 19:21+0000\n"
12"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
12"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
13"Language-Team: Basque <eu@li.org>\n"
13"Language-Team: Basque <eu@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:39+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,81 @@ msgstr "Ainguratu lasterbidea"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Askatu lasterbidea"
32msgstr "Askatu lasterbidea"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Gailua blokeatuta"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+"Gailua blokeatu da, pasaesaldia sartzeko saiakera gehiegi hutsegin "
42+"dituzulako."
43+
44+#: qml/Components/DelayedLockscreen.qml:63
45+msgid "You have been locked out due to too many failed passcode attempts."
46+msgstr ""
47+"Gailua blokeatu da, pasakodea sartzeko saiakera gehiegi hutsegin dituzulako."
48+
49+#: qml/Components/DelayedLockscreen.qml:72
50+#, qt-format
51+msgid "Please wait %1 minute and then try again…"
52+msgid_plural "Please wait %1 minutes and then try again…"
53+msgstr[0] "Itxaron minutu %1ez eta saiatu berriro…"
54+msgstr[1] "Itxaron %1 minutuz eta saiatu berriro…"
55+
56+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
57msgid "Log out"
35msgstr "Amaitu saioa"
58msgstr "Amaitu saioa"
36
59
37−#: qml/Components/Dialogs.qml:71
60+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
61msgid "Are you sure you want to log out?"
39msgstr "Ziur saioa amaitu nahi duzula?"
62msgstr "Ziur saioa amaitu nahi duzula?"
40
63
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
64+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
65+#: qml/Components/Dialogs.qml:126
43msgid "No"
66msgid "No"
44msgstr "Ez"
67msgstr "Ez"
45
68
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
69+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
70+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
71msgid "Yes"
49msgstr "Bai"
72msgstr "Bai"
50
73
51−#: qml/Components/Dialogs.qml:94
74+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
75msgid "Shut down"
53msgstr "Itzali"
76msgstr "Itzali"
54
77
55−#: qml/Components/Dialogs.qml:95
78+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
79msgid "Are you sure you want to shut down?"
57msgstr "Ziur itzali nahi duzula?"
80msgstr "Ziur itzali nahi duzula?"
58
81
59−#: qml/Components/Dialogs.qml:119
82+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
83msgid "Reboot"
61msgstr "Berrabiarazi"
84msgstr "Berrabiarazi"
62
85
63−#: qml/Components/Dialogs.qml:120
86+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
87msgid "Are you sure you want to reboot?"
65msgstr "Ziur berrabiarazi nahi duzula?"
88msgstr "Ziur berrabiarazi nahi duzula?"
66
89
67−#: qml/Components/Dialogs.qml:144
90+#: qml/Components/Dialogs.qml:148
68msgid "Power"
91msgid "Power"
69msgstr "Piztu/itzali"
92msgstr "Piztu/itzali"
70
93
71−#: qml/Components/Dialogs.qml:145
94+#: qml/Components/Dialogs.qml:149
72msgid ""
95msgid ""
73"Are you sure you would like\n"
96"Are you sure you would like\n"
74"to power off?"
97"to power off?"
75msgstr "Ziur itzali nahi duzula?"
98msgstr "Ziur itzali nahi duzula?"
76
99
77−#: qml/Components/Dialogs.qml:147
100+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
101msgid "Power off"
79msgstr "Itzali"
102msgstr "Itzali"
80
103
81−#: qml/Components/Dialogs.qml:157
104+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
105msgid "Restart"
83msgstr "Berrabiarazi"
106msgstr "Berrabiarazi"
84
107
85−#: qml/Components/Dialogs.qml:167
108+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
109msgid "Cancel"
87msgstr "Utzi"
110msgstr "Utzi"
88
111
@@ -115,21 +138,21 @@ msgstr "Itxi"
115msgid "Swipe up again to close the settings screen"
138msgid "Swipe up again to close the settings screen"
116msgstr "Pasatu hatza berriro gora ezarpenen leihoa ixteko"
139msgstr "Pasatu hatza berriro gora ezarpenen leihoa ixteko"
117
140
118−#: qml/Components/EdgeDemo.qml:198
141+#: qml/Components/EdgeDemo.qml:201
119msgid "Left edge"
142msgid "Left edge"
120msgstr "Ezkerreko ertza"
143msgstr "Ezkerreko ertza"
121
144
122−#: qml/Components/EdgeDemo.qml:199
145+#: qml/Components/EdgeDemo.qml:202
123msgid "Swipe from the left to reveal the launcher for quick access to apps"
146msgid "Swipe from the left to reveal the launcher for quick access to apps"
124msgstr ""
147msgstr ""
125"Pasatu hatza ezkerretik abiarazlea erakutsi eta aplikazioak berehala eskura "
148"Pasatu hatza ezkerretik abiarazlea erakutsi eta aplikazioak berehala eskura "
126"izateko"
149"izateko"
127
150
128−#: qml/Components/EdgeDemo.qml:226
151+#: qml/Components/EdgeDemo.qml:229
129msgid "Well done"
152msgid "Well done"
130msgstr "Bikain"
153msgstr "Bikain"
131
154
132−#: qml/Components/EdgeDemo.qml:227
155+#: qml/Components/EdgeDemo.qml:230
133msgid ""
156msgid ""
134"You have now mastered the edge gestures and can start using the "
157"You have now mastered the edge gestures and can start using the "
135"phone<br><br>Tap on the screen to start"
158"phone<br><br>Tap on the screen to start"
@@ -137,40 +160,27 @@ msgstr ""
137"Jadanik ezagutzen dituzu ertzetako keinuak, eta mugikorra erabiltzen has "
160"Jadanik ezagutzen dituzu ertzetako keinuak, eta mugikorra erabiltzen has "
138"zaitezke<br><br>Sakatu pantailan hasteko"
161"zaitezke<br><br>Sakatu pantailan hasteko"
139
162
140−#: qml/Components/Lockscreen.qml:167
163+#: qml/Components/Lockscreen.qml:223
141−msgid "Please wait"
164+msgid "Return to Call"
142−msgstr "Itxaron"
165+msgstr ""
143−
144−#: qml/Components/Lockscreen.qml:172
145−msgid "Too many incorrect attempts"
146−msgstr "Okerreko saiakera gehiegi"
147
166
148−#: qml/Components/Lockscreen.qml:206
167+#: qml/Components/Lockscreen.qml:223
149msgid "Emergency Call"
168msgid "Emergency Call"
150msgstr "Larrialdi-deia"
169msgstr "Larrialdi-deia"
151
170
152−#: qml/Components/Lockscreen.qml:226
171+#: qml/Components/Lockscreen.qml:255
153msgid "OK"
172msgid "OK"
154msgstr "Ados"
173msgstr "Ados"
155
174
156−#: qml/Components/PassphraseLockscreen.qml:61
157−#, qt-format
158−msgid "Hello %1"
159−msgstr "Kaixo %1"
160−
161−#: qml/Components/PassphraseLockscreen.qml:61
162−msgid "Hello"
163−msgstr "Kaixo"
164−
165−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
175+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
166msgid "See less"
176msgid "See less"
167msgstr "Ikusi gutxiago"
177msgstr "Ikusi gutxiago"
168
178
169−#: qml/Dash/GenericScopeView.qml:411
179+#: qml/Dash/GenericScopeView.qml:434
170msgid "See all"
180msgid "See all"
171msgstr "Ikusi guztiak"
181msgstr "Ikusi guztiak"
172
182
173−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
183+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
174#: qml/Panel/SearchIndicator.qml:27
184#: qml/Panel/SearchIndicator.qml:27
175msgid "Search"
185msgid "Search"
176msgstr "Bilatu"
186msgstr "Bilatu"
@@ -207,15 +217,23 @@ msgstr "Gehitu kritika"
207msgid "Send"
217msgid "Send"
208msgstr "Bidali"
218msgstr "Bidali"
209
219
220+#: qml/Dash/PullToRefreshScopeStyle.qml:55
221+msgid "Pull to refresh…"
222+msgstr "Tiratu freskatzeko…"
223+
224+#: qml/Dash/PullToRefreshScopeStyle.qml:60
225+msgid "Release to refresh…"
226+msgstr "Askatu freskatzeko…"
227+
210−#: qml/Dash/ScopesOverview.qml:206
228+#: qml/Dash/ScopesOverview.qml:215
211msgid "Manage Scopes"
229msgid "Manage Scopes"
212msgstr "Kudeatu eremuak"
230msgstr "Kudeatu eremuak"
213
231
214−#: qml/Dash/ScopesOverview.qml:428
232+#: qml/Dash/ScopesOverview.qml:437
215msgid "Done"
233msgid "Done"
216msgstr "Eginda"
234msgstr "Eginda"
217
235
218−#: qml/Dash/ScopesOverview.qml:454
236+#: qml/Dash/ScopesOverview.qml:463
219msgid "Store"
237msgid "Store"
220msgstr "Denda"
238msgstr "Denda"
221
239
@@ -227,9 +245,9 @@ msgstr "Gogokoak"
227msgid "All"
245msgid "All"
228msgstr "Guztiak"
246msgstr "Guztiak"
229
247
230−#: qml/Greeter/Greeter.qml:157
248+#: qml/Greeter/Greeter.qml:174
231−msgid "Swipe to unlock"
249+msgid "Unlock"
232−msgstr "Pasatu hatza desblokeatzeko"
250+msgstr "Desblokeatu"
233
251
234#: qml/Hud/HudParametrizedActionsPage.qml:139
252#: qml/Hud/HudParametrizedActionsPage.qml:139
235msgid "Confirm"
253msgid "Confirm"
@@ -251,51 +269,43 @@ msgstr "Hitz egin orain..."
251msgid "Speaking..."
269msgid "Speaking..."
252msgstr "Hitz egiten..."
270msgstr "Hitz egiten..."
253
271
254−#: qml/Notifications/NotificationMenuItemFactory.qml:108
272+#: qml/Notifications/NotificationMenuItemFactory.qml:116
255msgid "Show password"
273msgid "Show password"
256msgstr "Erakutsi pasahitza"
274msgstr "Erakutsi pasahitza"
257
275
258−#: qml/Notifications/NotificationMenuItemFactory.qml:124
259−msgid "Enter SIM PIN"
260−msgstr "Sartu SIMaren PINa"
261−
262−#: qml/Notifications/NotificationMenuItemFactory.qml:125
263−msgid "Sorry, incorrect PIN"
264−msgstr "Sentitzen dugu, PINa okerrekoa da"
265−
266−#: qml/Panel/ActiveCallHint.qml:77
276+#: qml/Panel/ActiveCallHint.qml:79
267msgid "Tap to return to call..."
277msgid "Tap to return to call..."
268msgstr "Sakatu deira itzultzeko..."
278msgstr "Sakatu deira itzultzeko..."
269
279
270−#: qml/Panel/ActiveCallHint.qml:90
280+#: qml/Panel/ActiveCallHint.qml:92
271msgid "Conference"
281msgid "Conference"
272msgstr "Konferentzia"
282msgstr "Konferentzia"
273
283
274−#: qml/Panel/Indicators/MenuItemFactory.qml:600
284+#: qml/Panel/Indicators/MenuItemFactory.qml:615
275msgid "Nothing is playing"
285msgid "Nothing is playing"
276msgstr "Ez dago ezer erreproduzitzen"
286msgstr "Ez dago ezer erreproduzitzen"
277
287
278−#: qml/Panel/Indicators/MenuItemFactory.qml:748
288+#: qml/Panel/Indicators/MenuItemFactory.qml:763
279msgid "In queue…"
289msgid "In queue…"
280msgstr "Ilaran..."
290msgstr "Ilaran..."
281
291
282−#: qml/Panel/Indicators/MenuItemFactory.qml:752
292+#: qml/Panel/Indicators/MenuItemFactory.qml:767
283msgid "Downloading"
293msgid "Downloading"
284msgstr "Deskargatzen"
294msgstr "Deskargatzen"
285
295
286−#: qml/Panel/Indicators/MenuItemFactory.qml:754
296+#: qml/Panel/Indicators/MenuItemFactory.qml:769
287msgid "Paused, tap to resume"
297msgid "Paused, tap to resume"
288msgstr "Pausatuta, sakatu jarraitzeko"
298msgstr "Pausatuta, sakatu jarraitzeko"
289
299
290−#: qml/Panel/Indicators/MenuItemFactory.qml:756
300+#: qml/Panel/Indicators/MenuItemFactory.qml:771
291msgid "Canceled"
301msgid "Canceled"
292msgstr "Utzita"
302msgstr "Utzita"
293
303
294−#: qml/Panel/Indicators/MenuItemFactory.qml:758
304+#: qml/Panel/Indicators/MenuItemFactory.qml:773
295msgid "Finished"
305msgid "Finished"
296msgstr "Amaituta"
306msgstr "Amaituta"
297
307
298−#: qml/Panel/Indicators/MenuItemFactory.qml:760
308+#: qml/Panel/Indicators/MenuItemFactory.qml:775
299msgid "Failed, tap to retry"
309msgid "Failed, tap to retry"
300msgstr "Huts egin du, sakatu berriro saiatzeko"
310msgstr "Huts egin du, sakatu berriro saiatzeko"
301
311
@@ -307,45 +317,49 @@ msgstr "Desblokeatu SIMa"
307msgid "Roaming"
317msgid "Roaming"
308msgstr "Ibiltaritza"
318msgstr "Ibiltaritza"
309
319
310−#: qml/Shell.qml:320
320+#: qml/Shell.qml:381
311−msgid "Enter your passphrase"
321+msgid "Enter passphrase"
312msgstr "Sartu pasaesaldia"
322msgstr "Sartu pasaesaldia"
313
323
314−#: qml/Shell.qml:321
324+#: qml/Shell.qml:382
315msgid "Sorry, incorrect passphrase"
325msgid "Sorry, incorrect passphrase"
316msgstr "Sentitzen dugu, pasaesaldia okerrekoa da"
326msgstr "Sentitzen dugu, pasaesaldia okerrekoa da"
317
327
318−#: qml/Shell.qml:323
328+#: qml/Shell.qml:383
329+msgid "Please re-enter"
330+msgstr "Errepikatu"
331+
332+#: qml/Shell.qml:385
319−msgid "Enter your passcode"
333+msgid "Enter passcode"
320msgstr "Sartu pasakodea"
334msgstr "Sartu pasakodea"
321
335
322−#: qml/Shell.qml:324
336+#: qml/Shell.qml:386
323msgid "Sorry, incorrect passcode"
337msgid "Sorry, incorrect passcode"
324−msgstr "Sentitzen dugu, pasakodea okerrekoa da"
338+msgstr "Sentitzen dugu, pasakodea okerra da"
325
339
326−#: qml/Shell.qml:327
340+#: qml/Shell.qml:389
327#, qt-format
341#, qt-format
328−msgid "Enter your %1"
342+msgid "Enter %1"
329msgstr "Sartu %1"
343msgstr "Sartu %1"
330
344
331−#: qml/Shell.qml:328
345+#: qml/Shell.qml:390
332#, qt-format
346#, qt-format
333msgid "Sorry, incorrect %1"
347msgid "Sorry, incorrect %1"
334−msgstr "Sentitzen dugu, %1 okerrekoa da"
348+msgstr "Sentitzen dugu, %1 okerra da"
335
349
336−#: qml/Shell.qml:363
350+#: qml/Shell.qml:431
337msgid "Sorry, incorrect passphrase."
351msgid "Sorry, incorrect passphrase."
338−msgstr "Sentitzen dugu, pasaesaldia okerrekoa da."
352+msgstr "Sentitzen dugu, pasaesaldia okerra da."
339
353
340−#: qml/Shell.qml:364
354+#: qml/Shell.qml:432
341msgid "Sorry, incorrect passcode."
355msgid "Sorry, incorrect passcode."
342−msgstr "Sentitzen dugu, pasakodea okerrekoa da."
356+msgstr "Sentitzen dugu, pasakodea okerra da."
343
357
344−#: qml/Shell.qml:365
358+#: qml/Shell.qml:433
345msgid "This will be your last attempt."
359msgid "This will be your last attempt."
346msgstr "Hau duzu azken saiakera."
360msgstr "Hau duzu azken saiakera."
347
361
348−#: qml/Shell.qml:367
362+#: qml/Shell.qml:435
349msgid ""
363msgid ""
350"If passphrase is entered incorrectly, your phone will conduct a factory "
364"If passphrase is entered incorrectly, your phone will conduct a factory "
351"reset and all personal data will be deleted."
365"reset and all personal data will be deleted."
@@ -353,13 +367,10 @@ msgstr ""
353"Okerreko pasaesaldia sartzen baduzu, telefonoaren jatorrizko ezarpenak "
367"Okerreko pasaesaldia sartzen baduzu, telefonoaren jatorrizko ezarpenak "
354"berrezarri eta datu pertsonal guztiak ezabatuko dira."
368"berrezarri eta datu pertsonal guztiak ezabatuko dira."
355
369
356−#: qml/Shell.qml:368
370+#: qml/Shell.qml:436
357msgid ""
371msgid ""
358"If passcode is entered incorrectly, your phone will conduct a factory reset "
372"If passcode is entered incorrectly, your phone will conduct a factory reset "
359"and all personal data will be deleted."
373"and all personal data will be deleted."
360msgstr ""
374msgstr ""
361"Okerreko pasakodea sartzen baduzu, telefonoaren jatorrizko ezarpenak "
375"Okerreko pasakodea sartzen baduzu, telefonoaren jatorrizko ezarpenak "
362"berrezarri eta datu pertsonal guztiak ezabatuko dira."
376"berrezarri eta datu pertsonal guztiak ezabatuko dira."
363−
364−#~ msgid "Manage Dash"
365−#~ msgstr "Kudeatu abio-leihoa"
po/fa.po+98−90
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-21 10:43+0000\n"
11+"PO-Revision-Date: 2014-10-11 23:41+0000\n"
12"Last-Translator: Danial Behzadi <dani.behzi@gmail.com>\n"
12"Last-Translator: Danial Behzadi <dani.behzi@gmail.com>\n"
13"Language-Team: Persian <fa@li.org>\n"
13"Language-Team: Persian <fa@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=1; plural=0;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:20+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,45 +31,64 @@ msgstr "سنجاق کردن میانبر"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "برداشتن سنجاق میانبر"
32msgstr "برداشتن سنجاق میانبر"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "دستگاه قفل شد"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+"شما به دلیل تلاش‌های بسیار زیاد شکست خورده برای عبارت‌عبور قفل شده‌اید."
42+
43+#: qml/Components/DelayedLockscreen.qml:63
44+msgid "You have been locked out due to too many failed passcode attempts."
45+msgstr "شما به دلیل تلاش‌های بسیار زیاد شکست خورده برای رمزعبور قفل شده‌اید."
46+
47+#: qml/Components/DelayedLockscreen.qml:72
48+#, qt-format
49+msgid "Please wait %1 minute and then try again…"
50+msgid_plural "Please wait %1 minutes and then try again…"
51+msgstr[0] "لطفاُ %1 دقیقه صبر نموده و سپس مجدّداً تلاش نمایید…"
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr "خروج از حساب"
55msgstr "خروج از حساب"
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr "مطمئنید که می‌خواهید از حساب خارج شوید"
59msgstr "مطمئنید که می‌خواهید از حساب خارج شوید"
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr "خیر"
64msgstr "خیر"
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr "بله"
69msgstr "بله"
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr "خاموش کردن"
73msgstr "خاموش کردن"
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr "مطمئنید که می‌خواهید خاموش کنید؟"
77msgstr "مطمئنید که می‌خواهید خاموش کنید؟"
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr "راه‌اندازی مجدّد"
81msgstr "راه‌اندازی مجدّد"
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr "مطمئنید که می‌خواهید مجدّداً راه‌اندازی کنسد؟"
85msgstr "مطمئنید که می‌خواهید مجدّداً راه‌اندازی کنسد؟"
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr "توان"
89msgstr "توان"
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
@@ -76,15 +96,15 @@ msgstr ""
76"آیا مطمئن هستید که\n"
96"آیا مطمئن هستید که\n"
77"می‌خواهید خاموش کنید؟"
97"می‌خواهید خاموش کنید؟"
78
98
79−#: qml/Components/Dialogs.qml:147
99+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
100msgid "Power off"
81msgstr "خاموش کردن"
101msgstr "خاموش کردن"
82
102
83−#: qml/Components/Dialogs.qml:157
103+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
104msgid "Restart"
85msgstr "شروع مجدّد"
105msgstr "شروع مجدّد"
86
106
87−#: qml/Components/Dialogs.qml:167
107+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
108msgid "Cancel"
89msgstr "لغو"
109msgstr "لغو"
90
110
@@ -116,19 +136,19 @@ msgstr "بستن"
116msgid "Swipe up again to close the settings screen"
136msgid "Swipe up again to close the settings screen"
117msgstr "برای بستن صفحه‌ی تنظیمات، دوباره به بالا بکشپد"
137msgstr "برای بستن صفحه‌ی تنظیمات، دوباره به بالا بکشپد"
118
138
119−#: qml/Components/EdgeDemo.qml:198
139+#: qml/Components/EdgeDemo.qml:201
120msgid "Left edge"
140msgid "Left edge"
121msgstr "لبه‌ی چپ"
141msgstr "لبه‌ی چپ"
122
142
123−#: qml/Components/EdgeDemo.qml:199
143+#: qml/Components/EdgeDemo.qml:202
124msgid "Swipe from the left to reveal the launcher for quick access to apps"
144msgid "Swipe from the left to reveal the launcher for quick access to apps"
125msgstr "برای آشکار شدن اجراگر به منظور دست‌رسی سریع به اپ‌ها از سمت چپ بکشید"
145msgstr "برای آشکار شدن اجراگر به منظور دست‌رسی سریع به اپ‌ها از سمت چپ بکشید"
126
146
127−#: qml/Components/EdgeDemo.qml:226
147+#: qml/Components/EdgeDemo.qml:229
128msgid "Well done"
148msgid "Well done"
129msgstr "عالی بود"
149msgstr "عالی بود"
130
150
131−#: qml/Components/EdgeDemo.qml:227
151+#: qml/Components/EdgeDemo.qml:230
132msgid ""
152msgid ""
133"You have now mastered the edge gestures and can start using the "
153"You have now mastered the edge gestures and can start using the "
134"phone<br><br>Tap on the screen to start"
154"phone<br><br>Tap on the screen to start"
@@ -136,40 +156,27 @@ msgstr ""
136"هم اکنون در استفاده از ژست های حرکتی مهارت لازم را دارید و می‌توانید استفاده "
156"هم اکنون در استفاده از ژست های حرکتی مهارت لازم را دارید و می‌توانید استفاده "
137"از تلفن را آغاز کنید<br><br>برای شروع صفحه را لمس کنید"
157"از تلفن را آغاز کنید<br><br>برای شروع صفحه را لمس کنید"
138
158
139−#: qml/Components/Lockscreen.qml:167
159+#: qml/Components/Lockscreen.qml:223
140−msgid "Please wait"
160+msgid "Return to Call"
141−msgstr "لطفاً صبر کنید"
161+msgstr ""
142−
143−#: qml/Components/Lockscreen.qml:172
144−msgid "Too many incorrect attempts"
145−msgstr "تلاش‌های ناموفّق زیاد"
146
162
147−#: qml/Components/Lockscreen.qml:206
163+#: qml/Components/Lockscreen.qml:223
148msgid "Emergency Call"
164msgid "Emergency Call"
149msgstr "تماس اضطراری"
165msgstr "تماس اضطراری"
150
166
151−#: qml/Components/Lockscreen.qml:226
167+#: qml/Components/Lockscreen.qml:255
152msgid "OK"
168msgid "OK"
153msgstr "قبول"
169msgstr "قبول"
154
170
155−#: qml/Components/PassphraseLockscreen.qml:61
156−#, qt-format
157−msgid "Hello %1"
158−msgstr "سلام %1"
159−
160−#: qml/Components/PassphraseLockscreen.qml:61
161−msgid "Hello"
162−msgstr "سلام"
163−
164−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
171+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
165msgid "See less"
172msgid "See less"
166msgstr "کم‌تر ببینید"
173msgstr "کم‌تر ببینید"
167
174
168−#: qml/Dash/GenericScopeView.qml:411
175+#: qml/Dash/GenericScopeView.qml:434
169msgid "See all"
176msgid "See all"
170msgstr "دیدن همه"
177msgstr "دیدن همه"
171
178
172−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
173#: qml/Panel/SearchIndicator.qml:27
180#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
181msgid "Search"
175msgstr "جست‌وجو"
182msgstr "جست‌وجو"
@@ -206,15 +213,23 @@ msgstr "افزودن یک بازبینی"
206msgid "Send"
213msgid "Send"
207msgstr "ارسال"
214msgstr "ارسال"
208
215
216+#: qml/Dash/PullToRefreshScopeStyle.qml:55
217+msgid "Pull to refresh…"
218+msgstr "برای تازه‌سازی بکشید…"
219+
220+#: qml/Dash/PullToRefreshScopeStyle.qml:60
221+msgid "Release to refresh…"
222+msgstr "برای تازه‌سازی رها کنید…"
223+
209−#: qml/Dash/ScopesOverview.qml:206
224+#: qml/Dash/ScopesOverview.qml:215
210msgid "Manage Scopes"
225msgid "Manage Scopes"
211−msgstr ""
226+msgstr "مدیریت حوزه‌ها"
212
227
213−#: qml/Dash/ScopesOverview.qml:428
228+#: qml/Dash/ScopesOverview.qml:437
214msgid "Done"
229msgid "Done"
215msgstr "انجام شد"
230msgstr "انجام شد"
216
231
217−#: qml/Dash/ScopesOverview.qml:454
232+#: qml/Dash/ScopesOverview.qml:463
218msgid "Store"
233msgid "Store"
219msgstr "فروشگاه"
234msgstr "فروشگاه"
220
235
@@ -226,9 +241,9 @@ msgstr "برگزیده‌ها"
226msgid "All"
241msgid "All"
227msgstr "همه"
242msgstr "همه"
228
243
229−#: qml/Greeter/Greeter.qml:157
244+#: qml/Greeter/Greeter.qml:174
230−msgid "Swipe to unlock"
245+msgid "Unlock"
231−msgstr "برای باز کردن قفل بکشد"
246+msgstr "بازکردن قفل"
232
247
233#: qml/Hud/HudParametrizedActionsPage.qml:139
248#: qml/Hud/HudParametrizedActionsPage.qml:139
234msgid "Confirm"
249msgid "Confirm"
@@ -250,51 +265,43 @@ msgstr "اکنون صحبت کنید…"
250msgid "Speaking..."
265msgid "Speaking..."
251msgstr "در حال صحبت کردن…"
266msgstr "در حال صحبت کردن…"
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:108
268+#: qml/Notifications/NotificationMenuItemFactory.qml:116
254msgid "Show password"
269msgid "Show password"
255msgstr "نمایش گذرواژه"
270msgstr "نمایش گذرواژه"
256
271
257−#: qml/Notifications/NotificationMenuItemFactory.qml:124
258−msgid "Enter SIM PIN"
259−msgstr "PIN سیم‌کارت را وارد کنید"
260−
261−#: qml/Notifications/NotificationMenuItemFactory.qml:125
262−msgid "Sorry, incorrect PIN"
263−msgstr "متأسّفیم، PIN نادرست بود"
264−
265−#: qml/Panel/ActiveCallHint.qml:77
272+#: qml/Panel/ActiveCallHint.qml:79
266msgid "Tap to return to call..."
273msgid "Tap to return to call..."
267msgstr "برای بازگشت به تماس ضربه بزنید…"
274msgstr "برای بازگشت به تماس ضربه بزنید…"
268
275
269−#: qml/Panel/ActiveCallHint.qml:90
276+#: qml/Panel/ActiveCallHint.qml:92
270msgid "Conference"
277msgid "Conference"
271msgstr "کنفرانس"
278msgstr "کنفرانس"
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:600
280+#: qml/Panel/Indicators/MenuItemFactory.qml:615
274msgid "Nothing is playing"
281msgid "Nothing is playing"
275−msgstr ""
282+msgstr "هیچ چیزی در حال پخش نیست"
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:748
284+#: qml/Panel/Indicators/MenuItemFactory.qml:763
278msgid "In queue…"
285msgid "In queue…"
279msgstr "در صف…"
286msgstr "در صف…"
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:752
288+#: qml/Panel/Indicators/MenuItemFactory.qml:767
282msgid "Downloading"
289msgid "Downloading"
283msgstr "در حال بارگیری"
290msgstr "در حال بارگیری"
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:754
292+#: qml/Panel/Indicators/MenuItemFactory.qml:769
286msgid "Paused, tap to resume"
293msgid "Paused, tap to resume"
287msgstr "مکث شد، برای از سر گیری ضربه بزنید"
294msgstr "مکث شد، برای از سر گیری ضربه بزنید"
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:756
296+#: qml/Panel/Indicators/MenuItemFactory.qml:771
290msgid "Canceled"
297msgid "Canceled"
291msgstr "لغو شد"
298msgstr "لغو شد"
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:758
300+#: qml/Panel/Indicators/MenuItemFactory.qml:773
294msgid "Finished"
301msgid "Finished"
295msgstr "پایان یافت"
302msgstr "پایان یافت"
296
303
297−#: qml/Panel/Indicators/MenuItemFactory.qml:760
304+#: qml/Panel/Indicators/MenuItemFactory.qml:775
298msgid "Failed, tap to retry"
305msgid "Failed, tap to retry"
299msgstr "شکست خورد، برای تلاش دوباره ضربه بزنید"
306msgstr "شکست خورد، برای تلاش دوباره ضربه بزنید"
300
307
@@ -306,45 +313,49 @@ msgstr "باز کردن قفل سیم‌کارت"
306msgid "Roaming"
313msgid "Roaming"
307msgstr "رومینگ"
314msgstr "رومینگ"
308
315
309−#: qml/Shell.qml:320
316+#: qml/Shell.qml:381
310−msgid "Enter your passphrase"
317+msgid "Enter passphrase"
311−msgstr "عبارت‌عبورتان را وارد کنید"
318+msgstr "عبارت‌عبور را وارد کنید"
312
319
313−#: qml/Shell.qml:321
320+#: qml/Shell.qml:382
314msgid "Sorry, incorrect passphrase"
321msgid "Sorry, incorrect passphrase"
315msgstr "متأسّفیم، عبارت‌عبور نادرست بود"
322msgstr "متأسّفیم، عبارت‌عبور نادرست بود"
316
323
317−#: qml/Shell.qml:323
324+#: qml/Shell.qml:383
318−msgid "Enter your passcode"
325+msgid "Please re-enter"
319−msgstr "رمزعبورتان را وارد کنید"
326+msgstr "لطفاً دوباره وارد کنید"
320
327
321−#: qml/Shell.qml:324
328+#: qml/Shell.qml:385
329+msgid "Enter passcode"
330+msgstr "رمزعبور را وارد کنید"
331+
332+#: qml/Shell.qml:386
322msgid "Sorry, incorrect passcode"
333msgid "Sorry, incorrect passcode"
323msgstr "متأسّفیم، رمزعبور نادرست بود"
334msgstr "متأسّفیم، رمزعبور نادرست بود"
324
335
325−#: qml/Shell.qml:327
336+#: qml/Shell.qml:389
326#, qt-format
337#, qt-format
327−msgid "Enter your %1"
338+msgid "Enter %1"
328−msgstr "%1 خود را وارد کنید"
339+msgstr "%1 را وارد کنید"
329
340
330−#: qml/Shell.qml:328
341+#: qml/Shell.qml:390
331#, qt-format
342#, qt-format
332msgid "Sorry, incorrect %1"
343msgid "Sorry, incorrect %1"
333msgstr "متأسّفیم، %1 نادرست بود"
344msgstr "متأسّفیم، %1 نادرست بود"
334
345
335−#: qml/Shell.qml:363
346+#: qml/Shell.qml:431
336msgid "Sorry, incorrect passphrase."
347msgid "Sorry, incorrect passphrase."
337msgstr "متأسّفیم، عبارت‌عبور نادرست است."
348msgstr "متأسّفیم، عبارت‌عبور نادرست است."
338
349
339−#: qml/Shell.qml:364
350+#: qml/Shell.qml:432
340msgid "Sorry, incorrect passcode."
351msgid "Sorry, incorrect passcode."
341msgstr "متأسّفیم، رمزعبور نادرست است."
352msgstr "متأسّفیم، رمزعبور نادرست است."
342
353
343−#: qml/Shell.qml:365
354+#: qml/Shell.qml:433
344msgid "This will be your last attempt."
355msgid "This will be your last attempt."
345msgstr "این آخرین تلاش شما خواهد بود."
356msgstr "این آخرین تلاش شما خواهد بود."
346
357
347−#: qml/Shell.qml:367
358+#: qml/Shell.qml:435
348msgid ""
359msgid ""
349"If passphrase is entered incorrectly, your phone will conduct a factory "
360"If passphrase is entered incorrectly, your phone will conduct a factory "
350"reset and all personal data will be deleted."
361"reset and all personal data will be deleted."
@@ -352,13 +363,10 @@ msgstr ""
352"اگر عبارت‌عبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
363"اگر عبارت‌عبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
353"اطّلاعات شخصی حذف خواهند شد."
364"اطّلاعات شخصی حذف خواهند شد."
354
365
355−#: qml/Shell.qml:368
366+#: qml/Shell.qml:436
356msgid ""
367msgid ""
357"If passcode is entered incorrectly, your phone will conduct a factory reset "
368"If passcode is entered incorrectly, your phone will conduct a factory reset "
358"and all personal data will be deleted."
369"and all personal data will be deleted."
359msgstr ""
370msgstr ""
360"اگر رمزعبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
371"اگر رمزعبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
361"اطّلاعات شخصی حذف خواهند شد."
372"اطّلاعات شخصی حذف خواهند شد."
362−
363−#~ msgid "Manage Dash"
364−#~ msgstr "مدیریت دش"
po/fi.po+96−86
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-08-28 13:47+0000\n"
11+"PO-Revision-Date: 2014-11-05 11:49+0000\n"
12−"Last-Translator: Timo Jyrinki <timo.jyrinki@canonical.com>\n"
12+"Last-Translator: Jiri Grönroos <Unknown>\n"
13"Language-Team: Finnish <fi@li.org>\n"
13"Language-Team: Finnish <fi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,45 +31,66 @@ msgstr "Kiinnitä pikakuvake"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Poista pikakuvakkeen kiinnitys"
32msgstr "Poista pikakuvakkeen kiinnitys"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Laite on lukittu"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+"Laite on lukittu liian monen virheellisen tunnuslauseyrityksen jälkeen."
42+
43+#: qml/Components/DelayedLockscreen.qml:63
44+msgid "You have been locked out due to too many failed passcode attempts."
45+msgstr ""
46+"Laite on lukittu liian monen virheellisen suojakoodiyrityksen jälkeen."
47+
48+#: qml/Components/DelayedLockscreen.qml:72
49+#, qt-format
50+msgid "Please wait %1 minute and then try again…"
51+msgid_plural "Please wait %1 minutes and then try again…"
52+msgstr[0] "Odota %1 minuutti ja yritä sitten uudelleen…"
53+msgstr[1] "Odota %1 minuuttia ja yritä sitten uudelleen…"
54+
55+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
56msgid "Log out"
35msgstr "Kirjaudu ulos"
57msgstr "Kirjaudu ulos"
36
58
37−#: qml/Components/Dialogs.qml:71
59+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
60msgid "Are you sure you want to log out?"
39msgstr "Haluatko varmasti kirjautua ulos?"
61msgstr "Haluatko varmasti kirjautua ulos?"
40
62
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
63+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
64+#: qml/Components/Dialogs.qml:126
43msgid "No"
65msgid "No"
44msgstr "Ei"
66msgstr "Ei"
45
67
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
68+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
69+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
70msgid "Yes"
49msgstr "Kyllä"
71msgstr "Kyllä"
50
72
51−#: qml/Components/Dialogs.qml:94
73+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
74msgid "Shut down"
53msgstr "Sammuta"
75msgstr "Sammuta"
54
76
55−#: qml/Components/Dialogs.qml:95
77+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
78msgid "Are you sure you want to shut down?"
57msgstr "Haluatko varmasti sammuttaa laitteen?"
79msgstr "Haluatko varmasti sammuttaa laitteen?"
58
80
59−#: qml/Components/Dialogs.qml:119
81+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
82msgid "Reboot"
61msgstr "Käynnistä uudelleen"
83msgstr "Käynnistä uudelleen"
62
84
63−#: qml/Components/Dialogs.qml:120
85+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
86msgid "Are you sure you want to reboot?"
65msgstr "Haluatko varmasti käynnistää laitteen uudelleen?"
87msgstr "Haluatko varmasti käynnistää laitteen uudelleen?"
66
88
67−#: qml/Components/Dialogs.qml:144
89+#: qml/Components/Dialogs.qml:148
68msgid "Power"
90msgid "Power"
69msgstr "Virran katkaisu"
91msgstr "Virran katkaisu"
70
92
71−#: qml/Components/Dialogs.qml:145
93+#: qml/Components/Dialogs.qml:149
72msgid ""
94msgid ""
73"Are you sure you would like\n"
95"Are you sure you would like\n"
74"to power off?"
96"to power off?"
@@ -76,15 +98,15 @@ msgstr ""
76"Haluatko varmasti\n"
98"Haluatko varmasti\n"
77"sammuttaa laitteen?"
99"sammuttaa laitteen?"
78
100
79−#: qml/Components/Dialogs.qml:147
101+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
102msgid "Power off"
81msgstr "Sammuta"
103msgstr "Sammuta"
82
104
83−#: qml/Components/Dialogs.qml:157
105+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
106msgid "Restart"
85msgstr "Käynnistä uudelleen"
107msgstr "Käynnistä uudelleen"
86
108
87−#: qml/Components/Dialogs.qml:167
109+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
110msgid "Cancel"
89msgstr "Peru"
111msgstr "Peru"
90
112
@@ -116,19 +138,19 @@ msgstr "Sulje"
116msgid "Swipe up again to close the settings screen"
138msgid "Swipe up again to close the settings screen"
117msgstr "Vedä uudestaan sulkeaksesi asetusnäkymän"
139msgstr "Vedä uudestaan sulkeaksesi asetusnäkymän"
118
140
119−#: qml/Components/EdgeDemo.qml:198
141+#: qml/Components/EdgeDemo.qml:201
120msgid "Left edge"
142msgid "Left edge"
121msgstr "Vasen reuna"
143msgstr "Vasen reuna"
122
144
123−#: qml/Components/EdgeDemo.qml:199
145+#: qml/Components/EdgeDemo.qml:202
124msgid "Swipe from the left to reveal the launcher for quick access to apps"
146msgid "Swipe from the left to reveal the launcher for quick access to apps"
125msgstr "Vedä vasemmalta saattaaksesi sovellusten käynnistimen esiin"
147msgstr "Vedä vasemmalta saattaaksesi sovellusten käynnistimen esiin"
126
148
127−#: qml/Components/EdgeDemo.qml:226
149+#: qml/Components/EdgeDemo.qml:229
128msgid "Well done"
150msgid "Well done"
129msgstr "Hyvin tehty"
151msgstr "Hyvin tehty"
130
152
131−#: qml/Components/EdgeDemo.qml:227
153+#: qml/Components/EdgeDemo.qml:230
132msgid ""
154msgid ""
133"You have now mastered the edge gestures and can start using the "
155"You have now mastered the edge gestures and can start using the "
134"phone<br><br>Tap on the screen to start"
156"phone<br><br>Tap on the screen to start"
@@ -136,40 +158,27 @@ msgstr ""
136"Hallitset nyt reunaeleet, joten voit aloittaa puhelimen "
158"Hallitset nyt reunaeleet, joten voit aloittaa puhelimen "
137"käytön<br><br>Napauta näyttöä aloittaaksesi"
159"käytön<br><br>Napauta näyttöä aloittaaksesi"
138
160
139−#: qml/Components/Lockscreen.qml:167
161+#: qml/Components/Lockscreen.qml:223
140−msgid "Please wait"
162+msgid "Return to Call"
141−msgstr "Odota hetki"
163+msgstr "Palaa puheluun"
142
164
143−#: qml/Components/Lockscreen.qml:172
165+#: qml/Components/Lockscreen.qml:223
144−msgid "Too many incorrect attempts"
145−msgstr "Liian monta virheellistä yritystä"
146−
147−#: qml/Components/Lockscreen.qml:206
148msgid "Emergency Call"
166msgid "Emergency Call"
149msgstr "Hätäpuhelu"
167msgstr "Hätäpuhelu"
150
168
151−#: qml/Components/Lockscreen.qml:226
169+#: qml/Components/Lockscreen.qml:255
152msgid "OK"
170msgid "OK"
153msgstr "OK"
171msgstr "OK"
154
172
155−#: qml/Components/PassphraseLockscreen.qml:61
156−#, qt-format
157−msgid "Hello %1"
158−msgstr "Hei %1!"
159−
160−#: qml/Components/PassphraseLockscreen.qml:61
161−msgid "Hello"
162−msgstr "Hei"
163−
164−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
173+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
165msgid "See less"
174msgid "See less"
166msgstr "Näytä vähemmän"
175msgstr "Näytä vähemmän"
167
176
168−#: qml/Dash/GenericScopeView.qml:411
177+#: qml/Dash/GenericScopeView.qml:434
169msgid "See all"
178msgid "See all"
170msgstr "Näytä kaikki"
179msgstr "Näytä kaikki"
171
180
172−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
181+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
173#: qml/Panel/SearchIndicator.qml:27
182#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
183msgid "Search"
175msgstr "Hae"
184msgstr "Hae"
@@ -206,15 +215,23 @@ msgstr "Lisää arvostelu"
206msgid "Send"
215msgid "Send"
207msgstr "Lähetä"
216msgstr "Lähetä"
208
217
218+#: qml/Dash/PullToRefreshScopeStyle.qml:55
219+msgid "Pull to refresh…"
220+msgstr "Vedä päivittääksesi…"
221+
222+#: qml/Dash/PullToRefreshScopeStyle.qml:60
223+msgid "Release to refresh…"
224+msgstr "Vapauta päivittääksesi…"
225+
209−#: qml/Dash/ScopesOverview.qml:206
226+#: qml/Dash/ScopesOverview.qml:215
210msgid "Manage Scopes"
227msgid "Manage Scopes"
211msgstr "Näkymien hallinta"
228msgstr "Näkymien hallinta"
212
229
213−#: qml/Dash/ScopesOverview.qml:428
230+#: qml/Dash/ScopesOverview.qml:437
214msgid "Done"
231msgid "Done"
215msgstr "Valmis"
232msgstr "Valmis"
216
233
217−#: qml/Dash/ScopesOverview.qml:454
234+#: qml/Dash/ScopesOverview.qml:463
218msgid "Store"
235msgid "Store"
219msgstr "Kauppa"
236msgstr "Kauppa"
220
237
@@ -226,9 +243,9 @@ msgstr "Suosikit"
226msgid "All"
243msgid "All"
227msgstr "Kaikki"
244msgstr "Kaikki"
228
245
229−#: qml/Greeter/Greeter.qml:157
246+#: qml/Greeter/Greeter.qml:174
230−msgid "Swipe to unlock"
247+msgid "Unlock"
231−msgstr "Avaa pyyhkäisemällä"
248+msgstr "Avaa lukitus"
232
249
233#: qml/Hud/HudParametrizedActionsPage.qml:139
250#: qml/Hud/HudParametrizedActionsPage.qml:139
234msgid "Confirm"
251msgid "Confirm"
@@ -250,51 +267,43 @@ msgstr "Puhu nyt..."
250msgid "Speaking..."
267msgid "Speaking..."
251msgstr "Puhutaan..."
268msgstr "Puhutaan..."
252
269
253−#: qml/Notifications/NotificationMenuItemFactory.qml:108
270+#: qml/Notifications/NotificationMenuItemFactory.qml:116
254msgid "Show password"
271msgid "Show password"
255msgstr "Näytä salasana"
272msgstr "Näytä salasana"
256
273
257−#: qml/Notifications/NotificationMenuItemFactory.qml:124
258−msgid "Enter SIM PIN"
259−msgstr "Anna SIM-kortin PIN-koodi"
260−
261−#: qml/Notifications/NotificationMenuItemFactory.qml:125
262−msgid "Sorry, incorrect PIN"
263−msgstr "Väärä PIN-koodi"
264−
265−#: qml/Panel/ActiveCallHint.qml:77
274+#: qml/Panel/ActiveCallHint.qml:79
266msgid "Tap to return to call..."
275msgid "Tap to return to call..."
267msgstr "Napauta palataksesi puheluun..."
276msgstr "Napauta palataksesi puheluun..."
268
277
269−#: qml/Panel/ActiveCallHint.qml:90
278+#: qml/Panel/ActiveCallHint.qml:92
270msgid "Conference"
279msgid "Conference"
271msgstr "Ryhmäpuhelu"
280msgstr "Ryhmäpuhelu"
272
281
273−#: qml/Panel/Indicators/MenuItemFactory.qml:600
282+#: qml/Panel/Indicators/MenuItemFactory.qml:615
274msgid "Nothing is playing"
283msgid "Nothing is playing"
275msgstr "Mitään ei toisteta juuri nyt"
284msgstr "Mitään ei toisteta juuri nyt"
276
285
277−#: qml/Panel/Indicators/MenuItemFactory.qml:748
286+#: qml/Panel/Indicators/MenuItemFactory.qml:763
278msgid "In queue…"
287msgid "In queue…"
279msgstr "Jonossa…"
288msgstr "Jonossa…"
280
289
281−#: qml/Panel/Indicators/MenuItemFactory.qml:752
290+#: qml/Panel/Indicators/MenuItemFactory.qml:767
282msgid "Downloading"
291msgid "Downloading"
283msgstr "Ladataan"
292msgstr "Ladataan"
284
293
285−#: qml/Panel/Indicators/MenuItemFactory.qml:754
294+#: qml/Panel/Indicators/MenuItemFactory.qml:769
286msgid "Paused, tap to resume"
295msgid "Paused, tap to resume"
287msgstr "Keskeytetty, napauta palauttaaksesi"
296msgstr "Keskeytetty, napauta palauttaaksesi"
288
297
289−#: qml/Panel/Indicators/MenuItemFactory.qml:756
298+#: qml/Panel/Indicators/MenuItemFactory.qml:771
290msgid "Canceled"
299msgid "Canceled"
291msgstr "Peruttu"
300msgstr "Peruttu"
292
301
293−#: qml/Panel/Indicators/MenuItemFactory.qml:758
302+#: qml/Panel/Indicators/MenuItemFactory.qml:773
294msgid "Finished"
303msgid "Finished"
295msgstr "Valmistunut"
304msgstr "Valmistunut"
296
305
297−#: qml/Panel/Indicators/MenuItemFactory.qml:760
306+#: qml/Panel/Indicators/MenuItemFactory.qml:775
298msgid "Failed, tap to retry"
307msgid "Failed, tap to retry"
299msgstr "Epäonnistunut, napauta yrittääksesi uudelleen"
308msgstr "Epäonnistunut, napauta yrittääksesi uudelleen"
300
309
@@ -306,45 +315,49 @@ msgstr "Avaa SIM-kortin lukitus"
306msgid "Roaming"
315msgid "Roaming"
307msgstr "Verkkovierailu"
316msgstr "Verkkovierailu"
308
317
309−#: qml/Shell.qml:320
318+#: qml/Shell.qml:381
310−msgid "Enter your passphrase"
319+msgid "Enter passphrase"
311msgstr "Anna tunnuslause"
320msgstr "Anna tunnuslause"
312
321
313−#: qml/Shell.qml:321
322+#: qml/Shell.qml:382
314msgid "Sorry, incorrect passphrase"
323msgid "Sorry, incorrect passphrase"
315msgstr "Virheellinen tunnuslause"
324msgstr "Virheellinen tunnuslause"
316
325
317−#: qml/Shell.qml:323
326+#: qml/Shell.qml:383
327+msgid "Please re-enter"
328+msgstr "Anna uudelleen"
329+
330+#: qml/Shell.qml:385
318−msgid "Enter your passcode"
331+msgid "Enter passcode"
319msgstr "Anna suojakoodi"
332msgstr "Anna suojakoodi"
320
333
321−#: qml/Shell.qml:324
334+#: qml/Shell.qml:386
322msgid "Sorry, incorrect passcode"
335msgid "Sorry, incorrect passcode"
323msgstr "Väärä suojakoodi"
336msgstr "Väärä suojakoodi"
324
337
325−#: qml/Shell.qml:327
338+#: qml/Shell.qml:389
326#, qt-format
339#, qt-format
327−msgid "Enter your %1"
340+msgid "Enter %1"
328msgstr "Anna %1"
341msgstr "Anna %1"
329
342
330−#: qml/Shell.qml:328
343+#: qml/Shell.qml:390
331#, qt-format
344#, qt-format
332msgid "Sorry, incorrect %1"
345msgid "Sorry, incorrect %1"
333msgstr "Väärä %1"
346msgstr "Väärä %1"
334
347
335−#: qml/Shell.qml:363
348+#: qml/Shell.qml:431
336msgid "Sorry, incorrect passphrase."
349msgid "Sorry, incorrect passphrase."
337msgstr "Virheellinen tunnuslause."
350msgstr "Virheellinen tunnuslause."
338
351
339−#: qml/Shell.qml:364
352+#: qml/Shell.qml:432
340msgid "Sorry, incorrect passcode."
353msgid "Sorry, incorrect passcode."
341msgstr "Virheellinen suojakoodi."
354msgstr "Virheellinen suojakoodi."
342
355
343−#: qml/Shell.qml:365
356+#: qml/Shell.qml:433
344msgid "This will be your last attempt."
357msgid "This will be your last attempt."
345msgstr "Tämä on viimeinen yritys."
358msgstr "Tämä on viimeinen yritys."
346
359
347−#: qml/Shell.qml:367
360+#: qml/Shell.qml:435
348msgid ""
361msgid ""
349"If passphrase is entered incorrectly, your phone will conduct a factory "
362"If passphrase is entered incorrectly, your phone will conduct a factory "
350"reset and all personal data will be deleted."
363"reset and all personal data will be deleted."
@@ -352,13 +365,10 @@ msgstr ""
352"Jos kirjoitat tunnuslauseen virheellisesti, puhelimesi palautetaan "
365"Jos kirjoitat tunnuslauseen virheellisesti, puhelimesi palautetaan "
353"tehdastilaan ja kaikki henkilökohtaiset tietosi poistetaan."
366"tehdastilaan ja kaikki henkilökohtaiset tietosi poistetaan."
354
367
355−#: qml/Shell.qml:368
368+#: qml/Shell.qml:436
356msgid ""
369msgid ""
357"If passcode is entered incorrectly, your phone will conduct a factory reset "
370"If passcode is entered incorrectly, your phone will conduct a factory reset "
358"and all personal data will be deleted."
371"and all personal data will be deleted."
359msgstr ""
372msgstr ""
360"Jos kirjoitat suojakoodin virheellisesti, puhelimesi palautetaan "
373"Jos kirjoitat suojakoodin virheellisesti, puhelimesi palautetaan "
361"tehdastilaan ja kaikki henkilökohtaiset tietosi poistetaan."
374"tehdastilaan ja kaikki henkilökohtaiset tietosi poistetaan."
362−
363−#~ msgid "Manage Dash"
364−#~ msgstr "Unityn hallinta"
po/fo.po+90−79
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-01-14 20:08+0000\n"
11"PO-Revision-Date: 2014-01-14 20:08+0000\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
13"Language-Team: Faroese <fo@li.org>\n"
13"Language-Team: Faroese <fo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr ""
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr ""
32msgstr ""
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr ""
55msgstr ""
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr ""
59msgstr ""
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr ""
64msgstr ""
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr ""
69msgstr ""
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr ""
73msgstr ""
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr ""
77msgstr ""
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr ""
81msgstr ""
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr ""
85msgstr ""
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr ""
89msgstr ""
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr ""
95msgstr ""
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr ""
99msgstr ""
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr ""
103msgstr ""
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr ""
107msgstr ""
88
108
@@ -114,58 +134,45 @@ msgstr ""
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr ""
135msgstr ""
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr ""
139msgstr ""
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
143msgstr ""
124
144
125−#: qml/Components/EdgeDemo.qml:226
145+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
146msgid "Well done"
127msgstr ""
147msgstr ""
128
148
129−#: qml/Components/EdgeDemo.qml:227
149+#: qml/Components/EdgeDemo.qml:230
130msgid ""
150msgid ""
131"You have now mastered the edge gestures and can start using the "
151"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
152"phone<br><br>Tap on the screen to start"
133msgstr ""
153msgstr ""
134
154
135−#: qml/Components/Lockscreen.qml:167
155+#: qml/Components/Lockscreen.qml:223
136−msgid "Please wait"
156+msgid "Return to Call"
137−msgstr ""
138−
139−#: qml/Components/Lockscreen.qml:172
140−msgid "Too many incorrect attempts"
141msgstr ""
157msgstr ""
142
158
143−#: qml/Components/Lockscreen.qml:206
159+#: qml/Components/Lockscreen.qml:223
144msgid "Emergency Call"
160msgid "Emergency Call"
145msgstr ""
161msgstr ""
146
162
147−#: qml/Components/Lockscreen.qml:226
163+#: qml/Components/Lockscreen.qml:255
148msgid "OK"
164msgid "OK"
149msgstr ""
165msgstr ""
150
166
151−#: qml/Components/PassphraseLockscreen.qml:61
152−#, qt-format
153−msgid "Hello %1"
154−msgstr ""
155−
156−#: qml/Components/PassphraseLockscreen.qml:61
157−msgid "Hello"
158−msgstr ""
159−
160−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
167+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
161msgid "See less"
168msgid "See less"
162msgstr ""
169msgstr ""
163
170
164−#: qml/Dash/GenericScopeView.qml:411
171+#: qml/Dash/GenericScopeView.qml:434
165msgid "See all"
172msgid "See all"
166msgstr ""
173msgstr ""
167
174
168−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
169#: qml/Panel/SearchIndicator.qml:27
176#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
177msgid "Search"
171msgstr "Leita"
178msgstr "Leita"
@@ -202,15 +209,23 @@ msgstr ""
202msgid "Send"
209msgid "Send"
203msgstr ""
210msgstr ""
204
211
212+#: qml/Dash/PullToRefreshScopeStyle.qml:55
213+msgid "Pull to refresh…"
214+msgstr ""
215+
216+#: qml/Dash/PullToRefreshScopeStyle.qml:60
217+msgid "Release to refresh…"
218+msgstr ""
219+
205−#: qml/Dash/ScopesOverview.qml:206
220+#: qml/Dash/ScopesOverview.qml:215
206msgid "Manage Scopes"
221msgid "Manage Scopes"
207msgstr ""
222msgstr ""
208
223
209−#: qml/Dash/ScopesOverview.qml:428
224+#: qml/Dash/ScopesOverview.qml:437
210msgid "Done"
225msgid "Done"
211msgstr ""
226msgstr ""
212
227
213−#: qml/Dash/ScopesOverview.qml:454
228+#: qml/Dash/ScopesOverview.qml:463
214msgid "Store"
229msgid "Store"
215msgstr ""
230msgstr ""
216
231
@@ -222,8 +237,8 @@ msgstr ""
222msgid "All"
237msgid "All"
223msgstr ""
238msgstr ""
224
239
225−#: qml/Greeter/Greeter.qml:157
240+#: qml/Greeter/Greeter.qml:174
226−msgid "Swipe to unlock"
241+msgid "Unlock"
227msgstr ""
242msgstr ""
228
243
229#: qml/Hud/HudParametrizedActionsPage.qml:139
244#: qml/Hud/HudParametrizedActionsPage.qml:139
@@ -246,51 +261,43 @@ msgstr "Snakka nú..."
246msgid "Speaking..."
261msgid "Speaking..."
247msgstr "Snakkar..."
262msgstr "Snakkar..."
248
263
249−#: qml/Notifications/NotificationMenuItemFactory.qml:108
264+#: qml/Notifications/NotificationMenuItemFactory.qml:116
250msgid "Show password"
265msgid "Show password"
251msgstr ""
266msgstr ""
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:124
254−msgid "Enter SIM PIN"
255−msgstr ""
256−
257−#: qml/Notifications/NotificationMenuItemFactory.qml:125
258−msgid "Sorry, incorrect PIN"
259−msgstr ""
260−
261−#: qml/Panel/ActiveCallHint.qml:77
268+#: qml/Panel/ActiveCallHint.qml:79
262msgid "Tap to return to call..."
269msgid "Tap to return to call..."
263msgstr ""
270msgstr ""
264
271
265−#: qml/Panel/ActiveCallHint.qml:90
272+#: qml/Panel/ActiveCallHint.qml:92
266msgid "Conference"
273msgid "Conference"
267msgstr ""
274msgstr ""
268
275
269−#: qml/Panel/Indicators/MenuItemFactory.qml:600
276+#: qml/Panel/Indicators/MenuItemFactory.qml:615
270msgid "Nothing is playing"
277msgid "Nothing is playing"
271msgstr ""
278msgstr ""
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:748
280+#: qml/Panel/Indicators/MenuItemFactory.qml:763
274msgid "In queue…"
281msgid "In queue…"
275msgstr ""
282msgstr ""
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:752
284+#: qml/Panel/Indicators/MenuItemFactory.qml:767
278msgid "Downloading"
285msgid "Downloading"
279msgstr ""
286msgstr ""
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:754
288+#: qml/Panel/Indicators/MenuItemFactory.qml:769
282msgid "Paused, tap to resume"
289msgid "Paused, tap to resume"
283msgstr ""
290msgstr ""
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:756
292+#: qml/Panel/Indicators/MenuItemFactory.qml:771
286msgid "Canceled"
293msgid "Canceled"
287msgstr ""
294msgstr ""
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:758
296+#: qml/Panel/Indicators/MenuItemFactory.qml:773
290msgid "Finished"
297msgid "Finished"
291msgstr ""
298msgstr ""
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:760
300+#: qml/Panel/Indicators/MenuItemFactory.qml:775
294msgid "Failed, tap to retry"
301msgid "Failed, tap to retry"
295msgstr ""
302msgstr ""
296
303
@@ -302,51 +309,55 @@ msgstr ""
302msgid "Roaming"
309msgid "Roaming"
303msgstr ""
310msgstr ""
304
311
305−#: qml/Shell.qml:320
312+#: qml/Shell.qml:381
306−msgid "Enter your passphrase"
313+msgid "Enter passphrase"
307msgstr ""
314msgstr ""
308
315
309−#: qml/Shell.qml:321
316+#: qml/Shell.qml:382
310msgid "Sorry, incorrect passphrase"
317msgid "Sorry, incorrect passphrase"
311msgstr ""
318msgstr ""
312
319
313−#: qml/Shell.qml:323
320+#: qml/Shell.qml:383
321+msgid "Please re-enter"
322+msgstr ""
323+
324+#: qml/Shell.qml:385
314−msgid "Enter your passcode"
325+msgid "Enter passcode"
315msgstr ""
326msgstr ""
316
327
317−#: qml/Shell.qml:324
328+#: qml/Shell.qml:386
318msgid "Sorry, incorrect passcode"
329msgid "Sorry, incorrect passcode"
319msgstr ""
330msgstr ""
320
331
321−#: qml/Shell.qml:327
332+#: qml/Shell.qml:389
322#, qt-format
333#, qt-format
323−msgid "Enter your %1"
334+msgid "Enter %1"
324msgstr ""
335msgstr ""
325
336
326−#: qml/Shell.qml:328
337+#: qml/Shell.qml:390
327#, qt-format
338#, qt-format
328msgid "Sorry, incorrect %1"
339msgid "Sorry, incorrect %1"
329msgstr ""
340msgstr ""
330
341
331−#: qml/Shell.qml:363
342+#: qml/Shell.qml:431
332msgid "Sorry, incorrect passphrase."
343msgid "Sorry, incorrect passphrase."
333msgstr ""
344msgstr ""
334
345
335−#: qml/Shell.qml:364
346+#: qml/Shell.qml:432
336msgid "Sorry, incorrect passcode."
347msgid "Sorry, incorrect passcode."
337msgstr ""
348msgstr ""
338
349
339−#: qml/Shell.qml:365
350+#: qml/Shell.qml:433
340msgid "This will be your last attempt."
351msgid "This will be your last attempt."
341msgstr ""
352msgstr ""
342
353
343−#: qml/Shell.qml:367
354+#: qml/Shell.qml:435
344msgid ""
355msgid ""
345"If passphrase is entered incorrectly, your phone will conduct a factory "
356"If passphrase is entered incorrectly, your phone will conduct a factory "
346"reset and all personal data will be deleted."
357"reset and all personal data will be deleted."
347msgstr ""
358msgstr ""
348
359
349−#: qml/Shell.qml:368
360+#: qml/Shell.qml:436
350msgid ""
361msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
362"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
363"and all personal data will be deleted."
po/fr.po+102−90
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-08-29 10:31+0000\n"
11+"PO-Revision-Date: 2014-11-05 17:30+0000\n"
12"Last-Translator: Sébastien Maes <nautilussebastien@gmail.com>\n"
12"Last-Translator: Sébastien Maes <nautilussebastien@gmail.com>\n"
13"Language-Team: French <fr@li.org>\n"
13"Language-Team: French <fr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n > 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,45 +31,68 @@ msgstr "Épingler le raccourci"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Détacher le raccourci"
32msgstr "Détacher le raccourci"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Périphérique verrouillé"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+"Vous avez été bloqué suite à un trop grand nombre de tentatives de saisie "
42+"d'une phrase de passe erronée."
43+
44+#: qml/Components/DelayedLockscreen.qml:63
45+msgid "You have been locked out due to too many failed passcode attempts."
46+msgstr ""
47+"Vous avez été bloqué suite à un trop grand nombre de tentatives de saisie "
48+"d'un mot de passe erroné."
49+
50+#: qml/Components/DelayedLockscreen.qml:72
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] "Veuillez patienter %1 minute et réessayer..."
55+msgstr[1] "Veuillez patienter %1 minutes et réessayer..."
56+
57+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
58msgid "Log out"
35msgstr "Se déconnecter"
59msgstr "Se déconnecter"
36
60
37−#: qml/Components/Dialogs.qml:71
61+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
62msgid "Are you sure you want to log out?"
39msgstr "Êtes-vous sûr de vouloir vous déconnecter ?"
63msgstr "Êtes-vous sûr de vouloir vous déconnecter ?"
40
64
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
65+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
66+#: qml/Components/Dialogs.qml:126
43msgid "No"
67msgid "No"
44msgstr "Non"
68msgstr "Non"
45
69
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
70+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
71+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
72msgid "Yes"
49msgstr "Oui"
73msgstr "Oui"
50
74
51−#: qml/Components/Dialogs.qml:94
75+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
76msgid "Shut down"
53msgstr "Éteindre"
77msgstr "Éteindre"
54
78
55−#: qml/Components/Dialogs.qml:95
79+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
80msgid "Are you sure you want to shut down?"
57msgstr "Êtes-vous sûr de vouloir éteindre ?"
81msgstr "Êtes-vous sûr de vouloir éteindre ?"
58
82
59−#: qml/Components/Dialogs.qml:119
83+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
84msgid "Reboot"
61msgstr "Redémarrer"
85msgstr "Redémarrer"
62
86
63−#: qml/Components/Dialogs.qml:120
87+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
65msgstr "Êtes-vous sûr de vouloir redémarrer ?"
89msgstr "Êtes-vous sûr de vouloir redémarrer ?"
66
90
67−#: qml/Components/Dialogs.qml:144
91+#: qml/Components/Dialogs.qml:148
68msgid "Power"
92msgid "Power"
69msgstr "Alimentation"
93msgstr "Alimentation"
70
94
71−#: qml/Components/Dialogs.qml:145
95+#: qml/Components/Dialogs.qml:149
72msgid ""
96msgid ""
73"Are you sure you would like\n"
97"Are you sure you would like\n"
74"to power off?"
98"to power off?"
@@ -76,15 +100,15 @@ msgstr ""
76"Êtes-vous sûr de vouloir\n"
100"Êtes-vous sûr de vouloir\n"
77"couper l'alimentation ?"
101"couper l'alimentation ?"
78
102
79−#: qml/Components/Dialogs.qml:147
103+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
104msgid "Power off"
81msgstr "Éteindre"
105msgstr "Éteindre"
82
106
83−#: qml/Components/Dialogs.qml:157
107+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
108msgid "Restart"
85msgstr "Redémarrer"
109msgstr "Redémarrer"
86
110
87−#: qml/Components/Dialogs.qml:167
111+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
112msgid "Cancel"
89msgstr "Annuler"
113msgstr "Annuler"
90
114
@@ -121,21 +145,21 @@ msgstr ""
121"Faites glisser à nouveau votre doigt vers le bord supérieur pour fermer "
145"Faites glisser à nouveau votre doigt vers le bord supérieur pour fermer "
122"l'écran des paramètres"
146"l'écran des paramètres"
123
147
124−#: qml/Components/EdgeDemo.qml:198
148+#: qml/Components/EdgeDemo.qml:201
125msgid "Left edge"
149msgid "Left edge"
126msgstr "Bord gauche"
150msgstr "Bord gauche"
127
151
128−#: qml/Components/EdgeDemo.qml:199
152+#: qml/Components/EdgeDemo.qml:202
129msgid "Swipe from the left to reveal the launcher for quick access to apps"
153msgid "Swipe from the left to reveal the launcher for quick access to apps"
130msgstr ""
154msgstr ""
131"Faites glisser votre doigt à partir du bord gauche pour afficher le lanceur "
155"Faites glisser votre doigt à partir du bord gauche pour afficher le lanceur "
132"d'applications."
156"d'applications."
133
157
134−#: qml/Components/EdgeDemo.qml:226
158+#: qml/Components/EdgeDemo.qml:229
135msgid "Well done"
159msgid "Well done"
136msgstr "Félicitations"
160msgstr "Félicitations"
137
161
138−#: qml/Components/EdgeDemo.qml:227
162+#: qml/Components/EdgeDemo.qml:230
139msgid ""
163msgid ""
140"You have now mastered the edge gestures and can start using the "
164"You have now mastered the edge gestures and can start using the "
141"phone<br><br>Tap on the screen to start"
165"phone<br><br>Tap on the screen to start"
@@ -143,40 +167,27 @@ msgstr ""
143"Vous maîtrisez maintenant les différents gestes et pouvez commencer à "
167"Vous maîtrisez maintenant les différents gestes et pouvez commencer à "
144"utiliser le téléphone<br><br>Appuyez sur l'écran pour commencer"
168"utiliser le téléphone<br><br>Appuyez sur l'écran pour commencer"
145
169
146−#: qml/Components/Lockscreen.qml:167
170+#: qml/Components/Lockscreen.qml:223
147−msgid "Please wait"
171+msgid "Return to Call"
148−msgstr "Veuillez patienter"
172+msgstr "Retourner à l'appel"
149−
150−#: qml/Components/Lockscreen.qml:172
151−msgid "Too many incorrect attempts"
152−msgstr "Trop de tentatives incorrectes"
153
173
154−#: qml/Components/Lockscreen.qml:206
174+#: qml/Components/Lockscreen.qml:223
155msgid "Emergency Call"
175msgid "Emergency Call"
156msgstr "Appel d'urgence"
176msgstr "Appel d'urgence"
157
177
158−#: qml/Components/Lockscreen.qml:226
178+#: qml/Components/Lockscreen.qml:255
159msgid "OK"
179msgid "OK"
160msgstr "OK"
180msgstr "OK"
161
181
162−#: qml/Components/PassphraseLockscreen.qml:61
163−#, qt-format
164−msgid "Hello %1"
165−msgstr "Bonjour %1"
166−
167−#: qml/Components/PassphraseLockscreen.qml:61
168−msgid "Hello"
169−msgstr "Bonjour"
170−
171−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
182+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
172msgid "See less"
183msgid "See less"
173msgstr "Voir moins"
184msgstr "Voir moins"
174
185
175−#: qml/Dash/GenericScopeView.qml:411
186+#: qml/Dash/GenericScopeView.qml:434
176msgid "See all"
187msgid "See all"
177msgstr "Tout voir"
188msgstr "Tout voir"
178
189
179−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
190+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
180#: qml/Panel/SearchIndicator.qml:27
191#: qml/Panel/SearchIndicator.qml:27
181msgid "Search"
192msgid "Search"
182msgstr "Rechercher"
193msgstr "Rechercher"
@@ -213,15 +224,23 @@ msgstr "Ajouter un avis"
213msgid "Send"
224msgid "Send"
214msgstr "Envoyer"
225msgstr "Envoyer"
215
226
227+#: qml/Dash/PullToRefreshScopeStyle.qml:55
228+msgid "Pull to refresh…"
229+msgstr "Tirer pour actualiser..."
230+
231+#: qml/Dash/PullToRefreshScopeStyle.qml:60
232+msgid "Release to refresh…"
233+msgstr "Relâcher pour actualiser..."
234+
216−#: qml/Dash/ScopesOverview.qml:206
235+#: qml/Dash/ScopesOverview.qml:215
217msgid "Manage Scopes"
236msgid "Manage Scopes"
218−msgstr ""
237+msgstr "Gérer les moteurs de recherche"
219
238
220−#: qml/Dash/ScopesOverview.qml:428
239+#: qml/Dash/ScopesOverview.qml:437
221msgid "Done"
240msgid "Done"
222msgstr "Terminé"
241msgstr "Terminé"
223
242
224−#: qml/Dash/ScopesOverview.qml:454
243+#: qml/Dash/ScopesOverview.qml:463
225msgid "Store"
244msgid "Store"
226msgstr "Logithèque"
245msgstr "Logithèque"
227
246
@@ -233,9 +252,9 @@ msgstr "Favorites"
233msgid "All"
252msgid "All"
234msgstr "Toutes"
253msgstr "Toutes"
235
254
236−#: qml/Greeter/Greeter.qml:157
255+#: qml/Greeter/Greeter.qml:174
237−msgid "Swipe to unlock"
256+msgid "Unlock"
238−msgstr "Faites glisser pour déverrouiller"
257+msgstr "Déverrouiller"
239
258
240#: qml/Hud/HudParametrizedActionsPage.qml:139
259#: qml/Hud/HudParametrizedActionsPage.qml:139
241msgid "Confirm"
260msgid "Confirm"
@@ -257,51 +276,43 @@ msgstr "Parlez maintenant…"
257msgid "Speaking..."
276msgid "Speaking..."
258msgstr "En cours d'écoute..."
277msgstr "En cours d'écoute..."
259
278
260−#: qml/Notifications/NotificationMenuItemFactory.qml:108
279+#: qml/Notifications/NotificationMenuItemFactory.qml:116
261msgid "Show password"
280msgid "Show password"
262msgstr "Afficher le mot de passe"
281msgstr "Afficher le mot de passe"
263
282
264−#: qml/Notifications/NotificationMenuItemFactory.qml:124
265−msgid "Enter SIM PIN"
266−msgstr "Entrez le code PIN de la SIM"
267−
268−#: qml/Notifications/NotificationMenuItemFactory.qml:125
269−msgid "Sorry, incorrect PIN"
270−msgstr "Désolé, code PIN incorrect"
271−
272−#: qml/Panel/ActiveCallHint.qml:77
283+#: qml/Panel/ActiveCallHint.qml:79
273msgid "Tap to return to call..."
284msgid "Tap to return to call..."
274msgstr "Appuyez pour revenir à l'appel…"
285msgstr "Appuyez pour revenir à l'appel…"
275
286
276−#: qml/Panel/ActiveCallHint.qml:90
287+#: qml/Panel/ActiveCallHint.qml:92
277msgid "Conference"
288msgid "Conference"
278msgstr "Conférence"
289msgstr "Conférence"
279
290
280−#: qml/Panel/Indicators/MenuItemFactory.qml:600
291+#: qml/Panel/Indicators/MenuItemFactory.qml:615
281msgid "Nothing is playing"
292msgid "Nothing is playing"
282−msgstr ""
293+msgstr "Rien n'est en cours de lecture"
283
294
284−#: qml/Panel/Indicators/MenuItemFactory.qml:748
295+#: qml/Panel/Indicators/MenuItemFactory.qml:763
285msgid "In queue…"
296msgid "In queue…"
286msgstr "Dans la file d'attente..."
297msgstr "Dans la file d'attente..."
287
298
288−#: qml/Panel/Indicators/MenuItemFactory.qml:752
299+#: qml/Panel/Indicators/MenuItemFactory.qml:767
289msgid "Downloading"
300msgid "Downloading"
290msgstr "Téléchargement en cours"
301msgstr "Téléchargement en cours"
291
302
292−#: qml/Panel/Indicators/MenuItemFactory.qml:754
303+#: qml/Panel/Indicators/MenuItemFactory.qml:769
293msgid "Paused, tap to resume"
304msgid "Paused, tap to resume"
294msgstr "En pause, appuyez pour reprendre"
305msgstr "En pause, appuyez pour reprendre"
295
306
296−#: qml/Panel/Indicators/MenuItemFactory.qml:756
307+#: qml/Panel/Indicators/MenuItemFactory.qml:771
297msgid "Canceled"
308msgid "Canceled"
298msgstr "Annulé"
309msgstr "Annulé"
299
310
300−#: qml/Panel/Indicators/MenuItemFactory.qml:758
311+#: qml/Panel/Indicators/MenuItemFactory.qml:773
301msgid "Finished"
312msgid "Finished"
302msgstr "Terminé"
313msgstr "Terminé"
303
314
304−#: qml/Panel/Indicators/MenuItemFactory.qml:760
315+#: qml/Panel/Indicators/MenuItemFactory.qml:775
305msgid "Failed, tap to retry"
316msgid "Failed, tap to retry"
306msgstr "Échec, appuyez pour réessayer"
317msgstr "Échec, appuyez pour réessayer"
307
318
@@ -313,45 +324,49 @@ msgstr "Déverrouiller la carte SIM"
313msgid "Roaming"
324msgid "Roaming"
314msgstr "Roaming"
325msgstr "Roaming"
315
326
316−#: qml/Shell.qml:320
327+#: qml/Shell.qml:381
317−msgid "Enter your passphrase"
328+msgid "Enter passphrase"
318−msgstr "Entrez votre phrase secrète"
329+msgstr "Saisissez la phrase de passe"
319
330
320−#: qml/Shell.qml:321
331+#: qml/Shell.qml:382
321msgid "Sorry, incorrect passphrase"
332msgid "Sorry, incorrect passphrase"
322msgstr "Désolé, phrase secrète incorrecte"
333msgstr "Désolé, phrase secrète incorrecte"
323
334
324−#: qml/Shell.qml:323
335+#: qml/Shell.qml:383
325−msgid "Enter your passcode"
336+msgid "Please re-enter"
326−msgstr "Entrez votre code"
337+msgstr "Veuillez ressaisir"
327
338
328−#: qml/Shell.qml:324
339+#: qml/Shell.qml:385
340+msgid "Enter passcode"
341+msgstr "Saisissez le mot de passe"
342+
343+#: qml/Shell.qml:386
329msgid "Sorry, incorrect passcode"
344msgid "Sorry, incorrect passcode"
330msgstr "Désolé, code incorrect"
345msgstr "Désolé, code incorrect"
331
346
332−#: qml/Shell.qml:327
347+#: qml/Shell.qml:389
333#, qt-format
348#, qt-format
334−msgid "Enter your %1"
349+msgid "Enter %1"
335−msgstr "Saisissez votre %1"
350+msgstr "Saisissez %1"
336
351
337−#: qml/Shell.qml:328
352+#: qml/Shell.qml:390
338#, qt-format
353#, qt-format
339msgid "Sorry, incorrect %1"
354msgid "Sorry, incorrect %1"
340msgstr "Désolé, %1 incorrect"
355msgstr "Désolé, %1 incorrect"
341
356
342−#: qml/Shell.qml:363
357+#: qml/Shell.qml:431
343msgid "Sorry, incorrect passphrase."
358msgid "Sorry, incorrect passphrase."
344msgstr "Désolé, phrase secrète incorrecte."
359msgstr "Désolé, phrase secrète incorrecte."
345
360
346−#: qml/Shell.qml:364
361+#: qml/Shell.qml:432
347msgid "Sorry, incorrect passcode."
362msgid "Sorry, incorrect passcode."
348msgstr "Désolé, code incorrect."
363msgstr "Désolé, code incorrect."
349
364
350−#: qml/Shell.qml:365
365+#: qml/Shell.qml:433
351msgid "This will be your last attempt."
366msgid "This will be your last attempt."
352msgstr "Ceci sera votre dernière tentative."
367msgstr "Ceci sera votre dernière tentative."
353
368
354−#: qml/Shell.qml:367
369+#: qml/Shell.qml:435
355msgid ""
370msgid ""
356"If passphrase is entered incorrectly, your phone will conduct a factory "
371"If passphrase is entered incorrectly, your phone will conduct a factory "
357"reset and all personal data will be deleted."
372"reset and all personal data will be deleted."
@@ -360,7 +375,7 @@ msgstr ""
360"effectuera une réinitialisation aux paramètres d'usine et toutes les données "
375"effectuera une réinitialisation aux paramètres d'usine et toutes les données "
361"personnelles seront supprimées."
376"personnelles seront supprimées."
362
377
363−#: qml/Shell.qml:368
378+#: qml/Shell.qml:436
364msgid ""
379msgid ""
365"If passcode is entered incorrectly, your phone will conduct a factory reset "
380"If passcode is entered incorrectly, your phone will conduct a factory reset "
366"and all personal data will be deleted."
381"and all personal data will be deleted."
@@ -368,6 +383,3 @@ msgstr ""
368"Si le code est saisi de manière incorrecte, votre téléphone effectuera une "
383"Si le code est saisi de manière incorrecte, votre téléphone effectuera une "
369"réinitialisation aux paramètres d'usine et toutes les données personnelles "
384"réinitialisation aux paramètres d'usine et toutes les données personnelles "
370"seront supprimées."
385"seront supprimées."
371−
372−#~ msgid "Manage Dash"
373−#~ msgstr "Gérer le tableau de bord"
po/gd.po+105−90
@@ -7,15 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-25 12:40+0000\n"
11+"PO-Revision-Date: 2014-10-09 18:09+0000\n"
12"Last-Translator: GunChleoc <Unknown>\n"
12"Last-Translator: GunChleoc <Unknown>\n"
13"Language-Team: Fòram na Gàidhlig\n"
13"Language-Team: Fòram na Gàidhlig\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
18+"(n > 2 && n < 20) ? 2 : 3;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
19+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
20+"X-Generator: Launchpad (build 17223)\n"
19"Language: gd\n"
21"Language: gd\n"
20
22
21#: plugins/LightDM/Greeter.cpp:130
23#: plugins/LightDM/Greeter.cpp:130
@@ -31,45 +33,70 @@ msgstr "Prìnich ath-ghoirid"
31msgid "Unpin shortcut"
33msgid "Unpin shortcut"
32msgstr "Neo-phrìnich an ath-ghoirid"
34msgstr "Neo-phrìnich an ath-ghoirid"
33
35
34−#: qml/Components/Dialogs.qml:70
36+#: qml/Components/DelayedLockscreen.qml:47
37+msgid "Device Locked"
38+msgstr "Tha glas air an uidheam"
39+
40+#: qml/Components/DelayedLockscreen.qml:62
41+msgid "You have been locked out due to too many failed passphrase attempts."
42+msgstr ""
43+"Chaidh do glasadh a-mach às an uidheam on a chuir thu abairt-fhaire chearr a-"
44+"steach cus tursan."
45+
46+#: qml/Components/DelayedLockscreen.qml:63
47+msgid "You have been locked out due to too many failed passcode attempts."
48+msgstr ""
49+"Chaidh do glasadh a-mach às an uidheam on a chuir thu còd-faire cearr a-"
50+"steach cus tursan."
51+
52+#: qml/Components/DelayedLockscreen.qml:72
53+#, qt-format
54+msgid "Please wait %1 minute and then try again…"
55+msgid_plural "Please wait %1 minutes and then try again…"
56+msgstr[0] "Fuirich ort %1 diog 's feuch ris a-rithist an uairsin…"
57+msgstr[1] "Fuirich ort %1 dhiog 's feuch ris a-rithist an uairsin…"
58+msgstr[2] "Fuirich ort %1 diogan 's feuch ris a-rithist an uairsin…"
59+msgstr[3] "Fuirich ort %1 diog 's feuch ris a-rithist an uairsin…"
60+
61+#: qml/Components/Dialogs.qml:74
35msgid "Log out"
62msgid "Log out"
36msgstr "Clàraich a-mach"
63msgstr "Clàraich a-mach"
37
64
38−#: qml/Components/Dialogs.qml:71
65+#: qml/Components/Dialogs.qml:75
39msgid "Are you sure you want to log out?"
66msgid "Are you sure you want to log out?"
40msgstr "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?"
67msgstr "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?"
41
68
42−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
69+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
43−#: qml/Components/Dialogs.qml:122
70+#: qml/Components/Dialogs.qml:126
44msgid "No"
71msgid "No"
45msgstr "Chan eil"
72msgstr "Chan eil"
46
73
47−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
74+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
48−#: qml/Components/Dialogs.qml:129
75+#: qml/Components/Dialogs.qml:133
49msgid "Yes"
76msgid "Yes"
50msgstr "Tha"
77msgstr "Tha"
51
78
52−#: qml/Components/Dialogs.qml:94
79+#: qml/Components/Dialogs.qml:98
53msgid "Shut down"
80msgid "Shut down"
54msgstr "Dùin sìos"
81msgstr "Dùin sìos"
55
82
56−#: qml/Components/Dialogs.qml:95
83+#: qml/Components/Dialogs.qml:99
57msgid "Are you sure you want to shut down?"
84msgid "Are you sure you want to shut down?"
58msgstr "A bheil thu cinnteach gu bheil thu airson a dhùnadh sìos?"
85msgstr "A bheil thu cinnteach gu bheil thu airson a dhùnadh sìos?"
59
86
60−#: qml/Components/Dialogs.qml:119
87+#: qml/Components/Dialogs.qml:123
61msgid "Reboot"
88msgid "Reboot"
62msgstr "Ath-thòisich an siostam"
89msgstr "Ath-thòisich an siostam"
63
90
64−#: qml/Components/Dialogs.qml:120
91+#: qml/Components/Dialogs.qml:124
65msgid "Are you sure you want to reboot?"
92msgid "Are you sure you want to reboot?"
66msgstr "A bheil thu cinnteach gu bheil thu airson tòiseachadh às ùr?"
93msgstr "A bheil thu cinnteach gu bheil thu airson tòiseachadh às ùr?"
67
94
68−#: qml/Components/Dialogs.qml:144
95+#: qml/Components/Dialogs.qml:148
69msgid "Power"
96msgid "Power"
70msgstr "Cumhachd"
97msgstr "Cumhachd"
71
98
72−#: qml/Components/Dialogs.qml:145
99+#: qml/Components/Dialogs.qml:149
73msgid ""
100msgid ""
74"Are you sure you would like\n"
101"Are you sure you would like\n"
75"to power off?"
102"to power off?"
@@ -77,15 +104,15 @@ msgstr ""
77"A bheil thu cinnteach gu bheil thu\n"
104"A bheil thu cinnteach gu bheil thu\n"
78"airson a' chumhachd a chur dheth?"
105"airson a' chumhachd a chur dheth?"
79
106
80−#: qml/Components/Dialogs.qml:147
107+#: qml/Components/Dialogs.qml:151
81msgid "Power off"
108msgid "Power off"
82msgstr "Cuir a' chumhachd dheth"
109msgstr "Cuir a' chumhachd dheth"
83
110
84−#: qml/Components/Dialogs.qml:157
111+#: qml/Components/Dialogs.qml:161
85msgid "Restart"
112msgid "Restart"
86msgstr "Ath-thòisich"
113msgstr "Ath-thòisich"
87
114
88−#: qml/Components/Dialogs.qml:167
115+#: qml/Components/Dialogs.qml:171
89msgid "Cancel"
116msgid "Cancel"
90msgstr "Sguir dheth"
117msgstr "Sguir dheth"
91
118
@@ -121,21 +148,21 @@ msgstr "Dùin"
121msgid "Swipe up again to close the settings screen"
148msgid "Swipe up again to close the settings screen"
122msgstr "Dèan grad-shlaighdeadh a-nìos gus sgrìn nan roghainnean a dhùnadh"
149msgstr "Dèan grad-shlaighdeadh a-nìos gus sgrìn nan roghainnean a dhùnadh"
123
150
124−#: qml/Components/EdgeDemo.qml:198
151+#: qml/Components/EdgeDemo.qml:201
125msgid "Left edge"
152msgid "Left edge"
126msgstr "An oir chlì"
153msgstr "An oir chlì"
127
154
128−#: qml/Components/EdgeDemo.qml:199
155+#: qml/Components/EdgeDemo.qml:202
129msgid "Swipe from the left to reveal the launcher for quick access to apps"
156msgid "Swipe from the left to reveal the launcher for quick access to apps"
130msgstr ""
157msgstr ""
131"Dèan grad-shlaighdeadh on oir chlì air an lòinseir a bheir dhut cothrom "
158"Dèan grad-shlaighdeadh on oir chlì air an lòinseir a bheir dhut cothrom "
132"luath air na h-aplacaidean"
159"luath air na h-aplacaidean"
133
160
134−#: qml/Components/EdgeDemo.qml:226
161+#: qml/Components/EdgeDemo.qml:229
135msgid "Well done"
162msgid "Well done"
136msgstr "Gasta!"
163msgstr "Gasta!"
137
164
138−#: qml/Components/EdgeDemo.qml:227
165+#: qml/Components/EdgeDemo.qml:230
139msgid ""
166msgid ""
140"You have now mastered the edge gestures and can start using the "
167"You have now mastered the edge gestures and can start using the "
141"phone<br><br>Tap on the screen to start"
168"phone<br><br>Tap on the screen to start"
@@ -143,40 +170,27 @@ msgstr ""
143"Fhuair thu air na gluasadan oire ceart a dhèanamh a-nis agus is urrainn dhut "
170"Fhuair thu air na gluasadan oire ceart a dhèanamh a-nis agus is urrainn dhut "
144"am fòn a chleachdadh<br><br>Thoir gnogag air an sgrìn airson tòiseachadh"
171"am fòn a chleachdadh<br><br>Thoir gnogag air an sgrìn airson tòiseachadh"
145
172
146−#: qml/Components/Lockscreen.qml:167
173+#: qml/Components/Lockscreen.qml:223
147−msgid "Please wait"
174+msgid "Return to Call"
148−msgstr "Fuirich ort"
175+msgstr ""
149−
150−#: qml/Components/Lockscreen.qml:172
151−msgid "Too many incorrect attempts"
152−msgstr "Cus oidhirpean leis nach do shoirbhich"
153
176
154−#: qml/Components/Lockscreen.qml:206
177+#: qml/Components/Lockscreen.qml:223
155msgid "Emergency Call"
178msgid "Emergency Call"
156msgstr "Gairm èiginn"
179msgstr "Gairm èiginn"
157
180
158−#: qml/Components/Lockscreen.qml:226
181+#: qml/Components/Lockscreen.qml:255
159msgid "OK"
182msgid "OK"
160msgstr "Ceart ma-thà"
183msgstr "Ceart ma-thà"
161
184
162−#: qml/Components/PassphraseLockscreen.qml:61
163−#, qt-format
164−msgid "Hello %1"
165−msgstr "Shin thu, %1"
166−
167−#: qml/Components/PassphraseLockscreen.qml:61
168−msgid "Hello"
169−msgstr "Shin thu"
170−
171−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
185+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
172msgid "See less"
186msgid "See less"
173msgstr "Seall nas lugha"
187msgstr "Seall nas lugha"
174
188
175−#: qml/Dash/GenericScopeView.qml:411
189+#: qml/Dash/GenericScopeView.qml:434
176msgid "See all"
190msgid "See all"
177msgstr "Seall na h-uile"
191msgstr "Seall na h-uile"
178
192
179−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
193+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
180#: qml/Panel/SearchIndicator.qml:27
194#: qml/Panel/SearchIndicator.qml:27
181msgid "Search"
195msgid "Search"
182msgstr "Lorg"
196msgstr "Lorg"
@@ -213,15 +227,23 @@ msgstr "Cuir lèirmheas ris"
213msgid "Send"
227msgid "Send"
214msgstr "Cuir"
228msgstr "Cuir"
215
229
230+#: qml/Dash/PullToRefreshScopeStyle.qml:55
231+msgid "Pull to refresh…"
232+msgstr "Tarraing airson ath-nuadhachadh…"
233+
234+#: qml/Dash/PullToRefreshScopeStyle.qml:60
235+msgid "Release to refresh…"
236+msgstr "Leig às airson ath-nuadhachadh…"
237+
216−#: qml/Dash/ScopesOverview.qml:206
238+#: qml/Dash/ScopesOverview.qml:215
217msgid "Manage Scopes"
239msgid "Manage Scopes"
218−msgstr ""
240+msgstr "Stiùirich na sgòpaichean"
219
241
220−#: qml/Dash/ScopesOverview.qml:428
242+#: qml/Dash/ScopesOverview.qml:437
221msgid "Done"
243msgid "Done"
222msgstr "Deiseil"
244msgstr "Deiseil"
223
245
224−#: qml/Dash/ScopesOverview.qml:454
246+#: qml/Dash/ScopesOverview.qml:463
225msgid "Store"
247msgid "Store"
226msgstr "Am bùth"
248msgstr "Am bùth"
227
249
@@ -233,9 +255,9 @@ msgstr "Annsachdan"
233msgid "All"
255msgid "All"
234msgstr "Na h-uile"
256msgstr "Na h-uile"
235
257
236−#: qml/Greeter/Greeter.qml:157
258+#: qml/Greeter/Greeter.qml:174
237−msgid "Swipe to unlock"
259+msgid "Unlock"
238−msgstr "Dèan grad-shlaighdeadh gus a' ghlas a thoirt dheth"
260+msgstr "Thoir a' ghlas dheth"
239
261
240#: qml/Hud/HudParametrizedActionsPage.qml:139
262#: qml/Hud/HudParametrizedActionsPage.qml:139
241msgid "Confirm"
263msgid "Confirm"
@@ -257,51 +279,43 @@ msgstr "Can rud a-nis..."
257msgid "Speaking..."
279msgid "Speaking..."
258msgstr "A' bruidhinn..."
280msgstr "A' bruidhinn..."
259
281
260−#: qml/Notifications/NotificationMenuItemFactory.qml:108
282+#: qml/Notifications/NotificationMenuItemFactory.qml:116
261msgid "Show password"
283msgid "Show password"
262msgstr "Seall am facal-faire"
284msgstr "Seall am facal-faire"
263
285
264−#: qml/Notifications/NotificationMenuItemFactory.qml:124
265−msgid "Enter SIM PIN"
266−msgstr "Cuir a-steach PIN an t-SIM"
267−
268−#: qml/Notifications/NotificationMenuItemFactory.qml:125
269−msgid "Sorry, incorrect PIN"
270−msgstr "Duilich ach tha a' PIN cearr"
271−
272−#: qml/Panel/ActiveCallHint.qml:77
286+#: qml/Panel/ActiveCallHint.qml:79
273msgid "Tap to return to call..."
287msgid "Tap to return to call..."
274msgstr "Gnog gus tilleadh dhan ghairm..."
288msgstr "Gnog gus tilleadh dhan ghairm..."
275
289
276−#: qml/Panel/ActiveCallHint.qml:90
290+#: qml/Panel/ActiveCallHint.qml:92
277msgid "Conference"
291msgid "Conference"
278msgstr "Gairm co-labhairt"
292msgstr "Gairm co-labhairt"
279
293
280−#: qml/Panel/Indicators/MenuItemFactory.qml:600
294+#: qml/Panel/Indicators/MenuItemFactory.qml:615
281msgid "Nothing is playing"
295msgid "Nothing is playing"
282−msgstr ""
296+msgstr "Chan eil dad 'ga chluich"
283
297
284−#: qml/Panel/Indicators/MenuItemFactory.qml:748
298+#: qml/Panel/Indicators/MenuItemFactory.qml:763
285msgid "In queue…"
299msgid "In queue…"
286msgstr "Air a' chiudha…"
300msgstr "Air a' chiudha…"
287
301
288−#: qml/Panel/Indicators/MenuItemFactory.qml:752
302+#: qml/Panel/Indicators/MenuItemFactory.qml:767
289msgid "Downloading"
303msgid "Downloading"
290msgstr "'Ga luchdadh a-nuas"
304msgstr "'Ga luchdadh a-nuas"
291
305
292−#: qml/Panel/Indicators/MenuItemFactory.qml:754
306+#: qml/Panel/Indicators/MenuItemFactory.qml:769
293msgid "Paused, tap to resume"
307msgid "Paused, tap to resume"
294msgstr "'Na stad, thoir gnogag gus leantainn air"
308msgstr "'Na stad, thoir gnogag gus leantainn air"
295
309
296−#: qml/Panel/Indicators/MenuItemFactory.qml:756
310+#: qml/Panel/Indicators/MenuItemFactory.qml:771
297msgid "Canceled"
311msgid "Canceled"
298msgstr "Air a sgur dheth"
312msgstr "Air a sgur dheth"
299
313
300−#: qml/Panel/Indicators/MenuItemFactory.qml:758
314+#: qml/Panel/Indicators/MenuItemFactory.qml:773
301msgid "Finished"
315msgid "Finished"
302msgstr "Coileanta"
316msgstr "Coileanta"
303
317
304−#: qml/Panel/Indicators/MenuItemFactory.qml:760
318+#: qml/Panel/Indicators/MenuItemFactory.qml:775
305msgid "Failed, tap to retry"
319msgid "Failed, tap to retry"
306msgstr "Dh'fhàillig leis, thoir gnogag gus feuchainn a-rithist"
320msgstr "Dh'fhàillig leis, thoir gnogag gus feuchainn a-rithist"
307
321
@@ -313,45 +327,49 @@ msgstr "Thoir a' ghlas far an SIM"
313msgid "Roaming"
327msgid "Roaming"
314msgstr "Air fàrsan"
328msgstr "Air fàrsan"
315
329
316−#: qml/Shell.qml:320
330+#: qml/Shell.qml:381
317−msgid "Enter your passphrase"
331+msgid "Enter passphrase"
318−msgstr "Cuir an abairt-fhaire agad a-steach"
332+msgstr "Cuir abairt-fhaire a-steach"
319
333
320−#: qml/Shell.qml:321
334+#: qml/Shell.qml:382
321msgid "Sorry, incorrect passphrase"
335msgid "Sorry, incorrect passphrase"
322msgstr "Duilich ach tha an abairt-fhaire cearr"
336msgstr "Duilich ach tha an abairt-fhaire cearr"
323
337
324−#: qml/Shell.qml:323
338+#: qml/Shell.qml:383
325−msgid "Enter your passcode"
339+msgid "Please re-enter"
326−msgstr "Cuir an còd-faire agad a-steach"
340+msgstr "Cuir a-steach e a-rithist"
327
341
328−#: qml/Shell.qml:324
342+#: qml/Shell.qml:385
343+msgid "Enter passcode"
344+msgstr "Cuir còd-faire a-steach"
345+
346+#: qml/Shell.qml:386
329msgid "Sorry, incorrect passcode"
347msgid "Sorry, incorrect passcode"
330msgstr "Duilich ach tha an còd-faire cearr"
348msgstr "Duilich ach tha an còd-faire cearr"
331
349
332−#: qml/Shell.qml:327
350+#: qml/Shell.qml:389
333#, qt-format
351#, qt-format
334−msgid "Enter your %1"
352+msgid "Enter %1"
335−msgstr "Cuir a-steach a' %1 agad"
353+msgstr "Cuir a-steach %1"
336
354
337−#: qml/Shell.qml:328
355+#: qml/Shell.qml:390
338#, qt-format
356#, qt-format
339msgid "Sorry, incorrect %1"
357msgid "Sorry, incorrect %1"
340msgstr "Duilich ach tha a' %1 cearr"
358msgstr "Duilich ach tha a' %1 cearr"
341
359
342−#: qml/Shell.qml:363
360+#: qml/Shell.qml:431
343msgid "Sorry, incorrect passphrase."
361msgid "Sorry, incorrect passphrase."
344msgstr "Duilich ach tha an abairt-fhaire cearr."
362msgstr "Duilich ach tha an abairt-fhaire cearr."
345
363
346−#: qml/Shell.qml:364
364+#: qml/Shell.qml:432
347msgid "Sorry, incorrect passcode."
365msgid "Sorry, incorrect passcode."
348msgstr "Duilich ach tha an còd-faire cearr."
366msgstr "Duilich ach tha an còd-faire cearr."
349
367
350−#: qml/Shell.qml:365
368+#: qml/Shell.qml:433
351msgid "This will be your last attempt."
369msgid "This will be your last attempt."
352msgstr "Seo an oidhirp mu dheireadh agad."
370msgstr "Seo an oidhirp mu dheireadh agad."
353
371
354−#: qml/Shell.qml:367
372+#: qml/Shell.qml:435
355msgid ""
373msgid ""
356"If passphrase is entered incorrectly, your phone will conduct a factory "
374"If passphrase is entered incorrectly, your phone will conduct a factory "
357"reset and all personal data will be deleted."
375"reset and all personal data will be deleted."
@@ -360,7 +378,7 @@ msgstr ""
360"ath-shuidheachadh air roghainnean an fhactaraidh agus thèid gach dàta "
378"ath-shuidheachadh air roghainnean an fhactaraidh agus thèid gach dàta "
361"pearsanta a sguabadh às."
379"pearsanta a sguabadh às."
362
380
363−#: qml/Shell.qml:368
381+#: qml/Shell.qml:436
364msgid ""
382msgid ""
365"If passcode is entered incorrectly, your phone will conduct a factory reset "
383"If passcode is entered incorrectly, your phone will conduct a factory reset "
366"and all personal data will be deleted."
384"and all personal data will be deleted."
@@ -368,6 +386,3 @@ msgstr ""
368"Ma thèid an còd-faire a chur a-steach mar bu chòir, thèid an fhòn agad a ath-"
386"Ma thèid an còd-faire a chur a-steach mar bu chòir, thèid an fhòn agad a ath-"
369"shuidheachadh air roghainnean an fhactaraidh agus thèid gach dàta pearsanta "
387"shuidheachadh air roghainnean an fhactaraidh agus thèid gach dàta pearsanta "
370"a sguabadh às."
388"a sguabadh às."
371−
372−#~ msgid "Manage Dash"
373−#~ msgstr "Stiùirich an deas-bhòrd"
po/gl.po+93−85
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-28 13:57+0000\n"
11+"PO-Revision-Date: 2014-11-06 13:30+0000\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
13"Language-Team: Galician <gl@li.org>\n"
13"Language-Team: Galician <gl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-07 06:52+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17231)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr "Fixar o atallo"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Eliminar o atallo"
32msgstr "Eliminar o atallo"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Dispositivo bloqueado"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr "Bloqueouse o dispositivo polos intentos fallidos da frase secreta."
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr "Bloqueouse o dispositivo polos intentos fallidos da clave."
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] "Agarde %1 minuto e ténteo de novo…"
51+msgstr[1] "Agarde %1 minutos e ténteo de novo…"
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr "Saír da sesión"
55msgstr "Saír da sesión"
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr "Está seguro de querer pechar a sesión?"
59msgstr "Está seguro de querer pechar a sesión?"
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr "Non"
64msgstr "Non"
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr "Si"
69msgstr "Si"
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr "Apagar"
73msgstr "Apagar"
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr "Está seguro de querer apagar?"
77msgstr "Está seguro de querer apagar?"
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr "Reiniciar"
81msgstr "Reiniciar"
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr "Está seguro de querer reiniciar?"
85msgstr "Está seguro de querer reiniciar?"
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr "Enerxía"
89msgstr "Enerxía"
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr "Está seguro de querer apagar?"
95msgstr "Está seguro de querer apagar?"
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr "Apagar"
99msgstr "Apagar"
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr "Reiniciar"
103msgstr "Reiniciar"
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr "Cancelar"
107msgstr "Cancelar"
88
108
@@ -114,21 +134,21 @@ msgstr "Pechar"
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr "Esvare o dedo de novo cara a arriba para pechar os axustes"
135msgstr "Esvare o dedo de novo cara a arriba para pechar os axustes"
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr "Bordo esquerdo"
139msgstr "Bordo esquerdo"
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
143msgstr ""
124"Esvare o dedo desde a esquerda para mostrar o iniciador rápido dos "
144"Esvare o dedo desde a esquerda para mostrar o iniciador rápido dos "
125"aplicativos"
145"aplicativos"
126
146
127−#: qml/Components/EdgeDemo.qml:226
147+#: qml/Components/EdgeDemo.qml:229
128msgid "Well done"
148msgid "Well done"
129msgstr "Ben feito!"
149msgstr "Ben feito!"
130
150
131−#: qml/Components/EdgeDemo.qml:227
151+#: qml/Components/EdgeDemo.qml:230
132msgid ""
152msgid ""
133"You have now mastered the edge gestures and can start using the "
153"You have now mastered the edge gestures and can start using the "
134"phone<br><br>Tap on the screen to start"
154"phone<br><br>Tap on the screen to start"
@@ -136,40 +156,27 @@ msgstr ""
136"Agora xa domina os xestos dos bordos e pode comezar a usar o "
156"Agora xa domina os xestos dos bordos e pode comezar a usar o "
137"teléfono<br><br>Toque na pantalla para comezar"
157"teléfono<br><br>Toque na pantalla para comezar"
138
158
139−#: qml/Components/Lockscreen.qml:167
159+#: qml/Components/Lockscreen.qml:223
140−msgid "Please wait"
160+msgid "Return to Call"
141−msgstr "Agarde"
161+msgstr "Volver á chamada"
142−
143−#: qml/Components/Lockscreen.qml:172
144−msgid "Too many incorrect attempts"
145−msgstr "Demasiados erros"
146
162
147−#: qml/Components/Lockscreen.qml:206
163+#: qml/Components/Lockscreen.qml:223
148msgid "Emergency Call"
164msgid "Emergency Call"
149msgstr "Chamada de emerxencia"
165msgstr "Chamada de emerxencia"
150
166
151−#: qml/Components/Lockscreen.qml:226
167+#: qml/Components/Lockscreen.qml:255
152msgid "OK"
168msgid "OK"
153msgstr "Aceptar"
169msgstr "Aceptar"
154
170
155−#: qml/Components/PassphraseLockscreen.qml:61
156−#, qt-format
157−msgid "Hello %1"
158−msgstr "Ola %1"
159−
160−#: qml/Components/PassphraseLockscreen.qml:61
161−msgid "Hello"
162−msgstr "Ola"
163−
164−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
171+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
165msgid "See less"
172msgid "See less"
166msgstr "Ver menos"
173msgstr "Ver menos"
167
174
168−#: qml/Dash/GenericScopeView.qml:411
175+#: qml/Dash/GenericScopeView.qml:434
169msgid "See all"
176msgid "See all"
170msgstr "Ver todo"
177msgstr "Ver todo"
171
178
172−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
173#: qml/Panel/SearchIndicator.qml:27
180#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
181msgid "Search"
175msgstr "Buscar"
182msgstr "Buscar"
@@ -206,15 +213,23 @@ msgstr "Engadir unha opinión"
206msgid "Send"
213msgid "Send"
207msgstr "Enviar"
214msgstr "Enviar"
208
215
216+#: qml/Dash/PullToRefreshScopeStyle.qml:55
217+msgid "Pull to refresh…"
218+msgstr "Tirar para actualizar..."
219+
220+#: qml/Dash/PullToRefreshScopeStyle.qml:60
221+msgid "Release to refresh…"
222+msgstr "Soltar para actualizar"
223+
209−#: qml/Dash/ScopesOverview.qml:206
224+#: qml/Dash/ScopesOverview.qml:215
210msgid "Manage Scopes"
225msgid "Manage Scopes"
211msgstr "Xestionar os Ámbitos"
226msgstr "Xestionar os Ámbitos"
212
227
213−#: qml/Dash/ScopesOverview.qml:428
228+#: qml/Dash/ScopesOverview.qml:437
214msgid "Done"
229msgid "Done"
215msgstr "Feito"
230msgstr "Feito"
216
231
217−#: qml/Dash/ScopesOverview.qml:454
232+#: qml/Dash/ScopesOverview.qml:463
218msgid "Store"
233msgid "Store"
219msgstr "Tenda"
234msgstr "Tenda"
220
235
@@ -226,9 +241,9 @@ msgstr "Favoritos"
226msgid "All"
241msgid "All"
227msgstr "Todos"
242msgstr "Todos"
228
243
229−#: qml/Greeter/Greeter.qml:157
244+#: qml/Greeter/Greeter.qml:174
230−msgid "Swipe to unlock"
245+msgid "Unlock"
231−msgstr "Esvare o dedo para desbloquear"
246+msgstr "Desbloquear"
232
247
233#: qml/Hud/HudParametrizedActionsPage.qml:139
248#: qml/Hud/HudParametrizedActionsPage.qml:139
234msgid "Confirm"
249msgid "Confirm"
@@ -250,51 +265,43 @@ msgstr "Fale agora…"
250msgid "Speaking..."
265msgid "Speaking..."
251msgstr "Falando…"
266msgstr "Falando…"
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:108
268+#: qml/Notifications/NotificationMenuItemFactory.qml:116
254msgid "Show password"
269msgid "Show password"
255msgstr "Mostrar contrasinal"
270msgstr "Mostrar contrasinal"
256
271
257−#: qml/Notifications/NotificationMenuItemFactory.qml:124
258−msgid "Enter SIM PIN"
259−msgstr "Introduza o PIN da SIM"
260−
261−#: qml/Notifications/NotificationMenuItemFactory.qml:125
262−msgid "Sorry, incorrect PIN"
263−msgstr "Sentímolo, o PIN é incorrecto"
264−
265−#: qml/Panel/ActiveCallHint.qml:77
272+#: qml/Panel/ActiveCallHint.qml:79
266msgid "Tap to return to call..."
273msgid "Tap to return to call..."
267msgstr "Toque para volver a chamar..."
274msgstr "Toque para volver a chamar..."
268
275
269−#: qml/Panel/ActiveCallHint.qml:90
276+#: qml/Panel/ActiveCallHint.qml:92
270msgid "Conference"
277msgid "Conference"
271msgstr "Conferencia"
278msgstr "Conferencia"
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:600
280+#: qml/Panel/Indicators/MenuItemFactory.qml:615
274msgid "Nothing is playing"
281msgid "Nothing is playing"
275msgstr "Non hai nada en reprodución"
282msgstr "Non hai nada en reprodución"
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:748
284+#: qml/Panel/Indicators/MenuItemFactory.qml:763
278msgid "In queue…"
285msgid "In queue…"
279msgstr "Na cola..."
286msgstr "Na cola..."
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:752
288+#: qml/Panel/Indicators/MenuItemFactory.qml:767
282msgid "Downloading"
289msgid "Downloading"
283msgstr "Descargando"
290msgstr "Descargando"
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:754
292+#: qml/Panel/Indicators/MenuItemFactory.qml:769
286msgid "Paused, tap to resume"
293msgid "Paused, tap to resume"
287msgstr "Detido, toque para continuar"
294msgstr "Detido, toque para continuar"
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:756
296+#: qml/Panel/Indicators/MenuItemFactory.qml:771
290msgid "Canceled"
297msgid "Canceled"
291msgstr "Cancelado"
298msgstr "Cancelado"
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:758
300+#: qml/Panel/Indicators/MenuItemFactory.qml:773
294msgid "Finished"
301msgid "Finished"
295msgstr "Rematado"
302msgstr "Rematado"
296
303
297−#: qml/Panel/Indicators/MenuItemFactory.qml:760
304+#: qml/Panel/Indicators/MenuItemFactory.qml:775
298msgid "Failed, tap to retry"
305msgid "Failed, tap to retry"
299msgstr "Fallou, toque para reintentar"
306msgstr "Fallou, toque para reintentar"
300
307
@@ -306,45 +313,49 @@ msgstr "Desbloquear a SIM"
306msgid "Roaming"
313msgid "Roaming"
307msgstr "Itinerancia"
314msgstr "Itinerancia"
308
315
309−#: qml/Shell.qml:320
316+#: qml/Shell.qml:381
310−msgid "Enter your passphrase"
317+msgid "Enter passphrase"
311msgstr "Introduza a frase secreta"
318msgstr "Introduza a frase secreta"
312
319
313−#: qml/Shell.qml:321
320+#: qml/Shell.qml:382
314msgid "Sorry, incorrect passphrase"
321msgid "Sorry, incorrect passphrase"
315msgstr "Sentímolo a frase é incorrecta"
322msgstr "Sentímolo a frase é incorrecta"
316
323
317−#: qml/Shell.qml:323
324+#: qml/Shell.qml:383
325+msgid "Please re-enter"
326+msgstr "Introducir de novo"
327+
328+#: qml/Shell.qml:385
318−msgid "Enter your passcode"
329+msgid "Enter passcode"
319msgstr "Introduza a clave"
330msgstr "Introduza a clave"
320
331
321−#: qml/Shell.qml:324
332+#: qml/Shell.qml:386
322msgid "Sorry, incorrect passcode"
333msgid "Sorry, incorrect passcode"
323msgstr "Sentímolo, a clave é incorrecta"
334msgstr "Sentímolo, a clave é incorrecta"
324
335
325−#: qml/Shell.qml:327
336+#: qml/Shell.qml:389
326#, qt-format
337#, qt-format
327−msgid "Enter your %1"
338+msgid "Enter %1"
328msgstr "Introducir %1"
339msgstr "Introducir %1"
329
340
330−#: qml/Shell.qml:328
341+#: qml/Shell.qml:390
331#, qt-format
342#, qt-format
332msgid "Sorry, incorrect %1"
343msgid "Sorry, incorrect %1"
333msgstr "Sentímolo, %1 non coincide"
344msgstr "Sentímolo, %1 non coincide"
334
345
335−#: qml/Shell.qml:363
346+#: qml/Shell.qml:431
336msgid "Sorry, incorrect passphrase."
347msgid "Sorry, incorrect passphrase."
337msgstr "Sentímolo a frase é incorrecta."
348msgstr "Sentímolo a frase é incorrecta."
338
349
339−#: qml/Shell.qml:364
350+#: qml/Shell.qml:432
340msgid "Sorry, incorrect passcode."
351msgid "Sorry, incorrect passcode."
341msgstr "Sentímolo, a clave é incorrecta."
352msgstr "Sentímolo, a clave é incorrecta."
342
353
343−#: qml/Shell.qml:365
354+#: qml/Shell.qml:433
344msgid "This will be your last attempt."
355msgid "This will be your last attempt."
345msgstr "Este será o seu último intento."
356msgstr "Este será o seu último intento."
346
357
347−#: qml/Shell.qml:367
358+#: qml/Shell.qml:435
348msgid ""
359msgid ""
349"If passphrase is entered incorrectly, your phone will conduct a factory "
360"If passphrase is entered incorrectly, your phone will conduct a factory "
350"reset and all personal data will be deleted."
361"reset and all personal data will be deleted."
@@ -352,13 +363,10 @@ msgstr ""
352"Se a frase de paso introducida é incorrecta, o teléfono restabelecerá os "
363"Se a frase de paso introducida é incorrecta, o teléfono restabelecerá os "
353"valores de fábrica e perderá todos os datos persoais."
364"valores de fábrica e perderá todos os datos persoais."
354
365
355−#: qml/Shell.qml:368
366+#: qml/Shell.qml:436
356msgid ""
367msgid ""
357"If passcode is entered incorrectly, your phone will conduct a factory reset "
368"If passcode is entered incorrectly, your phone will conduct a factory reset "
358"and all personal data will be deleted."
369"and all personal data will be deleted."
359msgstr ""
370msgstr ""
360"Se a clave introducida é incorrecta, o teléfono restabelecerá os valores de "
371"Se a clave introducida é incorrecta, o teléfono restabelecerá os valores de "
361"fábrica e perderá todos os datos persoais."
372"fábrica e perderá todos os datos persoais."
362−
363−#~ msgid "Manage Dash"
364−#~ msgstr "Xestión do Panel"
po/he.po+93−82
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-08-23 14:19+0000\n"
11"PO-Revision-Date: 2014-08-23 14:19+0000\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
13"Language-Team: Hebrew <he@li.org>\n"
13"Language-Team: Hebrew <he@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr "הצמדת קיצור דרך"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "הפרדת קיצור הדרך"
32msgstr "הפרדת קיצור הדרך"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr ""
55msgstr ""
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr ""
59msgstr ""
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr ""
64msgstr ""
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr ""
69msgstr ""
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr ""
73msgstr ""
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr ""
77msgstr ""
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr ""
81msgstr ""
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr ""
85msgstr ""
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr ""
89msgstr ""
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr ""
95msgstr ""
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr "כיבוי"
99msgstr "כיבוי"
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr ""
103msgstr ""
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr "ביטול"
107msgstr "ביטול"
88
108
@@ -114,19 +134,19 @@ msgstr "סגירה"
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr "ניתן למשוך שוב כדי לסגור את מסך ההגדרות"
135msgstr "ניתן למשוך שוב כדי לסגור את מסך ההגדרות"
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr "שול שמאלי"
139msgstr "שול שמאלי"
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr "יש למשוך משמאל כדי לחשוף את המשגר לצורך גישה מהירה ליישומים"
143msgstr "יש למשוך משמאל כדי לחשוף את המשגר לצורך גישה מהירה ליישומים"
124
144
125−#: qml/Components/EdgeDemo.qml:226
145+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
146msgid "Well done"
127msgstr "כל הכבוד"
147msgstr "כל הכבוד"
128
148
129−#: qml/Components/EdgeDemo.qml:227
149+#: qml/Components/EdgeDemo.qml:230
130msgid ""
150msgid ""
131"You have now mastered the edge gestures and can start using the "
151"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
152"phone<br><br>Tap on the screen to start"
@@ -134,40 +154,27 @@ msgstr ""
134"ברגעים אלו סיימת את התמחותך בשימוש במחוות קצה והטלפון פתוח לשימושך<br><br>נא "
154"ברגעים אלו סיימת את התמחותך בשימוש במחוות קצה והטלפון פתוח לשימושך<br><br>נא "
135"לגעת במסך כדי להתחיל"
155"לגעת במסך כדי להתחיל"
136
156
137−#: qml/Components/Lockscreen.qml:167
157+#: qml/Components/Lockscreen.qml:223
138−msgid "Please wait"
158+msgid "Return to Call"
139−msgstr "נא להמתין"
159+msgstr ""
140−
141−#: qml/Components/Lockscreen.qml:172
142−msgid "Too many incorrect attempts"
143−msgstr "יותר מדי ניסיונות שגויים"
144
160
145−#: qml/Components/Lockscreen.qml:206
161+#: qml/Components/Lockscreen.qml:223
146msgid "Emergency Call"
162msgid "Emergency Call"
147msgstr "שיחת חירום"
163msgstr "שיחת חירום"
148
164
149−#: qml/Components/Lockscreen.qml:226
165+#: qml/Components/Lockscreen.qml:255
150msgid "OK"
166msgid "OK"
151msgstr "אישור"
167msgstr "אישור"
152
168
153−#: qml/Components/PassphraseLockscreen.qml:61
154−#, qt-format
155−msgid "Hello %1"
156−msgstr "שלום %1"
157−
158−#: qml/Components/PassphraseLockscreen.qml:61
159−msgid "Hello"
160−msgstr "שלום"
161−
162−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
169+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
163msgid "See less"
170msgid "See less"
164msgstr "לראות פחות"
171msgstr "לראות פחות"
165
172
166−#: qml/Dash/GenericScopeView.qml:411
173+#: qml/Dash/GenericScopeView.qml:434
167msgid "See all"
174msgid "See all"
168msgstr "להציג הכול"
175msgstr "להציג הכול"
169
176
170−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
177+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
171#: qml/Panel/SearchIndicator.qml:27
178#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
179msgid "Search"
173msgstr "חיפוש"
180msgstr "חיפוש"
@@ -204,15 +211,23 @@ msgstr "הוספת סקירה"
204msgid "Send"
211msgid "Send"
205msgstr "שליחה"
212msgstr "שליחה"
206
213
214+#: qml/Dash/PullToRefreshScopeStyle.qml:55
215+msgid "Pull to refresh…"
216+msgstr ""
217+
218+#: qml/Dash/PullToRefreshScopeStyle.qml:60
219+msgid "Release to refresh…"
220+msgstr ""
221+
207−#: qml/Dash/ScopesOverview.qml:206
222+#: qml/Dash/ScopesOverview.qml:215
208msgid "Manage Scopes"
223msgid "Manage Scopes"
209msgstr ""
224msgstr ""
210
225
211−#: qml/Dash/ScopesOverview.qml:428
226+#: qml/Dash/ScopesOverview.qml:437
212msgid "Done"
227msgid "Done"
213msgstr "סיימתי"
228msgstr "סיימתי"
214
229
215−#: qml/Dash/ScopesOverview.qml:454
230+#: qml/Dash/ScopesOverview.qml:463
216msgid "Store"
231msgid "Store"
217msgstr "אחסון"
232msgstr "אחסון"
218
233
@@ -224,9 +239,9 @@ msgstr "מועדפים"
224msgid "All"
239msgid "All"
225msgstr "הכול"
240msgstr "הכול"
226
241
227−#: qml/Greeter/Greeter.qml:157
242+#: qml/Greeter/Greeter.qml:174
228−msgid "Swipe to unlock"
243+msgid "Unlock"
229−msgstr "יש להחליק לפתיחה"
244+msgstr ""
230
245
231#: qml/Hud/HudParametrizedActionsPage.qml:139
246#: qml/Hud/HudParametrizedActionsPage.qml:139
232msgid "Confirm"
247msgid "Confirm"
@@ -248,51 +263,43 @@ msgstr "יש לדבר כעת..."
248msgid "Speaking..."
263msgid "Speaking..."
249msgstr "הדיבור מושמע…"
264msgstr "הדיבור מושמע…"
250
265
251−#: qml/Notifications/NotificationMenuItemFactory.qml:108
266+#: qml/Notifications/NotificationMenuItemFactory.qml:116
252msgid "Show password"
267msgid "Show password"
253msgstr "הצגת הססמה"
268msgstr "הצגת הססמה"
254
269
255−#: qml/Notifications/NotificationMenuItemFactory.qml:124
256−msgid "Enter SIM PIN"
257−msgstr ""
258−
259−#: qml/Notifications/NotificationMenuItemFactory.qml:125
260−msgid "Sorry, incorrect PIN"
261−msgstr ""
262−
263−#: qml/Panel/ActiveCallHint.qml:77
270+#: qml/Panel/ActiveCallHint.qml:79
264msgid "Tap to return to call..."
271msgid "Tap to return to call..."
265msgstr "יש לגעת כדי להחזיר שיחה…"
272msgstr "יש לגעת כדי להחזיר שיחה…"
266
273
267−#: qml/Panel/ActiveCallHint.qml:90
274+#: qml/Panel/ActiveCallHint.qml:92
268msgid "Conference"
275msgid "Conference"
269msgstr "ועידה"
276msgstr "ועידה"
270
277
271−#: qml/Panel/Indicators/MenuItemFactory.qml:600
278+#: qml/Panel/Indicators/MenuItemFactory.qml:615
272msgid "Nothing is playing"
279msgid "Nothing is playing"
273msgstr ""
280msgstr ""
274
281
275−#: qml/Panel/Indicators/MenuItemFactory.qml:748
282+#: qml/Panel/Indicators/MenuItemFactory.qml:763
276msgid "In queue…"
283msgid "In queue…"
277msgstr "בתור…"
284msgstr "בתור…"
278
285
279−#: qml/Panel/Indicators/MenuItemFactory.qml:752
286+#: qml/Panel/Indicators/MenuItemFactory.qml:767
280msgid "Downloading"
287msgid "Downloading"
281msgstr "בהורדה"
288msgstr "בהורדה"
282
289
283−#: qml/Panel/Indicators/MenuItemFactory.qml:754
290+#: qml/Panel/Indicators/MenuItemFactory.qml:769
284msgid "Paused, tap to resume"
291msgid "Paused, tap to resume"
285msgstr "מושהה, יש לגעת כדי להמשיך"
292msgstr "מושהה, יש לגעת כדי להמשיך"
286
293
287−#: qml/Panel/Indicators/MenuItemFactory.qml:756
294+#: qml/Panel/Indicators/MenuItemFactory.qml:771
288msgid "Canceled"
295msgid "Canceled"
289msgstr "בוטל"
296msgstr "בוטל"
290
297
291−#: qml/Panel/Indicators/MenuItemFactory.qml:758
298+#: qml/Panel/Indicators/MenuItemFactory.qml:773
292msgid "Finished"
299msgid "Finished"
293msgstr "הושלם"
300msgstr "הושלם"
294
301
295−#: qml/Panel/Indicators/MenuItemFactory.qml:760
302+#: qml/Panel/Indicators/MenuItemFactory.qml:775
296msgid "Failed, tap to retry"
303msgid "Failed, tap to retry"
297msgstr "נכשל, יש לגעת כדי לנסות שוב"
304msgstr "נכשל, יש לגעת כדי לנסות שוב"
298
305
@@ -304,51 +311,55 @@ msgstr ""
304msgid "Roaming"
311msgid "Roaming"
305msgstr "נדידה"
312msgstr "נדידה"
306
313
307−#: qml/Shell.qml:320
314+#: qml/Shell.qml:381
308−msgid "Enter your passphrase"
315+msgid "Enter passphrase"
309−msgstr "נא להזין את מילת הצופן שלך"
316+msgstr ""
310
317
311−#: qml/Shell.qml:321
318+#: qml/Shell.qml:382
312msgid "Sorry, incorrect passphrase"
319msgid "Sorry, incorrect passphrase"
313msgstr "מילת הצופן שגויה, עמך הסליחה."
320msgstr "מילת הצופן שגויה, עמך הסליחה."
314
321
315−#: qml/Shell.qml:323
322+#: qml/Shell.qml:383
323+msgid "Please re-enter"
324+msgstr ""
325+
326+#: qml/Shell.qml:385
316−msgid "Enter your passcode"
327+msgid "Enter passcode"
317msgstr ""
328msgstr ""
318
329
319−#: qml/Shell.qml:324
330+#: qml/Shell.qml:386
320msgid "Sorry, incorrect passcode"
331msgid "Sorry, incorrect passcode"
321msgstr ""
332msgstr ""
322
333
323−#: qml/Shell.qml:327
334+#: qml/Shell.qml:389
324#, qt-format
335#, qt-format
325−msgid "Enter your %1"
336+msgid "Enter %1"
326msgstr ""
337msgstr ""
327
338
328−#: qml/Shell.qml:328
339+#: qml/Shell.qml:390
329#, qt-format
340#, qt-format
330msgid "Sorry, incorrect %1"
341msgid "Sorry, incorrect %1"
331msgstr ""
342msgstr ""
332
343
333−#: qml/Shell.qml:363
344+#: qml/Shell.qml:431
334msgid "Sorry, incorrect passphrase."
345msgid "Sorry, incorrect passphrase."
335msgstr "מילת הצופן שגויה, עמך הסליחה."
346msgstr "מילת הצופן שגויה, עמך הסליחה."
336
347
337−#: qml/Shell.qml:364
348+#: qml/Shell.qml:432
338msgid "Sorry, incorrect passcode."
349msgid "Sorry, incorrect passcode."
339msgstr "הצופן שגוי, עם הסליחה."
350msgstr "הצופן שגוי, עם הסליחה."
340
351
341−#: qml/Shell.qml:365
352+#: qml/Shell.qml:433
342msgid "This will be your last attempt."
353msgid "This will be your last attempt."
343msgstr "זה יהיה הניסיון האחרון שלך."
354msgstr "זה יהיה הניסיון האחרון שלך."
344
355
345−#: qml/Shell.qml:367
356+#: qml/Shell.qml:435
346msgid ""
357msgid ""
347"If passphrase is entered incorrectly, your phone will conduct a factory "
358"If passphrase is entered incorrectly, your phone will conduct a factory "
348"reset and all personal data will be deleted."
359"reset and all personal data will be deleted."
349msgstr ""
360msgstr ""
350
361
351−#: qml/Shell.qml:368
362+#: qml/Shell.qml:436
352msgid ""
363msgid ""
353"If passcode is entered incorrectly, your phone will conduct a factory reset "
364"If passcode is entered incorrectly, your phone will conduct a factory reset "
354"and all personal data will be deleted."
365"and all personal data will be deleted."
po/hi.po+90−79
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-01-15 01:49+0000\n"
11"PO-Revision-Date: 2014-01-15 01:49+0000\n"
12"Last-Translator: Siddhanathan S. <Unknown>\n"
12"Last-Translator: Siddhanathan S. <Unknown>\n"
13"Language-Team: Hindi <hi@li.org>\n"
13"Language-Team: Hindi <hi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr ""
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr ""
32msgstr ""
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr ""
55msgstr ""
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr ""
59msgstr ""
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr ""
64msgstr ""
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr ""
69msgstr ""
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr ""
73msgstr ""
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr ""
77msgstr ""
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr ""
81msgstr ""
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr ""
85msgstr ""
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr ""
89msgstr ""
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr ""
95msgstr ""
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr ""
99msgstr ""
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr ""
103msgstr ""
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr ""
107msgstr ""
88
108
@@ -114,58 +134,45 @@ msgstr "बंद करें"
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr ""
135msgstr ""
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr "बायाँ किनारा"
139msgstr "बायाँ किनारा"
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
143msgstr ""
124
144
125−#: qml/Components/EdgeDemo.qml:226
145+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
146msgid "Well done"
127msgstr "शाबाश"
147msgstr "शाबाश"
128
148
129−#: qml/Components/EdgeDemo.qml:227
149+#: qml/Components/EdgeDemo.qml:230
130msgid ""
150msgid ""
131"You have now mastered the edge gestures and can start using the "
151"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
152"phone<br><br>Tap on the screen to start"
133msgstr ""
153msgstr ""
134
154
135−#: qml/Components/Lockscreen.qml:167
155+#: qml/Components/Lockscreen.qml:223
136−msgid "Please wait"
156+msgid "Return to Call"
137−msgstr ""
138−
139−#: qml/Components/Lockscreen.qml:172
140−msgid "Too many incorrect attempts"
141msgstr ""
157msgstr ""
142
158
143−#: qml/Components/Lockscreen.qml:206
159+#: qml/Components/Lockscreen.qml:223
144msgid "Emergency Call"
160msgid "Emergency Call"
145msgstr "आपातकालीन कॉल"
161msgstr "आपातकालीन कॉल"
146
162
147−#: qml/Components/Lockscreen.qml:226
163+#: qml/Components/Lockscreen.qml:255
148msgid "OK"
164msgid "OK"
149msgstr ""
165msgstr ""
150
166
151−#: qml/Components/PassphraseLockscreen.qml:61
152−#, qt-format
153−msgid "Hello %1"
154−msgstr ""
155−
156−#: qml/Components/PassphraseLockscreen.qml:61
157−msgid "Hello"
158−msgstr "नमस्ते"
159−
160−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
167+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
161msgid "See less"
168msgid "See less"
162msgstr ""
169msgstr ""
163
170
164−#: qml/Dash/GenericScopeView.qml:411
171+#: qml/Dash/GenericScopeView.qml:434
165msgid "See all"
172msgid "See all"
166msgstr ""
173msgstr ""
167
174
168−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
169#: qml/Panel/SearchIndicator.qml:27
176#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
177msgid "Search"
171msgstr "खोजें"
178msgstr "खोजें"
@@ -202,15 +209,23 @@ msgstr "समीक्षा दे"
202msgid "Send"
209msgid "Send"
203msgstr "भेजें"
210msgstr "भेजें"
204
211
212+#: qml/Dash/PullToRefreshScopeStyle.qml:55
213+msgid "Pull to refresh…"
214+msgstr ""
215+
216+#: qml/Dash/PullToRefreshScopeStyle.qml:60
217+msgid "Release to refresh…"
218+msgstr ""
219+
205−#: qml/Dash/ScopesOverview.qml:206
220+#: qml/Dash/ScopesOverview.qml:215
206msgid "Manage Scopes"
221msgid "Manage Scopes"
207msgstr ""
222msgstr ""
208
223
209−#: qml/Dash/ScopesOverview.qml:428
224+#: qml/Dash/ScopesOverview.qml:437
210msgid "Done"
225msgid "Done"
211msgstr ""
226msgstr ""
212
227
213−#: qml/Dash/ScopesOverview.qml:454
228+#: qml/Dash/ScopesOverview.qml:463
214msgid "Store"
229msgid "Store"
215msgstr ""
230msgstr ""
216
231
@@ -222,8 +237,8 @@ msgstr ""
222msgid "All"
237msgid "All"
223msgstr ""
238msgstr ""
224
239
225−#: qml/Greeter/Greeter.qml:157
240+#: qml/Greeter/Greeter.qml:174
226−msgid "Swipe to unlock"
241+msgid "Unlock"
227msgstr ""
242msgstr ""
228
243
229#: qml/Hud/HudParametrizedActionsPage.qml:139
244#: qml/Hud/HudParametrizedActionsPage.qml:139
@@ -246,51 +261,43 @@ msgstr "अब बात करें"
246msgid "Speaking..."
261msgid "Speaking..."
247msgstr "अब बोल रहे हैं"
262msgstr "अब बोल रहे हैं"
248
263
249−#: qml/Notifications/NotificationMenuItemFactory.qml:108
264+#: qml/Notifications/NotificationMenuItemFactory.qml:116
250msgid "Show password"
265msgid "Show password"
251msgstr ""
266msgstr ""
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:124
254−msgid "Enter SIM PIN"
255−msgstr ""
256−
257−#: qml/Notifications/NotificationMenuItemFactory.qml:125
258−msgid "Sorry, incorrect PIN"
259−msgstr ""
260−
261−#: qml/Panel/ActiveCallHint.qml:77
268+#: qml/Panel/ActiveCallHint.qml:79
262msgid "Tap to return to call..."
269msgid "Tap to return to call..."
263msgstr ""
270msgstr ""
264
271
265−#: qml/Panel/ActiveCallHint.qml:90
272+#: qml/Panel/ActiveCallHint.qml:92
266msgid "Conference"
273msgid "Conference"
267msgstr ""
274msgstr ""
268
275
269−#: qml/Panel/Indicators/MenuItemFactory.qml:600
276+#: qml/Panel/Indicators/MenuItemFactory.qml:615
270msgid "Nothing is playing"
277msgid "Nothing is playing"
271msgstr ""
278msgstr ""
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:748
280+#: qml/Panel/Indicators/MenuItemFactory.qml:763
274msgid "In queue…"
281msgid "In queue…"
275msgstr ""
282msgstr ""
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:752
284+#: qml/Panel/Indicators/MenuItemFactory.qml:767
278msgid "Downloading"
285msgid "Downloading"
279msgstr ""
286msgstr ""
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:754
288+#: qml/Panel/Indicators/MenuItemFactory.qml:769
282msgid "Paused, tap to resume"
289msgid "Paused, tap to resume"
283msgstr ""
290msgstr ""
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:756
292+#: qml/Panel/Indicators/MenuItemFactory.qml:771
286msgid "Canceled"
293msgid "Canceled"
287msgstr ""
294msgstr ""
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:758
296+#: qml/Panel/Indicators/MenuItemFactory.qml:773
290msgid "Finished"
297msgid "Finished"
291msgstr ""
298msgstr ""
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:760
300+#: qml/Panel/Indicators/MenuItemFactory.qml:775
294msgid "Failed, tap to retry"
301msgid "Failed, tap to retry"
295msgstr ""
302msgstr ""
296
303
@@ -302,51 +309,55 @@ msgstr ""
302msgid "Roaming"
309msgid "Roaming"
303msgstr ""
310msgstr ""
304
311
305−#: qml/Shell.qml:320
312+#: qml/Shell.qml:381
306−msgid "Enter your passphrase"
313+msgid "Enter passphrase"
307msgstr ""
314msgstr ""
308
315
309−#: qml/Shell.qml:321
316+#: qml/Shell.qml:382
310msgid "Sorry, incorrect passphrase"
317msgid "Sorry, incorrect passphrase"
311msgstr ""
318msgstr ""
312
319
313−#: qml/Shell.qml:323
320+#: qml/Shell.qml:383
321+msgid "Please re-enter"
322+msgstr ""
323+
324+#: qml/Shell.qml:385
314−msgid "Enter your passcode"
325+msgid "Enter passcode"
315msgstr ""
326msgstr ""
316
327
317−#: qml/Shell.qml:324
328+#: qml/Shell.qml:386
318msgid "Sorry, incorrect passcode"
329msgid "Sorry, incorrect passcode"
319msgstr ""
330msgstr ""
320
331
321−#: qml/Shell.qml:327
332+#: qml/Shell.qml:389
322#, qt-format
333#, qt-format
323−msgid "Enter your %1"
334+msgid "Enter %1"
324msgstr ""
335msgstr ""
325
336
326−#: qml/Shell.qml:328
337+#: qml/Shell.qml:390
327#, qt-format
338#, qt-format
328msgid "Sorry, incorrect %1"
339msgid "Sorry, incorrect %1"
329msgstr ""
340msgstr ""
330
341
331−#: qml/Shell.qml:363
342+#: qml/Shell.qml:431
332msgid "Sorry, incorrect passphrase."
343msgid "Sorry, incorrect passphrase."
333msgstr ""
344msgstr ""
334
345
335−#: qml/Shell.qml:364
346+#: qml/Shell.qml:432
336msgid "Sorry, incorrect passcode."
347msgid "Sorry, incorrect passcode."
337msgstr ""
348msgstr ""
338
349
339−#: qml/Shell.qml:365
350+#: qml/Shell.qml:433
340msgid "This will be your last attempt."
351msgid "This will be your last attempt."
341msgstr ""
352msgstr ""
342
353
343−#: qml/Shell.qml:367
354+#: qml/Shell.qml:435
344msgid ""
355msgid ""
345"If passphrase is entered incorrectly, your phone will conduct a factory "
356"If passphrase is entered incorrectly, your phone will conduct a factory "
346"reset and all personal data will be deleted."
357"reset and all personal data will be deleted."
347msgstr ""
358msgstr ""
348
359
349−#: qml/Shell.qml:368
360+#: qml/Shell.qml:436
350msgid ""
361msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
362"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
363"and all personal data will be deleted."
po/hr.po+91−79
@@ -7,15 +7,17 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Croatian <hr@li.org>\n"
13"Language-Team: Croatian <hr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:20+0000\n"
19+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
20+"X-Generator: Launchpad (build 17223)\n"
19
21
20#: plugins/LightDM/Greeter.cpp:130
22#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
23msgid "Password: "
@@ -30,59 +32,78 @@ msgstr ""
30msgid "Unpin shortcut"
32msgid "Unpin shortcut"
31msgstr ""
33msgstr ""
32
34
33−#: qml/Components/Dialogs.qml:70
35+#: qml/Components/DelayedLockscreen.qml:47
36+msgid "Device Locked"
37+msgstr ""
38+
39+#: qml/Components/DelayedLockscreen.qml:62
40+msgid "You have been locked out due to too many failed passphrase attempts."
41+msgstr ""
42+
43+#: qml/Components/DelayedLockscreen.qml:63
44+msgid "You have been locked out due to too many failed passcode attempts."
45+msgstr ""
46+
47+#: qml/Components/DelayedLockscreen.qml:72
48+#, qt-format
49+msgid "Please wait %1 minute and then try again…"
50+msgid_plural "Please wait %1 minutes and then try again…"
51+msgstr[0] ""
52+msgstr[1] ""
53+
54+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
55msgid "Log out"
35msgstr ""
56msgstr ""
36
57
37−#: qml/Components/Dialogs.qml:71
58+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
59msgid "Are you sure you want to log out?"
39msgstr ""
60msgstr ""
40
61
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
62+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
63+#: qml/Components/Dialogs.qml:126
43msgid "No"
64msgid "No"
44msgstr ""
65msgstr ""
45
66
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
67+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
68+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
69msgid "Yes"
49msgstr ""
70msgstr ""
50
71
51−#: qml/Components/Dialogs.qml:94
72+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
73msgid "Shut down"
53msgstr ""
74msgstr ""
54
75
55−#: qml/Components/Dialogs.qml:95
76+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
77msgid "Are you sure you want to shut down?"
57msgstr ""
78msgstr ""
58
79
59−#: qml/Components/Dialogs.qml:119
80+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
81msgid "Reboot"
61msgstr ""
82msgstr ""
62
83
63−#: qml/Components/Dialogs.qml:120
84+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
85msgid "Are you sure you want to reboot?"
65msgstr ""
86msgstr ""
66
87
67−#: qml/Components/Dialogs.qml:144
88+#: qml/Components/Dialogs.qml:148
68msgid "Power"
89msgid "Power"
69msgstr ""
90msgstr ""
70
91
71−#: qml/Components/Dialogs.qml:145
92+#: qml/Components/Dialogs.qml:149
72msgid ""
93msgid ""
73"Are you sure you would like\n"
94"Are you sure you would like\n"
74"to power off?"
95"to power off?"
75msgstr ""
96msgstr ""
76
97
77−#: qml/Components/Dialogs.qml:147
98+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
99msgid "Power off"
79msgstr ""
100msgstr ""
80
101
81−#: qml/Components/Dialogs.qml:157
102+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
103msgid "Restart"
83msgstr ""
104msgstr ""
84
105
85−#: qml/Components/Dialogs.qml:167
106+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
107msgid "Cancel"
87msgstr ""
108msgstr ""
88
109
@@ -114,58 +135,45 @@ msgstr ""
114msgid "Swipe up again to close the settings screen"
135msgid "Swipe up again to close the settings screen"
115msgstr ""
136msgstr ""
116
137
117−#: qml/Components/EdgeDemo.qml:198
138+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
139msgid "Left edge"
119msgstr ""
140msgstr ""
120
141
121−#: qml/Components/EdgeDemo.qml:199
142+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
143msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
144msgstr ""
124
145
125−#: qml/Components/EdgeDemo.qml:226
146+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
147msgid "Well done"
127msgstr ""
148msgstr ""
128
149
129−#: qml/Components/EdgeDemo.qml:227
150+#: qml/Components/EdgeDemo.qml:230
130msgid ""
151msgid ""
131"You have now mastered the edge gestures and can start using the "
152"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
153"phone<br><br>Tap on the screen to start"
133msgstr ""
154msgstr ""
134
155
135−#: qml/Components/Lockscreen.qml:167
156+#: qml/Components/Lockscreen.qml:223
136−msgid "Please wait"
157+msgid "Return to Call"
137−msgstr ""
138−
139−#: qml/Components/Lockscreen.qml:172
140−msgid "Too many incorrect attempts"
141msgstr ""
158msgstr ""
142
159
143−#: qml/Components/Lockscreen.qml:206
160+#: qml/Components/Lockscreen.qml:223
144msgid "Emergency Call"
161msgid "Emergency Call"
145msgstr ""
162msgstr ""
146
163
147−#: qml/Components/Lockscreen.qml:226
164+#: qml/Components/Lockscreen.qml:255
148msgid "OK"
165msgid "OK"
149msgstr ""
166msgstr ""
150
167
151−#: qml/Components/PassphraseLockscreen.qml:61
152−#, qt-format
153−msgid "Hello %1"
154−msgstr ""
155−
156−#: qml/Components/PassphraseLockscreen.qml:61
157−msgid "Hello"
158−msgstr ""
159−
160−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
168+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
161msgid "See less"
169msgid "See less"
162msgstr ""
170msgstr ""
163
171
164−#: qml/Dash/GenericScopeView.qml:411
172+#: qml/Dash/GenericScopeView.qml:434
165msgid "See all"
173msgid "See all"
166msgstr ""
174msgstr ""
167
175
168−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
176+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
169#: qml/Panel/SearchIndicator.qml:27
177#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
178msgid "Search"
171msgstr "Pretraživanje"
179msgstr "Pretraživanje"
@@ -202,15 +210,23 @@ msgstr ""
202msgid "Send"
210msgid "Send"
203msgstr ""
211msgstr ""
204
212
213+#: qml/Dash/PullToRefreshScopeStyle.qml:55
214+msgid "Pull to refresh…"
215+msgstr ""
216+
217+#: qml/Dash/PullToRefreshScopeStyle.qml:60
218+msgid "Release to refresh…"
219+msgstr ""
220+
205−#: qml/Dash/ScopesOverview.qml:206
221+#: qml/Dash/ScopesOverview.qml:215
206msgid "Manage Scopes"
222msgid "Manage Scopes"
207msgstr ""
223msgstr ""
208
224
209−#: qml/Dash/ScopesOverview.qml:428
225+#: qml/Dash/ScopesOverview.qml:437
210msgid "Done"
226msgid "Done"
211msgstr ""
227msgstr ""
212
228
213−#: qml/Dash/ScopesOverview.qml:454
229+#: qml/Dash/ScopesOverview.qml:463
214msgid "Store"
230msgid "Store"
215msgstr ""
231msgstr ""
216
232
@@ -222,8 +238,8 @@ msgstr ""
222msgid "All"
238msgid "All"
223msgstr ""
239msgstr ""
224
240
225−#: qml/Greeter/Greeter.qml:157
241+#: qml/Greeter/Greeter.qml:174
226−msgid "Swipe to unlock"
242+msgid "Unlock"
227msgstr ""
243msgstr ""
228
244
229#: qml/Hud/HudParametrizedActionsPage.qml:139
245#: qml/Hud/HudParametrizedActionsPage.qml:139
@@ -246,51 +262,43 @@ msgstr "Recite..."
246msgid "Speaking..."
262msgid "Speaking..."
247msgstr "Govor..."
263msgstr "Govor..."
248
264
249−#: qml/Notifications/NotificationMenuItemFactory.qml:108
265+#: qml/Notifications/NotificationMenuItemFactory.qml:116
250msgid "Show password"
266msgid "Show password"
251msgstr ""
267msgstr ""
252
268
253−#: qml/Notifications/NotificationMenuItemFactory.qml:124
254−msgid "Enter SIM PIN"
255−msgstr ""
256−
257−#: qml/Notifications/NotificationMenuItemFactory.qml:125
258−msgid "Sorry, incorrect PIN"
259−msgstr ""
260−
261−#: qml/Panel/ActiveCallHint.qml:77
269+#: qml/Panel/ActiveCallHint.qml:79
262msgid "Tap to return to call..."
270msgid "Tap to return to call..."
263msgstr ""
271msgstr ""
264
272
265−#: qml/Panel/ActiveCallHint.qml:90
273+#: qml/Panel/ActiveCallHint.qml:92
266msgid "Conference"
274msgid "Conference"
267msgstr ""
275msgstr ""
268
276
269−#: qml/Panel/Indicators/MenuItemFactory.qml:600
277+#: qml/Panel/Indicators/MenuItemFactory.qml:615
270msgid "Nothing is playing"
278msgid "Nothing is playing"
271msgstr ""
279msgstr ""
272
280
273−#: qml/Panel/Indicators/MenuItemFactory.qml:748
281+#: qml/Panel/Indicators/MenuItemFactory.qml:763
274msgid "In queue…"
282msgid "In queue…"
275msgstr ""
283msgstr ""
276
284
277−#: qml/Panel/Indicators/MenuItemFactory.qml:752
285+#: qml/Panel/Indicators/MenuItemFactory.qml:767
278msgid "Downloading"
286msgid "Downloading"
279msgstr ""
287msgstr ""
280
288
281−#: qml/Panel/Indicators/MenuItemFactory.qml:754
289+#: qml/Panel/Indicators/MenuItemFactory.qml:769
282msgid "Paused, tap to resume"
290msgid "Paused, tap to resume"
283msgstr ""
291msgstr ""
284
292
285−#: qml/Panel/Indicators/MenuItemFactory.qml:756
293+#: qml/Panel/Indicators/MenuItemFactory.qml:771
286msgid "Canceled"
294msgid "Canceled"
287msgstr ""
295msgstr ""
288
296
289−#: qml/Panel/Indicators/MenuItemFactory.qml:758
297+#: qml/Panel/Indicators/MenuItemFactory.qml:773
290msgid "Finished"
298msgid "Finished"
291msgstr ""
299msgstr ""
292
300
293−#: qml/Panel/Indicators/MenuItemFactory.qml:760
301+#: qml/Panel/Indicators/MenuItemFactory.qml:775
294msgid "Failed, tap to retry"
302msgid "Failed, tap to retry"
295msgstr ""
303msgstr ""
296
304
@@ -302,51 +310,55 @@ msgstr ""
302msgid "Roaming"
310msgid "Roaming"
303msgstr ""
311msgstr ""
304
312
305−#: qml/Shell.qml:320
313+#: qml/Shell.qml:381
306−msgid "Enter your passphrase"
314+msgid "Enter passphrase"
307msgstr ""
315msgstr ""
308
316
309−#: qml/Shell.qml:321
317+#: qml/Shell.qml:382
310msgid "Sorry, incorrect passphrase"
318msgid "Sorry, incorrect passphrase"
311msgstr ""
319msgstr ""
312
320
313−#: qml/Shell.qml:323
321+#: qml/Shell.qml:383
322+msgid "Please re-enter"
323+msgstr ""
324+
325+#: qml/Shell.qml:385
314−msgid "Enter your passcode"
326+msgid "Enter passcode"
315msgstr ""
327msgstr ""
316
328
317−#: qml/Shell.qml:324
329+#: qml/Shell.qml:386
318msgid "Sorry, incorrect passcode"
330msgid "Sorry, incorrect passcode"
319msgstr ""
331msgstr ""
320
332
321−#: qml/Shell.qml:327
333+#: qml/Shell.qml:389
322#, qt-format
334#, qt-format
323−msgid "Enter your %1"
335+msgid "Enter %1"
324msgstr ""
336msgstr ""
325
337
326−#: qml/Shell.qml:328
338+#: qml/Shell.qml:390
327#, qt-format
339#, qt-format
328msgid "Sorry, incorrect %1"
340msgid "Sorry, incorrect %1"
329msgstr ""
341msgstr ""
330
342
331−#: qml/Shell.qml:363
343+#: qml/Shell.qml:431
332msgid "Sorry, incorrect passphrase."
344msgid "Sorry, incorrect passphrase."
333msgstr ""
345msgstr ""
334
346
335−#: qml/Shell.qml:364
347+#: qml/Shell.qml:432
336msgid "Sorry, incorrect passcode."
348msgid "Sorry, incorrect passcode."
337msgstr ""
349msgstr ""
338
350
339−#: qml/Shell.qml:365
351+#: qml/Shell.qml:433
340msgid "This will be your last attempt."
352msgid "This will be your last attempt."
341msgstr ""
353msgstr ""
342
354
343−#: qml/Shell.qml:367
355+#: qml/Shell.qml:435
344msgid ""
356msgid ""
345"If passphrase is entered incorrectly, your phone will conduct a factory "
357"If passphrase is entered incorrectly, your phone will conduct a factory "
346"reset and all personal data will be deleted."
358"reset and all personal data will be deleted."
347msgstr ""
359msgstr ""
348
360
349−#: qml/Shell.qml:368
361+#: qml/Shell.qml:436
350msgid ""
362msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
363"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
364"and all personal data will be deleted."
po/hu.po+96−88
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-09-28 09:02+0000\n"
11+"PO-Revision-Date: 2014-11-05 15:45+0000\n"
12"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
12"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,45 +31,64 @@ msgstr "Indító rögzítése"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Indító feloldása"
32msgstr "Indító feloldása"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Eszköz lezárva"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr "A túl sok hibás jelmondat próbálkozás miatt le lett zárva az eszköz."
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr "A túl sok hibás jelkód próbálkozás miatt le lett zárva az eszköz."
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] "Kérjük várjon %1 percet és próbálja újra…"
51+msgstr[1] "Kérjük várjon %1 percet és próbálja újra…"
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr "Kijelentkezés"
55msgstr "Kijelentkezés"
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr "Biztos benne, hogy kijelentkezik?"
59msgstr "Biztos benne, hogy kijelentkezik?"
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr "Nem"
64msgstr "Nem"
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr "Igen"
69msgstr "Igen"
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr "Leállítás"
73msgstr "Leállítás"
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr "Biztosan le szeretné állítani?"
77msgstr "Biztosan le szeretné állítani?"
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr "Újraindítás"
81msgstr "Újraindítás"
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr "Biztosan újra szeretné indítani?"
85msgstr "Biztosan újra szeretné indítani?"
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr "Kikapcsolás"
89msgstr "Kikapcsolás"
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
@@ -76,15 +96,15 @@ msgstr ""
76"Biztos benne, hogy ki\n"
96"Biztos benne, hogy ki\n"
77"szeretné kapcsolni?"
97"szeretné kapcsolni?"
78
98
79−#: qml/Components/Dialogs.qml:147
99+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
100msgid "Power off"
81msgstr "Kikapcsolás"
101msgstr "Kikapcsolás"
82
102
83−#: qml/Components/Dialogs.qml:157
103+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
104msgid "Restart"
85msgstr "Újraindítás"
105msgstr "Újraindítás"
86
106
87−#: qml/Components/Dialogs.qml:167
107+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
108msgid "Cancel"
89msgstr "Mégse"
109msgstr "Mégse"
90
110
@@ -116,21 +136,21 @@ msgstr "Bezárás"
116msgid "Swipe up again to close the settings screen"
136msgid "Swipe up again to close the settings screen"
117msgstr "A beállítások bezárásához csúsztassa ujját újra felfelé"
137msgstr "A beállítások bezárásához csúsztassa ujját újra felfelé"
118
138
119−#: qml/Components/EdgeDemo.qml:198
139+#: qml/Components/EdgeDemo.qml:201
120msgid "Left edge"
140msgid "Left edge"
121msgstr "Bal szél"
141msgstr "Bal szél"
122
142
123−#: qml/Components/EdgeDemo.qml:199
143+#: qml/Components/EdgeDemo.qml:202
124msgid "Swipe from the left to reveal the launcher for quick access to apps"
144msgid "Swipe from the left to reveal the launcher for quick access to apps"
125msgstr ""
145msgstr ""
126"Csúsztassa ujját a bal szélről az indítón található alkalmazások gyors "
146"Csúsztassa ujját a bal szélről az indítón található alkalmazások gyors "
127"eléréséhez"
147"eléréséhez"
128
148
129−#: qml/Components/EdgeDemo.qml:226
149+#: qml/Components/EdgeDemo.qml:229
130msgid "Well done"
150msgid "Well done"
131msgstr "Rendben"
151msgstr "Rendben"
132
152
133−#: qml/Components/EdgeDemo.qml:227
153+#: qml/Components/EdgeDemo.qml:230
134msgid ""
154msgid ""
135"You have now mastered the edge gestures and can start using the "
155"You have now mastered the edge gestures and can start using the "
136"phone<br><br>Tap on the screen to start"
156"phone<br><br>Tap on the screen to start"
@@ -138,40 +158,27 @@ msgstr ""
138"Elsajátította a gesztusokat, és megkezdheti a telefon "
158"Elsajátította a gesztusokat, és megkezdheti a telefon "
139"használatát.<br><br>Koppintson a képernyőre a kezdéshez."
159"használatát.<br><br>Koppintson a képernyőre a kezdéshez."
140
160
141−#: qml/Components/Lockscreen.qml:167
161+#: qml/Components/Lockscreen.qml:223
142−msgid "Please wait"
162+msgid "Return to Call"
143−msgstr "Kérem várjon"
163+msgstr "Vissza a híváshoz"
144−
145−#: qml/Components/Lockscreen.qml:172
146−msgid "Too many incorrect attempts"
147−msgstr "Túl sok sikertelen kísérlet"
148
164
149−#: qml/Components/Lockscreen.qml:206
165+#: qml/Components/Lockscreen.qml:223
150msgid "Emergency Call"
166msgid "Emergency Call"
151msgstr "Vészhívás"
167msgstr "Vészhívás"
152
168
153−#: qml/Components/Lockscreen.qml:226
169+#: qml/Components/Lockscreen.qml:255
154msgid "OK"
170msgid "OK"
155msgstr "Ok"
171msgstr "Ok"
156
172
157−#: qml/Components/PassphraseLockscreen.qml:61
158−#, qt-format
159−msgid "Hello %1"
160−msgstr "Üdv %1"
161−
162−#: qml/Components/PassphraseLockscreen.qml:61
163−msgid "Hello"
164−msgstr "Üdvözöljük"
165−
166−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
173+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
167msgid "See less"
174msgid "See less"
168msgstr "Kevesebb"
175msgstr "Kevesebb"
169
176
170−#: qml/Dash/GenericScopeView.qml:411
177+#: qml/Dash/GenericScopeView.qml:434
171msgid "See all"
178msgid "See all"
172msgstr "Összes megtekintése"
179msgstr "Összes megtekintése"
173
180
174−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
181+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175#: qml/Panel/SearchIndicator.qml:27
182#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
183msgid "Search"
177msgstr "Keresés"
184msgstr "Keresés"
@@ -208,15 +215,23 @@ msgstr "Értékelés hozzáadása"
208msgid "Send"
215msgid "Send"
209msgstr "Küldés"
216msgstr "Küldés"
210
217
218+#: qml/Dash/PullToRefreshScopeStyle.qml:55
219+msgid "Pull to refresh…"
220+msgstr "Húzza a frissítéshez…"
221+
222+#: qml/Dash/PullToRefreshScopeStyle.qml:60
223+msgid "Release to refresh…"
224+msgstr "Engedje el a frissítéshez…"
225+
211−#: qml/Dash/ScopesOverview.qml:206
226+#: qml/Dash/ScopesOverview.qml:215
212msgid "Manage Scopes"
227msgid "Manage Scopes"
213msgstr "Lencsék kezelése"
228msgstr "Lencsék kezelése"
214
229
215−#: qml/Dash/ScopesOverview.qml:428
230+#: qml/Dash/ScopesOverview.qml:437
216msgid "Done"
231msgid "Done"
217msgstr "Kész"
232msgstr "Kész"
218
233
219−#: qml/Dash/ScopesOverview.qml:454
234+#: qml/Dash/ScopesOverview.qml:463
220msgid "Store"
235msgid "Store"
221msgstr "Áruház"
236msgstr "Áruház"
222
237
@@ -228,9 +243,9 @@ msgstr "Kedvencek"
228msgid "All"
243msgid "All"
229msgstr "Összes"
244msgstr "Összes"
230
245
231−#: qml/Greeter/Greeter.qml:157
246+#: qml/Greeter/Greeter.qml:174
232−msgid "Swipe to unlock"
247+msgid "Unlock"
233−msgstr "Csúsztasson a feloldáshoz"
248+msgstr "Feloldás"
234
249
235#: qml/Hud/HudParametrizedActionsPage.qml:139
250#: qml/Hud/HudParametrizedActionsPage.qml:139
236msgid "Confirm"
251msgid "Confirm"
@@ -252,51 +267,43 @@ msgstr "Most beszéljen…"
252msgid "Speaking..."
267msgid "Speaking..."
253msgstr "Beszéd…"
268msgstr "Beszéd…"
254
269
255−#: qml/Notifications/NotificationMenuItemFactory.qml:108
270+#: qml/Notifications/NotificationMenuItemFactory.qml:116
256msgid "Show password"
271msgid "Show password"
257msgstr "Jelszó megjelenítése"
272msgstr "Jelszó megjelenítése"
258
273
259−#: qml/Notifications/NotificationMenuItemFactory.qml:124
260−msgid "Enter SIM PIN"
261−msgstr "Adja meg a SIM PIN kódját"
262−
263−#: qml/Notifications/NotificationMenuItemFactory.qml:125
264−msgid "Sorry, incorrect PIN"
265−msgstr "Sajnáljuk, helytelen PIN"
266−
267−#: qml/Panel/ActiveCallHint.qml:77
274+#: qml/Panel/ActiveCallHint.qml:79
268msgid "Tap to return to call..."
275msgid "Tap to return to call..."
269msgstr "Érintse meg, hogy visszatérjen a híváshoz..."
276msgstr "Érintse meg, hogy visszatérjen a híváshoz..."
270
277
271−#: qml/Panel/ActiveCallHint.qml:90
278+#: qml/Panel/ActiveCallHint.qml:92
272msgid "Conference"
279msgid "Conference"
273msgstr "Konferencia"
280msgstr "Konferencia"
274
281
275−#: qml/Panel/Indicators/MenuItemFactory.qml:600
282+#: qml/Panel/Indicators/MenuItemFactory.qml:615
276msgid "Nothing is playing"
283msgid "Nothing is playing"
277msgstr "Nincs lejátszás"
284msgstr "Nincs lejátszás"
278
285
279−#: qml/Panel/Indicators/MenuItemFactory.qml:748
286+#: qml/Panel/Indicators/MenuItemFactory.qml:763
280msgid "In queue…"
287msgid "In queue…"
281msgstr "Sorban…"
288msgstr "Sorban…"
282
289
283−#: qml/Panel/Indicators/MenuItemFactory.qml:752
290+#: qml/Panel/Indicators/MenuItemFactory.qml:767
284msgid "Downloading"
291msgid "Downloading"
285msgstr "Letöltés"
292msgstr "Letöltés"
286
293
287−#: qml/Panel/Indicators/MenuItemFactory.qml:754
294+#: qml/Panel/Indicators/MenuItemFactory.qml:769
288msgid "Paused, tap to resume"
295msgid "Paused, tap to resume"
289msgstr "Szüneteltetve, koppintson a folytatáshoz"
296msgstr "Szüneteltetve, koppintson a folytatáshoz"
290
297
291−#: qml/Panel/Indicators/MenuItemFactory.qml:756
298+#: qml/Panel/Indicators/MenuItemFactory.qml:771
292msgid "Canceled"
299msgid "Canceled"
293msgstr "Megszakítva"
300msgstr "Megszakítva"
294
301
295−#: qml/Panel/Indicators/MenuItemFactory.qml:758
302+#: qml/Panel/Indicators/MenuItemFactory.qml:773
296msgid "Finished"
303msgid "Finished"
297msgstr "Befejeződött"
304msgstr "Befejeződött"
298
305
299−#: qml/Panel/Indicators/MenuItemFactory.qml:760
306+#: qml/Panel/Indicators/MenuItemFactory.qml:775
300msgid "Failed, tap to retry"
307msgid "Failed, tap to retry"
301msgstr "Sikertelen, koppintson az újrapróbáláshoz"
308msgstr "Sikertelen, koppintson az újrapróbáláshoz"
302
309
@@ -308,45 +315,49 @@ msgstr "SIM feloldása"
308msgid "Roaming"
315msgid "Roaming"
309msgstr "Barangolás"
316msgstr "Barangolás"
310
317
311−#: qml/Shell.qml:320
318+#: qml/Shell.qml:381
312−msgid "Enter your passphrase"
319+msgid "Enter passphrase"
313−msgstr "Adja meg a jelmondatot"
320+msgstr "Jelmondat megadása"
314
321
315−#: qml/Shell.qml:321
322+#: qml/Shell.qml:382
316msgid "Sorry, incorrect passphrase"
323msgid "Sorry, incorrect passphrase"
317msgstr "Sajnáljuk, helytelen jelmondat"
324msgstr "Sajnáljuk, helytelen jelmondat"
318
325
319−#: qml/Shell.qml:323
326+#: qml/Shell.qml:383
327+msgid "Please re-enter"
328+msgstr "Kérjük próbálja újra"
329+
330+#: qml/Shell.qml:385
320−msgid "Enter your passcode"
331+msgid "Enter passcode"
321−msgstr "Adja meg a jelkódját"
332+msgstr "Jelkód megadása"
322
333
323−#: qml/Shell.qml:324
334+#: qml/Shell.qml:386
324msgid "Sorry, incorrect passcode"
335msgid "Sorry, incorrect passcode"
325msgstr "Sajnáljuk, helytelen jelkód"
336msgstr "Sajnáljuk, helytelen jelkód"
326
337
327−#: qml/Shell.qml:327
338+#: qml/Shell.qml:389
328#, qt-format
339#, qt-format
329−msgid "Enter your %1"
340+msgid "Enter %1"
330−msgstr "Kérjük adja meg: %1"
341+msgstr "Adja meg: %1"
331
342
332−#: qml/Shell.qml:328
343+#: qml/Shell.qml:390
333#, qt-format
344#, qt-format
334msgid "Sorry, incorrect %1"
345msgid "Sorry, incorrect %1"
335msgstr "Sajnáljuk, helytelen %1"
346msgstr "Sajnáljuk, helytelen %1"
336
347
337−#: qml/Shell.qml:363
348+#: qml/Shell.qml:431
338msgid "Sorry, incorrect passphrase."
349msgid "Sorry, incorrect passphrase."
339msgstr "Sajnáljuk, helytelen jelmondat."
350msgstr "Sajnáljuk, helytelen jelmondat."
340
351
341−#: qml/Shell.qml:364
352+#: qml/Shell.qml:432
342msgid "Sorry, incorrect passcode."
353msgid "Sorry, incorrect passcode."
343msgstr "Sajnáljuk, helytelen jelkód."
354msgstr "Sajnáljuk, helytelen jelkód."
344
355
345−#: qml/Shell.qml:365
356+#: qml/Shell.qml:433
346msgid "This will be your last attempt."
357msgid "This will be your last attempt."
347msgstr "Ez az utolsó próbálkozási lehetősége."
358msgstr "Ez az utolsó próbálkozási lehetősége."
348
359
349−#: qml/Shell.qml:367
360+#: qml/Shell.qml:435
350msgid ""
361msgid ""
351"If passphrase is entered incorrectly, your phone will conduct a factory "
362"If passphrase is entered incorrectly, your phone will conduct a factory "
352"reset and all personal data will be deleted."
363"reset and all personal data will be deleted."
@@ -354,13 +365,10 @@ msgstr ""
354"Ha helytelen jelmondatot ad meg, a telefonja visszaállítja a gyári "
365"Ha helytelen jelmondatot ad meg, a telefonja visszaállítja a gyári "
355"beállításokat és törli minden személyes adatát."
366"beállításokat és törli minden személyes adatát."
356
367
357−#: qml/Shell.qml:368
368+#: qml/Shell.qml:436
358msgid ""
369msgid ""
359"If passcode is entered incorrectly, your phone will conduct a factory reset "
370"If passcode is entered incorrectly, your phone will conduct a factory reset "
360"and all personal data will be deleted."
371"and all personal data will be deleted."
361msgstr ""
372msgstr ""
362"Ha helytelen jelkódot ad meg, a telefonja visszaállítja a gyári "
373"Ha helytelen jelkódot ad meg, a telefonja visszaállítja a gyári "
363"beállításokat és törli minden személyes adatát."
374"beállításokat és törli minden személyes adatát."
364−
365−#~ msgid "Manage Dash"
366−#~ msgstr "Dash kezelése"
po/hy.po+146−131
@@ -7,92 +7,116 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2013-06-27 04:43+0000\n"
11+"PO-Revision-Date: 2014-10-28 06:34+0000\n"
12−"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
12+"Last-Translator: Vahan Harutyunyan <Unknown>\n"
13"Language-Team: Armenian <hy@li.org>\n"
13"Language-Team: Armenian <hy@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=1; plural=0;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:39+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
22−msgstr ""
23+msgstr "Գաղտնաբառ: "
23
24
24#: plugins/Unity/Launcher/launcheritem.cpp:45
25#: plugins/Unity/Launcher/launcheritem.cpp:45
25#: plugins/Unity/Launcher/launcheritem.cpp:91
26#: plugins/Unity/Launcher/launcheritem.cpp:91
26msgid "Pin shortcut"
27msgid "Pin shortcut"
27−msgstr ""
28+msgstr "Փակցնել պիտակը"
28
29
29#: plugins/Unity/Launcher/launcheritem.cpp:91
30#: plugins/Unity/Launcher/launcheritem.cpp:91
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
32+msgstr "Հեռացնել պիտակը"
33+
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Սարքը արգելափակված է"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
31msgstr ""
40msgstr ""
41+"Գաղտնաբառի բավականին շատ ձախողված փորձերի պատճառով Դուք արգելափակված եք:"
32
42
33−#: qml/Components/Dialogs.qml:70
43+#: qml/Components/DelayedLockscreen.qml:63
34−msgid "Log out"
44+msgid "You have been locked out due to too many failed passcode attempts."
35msgstr ""
45msgstr ""
46+"Ծածկագրի բավականին շատ ձախողված փորձերի պատճառով Դուք արգելափակված եք:"
47+
48+#: qml/Components/DelayedLockscreen.qml:72
49+#, qt-format
50+msgid "Please wait %1 minute and then try again…"
51+msgid_plural "Please wait %1 minutes and then try again…"
52+msgstr[0] ""
53+"Խնդրում ենք սպասել %1 րոպե և փորձել կրկին...\r\n"
54+"Խնդրում ենք սպասել %1 րոպե և փորձել կրկին..."
55+
56+#: qml/Components/Dialogs.qml:74
57+msgid "Log out"
58+msgstr "Ելք"
36
59
37−#: qml/Components/Dialogs.qml:71
60+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
61msgid "Are you sure you want to log out?"
39−msgstr ""
62+msgstr "Դուք համոզվա՞ծ եք, որ ցանկանում եք դուրս գալ համակարգից"
40
63
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
64+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
65+#: qml/Components/Dialogs.qml:126
43msgid "No"
66msgid "No"
44−msgstr ""
67+msgstr "Ոչ"
45
68
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
69+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
70+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
71msgid "Yes"
49−msgstr ""
72+msgstr "Այո"
50
73
51−#: qml/Components/Dialogs.qml:94
74+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
75msgid "Shut down"
53−msgstr ""
76+msgstr "Անջատել"
54
77
55−#: qml/Components/Dialogs.qml:95
78+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
79msgid "Are you sure you want to shut down?"
57−msgstr ""
80+msgstr "Դուք համոզվա՞ծ եք, որ ցանկանում եք անջատել համակարգիչը"
58
81
59−#: qml/Components/Dialogs.qml:119
82+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
83msgid "Reboot"
61−msgstr ""
84+msgstr "Վերաբեռնել"
62
85
63−#: qml/Components/Dialogs.qml:120
86+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
87msgid "Are you sure you want to reboot?"
65−msgstr ""
88+msgstr "Դուք համոզվա՞ծ եք, որ ցանկանում եք վերաբեռնել համակարգիչը"
66
89
67−#: qml/Components/Dialogs.qml:144
90+#: qml/Components/Dialogs.qml:148
68msgid "Power"
91msgid "Power"
69−msgstr ""
92+msgstr "Էլեկտրասնուցում"
70
93
71−#: qml/Components/Dialogs.qml:145
94+#: qml/Components/Dialogs.qml:149
72msgid ""
95msgid ""
73"Are you sure you would like\n"
96"Are you sure you would like\n"
74"to power off?"
97"to power off?"
75msgstr ""
98msgstr ""
99+"Դուք համոզվա՞ծ եք, որ ցանկանում եք անջատել համակարգիչը սնուցման աղբյուրից"
76
100
77−#: qml/Components/Dialogs.qml:147
101+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
102msgid "Power off"
79−msgstr ""
103+msgstr "Անջատել սնուցման աղբյուրից"
80
104
81−#: qml/Components/Dialogs.qml:157
105+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
106msgid "Restart"
83−msgstr ""
107+msgstr "Վերագործարկել"
84
108
85−#: qml/Components/Dialogs.qml:167
109+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
110msgid "Cancel"
87−msgstr ""
111+msgstr "Չեղյալ համարել"
88
112
89#: qml/Components/EdgeDemoOverlay.qml:151
113#: qml/Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
114msgid "Skip intro"
91−msgstr ""
115+msgstr "Բաց թողնել ներածությունը"
92
116
93#: qml/Components/EdgeDemo.qml:112
117#: qml/Components/EdgeDemo.qml:112
94msgid "Right edge"
118msgid "Right edge"
95−msgstr ""
119+msgstr "Աջ եզրը"
96
120
97#: qml/Components/EdgeDemo.qml:113
121#: qml/Components/EdgeDemo.qml:113
98msgid "Try swiping from the right edge to unlock the phone"
122msgid "Try swiping from the right edge to unlock the phone"
@@ -100,7 +124,7 @@ msgstr ""
100
124
101#: qml/Components/EdgeDemo.qml:144
125#: qml/Components/EdgeDemo.qml:144
102msgid "Top edge"
126msgid "Top edge"
103−msgstr ""
127+msgstr "Վերին եզրը"
104
128
105#: qml/Components/EdgeDemo.qml:145
129#: qml/Components/EdgeDemo.qml:145
106msgid "Try swiping from the top edge to access the indicators"
130msgid "Try swiping from the top edge to access the indicators"
@@ -108,91 +132,78 @@ msgstr ""
108
132
109#: qml/Components/EdgeDemo.qml:170
133#: qml/Components/EdgeDemo.qml:170
110msgid "Close"
134msgid "Close"
111−msgstr ""
135+msgstr "Փակել"
112
136
113#: qml/Components/EdgeDemo.qml:171
137#: qml/Components/EdgeDemo.qml:171
114msgid "Swipe up again to close the settings screen"
138msgid "Swipe up again to close the settings screen"
115msgstr ""
139msgstr ""
116
140
117−#: qml/Components/EdgeDemo.qml:198
141+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
142msgid "Left edge"
119−msgstr ""
143+msgstr "Ձախ եզրը"
120
144
121−#: qml/Components/EdgeDemo.qml:199
145+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
146msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
147msgstr ""
124
148
125−#: qml/Components/EdgeDemo.qml:226
149+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
150msgid "Well done"
127−msgstr ""
151+msgstr "Լավ է"
128
152
129−#: qml/Components/EdgeDemo.qml:227
153+#: qml/Components/EdgeDemo.qml:230
130msgid ""
154msgid ""
131"You have now mastered the edge gestures and can start using the "
155"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
156"phone<br><br>Tap on the screen to start"
133msgstr ""
157msgstr ""
134
158
135−#: qml/Components/Lockscreen.qml:167
159+#: qml/Components/Lockscreen.qml:223
136−msgid "Please wait"
160+msgid "Return to Call"
137msgstr ""
161msgstr ""
138
162
139−#: qml/Components/Lockscreen.qml:172
163+#: qml/Components/Lockscreen.qml:223
140−msgid "Too many incorrect attempts"
141−msgstr ""
142−
143−#: qml/Components/Lockscreen.qml:206
144msgid "Emergency Call"
164msgid "Emergency Call"
145msgstr ""
165msgstr ""
146
166
147−#: qml/Components/Lockscreen.qml:226
167+#: qml/Components/Lockscreen.qml:255
148msgid "OK"
168msgid "OK"
149msgstr ""
169msgstr ""
150
170
151−#: qml/Components/PassphraseLockscreen.qml:61
152−#, qt-format
153−msgid "Hello %1"
154−msgstr ""
155−
156−#: qml/Components/PassphraseLockscreen.qml:61
157−msgid "Hello"
158−msgstr ""
159−
160−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
171+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
161msgid "See less"
172msgid "See less"
162msgstr ""
173msgstr ""
163
174
164−#: qml/Dash/GenericScopeView.qml:411
175+#: qml/Dash/GenericScopeView.qml:434
165msgid "See all"
176msgid "See all"
166−msgstr ""
177+msgstr "Տեսնել բոլորը"
167
178
168−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
169#: qml/Panel/SearchIndicator.qml:27
180#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
181msgid "Search"
171msgstr "Որոնում"
182msgstr "Որոնում"
172
183
173#: qml/Dash/PageHeader.qml:268
184#: qml/Dash/PageHeader.qml:268
174msgid "Settings"
185msgid "Settings"
175−msgstr ""
186+msgstr "Կարգավորումներ"
176
187
177#: qml/Dash/PageHeader.qml:275
188#: qml/Dash/PageHeader.qml:275
178msgid "Remove from Favorites"
189msgid "Remove from Favorites"
179−msgstr ""
190+msgstr "Հեռացնել ընտրյալների ցուցակից"
180
191
181#: qml/Dash/PageHeader.qml:275
192#: qml/Dash/PageHeader.qml:275
182msgid "Add to Favorites"
193msgid "Add to Favorites"
183−msgstr ""
194+msgstr "Ավելացնել ընտրյալների ցուցակում"
184
195
185#: qml/Dash/Previews/PreviewActionCombo.qml:35
196#: qml/Dash/Previews/PreviewActionCombo.qml:35
186msgid "More..."
197msgid "More..."
187−msgstr ""
198+msgstr "Ավելին..."
188
199
189#: qml/Dash/Previews/PreviewActionCombo.qml:35
200#: qml/Dash/Previews/PreviewActionCombo.qml:35
190msgid "Less..."
201msgid "Less..."
191−msgstr ""
202+msgstr "Ավելի քիչ..."
192
203
193#: qml/Dash/Previews/PreviewRatingInput.qml:81
204#: qml/Dash/Previews/PreviewRatingInput.qml:81
194msgid "Rate this"
205msgid "Rate this"
195−msgstr ""
206+msgstr "Գնահատեք սա"
196
207
197#: qml/Dash/Previews/PreviewRatingInput.qml:126
208#: qml/Dash/Previews/PreviewRatingInput.qml:126
198msgid "Add a review"
209msgid "Add a review"
@@ -200,31 +211,39 @@ msgstr ""
200
211
201#: qml/Dash/Previews/PreviewRatingInput.qml:166
212#: qml/Dash/Previews/PreviewRatingInput.qml:166
202msgid "Send"
213msgid "Send"
214+msgstr "Ուղղարկել"
215+
216+#: qml/Dash/PullToRefreshScopeStyle.qml:55
217+msgid "Pull to refresh…"
218+msgstr ""
219+
220+#: qml/Dash/PullToRefreshScopeStyle.qml:60
221+msgid "Release to refresh…"
203msgstr ""
222msgstr ""
204
223
205−#: qml/Dash/ScopesOverview.qml:206
224+#: qml/Dash/ScopesOverview.qml:215
206msgid "Manage Scopes"
225msgid "Manage Scopes"
207msgstr ""
226msgstr ""
208
227
209−#: qml/Dash/ScopesOverview.qml:428
228+#: qml/Dash/ScopesOverview.qml:437
210msgid "Done"
229msgid "Done"
211−msgstr ""
230+msgstr "Կատարված է"
212
231
213−#: qml/Dash/ScopesOverview.qml:454
232+#: qml/Dash/ScopesOverview.qml:463
214msgid "Store"
233msgid "Store"
215−msgstr ""
234+msgstr "Խանութ"
216
235
217#: qml/Dash/ScopesOverviewTab.qml:36
236#: qml/Dash/ScopesOverviewTab.qml:36
218msgid "Favorites"
237msgid "Favorites"
219−msgstr ""
238+msgstr "Նախընտրելի"
220
239
221#: qml/Dash/ScopesOverviewTab.qml:54
240#: qml/Dash/ScopesOverviewTab.qml:54
222msgid "All"
241msgid "All"
223−msgstr ""
242+msgstr "Բոլորը"
224
243
225−#: qml/Greeter/Greeter.qml:157
244+#: qml/Greeter/Greeter.qml:174
226−msgid "Swipe to unlock"
245+msgid "Unlock"
227−msgstr ""
246+msgstr "Ապաբլոկավորել"
228
247
229#: qml/Hud/HudParametrizedActionsPage.qml:139
248#: qml/Hud/HudParametrizedActionsPage.qml:139
230msgid "Confirm"
249msgid "Confirm"
@@ -236,117 +255,113 @@ msgstr "Գրիր կամ ասա կոմմենտը"
236
255
237#: qml/Hud/Hud.qml:84
256#: qml/Hud/Hud.qml:84
238msgid "Loading. Please Wait..."
257msgid "Loading. Please Wait..."
239−msgstr "Խնդրում ենք սպասել..."
258+msgstr "Բեռնվում է: Խնդրում ենք սպասել..."
240
259
241#: qml/Hud/Hud.qml:89
260#: qml/Hud/Hud.qml:89
242msgid "Speak Now..."
261msgid "Speak Now..."
243−msgstr "Խոսի՛ր"
262+msgstr "Հիմա խոսեք..."
244
263
245#: qml/Hud/Hud.qml:94
264#: qml/Hud/Hud.qml:94
246msgid "Speaking..."
265msgid "Speaking..."
247msgstr "Խոսում եմ..."
266msgstr "Խոսում եմ..."
248
267
249−#: qml/Notifications/NotificationMenuItemFactory.qml:108
268+#: qml/Notifications/NotificationMenuItemFactory.qml:116
250msgid "Show password"
269msgid "Show password"
251−msgstr ""
270+msgstr "Ցույց տալ գաղտնաբառը"
252−
253−#: qml/Notifications/NotificationMenuItemFactory.qml:124
254−msgid "Enter SIM PIN"
255−msgstr ""
256−
257−#: qml/Notifications/NotificationMenuItemFactory.qml:125
258−msgid "Sorry, incorrect PIN"
259−msgstr ""
260
271
261−#: qml/Panel/ActiveCallHint.qml:77
272+#: qml/Panel/ActiveCallHint.qml:79
262msgid "Tap to return to call..."
273msgid "Tap to return to call..."
263msgstr ""
274msgstr ""
264
275
265−#: qml/Panel/ActiveCallHint.qml:90
276+#: qml/Panel/ActiveCallHint.qml:92
266msgid "Conference"
277msgid "Conference"
267msgstr ""
278msgstr ""
268
279
269−#: qml/Panel/Indicators/MenuItemFactory.qml:600
280+#: qml/Panel/Indicators/MenuItemFactory.qml:615
270msgid "Nothing is playing"
281msgid "Nothing is playing"
271msgstr ""
282msgstr ""
272
283
273−#: qml/Panel/Indicators/MenuItemFactory.qml:748
284+#: qml/Panel/Indicators/MenuItemFactory.qml:763
274msgid "In queue…"
285msgid "In queue…"
275−msgstr ""
286+msgstr "Հերթում..."
276
287
277−#: qml/Panel/Indicators/MenuItemFactory.qml:752
288+#: qml/Panel/Indicators/MenuItemFactory.qml:767
278msgid "Downloading"
289msgid "Downloading"
279−msgstr ""
290+msgstr "Ներբեռնում"
280
291
281−#: qml/Panel/Indicators/MenuItemFactory.qml:754
292+#: qml/Panel/Indicators/MenuItemFactory.qml:769
282msgid "Paused, tap to resume"
293msgid "Paused, tap to resume"
283msgstr ""
294msgstr ""
284
295
285−#: qml/Panel/Indicators/MenuItemFactory.qml:756
296+#: qml/Panel/Indicators/MenuItemFactory.qml:771
286msgid "Canceled"
297msgid "Canceled"
287−msgstr ""
298+msgstr "Չեղյալ է համարված"
288
299
289−#: qml/Panel/Indicators/MenuItemFactory.qml:758
300+#: qml/Panel/Indicators/MenuItemFactory.qml:773
290msgid "Finished"
301msgid "Finished"
291−msgstr ""
302+msgstr "Ավարտված է"
292
303
293−#: qml/Panel/Indicators/MenuItemFactory.qml:760
304+#: qml/Panel/Indicators/MenuItemFactory.qml:775
294msgid "Failed, tap to retry"
305msgid "Failed, tap to retry"
295msgstr ""
306msgstr ""
296
307
297#: qml/Panel/Indicators/ModemInfoItem.qml:105
308#: qml/Panel/Indicators/ModemInfoItem.qml:105
298msgid "Unlock SIM"
309msgid "Unlock SIM"
299−msgstr ""
310+msgstr "Ապաբլոկավորել SIM-ը"
300
311
301#: qml/Panel/Indicators/RoamingIndication.qml:27
312#: qml/Panel/Indicators/RoamingIndication.qml:27
302msgid "Roaming"
313msgid "Roaming"
303−msgstr ""
314+msgstr "Ռոումինգ"
304
315
305−#: qml/Shell.qml:320
316+#: qml/Shell.qml:381
306−msgid "Enter your passphrase"
317+msgid "Enter passphrase"
307−msgstr ""
318+msgstr "Մուտքագրե՛ք անցաբառը"
308
319
309−#: qml/Shell.qml:321
320+#: qml/Shell.qml:382
310msgid "Sorry, incorrect passphrase"
321msgid "Sorry, incorrect passphrase"
311−msgstr ""
322+msgstr "Ներեցեք, սխալ անցաբառ է"
312
323
313−#: qml/Shell.qml:323
324+#: qml/Shell.qml:383
325+msgid "Please re-enter"
326+msgstr "Խնդրում ենք նորից մուտքագրել"
327+
328+#: qml/Shell.qml:385
314−msgid "Enter your passcode"
329+msgid "Enter passcode"
315−msgstr ""
330+msgstr "Մոտքագրեք ծածկագիրը"
316
331
317−#: qml/Shell.qml:324
332+#: qml/Shell.qml:386
318msgid "Sorry, incorrect passcode"
333msgid "Sorry, incorrect passcode"
319−msgstr ""
334+msgstr "Ներեցեք, սխալ ծածկագիր է"
320
335
321−#: qml/Shell.qml:327
336+#: qml/Shell.qml:389
322#, qt-format
337#, qt-format
323−msgid "Enter your %1"
338+msgid "Enter %1"
324−msgstr ""
339+msgstr "Մուտքագրեք %1"
325
340
326−#: qml/Shell.qml:328
341+#: qml/Shell.qml:390
327#, qt-format
342#, qt-format
328msgid "Sorry, incorrect %1"
343msgid "Sorry, incorrect %1"
329−msgstr ""
344+msgstr "Ներեցեք, սխալ %1"
330
345
331−#: qml/Shell.qml:363
346+#: qml/Shell.qml:431
332msgid "Sorry, incorrect passphrase."
347msgid "Sorry, incorrect passphrase."
333−msgstr ""
348+msgstr "Ներեցեք, սխալ անցաբառ է"
334
349
335−#: qml/Shell.qml:364
350+#: qml/Shell.qml:432
336msgid "Sorry, incorrect passcode."
351msgid "Sorry, incorrect passcode."
337−msgstr ""
352+msgstr "Ներեցեք, սխալ ծածկագիր է:"
338
353
339−#: qml/Shell.qml:365
354+#: qml/Shell.qml:433
340msgid "This will be your last attempt."
355msgid "This will be your last attempt."
341−msgstr ""
356+msgstr "Սա կլինի ձեր վերջին փորձը"
342
357
343−#: qml/Shell.qml:367
358+#: qml/Shell.qml:435
344msgid ""
359msgid ""
345"If passphrase is entered incorrectly, your phone will conduct a factory "
360"If passphrase is entered incorrectly, your phone will conduct a factory "
346"reset and all personal data will be deleted."
361"reset and all personal data will be deleted."
347msgstr ""
362msgstr ""
348
363
349−#: qml/Shell.qml:368
364+#: qml/Shell.qml:436
350msgid ""
365msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
366"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
367"and all personal data will be deleted."
po/id.po+90−79
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Indonesian <id@li.org>\n"
13"Language-Team: Indonesian <id@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=1; plural=0;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr ""
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr ""
32msgstr ""
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr ""
55msgstr ""
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr ""
59msgstr ""
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr ""
64msgstr ""
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr ""
69msgstr ""
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr ""
73msgstr ""
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr ""
77msgstr ""
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr ""
81msgstr ""
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr ""
85msgstr ""
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr ""
89msgstr ""
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr ""
95msgstr ""
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr ""
99msgstr ""
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr ""
103msgstr ""
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr ""
107msgstr ""
88
108
@@ -114,58 +134,45 @@ msgstr ""
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr ""
135msgstr ""
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr ""
139msgstr ""
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
143msgstr ""
124
144
125−#: qml/Components/EdgeDemo.qml:226
145+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
146msgid "Well done"
127msgstr ""
147msgstr ""
128
148
129−#: qml/Components/EdgeDemo.qml:227
149+#: qml/Components/EdgeDemo.qml:230
130msgid ""
150msgid ""
131"You have now mastered the edge gestures and can start using the "
151"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
152"phone<br><br>Tap on the screen to start"
133msgstr ""
153msgstr ""
134
154
135−#: qml/Components/Lockscreen.qml:167
155+#: qml/Components/Lockscreen.qml:223
136−msgid "Please wait"
156+msgid "Return to Call"
137−msgstr ""
138−
139−#: qml/Components/Lockscreen.qml:172
140−msgid "Too many incorrect attempts"
141msgstr ""
157msgstr ""
142
158
143−#: qml/Components/Lockscreen.qml:206
159+#: qml/Components/Lockscreen.qml:223
144msgid "Emergency Call"
160msgid "Emergency Call"
145msgstr ""
161msgstr ""
146
162
147−#: qml/Components/Lockscreen.qml:226
163+#: qml/Components/Lockscreen.qml:255
148msgid "OK"
164msgid "OK"
149msgstr ""
165msgstr ""
150
166
151−#: qml/Components/PassphraseLockscreen.qml:61
152−#, qt-format
153−msgid "Hello %1"
154−msgstr ""
155−
156−#: qml/Components/PassphraseLockscreen.qml:61
157−msgid "Hello"
158−msgstr ""
159−
160−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
167+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
161msgid "See less"
168msgid "See less"
162msgstr ""
169msgstr ""
163
170
164−#: qml/Dash/GenericScopeView.qml:411
171+#: qml/Dash/GenericScopeView.qml:434
165msgid "See all"
172msgid "See all"
166msgstr ""
173msgstr ""
167
174
168−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
169#: qml/Panel/SearchIndicator.qml:27
176#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
177msgid "Search"
171msgstr ""
178msgstr ""
@@ -202,15 +209,23 @@ msgstr ""
202msgid "Send"
209msgid "Send"
203msgstr ""
210msgstr ""
204
211
212+#: qml/Dash/PullToRefreshScopeStyle.qml:55
213+msgid "Pull to refresh…"
214+msgstr ""
215+
216+#: qml/Dash/PullToRefreshScopeStyle.qml:60
217+msgid "Release to refresh…"
218+msgstr ""
219+
205−#: qml/Dash/ScopesOverview.qml:206
220+#: qml/Dash/ScopesOverview.qml:215
206msgid "Manage Scopes"
221msgid "Manage Scopes"
207msgstr ""
222msgstr ""
208
223
209−#: qml/Dash/ScopesOverview.qml:428
224+#: qml/Dash/ScopesOverview.qml:437
210msgid "Done"
225msgid "Done"
211msgstr ""
226msgstr ""
212
227
213−#: qml/Dash/ScopesOverview.qml:454
228+#: qml/Dash/ScopesOverview.qml:463
214msgid "Store"
229msgid "Store"
215msgstr ""
230msgstr ""
216
231
@@ -222,8 +237,8 @@ msgstr ""
222msgid "All"
237msgid "All"
223msgstr ""
238msgstr ""
224
239
225−#: qml/Greeter/Greeter.qml:157
240+#: qml/Greeter/Greeter.qml:174
226−msgid "Swipe to unlock"
241+msgid "Unlock"
227msgstr ""
242msgstr ""
228
243
229#: qml/Hud/HudParametrizedActionsPage.qml:139
244#: qml/Hud/HudParametrizedActionsPage.qml:139
@@ -246,51 +261,43 @@ msgstr ""
246msgid "Speaking..."
261msgid "Speaking..."
247msgstr ""
262msgstr ""
248
263
249−#: qml/Notifications/NotificationMenuItemFactory.qml:108
264+#: qml/Notifications/NotificationMenuItemFactory.qml:116
250msgid "Show password"
265msgid "Show password"
251msgstr ""
266msgstr ""
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:124
254−msgid "Enter SIM PIN"
255−msgstr ""
256−
257−#: qml/Notifications/NotificationMenuItemFactory.qml:125
258−msgid "Sorry, incorrect PIN"
259−msgstr ""
260−
261−#: qml/Panel/ActiveCallHint.qml:77
268+#: qml/Panel/ActiveCallHint.qml:79
262msgid "Tap to return to call..."
269msgid "Tap to return to call..."
263msgstr ""
270msgstr ""
264
271
265−#: qml/Panel/ActiveCallHint.qml:90
272+#: qml/Panel/ActiveCallHint.qml:92
266msgid "Conference"
273msgid "Conference"
267msgstr ""
274msgstr ""
268
275
269−#: qml/Panel/Indicators/MenuItemFactory.qml:600
276+#: qml/Panel/Indicators/MenuItemFactory.qml:615
270msgid "Nothing is playing"
277msgid "Nothing is playing"
271msgstr ""
278msgstr ""
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:748
280+#: qml/Panel/Indicators/MenuItemFactory.qml:763
274msgid "In queue…"
281msgid "In queue…"
275msgstr ""
282msgstr ""
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:752
284+#: qml/Panel/Indicators/MenuItemFactory.qml:767
278msgid "Downloading"
285msgid "Downloading"
279msgstr ""
286msgstr ""
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:754
288+#: qml/Panel/Indicators/MenuItemFactory.qml:769
282msgid "Paused, tap to resume"
289msgid "Paused, tap to resume"
283msgstr ""
290msgstr ""
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:756
292+#: qml/Panel/Indicators/MenuItemFactory.qml:771
286msgid "Canceled"
293msgid "Canceled"
287msgstr ""
294msgstr ""
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:758
296+#: qml/Panel/Indicators/MenuItemFactory.qml:773
290msgid "Finished"
297msgid "Finished"
291msgstr ""
298msgstr ""
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:760
300+#: qml/Panel/Indicators/MenuItemFactory.qml:775
294msgid "Failed, tap to retry"
301msgid "Failed, tap to retry"
295msgstr ""
302msgstr ""
296
303
@@ -302,51 +309,55 @@ msgstr ""
302msgid "Roaming"
309msgid "Roaming"
303msgstr ""
310msgstr ""
304
311
305−#: qml/Shell.qml:320
312+#: qml/Shell.qml:381
306−msgid "Enter your passphrase"
313+msgid "Enter passphrase"
307msgstr ""
314msgstr ""
308
315
309−#: qml/Shell.qml:321
316+#: qml/Shell.qml:382
310msgid "Sorry, incorrect passphrase"
317msgid "Sorry, incorrect passphrase"
311msgstr ""
318msgstr ""
312
319
313−#: qml/Shell.qml:323
320+#: qml/Shell.qml:383
321+msgid "Please re-enter"
322+msgstr ""
323+
324+#: qml/Shell.qml:385
314−msgid "Enter your passcode"
325+msgid "Enter passcode"
315msgstr ""
326msgstr ""
316
327
317−#: qml/Shell.qml:324
328+#: qml/Shell.qml:386
318msgid "Sorry, incorrect passcode"
329msgid "Sorry, incorrect passcode"
319msgstr ""
330msgstr ""
320
331
321−#: qml/Shell.qml:327
332+#: qml/Shell.qml:389
322#, qt-format
333#, qt-format
323−msgid "Enter your %1"
334+msgid "Enter %1"
324msgstr ""
335msgstr ""
325
336
326−#: qml/Shell.qml:328
337+#: qml/Shell.qml:390
327#, qt-format
338#, qt-format
328msgid "Sorry, incorrect %1"
339msgid "Sorry, incorrect %1"
329msgstr ""
340msgstr ""
330
341
331−#: qml/Shell.qml:363
342+#: qml/Shell.qml:431
332msgid "Sorry, incorrect passphrase."
343msgid "Sorry, incorrect passphrase."
333msgstr ""
344msgstr ""
334
345
335−#: qml/Shell.qml:364
346+#: qml/Shell.qml:432
336msgid "Sorry, incorrect passcode."
347msgid "Sorry, incorrect passcode."
337msgstr ""
348msgstr ""
338
349
339−#: qml/Shell.qml:365
350+#: qml/Shell.qml:433
340msgid "This will be your last attempt."
351msgid "This will be your last attempt."
341msgstr ""
352msgstr ""
342
353
343−#: qml/Shell.qml:367
354+#: qml/Shell.qml:435
344msgid ""
355msgid ""
345"If passphrase is entered incorrectly, your phone will conduct a factory "
356"If passphrase is entered incorrectly, your phone will conduct a factory "
346"reset and all personal data will be deleted."
357"reset and all personal data will be deleted."
347msgstr ""
358msgstr ""
348
359
349−#: qml/Shell.qml:368
360+#: qml/Shell.qml:436
350msgid ""
361msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
362"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
363"and all personal data will be deleted."
po/is.po+109−92
@@ -9,15 +9,16 @@ msgid ""
9msgstr ""
9msgstr ""
10"Project-Id-Version: po_unity8-is\n"
10"Project-Id-Version: po_unity8-is\n"
11"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
12−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
12+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
13−"PO-Revision-Date: 2014-09-21 12:07+0000\n"
13+"PO-Revision-Date: 2014-10-09 10:49+0000\n"
14"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
14"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
15"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
15"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
16"MIME-Version: 1.0\n"
16"MIME-Version: 1.0\n"
17"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Type: text/plain; charset=UTF-8\n"
18"Content-Transfer-Encoding: 8bit\n"
18"Content-Transfer-Encoding: 8bit\n"
19+"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
20+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
20−"X-Generator: Launchpad (build 17196)\n"
21+"X-Generator: Launchpad (build 17223)\n"
21"Language: is\n"
22"Language: is\n"
22
23
23#: plugins/LightDM/Greeter.cpp:130
24#: plugins/LightDM/Greeter.cpp:130
@@ -33,59 +34,80 @@ msgstr "Pinna flýtilykil"
33msgid "Unpin shortcut"
34msgid "Unpin shortcut"
34msgstr "Losa flýtilykil"
35msgstr "Losa flýtilykil"
35
36
36−#: qml/Components/Dialogs.qml:70
37+#: qml/Components/DelayedLockscreen.qml:47
38+msgid "Device Locked"
39+msgstr "Tæki læst"
40+
41+#: qml/Components/DelayedLockscreen.qml:62
42+msgid "You have been locked out due to too many failed passphrase attempts."
43+msgstr ""
44+
45+#: qml/Components/DelayedLockscreen.qml:63
46+msgid "You have been locked out due to too many failed passcode attempts."
47+msgstr ""
48+
49+#: qml/Components/DelayedLockscreen.qml:72
50+#, qt-format
51+msgid "Please wait %1 minute and then try again…"
52+msgid_plural "Please wait %1 minutes and then try again…"
53+msgstr[0] "Bíddu í %1 mínútu og reyndu svo aftur"
54+msgstr[1] "Bíddu í %1 mínútur og reyndu svo aftur"
55+
56+#: qml/Components/Dialogs.qml:74
37msgid "Log out"
57msgid "Log out"
38msgstr "Útskráning"
58msgstr "Útskráning"
39
59
40−#: qml/Components/Dialogs.qml:71
60+#: qml/Components/Dialogs.qml:75
41msgid "Are you sure you want to log out?"
61msgid "Are you sure you want to log out?"
42−msgstr ""
62+msgstr "Ertu viss um að þú viljir skrá þig út?"
43
63
44−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
64+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
45−#: qml/Components/Dialogs.qml:122
65+#: qml/Components/Dialogs.qml:126
46msgid "No"
66msgid "No"
47msgstr "Nei"
67msgstr "Nei"
48
68
49−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
69+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
50−#: qml/Components/Dialogs.qml:129
70+#: qml/Components/Dialogs.qml:133
51msgid "Yes"
71msgid "Yes"
52msgstr "Já"
72msgstr "Já"
53
73
54−#: qml/Components/Dialogs.qml:94
74+#: qml/Components/Dialogs.qml:98
55msgid "Shut down"
75msgid "Shut down"
56msgstr "Slökkva á tölvunni"
76msgstr "Slökkva á tölvunni"
57
77
58−#: qml/Components/Dialogs.qml:95
78+#: qml/Components/Dialogs.qml:99
59msgid "Are you sure you want to shut down?"
79msgid "Are you sure you want to shut down?"
60−msgstr ""
80+msgstr "Ertu viss um að þú viljir slökkva á símanum?"
61
81
62−#: qml/Components/Dialogs.qml:119
82+#: qml/Components/Dialogs.qml:123
63msgid "Reboot"
83msgid "Reboot"
64msgstr "Endurræsa"
84msgstr "Endurræsa"
65
85
66−#: qml/Components/Dialogs.qml:120
86+#: qml/Components/Dialogs.qml:124
67msgid "Are you sure you want to reboot?"
87msgid "Are you sure you want to reboot?"
68−msgstr ""
88+msgstr "Ertu viss að þú viljir enduræsa?"
69
89
70−#: qml/Components/Dialogs.qml:144
90+#: qml/Components/Dialogs.qml:148
71msgid "Power"
91msgid "Power"
72msgstr "Aflstjórnun"
92msgstr "Aflstjórnun"
73
93
74−#: qml/Components/Dialogs.qml:145
94+#: qml/Components/Dialogs.qml:149
75msgid ""
95msgid ""
76"Are you sure you would like\n"
96"Are you sure you would like\n"
77"to power off?"
97"to power off?"
78msgstr ""
98msgstr ""
99+"Ertu viss um að þú viljir\n"
100+"slökkva á símanum?"
79
101
80−#: qml/Components/Dialogs.qml:147
102+#: qml/Components/Dialogs.qml:151
81msgid "Power off"
103msgid "Power off"
82msgstr "Slökkva"
104msgstr "Slökkva"
83
105
84−#: qml/Components/Dialogs.qml:157
106+#: qml/Components/Dialogs.qml:161
85msgid "Restart"
107msgid "Restart"
86msgstr "Endurræsa"
108msgstr "Endurræsa"
87
109
88−#: qml/Components/Dialogs.qml:167
110+#: qml/Components/Dialogs.qml:171
89msgid "Cancel"
111msgid "Cancel"
90msgstr "Hætta við"
112msgstr "Hætta við"
91
113
@@ -118,19 +140,19 @@ msgstr "Loka"
118msgid "Swipe up again to close the settings screen"
140msgid "Swipe up again to close the settings screen"
119msgstr "Strjúktu upp til að loka stillingum"
141msgstr "Strjúktu upp til að loka stillingum"
120
142
121−#: qml/Components/EdgeDemo.qml:198
143+#: qml/Components/EdgeDemo.qml:201
122msgid "Left edge"
144msgid "Left edge"
123msgstr "Vinstri brún"
145msgstr "Vinstri brún"
124
146
125−#: qml/Components/EdgeDemo.qml:199
147+#: qml/Components/EdgeDemo.qml:202
126msgid "Swipe from the left to reveal the launcher for quick access to apps"
148msgid "Swipe from the left to reveal the launcher for quick access to apps"
127msgstr "Strjúktu frá vinstri til að afhjúpa flýtiræsi forrita"
149msgstr "Strjúktu frá vinstri til að afhjúpa flýtiræsi forrita"
128
150
129−#: qml/Components/EdgeDemo.qml:226
151+#: qml/Components/EdgeDemo.qml:229
130msgid "Well done"
152msgid "Well done"
131msgstr "Vel gert"
153msgstr "Vel gert"
132
154
133−#: qml/Components/EdgeDemo.qml:227
155+#: qml/Components/EdgeDemo.qml:230
134msgid ""
156msgid ""
135"You have now mastered the edge gestures and can start using the "
157"You have now mastered the edge gestures and can start using the "
136"phone<br><br>Tap on the screen to start"
158"phone<br><br>Tap on the screen to start"
@@ -138,40 +160,27 @@ msgstr ""
138"Þú ert núna með æfingu í að nota skjáhreyfingar og getur því farið að nota "
160"Þú ert núna með æfingu í að nota skjáhreyfingar og getur því farið að nota "
139"símann<br><br>Sláðu létt á skjáinn til að byrja"
161"símann<br><br>Sláðu létt á skjáinn til að byrja"
140
162
141−#: qml/Components/Lockscreen.qml:167
163+#: qml/Components/Lockscreen.qml:223
142−msgid "Please wait"
164+msgid "Return to Call"
143−msgstr "Bíddu aðeins"
144−
145−#: qml/Components/Lockscreen.qml:172
146−msgid "Too many incorrect attempts"
147msgstr ""
165msgstr ""
148
166
149−#: qml/Components/Lockscreen.qml:206
167+#: qml/Components/Lockscreen.qml:223
150msgid "Emergency Call"
168msgid "Emergency Call"
151msgstr "Neyðarsímtal"
169msgstr "Neyðarsímtal"
152
170
153−#: qml/Components/Lockscreen.qml:226
171+#: qml/Components/Lockscreen.qml:255
154msgid "OK"
172msgid "OK"
155msgstr "Í lagi"
173msgstr "Í lagi"
156
174
157−#: qml/Components/PassphraseLockscreen.qml:61
158−#, qt-format
159−msgid "Hello %1"
160−msgstr "Hæ %1"
161−
162−#: qml/Components/PassphraseLockscreen.qml:61
163−msgid "Hello"
164−msgstr "Hæ"
165−
166−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
175+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
167msgid "See less"
176msgid "See less"
168msgstr "Sjá minna"
177msgstr "Sjá minna"
169
178
170−#: qml/Dash/GenericScopeView.qml:411
179+#: qml/Dash/GenericScopeView.qml:434
171msgid "See all"
180msgid "See all"
172msgstr "Sjá allt"
181msgstr "Sjá allt"
173
182
174−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
183+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175#: qml/Panel/SearchIndicator.qml:27
184#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
185msgid "Search"
177msgstr "Leita"
186msgstr "Leita"
@@ -208,15 +217,23 @@ msgstr "Gefa umsögn"
208msgid "Send"
217msgid "Send"
209msgstr "Senda"
218msgstr "Senda"
210
219
220+#: qml/Dash/PullToRefreshScopeStyle.qml:55
221+msgid "Pull to refresh…"
222+msgstr ""
223+
224+#: qml/Dash/PullToRefreshScopeStyle.qml:60
225+msgid "Release to refresh…"
226+msgstr "Slepptu til að endurlesa..."
227+
211−#: qml/Dash/ScopesOverview.qml:206
228+#: qml/Dash/ScopesOverview.qml:215
212msgid "Manage Scopes"
229msgid "Manage Scopes"
213msgstr ""
230msgstr ""
214
231
215−#: qml/Dash/ScopesOverview.qml:428
232+#: qml/Dash/ScopesOverview.qml:437
216msgid "Done"
233msgid "Done"
217msgstr "Lokið"
234msgstr "Lokið"
218
235
219−#: qml/Dash/ScopesOverview.qml:454
236+#: qml/Dash/ScopesOverview.qml:463
220msgid "Store"
237msgid "Store"
221msgstr "Geyma"
238msgstr "Geyma"
222
239
@@ -228,9 +245,9 @@ msgstr "Eftirlæti"
228msgid "All"
245msgid "All"
229msgstr "Allt"
246msgstr "Allt"
230
247
231−#: qml/Greeter/Greeter.qml:157
248+#: qml/Greeter/Greeter.qml:174
232−msgid "Swipe to unlock"
249+msgid "Unlock"
233−msgstr "Strjúka til að aflæsa"
250+msgstr "Aflæsa"
234
251
235#: qml/Hud/HudParametrizedActionsPage.qml:139
252#: qml/Hud/HudParametrizedActionsPage.qml:139
236msgid "Confirm"
253msgid "Confirm"
@@ -252,51 +269,43 @@ msgstr "Tala núna..."
252msgid "Speaking..."
269msgid "Speaking..."
253msgstr "Tala..."
270msgstr "Tala..."
254
271
255−#: qml/Notifications/NotificationMenuItemFactory.qml:108
272+#: qml/Notifications/NotificationMenuItemFactory.qml:116
256msgid "Show password"
273msgid "Show password"
257msgstr "Birta lykilorð"
274msgstr "Birta lykilorð"
258
275
259−#: qml/Notifications/NotificationMenuItemFactory.qml:124
260−msgid "Enter SIM PIN"
261−msgstr "Settu inn PIN-númer SIM-kortsins"
262−
263−#: qml/Notifications/NotificationMenuItemFactory.qml:125
264−msgid "Sorry, incorrect PIN"
265−msgstr "Því miður, rangt PIN-númer"
266−
267−#: qml/Panel/ActiveCallHint.qml:77
276+#: qml/Panel/ActiveCallHint.qml:79
268msgid "Tap to return to call..."
277msgid "Tap to return to call..."
269msgstr "Slá til að svara símtali..."
278msgstr "Slá til að svara símtali..."
270
279
271−#: qml/Panel/ActiveCallHint.qml:90
280+#: qml/Panel/ActiveCallHint.qml:92
272msgid "Conference"
281msgid "Conference"
273msgstr "Ráðstefna"
282msgstr "Ráðstefna"
274
283
275−#: qml/Panel/Indicators/MenuItemFactory.qml:600
284+#: qml/Panel/Indicators/MenuItemFactory.qml:615
276msgid "Nothing is playing"
285msgid "Nothing is playing"
277msgstr ""
286msgstr ""
278
287
279−#: qml/Panel/Indicators/MenuItemFactory.qml:748
288+#: qml/Panel/Indicators/MenuItemFactory.qml:763
280msgid "In queue…"
289msgid "In queue…"
281msgstr "Í biðröð..."
290msgstr "Í biðröð..."
282
291
283−#: qml/Panel/Indicators/MenuItemFactory.qml:752
292+#: qml/Panel/Indicators/MenuItemFactory.qml:767
284msgid "Downloading"
293msgid "Downloading"
285msgstr "Sæki"
294msgstr "Sæki"
286
295
287−#: qml/Panel/Indicators/MenuItemFactory.qml:754
296+#: qml/Panel/Indicators/MenuItemFactory.qml:769
288msgid "Paused, tap to resume"
297msgid "Paused, tap to resume"
289msgstr "Í bið, sláðu létt til að halda áfram"
298msgstr "Í bið, sláðu létt til að halda áfram"
290
299
291−#: qml/Panel/Indicators/MenuItemFactory.qml:756
300+#: qml/Panel/Indicators/MenuItemFactory.qml:771
292msgid "Canceled"
301msgid "Canceled"
293msgstr "Hætt við"
302msgstr "Hætt við"
294
303
295−#: qml/Panel/Indicators/MenuItemFactory.qml:758
304+#: qml/Panel/Indicators/MenuItemFactory.qml:773
296msgid "Finished"
305msgid "Finished"
297msgstr "Lokið"
306msgstr "Lokið"
298
307
299−#: qml/Panel/Indicators/MenuItemFactory.qml:760
308+#: qml/Panel/Indicators/MenuItemFactory.qml:775
300msgid "Failed, tap to retry"
309msgid "Failed, tap to retry"
301msgstr "Mistókst, sláðu létt til að reyna aftur"
310msgstr "Mistókst, sláðu létt til að reyna aftur"
302
311
@@ -306,54 +315,62 @@ msgstr "Aflæsa SIM-korti"
306
315
307#: qml/Panel/Indicators/RoamingIndication.qml:27
316#: qml/Panel/Indicators/RoamingIndication.qml:27
308msgid "Roaming"
317msgid "Roaming"
309−msgstr ""
318+msgstr "Ráphamur"
310
319
311−#: qml/Shell.qml:320
320+#: qml/Shell.qml:381
312−msgid "Enter your passphrase"
321+msgid "Enter passphrase"
313msgstr ""
322msgstr ""
314
323
315−#: qml/Shell.qml:321
324+#: qml/Shell.qml:382
316msgid "Sorry, incorrect passphrase"
325msgid "Sorry, incorrect passphrase"
317−msgstr ""
326+msgstr "Því miður, rangt lykilorð"
318
327
319−#: qml/Shell.qml:323
328+#: qml/Shell.qml:383
329+msgid "Please re-enter"
330+msgstr "Settu aftur inn"
331+
332+#: qml/Shell.qml:385
320−msgid "Enter your passcode"
333+msgid "Enter passcode"
321msgstr ""
334msgstr ""
322
335
323−#: qml/Shell.qml:324
336+#: qml/Shell.qml:386
324msgid "Sorry, incorrect passcode"
337msgid "Sorry, incorrect passcode"
325−msgstr ""
338+msgstr "Því miður, rangur aðgangskóði"
326
339
327−#: qml/Shell.qml:327
340+#: qml/Shell.qml:389
328#, qt-format
341#, qt-format
329−msgid "Enter your %1"
342+msgid "Enter %1"
330−msgstr ""
343+msgstr "Settu inn %1"
331
344
332−#: qml/Shell.qml:328
345+#: qml/Shell.qml:390
333#, qt-format
346#, qt-format
334msgid "Sorry, incorrect %1"
347msgid "Sorry, incorrect %1"
335−msgstr ""
348+msgstr "Því miður, rangt %1"
336
349
337−#: qml/Shell.qml:363
350+#: qml/Shell.qml:431
338msgid "Sorry, incorrect passphrase."
351msgid "Sorry, incorrect passphrase."
339−msgstr ""
352+msgstr "Því miður, rangt lykilorð."
340
353
341−#: qml/Shell.qml:364
354+#: qml/Shell.qml:432
342msgid "Sorry, incorrect passcode."
355msgid "Sorry, incorrect passcode."
343−msgstr ""
356+msgstr "Því miður, rangur aðgangskóði."
344
357
345−#: qml/Shell.qml:365
358+#: qml/Shell.qml:433
346msgid "This will be your last attempt."
359msgid "This will be your last attempt."
347−msgstr ""
360+msgstr "Þetta mun verða síðasta tilraunin þín."
348
361
349−#: qml/Shell.qml:367
362+#: qml/Shell.qml:435
350msgid ""
363msgid ""
351"If passphrase is entered incorrectly, your phone will conduct a factory "
364"If passphrase is entered incorrectly, your phone will conduct a factory "
352"reset and all personal data will be deleted."
365"reset and all personal data will be deleted."
353msgstr ""
366msgstr ""
367+"Ef lykilorð er rangt, mun síminn frumstilla allt á verksmiðjustillingar og "
368+"öllum einkagögnum verður eytt."
354
369
355−#: qml/Shell.qml:368
370+#: qml/Shell.qml:436
356msgid ""
371msgid ""
357"If passcode is entered incorrectly, your phone will conduct a factory reset "
372"If passcode is entered incorrectly, your phone will conduct a factory reset "
358"and all personal data will be deleted."
373"and all personal data will be deleted."
359msgstr ""
374msgstr ""
375+"Ef aðgangskóði er rangur, mun síminn frumstilla allt á verksmiðjustillingar "
376+"og öllum einkagögnum verður eytt."
po/it.po+102−90
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11−"PO-Revision-Date: 2014-08-28 15:31+0000\n"
11+"PO-Revision-Date: 2014-09-30 10:56+0000\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
13"Language-Team: Italian <it@li.org>\n"
13"Language-Team: Italian <it@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,45 +31,68 @@ msgstr "Blocca scorciatoia"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "Sblocca scorciatoia"
32msgstr "Sblocca scorciatoia"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "Dispositivo bloccato"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+"Utente bloccato a causa di troppi tentativi falliti di inserimento della "
42+"passphrase."
43+
44+#: qml/Components/DelayedLockscreen.qml:63
45+msgid "You have been locked out due to too many failed passcode attempts."
46+msgstr ""
47+"Utente bloccato a causa di troppo tentativi falliti di inserimento del "
48+"codice."
49+
50+#: qml/Components/DelayedLockscreen.qml:72
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] "Attendere %1 minuto poi riprovare…"
55+msgstr[1] "Attendere %1 minuti poi riprovare…"
56+
57+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
58msgid "Log out"
35msgstr "Termina sessione"
59msgstr "Termina sessione"
36
60
37−#: qml/Components/Dialogs.qml:71
61+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
62msgid "Are you sure you want to log out?"
39msgstr "Terminare veramente la sessione?"
63msgstr "Terminare veramente la sessione?"
40
64
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
65+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
66+#: qml/Components/Dialogs.qml:126
43msgid "No"
67msgid "No"
44msgstr "No"
68msgstr "No"
45
69
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
70+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
71+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
72msgid "Yes"
49msgstr "Sì"
73msgstr "Sì"
50
74
51−#: qml/Components/Dialogs.qml:94
75+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
76msgid "Shut down"
53msgstr "Spegni"
77msgstr "Spegni"
54
78
55−#: qml/Components/Dialogs.qml:95
79+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
80msgid "Are you sure you want to shut down?"
57msgstr "Spegnere veramente il dispositivo?"
81msgstr "Spegnere veramente il dispositivo?"
58
82
59−#: qml/Components/Dialogs.qml:119
83+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
84msgid "Reboot"
61msgstr "Riavvia"
85msgstr "Riavvia"
62
86
63−#: qml/Components/Dialogs.qml:120
87+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
88msgid "Are you sure you want to reboot?"
65msgstr "Riavviare veramente il dispositivo?"
89msgstr "Riavviare veramente il dispositivo?"
66
90
67−#: qml/Components/Dialogs.qml:144
91+#: qml/Components/Dialogs.qml:148
68msgid "Power"
92msgid "Power"
69msgstr "Alimentazione"
93msgstr "Alimentazione"
70
94
71−#: qml/Components/Dialogs.qml:145
95+#: qml/Components/Dialogs.qml:149
72msgid ""
96msgid ""
73"Are you sure you would like\n"
97"Are you sure you would like\n"
74"to power off?"
98"to power off?"
@@ -76,15 +100,15 @@ msgstr ""
76"Spegnere veramente\n"
100"Spegnere veramente\n"
77"il dispositivo?"
101"il dispositivo?"
78
102
79−#: qml/Components/Dialogs.qml:147
103+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
104msgid "Power off"
81msgstr "Spegni"
105msgstr "Spegni"
82
106
83−#: qml/Components/Dialogs.qml:157
107+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
108msgid "Restart"
85−msgstr ""
109+msgstr "Riavvia"
86
110
87−#: qml/Components/Dialogs.qml:167
111+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
112msgid "Cancel"
89msgstr "Annulla"
113msgstr "Annulla"
90
114
@@ -119,21 +143,21 @@ msgstr ""
119"Far scorrere verso l'alto nuovamente per chiudere la schermata delle "
143"Far scorrere verso l'alto nuovamente per chiudere la schermata delle "
120"impostazioni"
144"impostazioni"
121
145
122−#: qml/Components/EdgeDemo.qml:198
146+#: qml/Components/EdgeDemo.qml:201
123msgid "Left edge"
147msgid "Left edge"
124msgstr "Bordo sinistro"
148msgstr "Bordo sinistro"
125
149
126−#: qml/Components/EdgeDemo.qml:199
150+#: qml/Components/EdgeDemo.qml:202
127msgid "Swipe from the left to reveal the launcher for quick access to apps"
151msgid "Swipe from the left to reveal the launcher for quick access to apps"
128msgstr ""
152msgstr ""
129"Far scorrere il bordo sinistro per mostrare il Launcher e avere un rapido "
153"Far scorrere il bordo sinistro per mostrare il Launcher e avere un rapido "
130"accesso alle applicazioni"
154"accesso alle applicazioni"
131
155
132−#: qml/Components/EdgeDemo.qml:226
156+#: qml/Components/EdgeDemo.qml:229
133msgid "Well done"
157msgid "Well done"
134msgstr "Ben fatto"
158msgstr "Ben fatto"
135
159
136−#: qml/Components/EdgeDemo.qml:227
160+#: qml/Components/EdgeDemo.qml:230
137msgid ""
161msgid ""
138"You have now mastered the edge gestures and can start using the "
162"You have now mastered the edge gestures and can start using the "
139"phone<br><br>Tap on the screen to start"
163"phone<br><br>Tap on the screen to start"
@@ -141,40 +165,27 @@ msgstr ""
141"L'apprendimento dei gesti è stato completato. È ora possibile iniziare a "
165"L'apprendimento dei gesti è stato completato. È ora possibile iniziare a "
142"usare il telefono.<br><br>Toccare lo schermo per iniziare"
166"usare il telefono.<br><br>Toccare lo schermo per iniziare"
143
167
144−#: qml/Components/Lockscreen.qml:167
168+#: qml/Components/Lockscreen.qml:223
145−msgid "Please wait"
169+msgid "Return to Call"
146−msgstr "Attendere"
170+msgstr ""
147−
148−#: qml/Components/Lockscreen.qml:172
149−msgid "Too many incorrect attempts"
150−msgstr "Troppi tentativi errati"
151
171
152−#: qml/Components/Lockscreen.qml:206
172+#: qml/Components/Lockscreen.qml:223
153msgid "Emergency Call"
173msgid "Emergency Call"
154msgstr "Chiamata di emergenza"
174msgstr "Chiamata di emergenza"
155
175
156−#: qml/Components/Lockscreen.qml:226
176+#: qml/Components/Lockscreen.qml:255
157msgid "OK"
177msgid "OK"
158msgstr "OK"
178msgstr "OK"
159
179
160−#: qml/Components/PassphraseLockscreen.qml:61
161−#, qt-format
162−msgid "Hello %1"
163−msgstr "Ciao %1"
164−
165−#: qml/Components/PassphraseLockscreen.qml:61
166−msgid "Hello"
167−msgstr "Ciao"
168−
169−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
180+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
170msgid "See less"
181msgid "See less"
171msgstr "Mostra meno"
182msgstr "Mostra meno"
172
183
173−#: qml/Dash/GenericScopeView.qml:411
184+#: qml/Dash/GenericScopeView.qml:434
174msgid "See all"
185msgid "See all"
175msgstr "Mostra tutto"
186msgstr "Mostra tutto"
176
187
177−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
188+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
178#: qml/Panel/SearchIndicator.qml:27
189#: qml/Panel/SearchIndicator.qml:27
179msgid "Search"
190msgid "Search"
180msgstr "Cerca"
191msgstr "Cerca"
@@ -211,15 +222,23 @@ msgstr "Aggiungi una recensione"
211msgid "Send"
222msgid "Send"
212msgstr "Invia"
223msgstr "Invia"
213
224
225+#: qml/Dash/PullToRefreshScopeStyle.qml:55
226+msgid "Pull to refresh…"
227+msgstr "Scorrere per aggiornare…"
228+
229+#: qml/Dash/PullToRefreshScopeStyle.qml:60
230+msgid "Release to refresh…"
231+msgstr "Rilasciare per aggiornare…"
232+
214−#: qml/Dash/ScopesOverview.qml:206
233+#: qml/Dash/ScopesOverview.qml:215
215msgid "Manage Scopes"
234msgid "Manage Scopes"
216−msgstr ""
235+msgstr "Gestisci Scope"
217
236
218−#: qml/Dash/ScopesOverview.qml:428
237+#: qml/Dash/ScopesOverview.qml:437
219msgid "Done"
238msgid "Done"
220msgstr "Fatto"
239msgstr "Fatto"
221
240
222−#: qml/Dash/ScopesOverview.qml:454
241+#: qml/Dash/ScopesOverview.qml:463
223msgid "Store"
242msgid "Store"
224msgstr "Store"
243msgstr "Store"
225
244
@@ -231,9 +250,9 @@ msgstr "Preferiti"
231msgid "All"
250msgid "All"
232msgstr "Tutto"
251msgstr "Tutto"
233
252
234−#: qml/Greeter/Greeter.qml:157
253+#: qml/Greeter/Greeter.qml:174
235−msgid "Swipe to unlock"
254+msgid "Unlock"
236−msgstr "Scorrere per sbloccare"
255+msgstr "Sblocca"
237
256
238#: qml/Hud/HudParametrizedActionsPage.qml:139
257#: qml/Hud/HudParametrizedActionsPage.qml:139
239msgid "Confirm"
258msgid "Confirm"
@@ -255,51 +274,43 @@ msgstr "Parla ora..."
255msgid "Speaking..."
274msgid "Speaking..."
256msgstr "Sto parlando..."
275msgstr "Sto parlando..."
257
276
258−#: qml/Notifications/NotificationMenuItemFactory.qml:108
277+#: qml/Notifications/NotificationMenuItemFactory.qml:116
259msgid "Show password"
278msgid "Show password"
260msgstr "Mostra password"
279msgstr "Mostra password"
261
280
262−#: qml/Notifications/NotificationMenuItemFactory.qml:124
263−msgid "Enter SIM PIN"
264−msgstr "Inserire il PIN della SIM"
265−
266−#: qml/Notifications/NotificationMenuItemFactory.qml:125
267−msgid "Sorry, incorrect PIN"
268−msgstr "PIN errato"
269−
270−#: qml/Panel/ActiveCallHint.qml:77
281+#: qml/Panel/ActiveCallHint.qml:79
271msgid "Tap to return to call..."
282msgid "Tap to return to call..."
272msgstr "Tocca per tornare alla chiamata..."
283msgstr "Tocca per tornare alla chiamata..."
273
284
274−#: qml/Panel/ActiveCallHint.qml:90
285+#: qml/Panel/ActiveCallHint.qml:92
275msgid "Conference"
286msgid "Conference"
276msgstr "Conferenza"
287msgstr "Conferenza"
277
288
278−#: qml/Panel/Indicators/MenuItemFactory.qml:600
289+#: qml/Panel/Indicators/MenuItemFactory.qml:615
279msgid "Nothing is playing"
290msgid "Nothing is playing"
280−msgstr ""
291+msgstr "Niente in riproduzione"
281
292
282−#: qml/Panel/Indicators/MenuItemFactory.qml:748
293+#: qml/Panel/Indicators/MenuItemFactory.qml:763
283msgid "In queue…"
294msgid "In queue…"
284msgstr "In coda..."
295msgstr "In coda..."
285
296
286−#: qml/Panel/Indicators/MenuItemFactory.qml:752
297+#: qml/Panel/Indicators/MenuItemFactory.qml:767
287msgid "Downloading"
298msgid "Downloading"
288msgstr "Scaricamento in corso"
299msgstr "Scaricamento in corso"
289
300
290−#: qml/Panel/Indicators/MenuItemFactory.qml:754
301+#: qml/Panel/Indicators/MenuItemFactory.qml:769
291msgid "Paused, tap to resume"
302msgid "Paused, tap to resume"
292msgstr "In pausa. Tocca per riprendere"
303msgstr "In pausa. Tocca per riprendere"
293
304
294−#: qml/Panel/Indicators/MenuItemFactory.qml:756
305+#: qml/Panel/Indicators/MenuItemFactory.qml:771
295msgid "Canceled"
306msgid "Canceled"
296msgstr "Annullato"
307msgstr "Annullato"
297
308
298−#: qml/Panel/Indicators/MenuItemFactory.qml:758
309+#: qml/Panel/Indicators/MenuItemFactory.qml:773
299msgid "Finished"
310msgid "Finished"
300msgstr "Completato"
311msgstr "Completato"
301
312
302−#: qml/Panel/Indicators/MenuItemFactory.qml:760
313+#: qml/Panel/Indicators/MenuItemFactory.qml:775
303msgid "Failed, tap to retry"
314msgid "Failed, tap to retry"
304msgstr "Non riuscito. Tocca per riprovare"
315msgstr "Non riuscito. Tocca per riprovare"
305
316
@@ -311,45 +322,49 @@ msgstr "Sblocca SIM"
311msgid "Roaming"
322msgid "Roaming"
312msgstr "Roaming"
323msgstr "Roaming"
313
324
314−#: qml/Shell.qml:320
325+#: qml/Shell.qml:381
315−msgid "Enter your passphrase"
326+msgid "Enter passphrase"
316−msgstr "Digitare la passphrase"
327+msgstr "Inserire passphrase"
317
328
318−#: qml/Shell.qml:321
329+#: qml/Shell.qml:382
319msgid "Sorry, incorrect passphrase"
330msgid "Sorry, incorrect passphrase"
320msgstr "Passphrase errata"
331msgstr "Passphrase errata"
321
332
322−#: qml/Shell.qml:323
333+#: qml/Shell.qml:383
323−msgid "Enter your passcode"
334+msgid "Please re-enter"
324−msgstr "Inserire il passcode"
335+msgstr "Inserire nuovamente"
325
336
326−#: qml/Shell.qml:324
337+#: qml/Shell.qml:385
338+msgid "Enter passcode"
339+msgstr "Inserire codice"
340+
341+#: qml/Shell.qml:386
327msgid "Sorry, incorrect passcode"
342msgid "Sorry, incorrect passcode"
328msgstr "Passcode non corretto"
343msgstr "Passcode non corretto"
329
344
330−#: qml/Shell.qml:327
345+#: qml/Shell.qml:389
331#, qt-format
346#, qt-format
332−msgid "Enter your %1"
347+msgid "Enter %1"
333msgstr "Inserire %1"
348msgstr "Inserire %1"
334
349
335−#: qml/Shell.qml:328
350+#: qml/Shell.qml:390
336#, qt-format
351#, qt-format
337msgid "Sorry, incorrect %1"
352msgid "Sorry, incorrect %1"
338msgstr "%1 non corretto"
353msgstr "%1 non corretto"
339
354
340−#: qml/Shell.qml:363
355+#: qml/Shell.qml:431
341msgid "Sorry, incorrect passphrase."
356msgid "Sorry, incorrect passphrase."
342msgstr "Passphrase non corretta"
357msgstr "Passphrase non corretta"
343
358
344−#: qml/Shell.qml:364
359+#: qml/Shell.qml:432
345msgid "Sorry, incorrect passcode."
360msgid "Sorry, incorrect passcode."
346msgstr "Passcode non corretto"
361msgstr "Passcode non corretto"
347
362
348−#: qml/Shell.qml:365
363+#: qml/Shell.qml:433
349msgid "This will be your last attempt."
364msgid "This will be your last attempt."
350msgstr "Questo sarà l'ultimo tentativo."
365msgstr "Questo sarà l'ultimo tentativo."
351
366
352−#: qml/Shell.qml:367
367+#: qml/Shell.qml:435
353msgid ""
368msgid ""
354"If passphrase is entered incorrectly, your phone will conduct a factory "
369"If passphrase is entered incorrectly, your phone will conduct a factory "
355"reset and all personal data will be deleted."
370"reset and all personal data will be deleted."
@@ -357,13 +372,10 @@ msgstr ""
357"Se verrà inserita una passphrase errata, il telefono eseguirà un ripristino "
372"Se verrà inserita una passphrase errata, il telefono eseguirà un ripristino "
358"delle impostazioni di fabbrica e tutti i dati personali verranno eliminati."
373"delle impostazioni di fabbrica e tutti i dati personali verranno eliminati."
359
374
360−#: qml/Shell.qml:368
375+#: qml/Shell.qml:436
361msgid ""
376msgid ""
362"If passcode is entered incorrectly, your phone will conduct a factory reset "
377"If passcode is entered incorrectly, your phone will conduct a factory reset "
363"and all personal data will be deleted."
378"and all personal data will be deleted."
364msgstr ""
379msgstr ""
365"Se verrà inserito una passcode errato, il telefono eseguirà un ripristino "
380"Se verrà inserito una passcode errato, il telefono eseguirà un ripristino "
366"delle impostazioni di fabbrica e tutti i dati personali verranno eliminati."
381"delle impostazioni di fabbrica e tutti i dati personali verranno eliminati."
367−
368−#~ msgid "Manage Dash"
369−#~ msgstr "Gestione della Dash"
po/ja.po+95−87
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-09-18 09:47+0000\n"
11"PO-Revision-Date: 2014-09-18 09:47+0000\n"
12"Last-Translator: Mitsuya Shibata <mty.shibata@gmail.com>\n"
12"Last-Translator: Mitsuya Shibata <mty.shibata@gmail.com>\n"
13"Language-Team: Japanese <ja@li.org>\n"
13"Language-Team: Japanese <ja@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=1; plural=0;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr "ショートカットを追加する"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "ショートカットを削除する"
32msgstr "ショートカットを削除する"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr "ログアウト"
55msgstr "ログアウト"
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr "本当にログアウトしますか?"
59msgstr "本当にログアウトしますか?"
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr "いいえ"
64msgstr "いいえ"
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr "はい"
69msgstr "はい"
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr "シャットダウン"
73msgstr "シャットダウン"
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr "本当にシャットダウンしますか?"
77msgstr "本当にシャットダウンしますか?"
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr "再起動"
81msgstr "再起動"
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr "本当に再起動しますか?"
85msgstr "本当に再起動しますか?"
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr "電源"
89msgstr "電源"
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr "本当に電源を切りますか?"
95msgstr "本当に電源を切りますか?"
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr "電源を切る"
99msgstr "電源を切る"
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr "再起動"
103msgstr "再起動"
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr "キャンセル"
107msgstr "キャンセル"
88
108
@@ -114,59 +134,46 @@ msgstr "閉じる"
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr "設定画面を閉じるにはもう一度上にスワイプしてください"
135msgstr "設定画面を閉じるにはもう一度上にスワイプしてください"
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr "左端"
139msgstr "左端"
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr "アプリに素早くアクセスできるLauncherを表示するには左からスワイプしてください"
143msgstr "アプリに素早くアクセスできるLauncherを表示するには左からスワイプしてください"
124
144
125−#: qml/Components/EdgeDemo.qml:226
145+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
146msgid "Well done"
127msgstr "よくできました!"
147msgstr "よくできました!"
128
148
129−#: qml/Components/EdgeDemo.qml:227
149+#: qml/Components/EdgeDemo.qml:230
130msgid ""
150msgid ""
131"You have now mastered the edge gestures and can start using the "
151"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
152"phone<br><br>Tap on the screen to start"
133msgstr ""
153msgstr ""
134"これでスマートフォンの操作に必要な、画面端を用いたジェスチャーを習得できました。<br><br>利用を開始するなら画面をタップしてください"
154"これでスマートフォンの操作に必要な、画面端を用いたジェスチャーを習得できました。<br><br>利用を開始するなら画面をタップしてください"
135
155
136−#: qml/Components/Lockscreen.qml:167
156+#: qml/Components/Lockscreen.qml:223
137−msgid "Please wait"
157+msgid "Return to Call"
138−msgstr "お待ちください"
158+msgstr ""
139−
140−#: qml/Components/Lockscreen.qml:172
141−msgid "Too many incorrect attempts"
142−msgstr "失敗回数が上限に達しました"
143
159
144−#: qml/Components/Lockscreen.qml:206
160+#: qml/Components/Lockscreen.qml:223
145msgid "Emergency Call"
161msgid "Emergency Call"
146msgstr "緊急通報"
162msgstr "緊急通報"
147
163
148−#: qml/Components/Lockscreen.qml:226
164+#: qml/Components/Lockscreen.qml:255
149msgid "OK"
165msgid "OK"
150msgstr "OK"
166msgstr "OK"
151
167
152−#: qml/Components/PassphraseLockscreen.qml:61
153−#, qt-format
154−msgid "Hello %1"
155−msgstr "こんにちは %1 さん"
156−
157−#: qml/Components/PassphraseLockscreen.qml:61
158−msgid "Hello"
159−msgstr "こんにちは"
160−
161−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
168+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
162msgid "See less"
169msgid "See less"
163msgstr "隠す"
170msgstr "隠す"
164
171
165−#: qml/Dash/GenericScopeView.qml:411
172+#: qml/Dash/GenericScopeView.qml:434
166msgid "See all"
173msgid "See all"
167msgstr "すべて表示する"
174msgstr "すべて表示する"
168
175
169−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
176+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
170#: qml/Panel/SearchIndicator.qml:27
177#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
178msgid "Search"
172msgstr "検索"
179msgstr "検索"
@@ -203,15 +210,23 @@ msgstr "レビューを追加"
203msgid "Send"
210msgid "Send"
204msgstr "送信"
211msgstr "送信"
205
212
213+#: qml/Dash/PullToRefreshScopeStyle.qml:55
214+msgid "Pull to refresh…"
215+msgstr ""
216+
217+#: qml/Dash/PullToRefreshScopeStyle.qml:60
218+msgid "Release to refresh…"
219+msgstr ""
220+
206−#: qml/Dash/ScopesOverview.qml:206
221+#: qml/Dash/ScopesOverview.qml:215
207msgid "Manage Scopes"
222msgid "Manage Scopes"
208msgstr ""
223msgstr ""
209
224
210−#: qml/Dash/ScopesOverview.qml:428
225+#: qml/Dash/ScopesOverview.qml:437
211msgid "Done"
226msgid "Done"
212msgstr "完了"
227msgstr "完了"
213
228
214−#: qml/Dash/ScopesOverview.qml:454
229+#: qml/Dash/ScopesOverview.qml:463
215msgid "Store"
230msgid "Store"
216msgstr "保存"
231msgstr "保存"
217
232
@@ -223,9 +238,9 @@ msgstr "お気に入り"
223msgid "All"
238msgid "All"
224msgstr "すべて"
239msgstr "すべて"
225
240
226−#: qml/Greeter/Greeter.qml:157
241+#: qml/Greeter/Greeter.qml:174
227−msgid "Swipe to unlock"
242+msgid "Unlock"
228−msgstr "スワイプしてロック解除"
243+msgstr "ロックの解除"
229
244
230#: qml/Hud/HudParametrizedActionsPage.qml:139
245#: qml/Hud/HudParametrizedActionsPage.qml:139
231msgid "Confirm"
246msgid "Confirm"
@@ -247,51 +262,43 @@ msgstr "音声入力を開始..."
247msgid "Speaking..."
262msgid "Speaking..."
248msgstr "入力中..."
263msgstr "入力中..."
249
264
250−#: qml/Notifications/NotificationMenuItemFactory.qml:108
265+#: qml/Notifications/NotificationMenuItemFactory.qml:116
251msgid "Show password"
266msgid "Show password"
252msgstr "パスワードを表示"
267msgstr "パスワードを表示"
253
268
254−#: qml/Notifications/NotificationMenuItemFactory.qml:124
255−msgid "Enter SIM PIN"
256−msgstr "SIM PINの入力"
257−
258−#: qml/Notifications/NotificationMenuItemFactory.qml:125
259−msgid "Sorry, incorrect PIN"
260−msgstr "PINが違います"
261−
262−#: qml/Panel/ActiveCallHint.qml:77
269+#: qml/Panel/ActiveCallHint.qml:79
263msgid "Tap to return to call..."
270msgid "Tap to return to call..."
264msgstr "タップすると通話に戻ります..."
271msgstr "タップすると通話に戻ります..."
265
272
266−#: qml/Panel/ActiveCallHint.qml:90
273+#: qml/Panel/ActiveCallHint.qml:92
267msgid "Conference"
274msgid "Conference"
268msgstr "グループ通話"
275msgstr "グループ通話"
269
276
270−#: qml/Panel/Indicators/MenuItemFactory.qml:600
277+#: qml/Panel/Indicators/MenuItemFactory.qml:615
271msgid "Nothing is playing"
278msgid "Nothing is playing"
272msgstr ""
279msgstr ""
273
280
274−#: qml/Panel/Indicators/MenuItemFactory.qml:748
281+#: qml/Panel/Indicators/MenuItemFactory.qml:763
275msgid "In queue…"
282msgid "In queue…"
276msgstr "開始待ち..."
283msgstr "開始待ち..."
277
284
278−#: qml/Panel/Indicators/MenuItemFactory.qml:752
285+#: qml/Panel/Indicators/MenuItemFactory.qml:767
279msgid "Downloading"
286msgid "Downloading"
280msgstr "ダウンロード中"
287msgstr "ダウンロード中"
281
288
282−#: qml/Panel/Indicators/MenuItemFactory.qml:754
289+#: qml/Panel/Indicators/MenuItemFactory.qml:769
283msgid "Paused, tap to resume"
290msgid "Paused, tap to resume"
284msgstr "停止中、再開するにはタップしてください"
291msgstr "停止中、再開するにはタップしてください"
285
292
286−#: qml/Panel/Indicators/MenuItemFactory.qml:756
293+#: qml/Panel/Indicators/MenuItemFactory.qml:771
287msgid "Canceled"
294msgid "Canceled"
288msgstr "中止しました"
295msgstr "中止しました"
289
296
290−#: qml/Panel/Indicators/MenuItemFactory.qml:758
297+#: qml/Panel/Indicators/MenuItemFactory.qml:773
291msgid "Finished"
298msgid "Finished"
292msgstr "完了しました"
299msgstr "完了しました"
293
300
294−#: qml/Panel/Indicators/MenuItemFactory.qml:760
301+#: qml/Panel/Indicators/MenuItemFactory.qml:775
295msgid "Failed, tap to retry"
302msgid "Failed, tap to retry"
296msgstr "失敗しました、再試行するにはタップしてください"
303msgstr "失敗しました、再試行するにはタップしてください"
297
304
@@ -303,55 +310,56 @@ msgstr "SIMのアンロック"
303msgid "Roaming"
310msgid "Roaming"
304msgstr "ローミング"
311msgstr "ローミング"
305
312
306−#: qml/Shell.qml:320
313+#: qml/Shell.qml:381
307−msgid "Enter your passphrase"
314+msgid "Enter passphrase"
308−msgstr "パスフレーズの入力"
315+msgstr "パスフレーズを入力"
309
316
310−#: qml/Shell.qml:321
317+#: qml/Shell.qml:382
311msgid "Sorry, incorrect passphrase"
318msgid "Sorry, incorrect passphrase"
312msgstr "パスフレーズが違います"
319msgstr "パスフレーズが違います"
313
320
314−#: qml/Shell.qml:323
321+#: qml/Shell.qml:383
322+msgid "Please re-enter"
323+msgstr ""
324+
325+#: qml/Shell.qml:385
315−msgid "Enter your passcode"
326+msgid "Enter passcode"
316−msgstr "パスコードの入力"
327+msgstr ""
317
328
318−#: qml/Shell.qml:324
329+#: qml/Shell.qml:386
319msgid "Sorry, incorrect passcode"
330msgid "Sorry, incorrect passcode"
320msgstr "パスコードが違います"
331msgstr "パスコードが違います"
321
332
322−#: qml/Shell.qml:327
333+#: qml/Shell.qml:389
323#, qt-format
334#, qt-format
324−msgid "Enter your %1"
335+msgid "Enter %1"
325−msgstr "%1を入力してください"
336+msgstr ""
326
337
327−#: qml/Shell.qml:328
338+#: qml/Shell.qml:390
328#, qt-format
339#, qt-format
329msgid "Sorry, incorrect %1"
340msgid "Sorry, incorrect %1"
330msgstr "%1が違います"
341msgstr "%1が違います"
331
342
332−#: qml/Shell.qml:363
343+#: qml/Shell.qml:431
333msgid "Sorry, incorrect passphrase."
344msgid "Sorry, incorrect passphrase."
334msgstr "パスフレーズが間違っています。"
345msgstr "パスフレーズが間違っています。"
335
346
336−#: qml/Shell.qml:364
347+#: qml/Shell.qml:432
337msgid "Sorry, incorrect passcode."
348msgid "Sorry, incorrect passcode."
338msgstr "パスコードが間違っています。"
349msgstr "パスコードが間違っています。"
339
350
340−#: qml/Shell.qml:365
351+#: qml/Shell.qml:433
341msgid "This will be your last attempt."
352msgid "This will be your last attempt."
342msgstr "これが最後のチャンスです。"
353msgstr "これが最後のチャンスです。"
343
354
344−#: qml/Shell.qml:367
355+#: qml/Shell.qml:435
345msgid ""
356msgid ""
346"If passphrase is entered incorrectly, your phone will conduct a factory "
357"If passphrase is entered incorrectly, your phone will conduct a factory "
347"reset and all personal data will be deleted."
358"reset and all personal data will be deleted."
348msgstr "パスフレーズが間違っている場合、ファクトリーリセットを実施し、すべての個人データは削除されます。"
359msgstr "パスフレーズが間違っている場合、ファクトリーリセットを実施し、すべての個人データは削除されます。"
349
360
350−#: qml/Shell.qml:368
361+#: qml/Shell.qml:436
351msgid ""
362msgid ""
352"If passcode is entered incorrectly, your phone will conduct a factory reset "
363"If passcode is entered incorrectly, your phone will conduct a factory reset "
353"and all personal data will be deleted."
364"and all personal data will be deleted."
354msgstr "パスコードが間違っている場合、ファクトリーリセットを実施し、すべての個人データは削除されます。"
365msgstr "パスコードが間違っている場合、ファクトリーリセットを実施し、すべての個人データは削除されます。"
355−
356−#~ msgid "Manage Dash"
357−#~ msgstr "Dashの管理"
po/km.po+96−88
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-08-20 02:48+0000\n"
11"PO-Revision-Date: 2014-08-20 02:48+0000\n"
12−"Last-Translator: Sok Sophea <sksophea@gmail.com>\n"
12+"Last-Translator: Sophea Sok <sksophea@gmail.com>\n"
13"Language-Team: Khmer <km@li.org>\n"
13"Language-Team: Khmer <km@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=1; plural=0;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,45 +31,64 @@ msgstr "ភ្ជាប់​ផ្លូវកាត់"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "មិន​ភ្ជាប់ផ្លូវកាត់"
32msgstr "មិន​ភ្ជាប់ផ្លូវកាត់"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr "ចេញ"
55msgstr "ចេញ"
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr "តើ​អ្នក​ពិតជា​ចង់​ចេញ​មែន​ឬ?"
59msgstr "តើ​អ្នក​ពិតជា​ចង់​ចេញ​មែន​ឬ?"
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr "ទេ"
64msgstr "ទេ"
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr "បាទ/ចាស"
69msgstr "បាទ/ចាស"
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr "បិទ"
73msgstr "បិទ"
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr "តើ​អ្នក​ពិតជា​ចង់​បិទ​មែន​ឬ?"
77msgstr "តើ​អ្នក​ពិតជា​ចង់​បិទ​មែន​ឬ?"
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr "ចាប់ផ្ដើម​ឡើងវិញ"
81msgstr "ចាប់ផ្ដើម​ឡើងវិញ"
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr "តើ​អ្នក​ពិតជា​ចង់​ចាប់ផ្ដើម​ឡើងវិញ​មែន​ឬ?"
85msgstr "តើ​អ្នក​ពិតជា​ចង់​ចាប់ផ្ដើម​ឡើងវិញ​មែន​ឬ?"
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr "បីទ/បើក"
89msgstr "បីទ/បើក"
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
@@ -76,15 +96,15 @@ msgstr ""
76"តើ​អ្នក​ពិតជា​ចង់\n"
96"តើ​អ្នក​ពិតជា​ចង់\n"
77"បិទ​មែន​ឬ?"
97"បិទ​មែន​ឬ?"
78
98
79−#: qml/Components/Dialogs.qml:147
99+#: qml/Components/Dialogs.qml:151
80msgid "Power off"
100msgid "Power off"
81msgstr "បិទ"
101msgstr "បិទ"
82
102
83−#: qml/Components/Dialogs.qml:157
103+#: qml/Components/Dialogs.qml:161
84msgid "Restart"
104msgid "Restart"
85msgstr "ចាប់​ផ្ដើម​ឡើង​វិញ"
105msgstr "ចាប់​ផ្ដើម​ឡើង​វិញ"
86
106
87−#: qml/Components/Dialogs.qml:167
107+#: qml/Components/Dialogs.qml:171
88msgid "Cancel"
108msgid "Cancel"
89msgstr "បោះបង់"
109msgstr "បោះបង់"
90
110
@@ -116,21 +136,21 @@ msgstr "បិទ"
116msgid "Swipe up again to close the settings screen"
136msgid "Swipe up again to close the settings screen"
117msgstr "អូស​ឡើង​លើ​ម្ដងទៀត ដើម្បី​បិទ​ការ​កំណត់​អេក្រង់"
137msgstr "អូស​ឡើង​លើ​ម្ដងទៀត ដើម្បី​បិទ​ការ​កំណត់​អេក្រង់"
118
138
119−#: qml/Components/EdgeDemo.qml:198
139+#: qml/Components/EdgeDemo.qml:201
120msgid "Left edge"
140msgid "Left edge"
121msgstr "គែមឆ្វេង"
141msgstr "គែមឆ្វេង"
122
142
123−#: qml/Components/EdgeDemo.qml:199
143+#: qml/Components/EdgeDemo.qml:202
124msgid "Swipe from the left to reveal the launcher for quick access to apps"
144msgid "Swipe from the left to reveal the launcher for quick access to apps"
125msgstr ""
145msgstr ""
126"អូស​ពី​គែម​ឆ្វេង "
146"អូស​ពី​គែម​ឆ្វេង "
127"ដើម្បី​បង្ហាញ​កម្មវិធី​ចាប់ផ្ដើម​សម្រាប់​ចូល​ដំណើរ​ការ​កម្មវិធី​រហ័ស"
147"ដើម្បី​បង្ហាញ​កម្មវិធី​ចាប់ផ្ដើម​សម្រាប់​ចូល​ដំណើរ​ការ​កម្មវិធី​រហ័ស"
128
148
129−#: qml/Components/EdgeDemo.qml:226
149+#: qml/Components/EdgeDemo.qml:229
130msgid "Well done"
150msgid "Well done"
131msgstr "ធ្វើ​បាន​ល្អ"
151msgstr "ធ្វើ​បាន​ល្អ"
132
152
133−#: qml/Components/EdgeDemo.qml:227
153+#: qml/Components/EdgeDemo.qml:230
134msgid ""
154msgid ""
135"You have now mastered the edge gestures and can start using the "
155"You have now mastered the edge gestures and can start using the "
136"phone<br><br>Tap on the screen to start"
156"phone<br><br>Tap on the screen to start"
@@ -138,40 +158,27 @@ msgstr ""
138"ឥឡូវ​អ្នក​បាន​ពិនិត្យ​កាយវិការ​គែម​ "
158"ឥឡូវ​អ្នក​បាន​ពិនិត្យ​កាយវិការ​គែម​ "
139"និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ<br><br>ប៉ះ លើ​អេក្រង់​ដើម្បី​ចាប់ផ្ដើម"
159"និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ<br><br>ប៉ះ លើ​អេក្រង់​ដើម្បី​ចាប់ផ្ដើម"
140
160
141−#: qml/Components/Lockscreen.qml:167
161+#: qml/Components/Lockscreen.qml:223
142−msgid "Please wait"
162+msgid "Return to Call"
143−msgstr "សូមរង់ចាំ"
163+msgstr ""
144−
145−#: qml/Components/Lockscreen.qml:172
146−msgid "Too many incorrect attempts"
147−msgstr "បាន​ព្យាយាម​ខុស​ច្រើន​ដង​ពេក"
148
164
149−#: qml/Components/Lockscreen.qml:206
165+#: qml/Components/Lockscreen.qml:223
150msgid "Emergency Call"
166msgid "Emergency Call"
151msgstr "ការ​ហៅ​ពេល​អាសន្ន"
167msgstr "ការ​ហៅ​ពេល​អាសន្ន"
152
168
153−#: qml/Components/Lockscreen.qml:226
169+#: qml/Components/Lockscreen.qml:255
154msgid "OK"
170msgid "OK"
155msgstr "យល់ព្រម"
171msgstr "យល់ព្រម"
156
172
157−#: qml/Components/PassphraseLockscreen.qml:61
158−#, qt-format
159−msgid "Hello %1"
160−msgstr "សួស្ដី %1"
161−
162−#: qml/Components/PassphraseLockscreen.qml:61
163−msgid "Hello"
164−msgstr "សួស្តី"
165−
166−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
173+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
167msgid "See less"
174msgid "See less"
168msgstr "មើល​តិច​ជាង"
175msgstr "មើល​តិច​ជាង"
169
176
170−#: qml/Dash/GenericScopeView.qml:411
177+#: qml/Dash/GenericScopeView.qml:434
171msgid "See all"
178msgid "See all"
172msgstr "មើល​ទាំងអស់"
179msgstr "មើល​ទាំងអស់"
173
180
174−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
181+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175#: qml/Panel/SearchIndicator.qml:27
182#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
183msgid "Search"
177msgstr "ស្វែង​រក"
184msgstr "ស្វែង​រក"
@@ -208,15 +215,23 @@ msgstr "បន្ថែម​ការ​ពិនិត្យ"
208msgid "Send"
215msgid "Send"
209msgstr "ផ្ញើ"
216msgstr "ផ្ញើ"
210
217
218+#: qml/Dash/PullToRefreshScopeStyle.qml:55
219+msgid "Pull to refresh…"
220+msgstr ""
221+
222+#: qml/Dash/PullToRefreshScopeStyle.qml:60
223+msgid "Release to refresh…"
224+msgstr ""
225+
211−#: qml/Dash/ScopesOverview.qml:206
226+#: qml/Dash/ScopesOverview.qml:215
212msgid "Manage Scopes"
227msgid "Manage Scopes"
213msgstr ""
228msgstr ""
214
229
215−#: qml/Dash/ScopesOverview.qml:428
230+#: qml/Dash/ScopesOverview.qml:437
216msgid "Done"
231msgid "Done"
217msgstr "ធ្វើរួច"
232msgstr "ធ្វើរួច"
218
233
219−#: qml/Dash/ScopesOverview.qml:454
234+#: qml/Dash/ScopesOverview.qml:463
220msgid "Store"
235msgid "Store"
221msgstr "រក្សាទុក"
236msgstr "រក្សាទុក"
222
237
@@ -228,9 +243,9 @@ msgstr "និយម"
228msgid "All"
243msgid "All"
229msgstr "ទាំងអស់"
244msgstr "ទាំងអស់"
230
245
231−#: qml/Greeter/Greeter.qml:157
246+#: qml/Greeter/Greeter.qml:174
232−msgid "Swipe to unlock"
247+msgid "Unlock"
233−msgstr "អូស​ដើម្បី​ដោះសោ"
248+msgstr ""
234
249
235#: qml/Hud/HudParametrizedActionsPage.qml:139
250#: qml/Hud/HudParametrizedActionsPage.qml:139
236msgid "Confirm"
251msgid "Confirm"
@@ -252,51 +267,43 @@ msgstr "និយាយ​ឥឡូវ..."
252msgid "Speaking..."
267msgid "Speaking..."
253msgstr "កំពុង​និយាយ..."
268msgstr "កំពុង​និយាយ..."
254
269
255−#: qml/Notifications/NotificationMenuItemFactory.qml:108
270+#: qml/Notifications/NotificationMenuItemFactory.qml:116
256msgid "Show password"
271msgid "Show password"
257msgstr "បង្ហាញ​ពាក្យ​សម្ងាត់"
272msgstr "បង្ហាញ​ពាក្យ​សម្ងាត់"
258
273
259−#: qml/Notifications/NotificationMenuItemFactory.qml:124
260−msgid "Enter SIM PIN"
261−msgstr "បញ្ចូល​លេខ​កូដ PIN ស៊ីម"
262−
263−#: qml/Notifications/NotificationMenuItemFactory.qml:125
264−msgid "Sorry, incorrect PIN"
265−msgstr "សូមទោស! លេខ​កូដ PIN មិន​ត្រឹមត្រូវ"
266−
267−#: qml/Panel/ActiveCallHint.qml:77
274+#: qml/Panel/ActiveCallHint.qml:79
268msgid "Tap to return to call..."
275msgid "Tap to return to call..."
269msgstr "ប៉ះ​ដើម្បី​ត្រឡប់​ទៅ​ការ​ហៅ..."
276msgstr "ប៉ះ​ដើម្បី​ត្រឡប់​ទៅ​ការ​ហៅ..."
270
277
271−#: qml/Panel/ActiveCallHint.qml:90
278+#: qml/Panel/ActiveCallHint.qml:92
272msgid "Conference"
279msgid "Conference"
273msgstr "សន្និសីទ"
280msgstr "សន្និសីទ"
274
281
275−#: qml/Panel/Indicators/MenuItemFactory.qml:600
282+#: qml/Panel/Indicators/MenuItemFactory.qml:615
276msgid "Nothing is playing"
283msgid "Nothing is playing"
277msgstr ""
284msgstr ""
278
285
279−#: qml/Panel/Indicators/MenuItemFactory.qml:748
286+#: qml/Panel/Indicators/MenuItemFactory.qml:763
280msgid "In queue…"
287msgid "In queue…"
281msgstr "ក្នុងជួរ…"
288msgstr "ក្នុងជួរ…"
282
289
283−#: qml/Panel/Indicators/MenuItemFactory.qml:752
290+#: qml/Panel/Indicators/MenuItemFactory.qml:767
284msgid "Downloading"
291msgid "Downloading"
285msgstr "ទាញយក"
292msgstr "ទាញយក"
286
293
287−#: qml/Panel/Indicators/MenuItemFactory.qml:754
294+#: qml/Panel/Indicators/MenuItemFactory.qml:769
288msgid "Paused, tap to resume"
295msgid "Paused, tap to resume"
289msgstr "បាន​ផ្អាក, ប៉ះ ដើម្បីបន្ត"
296msgstr "បាន​ផ្អាក, ប៉ះ ដើម្បីបន្ត"
290
297
291−#: qml/Panel/Indicators/MenuItemFactory.qml:756
298+#: qml/Panel/Indicators/MenuItemFactory.qml:771
292msgid "Canceled"
299msgid "Canceled"
293msgstr "បាន​បោះបង់"
300msgstr "បាន​បោះបង់"
294
301
295−#: qml/Panel/Indicators/MenuItemFactory.qml:758
302+#: qml/Panel/Indicators/MenuItemFactory.qml:773
296msgid "Finished"
303msgid "Finished"
297msgstr "បាន​បញ្ចប់"
304msgstr "បាន​បញ្ចប់"
298
305
299−#: qml/Panel/Indicators/MenuItemFactory.qml:760
306+#: qml/Panel/Indicators/MenuItemFactory.qml:775
300msgid "Failed, tap to retry"
307msgid "Failed, tap to retry"
301msgstr "បាន​បរាជ័យ ប៉ះ​ ដើម្បី​ព្យាយាម​ម្ដង​ទៀត"
308msgstr "បាន​បរាជ័យ ប៉ះ​ ដើម្បី​ព្យាយាម​ម្ដង​ទៀត"
302
309
@@ -308,45 +315,49 @@ msgstr "ដោះ​សោ​ស៊ីម"
308msgid "Roaming"
315msgid "Roaming"
309msgstr "រ៉ូមីង"
316msgstr "រ៉ូមីង"
310
317
311−#: qml/Shell.qml:320
318+#: qml/Shell.qml:381
312−msgid "Enter your passphrase"
319+msgid "Enter passphrase"
313−msgstr "បញ្ចូល​ឃ្លា​សម្ងាត់​របស់​អ្នក"
320+msgstr ""
314
321
315−#: qml/Shell.qml:321
322+#: qml/Shell.qml:382
316msgid "Sorry, incorrect passphrase"
323msgid "Sorry, incorrect passphrase"
317msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ"
324msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ"
318
325
319−#: qml/Shell.qml:323
326+#: qml/Shell.qml:383
327+msgid "Please re-enter"
328+msgstr ""
329+
330+#: qml/Shell.qml:385
320−msgid "Enter your passcode"
331+msgid "Enter passcode"
321−msgstr "បញ្ចូល​កូដ​សម្ងាត់​របស់​អ្នក"
332+msgstr ""
322
333
323−#: qml/Shell.qml:324
334+#: qml/Shell.qml:386
324msgid "Sorry, incorrect passcode"
335msgid "Sorry, incorrect passcode"
325msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ"
336msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ"
326
337
327−#: qml/Shell.qml:327
338+#: qml/Shell.qml:389
328#, qt-format
339#, qt-format
329−msgid "Enter your %1"
340+msgid "Enter %1"
330−msgstr "បញ្ចូល %1 របស់​អ្នក"
341+msgstr ""
331
342
332−#: qml/Shell.qml:328
343+#: qml/Shell.qml:390
333#, qt-format
344#, qt-format
334msgid "Sorry, incorrect %1"
345msgid "Sorry, incorrect %1"
335msgstr "សូមទោស! %1 មិន​ត្រឹមត្រូវ"
346msgstr "សូមទោស! %1 មិន​ត្រឹមត្រូវ"
336
347
337−#: qml/Shell.qml:363
348+#: qml/Shell.qml:431
338msgid "Sorry, incorrect passphrase."
349msgid "Sorry, incorrect passphrase."
339msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
350msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
340
351
341−#: qml/Shell.qml:364
352+#: qml/Shell.qml:432
342msgid "Sorry, incorrect passcode."
353msgid "Sorry, incorrect passcode."
343msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
354msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
344
355
345−#: qml/Shell.qml:365
356+#: qml/Shell.qml:433
346msgid "This will be your last attempt."
357msgid "This will be your last attempt."
347msgstr "នេះ​គឺ​ការ​ព្យាយាម​លើក​ចុងក្រោយ។"
358msgstr "នេះ​គឺ​ការ​ព្យាយាម​លើក​ចុងក្រោយ។"
348
359
349−#: qml/Shell.qml:367
360+#: qml/Shell.qml:435
350msgid ""
361msgid ""
351"If passphrase is entered incorrectly, your phone will conduct a factory "
362"If passphrase is entered incorrectly, your phone will conduct a factory "
352"reset and all personal data will be deleted."
363"reset and all personal data will be deleted."
@@ -355,7 +366,7 @@ msgstr ""
355"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
366"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
356"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
367"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
357
368
358−#: qml/Shell.qml:368
369+#: qml/Shell.qml:436
359msgid ""
370msgid ""
360"If passcode is entered incorrectly, your phone will conduct a factory reset "
371"If passcode is entered incorrectly, your phone will conduct a factory reset "
361"and all personal data will be deleted."
372"and all personal data will be deleted."
@@ -363,6 +374,3 @@ msgstr ""
363"បើ​បញ្ចូល​កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ "
374"បើ​បញ្ចូល​កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ "
364"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
375"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
365"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
376"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
366−
367−#~ msgid "Manage Dash"
368−#~ msgstr "គ្រប់គ្រង​ផ្ទាំង"
po/kn.po+90−79
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kannada <kn@li.org>\n"
13"Language-Team: Kannada <kn@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,78 @@ msgstr ""
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr ""
32msgstr ""
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] ""
51+msgstr[1] ""
52+
53+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
54msgid "Log out"
35msgstr ""
55msgstr ""
36
56
37−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
39msgstr ""
59msgstr ""
40
60
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
43msgid "No"
63msgid "No"
44msgstr ""
64msgstr ""
45
65
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
68msgid "Yes"
49msgstr ""
69msgstr ""
50
70
51−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
72msgid "Shut down"
53msgstr ""
73msgstr ""
54
74
55−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
57msgstr ""
77msgstr ""
58
78
59−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
80msgid "Reboot"
61msgstr ""
81msgstr ""
62
82
63−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
65msgstr ""
85msgstr ""
66
86
67−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
68msgid "Power"
88msgid "Power"
69msgstr ""
89msgstr ""
70
90
71−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
72msgid ""
92msgid ""
73"Are you sure you would like\n"
93"Are you sure you would like\n"
74"to power off?"
94"to power off?"
75msgstr ""
95msgstr ""
76
96
77−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
98msgid "Power off"
79msgstr ""
99msgstr ""
80
100
81−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
102msgid "Restart"
83msgstr ""
103msgstr ""
84
104
85−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
106msgid "Cancel"
87msgstr ""
107msgstr ""
88
108
@@ -114,58 +134,45 @@ msgstr ""
114msgid "Swipe up again to close the settings screen"
134msgid "Swipe up again to close the settings screen"
115msgstr ""
135msgstr ""
116
136
117−#: qml/Components/EdgeDemo.qml:198
137+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
138msgid "Left edge"
119msgstr ""
139msgstr ""
120
140
121−#: qml/Components/EdgeDemo.qml:199
141+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
142msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr ""
143msgstr ""
124
144
125−#: qml/Components/EdgeDemo.qml:226
145+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
146msgid "Well done"
127msgstr ""
147msgstr ""
128
148
129−#: qml/Components/EdgeDemo.qml:227
149+#: qml/Components/EdgeDemo.qml:230
130msgid ""
150msgid ""
131"You have now mastered the edge gestures and can start using the "
151"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
152"phone<br><br>Tap on the screen to start"
133msgstr ""
153msgstr ""
134
154
135−#: qml/Components/Lockscreen.qml:167
155+#: qml/Components/Lockscreen.qml:223
136−msgid "Please wait"
156+msgid "Return to Call"
137−msgstr ""
138−
139−#: qml/Components/Lockscreen.qml:172
140−msgid "Too many incorrect attempts"
141msgstr ""
157msgstr ""
142
158
143−#: qml/Components/Lockscreen.qml:206
159+#: qml/Components/Lockscreen.qml:223
144msgid "Emergency Call"
160msgid "Emergency Call"
145msgstr ""
161msgstr ""
146
162
147−#: qml/Components/Lockscreen.qml:226
163+#: qml/Components/Lockscreen.qml:255
148msgid "OK"
164msgid "OK"
149msgstr ""
165msgstr ""
150
166
151−#: qml/Components/PassphraseLockscreen.qml:61
152−#, qt-format
153−msgid "Hello %1"
154−msgstr ""
155−
156−#: qml/Components/PassphraseLockscreen.qml:61
157−msgid "Hello"
158−msgstr ""
159−
160−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
167+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
161msgid "See less"
168msgid "See less"
162msgstr ""
169msgstr ""
163
170
164−#: qml/Dash/GenericScopeView.qml:411
171+#: qml/Dash/GenericScopeView.qml:434
165msgid "See all"
172msgid "See all"
166msgstr ""
173msgstr ""
167
174
168−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
169#: qml/Panel/SearchIndicator.qml:27
176#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
177msgid "Search"
171msgstr "ಹುಡುಕು"
178msgstr "ಹುಡುಕು"
@@ -202,15 +209,23 @@ msgstr ""
202msgid "Send"
209msgid "Send"
203msgstr ""
210msgstr ""
204
211
212+#: qml/Dash/PullToRefreshScopeStyle.qml:55
213+msgid "Pull to refresh…"
214+msgstr ""
215+
216+#: qml/Dash/PullToRefreshScopeStyle.qml:60
217+msgid "Release to refresh…"
218+msgstr ""
219+
205−#: qml/Dash/ScopesOverview.qml:206
220+#: qml/Dash/ScopesOverview.qml:215
206msgid "Manage Scopes"
221msgid "Manage Scopes"
207msgstr ""
222msgstr ""
208
223
209−#: qml/Dash/ScopesOverview.qml:428
224+#: qml/Dash/ScopesOverview.qml:437
210msgid "Done"
225msgid "Done"
211msgstr ""
226msgstr ""
212
227
213−#: qml/Dash/ScopesOverview.qml:454
228+#: qml/Dash/ScopesOverview.qml:463
214msgid "Store"
229msgid "Store"
215msgstr ""
230msgstr ""
216
231
@@ -222,8 +237,8 @@ msgstr ""
222msgid "All"
237msgid "All"
223msgstr ""
238msgstr ""
224
239
225−#: qml/Greeter/Greeter.qml:157
240+#: qml/Greeter/Greeter.qml:174
226−msgid "Swipe to unlock"
241+msgid "Unlock"
227msgstr ""
242msgstr ""
228
243
229#: qml/Hud/HudParametrizedActionsPage.qml:139
244#: qml/Hud/HudParametrizedActionsPage.qml:139
@@ -246,51 +261,43 @@ msgstr "ಈಗ ಮಾತನಾಡಿ ..."
246msgid "Speaking..."
261msgid "Speaking..."
247msgstr "ಮಾತನಾಡುತಿದ್ದೀರಿ"
262msgstr "ಮಾತನಾಡುತಿದ್ದೀರಿ"
248
263
249−#: qml/Notifications/NotificationMenuItemFactory.qml:108
264+#: qml/Notifications/NotificationMenuItemFactory.qml:116
250msgid "Show password"
265msgid "Show password"
251msgstr ""
266msgstr ""
252
267
253−#: qml/Notifications/NotificationMenuItemFactory.qml:124
254−msgid "Enter SIM PIN"
255−msgstr ""
256−
257−#: qml/Notifications/NotificationMenuItemFactory.qml:125
258−msgid "Sorry, incorrect PIN"
259−msgstr ""
260−
261−#: qml/Panel/ActiveCallHint.qml:77
268+#: qml/Panel/ActiveCallHint.qml:79
262msgid "Tap to return to call..."
269msgid "Tap to return to call..."
263msgstr ""
270msgstr ""
264
271
265−#: qml/Panel/ActiveCallHint.qml:90
272+#: qml/Panel/ActiveCallHint.qml:92
266msgid "Conference"
273msgid "Conference"
267msgstr ""
274msgstr ""
268
275
269−#: qml/Panel/Indicators/MenuItemFactory.qml:600
276+#: qml/Panel/Indicators/MenuItemFactory.qml:615
270msgid "Nothing is playing"
277msgid "Nothing is playing"
271msgstr ""
278msgstr ""
272
279
273−#: qml/Panel/Indicators/MenuItemFactory.qml:748
280+#: qml/Panel/Indicators/MenuItemFactory.qml:763
274msgid "In queue…"
281msgid "In queue…"
275msgstr ""
282msgstr ""
276
283
277−#: qml/Panel/Indicators/MenuItemFactory.qml:752
284+#: qml/Panel/Indicators/MenuItemFactory.qml:767
278msgid "Downloading"
285msgid "Downloading"
279msgstr ""
286msgstr ""
280
287
281−#: qml/Panel/Indicators/MenuItemFactory.qml:754
288+#: qml/Panel/Indicators/MenuItemFactory.qml:769
282msgid "Paused, tap to resume"
289msgid "Paused, tap to resume"
283msgstr ""
290msgstr ""
284
291
285−#: qml/Panel/Indicators/MenuItemFactory.qml:756
292+#: qml/Panel/Indicators/MenuItemFactory.qml:771
286msgid "Canceled"
293msgid "Canceled"
287msgstr ""
294msgstr ""
288
295
289−#: qml/Panel/Indicators/MenuItemFactory.qml:758
296+#: qml/Panel/Indicators/MenuItemFactory.qml:773
290msgid "Finished"
297msgid "Finished"
291msgstr ""
298msgstr ""
292
299
293−#: qml/Panel/Indicators/MenuItemFactory.qml:760
300+#: qml/Panel/Indicators/MenuItemFactory.qml:775
294msgid "Failed, tap to retry"
301msgid "Failed, tap to retry"
295msgstr ""
302msgstr ""
296
303
@@ -302,51 +309,55 @@ msgstr ""
302msgid "Roaming"
309msgid "Roaming"
303msgstr ""
310msgstr ""
304
311
305−#: qml/Shell.qml:320
312+#: qml/Shell.qml:381
306−msgid "Enter your passphrase"
313+msgid "Enter passphrase"
307msgstr ""
314msgstr ""
308
315
309−#: qml/Shell.qml:321
316+#: qml/Shell.qml:382
310msgid "Sorry, incorrect passphrase"
317msgid "Sorry, incorrect passphrase"
311msgstr ""
318msgstr ""
312
319
313−#: qml/Shell.qml:323
320+#: qml/Shell.qml:383
321+msgid "Please re-enter"
322+msgstr ""
323+
324+#: qml/Shell.qml:385
314−msgid "Enter your passcode"
325+msgid "Enter passcode"
315msgstr ""
326msgstr ""
316
327
317−#: qml/Shell.qml:324
328+#: qml/Shell.qml:386
318msgid "Sorry, incorrect passcode"
329msgid "Sorry, incorrect passcode"
319msgstr ""
330msgstr ""
320
331
321−#: qml/Shell.qml:327
332+#: qml/Shell.qml:389
322#, qt-format
333#, qt-format
323−msgid "Enter your %1"
334+msgid "Enter %1"
324msgstr ""
335msgstr ""
325
336
326−#: qml/Shell.qml:328
337+#: qml/Shell.qml:390
327#, qt-format
338#, qt-format
328msgid "Sorry, incorrect %1"
339msgid "Sorry, incorrect %1"
329msgstr ""
340msgstr ""
330
341
331−#: qml/Shell.qml:363
342+#: qml/Shell.qml:431
332msgid "Sorry, incorrect passphrase."
343msgid "Sorry, incorrect passphrase."
333msgstr ""
344msgstr ""
334
345
335−#: qml/Shell.qml:364
346+#: qml/Shell.qml:432
336msgid "Sorry, incorrect passcode."
347msgid "Sorry, incorrect passcode."
337msgstr ""
348msgstr ""
338
349
339−#: qml/Shell.qml:365
350+#: qml/Shell.qml:433
340msgid "This will be your last attempt."
351msgid "This will be your last attempt."
341msgstr ""
352msgstr ""
342
353
343−#: qml/Shell.qml:367
354+#: qml/Shell.qml:435
344msgid ""
355msgid ""
345"If passphrase is entered incorrectly, your phone will conduct a factory "
356"If passphrase is entered incorrectly, your phone will conduct a factory "
346"reset and all personal data will be deleted."
357"reset and all personal data will be deleted."
347msgstr ""
358msgstr ""
348
359
349−#: qml/Shell.qml:368
360+#: qml/Shell.qml:436
350msgid ""
361msgid ""
351"If passcode is entered incorrectly, your phone will conduct a factory reset "
362"If passcode is entered incorrectly, your phone will conduct a factory reset "
352"and all personal data will be deleted."
363"and all personal data will be deleted."
po/ko.po+92−85
@@ -7,15 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-09-24 10:43+0100\n"
10+"POT-Creation-Date: 2014-10-31 10:36+0100\n"
11"PO-Revision-Date: 2014-08-19 13:02+0000\n"
11"PO-Revision-Date: 2014-08-19 13:02+0000\n"
12"Last-Translator: MinSik CHO <Unknown>\n"
12"Last-Translator: MinSik CHO <Unknown>\n"
13"Language-Team: Korean <ko@li.org>\n"
13"Language-Team: Korean <ko@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=1; plural=0;\n"
17−"X-Launchpad-Export-Date: 2014-09-29 05:19+0000\n"
18+"X-Launchpad-Export-Date: 2014-11-06 06:40+0000\n"
18−"X-Generator: Launchpad (build 17196)\n"
19+"X-Generator: Launchpad (build 17223)\n"
19
20
20#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
22msgid "Password: "
@@ -30,59 +31,77 @@ msgstr "바로 가기를 고정"
30msgid "Unpin shortcut"
31msgid "Unpin shortcut"
31msgstr "바로 가기를 고정 해제"
32msgstr "바로 가기를 고정 해제"
32
33
33−#: qml/Components/Dialogs.qml:70
34+#: qml/Components/DelayedLockscreen.qml:47
35+msgid "Device Locked"
36+msgstr "장치가 잠김"
37+
38+#: qml/Components/DelayedLockscreen.qml:62
39+msgid "You have been locked out due to too many failed passphrase attempts."
40+msgstr "올바르지 않은 패스프레이즈를 너무 많이 입력해 장치가 잠겼습니다."
41+
42+#: qml/Components/DelayedLockscreen.qml:63
43+msgid "You have been locked out due to too many failed passcode attempts."
44+msgstr "올바르지 않은 패스코드를 너무 많이 입력해 장치가 잠겼습니다."
45+
46+#: qml/Components/DelayedLockscreen.qml:72
47+#, qt-format
48+msgid "Please wait %1 minute and then try again…"
49+msgid_plural "Please wait %1 minutes and then try again…"
50+msgstr[0] "%1분 정도 기다린 후 다시 시독해주십시오..."
51+
52+#: qml/Components/Dialogs.qml:74
34msgid "Log out"
53msgid "Log out"
35msgstr "로그아웃"
54msgstr "로그아웃"
36
55
37−#: qml/Components/Dialogs.qml:71
56+#: qml/Components/Dialogs.qml:75
38msgid "Are you sure you want to log out?"
57msgid "Are you sure you want to log out?"
39msgstr "정말 로그아웃하시겠습니까?"
58msgstr "정말 로그아웃하시겠습니까?"
40
59
41−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
60+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
42−#: qml/Components/Dialogs.qml:122
61+#: qml/Components/Dialogs.qml:126
43msgid "No"
62msgid "No"
44msgstr "아니요"
63msgstr "아니요"
45
64
46−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
65+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
47−#: qml/Components/Dialogs.qml:129
66+#: qml/Components/Dialogs.qml:133
48msgid "Yes"
67msgid "Yes"
49msgstr "예"
68msgstr "예"
50
69
51−#: qml/Components/Dialogs.qml:94
70+#: qml/Components/Dialogs.qml:98
52msgid "Shut down"
71msgid "Shut down"
53msgstr "컴퓨터 끄기"
72msgstr "컴퓨터 끄기"
54
73
55−#: qml/Components/Dialogs.qml:95
74+#: qml/Components/Dialogs.qml:99
56msgid "Are you sure you want to shut down?"
75msgid "Are you sure you want to shut down?"
57msgstr "정말 컴퓨터를 끄시겠습니까?"
76msgstr "정말 컴퓨터를 끄시겠습니까?"
58
77
59−#: qml/Components/Dialogs.qml:119
78+#: qml/Components/Dialogs.qml:123
60msgid "Reboot"
79msgid "Reboot"
61msgstr "다시 시작"
80msgstr "다시 시작"
62
81
63−#: qml/Components/Dialogs.qml:120
82+#: qml/Components/Dialogs.qml:124
64msgid "Are you sure you want to reboot?"
83msgid "Are you sure you want to reboot?"
65msgstr "정말 컴퓨터를 다시 시작하시겠습니까?"
84msgstr "정말 컴퓨터를 다시 시작하시겠습니까?"
66
85
67−#: qml/Components/Dialogs.qml:144
86+#: qml/Components/Dialogs.qml:148
68msgid "Power"
87msgid "Power"
69msgstr "전원"
88msgstr "전원"
70
89
71−#: qml/Components/Dialogs.qml:145
90+#: qml/Components/Dialogs.qml:149
72msgid ""
91msgid ""
73"Are you sure you would like\n"
92"Are you sure you would like\n"
74"to power off?"
93"to power off?"
75msgstr "정말 컴퓨터를 끄시겠습니까?"
94msgstr "정말 컴퓨터를 끄시겠습니까?"
76
95
77−#: qml/Components/Dialogs.qml:147
96+#: qml/Components/Dialogs.qml:151
78msgid "Power off"
97msgid "Power off"
79msgstr "전원 끄기"
98msgstr "전원 끄기"
80
99
81−#: qml/Components/Dialogs.qml:157
100+#: qml/Components/Dialogs.qml:161
82msgid "Restart"
101msgid "Restart"
83msgstr "다시 시작"
102msgstr "다시 시작"
84
103
85−#: qml/Components/Dialogs.qml:167
104+#: qml/Components/Dialogs.qml:171
86msgid "Cancel"
105msgid "Cancel"
87msgstr "취소"
106msgstr "취소"
88
107
@@ -114,59 +133,46 @@ msgstr "닫기"
114msgid "Swipe up again to close the settings screen"
133msgid "Swipe up again to close the settings screen"
115msgstr "위쪽으로 쓸면 설정 화면을 닫습니다."
134msgstr "위쪽으로 쓸면 설정 화면을 닫습니다."
116
135
117−#: qml/Components/EdgeDemo.qml:198
136+#: qml/Components/EdgeDemo.qml:201
118msgid "Left edge"
137msgid "Left edge"
119msgstr "왼쪽 가장자리"
138msgstr "왼쪽 가장자리"
120
139
121−#: qml/Components/EdgeDemo.qml:199
140+#: qml/Components/EdgeDemo.qml:202
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
141msgid "Swipe from the left to reveal the launcher for quick access to apps"
123msgstr "왼쪽에서 쓸면 런처를 표시해 프로그램에 빠르게 접근할 수 있습니다."
142msgstr "왼쪽에서 쓸면 런처를 표시해 프로그램에 빠르게 접근할 수 있습니다."
124
143
125−#: qml/Components/EdgeDemo.qml:226
144+#: qml/Components/EdgeDemo.qml:229
126msgid "Well done"
145msgid "Well done"
127msgstr "잘하셨습니다."
146msgstr "잘하셨습니다."
128
147
129−#: qml/Components/EdgeDemo.qml:227
148+#: qml/Components/EdgeDemo.qml:230
130msgid ""
149msgid ""
131"You have now mastered the edge gestures and can start using the "
150"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap on the screen to start"
151"phone<br><br>Tap on the screen to start"
133msgstr ""
152msgstr ""
134"여러분은 가장자리에서 끌어오기 제스쳐를 완벽히 익히셨고 휴대 전화를 사용할 수 있습니다. <br><br> 스크린을 터치해서 시작하세요."
153"여러분은 가장자리에서 끌어오기 제스쳐를 완벽히 익히셨고 휴대 전화를 사용할 수 있습니다. <br><br> 스크린을 터치해서 시작하세요."
135
154
136−#: qml/Components/Lockscreen.qml:167
155+#: qml/Components/Lockscreen.qml:223
137−msgid "Please wait"
156+msgid "Return to Call"
138−msgstr "기다려주십시오"
157+msgstr ""
139−
140−#: qml/Components/Lockscreen.qml:172
141−msgid "Too many incorrect attempts"
142−msgstr "너무 많이 틀리셨습니다"
143
158
144−#: qml/Components/Lockscreen.qml:206
159+#: qml/Components/Lockscreen.qml:223
145msgid "Emergency Call"
160msgid "Emergency Call"
146msgstr "긴급 통화"
161msgstr "긴급 통화"
147
162
148−#: qml/Components/Lockscreen.qml:226
163+#: qml/Components/Lockscreen.qml:255
149msgid "OK"
164msgid "OK"
150msgstr "확인"
165msgstr "확인"
151
166
152−#: qml/Components/PassphraseLockscreen.qml:61
153−#, qt-format
154−msgid "Hello %1"
155−msgstr "안녕하세요 %1"
156−
157−#: qml/Components/PassphraseLockscreen.qml:61
158−msgid "Hello"
159−msgstr "안녕하세요"
160−
161−#: qml/Dash/GenericScopeView.qml:411 qml/Dash/GenericScopeView.qml:533
167+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
162msgid "See less"
168msgid "See less"
163msgstr "간단히 표시"
169msgstr "간단히 표시"
164
170
165−#: qml/Dash/GenericScopeView.qml:411
171+#: qml/Dash/GenericScopeView.qml:434
166msgid "See all"
172msgid "See all"
167msgstr "모두 보기"
173msgstr "모두 보기"
168
174
169−#: qml/Dash/GenericScopeView.qml:473 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
170#: qml/Panel/SearchIndicator.qml:27
176#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
177msgid "Search"
172msgstr "검색"
178msgstr "검색"
@@ -203,15 +209,23 @@ msgstr "평가 추가"
203msgid "Send"
209msgid "Send"
204msgstr "보내기"
210msgstr "보내기"
205
211
212+#: qml/Dash/PullToRefreshScopeStyle.qml:55
213+msgid "Pull to refresh…"
214+msgstr "당기면 새로 고침..."
215+
216+#: qml/Dash/PullToRefreshScopeStyle.qml:60
217+msgid "Release to refresh…"
218+msgstr "놓으면 새로 고침..."
219+
206−#: qml/Dash/ScopesOverview.qml:206
220+#: qml/Dash/ScopesOverview.qml:215
207msgid "Manage Scopes"
221msgid "Manage Scopes"
208msgstr "스코프 관리"
222msgstr "스코프 관리"
209
223
210−#: qml/Dash/ScopesOverview.qml:428
224+#: qml/Dash/ScopesOverview.qml:437
211msgid "Done"
225msgid "Done"
212msgstr "완료"
226msgstr "완료"
213
227
214−#: qml/Dash/ScopesOverview.qml:454
228+#: qml/Dash/ScopesOverview.qml:463
215msgid "Store"
229msgid "Store"
216msgstr "장터"
230msgstr "장터"
217
231
@@ -223,9 +237,9 @@ msgstr "즐겨찾기"
223msgid "All"
237msgid "All"
224msgstr "모두"
238msgstr "모두"
225
239
226−#: qml/Greeter/Greeter.qml:157
240+#: qml/Greeter/Greeter.qml:174
227−msgid "Swipe to unlock"
241+msgid "Unlock"
228−msgstr "쓸어서 잠금 해제"
242+msgstr "잠금 해제"
229
243
230#: qml/Hud/HudParametrizedActionsPage.qml:139
244#: qml/Hud/HudParametrizedActionsPage.qml:139
231msgid "Confirm"
245msgid "Confirm"
@@ -247,51 +261,43 @@ msgstr "지금 말하세요..."
247msgid "Speaking..."
261msgid "Speaking..."
248msgstr "말하는 중..."
262msgstr "말하는 중..."
249
263
250−#: qml/Notifications/NotificationMenuItemFactory.qml:108
264+#: qml/Notifications/NotificationMenuItemFactory.qml:116
251msgid "Show password"
265msgid "Show password"
252msgstr "암호 표시"
266msgstr "암호 표시"
253
267
254−#: qml/Notifications/NotificationMenuItemFactory.qml:124
255−msgid "Enter SIM PIN"
256−msgstr "심 카드의 개인 식별 번호 입력"
257−
258−#: qml/Notifications/NotificationMenuItemFactory.qml:125
259−msgid "Sorry, incorrect PIN"
260−msgstr "죄송합니다. 개인 식별 번호가 올바르지 않습니다."
261−
262−#: qml/Panel/ActiveCallHint.qml:77
268+#: qml/Panel/ActiveCallHint.qml:79
263msgid "Tap to return to call..."
269msgid "Tap to return to call..."
264msgstr "통화로 돌아가려면 터치하세요..."
270msgstr "통화로 돌아가려면 터치하세요..."
265
271
266−#: qml/Panel/ActiveCallHint.qml:90
272+#: qml/Panel/ActiveCallHint.qml:92
267msgid "Conference"
273msgid "Conference"
268msgstr "회의"
274msgstr "회의"
269
275
270−#: qml/Panel/Indicators/MenuItemFactory.qml:600
276+#: qml/Panel/Indicators/MenuItemFactory.qml:615
271msgid "Nothing is playing"
277msgid "Nothing is playing"
272msgstr "연주하는 항목 없음"
278msgstr "연주하는 항목 없음"
273
279
274−#: qml/Panel/Indicators/MenuItemFactory.qml:748
280+#: qml/Panel/Indicators/MenuItemFactory.qml:763
275msgid "In queue…"
281msgid "In queue…"
276msgstr "대기 중..."
282msgstr "대기 중..."
277
283
278−#: qml/Panel/Indicators/MenuItemFactory.qml:752
284+#: qml/Panel/Indicators/MenuItemFactory.qml:767
279msgid "Downloading"
285msgid "Downloading"
280msgstr "다운로드 중"
286msgstr "다운로드 중"
281
287
282−#: qml/Panel/Indicators/MenuItemFactory.qml:754
288+#: qml/Panel/Indicators/MenuItemFactory.qml:769
283msgid "Paused, tap to resume"
289msgid "Paused, tap to resume"
284msgstr "일시 중지하였습니다. 계속하려면 눌러주세요."
290msgstr "일시 중지하였습니다. 계속하려면 눌러주세요."
285
291
286−#: qml/Panel/Indicators/MenuItemFactory.qml:756
292+#: qml/Panel/Indicators/MenuItemFactory.qml:771
287msgid "Canceled"
293msgid "Canceled"
288msgstr "취소함"
294msgstr "취소함"
289
295
290−#: qml/Panel/Indicators/MenuItemFactory.qml:758
296+#: qml/Panel/Indicators/MenuItemFactory.qml:773
291msgid "Finished"
297msgid "Finished"
292msgstr "완료함"
298msgstr "완료함"
293
299
294−#: qml/Panel/Indicators/MenuItemFactory.qml:760
300+#: qml/Panel/Indicators/MenuItemFactory.qml:775
295msgid "Failed, tap to retry"
301msgid "Failed, tap to retry"
296msgstr "실패, 누르면 다시 시도합니다."
302msgstr "실패, 누르면 다시 시도합니다."
297
303
@@ -303,55 +309,56 @@ msgstr "심 카드 잠금 해제"
303msgid "Roaming"
309msgid "Roaming"
304msgstr "로밍"
310msgstr "로밍"
305
311
306−#: qml/Shell.qml:320
312+#: qml/Shell.qml:381
307−msgid "Enter your passphrase"
313+msgid "Enter passphrase"
308msgstr "패스프레이즈를 입력해주십시오."
314msgstr "패스프레이즈를 입력해주십시오."
309
315
310−#: qml/Shell.qml:321
316+#: qml/Shell.qml:382
311msgid "Sorry, incorrect passphrase"
317msgid "Sorry, incorrect passphrase"
312msgstr "죄송합니다. 패스프레이즈가 올바르지 않습니다."
318msgstr "죄송합니다. 패스프레이즈가 올바르지 않습니다."
313
319
314−#: qml/Shell.qml:323
320+#: qml/Shell.qml:383
321+msgid "Please re-enter"
322+msgstr "다시 입력해주십시오."
323+
324+#: qml/Shell.qml:385
315−msgid "Enter your passcode"
325+msgid "Enter passcode"
316msgstr "패스코드를 입력해주십시오."
326msgstr "패스코드를 입력해주십시오."
317
327
318−#: qml/Shell.qml:324
328+#: qml/Shell.qml:386
319msgid "Sorry, incorrect passcode"
329msgid "Sorry, incorrect passcode"
320msgstr "죄송합니다. 패스코드가 올바르지 않습니다."
330msgstr "죄송합니다. 패스코드가 올바르지 않습니다."
321
331
322−#: qml/Shell.qml:327
332+#: qml/Shell.qml:389
323#, qt-format
333#, qt-format
324−msgid "Enter your %1"
334+msgid "Enter %1"
325−msgstr "%1을(를) 입력해주십시오."
335+msgstr "%1 입력"
326
336
327−#: qml/Shell.qml:328
337+#: qml/Shell.qml:390
328#, qt-format
338#, qt-format
329msgid "Sorry, incorrect %1"
339msgid "Sorry, incorrect %1"
330msgstr "죄송합니다. %1이(가) 올바르지 않습니다."
340msgstr "죄송합니다. %1이(가) 올바르지 않습니다."
331
341
332−#: qml/Shell.qml:363
342+#: qml/Shell.qml:431
333msgid "Sorry, incorrect passphrase."
343msgid "Sorry, incorrect passphrase."
334msgstr "올바르지 않은 패스프레이즈입니다."
344msgstr "올바르지 않은 패스프레이즈입니다."
335
345
336−#: qml/Shell.qml:364
346+#: qml/Shell.qml:432
337msgid "Sorry, incorrect passcode."
347msgid "Sorry, incorrect passcode."
338msgstr "최송합니다. 패스코드가 올바르지 않습니다."
348msgstr "최송합니다. 패스코드가 올바르지 않습니다."
339
349
340−#: qml/Shell.qml:365
350+#: qml/Shell.qml:433
341msgid "This will be your last attempt."
351msgid "This will be your last attempt."
342msgstr "마지막 시도입니다."
352msgstr "마지막 시도입니다."
343
353
344−#: qml/Shell.qml:367
354+#: qml/Shell.qml:435
345msgid ""
355msgid ""
346"If passphrase is entered incorrectly, your phone will conduct a factory "
356"If passphrase is entered incorrectly, your phone will conduct a factory "
347"reset and all personal data will be deleted."
357"reset and all personal data will be deleted."
348msgstr "이번에도 올바르지 않은 패스프레이즈를 입력하면 휴대 전화를 공장 초기화하여 모든 개인 정보를 삭제합니다."
358msgstr "이번에도 올바르지 않은 패스프레이즈를 입력하면 휴대 전화를 공장 초기화하여 모든 개인 정보를 삭제합니다."
349
359
350−#: qml/Shell.qml:368
360+#: qml/Shell.qml:436
351msgid ""
361msgid ""
352"If passcode is entered incorrectly, your phone will conduct a factory reset "
362"If passcode is entered incorrectly, your phone will conduct a factory reset "
353"and all personal data will be deleted."
363"and all personal data will be deleted."
354msgstr "이번에도 올바르지 않은 패스코드를 입력하면 휴대 전화를 공장 초기화하여 모든 개인 정보를 삭제합니다."
364msgstr "이번에도 올바르지 않은 패스코드를 입력하면 휴대 전화를 공장 초기화하여 모든 개인 정보를 삭제합니다."
355−
356−#~ msgid "Manage Dash"
357−#~ msgstr "대시 관리"
po/ku.po+95−84

This diff is too big to show here.

po/ky.po+90−79

This diff is too big to show here.

po/lo.po+90−79

This diff is too big to show here.

po/lt.po+92−80

This diff is too big to show here.

po/lv.po+92−81

This diff is too big to show here.

po/ml.po+90−79

This diff is too big to show here.

po/mr.po+90−79

This diff is too big to show here.

po/ms.po+147−128

This diff is too big to show here.

po/my.po+90−79

This diff is too big to show here.

po/nb.po+100−90

This diff is too big to show here.

po/nl.po+101−89

This diff is too big to show here.

po/pa.ponew file+366

This diff is too big to show here.

po/pl.po+92−80

This diff is too big to show here.

po/pt.po+108−99

This diff is too big to show here.

po/pt_BR.po+99−91

This diff is too big to show here.

po/ro.po+100−87

This diff is too big to show here.

po/ru.po+101−84

This diff is too big to show here.

po/shn.po+90−79

This diff is too big to show here.

po/si.po+90−79

This diff is too big to show here.

po/sl.po+101−90

This diff is too big to show here.

po/sq.po+90−79

This diff is too big to show here.

po/sr.po+96−87

This diff is too big to show here.

po/sv.po+96−88

This diff is too big to show here.

po/sw.po+90−79

This diff is too big to show here.

po/ta.po+90−79

This diff is too big to show here.

po/te.po+91−80

This diff is too big to show here.

po/th.po+249−105

This diff is too big to show here.

po/tr.po+93−82

This diff is too big to show here.

po/ug.po+97−90

This diff is too big to show here.

po/uk.po+102−88

This diff is too big to show here.

po/unity8.pot+88−77

This diff is too big to show here.

po/update-unity-pot+1

This diff is too big to show here.

po/vi.po+90−79

This diff is too big to show here.

po/xh.po+90−79

This diff is too big to show here.

po/zh_CN.po+91−83

This diff is too big to show here.

po/zh_HK.po+91−80

This diff is too big to show here.

po/zh_TW.po+100−93

This diff is too big to show here.

qml/Components/DelayedLockscreen.qmlnew file+92

This diff is too big to show here.

qml/Components/Dialogs.qml+21−17

This diff is too big to show here.

qml/Components/DragHandle.qml+8−3

This diff is too big to show here.

qml/Components/EdgeDemo.qml+13−10

This diff is too big to show here.

qml/Components/EdgeDragArea.qml+2

This diff is too big to show here.

qml/Components/InputMethod.qml+13

This diff is too big to show here.

qml/Components/LazyImage.qml+1

This diff is too big to show here.

qml/Components/ListItems/Base.qmldeleted−125

This diff is too big to show here.

qml/Components/ListItems/Highlight.qmldeleted−46

This diff is too big to show here.

qml/Components/ListItems/graphics/ListItemDividerVertical@18.pngdeleted

Binary file not shown.

qml/Components/Lockscreen.qml+132−103

This diff is too big to show here.

qml/Components/PassphraseLockscreen.qml+98−43

This diff is too big to show here.

qml/Components/PinLockscreen.qml+13−5

This diff is too big to show here.

qml/Components/ResponsiveGridView.qml+5−1

This diff is too big to show here.

qml/Components/ResponsiveVerticalJournal.qml+3−2

This diff is too big to show here.

qml/Components/ScreenGrabber.qmlnew file+72

This diff is too big to show here.

qml/Components/ScrollCalculator.qmlnew file+81

This diff is too big to show here.

qml/Components/VolumeKeyFilter.qmlnew file+63

This diff is too big to show here.

qml/Components/ZoomableImage.qml+17−14

This diff is too big to show here.

qml/Dash/CardGrid.qml+2−1

This diff is too big to show here.

qml/Dash/CardHorizontalList.qml+1−1

This diff is too big to show here.

qml/Dash/CardTool.qml+26−18

This diff is too big to show here.

qml/Dash/CardVerticalJournal.qml+19−1

This diff is too big to show here.

qml/Dash/Dash.qml+34−20

This diff is too big to show here.

qml/Dash/DashCategoryBase.qmlnew file+62

This diff is too big to show here.

qml/Dash/DashContent.qml+8−2

This diff is too big to show here.

qml/Dash/DashNavigation.qml+1

This diff is too big to show here.

qml/Dash/DashRenderer.qml+6−2

This diff is too big to show here.

qml/Dash/GenericScopeView.qml+75−17

This diff is too big to show here.

qml/Dash/Previews/PreviewHeader.qml+13−1

This diff is too big to show here.

qml/Dash/Previews/PreviewImageGallery.qml+54−18

This diff is too big to show here.

qml/Dash/Previews/PreviewOverlay.qmlnew file+115

This diff is too big to show here.

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

This diff is too big to show here.

qml/Dash/Previews/PreviewZoomableImage.qml+38−5

This diff is too big to show here.

qml/Dash/PullToRefreshScopeStyle.qmlnew file+82

This diff is too big to show here.

qml/Dash/ScopeListView.qml+1

This diff is too big to show here.

qml/Dash/ScopeSettingsPage.qml+1

This diff is too big to show here.

qml/Dash/ScopesOverview.qml+9−1

This diff is too big to show here.

qml/Dash/ScopesOverviewAll.qml+2

This diff is too big to show here.

qml/Dash/ScopesOverviewFavorites.qml+1−1

This diff is too big to show here.

qml/Greeter/Clock.qml+9−9

This diff is too big to show here.

qml/Greeter/Greeter.qml+19−2

This diff is too big to show here.

qml/Greeter/GreeterContent.qml+15

This diff is too big to show here.

qml/Greeter/Infographics.qml+20−15

This diff is too big to show here.

qml/Greeter/LoginList.qml+19−7

This diff is too big to show here.

qml/Launcher/Launcher.qml+29−4

This diff is too big to show here.

qml/Launcher/LauncherDelegate.qml+1−31

This diff is too big to show here.

qml/Launcher/LauncherPanel.qml+17−29

This diff is too big to show here.

qml/Launcher/graphics/quicklist_tooltip@30.png

Binary file not shown.

qml/Notifications/Notification.qml+94−11

This diff is too big to show here.

qml/Notifications/NotificationMenuItemFactory.qml+77−5

This diff is too big to show here.

qml/Notifications/Notifications.qml+2

This diff is too big to show here.

qml/Notifications/SwipeToAct.qmlnew file+309

This diff is too big to show here.

qml/Panel/ActiveCallHint.qml+4−2

This diff is too big to show here.

qml/Panel/Handle.qmlnew file+43

This diff is too big to show here.

qml/Panel/IndicatorItem.qml+234−23

This diff is too big to show here.

qml/Panel/IndicatorItemRow.qmlnew file+297

This diff is too big to show here.

qml/Panel/Indicators/DefaultIndicatorPage.qml → qml/Panel/IndicatorPage.qmlrenamed+22−17

This diff is too big to show here.

qml/Panel/IndicatorRow.qmldeleted−162

This diff is too big to show here.

qml/Panel/Indicators.qmldeleted−415

This diff is too big to show here.

qml/Panel/Indicators/CachedUnityMenuModel.qmldeleted−39

This diff is too big to show here.

qml/Panel/Indicators/DefaultIndicatorWidget.qmldeleted−119

This diff is too big to show here.

qml/Panel/Indicators/IndicatorBase.qml+4−7

This diff is too big to show here.

qml/Panel/Indicators/IndicatorDelegate.qml+2−2

This diff is too big to show here.

qml/Panel/Indicators/MenuItemFactory.qml+47−4

This diff is too big to show here.

qml/Panel/Indicators/VisibleIndicators.qml+5−5

This diff is too big to show here.

qml/Panel/Indicators/client/IndicatorsPage.qml → qml/Panel/Indicators/client/IndicatorRepresentation.qmlrenamed+21−10

This diff is too big to show here.

qml/Panel/Indicators/client/IndicatorsList.qml+2−2

This diff is too big to show here.

qml/Panel/Indicators/client/IndicatorsTree.qml+4−26

This diff is too big to show here.

qml/Panel/IndicatorsBar.qmlnew file+269

This diff is too big to show here.

qml/Panel/IndicatorsMenu.qmlnew file+318

This diff is too big to show here.

qml/Panel/MenuContent.qml+25−75

This diff is too big to show here.

qml/Panel/Panel.qml+48−41

This diff is too big to show here.

qml/Panel/PanelVelocityCalculator.qmlnew file+54

This diff is too big to show here.

qml/Shell.qml+219−83

This diff is too big to show here.

qml/Stages/ApplicationWindow.qml−18

This diff is too big to show here.

qml/Stages/PhoneStage.qml+28−6

This diff is too big to show here.

qml/Stages/SessionContainer.qml+1−13

This diff is too big to show here.

qml/Stages/SurfaceContainer.qml+37−6

This diff is too big to show here.

qml/Stages/TabletStage.qml+12−1

This diff is too big to show here.

run_on_device.sh+4−5

This diff is too big to show here.

src/CMakeLists.txt+7

This diff is too big to show here.

src/Dash/CMakeLists.txt+7

This diff is too big to show here.

src/Dash/main.cpp+6

This diff is too big to show here.

src/Panel/CMakeLists.txt+2

This diff is too big to show here.

src/libunity8-private/CMakeLists.txtnew file+27

This diff is too big to show here.

src/libunity8-private/abstractdbusservicemonitor.cppnew file+87

This diff is too big to show here.

src/libunity8-private/abstractdbusservicemonitor.hnew file+66

This diff is too big to show here.

src/libunity8-private/unitydbusobject.cppnew file+86

This diff is too big to show here.

src/libunity8-private/unitydbusobject.hnew file+46

This diff is too big to show here.

src/libunity8-private/unitydbusvirtualobject.cppnew file+83

This diff is too big to show here.

src/libunity8-private/unitydbusvirtualobject.hnew file+47

This diff is too big to show here.

src/main.cpp+5

This diff is too big to show here.

tests/CMakeLists.txt+1

This diff is too big to show here.

tests/autopilot/unity8/indicators/tests/test_indicators.py+3−3

This diff is too big to show here.

tests/autopilot/unity8/shell/emulators/dash.py+9−5

This diff is too big to show here.

tests/autopilot/unity8/shell/emulators/main_window.py+6−6

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/autopilot/unity8/shell/tests/test_emulators.py+10−47

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/test_lock_screen.py+3−1

This diff is too big to show here.

tests/autopilot/unity8/shell/tests/test_notifications.py+6−56

This diff is too big to show here.

tests/libs/CMakeLists.txtnew file+1

This diff is too big to show here.

tests/libs/UbuntuGestures/CMakeLists.txtnew file+20

This diff is too big to show here.

tests/libs/UbuntuGestures/tst_TouchRegistry.cppnew file+803

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.h+1

This diff is too big to show here.

tests/mocks/AccountsService/AccountsService.qmltypes+2

This diff is too big to show here.

tests/mocks/LightDM/CMakeLists.txt+2

This diff is too big to show here.

tests/mocks/LightDM/LightDM.qmltypes+1

This diff is too big to show here.

tests/mocks/QMenuModel/QMenuModel.qmltypes+1−1

This diff is too big to show here.

tests/mocks/QMenuModel/unitymenumodel.cpp+1−2

This diff is too big to show here.

tests/mocks/QMenuModel/unitymenumodel.h+6−2

This diff is too big to show here.

tests/mocks/QtMultimedia/QtMultimedia.qmltypes+10

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.cpp+10

This diff is too big to show here.

tests/mocks/QtMultimedia/audio.h+12

This diff is too big to show here.

tests/mocks/Ubuntu/CMakeLists.txt+1

This diff is too big to show here.

tests/mocks/Ubuntu/Connectivity/CMakeLists.txtnew file+10

This diff is too big to show here.

tests/mocks/Ubuntu/Connectivity/networking-status.cppnew file+64

This diff is too big to show here.

tests/mocks/Ubuntu/Connectivity/networking-status.hnew file+73

This diff is too big to show here.

tests/mocks/Ubuntu/Connectivity/plugin.cppnew file+46

This diff is too big to show here.

tests/mocks/Ubuntu/Connectivity/plugin.hnew file+35

This diff is too big to show here.

tests/mocks/Ubuntu/Connectivity/qmldirnew file+2

This diff is too big to show here.

tests/mocks/Ubuntu/Payments/Payments.qmltypes+2

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockCallEntry.cpp+26−1

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/MockCallEntry.h+9−1

This diff is too big to show here.

tests/mocks/Ubuntu/Telephony/Telephony.qmltypes+2−1

This diff is too big to show here.

tests/mocks/Unity/Application/Application.qmltypes+13

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.cpp+18−22

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.h+18−1

This diff is too big to show here.

tests/mocks/Unity/Application/MirSurfaceItem.qml−12

This diff is too big to show here.

tests/mocks/Unity/Application/UbuntuKeyboardInfo.cppnew file+28

This diff is too big to show here.

tests/mocks/Unity/Application/UbuntuKeyboardInfo.hnew file+60

This diff is too big to show here.

tests/mocks/Unity/Application/plugin.cpp+7

This diff is too big to show here.

tests/mocks/Unity/DashCommunicator/DashCommunicator.qmltypes+6−6

This diff is too big to show here.

tests/mocks/Unity/DashCommunicator/dashcommunicator.cpp+2−2

This diff is too big to show here.

tests/mocks/Unity/DashCommunicator/dashcommunicator.h+2−2

This diff is too big to show here.

tests/mocks/Unity/DashCommunicator/dashcommunicatorservice.cpp+2−2

This diff is too big to show here.

tests/mocks/Unity/DashCommunicator/dashcommunicatorservice.h+2−2

This diff is too big to show here.

tests/mocks/Unity/Indicators/CMakeLists.txt+3−10

This diff is too big to show here.

tests/mocks/Unity/Indicators/Indicators.qmltypes+43−15

This diff is too big to show here.

tests/mocks/Unity/Indicators/IndicatorsModel.qml+152−34

This diff is too big to show here.

tests/mocks/Unity/Indicators/RootActionState.qml+18−10

This diff is too big to show here.

tests/mocks/Unity/Indicators/fakeindicatorsmodel.cpp+50−21

This diff is too big to show here.

tests/mocks/Unity/Indicators/fakeindicatorsmodel.h+8−2

This diff is too big to show here.

tests/mocks/Unity/Indicators/fakeplugin.cpp+8−4

This diff is too big to show here.

tests/mocks/Unity/Indicators/fakeunitymenumodelcache.cppnew file+59

This diff is too big to show here.

tests/mocks/Unity/Indicators/fakeunitymenumodelcache.hnew file+45

This diff is too big to show here.

tests/mocks/Unity/Indicators/indicators_fake.qrcdeleted−14

This diff is too big to show here.

tests/mocks/Unity/Indicators/qml/fake_menu_page5.qmldeleted−35

This diff is too big to show here.

tests/mocks/Unity/Indicators/qml/fake_menu_widget3.qmldeleted−23

This diff is too big to show here.

tests/mocks/Unity/Indicators/qml/fake_menu_widget4.qmldeleted−23

This diff is too big to show here.

tests/mocks/Unity/Indicators/qml/fake_menu_widget5.qmldeleted−23

This diff is too big to show here.

tests/mocks/Unity/Indicators/qmldir−1

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Launcher/Launcher.qmltypes+13

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/Launcher/MockLauncherModel.h+3

This diff is too big to show here.

tests/mocks/Unity/Notifications/CMakeLists.txt+15−1

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockActionModel.cppnew file+72

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockActionModel.hnew file+51

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotificationTypes.cppnew file+26

This diff is too big to show here.

tests/mocks/Unity/Notifications/MockNotificationTypes.hnew file+36

This diff is too big to show here.

tests/mocks/Unity/Notifications/plugin.cppnew file+31

This diff is too big to show here.

tests/mocks/Unity/Notifications/plugin.hnew file+35

This diff is too big to show here.

tests/mocks/Unity/Notifications/qmldir+2−1

This diff is too big to show here.

tests/mocks/Unity/Unity.qmltypes+32

This diff is too big to show here.

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

This diff is too big to show here.

tests/mocks/Unity/fake_scope.h+3

This diff is too big to show here.

tests/mocks/libusermetrics/UserMetrics.cpp+2−2

This diff is too big to show here.

tests/plugins/Dash/CMakeLists.txt+3−3

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/cardcreator/4.res+10−11

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertest.cpp+39

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertest.qml+1

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertestsection.qml+1

This diff is too big to show here.

tests/plugins/Dash/listviewwithpageheadertestsectionexternalmodel.qml+1

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/CMakeLists.txt+11−3

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/RightwardsLauncher.qml+3

This diff is too big to show here.

tests/mocks/Unity/Indicators/qml/fake_menu_widget2.qml → tests/plugins/Ubuntu/Gestures/empty.qmlrenamed+4−5

This diff is too big to show here.

tests/mocks/Unity/Indicators/qml/fake_menu_widget1.qml → tests/plugins/Ubuntu/Gestures/touchGateExample.qmlrenamed+8−4

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_DirectionalDragArea.cpp+422−14

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_DirectionalDragArea.qml+1

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_TouchDispatcher.cppnew file+149

This diff is too big to show here.

tests/plugins/Ubuntu/Gestures/tst_TouchGate.cppnew file+345

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Unity/Indicators/sharedunitymenumodeltest.cppnew file+102

This diff is too big to show here.

tests/plugins/Unity/Launcher/CMakeLists.txt+7−3

This diff is too big to show here.

tests/plugins/Unity/Launcher/gsettings.cpp+9−4

This diff is too big to show here.

tests/plugins/Unity/Launcher/gsettings.h+9

This diff is too big to show here.

tests/plugins/Unity/Launcher/launchermodeltest.cpp+103−12

This diff is too big to show here.

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

This diff is too big to show here.

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

This diff is too big to show here.

tests/plugins/Utils/qsortfilterproxymodeltest.cpp+1−1

This diff is too big to show here.

tests/qmltests/CMakeLists.txt+12−11

This diff is too big to show here.

tests/qmltests/Components/CMakeLists.txt+3−2

This diff is too big to show here.

tests/qmltests/Components/tst_DragHandle.cpp+12−15

This diff is too big to show here.

tests/qmltests/Greeter/tst_Lockscreen.qml → tests/qmltests/Components/tst_Lockscreen.qmlrenamed+31−51

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Dash/CardHelpers.js+1−12

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewImageGallery.qml+52−1

This diff is too big to show here.

tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+30−8

This diff is too big to show here.

tests/qmltests/Dash/tst_Card.qml+39

This diff is too big to show here.

tests/qmltests/Dash/tst_CardTool.qml+28−20

This diff is too big to show here.

tests/qmltests/Dash/tst_Dash.qml+19−62

This diff is too big to show here.

tests/qmltests/Dash/tst_DashContent.qml+19−6

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Greeter/tst_Clock.qml+49−34

This diff is too big to show here.

tests/qmltests/Greeter/tst_MultiGreeter.qml+2−2

This diff is too big to show here.

tests/qmltests/Greeter/tst_SingleGreeter.qml+70−27

This diff is too big to show here.

tests/qmltests/Launcher/tst_Launcher.qml+143−105

This diff is too big to show here.

tests/qmltests/Notifications/tst_Notifications.qml+566−427

This diff is too big to show here.

tests/qmltests/Notifications/tst_SwipeToAct.qmlnew file+276

This diff is too big to show here.

tests/qmltests/Panel/IndicatorTest.qmlnew file+80

This diff is too big to show here.

tests/qmltests/Panel/Indicators/tst_CachedUnityMenuModel.qmldeleted−137

This diff is too big to show here.

tests/qmltests/Panel/Indicators/tst_DefaultIndicatorWidget.qmldeleted−60

This diff is too big to show here.

tests/qmltests/Panel/Indicators/tst_MenuItemFactory.qml+40

This diff is too big to show here.

tests/qmltests/Panel/tst_ActiveCallHint.qml+19−7

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorItem.qml+173−18

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorItemRow.qmlnew file+290

This diff is too big to show here.

tests/qmltests/Panel/Indicators/tst_DefaultIndicatorPage.qml → tests/qmltests/Panel/tst_IndicatorPage.qmlrenamed+65−45

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorRow.qmldeleted−160

This diff is too big to show here.

tests/qmltests/Panel/tst_Indicators.qmldeleted−230

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorsBar.qmlnew file+224

This diff is too big to show here.

tests/qmltests/Panel/tst_IndicatorsMenu.qmlnew file+258

This diff is too big to show here.

tests/qmltests/Panel/tst_MenuContent.qml+9−25

This diff is too big to show here.

tests/qmltests/Panel/tst_Panel.qml+185−214

This diff is too big to show here.

tests/qmltests/Panel/tst_SearchIndicator.qml−1

This diff is too big to show here.

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

This diff is too big to show here.

tests/qmltests/Stages/tst_PhoneStage.qml+36−1

This diff is too big to show here.

tests/qmltests/Stages/tst_SurfaceContainer.qml+26−1

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+256−47

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qml+226−33

This diff is too big to show here.

tests/qmltests/tst_TabletShell.qmlnew file+302

This diff is too big to show here.

tests/uqmlscene/CMakeLists.txt+2

This diff is too big to show here.

tests/uqmlscene/README+3−1

This diff is too big to show here.

tests/uqmlscene/main.cpp+9

This diff is too big to show here.

tests/utils/modules/Unity/Test/CMakeLists.txt+2

This diff is too big to show here.

tests/utils/modules/Unity/Test/UnityTestCase.qml+23−2

This diff is too big to show here.

tests/utils/modules/Unity/Test/testutil.cpp+29−2

This diff is too big to show here.

tests/utils/modules/Unity/Test/testutil.h+2−1

This diff is too big to show here.

tools/unlock-device+14−13

This diff is too big to show here.