Compare commits

...

81 Commits

Author SHA1 Message Date
3dff544396 Bump version to 3.14.3
Update NEWS.
2014-12-19 12:07:06 +01:00
7e7eab2bea gestures: Restrict actions based on keybindingMode
Just like keybindings and the message tray pointer barrier, gestures
don't always make sense - for instance, swiping up the screen shield
should not trigger the message tray just as the SelectArea action around
the left edge should not open the overview.
To avoid this, restrict gestures based on the current keybinding mode.

https://bugzilla.gnome.org/show_bug.cgi?id=740237
2014-12-19 11:48:27 +01:00
c568b44997 Calendar: ignore timeouts starting the calendar-server
In certain cases the timeout for starting the calendar helper can
be reached but the calendar helper still loads fine. If so, just
ignore the timeout and wait until we get a notification from
dbus of the successful start.

https://bugzilla.gnome.org/show_bug.cgi?id=735308
2014-12-14 17:19:12 -08:00
ce818c0ae5 calendar-server: activate evolution-source-registry manually at startup
g_dbus_proxy_new() (and library calls that wrap it) has an hardcoded
timeout of 25 seconds, which is insufficient for starting up e-s-r
in certain setups. Avoid a timeout error by starting the service
manually with a longer timeout before hand.
Also demote the error to a warning + exit failure instead of
a crash, to avoid triggering abrt reports.

https://bugzilla.gnome.org/show_bug.cgi?id=735308
2014-12-14 17:19:12 -08:00
ef2e301c08 Add ScrollView to calendar events
Added single ScrollView to make the calendar events scrollable

The calendar height will not go beyond the screen height
Calendar events for all periods will be enclosed in a single ScrollView

Moved the separator to top of the buttons while expanding

https://bugzilla.gnome.org/show_bug.cgi?id=705115
2014-12-11 18:48:22 +01:00
ba274f42b2 build: Workaround quoting issues in configure script
Default value of BROWSER_PLUGIN_DIR variable contains special symbols.
Thus quoting and inlining it in parameter expansion is not portable.
In particular it does not work in dash. Replace ${a:-b} parameter
expansion with conditional statement.

https://bugzilla.gnome.org/show_bug.cgi?id=739241
2014-11-29 16:37:54 +00:00
2ceaa05a5a gdm: fix sensitivity of auth prompt when cancelling early and user list is disabled
If the user list is disabled and the user clicks cancel quickly enough
after typing their username, they can get in a state where the
auth prompt gets stuck in the insensitive state.

This is because the login dialog code makes the prompt insensitive
while while pam is processing the provided username, but the prompt
only makes itself sensitive again when it is hidden.

This commit makes it sensitive right before asking for a username again.

https://bugzilla.gnome.org/show_bug.cgi?id=740141
2014-11-26 19:04:43 -06:00
047e454a7c gdm: disallow cancel after verification succeeds
Once verification has succeeded, the train's already
left the building and we shouldn't allow canceling.

This commit renders the cancel button non-reactive
and makes the cancel function be a noop after
verification succeeds.

https://bugzilla.gnome.org/show_bug.cgi?id=740141
2014-11-26 19:04:29 -06:00
86618ce1f9 network: properly remove connections from list
Due to a typo we were always removing the first (index 0) connection
from the global list of connections instead of the correct one.

This resulted in some connections remaining in the shell's connection
list long after they were removed.  In particular, this resulted in
multiple copies of a bluetooth connection appearing after suspend/resume
(when the device was readded and the cached connection list was
rescanned).

https://bugzilla.gnome.org/show_bug.cgi?id=740227
2014-11-26 16:08:17 -05:00
59724c5dd5 Bump version to 3.14.2
Update NEWS.
2014-11-12 19:30:14 +01:00
3bb500fed4 viewSelector: Hide workspace page after animating to app picker
WorkspacesDisplay relies on being hidden to disable workspace switches
by scrolling or panning. Usually viewSelector will hide the previous
page on page switch, but we currently miss the case when opening the
overview at the app picker, where the workspaces page is still shown
for the transition, but never hidden.
Fix this by calling hide() in addition to setting the opacity to 0 at
the end of the overview animation.

https://bugzilla.gnome.org/show_bug.cgi?id=737534
2014-11-12 19:19:31 +01:00
dcd3945bb7 Move style updates in AppIcon._onStateChanged out
There is currently no simple way to inject into AppIcon's state change,
so an extension that wants to do this has to destroy/remove/update all
icons in the Shell (i.e. in the Dash, AllView, FrequentView) on enable()
and disable() after updating AppIcon.prototype._onStateChange, or the
extension must require a restart of the Shell.

To solve this issue, we rename _onStateChanged to _updateRunningStyle,
and connect the notify::state signal with an anonymous function that
calls _updateRunningStyle.
This extra function call should allow extensions to just extend the
updateRunningStyle function in the prototype.

https://bugzilla.gnome.org/show_bug.cgi?id=739497
2014-11-06 21:31:47 +01:00
f414f616c4 dateMenu: Fix typo in _isToday()
getDay() is the day of week, what we want there is getDate().

https://bugzilla.gnome.org/show_bug.cgi?id=738725
2014-11-03 15:05:59 +01:00
e21e90c5e6 networkAgent: Support NM versions without :capabilities
Commit 926de53c0c bumped the requirement for NetworkManager,
which is problematic on a stable branch; optionally fall back to
the previous code.

https://bugzilla.gnome.org/show_bug.cgi?id=738485
2014-10-31 12:41:23 +00:00
1e7b2ef51f Bump version to 3.14.1.5
Update NEWS
2014-10-30 11:22:27 +00:00
c291de7479 Calendar: Inline _ellipsizeEventTime into caller
This patch inlines the function _ellipsizeEventTime into its only caller
_addEvent. This also removes the need for the global const
EventEllipses and is thus removed by this commit as well.

https://bugzilla.gnome.org/show_bug.cgi?id=727302
2014-10-27 19:33:25 -05:00
aee1a18270 Calendar: sort multi-day events by ending day/time
With commit dc6a60dde, the calendar displays the ending day and time of
a continuing multi-day event on its ending day. This results in the list
not appearing to be sorted. This patch sorts the list according to the
displayed day/time.

With the two appointments
Thursday 0800-1000 Foo, and Wednesday 0900-Friday 1200 Bar and today
being Monday, the rest of the week list currently displays:
F ...1200 Bar
T    0800 Foo
With this patch, the displaying order is switched because Friday comes
after Thursday.

https://bugzilla.gnome.org/show_bug.cgi?id=727302
2014-10-27 19:33:25 -05:00
6c67f26e7d Calendar: Show multi-day event continuation
Currently, multi-day events are shown as individual appointments on each
day.  This patch ellipsizes multi-day events to indicate continuation on
the prior or following day (or other time-period.)

The time label spot is now replaced by a box layout that contains the
prefix ellipsis label, the time label and the postfix ellipsis label.
In order to keep the alignment, ellipses are merely invisible (zero
opacity) when hidden.

The ellipses are styled using the events-day-time-ellipses class which,
by default, take the color of the event text.

When RTL is used, the box contents are adjusted accordingly (clutter
does that for us).

An event spanning three days now displays "...All Day..." in the
calendar on the second day.

https://bugzilla.gnome.org/show_bug.cgi?id=727302
2014-10-27 19:33:25 -05:00
deb651acbf BackgroundCache: plug an Animation object leak
We need to return early in case the animation file is the same,
otherwise we'll create a new Animation object and leak the previous
one.

https://bugzilla.gnome.org/show_bug.cgi?id=739252
2014-10-27 18:28:39 +01:00
d2011f6d7f messageTray: Summarize notifications when messages queue up
It is really annoying for the user to acknowledge multiple notifications
when they queue up. So, to prevent a notification flood that has to be
handled by the user one-by-one, a summarized-notification feature is
added which leaves a single summarized-notification for the user,
replacing multiple notifications if the number exceeds 1, which they may
or may not acknowledge. When this summarized-notification is acknowledged,
the message-tray is opened where they can view the notifications that were
summarized. This helps the user concentrate on his primary task
simultaneously informing them about the new notifications.

https://bugzilla.gnome.org/show_bug.cgi?id=702460
2014-10-27 18:22:36 +01:00
416adec904 Fix handling of SystemBackground
Since the background rework, SystemBackground is no longer a transparent
actor that you have to stack on top of a solid background, it is an
opaque actor. Fix the color of the background actor, and remove places
where we were setting the background color underneath the system background
and expecting blending - in particular, we can always set no_clear_hint
on the stage.

https://bugzilla.gnome.org/show_bug.cgi?id=738652
2014-10-16 17:17:33 -04:00
a72dca3610 Bump version to 3.14.1
Update NEWS.
2014-10-14 21:04:00 +02:00
5e5035a0f7 StWidget: carefully clear ->accessible pointer to avoid resurrection
The pointer to ->accessible was cleared too early in dispose, which
resulted in another accessible object being created when the actor
was removed from its parent in clutter_actor_dispose(). Use a
weak reference instead to clear the ->accessible pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=738147
2014-10-13 12:46:35 -04:00
ffdb85e003 messageTray: add some missing signal disconnections
Disconnect some signal connections that weren't disconnected on actor destroy
(not the result of comprehensive review.)

https://bugzilla.gnome.org/show_bug.cgi?id=738256
2014-10-13 11:50:12 -04:00
6a969b934f gdm: fix missing braces
Incorrect braces meant that if the ShellUserVerifier was destroyed before
the call to fprintManager.GetDefaultDeviceRemote(), the reply would result in
an error.

https://bugzilla.gnome.org/show_bug.cgi?id=738256
2014-10-13 11:50:12 -04:00
8d3ff56846 gdm: disconnect signals
Many signal connections on global objects and on non-widgets were not
disconnected when the unlock screen was destroyed, causing leaks.

https://bugzilla.gnome.org/show_bug.cgi?id=738256
2014-10-13 11:50:11 -04:00
d8d046f2b3 AuthPrompt: properly remove user widgets
When replacing a user widget, we need to destroy the child, not just
unparent it, or it will leak.

https://bugzilla.gnome.org/show_bug.cgi?id=738256
2014-10-13 11:50:11 -04:00
0bec76b6ee app-well: Set menu width
Currently the app well menu has unrestricted with which can cause it to grow
with long window titles and can even go offscreen that way.

So set a max size, long titles will now be properly elipised.

https://bugzilla.gnome.org/show_bug.cgi?id=738054
2014-10-13 15:39:31 +02:00
aa3aea7520 window-tracker: Also listen for changes in the gtk-application-id
Wayland applications don't tend to have very useful WM Class properties,
as GTK+ isn't very good at picking an appropriate application ID. While
we should likely fix GTK+ to pick a better app ID, we do have the
existing gtk_shell for more accurate information. The only problem is
that the gtk_surface is set after the MetaWindow is constructed, and
we're not listening for changes on the GTK+ application ID.

Listen to changes on the GTK+ application ID to fix app tracking for
most GTK+ applications under Wayland.
2014-10-12 17:20:22 -07:00
49fcc93a4b window-tracker: Fix minor style issue 2014-10-12 17:20:12 -07:00
eaec459ee9 st: Bail out on clipboard requests if there is no text.
If a selection request happens through foreign means, the selected
text is NULL, and a crash happens.

https://bugzilla.gnome.org/show_bug.cgi?id=738314
2014-10-10 19:37:40 +02:00
72c6f0025d status/keyboard: Ensure we always have at least one input source
Most of the code handles the sources setting being empty and
InputSourceManager.currentSource being null because previously the
"model" (i.e. the sources list) was kept in gnome-settings-daemon.

But this is fragile and since we're now the canonical place where the
list lives we can force it to never be empty even if the gsetting is
empty or contains only invalid entries.  Adding the default keyboard
layout in that case is the safest thing to do.

https://bugzilla.gnome.org/show_bug.cgi?id=738303
2014-10-10 18:45:45 +02:00
aa3caff714 overviewControls: Really fix x align
Commit a4475465f1 fixed the wrong alignment for the fully visible
control, but regressed the partially slid-out one; take the slideX
factor into account to get the right offset for both cases.
2014-10-10 11:16:35 +02:00
522ccaba3f Updated Italian translation 2014-10-10 08:02:28 +00:00
3d00864599 Updates Persian Translations 2014-10-10 10:53:08 +03:30
bd3dfb8f6a Fix wrong comment 2014-10-09 14:55:13 +02:00
1b3c89f32b shell-recorder: Disable unredirection while recording
This is required to be able to record windows that would
otherwise be unredirected.

https://bugzilla.gnome.org/show_bug.cgi?id=738226
2014-10-09 14:52:25 +02:00
a4475465f1 overviewControls: Fix thinko in SlideLayout
Controls that slide left are located on the left, so the offset to
align them with the corresponding edge is always 0. It's controls
on the right that need a different offset when the available width
exceeds the child's width.

https://bugzilla.gnome.org/show_bug.cgi?id=728899
2014-10-09 14:21:23 +02:00
84f14cb61c Updated Kazakh translation 2014-10-09 10:54:59 +00:00
d0de411a59 iconGrid: Fix slowness on pulse animation for few items
Currently we use the same amount of total delay divided by all items,
but that makes the items animate slow if the amount of items is small.
To avoid that, use a smaller total amount delay for an amount of items
smaller than four.

https://bugzilla.gnome.org/show_bug.cgi?id=737017
2014-10-09 12:47:16 +02:00
2b9645b268 Use MetaWindow.get_frame_rect()
get_outer_rect() has been deprecated for a while, use the new
function instead.
2014-10-09 12:17:15 +02:00
4f08bebbf0 Updated Italian translation 2014-10-09 07:37:11 +00:00
4e8c476153 screenShield: fix trace back when unlocking session from another vt
commit 1d374ac8bd introduced a bug that
prevents unlock from working when initiated from another VT
(user switching).

This commit fixes the exception raised.

https://bugzilla.gnome.org/show_bug.cgi?id=708105
2014-10-08 09:43:33 -04:00
1d374ac8bd screenShield: focus login screen after lifting shield
This commit ensures the login screen gets focused after
the screen shield is raised.

The code affects the unlock screen as well, but it's
less important since the unlock screen gets destroyed
and recreated each time the curtain moves, so it
has an opportunity to take focus on its own.

https://bugzilla.gnome.org/show_bug.cgi?id=708105
2014-10-07 10:54:48 -04:00
83f0f4ea36 layout: Add the feedback group to the uiGroup
This makes DND under Wayland visible under the magnifier.
2014-10-06 17:08:20 -07:00
18f569280c userWidget: Respect the scale factor in the bin size we set
Otherwise, the widget will be too small on hi-DPI devices.

Based on a patch by: Darcy Beurle <darcy@beurle.id.au>

https://bugzilla.gnome.org/show_bug.cgi?id=735419
2014-10-06 17:02:04 -07:00
fc0c98805f Updated Spanish translation 2014-10-06 13:01:23 +02:00
6722b69b8a Updated Portuguese translation 2014-10-05 21:08:06 +00:00
f9d909f985 screenshot: Respect lockdown settings
We allow users/admins to lock down disk writes, respect that when
taking screenshots.

https://bugzilla.gnome.org/show_bug.cgi?id=737846
2014-10-03 17:08:56 +02:00
dd42cfa853 screencast: Re-add lockdown support
Commit 81bb7009ea removed support for the disable-disk-writes
lockdown feature for screencasts, add it back.

https://bugzilla.gnome.org/show_bug.cgi?id=737846
2014-10-03 17:08:56 +02:00
4ed4bb330e screencast: Don't leak recorders on failure
ShellRecorder.record() may fail, remove the recorder from the map
in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=737846
2014-10-03 17:08:56 +02:00
f02b007337 shell-screenshot: Only allow one screenshot request at a time per sender
We currently allow infinite number of screenshot requests to be active at
the same time, which can "dos" the system and cause OOM.

So fail subsequent requests for the same sender when a screenshot operation
is already running.

https://bugzilla.gnome.org/show_bug.cgi?id=737456
2014-10-03 16:22:36 +02:00
0035de4ab7 screencast: Properly stop all recordings on session mode changes
We currently just clear out the map of recorders (which results
in the top bar indicator to be hidden), but don't stop the actual
recordings.
Spotted by Adel Gadllah on IRC.
2014-10-03 16:19:41 +02:00
28552d4b38 Updated Chinese (Taiwan) translation 2014-10-02 12:04:11 +00:00
42066a7c46 dateMenu: Don't generate JS garbage every clock tick
Instead of waking up the JS every second to set the clock and update a
date label the user will rarely see, simply use property binding to
bypass JS string handling, and update the date in the menu when the menu
is opened.
2014-10-01 15:42:49 -06:00
45847470d1 Updated German translation 2014-10-01 20:18:07 +00:00
72b0a3d78f search: Change order of duplicate search check
Checks for a duplicate search before setting the current search
to true and before cancelling the current search. This ensures that
if a duplicate search occurs while the previous search is still active,
the duplicate search will not incorrectly cancel or change the state
of the previous search.
2014-10-01 07:32:06 -06:00
fc3ad390b7 Updated gujarati translations 2014-10-01 15:52:13 +05:30
926de53c0c networkAgent: pass VPN hints to auth dialogs
Indicate to NetworkManager that the Shell's agent supports VPN
hints, and pass those hints to VPN auth dialogs that also indicate
that they support hints.

VPN plugins can request new secrets, for example if the previous
ones are incorrect (eg, user mis-typed the password) or some other
reason (next token code required to re-sync a hardware token).
The specific secret that the VPN wants, and a VPN-specific message,
are passed in hints from the plugin, to NetworkManager, to the
agent (GNOME Shell) and then to the auth dialog.

https://bugzilla.gnome.org/show_bug.cgi?id=737592
2014-09-30 09:34:44 -05:00
e6cd112379 search: Reset the search display when there's no search terms
Destroy the previous search view when there's no search terms, to make
sure old search items don't show up.
2014-09-30 00:55:01 -06:00
2cefc8be27 search: Match an empty array, not a null one
When the terms are missing, we pass an empty array, not a null one.
2014-09-30 00:55:01 -06:00
991179835e search: Factor out a function 2014-09-30 00:55:01 -06:00
0ca2fee54f layout: Don't update the input region while we have a modal
If we have a modal, the stage's input region doesn't really matter --
all events go to us anyway. To avoid doing extra work doing animations
when we have a modal, like menus, the overview, and the message tray,
just fizzle out all updates.

To make sure we catch updates, update the input region whenever we end a
modal.

https://bugzilla.gnome.org/show_bug.cgi?id=737001
2014-09-30 00:23:48 -06:00
778ef365d9 search: hide provider actors when they're created
When the overview is created, search is populated with one actor for
each provider. As they're not hidden though, they will contribute to the
overall size request of the search page, which will shift upwards the
overview grid.

Reviewed-By: Jasper St. Pierre <jstpierre@mecheye.net>
2014-09-29 22:42:25 -07:00
45937ed85d Updated Latvian translation 2014-09-28 16:38:01 +03:00
65a9c09c9c Updated Norwegian bokmål translation. 2014-09-27 15:33:54 +02:00
67b14d5fe5 st-entry: Implement Ctrl-u / Ctrl-k keybindings
These keybindings are well-established on the CLI (e.g. "kill-line"
and "unix-line-discard" in readline(3)), and adding support for them
is cheap ...

https://bugzilla.gnome.org/show_bug.cgi?id=737346
2014-09-26 22:03:31 +02:00
f976e46c46 Updated Norwegian bokmål translation. 2014-09-26 17:26:52 +02:00
7026209eae status/keyboard: obtain keyboard variant from IBus
This will fix unable to show keyboard variant from IBus through menu.

https://bugzilla.gnome.org/show_bug.cgi?id=735066
2014-09-26 17:08:25 +02:00
1e82d6edc2 windowMenu: Only disable "Always on Top" for fully maximized
Since (mutter) commit 49400657caae27 we disable the "Always on Top"
action for maximized windows, however when commit e7af257814
moved the window menu into the shell, this behavior was accidentally
extended to partially maximized (including tiled) windows.
As it can be desirable in this case to keep the window visible while
interacting with a different one, restore the previous behavior.

https://bugzilla.gnome.org/show_bug.cgi?id=737382
2014-09-25 23:10:03 +02:00
50ac1dd197 background: when a file changes, remove it from the image cache
MetaBackgroundCache doesn't itself use file watches, so when a image
that we are monitoring changes we need to purge it from the cache,
so that when we load it again we get the new image.

https://bugzilla.gnome.org/show_bug.cgi?id=710756
2014-09-24 23:06:07 -04:00
9d933356e1 keyboard: Make sure to destroy the key's BoxPointer
When the keyboard is destroyed, we destroy the keyboard actor, but the
keyboard's menu isn't part of the key itself, so it's never tracked.

The menus are actually tracked actors, so they slow down the layout
manager's code to rebuild regions and other things. Keeping this list
small is a good idea.

To prevent leaking menus, destroy the menu when the key is destroyed.

https://bugzilla.gnome.org/show_bug.cgi?id=736999
2014-09-23 15:58:08 -06:00
c2a5c00111 Updated Telugu translation 2014-09-23 14:19:29 +00:00
edb561a6ff update zh_CN translation 2014-09-23 19:43:00 +08:00
14c2460fe4 Updated translation for Afrikaans (af), with contributions by Dawid Loubser 2014-09-23 12:41:31 +02:00
598362448a Updated Hindi translation 2014-09-23 10:08:41 +00:00
845273d4c0 Updated Bengali (India) translation 2014-09-23 05:53:57 +00:00
3aebfdc319 Updated Czech translation 2014-09-23 07:07:12 +02:00
f423c371c8 Updated Galician translations 2014-09-23 01:51:11 +02:00
6fe1ad62ba Updated Serbian translation 2014-09-22 23:06:40 +02:00
63efe1db11 iconGrid: Don't use clones for pulse animation
The spring animation has to use clones to escape any clip set on the
parent, as it mainly occurs outside the parent. The same does not apply
to the pulse animation, which is very much in place - in fact, if the
parent is clipped (for instance a scrolled app folder), not having the
clip applied to the animated icons is indeed wrong.
Just animate the original grid actors instead, which gives the expected
result.

https://bugzilla.gnome.org/show_bug.cgi?id=736885
2014-09-22 20:46:41 +02:00
59 changed files with 7706 additions and 5502 deletions

66
NEWS
View File

@ -1,3 +1,69 @@
3.14.3
======
* Properly remove network connections from list [Ryan; #740227]
* Fix handling of cancel button on login screen [Ray; #740141]
* Fix build when using dash as default shell [Alexander; #739241]
* Make event list in calendar scrollable [Stalin; #705115]
* Fix calendar-server crash on DBus timeout [Giovanni; #735308]
* Fix gestures triggering erroneously [Florian; #740237]
Contributors:
Giovanni Campagna, Ryan Lortie, Florian Müllner, Stalin Pereira, Ray Strode,
Alexander Tsoy
3.14.2
======
* Do not hard-depend on latest NetworkManager [Florian; #738485]
* Fix check for isToday in calendar [Darcy; #738725]
* Fix workspace changes from app picker [Yuki; #737534]
* Misc. bug fixes [Yuki; #739497]
Contributors:
Darcy, Florian Müllner, Yuki
3.14.1.5
========
* Fix handing of SystemBackground [Owen; #738652]
* Summarize queued up notifications [Devyani; #702460]
* Plug an animation object leak [Rui; #739252]
* Improve handling of multi-day events [Andreas; #727302]
Contributors:
Andreas Brauchli, Devyani Kota, Rui Matos, Owen W. Taylor
3.14.1
======
* Fix pulse animation for scrolled app folders [Florian; #736885]
* Fix updating background on file changes [Owen; #710756]
* Obtain keyboard variant from IBus [Jinkyu; #735066]
* Implement Ctrl-u / Ctrl-k keybindings in entries [Florian; #737346]
* Pass VPN hints to auth dialog [Dan; #737592]
* Only allow one screenshot request at a time [Adel; #737456]
* Respect disable-save-to-disc lockdown setting [Florian; #737846]
* Respect scaling-factor for profile pictures [Darcy; #735419]
* Focus login screen after lifting the lock screen shield [Ray; #708105]
* Speed up pulse animation for few items [Carlos S.; #737017]
* Fix gap between workspace switcher and screen edge [Florian; #728899]
* Disable unredirection during recordings [Adel; #738226]
* Ensure there's always at least one input source [Rui; #738303]
* Restrict width of dash icons' context menus [Adel; #738054]
* Misc. bug fixes [Jasper, Florian, Carlos G., Owen; #736999, #737382, #737001,
#738314, #738256, #738147]
Contributors:
Darcy Beurle, Cosimo Cecchi, Adel Gadllah, Carlos Garnacho, Rui Matos,
Florian Müllner, Carlos Soriano, Jasper St. Pierre, Ray Strode, Patrick Ward,
Dan Williams, Owen W. Taylor, Jinkyu Yi
Translations:
Мирослав Николић po/sr, sr@latin.po, Fran Diéguez [gl], Marek Černocký [cs],
Saibal Ray [bn_IN], Rajesh Ranjan [hi], Friedel Wolff [af],
Zhou Fang [zh_CN], Krishnababu Krothapalli [te], Kjartan Maraas [nb],
Rūdolfs Mazurs [lv], Sweta Kothari [gu], Christian Kirbach [de],
Cheng-Chia Tseng [zh_TW], Pedro Albuquerque [pt], Daniel Mustieles [es],
Luca Ferretti [it], Baurzhan Muftakhidinov [kk], Arash Mousavi [fa],
Milo Casagrande [it]
3.14.0 3.14.0
====== ======
* Fix exposure of the accessible tree [Alejandro; #736821] * Fix exposure of the accessible tree [Alejandro; #736821]

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63) AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.14.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell]) AC_INIT([gnome-shell],[3.14.3],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/shell-global.c]) AC_CONFIG_SRCDIR([src/shell-global.c])
@ -76,7 +76,7 @@ AC_MSG_RESULT($enable_systemd)
CLUTTER_MIN_VERSION=1.15.90 CLUTTER_MIN_VERSION=1.15.90
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1 GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
GJS_MIN_VERSION=1.39.0 GJS_MIN_VERSION=1.39.0
MUTTER_MIN_VERSION=3.14.0 MUTTER_MIN_VERSION=3.14.3
GTK_MIN_VERSION=3.13.2 GTK_MIN_VERSION=3.13.2
GIO_MIN_VERSION=2.37.0 GIO_MIN_VERSION=2.37.0
LIBECAL_MIN_VERSION=3.5.3 LIBECAL_MIN_VERSION=3.5.3
@ -232,7 +232,9 @@ esac
AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS" AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS"
AC_SUBST(AM_CFLAGS) AC_SUBST(AM_CFLAGS)
BROWSER_PLUGIN_DIR="${BROWSER_PLUGIN_DIR:-"\${libdir}/mozilla/plugins"}" if test -z "${BROWSER_PLUGIN_DIR}"; then
BROWSER_PLUGIN_DIR="\${libdir}/mozilla/plugins"
fi
AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to]) AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
AC_CONFIG_FILES([ AC_CONFIG_FILES([

View File

@ -232,6 +232,10 @@ StScrollBar StButton#vhandle:active {
border-width: 0px; border-width: 0px;
} }
.app-well-menu {
max-width: 400px;
}
/* The remaining popup-menu sizing is all done in ems, so that if you /* The remaining popup-menu sizing is all done in ems, so that if you
* override .popup-menu.font-size, everything else will scale with it. * override .popup-menu.font-size, everything else will scale with it.
*/ */
@ -1490,6 +1494,10 @@ StScrollBar StButton#vhandle:active {
text-align: right; text-align: right;
} }
.events-day-time-ellipses {
color: rgba(153, 153, 153, 1.0);
}
.events-day-time:rtl { .events-day-time:rtl {
text-align: left; text-align: left;
} }

View File

@ -134,8 +134,7 @@ const AuthPrompt = new Lang.Class({
}, },
_onDestroy: function() { _onDestroy: function() {
this._userVerifier.clear(); this._userVerifier.destroy();
this._userVerifier.disconnectAll();
this._userVerifier = null; this._userVerifier = null;
}, },
@ -261,6 +260,7 @@ const AuthPrompt = new Lang.Class({
_onVerificationComplete: function() { _onVerificationComplete: function() {
this.verificationStatus = AuthPromptStatus.VERIFICATION_SUCCEEDED; this.verificationStatus = AuthPromptStatus.VERIFICATION_SUCCEEDED;
this.cancelButton.reactive = false;
}, },
_onReset: function() { _onReset: function() {
@ -419,17 +419,20 @@ const AuthPrompt = new Lang.Class({
}, },
setUser: function(user) { setUser: function(user) {
let oldChild = this._userWell.get_child();
if (oldChild)
oldChild.destroy();
if (user) { if (user) {
let userWidget = new UserWidget.UserWidget(user); let userWidget = new UserWidget.UserWidget(user);
this._userWell.set_child(userWidget.actor); this._userWell.set_child(userWidget.actor);
} else {
this._userWell.set_child(null);
} }
}, },
reset: function() { reset: function() {
let oldStatus = this.verificationStatus; let oldStatus = this.verificationStatus;
this.verificationStatus = AuthPromptStatus.NOT_VERIFYING; this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
this.cancelButton.reactive = true;
if (oldStatus == AuthPromptStatus.VERIFYING) if (oldStatus == AuthPromptStatus.VERIFYING)
this._userVerifier.cancel(); this._userVerifier.cancel();
@ -498,6 +501,9 @@ const AuthPrompt = new Lang.Class({
}, },
cancel: function() { cancel: function() {
if (this.verificationStatus == AuthPromptStatus.NOT_VERIFYING || this.verificationStatus == AuthPromptStatus.VERIFICATION_SUCCEEDED) {
return;
}
this.reset(); this.reset();
this.emit('cancelled'); this.emit('cancelled');
} }

View File

@ -64,6 +64,8 @@ const UserListItem = new Lang.Class({
reactive: true, reactive: true,
x_align: St.Align.START, x_align: St.Align.START,
x_fill: true }); x_fill: true });
this.actor.connect('destroy',
Lang.bind(this, this._onDestroy));
this._userWidget = new UserWidget.UserWidget(this.user); this._userWidget = new UserWidget.UserWidget(this.user);
layout.add(this._userWidget.actor); layout.add(this._userWidget.actor);
@ -87,6 +89,10 @@ const UserListItem = new Lang.Class({
this.actor.remove_style_pseudo_class('logged-in'); this.actor.remove_style_pseudo_class('logged-in');
}, },
_onDestroy: function() {
this._user.disconnect(this._userChangedId);
},
_onClicked: function() { _onClicked: function() {
this.emit('activate'); this.emit('activate');
}, },
@ -373,12 +379,11 @@ const LoginDialog = new Lang.Class({
if (GLib.getenv('GDM_GREETER_TEST') != '1') { if (GLib.getenv('GDM_GREETER_TEST') != '1') {
this._greeter = gdmClient.get_greeter_sync(null); this._greeter = gdmClient.get_greeter_sync(null);
this._greeter.connect('default-session-name-changed', this._defaultSessionChangedId = this._greeter.connect('default-session-name-changed',
Lang.bind(this, this._onDefaultSessionChanged)); Lang.bind(this, this._onDefaultSessionChanged));
this._sessionOpenedId = this._greeter.connect('session-opened',
this._greeter.connect('session-opened',
Lang.bind(this, this._onSessionOpened)); Lang.bind(this, this._onSessionOpened));
this._greeter.connect('timed-login-requested', this._timedLoginRequestedId = this._greeter.connect('timed-login-requested',
Lang.bind(this, this._onTimedLoginRequested)); Lang.bind(this, this._onTimedLoginRequested));
} }
@ -394,7 +399,7 @@ const LoginDialog = new Lang.Class({
Lang.bind(this, this._updateLogo)); Lang.bind(this, this._updateLogo));
this._textureCache = St.TextureCache.get_default(); this._textureCache = St.TextureCache.get_default();
this._textureCache.connect('texture-file-changed', this._updateLogoTextureId = this._textureCache.connect('texture-file-changed',
Lang.bind(this, this._updateLogoTexture)); Lang.bind(this, this._updateLogoTexture));
this._userSelectionBox = new St.BoxLayout({ style_class: 'login-dialog-user-selection-box', this._userSelectionBox = new St.BoxLayout({ style_class: 'login-dialog-user-selection-box',
@ -476,7 +481,7 @@ const LoginDialog = new Lang.Class({
// If the user list is enabled, it should take key focus; make sure the // If the user list is enabled, it should take key focus; make sure the
// screen shield is initialized first to prevent it from stealing the // screen shield is initialized first to prevent it from stealing the
// focus later // focus later
Main.layoutManager.connect('startup-complete', this._startupCompleteId = Main.layoutManager.connect('startup-complete',
Lang.bind(this, this._updateDisableUserList)); Lang.bind(this, this._updateDisableUserList));
}, },
@ -638,6 +643,8 @@ const LoginDialog = new Lang.Class({
realmManager.release(); realmManager.release();
})); }));
this._updateCancelButton(); this._updateCancelButton();
this._authPrompt.updateSensitivity(true);
this._showPrompt(); this._showPrompt();
}, },
@ -665,6 +672,8 @@ const LoginDialog = new Lang.Class({
}, },
_gotGreeterSessionProxy: function(proxy) { _gotGreeterSessionProxy: function(proxy) {
this._greeterSessionProxy = proxy;
this._greeterSessionProxyChangedId =
proxy.connect('g-properties-changed', Lang.bind(this, function() { proxy.connect('g-properties-changed', Lang.bind(this, function() {
if (proxy.Active) if (proxy.Active)
this._loginScreenSessionActivated(); this._loginScreenSessionActivated();
@ -890,6 +899,30 @@ const LoginDialog = new Lang.Class({
this._userManager.disconnect(this._userManagerLoadedId); this._userManager.disconnect(this._userManagerLoadedId);
this._userManagerLoadedId = 0; this._userManagerLoadedId = 0;
} }
if (this._userAddedId) {
this._userManager.disconnect(this._userAddedId);
this._userAddedId = 0;
}
if (this._userRemovedId) {
this._userManager.disconnect(this._userRemovedId);
this._userRemovedId = 0;
}
this._textureCache.disconnect(this._updateLogoTextureId);
Main.layoutManager.disconnect(this._startupCompleteId);
if (this._settings) {
this._settings.run_dispose();
this._settings = null;
}
if (this._greeter) {
this._greeter.disconnect(this._defaultSessionChangedId);
this._greeter.disconnect(this._sessionOpenedId);
this._greeter.disconnect(this._timedLoginRequestedId);
this._greeter = null;
}
if (this._greeterSessionProxy) {
this._greeterSessionProxy.disconnect(this._greeterSessionProxyChangedId);
this._greeterSessionProxy = null;
}
}, },
_loadUserList: function() { _loadUserList: function() {
@ -904,12 +937,12 @@ const LoginDialog = new Lang.Class({
this._userList.addUser(users[i]); this._userList.addUser(users[i]);
} }
this._userManager.connect('user-added', this._userAddedId = this._userManager.connect('user-added',
Lang.bind(this, function(userManager, user) { Lang.bind(this, function(userManager, user) {
this._userList.addUser(user); this._userList.addUser(user);
})); }));
this._userManager.connect('user-removed', this._userRemovedId = this._userManager.connect('user-removed',
Lang.bind(this, function(userManager, user) { Lang.bind(this, function(userManager, user) {
this._userList.removeUser(user); this._userList.removeUser(user);
})); }));

View File

@ -142,9 +142,9 @@ const ShellUserVerifier = new Lang.Class({
// after a user has been picked. // after a user has been picked.
this._checkForSmartcard(); this._checkForSmartcard();
this._smartcardManager.connect('smartcard-inserted', this._smartcardInsertedId = this._smartcardManager.connect('smartcard-inserted',
Lang.bind(this, this._checkForSmartcard)); Lang.bind(this, this._checkForSmartcard));
this._smartcardManager.connect('smartcard-removed', this._smartcardRemovedId = this._smartcardManager.connect('smartcard-removed',
Lang.bind(this, this._checkForSmartcard)); Lang.bind(this, this._checkForSmartcard));
this._messageQueue = []; this._messageQueue = [];
@ -159,7 +159,7 @@ const ShellUserVerifier = new Lang.Class({
if (this._oVirtCredentialsManager.hasToken()) if (this._oVirtCredentialsManager.hasToken())
this._oVirtUserAuthenticated(this._oVirtCredentialsManager.getToken()); this._oVirtUserAuthenticated(this._oVirtCredentialsManager.getToken());
this._oVirtCredentialsManager.connect('user-authenticated', this._oVirtUserAuthenticatedId = this._oVirtCredentialsManager.connect('user-authenticated',
Lang.bind(this, this._oVirtUserAuthenticated)); Lang.bind(this, this._oVirtUserAuthenticated));
}, },
@ -191,20 +191,37 @@ const ShellUserVerifier = new Lang.Class({
} }
}, },
_clearUserVerifier: function() {
if (this._userVerifier) {
this._userVerifier.run_dispose();
this._userVerifier = null;
}
},
clear: function() { clear: function() {
if (this._cancellable) { if (this._cancellable) {
this._cancellable.cancel(); this._cancellable.cancel();
this._cancellable = null; this._cancellable = null;
} }
if (this._userVerifier) { this._clearUserVerifier();
this._userVerifier.run_dispose();
this._userVerifier = null;
}
this._clearMessageQueue(); this._clearMessageQueue();
}, },
destroy: function() {
this.clear();
this._settings.run_dispose();
this._settings = null;
this._smartcardManager.disconnect(this._smartcardInsertedId);
this._smartcardManager.disconnect(this._smartcardRemovedId);
this._smartcardManager = null;
this._oVirtCredentialsManager.disconnect(this._oVirtUserAuthenticatedId);
this._oVirtCredentialsManager = null;
},
answerQuery: function(serviceName, answer) { answerQuery: function(serviceName, answer) {
if (!this.hasPendingMessages) { if (!this.hasPendingMessages) {
this._userVerifier.call_answer_query(serviceName, answer, this._cancellable, null); this._userVerifier.call_answer_query(serviceName, answer, this._cancellable, null);
@ -283,9 +300,10 @@ const ShellUserVerifier = new Lang.Class({
this._fprintManager.GetDefaultDeviceRemote(Gio.DBusCallFlags.NONE, this._cancellable, Lang.bind(this, this._fprintManager.GetDefaultDeviceRemote(Gio.DBusCallFlags.NONE, this._cancellable, Lang.bind(this,
function(device, error) { function(device, error) {
if (!error && device) if (!error && device) {
this._haveFingerprintReader = true; this._haveFingerprintReader = true;
this._updateDefaultService(); this._updateDefaultService();
}
})); }));
}, },
@ -326,6 +344,7 @@ const ShellUserVerifier = new Lang.Class({
_reauthenticationChannelOpened: function(client, result) { _reauthenticationChannelOpened: function(client, result) {
try { try {
this._clearUserVerifier();
this._userVerifier = client.open_reauthentication_channel_finish(result); this._userVerifier = client.open_reauthentication_channel_finish(result);
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) { } catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
return; return;
@ -349,6 +368,7 @@ const ShellUserVerifier = new Lang.Class({
_userVerifierGot: function(client, result) { _userVerifierGot: function(client, result) {
try { try {
this._clearUserVerifier();
this._userVerifier = client.get_user_verifier_finish(result); this._userVerifier = client.get_user_verifier_finish(result);
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) { } catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
return; return;

View File

@ -1564,10 +1564,11 @@ const AppIcon = new Lang.Class({
this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this._menuTimeoutId = 0; this._menuTimeoutId = 0;
this._stateChangedId = this.app.connect('notify::state', this._stateChangedId = this.app.connect('notify::state', Lang.bind(this,
Lang.bind(this, function () {
this._onStateChanged)); this._updateRunningStyle();
this._onStateChanged(); }));
this._updateRunningStyle();
}, },
_onDestroy: function() { _onDestroy: function() {
@ -1588,7 +1589,7 @@ const AppIcon = new Lang.Class({
} }
}, },
_onStateChanged: function() { _updateRunningStyle: function() {
if (this.app.state != Shell.AppState.STOPPED) if (this.app.state != Shell.AppState.STOPPED)
this.actor.add_style_class_name('running'); this.actor.add_style_class_name('running');
else else

View File

@ -106,6 +106,8 @@ const Main = imports.ui.main;
const Params = imports.misc.params; const Params = imports.misc.params;
const Tweener = imports.ui.tweener; const Tweener = imports.ui.tweener;
const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
const BACKGROUND_SCHEMA = 'org.gnome.desktop.background'; const BACKGROUND_SCHEMA = 'org.gnome.desktop.background';
const PRIMARY_COLOR_KEY = 'primary-color'; const PRIMARY_COLOR_KEY = 'primary-color';
const SECONDARY_COLOR_KEY = 'secondary-color'; const SECONDARY_COLOR_KEY = 'secondary-color';
@ -160,6 +162,7 @@ const BackgroundCache = new Lang.Class({
})); }));
GLib.Source.set_name_by_id(id, '[gnome-shell] params.onLoaded'); GLib.Source.set_name_by_id(id, '[gnome-shell] params.onLoaded');
} }
return;
} }
let animation = new Animation({ filename: params.filename }); let animation = new Animation({ filename: params.filename });
@ -300,6 +303,8 @@ const Background = new Lang.Class({
let signalId = this._cache.connect('file-changed', let signalId = this._cache.connect('file-changed',
Lang.bind(this, function(cache, changedFile) { Lang.bind(this, function(cache, changedFile) {
if (changedFile == filename) { if (changedFile == filename) {
let imageCache = Meta.BackgroundImageCache.get_default();
imageCache.purge(changedFile);
this.emit('changed'); this.emit('changed');
} }
})); }));
@ -450,6 +455,7 @@ const SystemBackground = new Lang.Class({
if (_systemBackground == null) { if (_systemBackground == null) {
_systemBackground = new Meta.Background({ meta_screen: global.screen }); _systemBackground = new Meta.Background({ meta_screen: global.screen });
_systemBackground.set_color(DEFAULT_BACKGROUND_COLOR);
_systemBackground.set_filename(filename, GDesktopEnums.BackgroundStyle.WALLPAPER); _systemBackground.set_filename(filename, GDesktopEnums.BackgroundStyle.WALLPAPER);
} }

View File

@ -2,6 +2,7 @@
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk;
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Lang = imports.lang; const Lang = imports.lang;
const St = imports.gi.St; const St = imports.gi.St;
@ -13,6 +14,7 @@ const Shell = imports.gi.Shell;
const MSECS_IN_DAY = 24 * 60 * 60 * 1000; const MSECS_IN_DAY = 24 * 60 * 60 * 1000;
const SHOW_WEEKDATE_KEY = 'show-weekdate'; const SHOW_WEEKDATE_KEY = 'show-weekdate';
const ELLIPSIS_CHAR = '\u2026';
// alias to prevent xgettext from picking up strings translated in GTK+ // alias to prevent xgettext from picking up strings translated in GTK+
const gtk30_ = Gettext_gtk30.gettext; const gtk30_ = Gettext_gtk30.gettext;
@ -58,19 +60,21 @@ function _getEndOfDay(date) {
return ret; return ret;
} }
function _formatEventTime(event, clockFormat) { function _formatEventTime(event, clockFormat, periodBegin, periodEnd) {
let ret; let ret;
if (event.allDay) { let allDay = (event.allDay || (event.date <= periodBegin && event.end >= periodEnd));
if (allDay) {
/* Translators: Shown in calendar event list for all day events /* Translators: Shown in calendar event list for all day events
* Keep it short, best if you can use less then 10 characters * Keep it short, best if you can use less then 10 characters
*/ */
ret = C_("event list time", "All Day"); ret = C_("event list time", "All Day");
} else { } else {
let date = event.date >= periodBegin ? event.date : event.end;
switch (clockFormat) { switch (clockFormat) {
case '24h': case '24h':
/* Translators: Shown in calendar event list, if 24h format, /* Translators: Shown in calendar event list, if 24h format,
\u2236 is a ratio character, similar to : */ \u2236 is a ratio character, similar to : */
ret = event.date.toLocaleFormat(C_("event list time", "%H\u2236%M")); ret = date.toLocaleFormat(C_("event list time", "%H\u2236%M"));
break; break;
default: default:
@ -79,7 +83,7 @@ function _formatEventTime(event, clockFormat) {
/* Translators: Shown in calendar event list, if 12h format, /* Translators: Shown in calendar event list, if 12h format,
\u2236 is a ratio character, similar to : and \u2009 is \u2236 is a ratio character, similar to : and \u2009 is
a thin space */ a thin space */
ret = event.date.toLocaleFormat(C_("event list time", "%l\u2236%M\u2009%p")); ret = date.toLocaleFormat(C_("event list time", "%l\u2236%M\u2009%p"));
break; break;
} }
} }
@ -248,12 +252,25 @@ const DBusEventSource = new Lang.Class({
this._initialized = false; this._initialized = false;
this._dbusProxy = new CalendarServer(); this._dbusProxy = new CalendarServer();
this._dbusProxy.init_async(GLib.PRIORITY_DEFAULT, null, Lang.bind(this, function(object, result) { this._dbusProxy.init_async(GLib.PRIORITY_DEFAULT, null, Lang.bind(this, function(object, result) {
let loaded = false;
try { try {
this._dbusProxy.init_finish(result); this._dbusProxy.init_finish(result);
loaded = true;
} catch(e) { } catch(e) {
if (e.matches(Gio.DBusError, Gio.DBusError.TIMED_OUT)) {
// Ignore timeouts and install signals as normal, because with high
// probability the service will appear later on, and we will get a
// NameOwnerChanged which will finish loading
//
// (But still _initialized to false, because the proxy does not know
// about the HasCalendars property and would cause an exception trying
// to read it)
} else {
log('Error loading calendars: ' + e.message); log('Error loading calendars: ' + e.message);
return; return;
} }
}
this._dbusProxy.connectSignal('Changed', Lang.bind(this, this._onChanged)); this._dbusProxy.connectSignal('Changed', Lang.bind(this, this._onChanged));
@ -268,9 +285,11 @@ const DBusEventSource = new Lang.Class({
this.emit('notify::has-calendars'); this.emit('notify::has-calendars');
})); }));
this._initialized = true; this._initialized = loaded;
if (loaded) {
this.emit('notify::has-calendars'); this.emit('notify::has-calendars');
this._onNameAppeared(); this._onNameAppeared();
}
})); }));
}, },
@ -292,6 +311,7 @@ const DBusEventSource = new Lang.Class({
}, },
_onNameAppeared: function(owner) { _onNameAppeared: function(owner) {
this._initialized = true;
this._resetCache(); this._resetCache();
this._loadEvents(true); this._loadEvents(true);
}, },
@ -361,6 +381,12 @@ const DBusEventSource = new Lang.Class({
result.push(event); result.push(event);
} }
} }
result.sort(function(event1, event2) {
// sort events by end time on ending day
let d1 = event1.date < begin && event1.end <= end ? event1.end : event1.date;
let d2 = event2.date < begin && event2.end <= end ? event2.end : event2.date;
return d1.getTime() - d2.getTime();
});
return result; return result;
}, },
@ -721,12 +747,18 @@ const EventsList = new Lang.Class({
this._eventSource.connect('changed', Lang.bind(this, this._update)); this._eventSource.connect('changed', Lang.bind(this, this._update));
}, },
_addEvent: function(event, index, includeDayName) { _addEvent: function(event, index, includeDayName, periodBegin, periodEnd) {
let eventBox = new St.BoxLayout();
eventBox.set_vertical(false);
let dayString; let dayString;
if (includeDayName) if (includeDayName) {
if (event.date >= periodBegin)
dayString = _getEventDayAbbreviation(event.date.getDay()); dayString = _getEventDayAbbreviation(event.date.getDay());
else else /* show event end day if it began earlier */
dayString = _getEventDayAbbreviation(event.end.getDay());
} else {
dayString = ''; dayString = '';
}
let dayLabel = new St.Label({ style_class: 'events-day-dayname', let dayLabel = new St.Label({ style_class: 'events-day-dayname',
text: dayString, text: dayString,
@ -738,17 +770,32 @@ const EventsList = new Lang.Class({
let rtl = this.actor.get_text_direction() == Clutter.TextDirection.RTL; let rtl = this.actor.get_text_direction() == Clutter.TextDirection.RTL;
let layout = this.actor.layout_manager; let layout = this.actor.layout_manager;
layout.attach(dayLabel, rtl ? 2 : 0, index, 1, 1); eventBox.add_actor(dayLabel);
let clockFormat = this._desktopSettings.get_string(CLOCK_FORMAT_KEY); let clockFormat = this._desktopSettings.get_string(CLOCK_FORMAT_KEY);
let timeString = _formatEventTime(event, clockFormat); let timeString = _formatEventTime(event, clockFormat, periodBegin, periodEnd);
let timeLabel = new St.Label({ style_class: 'events-day-time', let timeLabel = new St.Label({ style_class: 'events-day-time',
text: timeString, text: timeString,
y_align: Clutter.ActorAlign.START }); y_align: Clutter.ActorAlign.START });
timeLabel.clutter_text.line_wrap = false; timeLabel.clutter_text.line_wrap = false;
timeLabel.clutter_text.ellipsize = false; timeLabel.clutter_text.ellipsize = false;
layout.attach(timeLabel, 1, index, 1, 1); let preEllipsisLabel = new St.Label({ style_class: 'events-day-time-ellipses',
text: ELLIPSIS_CHAR,
y_align: Clutter.ActorAlign.START });
let postEllipsisLabel = new St.Label({ style_class: 'events-day-time-ellipses',
text: ELLIPSIS_CHAR,
y_align: Clutter.ActorAlign.START });
if (event.allDay || event.date >= periodBegin)
preEllipsisLabel.opacity = 0;
if (event.allDay || event.end <= periodEnd)
postEllipsisLabel.opacity = 0;
let timeLabelBoxLayout = new St.BoxLayout({ x_align: Clutter.ActorAlign.START });
timeLabelBoxLayout.add(preEllipsisLabel);
timeLabelBoxLayout.add(timeLabel);
timeLabelBoxLayout.add(postEllipsisLabel);
timeLabelBoxLayout.set_size(50, 1);
eventBox.add_actor(timeLabelBoxLayout);
let titleLabel = new St.Label({ style_class: 'events-day-task', let titleLabel = new St.Label({ style_class: 'events-day-task',
text: event.summary, text: event.summary,
@ -756,30 +803,29 @@ const EventsList = new Lang.Class({
titleLabel.clutter_text.line_wrap = true; titleLabel.clutter_text.line_wrap = true;
titleLabel.clutter_text.ellipsize = false; titleLabel.clutter_text.ellipsize = false;
layout.attach(titleLabel, rtl ? 0 : 2, index, 1, 1); eventBox.add_actor(titleLabel);
this._eventListBox.add_actor(eventBox);
}, },
_addPeriod: function(header, index, begin, end, includeDayName, showNothingScheduled) { _addPeriod: function(header, index, periodBegin, periodEnd, includeDayName, showNothingScheduled) {
let events = this._eventSource.getEvents(begin, end); let events = this._eventSource.getEvents(periodBegin, periodEnd);
if (events.length == 0 && !showNothingScheduled) if (events.length == 0 && !showNothingScheduled)
return index; return index;
let label = new St.Label({ style_class: 'events-day-header', text: header }); let label = new St.Label({ style_class: 'events-day-header', text: header });
let layout = this.actor.layout_manager; this._eventListBox.add_actor(label);
layout.attach(label, 0, index, 3, 1);
index++; index++;
for (let n = 0; n < events.length; n++) { for (let n = 0; n < events.length; n++) {
this._addEvent(events[n], index, includeDayName); this._addEvent(events[n], index, includeDayName, periodBegin, periodEnd);
index++; index++;
} }
if (events.length == 0 && showNothingScheduled) { if (events.length == 0 && showNothingScheduled) {
let now = new Date();
/* Translators: Text to show if there are no events */ /* Translators: Text to show if there are no events */
let nothingEvent = new CalendarEvent(now, now, _("Nothing Scheduled"), true); let nothingEvent = new CalendarEvent(periodBegin, periodBegin, _("Nothing Scheduled"), true);
this._addEvent(nothingEvent, index, false); this._addEvent(nothingEvent, index, false, periodBegin, periodEnd);
index++; index++;
} }
@ -787,8 +833,6 @@ const EventsList = new Lang.Class({
}, },
_showOtherDay: function(day) { _showOtherDay: function(day) {
this.actor.destroy_all_children();
let dayBegin = _getBeginningOfDay(day); let dayBegin = _getBeginningOfDay(day);
let dayEnd = _getEndOfDay(day); let dayEnd = _getEndOfDay(day);
@ -804,7 +848,6 @@ const EventsList = new Lang.Class({
}, },
_showToday: function() { _showToday: function() {
this.actor.destroy_all_children();
let index = 0; let index = 0;
let now = new Date(); let now = new Date();
@ -849,6 +892,24 @@ const EventsList = new Lang.Class({
if (this._eventSource.isLoading) if (this._eventSource.isLoading)
return; return;
this.actor.destroy_all_children();
let layout = this.actor.layout_manager;
this._eventListContainer = new St.BoxLayout({ x_expand: true, y_expand: true });
this._eventListContainer.set_vertical(true);
this._eventListBox = new St.BoxLayout();
this._eventListBox.set_vertical(true);
let eventScrollView = new St.ScrollView({style_class: 'vfade',
hscrollbar_policy: Gtk.PolicyType.NEVER,
vscrollbar_policy: Gtk.PolicyType.AUTOMATIC});
eventScrollView.add_actor(this._eventListBox);
this._eventListContainer.add_actor(eventScrollView);
layout.attach(this._eventListContainer, 0, 0, 1, 1);
let today = new Date(); let today = new Date();
if (_sameDay (this._date, today)) { if (_sameDay (this._date, today)) {
this._showToday(); this._showToday();

View File

@ -380,6 +380,12 @@ const VPNRequestHandler = new Lang.Class({
argv.push('-i'); argv.push('-i');
if (flags & NMClient.SecretAgentGetSecretsFlags.REQUEST_NEW) if (flags & NMClient.SecretAgentGetSecretsFlags.REQUEST_NEW)
argv.push('-r'); argv.push('-r');
if (authHelper.supportsHints) {
for (let i = 0; i < hints.length; i++) {
argv.push('-t');
argv.push(hints[i]);
}
}
this._newStylePlugin = authHelper.externalUIMode; this._newStylePlugin = authHelper.externalUIMode;
@ -598,7 +604,15 @@ const NetworkAgent = new Lang.Class({
Name: 'NetworkAgent', Name: 'NetworkAgent',
_init: function() { _init: function() {
this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent' }); try {
this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent',
capabilities: NMClient.SecretAgentCapabilities.VPN_HINTS
});
} catch(e) {
// Support older versions without NetworkAgent:capabilities
this._native = new Shell.NetworkAgent({ identifier: 'org.gnome.Shell.NetworkAgent'
});
}
this._dialogs = { }; this._dialogs = { };
this._vpnRequests = { }; this._vpnRequests = { };
@ -698,16 +712,23 @@ const NetworkAgent = new Lang.Class({
let service = keyfile.get_string('VPN Connection', 'service'); let service = keyfile.get_string('VPN Connection', 'service');
let binary = keyfile.get_string('GNOME', 'auth-dialog'); let binary = keyfile.get_string('GNOME', 'auth-dialog');
let externalUIMode = false; let externalUIMode = false;
let hints = false;
try { try {
externalUIMode = keyfile.get_boolean('GNOME', 'supports-external-ui-mode'); externalUIMode = keyfile.get_boolean('GNOME', 'supports-external-ui-mode');
} catch(e) { } // ignore errors if key does not exist } catch(e) { } // ignore errors if key does not exist
try {
hints = keyfile.get_boolean('GNOME', 'supports-hints');
} catch(e) { } // ignore errors if key does not exist
let path = binary; let path = binary;
if (!GLib.path_is_absolute(path)) { if (!GLib.path_is_absolute(path)) {
path = GLib.build_filenamev([Config.LIBEXECDIR, path]); path = GLib.build_filenamev([Config.LIBEXECDIR, path]);
} }
if (GLib.file_test(path, GLib.FileTest.IS_EXECUTABLE)) if (GLib.file_test(path, GLib.FileTest.IS_EXECUTABLE))
this._vpnBinaries[service] = { fileName: path, externalUIMode: externalUIMode }; this._vpnBinaries[service] = { fileName: path, externalUIMode: externalUIMode, supportsHints: hints };
else else
throw new Error('VPN plugin at %s is not executable'.format(path)); throw new Error('VPN plugin at %s is not executable'.format(path));
} catch(e) { } catch(e) {

View File

@ -3,6 +3,7 @@
const GLib = imports.gi.GLib; const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const GnomeDesktop = imports.gi.GnomeDesktop; const GnomeDesktop = imports.gi.GnomeDesktop;
const GObject = imports.gi.GObject;
const Lang = imports.lang; const Lang = imports.lang;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
const Cairo = imports.cairo; const Cairo = imports.cairo;
@ -58,7 +59,7 @@ const DateMenuButton = new Lang.Class({
// Fill up the first column // Fill up the first column
vbox = new St.BoxLayout({vertical: true}); vbox = new St.BoxLayout({vertical: true, x_expand: true, y_expand: true });
hbox.add(vbox); hbox.add(vbox);
// Date // Date
@ -95,11 +96,11 @@ const DateMenuButton = new Lang.Class({
this._openCalendarItem = new PopupMenu.PopupMenuItem(_("Open Calendar")); this._openCalendarItem = new PopupMenu.PopupMenuItem(_("Open Calendar"));
this._openCalendarItem.connect('activate', Lang.bind(this, this._onOpenCalendarActivate)); this._openCalendarItem.connect('activate', Lang.bind(this, this._onOpenCalendarActivate));
vbox.add(this._openCalendarItem.actor, {y_align: St.Align.END, expand: true, y_fill: false}); vbox.add(this._openCalendarItem.actor, {y_align: St.Align.END, expand: false, y_fill: false});
this._openClocksItem = new PopupMenu.PopupMenuItem(_("Open Clocks")); this._openClocksItem = new PopupMenu.PopupMenuItem(_("Open Clocks"));
this._openClocksItem.connect('activate', Lang.bind(this, this._onOpenClocksActivate)); this._openClocksItem.connect('activate', Lang.bind(this, this._onOpenClocksActivate));
vbox.add(this._openClocksItem.actor, {y_align: St.Align.END, expand: true, y_fill: false}); vbox.add(this._openClocksItem.actor, {y_align: St.Align.END, expand: false, y_fill: false});
Shell.AppSystem.get_default().connect('installed-changed', Shell.AppSystem.get_default().connect('installed-changed',
Lang.bind(this, this._appInstalledChanged)); Lang.bind(this, this._appInstalledChanged));
@ -124,14 +125,19 @@ const DateMenuButton = new Lang.Class({
if (isOpen) { if (isOpen) {
let now = new Date(); let now = new Date();
this._calendar.setDate(now); this._calendar.setDate(now);
/* Translators: This is the date format to use when the calendar popup is
* shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
*/
let dateFormat = _("%A %B %e, %Y");
this._date.set_label(now.toLocaleFormat(dateFormat));
} }
})); }));
// Done with hbox for calendar and event list // Done with hbox for calendar and event list
this._clock = new GnomeDesktop.WallClock(); this._clock = new GnomeDesktop.WallClock();
this._clock.connect('notify::clock', Lang.bind(this, this._updateClockAndDate)); this._clock.bind_property('clock', this._clockDisplay, 'text', GObject.BindingFlags.SYNC_CREATE);
this._updateClockAndDate();
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated)); Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
this._sessionUpdated(); this._sessionUpdated();
@ -141,7 +147,7 @@ const DateMenuButton = new Lang.Class({
let now = new Date(); let now = new Date();
return now.getYear() == date.getYear() && return now.getYear() == date.getYear() &&
now.getMonth() == date.getMonth() && now.getMonth() == date.getMonth() &&
now.getDay() == date.getDay(); now.getDate() == date.getDate();
}, },
_appInstalledChanged: function() { _appInstalledChanged: function() {
@ -196,16 +202,6 @@ const DateMenuButton = new Lang.Class({
this._dateAndTimeSeparator.actor.visible = Main.sessionMode.allowSettings; this._dateAndTimeSeparator.actor.visible = Main.sessionMode.allowSettings;
}, },
_updateClockAndDate: function() {
this._clockDisplay.set_text(this._clock.clock);
/* Translators: This is the date format to use when the calendar popup is
* shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
*/
let dateFormat = _("%A %B %e, %Y");
let displayDate = new Date();
this._date.set_label(displayDate.toLocaleFormat(dateFormat));
},
_getCalendarApp: function() { _getCalendarApp: function() {
if (this._calendarApp !== undefined) if (this._calendarApp !== undefined)
return this._calendarApp; return this._calendarApp;

View File

@ -6,6 +6,8 @@ const Meta = imports.gi.Meta;
const Clutter = imports.gi.Clutter; const Clutter = imports.gi.Clutter;
const St = imports.gi.St; const St = imports.gi.St;
const Main = imports.ui.main;
const EDGE_THRESHOLD = 20; const EDGE_THRESHOLD = 20;
const DRAG_DISTANCE = 80; const DRAG_DISTANCE = 80;
@ -13,9 +15,10 @@ const EdgeDragAction = new Lang.Class({
Name: 'EdgeDragAction', Name: 'EdgeDragAction',
Extends: Clutter.GestureAction, Extends: Clutter.GestureAction,
_init : function(side) { _init : function(side, allowedModes) {
this.parent(); this.parent();
this._side = side; this._side = side;
this._allowedModes = allowedModes;
this.set_n_touch_points(1); this.set_n_touch_points(1);
global.display.connect('grab-op-begin', Lang.bind(this, function() { global.display.connect('grab-op-begin', Lang.bind(this, function() {
@ -34,6 +37,9 @@ const EdgeDragAction = new Lang.Class({
if (this.get_n_current_points() == 0) if (this.get_n_current_points() == 0)
return false; return false;
if (!(this._allowedModes & Main.keybindingMode))
return false;
let [x, y] = this.get_press_coords(0); let [x, y] = this.get_press_coords(0);
let monitorRect = this._getMonitorRect(x, y); let monitorRect = this._getMonitorRect(x, y);

View File

@ -20,6 +20,7 @@ const EXTRA_SPACE_ANIMATION_TIME = 0.25;
const ANIMATION_TIME_IN = 0.350; const ANIMATION_TIME_IN = 0.350;
const ANIMATION_TIME_OUT = 1/2 * ANIMATION_TIME_IN; const ANIMATION_TIME_OUT = 1/2 * ANIMATION_TIME_IN;
const ANIMATION_MAX_DELAY_FOR_ITEM = 2/3 * ANIMATION_TIME_IN; const ANIMATION_MAX_DELAY_FOR_ITEM = 2/3 * ANIMATION_TIME_IN;
const ANIMATION_BASE_DELAY_FOR_ITEM = 1/4 * ANIMATION_MAX_DELAY_FOR_ITEM;
const ANIMATION_MAX_DELAY_OUT_FOR_ITEM = 2/3 * ANIMATION_TIME_OUT; const ANIMATION_MAX_DELAY_OUT_FOR_ITEM = 2/3 * ANIMATION_TIME_OUT;
const ANIMATION_FADE_IN_TIME_FOR_ITEM = 1/4 * ANIMATION_TIME_IN; const ANIMATION_FADE_IN_TIME_FOR_ITEM = 1/4 * ANIMATION_TIME_IN;
@ -429,33 +430,30 @@ const IconGrid = new Lang.Class({
return; return;
} }
// For few items the animation can be slow, so use a smaller
// delay when there are less than 4 items
// (ANIMATION_BASE_DELAY_FOR_ITEM = 1/4 *
// ANIMATION_MAX_DELAY_FOR_ITEM)
let maxDelay = Math.min(ANIMATION_BASE_DELAY_FOR_ITEM * actors.length,
ANIMATION_MAX_DELAY_FOR_ITEM);
for (let index = 0; index < actors.length; index++) { for (let index = 0; index < actors.length; index++) {
let actor = actors[index]; let actor = actors[index];
actor.opacity = 0;
actor.reactive = false; actor.reactive = false;
actor.set_scale(0, 0);
actor.set_pivot_point(0.5, 0.5);
let delay = index / actors.length * ANIMATION_MAX_DELAY_FOR_ITEM; let delay = index / actors.length * maxDelay;
let [originalX, originalY] = actor.get_transformed_position();
let [originalWidth, originalHeight,,] = this._getAllocatedChildSizeAndSpacing(actor);
let actorClone = new Clutter.Clone({ source: actor });
Main.uiGroup.add_actor(actorClone);
actorClone.set_position(originalX, originalY);
actorClone.set_scale(0, 0);
actorClone.set_pivot_point(0.5, 0.5);
actorClone.set_size(originalWidth, originalHeight);
let bounceUpTime = ANIMATION_TIME_IN / 4; let bounceUpTime = ANIMATION_TIME_IN / 4;
let isLastItem = index == actors.length - 1; let isLastItem = index == actors.length - 1;
Tweener.addTween(actorClone, Tweener.addTween(actor,
{ time: bounceUpTime, { time: bounceUpTime,
transition: 'easeInOutQuad', transition: 'easeInOutQuad',
delay: delay, delay: delay,
scale_x: ANIMATION_BOUNCE_ICON_SCALE, scale_x: ANIMATION_BOUNCE_ICON_SCALE,
scale_y: ANIMATION_BOUNCE_ICON_SCALE, scale_y: ANIMATION_BOUNCE_ICON_SCALE,
onComplete: Lang.bind(this, function() { onComplete: Lang.bind(this, function() {
Tweener.addTween(actorClone, Tweener.addTween(actor,
{ time: ANIMATION_TIME_IN - bounceUpTime, { time: ANIMATION_TIME_IN - bounceUpTime,
transition: 'easeInOutQuad', transition: 'easeInOutQuad',
scale_x: 1, scale_x: 1,
@ -463,10 +461,7 @@ const IconGrid = new Lang.Class({
onComplete: Lang.bind(this, function() { onComplete: Lang.bind(this, function() {
if (isLastItem) if (isLastItem)
this._animationDone(); this._animationDone();
actor.opacity = 255;
actor.reactive = true; actor.reactive = true;
actorClone.destroy();
}) })
}); });
}) })

View File

@ -75,6 +75,7 @@ const Key = new Lang.Class({
_init : function(key) { _init : function(key) {
this._key = key; this._key = key;
this.actor = this._makeKey(key, GLib.markup_escape_text(key.label, -1)); this.actor = this._makeKey(key, GLib.markup_escape_text(key.label, -1));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this._extended_keys = this._key.get_extended_keys(); this._extended_keys = this._key.get_extended_keys();
this._extended_keyboard = null; this._extended_keyboard = null;
@ -97,6 +98,13 @@ const Key = new Lang.Class({
} }
}, },
_onDestroy: function() {
if (this._boxPointer) {
this._boxPointer.actor.destroy();
this._boxPointer = null;
}
},
_makeKey: function (key, label) { _makeKey: function (key, label) {
let button = new St.Button ({ label: label, let button = new St.Button ({ label: label,
style_class: 'keyboard-key' }); style_class: 'keyboard-key' });
@ -602,7 +610,7 @@ const Keyboard = new Lang.Class({
_moveTemporarily: function () { _moveTemporarily: function () {
let currentWindow = global.screen.get_display().focus_window; let currentWindow = global.screen.get_display().focus_window;
let rect = currentWindow.get_outer_rect(); let rect = currentWindow.get_frame_rect();
let newX = rect.x; let newX = rect.x;
let newY = 3 * this.actor.height / 2; let newY = 3 * this.actor.height / 2;

View File

@ -20,7 +20,6 @@ const Tweener = imports.ui.tweener;
const STARTUP_ANIMATION_TIME = 0.5; const STARTUP_ANIMATION_TIME = 0.5;
const KEYBOARD_ANIMATION_TIME = 0.15; const KEYBOARD_ANIMATION_TIME = 0.15;
const BACKGROUND_FADE_ANIMATION_TIME = 1.0; const BACKGROUND_FADE_ANIMATION_TIME = 1.0;
const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
// The message tray takes this much pressure // The message tray takes this much pressure
// in the pressure barrier at once to release it. // in the pressure barrier at once to release it.
@ -160,10 +159,10 @@ const LayoutManager = new Lang.Class({
this._isPopupWindowVisible = false; this._isPopupWindowVisible = false;
this._startingUp = true; this._startingUp = true;
// Normally, the stage is always covered so Clutter doesn't need to clear // We don't want to paint the stage background color because either
// it; however it becomes visible during the startup animation // the SystemBackground we create or the MetaBackgroundActor inside
// See the comment below for a longer explanation // global.window_group covers the entirety of the screen.
global.stage.background_color = DEFAULT_BACKGROUND_COLOR; global.stage.no_clear_hint = true;
// Set up stage hierarchy to group all UI actors under one container. // Set up stage hierarchy to group all UI actors under one container.
this.uiGroup = new Shell.GenericContainer({ name: 'uiGroup' }); this.uiGroup = new Shell.GenericContainer({ name: 'uiGroup' });
@ -230,6 +229,10 @@ const LayoutManager = new Lang.Class({
global.stage.remove_actor(global.top_window_group); global.stage.remove_actor(global.top_window_group);
this.uiGroup.add_actor(global.top_window_group); this.uiGroup.add_actor(global.top_window_group);
let feedbackGroup = Meta.get_feedback_group_for_screen(global.screen);
global.stage.remove_actor(feedbackGroup);
this.uiGroup.add_actor(feedbackGroup);
this._backgroundGroup = new Meta.BackgroundGroup(); this._backgroundGroup = new Meta.BackgroundGroup();
global.window_group.add_child(this._backgroundGroup); global.window_group.add_child(this._backgroundGroup);
this._backgroundGroup.lower_bottom(); this._backgroundGroup.lower_bottom();
@ -259,7 +262,6 @@ const LayoutManager = new Lang.Class({
this._inOverview = true; this._inOverview = true;
this._updateVisibility(); this._updateVisibility();
this._updateRegions();
}, },
hideOverview: function() { hideOverview: function() {
@ -267,7 +269,6 @@ const LayoutManager = new Lang.Class({
this._inOverview = false; this._inOverview = false;
this._updateVisibility(); this._updateVisibility();
this._queueUpdateRegions();
}, },
_sessionUpdated: function() { _sessionUpdated: function() {
@ -589,10 +590,6 @@ const LayoutManager = new Lang.Class({
// //
// When starting a normal user session, we want to grow it out of the middle // When starting a normal user session, we want to grow it out of the middle
// of the screen. // of the screen.
//
// Usually, we don't want to paint the stage background color because the
// MetaBackgroundActor inside global.window_group covers the entirety of the
// screen. So, we set no_clear_hint at the end of the animation.
_prepareStartupAnimation: function() { _prepareStartupAnimation: function() {
// During the initial transition, add a simple actor to block all events, // During the initial transition, add a simple actor to block all events,
@ -673,10 +670,6 @@ const LayoutManager = new Lang.Class({
}, },
_startupAnimationComplete: function() { _startupAnimationComplete: function() {
// At this point, the UI group is covering everything, so
// we no longer need to clear the stage
global.stage.no_clear_hint = true;
this._coverPane.destroy(); this._coverPane.destroy();
this._coverPane = null; this._coverPane = null;
@ -915,9 +908,6 @@ const LayoutManager = new Lang.Class({
}, },
_queueUpdateRegions: function() { _queueUpdateRegions: function() {
if (Main.sessionMode.isGreeter)
return;
if (this._startingUp) if (this._startingUp)
return; return;
@ -951,13 +941,16 @@ const LayoutManager = new Lang.Class({
}, },
_updateRegions: function() { _updateRegions: function() {
let rects = [], struts = [], i;
if (this._updateRegionIdle) { if (this._updateRegionIdle) {
Meta.later_remove(this._updateRegionIdle); Meta.later_remove(this._updateRegionIdle);
delete this._updateRegionIdle; delete this._updateRegionIdle;
} }
// No need to update when we have a modal.
if (Main.modalCount > 0)
return GLib.SOURCE_REMOVE;
let rects = [], struts = [], i;
let isPopupMenuVisible = global.top_window_group.get_children().some(isPopupMetaWindow); let isPopupMenuVisible = global.top_window_group.get_children().some(isPopupMetaWindow);
let wantsInputRegion = !isPopupMenuVisible; let wantsInputRegion = !isPopupMenuVisible;
@ -1043,7 +1036,13 @@ const LayoutManager = new Lang.Class({
} }
return GLib.SOURCE_REMOVE; return GLib.SOURCE_REMOVE;
} },
modalEnded: function() {
// We don't update the stage input region while in a modal,
// so queue an update now.
this._queueUpdateRegions();
},
}); });
Signals.addSignalMethods(LayoutManager.prototype); Signals.addSignalMethods(LayoutManager.prototype);

View File

@ -1198,12 +1198,7 @@ const ZoomRegion = new Lang.Class({
// Add a background for when the magnified uiGroup is scrolled // Add a background for when the magnified uiGroup is scrolled
// out of view (don't want to see desktop showing through). // out of view (don't want to see desktop showing through).
this._background = new Clutter.Actor({ background_color: Main.DEFAULT_BACKGROUND_COLOR, this._background = (new Background.SystemBackground()).actor;
layout_manager: new Clutter.BinLayout(),
width: global.screen_width,
height: global.screen_height });
let noiseTexture = (new Background.SystemBackground()).actor;
this._background.add_actor(noiseTexture);
mainGroup.add_actor(this._background); mainGroup.add_actor(this._background);
// Clone the group that contains all of UI on the screen. This is the // Clone the group that contains all of UI on the screen. This is the

View File

@ -40,8 +40,6 @@ const Magnifier = imports.ui.magnifier;
const XdndHandler = imports.ui.xdndHandler; const XdndHandler = imports.ui.xdndHandler;
const Util = imports.misc.util; const Util = imports.misc.util;
const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
const A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard'; const A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard';
const STICKY_KEYS_ENABLE = 'stickykeys-enable'; const STICKY_KEYS_ENABLE = 'stickykeys-enable';
const GNOMESHELL_STARTED_MESSAGE_ID = 'f3ea493c22934e26811cd62abe8e203a'; const GNOMESHELL_STARTED_MESSAGE_ID = 'f3ea493c22934e26811cd62abe8e203a';
@ -454,6 +452,7 @@ function popModal(actor, timestamp) {
if (modalCount > 0) if (modalCount > 0)
return; return;
layoutManager.modalEnded();
global.end_modal(timestamp); global.end_modal(timestamp);
Meta.enable_unredirect_for_screen(global.screen); Meta.enable_unredirect_for_screen(global.screen);
keybindingMode = Shell.KeyBindingMode.NORMAL; keybindingMode = Shell.KeyBindingMode.NORMAL;

View File

@ -1159,6 +1159,7 @@ const SourceActor = new Lang.Class({
this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight)); this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
this.actor.connect('allocate', Lang.bind(this, this._allocate)); this.actor.connect('allocate', Lang.bind(this, this._allocate));
this.actor.connect('destroy', Lang.bind(this, function() { this.actor.connect('destroy', Lang.bind(this, function() {
this._source.disconnect(this._iconUpdatedId);
this._actorDestroyed = true; this._actorDestroyed = true;
})); }));
this._actorDestroyed = false; this._actorDestroyed = false;
@ -1170,7 +1171,7 @@ const SourceActor = new Lang.Class({
this.actor.add_actor(this._iconBin); this.actor.add_actor(this._iconBin);
this._source.connect('icon-updated', Lang.bind(this, this._updateIcon)); this._iconUpdatedId = this._source.connect('icon-updated', Lang.bind(this, this._updateIcon));
this._updateIcon(); this._updateIcon();
}, },
@ -1228,8 +1229,12 @@ const SourceActorWithLabel = new Lang.Class({
this.actor.add_actor(this._counterBin); this.actor.add_actor(this._counterBin);
this._source.connect('count-updated', Lang.bind(this, this._updateCount)); this._countUpdatedId = this._source.connect('count-updated', Lang.bind(this, this._updateCount));
this._updateCount(); this._updateCount();
this.actor.connect('destroy', function() {
this._source.disconnect(this._countUpdatedId);
});
}, },
_allocate: function(actor, box, flags) { _allocate: function(actor, box, flags) {
@ -1946,7 +1951,9 @@ const MessageTray = new Lang.Class({
this._messageTrayMenuButton.actor.connect('key-press-event', this._messageTrayMenuButton.actor.connect('key-press-event',
Lang.bind(this, this._onTrayButtonKeyPress)); Lang.bind(this, this._onTrayButtonKeyPress));
let gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM); let gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW);
gesture.connect('activated', Lang.bind(this, this.toggle)); gesture.connect('activated', Lang.bind(this, this.toggle));
global.stage.add_action(gesture); global.stage.add_action(gesture);
}, },
@ -2427,9 +2434,23 @@ const MessageTray = new Lang.Class({
if (shouldShowNotification && nextNotification) { if (shouldShowNotification && nextNotification) {
let limited = this._busy || Main.layoutManager.bottomMonitor.inFullscreen; let limited = this._busy || Main.layoutManager.bottomMonitor.inFullscreen;
let showNextNotification = (!limited || nextNotification.forFeedback || nextNotification.urgency == Urgency.CRITICAL); let showNextNotification = (!limited || nextNotification.forFeedback || nextNotification.urgency == Urgency.CRITICAL);
if (showNextNotification) if (showNextNotification) {
let len = this._notificationQueue.length;
if (len > 1) {
this._notificationQueue.length = 0;
let source = new SystemNotificationSource();
this.add(source);
let notification = new Notification(source, ngettext("%d new message", "%d new messages", len).format(len));
notification.setTransient(true);
notification.connect('clicked', Lang.bind(this, function() {
this.openTray();
}));
source.notify(notification);
} else {
this._showNotification(); this._showNotification();
} }
}
}
} else if (this._notificationState == State.SHOWN) { } else if (this._notificationState == State.SHOWN) {
let expired = (this._userActiveWhileNotificationShown && let expired = (this._userActiveWhileNotificationShown &&
this._notificationTimeoutId == 0 && this._notificationTimeoutId == 0 &&

View File

@ -64,7 +64,8 @@ const SlideLayout = new Lang.Class({
// flags only determine what to do if the allocated box is bigger // flags only determine what to do if the allocated box is bigger
// than the actor's box. // than the actor's box.
let realDirection = getRtlSlideDirection(this._direction, child); let realDirection = getRtlSlideDirection(this._direction, child);
let alignX = (realDirection == SlideDirection.LEFT) ? (availWidth - natWidth) : 0; let alignX = (realDirection == SlideDirection.LEFT) ? (availWidth - natWidth)
: (availWidth - natWidth * this._slideX);
let actorBox = new Clutter.ActorBox(); let actorBox = new Clutter.ActorBox();
actorBox.x1 = box.x1 + alignX + this._translationX; actorBox.x1 = box.x1 + alignX + this._translationX;

View File

@ -1019,7 +1019,7 @@ const Panel = new Lang.Class({
if (!dragWindow) if (!dragWindow)
return Clutter.EVENT_PROPAGATE; return Clutter.EVENT_PROPAGATE;
let rect = dragWindow.get_outer_rect(); let rect = dragWindow.get_frame_rect();
let [stageX, stageY] = event.get_coords(); let [stageX, stageY] = event.get_coords();
let allowDrag = dragWindow.maximized_vertically && let allowDrag = dragWindow.maximized_vertically &&

View File

@ -919,6 +919,11 @@ const ScreenShield = new Lang.Class({
this._lockScreenState = MessageTray.State.HIDDEN; this._lockScreenState = MessageTray.State.HIDDEN;
this._lockScreenGroup.hide(); this._lockScreenGroup.hide();
if (this._dialog) {
this._dialog.actor.grab_key_focus();
this._dialog.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
}
}, },
_hideLockScreen: function(animate, velocity) { _hideLockScreen: function(animate, velocity) {

View File

@ -43,6 +43,8 @@ const ScreencastService = new Lang.Class({
this._recorders = new Map(); this._recorders = new Map();
this._lockdownSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.lockdown' });
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated)); Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
}, },
@ -68,8 +70,8 @@ const ScreencastService = new Lang.Class({
if (Main.sessionMode.allowScreencast) if (Main.sessionMode.allowScreencast)
return; return;
this._recorders.clear(); for (let sender of this._recorders.keys())
this.emit('updated'); this._stopRecordingForSender(sender);
}, },
_onNameVanished: function(connection, name) { _onNameVanished: function(connection, name) {
@ -103,7 +105,8 @@ const ScreencastService = new Lang.Class({
ScreencastAsync: function(params, invocation) { ScreencastAsync: function(params, invocation) {
let returnValue = [false, '']; let returnValue = [false, ''];
if (!Main.sessionMode.allowScreencast) { if (!Main.sessionMode.allowScreencast ||
this._lockdownSettings.get_boolean('disable-save-to-disk')) {
invocation.return_value(GLib.Variant.new('(bs)', returnValue)); invocation.return_value(GLib.Variant.new('(bs)', returnValue));
return; return;
} }
@ -117,6 +120,8 @@ const ScreencastService = new Lang.Class({
this._applyOptionalParameters(recorder, options); this._applyOptionalParameters(recorder, options);
let [success, fileName] = recorder.record(); let [success, fileName] = recorder.record();
returnValue = [success, fileName ? fileName : '']; returnValue = [success, fileName ? fileName : ''];
if (!success)
this._stopRecordingForSender(sender);
} }
invocation.return_value(GLib.Variant.new('(bs)', returnValue)); invocation.return_value(GLib.Variant.new('(bs)', returnValue));
@ -124,7 +129,8 @@ const ScreencastService = new Lang.Class({
ScreencastAreaAsync: function(params, invocation) { ScreencastAreaAsync: function(params, invocation) {
let returnValue = [false, '']; let returnValue = [false, ''];
if (!Main.sessionMode.allowScreencast) { if (!Main.sessionMode.allowScreencast ||
this._lockdownSettings.get_boolean('disable-save-to-disk')) {
invocation.return_value(GLib.Variant.new('(bs)', returnValue)); invocation.return_value(GLib.Variant.new('(bs)', returnValue));
return; return;
} }
@ -150,6 +156,8 @@ const ScreencastService = new Lang.Class({
this._applyOptionalParameters(recorder, options); this._applyOptionalParameters(recorder, options);
let [success, fileName] = recorder.record(); let [success, fileName] = recorder.record();
returnValue = [success, fileName ? fileName : '']; returnValue = [success, fileName ? fileName : ''];
if (!success)
this._stopRecordingForSender(sender);
} }
invocation.return_value(GLib.Variant.new('(bs)', returnValue)); invocation.return_value(GLib.Variant.new('(bs)', returnValue));

View File

@ -65,9 +65,44 @@ const ScreenshotService = new Lang.Class({
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(ScreenshotIface, this); this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(ScreenshotIface, this);
this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell/Screenshot'); this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell/Screenshot');
this._screenShooter = new Map();
this._lockdownSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.lockdown' });
Gio.DBus.session.own_name('org.gnome.Shell.Screenshot', Gio.BusNameOwnerFlags.REPLACE, null, null); Gio.DBus.session.own_name('org.gnome.Shell.Screenshot', Gio.BusNameOwnerFlags.REPLACE, null, null);
}, },
_createScreenshot: function(invocation) {
let sender = invocation.get_sender();
if (this._screenShooter.has(sender) ||
this._lockdownSettings.get_boolean('disable-save-to-disk')) {
invocation.return_value(GLib.Variant.new('(bs)', [false, '']));
return null;
}
let shooter = new Shell.Screenshot();
shooter._watchNameId =
Gio.bus_watch_name(Gio.BusType.SESSION, sender, 0, null,
Lang.bind(this, this._onNameVanished));
this._screenShooter.set(sender, shooter);
return shooter;
},
_onNameVanished: function(connection, name) {
this._removeShooterForSender(name);
},
_removeShooterForSender: function(sender) {
let shooter = this._screenShooter.get(sender);
if (!shooter)
return;
Gio.bus_unwatch_name(shooter._watchNameId);
this._screenShooter.delete(sender);
},
_checkArea: function(x, y, width, height) { _checkArea: function(x, y, width, height) {
return x >= 0 && y >= 0 && return x >= 0 && y >= 0 &&
width > 0 && height > 0 && width > 0 && height > 0 &&
@ -76,9 +111,15 @@ const ScreenshotService = new Lang.Class({
}, },
_onScreenshotComplete: function(obj, result, area, filenameUsed, flash, invocation) { _onScreenshotComplete: function(obj, result, area, filenameUsed, flash, invocation) {
if (flash && result) { if (result) {
if (flash) {
let flashspot = new Flashspot(area); let flashspot = new Flashspot(area);
flashspot.fire(); flashspot.fire(Lang.bind(this, function() {
this._removeShooterForSender(invocation.get_sender());
}));
}
else
this._removeShooterForSender(invocation.get_sender());
} }
let retval = GLib.Variant.new('(bs)', [result, filenameUsed]); let retval = GLib.Variant.new('(bs)', [result, filenameUsed]);
@ -112,7 +153,9 @@ const ScreenshotService = new Lang.Class({
"Invalid params"); "Invalid params");
return; return;
} }
let screenshot = new Shell.Screenshot(); let screenshot = this._createScreenshot(invocation);
if (!screenshot)
return;
screenshot.screenshot_area (x, y, width, height, filename, screenshot.screenshot_area (x, y, width, height, filename,
Lang.bind(this, this._onScreenshotComplete, Lang.bind(this, this._onScreenshotComplete,
flash, invocation)); flash, invocation));
@ -120,7 +163,9 @@ const ScreenshotService = new Lang.Class({
ScreenshotWindowAsync : function (params, invocation) { ScreenshotWindowAsync : function (params, invocation) {
let [include_frame, include_cursor, flash, filename] = params; let [include_frame, include_cursor, flash, filename] = params;
let screenshot = new Shell.Screenshot(); let screenshot = this._createScreenshot(invocation);
if (!screenshot)
return;
screenshot.screenshot_window (include_frame, include_cursor, filename, screenshot.screenshot_window (include_frame, include_cursor, filename,
Lang.bind(this, this._onScreenshotComplete, Lang.bind(this, this._onScreenshotComplete,
flash, invocation)); flash, invocation));
@ -128,7 +173,9 @@ const ScreenshotService = new Lang.Class({
ScreenshotAsync : function (params, invocation) { ScreenshotAsync : function (params, invocation) {
let [include_cursor, flash, filename] = params; let [include_cursor, flash, filename] = params;
let screenshot = new Shell.Screenshot(); let screenshot = this._createScreenshot(invocation);
if (!screenshot)
return;
screenshot.screenshot(include_cursor, filename, screenshot.screenshot(include_cursor, filename,
Lang.bind(this, this._onScreenshotComplete, Lang.bind(this, this._onScreenshotComplete,
flash, invocation)); flash, invocation));
@ -302,7 +349,7 @@ const Flashspot = new Lang.Class({
this.actor.set_position(area.x, area.y); this.actor.set_position(area.x, area.y);
}, },
fire: function() { fire: function(doneCallback) {
this.actor.show(); this.actor.show();
this.actor.opacity = 255; this.actor.opacity = 255;
Tweener.addTween(this.actor, Tweener.addTween(this.actor,
@ -310,6 +357,8 @@ const Flashspot = new Lang.Class({
time: FLASHSPOT_ANIMATION_OUT_TIME, time: FLASHSPOT_ANIMATION_OUT_TIME,
transition: 'easeOutQuad', transition: 'easeOutQuad',
onComplete: Lang.bind(this, function() { onComplete: Lang.bind(this, function() {
if (doneCallback)
doneCallback();
this.destroy(); this.destroy();
}) })
}); });

View File

@ -452,6 +452,24 @@ const SearchResults = new Lang.Class({
this._updateResults(provider, results); this._updateResults(provider, results);
}, },
_clearSearchTimeout: function() {
if (this._searchTimeoutId > 0) {
GLib.source_remove(this._searchTimeoutId);
this._searchTimeoutId = 0;
}
},
_reset: function() {
this._terms = [];
this._results = {};
this._clearDisplay();
this._clearSearchTimeout();
this._defaultResult = null;
this._startingSearch = false;
this._updateSearchProgress();
},
_doSearch: function() { _doSearch: function() {
this._startingSearch = false; this._startingSearch = false;
@ -470,10 +488,7 @@ const SearchResults = new Lang.Class({
this._updateSearchProgress(); this._updateSearchProgress();
if (this._searchTimeoutId > 0) { this._clearSearchTimeout();
GLib.source_remove(this._searchTimeoutId);
this._searchTimeoutId = 0;
}
}, },
_onSearchTimeout: function() { _onSearchTimeout: function() {
@ -483,24 +498,25 @@ const SearchResults = new Lang.Class({
}, },
setTerms: function(terms) { setTerms: function(terms) {
// Check for the case of making a duplicate previous search before
// setting state of the current search or cancelling the search.
// This will prevent incorrect state being as a result of a duplicate
// search while the previous search is still active.
let searchString = terms.join(' ');
let previousSearchString = this._terms.join(' ');
if (searchString == previousSearchString)
return;
this._startingSearch = true; this._startingSearch = true;
this._cancellable.cancel(); this._cancellable.cancel();
this._cancellable.reset(); this._cancellable.reset();
if (!terms) { if (terms.length == 0) {
if (this._searchTimeoutId > 0) { this._reset();
GLib.source_remove(this._searchTimeoutId);
this._searchTimeoutId = 0;
}
return; return;
} }
let searchString = terms.join(' ');
let previousSearchString = this._terms.join(' ');
if (searchString == previousSearchString)
return;
let isSubSearch = false; let isSubSearch = false;
if (this._terms.length > 0) if (this._terms.length > 0)
isSubSearch = searchString.indexOf(previousSearchString) == 0; isSubSearch = searchString.indexOf(previousSearchString) == 0;
@ -535,6 +551,7 @@ const SearchResults = new Lang.Class({
providerDisplay = new GridSearchResults(provider, this.actor); providerDisplay = new GridSearchResults(provider, this.actor);
providerDisplay.connect('key-focus-in', Lang.bind(this, this._keyFocusIn)); providerDisplay.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
providerDisplay.actor.hide();
this._content.add(providerDisplay.actor); this._content.add(providerDisplay.actor);
provider.display = providerDisplay; provider.display = providerDisplay;
}, },

View File

@ -298,8 +298,7 @@ const InputSourceManager = new Lang.Class({
this._inputSources = {}; this._inputSources = {};
this._ibusSources = {}; this._ibusSources = {};
let inputSourcesByShortName = {}; let infosList = [];
for (let i = 0; i < nSources; i++) { for (let i = 0; i < nSources; i++) {
let displayName; let displayName;
let shortName; let shortName;
@ -323,11 +322,24 @@ const InputSourceManager = new Lang.Class({
} }
} }
if (!exists) if (exists)
continue; infosList.push({ type: type, id: id, displayName: displayName, shortName: shortName });
}
let is = new InputSource(type, id, displayName, shortName, i); if (infosList.length == 0) {
let type = INPUT_SOURCE_TYPE_XKB;
let id = KeyboardManager.DEFAULT_LAYOUT;
let [ , displayName, shortName, , ] = this._xkbInfo.get_layout_info(id);
infosList.push({ type: type, id: id, displayName: displayName, shortName: shortName });
}
let inputSourcesByShortName = {};
for (let i = 0; i < infosList.length; i++) {
let is = new InputSource(infosList[i].type,
infosList[i].id,
infosList[i].displayName,
infosList[i].shortName,
i);
is.connect('activate', Lang.bind(this, this._activateInputSource)); is.connect('activate', Lang.bind(this, this._activateInputSource));
if (!(is.shortName in inputSourcesByShortName)) if (!(is.shortName in inputSourcesByShortName))
@ -747,7 +759,7 @@ const InputSourceIndicator = new Lang.Class({
let engineDesc = IBusManager.getIBusManager().getEngineDesc(source.id); let engineDesc = IBusManager.getIBusManager().getEngineDesc(source.id);
if (engineDesc) { if (engineDesc) {
xkbLayout = engineDesc.get_layout(); xkbLayout = engineDesc.get_layout();
xkbVariant = ''; xkbVariant = engineDesc.get_layout_variant();
} }
} }

View File

@ -1866,7 +1866,7 @@ const NMApplet = new Lang.Class({
_connectionRemoved: function(connection) { _connectionRemoved: function(connection) {
let pos = this._connections.indexOf(connection); let pos = this._connections.indexOf(connection);
if (pos != -1) if (pos != -1)
this._connections.splice(connection, 1); this._connections.splice(pos, 1);
let section = connection._section; let section = connection._section;

View File

@ -28,11 +28,12 @@ const Avatar = new Lang.Class({
styleClass: 'framed-user-icon' }); styleClass: 'framed-user-icon' });
this._iconSize = params.iconSize; this._iconSize = params.iconSize;
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
this.actor = new St.Bin({ style_class: params.styleClass, this.actor = new St.Bin({ style_class: params.styleClass,
track_hover: params.reactive, track_hover: params.reactive,
reactive: params.reactive, reactive: params.reactive,
width: this._iconSize, width: this._iconSize * scaleFactor,
height: this._iconSize }); height: this._iconSize * scaleFactor });
}, },
setSensitive: function(sensitive) { setSensitive: function(sensitive) {

View File

@ -65,7 +65,8 @@ const ShowOverviewAction = new Lang.Class({
}, },
vfunc_gesture_prepare : function(action, actor) { vfunc_gesture_prepare : function(action, actor) {
return this.get_n_current_points() == this.get_n_touch_points(); return Main.keybindingMode == Shell.KeyBindingMode.NORMAL &&
this.get_n_current_points() == this.get_n_touch_points();
}, },
_getBoundingRect : function(motion) { _getBoundingRect : function(motion) {
@ -193,8 +194,10 @@ const ViewSelector = new Lang.Class({
// the windows to animate, but now we no longer want to // the windows to animate, but now we no longer want to
// show it given that we are now on the apps page or // show it given that we are now on the apps page or
// search page. // search page.
if (this._activePage != this._workspacesPage) if (this._activePage != this._workspacesPage) {
this._workspacesPage.opacity = 0; this._workspacesPage.opacity = 0;
this._workspacesPage.hide();
}
})); }));
Main.wm.addKeybinding('toggle-application-view', Main.wm.addKeybinding('toggle-application-view',
@ -213,7 +216,8 @@ const ViewSelector = new Lang.Class({
let gesture; let gesture;
gesture = new EdgeDragAction.EdgeDragAction(St.Side.LEFT); gesture = new EdgeDragAction.EdgeDragAction(St.Side.LEFT,
Shell.KeyBindingMode.NORMAL);
gesture.connect('activated', Lang.bind(this, function() { gesture.connect('activated', Lang.bind(this, function() {
if (Main.overview.visible) if (Main.overview.visible)
Main.overview.hide(); Main.overview.hide();

View File

@ -413,7 +413,7 @@ const TilePreview = new Lang.Class({
y: monitor.y, y: monitor.y,
width: monitor.width, width: monitor.width,
height: monitor.height }); height: monitor.height });
let [, rect] = window.get_outer_rect().intersect(monitorRect); let [, rect] = window.get_frame_rect().intersect(monitorRect);
this.actor.set_size(rect.width, rect.height); this.actor.set_size(rect.width, rect.height);
this.actor.set_position(rect.x, rect.y); this.actor.set_position(rect.x, rect.y);
this.actor.opacity = 0; this.actor.opacity = 0;
@ -478,7 +478,9 @@ const WorkspaceSwitchAction = new Lang.Class({
}, },
vfunc_gesture_prepare : function(action, actor) { vfunc_gesture_prepare : function(action, actor) {
return this.get_n_current_points() == this.get_n_touch_points(); let allowedModes = Shell.KeyBindingMode.NORMAL | Shell.KeyBindingMode.OVERVIEW;
return this.get_n_current_points() == this.get_n_touch_points() &&
(allowedModes & Main.keybindingMode);
}, },
vfunc_gesture_end : function(action, actor) { vfunc_gesture_end : function(action, actor) {
@ -526,7 +528,7 @@ const AppSwitchAction = new Lang.Class({
}, },
vfunc_gesture_prepare : function(action, actor) { vfunc_gesture_prepare : function(action, actor) {
if (Main.overview.visible) { if (Main.keybindingMode != Shell.KeyBindingMode.NORMAL) {
this.cancel(); this.cancel();
return false; return false;
} }

View File

@ -75,7 +75,7 @@ const WindowMenu = new Lang.Class({
})); }));
if (window.is_above()) if (window.is_above())
item.setOrnament(PopupMenu.Ornament.DOT); item.setOrnament(PopupMenu.Ornament.DOT);
if (window.get_maximized() || if (window.get_maximized() == Meta.MaximizeFlags.BOTH ||
type == Meta.WindowType.DOCK || type == Meta.WindowType.DOCK ||
type == Meta.WindowType.DESKTOP || type == Meta.WindowType.DESKTOP ||
type == Meta.WindowType.SPLASHSCREEN) type == Meta.WindowType.SPLASHSCREEN)

View File

@ -254,7 +254,7 @@ const WindowClone = new Lang.Class({
}, },
_computeBoundingBox: function() { _computeBoundingBox: function() {
let rect = this.metaWindow.get_outer_rect(); let rect = this.metaWindow.get_frame_rect();
this.actor.get_children().forEach(function (child) { this.actor.get_children().forEach(function (child) {
let realWindow; let realWindow;
@ -264,7 +264,7 @@ const WindowClone = new Lang.Class({
realWindow = child.source; realWindow = child.source;
let metaWindow = realWindow.meta_window; let metaWindow = realWindow.meta_window;
rect = rect.union(metaWindow.get_outer_rect()); rect = rect.union(metaWindow.get_frame_rect());
}, this); }, this);
// Convert from a MetaRectangle to a native JS object // Convert from a MetaRectangle to a native JS object

View File

@ -161,14 +161,14 @@ const WindowClone = new Lang.Class({
_updateDialogPosition: function(realDialog, cloneDialog) { _updateDialogPosition: function(realDialog, cloneDialog) {
let metaDialog = realDialog.meta_window; let metaDialog = realDialog.meta_window;
let dialogRect = metaDialog.get_outer_rect(); let dialogRect = metaDialog.get_frame_rect();
let rect = this.metaWindow.get_outer_rect(); let rect = this.metaWindow.get_frame_rect();
cloneDialog.set_position(dialogRect.x - rect.x, dialogRect.y - rect.y); cloneDialog.set_position(dialogRect.x - rect.x, dialogRect.y - rect.y);
}, },
_onPositionChanged: function() { _onPositionChanged: function() {
let rect = this.metaWindow.get_outer_rect(); let rect = this.metaWindow.get_frame_rect();
this.actor.set_position(this.realWindow.x, this.realWindow.y); this.actor.set_position(this.realWindow.x, this.realWindow.y);
}, },

1768
po/af.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -5,21 +5,22 @@
# Petr Kovar <pknbe@volny.cz>, 2009, 2010, 2011, 2012, 2014. # Petr Kovar <pknbe@volny.cz>, 2009, 2010, 2011, 2012, 2014.
# Adam Matoušek <adamatousek@gmail.com>, 2012, 2013. # Adam Matoušek <adamatousek@gmail.com>, 2012, 2013.
# Marek Černocký <marek@manet.cz>, 2012, 2013, 2014. # Marek Černocký <marek@manet.cz>, 2012, 2013, 2014.
#
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-09-22 07:36+0000\n" "POT-Creation-Date: 2014-09-22 19:42+0000\n"
"PO-Revision-Date: 2014-09-22 15:16+0200\n" "PO-Revision-Date: 2014-09-23 07:05+0200\n"
"Last-Translator: Petr Kovar <pknbe@volny.cz>\n" "Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n" "Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n" "Language: cs\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Virtaal 0.7.1\n" "X-Generator: Gtranslator 2.91.6\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
@ -218,12 +219,11 @@ msgid "Keybinding to focus the active notification."
msgstr "Klávesová zkratka k zaměření aktivního upozornění." msgstr "Klávesová zkratka k zaměření aktivního upozornění."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
#, fuzzy
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"Klávesová zkratka k pozastavení a opětovnému spuštění všech běžících ???; " "Klávesová zkratka k pozastavení a opětovnému spuštění všech běžících animací "
"pro účely ladění" "tweens; pro účely ladění"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Which keyboard to use" msgid "Which keyboard to use"
@ -1455,7 +1455,6 @@ msgid "Disable"
msgstr "Zakázáno" msgstr "Zakázáno"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:73
#| msgid "Power Settings"
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Nastavení ochrany osobních údajů" msgstr "Nastavení ochrany osobních údajů"

View File

@ -20,9 +20,9 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-09-15 07:36+0000\n" "POT-Creation-Date: 2014-10-01 19:43+0000\n"
"PO-Revision-Date: 2014-09-15 18:29+0100\n" "PO-Revision-Date: 2014-10-01 22:16+0100\n"
"Last-Translator: <dev@hmt.im>\n" "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n" "Language-Team: Deutsch <gnome-de@gnome.org>\n"
"Language: de_DE\n" "Language: de_DE\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -409,28 +409,28 @@ msgstr "Häufig"
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"
#: ../js/ui/appDisplay.js:1789 #: ../js/ui/appDisplay.js:1790
msgid "New Window" msgid "New Window"
msgstr "Neues Fenster" msgstr "Neues Fenster"
#: ../js/ui/appDisplay.js:1815 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1816 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Aus Favoriten entfernen" msgstr "Aus Favoriten entfernen"
#: ../js/ui/appDisplay.js:1821 #: ../js/ui/appDisplay.js:1822
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Zu Favoriten hinzufügen" msgstr "Zu Favoriten hinzufügen"
#: ../js/ui/appDisplay.js:1830 #: ../js/ui/appDisplay.js:1831
msgid "Show Details" msgid "Show Details"
msgstr "Details anzeigen" msgstr "Details anzeigen"
#: ../js/ui/appFavorites.js:124 #: ../js/ui/appFavorites.js:132
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s wurde zu Ihren Favoriten hinzugefügt" msgstr "%s wurde zu Ihren Favoriten hinzugefügt"
#: ../js/ui/appFavorites.js:158 #: ../js/ui/appFavorites.js:166
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s wurde aus Ihren Favoriten entfernt" msgstr "%s wurde aus Ihren Favoriten entfernt"
@ -1175,7 +1175,7 @@ msgstr "Installieren"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "»%s« von extensions.gnome.org herunterladen und installieren?" msgstr "»%s« von extensions.gnome.org herunterladen und installieren?"
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523 #: ../js/ui/keyboard.js:700 ../js/ui/status/keyboard.js:523
msgid "Keyboard" msgid "Keyboard"
msgstr "Tastatur" msgstr "Tastatur"
@ -1231,39 +1231,39 @@ msgstr "Quelle zeigen"
msgid "Web Page" msgid "Web Page"
msgstr "Webseite" msgstr "Webseite"
#: ../js/ui/messageTray.js:1326 #: ../js/ui/messageTray.js:1327
msgid "Open" msgid "Open"
msgstr "Öffnen" msgstr "Öffnen"
#: ../js/ui/messageTray.js:1333 #: ../js/ui/messageTray.js:1334
msgid "Remove" msgid "Remove"
msgstr "Entfernen" msgstr "Entfernen"
#: ../js/ui/messageTray.js:1630 #: ../js/ui/messageTray.js:1631
msgid "Notifications" msgid "Notifications"
msgstr "Benachrichtigungen" msgstr "Benachrichtigungen"
#: ../js/ui/messageTray.js:1637 #: ../js/ui/messageTray.js:1638
msgid "Clear Messages" msgid "Clear Messages"
msgstr "Nachrichten leeren" msgstr "Nachrichten leeren"
#: ../js/ui/messageTray.js:1656 #: ../js/ui/messageTray.js:1657
msgid "Notification Settings" msgid "Notification Settings"
msgstr "Benachrichtigungseinstellungen" msgstr "Benachrichtigungseinstellungen"
#: ../js/ui/messageTray.js:1709 #: ../js/ui/messageTray.js:1710
msgid "Tray Menu" msgid "Tray Menu"
msgstr "Benachrichtigungsfeldmenü" msgstr "Benachrichtigungsfeldmenü"
#: ../js/ui/messageTray.js:1926 #: ../js/ui/messageTray.js:1934
msgid "No Messages" msgid "No Messages"
msgstr "Keine Nachrichten" msgstr "Keine Nachrichten"
#: ../js/ui/messageTray.js:1968 #: ../js/ui/messageTray.js:1979
msgid "Message Tray" msgid "Message Tray"
msgstr "Benachrichtigungsfeld" msgstr "Benachrichtigungsfeld"
#: ../js/ui/messageTray.js:2971 #: ../js/ui/messageTray.js:2992
msgid "System Information" msgid "System Information"
msgstr "Systeminformationen" msgstr "Systeminformationen"
@ -1357,11 +1357,11 @@ msgstr "Sperrung fehlgeschlagen"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Sperrung wurde von einer Anwendung blockiert" msgstr "Sperrung wurde von einer Anwendung blockiert"
#: ../js/ui/search.js:594 #: ../js/ui/search.js:611
msgid "Searching…" msgid "Searching…"
msgstr "Suche läuft …" msgstr "Suche läuft …"
#: ../js/ui/search.js:596 #: ../js/ui/search.js:613
msgid "No results." msgid "No results."
msgstr "Keine Ergebnisse." msgstr "Keine Ergebnisse."
@ -1411,7 +1411,7 @@ msgstr "Visuelle Warnungen"
#: ../js/ui/status/accessibility.js:75 #: ../js/ui/status/accessibility.js:75
msgid "Sticky Keys" msgid "Sticky Keys"
msgstr "Klebrige Tasten" msgstr "Einrastfunktion"
#: ../js/ui/status/accessibility.js:78 #: ../js/ui/status/accessibility.js:78
msgid "Slow Keys" msgid "Slow Keys"
@ -1419,7 +1419,7 @@ msgstr "Tastenverzögerung"
#: ../js/ui/status/accessibility.js:81 #: ../js/ui/status/accessibility.js:81
msgid "Bounce Keys" msgid "Bounce Keys"
msgstr "Springende Tasten" msgstr "Tastenanschlagfunktion"
#: ../js/ui/status/accessibility.js:84 #: ../js/ui/status/accessibility.js:84
msgid "Mouse Keys" msgid "Mouse Keys"
@ -1476,7 +1476,6 @@ msgid "Disable"
msgstr "Deaktivieren" msgstr "Deaktivieren"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:73
#| msgid "Power Settings"
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Einstellungen zur Privatsphäre" msgstr "Einstellungen zur Privatsphäre"

View File

@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: gnome-shell.master\n" "Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-09-20 07:41+0000\n" "POT-Creation-Date: 2014-10-06 07:46+0000\n"
"PO-Revision-Date: 2014-09-20 19:01+0200\n" "PO-Revision-Date: 2014-10-06 13:00+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n" "Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
"Language: es\n" "Language: es\n"
@ -1000,22 +1000,22 @@ msgstr "Mostrar aplicaciones"
msgid "Dash" msgid "Dash"
msgstr "Tablero" msgstr "Tablero"
#: ../js/ui/dateMenu.js:96 #: ../js/ui/dateMenu.js:97
msgid "Open Calendar" msgid "Open Calendar"
msgstr "Abrir calendario" msgstr "Abrir calendario"
#: ../js/ui/dateMenu.js:100 #: ../js/ui/dateMenu.js:101
msgid "Open Clocks" msgid "Open Clocks"
msgstr "Abrir Relojes" msgstr "Abrir Relojes"
#: ../js/ui/dateMenu.js:107 #: ../js/ui/dateMenu.js:108
msgid "Date & Time Settings" msgid "Date & Time Settings"
msgstr "Configuración de hora y fecha" msgstr "Configuración de hora y fecha"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #. */
#: ../js/ui/dateMenu.js:204 #: ../js/ui/dateMenu.js:132
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A, %e de %B de %Y" msgstr "%A, %e de %B de %Y"
@ -1159,7 +1159,7 @@ msgstr "Instalar"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?" msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523 #: ../js/ui/keyboard.js:700 ../js/ui/status/keyboard.js:523
msgid "Keyboard" msgid "Keyboard"
msgstr "Teclado" msgstr "Teclado"
@ -1338,11 +1338,11 @@ msgstr "No se pudo bloquear"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Una aplicación impidió el bloqueo" msgstr "Una aplicación impidió el bloqueo"
#: ../js/ui/search.js:594 #: ../js/ui/search.js:611
msgid "Searching…" msgid "Searching…"
msgstr "Buscando…" msgstr "Buscando…"
#: ../js/ui/search.js:596 #: ../js/ui/search.js:613
msgid "No results." msgid "No results."
msgstr "No se encontraron resultados." msgstr "No se encontraron resultados."
@ -1457,7 +1457,6 @@ msgid "Disable"
msgstr "Desactivar" msgstr "Desactivar"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:73
#| msgid "Power Settings"
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Configuración de privacidad" msgstr "Configuración de privacidad"
@ -1583,7 +1582,7 @@ msgstr "Configuración de Wi-Fi"
#: ../js/ui/status/network.js:1281 #: ../js/ui/status/network.js:1281
msgid "Turn On" msgid "Turn On"
msgstr "Enceder" msgstr "Encender"
#: ../js/ui/status/network.js:1298 #: ../js/ui/status/network.js:1298
msgid "Hotspot Active" msgid "Hotspot Active"

207
po/fa.po
View File

@ -9,8 +9,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-08-28 07:38+0000\n" "POT-Creation-Date: 2014-10-06 19:42+0000\n"
"PO-Revision-Date: 2014-08-28 20:57+0430\n" "PO-Revision-Date: 2014-10-10 10:51+0330\n"
"Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n" "Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n"
"Language-Team: Persian <>\n" "Language-Team: Persian <>\n"
"Language: fa\n" "Language: fa\n"
@ -19,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Gtranslator 2.91.6\n" "X-Generator: Poedit 1.6.9\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -81,16 +81,10 @@ msgstr ""
"F2." "F2."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.in.h:3
#| msgid "Uuids of extensions to enable"
msgid "UUIDs of extensions to enable" msgid "UUIDs of extensions to enable"
msgstr "شناسه‌های UUID افزونه‌ها جهت فعال‌سازی" msgstr "شناسه‌های UUID افزونه‌ها جهت فعال‌سازی"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4 #: ../data/org.gnome.shell.gschema.xml.in.in.h:4
#| msgid ""
#| "GNOME Shell extensions have a uuid property; this key lists extensions "
#| "which should be loaded. Any extension that wants to be loaded needs to be "
#| "in this list. You can also manipulate this list with the EnableExtension "
#| "and DisableExtension DBus methods on org.gnome.Shell."
msgid "" msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions which " "GNOME Shell extensions have a UUID property; this key lists extensions which "
"should be loaded. Any extension that wants to be loaded needs to be in this " "should be loaded. Any extension that wants to be loaded needs to be in this "
@ -143,14 +137,10 @@ msgid "History for the looking glass dialog"
msgstr "تاریخچه برای نما محاوره شیشه‌ای" msgstr "تاریخچه برای نما محاوره شیشه‌ای"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.in.h:13
#| msgid "Always show the 'Log out' menuitem in the user menu."
msgid "Always show the 'Log out' menu item in the user menu." msgid "Always show the 'Log out' menu item in the user menu."
msgstr "همیشه «خروج از سیستم» را در منو کاربر نمایش بده." msgstr "همیشه «خروج از سیستم» را در منو کاربر نمایش بده."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.in.h:14
#| msgid ""
#| "This key overrides the automatic hiding of the 'Log out' menuitem in "
#| "single-user, single-session situations."
msgid "" msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-" "This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations." "user, single-session situations."
@ -307,18 +297,17 @@ msgstr ""
msgid "Captive Portal" msgid "Captive Portal"
msgstr "پرتال درگیر" msgstr "پرتال درگیر"
#: ../js/extensionPrefs/main.js:127 #: ../js/extensionPrefs/main.js:123
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "خطایی هنگام باز کردن محاوره‌ی ترجیحات برای %s رُخ داد:" msgstr "خطایی هنگام باز کردن محاوره‌ی ترجیحات برای %s رُخ داد:"
#: ../js/extensionPrefs/main.js:159 #: ../js/extensionPrefs/main.js:155
#| msgid "Configure GNOME Shell Extensions"
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "افزونه‌های گنوم‌شل" msgstr "افزونه‌های گنوم‌شل"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915 #: ../js/ui/status/network.js:915
msgid "Cancel" msgid "Cancel"
@ -378,50 +367,47 @@ msgstr "عدم توانایی در تجزیه فرمان:"
#: ../js/misc/util.js:156 #: ../js/misc/util.js:156
#, javascript-format #, javascript-format
#| msgid "Execution of '%s' failed:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "اجرای «%s» شکست خورد:" msgstr "اجرای «%s» شکست خورد:"
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
#| msgid "Authentication Required"
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "تغییر مسیر برای تایید هویت وب" msgstr "تغییر مسیر برای تایید هویت وب"
#: ../js/ui/appDisplay.js:660 #: ../js/ui/appDisplay.js:772
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "برنامه‌های بیشتر استفاده شده در اینجا نمایش داده می‌شود" msgstr "برنامه‌های بیشتر استفاده شده در اینجا نمایش داده می‌شود"
#: ../js/ui/appDisplay.js:771 #: ../js/ui/appDisplay.js:883
msgid "Frequent" msgid "Frequent"
msgstr "پُراستفاده" msgstr "پُراستفاده"
#: ../js/ui/appDisplay.js:778 #: ../js/ui/appDisplay.js:890
msgid "All" msgid "All"
msgstr "همه" msgstr "همه"
#: ../js/ui/appDisplay.js:1650 #: ../js/ui/appDisplay.js:1790
msgid "New Window" msgid "New Window"
msgstr "پنجره‌ی جدید" msgstr "پنجره‌ی جدید"
#: ../js/ui/appDisplay.js:1673 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1816 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "حذف از مورد پسندها" msgstr "حذف از مورد پسندها"
#: ../js/ui/appDisplay.js:1679 #: ../js/ui/appDisplay.js:1822
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "اضافه کردن به مورد پسندها" msgstr "اضافه کردن به مورد پسندها"
#: ../js/ui/appDisplay.js:1688 #: ../js/ui/appDisplay.js:1831
#| msgid "Show Text"
msgid "Show Details" msgid "Show Details"
msgstr "نمایش جزئیات" msgstr "نمایش جزئیات"
#: ../js/ui/appFavorites.js:122 #: ../js/ui/appFavorites.js:132
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "مورد %s به مورد پسندهای شما اضافه شد." msgstr "مورد %s به مورد پسندهای شما اضافه شد."
#: ../js/ui/appFavorites.js:156 #: ../js/ui/appFavorites.js:166
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "مورد %s ازمورد پسندهای شما حذف شد." msgstr "مورد %s ازمورد پسندهای شما حذف شد."
@ -613,11 +599,11 @@ msgstr "باز کردن با %s"
msgid "Eject" msgid "Eject"
msgstr "بیرون دادن" msgstr "بیرون دادن"
#: ../js/ui/components/keyring.js:93 ../js/ui/components/polkitAgent.js:285 #: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285
msgid "Password:" msgid "Password:"
msgstr "گذرواژه" msgstr "گذرواژه"
#: ../js/ui/components/keyring.js:113 #: ../js/ui/components/keyring.js:120
msgid "Type again:" msgid "Type again:"
msgstr "تلاش مجدد:" msgstr "تلاش مجدد:"
@ -656,9 +642,6 @@ msgstr "تایید هویت برای شبکه بی‌سیم لازم است"
#: ../js/ui/components/networkAgent.js:319 #: ../js/ui/components/networkAgent.js:319
#, javascript-format #, javascript-format
#| msgid ""
#| "Passwords or encryption keys are required to access the wireless network "
#| "'%s'."
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
"“%s”." "“%s”."
@ -694,7 +677,6 @@ msgstr "گذرواژه شبکه پهن‌باند تلفن همراه"
#: ../js/ui/components/networkAgent.js:346 #: ../js/ui/components/networkAgent.js:346
#, javascript-format #, javascript-format
#| msgid "A password is required to connect to '%s'."
msgid "A password is required to connect to “%s”." msgid "A password is required to connect to “%s”."
msgstr "برای اتصال به «%s» گذرواژه لازم است." msgstr "برای اتصال به «%s» گذرواژه لازم است."
@ -744,23 +726,18 @@ msgstr "بی‌صدا"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:953 #: ../js/ui/components/telepathyClient.js:953
#| msgctxt "event list time"
#| msgid "%H%M"
msgid "%H%M" msgid "%H%M"
msgstr "%OH%OM" msgstr "%OH%OM"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:960 #: ../js/ui/components/telepathyClient.js:960
#| msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "<b>دیروز</b>، <b>%OH:%OM" msgstr "<b>دیروز</b>، <b>%OH:%OM"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:967 #: ../js/ui/components/telepathyClient.js:967
#| msgctxt "event list time"
#| msgid "%H%M"
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A، %OH%OM" msgstr "%A، %OH%OM"
@ -768,8 +745,6 @@ msgstr "%A، %OH%OM"
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30" */
#: ../js/ui/components/telepathyClient.js:974 #: ../js/ui/components/telepathyClient.js:974
#| msgctxt "event list time"
#| msgid "%H%M"
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%d %B، %OH%OM" msgstr "%d %B، %OH%OM"
@ -782,8 +757,6 @@ msgstr "%Od %OB %OY، %OH:%OM"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:986 #: ../js/ui/components/telepathyClient.js:986
#| msgctxt "event list time"
#| msgid "%l%M%p"
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%Ol%OM%p" msgstr "%Ol%OM%p"
@ -796,7 +769,6 @@ msgstr "دیروز، %OI:%OM"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1000 #: ../js/ui/components/telepathyClient.js:1000
#| msgid "%a %l:%M %p"
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A، %OH:%OM" msgstr "%A، %OH:%OM"
@ -804,7 +776,6 @@ msgstr "%A، %OH:%OM"
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1007 #: ../js/ui/components/telepathyClient.js:1007
#| msgid "%a %b %e, %l:%M %p"
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%Od %B، %OH:%OM" msgstr "%Od %B، %OH:%OM"
@ -812,7 +783,6 @@ msgstr "%Od %B، %OH:%OM"
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1013 #: ../js/ui/components/telepathyClient.js:1013
#| msgid "%a %b %e, %l:%M %p"
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%Od %B، %OH:%OM" msgstr "%Od %B، %OH:%OM"
@ -1004,7 +974,7 @@ msgstr "نمایش حساب"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "دلیل ناشناخته" msgstr "دلیل ناشناخته"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:228 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154
msgid "Windows" msgid "Windows"
msgstr "پنجره‌‌ها" msgstr "پنجره‌‌ها"
@ -1016,105 +986,105 @@ msgstr "نمایش برنامه‌ها"
msgid "Dash" msgid "Dash"
msgstr "دَش" msgstr "دَش"
#: ../js/ui/dateMenu.js:96 #: ../js/ui/dateMenu.js:97
msgid "Open Calendar" msgid "Open Calendar"
msgstr "بازکردن تقویم" msgstr "بازکردن تقویم"
#: ../js/ui/dateMenu.js:100 #: ../js/ui/dateMenu.js:101
msgid "Open Clocks" msgid "Open Clocks"
msgstr "باز کردن ساعت‌ها" msgstr "باز کردن ساعت‌ها"
#: ../js/ui/dateMenu.js:107 #: ../js/ui/dateMenu.js:108
msgid "Date & Time Settings" msgid "Date & Time Settings"
msgstr "تنظیمات تاریخ و ساعت" msgstr "تنظیمات تاریخ و ساعت"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #. */
#: ../js/ui/dateMenu.js:204 #: ../js/ui/dateMenu.js:132
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A %Od %B" msgstr "%A %Od %B"
#: ../js/ui/endSessionDialog.js:66 #: ../js/ui/endSessionDialog.js:64
#, javascript-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "خروج از %s" msgstr "خروج از %s"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:65
msgctxt "title" msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "خروج از سیستم" msgstr "خروج از سیستم"
#: ../js/ui/endSessionDialog.js:69 #: ../js/ui/endSessionDialog.js:67
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s به طور خودکار در مدت %Id ثانیه از سیستم خارج خواهد شد." msgstr[0] "%s به طور خودکار در مدت %Id ثانیه از سیستم خارج خواهد شد."
msgstr[1] "%s به طور خودکار در مدت %Id ثانیه از سیستم خارج خواهد شد." msgstr[1] "%s به طور خودکار در مدت %Id ثانیه از سیستم خارج خواهد شد."
#: ../js/ui/endSessionDialog.js:74 #: ../js/ui/endSessionDialog.js:72
#, javascript-format #, javascript-format
msgid "You will be logged out automatically in %d second." msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds." msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "شما پس از %Id ثانیه به طور خودکار از سیستم خارج می‌شوید." msgstr[0] "شما پس از %Id ثانیه به طور خودکار از سیستم خارج می‌شوید."
msgstr[1] "شما پس از %Id ثانیه به طور خودکار از سیستم خارج می‌شوید." msgstr[1] "شما پس از %Id ثانیه به طور خودکار از سیستم خارج می‌شوید."
#: ../js/ui/endSessionDialog.js:80 #: ../js/ui/endSessionDialog.js:78
msgctxt "button" msgctxt "button"
msgid "Log Out" msgid "Log Out"
msgstr "خروج از سیستم" msgstr "خروج از سیستم"
#: ../js/ui/endSessionDialog.js:86 #: ../js/ui/endSessionDialog.js:84
msgctxt "title" msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "خاموش کردن" msgstr "خاموش کردن"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:85
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "نصب بروزرسانی‌ها و خاموش کردن" msgstr "نصب بروزرسانی‌ها و خاموش کردن"
#: ../js/ui/endSessionDialog.js:89 #: ../js/ui/endSessionDialog.js:87
#, javascript-format #, javascript-format
msgid "The system will power off automatically in %d second." msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds." msgid_plural "The system will power off automatically in %d seconds."
msgstr[0] "سیستم پس از %Id ثانیه به طور خودکار خاموش می‌شود." msgstr[0] "سیستم پس از %Id ثانیه به طور خودکار خاموش می‌شود."
msgstr[1] "سیستم پس از %Id ثانیه به طور خودکار خاموش می‌شود." msgstr[1] "سیستم پس از %Id ثانیه به طور خودکار خاموش می‌شود."
#: ../js/ui/endSessionDialog.js:93 #: ../js/ui/endSessionDialog.js:91
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "نصب بروزرسانی‌هایِ در انتظار" msgstr "نصب بروزرسانی‌هایِ در انتظار"
#: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113 #: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
msgctxt "button" msgctxt "button"
msgid "Restart" msgid "Restart"
msgstr "راه‌اندازی مجدد" msgstr "راه‌اندازی مجدد"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:96
msgctxt "button" msgctxt "button"
msgid "Power Off" msgid "Power Off"
msgstr "خاموش کردن" msgstr "خاموش کردن"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:103
msgctxt "title" msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "راه‌اندازی مجدد" msgstr "راه‌اندازی مجدد"
#: ../js/ui/endSessionDialog.js:107 #: ../js/ui/endSessionDialog.js:105
#, javascript-format #, javascript-format
msgid "The system will restart automatically in %d second." msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds." msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "سیستم پس از %Id ثانیه به طور خودکار مجددا راه‌اندازی می‌شود." msgstr[0] "سیستم پس از %Id ثانیه به طور خودکار مجددا راه‌اندازی می‌شود."
msgstr[1] "سیستم پس از %Id ثانیه به طور خودکار مجددا راه‌اندازی می‌شود." msgstr[1] "سیستم پس از %Id ثانیه به طور خودکار مجددا راه‌اندازی می‌شود."
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:119
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "راه‌اندازی مجدد و نصب بروزرسانی‌ها" msgstr "راه‌اندازی مجدد و نصب بروزرسانی‌ها"
#: ../js/ui/endSessionDialog.js:123 #: ../js/ui/endSessionDialog.js:121
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
@ -1126,44 +1096,42 @@ msgstr[1] ""
"سیستم پس از %Id ثانیه به طور خودکار مجددا راه‌اندازی می‌شود و بروزرسانی‌های را " "سیستم پس از %Id ثانیه به طور خودکار مجددا راه‌اندازی می‌شود و بروزرسانی‌های را "
"نصب می‌کند." "نصب می‌کند."
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:127
#| msgctxt "button"
#| msgid "Restart & Install"
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "راه‌اندازی مجدد و نصب" msgstr "راه‌اندازی مجدد و نصب"
#: ../js/ui/endSessionDialog.js:130 #: ../js/ui/endSessionDialog.js:128
msgctxt "button" msgctxt "button"
msgid "Install &amp; Power Off" msgid "Install &amp; Power Off"
msgstr "نصب و خاموش کردن" msgstr "نصب و خاموش کردن"
#: ../js/ui/endSessionDialog.js:131 #: ../js/ui/endSessionDialog.js:129
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "خاموش کردن بعد از نصب بروزرسانی‌ها" msgstr "خاموش کردن بعد از نصب بروزرسانی‌ها"
#: ../js/ui/endSessionDialog.js:315 #: ../js/ui/endSessionDialog.js:338
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "" msgstr ""
"درحال اجرا بر روی انرژی باتری: لطفا قبل از نصب بروزرسانی‌ها، به برق وصل کنید." "درحال اجرا بر روی انرژی باتری: لطفا قبل از نصب بروزرسانی‌ها، به برق وصل کنید."
#: ../js/ui/endSessionDialog.js:332 #: ../js/ui/endSessionDialog.js:355
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "تعدادی از برنامه‌ها مشغول هستند یا کارهای ذخیره نشده دارند." msgstr "تعدادی از برنامه‌ها مشغول هستند یا کارهای ذخیره نشده دارند."
#: ../js/ui/endSessionDialog.js:339 #: ../js/ui/endSessionDialog.js:362
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "کاربران دیگر وارد سیستم هستند." msgstr "کاربران دیگر وارد سیستم هستند."
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:619 #: ../js/ui/endSessionDialog.js:640
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (دوردست)" msgstr "%s (دوردست)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:622 #: ../js/ui/endSessionDialog.js:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (پایانه)" msgstr "%s (پایانه)"
@ -1174,11 +1142,10 @@ msgstr "نصب"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, javascript-format #, javascript-format
#| msgid "Download and install '%s' from extensions.gnome.org?"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "بارگیری و نصب «%s» از extensions.gnome.org؟" msgstr "بارگیری و نصب «%s» از extensions.gnome.org؟"
#: ../js/ui/keyboard.js:653 ../js/ui/status/keyboard.js:339 #: ../js/ui/keyboard.js:700 ../js/ui/status/keyboard.js:523
msgid "Keyboard" msgid "Keyboard"
msgstr "صفحه‌کلید" msgstr "صفحه‌کلید"
@ -1200,8 +1167,8 @@ msgstr "مخفی کردن خطاها"
msgid "Show Errors" msgid "Show Errors"
msgstr "نمایش خطاها" msgstr "نمایش خطاها"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:62 #: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71
#: ../js/ui/status/location.js:166 #: ../js/ui/status/location.js:176
msgid "Enabled" msgid "Enabled"
msgstr "به کار انداختن" msgstr "به کار انداختن"
@ -1209,7 +1176,7 @@ msgstr "به کار انداختن"
#. because it's disabled by rfkill (airplane mode) */ #. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:169 #: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "از کار انداختن" msgstr "از کار انداختن"
@ -1234,39 +1201,39 @@ msgstr "نمایش منبع"
msgid "Web Page" msgid "Web Page"
msgstr "صفحه‌ی وب" msgstr "صفحه‌ی وب"
#: ../js/ui/messageTray.js:1325 #: ../js/ui/messageTray.js:1327
msgid "Open" msgid "Open"
msgstr "بازکردن" msgstr "بازکردن"
#: ../js/ui/messageTray.js:1332 #: ../js/ui/messageTray.js:1334
msgid "Remove" msgid "Remove"
msgstr "حذف" msgstr "حذف"
#: ../js/ui/messageTray.js:1629 #: ../js/ui/messageTray.js:1631
msgid "Notifications" msgid "Notifications"
msgstr "اعلان‌ها" msgstr "اعلان‌ها"
#: ../js/ui/messageTray.js:1636 #: ../js/ui/messageTray.js:1638
msgid "Clear Messages" msgid "Clear Messages"
msgstr "پاک کردن پیام‌ها" msgstr "پاک کردن پیام‌ها"
#: ../js/ui/messageTray.js:1655 #: ../js/ui/messageTray.js:1657
msgid "Notification Settings" msgid "Notification Settings"
msgstr "تنظیمات اعلان‌ها" msgstr "تنظیمات اعلان‌ها"
#: ../js/ui/messageTray.js:1708 #: ../js/ui/messageTray.js:1710
msgid "Tray Menu" msgid "Tray Menu"
msgstr "منو سینی" msgstr "منو سینی"
#: ../js/ui/messageTray.js:1925 #: ../js/ui/messageTray.js:1934
msgid "No Messages" msgid "No Messages"
msgstr "پیامی وجود ندارد" msgstr "پیامی وجود ندارد"
#: ../js/ui/messageTray.js:1963 #: ../js/ui/messageTray.js:1979
msgid "Message Tray" msgid "Message Tray"
msgstr "سینی پیام" msgstr "سینی پیام"
#: ../js/ui/messageTray.js:2966 #: ../js/ui/messageTray.js:2992
msgid "System Information" msgid "System Information"
msgstr "اطلاعات سیستم" msgstr "اطلاعات سیستم"
@ -1294,7 +1261,7 @@ msgstr "نمای‌کلی"
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters. */
#: ../js/ui/overview.js:250 #: ../js/ui/overview.js:246
msgid "Type to search…" msgid "Type to search…"
msgstr "برای جستجو تایپ کنید..." msgstr "برای جستجو تایپ کنید..."
@ -1325,7 +1292,6 @@ msgid "Close"
msgstr "بستن" msgstr "بستن"
#: ../js/ui/runDialog.js:277 #: ../js/ui/runDialog.js:277
#| msgid "Estimating…"
msgid "Restarting…" msgid "Restarting…"
msgstr "درحال راه‌اندازی مجدد..." msgstr "درحال راه‌اندازی مجدد..."
@ -1358,27 +1324,27 @@ msgstr "نمی‌توان قفل کرد"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "قفل توسط یک برنامه مسدود شده بود" msgstr "قفل توسط یک برنامه مسدود شده بود"
#: ../js/ui/search.js:606 #: ../js/ui/search.js:611
msgid "Searching…" msgid "Searching…"
msgstr "درحال حستجو..." msgstr "درحال حستجو..."
#: ../js/ui/search.js:652 #: ../js/ui/search.js:613
msgid "No results." msgid "No results."
msgstr "بدون نتیجه." msgstr "بدون نتیجه."
#: ../js/ui/shellEntry.js:27 #: ../js/ui/shellEntry.js:25
msgid "Copy" msgid "Copy"
msgstr "رونوشت" msgstr "رونوشت"
#: ../js/ui/shellEntry.js:32 #: ../js/ui/shellEntry.js:30
msgid "Paste" msgid "Paste"
msgstr "چسباندن" msgstr "چسباندن"
#: ../js/ui/shellEntry.js:99 #: ../js/ui/shellEntry.js:97
msgid "Show Text" msgid "Show Text"
msgstr "نمایش متن" msgstr "نمایش متن"
#: ../js/ui/shellEntry.js:101 #: ../js/ui/shellEntry.js:99
msgid "Hide Text" msgid "Hide Text"
msgstr "مخفی‌کردن متن" msgstr "مخفی‌کردن متن"
@ -1464,26 +1430,27 @@ msgstr "متصل نیست"
msgid "Brightness" msgid "Brightness"
msgstr "روشنایی" msgstr "روشنایی"
#: ../js/ui/status/keyboard.js:406 #: ../js/ui/status/keyboard.js:547
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "نمایش چیدمان صفحه‌کلید" msgstr "نمایش چیدمان صفحه‌کلید"
#: ../js/ui/status/location.js:56 #: ../js/ui/status/location.js:65
#| msgid "Notifications"
msgid "Location" msgid "Location"
msgstr "مکان" msgstr "مکان"
#: ../js/ui/status/location.js:63 ../js/ui/status/location.js:167 #: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177
#| msgid "Disabled"
msgid "Disable" msgid "Disable"
msgstr "از کار انداختن" msgstr "از کار انداختن"
#: ../js/ui/status/location.js:166 #: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "تنظیمات حریم‌خصوصی"
#: ../js/ui/status/location.js:176
msgid "In Use" msgid "In Use"
msgstr "درحال استفاده" msgstr "درحال استفاده"
#: ../js/ui/status/location.js:170 #: ../js/ui/status/location.js:180
#| msgid "Enabled"
msgid "Enable" msgid "Enable"
msgstr "به کار انداختن" msgstr "به کار انداختن"
@ -1497,37 +1464,31 @@ msgid "Off"
msgstr "خاموش" msgstr "خاموش"
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#| msgid "Connect"
msgid "Connected" msgid "Connected"
msgstr "متصل شده" msgstr "متصل شده"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu) */ #. under NetworkManager's control (and thus cannot be used in the menu) */
#: ../js/ui/status/network.js:463 #: ../js/ui/status/network.js:463
#| msgid "unmanaged"
msgid "Unmanaged" msgid "Unmanaged"
msgstr "مدیریت نشده" msgstr "مدیریت نشده"
#: ../js/ui/status/network.js:465 #: ../js/ui/status/network.js:465
#| msgid "disconnecting..."
msgid "Disconnecting" msgid "Disconnecting"
msgstr "درحال قطع ارتباط" msgstr "درحال قطع ارتباط"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301 #: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301
#| msgid "Connection"
msgid "Connecting" msgid "Connecting"
msgstr "درحال اتصال" msgstr "درحال اتصال"
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:474 #: ../js/ui/status/network.js:474
#| msgid "authentication required"
msgid "Authentication required" msgid "Authentication required"
msgstr "تایید هویت لازم است" msgstr "تایید هویت لازم است"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */ #. module, which is missing */
#: ../js/ui/status/network.js:482 #: ../js/ui/status/network.js:482
#| msgid "firmware missing"
msgid "Firmware missing" msgid "Firmware missing"
msgstr "میان‌افزار موجود نیست" msgstr "میان‌افزار موجود نیست"
@ -1542,7 +1503,6 @@ msgid "Connection failed"
msgstr "اتصال شکست خورد" msgstr "اتصال شکست خورد"
#: ../js/ui/status/network.js:504 #: ../js/ui/status/network.js:504
#| msgid "Wi-Fi Settings"
msgid "Wired Settings" msgid "Wired Settings"
msgstr "تنظیمات اتصال سیمی" msgstr "تنظیمات اتصال سیمی"
@ -1559,7 +1519,6 @@ msgid "Use as Internet connection"
msgstr "استفاده به عنوان اتصال اینترنت" msgstr "استفاده به عنوان اتصال اینترنت"
#: ../js/ui/status/network.js:813 #: ../js/ui/status/network.js:813
#| msgid "Airplane Mode"
msgid "Airplane Mode is On" msgid "Airplane Mode is On"
msgstr "حالت هواپیمایی روشن است" msgstr "حالت هواپیمایی روشن است"
@ -1568,12 +1527,10 @@ msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "در زمان روشن بودن حالت هواپیمایی وای-فای غیرفعال می‌شود." msgstr "در زمان روشن بودن حالت هواپیمایی وای-فای غیرفعال می‌شود."
#: ../js/ui/status/network.js:815 #: ../js/ui/status/network.js:815
#| msgid "Airplane Mode"
msgid "Turn Off Airplane Mode" msgid "Turn Off Airplane Mode"
msgstr "خاموش کردن حالت هواپیمایی" msgstr "خاموش کردن حالت هواپیمایی"
#: ../js/ui/status/network.js:824 #: ../js/ui/status/network.js:824
#| msgid "Wi-Fi Settings"
msgid "Wi-Fi is Off" msgid "Wi-Fi is Off"
msgstr "بی‌سیم خاموش است" msgstr "بی‌سیم خاموش است"
@ -1582,7 +1539,6 @@ msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "برای اتصال به شبکه باید وای-فای روشن شود." msgstr "برای اتصال به شبکه باید وای-فای روشن شود."
#: ../js/ui/status/network.js:826 #: ../js/ui/status/network.js:826
#| msgid "Turn On"
msgid "Turn On Wi-Fi" msgid "Turn On Wi-Fi"
msgstr "روشن کردن بی‌سیم" msgstr "روشن کردن بی‌سیم"
@ -1636,7 +1592,6 @@ msgid "Network Settings"
msgstr "تنظیمات شبکه" msgstr "تنظیمات شبکه"
#: ../js/ui/status/network.js:1482 #: ../js/ui/status/network.js:1482
#| msgid "Settings"
msgid "VPN Settings" msgid "VPN Settings"
msgstr "تنظیمات VPN" msgstr "تنظیمات VPN"
@ -1730,17 +1685,16 @@ msgstr "ورود به سیستم بعنوان کاربری دیگر"
msgid "Unlock Window" msgid "Unlock Window"
msgstr "بازکردن قفل پنجره" msgstr "بازکردن قفل پنجره"
#: ../js/ui/viewSelector.js:232 #: ../js/ui/viewSelector.js:158
msgid "Applications" msgid "Applications"
msgstr "برنامه‌ها" msgstr "برنامه‌ها"
#: ../js/ui/viewSelector.js:236 #: ../js/ui/viewSelector.js:162
msgid "Search" msgid "Search"
msgstr "جستجو" msgstr "جستجو"
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, javascript-format #, javascript-format
#| msgid "'%s' is ready"
msgid "“%s” is ready" msgid "“%s” is ready"
msgstr "«%s» آماده است" msgstr "«%s» آماده است"
@ -1832,25 +1786,24 @@ msgstr[1] "%Iu ورودی"
msgid "System Sounds" msgid "System Sounds"
msgstr "صداهای سیستم" msgstr "صداهای سیستم"
#: ../src/main.c:371 #: ../src/main.c:373
msgid "Print version" msgid "Print version"
msgstr "چاپ نسخه" msgstr "چاپ نسخه"
#: ../src/main.c:377 #: ../src/main.c:379
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "حالت استفاده شده توسط GDM برای صفحه ورود به سیستم" msgstr "حالت استفاده شده توسط GDM برای صفحه ورود به سیستم"
#: ../src/main.c:383 #: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "استفاده از حالت مشخص، مثال «gdm» برای صفحه ورود به سیستم" msgstr "استفاده از حالت مشخص، مثال «gdm» برای صفحه ورود به سیستم"
#: ../src/main.c:389 #: ../src/main.c:391
msgid "List possible modes" msgid "List possible modes"
msgstr "فهرست کردن حالت‌های ممکن" msgstr "فهرست کردن حالت‌های ممکن"
#: ../src/shell-app.c:666 #: ../src/shell-app.c:666
#, c-format #, c-format
#| msgid "Failed to launch '%s'"
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "راه‌اندازی «%s» شکست خورد" msgstr "راه‌اندازی «%s» شکست خورد"

308
po/gl.po
View File

@ -11,8 +11,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-08-25 23:06+0200\n" "POT-Creation-Date: 2014-09-23 01:50+0200\n"
"PO-Revision-Date: 2014-08-25 23:08+0200\n" "PO-Revision-Date: 2014-09-23 01:51+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n" "Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: gnome-l10n-gl@gnome.org\n" "Language-Team: gnome-l10n-gl@gnome.org\n"
"Language: gl\n" "Language: gl\n"
@ -300,17 +300,17 @@ msgstr "Atrasar os cambios de foco no modo rato até que o punteiro se pare"
msgid "Captive Portal" msgid "Captive Portal"
msgstr "Portal cautivo" msgstr "Portal cautivo"
#: ../js/extensionPrefs/main.js:127 #: ../js/extensionPrefs/main.js:123
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Produciuse un erro ao cargar o diálogo de preferenzas para %s:" msgstr "Produciuse un erro ao cargar o diálogo de preferenzas para %s:"
#: ../js/extensionPrefs/main.js:159 #: ../js/extensionPrefs/main.js:155
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "Extensións de GNOME Shell" msgstr "Extensións de GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915 #: ../js/ui/status/network.js:915
msgid "Cancel" msgid "Cancel"
@ -334,15 +334,23 @@ msgstr "Iniciar sesión"
msgid "Choose Session" msgid "Choose Session"
msgstr "Escolla unha sesión" msgstr "Escolla unha sesión"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:429 #: ../js/gdm/loginDialog.js:429
msgid "Not listed?" msgid "Not listed?"
msgstr "Non está na lista?" msgstr "Non está na lista?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:614 #: ../js/gdm/loginDialog.js:614
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(p.ex., usuario ou %s)" msgstr "(p.ex., usuario ou %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:269 #: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:269
#: ../js/ui/components/networkAgent.js:287 #: ../js/ui/components/networkAgent.js:287
msgid "Username: " msgid "Username: "
@ -356,6 +364,11 @@ msgstr "Xanela de inicio de sesión"
msgid "Authentication error" msgid "Authentication error"
msgstr "Erro de autenticación" msgstr "Erro de autenticación"
#. We don't show fingerprint messages directly since it's
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:453 #: ../js/gdm/util.js:453
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(ou pase o dedo)" msgstr "(ou pase o dedo)"
@ -364,6 +377,8 @@ msgstr "(ou pase o dedo)"
msgid "Command not found" msgid "Command not found"
msgstr "Orde non atopada" msgstr "Orde non atopada"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: ../js/misc/util.js:148 #: ../js/misc/util.js:148
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Non foi posíbel analizar a orde:" msgstr "Non foi posíbel analizar a orde:"
@ -373,44 +388,46 @@ msgstr "Non foi posíbel analizar a orde:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Produciuse un fallo na execución de «%s»:" msgstr "Produciuse un fallo na execución de «%s»:"
#. TRANSLATORS: this is the title of the wifi captive portal login
#. window, until we know the title of the actual login page
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "Redirección web de autenticación" msgstr "Redirección web de autenticación"
#: ../js/ui/appDisplay.js:660 #: ../js/ui/appDisplay.js:772
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "Os aplicativos usados recentemente aparecerán aquí" msgstr "Os aplicativos usados recentemente aparecerán aquí"
#: ../js/ui/appDisplay.js:771 #: ../js/ui/appDisplay.js:883
msgid "Frequent" msgid "Frequent"
msgstr "Frecuentes" msgstr "Frecuentes"
#: ../js/ui/appDisplay.js:778 #: ../js/ui/appDisplay.js:890
msgid "All" msgid "All"
msgstr "Todos" msgstr "Todos"
#: ../js/ui/appDisplay.js:1650 #: ../js/ui/appDisplay.js:1790
msgid "New Window" msgid "New Window"
msgstr "Xanela nova" msgstr "Xanela nova"
#: ../js/ui/appDisplay.js:1673 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1816 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "Retirar dos marcadores" msgstr "Retirar dos marcadores"
#: ../js/ui/appDisplay.js:1679 #: ../js/ui/appDisplay.js:1822
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "Engadir aos favoritos" msgstr "Engadir aos favoritos"
#: ../js/ui/appDisplay.js:1688 #: ../js/ui/appDisplay.js:1831
msgid "Show Details" msgid "Show Details"
msgstr "Mostrar detalles" msgstr "Mostrar detalles"
#: ../js/ui/appFavorites.js:122 #: ../js/ui/appFavorites.js:132
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s foi engadido aos seus favoritos." msgstr "%s foi engadido aos seus favoritos."
#: ../js/ui/appFavorites.js:156 #: ../js/ui/appFavorites.js:166
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s retirouse dos seus marcadores." msgstr "%s retirouse dos seus marcadores."
@ -426,14 +443,14 @@ msgstr "Cambiar fondo de escritorio…"
#. Translators: Shown in calendar event list for all day events #. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters #. * Keep it short, best if you can use less then 10 characters
#. */ #.
#: ../js/ui/calendar.js:67 #: ../js/ui/calendar.js:67
msgctxt "event list time" msgctxt "event list time"
msgid "All Day" msgid "All Day"
msgstr "Todo o día" msgstr "Todo o día"
#. Translators: Shown in calendar event list, if 24h format, #. Translators: Shown in calendar event list, if 24h format,
#. \u2236 is a ratio character, similar to : */ #. \u2236 is a ratio character, similar to :
#: ../js/ui/calendar.js:73 #: ../js/ui/calendar.js:73
msgctxt "event list time" msgctxt "event list time"
msgid "%H%M" msgid "%H%M"
@ -441,7 +458,7 @@ msgstr "%H%M"
#. Translators: Shown in calendar event list, if 12h format, #. Translators: Shown in calendar event list, if 12h format,
#. \u2236 is a ratio character, similar to : and \u2009 is #. \u2236 is a ratio character, similar to : and \u2009 is
#. a thin space */ #. a thin space
#: ../js/ui/calendar.js:82 #: ../js/ui/calendar.js:82
msgctxt "event list time" msgctxt "event list time"
msgid "%l%M%p" msgid "%l%M%p"
@ -451,43 +468,43 @@ msgstr "%l%M%p"
#. * #. *
#. * NOTE: These grid abbreviations are always shown together #. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S". #. * and in order, e.g. "S M T W T F S".
#. */ #.
#: ../js/ui/calendar.js:113 #: ../js/ui/calendar.js:113
msgctxt "grid sunday" msgctxt "grid sunday"
msgid "S" msgid "S"
msgstr "D" msgstr "D"
#. Translators: Calendar grid abbreviation for Monday */ #. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:115 #: ../js/ui/calendar.js:115
msgctxt "grid monday" msgctxt "grid monday"
msgid "M" msgid "M"
msgstr "L" msgstr "L"
#. Translators: Calendar grid abbreviation for Tuesday */ #. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:117 #: ../js/ui/calendar.js:117
msgctxt "grid tuesday" msgctxt "grid tuesday"
msgid "T" msgid "T"
msgstr "M" msgstr "M"
#. Translators: Calendar grid abbreviation for Wednesday */ #. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:119 #: ../js/ui/calendar.js:119
msgctxt "grid wednesday" msgctxt "grid wednesday"
msgid "W" msgid "W"
msgstr "W" msgstr "W"
#. Translators: Calendar grid abbreviation for Thursday */ #. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:121 #: ../js/ui/calendar.js:121
msgctxt "grid thursday" msgctxt "grid thursday"
msgid "T" msgid "T"
msgstr "X" msgstr "X"
#. Translators: Calendar grid abbreviation for Friday */ #. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:123 #: ../js/ui/calendar.js:123
msgctxt "grid friday" msgctxt "grid friday"
msgid "F" msgid "F"
msgstr "V" msgstr "V"
#. Translators: Calendar grid abbreviation for Saturday */ #. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:125 #: ../js/ui/calendar.js:125
msgctxt "grid saturday" msgctxt "grid saturday"
msgid "S" msgid "S"
@ -498,43 +515,43 @@ msgstr "S"
#. * NOTE: These list abbreviations are normally not shown together #. * NOTE: These list abbreviations are normally not shown together
#. * so they need to be unique (e.g. Tuesday and Thursday cannot #. * so they need to be unique (e.g. Tuesday and Thursday cannot
#. * both be 'T'). #. * both be 'T').
#. */ #.
#: ../js/ui/calendar.js:138 #: ../js/ui/calendar.js:138
msgctxt "list sunday" msgctxt "list sunday"
msgid "Su" msgid "Su"
msgstr "Do" msgstr "Do"
#. Translators: Event list abbreviation for Monday */ #. Translators: Event list abbreviation for Monday
#: ../js/ui/calendar.js:140 #: ../js/ui/calendar.js:140
msgctxt "list monday" msgctxt "list monday"
msgid "M" msgid "M"
msgstr "L" msgstr "L"
#. Translators: Event list abbreviation for Tuesday */ #. Translators: Event list abbreviation for Tuesday
#: ../js/ui/calendar.js:142 #: ../js/ui/calendar.js:142
msgctxt "list tuesday" msgctxt "list tuesday"
msgid "T" msgid "T"
msgstr "M" msgstr "M"
#. Translators: Event list abbreviation for Wednesday */ #. Translators: Event list abbreviation for Wednesday
#: ../js/ui/calendar.js:144 #: ../js/ui/calendar.js:144
msgctxt "list wednesday" msgctxt "list wednesday"
msgid "W" msgid "W"
msgstr "W" msgstr "W"
#. Translators: Event list abbreviation for Thursday */ #. Translators: Event list abbreviation for Thursday
#: ../js/ui/calendar.js:146 #: ../js/ui/calendar.js:146
msgctxt "list thursday" msgctxt "list thursday"
msgid "Th" msgid "Th"
msgstr "X" msgstr "X"
#. Translators: Event list abbreviation for Friday */ #. Translators: Event list abbreviation for Friday
#: ../js/ui/calendar.js:148 #: ../js/ui/calendar.js:148
msgctxt "list friday" msgctxt "list friday"
msgid "F" msgid "F"
msgstr "V" msgstr "V"
#. Translators: Event list abbreviation for Saturday */ #. Translators: Event list abbreviation for Saturday
#: ../js/ui/calendar.js:150 #: ../js/ui/calendar.js:150
msgctxt "list saturday" msgctxt "list saturday"
msgid "S" msgid "S"
@ -548,18 +565,18 @@ msgstr "Anterior mes"
msgid "Next month" msgid "Next month"
msgstr "Seguinte mes" msgstr "Seguinte mes"
#. Translators: Text to show if there are no events */ #. Translators: Text to show if there are no events
#: ../js/ui/calendar.js:781 #: ../js/ui/calendar.js:781
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "Nada programado" msgstr "Nada programado"
#. Translators: Shown on calendar heading when selected day occurs on current year */ #. Translators: Shown on calendar heading when selected day occurs on current year
#: ../js/ui/calendar.js:799 #: ../js/ui/calendar.js:799
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d de %B" msgstr "%A, %d de %B"
#. Translators: Shown on calendar heading when selected day occurs on different year */ #. Translators: Shown on calendar heading when selected day occurs on different year
#: ../js/ui/calendar.js:802 #: ../js/ui/calendar.js:802
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
@ -602,11 +619,11 @@ msgstr "Abrir con %s"
msgid "Eject" msgid "Eject"
msgstr "Expulsar" msgstr "Expulsar"
#: ../js/ui/components/keyring.js:93 ../js/ui/components/polkitAgent.js:285 #: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285
msgid "Password:" msgid "Password:"
msgstr "Contrasinal:" msgstr "Contrasinal:"
#: ../js/ui/components/keyring.js:113 #: ../js/ui/components/keyring.js:120
msgid "Type again:" msgid "Type again:"
msgstr "Escriba de novo:" msgstr "Escriba de novo:"
@ -615,6 +632,7 @@ msgstr "Escriba de novo:"
msgid "Connect" msgid "Connect"
msgstr "Conectar" msgstr "Conectar"
#. Cisco LEAP
#: ../js/ui/components/networkAgent.js:231 #: ../js/ui/components/networkAgent.js:231
#: ../js/ui/components/networkAgent.js:243 #: ../js/ui/components/networkAgent.js:243
#: ../js/ui/components/networkAgent.js:271 #: ../js/ui/components/networkAgent.js:271
@ -623,6 +641,7 @@ msgstr "Conectar"
msgid "Password: " msgid "Password: "
msgstr "Contrasinal: " msgstr "Contrasinal: "
#. static WEP
#: ../js/ui/components/networkAgent.js:236 #: ../js/ui/components/networkAgent.js:236
msgid "Key: " msgid "Key: "
msgstr "Chave: " msgstr "Chave: "
@ -700,19 +719,23 @@ msgstr "Autenticar"
#. Translators: "that didn't work" refers to the fact that the #. Translators: "that didn't work" refers to the fact that the
#. * requested authentication was not gained; this can happen #. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password), #. * because of an authentication error (like invalid password),
#. * for instance. */ #. * for instance.
#: ../js/ui/components/polkitAgent.js:271 ../js/ui/shellMountOperation.js:383 #: ../js/ui/components/polkitAgent.js:271 ../js/ui/shellMountOperation.js:383
msgid "Sorry, that didn't work. Please try again." msgid "Sorry, that didn't work. Please try again."
msgstr "Desculpe, iso non funcionou. Ténteo de novo." msgstr "Desculpe, iso non funcionou. Ténteo de novo."
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
#. system-users for now as Empathy does.
#: ../js/ui/components/telepathyClient.js:240 #: ../js/ui/components/telepathyClient.js:240
msgid "Invitation" msgid "Invitation"
msgstr "Convite" msgstr "Convite"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:300 #: ../js/ui/components/telepathyClient.js:300
msgid "Call" msgid "Call"
msgstr "Chamar" msgstr "Chamar"
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:316 #: ../js/ui/components/telepathyClient.js:316
msgid "File Transfer" msgid "File Transfer"
msgstr "Transferencia de ficheiro" msgstr "Transferencia de ficheiro"
@ -729,77 +752,85 @@ msgstr "Desactivar silencio"
msgid "Mute" msgid "Mute"
msgstr "Silenciar" msgstr "Silenciar"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format
#: ../js/ui/components/telepathyClient.js:953 #: ../js/ui/components/telepathyClient.js:953
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30"
#: ../js/ui/components/telepathyClient.js:960 #: ../js/ui/components/telepathyClient.js:960
#, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Onte, %H:%M" msgstr "Onte, %H:%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30"
#: ../js/ui/components/telepathyClient.js:967 #: ../js/ui/components/telepathyClient.js:967
#, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A ás %H:%M" msgstr "%A ás %H:%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30"
#: ../js/ui/components/telepathyClient.js:974 #: ../js/ui/components/telepathyClient.js:974
#, no-c-format
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%d de %B ás %H:%M" msgstr "%d de %B ás %H:%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30"
#: ../js/ui/components/telepathyClient.js:980 #: ../js/ui/components/telepathyClient.js:980
#, no-c-format
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%d de %B de %Y ás %H:%M" msgstr "%d de %B de %Y ás %H:%M"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format
#: ../js/ui/components/telepathyClient.js:986 #: ../js/ui/components/telepathyClient.js:986
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l:%M %p" msgstr "%l:%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: ../js/ui/components/telepathyClient.js:993 #: ../js/ui/components/telepathyClient.js:993
#, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Onte, %H:%M" msgstr "Onte, %H:%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm"
#: ../js/ui/components/telepathyClient.js:1000 #: ../js/ui/components/telepathyClient.js:1000
#, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm"
#: ../js/ui/components/telepathyClient.js:1007 #: ../js/ui/components/telepathyClient.js:1007
#, no-c-format
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%d de %B, %l%M %p" msgstr "%d de %B, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"
#: ../js/ui/components/telepathyClient.js:1013 #: ../js/ui/components/telepathyClient.js:1013
#, no-c-format
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%d de %B de %Y, %l%M %p" msgstr "%d de %B de %Y, %l%M %p"
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. */ #. IM name.
#: ../js/ui/components/telepathyClient.js:1045 #: ../js/ui/components/telepathyClient.js:1045
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "Agora %s chámase %s" msgstr "Agora %s chámase %s"
#. translators: argument is a room name like #. translators: argument is a room name like
#. * room@jabber.org for example. */ #. * room@jabber.org for example.
#: ../js/ui/components/telepathyClient.js:1149 #: ../js/ui/components/telepathyClient.js:1149
#, javascript-format #, javascript-format
msgid "Invitation to %s" msgid "Invitation to %s"
@ -807,7 +838,7 @@ msgstr "Convite a %s"
#. translators: first argument is the name of a contact and the second #. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org #. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */ #. * for example.
#: ../js/ui/components/telepathyClient.js:1157 #: ../js/ui/components/telepathyClient.js:1157
#, javascript-format #, javascript-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
@ -826,19 +857,19 @@ msgstr "Rexeitar"
msgid "Accept" msgid "Accept"
msgstr "Aceptar" msgstr "Aceptar"
#. translators: argument is a contact name like Alice for example. */ #. translators: argument is a contact name like Alice for example.
#: ../js/ui/components/telepathyClient.js:1184 #: ../js/ui/components/telepathyClient.js:1184
#, javascript-format #, javascript-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "Videochamada de %s" msgstr "Videochamada de %s"
#. translators: argument is a contact name like Alice for example. */ #. translators: argument is a contact name like Alice for example.
#: ../js/ui/components/telepathyClient.js:1187 #: ../js/ui/components/telepathyClient.js:1187
#, javascript-format #, javascript-format
msgid "Call from %s" msgid "Call from %s"
msgstr "Chamada de %s" msgstr "Chamada de %s"
#. translators: this is a button label (verb), not a noun */ #. translators: this is a button label (verb), not a noun
#: ../js/ui/components/telepathyClient.js:1201 #: ../js/ui/components/telepathyClient.js:1201
msgid "Answer" msgid "Answer"
msgstr "Responder" msgstr "Responder"
@ -847,13 +878,13 @@ msgstr "Responder"
#. * the contact's alias and the second one is the #. * the contact's alias and the second one is the
#. * file name. The string will be something #. * file name. The string will be something
#. * like: "Alice is sending you test.ogg" #. * like: "Alice is sending you test.ogg"
#. */ #.
#: ../js/ui/components/telepathyClient.js:1222 #: ../js/ui/components/telepathyClient.js:1222
#, javascript-format #, javascript-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s esta enviándolle %s" msgstr "%s esta enviándolle %s"
#. To translators: The parameter is the contact's alias */ #. To translators: The parameter is the contact's alias
#: ../js/ui/components/telepathyClient.js:1251 #: ../js/ui/components/telepathyClient.js:1251
#, javascript-format #, javascript-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
@ -967,7 +998,7 @@ msgid "Internal error"
msgstr "Erro interno" msgstr "Erro interno"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. */ #. * name@jabber.org for example.
#: ../js/ui/components/telepathyClient.js:1393 #: ../js/ui/components/telepathyClient.js:1393
#, javascript-format #, javascript-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
@ -981,7 +1012,7 @@ msgstr "Ver conta"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Razón descoñecida" msgstr "Razón descoñecida"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:228 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154
msgid "Windows" msgid "Windows"
msgstr "Xanelas" msgstr "Xanelas"
@ -989,6 +1020,8 @@ msgstr "Xanelas"
msgid "Show Applications" msgid "Show Applications"
msgstr "Mostrar aplicativos" msgstr "Mostrar aplicativos"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:445 #: ../js/ui/dash.js:445
msgid "Dash" msgid "Dash"
msgstr "Taboleiro" msgstr "Taboleiro"
@ -1007,91 +1040,91 @@ msgstr "Preferencias de data e hora"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #.
#: ../js/ui/dateMenu.js:204 #: ../js/ui/dateMenu.js:204
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%a, %e de %B, %Y" msgstr "%a, %e de %B, %Y"
#: ../js/ui/endSessionDialog.js:66 #: ../js/ui/endSessionDialog.js:64
#, javascript-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "Saír da sesión %s" msgstr "Saír da sesión %s"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:65
msgctxt "title" msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "Saír da sesión" msgstr "Saír da sesión"
#: ../js/ui/endSessionDialog.js:69 #: ../js/ui/endSessionDialog.js:67
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "Vaise pechar a sesión de %s en %d segundo." msgstr[0] "Vaise pechar a sesión de %s en %d segundo."
msgstr[1] "Vaise pechar a sesión de %s en %d segundos." msgstr[1] "Vaise pechar a sesión de %s en %d segundos."
#: ../js/ui/endSessionDialog.js:74 #: ../js/ui/endSessionDialog.js:72
#, javascript-format #, javascript-format
msgid "You will be logged out automatically in %d second." msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds." msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "A súa sesión pecharase automaticamente en %d segundo." msgstr[0] "A súa sesión pecharase automaticamente en %d segundo."
msgstr[1] "A súa sesión pecharase automaticamente en %d segundos." msgstr[1] "A súa sesión pecharase automaticamente en %d segundos."
#: ../js/ui/endSessionDialog.js:80 #: ../js/ui/endSessionDialog.js:78
msgctxt "button" msgctxt "button"
msgid "Log Out" msgid "Log Out"
msgstr "Saír da sesión" msgstr "Saír da sesión"
#: ../js/ui/endSessionDialog.js:86 #: ../js/ui/endSessionDialog.js:84
msgctxt "title" msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "Apagar" msgstr "Apagar"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:85
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "Instalar anovacións e apagar" msgstr "Instalar anovacións e apagar"
#: ../js/ui/endSessionDialog.js:89 #: ../js/ui/endSessionDialog.js:87
#, javascript-format #, javascript-format
msgid "The system will power off automatically in %d second." msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds." msgid_plural "The system will power off automatically in %d seconds."
msgstr[0] "O sistema apagarase automaticamente en %d segundo." msgstr[0] "O sistema apagarase automaticamente en %d segundo."
msgstr[1] "O sistema apagarase automaticamente en %d segundos." msgstr[1] "O sistema apagarase automaticamente en %d segundos."
#: ../js/ui/endSessionDialog.js:93 #: ../js/ui/endSessionDialog.js:91
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "Instalar anovacións de software pendentes" msgstr "Instalar anovacións de software pendentes"
#: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113 #: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
msgctxt "button" msgctxt "button"
msgid "Restart" msgid "Restart"
msgstr "Reiniciar" msgstr "Reiniciar"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:96
msgctxt "button" msgctxt "button"
msgid "Power Off" msgid "Power Off"
msgstr "Apagar" msgstr "Apagar"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:103
msgctxt "title" msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "Reiniciar" msgstr "Reiniciar"
#: ../js/ui/endSessionDialog.js:107 #: ../js/ui/endSessionDialog.js:105
#, javascript-format #, javascript-format
msgid "The system will restart automatically in %d second." msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds." msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "O sistema reiniciarase automaticamente en %d segundo." msgstr[0] "O sistema reiniciarase automaticamente en %d segundo."
msgstr[1] "O sistema reiniciarase automaticamente en %d segundos." msgstr[1] "O sistema reiniciarase automaticamente en %d segundos."
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:119
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "Reiniciar e instalar actualizacións" msgstr "Reiniciar e instalar actualizacións"
#: ../js/ui/endSessionDialog.js:123 #: ../js/ui/endSessionDialog.js:121
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
@ -1103,41 +1136,41 @@ msgstr[1] ""
"O sistema reiniciarase automaticamente e instalará as actualizacións en %d " "O sistema reiniciarase automaticamente e instalará as actualizacións en %d "
"segundos." "segundos."
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:127
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "Reiniciar e instalar" msgstr "Reiniciar e instalar"
#: ../js/ui/endSessionDialog.js:130 #: ../js/ui/endSessionDialog.js:128
msgctxt "button" msgctxt "button"
msgid "Install &amp; Power Off" msgid "Install &amp; Power Off"
msgstr "Instalar e apagar" msgstr "Instalar e apagar"
#: ../js/ui/endSessionDialog.js:131 #: ../js/ui/endSessionDialog.js:129
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "Apagar despois de instalar as anovacións" msgstr "Apagar despois de instalar as anovacións"
#: ../js/ui/endSessionDialog.js:315 #: ../js/ui/endSessionDialog.js:338
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "Con enerxía da batería: enchufar antes de instalar anovacións." msgstr "Con enerxía da batería: enchufar antes de instalar anovacións."
#: ../js/ui/endSessionDialog.js:332 #: ../js/ui/endSessionDialog.js:355
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "Algúns aplicativos están ocupados ou teñen traballo sen gardar." msgstr "Algúns aplicativos están ocupados ou teñen traballo sen gardar."
#: ../js/ui/endSessionDialog.js:339 #: ../js/ui/endSessionDialog.js:362
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "Hai outros usuarios conectados." msgstr "Hai outros usuarios conectados."
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/endSessionDialog.js:619 #: ../js/ui/endSessionDialog.js:640
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (remoto)" msgstr "%s (remoto)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console
#: ../js/ui/endSessionDialog.js:622 #: ../js/ui/endSessionDialog.js:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (consola)" msgstr "%s (consola)"
@ -1151,7 +1184,7 @@ msgstr "Instalar"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Desexa descargar e instalar «%s» desde extensions.gnome.org?" msgstr "Desexa descargar e instalar «%s» desde extensions.gnome.org?"
#: ../js/ui/keyboard.js:653 ../js/ui/status/keyboard.js:339 #: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523
msgid "Keyboard" msgid "Keyboard"
msgstr "Teclado" msgstr "Teclado"
@ -1159,7 +1192,7 @@ msgstr "Teclado"
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Non hai ningunha extensión instalada" msgstr "Non hai ningunha extensión instalada"
#. Translators: argument is an extension UUID. */ #. Translators: argument is an extension UUID.
#: ../js/ui/lookingGlass.js:697 #: ../js/ui/lookingGlass.js:697
#, javascript-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
@ -1173,16 +1206,16 @@ msgstr "Ocultar erros"
msgid "Show Errors" msgid "Show Errors"
msgstr "Mostrar erros" msgstr "Mostrar erros"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:62 #: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71
#: ../js/ui/status/location.js:166 #: ../js/ui/status/location.js:176
msgid "Enabled" msgid "Enabled"
msgstr "Activado" msgstr "Activado"
#. Translators: this is for a network device that cannot be activated #. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode) */ #. because it's disabled by rfkill (airplane mode)
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:169 #: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "Desactivado" msgstr "Desactivado"
@ -1207,39 +1240,39 @@ msgstr "Ver fonte"
msgid "Web Page" msgid "Web Page"
msgstr "Páxina web" msgstr "Páxina web"
#: ../js/ui/messageTray.js:1325 #: ../js/ui/messageTray.js:1327
msgid "Open" msgid "Open"
msgstr "Abrir" msgstr "Abrir"
#: ../js/ui/messageTray.js:1332 #: ../js/ui/messageTray.js:1334
msgid "Remove" msgid "Remove"
msgstr "Retirar" msgstr "Retirar"
#: ../js/ui/messageTray.js:1629 #: ../js/ui/messageTray.js:1631
msgid "Notifications" msgid "Notifications"
msgstr "Notificacións" msgstr "Notificacións"
#: ../js/ui/messageTray.js:1636 #: ../js/ui/messageTray.js:1638
msgid "Clear Messages" msgid "Clear Messages"
msgstr "Limpar mensaxes" msgstr "Limpar mensaxes"
#: ../js/ui/messageTray.js:1655 #: ../js/ui/messageTray.js:1657
msgid "Notification Settings" msgid "Notification Settings"
msgstr "Preferencias das notificacións" msgstr "Preferencias das notificacións"
#: ../js/ui/messageTray.js:1708 #: ../js/ui/messageTray.js:1710
msgid "Tray Menu" msgid "Tray Menu"
msgstr "Menú da bandexa do sistema" msgstr "Menú da bandexa do sistema"
#: ../js/ui/messageTray.js:1925 #: ../js/ui/messageTray.js:1934
msgid "No Messages" msgid "No Messages"
msgstr "Non hai mensaxes" msgstr "Non hai mensaxes"
#: ../js/ui/messageTray.js:1963 #: ../js/ui/messageTray.js:1979
msgid "Message Tray" msgid "Message Tray"
msgstr "Bandexa de mensaxes" msgstr "Bandexa de mensaxes"
#: ../js/ui/messageTray.js:2966 #: ../js/ui/messageTray.js:2992
msgid "System Information" msgid "System Information"
msgstr "Información do sistema" msgstr "Información do sistema"
@ -1266,8 +1299,8 @@ msgstr "Vista xeral"
#. Translators: this is the text displayed #. Translators: this is the text displayed
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters.
#: ../js/ui/overview.js:250 #: ../js/ui/overview.js:246
msgid "Type to search…" msgid "Type to search…"
msgstr "Escriba para buscar…" msgstr "Escriba para buscar…"
@ -1276,7 +1309,7 @@ msgid "Quit"
msgstr "Saír" msgstr "Saír"
#. Translators: If there is no suitable word for "Activities" #. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */ #. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:567 #: ../js/ui/panel.js:567
msgid "Activities" msgid "Activities"
msgstr "Actividades" msgstr "Actividades"
@ -1285,6 +1318,11 @@ msgstr "Actividades"
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superior" msgstr "Barra superior"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:269 #: ../js/ui/popupMenu.js:269
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@ -1302,7 +1340,7 @@ msgid "Restarting…"
msgstr "Restimando…" msgstr "Restimando…"
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format */ #. long format
#: ../js/ui/screenShield.js:88 #: ../js/ui/screenShield.js:88
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d de %B" msgstr "%A, %d de %B"
@ -1322,6 +1360,13 @@ msgstr "Bloquear"
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME precisa bloquear a pantalla" msgstr "GNOME precisa bloquear a pantalla"
#. We could not become modal, so we can't activate the
#. screenshield. The user is probably very upset at this
#. point, but any application using global grabs is broken
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304 #: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304
msgid "Unable to lock" msgid "Unable to lock"
msgstr "Non foi posíbel bloquear" msgstr "Non foi posíbel bloquear"
@ -1330,27 +1375,27 @@ msgstr "Non foi posíbel bloquear"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Un aplicativo impediu o bloqueo" msgstr "Un aplicativo impediu o bloqueo"
#: ../js/ui/search.js:606 #: ../js/ui/search.js:594
msgid "Searching…" msgid "Searching…"
msgstr "Buscando…" msgstr "Buscando…"
#: ../js/ui/search.js:652 #: ../js/ui/search.js:596
msgid "No results." msgid "No results."
msgstr "Sen resultados." msgstr "Sen resultados."
#: ../js/ui/shellEntry.js:27 #: ../js/ui/shellEntry.js:25
msgid "Copy" msgid "Copy"
msgstr "Copiar" msgstr "Copiar"
#: ../js/ui/shellEntry.js:32 #: ../js/ui/shellEntry.js:30
msgid "Paste" msgid "Paste"
msgstr "Pegar" msgstr "Pegar"
#: ../js/ui/shellEntry.js:99 #: ../js/ui/shellEntry.js:97
msgid "Show Text" msgid "Show Text"
msgstr "Mostrar texto" msgstr "Mostrar texto"
#: ../js/ui/shellEntry.js:101 #: ../js/ui/shellEntry.js:99
msgid "Hide Text" msgid "Hide Text"
msgstr "Ocultar texto" msgstr "Ocultar texto"
@ -1406,6 +1451,8 @@ msgstr "Contraste alto"
msgid "Large Text" msgid "Large Text"
msgstr "Texto grande" msgstr "Texto grande"
#. The Bluetooth menu only appears when Bluetooth is in use,
#. so just statically build it with a "Turn Off" menu item.
#: ../js/ui/status/bluetooth.js:49 #: ../js/ui/status/bluetooth.js:49
msgid "Bluetooth" msgid "Bluetooth"
msgstr "Bluetooth" msgstr "Bluetooth"
@ -1436,23 +1483,27 @@ msgstr "Non conectado"
msgid "Brightness" msgid "Brightness"
msgstr "Brillo" msgstr "Brillo"
#: ../js/ui/status/keyboard.js:406 #: ../js/ui/status/keyboard.js:547
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Mostrar a distribución do teclado" msgstr "Mostrar a distribución do teclado"
#: ../js/ui/status/location.js:56 #: ../js/ui/status/location.js:65
msgid "Location" msgid "Location"
msgstr "Localización" msgstr "Localización"
#: ../js/ui/status/location.js:63 ../js/ui/status/location.js:167 #: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177
msgid "Disable" msgid "Disable"
msgstr "Desactivar" msgstr "Desactivar"
#: ../js/ui/status/location.js:166 #: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "Preferencias da privacidade"
#: ../js/ui/status/location.js:176
msgid "In Use" msgid "In Use"
msgstr "En uso" msgstr "En uso"
#: ../js/ui/status/location.js:170 #: ../js/ui/status/location.js:180
msgid "Enable" msgid "Enable"
msgstr "Activar" msgstr "Activar"
@ -1470,7 +1521,7 @@ msgid "Connected"
msgstr "Conectado" msgstr "Conectado"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu) */ #. under NetworkManager's control (and thus cannot be used in the menu)
#: ../js/ui/status/network.js:463 #: ../js/ui/status/network.js:463
msgid "Unmanaged" msgid "Unmanaged"
msgstr "Sen xestionar" msgstr "Sen xestionar"
@ -1483,19 +1534,19 @@ msgstr "Desconectando…"
msgid "Connecting" msgid "Connecting"
msgstr "Conectando" msgstr "Conectando"
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:474 #: ../js/ui/status/network.js:474
msgid "Authentication required" msgid "Authentication required"
msgstr "Requírese autenticación" msgstr "Requírese autenticación"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */ #. module, which is missing
#: ../js/ui/status/network.js:482 #: ../js/ui/status/network.js:482
msgid "Firmware missing" msgid "Firmware missing"
msgstr "Falta o «firmware»" msgstr "Falta o «firmware»"
#. Translators: this is for a network device that cannot be activated (for example it #. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage */ #. is disabled by rfkill, or it has no coverage
#: ../js/ui/status/network.js:486 #: ../js/ui/status/network.js:486
msgid "Unavailable" msgid "Unavailable"
msgstr "Non dispoñíbel" msgstr "Non dispoñíbel"
@ -1580,7 +1631,7 @@ msgstr "Punto wifi activo"
msgid "connecting..." msgid "connecting..."
msgstr "conectando…" msgstr "conectando…"
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:1412 #: ../js/ui/status/network.js:1412
msgid "authentication required" msgid "authentication required"
msgstr "requírese autenticación" msgstr "requírese autenticación"
@ -1617,15 +1668,19 @@ msgstr "Preferencias de enerxía"
msgid "Fully Charged" msgid "Fully Charged"
msgstr "Carga completa" msgstr "Carga completa"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78 #: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
msgid "Estimating…" msgid "Estimating…"
msgstr "Estimando…" msgstr "Estimando…"
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:86
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "Faltan %d:%02d (%d%%)" msgstr "Faltan %d:%02d (%d%%)"
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:91
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
@ -1639,6 +1694,9 @@ msgstr "SAI"
msgid "Battery" msgid "Battery"
msgstr "Batería" msgstr "Batería"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:83 #: ../js/ui/status/rfkill.js:83
msgid "Airplane Mode" msgid "Airplane Mode"
msgstr "Modo avión" msgstr "Modo avión"
@ -1687,11 +1745,11 @@ msgstr "Iniciar sesión como outro usuario"
msgid "Unlock Window" msgid "Unlock Window"
msgstr "Desbloquear xanela" msgstr "Desbloquear xanela"
#: ../js/ui/viewSelector.js:232 #: ../js/ui/viewSelector.js:158
msgid "Applications" msgid "Applications"
msgstr "Aplicativos" msgstr "Aplicativos"
#: ../js/ui/viewSelector.js:236 #: ../js/ui/viewSelector.js:162
msgid "Search" msgid "Search"
msgstr "Buscar" msgstr "Buscar"
@ -1706,7 +1764,7 @@ msgstr "Desexa manter estas preferencias de pantalla?"
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #.
#: ../js/ui/windowManager.js:84 #: ../js/ui/windowManager.js:84
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Reverter preferencias" msgstr "Reverter preferencias"
@ -1788,21 +1846,21 @@ msgstr[1] "%u entradas"
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons do sistema" msgstr "Sons do sistema"
#: ../src/main.c:371 #: ../src/main.c:373
msgid "Print version" msgid "Print version"
msgstr "Imprimir versión" msgstr "Imprimir versión"
#: ../src/main.c:377 #: ../src/main.c:379
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para a pantalla de inicio" msgstr "Modo usado por GDM para a pantalla de inicio"
#: ../src/main.c:383 #: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "" msgstr ""
"Usar un modo específico, por exemplo, «gdm» para a pantalla de inicio de " "Usar un modo específico, por exemplo, «gdm» para a pantalla de inicio de "
"sesión" "sesión"
#: ../src/main.c:389 #: ../src/main.c:391
msgid "List possible modes" msgid "List possible modes"
msgstr "Listar os modos posíbeis" msgstr "Listar os modos posíbeis"

242
po/gu.po
View File

@ -9,8 +9,8 @@ msgstr ""
"Project-Id-Version: gu\n" "Project-Id-Version: gu\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
"cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n" "cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-08-26 07:37+0000\n" "POT-Creation-Date: 2014-10-01 07:39+0000\n"
"PO-Revision-Date: 2014-09-08 12:52+0530\n" "PO-Revision-Date: 2014-10-01 15:51+0530\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n" "Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: \n" "Language: \n"
@ -63,7 +63,7 @@ msgstr "GNOME Shell ઍક્સટેન્શનને રૂપરેખા
#: ../data/gnome-shell-wayland.desktop.in.in.h:1 #: ../data/gnome-shell-wayland.desktop.in.in.h:1
msgid "GNOME Shell (wayland compositor)" msgid "GNOME Shell (wayland compositor)"
msgstr "" msgstr "GNOME Shell (વેલૅન્ડ કંપોઝીટર)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
@ -76,12 +76,10 @@ msgid ""
msgstr "Alt-F2 સંવાદની મદદથી આંતરિક ડિબગીંગ અને મોનિટરીંગ સાધનોને વાપરવા પરવાનગી આપે છે." msgstr "Alt-F2 સંવાદની મદદથી આંતરિક ડિબગીંગ અને મોનિટરીંગ સાધનોને વાપરવા પરવાનગી આપે છે."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.in.h:3
#| msgid "Uuids of extensions to enable"
msgid "UUIDs of extensions to enable" msgid "UUIDs of extensions to enable"
msgstr "સક્રિય કરવા માટે એક્સટેન્શનનું UUIDs" msgstr "સક્રિય કરવા માટે એક્સટેન્શનનું UUIDs"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4 #: ../data/org.gnome.shell.gschema.xml.in.in.h:4
#, fuzzy
#| msgid "" #| msgid ""
#| "GNOME Shell extensions have a uuid property; this key lists extensions " #| "GNOME Shell extensions have a uuid property; this key lists extensions "
#| "which should be loaded. Any extension that wants to be loaded needs to be " #| "which should be loaded. Any extension that wants to be loaded needs to be "
@ -93,14 +91,14 @@ msgid ""
"list. You can also manipulate this list with the EnableExtension and " "list. You can also manipulate this list with the EnableExtension and "
"DisableExtension D-Bus methods on org.gnome.Shell." "DisableExtension D-Bus methods on org.gnome.Shell."
msgstr "" msgstr ""
"GNOME Shell ઍક્સટેન્શન પાસે uuid ગુણધર્મ છે; આ કી ઍક્સટેન્શનની યાદી કરે છે કે જેને લાવેલ હોવુ " "GNOME Shell ઍક્સટેન્શન પાસે UUID ગુણધર્મ છે; આ કી ઍક્સટેન્શનની યાદી કરે છે કે જેને લાવેલ હોવુ "
"જોઇએ. કોઇપણ ઍક્સટેન્શન કે જેને આ યાદીમાં લાવવાની જરૂર છે. તમે પણ org.gnome.Shell પર " "જોઇએ. કોઇપણ ઍક્સટેન્શન કે જેને આ યાદીમાં લાવવાની જરૂર છે. તમે પણ org.gnome.Shell પર "
"EnableExtension અને DisableExtension DBus પદ્દતિઓ સાથે આ યાદીને કુશળતાપૂર્વક વાપરી " "EnableExtension અને DisableExtension DBus પદ્દતિઓ સાથે આ યાદીને કુશળતાપૂર્વક વાપરી "
"શકો છો." "શકો છો."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5 #: ../data/org.gnome.shell.gschema.xml.in.in.h:5
msgid "Disables the validation of extension version compatibility" msgid "Disables the validation of extension version compatibility"
msgstr "" msgstr "ઍક્સટેન્શન આવૃત્તિ સુસંગતતાની માન્યતાને નિષ્ક્રિય કરે છે"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:6 #: ../data/org.gnome.shell.gschema.xml.in.in.h:6
msgid "" msgid ""
@ -108,6 +106,9 @@ msgid ""
"running version. Enabling this option will disable this check and try to " "running version. Enabling this option will disable this check and try to "
"load all extensions regardless of the versions they claim to support." "load all extensions regardless of the versions they claim to support."
msgstr "" msgstr ""
"GNOME Shell એ ફક્ત ઍક્સટેન્શનને લાવશે કે જે હાલની ચાલતી આવૃત્તિને આધાર આપવા માટે દાવો કરે છે. "
"આ વિકલ્પને સક્રિય કરવાનું આ ચકાસણીને નિષ્ક્રિય કરશે અને આવૃત્તિને બાદ કરતા બધા ઍક્સટેન્શનને "
"લાવવાનો પ્રયત્ન કરે છે જે તેઓ આધાર આપવા માટે દાવો કરે છે."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7 #: ../data/org.gnome.shell.gschema.xml.in.in.h:7
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
@ -121,7 +122,7 @@ msgstr "કાર્યક્રમો આ ઓળખકર્તાઓ સાથ
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9 #: ../data/org.gnome.shell.gschema.xml.in.in.h:9
msgid "App Picker View" msgid "App Picker View"
msgstr "" msgstr "કાર્યક્રમ પસંદકર્તા દૃશ્ય"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:10 #: ../data/org.gnome.shell.gschema.xml.in.in.h:10
msgid "Index of the currently selected view in the application picker." msgid "Index of the currently selected view in the application picker."
@ -136,12 +137,10 @@ msgid "History for the looking glass dialog"
msgstr "ગ્લાસ સંવાદને જોવા માટે ઇતિહાસ" msgstr "ગ્લાસ સંવાદને જોવા માટે ઇતિહાસ"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.in.h:13
#| msgid "Always show the 'Log out' menuitem in the user menu."
msgid "Always show the 'Log out' menu item in the user menu." msgid "Always show the 'Log out' menu item in the user menu."
msgstr "વપરાશકર્તા મેનુમાં હંમેશા 'બહાર નીકળો' મેનુ વસ્તુને બતાવો." msgstr "વપરાશકર્તા મેનુમાં હંમેશા 'બહાર નીકળો' મેનુ વસ્તુને બતાવો."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.in.h:14
#, fuzzy
#| msgid "" #| msgid ""
#| "This key overrides the automatic hiding of the 'Log out' menuitem in " #| "This key overrides the automatic hiding of the 'Log out' menuitem in "
#| "single-user, single-session situations." #| "single-user, single-session situations."
@ -149,7 +148,8 @@ msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-" "This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations." "user, single-session situations."
msgstr "" msgstr ""
"આ કી એકજ વપરાશકર્તામાં 'બહાર નીકળો' મેનુવસ્તુને આપમેળે છુપાવવા આ કીને ઓવરરાઇડ કરવામાં " "આ કી એકજ વપરાશકર્તા, એકજ-સત્ર પરિસ્થિતિઓમાં 'બહાર નીકળો' મેનુવસ્તુને આપમેળે છુપાવવા આ કીને "
"ઓવરરાઇડ કરવામાં "
"આવી છે." "આવી છે."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15 #: ../data/org.gnome.shell.gschema.xml.in.in.h:15
@ -192,12 +192,10 @@ msgid "Keybinding to open the \"Show Applications\" view of the Activities Overv
msgstr "પ્રવૃત્તિ ઝાંખીનાં \"કાર્યક્રમો બતાવો\" દૃશ્યને ખોલવા માટે કિબાઇન્ડીંગ." msgstr "પ્રવૃત્તિ ઝાંખીનાં \"કાર્યક્રમો બતાવો\" દૃશ્યને ખોલવા માટે કિબાઇન્ડીંગ."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#| msgid "Keybinding to open the \"Show Applications\" view"
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "ઝાંખીને ખોલવા માટે કિબાઇન્ડીંગ" msgstr "ઝાંખીને ખોલવા માટે કિબાઇન્ડીંગ"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#| msgid "Keybinding to open the \"Show Applications\" view"
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "પ્રવૃત્તિ ઝાંખીને ખોલવા માટે કિબાઇન્ડીંગ" msgstr "પ્રવૃત્તિ ઝાંખીને ખોલવા માટે કિબાઇન્ડીંગ"
@ -219,7 +217,7 @@ msgstr "સક્રિય સૂચના પર પ્રકાશ નાં
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29 #: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding that pauses and resumes all running tweens, for debugging purposes" msgid "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr "કીબાઇન્ડીંગ કે જે બધી ચાલતી ટ્વીનને અટકાવે છે અને પાછુ લાવે છે, ડિબગીંગ હેતુઓ માટે"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Which keyboard to use" msgid "Which keyboard to use"
@ -231,13 +229,15 @@ msgstr "વાપરવા માટે કિબોર્ડનો પ્રક
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "" msgstr "વર્તમાન કામ કરવાની જગ્યા માટે સ્વિચર મર્યાદિત કરી છે."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
msgstr "" msgstr ""
"જો true હોય તો, ફક્ત કાર્યક્રમો કે જેની પાસે હાલની કાર્ય કરવાની જગ્યા પર વિન્ડો છે તે "
"સ્વીચરમાં બતાવેલ છે. નહિંતો, બધા કાર્યક્રમનો સમાવેલ છે."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The application icon mode." msgid "The application icon mode."
@ -258,6 +258,8 @@ msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
msgstr "" msgstr ""
"જો true હોય તો, હાલની કાર્ય કરવાની જગ્યામાંથી વિન્ડો સ્વીચરમાં બતાવેલ છે. નહિં તો, બધી "
"વિન્ડોને સમાવેલ છે."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
@ -281,24 +283,23 @@ msgstr "ફક્ત પ્રાથમિક મોનિટર પર કા
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42 #: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr "માઉસ સ્થિતિમાં ફેરફારો કરવામાં વિલંબ જ્યાં સુધી પોઇંટર ખસેડવાનું બંધ થાય"
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1 #: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Captive Portal" msgid "Captive Portal"
msgstr "" msgstr "કૅપ્ટીવ પોર્ટલ"
#: ../js/extensionPrefs/main.js:127 #: ../js/extensionPrefs/main.js:123
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "ત્યાં %s માટે પસંદગી સંવાદને લાવવામાં ભૂલ હતી:" msgstr "ત્યાં %s માટે પસંદગી સંવાદને લાવવામાં ભૂલ હતી:"
#: ../js/extensionPrefs/main.js:159 #: ../js/extensionPrefs/main.js:155
#| msgid "Configure GNOME Shell Extensions"
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "GNOME Shell ઍક્સટેન્શન" msgstr "GNOME Shell ઍક્સટેન્શન"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915 #: ../js/ui/status/network.js:915
msgid "Cancel" msgid "Cancel"
@ -319,7 +320,6 @@ msgid "Sign In"
msgstr "પ્રવેશો" msgstr "પ્રવેશો"
#: ../js/gdm/loginDialog.js:269 #: ../js/gdm/loginDialog.js:269
#| msgid "Switch Session"
msgid "Choose Session" msgid "Choose Session"
msgstr "સત્ર પસંદ કરો" msgstr "સત્ર પસંદ કરો"
@ -359,50 +359,47 @@ msgstr "આદેશનું પદચ્છેદન કરી શક્યા
#: ../js/misc/util.js:156 #: ../js/misc/util.js:156
#, javascript-format #, javascript-format
#| msgid "Execution of '%s' failed:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "“%s” ને અમલમાં મૂકવાનુ નિષ્ફળ:" msgstr "“%s” ને અમલમાં મૂકવાનુ નિષ્ફળ:"
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
#| msgid "Authentication Required"
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "વેબ સત્તાધિકરણ દિશામાન" msgstr "વેબ સત્તાધિકરણ દિશામાન"
#: ../js/ui/appDisplay.js:660 #: ../js/ui/appDisplay.js:772
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "વારંવાર વપરાતા કાર્યક્રમો અહિંયા દેખાશે" msgstr "વારંવાર વપરાતા કાર્યક્રમો અહિંયા દેખાશે"
#: ../js/ui/appDisplay.js:771 #: ../js/ui/appDisplay.js:883
msgid "Frequent" msgid "Frequent"
msgstr "સામાન્ય" msgstr "સામાન્ય"
#: ../js/ui/appDisplay.js:778 #: ../js/ui/appDisplay.js:890
msgid "All" msgid "All"
msgstr "બધા" msgstr "બધા"
#: ../js/ui/appDisplay.js:1650 #: ../js/ui/appDisplay.js:1790
msgid "New Window" msgid "New Window"
msgstr "નવી વિન્ડો" msgstr "નવી વિન્ડો"
#: ../js/ui/appDisplay.js:1673 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1816 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "પસંદીદાઓ માંથી દૂર કરો" msgstr "પસંદીદાઓ માંથી દૂર કરો"
#: ../js/ui/appDisplay.js:1679 #: ../js/ui/appDisplay.js:1822
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "પસંદીદાને ઉમેરો" msgstr "પસંદીદાને ઉમેરો"
#: ../js/ui/appDisplay.js:1688 #: ../js/ui/appDisplay.js:1831
#| msgid "Show Text"
msgid "Show Details" msgid "Show Details"
msgstr "વિગતો બતાવો" msgstr "વિગતો બતાવો"
#: ../js/ui/appFavorites.js:122 #: ../js/ui/appFavorites.js:132
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s ને તમારી પસંદીદામાં ઉમેરી દેવામાં આવ્યુ છે." msgstr "%s ને તમારી પસંદીદામાં ઉમેરી દેવામાં આવ્યુ છે."
#: ../js/ui/appFavorites.js:156 #: ../js/ui/appFavorites.js:166
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s ને તમારી પસંદીદામાંથી દૂર કરી દેવામાં આવ્યુ છે." msgstr "%s ને તમારી પસંદીદામાંથી દૂર કરી દેવામાં આવ્યુ છે."
@ -594,11 +591,11 @@ msgstr "%s સાથે ખોલો"
msgid "Eject" msgid "Eject"
msgstr "રદ કરો" msgstr "રદ કરો"
#: ../js/ui/components/keyring.js:93 ../js/ui/components/polkitAgent.js:285 #: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285
msgid "Password:" msgid "Password:"
msgstr "પાસવર્ડ:" msgstr "પાસવર્ડ:"
#: ../js/ui/components/keyring.js:113 #: ../js/ui/components/keyring.js:120
msgid "Type again:" msgid "Type again:"
msgstr "ફરીથી પ્રયત્ન કરો:" msgstr "ફરીથી પ્રયત્ન કરો:"
@ -637,9 +634,6 @@ msgstr "વાયરલેસ નેટવર્ક દ્દારાસત્
#: ../js/ui/components/networkAgent.js:319 #: ../js/ui/components/networkAgent.js:319
#, javascript-format #, javascript-format
#| msgid ""
#| "Passwords or encryption keys are required to access the wireless network "
#| "'%s'."
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
"“%s”." "“%s”."
@ -675,7 +669,6 @@ msgstr "મોબાઇલ બ્રોડબેન્ડ નેટવર્ક
#: ../js/ui/components/networkAgent.js:346 #: ../js/ui/components/networkAgent.js:346
#, javascript-format #, javascript-format
#| msgid "A password is required to connect to '%s'."
msgid "A password is required to connect to “%s”." msgid "A password is required to connect to “%s”."
msgstr "પાસવર્ડ “%s” સાથે જોડાવા માટે જરૂરી છે." msgstr "પાસવર્ડ “%s” સાથે જોડાવા માટે જરૂરી છે."
@ -731,14 +724,12 @@ msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:960 #: ../js/ui/components/telepathyClient.js:960
#| msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "ગઇ કાલે, %H:%M" msgstr "ગઇ કાલે, %H:%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:967 #: ../js/ui/components/telepathyClient.js:967
#| msgid "%A, %B %d"
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
@ -758,8 +749,6 @@ msgstr "%B %d %Y, %H%M"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:986 #: ../js/ui/components/telepathyClient.js:986
#| msgctxt "event list time"
#| msgid "%l:%M %p"
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
@ -772,7 +761,6 @@ msgstr "ગઈકાલે %l:%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1000 #: ../js/ui/components/telepathyClient.js:1000
#| msgid "%a %l:%M %p"
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
@ -780,7 +768,6 @@ msgstr "%A, %l%M %p"
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1007 #: ../js/ui/components/telepathyClient.js:1007
#| msgid "%a %b %e, %l:%M %p"
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%B %d, %l%M %p" msgstr "%B %d, %l%M %p"
@ -788,7 +775,6 @@ msgstr "%B %d, %l%M %p"
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1013 #: ../js/ui/components/telepathyClient.js:1013
#| msgid "%a %b %e, %l:%M %p"
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%B %d %Y, %l%M %p" msgstr "%B %d %Y, %l%M %p"
@ -975,7 +961,7 @@ msgstr "ખાતામાં જુઓ"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "અજ્ઞાત કારણ" msgstr "અજ્ઞાત કારણ"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:228 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154
msgid "Windows" msgid "Windows"
msgstr "વિન્ડો" msgstr "વિન્ડો"
@ -1006,131 +992,129 @@ msgstr "તારીખ અને સમય સુયોજનો"
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A %B %e, %Y" msgstr "%A %B %e, %Y"
#: ../js/ui/endSessionDialog.js:66 #: ../js/ui/endSessionDialog.js:64
#, javascript-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "%s માંથી બહાર નીકળો" msgstr "%s માંથી બહાર નીકળો"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:65
msgctxt "title" msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "બહાર નીકળો" msgstr "બહાર નીકળો"
#: ../js/ui/endSessionDialog.js:69 #: ../js/ui/endSessionDialog.js:67
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s એ %d સેકંડમાં આપમેળે બહાર નીકળી જશે." msgstr[0] "%s એ %d સેકંડમાં આપમેળે બહાર નીકળી જશે."
msgstr[1] "%s એ %d સેકંડોમાં આપમેળે બહાર નીકળી જશે." msgstr[1] "%s એ %d સેકંડોમાં આપમેળે બહાર નીકળી જશે."
#: ../js/ui/endSessionDialog.js:74 #: ../js/ui/endSessionDialog.js:72
#, javascript-format #, javascript-format
msgid "You will be logged out automatically in %d second." msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds." msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "તમે %d સેકંડમાં આપમેળે બહાર નીકળી જશે." msgstr[0] "તમે %d સેકંડમાં આપમેળે બહાર નીકળી જશે."
msgstr[1] "તમે %d સેકંડોમાં આપમેળે બહાર નીકળી જશે." msgstr[1] "તમે %d સેકંડોમાં આપમેળે બહાર નીકળી જશે."
#: ../js/ui/endSessionDialog.js:80 #: ../js/ui/endSessionDialog.js:78
msgctxt "button" msgctxt "button"
msgid "Log Out" msgid "Log Out"
msgstr "બહાર નીકળો" msgstr "બહાર નીકળો"
#: ../js/ui/endSessionDialog.js:86 #: ../js/ui/endSessionDialog.js:84
msgctxt "title" msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "પાવર બંધ" msgstr "પાવર બંધ"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:85
#| msgid "Install Updates & Restart"
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "સુધારા સ્થાપિત કરો અને પાવર બંધ કરો" msgstr "સુધારા સ્થાપિત કરો અને પાવર બંધ કરો"
#: ../js/ui/endSessionDialog.js:89 #: ../js/ui/endSessionDialog.js:87
#, javascript-format #, javascript-format
msgid "The system will power off automatically in %d second." msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds." msgid_plural "The system will power off automatically in %d seconds."
msgstr[0] "સિસ્ટમ %d સેકંડમાં આપમેળે પાવર બંધ થઇ જશે." msgstr[0] "સિસ્ટમ %d સેકંડમાં આપમેળે પાવર બંધ થઇ જશે."
msgstr[1] "સિસ્ટમ %d સેકંડમાં આપમેળે પાવર બંધ થઇ જશે." msgstr[1] "સિસ્ટમ %d સેકંડમાં આપમેળે પાવર બંધ થઇ જશે."
#: ../js/ui/endSessionDialog.js:93 #: ../js/ui/endSessionDialog.js:91
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "બાકી રહેલા સોફ્ટવેર સુધારાને સ્થાપિત કરો" msgstr "બાકી રહેલા સોફ્ટવેર સુધારાને સ્થાપિત કરો"
#: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113 #: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
msgctxt "button" msgctxt "button"
msgid "Restart" msgid "Restart"
msgstr "પુન:શરૂ કરો" msgstr "પુન:શરૂ કરો"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:96
msgctxt "button" msgctxt "button"
msgid "Power Off" msgid "Power Off"
msgstr "પાવર બંધ" msgstr "પાવર બંધ"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:103
msgctxt "title" msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "પુન:શરૂ કરો" msgstr "પુન:શરૂ કરો"
#: ../js/ui/endSessionDialog.js:107 #: ../js/ui/endSessionDialog.js:105
#, javascript-format #, javascript-format
msgid "The system will restart automatically in %d second." msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds." msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "સિસ્ટમ %d સેકંડમાં આપમેળે પુન:શરૂ થઇ જશે." msgstr[0] "સિસ્ટમ %d સેકંડમાં આપમેળે પુન:શરૂ થઇ જશે."
msgstr[1] "સિસ્ટમ %d સેકંડોમાં આપમેળે પુન:શરૂ થઇ જશે." msgstr[1] "સિસ્ટમ %d સેકંડોમાં આપમેળે પુન:શરૂ થઇ જશે."
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:119
#| msgid "Install Updates & Restart"
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "સુધારા સ્થાપિત કરો અને પુન:શરૂ કરો" msgstr "સુધારા સ્થાપિત કરો અને પુન:શરૂ કરો"
#: ../js/ui/endSessionDialog.js:123 #: ../js/ui/endSessionDialog.js:121
#, fuzzy, javascript-format #, javascript-format
#| msgid "The system will restart automatically in %d second." #| msgid "The system will restart automatically in %d second."
#| msgid_plural "The system will restart automatically in %d seconds." #| msgid_plural "The system will restart automatically in %d seconds."
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "The system will automatically restart and install updates in %d seconds." msgid_plural "The system will automatically restart and install updates in %d seconds."
msgstr[0] "સિસ્ટમ %d સેકંડમાં આપમેળે પુન:શરૂ થઇ જશે." msgstr[0] "સિસ્ટમ %d સેકંડમાં આપમેળે સુધારાઓને પુન:શરૂ અને સ્થાપિત કરશે."
msgstr[1] "સિસ્ટમ %d સેકંડોમાં આપમેળે પુન:શરૂ થઇ જશે." msgstr[1] "સિસ્ટમ %d સેકંડોમાં આપમેળે સુધારાઓને પુન:શરૂ અને સ્થાપિત કરશે."
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:127
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "પુન:શરૂ કરો અને સ્થાપિત કરો" msgstr "પુન:શરૂ કરો અને સ્થાપિત કરો"
#: ../js/ui/endSessionDialog.js:130 #: ../js/ui/endSessionDialog.js:128
msgctxt "button" msgctxt "button"
msgid "Install &amp; Power Off" msgid "Install &amp; Power Off"
msgstr "સ્થાપિત કરો અને પાવર બંધ " msgstr "સ્થાપિત કરો અને પાવર બંધ "
#: ../js/ui/endSessionDialog.js:131 #: ../js/ui/endSessionDialog.js:129
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "સુધારા સ્થાપિત થાય પછી પાવર બંધ કરો" msgstr "સુધારા સ્થાપિત થાય પછી પાવર બંધ કરો"
#: ../js/ui/endSessionDialog.js:315 #: ../js/ui/endSessionDialog.js:338
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "બેટરી પાવર પર ચાલી રહ્યુ છે: મહેરબાની કરીને સુધારા સ્થાપિત કરતા પહેલાં પ્લગઇન કરો." msgstr "બેટરી પાવર પર ચાલી રહ્યુ છે: મહેરબાની કરીને સુધારા સ્થાપિત કરતા પહેલાં પ્લગઇન કરો."
#: ../js/ui/endSessionDialog.js:332 #: ../js/ui/endSessionDialog.js:355
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "અમુક કાર્યક્રમો વ્યસ્ત છે અથવા તેની પાસે અસંગ્રહેલ કામ છે." msgstr "અમુક કાર્યક્રમો વ્યસ્ત છે અથવા તેની પાસે અસંગ્રહેલ કામ છે."
#: ../js/ui/endSessionDialog.js:339 #: ../js/ui/endSessionDialog.js:362
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "બીજા વપરાશકર્તાઓ પ્રવેશેલ છે." msgstr "બીજા વપરાશકર્તાઓ પ્રવેશેલ છે."
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:619 #: ../js/ui/endSessionDialog.js:640
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (દૂરસ્થ)" msgstr "%s (દૂરસ્થ)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:622 #: ../js/ui/endSessionDialog.js:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (કન્સોલ)" msgstr "%s (કન્સોલ)"
@ -1141,11 +1125,10 @@ msgstr "સ્થાપિત કરો"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, javascript-format #, javascript-format
#| msgid "Download and install '%s' from extensions.gnome.org?"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "extensions.gnome.org માંથી “%s” ને સ્થાપિત અને ડાઉનલોડ કરો?" msgstr "extensions.gnome.org માંથી “%s” ને સ્થાપિત અને ડાઉનલોડ કરો?"
#: ../js/ui/keyboard.js:653 ../js/ui/status/keyboard.js:339 #: ../js/ui/keyboard.js:700 ../js/ui/status/keyboard.js:523
msgid "Keyboard" msgid "Keyboard"
msgstr "કિબોર્ડ" msgstr "કિબોર્ડ"
@ -1167,8 +1150,8 @@ msgstr "ભૂલો છુપાડો"
msgid "Show Errors" msgid "Show Errors"
msgstr "ભૂલો બતાવો" msgstr "ભૂલો બતાવો"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:62 #: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71
#: ../js/ui/status/location.js:166 #: ../js/ui/status/location.js:176
msgid "Enabled" msgid "Enabled"
msgstr "સક્રિય" msgstr "સક્રિય"
@ -1176,7 +1159,7 @@ msgstr "સક્રિય"
#. because it's disabled by rfkill (airplane mode) */ #. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:169 #: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "નિષ્ક્રિય" msgstr "નિષ્ક્રિય"
@ -1201,39 +1184,39 @@ msgstr "સ્ત્રોત દર્શાવો"
msgid "Web Page" msgid "Web Page"
msgstr "વેબ પાનું" msgstr "વેબ પાનું"
#: ../js/ui/messageTray.js:1325 #: ../js/ui/messageTray.js:1327
msgid "Open" msgid "Open"
msgstr "ખોલો" msgstr "ખોલો"
#: ../js/ui/messageTray.js:1332 #: ../js/ui/messageTray.js:1334
msgid "Remove" msgid "Remove"
msgstr "દૂર કરો" msgstr "દૂર કરો"
#: ../js/ui/messageTray.js:1629 #: ../js/ui/messageTray.js:1631
msgid "Notifications" msgid "Notifications"
msgstr "સૂચનાઓ" msgstr "સૂચનાઓ"
#: ../js/ui/messageTray.js:1636 #: ../js/ui/messageTray.js:1638
msgid "Clear Messages" msgid "Clear Messages"
msgstr "સંદેશા સાફ કરો" msgstr "સંદેશા સાફ કરો"
#: ../js/ui/messageTray.js:1655 #: ../js/ui/messageTray.js:1657
msgid "Notification Settings" msgid "Notification Settings"
msgstr "સૂચના સુયોજનો" msgstr "સૂચના સુયોજનો"
#: ../js/ui/messageTray.js:1708 #: ../js/ui/messageTray.js:1710
msgid "Tray Menu" msgid "Tray Menu"
msgstr "ટ્રે મેનુ" msgstr "ટ્રે મેનુ"
#: ../js/ui/messageTray.js:1925 #: ../js/ui/messageTray.js:1934
msgid "No Messages" msgid "No Messages"
msgstr "સંદેશા નથી" msgstr "સંદેશા નથી"
#: ../js/ui/messageTray.js:1963 #: ../js/ui/messageTray.js:1979
msgid "Message Tray" msgid "Message Tray"
msgstr "સંદેશો ટ્રે" msgstr "સંદેશો ટ્રે"
#: ../js/ui/messageTray.js:2966 #: ../js/ui/messageTray.js:2992
msgid "System Information" msgid "System Information"
msgstr "સિસ્ટમ જાણકારી" msgstr "સિસ્ટમ જાણકારી"
@ -1261,7 +1244,7 @@ msgstr "ઝાંખી"
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters. */
#: ../js/ui/overview.js:250 #: ../js/ui/overview.js:246
msgid "Type to search…" msgid "Type to search…"
msgstr "શોધવા માટે ટાઇપ કરો..." msgstr "શોધવા માટે ટાઇપ કરો..."
@ -1292,7 +1275,6 @@ msgid "Close"
msgstr "બંધ કરો" msgstr "બંધ કરો"
#: ../js/ui/runDialog.js:277 #: ../js/ui/runDialog.js:277
#| msgid "Estimating…"
msgid "Restarting…" msgid "Restarting…"
msgstr "પુન:શરૂ કરી રહ્યા છે…" msgstr "પુન:શરૂ કરી રહ્યા છે…"
@ -1325,27 +1307,27 @@ msgstr "તાળુ મારવામાં અસમર્થ"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "તાળુ કાર્યક્રમ દ્દારા બ્લોક થયેલ છે" msgstr "તાળુ કાર્યક્રમ દ્દારા બ્લોક થયેલ છે"
#: ../js/ui/search.js:606 #: ../js/ui/search.js:607
msgid "Searching…" msgid "Searching…"
msgstr "શોધી રહ્યા છે..." msgstr "શોધી રહ્યા છે..."
#: ../js/ui/search.js:652 #: ../js/ui/search.js:609
msgid "No results." msgid "No results."
msgstr "પરિણામો નથી." msgstr "પરિણામો નથી."
#: ../js/ui/shellEntry.js:27 #: ../js/ui/shellEntry.js:25
msgid "Copy" msgid "Copy"
msgstr "નકલ કરો" msgstr "નકલ કરો"
#: ../js/ui/shellEntry.js:32 #: ../js/ui/shellEntry.js:30
msgid "Paste" msgid "Paste"
msgstr "ચોંટાડો" msgstr "ચોંટાડો"
#: ../js/ui/shellEntry.js:99 #: ../js/ui/shellEntry.js:97
msgid "Show Text" msgid "Show Text"
msgstr "લખાણ બતાવો" msgstr "લખાણ બતાવો"
#: ../js/ui/shellEntry.js:101 #: ../js/ui/shellEntry.js:99
msgid "Hide Text" msgid "Hide Text"
msgstr "લખાણ છુપાડો" msgstr "લખાણ છુપાડો"
@ -1418,14 +1400,12 @@ msgstr "બ્લુટુથ સુયોજનો"
#: ../js/ui/status/bluetooth.js:104 #: ../js/ui/status/bluetooth.js:104
#, javascript-format #, javascript-format
#| msgid "Connected (private)"
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d જોડાયેલ ઉપકરણ" msgstr[0] "%d જોડાયેલ ઉપકરણ"
msgstr[1] "%d જોડાયેલ ઉપકરણો" msgstr[1] "%d જોડાયેલ ઉપકરણો"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309 #: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309
#| msgid "Connect"
msgid "Not Connected" msgid "Not Connected"
msgstr "જોડાયેલ નથી" msgstr "જોડાયેલ નથી"
@ -1433,26 +1413,28 @@ msgstr "જોડાયેલ નથી"
msgid "Brightness" msgid "Brightness"
msgstr "તેજસ્વિતા" msgstr "તેજસ્વિતા"
#: ../js/ui/status/keyboard.js:406 #: ../js/ui/status/keyboard.js:547
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "કીબોર્ડ લેઆઉટને બતાવો" msgstr "કીબોર્ડ લેઆઉટને બતાવો"
#: ../js/ui/status/location.js:56 #: ../js/ui/status/location.js:65
#| msgid "Notifications"
msgid "Location" msgid "Location"
msgstr "સ્થાન" msgstr "સ્થાન"
#: ../js/ui/status/location.js:63 ../js/ui/status/location.js:167 #: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177
#| msgid "Disabled"
msgid "Disable" msgid "Disable"
msgstr "નિષ્ક્રિય" msgstr "નિષ્ક્રિય"
#: ../js/ui/status/location.js:166 #: ../js/ui/status/location.js:73
#| msgid "Power Settings"
msgid "Privacy Settings"
msgstr "ખાનગી સુયોજનો"
#: ../js/ui/status/location.js:176
msgid "In Use" msgid "In Use"
msgstr "વપરાશમાં" msgstr "વપરાશમાં"
#: ../js/ui/status/location.js:170 #: ../js/ui/status/location.js:180
#| msgid "Enabled"
msgid "Enable" msgid "Enable"
msgstr "સક્રિય" msgstr "સક્રિય"
@ -1462,42 +1444,35 @@ msgstr "<અજ્ઞાત>"
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307
#: ../js/ui/status/network.js:1511 #: ../js/ui/status/network.js:1511
#| msgid "Offline"
msgid "Off" msgid "Off"
msgstr "બંધ" msgstr "બંધ"
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#| msgid "Connect"
msgid "Connected" msgid "Connected"
msgstr "જોડાયેલ" msgstr "જોડાયેલ"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu) */ #. under NetworkManager's control (and thus cannot be used in the menu) */
#: ../js/ui/status/network.js:463 #: ../js/ui/status/network.js:463
#| msgid "unmanaged"
msgid "Unmanaged" msgid "Unmanaged"
msgstr "સંચાલિત થયેલ નથી" msgstr "સંચાલિત થયેલ નથી"
#: ../js/ui/status/network.js:465 #: ../js/ui/status/network.js:465
#| msgid "disconnecting..."
msgid "Disconnecting" msgid "Disconnecting"
msgstr "જોડાઇ તૂટી રહ્યુ છે" msgstr "જોડાઇ તૂટી રહ્યુ છે"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301 #: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301
#| msgid "Connection"
msgid "Connecting" msgid "Connecting"
msgstr "જોડાઇ રહ્યા છે" msgstr "જોડાઇ રહ્યા છે"
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:474 #: ../js/ui/status/network.js:474
#| msgid "authentication required"
msgid "Authentication required" msgid "Authentication required"
msgstr "સત્તાધિકરણ જરૂરી" msgstr "સત્તાધિકરણ જરૂરી"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */ #. module, which is missing */
#: ../js/ui/status/network.js:482 #: ../js/ui/status/network.js:482
#| msgid "firmware missing"
msgid "Firmware missing" msgid "Firmware missing"
msgstr "ફર્મવેર ગેરહાજર" msgstr "ફર્મવેર ગેરહાજર"
@ -1512,17 +1487,14 @@ msgid "Connection failed"
msgstr "જોડાણ નિષ્ફળ" msgstr "જોડાણ નિષ્ફળ"
#: ../js/ui/status/network.js:504 #: ../js/ui/status/network.js:504
#| msgid "Settings"
msgid "Wired Settings" msgid "Wired Settings"
msgstr "વાયર થયેલ સુયોજનો" msgstr "વાયર થયેલ સુયોજનો"
#: ../js/ui/status/network.js:546 ../js/ui/status/network.js:624 #: ../js/ui/status/network.js:546 ../js/ui/status/network.js:624
#| msgid "Mobile broadband"
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "મોબાઇલ બ્રોડબેન્ડ સુયોજનો" msgstr "મોબાઇલ બ્રોડબેન્ડ સુયોજનો"
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#| msgid "hardware disabled"
msgid "Hardware Disabled" msgid "Hardware Disabled"
msgstr "હાર્ડવેર નિષ્ક્રિય" msgstr "હાર્ડવેર નિષ્ક્રિય"
@ -1555,31 +1527,26 @@ msgid "Turn On Wi-Fi"
msgstr "Wi-Fi ચાલુ કરો" msgstr "Wi-Fi ચાલુ કરો"
#: ../js/ui/status/network.js:851 #: ../js/ui/status/network.js:851
#| msgid "Network"
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Wi-Fi નેટવર્ક" msgstr "Wi-Fi નેટવર્ક"
#: ../js/ui/status/network.js:853 #: ../js/ui/status/network.js:853
#| msgid "Enable networking"
msgid "Select a network" msgid "Select a network"
msgstr "નેટવર્ક પસંદ કરો" msgstr "નેટવર્ક પસંદ કરો"
#: ../js/ui/status/network.js:882 #: ../js/ui/status/network.js:882
#| msgid "Network"
msgid "No Networks" msgid "No Networks"
msgstr "નેટવર્ક નથી" msgstr "નેટવર્ક નથી"
#: ../js/ui/status/network.js:903 ../js/ui/status/rfkill.js:112 #: ../js/ui/status/network.js:903 ../js/ui/status/rfkill.js:112
msgid "Use hardware switch to turn off" msgid "Use hardware switch to turn off"
msgstr "" msgstr "બંધ કરવા માટે હાર્ડવેર સ્વીચને વાપરો"
#: ../js/ui/status/network.js:1173 #: ../js/ui/status/network.js:1173
#| msgid "Network"
msgid "Select Network" msgid "Select Network"
msgstr "નેટવર્ક પસંદ કરો" msgstr "નેટવર્ક પસંદ કરો"
#: ../js/ui/status/network.js:1179 #: ../js/ui/status/network.js:1179
#| msgid "Settings"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Wi-Fi સુયોજનો" msgstr "Wi-Fi સુયોજનો"
@ -1609,7 +1576,6 @@ msgid "Network Settings"
msgstr "નેટવર્ક સુયોજનો" msgstr "નેટવર્ક સુયોજનો"
#: ../js/ui/status/network.js:1482 #: ../js/ui/status/network.js:1482
#| msgid "Settings"
msgid "VPN Settings" msgid "VPN Settings"
msgstr "VPN સુયોજનો" msgstr "VPN સુયોજનો"
@ -1645,7 +1611,7 @@ msgstr "%d%02d બાકી રહેલ છે (%d%%)"
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:91
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "" msgstr "%d%02d જ્યાં સુધી સંપૂર્ણ થાય (%d%%)"
#: ../js/ui/status/power.js:119 #: ../js/ui/status/power.js:119
msgid "UPS" msgid "UPS"
@ -1660,7 +1626,6 @@ msgid "Airplane Mode"
msgstr "ઍરપ્લેન સ્થિતિ" msgstr "ઍરપ્લેન સ્થિતિ"
#: ../js/ui/status/rfkill.js:85 #: ../js/ui/status/rfkill.js:85
#| msgid "Open"
msgid "On" msgid "On"
msgstr "ચાલુ" msgstr "ચાલુ"
@ -1674,7 +1639,7 @@ msgstr "બહાર નીકળો"
#: ../js/ui/status/system.js:341 #: ../js/ui/status/system.js:341
msgid "Orientation Lock" msgid "Orientation Lock"
msgstr "" msgstr "દિશા તાળુ"
#: ../js/ui/status/system.js:349 #: ../js/ui/status/system.js:349
msgid "Suspend" msgid "Suspend"
@ -1704,17 +1669,16 @@ msgstr "બીજા વપરાશકર્તા તરીકે પ્રવ
msgid "Unlock Window" msgid "Unlock Window"
msgstr "વિન્ડોનું તાળુ ખોલો" msgstr "વિન્ડોનું તાળુ ખોલો"
#: ../js/ui/viewSelector.js:232 #: ../js/ui/viewSelector.js:158
msgid "Applications" msgid "Applications"
msgstr "કાર્યક્રમો" msgstr "કાર્યક્રમો"
#: ../js/ui/viewSelector.js:236 #: ../js/ui/viewSelector.js:162
msgid "Search" msgid "Search"
msgstr "શોધો" msgstr "શોધો"
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, javascript-format #, javascript-format
#| msgid "'%s' is ready"
msgid "“%s” is ready" msgid "“%s” is ready"
msgstr "“%s” તૈયાર છે" msgstr "“%s” તૈયાર છે"
@ -1726,20 +1690,19 @@ msgstr "શું તમને આ દર્શાવ સુયોજનોન
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #. */
#: ../js/ui/windowManager.js:84 #: ../js/ui/windowManager.js:84
#| msgid "Power Settings"
msgid "Revert Settings" msgid "Revert Settings"
msgstr "સુયોજનોને પાછા લાવો" msgstr "સુયોજનોને પાછા લાવો"
#: ../js/ui/windowManager.js:88 #: ../js/ui/windowManager.js:88
msgid "Keep Changes" msgid "Keep Changes"
msgstr "" msgstr "ફેરફારો કરો"
#: ../js/ui/windowManager.js:107 #: ../js/ui/windowManager.js:107
#, javascript-format #, javascript-format
msgid "Settings changes will revert in %d second" msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds" msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "" msgstr[0] "સુયોજન ફેરફારો એ %d સેકંડમાં પાછા આવશે"
msgstr[1] "" msgstr[1] "સુયોજન ફેરફારો એ %d સેકંડોમાં પાછા આવશે"
#: ../js/ui/windowMenu.js:34 #: ../js/ui/windowMenu.js:34
msgid "Minimize" msgid "Minimize"
@ -1807,25 +1770,24 @@ msgstr[1] "%u ઇનપુટો"
msgid "System Sounds" msgid "System Sounds"
msgstr "સિસ્ટમ અવાજો" msgstr "સિસ્ટમ અવાજો"
#: ../src/main.c:371 #: ../src/main.c:373
msgid "Print version" msgid "Print version"
msgstr "ા" msgstr "ા"
#: ../src/main.c:377 #: ../src/main.c:379
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "લૉગિન સ્ક્રીન માટે GDM દ્દારા વાપરેલ સ્થિતિ" msgstr "લૉગિન સ્ક્રીન માટે GDM દ્દારા વાપરેલ સ્થિતિ"
#: ../src/main.c:383 #: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "ખાસ સ્થિતિને વાપરો, દા.ત. પ્રવેશ સ્ક્રીન માટે \"gdm\"" msgstr "ખાસ સ્થિતિને વાપરો, દા.ત. પ્રવેશ સ્ક્રીન માટે \"gdm\""
#: ../src/main.c:389 #: ../src/main.c:391
msgid "List possible modes" msgid "List possible modes"
msgstr "શક્ય સ્થિતિઓની યાદી કરો" msgstr "શક્ય સ્થિતિઓની યાદી કરો"
#: ../src/shell-app.c:666 #: ../src/shell-app.c:666
#, c-format #, c-format
#| msgid "Failed to launch '%s'"
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "“%s” ને શરૂ કરવામાં નિષ્ફળતા" msgstr "“%s” ને શરૂ કરવામાં નિષ્ફળતા"

113
po/hi.po
View File

@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell.master.hi\n" "Project-Id-Version: gnome-shell.master.hi\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-09-19 07:33+0000\n" "POT-Creation-Date: 2014-09-19 19:40+0000\n"
"PO-Revision-Date: 2014-09-19 21:36+0630\n" "PO-Revision-Date: 2014-09-23 15:37+0630\n"
"Last-Translator: rajesh <rajesh>\n" "Last-Translator: rajesh <rajesh>\n"
"Language-Team: Hindi <kde-i18n-doc@kde.org>\n" "Language-Team: Hindi <kde-i18n-doc@kde.org>\n"
"Language: hi\n" "Language: hi\n"
@ -81,16 +81,10 @@ msgstr ""
"Alt-F2 संवाद का उपयोग करके आंतरिक डिबगिंग और निगरानी उपकरण तक पहुँच पायें." "Alt-F2 संवाद का उपयोग करके आंतरिक डिबगिंग और निगरानी उपकरण तक पहुँच पायें."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.in.h:3
#| msgid "Uuids of extensions to enable"
msgid "UUIDs of extensions to enable" msgid "UUIDs of extensions to enable"
msgstr "एक्सटेंशन का UUIDs सक्रिय किया जाना है" msgstr "एक्सटेंशन का UUIDs सक्रिय किया जाना है"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4 #: ../data/org.gnome.shell.gschema.xml.in.in.h:4
#| msgid ""
#| "GNOME Shell extensions have a uuid property; this key lists extensions "
#| "which should be loaded. Any extension that wants to be loaded needs to be "
#| "in this list. You can also manipulate this list with the EnableExtension "
#| "and DisableExtension DBus methods on org.gnome.Shell."
msgid "" msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions which " "GNOME Shell extensions have a UUID property; this key lists extensions which "
"should be loaded. Any extension that wants to be loaded needs to be in this " "should be loaded. Any extension that wants to be loaded needs to be in this "
@ -107,7 +101,7 @@ msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5 #: ../data/org.gnome.shell.gschema.xml.in.in.h:5
msgid "Disables the validation of extension version compatibility" msgid "Disables the validation of extension version compatibility"
msgstr "" msgstr "विस्तार संस्करण संगतता के वैधीकरण को निष्क्रिय करता है"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:6 #: ../data/org.gnome.shell.gschema.xml.in.in.h:6
msgid "" msgid ""
@ -115,6 +109,10 @@ msgid ""
"running version. Enabling this option will disable this check and try to " "running version. Enabling this option will disable this check and try to "
"load all extensions regardless of the versions they claim to support." "load all extensions regardless of the versions they claim to support."
msgstr "" msgstr ""
"गनोम शेल केवल वही विस्तार लोड करेगा जो मौजूदा कार्यशील संस्करण के समर्थन का "
"दावा करता है. इस विकल्प का सक्रिय करना इस चेक को निष्क्रिय करेगा और सभी "
"विस्तार को लोड करने की कोशिश करेगा उन संस्करण से अलग जिसके समर्थन का वे दावा "
"करते हैं."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7 #: ../data/org.gnome.shell.gschema.xml.in.in.h:7
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
@ -133,7 +131,7 @@ msgstr "एप्प पिकर दृश्य"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:10 #: ../data/org.gnome.shell.gschema.xml.in.in.h:10
msgid "Index of the currently selected view in the application picker." msgid "Index of the currently selected view in the application picker."
msgstr "" msgstr "अनुप्रयोग पिकर में मौजूदा चयनित दृश्य की सूची."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11 #: ../data/org.gnome.shell.gschema.xml.in.in.h:11
msgid "History for command (Alt-F2) dialog" msgid "History for command (Alt-F2) dialog"
@ -144,14 +142,10 @@ msgid "History for the looking glass dialog"
msgstr "ग्लास खोज संवाद के लिए इतिहास" msgstr "ग्लास खोज संवाद के लिए इतिहास"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.in.h:13
#| msgid "Always show the 'Log out' menuitem in the user menu."
msgid "Always show the 'Log out' menu item in the user menu." msgid "Always show the 'Log out' menu item in the user menu."
msgstr "हमेशा 'लॉग आउट' मेन्यू मद को उपयोक्ता मेन्यू में दिखाएँ." msgstr "हमेशा 'लॉग आउट' मेन्यू मद को उपयोक्ता मेन्यू में दिखाएँ."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.in.h:14
#| msgid ""
#| "This key overrides the automatic hiding of the 'Log out' menuitem in "
#| "single-user, single-session situations."
msgid "" msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-" "This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations." "user, single-session situations."
@ -206,16 +200,14 @@ msgstr ""
"कीबाइंडिंग" "कीबाइंडिंग"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
#, fuzzy
#| msgid "Keybinding to open the \"Show Applications\" view" #| msgid "Keybinding to open the \"Show Applications\" view"
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "\"अनुप्रयोग दिखाएँ\" दृश्य खोलने के लिए खोलने के लिए कीबाइंडिंग" msgstr "सारांश खोलने के लिए कीबाइंडिंग"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24 #: ../data/org.gnome.shell.gschema.xml.in.in.h:24
#, fuzzy
#| msgid "Keybinding to open the \"Show Applications\" view" #| msgid "Keybinding to open the \"Show Applications\" view"
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "\"अनुप्रयोग दिखाएँ\" दृश्य खोलने के लिए खोलने के लिए कीबाइंडिंग" msgstr "गतिविधि सारांश खोलने के लिए कीबाइंडिंग"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25 #: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid "Keybinding to toggle the visibility of the message tray" msgid "Keybinding to toggle the visibility of the message tray"
@ -237,6 +229,8 @@ msgstr "सक्रिय अधिसूचना फोकस करने
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"डिबगिंग उद्देश्य के लिए कीबाइंडिंग जो सभी कार्यशील ट्विन्स को रोकता है और "
"पुनर्बहाल करता है"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Which keyboard to use" msgid "Which keyboard to use"
@ -248,13 +242,15 @@ msgstr "उपयोग करने के लिए कीबोर्ड क
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "" msgstr "मौजूदा कार्यस्थान में स्विचर सीमित करें."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
msgstr "" msgstr ""
"यदि सही है, मौजूदा कार्यस्थान पर विंडोयुक्त अनुप्रयोग इस स्विचर में दिखेगा. "
"अन्यथा, सभी अनुप्रयोग शामिल किए जाते हैं."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The application icon mode." msgid "The application icon mode."
@ -276,6 +272,8 @@ msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
msgstr "" msgstr ""
"यदि सही है, मौजूदा कार्यस्थान से आनेवाला विंडो इस स्विचर में दिखेगा. अन्यथा, "
"सभी विंडो शामिल किए जाते हैं."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
@ -315,7 +313,6 @@ msgid "There was an error loading the preferences dialog for %s:"
msgstr "%s के लिए वरीयता संवाद लोड करने में एक त्रुटि थी:" msgstr "%s के लिए वरीयता संवाद लोड करने में एक त्रुटि थी:"
#: ../js/extensionPrefs/main.js:155 #: ../js/extensionPrefs/main.js:155
#| msgid "Configure GNOME Shell Extensions"
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "गनोम शेल एक्सटेंशन" msgstr "गनोम शेल एक्सटेंशन"
@ -341,7 +338,6 @@ msgid "Sign In"
msgstr "साइन इन" msgstr "साइन इन"
#: ../js/gdm/loginDialog.js:269 #: ../js/gdm/loginDialog.js:269
#| msgid "Switch Session"
msgid "Choose Session" msgid "Choose Session"
msgstr "सत्र चुनें" msgstr "सत्र चुनें"
@ -381,18 +377,16 @@ msgstr "कमांड का विश्लेषण नहीं कर स
#: ../js/misc/util.js:156 #: ../js/misc/util.js:156
#, javascript-format #, javascript-format
#| msgid "Execution of '%s' failed:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "“%s” का निष्पादन विफल:" msgstr "“%s” का निष्पादन विफल:"
#: ../js/portalHelper/main.js:85 #: ../js/portalHelper/main.js:85
#| msgid "Authentication Required"
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "वेब सत्यापन रिडायरेक्ट" msgstr "वेब सत्यापन रिडायरेक्ट"
#: ../js/ui/appDisplay.js:772 #: ../js/ui/appDisplay.js:772
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "" msgstr "बारंबार उपयोग वाला अनुप्रयोग यहाँ प्रकट होगा"
#: ../js/ui/appDisplay.js:883 #: ../js/ui/appDisplay.js:883
msgid "Frequent" msgid "Frequent"
@ -402,20 +396,19 @@ msgstr "बारंबार"
msgid "All" msgid "All"
msgstr "सभी" msgstr "सभी"
#: ../js/ui/appDisplay.js:1789 #: ../js/ui/appDisplay.js:1790
msgid "New Window" msgid "New Window"
msgstr "नया विंडो" msgstr "नया विंडो"
#: ../js/ui/appDisplay.js:1815 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1816 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "पसंदीदा से हटाएँ" msgstr "पसंदीदा से हटाएँ"
#: ../js/ui/appDisplay.js:1821 #: ../js/ui/appDisplay.js:1822
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "पसंदीदा में जोड़ें" msgstr "पसंदीदा में जोड़ें"
#: ../js/ui/appDisplay.js:1830 #: ../js/ui/appDisplay.js:1831
#| msgid "Show Text"
msgid "Show Details" msgid "Show Details"
msgstr "विवरण दिखाएँ" msgstr "विवरण दिखाएँ"
@ -659,9 +652,6 @@ msgstr "बेतार संजाल के द्वारा सत्य
#: ../js/ui/components/networkAgent.js:319 #: ../js/ui/components/networkAgent.js:319
#, javascript-format #, javascript-format
#| msgid ""
#| "Passwords or encryption keys are required to access the wireless network "
#| "'%s'."
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
"“%s”." "“%s”."
@ -697,7 +687,6 @@ msgstr "मोबाइल ब्रॉडबैंज संजाल कूट
#: ../js/ui/components/networkAgent.js:346 #: ../js/ui/components/networkAgent.js:346
#, javascript-format #, javascript-format
#| msgid "A password is required to connect to '%s'."
msgid "A password is required to connect to “%s”." msgid "A password is required to connect to “%s”."
msgstr "“%s” में कनेक्ट होने के लिए एक कूटशब्द जरूरी है." msgstr "“%s” में कनेक्ट होने के लिए एक कूटशब्द जरूरी है."
@ -753,14 +742,12 @@ msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:960 #: ../js/ui/components/telepathyClient.js:960
#| msgid "<b>Yesterday</b>, <b>%H:%M</b>"
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "कल %H%M" msgstr "कल %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:967 #: ../js/ui/components/telepathyClient.js:967
#| msgid "%A, %B %d"
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
@ -780,8 +767,6 @@ msgstr "%B %d %Y, %H%M"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:986 #: ../js/ui/components/telepathyClient.js:986
#| msgctxt "event list time"
#| msgid "%l:%M %p"
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
@ -794,7 +779,6 @@ msgstr "कल, %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1000 #: ../js/ui/components/telepathyClient.js:1000
#| msgid "%a %l:%M %p"
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
@ -802,7 +786,6 @@ msgstr "%A, %l%M %p"
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1007 #: ../js/ui/components/telepathyClient.js:1007
#| msgid "%a %b %e, %l:%M %p"
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%B %d, %l%M %p" msgstr "%B %d, %l%M %p"
@ -810,7 +793,6 @@ msgstr "%B %d, %l%M %p"
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1013 #: ../js/ui/components/telepathyClient.js:1013
#| msgid "%a %b %e, %l:%M %p"
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%B %d %Y, %l%M %p" msgstr "%B %d %Y, %l%M %p"
@ -1069,7 +1051,6 @@ msgid "Power Off"
msgstr "बंद करें" msgstr "बंद करें"
#: ../js/ui/endSessionDialog.js:85 #: ../js/ui/endSessionDialog.js:85
#| msgid "Install Updates & Restart"
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "अद्यतन संस्थापित करें और बंद करें" msgstr "अद्यतन संस्थापित करें और बंद करें"
@ -1109,20 +1090,21 @@ msgstr[0] "यह तंत्र %d सेकेंड में स्वत
msgstr[1] "यह तंत्र %d सेकेंडों में स्वतः फिर आरंभ हो जाएगा." msgstr[1] "यह तंत्र %d सेकेंडों में स्वतः फिर आरंभ हो जाएगा."
#: ../js/ui/endSessionDialog.js:119 #: ../js/ui/endSessionDialog.js:119
#| msgid "Install Updates & Restart"
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "अद्यतन संस्थापित करें और फिर आरंभ करें" msgstr "अद्यतन संस्थापित करें और फिर आरंभ करें"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:121
#, fuzzy, javascript-format #, javascript-format
#| msgid "The system will restart automatically in %d second." #| msgid "The system will restart automatically in %d second."
#| msgid_plural "The system will restart automatically in %d seconds." #| msgid_plural "The system will restart automatically in %d seconds."
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
"The system will automatically restart and install updates in %d seconds." "The system will automatically restart and install updates in %d seconds."
msgstr[0] "यह तंत्र %d सेकेंड में स्वतः फिर आरंभ हो जाएगा." msgstr[0] ""
msgstr[1] "यह तंत्र %d सेकेंडों में स्वतः फिर आरंभ हो जाएगा." "यह तंत्र %d सेकेंड में स्वतः फिर आरंभ हो जाएगा और अद्यतन संस्थापित करेगा."
msgstr[1] ""
"यह तंत्र %d सेकेंड में स्वतः फिर आरंभ हो जाएगा और अद्यतन संस्थापित करेगा."
#: ../js/ui/endSessionDialog.js:127 #: ../js/ui/endSessionDialog.js:127
msgctxt "button" msgctxt "button"
@ -1141,11 +1123,11 @@ msgstr "अद्यतन संस्थापित होने के ब
#: ../js/ui/endSessionDialog.js:338 #: ../js/ui/endSessionDialog.js:338
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "" msgstr "बैटरी ऊर्जा पर चल रहा है: अद्यतन संस्थापन के पहले प्लगिन करें."
#: ../js/ui/endSessionDialog.js:355 #: ../js/ui/endSessionDialog.js:355
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "" msgstr "कुछ अनुप्रयोग व्यस्त हैं या बिना सहेजा कार्य है."
#: ../js/ui/endSessionDialog.js:362 #: ../js/ui/endSessionDialog.js:362
msgid "Other users are logged in." msgid "Other users are logged in."
@ -1169,7 +1151,6 @@ msgstr "संस्थापित करें"
#: ../js/ui/extensionDownloader.js:204 #: ../js/ui/extensionDownloader.js:204
#, javascript-format #, javascript-format
#| msgid "Download and install '%s' from extensions.gnome.org?"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "“%s” को extensions.gnome.org से डाउनलोड कर संस्थापित करें?" msgstr "“%s” को extensions.gnome.org से डाउनलोड कर संस्थापित करें?"
@ -1320,7 +1301,6 @@ msgid "Close"
msgstr "बंद करें" msgstr "बंद करें"
#: ../js/ui/runDialog.js:277 #: ../js/ui/runDialog.js:277
#| msgid "Estimating…"
msgid "Restarting…" msgid "Restarting…"
msgstr "फिर आरंभ कर रहा है..." msgstr "फिर आरंभ कर रहा है..."
@ -1446,14 +1426,12 @@ msgstr "ब्लूटूथ सेटिंग्स"
#: ../js/ui/status/bluetooth.js:104 #: ../js/ui/status/bluetooth.js:104
#, javascript-format #, javascript-format
#| msgid "Connected (private)"
msgid "%d Connected Device" msgid "%d Connected Device"
msgid_plural "%d Connected Devices" msgid_plural "%d Connected Devices"
msgstr[0] "%d कनेक्टेड युक्ति" msgstr[0] "%d कनेक्टेड युक्ति"
msgstr[1] "%d कनेक्टेड युक्ति" msgstr[1] "%d कनेक्टेड युक्ति"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309 #: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309
#| msgid "Connect"
msgid "Not Connected" msgid "Not Connected"
msgstr "मत कनेक्ट करें" msgstr "मत कनेक्ट करें"
@ -1466,17 +1444,14 @@ msgid "Show Keyboard Layout"
msgstr "कुंजीपट लेआउट दिखाएँ" msgstr "कुंजीपट लेआउट दिखाएँ"
#: ../js/ui/status/location.js:65 #: ../js/ui/status/location.js:65
#| msgid "Notifications"
msgid "Location" msgid "Location"
msgstr "स्थान" msgstr "स्थान"
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177 #: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177
#| msgid "Disabled"
msgid "Disable" msgid "Disable"
msgstr "निष्क्रिय करें" msgstr "निष्क्रिय करें"
#: ../js/ui/status/location.js:73 #: ../js/ui/status/location.js:73
#| msgid "Power Settings"
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "गोपनीयता विन्यास" msgstr "गोपनीयता विन्यास"
@ -1485,7 +1460,6 @@ msgid "In Use"
msgstr "उपयोग में" msgstr "उपयोग में"
#: ../js/ui/status/location.js:180 #: ../js/ui/status/location.js:180
#| msgid "Enabled"
msgid "Enable" msgid "Enable"
msgstr "सक्रिय करें" msgstr "सक्रिय करें"
@ -1495,42 +1469,35 @@ msgstr "<अज्ञात>"
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307 #: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307
#: ../js/ui/status/network.js:1511 #: ../js/ui/status/network.js:1511
#| msgid "Offline"
msgid "Off" msgid "Off"
msgstr "बंद" msgstr "बंद"
#: ../js/ui/status/network.js:459 #: ../js/ui/status/network.js:459
#| msgid "Connect"
msgid "Connected" msgid "Connected"
msgstr "कनेक्टेड" msgstr "कनेक्टेड"
#. Translators: this is for network devices that are physically present but are not #. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu) */ #. under NetworkManager's control (and thus cannot be used in the menu) */
#: ../js/ui/status/network.js:463 #: ../js/ui/status/network.js:463
#| msgid "unmanaged"
msgid "Unmanaged" msgid "Unmanaged"
msgstr "अप्रबंधित" msgstr "अप्रबंधित"
#: ../js/ui/status/network.js:465 #: ../js/ui/status/network.js:465
#| msgid "disconnecting..."
msgid "Disconnecting" msgid "Disconnecting"
msgstr "डिसकनेक्ट कर रहा है" msgstr "डिसकनेक्ट कर रहा है"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301 #: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301
#| msgid "Connection"
msgid "Connecting" msgid "Connecting"
msgstr "कनेक्शन" msgstr "कनेक्शन"
#. Translators: this is for network connections that require some kind of key or password */ #. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:474 #: ../js/ui/status/network.js:474
#| msgid "authentication required"
msgid "Authentication required" msgid "Authentication required"
msgstr "सत्यापन जरूरी" msgstr "सत्यापन जरूरी"
#. Translators: this is for devices that require some kind of firmware or kernel #. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing */ #. module, which is missing */
#: ../js/ui/status/network.js:482 #: ../js/ui/status/network.js:482
#| msgid "firmware missing"
msgid "Firmware missing" msgid "Firmware missing"
msgstr "फर्मवेयर अनुपस्थित" msgstr "फर्मवेयर अनुपस्थित"
@ -1545,17 +1512,14 @@ msgid "Connection failed"
msgstr "कनेक्शन असफल" msgstr "कनेक्शन असफल"
#: ../js/ui/status/network.js:504 #: ../js/ui/status/network.js:504
#| msgid "Settings"
msgid "Wired Settings" msgid "Wired Settings"
msgstr "बेतार सेटिंग" msgstr "बेतार सेटिंग"
#: ../js/ui/status/network.js:546 ../js/ui/status/network.js:624 #: ../js/ui/status/network.js:546 ../js/ui/status/network.js:624
#| msgid "Mobile broadband"
msgid "Mobile Broadband Settings" msgid "Mobile Broadband Settings"
msgstr "मोबाइल ब्रॉडबैंड सेटिंग" msgstr "मोबाइल ब्रॉडबैंड सेटिंग"
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305 #: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
#| msgid "hardware disabled"
msgid "Hardware Disabled" msgid "Hardware Disabled"
msgstr "हार्डवेयर निष्क्रिय" msgstr "हार्डवेयर निष्क्रिय"
@ -1569,7 +1533,7 @@ msgstr "हवाई जहाज मोड चालू है"
#: ../js/ui/status/network.js:814 #: ../js/ui/status/network.js:814
msgid "Wi-Fi is disabled when airplane mode is on." msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "" msgstr "वाई-फ़ाइल निष्क्रिय है जब हवाईजहाज अवस्था चालू है."
#: ../js/ui/status/network.js:815 #: ../js/ui/status/network.js:815
msgid "Turn Off Airplane Mode" msgid "Turn Off Airplane Mode"
@ -1581,7 +1545,7 @@ msgstr "वाई फाई बंद करें"
#: ../js/ui/status/network.js:825 #: ../js/ui/status/network.js:825
msgid "Wi-Fi needs to be turned on in order to connect to a network." msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "" msgstr "वाई-फ़ाई को चलाने की जरूरत है ताकि संजाल से जोड़ा जा सके."
#: ../js/ui/status/network.js:826 #: ../js/ui/status/network.js:826
msgid "Turn On Wi-Fi" msgid "Turn On Wi-Fi"
@ -1592,7 +1556,6 @@ msgid "Wi-Fi Networks"
msgstr " वाई फाई संजाल" msgstr " वाई फाई संजाल"
#: ../js/ui/status/network.js:853 #: ../js/ui/status/network.js:853
#| msgid "Enable networking"
msgid "Select a network" msgid "Select a network"
msgstr "एक नेटवर्क चुनें" msgstr "एक नेटवर्क चुनें"
@ -1602,14 +1565,13 @@ msgstr "कोई संजाल नहीं"
#: ../js/ui/status/network.js:903 ../js/ui/status/rfkill.js:112 #: ../js/ui/status/network.js:903 ../js/ui/status/rfkill.js:112
msgid "Use hardware switch to turn off" msgid "Use hardware switch to turn off"
msgstr "" msgstr "बंद करने के लिए हार्डवेयर स्विच का उपयोग करें"
#: ../js/ui/status/network.js:1173 #: ../js/ui/status/network.js:1173
msgid "Select Network" msgid "Select Network"
msgstr "एक नेटवर्क चुनें" msgstr "एक नेटवर्क चुनें"
#: ../js/ui/status/network.js:1179 #: ../js/ui/status/network.js:1179
#| msgid "Settings"
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "वाइ फाइ सेटिंग" msgstr "वाइ फाइ सेटिंग"
@ -1639,7 +1601,6 @@ msgid "Network Settings"
msgstr "नेटवर्क सेटिंग्स" msgstr "नेटवर्क सेटिंग्स"
#: ../js/ui/status/network.js:1482 #: ../js/ui/status/network.js:1482
#| msgid "Settings"
msgid "VPN Settings" msgid "VPN Settings"
msgstr "वीपीएन सेटिंग" msgstr "वीपीएन सेटिंग"
@ -1690,7 +1651,6 @@ msgid "Airplane Mode"
msgstr "हवाई जहाज मोड" msgstr "हवाई जहाज मोड"
#: ../js/ui/status/rfkill.js:85 #: ../js/ui/status/rfkill.js:85
#| msgid "Open"
msgid "On" msgid "On"
msgstr "चालू" msgstr "चालू"
@ -1744,7 +1704,6 @@ msgstr "ढूँढें"
#: ../js/ui/windowAttentionHandler.js:19 #: ../js/ui/windowAttentionHandler.js:19
#, javascript-format #, javascript-format
#| msgid "'%s' is ready"
msgid "“%s” is ready" msgid "“%s” is ready"
msgstr "“%s” तैयार है" msgstr "“%s” तैयार है"
@ -1756,7 +1715,6 @@ msgstr "क्या आप इस प्रदर्शन जमावट क
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. */ #. */
#: ../js/ui/windowManager.js:84 #: ../js/ui/windowManager.js:84
#| msgid "Power Settings"
msgid "Revert Settings" msgid "Revert Settings"
msgstr "सेटिंग्स में वापस जाएँ" msgstr "सेटिंग्स में वापस जाएँ"
@ -1768,8 +1726,8 @@ msgstr "परिवर्तन बनाए रखें"
#, javascript-format #, javascript-format
msgid "Settings changes will revert in %d second" msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds" msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "" msgstr[0] "सेटिंग बदलाव %d सेकेंड में वापस होगा"
msgstr[1] "" msgstr[1] "सेटिंग बदलाव %d सेकेंड में वापस होगा"
#: ../js/ui/windowMenu.js:34 #: ../js/ui/windowMenu.js:34
msgid "Minimize" msgid "Minimize"
@ -1793,7 +1751,7 @@ msgstr "आकार बदलें"
#: ../js/ui/windowMenu.js:65 #: ../js/ui/windowMenu.js:65
msgid "Move Titlebar Onscreen" msgid "Move Titlebar Onscreen"
msgstr "" msgstr "ऑनस्क्रीन शीर्षकपट्टी खिसकाएँ"
#: ../js/ui/windowMenu.js:70 #: ../js/ui/windowMenu.js:70
msgid "Always on Top" msgid "Always on Top"
@ -1855,7 +1813,6 @@ msgstr "संभावित अवस्था सूचीबद्ध कर
#: ../src/shell-app.c:666 #: ../src/shell-app.c:666
#, c-format #, c-format
#| msgid "Failed to launch '%s'"
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "“%s” लॉन्च करने में विफल" msgstr "“%s” लॉन्च करने में विफल"

778
po/it.po

File diff suppressed because it is too large Load Diff

984
po/kk.po

File diff suppressed because it is too large Load Diff

949
po/lv.po

File diff suppressed because it is too large Load Diff

390
po/nb.po

File diff suppressed because it is too large Load Diff

902
po/pt.po

File diff suppressed because it is too large Load Diff

962
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

232
po/te.po
View File

@ -1,7 +1,7 @@
# Telugu translation for gnome-shell. # Telugu translation for gnome-shell.
# Copyright (C) 2011, 2012 Swecha telugu translations team <localization@swecha.net> # Copyright (C) 2011, 2012 Swecha telugu translations team <localization@swecha.net>
# This file is distributed under the same license as the gnome-shell package. # This file is distributed under the same license as the gnome-shell package.
# Krishnababu Krothapalli <kkrothap@redhat.com>, 2011, 2012, 2013. # Krishnababu Krothapalli <kkrothap@redhat.com>, 2011, 2012, 2013, 2014.
# Hari Krishna <hari@swecha.net>, 2011. # Hari Krishna <hari@swecha.net>, 2011.
# Sasi Bhushan Boddepalli <sasi@swecha.net>, 2012. # Sasi Bhushan Boddepalli <sasi@swecha.net>, 2012.
# Praveen Illa <mail2ipn@gmail.com>, 2011, 2012, 2013, 2014. # Praveen Illa <mail2ipn@gmail.com>, 2011, 2012, 2013, 2014.
@ -10,16 +10,16 @@ msgstr ""
"Project-Id-Version: gnome-shell gnome-3-0\n" "Project-Id-Version: gnome-shell gnome-3-0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-08-26 19:34+0000\n" "POT-Creation-Date: 2014-09-23 07:38+0000\n"
"PO-Revision-Date: 2014-08-27 10:45+0530\n" "PO-Revision-Date: 2014-09-23 15:55+0530\n"
"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n" "Last-Translator: Krishnababu Krothapalli <kkrothap@redhat.com>\n"
"Language-Team: indlinux-telugu@lists.sourceforge.net\n" "Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: te\n" "Language: te\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.7.1\n" "X-Generator: Lokalize 1.5\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
@ -69,14 +69,16 @@ msgstr "గ్నోమ్ షెల్ (వేల్యాండ్ సృష
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr "అభివృద్ధికారులకు మరియు పరీక్షకులకు ఉపయోగపడే సాధనాలను Alt-F2 నుండి చేతనపరుచు" msgstr ""
"అభివృద్ధికారులకు మరియు పరీక్షకులకు ఉపయోగపడే సాధనాలను Alt-F2 నుండి చేతనపరుచు"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:2 #: ../data/org.gnome.shell.gschema.xml.in.in.h:2
msgid "" msgid ""
"Allows access to internal debugging and monitoring tools using the Alt-F2 " "Allows access to internal debugging and monitoring tools using the Alt-F2 "
"dialog." "dialog."
msgstr "" msgstr ""
"Alt-F2 డైలాగుని వాడి అంతర్గత దోషశుద్ది మరియు సాధనాలను పర్యవేక్షించుటకు సౌలభ్యతను అనుమతిస్తుంది." "Alt-F2 డైలాగుని వాడి అంతర్గత దోషశుద్ది మరియు సాధనాలను పర్యవేక్షించుటకు "
"సౌలభ్యతను అనుమతిస్తుంది."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.in.h:3
msgid "UUIDs of extensions to enable" msgid "UUIDs of extensions to enable"
@ -89,8 +91,10 @@ msgid ""
"list. You can also manipulate this list with the EnableExtension and " "list. You can also manipulate this list with the EnableExtension and "
"DisableExtension D-Bus methods on org.gnome.Shell." "DisableExtension D-Bus methods on org.gnome.Shell."
msgstr "" msgstr ""
"గ్నోమ్ షెల్ పొడిగింతలు ఒక UUID లక్షణాన్ని కలిగివున్నాయి; ఏ పొడిగింతలు లోడుచేయదగినవి కాదో ఈ కీ జాబితాచేయును. " "గ్నోమ్ షెల్ పొడిగింతలు ఒక UUID లక్షణాన్ని కలిగివున్నాయి; ఏ పొడిగింతలు "
"ఏ పొడిగింత లోడవ్వాలో అది ఈ జాబితా నందు ఉండాలి. అంతేకాకుండా మీరు ఈ జాబితాను పాడిగింతను చేతనపరుచు లేదా " "లోడుచేయదగినవి కాదో ఈ కీ జాబితాచేయును. "
"ఏ పొడిగింత లోడవ్వాలో అది ఈ జాబితా నందు ఉండాలి. అంతేకాకుండా మీరు ఈ జాబితాను "
"పాడిగింతను చేతనపరుచు లేదా "
"పొడిగింతను అచేతనపరుచు డిబస్ పద్ధతులలో గ్నోమ్ షెల్ నందు మార్చవచ్చును." "పొడిగింతను అచేతనపరుచు డిబస్ పద్ధతులలో గ్నోమ్ షెల్ నందు మార్చవచ్చును."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5 #: ../data/org.gnome.shell.gschema.xml.in.in.h:5
@ -103,8 +107,10 @@ msgid ""
"running version. Enabling this option will disable this check and try to " "running version. Enabling this option will disable this check and try to "
"load all extensions regardless of the versions they claim to support." "load all extensions regardless of the versions they claim to support."
msgstr "" msgstr ""
"ప్రస్తుతం నడుస్తున్న రూపాంతరం తోడ్పాటుందని పేర్కొంటేనే గ్నోమ్ షెల్ పొడిగింతలను లోడు చేస్తుంది. ఈ " "ప్రస్తుతం నడుస్తున్న రూపాంతరం తోడ్పాటుందని పేర్కొంటేనే గ్నోమ్ షెల్ "
"ఐచ్ఛికాన్ని చేతనం చేస్తే ఈ తనిఖీని అచేనించి, తోడ్పాటు ఉన్నాదా లేదా అనే విషయంతో సంబంధం లేకుండా అన్ని " "పొడిగింతలను లోడు చేస్తుంది. ఈ "
"ఐచ్ఛికాన్ని చేతనం చేస్తే ఈ తనిఖీని అచేనించి, తోడ్పాటు ఉన్నాదా లేదా అనే "
"విషయంతో సంబంధం లేకుండా అన్ని "
"పొడిగింతలను నింపుటకు ప్రయత్నిస్తుంది" "పొడిగింతలను నింపుటకు ప్రయత్నిస్తుంది"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7 #: ../data/org.gnome.shell.gschema.xml.in.in.h:7
@ -115,7 +121,8 @@ msgstr "ప్రియమైన అనువర్తనాల కోసం డ
msgid "" msgid ""
"The applications corresponding to these identifiers will be displayed in the " "The applications corresponding to these identifiers will be displayed in the "
"favorites area." "favorites area."
msgstr "ఈ గుర్తింపకాలకు అనుగుణమైన అనువర్తనాలు ప్రియమైన ప్రదేశములో ప్రదర్శించబడతాయి." msgstr ""
"ఈ గుర్తింపకాలకు అనుగుణమైన అనువర్తనాలు ప్రియమైన ప్రదేశములో ప్రదర్శించబడతాయి."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9 #: ../data/org.gnome.shell.gschema.xml.in.in.h:9
msgid "App Picker View" msgid "App Picker View"
@ -142,13 +149,16 @@ msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-" "This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations." "user, single-session situations."
msgstr "" msgstr ""
"ఏక-వాడుకరి, ఏక-ఘట్టం పరిస్థితులలో 'నిష్క్రమించు' మెనూ అంశము స్వయంచాలకంగా దాగుటను ఈ మీట భర్తీ " "ఏక-వాడుకరి, ఏక-ఘట్టం పరిస్థితులలో 'నిష్క్రమించు' మెనూ అంశము స్వయంచాలకంగా "
"దాగుటను ఈ మీట భర్తీ "
"చేస్తుంది." "చేస్తుంది."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15 #: ../data/org.gnome.shell.gschema.xml.in.in.h:15
msgid "" msgid ""
"Whether to remember password for mounting encrypted or remote filesystems" "Whether to remember password for mounting encrypted or remote filesystems"
msgstr "ఎన్క్రిప్టెడ్ లేదా రిమోట్ దస్త్రవ్యవస్థల మౌంటు చేయుటకు సంకేతపదాలను గుర్తుంచుకోవాలా" msgstr ""
"ఎన్క్రిప్టెడ్ లేదా రిమోట్ దస్త్రవ్యవస్థల మౌంటు చేయుటకు సంకేతపదాలను "
"గుర్తుంచుకోవాలా"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16 #: ../data/org.gnome.shell.gschema.xml.in.in.h:16
msgid "" msgid ""
@ -157,8 +167,10 @@ msgid ""
"'Remember Password' checkbox will be present. This key sets the default " "'Remember Password' checkbox will be present. This key sets the default "
"state of the checkbox." "state of the checkbox."
msgstr "" msgstr ""
"ఎన్క్రిప్టెడ్ పరికరం లేదా రిమోట్ దస్త్రవ్యవస్థ మౌంటవునప్పుడు షెల్ సంకేతపదం కొరకు అభ్యర్ధించును. భవిష్య " "ఎన్క్రిప్టెడ్ పరికరం లేదా రిమోట్ దస్త్రవ్యవస్థ మౌంటవునప్పుడు షెల్ సంకేతపదం "
"వినియోగం కొరకు సంకేతపదం దాయగలిగితే 'సంకేతపదం గుర్తుంచు' చెక్‌బాక్స్ వస్తుంది. ఈ కీ చెక్‌బాక్స్ యొక్క " "కొరకు అభ్యర్ధించును. భవిష్య "
"వినియోగం కొరకు సంకేతపదం దాయగలిగితే 'సంకేతపదం గుర్తుంచు' చెక్‌బాక్స్ వస్తుంది. "
"ఈ కీ చెక్‌బాక్స్ యొక్క "
"అప్రమేయ స్థితిని అమర్చును." "అప్రమేయ స్థితిని అమర్చును."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17 #: ../data/org.gnome.shell.gschema.xml.in.in.h:17
@ -184,7 +196,8 @@ msgstr "\"అనువర్తనములు చూపు\" దర్శనం
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22 #: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview." "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "కార్యకలాపాల అవలోకనం యొక్క \"అనువర్తనములు చూపించు\" వీక్షణం తెరువుటకు కీ బందనం." msgstr ""
"కార్యకలాపాల అవలోకనం యొక్క \"అనువర్తనములు చూపించు\" వీక్షణం తెరువుటకు కీ బందనం."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23 #: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
@ -214,8 +227,8 @@ msgstr "క్రియాశీల ప్రకటన ఫోకస్‌కు
msgid "" msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes" "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "" msgstr ""
"దోషవిశ్లేషణ కోసం, కీబైండింగు నడుస్తున్న అన్ని ట్వీన్లను తిరిగి కొనసాగిస్తుంది" "దోషవిశ్లేషణ కోసం, కీబైండింగు నడుస్తున్న అన్ని ట్వీన్లను తిరిగి కొనసాగిస్తుంది "
" మరియు నిలిపివేస్తుంది." "మరియు నిలిపివేస్తుంది."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30 #: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Which keyboard to use" msgid "Which keyboard to use"
@ -235,7 +248,8 @@ msgid ""
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
msgstr "" msgstr ""
"ఒకవేళ నిజమైతే, ప్రస్తుత కార్యక్షేత్రంలో ఉన్న అనువర్తనాల కిటికీలు మాత్రమే " "ఒకవేళ నిజమైతే, ప్రస్తుత కార్యక్షేత్రంలో ఉన్న అనువర్తనాల కిటికీలు మాత్రమే "
"మార్పకంలో చూపించబడతాయి. లేదంటే, అన్ని అనువర్తనాలు ఉంచబడతాయి." "మార్పకంలో చూపించబడతాయి. లేదంటే, "
"అన్ని అనువర్తనాలు ఉంచబడతాయి."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The application icon mode." msgid "The application icon mode."
@ -247,8 +261,10 @@ msgid ""
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'." "only' (shows only the application icon) or 'both'."
msgstr "" msgstr ""
"స్విచర్ నందు కిటికీలు ఎలా చూపునో ఆకృతీకరించును. చెల్లునటువంటి సాధ్యాలు 'thumbnail-only' (విండో " "స్విచర్ నందు కిటికీలు ఎలా చూపునో ఆకృతీకరించును. చెల్లునటువంటి సాధ్యాలు "
"థంబ్‌నెయిల్ చూపును), 'app-icon-only' (అనువర్తన ప్రతిమ మాత్రమే చూపును) లేదా 'both'." "'thumbnail-only' (విండో "
"థంబ్‌నెయిల్ చూపును), 'app-icon-only' (అనువర్తన ప్రతిమ మాత్రమే చూపును) లేదా "
"'both'."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid "" msgid ""
@ -256,7 +272,8 @@ msgid ""
"Otherwise, all windows are included." "Otherwise, all windows are included."
msgstr "" msgstr ""
"ఒకవేళ నిజమైతే, ప్రస్తుత కార్యక్షేత్రంలో ఉన్న కిటికీలు మాత్రమే మార్పకంలో " "ఒకవేళ నిజమైతే, ప్రస్తుత కార్యక్షేత్రంలో ఉన్న కిటికీలు మాత్రమే మార్పకంలో "
"చూపించబడతాయి. లేదంటే, అన్ని కిటికీలు ఉంచబడతాయి." "చూపించబడతాయి. లేదంటే, అన్ని కిటికీలు "
"ఉంచబడతాయి."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
@ -265,7 +282,9 @@ msgstr "పేరెంట్ కిటికీకు మోడల్ డైల
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "గ్నోమ్ షెల్ నందు నడుచునప్పుడు ఈ కీ org.gnome.mutter నందలి కీను వోవర్‌రైడ్ చేయును." msgstr ""
"గ్నోమ్ షెల్ నందు నడుచునప్పుడు ఈ కీ org.gnome.mutter నందలి కీను వోవర్‌రైడ్ "
"చేయును."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
@ -287,17 +306,17 @@ msgstr "మౌసు రీతిలో కేంద్రీకరణ మార
msgid "Captive Portal" msgid "Captive Portal"
msgstr "కాప్టివ్ పోర్టల్" msgstr "కాప్టివ్ పోర్టల్"
#: ../js/extensionPrefs/main.js:127 #: ../js/extensionPrefs/main.js:123
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "%s కొరకు ప్రాధాన్యతల సంభాషణను నింపుటలో అక్కడ ఒక దోషం ఉన్నది:" msgstr "%s కొరకు ప్రాధాన్యతల సంభాషణను నింపుటలో అక్కడ ఒక దోషం ఉన్నది:"
#: ../js/extensionPrefs/main.js:159 #: ../js/extensionPrefs/main.js:155
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "గ్నోమ్ షెల్ పొడిగింతలు" msgstr "గ్నోమ్ షెల్ పొడిగింతలు"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915 #: ../js/ui/status/network.js:915
msgid "Cancel" msgid "Cancel"
@ -364,40 +383,40 @@ msgstr "“%s” అమలు విఫలమైంది:"
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "జాల ధృవీకరణ దారిమార్పు" msgstr "జాల ధృవీకరణ దారిమార్పు"
#: ../js/ui/appDisplay.js:660 #: ../js/ui/appDisplay.js:772
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "తరచూ వాడే అనువర్తనాలు ఇక్కడ కనిపిస్తాయి" msgstr "తరచూ వాడే అనువర్తనాలు ఇక్కడ కనిపిస్తాయి"
#: ../js/ui/appDisplay.js:771 #: ../js/ui/appDisplay.js:883
msgid "Frequent" msgid "Frequent"
msgstr "తరచు" msgstr "తరచు"
#: ../js/ui/appDisplay.js:778 #: ../js/ui/appDisplay.js:890
msgid "All" msgid "All"
msgstr "అన్ని" msgstr "అన్ని"
#: ../js/ui/appDisplay.js:1650 #: ../js/ui/appDisplay.js:1790
msgid "New Window" msgid "New Window"
msgstr "కొత్త కిటికీ" msgstr "కొత్త కిటికీ"
#: ../js/ui/appDisplay.js:1673 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1816 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "ఇష్టాంశాల నుండి తొలగించు" msgstr "ఇష్టాంశాల నుండి తొలగించు"
#: ../js/ui/appDisplay.js:1679 #: ../js/ui/appDisplay.js:1822
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "ఇష్టాంశాలకు జతచేయి" msgstr "ఇష్టాంశాలకు జతచేయి"
#: ../js/ui/appDisplay.js:1688 #: ../js/ui/appDisplay.js:1831
msgid "Show Details" msgid "Show Details"
msgstr "వివరాలను చూపించు" msgstr "వివరాలను చూపించు"
#: ../js/ui/appFavorites.js:122 #: ../js/ui/appFavorites.js:132
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s మీ ఇష్టాంశాలకు జతచేయబడింది." msgstr "%s మీ ఇష్టాంశాలకు జతచేయబడింది."
#: ../js/ui/appFavorites.js:156 #: ../js/ui/appFavorites.js:166
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s మీ ఇష్టాంశాల నుండి తీసివేయబడింది." msgstr "%s మీ ఇష్టాంశాల నుండి తీసివేయబడింది."
@ -589,11 +608,11 @@ msgstr "%sతో తెరువు"
msgid "Eject" msgid "Eject"
msgstr "బయటకునెట్టు" msgstr "బయటకునెట్టు"
#: ../js/ui/components/keyring.js:93 ../js/ui/components/polkitAgent.js:285 #: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285
msgid "Password:" msgid "Password:"
msgstr "సంకేతపదం:" msgstr "సంకేతపదం:"
#: ../js/ui/components/keyring.js:113 #: ../js/ui/components/keyring.js:120
msgid "Type again:" msgid "Type again:"
msgstr "మళ్ళీ టంకించండి:" msgstr "మళ్ళీ టంకించండి:"
@ -635,7 +654,9 @@ msgstr "వైర్‌లెస్ నెట్‌వర్క్ చేత ధ
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
"“%s”." "“%s”."
msgstr "నిస్తంత్రి నెట్‌వర్కు “%s” ప్రాప్యించుటకు సంకేతపదాలు లేదా ఎన్క్రిప్షన్ మీటలు అవసరం." msgstr ""
"నిస్తంత్రి నెట్‌వర్కు “%s” ప్రాప్యించుటకు సంకేతపదాలు లేదా ఎన్క్రిప్షన్ మీటలు "
"అవసరం."
#: ../js/ui/components/networkAgent.js:323 #: ../js/ui/components/networkAgent.js:323
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
@ -933,14 +954,16 @@ msgstr "ధృవీకరణపత్రం కొట్టివేయబడ
msgid "" msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "" msgstr ""
"ధృవీకరణపత్రం సురక్షితం కాని సైఫర్ ఆల్గార్దెమ్ వుపయోగించుచున్నది లేదా క్రిప్టోగ్రఫీ పరంగా బలహీనంగా వుంది" "ధృవీకరణపత్రం సురక్షితం కాని సైఫర్ ఆల్గార్దెమ్ వుపయోగించుచున్నది లేదా "
"క్రిప్టోగ్రఫీ పరంగా బలహీనంగా వుంది"
#: ../js/ui/components/telepathyClient.js:1381 #: ../js/ui/components/telepathyClient.js:1381
msgid "" msgid ""
"The length of the server certificate, or the depth of the server certificate " "The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library" "chain, exceed the limits imposed by the cryptography library"
msgstr "" msgstr ""
"సేవిక ధృవీకరణపత్రం యొక్క పొడవు, లేదా సేవిక ధృవీకరణపత్రం చైన్ యొక్క లోతు, క్రిప్టోగ్రఫీ లైబ్రరీ చేత " "సేవిక ధృవీకరణపత్రం యొక్క పొడవు, లేదా సేవిక ధృవీకరణపత్రం చైన్ యొక్క లోతు, "
"క్రిప్టోగ్రఫీ లైబ్రరీ చేత "
"నిర్దేశితమైన పరిమితులను మించును" "నిర్దేశితమైన పరిమితులను మించును"
#: ../js/ui/components/telepathyClient.js:1383 #: ../js/ui/components/telepathyClient.js:1383
@ -962,7 +985,7 @@ msgstr "ఖాతాను చూడండి"
msgid "Unknown reason" msgid "Unknown reason"
msgstr "తెలియని కారణం" msgstr "తెలియని కారణం"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:228 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154
msgid "Windows" msgid "Windows"
msgstr "కిటికీలు" msgstr "కిటికీలు"
@ -993,128 +1016,132 @@ msgstr "తేదీ మరియు సమయం అమరికలు"
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%A %B %e, %Y" msgstr "%A %B %e, %Y"
#: ../js/ui/endSessionDialog.js:66 #: ../js/ui/endSessionDialog.js:64
#, javascript-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "%s నిష్క్రమించు" msgstr "%s నిష్క్రమించు"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:65
msgctxt "title" msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "నిష్క్రమించు" msgstr "నిష్క్రమించు"
#: ../js/ui/endSessionDialog.js:69 #: ../js/ui/endSessionDialog.js:67
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s స్వయంచాలకంగా %d సెకనులో నిష్క్రమించును." msgstr[0] "%s స్వయంచాలకంగా %d సెకనులో నిష్క్రమించును."
msgstr[1] "%s స్వయంచాలకంగా %d సెకనులలో నిష్క్రమించును." msgstr[1] "%s స్వయంచాలకంగా %d సెకనులలో నిష్క్రమించును."
#: ../js/ui/endSessionDialog.js:74 #: ../js/ui/endSessionDialog.js:72
#, javascript-format #, javascript-format
msgid "You will be logged out automatically in %d second." msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds." msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "మీరు %d సెకనులో స్వయంచాలకంగా నిష్క్రమిస్తారు." msgstr[0] "మీరు %d సెకనులో స్వయంచాలకంగా నిష్క్రమిస్తారు."
msgstr[1] "మీరు %d సెకనులలో స్వయంచాలకంగా నిష్క్రమిస్తారు." msgstr[1] "మీరు %d సెకనులలో స్వయంచాలకంగా నిష్క్రమిస్తారు."
#: ../js/ui/endSessionDialog.js:80 #: ../js/ui/endSessionDialog.js:78
msgctxt "button" msgctxt "button"
msgid "Log Out" msgid "Log Out"
msgstr "నిష్క్రమించు" msgstr "నిష్క్రమించు"
#: ../js/ui/endSessionDialog.js:86 #: ../js/ui/endSessionDialog.js:84
msgctxt "title" msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "విద్యుత్ ఆపు" msgstr "విద్యుత్ ఆపు"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:85
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "నవీకరణలను స్థాపించి, విద్యుత్ ఆపు" msgstr "నవీకరణలను స్థాపించి, విద్యుత్ ఆపు"
#: ../js/ui/endSessionDialog.js:89 #: ../js/ui/endSessionDialog.js:87
#, javascript-format #, javascript-format
msgid "The system will power off automatically in %d second." msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds." msgid_plural "The system will power off automatically in %d seconds."
msgstr[0] "%d సెకన్లలో వ్యవస్థ స్వయంచాలకంగా ఆపివేయబడుతుంది." msgstr[0] "%d సెకన్లలో వ్యవస్థ స్వయంచాలకంగా ఆపివేయబడుతుంది."
msgstr[1] "%d సెకన్లలో వ్యవస్థ స్వయంచాలకంగా ఆపివేయబడుతుంది." msgstr[1] "%d సెకన్లలో వ్యవస్థ స్వయంచాలకంగా ఆపివేయబడుతుంది."
#: ../js/ui/endSessionDialog.js:93 #: ../js/ui/endSessionDialog.js:91
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "పెండింగులో ఉన్న సాఫ్ట్‌వేర్ నవీకరణలను స్థాపించు" msgstr "పెండింగులో ఉన్న సాఫ్ట్‌వేర్ నవీకరణలను స్థాపించు"
#: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113 #: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
msgctxt "button" msgctxt "button"
msgid "Restart" msgid "Restart"
msgstr "పునఃప్రారంభించు" msgstr "పునఃప్రారంభించు"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:96
msgctxt "button" msgctxt "button"
msgid "Power Off" msgid "Power Off"
msgstr "విద్యుత్ ఆపు" msgstr "విద్యుత్ ఆపు"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:103
msgctxt "title" msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "పునఃప్రారంభించు" msgstr "పునఃప్రారంభించు"
#: ../js/ui/endSessionDialog.js:107 #: ../js/ui/endSessionDialog.js:105
#, javascript-format #, javascript-format
msgid "The system will restart automatically in %d second." msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds." msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "%d సెకనులో వ్యవస్థ స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది." msgstr[0] "%d సెకనులో వ్యవస్థ స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది."
msgstr[1] "%d సెకనులలో వ్యవస్థ స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది." msgstr[1] "%d సెకనులలో వ్యవస్థ స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది."
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:119
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "నవీకరణలను స్థాపించి, పునఃప్రారంభించు" msgstr "నవీకరణలను స్థాపించి, పునఃప్రారంభించు"
#: ../js/ui/endSessionDialog.js:123 #: ../js/ui/endSessionDialog.js:121
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
"The system will automatically restart and install updates in %d seconds." "The system will automatically restart and install updates in %d seconds."
msgstr[0] "%d క్షణాలలో నవీకరణలను స్థాపించి, వ్యవస్థ స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది." msgstr[0] ""
msgstr[1] "%d క్షణాలలో నవీకరణలను స్థాపించి, వ్యవస్థ స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది." "%d క్షణాలలో నవీకరణలను స్థాపించి, వ్యవస్థ స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది."
msgstr[1] ""
"%d క్షణాలలో నవీకరణలను స్థాపించి, వ్యవస్థ స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది."
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:127
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "పునఃప్రారంభించి &amp; స్థాపించు" msgstr "పునఃప్రారంభించి &amp; స్థాపించు"
#: ../js/ui/endSessionDialog.js:130 #: ../js/ui/endSessionDialog.js:128
msgctxt "button" msgctxt "button"
msgid "Install &amp; Power Off" msgid "Install &amp; Power Off"
msgstr "స్థాపించి &amp; విద్యుత్ ఆపు" msgstr "స్థాపించి &amp; విద్యుత్ ఆపు"
#: ../js/ui/endSessionDialog.js:131 #: ../js/ui/endSessionDialog.js:129
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "నవీకరణలు స్థాపించిన తరువాత విద్యుత్ ఆపు" msgstr "నవీకరణలు స్థాపించిన తరువాత విద్యుత్ ఆపు"
#: ../js/ui/endSessionDialog.js:315 #: ../js/ui/endSessionDialog.js:338
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "బ్యాటరీ శక్తితో నడుస్తూంది: దయచేసి నవీకరణలు స్థాపించే ముందు విద్యుత్ అనుసంధానించండి." msgstr ""
"బ్యాటరీ శక్తితో నడుస్తూంది: దయచేసి నవీకరణలు స్థాపించే ముందు విద్యుత్ "
"అనుసంధానించండి."
#: ../js/ui/endSessionDialog.js:332 #: ../js/ui/endSessionDialog.js:355
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "కొన్ని అనువర్తనాలు బిజీగా ఉన్నాయి లేదా భద్రపరుచని పని ఉండిపోయింది." msgstr "కొన్ని అనువర్తనాలు బిజీగా ఉన్నాయి లేదా భద్రపరుచని పని ఉండిపోయింది."
#: ../js/ui/endSessionDialog.js:339 #: ../js/ui/endSessionDialog.js:362
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "వేరే వాడుకరులు లాగిన్ అయివున్నారు." msgstr "వేరే వాడుకరులు లాగిన్ అయివున్నారు."
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:619 #: ../js/ui/endSessionDialog.js:640
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (రిమోట్)" msgstr "%s (రిమోట్)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:622 #: ../js/ui/endSessionDialog.js:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (కన్సోల్)" msgstr "%s (కన్సోల్)"
@ -1128,7 +1155,7 @@ msgstr "స్థాపించు"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "extensions.gnome.org నుండి “%s” దింపుకొని, స్థాపించాలా?" msgstr "extensions.gnome.org నుండి “%s” దింపుకొని, స్థాపించాలా?"
#: ../js/ui/keyboard.js:653 ../js/ui/status/keyboard.js:339 #: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523
msgid "Keyboard" msgid "Keyboard"
msgstr "కీబోర్డు" msgstr "కీబోర్డు"
@ -1150,8 +1177,8 @@ msgstr "దోషాలను దాయి"
msgid "Show Errors" msgid "Show Errors"
msgstr "దోషాలను చూపించు" msgstr "దోషాలను చూపించు"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:62 #: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71
#: ../js/ui/status/location.js:166 #: ../js/ui/status/location.js:176
msgid "Enabled" msgid "Enabled"
msgstr "చేతనమైనది" msgstr "చేతనమైనది"
@ -1159,7 +1186,7 @@ msgstr "చేతనమైనది"
#. because it's disabled by rfkill (airplane mode) */ #. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:169 #: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "అచేతనమైనది" msgstr "అచేతనమైనది"
@ -1184,39 +1211,39 @@ msgstr "మూలాన్ని చూడు"
msgid "Web Page" msgid "Web Page"
msgstr "జాల పుట" msgstr "జాల పుట"
#: ../js/ui/messageTray.js:1325 #: ../js/ui/messageTray.js:1327
msgid "Open" msgid "Open"
msgstr "తెరువు" msgstr "తెరువు"
#: ../js/ui/messageTray.js:1332 #: ../js/ui/messageTray.js:1334
msgid "Remove" msgid "Remove"
msgstr "తీసివేయి" msgstr "తీసివేయి"
#: ../js/ui/messageTray.js:1629 #: ../js/ui/messageTray.js:1631
msgid "Notifications" msgid "Notifications"
msgstr "ప్రకటనలు" msgstr "ప్రకటనలు"
#: ../js/ui/messageTray.js:1636 #: ../js/ui/messageTray.js:1638
msgid "Clear Messages" msgid "Clear Messages"
msgstr "సందేశాలు తుడిచివేయి" msgstr "సందేశాలు తుడిచివేయి"
#: ../js/ui/messageTray.js:1655 #: ../js/ui/messageTray.js:1657
msgid "Notification Settings" msgid "Notification Settings"
msgstr "ప్రకటనల అమరికలు" msgstr "ప్రకటనల అమరికలు"
#: ../js/ui/messageTray.js:1708 #: ../js/ui/messageTray.js:1710
msgid "Tray Menu" msgid "Tray Menu"
msgstr "పళ్ళెం జాబితా" msgstr "పళ్ళెం జాబితా"
#: ../js/ui/messageTray.js:1925 #: ../js/ui/messageTray.js:1934
msgid "No Messages" msgid "No Messages"
msgstr "సందేశాలు లేవు" msgstr "సందేశాలు లేవు"
#: ../js/ui/messageTray.js:1963 #: ../js/ui/messageTray.js:1979
msgid "Message Tray" msgid "Message Tray"
msgstr "సందేశ పళ్ళెం" msgstr "సందేశ పళ్ళెం"
#: ../js/ui/messageTray.js:2966 #: ../js/ui/messageTray.js:2992
msgid "System Information" msgid "System Information"
msgstr "వ్యవస్థ సమాచారం" msgstr "వ్యవస్థ సమాచారం"
@ -1244,7 +1271,7 @@ msgstr "పర్యావలోకనం"
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters. */
#: ../js/ui/overview.js:250 #: ../js/ui/overview.js:246
msgid "Type to search…" msgid "Type to search…"
msgstr "వెతకడానికి టైపు చేయండి…" msgstr "వెతకడానికి టైపు చేయండి…"
@ -1307,27 +1334,27 @@ msgstr "తాళం వేయలేకపోతూంది"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "తాళం ఒక అనువర్తనం చేత నిరోధించబడింది" msgstr "తాళం ఒక అనువర్తనం చేత నిరోధించబడింది"
#: ../js/ui/search.js:606 #: ../js/ui/search.js:594
msgid "Searching…" msgid "Searching…"
msgstr "వెతుకుతోంది..." msgstr "వెతుకుతోంది..."
#: ../js/ui/search.js:652 #: ../js/ui/search.js:596
msgid "No results." msgid "No results."
msgstr "ఏ ఫలితాలు లేవు." msgstr "ఏ ఫలితాలు లేవు."
#: ../js/ui/shellEntry.js:27 #: ../js/ui/shellEntry.js:25
msgid "Copy" msgid "Copy"
msgstr "నకలించు" msgstr "నకలించు"
#: ../js/ui/shellEntry.js:32 #: ../js/ui/shellEntry.js:30
msgid "Paste" msgid "Paste"
msgstr "అతికించు" msgstr "అతికించు"
#: ../js/ui/shellEntry.js:99 #: ../js/ui/shellEntry.js:97
msgid "Show Text" msgid "Show Text"
msgstr "పాఠం చూపించు" msgstr "పాఠం చూపించు"
#: ../js/ui/shellEntry.js:101 #: ../js/ui/shellEntry.js:99
msgid "Hide Text" msgid "Hide Text"
msgstr "పాఠ్యం దాయి" msgstr "పాఠ్యం దాయి"
@ -1413,23 +1440,28 @@ msgstr "అనుసంధానించబడలేదు"
msgid "Brightness" msgid "Brightness"
msgstr "ప్రకాశత" msgstr "ప్రకాశత"
#: ../js/ui/status/keyboard.js:406 #: ../js/ui/status/keyboard.js:547
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "కీబోర్డు నమూనాను చూపించు" msgstr "కీబోర్డు నమూనాను చూపించు"
#: ../js/ui/status/location.js:56 #: ../js/ui/status/location.js:65
msgid "Location" msgid "Location"
msgstr "స్థానం" msgstr "స్థానం"
#: ../js/ui/status/location.js:63 ../js/ui/status/location.js:167 #: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177
msgid "Disable" msgid "Disable"
msgstr "అచేతనించు" msgstr "అచేతనించు"
#: ../js/ui/status/location.js:166 #: ../js/ui/status/location.js:73
#| msgid "Power Settings"
msgid "Privacy Settings"
msgstr "గోప్యతా అమరికలు"
#: ../js/ui/status/location.js:176
msgid "In Use" msgid "In Use"
msgstr "వాడుకలో వుంది" msgstr "వాడుకలో వుంది"
#: ../js/ui/status/location.js:170 #: ../js/ui/status/location.js:180
msgid "Enable" msgid "Enable"
msgstr "చేతనించు" msgstr "చేతనించు"
@ -1664,11 +1696,11 @@ msgstr "వేరొక వాడుకరి వలె ప్రవేశిం
msgid "Unlock Window" msgid "Unlock Window"
msgstr "కిటికీ తాళంతీయి" msgstr "కిటికీ తాళంతీయి"
#: ../js/ui/viewSelector.js:232 #: ../js/ui/viewSelector.js:158
msgid "Applications" msgid "Applications"
msgstr "అనువర్తనాలు" msgstr "అనువర్తనాలు"
#: ../js/ui/viewSelector.js:236 #: ../js/ui/viewSelector.js:162
msgid "Search" msgid "Search"
msgstr "వెతుకు" msgstr "వెతుకు"
@ -1765,19 +1797,19 @@ msgstr[1] "%u ఇన్‌పుట్‌లు"
msgid "System Sounds" msgid "System Sounds"
msgstr "వ్యవస్థ శబ్దములు" msgstr "వ్యవస్థ శబ్దములు"
#: ../src/main.c:371 #: ../src/main.c:373
msgid "Print version" msgid "Print version"
msgstr "ముద్రిత రూపాంతరం" msgstr "ముద్రిత రూపాంతరం"
#: ../src/main.c:377 #: ../src/main.c:379
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "ప్రవేశ తెర కొరకు GDM చే ఉపయోగించబడిన రీతి" msgstr "ప్రవేశ తెర కొరకు GDM చే ఉపయోగించబడిన రీతి"
#: ../src/main.c:383 #: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "ఒక నిర్దిష్ట రీతిని వాడు, ఉదా. ప్రవేశ తెర కొరకు \"gdm\"" msgstr "ఒక నిర్దిష్ట రీతిని వాడు, ఉదా. ప్రవేశ తెర కొరకు \"gdm\""
#: ../src/main.c:389 #: ../src/main.c:391
msgid "List possible modes" msgid "List possible modes"
msgstr "సాధ్యమగు రీతులను జాబితాగా చేయి" msgstr "సాధ్యమగు రీతులను జాబితాగా చేయి"

File diff suppressed because it is too large Load Diff

View File

@ -9,16 +9,16 @@ msgstr ""
"Project-Id-Version: gnome-shell 3.3.90\n" "Project-Id-Version: gnome-shell 3.3.90\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-08-15 21:08+0000\n" "POT-Creation-Date: 2014-10-02 07:43+0000\n"
"PO-Revision-Date: 2014-08-19 09:31+0800\n" "PO-Revision-Date: 2014-10-02 20:02+0800\n"
"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n" "Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
"Language-Team: Chinese (Taiwan) <zh-l10n@lists.linux.org.tw>\n" "Language-Team: Chinese (Taiwan) <zh-l10n@lists.linux.org.tw>\n"
"Language: zh_TW\n" "Language: zh_TW\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 1.6.5\n" "X-Generator: Poedit 1.5.4\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@ -279,17 +279,17 @@ msgstr "在滑鼠模式中延遲焦點變更直到指標停止移動"
msgid "Captive Portal" msgid "Captive Portal"
msgstr "網頁入口管制" msgstr "網頁入口管制"
#: ../js/extensionPrefs/main.js:127 #: ../js/extensionPrefs/main.js:123
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "載入 %s 的偏好設定對話盒時發生錯誤:" msgstr "載入 %s 的偏好設定對話盒時發生錯誤:"
#: ../js/extensionPrefs/main.js:159 #: ../js/extensionPrefs/main.js:155
msgid "GNOME Shell Extensions" msgid "GNOME Shell Extensions"
msgstr "GNOME Shell 擴充功能" msgstr "GNOME Shell 擴充功能"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399 #: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915 #: ../js/ui/status/network.js:915
msgid "Cancel" msgid "Cancel"
@ -352,44 +352,44 @@ msgstr "無法分析指令:"
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "執行「%s」失敗" msgstr "執行「%s」失敗"
#: ../js/portalHelper/main.js:84 #: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect" msgid "Web Authentication Redirect"
msgstr "網頁核對重新導向" msgstr "網頁核對重新導向"
#: ../js/ui/appDisplay.js:660 #: ../js/ui/appDisplay.js:772
msgid "Frequently used applications will appear here" msgid "Frequently used applications will appear here"
msgstr "經常使用的應用程式會出現在這裡" msgstr "經常使用的應用程式會出現在這裡"
#: ../js/ui/appDisplay.js:771 #: ../js/ui/appDisplay.js:883
msgid "Frequent" msgid "Frequent"
msgstr "常用" msgstr "常用"
#: ../js/ui/appDisplay.js:778 #: ../js/ui/appDisplay.js:890
msgid "All" msgid "All"
msgstr "全部" msgstr "全部"
#: ../js/ui/appDisplay.js:1650 #: ../js/ui/appDisplay.js:1790
msgid "New Window" msgid "New Window"
msgstr "新視窗" msgstr "新視窗"
#: ../js/ui/appDisplay.js:1673 ../js/ui/dash.js:285 #: ../js/ui/appDisplay.js:1816 ../js/ui/dash.js:285
msgid "Remove from Favorites" msgid "Remove from Favorites"
msgstr "自喜好中移除" msgstr "自喜好中移除"
#: ../js/ui/appDisplay.js:1679 #: ../js/ui/appDisplay.js:1822
msgid "Add to Favorites" msgid "Add to Favorites"
msgstr "加入喜好" msgstr "加入喜好"
#: ../js/ui/appDisplay.js:1688 #: ../js/ui/appDisplay.js:1831
msgid "Show Details" msgid "Show Details"
msgstr "顯示詳細資訊" msgstr "顯示詳細資訊"
#: ../js/ui/appFavorites.js:122 #: ../js/ui/appFavorites.js:132
#, javascript-format #, javascript-format
msgid "%s has been added to your favorites." msgid "%s has been added to your favorites."
msgstr "%s 已加入您的喜好中。" msgstr "%s 已加入您的喜好中。"
#: ../js/ui/appFavorites.js:156 #: ../js/ui/appFavorites.js:166
#, javascript-format #, javascript-format
msgid "%s has been removed from your favorites." msgid "%s has been removed from your favorites."
msgstr "%s 已經從您的喜好中移除。" msgstr "%s 已經從您的喜好中移除。"
@ -581,11 +581,11 @@ msgstr "用 %s 開啟"
msgid "Eject" msgid "Eject"
msgstr "退出" msgstr "退出"
#: ../js/ui/components/keyring.js:93 ../js/ui/components/polkitAgent.js:285 #: ../js/ui/components/keyring.js:94 ../js/ui/components/polkitAgent.js:285
msgid "Password:" msgid "Password:"
msgstr "密碼: " msgstr "密碼: "
#: ../js/ui/components/keyring.js:113 #: ../js/ui/components/keyring.js:120
msgid "Type again:" msgid "Type again:"
msgstr "再輸入一次:" msgstr "再輸入一次:"
@ -707,77 +707,77 @@ msgid "Mute"
msgstr "靜音" msgstr "靜音"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:957 #: ../js/ui/components/telepathyClient.js:953
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:964 #: ../js/ui/components/telepathyClient.js:960
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "昨天 %H:%M" msgstr "昨天 %H:%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:971 #: ../js/ui/components/telepathyClient.js:967
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A %H%M" msgstr "%A %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30" */
#: ../js/ui/components/telepathyClient.js:978 #: ../js/ui/components/telepathyClient.js:974
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%m月%d日 %H%M" msgstr "%m月%d日 %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30" */
#: ../js/ui/components/telepathyClient.js:984 #: ../js/ui/components/telepathyClient.js:980
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%Y年%m月%d日 %H:%M" msgstr "%Y年%m月%d日 %H:%M"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:990 #: ../js/ui/components/telepathyClient.js:986
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%p %l%M" msgstr "%p %l%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:997 #: ../js/ui/components/telepathyClient.js:993
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "昨天 %p %l%M" msgstr "昨天 %p %l%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1004 #: ../js/ui/components/telepathyClient.js:1000
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A%p %l%M" msgstr "%A%p %l%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1011 #: ../js/ui/components/telepathyClient.js:1007
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%m月%d日%p %l%M" msgstr "%m月%d日%p %l%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1017 #: ../js/ui/components/telepathyClient.js:1013
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%Y年%m月%d日%p %l%M" msgstr "%Y年%m月%d日%p %l%M"
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. */ #. IM name. */
#: ../js/ui/components/telepathyClient.js:1049 #: ../js/ui/components/telepathyClient.js:1045
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s 現在被稱為 %s" msgstr "%s 現在被稱為 %s"
#. translators: argument is a room name like #. translators: argument is a room name like
#. * room@jabber.org for example. */ #. * room@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1153 #: ../js/ui/components/telepathyClient.js:1149
#, javascript-format #, javascript-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "邀請加入 %s" msgstr "邀請加入 %s"
@ -785,38 +785,38 @@ msgstr "邀請加入 %s"
#. translators: first argument is the name of a contact and the second #. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org #. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */ #. * for example. */
#: ../js/ui/components/telepathyClient.js:1161 #: ../js/ui/components/telepathyClient.js:1157
#, javascript-format #, javascript-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s 正在邀請您加入 %s" msgstr "%s 正在邀請您加入 %s"
#: ../js/ui/components/telepathyClient.js:1163 #: ../js/ui/components/telepathyClient.js:1159
#: ../js/ui/components/telepathyClient.js:1198 #: ../js/ui/components/telepathyClient.js:1194
#: ../js/ui/components/telepathyClient.js:1232 #: ../js/ui/components/telepathyClient.js:1228
#: ../js/ui/components/telepathyClient.js:1290 #: ../js/ui/components/telepathyClient.js:1286
msgid "Decline" msgid "Decline"
msgstr "拒絕" msgstr "拒絕"
#: ../js/ui/components/telepathyClient.js:1169 #: ../js/ui/components/telepathyClient.js:1165
#: ../js/ui/components/telepathyClient.js:1238 #: ../js/ui/components/telepathyClient.js:1234
#: ../js/ui/components/telepathyClient.js:1295 #: ../js/ui/components/telepathyClient.js:1291
msgid "Accept" msgid "Accept"
msgstr "接受" msgstr "接受"
#. translators: argument is a contact name like Alice for example. */ #. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1188 #: ../js/ui/components/telepathyClient.js:1184
#, javascript-format #, javascript-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "來自 %s 的視訊電話" msgstr "來自 %s 的視訊電話"
#. translators: argument is a contact name like Alice for example. */ #. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1191 #: ../js/ui/components/telepathyClient.js:1187
#, javascript-format #, javascript-format
msgid "Call from %s" msgid "Call from %s"
msgstr "%s 來電" msgstr "%s 來電"
#. translators: this is a button label (verb), not a noun */ #. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1205 #: ../js/ui/components/telepathyClient.js:1201
msgid "Answer" msgid "Answer"
msgstr "接聽" msgstr "接聽"
@ -825,133 +825,133 @@ msgstr "接聽"
#. * file name. The string will be something #. * file name. The string will be something
#. * like: "Alice is sending you test.ogg" #. * like: "Alice is sending you test.ogg"
#. */ #. */
#: ../js/ui/components/telepathyClient.js:1226 #: ../js/ui/components/telepathyClient.js:1222
#, javascript-format #, javascript-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s 正傳送給您 %s" msgstr "%s 正傳送給您 %s"
#. To translators: The parameter is the contact's alias */ #. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1255 #: ../js/ui/components/telepathyClient.js:1251
#, javascript-format #, javascript-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
msgstr "%s 想要得到查看您上線狀態的許可" msgstr "%s 想要得到查看您上線狀態的許可"
#: ../js/ui/components/telepathyClient.js:1341 #: ../js/ui/components/telepathyClient.js:1337
msgid "Network error" msgid "Network error"
msgstr "網路錯誤" msgstr "網路錯誤"
#: ../js/ui/components/telepathyClient.js:1343 #: ../js/ui/components/telepathyClient.js:1339
msgid "Authentication failed" msgid "Authentication failed"
msgstr "核對失敗" msgstr "核對失敗"
#: ../js/ui/components/telepathyClient.js:1345 #: ../js/ui/components/telepathyClient.js:1341
msgid "Encryption error" msgid "Encryption error"
msgstr "加密發生錯誤" msgstr "加密發生錯誤"
#: ../js/ui/components/telepathyClient.js:1347 #: ../js/ui/components/telepathyClient.js:1343
msgid "Certificate not provided" msgid "Certificate not provided"
msgstr "沒有提供憑證" msgstr "沒有提供憑證"
#: ../js/ui/components/telepathyClient.js:1349 #: ../js/ui/components/telepathyClient.js:1345
msgid "Certificate untrusted" msgid "Certificate untrusted"
msgstr "憑證不被信任" msgstr "憑證不被信任"
#: ../js/ui/components/telepathyClient.js:1351 #: ../js/ui/components/telepathyClient.js:1347
msgid "Certificate expired" msgid "Certificate expired"
msgstr "憑證已逾期" msgstr "憑證已逾期"
#: ../js/ui/components/telepathyClient.js:1353 #: ../js/ui/components/telepathyClient.js:1349
msgid "Certificate not activated" msgid "Certificate not activated"
msgstr "憑證尚未使用" msgstr "憑證尚未使用"
#: ../js/ui/components/telepathyClient.js:1355 #: ../js/ui/components/telepathyClient.js:1351
msgid "Certificate hostname mismatch" msgid "Certificate hostname mismatch"
msgstr "憑證主機名稱不符" msgstr "憑證主機名稱不符"
#: ../js/ui/components/telepathyClient.js:1357 #: ../js/ui/components/telepathyClient.js:1353
msgid "Certificate fingerprint mismatch" msgid "Certificate fingerprint mismatch"
msgstr "憑證數位指紋不符" msgstr "憑證數位指紋不符"
#: ../js/ui/components/telepathyClient.js:1359 #: ../js/ui/components/telepathyClient.js:1355
msgid "Certificate self-signed" msgid "Certificate self-signed"
msgstr "憑證為自我簽署" msgstr "憑證為自我簽署"
#: ../js/ui/components/telepathyClient.js:1361 #: ../js/ui/components/telepathyClient.js:1357
msgid "Status is set to offline" msgid "Status is set to offline"
msgstr "狀態設為離線" msgstr "狀態設為離線"
#: ../js/ui/components/telepathyClient.js:1363 #: ../js/ui/components/telepathyClient.js:1359
msgid "Encryption is not available" msgid "Encryption is not available"
msgstr "加密無法使用" msgstr "加密無法使用"
#: ../js/ui/components/telepathyClient.js:1365 #: ../js/ui/components/telepathyClient.js:1361
msgid "Certificate is invalid" msgid "Certificate is invalid"
msgstr "憑證無效" msgstr "憑證無效"
#: ../js/ui/components/telepathyClient.js:1367 #: ../js/ui/components/telepathyClient.js:1363
msgid "Connection has been refused" msgid "Connection has been refused"
msgstr "連線遭到拒絕" msgstr "連線遭到拒絕"
#: ../js/ui/components/telepathyClient.js:1369 #: ../js/ui/components/telepathyClient.js:1365
msgid "Connection can't be established" msgid "Connection can't be established"
msgstr "無法建立連線" msgstr "無法建立連線"
#: ../js/ui/components/telepathyClient.js:1371 #: ../js/ui/components/telepathyClient.js:1367
msgid "Connection has been lost" msgid "Connection has been lost"
msgstr "已失去連線" msgstr "已失去連線"
#: ../js/ui/components/telepathyClient.js:1373 #: ../js/ui/components/telepathyClient.js:1369
msgid "This account is already connected to the server" msgid "This account is already connected to the server"
msgstr "這個帳號已連接至該伺服器" msgstr "這個帳號已連接至該伺服器"
#: ../js/ui/components/telepathyClient.js:1375 #: ../js/ui/components/telepathyClient.js:1371
msgid "" msgid ""
"Connection has been replaced by a new connection using the same resource" "Connection has been replaced by a new connection using the same resource"
msgstr "連線已被使用相同資源的新連線取代" msgstr "連線已被使用相同資源的新連線取代"
#: ../js/ui/components/telepathyClient.js:1377 #: ../js/ui/components/telepathyClient.js:1373
msgid "The account already exists on the server" msgid "The account already exists on the server"
msgstr "該帳號已經存在於伺服器上" msgstr "該帳號已經存在於伺服器上"
#: ../js/ui/components/telepathyClient.js:1379 #: ../js/ui/components/telepathyClient.js:1375
msgid "Server is currently too busy to handle the connection" msgid "Server is currently too busy to handle the connection"
msgstr "伺服器目前過於忙碌以致於無法處理該連線" msgstr "伺服器目前過於忙碌以致於無法處理該連線"
#: ../js/ui/components/telepathyClient.js:1381 #: ../js/ui/components/telepathyClient.js:1377
msgid "Certificate has been revoked" msgid "Certificate has been revoked"
msgstr "憑證已被撤銷" msgstr "憑證已被撤銷"
#: ../js/ui/components/telepathyClient.js:1383 #: ../js/ui/components/telepathyClient.js:1379
msgid "" msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "憑證使用不安全的密碼演算法,或是密碼處理上較弱" msgstr "憑證使用不安全的密碼演算法,或是密碼處理上較弱"
#: ../js/ui/components/telepathyClient.js:1385 #: ../js/ui/components/telepathyClient.js:1381
msgid "" msgid ""
"The length of the server certificate, or the depth of the server certificate " "The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library" "chain, exceed the limits imposed by the cryptography library"
msgstr "伺服器憑證的長度,或是伺服器憑證鏈的深度超過密碼函式庫所能處理的範圍" msgstr "伺服器憑證的長度,或是伺服器憑證鏈的深度超過密碼函式庫所能處理的範圍"
#: ../js/ui/components/telepathyClient.js:1387 #: ../js/ui/components/telepathyClient.js:1383
msgid "Internal error" msgid "Internal error"
msgstr "內部的錯誤" msgstr "內部的錯誤"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. */ #. * name@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1397 #: ../js/ui/components/telepathyClient.js:1393
#, javascript-format #, javascript-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "無法連線到 %s" msgstr "無法連線到 %s"
#: ../js/ui/components/telepathyClient.js:1402 #: ../js/ui/components/telepathyClient.js:1398
msgid "View account" msgid "View account"
msgstr "檢視帳號" msgstr "檢視帳號"
#: ../js/ui/components/telepathyClient.js:1439 #: ../js/ui/components/telepathyClient.js:1435
msgid "Unknown reason" msgid "Unknown reason"
msgstr "不明原因" msgstr "不明原因"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:228 #: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154
msgid "Windows" msgid "Windows"
msgstr "視窗" msgstr "視窗"
@ -963,142 +963,142 @@ msgstr "顯示應用程式"
msgid "Dash" msgid "Dash"
msgstr "Dash" msgstr "Dash"
#: ../js/ui/dateMenu.js:96 #: ../js/ui/dateMenu.js:97
msgid "Open Calendar" msgid "Open Calendar"
msgstr "開啟行事曆" msgstr "開啟行事曆"
#: ../js/ui/dateMenu.js:100 #: ../js/ui/dateMenu.js:101
msgid "Open Clocks" msgid "Open Clocks"
msgstr "開啟時鐘" msgstr "開啟時鐘"
#: ../js/ui/dateMenu.js:107 #: ../js/ui/dateMenu.js:108
msgid "Date & Time Settings" msgid "Date & Time Settings"
msgstr "日期與時刻設定值" msgstr "日期與時刻設定值"
#. Translators: This is the date format to use when the calendar popup is #. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM"). #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */ #. */
#: ../js/ui/dateMenu.js:204 #: ../js/ui/dateMenu.js:132
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
msgstr "%Y年%m月%e日%A" msgstr "%Y年%m月%e日%A"
#: ../js/ui/endSessionDialog.js:66 #: ../js/ui/endSessionDialog.js:64
#, javascript-format #, javascript-format
msgctxt "title" msgctxt "title"
msgid "Log Out %s" msgid "Log Out %s"
msgstr "登出 %s" msgstr "登出 %s"
#: ../js/ui/endSessionDialog.js:67 #: ../js/ui/endSessionDialog.js:65
msgctxt "title" msgctxt "title"
msgid "Log Out" msgid "Log Out"
msgstr "登出" msgstr "登出"
#: ../js/ui/endSessionDialog.js:69 #: ../js/ui/endSessionDialog.js:67
#, javascript-format #, javascript-format
msgid "%s will be logged out automatically in %d second." msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds." msgid_plural "%s will be logged out automatically in %d seconds."
msgstr[0] "%s 會在 %d 秒後自動登出。" msgstr[0] "%s 會在 %d 秒後自動登出。"
#: ../js/ui/endSessionDialog.js:74 #: ../js/ui/endSessionDialog.js:72
#, javascript-format #, javascript-format
msgid "You will be logged out automatically in %d second." msgid "You will be logged out automatically in %d second."
msgid_plural "You will be logged out automatically in %d seconds." msgid_plural "You will be logged out automatically in %d seconds."
msgstr[0] "您會在 %d 秒後自動登出。" msgstr[0] "您會在 %d 秒後自動登出。"
#: ../js/ui/endSessionDialog.js:80 #: ../js/ui/endSessionDialog.js:78
msgctxt "button" msgctxt "button"
msgid "Log Out" msgid "Log Out"
msgstr "登出" msgstr "登出"
#: ../js/ui/endSessionDialog.js:86 #: ../js/ui/endSessionDialog.js:84
msgctxt "title" msgctxt "title"
msgid "Power Off" msgid "Power Off"
msgstr "關閉電源" msgstr "關閉電源"
#: ../js/ui/endSessionDialog.js:87 #: ../js/ui/endSessionDialog.js:85
msgctxt "title" msgctxt "title"
msgid "Install Updates & Power Off" msgid "Install Updates & Power Off"
msgstr "安裝更新並關機" msgstr "安裝更新並關機"
#: ../js/ui/endSessionDialog.js:89 #: ../js/ui/endSessionDialog.js:87
#, javascript-format #, javascript-format
msgid "The system will power off automatically in %d second." msgid "The system will power off automatically in %d second."
msgid_plural "The system will power off automatically in %d seconds." msgid_plural "The system will power off automatically in %d seconds."
msgstr[0] "系統會在 %d 秒後關閉電源。" msgstr[0] "系統會在 %d 秒後關閉電源。"
#: ../js/ui/endSessionDialog.js:93 #: ../js/ui/endSessionDialog.js:91
msgctxt "checkbox" msgctxt "checkbox"
msgid "Install pending software updates" msgid "Install pending software updates"
msgstr "安裝擱置的軟體更新" msgstr "安裝擱置的軟體更新"
#: ../js/ui/endSessionDialog.js:96 ../js/ui/endSessionDialog.js:113 #: ../js/ui/endSessionDialog.js:94 ../js/ui/endSessionDialog.js:111
msgctxt "button" msgctxt "button"
msgid "Restart" msgid "Restart"
msgstr "重新啟動" msgstr "重新啟動"
#: ../js/ui/endSessionDialog.js:98 #: ../js/ui/endSessionDialog.js:96
msgctxt "button" msgctxt "button"
msgid "Power Off" msgid "Power Off"
msgstr "關閉電源" msgstr "關閉電源"
#: ../js/ui/endSessionDialog.js:105 #: ../js/ui/endSessionDialog.js:103
msgctxt "title" msgctxt "title"
msgid "Restart" msgid "Restart"
msgstr "重新啟動" msgstr "重新啟動"
#: ../js/ui/endSessionDialog.js:107 #: ../js/ui/endSessionDialog.js:105
#, javascript-format #, javascript-format
msgid "The system will restart automatically in %d second." msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds." msgid_plural "The system will restart automatically in %d seconds."
msgstr[0] "系統會在 %d 秒後自動重新啟動。" msgstr[0] "系統會在 %d 秒後自動重新啟動。"
#: ../js/ui/endSessionDialog.js:121 #: ../js/ui/endSessionDialog.js:119
msgctxt "title" msgctxt "title"
msgid "Restart & Install Updates" msgid "Restart & Install Updates"
msgstr "重新啟動並安裝更新" msgstr "重新啟動並安裝更新"
#: ../js/ui/endSessionDialog.js:123 #: ../js/ui/endSessionDialog.js:121
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." msgid "The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
"The system will automatically restart and install updates in %d seconds." "The system will automatically restart and install updates in %d seconds."
msgstr[0] "系統會在 %d 秒後自動重新啟動。" msgstr[0] "系統會在 %d 秒後自動重新啟動。"
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:127
msgctxt "button" msgctxt "button"
msgid "Restart &amp; Install" msgid "Restart &amp; Install"
msgstr "重新啟動並安裝" msgstr "重新啟動並安裝"
#: ../js/ui/endSessionDialog.js:130 #: ../js/ui/endSessionDialog.js:128
msgctxt "button" msgctxt "button"
msgid "Install &amp; Power Off" msgid "Install &amp; Power Off"
msgstr "安裝並關機" msgstr "安裝並關機"
#: ../js/ui/endSessionDialog.js:131 #: ../js/ui/endSessionDialog.js:129
msgctxt "checkbox" msgctxt "checkbox"
msgid "Power off after updates are installed" msgid "Power off after updates are installed"
msgstr "在安裝完更新之後關機" msgstr "在安裝完更新之後關機"
#: ../js/ui/endSessionDialog.js:315 #: ../js/ui/endSessionDialog.js:338
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "正使用電池電源執行:請在安裝更新之前插入電源線。" msgstr "正使用電池電源執行:請在安裝更新之前插入電源線。"
#: ../js/ui/endSessionDialog.js:332 #: ../js/ui/endSessionDialog.js:355
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
msgstr "部分應用程式忙碌中或有未儲存的工作。" msgstr "部分應用程式忙碌中或有未儲存的工作。"
#: ../js/ui/endSessionDialog.js:339 #: ../js/ui/endSessionDialog.js:362
msgid "Other users are logged in." msgid "Other users are logged in."
msgstr "其他使用者已登入。" msgstr "其他使用者已登入。"
#. Translators: Remote here refers to a remote session, like a ssh login */ #. Translators: Remote here refers to a remote session, like a ssh login */
#: ../js/ui/endSessionDialog.js:619 #: ../js/ui/endSessionDialog.js:640
#, javascript-format #, javascript-format
msgid "%s (remote)" msgid "%s (remote)"
msgstr "%s (遠端)" msgstr "%s (遠端)"
#. Translators: Console here refers to a tty like a VT console */ #. Translators: Console here refers to a tty like a VT console */
#: ../js/ui/endSessionDialog.js:622 #: ../js/ui/endSessionDialog.js:643
#, javascript-format #, javascript-format
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (主控臺)" msgstr "%s (主控臺)"
@ -1112,7 +1112,7 @@ msgstr "安裝"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "是否從 extensions.gnome.org 下載並安裝「%s」" msgstr "是否從 extensions.gnome.org 下載並安裝「%s」"
#: ../js/ui/keyboard.js:653 ../js/ui/status/keyboard.js:339 #: ../js/ui/keyboard.js:700 ../js/ui/status/keyboard.js:523
msgid "Keyboard" msgid "Keyboard"
msgstr "鍵盤" msgstr "鍵盤"
@ -1134,8 +1134,8 @@ msgstr "隱藏錯誤"
msgid "Show Errors" msgid "Show Errors"
msgstr "顯示錯誤" msgstr "顯示錯誤"
#: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:62 #: ../js/ui/lookingGlass.js:716 ../js/ui/status/location.js:71
#: ../js/ui/status/location.js:164 #: ../js/ui/status/location.js:176
msgid "Enabled" msgid "Enabled"
msgstr "已啟用" msgstr "已啟用"
@ -1143,7 +1143,7 @@ msgstr "已啟用"
#. because it's disabled by rfkill (airplane mode) */ #. because it's disabled by rfkill (airplane mode) */
#. translators: #. translators:
#. * The device has been disabled #. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:167 #: ../js/ui/lookingGlass.js:719 ../js/ui/status/location.js:179
#: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830 #: ../js/ui/status/network.js:592 ../src/gvc/gvc-mixer-control.c:1830
msgid "Disabled" msgid "Disabled"
msgstr "已停用" msgstr "已停用"
@ -1168,39 +1168,39 @@ msgstr "檢示來源"
msgid "Web Page" msgid "Web Page"
msgstr "網頁" msgstr "網頁"
#: ../js/ui/messageTray.js:1325 #: ../js/ui/messageTray.js:1327
msgid "Open" msgid "Open"
msgstr "開啟" msgstr "開啟"
#: ../js/ui/messageTray.js:1332 #: ../js/ui/messageTray.js:1334
msgid "Remove" msgid "Remove"
msgstr "移除" msgstr "移除"
#: ../js/ui/messageTray.js:1629 #: ../js/ui/messageTray.js:1631
msgid "Notifications" msgid "Notifications"
msgstr "通知" msgstr "通知"
#: ../js/ui/messageTray.js:1636 #: ../js/ui/messageTray.js:1638
msgid "Clear Messages" msgid "Clear Messages"
msgstr "清除訊息" msgstr "清除訊息"
#: ../js/ui/messageTray.js:1655 #: ../js/ui/messageTray.js:1657
msgid "Notification Settings" msgid "Notification Settings"
msgstr "通知設定值" msgstr "通知設定值"
#: ../js/ui/messageTray.js:1708 #: ../js/ui/messageTray.js:1710
msgid "Tray Menu" msgid "Tray Menu"
msgstr "系統匣選單" msgstr "系統匣選單"
#: ../js/ui/messageTray.js:1925 #: ../js/ui/messageTray.js:1934
msgid "No Messages" msgid "No Messages"
msgstr "沒有訊息" msgstr "沒有訊息"
#: ../js/ui/messageTray.js:1963 #: ../js/ui/messageTray.js:1979
msgid "Message Tray" msgid "Message Tray"
msgstr "訊息匣" msgstr "訊息匣"
#: ../js/ui/messageTray.js:2966 #: ../js/ui/messageTray.js:2992
msgid "System Information" msgid "System Information"
msgstr "系統資訊" msgstr "系統資訊"
@ -1227,7 +1227,7 @@ msgstr "概覽"
#. in the search entry when no search is #. in the search entry when no search is
#. active; it should not exceed ~30 #. active; it should not exceed ~30
#. characters. */ #. characters. */
#: ../js/ui/overview.js:250 #: ../js/ui/overview.js:246
msgid "Type to search…" msgid "Type to search…"
msgstr "輸入以搜尋…" msgstr "輸入以搜尋…"
@ -1245,7 +1245,7 @@ msgstr "概覽 "
msgid "Top Bar" msgid "Top Bar"
msgstr "頂端列" msgstr "頂端列"
#: ../js/ui/popupMenu.js:280 #: ../js/ui/popupMenu.js:269
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-us" msgstr "toggle-switch-us"
@ -1257,7 +1257,7 @@ msgstr "請輸入指令"
msgid "Close" msgid "Close"
msgstr "關閉" msgstr "關閉"
#: ../js/ui/runDialog.js:273 #: ../js/ui/runDialog.js:277
msgid "Restarting…" msgid "Restarting…"
msgstr "重新啟動…" msgstr "重新啟動…"
@ -1273,43 +1273,43 @@ msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
msgstr[0] "%d 個新通知" msgstr[0] "%d 個新通知"
#: ../js/ui/screenShield.js:474 ../js/ui/status/system.js:345 #: ../js/ui/screenShield.js:472 ../js/ui/status/system.js:345
msgid "Lock" msgid "Lock"
msgstr "鎖定" msgstr "鎖定"
#: ../js/ui/screenShield.js:708 #: ../js/ui/screenShield.js:706
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "GNOME 需要鎖定螢幕" msgstr "GNOME 需要鎖定螢幕"
#: ../js/ui/screenShield.js:835 ../js/ui/screenShield.js:1306 #: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304
msgid "Unable to lock" msgid "Unable to lock"
msgstr "無法鎖定" msgstr "無法鎖定"
#: ../js/ui/screenShield.js:836 ../js/ui/screenShield.js:1307 #: ../js/ui/screenShield.js:834 ../js/ui/screenShield.js:1305
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "鎖定被應用程式阻擋" msgstr "鎖定被應用程式阻擋"
#: ../js/ui/search.js:614 #: ../js/ui/search.js:611
msgid "Searching…" msgid "Searching…"
msgstr "搜尋…" msgstr "搜尋…"
#: ../js/ui/search.js:660 #: ../js/ui/search.js:613
msgid "No results." msgid "No results."
msgstr "沒有結果。" msgstr "沒有結果。"
#: ../js/ui/shellEntry.js:27 #: ../js/ui/shellEntry.js:25
msgid "Copy" msgid "Copy"
msgstr "複製" msgstr "複製"
#: ../js/ui/shellEntry.js:32 #: ../js/ui/shellEntry.js:30
msgid "Paste" msgid "Paste"
msgstr "貼上" msgstr "貼上"
#: ../js/ui/shellEntry.js:99 #: ../js/ui/shellEntry.js:97
msgid "Show Text" msgid "Show Text"
msgstr "顯示文字" msgstr "顯示文字"
#: ../js/ui/shellEntry.js:101 #: ../js/ui/shellEntry.js:99
msgid "Hide Text" msgid "Hide Text"
msgstr "隱藏文字" msgstr "隱藏文字"
@ -1394,23 +1394,28 @@ msgstr "未連線"
msgid "Brightness" msgid "Brightness"
msgstr "亮度" msgstr "亮度"
#: ../js/ui/status/keyboard.js:407 #: ../js/ui/status/keyboard.js:547
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "顯示鍵盤配置" msgstr "顯示鍵盤配置"
#: ../js/ui/status/location.js:56 #: ../js/ui/status/location.js:65
msgid "Location" msgid "Location"
msgstr "位置" msgstr "位置"
#: ../js/ui/status/location.js:63 ../js/ui/status/location.js:165 #: ../js/ui/status/location.js:72 ../js/ui/status/location.js:177
msgid "Disable" msgid "Disable"
msgstr "停用" msgstr "停用"
#: ../js/ui/status/location.js:164 #: ../js/ui/status/location.js:73
#| msgid "Power Settings"
msgid "Privacy Settings"
msgstr "隱私設定值"
#: ../js/ui/status/location.js:176
msgid "In Use" msgid "In Use"
msgstr "使用中" msgstr "使用中"
#: ../js/ui/status/location.js:168 #: ../js/ui/status/location.js:180
msgid "Enable" msgid "Enable"
msgstr "啟用" msgstr "啟用"
@ -1582,12 +1587,12 @@ msgstr "評估中…"
#: ../js/ui/status/power.js:86 #: ../js/ui/status/power.js:86
#, javascript-format #, javascript-format
msgid "%d%02d Remaining (%d%%)" msgid "%d%02d Remaining (%d%%)"
msgstr "%d剩餘 %02d (%d%%)" msgstr "剩餘時間 %d%02d (%d%%)"
#: ../js/ui/status/power.js:91 #: ../js/ui/status/power.js:91
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d直到充滿 %02d (%d%%)" msgstr "直到充滿還需 %d%02d (%d%%)"
#: ../js/ui/status/power.js:119 #: ../js/ui/status/power.js:119
msgid "UPS" msgid "UPS"
@ -1645,11 +1650,11 @@ msgstr "以另一個使用者身分登入"
msgid "Unlock Window" msgid "Unlock Window"
msgstr "解鎖視窗" msgstr "解鎖視窗"
#: ../js/ui/viewSelector.js:232 #: ../js/ui/viewSelector.js:158
msgid "Applications" msgid "Applications"
msgstr "應用程式" msgstr "應用程式"
#: ../js/ui/viewSelector.js:236 #: ../js/ui/viewSelector.js:162
msgid "Search" msgid "Search"
msgstr "搜尋" msgstr "搜尋"
@ -1743,19 +1748,19 @@ msgstr[0] "%u 輸入"
msgid "System Sounds" msgid "System Sounds"
msgstr "系統音效" msgstr "系統音效"
#: ../src/main.c:371 #: ../src/main.c:373
msgid "Print version" msgid "Print version"
msgstr "顯示版本" msgstr "顯示版本"
#: ../src/main.c:377 #: ../src/main.c:379
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "GDM 在登入畫面使用的模式" msgstr "GDM 在登入畫面使用的模式"
#: ../src/main.c:383 #: ../src/main.c:385
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "使用指定的模式例如「gdm」為登入畫面" msgstr "使用指定的模式例如「gdm」為登入畫面"
#: ../src/main.c:389 #: ../src/main.c:391
msgid "List possible modes" msgid "List possible modes"
msgstr "列出可能的模式" msgstr "列出可能的模式"

View File

@ -176,18 +176,54 @@ static void
calendar_sources_init (CalendarSources *sources) calendar_sources_init (CalendarSources *sources)
{ {
GError *error = NULL; GError *error = NULL;
GDBusConnection *session_bus;
GVariant *result;
sources->priv = CALENDAR_SOURCES_GET_PRIVATE (sources); sources->priv = CALENDAR_SOURCES_GET_PRIVATE (sources);
/* XXX Not sure what to do if this fails. /* WORKAROUND: the hardcoded timeout for e_source_registry_new_sync()
* Should this class implement GInitable or pass the (and other library calls that eventually call g_dbus_proxy_new[_sync]())
* registry in as a G_PARAM_CONSTRUCT_ONLY property? */ is 25 seconds. This has been shown to be too small for
evolution-source-registry in certain cases (slow disk, concurrent IO,
many configured sources), so we first ensure that the service
starts with a manual call and a higher timeout.
HACK: every time the DBus API is bumped in e-d-s we need
to update this!
*/
session_bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
if (session_bus == NULL)
{
g_error ("Failed to connect to the session bus: %s", error->message);
}
result = g_dbus_connection_call_sync (session_bus, "org.freedesktop.DBus",
"/", "org.freedesktop.DBus",
"StartServiceByName",
g_variant_new ("(su)",
"org.gnome.evolution.dataserver.Sources3",
0),
NULL,
G_DBUS_CALL_FLAGS_NONE,
60 * 1000,
NULL, &error);
if (result != NULL)
{
g_variant_unref (result);
sources->priv->registry = e_source_registry_new_sync (NULL, &error); sources->priv->registry = e_source_registry_new_sync (NULL, &error);
}
if (error != NULL) if (error != NULL)
{ {
g_error ("%s: %s", G_STRFUNC, error->message); /* Any error is fatal, but we don't want to crash gnome-shell-calendar-server
because of e-d-s problems. So just exit here.
*/
g_warning ("Failed to start evolution-source-registry: %s", error->message);
exit(EXIT_FAILURE);
} }
g_object_unref (session_bus);
sources->priv->source_added_id = g_signal_connect (sources->priv->registry, sources->priv->source_added_id = g_signal_connect (sources->priv->registry,
"source-added", "source-added",
G_CALLBACK (calendar_sources_registry_source_changed_cb), G_CALLBACK (calendar_sources_registry_source_changed_cb),

View File

@ -17,7 +17,9 @@
#include <cogl/cogl.h> #include <cogl/cogl.h>
#include <meta/screen.h> #include <meta/screen.h>
#include <meta/meta-cursor-tracker.h> #include <meta/meta-cursor-tracker.h>
#include <meta/compositor-mutter.h>
#include "shell-global.h"
#include "shell-recorder-src.h" #include "shell-recorder-src.h"
#include "shell-recorder.h" #include "shell-recorder.h"
@ -1535,6 +1537,9 @@ shell_recorder_record (ShellRecorder *recorder,
recorder_update_pointer (recorder); recorder_update_pointer (recorder);
recorder_add_update_pointer_timeout (recorder); recorder_add_update_pointer_timeout (recorder);
/* Disable unredirection while we are recoring */
meta_disable_unredirect_for_screen (shell_global_get_screen (shell_global_get ()));
/* Set up repaint hook */ /* Set up repaint hook */
recorder->repaint_hook_id = clutter_threads_add_repaint_func(recorder_repaint_hook, recorder->stage, NULL); recorder->repaint_hook_id = clutter_threads_add_repaint_func(recorder_repaint_hook, recorder->stage, NULL);
@ -1583,6 +1588,9 @@ shell_recorder_close (ShellRecorder *recorder)
recorder->state = RECORDER_STATE_CLOSED; recorder->state = RECORDER_STATE_CLOSED;
/* Reenable after the recording */
meta_enable_unredirect_for_screen (shell_global_get_screen (shell_global_get ()));
/* Release the refcount we took when we started recording */ /* Release the refcount we took when we started recording */
g_object_unref (recorder); g_object_unref (recorder);
} }

View File

@ -23,12 +23,12 @@ struct _ShellScreenshot
{ {
GObject parent_instance; GObject parent_instance;
ShellGlobal *global; ShellScreenshotPrivate *priv;
}; };
/* Used for async screenshot grabbing */ struct _ShellScreenshotPrivate
typedef struct _screenshot_data { {
ShellScreenshot *screenshot; ShellGlobal *global;
char *filename; char *filename;
char *filename_used; char *filename_used;
@ -39,9 +39,9 @@ typedef struct _screenshot_data {
gboolean include_cursor; gboolean include_cursor;
ShellScreenshotCallback callback; ShellScreenshotCallback callback;
} _screenshot_data; };
G_DEFINE_TYPE(ShellScreenshot, shell_screenshot, G_TYPE_OBJECT); G_DEFINE_TYPE_WITH_PRIVATE (ShellScreenshot, shell_screenshot, G_TYPE_OBJECT);
static void static void
shell_screenshot_class_init (ShellScreenshotClass *screenshot_class) shell_screenshot_class_init (ShellScreenshotClass *screenshot_class)
@ -52,7 +52,8 @@ shell_screenshot_class_init (ShellScreenshotClass *screenshot_class)
static void static void
shell_screenshot_init (ShellScreenshot *screenshot) shell_screenshot_init (ShellScreenshot *screenshot)
{ {
screenshot->global = shell_global_get (); screenshot->priv = shell_screenshot_get_instance_private (screenshot);
screenshot->priv->global = shell_global_get ();
} }
static void static void
@ -60,18 +61,18 @@ on_screenshot_written (GObject *source,
GAsyncResult *result, GAsyncResult *result,
gpointer user_data) gpointer user_data)
{ {
_screenshot_data *screenshot_data = (_screenshot_data*) user_data; ShellScreenshot *screenshot = SHELL_SCREENSHOT (source);
if (screenshot_data->callback) ShellScreenshotPrivate *priv = screenshot->priv;
screenshot_data->callback (screenshot_data->screenshot,
g_simple_async_result_get_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (result)),
&screenshot_data->screenshot_area,
screenshot_data->filename_used);
cairo_surface_destroy (screenshot_data->image); if (priv->callback)
g_object_unref (screenshot_data->screenshot); priv->callback (screenshot,
g_free (screenshot_data->filename); g_simple_async_result_get_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (result)),
g_free (screenshot_data->filename_used); &priv->screenshot_area,
g_free (screenshot_data); priv->filename_used);
g_clear_pointer (&priv->image, cairo_surface_destroy);
g_clear_pointer (&priv->filename, g_free);
g_clear_pointer (&priv->filename_used, g_free);
} }
/* called in an I/O thread */ /* called in an I/O thread */
@ -170,12 +171,15 @@ write_screenshot_thread (GSimpleAsyncResult *result,
{ {
cairo_status_t status; cairo_status_t status;
GOutputStream *stream; GOutputStream *stream;
_screenshot_data *screenshot_data = g_async_result_get_user_data (G_ASYNC_RESULT (result)); ShellScreenshot *screenshot = SHELL_SCREENSHOT (object);
ShellScreenshotPrivate *priv;
g_assert (screenshot_data != NULL); g_assert (screenshot != NULL);
stream = prepare_write_stream (screenshot_data->filename, priv = screenshot->priv;
&screenshot_data->filename_used);
stream = prepare_write_stream (priv->filename,
&priv->filename_used);
if (stream == NULL) if (stream == NULL)
status = CAIRO_STATUS_FILE_NOT_FOUND; status = CAIRO_STATUS_FILE_NOT_FOUND;
@ -183,10 +187,10 @@ write_screenshot_thread (GSimpleAsyncResult *result,
{ {
GdkPixbuf *pixbuf; GdkPixbuf *pixbuf;
pixbuf = gdk_pixbuf_get_from_surface (screenshot_data->image, pixbuf = gdk_pixbuf_get_from_surface (priv->image,
0, 0, 0, 0,
cairo_image_surface_get_width (screenshot_data->image), cairo_image_surface_get_width (priv->image),
cairo_image_surface_get_height (screenshot_data->image)); cairo_image_surface_get_height (priv->image));
if (gdk_pixbuf_save_to_stream (pixbuf, stream, "png", NULL, NULL, if (gdk_pixbuf_save_to_stream (pixbuf, stream, "png", NULL, NULL,
"tEXt::Software", "gnome-screenshot", NULL)) "tEXt::Software", "gnome-screenshot", NULL))
@ -204,7 +208,7 @@ write_screenshot_thread (GSimpleAsyncResult *result,
} }
static void static void
do_grab_screenshot (_screenshot_data *screenshot_data, do_grab_screenshot (ShellScreenshot *screenshot,
int x, int x,
int y, int y,
int width, int width,
@ -215,16 +219,17 @@ do_grab_screenshot (_screenshot_data *screenshot_data,
CoglContext *context; CoglContext *context;
int stride; int stride;
guchar *data; guchar *data;
ShellScreenshotPrivate *priv = screenshot->priv;
backend = clutter_get_default_backend (); backend = clutter_get_default_backend ();
context = clutter_backend_get_cogl_context (backend); context = clutter_backend_get_cogl_context (backend);
screenshot_data->image = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, priv->image = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
width, height); width, height);
data = cairo_image_surface_get_data (screenshot_data->image); data = cairo_image_surface_get_data (priv->image);
stride = cairo_image_surface_get_stride (screenshot_data->image); stride = cairo_image_surface_get_stride (priv->image);
bitmap = cogl_bitmap_new_for_data (context, bitmap = cogl_bitmap_new_for_data (context,
width, width,
@ -237,7 +242,7 @@ do_grab_screenshot (_screenshot_data *screenshot_data,
COGL_READ_PIXELS_COLOR_BUFFER, COGL_READ_PIXELS_COLOR_BUFFER,
bitmap); bitmap);
cairo_surface_mark_dirty (screenshot_data->image); cairo_surface_mark_dirty (priv->image);
cogl_object_unref (bitmap); cogl_object_unref (bitmap);
} }
@ -310,17 +315,19 @@ _draw_cursor_image (MetaCursorTracker *tracker,
static void static void
grab_screenshot (ClutterActor *stage, grab_screenshot (ClutterActor *stage,
_screenshot_data *screenshot_data) ShellScreenshot *screenshot)
{ {
MetaScreen *screen = shell_global_get_screen (screenshot_data->screenshot->global); MetaScreen *screen;
MetaCursorTracker *tracker; MetaCursorTracker *tracker;
int width, height; int width, height;
GSimpleAsyncResult *result; GSimpleAsyncResult *result;
GSettings *settings; GSettings *settings;
ShellScreenshotPrivate *priv = screenshot->priv;
screen = shell_global_get_screen (priv->global);
meta_screen_get_size (screen, &width, &height); meta_screen_get_size (screen, &width, &height);
do_grab_screenshot (screenshot_data, 0, 0, width, height); do_grab_screenshot (screenshot, 0, 0, width, height);
if (meta_screen_get_n_monitors (screen) > 1) if (meta_screen_get_n_monitors (screen) > 1)
{ {
@ -346,7 +353,7 @@ grab_screenshot (ClutterActor *stage,
cairo_region_xor (stage_region, screen_region); cairo_region_xor (stage_region, screen_region);
cairo_region_destroy (screen_region); cairo_region_destroy (screen_region);
cr = cairo_create (screenshot_data->image); cr = cairo_create (priv->image);
for (i = 0; i < cairo_region_num_rectangles (stage_region); i++) for (i = 0; i < cairo_region_num_rectangles (stage_region); i++)
{ {
@ -360,41 +367,42 @@ grab_screenshot (ClutterActor *stage,
cairo_region_destroy (stage_region); cairo_region_destroy (stage_region);
} }
screenshot_data->screenshot_area.x = 0; priv->screenshot_area.x = 0;
screenshot_data->screenshot_area.y = 0; priv->screenshot_area.y = 0;
screenshot_data->screenshot_area.width = width; priv->screenshot_area.width = width;
screenshot_data->screenshot_area.height = height; priv->screenshot_area.height = height;
settings = g_settings_new (A11Y_APPS_SCHEMA); settings = g_settings_new (A11Y_APPS_SCHEMA);
if (screenshot_data->include_cursor && if (priv->include_cursor &&
!g_settings_get_boolean (settings, MAGNIFIER_ACTIVE_KEY)) !g_settings_get_boolean (settings, MAGNIFIER_ACTIVE_KEY))
{ {
tracker = meta_cursor_tracker_get_for_screen (screen); tracker = meta_cursor_tracker_get_for_screen (screen);
_draw_cursor_image (tracker, screenshot_data->image, screenshot_data->screenshot_area); _draw_cursor_image (tracker, priv->image, priv->screenshot_area);
} }
g_object_unref (settings); g_object_unref (settings);
g_signal_handlers_disconnect_by_func (stage, (void *)grab_screenshot, (gpointer)screenshot_data); g_signal_handlers_disconnect_by_func (stage, (void *)grab_screenshot, (gpointer)screenshot);
result = g_simple_async_result_new (NULL, on_screenshot_written, (gpointer)screenshot_data, grab_screenshot); result = g_simple_async_result_new (G_OBJECT (screenshot), on_screenshot_written, NULL, grab_screenshot);
g_simple_async_result_run_in_thread (result, write_screenshot_thread, G_PRIORITY_DEFAULT, NULL); g_simple_async_result_run_in_thread (result, write_screenshot_thread, G_PRIORITY_DEFAULT, NULL);
g_object_unref (result); g_object_unref (result);
} }
static void static void
grab_area_screenshot (ClutterActor *stage, grab_area_screenshot (ClutterActor *stage,
_screenshot_data *screenshot_data) ShellScreenshot *screenshot)
{ {
GSimpleAsyncResult *result; GSimpleAsyncResult *result;
ShellScreenshotPrivate *priv = screenshot->priv;
do_grab_screenshot (screenshot_data, do_grab_screenshot (screenshot,
screenshot_data->screenshot_area.x, priv->screenshot_area.x,
screenshot_data->screenshot_area.y, priv->screenshot_area.y,
screenshot_data->screenshot_area.width, priv->screenshot_area.width,
screenshot_data->screenshot_area.height); priv->screenshot_area.height);
g_signal_handlers_disconnect_by_func (stage, (void *)grab_area_screenshot, (gpointer)screenshot_data); g_signal_handlers_disconnect_by_func (stage, (void *)grab_area_screenshot, (gpointer)screenshot);
result = g_simple_async_result_new (NULL, on_screenshot_written, (gpointer)screenshot_data, grab_area_screenshot); result = g_simple_async_result_new (G_OBJECT (screenshot), on_screenshot_written, NULL, grab_area_screenshot);
g_simple_async_result_run_in_thread (result, write_screenshot_thread, G_PRIORITY_DEFAULT, NULL); g_simple_async_result_run_in_thread (result, write_screenshot_thread, G_PRIORITY_DEFAULT, NULL);
g_object_unref (result); g_object_unref (result);
} }
@ -418,16 +426,21 @@ shell_screenshot_screenshot (ShellScreenshot *screenshot,
ShellScreenshotCallback callback) ShellScreenshotCallback callback)
{ {
ClutterActor *stage; ClutterActor *stage;
_screenshot_data *data = g_new0 (_screenshot_data, 1); ShellScreenshotPrivate *priv = screenshot->priv;
data->screenshot = g_object_ref (screenshot); if (priv->filename != NULL) {
data->filename = g_strdup (filename); if (callback)
data->callback = callback; callback (screenshot, FALSE, NULL, "");
data->include_cursor = include_cursor; return;
}
stage = CLUTTER_ACTOR (shell_global_get_stage (screenshot->global)); priv->filename = g_strdup (filename);
priv->callback = callback;
priv->include_cursor = include_cursor;
g_signal_connect_after (stage, "paint", G_CALLBACK (grab_screenshot), (gpointer)data); stage = CLUTTER_ACTOR (shell_global_get_stage (priv->global));
g_signal_connect_after (stage, "paint", G_CALLBACK (grab_screenshot), (gpointer)screenshot);
clutter_actor_queue_redraw (stage); clutter_actor_queue_redraw (stage);
} }
@ -457,19 +470,24 @@ shell_screenshot_screenshot_area (ShellScreenshot *screenshot,
ShellScreenshotCallback callback) ShellScreenshotCallback callback)
{ {
ClutterActor *stage; ClutterActor *stage;
_screenshot_data *data = g_new0 (_screenshot_data, 1); ShellScreenshotPrivate *priv = screenshot->priv;
data->screenshot = g_object_ref (screenshot); if (priv->filename != NULL) {
data->filename = g_strdup (filename); if (callback)
data->screenshot_area.x = x; callback (screenshot, FALSE, NULL, "");
data->screenshot_area.y = y; return;
data->screenshot_area.width = width; }
data->screenshot_area.height = height;
data->callback = callback;
stage = CLUTTER_ACTOR (shell_global_get_stage (screenshot->global)); priv->filename = g_strdup (filename);
priv->screenshot_area.x = x;
priv->screenshot_area.y = y;
priv->screenshot_area.width = width;
priv->screenshot_area.height = height;
priv->callback = callback;
g_signal_connect_after (stage, "paint", G_CALLBACK (grab_area_screenshot), (gpointer)data); stage = CLUTTER_ACTOR (shell_global_get_stage (priv->global));
g_signal_connect_after (stage, "paint", G_CALLBACK (grab_area_screenshot), (gpointer)screenshot);
clutter_actor_queue_redraw (stage); clutter_actor_queue_redraw (stage);
} }
@ -496,10 +514,9 @@ shell_screenshot_screenshot_window (ShellScreenshot *screenshot,
{ {
GSimpleAsyncResult *result; GSimpleAsyncResult *result;
GSettings *settings; GSettings *settings;
ShellScreenshotPrivate *priv = screenshot->priv;
_screenshot_data *screenshot_data = g_new0 (_screenshot_data, 1); MetaScreen *screen = shell_global_get_screen (priv->global);
MetaScreen *screen = shell_global_get_screen (screenshot->global);
MetaCursorTracker *tracker; MetaCursorTracker *tracker;
MetaDisplay *display = meta_screen_get_display (screen); MetaDisplay *display = meta_screen_get_display (screen);
MetaWindow *window = meta_display_get_focus_window (display); MetaWindow *window = meta_display_get_focus_window (display);
@ -509,21 +526,15 @@ shell_screenshot_screenshot_window (ShellScreenshot *screenshot,
MetaRectangle rect; MetaRectangle rect;
cairo_rectangle_int_t clip; cairo_rectangle_int_t clip;
screenshot_data->screenshot = g_object_ref (screenshot); if (priv->filename != NULL || !window) {
screenshot_data->filename = g_strdup (filename); if (callback)
screenshot_data->callback = callback; callback (screenshot, FALSE, NULL, "");
if (!window)
{
screenshot_data->filename_used = g_strdup ("");
result = g_simple_async_result_new (NULL, on_screenshot_written, (gpointer)screenshot_data, shell_screenshot_screenshot_window);
g_simple_async_result_set_op_res_gboolean (result, FALSE);
g_simple_async_result_complete (result);
g_object_unref (result);
return; return;
} }
priv->filename = g_strdup (filename);
priv->callback = callback;
window_actor = CLUTTER_ACTOR (meta_window_get_compositor_private (window)); window_actor = CLUTTER_ACTOR (meta_window_get_compositor_private (window));
clutter_actor_get_position (window_actor, &actor_x, &actor_y); clutter_actor_get_position (window_actor, &actor_x, &actor_y);
@ -532,26 +543,26 @@ shell_screenshot_screenshot_window (ShellScreenshot *screenshot,
if (!include_frame) if (!include_frame)
meta_window_frame_rect_to_client_rect (window, &rect, &rect); meta_window_frame_rect_to_client_rect (window, &rect, &rect);
screenshot_data->screenshot_area.x = rect.x; priv->screenshot_area.x = rect.x;
screenshot_data->screenshot_area.y = rect.y; priv->screenshot_area.y = rect.y;
clip.x = rect.x - (gint) actor_x; clip.x = rect.x - (gint) actor_x;
clip.y = rect.y - (gint) actor_y; clip.y = rect.y - (gint) actor_y;
clip.width = screenshot_data->screenshot_area.width = rect.width; clip.width = priv->screenshot_area.width = rect.width;
clip.height = screenshot_data->screenshot_area.height = rect.height; clip.height = priv->screenshot_area.height = rect.height;
stex = META_SHAPED_TEXTURE (meta_window_actor_get_texture (META_WINDOW_ACTOR (window_actor))); stex = META_SHAPED_TEXTURE (meta_window_actor_get_texture (META_WINDOW_ACTOR (window_actor)));
screenshot_data->image = meta_shaped_texture_get_image (stex, &clip); priv->image = meta_shaped_texture_get_image (stex, &clip);
settings = g_settings_new (A11Y_APPS_SCHEMA); settings = g_settings_new (A11Y_APPS_SCHEMA);
if (include_cursor && !g_settings_get_boolean (settings, MAGNIFIER_ACTIVE_KEY)) if (include_cursor && !g_settings_get_boolean (settings, MAGNIFIER_ACTIVE_KEY))
{ {
tracker = meta_cursor_tracker_get_for_screen (screen); tracker = meta_cursor_tracker_get_for_screen (screen);
_draw_cursor_image (tracker, screenshot_data->image, screenshot_data->screenshot_area); _draw_cursor_image (tracker, priv->image, priv->screenshot_area);
} }
g_object_unref (settings); g_object_unref (settings);
result = g_simple_async_result_new (NULL, on_screenshot_written, (gpointer)screenshot_data, shell_screenshot_screenshot_window); result = g_simple_async_result_new (G_OBJECT (screenshot), on_screenshot_written, NULL, shell_screenshot_screenshot_window);
g_simple_async_result_run_in_thread (result, write_screenshot_thread, G_PRIORITY_DEFAULT, NULL); g_simple_async_result_run_in_thread (result, write_screenshot_thread, G_PRIORITY_DEFAULT, NULL);
g_object_unref (result); g_object_unref (result);
} }

View File

@ -12,6 +12,7 @@
*/ */
typedef struct _ShellScreenshot ShellScreenshot; typedef struct _ShellScreenshot ShellScreenshot;
typedef struct _ShellScreenshotPrivate ShellScreenshotPrivate;
typedef struct _ShellScreenshotClass ShellScreenshotClass; typedef struct _ShellScreenshotClass ShellScreenshotClass;
#define SHELL_TYPE_SCREENSHOT (shell_screenshot_get_type ()) #define SHELL_TYPE_SCREENSHOT (shell_screenshot_get_type ())

View File

@ -448,12 +448,9 @@ update_focus_app (ShellWindowTracker *self)
} }
static void static void
on_wm_class_changed (MetaWindow *window, tracked_window_changed (ShellWindowTracker *self,
GParamSpec *pspec, MetaWindow *window)
gpointer user_data)
{ {
ShellWindowTracker *self = SHELL_WINDOW_TRACKER (user_data);
/* It's simplest to just treat this as a remove + add. */ /* It's simplest to just treat this as a remove + add. */
disassociate_window (self, window); disassociate_window (self, window);
track_window (self, window); track_window (self, window);
@ -462,6 +459,24 @@ on_wm_class_changed (MetaWindow *window,
update_focus_app (self); update_focus_app (self);
} }
static void
on_wm_class_changed (MetaWindow *window,
GParamSpec *pspec,
gpointer user_data)
{
ShellWindowTracker *self = SHELL_WINDOW_TRACKER (user_data);
tracked_window_changed (self, window);
}
static void
on_gtk_application_id_changed (MetaWindow *window,
GParamSpec *pspec,
gpointer user_data)
{
ShellWindowTracker *self = SHELL_WINDOW_TRACKER (user_data);
tracked_window_changed (self, window);
}
static void static void
track_window (ShellWindowTracker *self, track_window (ShellWindowTracker *self,
MetaWindow *window) MetaWindow *window)
@ -476,6 +491,7 @@ track_window (ShellWindowTracker *self,
g_hash_table_insert (self->window_to_app, window, app); g_hash_table_insert (self->window_to_app, window, app);
g_signal_connect (window, "notify::wm-class", G_CALLBACK (on_wm_class_changed), self); g_signal_connect (window, "notify::wm-class", G_CALLBACK (on_wm_class_changed), self);
g_signal_connect (window, "notify::gtk-application-id", G_CALLBACK (on_gtk_application_id_changed), self);
_shell_app_add_window (app, window); _shell_app_add_window (app, window);
@ -507,7 +523,8 @@ disassociate_window (ShellWindowTracker *self,
g_hash_table_remove (self->window_to_app, window); g_hash_table_remove (self->window_to_app, window);
_shell_app_remove_window (app, window); _shell_app_remove_window (app, window);
g_signal_handlers_disconnect_by_func (window, G_CALLBACK(on_wm_class_changed), self); g_signal_handlers_disconnect_by_func (window, G_CALLBACK (on_wm_class_changed), self);
g_signal_handlers_disconnect_by_func (window, G_CALLBACK (on_gtk_application_id_changed), self);
g_signal_emit (self, signals[TRACKED_WINDOWS_CHANGED], 0); g_signal_emit (self, signals[TRACKED_WINDOWS_CHANGED], 0);

View File

@ -119,7 +119,8 @@ st_clipboard_provider (GdkXEvent *xevent_p,
XSelectionRequestEvent *req_event; XSelectionRequestEvent *req_event;
GdkDisplay *display = gdk_display_get_default (); GdkDisplay *display = gdk_display_get_default ();
if (xev->type != SelectionRequest) if (xev->type != SelectionRequest ||
!clipboard->priv->clipboard_text)
return GDK_FILTER_CONTINUE; return GDK_FILTER_CONTINUE;
req_event = &xev->xselectionrequest; req_event = &xev->xselectionrequest;

View File

@ -662,6 +662,29 @@ st_entry_key_press_event (ClutterActor *actor,
return TRUE; return TRUE;
} }
/* delete to beginning of line */
if ((event->modifier_state & CLUTTER_CONTROL_MASK)
&& event->keyval == CLUTTER_u)
{
int pos = clutter_text_get_cursor_position ((ClutterText *)priv->entry);
clutter_text_delete_text ((ClutterText *)priv->entry, 0, pos);
return TRUE;
}
/* delete to end of line */
if ((event->modifier_state & CLUTTER_CONTROL_MASK)
&& event->keyval == CLUTTER_k)
{
ClutterTextBuffer *buffer = clutter_text_get_buffer ((ClutterText *)priv->entry);
int pos = clutter_text_get_cursor_position ((ClutterText *)priv->entry);
clutter_text_buffer_delete_text (buffer, pos, -1);
return TRUE;
}
return CLUTTER_ACTOR_CLASS (st_entry_parent_class)->key_press_event (actor, event); return CLUTTER_ACTOR_CLASS (st_entry_parent_class)->key_press_event (actor, event);
} }

View File

@ -332,12 +332,6 @@ st_widget_dispose (GObject *gobject)
st_widget_remove_transition (actor); st_widget_remove_transition (actor);
/* The real dispose of this accessible is done on
* AtkGObjectAccessible weak ref callback
*/
if (priv->accessible)
priv->accessible = NULL;
g_clear_pointer (&priv->label_actor, g_object_unref); g_clear_pointer (&priv->label_actor, g_object_unref);
if (priv->texture_file_changed_id != 0) if (priv->texture_file_changed_id != 0)
@ -2495,6 +2489,17 @@ st_widget_get_accessible (ClutterActor *actor)
NULL); NULL);
atk_object_initialize (widget->priv->accessible, actor); atk_object_initialize (widget->priv->accessible, actor);
/* AtkGObjectAccessible, which StWidgetAccessible derives from, clears
* the back reference to the object in a weak notify for the object;
* weak-ref notification, which occurs during g_object_real_dispose(),
* is then the optimal time to clear the forward reference. We
* can't clear the reference in dispose() before chaining up, since
* clutter_actor_dispose() causes notifications to be sent out, which
* will result in a new accessible object being created.
*/
g_object_add_weak_pointer (G_OBJECT (actor),
(gpointer *)&widget->priv->accessible);
} }
return widget->priv->accessible; return widget->priv->accessible;
@ -2524,14 +2529,25 @@ st_widget_set_accessible (StWidget *widget,
AtkObject *accessible) AtkObject *accessible)
{ {
g_return_if_fail (ST_IS_WIDGET (widget)); g_return_if_fail (ST_IS_WIDGET (widget));
g_return_if_fail (accessible == NULL || ATK_IS_GOBJECT_ACCESSIBLE (accessible));
if (widget->priv->accessible != accessible) if (widget->priv->accessible != accessible)
{ {
if (widget->priv->accessible) if (widget->priv->accessible)
{
g_object_remove_weak_pointer (G_OBJECT (widget),
(gpointer *)&widget->priv->accessible);
g_object_unref (widget->priv->accessible); g_object_unref (widget->priv->accessible);
widget->priv->accessible = NULL;
}
if (accessible) if (accessible)
{
widget->priv->accessible = g_object_ref (accessible); widget->priv->accessible = g_object_ref (accessible);
/* See note in st_widget_get_accessible() */
g_object_add_weak_pointer (G_OBJECT (widget),
(gpointer *)&widget->priv->accessible);
}
else else
widget->priv->accessible = NULL; widget->priv->accessible = NULL;
} }